当前位置: 首页 > news >正文

玩转Matlab-Simscape(初级)- 09 - 在Simulink中创建曲柄滑块机构的控制模型

**

玩转Matlab-Simscape(初级)- 09 - 在Simulink中创建曲柄滑块机构的控制模型

**


目录

    • 玩转Matlab-Simscape(初级)- 09 - 在Simulink中创建曲柄滑块机构的控制模型
  • 前言
  • 一、问题描述
  • 二、创建模型
    • 2.1 识别机构中的刚体
    • 2.2 确定刚体之间是如何相互连接的(关节副、约束等)
    • 2.3 孤立每个刚体,简化刚体模型,并定义附着在其上的框架
    • 2.4 使用关节和/或约束来组装刚体
    • 2.5 利用“模型报告”(Model Report) 识别模型创建过程中产生的问题
    • 2.6 利用 Mechanics Explorer 来识别和修复模型的其他问题
    • 2.7 设置关节副目标位置以引导装配至所需位置
    • 2.8 设置多体机构的输入和输出连接。测试和验证模型没问题后,再连接控制器并测试模型。
    • 2.9 细化各个刚体,使模型更准确地表示实际机构
  • 总结


前言

在产品开发中,多体动力学控制仿真是一种常见方法,本文从初学者的角度一点点解开应用Maltab simscape对多体进行仿真的面纱。写这篇博文是为后续做旋翼无人机的多体系统仿真打基础。欢迎各位小伙伴关注、赞赞、留言和收藏。
本文进一步深入学习复杂一点点的机构进行建模。


一、问题描述

下图显示了用作瞄准系统的机构。该问题被简化为平面曲柄滑块机构。下图显示了该机构的原理图草图,仅提取了该机构工作的基本要素(通常在设计过程的早期阶段)。滑块 C 可以在杆 A 上滑动。电机在旋转接头 Ri 处施加扭矩,任务是跟踪旋转角的特定轨迹。

在这里插入图片描述

二、创建模型

构建模型时要遵循的一个关键原则是从简单的近似开始,以使基本机构先能正常工作。在随后的演进中,逐步增加了模型的复杂性,以使其更接近真实物理模型(也可以选择从CAD软件导入3D模型,这样更简单些)。Simscape Multibody 中推荐的模型构建过程可分为以下步骤:
在这里插入图片描述
利用SW中“Simscape Multibody Link”插件工具导出生成一个*.xml文件。
在这里插入图片描述

2.1 识别机构中的刚体

要分析的曲柄连杆机构有四个刚体
1.刚体 A(橙色)
2.刚体B(蓝色)
3.刚体 C(绿色)
4.刚体D(灰色)

2.2 确定刚体之间是如何相互连接的(关节副、约束等)

该机构具有以下关节副

  • 刚体 A 和 D 通过旋转关节 Ro 连接。
  • 刚体 A 和 C 通过棱柱形关节 Pg 连接。
  • 刚体 C 和 B 通过旋转关节 Rg 连接。
  • 刚体 B 和 D 通过旋转关节 Ri 连接。
    此外,刚体 D 刚性地连接到全局世界框架 W(世界坐标系,全局坐标系),因为它是静止的。

2.3 孤立每个刚体,简化刚体模型,并定义附着在其上的框架

将生成的.xml文件,导入matlab simulink,并定义刚体和接口(零件与零件之间的配合运动副)。
利用命令smimport(‘**.xml’)导入xml文件。
通过定义刚体的形状、质量属性以及与其他零件的接口来定义刚体。每个刚体都是孤立地识别和定义的。在上面的例子中,该机构由四个刚体组成:A、B、C 和 D。
在 Simscape Multibody 中定义刚体 A 的形状。一旦定义了物体的形状并设定了它的密度,Simscape Multibody 就可以自动计算惯性。刚入门的小白推荐将刚体的形状简化为长度等于原始零件长度的简单圆柱体,而不是原本相当复杂的形状。
在这里插入图片描述

2.4 使用关节和/或约束来组装刚体

装配联结的过程包括附在刚体上的框架之间的关系建立。

2.5 利用“模型报告”(Model Report) 识别模型创建过程中产生的问题

在 Mechanics Explorer 中,从“工具”下拉菜单中选择“模型报告”选项 中,会显示出关节部分设置出现的错误。在这里可以查看错误。

2.6 利用 Mechanics Explorer 来识别和修复模型的其他问题

