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

    文章

    6649

    浏览量

    84531
  • 结构体
    +关注

    关注

    1

    文章

    125

    浏览量

    10750
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    如何提高Simulink仿真性能呢?有哪些使用技巧?

    无论模型的复杂程度如何,每个 Simulink 用户都希望提高仿真性能。本文介绍了许多实用技巧和技术,来帮助您在仿真工作流中获得最佳的性能。
    的头像 发表于 01-18 10:01 253次阅读
    如何提高<b class='flag-5'>Simulink</b><b class='flag-5'>仿真</b>性能呢?有哪些使用技巧?

    使用仿真模型进行拓扑分析

    过去,仿真的基础是行为和具有基本结构的模型,它们主要适用于简单集成电路技术中使用的器件。但是,当涉及到功率器件时,这些简单的模型通常无法预测与为优化器件所做的改变相关的现象。现在,通过引入物理
    的头像 发表于 01-05 10:04 372次阅读
    使用<b class='flag-5'>仿真</b><b class='flag-5'>模型</b>进行拓扑<b class='flag-5'>分析</b>

    LabVIEW进行癌症预测模型研究

    )进行非线性数据分类。主成分分析(PCA)和线性判别分析(LDA)PCA和LDA用于降维,减少噪声,并保留数据的重要特征。在并行PCA-LDA-SVM模型中,先对原始数据同时进行PCA
    发表于 12-13 19:04

    基于NS2仿真的IP网络性能分析研究

    电子发烧友网站提供《基于NS2仿真的IP网络性能分析研究.pdf》资料免费下载
    发表于 10-24 11:41 0次下载
    基于NS2<b class='flag-5'>仿真的</b>IP网络性能<b class='flag-5'>分析</b>与<b class='flag-5'>研究</b>

    无刷直流电动机SIMULINK仿真模型资料

    无刷直流电动机SIMULINK仿真模型,欢迎大家下载~
    发表于 10-09 09:03

    EasyGo 实时仿真丨大功率电机控制器硬件在环系统仿真测试

    IO 对接厂家的实际控制板进行测试。 参照实际工程,首先建立simulink仿真模型,着重构建与实际电机参数一致的电机模型,配合相应的负载;其次基于Desksim软件连接PC和 Net
    发表于 07-28 11:39

    matlab仿真原理 matlab仿真的用法

    分析仿真是一件非常简单的事情。  提供图形交互环境,只需用鼠标拖动,无需编写一行代码,即可快速创建系统块模型。  由于Simulink具有强大的功能和易用的用户界面,它广泛应用于许
    发表于 07-19 10:58 1次下载

    simulink命令有哪些 simulink命令集大全

      simulink的命令集  仿真命令  sim 仿真运行一个simulink模块  sldebug 调试一个simulink模块  si
    发表于 07-18 15:12 2次下载

    基于Matlab/Simulink建立一种Thevenin/RC电池模块仿真模型

    本文以锂电池数学模型为基础,在Matlab/Simulink仿真系统中,建立了一种Thevenin/RC电池模块仿真模型,通过实际工况试验
    的头像 发表于 06-28 10:49 3380次阅读
    基于Matlab/<b class='flag-5'>Simulink</b>建立一种Thevenin/RC电池模块<b class='flag-5'>仿真</b><b class='flag-5'>模型</b>

    在ARM微控制器上部署MATLAB/Simulink仿真模型

    本文详细演绎了从Simulink创建模型仿真验证,之后再生成C源码部署到plus-f5270开发板的全过程。其中描述的方法和操作步骤,为后续部署更多仿真
    的头像 发表于 06-16 10:52 1709次阅读
    在ARM微控制器上部署MATLAB/<b class='flag-5'>Simulink</b><b class='flag-5'>仿真</b><b class='flag-5'>模型</b>

    光伏组件仿真模型、半物理模型与数学模型构建及示例

    组件输出仿真模型可以通过半物理模型或数学模型实现,根据应用场景的不同可以选择不同模型观察和
    的头像 发表于 06-01 16:18 2879次阅读
    光伏组件<b class='flag-5'>仿真</b><b class='flag-5'>模型</b>、半物理<b class='flag-5'>模型</b>与数学<b class='flag-5'>模型</b>构建及示例

    永磁同步电机流频比I/F控制原理及Matlab/Simulink仿真分析

    本章节采用流频比I/F控制方法驱动永磁同步电机的转动,首先分析流频比I/F的控制原理,然后在Matlab/Simulink中进行永磁同步电机流频比I/F控制系统的仿真分析,为后续PMS
    的头像 发表于 05-24 11:36 1425次阅读
    永磁同步电机流频比I/F控制原理及Matlab/<b class='flag-5'>Simulink</b><b class='flag-5'>仿真</b><b class='flag-5'>分析</b>

    simulink和pspice联合仿真问题

    根据网上的资料操作,已可以再simulink中调用pspice中的模型,但是出现仿真错误如下: 网上查到的解决方案并没有解决我的问题,有没有人可以帮我看看呀,或者您的联合仿真是通过什么
    发表于 05-23 15:04