主要内容

机械臂的多回路PI控制

此示例演示如何使用looptune为6自由度机械臂操纵器调整多回路控制器。

机械臂模型与控制器

此示例使用六自由度机械臂,如下所示。该手臂由六个关节组成,从底部到尖端标记为:“转盘”、“二头肌”、“前臂”、“手腕”、“手”和“夹持器”。每个关节由直流电机驱动,二头肌关节除外,二头肌关节串联使用两个直流电机。

图1:机械臂操纵器。

cst_robotarm文件”。slx”包含该系统的电气和机械部金宝app件的Simulink模型。

图2:机械臂的Sim金宝appulink模型。

“控制器”子系统由六个数字PI控制器(每个关节一个)组成。每个PI控制器使用Simulink库中的“2-DOF PID控制器”块实现(参见金宝app设定点跟踪与干扰抑制的PID调节动机的例子)。控制采样时间Ts=0.1 (10 Hz)。

图3:控制器结构。

通常,这种多回路控制器通过一次调整一个PID回路并在回路中循环来顺序调整,直到整体性能令人满意。此过程可能非常耗时,并且不能保证收敛到最佳的整体调优。或者,您可以使用systunelooptune根据系统级要求,如响应时间和最小交叉耦合,联合调整所有六个PI回路。

在这个例子中,手臂必须在大约1秒内移动到一个特定的位置,每个关节都要有平滑的角度运动。手臂以完全伸展的垂直位置开始,除了肱二头肌角度为90度外,所有关节角度为零。末端配置由角位置指定:转台= 60°,二头肌= 80°,前臂= 60°,手腕= 90°,手= 90°,夹持器= 60°。

在Simulink模型中按下“Play”按钮,模拟模型中指定的金宝appPI增益值的角轨迹。你可以先双击蓝色按钮来显示机械臂的3D动画。角度响应和3D动画如下所示。显然,回应过于迟缓和不准确。

图4:非协调响应。

线性化设备

机械臂动力学是非线性的。为了了解机械臂是否可以用一组PI增益进行控制,沿着感兴趣的轨迹在不同的点(快照时间)对设备进行线性化。此处“设备”指控制信号(PID块的输出)和测量信号(6自由度机械臂的输出)之间的动力学块)。

快照时间=0:1:5;% Plant是从PID输出到机器臂输出LinIOs = [...利尼奥(“cst_机器人手臂/控制器/转盘PID”1.“openinput”),...利尼奥(“cst_机器人手臂/控制器/bicepPID”1.“openinput”),...利尼奥(“cst_robotarm /控制器/ forearmPID”1.“openinput”),...利尼奥(“cst_机器人手臂/控制器/手腕ID”1.“openinput”),...利尼奥(“cst_robotarm /控制器/ handPID”1.“openinput”),...利尼奥(“cst_机器人手臂/控制器/夹持器ID”1.“openinput”),...利尼奥('cst_robotarm/6自由度机械臂'1.“输出”));LinOpt = linearizeOptions (“采样时间”,0);%寻找连续时间模型G=线性化(“cst_机器人手臂”,LinIOs,快照时间,LinOpt);尺寸(克)
6x1状态空间模型数组。每个模型有6个输出、6个输入和19个状态。

绘制线性化模型在t=0,1,2,3,4秒时与最终模型在t=5秒时的差距。

