调整多回路控制系统
控件联合调优级联体系结构的内部和外部循环systune
命令。
级联PID回路
串级控制通常用于实现平稳跟踪和快速抑制干扰。最简单的级联体系结构包括两个控制循环(内部和外部),如下面的框图所示。在干扰传播到外环之前,内环通常比外环更快地拒绝干扰。(MATLAB®Online不支持Simulink®)
open_system (“rct_cascade”)
设备模型和带宽要求
在本例中,内循环植物G2
是
还有外环植物G1
是
G2 = zpk([]、2、3);G1 = zpk([],[-1 -1 -1],10);
内环采用PI控制器,外环采用PID控制器。外部环路必须有至少0.2 rad/s的带宽,而内部环路的带宽应该是足够的干扰抑制的十倍。
用SYSTUNE调优PID控制器
在Simulink中对控制系统建模时,使用slTuner
在Simulink Control Design™中设置调优任务。列出可调块,标记信号r
而且d2
作为感兴趣的输入,并标记信号日元
而且y2
作为测量开环传输和指定环形状的位置。
ST0 = slTuner (“rct_cascade”,{“C1”,C2的});addPoint (ST0, {“r”,“d2”,“日元”,“日元”})
可以查询当前的值C1
而且C2
在Simulink模型中使用showTunable
.通过对Simulink模型的仿真,证实了这些初始值的控制系统是不稳定的。
showTunable (ST0)
Block 1: rct_cascade/C1 = 1 Kp + Ki *——s with Kp = 0.1, Ki = 0.1名称:C1连续时间PI控制器并行形式。----------------------------------- 块2:rct_cascade / C2 = 1 + Ki *——年代Kp = 0.1, Ki = 0.1名称:C2连续时间比例积分控制器并联形式。
接下来使用“LoopShape”要求来指定内部和外部循环所需的带宽。使用作为外环的目标环形状,以增强积分作用,增益交叉频率为0.2 rad/s:
%外环带宽= 0.2s =特遣部队(“年代”);Req1 = TuningGoal。LoopShape (“日元”, 0.2 / s);%环转移测量在y1Req1。Name =“外循环”;
使用内环的速度是外环的十倍(更高的带宽)。要约束内部循环传输,请确保通过指定打开外部循环日元
作为循环开头:
%内环带宽= 2Req2 = TuningGoal。LoopShape (“日元”2 / s);%环转移测量在y2Req2。机会=“日元”;%,外环在y1处打开Req2。Name =“内循环”;
你现在可以调整PID增益C1
而且C2
与systune
:
圣= systune (ST0 [Req1 Req2]);
最终:软= 0.859,硬= -Inf,迭代= 67
使用showTunable
查看调谐PID增益。
showTunable (ST)
Block 1: rct_cascade/C1 = 1 s Kp + Ki *——+ Kd * -------- s Tf*s+1 with Kp = 0.0521, Ki = 0.0186, Kd = 0.0473, Tf = 0.00696名称:C1并行形式的连续时间PIDF控制器----------------------------------- 块2:rct_cascade / C2 = 1 + Ki *——年代Kp = 0.721, Ki = 1.23名称:C2连续时间比例积分控制器并联形式。
验证设计
最终值小于1,这意味着systune
成功满足两个环的形状要求。通过检查调谐控制系统来确认这一点圣
与viewGoal
viewGoal ([Req1, Req2],圣)
注意,内环和外环有所需的增益交叉频率。为了进一步验证设计,绘制对阶跃命令r和阶跃干扰d2的调谐响应:
对步骤命令的响应H = getIOTransfer(圣,“r”,“日元”);clf、步骤(H, 30)、标题(“命令”)
对阶跃干扰的响应H = getIOTransfer(圣,“d2”,“日元”);步骤(H, 30)、标题(“扰动步”)
一旦你对线性分析结果满意,使用writeBlockValue
将调谐PID增益写回Simulink块。然后可以在Simulink中进行更彻底的验证。
writeBlockValue (ST)
MATLAB等效工作流
如果您没有控制系统的Simulink模型,您可以使用工厂的LTI模型和控制设计块来对可调元素建模,执行相同的步骤。
图1:级联架构
首先创建可调PI和PID控制器的参数模型。
C1 = tunablePID (“C1”,“pid”);C2 = tunablePID (C2的,“π”);
然后使用“分析点”块标记循环打开位置日元
而且y2
.
LS1 = AnalysisPoint (“日元”);LS2 = AnalysisPoint (“日元”);
最后,创建一个闭环模型T0
通过关闭每个反馈回路来控制整个控制系统。结果是一个依赖于可调元素的广义状态空间模型C1
而且C2
.
InnerCL =反馈(LS2 * G2 * C2, 1);T0 =反馈(G1 * InnerCL * C1, LS1);T0。InputName =“r”;T0。OutputName =“日元”;
你现在可以调整PID增益C1
而且C2
与systune
.
T = systune (T0, [Req1 Req2]);
最终:软= 0.859,硬= -Inf,迭代= 118
像以前一样,用getIOTransfer
计算和绘制对进入该位置的阶跃命令和阶跃扰动的调谐响应y2
:
对步骤命令的响应H = getIOTransfer (T)“r”,“日元”);clf、步骤(H, 30)、标题(“命令”)
对阶跃干扰的响应H = getIOTransfer (T)“日元”,“日元”);步骤(H, 30)、标题(“扰动步”)
您还可以绘制内环和外环的开环增益图,以验证带宽需求。注意-1符号计算负反馈开环传输:
L1 = getLoopTransfer (T)“日元”1);%交叉应该在。2L2 = getLoopTransfer (T)“日元”, 1“日元”);%交叉应该在2bodemag (L1, L2,{1飞行,1 e2}),网格传奇(“内循环”,“外循环”)