Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота №5.doc
Скачиваний:
4
Добавлен:
23.09.2019
Размер:
1.28 Mб
Скачать

3.2 Обробка сигналів

У багатьох задачах електромеханіки необхідно проводити гармонічний аналіз сигналів, що характеризують роботу системи, для визначення їх амплітудного та енергетичного спектрів. Для розв'язання цієї задачі в середовищі пакета є спеціальний Тооlbох – Signal Processing, в якому реалізована підпрограма, що виконує перетворення Фур'є.

Нехай задано N- вимірний вектор х, елементами якого є значення неперервної функції в дискретні моменти часу, тоді дискретне перетворення Фур’є Х(к) для к=0,1,2,…,N-1 визначається в такому вигляді:

,

Дискретна трансформація Фур'є реалізована згідно з алгоритмом швидкого перетворення Фур'є, а функція називається fft. Функція fft(х) виконує дискретну трансформацію Фур'є вектора х , причому значення N визначається довжиною вектора х. Виклик функції у вигляді fft (х,N) реалізує визначення N-пунктового перетворення Фур'є. Причому варто зазначити, що якщо вектор х має меншу розмірність, то він доповнюється елементами, значення яких дорівнюють 0, якщо ж розмірність вектора більша N, то до уваги беруться перші N-членів вектора. Частотна інтерпретація вектора трансформанти Х має вигляд:

Треба зауважити, що значення елементів вектора, що відповідають від'ємним частотам, спряжені з відповідним значенням вектора, що відповідають додатнім частотам. При визначенні дійсних значень частот, які відповідають кожному елементові трансформанти X, необхідно враховувати дискретність зняття сигналу (частота дискретизації fs =1/h, де h - крок вимірювань). Так, для к - вимірів це співвідношення буде

.

Розглянемо застосування швидкого перетворення Фур'є на прикладі. Нехай необхідно визначити амплітудний спектр сигналу х(t), зашумленого за допомогою генератора випадкових чисел (рис. 3.1)

.

Рисунок 3.1 - Вигляд сигналу до (а) і після зашумлення за допомогою генератора випадкових чисел (б).

Реалізація такої задачі в середовищі пакета має вигляд:

генерування сигналу

t=0:0.001:1;

х=35+100*sіn(2*рі*50*t)+35*sіn(2*рі*150*t)+…

20*sіn(2*рі*250*t)+15*sіn(2*рі*350*t) ;

рlot (t(1:80), х(1:80)), grid, pause

зашумлення сигналу

х=х+50*randn(size (х)) ;

рlot (t(1:80), х(1:80) ), grid, pause

реалізація перетворення Фур'є

уn=fft (х,1000) ;

n=1еngth (уп) ;

частотний спектр сигналу

аmp1у=аbs (уn)/1000;

перерахунок частоти трансформанти

freq=1000*(0:1000)/1000;

перенос енергії на додатні частоти

аmp1у (2:500)=2.* аmp1у (2:500) ;

рlot (freq (1:n/2) , аmp1у (1:n/2)), grid

На рис. 3.2 показано амплітудний спектр сигналу, поданого на рис. 3.1.

Рисунок 3.2 - Гармонічний розклад сигналу х(t).

3.3 Розв'язування систем нелінійних алгебричних рівнянь

Під час дослідження нелінійних систем приймається їх опис у формі f(х)=0,

де f(х)=[f1(x), f2(x),...,fn(х)] є вектором. Вибір методу для розв'язування задачі проводиться за допомогою параметра орtions (5) вектора орtions, елементи якого встановлюють параметри процесу оптимізації, спосіб виводу результатів, використані алгоритми. Для значення цього параметра 0 – для розв'язування задачі буде застосовано метод Gaussa-Newtona, а для 1 – метод Levenberga-Маrquardta. Розв'язування системи нелінійних рівнянь проводиться за допомогою функції fsolve. Структура командного рядка для виклику функції матиме вигляд:

x=fsolve ( 'fun ', x0, options, 'grad ', p1, p2,…),

де 'fun ' - назва m-файла, в якому описана задача у вигляді f=fun(х); ' grad '- назва файла, в якому записані часткові похідні функції за елементами вектора х, тобто сформована матриця Якобі; х0 - вектор початкових умов. Використання параметрів р1,р2, . . . дає змогу проводити дослідження для різних значень цих параметрів. Вказані параметри необхідно також записати для формування рядків визначення функції у m-файлах fun.m та grad.m.

