exponenta event banner

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

В этом примере показано, как создать каскадный контур управления с двумя контроллерами PI с помощью команды pidtune.

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

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

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

В этом примере будет разработана одноконтурная система управления с PI-контроллером и каскадная система управления с двумя PI-контроллерами. Реакции двух систем управления сравниваются как для эталонного отслеживания, так и для отклонения возмущений.

Завод

В этом примере установка внутреннего контура P2

P2 (ы) = 3s + 2

Установка внешнего контура P1

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

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

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

Команда 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')

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, в то время как характеристики отслеживания уставки почти идентичны.

См. также

|

Связанные темы