【工具篇】 Solidworks导出xml模型到matlab及simscape一系列输入输出参数设置

您所在的位置:网站首页 solidworks导出动画有一半黑 【工具篇】 Solidworks导出xml模型到matlab及simscape一系列输入输出参数设置

【工具篇】 Solidworks导出xml模型到matlab及simscape一系列输入输出参数设置

2024-01-03 16:10| 来源: 网络整理| 查看: 265

目录标题 准备环节第一步:下载第二步:安装第三步:将MATLAB注册为自动化服务器第四步:完成在CAD软件端的配置【即sw等】 操作环节导出sw中装配体效果 检验环节额外操作:去除中文路径修改各个实体模型的颜色在xml中修改在matlab simscape中修改 matlab导入模型修改simscape重力方向修改模型质量关节可测量【输出量】的显示量纲数与无量纲数转换命名变量并显示 关节【驱动量】设置封装 问题记录:参考视频 这个插件跟 上一篇文章提到的sw2urdf插件是平行关系; 本插件的作用是 将solidworks的装配体导出成xml文件【并最终在matlab simscape中使用】

该插件的下载方法及使用方法在matlab官方均有提供 如果看不懂英文,也可以看SolidWorks模型导入到MATLAB(Simulink-Simscape)详细过程这篇文章,博主把英语文档翻译了一遍。

另附matlab端的操作指南和Solidworks端的操作指南。

写在前面:

本文与官网教程略有出入,只是记录了笔者设备调试成功的经验大部分的步骤是照着matlab端的操作指南走的,如果换到了Solidworks端操作指南我会提出这个插件与sw2urdf的一个不同之处在于,他会记住你的配合关系,这个插件中设置恰当的配合关系很重要!

有待考究

本插件不需要选择轴和坐标系等,所有关系均根据配合关系自动生成 准备环节

准备环节是只有第一次使用该插件时需要进行的操作

第一步:下载

按照官网给出的链接,进入下载界面,邮箱等信息可以随便填,不重要,填完进入如下界面 在这里插入图片描述 下载与matlab版本对应的.zip和.m文件,不需要解压.zip

第二步:安装

进入下载目录,新建一个脚本,输入

install_addon('zipname')

