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