玩转Matlab-Simscape(初级)- 08 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真(案例实战)

news2025/1/22 21:48:45

**

玩转Matlab-Simscape(初级)- 08 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真(案例实战)

**

目录

    • 玩转Matlab-Simscape(初级)- 08 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真(案例实战)
  • 前言
  • 一、 倒立摆案例简介
  • 二、模型定义
  • 三、COMSOL Multiphysics with Simulink协同仿真工作流
    • 3.1 工作流概述
    • 结果与讨论
  • 总结


前言

学完《玩转Matlab-Simscape(初级)》系列博客的前三节 ,我发现应用Maltab simscape对多体进行仿真时,如果要研究一个刚体系统的动力学的行为,在Matlab Simscape中还是相对好处理的,但如果3D模型再复杂些,研究的结构中个别组件为柔性体(即对一个复杂刚柔耦合系统的控制进行仿真),或者想要了解系统组件中某个特殊位置的状态,在Matlab Simscape中进行分析,现阶段对我来说貌似有些困难,所以,今天我跳转介绍下COMSOL Multiphysics with Simulink。该部分主要想解决后续可能遇到的复杂3D刚柔耦合控制系统的仿真问题。
本文借助一个倒立摆控制案例学习SW &Matlab Simulink &COMSOL进行协同仿真的整个操作流程。
欢迎各位小伙伴关注、赞赞、留言和收藏。
(Matlab的这种刚柔耦合控制仿真分析模块我还没学习到,待掌握了解后跟此文方法会做个对比研究。😄)


一、 倒立摆案例简介

倒立摆是一种安装在枢轴上的结构,其重心的位置位于枢轴点之上。处于原始位置的结构是不稳定的,如果没有外力,它总是倾向于下落。这是控制系统工程中的一个经典问题——通过在小车上施加外部载荷来保持结构的平衡。控制负荷取决于钟摆的倾斜角、小车的位置和小车的速度。当所有控制参数为零时,假设平衡。

二、模型定义

摆系统由一根50厘米× 0.5厘米× 0.5厘米的杆和一辆2公斤重的小车组成。杆枢枢安装在小车上,最后一根可自由水平移动。在COMSOL Multiphysics中,杆由SW软件建模,并作为刚性域,而车仅用其质量表示。
控制系统在Simulink中使用三个PID控制器来实现,这些控制器提供施加到小车上的力,以保持摆锤的平衡。当倾斜角、小车位置和小车速度为零时,认为摆杆处于平衡状态。这些是PID控制器使用的COMSOL仿真返回的值。
通过从COMSOL模型中导出COMSOL cosimulation文件,然后将该文件添加到Simulink仿真图中的COMSOL cosimulation块中,可以建立与COMSOL Multiphysics和Simulink的联合仿真。块的输入由Simulink提供的摄动力和控制力组成。该块有三个输出:杆的倾斜旋转、位移和小车的速度。
杆以1度的初始倾斜角下落,并以0.2 s的振幅为0.2 N的脉冲施加摄动力。

三、COMSOL Multiphysics with Simulink协同仿真工作流

3.1 工作流概述

  1. 建立COMSOL模型,确保研究运行。仅支持具有单个Stationary或Time Dependent研究步骤的研究进行联合模拟。
  2. 保存COMSOL模型。这一步很重要,因为在Simulink中加载联合仿真文件需要模型的名称。
  3. 将Cosimulation for Simulink特性节点添加到COMSOL模型中。使用它来定义cosimulation的输入、输出和研究。
  4. 在“Cosimulation for Simulink”特性节点,导出Cosimulation文件。任何位置都可以,但最好将此文件导出到保存mph文件的位置。
  5. 在Simulink中创建或加载仿真图,并添加COMSOL Cosimulation模块。
  6. 双 击 COMSOL Cosimulation 模 块 , 输 入 COMSOL Multiphysics 导 出 的Cosimulation文件名称。
  7. 运行仿真、 分析结果
    在matlab命令窗输入:mphlaunch这将启动一个COMSOL桌面,其中包含用于运行联合仿真的模型。在COMSOL软件里可以纵情的进行各种后处理!
    在这里插入图片描述
    在这里插入图片描述

