本例使用systune
控制推车上的倒立摆。
推车/摆锤组件在图1中所描绘的和使用的Simscape多体在Simulink建模。万博1manbetx
图1:倒在车摆
图2:多体的Simscape模型
这个系统是通过施加可变力控制上车。我们需要保持直立摆在移动车到一个新的位置,还是摆在轻推前进(脉冲干扰)。
直立的位置是倒立摆不稳定平衡。该工厂的性质不稳定,使控制任务更具挑战性。在这个例子中,我们使用以下两种闭环控制结构:
open_system('rct_pendulum.slx')set_param('rct_pendulum','SimMechanicsOpenEditorOnUpdate',“关”);
内环使用的第二阶状态空间控制器以稳定摆在其直立位置(控制),而外部环路使用比例 - 微分(PD)控制器,用于控制车位置。请注意,我们使用了一个PD而不是PID控制器由于该厂已经提供了一些积分作用。
用TuningGoal
要求指定所需的闭环行为。指定的3秒的响应时间用于跟踪车位置的设定值变化。
x命令的%跟踪REQ1 = TuningGoal.Tracking(“外部参照”,'X',3);
为了充分拒绝冲动障碍在摆的前端,使用以下形式的LQR惩罚
强调小的角度偏差并限制控制工作。
脉冲干扰时DF的甩%Qxu = DIAG([16 1 0.01]);REQ2 = TuningGoal.LQG('DF'{“西塔”,'X','F'},1,Qxu);
用于鲁棒性,需要增益裕量的至少6 dB和在工厂输入40度的相位余量。
%的稳定裕度REQ3 = TuningGoal.Margins('F',6,40);
最后,限制了闭环极点的阻尼和固有频率,以防止不平稳或欠阻尼瞬变。
%极点位置MinDamping = 0.5;MaxFrequency = 45;REQ4 = TuningGoal.Poles(0,MinDamping,MaxFrequency);
闭环系统是不稳定的PD和状态空间控制器的初始值(1和, 分别)。您可以使用systune
共同调整这两个控制器。使用slTuner
界面来指定所述可调谐块和寄存器植物输入F
作为用于测量的稳定裕度的分析点。
ST0 = slTuner('rct_pendulum'{“位置控制器”,“角度控制”});addPoint(ST0,'F');
接下来,使用systune
调谐PD和状态空间控制器受到的性能要求上述指定。优化跟踪和抗干扰性能(软要求)受稳定裕度和极位置的限制(硬要求)。
RNG(0)选项= systuneOptions('RandomStart',5);[ST,fSoft] = systune(ST0,[REQ1,REQ2],[REQ3,REQ4],选项);
决赛:软= 1.38,硬= 0.99851,迭代次数= 313决赛:软= 1.44,硬= 0.99925,迭代次数= 157决赛:软= 1.44,硬= 0.99858,迭代次数= 300决赛:软= 1.27,硬= 0.99402,迭代= 265最终:软= 1.44,硬= 0.99986,迭代= 277最终:软= 1.4,硬= 0.99855,迭代= 257一些闭环极点是临界稳定(接近1E-07衰变速率)
最好的设计实现了值接近1的软要求,同时满足硬性要求(硬
<1)。这意味着,调整控制系统几乎达到目标性能进行跟踪和干扰抑制,同时满足稳定裕度和极位置的限制。
用viewGoal
进一步分析如何针对每个需求的最佳设计的票价。
数字('位置'[100 100 575 660]);viewGoal([REQ1,REQ3,REQ4],ST)
这些图证实,前两个要求几乎满足,而最后两个被严格执行。接下来,密谋在位置和对车力冲量的阶跃变化的响应。
T = getIOTransfer(ST,{“外部参照”,'DF'},{'X',“西塔”});数字('位置'[100 100 650 420]);副区(121),步骤(T(:,1),10)的标题(“在位置设定点变化的追踪”)副区(122),冲击(T(:,2),10)的标题(“冲动干扰抑制”)
该反应与所需的稳定时间顺利。检查控制器的调谐值。
C1 = getBlockValue(ST,“位置控制器”)
C1 = S的Kp +的Kd * -------- TF * S + 1的Kp = 5.96,的Kd = 2.06,TF = 0.0534名称:并联形式Position_Controller连续时间PDF控制器。
C2 = ZPK(getBlockValue(ST,“角度控制”))
C2 = -1596.7(S + 12.9)(S + 4.396)--------------------------(S + 134.3)(S-14.18)名称:Angle_Controller连续时间零/极点/增益模型。
注意,角度控制器具有不稳定的极点其对向上与植物不稳定极稳定倒立摆。看到这一点,我们就到工厂输入的开环传递并绘制根轨迹。
L = getLoopTransfer(ST,'F',-1);数字;rlocus(L)组(GCA,'XLIM',[ - 25 20],'YLim',[ - 20 20])
为了完成验证,上传调谐值Simulink和组件模拟推车/摆的非线性响应。万博1manbetx所得模拟的视频显示如下。
writeBlockValue(ST)
图3:车/摆的仿真与调谐控制器。
模拟后,关闭模式。
set_param('rct_pendulum','SimMechanicsOpenEditorOnUpdate','上');close_system('rct_pendulum',0);