主要内容

设计具有 PI 控制器的级联控制系统

此示例说明如何使用 pidtune 命令设计具有两个 PI 控制器的级联控制环。

级联控制简介

级联控制主要用于在扰动传播到被控对象的其他部分之前快速抑制扰动。最简单的级联控制系统包含两个控制环(内环和外环),如下模块图所示。

外环中的控制器 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 命令为整个被控对象模型 P = P1 * P2 设计一个标准型的 PI 控制器。

所需的开环带宽为 0.2 rad/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

设计具有两个 PI 控制器的级联控制系统

最佳做法是先设计内环控制器 C2,然后在内环闭合的情况下设计外环控制器 C1。在此示例中,内环带宽选择为 2 rad/s,是所需外环带宽的十倍。为了获得有效的级联控制系统,内环的响应速度必须远快于外环。

将内环控制器 C2 调节至开环带宽为 2 rad/s。

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')

MATLAB figure

其次,绘制两个控制系统关于 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')

MATLAB figure

从这两个响应图可以得出结论,级联控制系统在抑制扰动 d2 方面表现更好,而两个系统的设定点跟踪性能几乎相同。

另请参阅

|

主题