Разработка системы каскадного регулирования с контроллерами PI

Этот пример показывает, как разработать цикл каскадного регулирования с двумя контроллерами PI, использующими pidtune команду.

Введение в каскадное регулирование

Каскадное регулирование в основном используется, чтобы достигнуть быстрого отклонения воздействия, прежде чем это распространит к другим частям объекта. Самая простая система каскадного регулирования включает два цикла управления (внутренний и внешний) как показано в блок-схеме ниже.

C1 контроллера во внешнем цикле является первичным контроллером, который регулирует первичную управляемую переменную y1 путем установки заданного значения внутреннего цикла. C2 контроллера во внутреннем цикле является вторичным контроллером, который отклоняет воздействие d2 локально, прежде чем это распространит к P1. Для системы каскадного регулирования, чтобы функционировать правильно, внутренний цикл должен ответить намного быстрее, чем внешний цикл.

В этом примере вы разработаете одну систему управления цикла с контроллером PI и систему каскадного регулирования с двумя контроллерами PI. Ответы этих двух систем управления сравнены и для отслеживания уставки и для подавления помех.

Объект

В этом примере объект внутреннего цикла P2

P2(s)=3s+2

Объект внешнего цикла P1

P1(s)=10(s+1)3

P2 = zpk([],-2,3);
P1 = zpk([],[-1 -1 -1],10);

Разработка одной системы управления цикла с контроллером PI

Используйте pidtune команду, чтобы разработать контроллер PI в стандартной форме для целой модели объекта управления P = P1 * P2.

Желаемая пропускная способность разомкнутого цикла составляет 0,2 рад/с, который примерно соответствует времени отклика в 10 секунд.

% The plant model is P = P1*P2
P = P1*P2; 
% Use a PID or PIDSTD object to define the desired controller structure
C = pidstd(1,1);
% Tune PI controller for target bandwidth is 0.2 rad/s
C = pidtune(P,C,0.2);
C
C =
 
             1      1 
  Kp * (1 + ---- * ---)
             Ti     s 

  with Kp = 0.0119, Ti = 0.849
 
Continuous-time PI controller in standard form

Разработка системы каскадного регулирования с двумя контроллерами PI

Лучшая практика состоит в том, чтобы разработать контроллер внутреннего цикла C2 сначала и затем разработать контроллер внешнего цикла C1 с замкнутым внутренним кругом. В этом примере пропускная способность внутреннего цикла выбрана как 2 рад/с, который в десять раз выше, чем желаемая пропускная способность внешнего цикла. В порядке иметь эффективную систему каскадного регулирования, важно, чтобы внутренний цикл ответил намного быстрее, чем внешний цикл.

Настройте контроллер внутреннего цикла C2 с пропускной способностью разомкнутого цикла на уровне 2 рад/с.

C2 = pidtune(P2,pidstd(1,1),2);
C2
C2 =
 
             1      1 
  Kp * (1 + ---- * ---)
             Ti     s 

  with Kp = 0.244, Ti = 0.134
 
Continuous-time PI controller in standard form

Настройте контроллер внешнего цикла C1 с той же пропускной способностью как одна система цикла.

% Inner loop system when the control loop is closed first
clsys = feedback(P2*C2,1); 
% Plant seen by the outer loop controller C1 is clsys*P1
C1 = pidtune(clsys*P1,pidstd(1,1),0.2);
C1
C1 =
 
             1      1 
  Kp * (1 + ---- * ---)
             Ti     s 

  with Kp = 0.015, Ti = 0.716
 
Continuous-time PI controller in standard form

Сравнение производительности

Во-первых, постройте ответы отслеживания уставки шага для обеих систем управления.

% single loop system for reference tracking 
sys1 = feedback(P*C,1);
sys1.Name = 'Single Loop';
% cascade system for reference tracking
sys2 = feedback(clsys*P1*C1,1); 
sys2.Name = 'Cascade';
% plot step response
figure;
step(sys1,'r',sys2,'b')
legend('show','location','southeast')
title('Reference Tracking')

Во-вторых, постройте ответы подавления помех шага d2 для обеих систем управления.

% single loop system for rejecting d2
sysd1 = feedback(P1,P2*C); 
sysd1.Name = 'Single Loop';
% cascade system for rejecting d2
sysd2 = P1/(1+P2*C2+P2*P1*C1*C2); 
sysd2.Name = 'Cascade';
% plot step response
figure;
step(sysd1,'r',sysd2,'b')
legend('show')
title('Disturbance Rejection')

Из двух графиков ответа можно прийти к заключению, что система каскадного регулирования выполняет намного лучше в отклонении воздействия d2, в то время как производительность отслеживания заданного значения почти идентична.

Смотрите также

|

Похожие темы