主要内容

建模技术,提高性能

加快初始化阶段

加速加速初始化阶段的模拟,使用这些技术。

简化使用掩模图形编辑器

复杂的图形和大花很长时间来加载和渲染图像。蒙面块包含这些图片可以让你减少响应模型。在可能的情况下,把复杂的图纸和图片从蒙面的街区。

如果你想保持形象,代之以一个更小,低分辨率版本。使用掩码编辑器和编辑图标绘制命令保持图像加载的调用图像()

掩码编辑器的更多信息,请参阅掩码编辑器概述

巩固函数调用

当你打开或更新模型,仿真软件金宝app®面具初始化代码。如果你的模型包含复杂的面具包含许多调用初始化命令set_param,巩固连续调用到一个单独的调用与多个参数对。巩固的调用可以减少这些函数调用的开销。

欲了解更多,请看面具回调代码

使用MAT-file加载数据

如果你使用MATLAB®脚本加载和初始化数据,可以提高性能通过加载mat文件代替。MAT-file在二进制的数据,可以更加困难比一个脚本处理。然而,加载操作通常初始化数据比等效MATLAB脚本要快多了。

有关更多信息,请参见mat文件对信号数据

减少交互模型

一般来说,更多的互动模型,来模拟所花的时间就越长。使用这些技术来减少模型的交互性。

禁用调试诊断

一些启用诊断功能可以模拟相当缓慢。在模型中考虑禁用他们配置参数诊断窗格。

请注意

运行数组边界超过解决数据不一致可以减缓模型运行时性能。有关更多信息,请参见数组边界超过解决数据不一致

禁用MATLAB调试

验证您的MATLAB代码工作正常后,禁用这些检查模型中配置参数模拟目标窗格。

  • 启用调试/动画

  • 检测包装上溢出(调试)

  • 回波表达式没有分号

有关更多信息,请参见模型配置参数:仿真目标

使用布拉斯特区库支持金宝app

如果你模拟涉及低级MATLAB矩阵运算,使用线性代数的基本子程序(bla)库利用高度优化的线性代数外部例程。

禁用Stateflow动画

默认情况下,Stateflow®图表突出当前活跃的状态模型和动画发生的状态转换模型模拟。这个特性对于调试非常有用,但它减缓了仿真。

加速模拟,关闭所有Stateflow图表或禁用动画。同样,考虑禁用动画或减少场景富达当你使用:

  • 金宝app仿真软件3 d动画™

  • Simscape™多体™可视化

  • FlightGear

  • 其他3 d动画包

欲了解更多,请看加速模拟(Stateflow)

调整范围查看器属性

如果你的模型包含一个范围查看器显示一个高速率的日志,你不能删除范围,调整贸易观众属性富达渲染速度。

然而,当您使用大量毁灭减少绘制数据点的数量,你可以错过短瞬变和其他现象,你可以看到更多的数据点。更精确的控制使可视化,观众在启用子系统。

有关更多信息,请参见观众范围

降低模型复杂度

使用这些技术来提高模拟性能通过简化模型在不牺牲忠诚。

用低质量的版本替换子系统的选择

一个复杂的子系统替换为一个选择:

  • 创建一个线性或非线性动态模型,从测量的输入-输出数据使用系统辨识工具箱™。

  • 高保真,非线性统计模型,使用基于模型的标定工具箱™创建的。

  • 创建一个线性模型使用金宝app仿真软件控制设计™

  • 一个查找表。有关更多信息,请参见一个查找表

您可以维护子系统的都表示在图书馆使用变体子系统来管理他们。根据这个模型,你可以替换而不影响整体的效果。有关更多信息,请参见优化生成的查找表的代码块

减少数量的块

当你减少块的数量在你的模型中,少了块需要更新在模拟和仿真速度更快。

  • 向量化是一种减少块计数。举个例子,如果你有几个并行信号,进行类似的计算,试着将它们合并到一个向量使用Mux块和执行一个计算。

  • 你也可以启用块减少参数配置参数对话框。

