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