结果与讨论

控制前后杆上某一点的运动轨迹
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于控制器的参数没有调整好,可以看到输出并没有得到稳定控制。😅,整体的仿真工作中流程跑通了,后边就慢慢设计控制模块了。


总结

以上就是今天分享的关于COMSOL Multiphysics with Simulink 的案例实践部分,简单分享了应用SW、COMSOL 、 Simulink进行控制仿真的实现流程。迎各位小伙伴关注、赞赞、留言和收藏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1681599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

信息安全相关内容

信息安全 安全防护体系 安全保护等级 安全防护策略 安全技术基础 安全防护体系 安全防护体系有7个等级 安全保护等级 安全保护等级有5个等级,从上到下是越来越安全的用户自主其实就是用户自己本身具有的相应的能力 安全防护策略 安全策略是对抗攻击的主要策略安全日志: …

(论文笔记)TABDDPM:使用扩散模型对表格数据进行建模

了解diffusion model:什么是diffusion model? 它为什么好用? - 知乎 摘要 去噪扩散概率模型目前正成为许多重要数据模式生成建模的主要范式。扩散模型在计算机视觉社区中最为流行,最近也在其他领域引起了一些关注,包括语音、NLP…

Spring Security实现用户认证一:简单示例

Spring Security实现用户认证一:简单示例 1 原理1.1 用户认证怎么进行和保存的?认证流程SecurityContext保存 2 创建简单的登录认证示例2.1 pom.xml依赖添加2.2 application.yaml配置2.3 创建WebSecurityConfig配置类2.4 测试 1 原理 Spring Security是…

全栈式数据统计:Flask+Pandas按年,季度,月统计显示

话不多说,有图有源码 1.实现效果: 按季度统计 按月度统计: 2.实现源码: 2.1)test_pandashtml.py from flask import Flask, render_template import pandas as pdapp Flask(__name__)# 自定义千分位格式化函数 def format_thousands(x):return f{x:,.2f}app.route(/) def …

JVS物联网模拟点位:如何配置并自动生成点位数据全教程

模拟点位 功能描述 模拟点位常用于业务的调试或数据展示,通过配置对应点位实现自动生成点位数据的功能。 界面操作 如下图所示,从模拟点位菜单进入模拟点位管理界面 模拟点位新增 点击新增按钮,如下图所示: ①:用户…

一键解锁!贸易行业实现银行与财务系统秒级对接,效率飙升!

客户介绍 某贸易有限公司是一家实力雄厚的工贸一体跨国集团企业。作为行业内的佼佼者,该公司以出口家纺产品和生产销售建材洁具为核心业务。公司始终坚持以市场为导向,不断创新和优化产品和服务,以满足不断变化的市场需求。 客户痛点 以往&…

猛兽派对是什么游戏 猛兽派对攻略大全 苹果电脑怎么玩《猛兽派对》?

猛兽派对是多人派对类型的游戏,该款游戏的动作基于物理原理设计的,体验游戏玩家可以选择自己喜欢的小动物角色参加派对,游戏内具有很多不同的关卡可供挑战。 在steam平台上,猛兽派对对应英文名称是PartyAnimals,官方正…

服务器数据恢复—服务器重装系统导致分区丢失的数据恢复案例

服务器数据恢复环境: 一台服务器MD1200磁盘柜通过RAID卡创建了一组RAID5阵列并分配一个LUN。在Linux系统层面将该LUN划分了sdc1和sdc2两个分区。通过LVM扩容的方式将sdc1分区加入到了卷组中的一个逻辑卷中,sdc2分区格式化为XFS文件系统使用。Linux操作系…

Qt编译和使用freetype矢量字库方法

在之前讲过QT中利用freetype提取字库生成图片的方法: #QT利用freetype提取字库图片_qt freetype-CSDN博客文章浏览阅读1.2k次。这是某个项目中要用到的片段,结合上一篇文章#QT从字体名获取字库文件路径使用// 保存位图int SaveBitmapToFile(HBITMAP hBi…

