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

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

3天内不再提示

关于使用 parsim 轻松实现 Simulink 模型并行仿真的分析和研究

MATLAB 来源:djl 作者:Guy Rouleau 2019-09-16 11:06 次阅读

我们在用并行运算工具箱来多次运行模型的时候,一般都会改变些什么,来实现不同的仿真

在这里,我们可以通过 Simulink.SimulationInput 对象来实现。首先,我们为模型新建若干个 Simulink.SimulationInput 对象,然后通过它来定义不同的配置,包括初始状态、模型参数、模块参数、输入信息以及模型使用的各种变量。

这是一个简单的碰撞模型:

关于使用 parsim 轻松实现 Simulink 模型并行仿真的分析和研究

配置不同的 Restitution 系数,再实现并行仿真,如下图:

关于使用 parsim 轻松实现 Simulink 模型并行仿真的分析和研究

我们从 -0.9 到 -0.2 取 10 个不同的系数值,然后构造了一个长度为 10 的Simulink.SimulationInput 对象数组。接着使用 setBlockParameter 方法,给指定的模块 blk 的参数 'Gain' 设置了不同的值。最后调用 parsim ,把Simulink.SimulationInput 数组作为输入参数,进行并行运算。

计算完毕,就会得到一组Simulink.SimulationOutput 作为返回值。

一些更真实的场景应用

在工作空间定义变量

在 parsim 出来之前,模型并行仿真的一大难点在于怎么去管理模型里的各种变量。我在之前的贴子里还介绍了各种管理攻略,比如各个模块的参数值不再直接写在对话框里,而是使用脚本来构造。比如这里的重力加速度 g 和恢复系数 Cr。

关于使用 parsim 轻松实现 Simulink 模型并行仿真的分析和研究

输出的处理

在很多情况下,仿真会产生大量数据。尤其在远程计算机集群上仿真的时候,一般都不需要传递全部的数据。所以,我们可以对这些记录的数据做后处理,然后传递我们真正感兴趣的那部分。

如下图,这里构造了一个后处理函数 detectFallen,输入仿真结果,返回一个结构体。这里返回的是球跳了多长时间,以及弹跳了多少次。

关于使用 parsim 轻松实现 Simulink 模型并行仿真的分析和研究

接着,我们跟刚才一样构造 Simulink.SimulationInput 对象数组。有所不同的是,这里是使用 setVariable 方法来为 workspace 里的变量 Cr 设置不同的值。之后,把刚才构造的函数句柄赋给 Simulink.SimulationInput 对象的 postSimFcn 属性。

代码如下:

关于使用 parsim 轻松实现 Simulink 模型并行仿真的分析和研究

注意,在调用 parsim 时,我还使用了 UseFastRestart 来进一步加速仿真。这样设置后,模型在每一个 worker 上只会编译以及初始化一次。

错误处理

我喜欢 parsim 的另一个地方是它对仿真出错的处理方法。

比如下面这个例子,返回的Simulink.SimulationOutput 对象里包括了错误提示信息以及错误发生之前仿真数据。

关于使用 parsim 轻松实现 Simulink 模型并行仿真的分析和研究

这些信息可以帮助我们理解模型哪里出了错,也不需要重新仿真模型。

如果你基于这些记录数据,也看不出模型哪里出了问题,那么你还可以在本地机器上使用同样的参数配置来重新运行模型。这时候,你可以使用 SimulaitonInput 对象的applyToModel 方法。

就如它名字所说,这个函数会把这个SimulationInput 对象里的信息来配置本地模型,包括模型配置、参数值、变量值。这样你就可以很容易得到一个跟远程出错的模型一模一样的模型,在本地调试。

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

    关注

    19

    文章

    7532

    浏览量

    88421
  • 结构体
    +关注

    关注

    1

    文章

    130

    浏览量

    10865
