Запишите комплексный передаточный коэффициент линейной части своего варианта Wл(jw), постройте (эскизно) ее ЛАЧХ и ФЧХ, после чего для каждого типа нелинейности приведите совместные характеристики линейной части (АФХ линейной части Wл(jw)) и нелинейности
.Таблица 3.2 Значения параметров линейной части и нелинейных элементов
Номерварианта | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
Wл(р) | Wл1 | Wл2 | Wл3 | Wл4 | Wл1 | Wл2 | Wл3 | Wл4 | |
Типы НЭ | НЭ1,НЭ2 | НЭ2,НЭ3 | НЭ1,НЭ3 | НЭ1,НЭ3 | НЭ2,НЭ3 | НЭ1,НЭ3 | НЭ1,НЭ2 | НЭ1,НЭ3 | |
Параметры | k | 6 | 5 | 3 | 4 | 15 | 2 | 10 | 8 |
T1 | 0.1 | 0.2 | 10 | 0.4 | 0.5 | 0.6 | 9 | 0.8 | |
T2 | 0.2 | 0.4 | 5 | 0.8 | 1.0 | 1.2 | 6 | 1.6 | |
T3 | 1 | - | 0.1 | - | 5 | - | 0.2 | - | |
b | 0.1 | 0.2 | 0.25 | 0.25 | 0.3 | 0.35 | 0.4 | 0.5 | |
c | 1 | 1.5 | 2 | 2.5 | 3 | 3.5 | 4 | 4.5 | |
Номер варианта | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | |
Wл(р) | Wл1 | Wл2 | Wл3 | Wл4 | Wл1 | Wл2 | Wл3 | Wл4 | |
Типы НЭ | НЭ1,НЭ3 | НЭ1,НЭ2 | НЭ1,НЭ2 | НЭ1,НЭ3 | НЭ1,НЭ2 | НЭ2,НЭ3 | НЭ1,НЭ3 | НЭ1,НЭ3 | |
Параметры | k | 15 | 10 | 9 | 6 | 7 | 8 | 5 | 7 |
T1 | 0.9 | 1.0 | 7 | 0.6 | 0.2 | 0.3 | 9 | 0.7 | |
T2 | 1.8 | 2.0 | 5 | 1.2 | 0.3 | 0.5 | 4 | 1.5 | |
T3 | 9 | - | 0.3 | - | 1.5 | - | 0.2 | - | |
b | 0.5 | 1.0 | 0.5 | 0.35 | 0.3 | 0.35 | 0.35 | 0.45 | |
c | 5 | 6 | 5.5 | 3 | 2 | 2.5 | 3 | 4 |
Проведите качественное исследование системы: оцените возможность возникновения периодических режимов и их устойчивость. Там, где это возможно, запишите выражения для критического коэффициента усиления ЛЧ, при котором в нелинейной системе возникают автоколебания.
Изучите текст программы (файл GB_prog.m) и структуру моделей (файлы GB_mod.mdl и R_Fourie.mdl).
Графический расчет параметров периодических режимов c использованием метода гармонического баланса производится по сценарию, записанному в файле GB_prog.m. Моделирование нелинейной системы осуществляется при помощи файлов GB_prog.m и GB_mod.mdl, а анализ спектрального состава периодического режима на выходе линейной части – при помощи файлов GB_prog.m и R_Fourie.mdl.
Cодержание файла GB_prog.m:
%Исследование нелинейных систем методом гармонического баланса
%Используемые файлы: GB_prog.m, GB_mod.mdl и R_Fourie.mdl.
%Используемые обозначениЯ: НЭ – нелинейный элемент, ЛЧ – линейнаЯ часть.
%Очистка всех переменных в памЯти
clear all
%закрытие всех предыдущих рисунков
set(0,'ShowHiddenHandles', 'on')
delete(get(0,'Children'))
%Задание значениЯ переменной, определЯющей положение переключателЯ
%конфигурации нелинейной части в файле GB_mod.mdl
%1 – НЭ-двухпозиционное реле с гистерезисом
%2 – НЭ-трехпозиционное реле без гистерезиса
%3 – НЭ-люфт
config_nlin = 2;
%Задание значениЯ переменной, определЯющей положение переключателЯ
%конфигурации линейной части в файле GB_mod.mdl
%1 – ЛЧ – Wл1 (p)=k/[(T1*p+1) (T2*p+1) (T3p+1)]
%2 – ЛЧ – Wл2 (p)=k/[(T1*p+1) (T2*p+1) p]
%3 – ЛЧ – Wл3 (p)=[k (T1*p+1)]/[(T2*p‑1)^2 (T3*p+1)^2]
%4 – ЛЧ – Wл4 (p)=[k (T1*p+1)]/[(T2*p‑1) p]
config_lin = 2;
k = 5;
T1 = 0.1;
T2 = 0.2;
T3 = 1;
b = 0.1;
c = 1;
%Графический расчет параметров периодических режимов c использованием
%метода гармонического баланса
%описание линейной части
switchconfig_lin
case 1,
%начальное значение, шаг и конечное значение частоты (в рад)
w = [0.02:0.01:100];
%комплексный передаточный коэффициент ЛЧ
W_lin = k./ ((T1*j*w+1).* (T2*j*w+1).*(T3*j*w+1));
%определение значениЯ строковой переменной lin
lin = 'Wл1 (p)';
case 2,
%начальное значение, шаг и конечное значение частоты (в рад)
w = [2:0.01:100];
%комплексный передаточный коэффициент ЛЧ
W_lin = k./ ((T1*j*w+1).* (T2*j*w+1).*(j*w));
%определение значениЯ строковой переменной lin
lin = 'Wл2 (p)';
case 3,
%начальное значение, шаг и конечное значение частоты (в рад)
w = [0.01:0.01:300];
%комплексный передаточный коэффициент ЛЧ
W_lin = (k*(T1*j*w+1))./ ((T2*j*w‑1).^2.*(T3*j*w+1).^2);
%определение значениЯ строковой переменной lin
lin = 'Wл3 (p)';
case 4,
%начальное значение, шаг и конечное значение частоты (в рад)
w = [1:0.01:100];
%комплексный передаточный коэффициент ЛЧ
W_lin = (k*(T1*j*w+1))./ ((T2*j*w‑1).*(j*w));
%определение значениЯ строковой переменной lin
lin = 'Wл4 (p)';
end
%описание ЛЧ как частотной характеристики через W_lin(jw)
SYSL = frd (W_lin, w);
%–
%Описание нелинейной части
switch config_nlin
case 1,
%начальное значение, шаг и конечное значение амплитуды на входе НЭ
A = [b:0.01:3.0];
%коэффициенты гармонической линеаризации
q = 2*c/(pi*b).* ((2*b./A).* sqrt (1 – (b./A).^2));
q1 = -2*c/(pi*b).* 2*(b./A).^2;
%определение значениЯ строковой переменной nlin
nlin = '2‑х поз. реле с гист.';
case 2,
%начальное значение, шаг и конечное значение амплитуды на входе НЭ
A = [b+0.0001:0.005:b*sqrt(2)];
A_ = [b*sqrt(2):0.005:3.0];
%коэффициенты гармонической линеаризации
q = (4*c./ (pi*A)).* sqrt (1 – (b./A).^2);
q1 = 0;
q_ = (4*c./ (pi*A_)).* sqrt (1 – (b./A_).^2);
q1_ = 0;
%эквивалентный комплексный передаточный коэффициент W_nlin(jA) НЭ
W_nlin_ = q_ + j*q1_;
%характеристика -1/W_nlin(jA)
S_ = -1./W_nlin_;
%описание НЭ как амплитудной характеристики через -1/W_nlin(jA)
SYSN_ = frd(S_, A_);
%определение значениЯ строковой переменной nlin
nlin = '3‑х поз. реле без гист.';
case 3,
%начальное значение, шаг и конечное значение амплитуды на входе НЭ
A = [b+0.001:0.01:100];
%коэффициенты гармонической линеаризации
alfa = asin(1–2*b./A);
q = (1/pi)*(pi/2+alfa+0.5*sin (2*alfa));
q1 = – (4*b).* (1‑b./A)./ (pi*A);
%определение значениЯ строковой переменной nlin
nlin = 'люфт';
end
%эквивалентный комплексный передаточный коэффициент W_nlin(jA) НЭ
W_nlin = q + j*q1;
%характеристика -1/W_nlin(jA)
S = -1./W_nlin;
%описание НЭ как амплитудной характеристики через -1/W_nlin(jA)
SYSN = frd(S, A);
%–
%ВизуализациЯ
%Построение W_lin(jw) и -1/W_nlin(jA) при помощи plot (общий вид)
figure(1)
gr_W_lin = plot (real(W_lin), imag (W_lin));
set (gr_W_lin, {'Color'}, {'r'});
hold on
gr_S = plot (real(S), imag(S));
set (gr_S, {'Color'}, {'b'});
title(['Расчетгарм. баланса. НЭ– ', nlin, ', b=', num2str(b), ', c=', num2str(c), '; ЛЧ– ',…
lin, ', k=', num2str(k), ', T1=', num2str(T1), ', T2=', num2str(T2),…
', T3=', num2str(T3)])
xlabel ('re(W lin), re(S)');
ylabel ('im(W lin), im(S)');
legend ('W lin(jw)', 'S(jA)', 0);
grid on
%–
%построение W_lin(jw) и -1/W_nlin(jA) припомощи LTI Viewer
if config_nlin == 2
ltiview({'nyquist'}, SYSL, '-b', SYSN, '-r')
ltiview({'nyquist'}, SYSL, '-b', SYSN_, '-r')
else
ltiview({'nyquist'}, SYSL, '-b', SYSN, '-r')
end
%–
%Завершение графического расчета параметров периодических режимов
%c использованием метода гармонического баланса
%====================================================
%^^^^^^^^^^^^^^Моделирование нелинейной системы (НС)^^^^^^^^^^^^^^^^^^^^^
% с определением параметров автоколебаний
%задание времени моделированиЯ
t_end = 15;
%ограничение шага моделированиЯ сверху
step_max = 0.005;
%задание амплитуды сигнала на выходе ЛЧ в начальный момент времени
y0 = 0.5;
%вызовмодели
open_system ('GB_mod.mdl');
%запуск модели
sim ('GB_mod');
%считывание фактических параметров моделированиЯ
Max_Step_Size = get_param('GB_mod', 'MaxStep');
Stop_Time = get_param ('GB_mod', 'StopTime');
%извлечение последнего элемента из векторов vec_period и vec_amp
%(определение установившихсЯ значений периода и амплитуды автоколебаний
%с использованием данных, записанных в рабочую область памЯти)
clc % очисткакомандногоокна
period = vec_period (length(vec_period));
clear vec_period;
amp_kol = vec_amp (length(vec_amp))%выводвкомандноеокно
clearvec_amp;
%расчет частоты сигнала на выходе ЛЧ (используетсЯ длЯ последующего
%расчета амплитуды гармоник)
frequency = 1/period;
w_kol = 2*pi*frequency%вывод в командное окно
%Построение процесса во времени на выходе ЛЧ
figure(2)
gr = plot (t_and_y(:, 1), t_and_y(:, 2));
set (gr, {'Color'}, {'r'});
title(['Процесс y(t). НЭ– ', nlin, ', b=', num2str(b), ', c=', num2str(c), '; ЛЧ– ',…
lin, ', k=', num2str(k), ', T1=', num2str(T1), ', T2=', num2str(T2),…
', T3=', num2str(T3), ', y0=', num2str(y0)])
xlabel(['t, cекАмп.кол.=', num2str (amp_kol), ', Wкол=', num2str (w_kol), 'c^-1']);
ylabel('y');
gridon
%–
%закрытие модели
%close_system ('GB_mod', 1)
%=====================================================
%^^^^^^^^^^^^^^^^Анализ спектра автоколебательного процесса^^^^^^^^^^^^^^
%вызов программы, определЯющей амплитуды гармоник сигнала на выходе ЛЧ
open_system ('R_Fourie.mdl');
%транслЯциЯ параметров моделированиЯ НС 'GB_mod.mdl' в файл R_Fourie.mdl
set_param ('R_Fourie', 'MaxStep', Max_Step_Size);
set_param ('R_Fourie', 'StopTime', Stop_Time);
%запуск программы, вычислЯющей амплитуды гармоник
sim('R_Fourie');
%закрытие программы
%close_system ('R_Fourie', 1)
%извлечение последнего элемента из каждого вектора, содержащего амплитуды
%гармоник (определение установившихсЯ значений амплитуд гармоник с
%использованием данных, записанных в рабочую область памЯти)
magn_0=vec_magn_0 (length(vec_magn_0));
clear vec_magn_0;
magn_1=vec_magn_1 (length(vec_magn_1));
clear vec_magn_1;
magn_2=vec_magn_2 (length(vec_magn_2));
clear vec_magn_2;
magn_3=vec_magn_3 (length(vec_magn_3));
clear vec_magn_3;
magn_4=vec_magn_4 (length(vec_magn_4));
clear vec_magn_4;
magn_5=vec_magn_5 (length(vec_magn_5));