这个例子展示了如何联合调级联体系结构的内环和外环与systune
命令。
级联控制经常被用来实现快速抗干扰顺畅的跟踪。最简单的级联结构涉及如下面的框图所示的两个控制环(内和外)。内回路通常比外环更快它们传播到外循环之前拒绝干扰。(万博1manbetxSimulin万博1manbetxk®的不MATLAB®在线支持。)
open_system('rct_cascade')
在这个例子中,内环路设备G2
是
和外环植物G1
是
G2 = ZPK([], - 2,3);G1 = ZPK([],[ - 1 -1 -1],10);
我们使用在内部循环PI控制器,并在外环的PID控制器。外环必须具有至少0.2弧度/秒的带宽,并且所述内环的带宽应该是十倍充分扰动抑制大。
当控制系统在Simulink中建模,使用万博1manbetxslTuner
在Simulink控制设计万博1manbetx™接口设置优化任务。列出可调块,标记信号[R
和D2
作为关注的输入,和标记的信号Y1
和Y2
因为位置在哪里测量开环传输和指定环的形状。
ST0 = slTuner('rct_cascade'{'C1','C2'});addPoint(ST0,{'R','D2','Y1','Y2'})
您可以查询的当前值C1
和C2
在Simuli万博1manbetxnk模型使用showTunable
。通过模拟仿真模型证实的控制系统是用于这些初始值是不稳定的。万博1manbetx
showTunable(ST0)
块1:rct_cascade / C1 = 1的Kp +的Ki * --- S采用的Kp = 0.1和Ki = 0.1名称:并联形式C1连续时间PI控制器。-----------------------------------块2:rct_cascade / C2 = 1的Kp +的Ki * ---S采用的Kp = 0.1和Ki = 0.1名称:并联形式C2连续时间PI控制器。
接下来使用“LoopShape”的要求来指定内环和外环的所需带宽。用作为外环的目标环路形状以在0.2弧度执行具有增益交叉频率积分动作/ S:
%外环带宽= 0.2S = TF('S');REQ1 = TuningGoal.LoopShape('Y1',0.2 / S);在Y1%环传递测量Req1.Name =“外环”;
用用于内循环,使比所述外环它快十倍(更高的带宽)。要强制内循环传递,确保通过指定打开外循环Y1
作为循环开口:
%内环路带宽= 2REQ2 = TuningGoal.LoopShape('Y2',2 / S);在Y2%环传递测量Req2.Openings ='Y1';%与Y1打开外环Req2.Name =“内循环”;
现在,您可以调整PID涨势C1
和C2
同systune
:
ST = systune(ST0,[REQ1,REQ2]);
决赛:软= 0.86,硬= -Inf,迭代次数= 61
用showTunable
看到调整PID收益。
showTunable(ST)
块1:rct_cascade / C1 = 1秒的Kp +的Ki * --- + Kd *是--------小号TF * S + 1的Kp = 0.052,奇= 0.0187,Kd值在0.0471,TF = 0.0124名称:在并行形式C1连续时间PIDF控制器。-----------------------------------块2:rct_cascade / C2 = 1的Kp +的Ki * ---S采用的Kp = 0.721,奇= 1.24名称:并联形式C2连续时间PI控制器。
最终值小于1,这意味着systune
成功地满足了这两个环形的要求。通过检查调谐控制系统确认这ST
同viewGoal
viewGoal([REQ1,REQ2],ST)
注意,内环和外环具有所需的增益交叉频率。为了进一步验证设计,绘制到步骤指令r和扰动步骤d2的调谐响应:
%响应到步骤命令H = getIOTransfer(ST,'R','Y1');CLF,步骤(H,30),标题(“步骤命令”)
%响应到步骤扰动H = getIOTransfer(ST,'D2','Y1');步骤(H,30),标题(“步骤扰动”)
一旦你满意的线性分析结果,使用writeBlockValue
写调谐PID增益回到所述Simulink模块。万博1manbetx然后,您可以在Simulink进行更加彻底的验证。万博1manbetx
writeBlockValue(ST)
如果你不具备控制系统的Simulink模型万博1manbetx,你就可以使用植物的LTI模型和控制设计块的可调谐元件模型的相同步骤。
图1:级联架构
首先创建可调PI和PID控制器的参数化模型。
C1 = tunablePID('C1','的pid');C2 = tunablePID('C2',“圆周率”);
然后使用“分析点”块标记环状开口位置Y1
和Y2
。
LS1 = AnalysisPoint('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]);
决赛:软= 0.86,硬= -Inf,迭代= 125
由于,使用前getIOTransfer
计算并绘制调谐响应到步骤指令r和扰动步骤进入该位置处Y2
:
%响应到步骤命令H = getIOTransfer(T,'R','Y1');CLF,步骤(H,30),标题(“步骤命令”)
%响应到步骤扰动H = getIOTransfer(T,'Y2','Y1');步骤(H,30),标题(“步骤扰动”)
您也可以绘制开环增益为内环和外环验证带宽要求。注意-1标志来计算负反馈的开环传递:
L1 = getLoopTransfer(T,'Y1',-1);%交叉应该是.2L2 = getLoopTransfer(T,'Y2',-1,'Y1');%交叉应在2bodemag(L2,L1,{1E-2,1e2}),网格图例(“内循环”,“外环”)