В этом примере показано, как извлечь компоненты управления SISO из контроллера PID 2-DOF в каждой конфигурации передачи, обратной связи и фильтра. В примере сравниваются системы с замкнутым контуром во всех конфигурациях для подтверждения их эквивалентности.
Получите 2-DOF PID-контроллер. Для этого примера создайте модель завода и настройте диспетчера PID с 2 финансовыми департаментами для него.
G = tf(1,[1 0.5 0.1]);
C2 = pidtune(G,'pidf2',1.5);C2 является pid2 объект контроллера. Архитектура управления для C2 как показано на следующей иллюстрации.

Эта система управления может быть эквивалентно представлена в нескольких других архитектурах, которые используют только компоненты SISO. В конфигурации прямой связи контроллер 2-DOF представлен как контроллер PID 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.
Эта команда возвращает PID-контроллер SISO Cff в качестве pid объект. Компенсатор обратной связи X возвращается как zpk объект.
Создайте систему с замкнутым контуром для конфигурации прямой связи.
Tff = G*(Cff+Xff)*feedback(1,G*Cff);
В конфигурации обратной связи контроллер 2-DOF представлен как контроллер PID SISO и дополнительный компенсатор обратной связи.

Разложиться C2 использование конфигурации обратной связи и построение этой системы с замкнутым контуром.
[Cfb, Xfb] = getComponents(C2,'feedback');
Tfb = G*Cfb*feedback(1,G*(Cfb+Xfb));В конфигурации фильтра контроллер 2-DOF представлен как контроллер PID SISO и предварительный фильтр опорного сигнала.

Разложиться C2 с использованием конфигурации фильтра. Постройте и эту замкнутую систему.
[Cfr, Xfr] = getComponents(C2,'filter');
Tfr = Xfr*feedback(G*Cfr,1);Постройте замкнутую систему для исходного контроллера 2-DOF, C2. Для этого преобразуйте C2 к передаточной функции с двумя входами и одним выходом и использовать индексацию массива для доступа к каналам.
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 PID контроллера может привести к повышению производительности по сравнению с 1-DOF контроллером. Для получения дополнительной информации посмотрите Мелодию Диспетчер PID с 2 финансовыми департаментами (Командная строка).
getComponents | pid2 | pidstd2