半命名头像
关注
MWORKS Sysplorer 六自由度平台液压驱动仿真:Stewart逆运动学与轨迹规划封面图

MWORKS Sysplorer 六自由度平台液压驱动仿真:Stewart逆运动学与轨迹规划

六自由度运动平台(Stewart并联机构)通过六条可伸缩支链共同驱动上平台,可以实现三个平移自由度和三个转动自由度,常用于飞行模拟、振动试验和运动平台等场景。

我在MoHub上发现了一个基于MWORKS Sysplorer的六自由度液压平台案例。获取模型后,我结合Modelica模型和仿真动画进行了分析。案例不仅搭建了Stewart平台的机械与液压系统,还加入了轨迹规划和逆运动学计算,可以将给定的平台位姿转换成六个液压缸的伸长量。

下面主要看它如何完成“目标位姿 → Stewart逆解 → 六缸驱动 → 平台运动”这条链路。

一、这个案例解决什么问题

Stewart平台的控制难点在于六条支链必须协调运动。

例如,希望平台向上移动10 mm,看似只是一个简单的Z方向平移,但实际上六条液压缸都需要按照平台几何结构同步改变长度;如果再加入滚转、俯仰和偏航,六条支链的伸缩关系会更加复杂。

因此,需要解决一个关键问题:

已知平台期望位姿,六条支链分别应该伸长多少?

这就是Stewart平台的逆运动学问题。

与正运动学相比,Stewart机构的逆运动学更加直接:给定平台的位置和姿态后,根据上下平台铰点的几何关系,可以分别计算六条支链的目标长度。

案例进一步把逆运动学结果送给液压驱动系统,因此整体过程可以概括为:

轨迹规划 → 目标位姿 → 逆运动学 → 六杆伸长量 → 液压缸驱动 → 平台运动

二、模型与逆运动学原理

模型主要由三部分组成:

  • MechanicsSystem.Stewart2:六自由度Stewart多体机械模型;

  • HydraulicSystem.HydraulicSystem:六套换向阀和液压缸组成的驱动系统;

  • TrajectorySystem:轨迹规划与逆运动学计算。

轨迹输入使用Ramp模块生成平滑的位置变化,例如:

Modelica.Blocks.Sources.Ramp rampX(
    offset = x0,
    startTime = StartTime,
    height = x,
    duration = Duration);

Modelica.Blocks.Sources.Ramp rampY(
    offset = y0,
    startTime = StartTime,
    height = y,
    duration = Duration);

相比直接给位置阶跃,Ramp可以让平台在一定时间内逐渐运动到目标位置,减少瞬时变化。

Stewart逆运动学

逆解的核心是根据目标平台位置和姿态,计算移动平台六个铰点在基座坐标系中的位置。

模型先根据滚转、俯仰和偏航角生成旋转矩阵,再将移动平台铰点旋转、平移到全局坐标系:

translation = pos + home;
R = TM.axesRotations(sequence, rot);
T = TM.to_T(R);

for i in 1:6 loop
  pMoveJoint[:,i] =
      T * pJoint[:,i] + translation;

  legVector[:,i] =
      pMoveJoint[:,i] - bJoint[:,i];

  legLength[i] =
      sqrt(legVector[1,i]^2
         + legVector[2,i]^2
         + legVector[3,i]^2);

  extend[i] =
      legLength[i] - legLength0;
end for;

其中:

  • pJoint:移动平台铰点坐标;

  • bJoint:固定基座铰点坐标;

  • legVector:每条支链的空间向量;

  • legLength:当前支链长度;

  • extend:相对初始长度的伸长量。

模型中的支链初始长度约为:

0.927237 m

平台初始高度约为:

0.944567 m

计算得到的六个extend最终作为六个液压缸的运动指令。

三、实际仿真效果

案例提供了两个不同用途的仿真模型。

1. 系统模型

图1 六自由度液压运动平台模型示意图

模型将参考信号、液压驱动系统和Stewart多体机械平台连接起来。

液压部分包含六个三位四通换向阀、六个液压缸和节流元件,机械部分则由上下平台以及六条运动支链组成。

2. 六缸直接驱动

图2 六路信号直接驱动下的平台运动

Stewart_RandomDrive采用六路错相正弦信号直接控制液压缸,不经过逆运动学。

这一工况主要用于检查:

液压驱动系统和多体机械结构能否正常联合运动。

从动画中可以看到,随着六个液压缸不断伸缩,上平台产生连续的平移和姿态变化。

3. 轨迹规划与逆解驱动

图3 基于逆运动学的轨迹规划结果

Stewart_Trajectory则先给定平台目标位姿,再通过逆运动学计算六条支链的伸长量。

本次轨迹中:

x = 0.01 m
y = 0.01 m
z = 0.01 m

逆解结果随后驱动六个液压缸,使平台按照规划轨迹发生相应运动。

仿真时间为0~6 s,结果能够直观看到:

位姿指令 → 六杆长度计算 → 液压驱动 → 平台运动

这一过程。

四、结果说明了什么

两个仿真模型验证的是不同环节。

Stewart_RandomDrive主要验证液压系统和机械模型之间的联合仿真关系,说明六个液压缸可以驱动Stewart机构产生六自由度运动。

Stewart_Trajectory则进一步加入逆运动学,使平台位姿不再由六个液压缸独立决定,而是先指定目标位置和姿态,再统一计算六条支链长度。

这也是Stewart平台控制中的关键思想:

真正需要规划的是平台位姿,而不是人工分别决定六根液压缸伸多少。

不过,这个案例主要用于系统结构和逆运动学原理验证。

当前模型将逆解得到的支链伸长量直接用于驱动液压系统,没有进一步建立每条液压缸的独立位置反馈,也没有加入摩擦补偿、机械间隙、结构柔性和力位混合控制。

因此,它验证的主要是:

轨迹规划 + 逆运动学 + 液压驱动的前向链路。

还不能直接等同于实际六自由度运动平台中的高精度闭环伺服控制。

五、总结

这个案例展示了如何在MWORKS Sysplorer中将Stewart六自由度平台的多体机械、液压驱动和轨迹规划连接起来进行系统级仿真。

其中最关键的部分是逆运动学:根据平台期望的位置和姿态,计算六条支链的目标长度,再由六个液压缸共同驱动平台完成运动。

两个Demo分别验证了六缸液压驱动和位姿逆解两条关键链路,可以用于理解Stewart平台的机构运动学、液压驱动以及轨迹规划方法。

如果继续扩展,还可以在此基础上加入液压缸位置闭环、姿态反馈、力控制和奇异位形检测,使模型进一步接近实际六自由度运动平台的控制系统。

本文分析的案例来自MoHub,案例页面提供相关模型及运行文件:

https://mohub.net/model/25437/summary

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/weixin_44849550/article/details/164877382

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--