当前位置: 首页 > 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><!-- …...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的&#xff0c;需要先安…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...