前言


最近有两个文章马上要投出去了,用了一些很怪的东西,但是效果还是不错的,感觉还挺有意义,所以想着开个新坑分享一下。
这块儿主要介绍一下机器人怎么使用ADAMS与Simulink进行联合仿真。在做的过程中发现做偏机械的这一块很少有人进行分析,相关的教程找的比较吃力,所以就简单以四旋翼无人机为例,抛砖引玉一下子。

0 软件介绍

在开始之前,先简单介绍一下两个软件。对于做机器人的同学来说,V-REP、Gazebo啥的肯定不陌生,但是ADAMS见得就不多了。

  • ADAMS
    ADAMS,即机械系统动力学自动分析,是一款虚拟样机分析软件
    简单来说,它可以对各种机构建立贴近实物的、精细的虚拟样机,并完成运动学与动力学仿真,可以无实物进行机构、执行器的分析与仿真,完成机器人设计或控制的前期验证
    在机器人领域中,使用ADAMS很大的好处是可以对机器人各个机构进行详细的物理参数定义(材料、质量等),并且可以轻松地添加并设置的弹簧、避震、转动副、驱动、接触力、摩擦力等。

  • MATLAB - Simulink
    Simulink是美国Mathworks公司推出的MATLAB中的一种可视化仿真工具,可用于系统设计、仿真、自动代码生成以及嵌入式系统的连续测试和验证。
    简单来说,它是一个相当全能的科研工具与计算器。在这里,我们使用Simulink搭建控制器,对ADAMS的模型进行通讯与控制。

  • ADAMS & Simulink联合仿真
    这两个软件联合仿真,意味着:
    (1)使用ADAMS精细、真实的虚拟样机模型为平台
    (2)使用Simulink丰富、集成的控制模块进行控制器的搭建

1 Solidworks画图

我们用一个简单的四旋翼无人机例程来进行讲解:
首先,使用Solidworks画一个无人机,如果你没有现成的模型,画图时需要遵循以下原则:

  • 将那些固定连接不动、且材料相同的部件绘制为一个零件
  • 质量分布尽可能遵循实物来画(即可以不用在意小细节,大体得对);
  • 每个相同零件独立命名(即四个螺旋桨分别命名为rotor1、rotor2…等);
  • 英文命名

如果你已经有一个自己的模型,希望进行简化并导入,需要遵循:

  • 将那些固定连接不动、且材料相同的部件合并成为一个零件
  • 合成为单个零件后,每个相同零件独立命名(即四个螺旋桨分别命名为rotor1、rotor2…等);
  • 如果有弹簧啥的,需要删掉并保留两端固定孔位;
  • 英文命名

这里我们画一个很抽象的四旋翼飞行器,如图:


这是个抽象的F450四旋翼无人机,x为正方向,电机依次编号为1、2、3、4。
共有五个零件组成装配体:


2 从Solidworks导出并导入ADAMS

  • 点击如图


  • 在另存为中,选择导出为x_t格式的文件:


  • 打开ADAMS,点击新建模型,这里使用的是ADAMS 2020版本。


  • 进行新模型设置,重力在进入后进行设置。
  • 注意!需要全英文路径!全英文路径!全英文路径!
  • 注意!全英文命名!全英文命名!全英文命名


  • 进入后界面如图所示,图中有一些界面介绍,简单讲解下视角的操作,比较魔幻且不人性
  • 在英文输入法下,按住R键拖动鼠标为旋转模型;
  • 在英文输入法下,按住T键拖动鼠标为平移模型;
  • 在英文输入法下,按住Z键上下拖动为缩放模型;



总结

本文介绍了ADAMS与Simulink联合仿真的前置准备工作,包括Solidworks画图的注意事项与原则,以及如何导出x_t文件,如何将x_t文件导入ADAMS中。
下一章讲讲怎么在ADAMS进行模型参数、连接、受力、驱动的设置。