选择框架方向时,必须考虑到所需的零配置(关节的零配置是指当所有的关节角度为零时,基座与从动框架之间的相对位置和方向)。当关节角度为零时,通过调整各自主体上基座和从动框架的位置和方向,来定义由关节所关联的两个刚体的相对位置和方向。

2.7 设置关节副目标位置以引导装配至所需位置

打开“模型报告”(Model Report) 以查看此装配配置中关节位置的值。

2.8 设置多体机构的输入和输出连接。测试和验证模型没问题后,再连接控制器并测试模型。

在这里插入图片描述

2.9 细化各个刚体,使模型更准确地表示实际机构

需要注意的是,SW中装配体建立时使用的配合方式,有时在导出xml文件时,会报错,导出的装配约束形式,貌似不能被Simulink识别。另外,3D模型如果发生了重建,Simulink模型又要重建,有些不方便,如何能一键更新呢?这个得再研究研究。


总结

以上就是今天分享的关于Matlab simscape 的基础内容,搭建了一个曲柄滑块机构的控制模型,进一步熟悉整个分析流程,为一步步研究复杂模型,打下基础。欢迎各位小伙伴关注、赞赞、留言和收藏。

相关文章:

玩转Matlab-Simscape(初级)- 09 - 在Simulink中创建曲柄滑块机构的控制模型

** 玩转Matlab-Simscape(初级)- 09 - 在Simulink中创建曲柄滑块机构的控制模型 ** 目录 玩转Matlab-Simscape(初级)- 09 - 在Simulink中创建曲柄滑块机构的控制模型 前言一、问题描述二、创建模型2.1 识别机构中的刚体2.2 确定刚…...

手撸一个java网关框架

手写一个简易的Java网关框架涉及到很多方面,但我会提供一个基本的框架概念和代码示例,帮助你理解网关的基本构建。以下是一个简单的Java网关框架的实现: 定义路由:需要一个路由表来映射请求的URL到对应的处理器。 请求处理&#x…...

亮数据代理IP助力高效数据采集

文章目录 📑前言一、爬虫数据采集痛点二、代理IP解决爬虫痛点2.1 为什么可以2.2 本篇采用的代理IP 四、零代码获取数据4.1 前置背景4.2 亮数据浏览器自动抓取数据4.3 使用步骤: 五、数据集5.1 免费样本5.2 定制数据集 🌤️个人小结 &#x1f…...

VS2022,DLL1调用lib,lib调用DLL2

