此示例演示如何联合调优级联架构的内部和外部循环systune
命令。
级联控制经常被用来实现快速抗干扰顺畅的跟踪。最简单的级联结构涉及如下面的框图所示的两个控制环(内和外)。内回路通常比外环更快它们传播到外循环之前拒绝干扰。(金宝appSimulink®的不M金宝appATLAB®在线支持。)
open_system ('rct_cascade')
在本例中,是内部循环工厂G2
是
和外环植物G1
是
G2 = ZPK([], - 2,3);G1 = ZPK([],[ - 1 -1 -1],10);
我们使用在内部循环PI控制器,并在外环的PID控制器。外环必须具有至少0.2弧度/秒的带宽,并且所述内环的带宽应该是十倍充分扰动抑制大。
当控制系统在Simulink中建模,使用金宝appslTuner
在Simulink控制设计金宝app™中设置调优任务的接口。列出可调块,标记信号[R
和D2
作为关注的输入,和标记的信号Y1
和Y2
因为位置在哪里测量开环传输和指定环的形状。
ST0 = slTuner ('rct_cascade',{'C1','C2'});addPoint (ST0, {'R','D2','Y1','Y2'})
您可以查询的当前值C1
和C2
在Simuli金宝appnk模型使用showTunable
。仿真结果表明,对于这些初始值,控制系统是不稳定的。金宝app
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 rad/s:
%外环带宽= 0.2S = TF('S');REQ1 = TuningGoal.LoopShape('Y1',0.2 / s);%环路传输测量在y1Req1.Name =“外循环”;
使用为了使内部循环比外部循环快10倍(更高的带宽)。要约束内部循环传输,请通过指定确保打开外部循环
Y1
作为循环开口:
%内环路带宽= 2REQ2 = TuningGoal.LoopShape('Y2',2 / S);在Y2%环传递测量Req2。机会='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 s Kp + Ki *——+ Kd *——s Tf*s+1,其中Kp = 0.052, Ki = 0.0187, Kd = 0.0471, Tf = 0.0124。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -块2:rct_cascade / C2 = 1 + Ki *——年代Kp = 0.721, Ki = 1.24名称:C2连续时间比例积分控制器并联形式。
最终值小于1,也就是说systune
成功地满足了这两个环形的要求。通过检查调谐控制系统确认这ST
同viewGoal
viewGoal ([Req1, Req2],圣)
注意,内部和外部环路具有所需的增益交叉频率。为了进一步验证该设计,绘制对阶跃命令r和阶跃扰动d2的调谐响应:
%响应到步骤命令H = getIOTransfer(ST,'R','Y1');clf、步骤(H, 30)、标题(“步骤命令”)
%响应到步骤扰动H = getIOTransfer(ST,'D2','Y1');步骤(H, 30)、标题(“步骤扰动”)
一旦你满意的线性分析结果,使用writeBlockValue
将调优后的PID增益写回Simulink块。金宝app然后可以在Simulink中执行更彻底的验证。金宝app
writeBlockValue(ST)
如果没有控制系统的Simulink模型,则金宝app可以使用工厂的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]);
Final: Soft = 0.86, Hard = -Inf, iteration = 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}),网格图例(“内循环”,“外循环”)