В этом примере показано, как переключаться между представлением передаточной функции (TF), нулевого коэффициента усиления (ZPK), состояния-пространства (SS) и данных частотного отклика (FRD) систем LTI.
Можно преобразовать модели из одного представления в другое с помощью тех же команд, которые используются для построения моделей LTI (tf, zpk, ss, и frd). Например, можно преобразовать модель «состояние-пространство»:
sys = ss(-2,1,1,3);
в модель с нулевым коэффициентом усиления путем ввода:
zpksys = zpk(sys)
zpksys =
3 (s+2.333)
-----------
(s+2)
Continuous-time zero/pole/gain model.
Аналогично, можно вычислить передаточную функцию sys путем ввода:
tf(sys)
ans = 3 s + 7 ------- s + 2 Continuous-time transfer function.
Преобразования в FRD требуют частотного вектора:
f = logspace(-2,2,10); frdsys = frd(sys,f)
frdsys =
Frequency(rad/s) Response
---------------- --------
0.0100 3.5000 - 0.0025i
0.0278 3.4999 - 0.0070i
0.0774 3.4993 - 0.0193i
0.2154 3.4943 - 0.0532i
0.5995 3.4588 - 0.1375i
1.6681 3.2949 - 0.2459i
4.6416 3.0783 - 0.1817i
12.9155 3.0117 - 0.0756i
35.9381 3.0015 - 0.0277i
100.0000 3.0002 - 0.0100i
Continuous-time frequency response.
Следует отметить, что модели FRD не могут быть преобразованы обратно в представления TF, ZPK или SS (для такого преобразования требуются инструменты идентификации частотной области, доступные в окне «Идентификация системы»).
Все пути преобразования типа модели суммированы на диаграмме ниже.

Для некоторых команд требуется определенный тип модели LTI. Для удобства такие команды автоматически преобразуют входящие модели LTI в соответствующее представление. Например, в примере кода:
sys = ss(0,1,1,0);
[num,den] = tfdata(sys,'v')num = 1×2
0 1
den = 1×2
1 0
функция tfdata автоматически преобразует модель state-space sys эквивалентной передаточной функции для получения ее числителя и данных знаменателя.
Преобразования между представлениями TF, ZPK и SS включают численные вычисления и могут привести к потере точности при чрезмерном использовании. Поскольку представления SS и FRD лучше всего подходят для числовых вычислений, рекомендуется преобразовать все модели в SS или FRD и использовать представления TF и ZPK только для построения или отображения.
Например, преобразование модели ZPK
G = zpk([],ones(10,1),1,0.1)
G =
1
--------
(z-1)^10
Sample time: 0.1 seconds
Discrete-time zero/pole/gain model.
в TF и затем обратно в ZPK:
G1 = zpk(tf(G));
Теперь сравните местоположения полюсов для G и G1:
G1 = zpk(tf(G)); pzmap(G,'b',G1,'r') axis([0.5 1.5 -0.4 0.4]) legend('G','G1')

Наблюдайте, как полюс кратности 10 при z=1 в G заменяется кластером полюсов в G1. Это происходит потому, что полюса G1 вычисляются как корни многочлена
45z2-10z + 1
и o(eps) ошибки последнего коэффициента этого многочлена достаточно для перемещения корней на
10-2).
Другими словами, представление передаточной функции недостаточно точно, чтобы зафиксировать поведение системы около z = 1, которое также видно на графике Боде G против. G1:
bode(G,'b',G1,'r--'), grid legend('G','G1')

Это иллюстрирует, почему следует избегать ненужных преобразований модели.