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

Этот пример показов, как спроектировать каскадный цикл управления с двух ПИ-контроллеров с помощью команды 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. The axes 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. The axes contains 2 objects of type line. These objects represent Single Loop, Cascade.

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

См. также

|

Похожие темы