PI 제어기를 갖는 캐스케이드 제어 시스템 설계하기
이 예제에서는 pidtune 명령을 사용하여 두 개의 PI 제어기를 갖는 캐스케이드 제어 루프를 설계하는 방법을 보여줍니다.
캐스케이드 제어에 대한 소개
캐스케이드 제어는 외란이 플랜트의 다른 부분에 전파되기 전에 신속히 제거하는 데 주로 사용됩니다. 아래 블록 다이어그램에 나와 있는 것처럼, 가장 간단한 캐스케이드 제어 시스템에는 두 개의 제어 루프(내부 및 외부)가 사용됩니다.

외부 루프의 제어기 C1은 기본 제어기로, 내부 루프의 설정점을 지정함으로써 기본 제어 변수 y1을 조절하는 역할을 합니다. 내부 루프의 제어기 C2는 보조 제어기로, 외란 d2가 P1로 전파되기 전에 국소적으로 제거하는 역할을 합니다. 캐스케이드 제어 시스템이 올바르게 기능을 수행하려면 내부 루프가 외부 루프보다 훨씬 더 빠르게 응답해야 합니다.
이 예제에서는 하나의 PI 제어기를 갖는 단일 루프 제어 시스템과 두 개의 PI 제어기를 갖는 캐스케이드 제어 시스템을 설계합니다. 두 제어 시스템의 응답을 기준 추종과 외란 제거라는 두 가지 기준에서 비교합니다.
플랜트
이 예제에서 내부 루프 플랜트 P2는 다음과 같습니다.
외부 루프 플랜트 P1은 다음과 같습니다.
P2 = zpk([],-2,3); P1 = zpk([],[-1 -1 -1],10);
PI 제어기를 갖는 단일 루프 제어 시스템 설계하기
pidtune 명령을 사용하여 전체 플랜트 모델 P = P1 * P2를 위한 표준 형식의 PI 제어기를 설계할 수 있습니다.

원하는 개루프 대역폭은 0.2rad/s이며, 이는 대략 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
Model Properties
2개의 PI 제어기를 갖는 캐스케이드 제어 시스템 설계하기
가장 좋은 방법은 내부 루프 제어기 C2를 먼저 설계한 다음, 내부 루프가 닫힌 상태에서 외부 루프 제어기 C1을 설계하는 것입니다. 이 예제에서 내부 루프 대역폭은 2rad/s로 선택되었으며, 이는 원하는 외부 루프 대역폭보다 10배 이상 높습니다. 효과적인 캐스케이드 제어 시스템을 만들려면 내부 루프가 외부 루프보다 훨씬 더 빠르게 응답해야 합니다.
2rad/s의 개루프 대역폭으로 내부 루프 제어기 C2를 조정합니다.
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
Model Properties
단일 루프 시스템과 동일한 대역폭으로 외부 루프 제어기 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
Model Properties
성능 비교
먼저, 두 제어 시스템의 계단 기준 추종 응답을 플로팅합니다.
% 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 제거에서는 캐스케이드 제어 시스템이 훨씬 더 나은 성능을 보이는 반면 설정점 추종 성능은 거의 동일하다는 결론을 내릴 수 있습니다.