0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解Simscape物理建模

MATLAB 来源:MATLAB 2024-09-05 10:12 次阅读

为什么有物理建模

对于复杂系统来说,搭建闭环系统模型是控制开发过程中不可缺少的一环,它不仅能帮助我们验证控制算法还能进行系统级性能分析与优化。模型贯穿桌面仿真到实时仿真,帮助我们通过各种手段的仿真测试尽早的发现集成问题。

wKgaombZEv2AUtdhAAE-lgOTEeQ343.jpg

Simulink 作为嵌入式控制算法开发工具已经广泛的应用于汽车、航空航天、工业自动化、农业机械等等各个行业,也成为各大高校理工科专业同学所熟知的科研工具之一。

Simulink 作为通用的数学建模工具,早期也广泛的被用于搭建被控对象数学方程。它提供了一个交互式图形环境和一套丰富的模块库(很多公司也有积累多年的模型库),允许用户建立复杂的系统级模型。

wKgZombZEv2AY2DJAADgglavblY121.jpg

但是随着行业的发展,嵌入式控制器所面对的系统复杂度增加且灵活多变,手动推导复杂系统的耦合数学方程变得越来越复杂。

wKgaombZEv-AO6P6AAIC7L6dARE073.jpg

有时候,甚至无从下手。

wKgZombZEv2AIXBtAAJf29h7S40696.jpg

Simulink 主要面向的是基于信号流的处理和系统级的仿真,非常适合于控制系统数字信号处理、通讯系统等领域的建模。

然而,当我们从事机械、电气、流体或热系统的建模时,系统的物理行为及其互相之间的复杂相互作用往往是我们关注的焦点。这些系统的建模不仅仅是基于信号的处理,更多的是需要考虑能量的交换、物质的流动以及物理组件的动态行为。这就是 Physical Modeling 出现的原因。

wKgZombZEv2ANkazAAHqVYNujtc081.jpg

对于不熟悉物理建模方法的朋友,可能有些困惑于它与我们所熟悉的 Simulink 建模工作有什么区别。

我用下面这个小动画来简要说明建模过程的区别。

如动画所示,物理建模本质上是把基本元件模块通过物理连线来复现系统拓扑结构。这里的物理连接没有信号的方向问题,和真实系统一样表示能量的交换。

相比之下,Simulink 建模通常需要推导系统的耦合数学方程组,用 Simulink 模块连接来表达方程组的计算过程。这种传统的数学建模手段,它的信号线表征数据流的方向,建模过程中需要严格配置信号的方向/正负,否则会出现计算错误。

当系统结构发生变化时,我们需要谨慎考虑系统数学方程之间的变量关系,保证数学上的完整性,并用 Simulink 计算模块表达出来。

而对于 Simscape 这类物理建模工具来说,我们只需要将原有的单质量弹簧阻尼系统复用,并如同真实系统一样连接起来,得到双质量弹簧阻尼系统,而并不用考虑信号的方向问题。如下方动画所示。

总之Physical Modeling之所以出现,主要是因为以下几个原因:

面向物理系统的建模需求:对于涉及机械、电气、流体和热等物理过程的系统,Physical Modeling 提供了一种更直观、符合工程师思维习惯的建模方式。

复杂系统的多物理场交互:在许多应用场景中,系统的行为受到多个物理领域相互作用的影响。Physical Modeling 可以更自然地描述这些相互作用。

提高建模效率:通过使用预定义的物理组件和库,工程师可以快速搭建复杂的物理系统模型,而不需要从零开始定义所有的数学方程。

便于理解和交流:基于组件的模型更容易被非专业人士理解,有助于跨学科团队之间的沟通和合作。

因此,尽管基于信号流 Simulink 建模方式已经非常强大和灵活,但针对特定类型的物理系统建模和分析,Physical Modeling 提供了一种更加直观和高效的解决方案。

Simscape 前世今生

随着工业领域系统建模仿真需求的增加,物理建模方法论也衍生出各种开源以及商业化软件。

MathWorks 最早于 1998 年就提供了专用于电路/电网系统建模的 SimPowerSystem(后并入 Simscape Electrical)。

预测到未来多物理域复杂系统集成的大趋势,MathWorks 又于 2007a 推出了以物理建模方法(physical modeling)为基础的 Simscape,接着于 2008b 发布 Simscape language,至此将 Simscape 定位为一个开放的多物理域仿真平台。

wKgZombZEv2AYRNeAAP2f2xH5bY608.jpg

随着时间的推移,MathWorks 逐步扩展了 Simscape 的功能,增加了多个领域的专业库,除了前两篇介绍过的 Battery 以及 Driveline,还有比如 Simscape Electrical(电气系统)、Simscape Mechanics(实属瞎说,没有这个...)、Simscape Fluids(流体系统)和 Simscape Multibody(多体动力学系统)等。这些专业库大大丰富了 Simscape 的应用范围,使其能够应对更加复杂的多物理场系统建模需求。

