Две степени свободы (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