其中,"zipname"是zip文件的名字,如install_addon('smlink.r2020b.win64.zip)` 命令行显示类似下图【untitled.m是我创建的脚本,里面只有这一行命令】 在这里插入图片描述

第三步:将MATLAB注册为自动化服务器

每次导出 CAD 装配模型时,Simscape Multibody Link插件都会尝试连接到 MATLAB。要启用连接,您必须将 MATLAB 注册为自动化服务器。

但是从我的使用经验来看,只要导出过一次.dll文件,就能永久在Solidworks使用了

可以通过以下两种方式将MATLAB注册为自动化服务器

以管理员模式打开 MATLAB ,在下方命令行中输入"regmatlabserver"以管理员模式打开系统的命令提示符【cmd】,输入"matlab -regserver"

可以考虑进行完这一步之后再进行一次第二步

至此,matlab端的操作告一段落,接下来的操作在Solidworks端; 若上述步骤完成的顺利,第二或者第三步命令行里会有类似"保存文件到XXX.dll中"之类的字样

第四步:完成在CAD软件端的配置【即sw等】

这一步需要打开solidworks,跟sw2urdf时的操作一样,点开工具->插件,在在这里插入图片描述 在其他插件中选择Simscape Multibody Link

操作环节 导出sw中装配体

选择 工具-Simscape Multibody Link-Export-Simscape Multibody… 在这里插入图片描述

注意配合关系应合理且恰当,所有配合关系均会同步导出到xml文件中。

注意:本插件不需要选择轴和坐标系等,所有关系均根据配合关系自动生成

部分参数,如生成STEP或STL可在settings中修改,其他参数笔者并未关注,欢迎自行探索 效果

如图所示,实体文件自动带了一个中文后缀,最好改成不带中文的【在.xml中也要改】

在这里插入图片描述

检验环节

至此,全部工作已经完成🙌

额外操作:去除中文路径

但是,为了让matlab识别到你的文件,首先需要将生成的实体文件中的中文去掉,并保证文件的绝对路径没有中文。

修改各个实体模型的颜色

如果没有设置颜色,那么所有模型都将会是#CAD1EE的灰色,如 在这里插入图片描述

这种颜色将会完美融入背景,促进你近视度数的增加(⊙﹏⊙) 最好把颜色修改得炫彩夺目点儿,方便观察。

在xml中修改

找到以下片段,把两处rgb都改成目标颜色,下面的Specular不必修改。

将两个实体模型分别改成不同颜色,建议选择饱和度高一点的颜色

在matlab simscape中修改

跟下段的修改质量在同一个界面,双击实体,选择Graphic-Visual Properties-Color,单击色块,选择合适的颜色【当前是默认的灰色】 在这里插入图片描述

matlab导入模型

在matlab中新建一个脚本,输入导入模型的命令后,simulink界面会自动跳出

clear clc smimport("XXXXX.xml")

加载界面 在这里插入图片描述 simulink界面 在这里插入图片描述 调整停止时间后,点击右上角运行:可能会发现模型固定不动

模型运行状态可能和我们想的不一致,这是因为系统的重力方向与我们预想的重力方向不同导致的

修改simscape重力方向

双击在这里插入图片描述在这里插入图片描述 我们发现重力是沿y方向的,结合上面的仿真动画,进行修改即可~ 成果: 在这里插入图片描述

修改模型质量 在导出的simulink中选择名字为"XXX_RIGID"的模块并双击 在这里插入图片描述进入子页面显示如下 在这里插入图片描述;双击在这里插入图片描述进入inertia页面,共有三个选项:点质量、常数、根据几何体计算; 选择calculate from Geometry;再选择 Based on:Costom Mass 在这里插入图片描述 将选中区域改成预设的质量;这时质量就会根据集合体形状均匀分配 关节可测量【输出量】的显示 双击关节副在这里插入图片描述在这里插入图片描述;点击Z Prismatic Primitive - Sensing勾选对应参数,即可获得对应输出,笔者选择了Position, Velocity,此时出现记录机体速度和位置的输出口 在这里插入图片描述添加Scope窗口,我们发现输出口并不能直接接到Scope上,这是因为Scope观测的是数字量,而输出是物理量纲。 量纲数与无量纲数转换 进入Simulink的库浏览器,选择Simscape-Utilities;如图框中两个模块是最常用的。

在这里插入图片描述 量纲数转非量纲数的方法如图所示【用白箭头转黑箭头那个,白接白、黑接黑】 在这里插入图片描述

命名变量并显示 双击右侧黑线进行命名 在这里插入图片描述 【注意,如果是上面的Prismatic移动副,此处Sensing对应的Position和Velocity应该是位置和速度,而不是角度与角速度】在Scope界面中,右键-配置属性(Configuration Properties)-画面(Display)-显示图例(Show legend) 在这里插入图片描述 关节【驱动量】设置 同样地,双击关节副点击Z Prismatic Primitive - Actuation -Force,自行选择 在这里插入图片描述Force:力;Motion:力矩;二者同时给输入一般会报错 【通常移动副驱动是力;转动副驱动是转矩】 封装 将输入输出模块下拉,如图所示,注意不要拉到输入输出 在这里插入图片描述鼠标挪至右侧出现的三个点处选择 创建子系统 在这里插入图片描述完成效果图

在这里插入图片描述 展开子系统 在这里插入图片描述

右键子系统,在此处选择 展开子系统然后将外圈的框delete 问题记录:

似乎第一次运行simscape没有问题,但是同样的文件运行第二次时,就会显示XXX文件/文件夹不存在,原因未知😔,解决方法:及时保存??

参考视频

后面的simscape模块参考:matlab动力学建模与simscape验证 倒立摆系列后面的一些视频应该也会参考这个up主的讲解,强烈推荐大家观看!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3