wKgaombZEv-APXvrAAE8_hgO6Ps656.jpg

作为基础平台,Simscape本身除了提供求解器技术、代码生成技术、模型的数据查看功能等等;同时Simscape也有一个基础模块库,其中内置了常见的10种不同物理域(机械平动和转动分属不同的运动域),可以应用于各行各业,如下图所示。

wKgZombZEv2ANzoZAAFqVdnajIE174.jpg

Simscape 特点

事实上除了本文介绍的 Simscape 之外,其它各种建模手段都有它们各自的特点。比如习惯于纯代码开发的工程师也可能依旧选择编码的方式来搭建模型,对于学生来说使用 Simulink 复现教科书各个方程能帮助学习和理解专业领域的基础知识。

我们可以根据实际情况选择合适的工具来解决自己的问题。

wKgaombZEv-Abo1FAAGGD2AMqLQ792.jpg

对于 Simscape 这类物理建模工具来说,它并不代表我们可以完全不懂相关的专业知识,它只是让我们可以花更少的时间在元件以及系统方程组的推导上,更方便的将理论实现为可以运行的仿真模型,从而将更多的精力专注于系统分析与优化。

原理图组装式建模,自动构建方程组

集成于 MATLAB/Simulink

可以方便的模拟元件故障以便分析对系统的影响

Simscape 内置 DAEs 系统专用求解技术

开发人员需要购买所需的专有工具箱,而只是运行该模型不需要额外购买专用工具箱(只需要持有 Simscape)从而降低团队工具软件成本

Simscape 模型均支持 C 代码生成,在缺乏物理原型的场景下亦能测试嵌入式软件

Simscape 功能简介

下面从建模, 仿真, 分析, 部署, 共享几个方面进行简要说明,并添加了一些有意思的新功能介绍。

a. 建模

库模块零部件特性方程内置于各个元件内部,由类似于 m 语言的 Simscape Language 定义,且 Foundation 库元件的源码都是可见的。我们也可以用同样的方式来构建自己的元件以及元件库。补充一句,原来用过 Simscape Language 的都知道,里面的查表函数支持到 2D,从 2024a 开始支持 N-D 查表,比如 3D,4D。

wKgaombZEv-AP4WaAAGE8xxTha0879.jpg

建模时将同种物理域端口相连构建系统拓扑网络得到模型。

wKgaombZEv-ACUi4AAG-fT7BAsc156.jpg

模块之间的连接为物理连接,在模块连接过程中不用考虑信号的进出方向。

wKgaombZEwCAdkFEAADMUu6_gJI081.jpg

最后系统方程组的推导以及求解则由求解器自动完成。

另外,库模块还内置故障模型,可以很方便设置、触发和管理故障。

wKgZombZEwCAB4jbAACITPscpUc742.jpg

wKgZombZEwWAXsnqAACgtuc26Uw736.jpg

2024a 更新了一个小的显示功能,所有 Simscape 模块图标都变成“透明”的了,能更好的和自定义背景板颜色融合。

wKgZombZEwCABLq9AAJQu4ITAHg144.jpg

wKgaombZEwCAa6TwAAHBPIDVJgE305.jpg

b. 导入

模型还可以导入,比如导入 CAD 装配体及其零件模型、SPICE 描述文件、流体属性数据、有限元矩阵信息以及电机有限元磁链数据。这些内容在专门的工具箱章节再详细介绍。

wKgZombZEwCAC7hsAAKYxRaZw60970.jpg

除了零部件之外,2024a 提供了一个图片数据导入 app:Graph Importer tool,它可以从 PDF 格式的数据手册中导入数据点。

wKgaombZEwCACZItAAH4h8iflqU104.jpg

c. 仿真求解

Simscape 求解器根据框图模型自动推导系统方程组,并进行符号方程组的简化,如模型降阶/变量消除。我们可以通过 Statistic Viewer 来查看当前模型复杂度,对模型计算量有一个深入的了解。

wKgZombZEwCAJWPPAAHVWGgsQ8k088.jpg

我们搭建的任何模型都会从一个初始状态开始。

而物理系统的初始状态有其特殊性,即必须满足物理约束。比如在同一个传动链两端的质量快的初始速度必须符合等效传动比关系。

对于复杂系统,我们很难手动计算和设置每一个元件的初始速度、初始位移、初始压力、初始压力、初始电流等等。而 Simscape 求解器可以根据我们所设置的部分初始值以及优先级,来推算整个系统的初始状态。我们可以通过 Variable Viewer 来查看初始化的结果。

