主要内容

运行多个模拟

对于涉及多个并行模拟和记录大量数据的工作流,可以使用parsimbatchsim函数,或使用多个模拟面板中的Simulink金宝app®编辑器。这种方法在模型测试、实验设计、蒙特卡罗分析和模型优化等场景中非常有用。

对于命令行工作流(parsimbatchsim函数),可以通过使用数组来创建模拟集金宝app仿真软件。SimulationInput对象来运行多个模拟。或者,您可以使用多个模拟面板中的Simul金宝appink。

多个模拟面板中,您可以创建设计研究来为模拟指定值。该面板允许您为块参数指定值,并为模拟指定变量。

通过并行计算工具箱™,您还可以使用parsimbatchsim功能,多个模拟面板以并行运行模拟。

请注意

当池尚未打开并且第一次运行模拟时,模拟需要额外的时间才能开始。随后的并行模拟速度更快。

使用金宝app编辑器

多个模拟面板允许您为块参数和变量的不同值设置多个模拟。您可以从模型画布中选择感兴趣的块参数,并指定要用于模拟的值。您还可以为模拟提供变量。要运行已设置的模拟,首先选择设计研究,然后单击运行所有上的按钮模拟选项卡上的Simuli金宝appnk工具条。要了解更多信息,请参阅多重模拟面板:模拟车辆动力学系统的不同刚度值的例子。

使用并行计算工具箱

parsim功能和多个模拟面板将每个模拟分配给并行池工作人员,以减少并行运行时的总体模拟时间。使用parsim功能和多个模拟面板创建并行池,允许您在加速和快速加速模式下识别文件依赖项并管理模拟的构建构件。

batchsim函数将模拟卸载到计算集群。模拟在集群上执行,这允许您在处理批作业时执行其他任务。也可以关闭客户端MATLAB®会话并稍后访问批处理作业。

batchsim函数使用并行计算工具箱™许可证在计算集群上运行模拟。的batchsim如果无法创建并行池,则函数将以串行方式运行模拟。如果没有并行计算工具箱许可证,batchsim函数给出一个错误。

使用sim卡函数

如果没有并行计算工具箱许可证,则parsim功能和多个模拟面板的行为与sim卡命令。这些模拟是连续运行的。

使用金宝app仿真软件。SimulationInput对象

在命令行工作流中,可以使用金宝app仿真软件。SimulationInput对象,并与这些更改并行运行模拟。中的值金宝app仿真软件。SimulationInput对象将覆盖模型中的值,这允许您在不弄脏模型的情况下修改模型。通过金宝app仿真软件。SimulationInput对象,还可以指定MATLAB函数在每次模拟的开始和结束时运行PreSimFcnPostSimFcn函数,分别。当你使用金宝app仿真软件。SimulationInput对象,仿真结束后恢复模型参数。看到使用parsim对一个房子的热模型进行并行模拟.的金宝app仿真软件。SimulationInput对象允许您更改模型中的这些设置:

  • 初始状态

  • 外部输入

  • 模型参数

  • 块的参数

  • 变量

模拟管理器监控模拟

模拟管理器允许您监视多个并行模拟。它显示了并行运行时的运行进度。您可以查看每次运行的详细信息,如参数、运行时间和诊断。仿真管理器作为一个有用的工具,为您提供了在仿真数据检查器中分析和比较结果的选项。您还可以选择一个运行,并将其值应用到模型。有关更多信息,请参见仿真管理器

parsim / batchsim函数的功能

  • 在模拟输出对象中输出错误,以便于调试

  • 兼容快速加速和快速重启

  • 兼容文件日志(方便大数据)

  • 兼容MATLAB并行服务器除了本地并行池

  • 能够将基本工作空间变量传递给工作人员

  • 避免透明度错误

多重模拟的数据记录

由此产生的金宝app仿真软件。SimulationOutput对象,它包含模拟输出,捕获错误消息和模拟元数据。当你选择数据导入导出>日志数据集数据到文件配置参数,Simulink创建一个金宝app金宝appSimulink.SimulationData.DatasetRef对象。数据集存储在生成的MAT文件中。您可以使用DatasetRef对象的数据来访问数据集元素。控件运行的模拟金宝app仿真软件。SimulationInput对象时,DatasetRef对象的一部分返回SimulationOutput对象。因此,您可以更快地访问并且不需要创建它们。

并行模拟可以产生比MATLAB内存所能容纳的更多的日志数据。考虑将日志记录到持久存储以进行并行模拟,以减少内存需求。当你选择数据导入导出>日志数据集数据到文件配置参数(LoggingToFile),用于在Simulink中进行并行模拟:金宝app

  • 数据以数据集格式记录在mat文件中

  • 一个金宝appSimulink.SimulationData.DatasetRef对象为每个Dataset元素创建(例如,logsout)用于每个模拟

你可以使用DatasetRef对象来访问特定信号的数据。你可以创建matlab.io.datastore.SimulationDatastore对象,用于将日志数据从持久存储流到模型中。

另请参阅

||||||||||

相关的话题