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

相关文章

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

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