wKgaombZEwCAHUpKAAMT53Gz_T0229.jpg

除了微分方程之外,物理系统还时常包含代数方程部分,使得求解更为复杂。Simscape 提供针对 DAE(Differential-Algebraic Equation) 方程组的隐式求解器技术,可以更高效率的求解大部分模型,并可用于实时仿真比如 HIL 测试。

我们根据可以实际应用来配置合适的求解器。

wKgZombZEwCAIbsJAAKVHFh6Akw182.jpg

2024a 新增了多线程编译功能以减少 Simscape 模型编译时间。它默认会打开,当然如果你为了比较不同模型之间的编译时间,那么也可以把它关闭。

wKgZombZEwCAK7p7AAH_UC7sHfY620.jpg

此外,近几年的新版 Simscape 在大规模模型(Scalable Compilation)上了做了很多的工作,另外新的比如增量编译(Incremental Compilation)、增量代码生成(Incremental Code Generation)等等技术降低了 Simscape 模型的编译时间以及代码生成的时间。

结合增量代码生成(Incremental Code Generation),增量编译技术(Incremental Compilation) 核心原理是在初次编译过程中,对每个可重用组件进行一次编译,并保存编译产物。当模型中存在重复的组件实例时,编译器将重用这些已编译的结果,而不是重新编译。在随后的编译过程中,如果检测到可重用组件未发生变化,编译器将跳过这些组件的编译,直接使用之前的编译结果。

wKgZombZEwGAZi1IAAGnXAhG-14432.jpg

d. 分析

Simscape 模型也支持 Fast Restart 仿真模式,可以快速的运行多次仿真而只需要编译初始化一次。

和普通的Simulink模型一样,Simscape 的任意信号(包括传感器测不到的元件内部信号)都可以记录和图示。

wKgaombZEwCAGHPfAAIGWeYqdys654.jpg

另外,三维机械系统 (Simscape Multibody) 的仿真结果还可以用动画的形式更直观的表现出来。

wKgaombZEwGANWeVAADSfVS8Nzs954.jpg

并且,所有分析任务都可以使用

MATLAB 来自动化及加速

e. 部署

Simscape 模型支持 C 代码生成,且更新物理系统参数不需要重新生成代码,以便我们将系统闭环仿真验证扩展到 HIL 环节并测试不同的场景。
Simscape 让我们的能:

更安全

更低成本的方式

分析系统

并测试更多样的场景

wKgZombZEwGAZixBAAF6WDC9_aM520.jpg

不过其实 Simscape 模块也支持 HDL Coder(SimscapeFPGAHIL_lib.slx),通常用在有高速开关的电子电气模型里。

f. 共享

使模型发挥更大价值

作为模型开发者,我们也可以把 Simscape 子系统封装构造自定义参数界面,放入零部件库,以提高工作成果的复用性。

wKgZombZEwGATk1wAAIitx2f_88391.jpg

同时,也可以分享只读模式并设置密码,在需要的场合保护知识产权。

wKgaombZEwGAVT6GAAC5I_COKBM347.jpg

作为 Simscape 独有的特点,它支持分享模式。

当我们开发的模型需要被大规模应用的时候,从节约软件成本的角度,我们可以把模型导出为分享模式,模型的使用者只需要购买 Simscape 基础工具箱,就可以仿真和运行我们所分享的包含 Simscape 其它系列工具箱如 Electrical、Multibody 等等的模型。

wKgaombZEwGAXd1dAAFl96UnNXg121.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    181

    文章

    2960

    浏览量

    229953
  • 仿真
    +关注

    关注

    50

    文章

    4013

    浏览量

    133298
  • 建模
    +关注

    关注

    1

    文章

    299

    浏览量

    60703
  • Simulink
    +关注

    关注

    22

    文章

    522

    浏览量

    62215

原文标题:物理建模 | 你所不知道的 Simscape

