这个例子用途Systune.
倒立摆控制手推车上的倒立摆
CART / PENDULUM组件如图1所示,使用SIMVESCE™Multibody™在Simulink®中进行建模。金宝app
图1:推车上的倒挂摆锤
图2:Simscape多体模型
这个系统是通过施加一个变力来控制的在购物车上。控制器需要将摆锤保持直立,同时将推车移动到一个新位置或者当垂直时垂直时(脉冲干扰)。
直立的位置是倒立摆的不稳定平衡。电站不稳定的性质使控制任务更具挑战性。对于本例,您使用以下双循环控制结构:
open_system ('rct_pendulum.slx')set_param('rct_pendulum'那“SimMechanicsOpenEditorOnUpdate”那“关闭”);
内圈使用二阶状态空间控制器以直立位置稳定摆锤(外环使用比例导数(PD)控制器来控制小车的位置。你使用PD而不是PID控制器,因为工厂已经提供了一些积分动作。
使用TuningGoal
要求指定所需的闭环行为。指定3秒的响应时间来跟踪购物车位置的设定值变化。
%跟踪x命令req1 = tuninggoal.tracking(“xref”那'X',3);
充分抑制脉冲干扰在钟摆的顶端,使用LQR惩罚的形式
这强调了一个小的角度偏差并限制控制努力。
%抑制脉冲障碍DFqxu = diag([16 1 0.01]);req2 = tuninggoal.lqg('df', {'theta'那'X'那'F'},1,qxu);
对于稳健性,在工厂输入需要至少6 dB的增益余量和40度的相余量。
%稳定利润req3 = tuninggoal.margins('F'6、40);
最后,限制闭环磁极的阻尼和固有频率,以防止混蛋或欠扰的瞬变。
%极点位置造白= 0.5;maxfrequency = 45;REQ4 = TuningGoal.poles(0,造版,MaxFrequency);
闭环系统在PD和状态空间控制器(1和, 分别)。您可以使用Systune.
联合调优这两个控制器。使用SLTUNER.
接口指定可调块并注册植物输入F
作为测量稳定性边缘的分析点。
ST0 = slTuner ('rct_pendulum', {位置控制器的那“角控制器”});addpoint(st0,'F');
下一步,使用Systune.
调整PD和状态空间控制器,根据上面指定的性能要求。优化符合稳定性边缘和极点定位约束(硬要求)的追踪和干扰抑制性能(软件)。
RNG(0)选项= SystuneOptions('OrmyStart'5);[ST,FSOFT] = SYSTUNE(ST0,[REQ1,REQ2],[REQ3,REQ4],选项);
最终:Soft = 1.38,硬= 0.99548,迭代= 248 Final:Soft = 1.44,硬= 0.9992,迭代= 140最终:软= 1.44,硬= 0.9999,迭代= 317 Final:Soft = 1.28,硬= 0.9991,迭代= 264 Final:Soft = 1.44,硬= 0.99957,迭代= 253 Final:Soft = 1.26,硬= 0.99985,迭代= 257
最好的设计实现了靠近1的值,以满足硬要求(难的
<1)。这意味着调谐控制系统几乎达到了跟踪和扰动抑制的目标性能,同时满足稳定性边缘和极点定位约束。
使用viewgoal.
进一步分析最佳设计如何满足每一个需求。
数字(“位置”,[100 100 575 660])视图目标(req1,req3,req4)
这些地块证实,前两个要求几乎得到了满足,而后两个要求得到了严格执行。接下来,绘制对位置的步长变化和对手推车上的力脉冲的响应。
T = getIOTransfer (ST, {“xref”那'df'},{'X'那'theta'});数字(“位置”,[100 100 650 420]);子图(121),步骤(t(:,1),10)标题('追踪定点变化位置')子图(122),脉冲(t(:,2),10)标题(“脉冲干扰的抑制”)
响应是平滑的与期望的安定时间。检查控制器的调优值。
c1 = getblockvalue(st,位置控制器的)
C1 = s Kp + Kd * -------- Tf*s+1 with Kp = 5.98, Kd = 2.07, Tf = 0.0518
C2 = zpk (getBlockValue(圣“角控制器”)))
C2 (s + 12.75) = -1605.6 (s + 4.435 ) --------------------------- ( s + 134.9) (s - 14.14)名称:Angle_Controller连续时间零/钢管/增益模型。
注意,角度控制器具有不稳定的杆,其与植物不稳定杆对进行稳定倒摆。要查看此功能,请在工厂输入中获取开环传输并绘制根轨迹。
l = getlooptransfer(st,'F',-1);图Rlocus(L)集(GCA,“XLim”,[ - 25 20],'ylim',[ - 20 20])
要完成验证,请将调谐值上传到Simulink并模拟购物车/摆动组件的非线性响应。金宝app结果模拟的视频显示在下面。
writeblockvalue(st)
图3:带有调整控制器的推车/摆模拟。
仿真后关闭模型。
set_param ('rct_pendulum'那“SimMechanicsOpenEditorOnUpdate”那'上');close_system ('rct_pendulum', 0);
SLTUNER.
(金宝appSimulink Control Design)|Systune.
(金宝appSimulink Control Design)