Две степени свободы (2-DOF) ПИД-регуляторы включают взвешивание заданного значения на пропорциональных и производных условиях. ПИД-регулятор с 2 степенями свободы способен к быстрому подавлению помех без значительного увеличения перерегулирования в отслеживании заданного значения. ПИД-регуляторы 2-DOF также полезны, чтобы смягчить влияние изменений в ссылочном сигнале на управляющем сигнале.
Можно представлять ПИД-регуляторы с помощью специализированных объектов модели pid2
и pidstd2
. Эта тема описывает представление ПИД-регуляторов 2-DOF в MATLAB®. Для получения информации об автоматической настройке ПИД-регулятора смотрите, что ПИД-регулятор Настраивается.
Этот рисунок показывает типичную архитектуру управления с помощью ПИД-регулятора 2-DOF.
Отношение между контроллером 2-DOF вывод (u) и его два входных параметров (r и y) может быть представлено или в параллельной или в стандартной форме. Две формы отличаются по параметрам, используемым, чтобы выразить пропорциональное, интеграл и производные действия контроллера, как выражено в следующей таблице.
Форма | Формула |
---|---|
Параллель (объект pid2 ) |
В этом представлении:
|
Стандарт (объект pidstd2 ) |
В этом представлении:
|
Используйте форму контроллера, которая удобна для вашего приложения. Например, если вы хотите выразить интегратор и производные действия с точки зрения временных констант, используйте стандартную форму. Для примеров, показывающих, как создать параллельную форму и контроллеры стандартной формы, смотрите pid2
и страницы с описанием pidstd2
, соответственно.
Для получения информации о представлении ПИД-регуляторов в дискретное время смотрите Контроллеры Пропорциональной Интегральной Производной (PID) Дискретного времени.
ПИД-регулятор 2-DOF является 2D входом, одним выходным контроллером формы C 2 (s), как показано в следующей фигуре. Передаточная функция от каждого входа до вывода является самостоятельно ПИД-регулятором.
Каждый из компонентов Cr (s) и Cy (s) является ПИД-регулятором с различными весами на пропорциональных и производных условиях. Например, в непрерывное время, этими компонентами дают:
Можно получить доступ к этим компонентам путем преобразования ПИД-регулятора в 2D вход, передаточную функцию с одним выходом. Например, предположите, что C2
является ПИД-регулятором 2-DOF, сохраненным как объект pid2
.
C2tf = tf(C2); Cr = C2tf(1); Cy = C2tf(2);
Cr (s) является передаточной функцией от первого входа C2
к выводу. Точно так же Cy (s) является передаточной функцией от второго входа C2
к выводу.
Предположим, что G
является моделью динамической системы, такой как модель zpk
, представляя объект. Создайте передаточную функцию с обратной связью от r до y. Обратите внимание на то, что Cy (s) цикл имеет позитивные отклики по определению Cy (s).
T = Cr*feedback(G,Cy,+1)
Также используйте команду connect
, чтобы создать эквивалентную систему с обратной связью непосредственно с контроллером 2-DOF C2
. Для этого установите свойства InputName
и OutputName
G
и C2
.
G.InputName = 'u'; G.OutputName = 'y'; C2.Inputname = {'r','y'}; C2.OutputName = 'u'; T = connect(G,C2,'r','y');
Существуют другие настройки, в которых можно разложить ПИД-регулятор 2-DOF на компоненты SISO. Для конкретного выбора C (s) и X (s), каждая из следующих настроек эквивалентна архитектуре 2-DOF с C 2 (s). Можно получить C (s) и X (s) для каждой из этих настроек с помощью команды getComponents
.
В feedforward настройке ПИД-регулятор 2-DOF разложен на обычный ПИД-регулятор SISO, который берет сигнал ошибки в качестве его входа и feedforward контроллер.
Для непрерывно-разовой, параллельной формы ПИД-регулятор 2-DOF компонентами дают:
Доступ к этим компонентам с помощью getComponents
.
[C,X] = getComponents(C2,'feedforward');
Следующая команда создает систему с обратной связью от r до y для feedforward настройки.
T = G*(C+X)*feedback(1,G*C);
В настройке обратной связи ПИД-регулятор 2-DOF разложен на обычный ПИД-регулятор SISO и контроллер обратной связи.
Для непрерывно-разовой, параллельной формы ПИД-регулятор 2-DOF компонентами дают:
Доступ к этим компонентам с помощью getComponents
.
[C,X] = getComponents(C2,'feedback');
Следующая команда создает систему с обратной связью от r до y для настройки обратной связи.
T = G*C*feedback(1,G*(C+X));
В настройке фильтра ПИД-регулятор 2-DOF разложен на обычный ПИД-регулятор SISO и предварительный фильтр на ссылочном сигнале.
Для непрерывно-разовой, параллельной формы ПИД-регулятор 2-DOF компонентами дают:
Фильтр X (s) может также быть выражен как отношение: – [C r (s)/Cy (s)].
Следующая команда создает систему с обратной связью от r до y для настройки фильтра.
T = X*feedback(G*C,1);
Для примера, иллюстрирующего разложение ПИД-регулятора 2-DOF в эти настройки, смотрите, Разлагают ПИД-регулятор 2-DOF на Компоненты SISO.
Формулы, показанные выше, принадлежат непрерывно-разовому, контроллерам параллельной формы. Контроллеры стандартной формы и контроллеры в дискретное время могут быть разложены на аналогичные настройки. Команда getComponents
работает над всеми объектами ПИД-регулятора 2-DOF.
getComponents
| pid2
| pidTuner
| pidstd2
| pidtune