В этом примере показано, как создавать линейные модели непрерывного времени с использованием tf, zpk, ss, и frd команды.
Система управления Toolbox™ предоставляет функции для создания четырех основных представлений линейных моделей инвариантного времени (LTI):
Модели передаточных функций (TF)
Модели с нулевым коэффициентом усиления (ZPK)
Модели пространства состояний (SS)
Модели данных частотной характеристики (FRD)
Эти функции принимают данные модели в качестве входных данных и создают объекты, воплощающие эти данные в одной переменной MATLAB ®.
Передаточные функции (TF) являются представлениями систем LTI в частотной области. Передаточная функция SISO - отношение многочленов:
1b1sm + b2sm-1 +... + bm + 1
Передаточные функции задаются их числителем и многочленом знаменателя A(s) и B(s). В MATLAB многочлен представляется вектором его коэффициентов, например многочлена
указывается как [1 2 10].
Чтобы создать объект TF, представляющий передаточную функцию:
2s + 10
задать числитель и многочлен знаменателя и использовать tf для построения объекта TF:
num = [ 1 0 ]; % Numerator: s den = [ 1 2 10 ]; % Denominator: s^2 + 2 s + 10 H = tf(num,den)
H =
s
--------------
s^2 + 2 s + 10
Continuous-time transfer function.
Можно также указать эту модель как рациональное выражение переменной Лапласа s:
s = tf('s'); % Create Laplace variable H = s / (s^2 + 2*s + 10)
H =
s
--------------
s^2 + 2 s + 10
Continuous-time transfer function.
Модели с нулевым коэффициентом усиления (ZPK) являются факторизованной формой передаточных функций:
)... (s-pm)
Такие модели обнажают корни z числителя (нули) и корней p знаменателя (полюсов). Скалярный коэффициент k называется коэффициентом усиления.
Для создания модели ZPK:
s2-2s + 2)
задать векторы полюсов и нулей и коэффициент усиления k:
z = 0; % Zeros p = [ 2 1+i 1-i ]; % Poles k = -2; % Gain H = zpk(z,p,k)
H =
-2 s
--------------------
(s-2) (s^2 - 2s + 2)
Continuous-time zero/pole/gain model.
Что касается моделей TF, можно также указать эту модель как рациональное выражение s:
s = zpk('s');
H = -2*s / (s - 2) / (s^2 - 2*s + 2)H =
-2 s
--------------------
(s-2) (s^2 - 2s + 2)
Continuous-time zero/pole/gain model.
Модели state-space (SS) - это представления систем LTI во временной области:
Bu (t)
Du (t)
где x(t) - вектор состояния, u(t) - входной вектор, и y(t) - выходная траектория.
Модели состояния-пространства получаются из дифференциальных уравнений, описывающих динамику системы. Например, рассмотрим ОДУ второго порядка для простого электродвигателя:
где I - ток возбуждения (вход) и theta - угловое смещение ротора (выход). Этот ОДУ может быть переписан в форме state-space как:
x = [
] D = [0]
Чтобы создать эту модель, укажите матрицы состояния-пространства A, B, C, D и использовать ss для построения объекта SS:
A = [ 0 1 ; -5 -2 ]; B = [ 0 ; 3 ]; C = [ 1 0 ]; D = 0; H = ss(A,B,C,D)
H =
A =
x1 x2
x1 0 1
x2 -5 -2
B =
u1
x1 0
x2 3
C =
x1 x2
y1 1 0
D =
u1
y1 0
Continuous-time state-space model.
Модели данных частотной характеристики (FRD) позволяют сохранять измеренную или смоделированную комплексную частотную характеристику системы в объекте LTI. Затем эти данные можно использовать в качестве суррогатной модели для анализа и проектирования в частотной области.
Например, предположим, что из анализатора частоты выводятся следующие данные:
Частота (Гц): 10, 30, 50, 100, 500
Ответ: 0,0021 + 0 .0009i, 0,0027 + 0 .0029i, 0,0044 + 0 .0052i, 0,0200-0 .0040i, 0,0001-0 .0021i
Объект FRD, содержащий эти данные, можно создать с помощью:
freq = [10, 30, 50, 100, 500]; resp = [0.0021+0.0009i, 0.0027+0.0029i, 0.0044+0.0052i, 0.0200-0.0040i, 0.0001-0.0021i]; H = frd(resp,freq,'Units','Hz')
H =
Frequency(Hz) Response
------------- --------
10 2.100e-03 + 9.000e-04i
30 2.700e-03 + 2.900e-03i
50 4.400e-03 + 5.200e-03i
100 2.000e-02 - 4.000e-03i
500 1.000e-04 - 2.100e-03i
Continuous-time frequency response.
Обратите внимание, что предполагается, что значения частоты находятся в градусах/с, если не указано значение Units быть Герцем.
tf, zpk, ss, и frd команды позволяют создавать модели SISO и MIMO. Для моделей TF или ZPK часто удобно создавать модели MIMO путем объединения более простых моделей SISO. Например, можно создать функцию передачи 2x2 MIMO:
+ 3-4ss + 2]
использование:
s = tf('s');
H = [ 1/(s+1) , 0 ; (s+1)/(s^2+s+3) , -4*s/(s+2) ]H =
From input 1 to output...
1
1: -----
s + 1
s + 1
2: -----------
s^2 + s + 3
From input 2 to output...
1: 0
-4 s
2: -----
s + 2
Continuous-time transfer function.
Control System Toolbox предоставляет обширный набор функций для анализа моделей LTI. Эти функции варьируются от простых запросов о размере и порядке ввода-вывода до сложного анализа временных и частотных характеристик.
Например, можно получить информацию о размере для функции передачи MIMO. H указано выше путем ввода:
size(H)
Transfer function with 2 outputs and 2 inputs.
Вычислить полюса можно с помощью:
pole(H)
ans = 4×1 complex
-1.0000 + 0.0000i
-0.5000 + 1.6583i
-0.5000 - 1.6583i
-2.0000 + 0.0000i
Вы можете спросить, стабильна ли эта система, используя:
isstable(H)
ans = logical
1
Наконец, можно построить график ответа на шаг, введя:
step(H)

bode | frd | ss | step | tf | zpk