В этом примере показано, как создать непрерывные линейные модели с помощью tf
, zpk
, ss
, и frd
команды.
Control System Toolbox™ обеспечивает функции для создания четырех основных представлений линейных инвариантных по времени (LTI) моделей:
Модели передаточной функции (TF)
Модели (zpk) нулей и полюсов
Модели пространства состояний (SS)
Модели данных частотной характеристики (FRD)
Эти функции берут данные модели как входные параметры и создают объекты, которые воплощают эти данные в одну переменную MATLAB ®.
Передаточные функции (TF) являются представлениями систем LTI в частотном диапазоне. Передаточная функция SISO является отношением полиномов:
Передаточные функции заданы их числителем и полиномами знаменателя A(s)
и B(s)
. В MATLAB полином представлен вектором его коэффициентов, например, полиномом
задается как [1 2 10]
.
Чтобы создать объект TF, представляющий передаточную функцию:
задайте числитель и знаменатель полиномы и используйте 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) нулей и полюсов являются факторизованной формой передаточных функций:
Такие модели выставляют корни z
числителя (нули) и корней p
знаменателя (полюсов). Скалярный коэффициент k
называется усилением.
Чтобы создать модель ZPK:
задайте векторы полюсов и нулей и коэффициент усиления 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.
Модели пространства состояний (SS) являются представлениями систем LTI во временной области:
где x(t)
- вектор состояния, u(t)
является входным вектором и y(t)
- выход траектория.
Модели в пространстве состояний получают из дифференциальных уравнений, описывающих динамику системы. Для примера рассмотрим ОДУ второго порядка для простого электродвигателя:
где I
- ведущий ток (вход) и theta
- угловое перемещение ротора (выход). Эта ОДУ может быть переписана в форме пространства состояний как:
Чтобы создать эту модель, задайте матрицы пространства состояний 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
быть Герцем.
The tf
, zpk
, ss
, и frd
команды позволяют вам создавать модели SISO и MIMO. Для моделей TF или ZPK часто удобно создавать модели MIMO путем конкатенации более простых моделей SISO. Для примера можно создать передаточную функцию 2x2 MIMO:
использование:
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