一行代码实现vip标志的显示

需求说明 在项目中,后期添加了一种用户类型。需要再用户头像右下角显示一个vip的标志。问题是只要有头像的地方都要显示。而有头像的地方很多,设置到的接口也很多。后面考虑通过一个工具类,将这个功能外挂到原来的业务需要的地方。 实现效果…

二进制部署Kubernetes集群——单Master和Node组件

前言 本文将介绍如何使用二进制文件手动搭建 Kubernetes v1.20 集群。通过这种方法,我们可以更好地理解 Kubernetes 的内部工作原理,并具备更大的灵活性和控制权。下面将逐步构建 Kubernetes 集群,并进一步了解其各个组件之间的交互和配置。…

【python量化交易】—— 双均线择时策略 - Qteasy自定义交易策略【附源码】

使用qteasy自定义并回测双均线交易策略 使用qteasy自定义并回测一个双均线择时策略策略思想导入qteasy模块创建一个新的策略回测交易策略,查看结果 使用qteasy自定义并回测一个双均线择时策略 我们今天使用qteasy来回测一个双均线择时交易策略,qteasy是…

kettle从入门到精通 第六十一课 ETL之kettle 任务调度器,轻松使用xxl-job调用kettle中的job和trans

想真正学习或者提升自己的ETL领域知识的朋友欢迎进群,一起学习,共同进步。若二维码失效,公众号后台加我微信入群,备注kettle。 1、大家都知道kettle设计的job流程文件有个缺点:只能设置简单的定时任务,无法…

React 第三十七章 Scheduler 最小堆算法

在 Scheduler 中&#xff0c;使用最小堆的数据结构在对任务进行排序。 // 两个任务队列 var taskQueue: Array<Task> []; var timerQueue: Array<Task> [];push(timerQueue, newTask); // 像数组中推入一个任务 pop(timerQueue); // 从数组中弹出一个任务 time…

HNU-算法设计与分析-作业3

第三次作业【动态规划】 文章目录 第三次作业【动态规划】<1>算法实现题 3-1 独立任务最优解问题<2>算法实现题 3-4 数字三角形问题<3>算法实现题 3-8 最小m段和问题<4>算法实现题 3-25 m处理器问题 <1>算法实现题 3-1 独立任务最优解问题 ▲问…

Windows 安装mysql 和 Redis

mysql Windows 图形界面安装&#xff1a; 下载mysql https://dev.mysql.com/downloads/ 1.下载完成后,找到文件双击安装程序 2. 等待一段时间&#xff0c; 选择默认&#xff0c;点击next 3. 选择安装目录 下载mysql产品 安装mysql产品 产品配置向导 安装…

数据库-索引结构(B-Tree,B+Tree,Hash,二叉树)

文章目录 索引结构有哪些&#xff1f;二叉树详解&#xff1f;B-Tree详解?BTree详解&#xff1f;Hash详解&#xff1f;本篇小结 更多相关内容可查看 索引结构有哪些&#xff1f; MySQL的索引是在存储引擎层实现的&#xff0c;不同的存储引擎有不同的索引结构&#xff0c;主要包…

Echart-折线图根据区间设置折线的样式

根据X轴区间设置折线样式 完整配置如下&#xff1a; option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [150, 230, 224, 218, 135, 147, 260],type: line}],//【注】&#xff1a;如果一个图中有多个折线&a…

ROS从入门到精通4-3:制作Docker镜像文件Dockerfile

目录 0 专栏介绍1 为什么需要Dockerfile&#xff1f;2 Dockerfile书写原则3 Dockerfile常用指令3.1 FROM3.2 MAINTAINER3.3 RUN3.4 ADD3.5 COPY3.6 CMD3.7 ENV3.8 EXPOSE3.9 WORKDIR3.10 ARG 4 Dockerfile构建ROS工程实例 0 专栏介绍 本专栏旨在通过对ROS的系统学习&#xff0…