DLL1调用lib,lib调用DLL2 问题1:为什么在dll1中需要引入dll2的.lib文件 当你有一个工程(dll1)调用静态库(lib),而静态库(lib)又调用另一个DLL(dll2&#xf…...

Unity Mirror VR联机开发 房间篇

一、需求 在联机时通常有加入房间这个步骤,在mirror示例中也有相应的案例,但是那个比较复杂,我们做教育科普类不需要如此复杂,傻瓜式操作基本就可以了,所以我简化了步骤,省略了点击准备按钮这一步骤&#…...

二叉树—leetcode

前言 本篇博客我们来仔细说一下二叉树二叉树的一些OJ题目 请看完上一篇:数据结构-二叉树-CSDN博客 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:LeetCode_普通young man的博客-CSDN博客 若有问题 评论区见📝 &…...

shell编程(二)——字符串与数组

本文为shell 编程的第二篇,介绍shell中的字符串和数组相关内容。 一、字符串 shell 字符串可以用单引号 ‘’,也可以用双引号 “”,也可以不用引号。 单引号的特点 单引号里不识别变量单引号里不能出现单独的单引号(使用转义符…...

【数据结构】二叉树专题

前言 本篇博客我们来看一些二叉树的经典题型,也是对上篇博客的补充 💓 个人主页:小张同学zkf ⏩ 文章专栏:数据结构 若有问题 评论区见📝 🎉欢迎大家点赞👍收藏⭐文章 ​ 目录 1.单值二叉树 …...

开源模型应用落地-LangChain高阶-LCEL-表达式语言(四)

一、前言 尽管现在的大语言模型已经非常强大,可以解决许多问题,但在处理复杂情况时,仍然需要进行多个步骤或整合不同的流程才能达到最终的目标。然而,现在可以利用langchain来使得模型的应用变得更加直接和简单。 LCEL是什么? LCEL是一种非常灵活和强大的语言,可以帮助您更…...

Python第二语言(九、Python第一阶段实操)

目录 1. json数据格式 2. Python与json之间的数据转换 3. pyecharts模块官网 4. pyecharts快速入门(折线图) 5. pyecharts全局配置选项 5.1 set_global_ops使用 5.1.1. title_opts 5.1.2 legend_opts 5.1.3 toolbox_opts 5.1.4 visualmap_opts…...

Java异常机制

1.异常概述和异常处理机制 异常(exception)概述 异常就是程序在运行时出现的意外的,不正常的情况。 若异常产生后没有正确的处理,会导致程序的中断,程序不继续执行,以致造成损失。 2.2 异常处理机制 所以我们在开发中要一套机制来处理各种可能…...

Aws EC2,kubeadm方式安装kubernetes(k8s)

版本 docker版本:20.10.25 k8s版本(kubeadm,kubelet和kubectl):1.20.10-0 初始化 # 禁用 SELinux sudo setenforce 0 sudo sed -i s/^SELINUXenforcing$/SELINUXpermissive/ /etc/selinux/config# 关闭防火墙 sudo …...

python 比较 mysql 表结构差异

最近在做项目的时候,需要比对两个数据库的表结构差异,由于表数量比较多,人工比对的话需要大量时间,且不可复用,于是想到用 python 写一个脚本来达到诉求,下次有相同诉求的时候只需改 sql 文件名即可。 com…...

【RAG入门教程01】Langchian框架 v0.2介绍

LangChain 是一个开源框架,旨在简化使用大型语言模型 (LLM) 创建应用程序的过程。可以将其想象成一套使用高级语言工具进行搭建的乐高积木。 它对于想要构建复杂的基于语言的应用程序而又不必管理直接与语言模型交互的复杂性的开发人员特别有用。它简化了将这些模型…...

python 做成Excel并设置打印区域

记录首次用python处理Excel表格的过程。 参考文章:https://www.jianshu.com/p/5e00dc2c9f4c 程序要做的事情: 1. copy 模板文件到 output 文件夹并重命名为客户指定的文件名 2. 从 DB 查询数据并将数据写入 Excel 3. 写数据的同时, 设置每…...

SpringAI(二)

大模型:具有大规模参数和复杂计算结构的机器学习模型.通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数.其设计目的在于提高模型的表达能力和预测性能,应对复杂的任务和数据. SpringAI是一个AI工程领域的应用程序框架 大概推出时间是2023年7月份(不确定) 目的是将S…...

小白都可以通过U盘重装系统,再也不用花50块钱去安装系统啦

下载Ventoy 软件 1、今天带着大家通过Ventoy 安装Windows 11 系统。 2、首先我们通过官网如下地址:https://www.ventoy.net/cn/,找到我们对应系统的Ventoy 软件安装包。 3、通过官网可以找到软件包的地址地址,如下图所示。 4、如下就是我下…...

android 双屏异显-学习笔记

双屏异显 日常生活中,有时候会遇到 Android 设备连接两个屏幕进行显示的问题,比如酒店登记信息时,一个屏幕用于员工操作,一个屏幕显示相关信息供顾客查看。这里就涉及到 Android 的双屏异显的问题,实现Android 的双屏异显,Google 也提供了相应的 API方法 Presentation。…...

Android Lottie 体积优化实践:从 6.4 MB 降到 530 KB

一、说明 产品提出需求:用户有 8 个等级,每个等级对应一个奖牌动画。 按照常用的实现方式: 设计提供 8 个 lottie 动画(8 个 json 文件)。研发将 json 文件打包进入 APK 中。根据不同等级播放指定的动画。 每一个 …...

Django前端页面-模板继承

通过模板的继承&#xff0c;可以将所有共同的前端页面移到母版&#xff0c;那么其他页面就可以用到母版了。 这是母版 <!DOCTYPE html> <html><head>{% block css %}{% endblock %}</head><body><h1>母版</h1><div><!-- …...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

Chrome 浏览器前端与客户端双向通信实战

Chrome 前端&#xff08;即页面 JS / Web UI&#xff09;与客户端&#xff08;C 后端&#xff09;的交互机制&#xff0c;是 Chromium 架构中非常核心的一环。下面我将按常见场景&#xff0c;从通道、流程、技术栈几个角度做一套完整的分析&#xff0c;特别适合你这种在分析和改…...

Spring Security 认证流程——补充

一、认证流程概述 Spring Security 的认证流程基于 过滤器链&#xff08;Filter Chain&#xff09;&#xff0c;核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤&#xff1a; 用户提交登录请求拦…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...