倒立摆的上车控制

本例使用systune控制推车上的倒立摆。

摆/车大会

推车/摆锤组件在图1中所描绘的和使用的Simscape多体在Simulink建模。万博1manbetx

图1:倒在车摆

图2:多体的Simscape模型

这个系统是通过施加可变力控制$ F $上车。我们需要保持直立摆在移动车到一个新的位置,还是摆在轻推前进(脉冲干扰$ $ DF)。

控制结构

直立的位置是倒立摆不稳定平衡。该工厂的性质不稳定,使控制任务更具挑战性。在这个例子中,我们使用以下两种闭环控制结构:

open_system('rct_pendulum.slx')set_param('rct_pendulum''SimMechanicsOpenEditorOnUpdate'“关”);

内环使用的第二阶状态空间控制器以稳定摆在其直立位置($ \ $ THETA控制),而外部环路使用比例 - 微分(PD)控制器,用于控制车位置。请注意,我们使用了一个PD而不是PID控制器由于该厂已经提供了一些积分作用。

设计要求

TuningGoal要求指定所需的闭环行为。指定的3秒的响应时间用于跟踪车位置的设定值变化$ X $

x命令的%跟踪REQ1 = TuningGoal.Tracking(“外部参照”'X',3);

为了充分拒绝冲动障碍$ $ DF在摆的前端,使用以下形式的LQR惩罚

$$ \ INT_0 ^ \ infty(16 \ THETA ^ 2(t)的+ X ^ 2(T)+ 0.01˚F^ 2(t))的DT $$

强调小的角度偏差$ \ $ THETA并限制控制工作$ F $

脉冲干扰时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和2 $ / S $, 分别)。您可以使用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);