最近在研究把三维模型中的数据转换到MATLAB上进行仿真,初步知道了MATLAB工具包中Simscape可以进行物理建模。下面的内容主要是从迈斯沃克官方网站上看到的,当然也有一点自己的琢磨。
可以将CAD模型转换为等效的Simscape。转换依赖于smimport函数,该函数的中心参数是XML多体描述文件名。XML文件将重新创建原始模型所需的数据传递给Simscape Multibody,如果模型中存在不受支持的约束,则可以将其近似值传递给Simscape。
将CAD模型转换有导出和导入两个步骤。一是从三维建模软件导出,将CAD装配模型转换为XML多实体描述文件和一组step或STL零件几何文件。二是往matlab导入;将多实体描述和零件几何图形文件转换为SLX Simscape多实体模型和M数据文件。模型从数据文件也就是.m文件获取所有块参数输入。
转换后的模型表示在Simscape多实体软件中称为实体的CAD零件,使用Simulink子系统,这个子系统包含多个实体和刚性转换块。实体块提供了实体的几何图形、惯量和颜色。刚性变换块为框架提供实体之间连接所需的姿态。
**理论上讲,可以从任何CAD应用程序导出CAD部件模型。**但是需要通过XML来作信息媒介,而三维软件如何生成相关的XML是个问题。stp格式是可以用notepad读出来,但是并不是simscape能读取的格式,所以直接把stp文件后缀名改成xml是行不通的。
比如我现在用UG画了个无人机的模型,但是还没有找到合适的方法把模型参数转换到simscape可以识别的XML。
但是迈斯沃克官方推出了一个插件:Simscape Multibody Link CAD,可以以有效XML格式导出模型。但是这个插件目前只兼容三个桌面CAD应用程序:SolidWorks、Cre和Inventor。该插件不仅生成XML多体描述文件,还生成最终转换模型中可视化所需的任何几何体文件。
安装
一、下载
到迈斯沃克官网下载插件,按你实际需要的下载就行;https://www.mathworks.com/campaigns/offers/download_smlink.html
然后需要你留邮箱等信息,填上即可。最后下载插件到本地,压缩包不用打开;保存位置没有太多要求。
二、安装
以管理员身份运行MATLAB,然后在命令行窗口输入install_addon(‘zipname’),zipname就是对应的压缩文件名称,比如我下载的是smlink.r2018b.win64.zip,那么就是在命令行窗口输入install_addon(‘smlink.r2018b.win64.zip’)
上图是安装完成后命令行窗口的提示情况
三、注册MATLAB为自动化服务器
接着在命令行窗口输入regmatlabserver 然后MATLAB提示正忙,稍等片刻后如果没有其他提示,就意味着注册成功了。
四、solidworks软件使能
还是在MATLAB的命令行输入 smlink_linksw(别被小标题误导了,跑去sw操作,注意还是在MATLAB),成功后弹出下图
然后打开sw,在顶端工具栏找->插件->其他插件,勾选那个Simscape Multibody Link,如下图
打开要转换的零件,然后点击工具,就会看到有Simscape Multibody Link选项,点击Simscape Multibody Link-> Export ->Simscape Multibody
系统弹出对话框生成XML文件
和相应的STEP文件,自动生成的STEP文件为该装配模型中单个零部件的STEP模型。
接下来是导入部分。
导入是指将XML文件导入到Matlab,其输入是XML文件和一系列STEP文件,工具是Matlab,输出是关于该装配模型的slx文件,和其装配参数m文件。
更改Matlab目录到XML和STEP所在目录,输入“smimport(‘xmlname’)”,其中xmlname就是XML文件的名字,如下图
然后Mtalb打开Simulink,并根据XML信息生成对应的slx文件,和文件数据相关的.m文件
此时,整个转换过程基本完成。
除了用XML作为中间格式文件转换外,还有种方式就是用Urdf格式。后面再做深入研究。