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

相关文章

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

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

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显