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

    文章

    7764

    浏览量

    92688
  • 结构体
    +关注

    关注

    1

    文章

    131

    浏览量

    11300
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    汽车HIL测试系统,欧美标充电模型Simulink模型,开发,有偿

    提供一个欧美标充电模型,交付物为白盒Simulink模型
    发表于 09-04 16:23

    无刷直流电机双闭环控制的仿真研究

    了Matlab/simulink 仿真模型进行仿真实验验证。仿真结果表明,整个系统运行平稳,具有良好的静、动态特性,从而验证了所提出的控制策
    发表于 07-08 18:33

    无刷直流电机双闭环串级控制系统仿真研究

    Madlab进行BLDC建模仿真的方法,并且也提出了很多的建模仿真方案。例如有研究人员提出采用节点电流法对电机控制系统进行分析,通过列写m函数,建立BLDC控制系统真
    发表于 07-07 18:36

    无刷直流电机模糊PI控制系统建模与仿真

    。利用该模型进行了电机动静态性能的仿真研究,仿真结果与理论分析一致,表明读方法建立的 BLDCM控制系统
    发表于 07-07 18:25

    无刷双馈电机在独立电源系统中应用的仿真研究

    摘 要:分析了无刷双馈电源系统变速恒频的运行原理,结合独立电源系统的特点,建立了系统在空载和带负载状态下的数学模型;对系统空载至负载、转速突变、负载突变等情况进行了仿真研究,
    发表于 06-25 13:08

    模型自适应控制在永磁同步电机转速中的仿真研究

    估计动态系统非线性函数和控制律;基于系统输出误差提出三个控制规则生成恰当信号控制电机转速。在 Simulink 环境下建立控制器和永磁同步电机转速仿真系统,仿真分析结果验证了提出方法控
    发表于 06-25 13:01

    三相永磁同步电机直接转矩控制技术研究

    控制技术的原理,并在MATLAB/Simulink中建立了三相永磁同步电机的直接转矩控制模型,通过对模型仿真结果的分析,可以看到直接转矩控制
    发表于 06-16 21:51

    三相异步电机在SIMULINK下的建模与仿真

    坐标系(M-T)下三相异步电机的数学模型、应用SIMULINK建立了仿真模型及其中的电压转换模块、电流转换模块、U/1转换模块.仿真实例验证
    发表于 06-16 21:48

    轮边电机驱动汽车性能仿真与控制方法的研究

    [摘要] 为多域车辆的陆地行驶,设计了轮边电机驱动系统,构建了基于轮边驱动系统的车辆模型,并对驱动控制方法进行了研究。在转向动力学理论分析基础上,在ADAMS 中建立了多体动力学模型:
    发表于 06-10 13:10

    利用MATLAB对交流电机调速系统进行建模和仿真

    技术是借助计算机及相关技术,对真实系统的运行过程和状态进行数字化模拟的技术。Simulink作为MATLAB的一个组件,能够实现对动态系统的建模、仿真和综合分析。本文在
    发表于 06-06 14:31

    如何实现MC33774IC在Simulink环境中使用基于模型的设计?

    我想熟悉如何实现MC33774IC 在 Simulink 环境中使用基于模型的设计。 尽管 MATLAB 提供了一些示例文件,但它们似乎是最终版本。要更深入地了解如何配置MC33774,我正在寻找一个教程,该教程解释了如何从头开
    发表于 04-10 08:05

    直流电机控制方法的Matlab仿真研究

    速度控制模型,以提高无刷直流电机速度控制系统的稳定性和抗干扰能力 。使用 Matlab/Simulink 工具箱建立无刷直流电机的仿真模型研究
    发表于 03-27 12:15

    Simulink与 Simscape的结合使用

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

    Simulink模型仿真分析技巧

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

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

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