В этом примере показано, как извлечь компоненты элемента управления SISO из ПИД-регулятора 2-DOF в каждом feedforward, обратной связи и настройках фильтра. Пример сравнивает системы с обратной связью во всех настройках, чтобы подтвердить, что они - весь эквивалент.
Получите ПИД-регулятор 2-DOF. В данном примере создайте модель объекта управления и настройте ПИД-регулятор 2-DOF для него.
G = tf(1,[1 0.5 0.1]);
C2 = pidtune(G,'pidf2',1.5);
C2
pid2
объект контроллера. Архитектура управления для C2
находится как показано на следующем рисунке.
Эта система управления может быть эквивалентно представлена в нескольких других архитектурах, которые используют только компоненты SISO. В настройке прямого распространения контроллер 2-DOF представлен как ПИД-регулятор SISO и компенсатор прямого распространения.
Анализируйте C2
в компоненты элемента управления SISO с помощью настройки прямого распространения.
[Cff,Xff] = getComponents(C2,'feedforward')
Cff = 1 s Kp + Ki * --- + Kd * -------- s Tf*s+1 with Kp = 1.12, Ki = 0.23, Kd = 1.3, Tf = 0.122 Continuous-time PIDF controller in parallel form. Xff = -10.898 (s+0.2838) ------------------ (s+8.181) Continuous-time zero/pole/gain model.
Эта команда возвращает ПИД-регулятор SISO Cff
как pid
объект. Компенсатор прямого распространения X
возвращен как zpk
объект.
Создайте систему с обратной связью для настройки прямого распространения.
Tff = G*(Cff+Xff)*feedback(1,G*Cff);
В настройке обратной связи контроллер 2-DOF представлен как ПИД-регулятор SISO и дополнительный компенсатор обратной связи.
Анализируйте C2
использование настройки обратной связи и построения, что система с обратной связью.
[Cfb, Xfb] = getComponents(C2,'feedback');
Tfb = G*Cfb*feedback(1,G*(Cfb+Xfb));
В настройке фильтра контроллер 2-DOF представлен как ПИД-регулятор SISO и предварительный фильтр на опорном сигнале.
Анализируйте C2
использование настройки фильтра. Создайте ту систему с обратной связью также.
[Cfr, Xfr] = getComponents(C2,'filter');
Tfr = Xfr*feedback(G*Cfr,1);
Создайте систему с обратной связью для исходного контроллера 2-DOF, C2
. Для этого преобразуйте C2
к 2D входу, передаточной функции с одним выходом и индексации массива использования, чтобы получить доступ к каналам.
Ctf = tf(C2); Cr = Ctf(1); Cy = Ctf(2); T = Cr*feedback(G,Cy,+1);
Сравните переходные процессы всех систем с обратной связью.
stepplot(T,Tff,Tfb,Tfr) legend('2-DOF','feedforward','feedback','filter','Location','Southeast')
Графики совпадают, демонстрируя, что все системы эквивалентны.
Используя 2-DOF ПИД-регулятор может дать к улучшенной производительности по сравнению с контроллером 1-DOF. Для получения дополнительной информации смотрите Мелодию ПИД-регулятор 2-DOF (Командная строка).
getComponents
| pid2
| pidstd2