matlab如何创建callback函数_如何实现Matlab--Adams联合仿真

69d7dd5fe42f336374deb2c80de853d8.png

最近因为课题需要,学习了一下如何用Matlab与Adams进行联合仿真,这方面资料网上有一些,但是大多讲的很粗糙,而且大多数都是纯英文的,下面我就把自己学习的结果做一个总结,希望对大家有帮助。


一、基本软件介绍

本次联合仿真用到的软件版本为:Solidworks2019、Adams2018、Matlab2018b。


二、Solidworks绘制三维模型

Adams的三维建模能力相比于Solidworks这样的专业建模软件来说还是有差距的,所以三维模型的绘制这块我就通过Solidworks2019来实现。

图1所示为本次实验的对象,我们用Solidworks2019创建了一个直径10mm,长度150mm的圆杆,材料我们选择304钢材,图2、图3所示为材料相关属性,图4为该模型的质量属性,质量属性将随模型一起导入到Adams中。

353f55e0ff11aca1b8704bb18f46715e.png
图1 单杆模式

8e646d36e20beda5c664c3175d7aeb3e.png
图2 材料选择

3e2a6aef1038cbb5ded94c829cd7506f.png
图3 材料属性

5bf6f222aff1dd6082985a9bfb84e096.png
图4 质量属性

模型创建好后另存为.x_t类型的文件。

4483062767a9b87c0cae4598a7c5054f.png
图5 另存为.x_t文件

三、Adams创建机械系统

右击桌面Adams View2018图标,进入属性,将我们仿真文件的工作目录复制并粘贴到起始位置栏,用同样的方法修改Matlab工作目录,如图6、图7所示。

b06c4afe279e7e001a0e572be469c426.png
图6 修改Adams工作目录

23179840c190fbcbd98d3a2fb8e5d5b4.png
图7 修改Matlab工作目录

打开Adams,新建模型。

ceab4d294cc9d74ce173adaf8e36388d.png
图8 新建模型

f3e2c28ff616442cad757a93272e2a10.png
图9 新建模型

导入模型,文件类型选择.x_t类型,读取文件选择之前Solidworks保存的.x_t文件,并命名模型名称。

be739e852818fc661e0b5c9ba4e48877.png
图9 导入模型

3765c0137752263bcce2471e9d2c3bf0.png
图10 导入模型

修改渲染模式为精确填充,这样模型看起来更好看。

225f08ad4cd575d804a4ec9d35330ac0.png
图11 修改渲染模式

c0d2f8587f5d96c909bba5f1d013f948.png
图12 修改渲染模式

右击PART2模型,选择修改,可以查看模型的密度以及惯性矩、质量等属性,这个跟之前之前Solidworks中的质量属性是一致的结果。

77447e78098595f48114018e086f62e6.png
图13 模型属性查看

ed4300c79886ae2732e0c0de7faca37f.png
图14 模型属性查看

添加旋转副,构建方式如图15所示,图16所示为旋转副添加结果。

3c25f7a905c0b6c135ecf5814752ac67.png
图15 添加旋转副

66e808884f493590d6ccbdc2d3c37a98.png
图16 旋转副添加结果

添加力矩到旋转副上,构建方式如图17所示,力矩大小选择为0。

5507a3c418adf6bfe08604c0096795d4.png
图17 添加力矩

fb36586a25ceee8942c90fe39d07a7fe.png
图18 添加力矩效果

添加状态变量,命名为torque,如图19、图20所示,同样的方法添加angle和angular_velocity变量。

4a1cee315d02bc7ff5d9ba6b2a7ef2f6.png
图19 添加状态变量

9f161a67e0961fc4ccbf027324b8d71f.png
图20 添加状态变量

修改力矩函数,并将其关联到图19添加的状态变量,删掉原来的0值,选择数据单元,点击辅助

7d68637bd4db6c342a54fb5a82d67cf0.png
图22 修改力矩函数

7fd3772f06659c1595838a5aa6b9d69b.png
图23 修改力矩函数

66afa85b96c553ff247aaeb1e207eceb.png
图24 修改力矩函数

6c42471b0f180af95502669ff62aaffd.png
图25 修改力矩函数

修改angle函数,如图26,右击角度,修改,删除原来的0,选择位移,选择Angle about z(根据模型在Adams中的选转轴进行选择),点击辅助,然后根据模型和大地之间的坐标系选择标记点,如图27所示。同样的方法修改angular_velocity变量的函数,如图28所示。

dd6c75201804c633064b4bb2f6a4194d.png
图26 修改angle函数

3162b50b43ba2d71171b0a72d7c25fde.png
图27 选择angle变量标记点

8c0d6cabec32d6baf0b2d0c083e33137.png
图28 修改angular_velocity函数

添加输入量(torque),同样的方法添加输出量(angle和angular_velocity)。

7d75b023765668926fc692be9fe6bdcd.png
图29 添加输入量

a4394c118ea8fdfd4dfd8019f817bb35.png
图30 添加输入输出量

选择Adams Controls插件,导出机械系统,如图31、图32所示。

046f4010580d1780b65cce927d0bcc93.png
图31 导出机械系统

b152ad2771aa83fa8484aba29f0d82cf.png
图32 导出机械系统

至此,Adams机械系统已经搭建完毕。


四、Matlab搭建仿真系统

打开Matlab,运行Pendulum_a指令(就是Adams导出机械系统的文件名),如图33所示。

9654497e81dd30326f986fccc6940f7e.png
图33 运行Pendulum_a指令

运行adams_sys指令,调出adams的simulink系统,中间黄色的模块(adams_sub)就是我们需要的机械系统模型。

5009fc30db8e773eb56448da2af3b7eb.png
图34 调出adams的simulink系统

创建一个新的simulink文件,并添加需要的模块进去,构建仿真系统,如图35、图36所示,这里采用PD控制器,控制杆到某一个固定的角度。

4aff022612c488143ad2d135512f91c8.png
图35 创建新的simulink文件

13e367f9b109af5eba290aca9a27d809.png
图36 构建仿真系统

修改adams_sub,双击adams_sub进入子模块,再双击ADAMS Plant(如图37)修改参数如图38所示。

483a13f61e215deb59a656f1fb6c0637.png
图37 双击ADAMS Plant

c97bdb37b4229c2153e30c37b00983ec.png
图38 修改参数

点击Run进行仿真,Adams会被自动打开,可以看到仿真动画效果,如图40所示。

1da3836d1d930ee805f531f1fc70955e.png
图39 仿真

73906a350f7c26dad1e866277acd190c.png
图40 仿真动画

打开示波器可以看到仿真数据监控图像。

79395333a848b3a009d170b5e5890f25.png
图41 仿真监控图像

至此,通过Matlab和Adams联合仿真的步骤就已经全部实现,剩下的细节就需要大家不断摸索啦。

希望对大家有所帮助!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值