这个示例展示了如何使用。来联合优化级联架构的内部和外部循环Systune.
命令。
级联控制通常用于通过快速扰动抑制来实现平滑的跟踪。最简单的级联架构涉及两个控制环(内部和外部),如下框图所示。内环通常比外环更快,以在传播到外环之前拒绝干扰。(金宝appSimulink®在Ma金宝apptlab®在线不支持。)
open_system ('rct_cascade')
在这个例子中,内环植物G2.
是
还有外环植物G1.
是
G2 = ZPK([], - 2,3);G1 = ZPK([],[ - 1 -1 -1],10);
我们在内环中使用PI控制器和外循环中的PID控制器。外部循环必须具有至少0.2 rad / s的带宽,并且内部环路带宽应该是足够的干扰抑制的10倍。
当控制系统在Simulink中建模时,使用金宝appSLTUNER.
在Simulink Con金宝apptrol Design™中设置调优任务。列出可调块,标记信号R.
和D2
作为感兴趣的输入,并标记信号y1.
和Y2.
作为测量开环传输并指定环形形状的位置。
ST0 = slTuner ('rct_cascade', {'c1'那'c2'});addpoint(st0,{'r'那'd2'那'y1'那'y2'})
您可以查询当前值C1.
和C2.
在Simuli金宝appnk模型中使用展示
.通过对Simulink模型的仿真,证实了在这些初始值下控制系统是不稳定的。金宝app
展示(ST0)
框1:rct_cascade / c1 = 1 kp + ki * ---具有kp = 0.1,ki = 0.1名称:C1以并行形式的连续时间PI控制器。-------------------------------------------------- rct_cascade / c2 = 1 kp + ki * ---kp = 0.1,ki = 0.1名称:C2以并行形式的连续时间PI控制器。
接下来使用“LoopShape”要求来指定所需的内圈和外圈带宽。使用作为外回路的目标回路形状,以增强增益交叉频率为0.2 rad/s的积分作用:
%外环带宽= 0.2s = tf(');req1 = tuninggoal.loopshape('y1', 0.2 / s);在y1处测量的%环路传输req1.name =“外循环”;
使用使内环比外环快十倍(更高的带宽)。要限制内环的传递,请确保通过指定打开外环y1.
作为循环开放:
%内环带宽= 2req2 = tuninggoal.loopshape('y2',2 / s);在Y2测量%环路传输Req2。机会='y1';在Y1处打开外环的%Req2。Name =“内循环”;
现在可以调整PID增益C1.
和C2.
和Systune.
:
ST = SYTUNE(ST0,[REQ1,REQ2]);
Final:Soft = 0.86,硬= -Inf,迭代= 61
使用展示
查看调谐的PID增益。
SkowtUnable(ST)
Block 1: rct_cascade/C1 = 1s Kp + Ki *——+ Kd * -------- s Tf*s+1, Kp = 0.052, Ki = 0.0187, Kd = 0.0471, Tf = 0.0124名称:C1 parallel form连续时间pid控制器----------------------------------- 块2:rct_cascade / C2 = 1 + Ki *——年代Kp = 0.721, Ki = 1.24名称:C2连续时间比例积分控制器并联形式。
最终值小于1,这意味着Systune.
成功符合循环形状要求。通过检查调谐控制系统确认这一点英石
和viewgoal.
viewGoal ([Req1, Req2],圣)
注意,内部和外部环路具有所需的增益交叉频率。为了进一步验证设计,绘制对阶跃命令r和阶跃干扰d2的调谐响应图:
%对步骤命令的响应h = getiotransfer(st,'r'那'y1');clf、步骤(H, 30)、标题('步骤命令')
对阶跃干扰的响应h = getiotransfer(st,'d2'那'y1');步骤(H, 30)、标题('step步')
满足线性分析结果,使用WrithblockValue.
将调优的PID增益写回Simulink块。金宝app然后,您可以在Simulink中进行更彻底的验证。金宝app
writeblockvalue(st)
如果您没有控制系统的Simulink模型,金宝app则可以使用工厂的LTI模型执行相同的步骤,并控制设计块以模拟可调元素。
图1:级联架构
首先建立可调PI和PID控制器的参数模型。
C1 = tunablePID ('c1'那'PID');C2 =调谐('c2'那“π”);
然后使用“分析点”块标记循环打开位置y1.
和Y2.
.
ls1 =分析点('y1');LS2 = AnalysisPoint ('y2');
最后,创建闭环模型T0.
通过关闭每个反馈回路来整体控制系统。结果是概括的状态空间模型,具体取决于可调元素C1.
和C2.
.
InnerCL =反馈(LS2 * G2 * C2, 1);T0 =反馈(G1 * InnerCL * C1, LS1);T0。InputName ='r';t0.outputname =.'y1';
现在可以调整PID增益C1.
和C2.
和Systune.
.
T = SYSTUNE(T0,[REQ1,REQ2]);
Final: Soft = 0.86, Hard = -Inf, Iterations = 125
如前所述,使用getiotransfer
计算和绘制对阶跃命令r和进入该位置的阶跃扰动的调谐响应Y2.
:
%对步骤命令的响应h = getiotransfer(t,'r'那'y1');clf、步骤(H, 30)、标题('步骤命令')
对阶跃干扰的响应h = getiotransfer(t,'y2'那'y1');步骤(H, 30)、标题('step步')
您还可以绘制内环和外环的开环增益,以验证带宽要求。注意-1符号来计算负反馈开环传输:
l1 = getLooptransfer(t,'y1',-1);%交叉应在。2L2 = getLoopTransfer (T)'y2',-1,'y1');%交叉应该是2BodeMag(L2,L1,{1E-2,1E2}),网格传奇(“内循环”那“外循环”)