Преобразуйте задержку в модели дискретного времени в коэффициенты 1/z

Этот пример показывает, как преобразовать временную задержку в модели дискретного времени в факторы 1/_z_.

В модели в дискретном времени временная задержка одного интервала дискретизации эквивалентна коэффициенту 1/_z_ (полюсу в z = 0) в модели. Поэтому задержки, сохраненные в InputDelay, OutputDelay, или IODelay свойства модели в дискретном времени могут быть переписаны в динамике модели путем переписывания их как полюсов в z = 0. Однако дополнительные полюса увеличивают порядок работы системы. В частности, для больших временных задержек это может привести к системам очень высокого порядка, что приведет к длительным временам расчета или численным неточностям.

Чтобы проиллюстрировать, как исключить задержки в дискретное время модели с обратной связью и наблюдать эффекты этого, создайте следующую систему с обратной связью:

G является системой дискретного времени первого порядка с задержкой на входе, а C является ПИ-контроллер.

G = ss(0.9,0.125,0.08,0,'Ts',0.01,'InputDelay',7);
C = pid(6,90,0,0,'Ts',0.01);
T = feedback(C*G,1);

Закрытие цикла обратной связи на объекте с входами параметров приводит к внутренним задержкам в системе с обратной связью. Исследуйте порядок и внутреннюю задержку T.

order(T)
ans = 2
T.InternalDelay
ans = 7

T является моделью пространства состояний второго порядка. Одно состояние вносит объект первого порядка, а другое - один полюс ПИ-контроллера. Задержки не увеличивают порядок T. Вместо этого они представлены как внутренняя задержка из семи временных шагов.

Замените внутреннюю задержку на z-7.

Tnd = absorbDelay(T);

Эта команда преобразует внутреннюю задержку в семь полюсов при z = 0. Чтобы подтвердить это, исследуйте порядок и внутреннюю задержку Tnd.

order(Tnd)
ans = 9
Tnd.InternalDelay
ans =

  0x1 empty double column vector

Tnd не имеет внутренней задержки, но это модель девятого порядка, из-за семи дополнительных полюсов, введенных путем поглощения задержки из семи единиц в динамику модели.

Несмотря на это различие в представлении, ответы Tnd в точности совпадают с таковыми у T.

stepplot(T,Tnd,'r--')
legend('T','Tnd')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent T, Tnd.

bodeplot(T,Tnd,'r--')
legend('T','Tnd')

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent T, Tnd. Axes 2 contains 2 objects of type line. These objects represent T, Tnd.

См. также

Похожие примеры

Подробнее о