成都建设网站的公司有哪些,助君网络,网络设计方案包括哪些,宿迁做网站公司哪家好**
玩转Matlab-Simscape#xff08;初级#xff09;- 10 - 基于COMSOLSimulink 凸轮机构的控制仿真
** 目录 玩转Matlab-Simscape#xff08;初级#xff09;- 10 - 基于COMSOLSimulink 凸轮机构的控制仿真 前言一、简介二、在Solidworks中创建3D模型#xff…**
玩转Matlab-Simscape初级- 10 - 基于COMSOLSimulink 凸轮机构的控制仿真
** 目录 玩转Matlab-Simscape初级- 10 - 基于COMSOLSimulink 凸轮机构的控制仿真 前言一、简介二、在Solidworks中创建3D模型并导入Simulink2.1 Solidworks中建模2.2 、将xml模型导入simulink 三、在COMSOL中创建模型并导入Simulink3.1 模型简介3.2 模型搭建3.3 在Simulink中创建模型 总结 前言
在产品开发中多体动力学控制仿真是一种常见方法本文从初学者的角度一点点掀开应用Maltab simscape对多体进行仿真的面纱。写这篇博文是为后续做旋翼无人机的多体系统仿真打基础。欢迎各位小伙伴关注、赞赞、留言和收藏。 本文进一步深入学习构建复杂一点点的凸轮机构的建模过程。 一、简介
本文研究柴油机气门机构。该系统所有组成零件全部假定为刚体。模型的输出包括气门从动件的位移和速度模型输入为旋转凸轮转速。凸轮3D结构如下所示。 二、在Solidworks中创建3D模型并导入Simulink
2.1 Solidworks中建模
当我们按照从下到上的方式将一个个创建完零件再装配起来。 该机构的运动组件是
凸轮和凸轮轴气门 固定组件是导程、销轴、凸轮轴承
有时候从Solidworks中利用插件导出*.xml文件时会遇到一些问题如在装配体中如果使用“凸轮配合相切”、‘铰链’等配合方式来联结3D模型汇总的凸轮与推杆摇臂与销轴时会在导出Samscape Multibody模型的xml文件时出错。如下图所示。 这通常意味着你正在尝试导出的某些约束类型不被Simscape Multibody所支持。Simscape Multibody支持多种标准的机械约束如固定连接、铰链、滑块、齿轮等但对于一些更复杂或自定义的约束如机械配合中涉及的“凸轮配合相切”可能无法直接转换成Simscape Multibody中可用的约束类型。 解决方法1忽略这种错误 手动创建凸轮•在MATLAB/Simscape Multibody环境中使用内置的凸轮组件如果有的话来重新创建凸轮机构。这可能需要手动输入凸轮轮廓的数据。 解决方法2在SW中用其他约束来替换“凸轮配合相切”这种约束尝试使用Simscape Multibody支持的标准约束来代替你的凸轮配合。 这两种方法都不太友好后续我对SimSacpe了解多了再补上这块内容。
2.2 、将xml模型导入simulink
在matlab 命令窗中利用命令smimport‘*.xml’语句导入在SW中生成的xml模型文件并运行仿真。
三、在COMSOL中创建模型并导入Simulink
上面2.1 ~2.2讲到的方式对于新手处理起那些复杂模型问题来非常困难下面讲述另一种简单的方法。
3.1 模型简介
该机构中凸轮旋转是指定的弹簧联结到气门以限制其运动由此可以计算给定凸轮转速条件下从动件的位移、速度和加速度计算凸轮-推杆的连接力单独在comsol中求解这个力是很容易收敛的但与simulink进行协同仿真时很难收敛。协同仿真时我把求解连接力这部分给取消了协同仿真模型很容易得到了收敛。 将弹簧安装到气门上的目的是迫使气门跟随凸轮的轮廓运动并避免凸轮与气门之间的间歇性接触。因此弹簧刚度的最佳值是使凸轮与从动件始终保持接触同时使凸轮轴旋转所需的扭矩最小。
3.2 模型搭建 将Solidworks中创建的CamFollwer装配体模型导入进COMSOL几何中。 在“多体动力学”物理场节点中设置刚性材料、固定约束条件、运动副凸轮从动件、铰链关节、槽关节、 指定凸轮轴旋转运动气门运动添加弹簧、添加重力 划分网格 在COMSOL中创建Simulink协同仿真块Cosimulation for Simulink 先创建全局变量探针用于指定协同仿真块的输入、输出量 再次求解comsol模型确保模型能正常求解 设置协同仿真块输入输出参数 导出生成*.fmu协同仿真文件供Simulink调用
注意 1.在COMSOL中如果要输出协同仿真模块Cosimulation for Simulink节点一般需要先创建“全局变量探针”该探针变量用于探测模型的输入量、输出量在整个求解过程中的变化。 2.“研究”设置中“辅助扫描”功能不支持协同仿真模块Cosimulation for Simulink的导出因此在“研究”中不能设置“辅助扫描”参数。
3.3 在Simulink中创建模型
注意1.需要通过进入Matlab Simulink平台不支持手动建立Simulink与COMSOL的连接否则在Simulink中添加Comsol协同仿真模块时在Simulink Library中不显示Comsol协同仿真模块如下图所示。 创建一个简单的控制模型并运行仿真如下图所示。 运行结果如下在simulink和comsol中结果一致。 接下来在Matlab 命令窗口中输入“mphlaunch”打开Comsol我们可以继续利用comsol对数据结果进行后处理也可以进一步完善优化控制器达成设计目的。 需要注意的是在运行仿真时计算不收敛是常见的问题尝试在simulink–Model Settings中对求解器进行设置comsol中对求解器进行设置一般可以解决问题。 总结
以上就是今天分享的关于Matlab Simulink 与comsol协同仿真的内容搭建了一个柴油机控制气门开闭的凸轮机构的模型进一步熟悉了利用SW、Comsol、Matlab Simulink进行协同仿真的整个建模流程。一种方法从SW将3D模型导入Matlab Simscape中另一种方法将3D模型从SW导入Comsol生成协同仿真模块再进入Simulink进行控制仿真两种方法各有长短。后续会一步步再深入研究。【赠人玫瑰手留余香】欢迎各位小伙伴关注、赞赞、留言和收藏。