文章出处:【微信号:MATLAB,微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何使用Simscape Multibody的物理建模模块来建立倒立摆模型?

    Multibody的物理建模模块来建立倒立摆模型。Simscape库中的块代表实际的物理组件;因此,可以构建复杂的多体动力学模型,而无需通过物理
    发表于 07-07 06:16

    Simscape搭建直流电源模型的方法

    Simscape搭建直流电源模型1、打开MATLAB界面,输入ssc_new命令,直接进度Simscape初始模板界面;2、拖入相应的Simscape的电路元件,搭建电路模型;3. 选择求解器;
    发表于 01-03 07:13

    Simulink建模仿真实例快速入门

    Simulink建模仿真实例详解Simulink建模仿真实例详解Simulink建模仿真实例详解
    发表于 12-28 18:15 0次下载

    《全面详解LTE:MATLAB建模、仿真与实现》.PPT

    全面详解LTE:MATLAB建模、仿真与实现
    发表于 05-21 11:09 15次下载

    MathWorks在Simscape中更新的新功能的分析和介绍

    和建筑物中的水加热系统。还有一项好处是,通过配合使用Simulink,Simscape Fluids可成为开发控制算法和物理系统统一环境的一部分。
    的头像 发表于 09-17 15:50 2687次阅读
    MathWorks在<b class='flag-5'>Simscape</b>中更新的新功能的分析和介绍

    关于Simscape建模和仿真多域物理系统的分析和介绍

    Simscape 扩展了对物理系统建模的功能。您可以使用物理连接的方式搭建物理对象模型,还可以将其直接连接到使用信号流的方式搭建的 Simulink 控制模型。
    的头像 发表于 09-18 14:41 2.2w次阅读
    关于<b class='flag-5'>Simscape</b>的<b class='flag-5'>建模</b>和仿真多域<b class='flag-5'>物理</b>系统的分析和介绍

    关于建模和仿真多域物理系统的分析和介绍

    Simscape扩展了对物理系统建模的功能。您可以使用物理连接的方式搭建物理对象模型,还可以将其直接连接到使用信号流的方式搭建的Simulink控制模型。
    的头像 发表于 09-18 17:52 5369次阅读
    关于<b class='flag-5'>建模</b>和仿真多域<b class='flag-5'>物理</b>系统的分析和介绍

    MATLAB Simulink中Simscape的使用手册详细说明

    Simscape软件是一组块库和特殊模拟功能,用于在Simulink®环境中建模物理系统。它采用物理网络方法,不同于标准的Simulink建模
    发表于 03-12 08:00 72次下载
    MATLAB Simulink中<b class='flag-5'>Simscape</b>的使用手册详细说明

    Simulink_simscape电源电路建模入门

    本文为作者Matlab/Simulink电路建模学习笔记欢迎交流讨论,喜欢的话点个赞吧1、打开Simulink并创建文件如图点击即可: 2、选择电路所需元件,连接电路选择元器件主要有两种
    发表于 01-11 11:07 14次下载
    Simulink_<b class='flag-5'>simscape</b>电源电路<b class='flag-5'>建模</b>入门

    Simscape搭建直流电源模型

    Simscape搭建直流电源模型1、打开MATLAB界面,输入ssc_new命令,直接进度Simscape初始模板界面;2、拖入相应的Simscape的电路元件,搭建电路模型;3. 选择求解器;
    发表于 01-11 13:56 7次下载
    <b class='flag-5'>Simscape</b>搭建直流电源模型

    物理设计中的问题详解

    物理设计中的问题详解
    的头像 发表于 07-05 16:56 860次阅读
    <b class='flag-5'>物理</b>设计中的问题<b class='flag-5'>详解</b>

    各种Simscape模型介绍

    前面提过 Simscape 平台除了其上的几个专业工具箱之外,作为平台的角色它自己也有一个 Foundation 元器件库。这里包括 10 种不同的物理域,包括机械(平动、转动), 电, 流体(气、绝热流体、热流体、两相流)、热、磁。
    的头像 发表于 09-05 09:21 349次阅读
    各种<b class='flag-5'>Simscape</b>模型介绍

    基于Simscape Battery模型的电池系统建模与仿真

    Simscape Battery™ 以模块库和 API的方式帮助我们对电池以及储能系统进行建模。我们可以用它来实现电芯电热耦合模型、配置和测试电池架构、设计电池管理系统,继而评估电池系统在正常和极端条件下的行为。
    的头像 发表于 09-05 09:45 435次阅读
    基于<b class='flag-5'>Simscape</b> Battery模型的电池系统<b class='flag-5'>建模</b>与仿真

    基于Simscape Driveline模型的传动系统建模与仿真

    上一期我们提到了 Simscape Battery,这是个针对电池系统建模与仿真的工具箱。作为汽车动力总成系统的一个环节,它在油转电的大趋势下显得更为重要。当然,只有电池,车也是跑不起来的。我们还需要将它所储存的电能转为机械能,并传递到轮端。
    的头像 发表于 09-05 10:04 277次阅读
    基于<b class='flag-5'>Simscape</b> Driveline模型的传动系统<b class='flag-5'>建模</b>与仿真

    基于Simscape Fluids模型的环控系统建模与仿真

    我在之前的总述部分给出过下面这张示意图,描述了 Simscape 的流体系统建模所适用的场景。现在再把它放在这里,稍微修改了描述,希望能更清楚的表达各个子库所适用的场景。
    的头像 发表于 09-05 10:19 293次阅读
    基于<b class='flag-5'>Simscape</b> Fluids模型的环控系统<b class='flag-5'>建模</b>与仿真