Adams六关节机械臂与Matlab/Simulink的联合仿真(下)

接上文,上文讲到了建立好变量与测量单元之间的关联了,下面完成matlab/simulink的对接接口以及模型搭建

第一步. adams机械系统导出

  • 1 adams中点击插件 - Adams Controls - 机械系统导出

注:文件前缀自己命名,输入信号选择六个关节力矩分量,输出信号选择六个关节角和六个关节角速度, 目标软件选择MATLAB, 非线性, 求解器选择FORTRAN。

如果前面没有问题的话,则会adams的工作目录下生成四个文件,如图所示,分别是.adm, .cmd, .m, .txt文件

第二步 建立Matlab与adams的关联

  打开matlab,在命令行窗口下输入你的.m文件,例如我这里是Controls_Plant_test.,输入之后会显示你的输入输出变量是哪些,同时在工作区也能生成一系列变量,后面都会用到,不要动工作区的变量。

接着再在命令行窗口输入adams_sys, 启动仿真后,会出现以下界面。

注:不要在上面出现的slx文件中仿真,会出现错误,这里我们需要新建一个新的空白model,把adams_sys复制到新的slx文件中,在新的slx文件中添加输入输出模块即可。

第三步 修改adams_sub参数

点击新模型中的adams_sub,再点击ADAMS Plant,开始设置参数,求解类型Solver type选择Fortran,表示动画显示,如果选择c++,则仿真结果不会产生动画效果,Interprocess option选择PIPE(DDE), Animation mode选择interactive,表示启动simulink仿真的时候同时启动adams,Simulation mode选择离散discrete,其余参数默认即可。

第四步 启动simulink仿真

  adams参数设置好之后,可以开始搭建其余的仿真模块,以下是我的搭的仿真模块,之前用的是PID控制角度,但效果不理想,故放弃PID控制,这里先做开环的控制来验证模型的正确性。

模型搭建好之后,启动仿真,这里仿真时间设为5s,固定步长,求解器auto。

启动simulink仿真之后,等待几秒后,adams开始启动,可以看到adams下面的进度条开始加载。

他这里报出警告说 Arial字符没有找到,是文字显示的格式没有找到,这里不用管他,无伤大雅,不影响仿真。实在看不惯的可以在网上下载Arial字符,将他放在C:\Windows\Fonts下即可,以后再联合仿真启动adams时即不会再报出此类警告。

启动仿真之后,切换仿真视图为阴影模式,同时点击适合视图

  • 下面多了个错误警告,说我们仿真终止时间少于或者等于开始时间,这是错误的报错,不用管他,有时候adams会莫名其妙的报错。仿真结束后,adams自动关闭,可以在simulink中查看关节角和关节角度的曲线了。

  • 下图为第一二关节角和一二关节角速度的运动曲线,由于机械臂本身具有自重,而我对3456关节并未施加力矩,所以3456关节会乱动,为了验证仿真的正确性,我们比较机械臂的第一二关节角度和一二关节角速度,

    在adams中对一二关节施加与simulink仿真中相同的关节力矩值,在后处理结果中查看第一二关节角和一二关节角度,可以看到,simulink显示的结果和adams显示的结果一样,故得知联合仿真成功。

总结

至此,六关节机械臂adams与simulink的联合仿真就告一段落了,上面的工作说明我们的开环仿真是没有问题的,在此之后我会根据这次的仿真继续再在adams中做一个轨迹规划。本人知识有限,在这个过程中如有问题,敬请大家提问。

上一篇:Adams六关节机械臂与Matlab/Simulink的联合仿真(上): https://www.guyuehome.com/35541