Можно использовать команды анализа, такие как step
, bode
, или margin
анализировать системы с задержками по времени. Программа не делает никаких приближений при выполнении такого анализа.
Например, рассмотрим следующий цикл управления, где объект моделируется как время первого порядка плюс мертвое:
Можно смоделировать систему с обратной связью из r
на y
следующими командами:
s = tf('s');
P = 5*exp(-3.4*s)/(s+1);
C = 0.1 * (1 + 1/(5*s));
T = feedback(P*C,1);
T
является моделью пространства состояний с внутренней задержкой. Для получения дополнительной информации о моделях с внутренними задержками смотрите Закрытие циклов обратной связи с временными задержками.
Постройте график переходной характеристики T
:
stepplot(T)
Для более сложных соединений можно назвать входные и выходные сигналы каждого блока и использовать connect
чтобы автоматически позаботиться о проводке. Предположим, например, что вы хотите добавить feedforward в цикл управления предыдущей модели.
Можно вывести соответствующую модель замкнутой системы Tff
около
F = 0.3/(s+4); P.InputName = 'u'; P.OutputName = 'y'; C.InputName = 'e'; C.OutputName = 'uc'; F.InputName = 'r'; F.OutputName = 'uf'; Sum1 = sumblk('e','r','y','+-'); % e = r-y Sum2 = sumblk('u','uf','uc','++'); % u = uf+uc Tff = connect(P,C,F,Sum1,Sum2,'r','y');
и сравните его ответ с дизайном только обратной связи.
stepplot(T,Tff) legend('No feedforward','Feedforward')
Представление пространства состояний отслеживает внутренние задержки в обеих моделях.
Временные и частотные характеристики систем задержки могут выглядеть нечетно и подозрительно для тех, кто только знаком с LTI-анализом без задержки. Временные отклики могут вести себя хаотично, диаграммы Боде могут демонстрировать колебания усиления и т.д. Это не программное обеспечение или числовые причуды, а реальные функции таких систем. Ниже приведены несколько рисунки этих явлений.
Пульсация усиления:
s = tf('s');
G = exp(-5*s)/(s+1);
T = feedback(G,.5);
bodemag(T)
Колебания усиления:
G = 1 + 0.5 * exp(-3*s); bodemag(G)
Jagged переходная характеристика:
G = exp(-s) * (0.8*s^2+s+2)/(s^2+s); T = feedback(G,1); stepplot(T)
Обратите внимание на обратные (эхо) изменения функции начального шага.
Хаотический ответ:
G = 1/(s+1) + exp(-4*s); T = feedback(1,G); stepplot(T,150)
Можно использовать инструменты Control System Toolbox™, чтобы смоделировать и проанализировать эти и другие странно появляющиеся программные продукты внутренних задержек.