Для прикладу застосування функції fsolve проаналізуємо стан магнітної системи (рис. 2.7) для різних струмів котушки w1 в межах від -0.25А до 2А. Геометричні розміри магнітної системи: l1=0.2м; l2=0.1м; 13=0.2м; Іp=0.001м; s1=0.001м2; s2=0.002м2; s3=0.001м2; кількість витків котушок w1=1000; w2=500; значення струму в котушці w2 -і2=1.5; крива намагнічування задана таблично.

Рисунок 3.3 - Схема магнітної системи

На підставі законів Кірхгофа отримаємо систему нелінійних рівнянь

;

;

.

Враховуючи, що , a система рівнянь набуде вигляду

При створенні програми розрахунку приймемо, що опис кривої намагнічування по­дано за допомогою двох векторів: НН=[Н1, Н2 , ... , Нn] - значення напруженості маг­нітного поля ; ВВ=[В1, В2, ... ,Вn] - значення індукції магнітного поля. Пакет дозволяє знаходити значення магнітної індукції для довільно заданого значення напруженості магнітного поля Н. Для цього можна використати функцію spline, яка реалізує апроксимацію функції поліномами третього степеня для таблично заданої функції. Звертання до цієї функції має вигляд

уу = spline(х, у, хх)

де х, у - задані вектори значень аргументів та значень функції, хх - значення аргументу в точках, для яких необхідно порахувати значення функції.

Розв'язуючи таку задачу за допомогою пакета необхідно створити файл fun.m, в якому помістити опис системи. Для спрощення задачі приймемо, що градієнт буде роз­рахований за допомогою числових методів. Текст файла fun.m може бути таким:

function f = fun (Н,і1)

параметри магнітного кола

11=0.2; 12=0.1; 13=0.2; 1р=0.001;

s1=0.001; s2=0.002; s3=0.001;

w1=1000; w2=500; mu0=4*рі*1е-7;

значення струму в котушці w2

і2=1.5;

крива намагнічування

НН=-4500:500:5500;

ВВ=[-1.63 -1.6 -1.56 -1.51 -1.45 -1.38 -1.25 -1.0 ...

-0.62 0 0.62 1.0 1.25 1.38 1.45 1.51 1.56 1.60...

1.63 1.65 1.66] ;

розрахунок значення магнітної індукції для заданих H

В(1)= spline (НН,ВВ,Н(1) ) ;

В(2)= spline (НН,ВВ,Н(2) ) ;

В(3)= spline (НН,ВВ,Н(3) ) ;

опис магнітного кола

f(1)=Н(1) *l1+Н(3) *l3+lр*В(3) /mu0-w1*і1;

f(2)=Н(2)*l2+Н(3)*l3+lр*В(3)/mu0-w2*і2;

f(3)=В(1)*s1+В(2)*s2-В(3)*s3;

f=[f(1); f(2); f(3)];

Головна програма може мати такий вигляд:

Н0=[0; 0; 0];

діапазон зміни струму і1

р=-0.25:0.25:2;

орtions = foptions;

задання розміру матриць для зберігання результатів обчислень

у1=zеrоs(3, length (р) ) ;

у2=zеrоs(3, length(р));

крива намагнічування

НН=-4500: 500: 5500;

ВВ=[-1.63 -1.6 -1.56 -1.51 -1.45 -1.38 -1.25 -1.0…

-0.62 0 0.62 1.0 1.25 1.38 1.45 1.51 1.56 1.60…

1.63 1.65 1.66

розрахунок параметрів системи для різних значень струму i1

for і=1:length(р)

і1=р(і)

Н=fsolve('fun', Н0, орtions, [], і1)

y1(:, i) = H

y2(:, i) =spline (HH, BB, H)

end

графічне подання отриманих результатів

subplot (211), plot (p, y1 (1,:), ‘-‘, p, y1(2,:), ‘- -‘, p, y1 (3,:), ‘-.’)

grid, xlabel (‘i1’), ylabel (‘H1, H2, H3’)

subplot (212), plot (p, y2 (1,:), ‘-‘, p, y2(2,:), ‘- -‘, p, y2 (3,:), ‘-.’)

grid, xlabel (‘i1’), ylabel (‘B1, B2, B3’)

Результати роботи програми показані на рис.3.4

Рисунок 3.4 - Залежності напруженості магнітного поля Н та магнітної індукції В у вітках магнітного кола при зміні струму і1.

Контрольні питання

  1. Порядок створення файлів-сценаріїв.

  2. Порядок створення файлів-функцій.

  3. Що таке локальні та глобальні змінні, їх використання.