Simscape Multibody简介与入门 (下)

2023-11-27 18:30

本文主要是介绍Simscape Multibody简介与入门 (下),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Simscape Multibody简介与入门 (下)

转载自https://zhuanlan.zhihu.com/p/67768339

开头简介

下图是摆动导杆的机构简图:

在这里插入图片描述

其中曲柄1为主动件。总共有3个构件,4个低副(三个转动副一个移动副),该机构自由度为1。
下面介绍从CAD软件导出xml文件,再导入到simulink的工作流程。

CAD建模

首先,依据上面的机构简图,在CAD软件中建立零件的三维模型,指定材料,然后零件之间通过恰当的约束与联接形成装配图,在专业CAD软件里面指定约束还是很方便的,对于熟悉CAD的同学操作起来应该很快。装配图:
在这里插入图片描述接下来就是将装配图导出xml文件,这就用到之前安装的插件了,不同软件具体操作可能不一样~Inventor操作倒是挺简单的。
在这里插入图片描述直接就生成对应的xml文件,还有附带的STEP模型。

Matlab导入XML

接着,打开Matlab,把Matlab的工作目录移到xml文件所在文件夹。使用smimport命令。
在这里插入图片描述smimport(‘filename’);
filename为xml文件名(带后缀)。
成功后会自动新建一个Simulink模型,里面就是对应的物理网络。
在这里插入图片描述直接运行之后报错,检查错误信息,是因为过度约束的问题,将红圈内多余的约束去掉之后即能开始仿真,官方对于物理仿真推介的解算器是ode15s(stiff/NDF),还挺快的。
默认设置是仿真的时候会自动出现一个Mechanics Explorer窗口播放仿真动画。
在这里插入图片描述如果发现动画帧数过低,可能是因为仿真步长过大。解决方法是不断地眨眼,眨眼补帧 : (
也可以通过缩小仿真的最大步长来增加帧数 : )
各种高副低副还有坐标系测量模块实际上联接或测量的都是坐标系(固定在构件上,可以自定义这些坐标系,可以平移这些坐标系,也可以旋转它们)。

分析

对于这个机构,当曲柄作匀速转动的时候,滑块到转动副的水平距离应该是一个三角函数。我们可以通过施加一个力矩作用在曲柄上,并在simulink中增加坐标测量模块来考察这一点。
像各种高副低副模块,比如说转动副模块,都可以设置State Targets里的参数来设定初始位置、初始转速等。还可以对摩擦进行设置,这里设定为不存在摩擦力。另外,重力加速度设定为0。
在这里插入图片描述

在曲柄上加上一个作用0.5秒的0.001牛米的力矩,
用到一个“外力(矩)模块”(External Force and Torque):
在这里插入图片描述

坐标系的测量模块Transform Sensor

使用十分简单,测量B端和F端间距离,相对坐标,角度,角速度等数据,输出接一个PS-Simulink Convertor模块由物理信号转化成Simulink信号。测量出来的曲柄杆长跟CAD图里的杆长一致。
测量下图第二个坐标系(青蓝色的笛卡尔坐标系)在第一个坐标系x轴上的坐标。
在这里插入图片描述
在这里插入图片描述
按照我一开始想的,这个数值应该有一个正弦或者余弦的变化规律,但是出来却是下面这个样子:
在这里插入图片描述
后来我想了很久,才发现自己忽略了一个很基本的事实,虽然约束是理想约束,且0.5秒后撤掉力矩,但是曲柄并不是做匀速转动,而是会周期性的增减速。后来就在一瞬间发现自己的弱智之处,虽然没有了外力矩的作用,角动量守恒,但是这几个构件相对与曲柄-机架转轴转动惯量是变化的,导致角速度也在随着变化。
于是,把这几个构件的质量都设置为1e-6克(没法设置成0,哈哈),就是满足了各种力学课本上经常出现而又经常被忽略掉的一个条件,即忽略杆件自重。
于是就仿真出来一个余弦图了。
在这里插入图片描述动图:

相关资料

在Matlab控制台输入sm_four_bar即可打开官方的一个四连杆物理仿真例程,作为一个入门教学还是不错的。Help文档里搜索Simscape Multibody,也有很多有用的例程。

结语

其实本来是尝试用Simulink来做悬架的物理仿真,但是鉴于Adams使用得更广泛,所以这篇教程当做是摸索过程中的一个总结与笔记吧
Measure
Measure

这篇关于Simscape Multibody简介与入门 (下)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/428282

相关文章

rust 中的 EBNF简介举例

《rust中的EBNF简介举例》:本文主要介绍rust中的EBNF简介举例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 什么是 EBNF?2. 核心概念3. EBNF 语法符号详解4. 如何阅读 EBNF 规则5. 示例示例 1:简单的电子邮件地址

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async

POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能

《POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能》ApachePOI是一个流行的Java库,用于处理MicrosoftOffice格式文件,提供丰富API来创建、读取和修改O... 目录前言:Apache POIEasyPoiEasyExcel一、EasyExcel1.1、核心特性

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin