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

В этом примере показано, как спроектировать цикл каскадного регулирования с двумя ПИ-контроллерами с помощью команды pidtune.

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

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

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

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

Объект

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

P2(s)=3s+2

Объект внешнего контура P1

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

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

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

Используйте команду pidtune, чтобы спроектировать ПИ-контроллер в стандартной форме для целой модели объекта управления 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

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

Лучшая практика должна спроектировать контроллер внутреннего цикла 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')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Single Loop, Cascade.

Во-вторых, постройте ответы подавления помех шага 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')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Single Loop, Cascade.

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

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

|

Похожие темы