exponenta event banner

absorbDelay

Замена временных задержек полюсами при z = 0 или фазовом сдвиге

Синтаксис

sysnd = absorbDelay(sysd)
[sysnd,G] = absorbDelay(sysd)

Описание

sysnd = absorbDelay(sysd) поглощает все временные задержки динамической модели системы sysd в данные динамики системы или частотной характеристики.

Для дискретно-временных моделей (кроме моделей данных частотного отклика) задержка составляет k периоды выборки заменяются на k полюса при z = 0. Для моделей непрерывного времени (кроме моделей данных частотного отклика) временные задержки не имеют точного представления с конечным числом полюсов и нулей. Поэтому используйте pade(Панель инструментов системы управления) для вычисления рациональной аппроксимации временной задержки.

Для моделей данных частотной характеристики за непрерывное и дискретное время absorbDelay поглощает все временные задержки в данных частотной характеристики в виде фазового сдвига.

[sysnd,G] = absorbDelay(sysd) возвращает матрицу G который отображает начальные состояния ss(Панель инструментов системы управления) sysd к начальным состояниям sysnd.

Примеры

свернуть все

Создайте функцию передачи дискретного времени, которая имеет временную задержку.

z = tf('z',-1);
sysd = (-0.4*z -0.1)/(z^2 + 1.05*z + 0.08);
sysd.InputDelay = 3
sysd =
 
              -0.4 z - 0.1
  z^(-3) * -------------------
           z^2 + 1.05 z + 0.08
 
Sample time: unspecified
Discrete-time transfer function.

Отображение sysd представляет InputDelay как фактор z^(-3), отдельно от системных полюсов, которые появляются в знаменателе передаточной функции.

Поглощать временную задержку в динамике системы в виде полюсов на z= 0.

sysnd = absorbDelay(sysd)
sysnd =
 
        -0.4 z - 0.1
  -------------------------
  z^5 + 1.05 z^4 + 0.08 z^3
 
Sample time: unspecified
Discrete-time transfer function.

Отображение sysnd показывает, что коэффициент z^(-3) был поглощен в качестве дополнительных полюсов в знаменателе.

Убедитесь, что sysnd не имеет задержки на входе.

sysnd.InputDelay
ans = 0

Создайте модель полинома дискретного времени.

m = idpoly(1,[0 0 0 2 3]);

Новообращенный m в модель передаточной функции.

sys = tf(m)
sys =
 
  z^(-2) * (2 z^-1 + 3 z^-2)
 
Sample time: unspecified
Discrete-time transfer function.

Числитель передаточной функции, sysявляется [0 2 3] и задержку транспортировки, sys.IODelay, равно 2. Это потому, что значение многочлена B, m.B, имеет 3 ведущих нуля. Первый фиксированный ноль показывает отсутствие прохождения в модели. Два нуля после этого рассматриваются как задержки ввода-вывода.

Использовать absorbDelay считать начальные нули регулярными B коэффициенты.

m2 = absorbDelay(m);
sys2 = tf(m2)
sys2 =
 
  2 z^-3 + 3 z^-4
 
Sample time: unspecified
Discrete-time transfer function.

Числитель sys2 является [0 0 0 2 3] и задержка в транспортировке 0. Модель m2 обрабатывает начальные нули как обычные коэффициенты, освобождая их значения. m2.Structure.B.Free(2:3) является TRUE в то время как m.Structure.B.Free(2:3) является FALSE.

См. также

| | (Панель инструментов системы управления)

Представлен в R2012a