G5 = G(:,:,结束);% t = 5G5.SamplingGrid=[];sigma(G5,G(:,:,2:5)-G5,{1e-3,1e3}),网格标题(“沿轨道线性化动力学的变化”)传说(‘t=5 s时的线性化’“绝对变化”...“位置”“西南”

当动态在低频和高频显著变化时,在10 rad/s附近变化小于10%,这大致是所需的控制带宽。目标增益交叉频率附近的小变化表明,我们可以用一组PI增益来控制手臂,而不需要采用增益调度。

使用LOOPTUNE调整PI控制器

具有looptune,您可以直接调整所有六个PI环路,以实现所需的响应时间,同时减少环路交互和足够的MIMO稳定裕度。控制器在连续时间内调谐,并在将PI增益写入Simulink时自动离散。使用金宝appslTuner接口,以指定必须调整的块,并定位设备/控制器边界。

%在t=3s时对设备进行线性化t线性化=3;%创建slTuner接口TunedBlocks={“转盘PID”“bicepPID”“前臂PID”...“wristPID”“handPID”“gripperPID”};ST0=单反调谐器(“cst_机器人手臂”、TunedBlocks tLinearize);%将PID块的输出标记为植物的输入添加点(ST0、TunedBlocks)%标记关节角度作为植物的输出添加点(ST0,“6自由度机械臂”标记参考信号参考信号={...“参考选择/tREF”...“参考选择/bREF”...“参考选择/fREF”...“参考选择/wREF”...“裁判选择/ hREF”...“参考选择/gREF”}; 添加点(ST0、REF信号)

就其最简单的用途而言,looptune只需要知道目标控制带宽,它应该至少是期望响应时间倒数的两倍。这里期望的响应时间是1秒,所以尝试3 rad/s的目标带宽(记住,植物动态变化至少在10 rad/s附近)。

wc = 3;%目标增益交叉频率控制= TunedBlocks;%执行器命令测量=“6自由度机械臂”%关节角度测量相约= looptune (ST0、控制测量、wc);
最终:峰值增益=0.957,迭代次数=10次,达到目标增益值TargetGain=1。

接近或低于1的最终值表示looptune达到所请求的带宽。比较初始和调谐控制器在角位置的阶跃命令的响应。

T0 = getIOTransfer (ST0 RefSignals,测量);T1 = getIOTransfer (RefSignals相约,测量);选择= timeoptions;opt.IOGrouping =“全部”;选择网格=“上”;stepplot (T0,“b——”,T1,“r”4选择)传说(“首字母”“调”“位置”‘东南’

在y=1附近沉降的六条曲线表示每个接头的阶跃响应,在y=0附近沉降的曲线表示交叉耦合项。调谐控制器是一个明显的改进,但有一些超调和二头肌反应需要很长时间才能解决。

利用第二自由度

二自由度PI控制器具有前馈和反馈两部分。

图5:两自由度PID控制器。

默认情况下,looptune只调优反馈循环,而不“看到”前馈组件。这可以通过验证b美元$PI控制器的参数保持设置为初始值$b=1$(类型可显示(ST1)查看已调优的值)。为了利用前馈作用和减少超调,将带宽目标替换为从参考角度到关节角度的显式步进跟踪要求。

TR = TuningGoal.StepTracking (RefSignals,测量,0.5);ST2 = looptune (ST0、控制测量,TR);
最终:峰值增益= 0.766,迭代次数= 13已实现的目标增益值TargetGain=1。

2-DOF调谐消除了超调,改善了二头肌响应。

T2 = getIOTransfer (ST2 RefSignals,测量);stepplot (T1,“r——”,T2,“g”4选择)传说(“单自由度调谐”“2自由度调谐”“位置”‘东南’

验证已调整的控制器

调谐线性响应看起来令人满意,因此将PI增益的调谐值写回Simulink块,并模拟整个机动。模拟结果如图6所示。金宝app

writeBlockValue(ST2)

图6:调谐角度响应。

二头肌关节的非线性响应明显不足。进一步的调查表明有两个可能的原因。首先,PI控制器过于激进,使电机饱和(输入电压限制在±5 V)。

图7:直流电机的输入电压(控制信号)。

第二,当腕部和二头肌之间的交叉耦合效应达到一定规模时,会对二头肌的反应产生显著而持久的影响。要查看此信息,请绘制这三个关节的阶跃响应实际在操作过程中发生的步幅变化(二头肌关节-10度,腕关节90度)。

H2=T2([24],[24])*diag([-1090]);%幅度阶跃H2。u = {“二头肌”“手腕”}; H2.y={“二头肌”“手腕”};步骤(H2, 5),网格

改进设计

为了改善这一特定手臂动作的二头肌反应,我们必须保持较小的交叉耦合效应相对于每个关节中的最终角位移。为此,通过参考角振幅缩放阶跃跟踪要求中的交叉耦合项。

JointDisp=[60 10 90 90 60];%表示角位移,以度表示TR.InputScaling=连接到SP;

为了降低执行器的饱和,限制从参考信号到控制信号的增益。

你= TuningGoal.Gain (RefSignals控制6);

使用这些优化的调整目标重新调整控制器。

ST3 = looptune (ST0、控制测量、TR UR);
最终:峰值增益=1.14,迭代次数=195

将比例响应与之前的设计进行比较。注意腕部和肱二头肌运动之间的耦合显著减少,无论是峰值还是总能量。

T2s=diag(1./JointDisp)*T2*diag(JointDisp);T3s=diag(1./JointDisp)*getIOTransfer(ST3,参考信号,测量值)*diag(JointDisp);阶跃图(T2s,“g——”t3,“我是4选择)传说(“初始2自由度”“精致的2自由度”“位置”‘东南’

将返回的值推送到Simulink进行进一步验证。金宝app

writeBlockValue(ST3)

仿真结果如图8所示,在稳定时间和平稳过渡时间上,二次侧响应与其它关节相比,比以前的设计少。

图8:带有改进控制器的角度位置和控制信号。

3D动画确认手臂现在快速准确地移动到所需配置。

图9:微调响应。

另请参阅

|||

相关话题