收藏 人收藏

    评论

    相关推荐

    Simulink与 Simscape的结合使用

    。用户可以利用 Simulink 进行系统建模、仿真、测试和验证,以及生成代码。 Simscape 简介 Simscape 是一个用于创建基于物理的模型仿真环境。它提供了一个库,包含
    的头像 发表于 12-12 09:31 444次阅读

    Simulink模型仿真分析技巧

    1. 模型构建基础 1.1 理解系统需求 在开始构建模型之前,明确系统的需求和目标是至关重要的。这包括了解系统的动态特性、输入输出关系以及预期的性能指标。 1.2 选择合适的模块 Simulink
    的头像 发表于 12-12 09:23 1029次阅读

    Simulink自定义模块开发教程 Simulink 在控制系统中的应用

    自定义模块来扩展其功能。 1. 理解 Simulink 和控制系统 Simulink 是一个动态系统建模、仿真分析的环境,它允许用户通过拖放预构建的模块来构建
    的头像 发表于 12-12 09:21 541次阅读

    如何通过建模与仿真提升电力电子组件的设计与性能?

    建模过程被称为建模,而仿真被定义为使用模型研究实际或理论系统的行为和性能的过程。在仿真中,模型可以用于
    的头像 发表于 11-25 11:35 323次阅读
    如何通过建模与<b class='flag-5'>仿真</b>提升电力电子组件的设计与性能?

    这些电源常用仿真软件,你都知道吗?

    出符合实际情况的模型,并对仿真结果心中有数,它不能替代计算和分析,用做验证是合适的。 在前文「LLC谐振变换器仿真建模与控制策略分析」篇中,
    发表于 10-25 14:20

    Matlab/Simulink/Stateflow建模开发及仿真测试

    matlab 模拟仿真 熟悉Matlab/Simulink/Stateflow建模开发及仿真测试,熟悉V模型开发流程。 熟悉自动代码生成,能够编写或者配置自动代码生成脚本。
    发表于 10-24 17:23

    机器人仿真的类型和优势

    机器人仿真使机器人工程师和研究人员能够创建机器人及其环境的虚拟模型。这项技术支持在仿真的无风险环境中测试和验证机器人设计与控制算法以及与各种元素进行交互。通过使用
    的头像 发表于 10-14 10:43 595次阅读
    机器人<b class='flag-5'>仿真的</b>类型和优势

    求助,LMP7721微电流检测,有没有供仿真的SPICE模型

    LMP7721微电流检测,有没有供仿真的SPICE模型
    发表于 09-09 07:14

    tina仿真的噪声分析,可以分析电流噪声吗?

    tina仿真的噪声分析,可以分析电流噪声吗
    发表于 08-06 08:23

    EasyGo使用笔记丨分布式光伏集群并网控制硬件在环仿真应用

    进行控制;对于逆变器的控制,采用三相空间矢量脉宽调制(SVPWM)控制算法以及电压电流双闭环控制算法。最后构建了分布式光伏集群并网发电系统的综合仿真模型,并在MATLAB/Simulink平台上成功
    发表于 07-12 17:20

    康谋分享 | 自动驾驶联合仿真——功能模型接口FMI(二)

    功能模型接口在复杂系统的建模与仿真中具有重要作用。本文探讨了FMU的时间概念、模型交换和联合仿真的通信机制。通过C代码示例,介绍了联合仿真
    的头像 发表于 06-26 14:40 3433次阅读
    康谋分享 | 自动驾驶联合<b class='flag-5'>仿真</b>——功能<b class='flag-5'>模型</b>接口FMI(二)

    电路仿真软件simulink的工作原理

    Simulink是MATLAB的一个模块,它采用图形化的方式来创建动态系统模型并进行仿真分析Simulink的工作原理主要基于模块化的建模
    的头像 发表于 03-29 15:21 1815次阅读

    电路仿真软件simulink使用方法

    Simulink是MATLAB的一个重要组件,用于进行动态系统的建模和仿真
    的头像 发表于 03-29 14:25 2789次阅读

    【Matlab仿真】单相交交变频器研究实现Simulink建模

    的交替工作。 最后利用MATLAB R2012a仿真软件搭建单相交-交变频器的仿真模型,并且经过调试,该电路模型能够输出幅值可调、频率可调的正弦波形。 引言 交-交变频器是通过电力电子
    发表于 03-26 17:20

    【技术课堂】拓扑篇丨LC串联谐振拓扑仿真建模及控制策略分析

    ~ r~ =6.9μF。二、电路仿真01、电路模型搭建目前,电路仿真软件很多,本次我们采用Matlab中的可视化电路仿真软件包 Simulink
    发表于 03-01 10:05