Настраивающий алгоритм ПИДа для линейной модели объекта управления
C = pidtune(sys,type)
C = pidtune(sys,C0)
C = pidtune(sys,type,wc)
C =
pidtune(sys,C0,wc)
C = pidtune(sys,...,opts)
[C,info]
= pidtune(...)
разрабатывает ПИД-регулятор типа C
= pidtune(sys
,type
)type
для объекта sys
. Если type
задает одну степень свободы (1-DOF) ПИД-регулятор, то контроллер разработан для модульной обратной связи, как проиллюстрировано:
Если type
задает две степени свободы (2-DOF) ПИД-регулятор, то pidtune
разрабатывает контроллер 2-DOF как в обратной связи этого рисунка:
pidtune
настраивает параметры ПИД-регулятора C
, чтобы сбалансировать производительность (время отклика) и робастность (запасы устойчивости).
разрабатывает контроллер того же типа и формы как контроллер C
= pidtune(sys
,C0
)C0
. Если sys
и C0
являются моделями дискретного времени, C
имеет те же дискретные формулы интегратора как C0
.
и C
= pidtune(sys
,type
,wc
)
задайте целевое значение C
=
pidtune(sys
,C0
,wc
)wc
для первых 0 частот перекрестного соединения усиления дБ ответа разомкнутого цикла.
использует дополнительные настраивающие опции, такие как целевое поле фазы. Используйте C
= pidtune(sys
,...,opts
)pidtuneOptions
, чтобы указать, что опция установила opts
.
[
возвращает структуру данных C
,info
]
= pidtune(...)info
, который содержит информацию об устойчивости с обратной связью, выбранной частоте перекрестного соединения коэффициента усиления разомкнутого контура и фактическом поле фазы.
|
Одно вход, модель динамической системы одно вывода объекта для проектирования контроллера.
Если объект имеет нестабильные полюса, и
необходимо использовать |
|
Тип контроллера контроллера, чтобы разработать, заданный как вектор символов. Термин controller type относится, к которому условия присутствуют в действии контроллера. Например, у контроллера PI есть только пропорциональное и интегральный термин, в то время как контроллер PIDF содержит пропорциональный, интегратор, и отфильтровал производные условия. Контроллеры 1-DOF
Контроллеры 2-DOF
Для получения дополнительной информации о ПИД-регуляторах 2-DOF обычно, см. Два ПИД-регулятора Степени свободы. Контроллеры 2-DOF с фиксированными весами заданного значения
Для более подробной информации о фиксированном весе заданного значения ПИД-регуляторы 2-DOF смотрите Типы ПИД-регулятора для Настройки. Форма контроллераКогда вы используете вход Если Для получения дополнительной информации о формах ПИД-регулятора и формулах, см.:
|
|
Свойства установки ПИД-регулятора разработанного контроллера, заданного как
|
|
Целевое значение для 0 усилений дБ перекрестно соединяет частоту настроенного ответа разомкнутого цикла. Задайте Увеличьте |
|
Набор опции, задающий дополнительные настраивающие опции для |
|
Контроллер разработан для Форма контроллера:
Тип контроллера:
Или в случае, однако, где алгоритм может достигнуть соответствующей производительности и робастности с помощью контроллера более низкоуровневого, чем заданный с Временной интервал:
Если вы задаете |
|
Структура данных, содержащая информацию о производительности и робастности настроенного цикла ПИДа. Поля
Если |
Этот пример показывает, как разработать ПИД-регулятор для объекта, данного:
Как первая передача, создайте модель объекта и разработайте простой контроллер PI для него.
sys = zpk([],[-1 -1 -1],1);
[C_pi,info] = pidtune(sys,'PI')
C_pi = 1 Kp + Ki * --- s with Kp = 1.14, Ki = 0.454 Continuous-time PI controller in parallel form.
info = struct with fields:
Stable: 1
CrossoverFrequency: 0.5205
PhaseMargin: 60.0000
C_pi
является контроллером pid
объект, который представляет контроллер PI. Поля info
показывают, что настраивающийся алгоритм выбирает частоту перекрестного соединения разомкнутого цикла приблизительно 0,52 рад/с.
Исследуйте переходной процесс с обратной связью (отслеживание уставки) управляемой системы.
T_pi = feedback(C_pi*sys, 1); step(T_pi)
Чтобы улучшить время отклика, можно установить более высокую целевую перекрестную частоту, чем результат, который pidtune
автоматически выбирает, 0.52. Увеличьте перекрестную частоту до 1,0.
[C_pi_fast,info] = pidtune(sys,'PI',1.0)
C_pi_fast = 1 Kp + Ki * --- s with Kp = 2.83, Ki = 0.0495 Continuous-time PI controller in parallel form.
info = struct with fields:
Stable: 1
CrossoverFrequency: 1
PhaseMargin: 43.9973
Новый контроллер достигает более высокой перекрестной частоты, но за счет сокращенной прибыли фазы.
Сравните переходной процесс с обратной связью с этими двумя контроллерами.
T_pi_fast = feedback(C_pi_fast*sys,1); step(T_pi,T_pi_fast) axis([0 30 0 1.4]) legend('PI','PI,fast')
Это сокращение производительности заканчивается, потому что у контроллера PI нет достаточных степеней свободы, чтобы достигнуть хорошего поля фазы на перекрестной частоте 1,0 рад/с. Добавление производного действия улучшает ответ.
Разработайте контроллер PIDF для Gc
с целевой перекрестной частотой 1,0 рад/с.
[C_pidf_fast,info] = pidtune(sys,'PIDF',1.0)
C_pidf_fast = 1 s Kp + Ki * --- + Kd * -------- s Tf*s+1 with Kp = 2.72, Ki = 0.985, Kd = 1.72, Tf = 0.00875 Continuous-time PIDF controller in parallel form.
info = struct with fields:
Stable: 1
CrossoverFrequency: 1
PhaseMargin: 60.0000
Поля информации показывают, что производное действие в контроллере позволяет настраивающемуся алгоритму разрабатывать более агрессивный контроллер, который достигает целевой перекрестной частоты с хорошим полем фазы.
Сравните переходной процесс с обратной связью и подавление помех для быстрого PI и контроллеров PIDF.
T_pidf_fast = feedback(C_pidf_fast*sys,1); step(T_pi_fast, T_pidf_fast); axis([0 30 0 1.4]); legend('PI,fast','PIDF,fast');
Можно сравнить вход (загрузка) подавление помех управляемой системы с быстрым PI и контроллерами PIDF. Для этого постройте ответ передаточной функции с обратной связью от входа объекта до объекта вывод.
S_pi_fast = feedback(sys,C_pi_fast); S_pidf_fast = feedback(sys,C_pidf_fast); step(S_pi_fast,S_pidf_fast); axis([0 50 0 0.4]); legend('PI,fast','PIDF,fast');
Этот график показывает, что контроллер PIDF также обеспечивает более быстрое подавление помех.
Разработайте ПИД-регулятор в стандартной форме для объекта, заданного
Чтобы разработать контроллер в стандартной форме, используйте контроллер стандартной формы в качестве аргумента C0
к pidtune
.
sys = zpk([],[-1 -1 -1],1); C0 = pidstd(1,1,1); C = pidtune(sys,C0)
C = 1 1 Kp * (1 + ---- * --- + Td * s) Ti s with Kp = 2.18, Ti = 2.36, Td = 0.591 Continuous-time PID controller in standard form
Разработайте контроллер PI дискретного времени, использующий заданный метод, чтобы дискретизировать интегратор.
Если ваш объект находится в дискретное время, pidtune
автоматически возвращает контроллер дискретного времени, использующий значение по умолчанию метод интегрирования Форварда Эйлера. Чтобы задать различный метод интегрирования, используйте pid
или pidstd
, чтобы создать контроллер дискретного времени, имеющий желаемый метод интегрирования.
sys = c2d(tf([1 1],[1 5 6]),0.1); C0 = pid(1,1,'Ts',0.1,'IFormula','BackwardEuler'); C = pidtune(sys,C0)
C = Ts*z Kp + Ki * ------ z-1 with Kp = -0.518, Ki = 10.4, Ts = 0.1 Sample time: 0.1 seconds Discrete-time PI controller in parallel form.
Используя C0
, когда вход заставляет pidtune
разрабатывать контроллер C
той же формы, вводить, и метод дискретизации как C0
. Отображение показывает, что интегральный термин C
использует Обратный Эйлеров метод интегрирования.
Задайте Трапециевидный интегратор и сравните получившийся контроллер.
C0_tr = pid(1,1,'Ts',0.1,'IFormula','Trapezoidal'); Ctr = pidtune(sys,C_tr)
Ctr = Ts*(z+1) Ki * -------- 2*(z-1) with Ki = 10.4, Ts = 0.1 Sample time: 0.1 seconds Discrete-time I-only controller.
Разработайте ПИД-регулятор 2-DOF для объекта, данного передаточной функцией:
Используйте целевую пропускную способность 1,5 рад/с.
wc = 1.5;
G = tf(1,[1 0.5 0.1]);
C2 = pidtune(G,'PID2',wc)
C2 = 1 u = Kp (b*r-y) + Ki --- (r-y) + Kd*s (c*r-y) s with Kp = 1.26, Ki = 0.255, Kd = 1.38, b = 0.665, c = 0 Continuous-time 2-DOF PID controller in parallel form.
Используя тип 'PID2'
заставляет pidtune
генерировать контроллер 2-DOF, представленный как объект pid2
. Отображение подтверждает этот результат. Отображение также показывает, что pidtune
настраивает все коэффициенты контроллера, включая веса заданного значения b
и c
, чтобы сбалансировать производительность и робастность.
По умолчанию pidtune
с входом type
возвращает контроллер pid
в параллельной форме. Чтобы разработать контроллер в стандартной форме, используйте контроллер pidstd
в качестве входного параметра C0
. Для получения дополнительной информации о параллельных и стандартных формах контроллера, смотрите страницы с описанием pidstd
и pid
.
Для получения информации о настраивающем алгоритме MathWorks® PID смотрите, что ПИД Настраивает Алгоритм.
Для интерактивной настройки ПИДа используйте PID Tuner. См. Проект ПИД-регулятора для Быстрого Отслеживания уставки для примера разработки контроллера, использующего PID Tuner.
PID Tuner не может разработать контроллеры для нескольких объектов целиком.
Åström, K. J. и Hägglund, T. Усовершенствованное управление ПИДом, Ресерч-Трайэнгел-Парк, NC: инструментирование, системы и общество автоматизации, 2006.