主要内容

提高速度和准确性

为什么速度和准确性对实时仿真很重要

速度和准确性是使您的模型具有实时性的决定性因素。当你在特定的目标硬件上模拟它时,如果它满足这两个条件,你的模型就是实时的:

  • 没有超支。

  • 模拟结果符合您的准确性标准。

速度是客观的。实时时钟决定您的模型是否足够快来进行实时模拟。对于求解器采取的每一步,实时硬件系统跟踪完成这些处理任务所需的时间:

  • 执行仿真。

  • 过程输入和输出。

  • 执行一般的计算机任务。

对于任何时间步骤,当系统完成处理任务所需的时间超过任务的实时限制时,就会发生溢出。如果您使用目标机器模拟模型时报告了任何溢出,那么您的模型的速度不足以进行实时模拟。

如果您的Simscape™模型产生的结果与作为模型基础的经验和理论数据一致,那么它就是准确的。当基础和模拟数据相似时,准确性更具有主观性,但不是绝对一致的。要确定当数据不完全匹配时,您的模型是否足够精确来进行实时模拟,请考虑以下问题:

  • 模型是否代表了您想要度量的现象?

  • 它是否正确地代表了这些现象?

  • 如果您计划使用您的模型来测试控制器设计,那么该模型是否足够精确,以产生您可以依赖的系统确认结果?

测试模型是否具有实时能力的唯一方法是使用固定步长、固定成本的求解器在实际的实时目标硬件上运行它。然而,您可以通过分析桌面模拟的结果来估计模型是否足够快和准确地进行实时模拟。要估计您的模型是否具有实时能力,请参见确定步长估计计算成本

如果桌面模拟的分析表明您的模型可能不具备实时能力,请在将模型部署到实时目标机器之前提高模型的速度或准确性。提高模拟的速度会降低精度,反之,提高精度会降低速度。为了使您的模型具有实时性,请在速度和准确性之间保持平衡。

平衡速度和精度

模拟速度和准确性与您的选择相关:

  • 模型保真度和范围

  • 实时硬件计算能力

  • 求解器的采样时间(步长)和迭代次数

为了提高模拟速度,可能会牺牲准确性:

  • 降低模型的保真度或范围。

  • 增加样品时间。

  • 减少求解器的迭代次数。

为了提高模拟精度,可能会牺牲速度:

  • 增加模型的保真度或范围。

  • 减少样品时间。

  • 增加求解器迭代次数。

要想同时提高精确度和速度,或者在不牺牲另一个的情况下,提高计算能力。要提高计算能力,可以使用更快的实时处理器或并行计算。

指定的求解器类型也会影响模拟的速度和准确性。对于固定步长模拟,Simscape本地求解器比Simulink更快、更准确金宝app®全球解决方案。隐式求解器更快,但比显式求解器更不精确。然而,网络的数值刚度也是决定使用隐式求解器还是显式求解器的决定因素。对于数值刚性网络,显式求解可以得到更精确的结果。

有关模型复杂性如何影响速度和准确性的更多信息,请参见消除需要密集计算的效果.有关求解器配置如何影响速度和精度的更多信息,请参见优化本地和全局求解器配置

有可能不存在模型复杂性和求解器设置的组合,使您的模型具有实时能力。如果模拟不能在目标机器上实时运行,或者精度无法接受,请考虑以下选项来提高速度和精度:

消除需要密集计算的效果

如果您的桌面仿真分析表明您的模型对于实时仿真来说可能不够快,那么请消除需要密集计算的影响。在您的模型中识别导致高成本影响的元素,例如不连续性和快速变化,它们往往会减慢模拟的速度。

导致不连续的因素包括:

  • 硬止动或反弹

  • 摩擦粘滑运动

  • 开关或离合器

具有小时间常数的元素会引起快速变化,包括:

  • 小质量附着在具有最小阻尼的刚性弹簧上

  • 低电容、电感和电阻的电路

  • 可压缩体积小的液压回路

为了消除或修改影响模拟效果的元素,可以使用以下方法:

  • 用线性化版本替换非线性组件。

  • 用查找表来代替复杂的方程。

  • 用简化的模型替换复杂的组件。

  • 具有滤波器、延迟和其他技术的平滑不连续函数(阶跃变化)。

优化本地和全局求解器配置

您还可以通过求解器规格来影响模拟的速度和准确性。您的实时目标机器提供的精度水平不一定与单个模型中所有网络的特定步长相关。实时目标机器可以对模型中的简单网络给出准确的结果,但对更复杂的网络给出不准确的结果。利用在Simscape模型中为每个网络指定不同求解器配置的能力。为了使您的模型能够实时运行,请分别配置您的固定步长全局求解器和每个局部求解器。

有关求解器选项和确定帮助Simscape模型实现实时化的求解器的信息,请参见实时仿真求解器

目标硬件升级

当使用相同的步长来模拟相同的模型时,不同的目标给出不同的精度水平。您可以通过使用更快的实时目标计算机来加速或提高实时模拟的准确性。

并行模拟系统的各个部分

提高速度同时保持准确性的另一种方法是配置模型以并行地评估多个物理网络。如果网络彼此不依赖,则可以对模型进行划分。使用并试验您的模型、生成的代码和实时目标机器来使用这种方法。

相关的例子

更多关于