plot (t_, w12_s, 'r-', t_, w12_vm, 'b–', t_, w12_a, 'm – .')
grid on
xlabel ('t, c')
ylabel('w12')
title ('Графики элемента w12 матричной весовой функции')
legend ('w12‑struct', 'w12‑VM', 'w12‑analit', 0)
figure
plot (t_, w22_s, 'r-', t_, w22_vm, 'b–', t_, w22_a, 'm – .')
grid on
xlabel ('t, c')
ylabel('w22')
title ('Графики элемента w22 матричной весовой функции')
legend ('w22‑struct', 'w22‑VM', 'w22‑analit', 0)
%Построение графиков элементов матричной переходной функции (файл h_stop.m)
%
close all
figure
plot (t_, h11_s, 'r-', t_, h11_vm, 'b–', t_, h11_a, 'm – .')
grid on
xlabel ('t, c')
ylabel('h11')
title ('Графики элемента h11 матричной переходной функции')
legend ('h11‑struct', 'h11‑VM', 'h11‑analit', 0)
figure
plot (t_, h21_s, 'r-', t_, h21_vm, 'b–', t_, h21_a, 'm – .')
grid on
xlabel ('t, c')
ylabel('h21')
title ('Графики элемента h21 матричной переходной функции')
legend ('h21‑struct', 'h21‑VM', 'h21‑analit', 0)
figure
plot (t_, h12_s, 'r-', t_, h12_vm, 'b–', t_, h12_a, 'm – .')
grid on
xlabel ('t, c')
ylabel('h12')
title ('Графики элемента h12 матричной переходной функции')
legend ('h12‑struct', 'h12‑VM', 'h12‑analit', 0)
figure
plot (t_, h22_s, 'r-', t_, h22_vm, 'b–', t_, h22_a, 'm – .')
grid on
xlabel ('t, c')
ylabel('h22')
title ('Графики элемента h22 матричной переходной функции')
legend ('h22‑struct', 'h22‑VM', 'h22‑analit', 0)
Назначение всех функций пакета Matlab, использованных при создании программ (m‑файлов), приводится в приложении.
Организовать все указанные файлы следует самостоятельно (файлы-примеры выдаваться не будут) с целью получения навыков работы с редактором-отладчиком m‑файлов и редактором схем Simulink.
Открыть и запустить файл w_h_init.m для задания значений всем необходимым переменным в рабочей области памяти Matlab (Workspace).
Открыть и запустить модель из файла w.mdl и проверить соответствие результатов домашнего расчета элементов матричной весовой функции результатам компьютерного моделирования. В случае несоответствия найти и устранить ошибки.
По завершении моделирования в Simulink открыть и запустить файл w_stop.m. Скопировать информацию, выведенную в графические окно путем выполнения команды меню «Edit\CopyFigure», после чего сохранить ее при помощи какого-либо приложения, например текстового редактора MSWord.
Выполнить пп. 1.3.3 и 1.3.4, используя файлы h.mdl и h_stop.m.
Замечание. Запуск файлов w_h_init.m и w_stop.m (h_stop.m) до и после проведения моделирования можно автоматизировать, связав mdl‑файл с соответствующими m‑файлами. Для этого необходимо:
- убедиться в том, что mdl- и m – файлы находятся в одной директории и она является текущей;
- открыть mdl‑файлы;
- в командном окне выполнить следующие команды:
set_param ('w', 'InitFcn', 'w_h_init')
set_param ('w', 'StopFcn', 'w_stop')
set_param ('h', 'InitFcn', 'w_h_init')
set_param ('h', 'StopFcn', 'h_stop')
- в Simulink для каждого mdl‑файла выполнить команду меню Edit\UpdateDiagram и сохранить файлы.
Отчет оформляется на листах формата А4, допускается рукописное, печатное или комбинированное оформление.
Целью работы является расчет весовых и переходных функций, логарифмических амплитудно-частотных и фазочастотных характеристик (ЛАЧХ и ЛФЧХ), амплитудно-фазовых характеристик (АФХ) типовых динамических звеньев систем автоматического управления, а также анализ влияния их параметров на перечисленные выше характеристики. В работе предусматривается исследование звеньев, перечень которых приведен в табл. 2.1.
Таблица 2.1 Перечень типовых звеньев
Номерзвена | Звено | Передаточная функция |
1 | Интегрирующее | |
2 | Инерционное | |
3 | Реальноедифференцирующее | |
4 | Интегро-дифференцирующее | |
5 | Колебательное | |
6 | Номинально-фазовое первого порядка | |
7 | Неустойчивое первого порядка | |
8 | Неустойчивое второго порядка | |
9 | Режекторный фильтр |
Обязательными для изучения являются первые пять звеньев, указанные в табл. 2.1, а также любые два звена из звеньев №6–9.
Для каждого типового звена необходимо выполнить следующее.
Все рассматриваемые звенья, за исключением интегратора, имеют 2 или 3 настраиваемых параметра. В отдельных случаях при изучении влияния параметра на характеристики звена достаточно варьировать его независимо от остальных, а в других ситуациях имеет смысл учитывать соотношения нескольких параметров и варьировать их совместно. Поэтому для каждого исследуемого звена следует провести предварительный анализ необходимого количества и содержания экспериментов.
При проведении подготовки рекомендуется использовать учебную и справочную литературу по курсу «Линейные непрерывные системы регулирования» (ТАУ).
Особое внимание следует уделить информационному сопровождению приводимых в подготовительной части работы эскизных рисунков: для каждого процесса необходимо отметить его характерные особенности, которые зависят от каких-либо параметров исследуемого звена. Так, для временных процессов - это начальное и установившееся значения, постоянная времени, период колебаний, перерегулирование; для ЛАЧХ – сопрягающие частоты, наклон в децибелах на декаду (дб/дек) для наклонных участков и значения модуля комплексного передаточного коэффициента для горизонтальных участков; для ЛЧХ – сопрягающие частоты, асимптоты, точки экстремума (если есть); для АФХ – точки на комплексной плоскости (
, соответствующие , , пересечению с мнимой или действительной осями, точка максимального значения модуля комплексного передаточного коэффициента.%ФункциЯ описаниЯ звена в виде передаточной функции
%
function W = TF_zv (N_zv, inp_param)
p = tf('p');
switch N_zv
case 1, %интегрирующеезвено, N_zv = 1, inp_param = [k]
k = inp_param(1);
W = k/p;
case 2, %инерционноезвено, N_zv = 2, inp_param = [k, T]
k = inp_param(1);
T = inp_param(2);
W = k/(T*p+1);
case 3, %реальноедифференцирующеезвено, N_zv = 3, inp_param = [k, T]
k = inp_param(1);
T = inp_param(2);
W = (k*p)/(T*p+1);
case 4, %интегро-дифференцирующеезвено, N_zv = 4, inp_param = [T1, T2]
T1 = inp_param(1);
T2 = inp_param(2);
W = (T1*p+1)/(T2*p+1);
case 5, %колебательноезвено, N_zv = 5, inp_param = [k, T, ksi]
k = inp_param(1);
T = inp_param(2);
ksi = inp_param(3);
W = k/(T^2*p^2+2*ksi*T*p+1);
case 6, %неминимально-фазовое звено 1‑го пор., N_zv = 6, inp_param = [T1, T2]
T1 = inp_param(1);
T2 = inp_param(2);
W = (1‑T1*p)/(1+T2*p);
case 7, %неустойчивоезвено 1‑гопор., N_zv = 7, inp_param = [k, T]
k = inp_param(1);
T = inp_param(2);
W = k/(T*p‑1);
case 8, %неустойчивоезвено 2‑гопор., N_zv = 8, inp_param = [k, T, ksi]
k = inp_param(1);
T = inp_param(2);
ksi = inp_param(3);
W = k/(T^2*p^2–2*ksi*T*p+1);
case 9, %режекторныйфильтр, N_zv = 9, inp_param = [T, ksi1, ksi2]
T = inp_param(1);
ksi1 = inp_param(2);
ksi2 = inp_param(3);
W = (T^2*p^2+2*ksi1*T*p+1)/(T^2*p^2+2*ksi2*T*p+1);
end
%end of function TF_zv
Назначение всех использованных при создании этого файла функций Matlab приводится в приложении.
В программе звенья пронумерованы в соответствии с табл. 2.1, указание на номер моделируемого звена выполняется с помощью параметра N_zv рассматриваемой функции TF_zv. Второй параметр inp_param является векторным и предназначен для передачи значений параметров звена; в зависимости от вида звена он может содержать от одного до трех элементов. Для организации выбора описания звена служит оператор switch…case, при помощи которого производится анализ значения переменной N_zv и переход на вычисление соответствующей передаточной функции.
%Изучение типовых динамических звеньев: колебательное звено
%Очистка всех переменных в памЯти
clear all
%Очистка командного окна
clc
%Закрытие всех предыдущих рисунков
set (0,'ShowHiddenHandles', 'on')
delete (get(0,'Children'))
%Описание колебательного звена (N_zv = 5) через его передаточную функцию
%при различных значениЯх параметров. Параметры колебательного звена
%задаютсЯ вектором inp_param = [k, T, ksi] (см. текст файла TF_zv.m)
%изменЯем k
W_11 = TF_zv (5, [1,1,0.707]);
W_12 = TF_zv (5, [2,1,0.707]);
W_13 = TF_zv (5, [3,1,0.707]);
%изменЯем Т
W_21 = TF_zv (5, [1,0. 354,0.707]);
W_22 = TF_zv (5, [1,0. 707,0.707]);
W_23 = TF_zv (5, [1,1. 414,0.707]);
%изменЯем ksi
W_31 = TF_zv (5, [1,0. 5,0.3]);
W_32 = TF_zv (5, [1,0. 5,0.5]);
W_33 = TF_zv (5, [1,0. 5,0.7]);
%изменЯем T и ksi
W_41 = TF_zv (5, [1,0. 3,0.3]);
W_42 = TF_zv (5, [1,0. 5,0.5]);
W_43 = TF_zv (5, [1,0. 7,0.7]);
%Построение требуемых характеристик при различных k
%ЛАЧХ и ЛФЧХ
ltiview({'bode'}, W_11,'b-', W_12,'r-', W_13,'k-')
%АФХ
ltiview({'nyquist'}, W_11,'b-', W_12,'r-', W_13,'k-')
%весоваЯ функциЯ w(t)
ltiview({'impulse'}, W_11,'b-', W_12,'r-', W_13,'k-')
%переходнаЯ функциЯ h(t)
ltiview({'step'}, W_11,'b-', W_12,'r-', W_13,'k-')
%Построение требуемых характеристик при различных T
%ЛАЧХ и ЛФЧХ
ltiview({'bode'}, W_21,'b-', W_22,'r-', W_23,'k-')
%АФХ
ltiview({'nyquist'}, W_21,'b-', W_22,'r-', W_23,'k-')
%весоваЯ функциЯ w(t)
ltiview({'impulse'}, W_21,'b-', W_22,'r-', W_23,'k-')
%переходнаЯ функциЯ h(t)