Для одномерных систем функция [z, p, k] = zpkdata(sys, V) возвращает нули и полюсы знаменателя в виде числовых значений векторов-столбцов, а не
ввиде описания размерностей массива ячеек.
3.6.Преобразование lti-моделей
|
c2d |
Построение дискретной модели непрерывной системы |
|
|
d2c |
Построение непрерывной модели дискретной системы |
|
|
d2d |
Изменение периода дискретности и запаздывания по входам |
|
|
ss |
Преобразование моделей в ss-форму |
|
|
tf |
Преобразование моделей в tf-форму |
|
|
zpk |
Преобразование моделей в zpk-форму |
|
|
|
||
c2d |
Построение дискретной модели непрерывной системы |
||
|
|
|
|
Синтаксис:
SysD = c2d(SysC, Ts)
SysD = c2d(SysC, Ts, 'метод')
SysD = c2d(SysC, Ts, 'PREWARP', We) [SysD, G] = c2d(SysC, Ts, 'FOH')
Функция SysD = c2d(SysC, Ts) реализует построение дискретной моде-' ли SysD непрерывной системы SysC с периодом дискретности Ts и с использованием экстраполятора нулевого порядка по умолчанию.
Функция SysD = c2d(SysC, Ts, 'метод') реализует построение дискретной модели SysD непрерывной системы SysC с периодом дискретности Ts и с использованием одного из ниже перечисленных методов экстраполяции:
Метод экстраполяции |
Описание метода |
ZOH |
Экстраполятор нулевого порядка |
FOH |
Экстраполятор первого порядка |
TUSTIN |
Билинейная аппроксимация Тастина |
PREWARP |
Аппроксимация Тастина с коррекцией |
MATCHED |
Метод соответствия нулей и полюсов |
Функция SysD = c2d(SysC, Ts, 'PREWARP', We) реализует построение дискретной модели SysD непрерывной системы SysC с периодом дискретности Ts и с использованием аппроксимации Тастина с коррекцией, параметр We задает частоту, на которой выполняется согласование частотных характеристик непрерывной и дискретной моделей. Эта функция применима только для одномерных моделей.
Функция [SysD, G] = c2d(SysC, Ts, 'FOH') реализует построение дискретной модели SysD непрерывной системы SysC с периодом дискретности Ts и с использованием экстраполятора первого порядка. Выходная матрица G позволяет для модели SysC, заданной в подклассе ss, с вектором начальных условий х0, вычислить эквивалентное начальное состояние по формуле x0-G*u(l,:).
Пример: построить дискретную модель с экстраполятором первого порядка и периодом дискретности 0,1 с для непрерывной системы с запаздыванием по входу 0,35 с.
» H=tf([1 -1], [1 4 5],'InputDelay',0.35)
Transfer function:
s - 1 exp(-0.35*s) * -------------
s^2 + 4 s + 5
|
» Hd=c2d(H,0.1,'foh') |
|
Transfer function: |
|
0.0115 z^3 + 0.0456 z^2 - 0.0562 z - 0.009104 |
|
z^(-3) * --------------------------------------------------------- |
|
z^3 - 1.629 z^2 + 0.6703 z |
|
Sampling time: 0.1 |
|
|
d2c |
Построение непрерывной модели дискретной системы |
|
|
|
Синтаксис: |
|
SysC = d2c(SysD, Ts) |
|
SysC = d2c(SysD, Ts, 'метод') |
Первый вариант функции реализует построение непрерывной модели SysC дискретной системы SysD при условии, что модель дискретной системы соответствует экстраполятору нулевого порядка. Второй – использует один из методов экстраполяции, указанных в описании предыдущей функции.
Ограничения:
Аппроксимация Тастина не определена для систем с полюсами z = -1 и плохо обусловлена для систем с полюсами, близкими к z = -1.
Восстановление непрерывной модели с экстраполяцией ‗ZOH‘ не применимо к дискретным моделям с нулевыми полюсами. Кроме того, этот метод приводит к росту порядка непрерывной модели, если исходная дискретная система имеет отрицательные действительные полюсы. Это связано с тем, что функция логарифма от матрицы отображает отрицательные действительные полюсы в комплексные.
d2d |
Изменение периода дискретности и учет запаздыания |
|
|
Синтаксис:
sys = d2d(sys, Ts) sys = d2d(sys, [ ], Nd)
Первая функция формирует дискретную модель системы sys с новым периодом дискретности Ts. При этом предполагается, что дискретной модели соответствует экстраполятор нулевого порядка и соответствующее преобразование равносильно такой последовательности преобразований: sys1 = = c2d (d2c (sys), Ts).
Вторая функция формирует дискретную модель с запаздыванием по входам, которые задаются вектором целочисленных множителей Nd, так что вектор запаздываний по входам равен Nd*Ts. Если запаздывание по всем входам одинаково, то оно может быть задано одним числом Nd.
3.7. Переопределение базисных функций
plus, minus |
Сложение и вычитание lti-моделей |
|
|
Синтаксис:
sys = plus(sys1, sys2) sys = minus(sys1, sys2)
Функция sys = plus(sys1, sys2) выполняет операцию сложения двух объектов; она переопределена для моделей подкласса ss, tf, zpk и соответствует параллельному соединению lti-объектов.
Функция sys = minus(sys1, sys2) предназначена для вычитания двух объектов и соответствует параллельному соединению lti-объектов, для одного из которых знак изменяется на противоположный.
mtimes |
Умножение lti-моделей |
|
|
Синтаксис:
sys = mtimes(sys1, sys2)
Функция sys = mtimes(sys1, sys2) предназначена для умножения двух объектов и соответствует последовательному соединению lti-объектов.
ctranspose , transpose |
Транспонирование lti-моделей |
|
|
Синтаксис:
sys1 = ctranspose(sys) sys1 = transpose(sys)
Функция sys1 = ctranspose(sys) предназначена для построения сопряженных моделей для lti-объектов.
ss-модели:
для непрерывных моделей, заданных четверкой {A, B, C, D}, функция ctranspose возвращает четверку {-A’, -C’, B’, D’};
для дискретных моделей, заданных четверкой {A, B, C, D}, функция ctranspose возвращает четверку {AA, AA*C’’, -B’*AA, D’-B’*AAC’’}, где AA
=inv(A’).
tf и zpk модели:
для непрерывных моделей с передаточной функцией H(s) функция ctranspose возвращает передаточную функцию H(-s)’;
для дискретных моделей с передаточной функцией H(z) функция ctranspose возвращает передаточную функцию H(z -1)’.
Функция sys1 = transpose(sys) предназначена для транспонирования ltiобъектов.
ss-модели:
для непрерывных и дискретных моделей, заданных четверками {A, B, C, D}, функция transpose возвращает четверки {A .’, C .’, B .’, D .’};
tf и zpk модели:
для непрерывных моделей с передаточной функцией H(s) функция transpose возвращает передаточную функцию H(s).’;
для дискретных моделей с передаточной функцией H(z) функция transpose возвращает передаточную функцию H(z).’.
inv |
Инверсия lti-моделей |
|
|
Синтаксис: isys = inv(sys)
Функция isys = inv(sys) выполняет инверсию входа и выхода системы так, что линейное соответствие вида y G s u преобразуется в соответствие вида
u H s
y , где H s
G s
1 . Эта операция определена только для систем с
одинаковым числом входов и выходов и обратимой матрицей D. Пример:
Рассмотрим систему с двумя входами и двумя выходами, которая описывается матричной передаточной функцией
H s
и построим ее инверсную модель.
» H=[1 tf(1,[1 1]);0 1]
Transfer function from input 1 to output...
1 |
|
1 |
|
|
|
||
s |
1 |
||
|
|||
0 |
|
1 |
#1: 1 #2: 0
Transfer function from input 2 to output...
1 #1: -----
s + 1 #2: 1
» Hi=inv(H)
Transfer function from input 1 to output...
#1: 1 #2: 0
Transfer function from input 2 to output...
-1 #1: -----
s + 1
#2: 1
Ограничения: не следует применять функцию inv к моделям с обратными связями.
mrdivide, mldivide |
Транспонирование lti-моделей |
|
|
Синтаксис:
sys = mrdivide(sys1, sys2) sys = mldivide(sys1, sys2)
Функция sys = mrdivide(sys1, sys2) выполняет операцию левого деления, что соответствует построению модели вида sys1*inv sys2 .
Функция sys = mldivide(sys1, sys2) предназначена для построения модели вида inv sis1 * sys2 .
3.8. Соединение lti-моделей
parallel |
Параллельное соединение lti-моделей |
|
|
Синтаксис:
sys = parallel(sys1, sys2)
sys = parallel(sys1, sys2, inp1, inp2, out1, out2)