В этом примере показано, как построить график временных и частотных характеристик линейных систем SISO и MIMO.
В целях иллюстрации создайте следующую функцию переноса третьего заказа:
sys = tf([8 18 32],[1 6 14 24])
sys =
8 s^2 + 18 s + 32
-----------------------
s^3 + 6 s^2 + 14 s + 24
Continuous-time transfer function.
Вы можете построить график ступенчатых и импульсных откликов этой системы с помощью step и impulse команды:
subplot(2,1,1) step(sys) subplot(2,1,2) impulse(sys)

Можно также смоделировать отклик на произвольный сигнал, например синусоидальную волну, используя lsim команда. Входной сигнал отображается серым цветом, а отклик системы - синим.
clf
t = 0:0.01:4;
u = sin(10*t);
lsim(sys,u,t) % u,t define the input signal

Команды печати можно использовать с непрерывными или дискретными моделями TF, SS или ZPK. Для моделей с пространством состояний можно также построить график невынужденного отклика из некоторого заданного начального состояния, например:
A = [-0.8 3.6 -2.1;-3 -1.2 4.8;3 -4.3 -1.1];
B = [0; -1.1; -0.2];
C = [1.2 0 0.6];
D = -0.6;
G = ss(A,B,C,D);
x0 = [-1;0;2]; % initial state
initial(G,x0)
grid

Анализ частотной области является ключом к пониманию стабильности и эксплуатационных свойств систем управления. Графики Боде, графики Найквиста и диаграмма Николса - это три стандартных способа построения графиков и анализа частотной характеристики линейной системы. Эти графики можно создать с помощью bode, nichols, и nyquist команды. Например:
sys = tf([8 18 32],[1 6 14 24])
sys =
8 s^2 + 18 s + 32
-----------------------
s^3 + 6 s^2 + 14 s + 24
Continuous-time transfer function.
bode(sys) grid

nyquist(sys) grid

nichols(sys) grid

Полюса и нули системы содержат ценную информацию о её динамике, стабильности и пределах производительности. Например, рассмотрим цикл обратной связи на рис. 1, где


Рис. 1: Контур обратной связи SISO.
Для значения коэффициента усиления k = 0.7, можно распечатать полюса и нули с замкнутым контуром, используя pzmap:
s = tf('s');
G = -(2*s+1)/(s^2+3*s+2);
k = 0.7;
T = feedback(G*k,1);
pzmap(T)
grid, axis([-2 0 -1 1])

Полюса замкнутого контура (отмеченные синими x's) лежат в левой полуплоскости, так что контур обратной связи стабилен для этого выбора усиления k. Коэффициент демпфирования полюсов с замкнутым контуром можно прочитать на этой диаграмме (см. метки на радиальных линиях). Здесь коэффициент демпфирования составляет около 0,7, что предполагает хорошо затухающую реакцию с замкнутым контуром, что подтверждается:
clf step(T)

Для дальнейшего понимания способа усиления контура k влияет на стабильность по замкнутому контуру, можно нарисовать местоположение полюсов по замкнутому контуру как функцию k:
rlocus(G) grid

Щелчок в месте пересечения локуса с осью y показывает, что полюса замкнутого контура становятся нестабильными для k = 1.51. Таким образом, коэффициент усиления контура должен оставаться меньше 1,5 для стабильности замкнутого контура.

Щелчок правой кнопкой мыши на графиках ответов дает доступ к различным опциям и аннотациям. В частности, меню Характеристики (Characteristics) позволяет отображать стандартные метрики, такие как время нарастания и время установки для ступенчатых откликов, или поля пикового усиления и устойчивости для графиков частотного отклика.
На примере из предыдущего раздела постройте график ответа на шаг с замкнутым контуром:
step(T)

Теперь щелкните правой кнопкой мыши на графике, чтобы отобразить характеристики пикового ответа и времени установки, и щелкните по синим точкам, чтобы прочитать соответствующие значения превышения и времени установки:

Все упомянутые выше команды полностью поддерживают системы с множеством входов и множеством выходов (MIMO). В случае MIMO эти команды создают массивы графиков. Например, ступенчатая реакция системы с двумя входами и двумя выходами
sys = rss(3,2,2); sys.A = [-0.5 -0.3 -0.2 ; 0 -1.3 -1.7; 0.4 1.7 -1.3];
представляет собой массив графиков 2 на 2, где каждый столбец показывает пошаговый отклик конкретного входного канала:
step(sys)

При необходимости можно сгруппировать все четыре ответа на одном графике путем щелчка правой кнопкой мыши на графике и выбора подменю «Группировка ввода-вывода - > Все». Полученный график показан ниже.

Следующие дополнительные графики полезны для анализа систем MIMO:
График сингулярных значений (sigma), который показывает основные коэффициенты усиления частотной характеристики
Сопоставление полюсов и нулей для каждой пары ввода-вывода (iopzplot)
Например, постройте график пикового усиления sys как функция частоты:
sigma(sys) grid

Можно распечатать сразу несколько систем с помощью любой команды графика ответа. Для упрощения сравнения каждой системе можно назначить определенный цвет, маркер или стиль линии. Используя приведенный выше пример обратной связи, постройте график ступенчатой реакции с замкнутым контуром для трех значений усиления контура. k в трех различных цветах:
k1 = 0.4; T1 = feedback(G*k1,1); k2 = 1; T2 = feedback(G*k2,1); step(T,'b',T1,'r',T2,'g') legend('k = 0.7','k = 0.4','k = 1')
