这个示例展示了如何使用。来联合优化级联架构的内部和外部循环systune
命令。
串级控制通常用于实现平滑跟踪和快速抗扰。最简单的级联架构包括两个控制回路(内部和外部),如下面的框图所示。内环通常比外环更快,以在干扰传播到外环之前抑制它们。(金宝app在MATLAB®Onli金宝appne中不支持Simulink®)
open_system (“rct_cascade”)
在这个例子中,内环植物G2
是
还有外环植物G1
是
G2 = zpk([]、2、3);G1 = zpk([],[-1 -1],10);
内环采用PI控制器,外环采用PID控制器。外环的带宽必须至少为0.2 rad/s,内环的带宽必须为10倍,以充分抑制干扰。
在Simulink中对控制系统建模时,使用金宝appslTuner
在Simulink Con金宝apptrol Design™中设置调优任务。列出可调块,标记信号r
和d2
作为感兴趣的输入,并标记信号日元
和y2
作为测量开环传输和指定环路形状的位置。
ST0 = slTuner (“rct_cascade”, {“C1”,C2的});addPoint (ST0, {“r”,“d2”,“日元”,“日元”})
查询的当前值C1
和C2
在Simuli金宝appnk模型中使用showTunable
.通过对Simulink模型的仿真,证实了在这些初始值下控制系统是不稳定的。金宝app
showTunable (ST0)
Block 1: rct_cascade/C1 = 1 Kp + Ki *——s with Kp = 0.1, Ki = 0.1名称:C1 parallel form连续时间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);在y1处测量的%环路传输Req1。Name =“外循环”;
使用使内环比外环快十倍(更高的带宽)。要限制内环的传递,请确保通过指定打开外环日元
作为一个循环开口:
%内环带宽= 2Req2 = TuningGoal。LoopShape (“日元”2 / s);在y2处测量的%环路传输Req2。机会=“日元”;%,外循环在y1处打开Req2。Name =“内循环”;
现在可以调整PID增益C1
和C2
与systune
:
圣= systune (ST0 [Req1 Req2]);
Final: Soft = 0.859, Hard = -Inf, Iterations = 67
使用showTunable
来查看调整后的PID增益。
showTunable (ST)
Block 1: rct_cascade/C1 = 1s Kp + Ki *——+ Kd * -------- s Tf*s+1 with Kp = 0.0521, Ki = 0.0186, Kd = 0.0475, Tf = 0.00659----------------------------------- 块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块。金宝app然后,您可以在Simulink中进行更彻底的验证。金宝app
writeBlockValue (ST)
如果没有控制系统的Simulink模型,可金宝app以使用工厂的LTI模型和control Design块执行相同的步骤,对可调元素建模。
图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]);
Final: Soft = 0.86, Hard = -Inf, Iterations = 136
像以前一样,用getIOTransfer
计算和绘制对阶跃命令r和进入该位置的阶跃扰动的调谐响应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}),网格传奇(“内循环”,“外循环”)