В этом примере показано, как спроектировать PID-контроллер для установки, указанный в:
1) 3.
В качестве первого прохода создайте модель установки и сконструируйте для нее простой 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 также обеспечивает более быстрое отклонение возмущений.