使用框架处理

在框架处理,仿真软件流程批量样品,而不是一次一个。金宝app如果一个模型包括一个模拟-数字转换器,例如,您可以收集输出样本的缓冲区。处理缓冲区在单个操作,如快速傅里叶变换。处理数据块这样的次数,降低了仿真模型中需要调用模块。

一般而言,调度开销减少随着帧尺寸增加。然而,更大的框架使用更多的内存,内存限制可以影响复杂模型的性能。尝试不同的帧大小来找到一个最大化框架处理的性能不会造成内存问题。

选择和配置解算器

金宝app动力学仿真软件提供了一个全面的图书馆,包括固定和变步解决者,处理僵硬和该系统。每个解算器决定下一个仿真步骤的时间。求解数值方法适用于解决常微分方程表示的模型。

你选择的解决和解决选项选择可以影响仿真的速度。选择和配置一个解决,帮助提高使用这些标准的性能模型。有关更多信息,请参见选择一个解算器

刚度系统

硬系统连续动力学变化缓慢而迅速。隐式对僵硬的问题解决者尤其有用。显式动力学更适合该系统。使用显式解算器解决僵硬的系统可能会导致不正确的结果。如果该方法解算器使用一个非常小的步长来解决一个模型,这是一个迹象表明,你的系统是僵硬的。

步长和动力学模型

当你决定使用变步或固定步解算器之间,记住你的步长和动力学模型。选择一个步骤只捕获动力学解算器,使用时间对你来说很重要的。只选择一个解决执行工作所需的计算出下一个时间步。

解决您使用固定步当步长小于或等于基本模型的采样时间。变步解算器,步长可以有所不同,因为变步解决动态调整步长。因此,步长一段时间的步骤比基本样品时间,减少所需的步骤来完成仿真。一般来说,模拟与变步解决者比那些跑固定步解决。

时选择一个固定步求解模型的基本样本时间等于1的样本率。选择变步解决当你的模型的基本样本时间小于最快的采样率。您还可以使用变步解决者捕捉连续动力学。

解决订单减少

解决订单减少时,减少计算,仿真软件执行的数量来确定状态输出,提高了仿真速度。金宝app然而,结果变得不那么准确的解算器订单减少。选择最低的解决订单生产结果与可接受的精度。

增加解决步长或错误宽容

增加解决步骤大小或错误容忍通常提高仿真速度的准确性。使这些变化与照顾,因为他们可以使仿真软件可能错过重要的动力学模拟。金宝app

禁用讨论二阶导数过零检测

变步解决动态调整步长,增加它当一个变量变化缓慢,减少它当一个变量变化迅速。这种行为使解算器采取许多小步骤不连续面附近,因为这是当一个变量变化迅速。精度提高,但往往长时间模拟为代价的。

为了避免小时间步长仿真与这些情况下,仿真软件使用零交点检测准确定位这种不连续。金宝app系统操作模式之间,表现出频繁波动的现象称为chattering-this零交点检测可以产生相反的效果,从而减缓模拟。在这些情况下,您可以禁用零交点检测来提高性能。

您可以启用或禁用零交点检测为特定的块模型。为了提高性能,考虑禁用讨论二阶导数过零检测模块,不会影响仿真的准确性。

有关更多信息,请参见讨论二阶导数过零检测

保存模型的操作点

通常,您运行几个模拟相同的不同的输入模型,边界条件和操作条件。在某些情况下,这些模拟共享一个共同的创业阶段的模型从初始状态到另一个状态的转变。例如,您可以使一个电动马达速度之前测试各种控制序列。

你可以保存模型操作点当系统从启动阶段过渡,使用这个操作点作为初始状态为未来的模拟。这种技术并不能提高仿真速度,但它可以减少仿真总时间为连续运行,因为创业阶段只需要模拟一次。有关更多信息,请参见使用模型操作点速度模拟工作流

相关的例子

更多关于