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.

См. также

| |

Введенный в R2011b
Для просмотра документации необходимо авторизоваться на сайте