使用的Simscape物理系统的实时仿真

由史蒂夫·米勒,MathWorks公司和杰夫Wendlandt,MathWorks公司

将车辆、飞机或机器人等物理系统替换为虚拟系统的实时仿真可以极大地降低测试控制软件和硬件的成本。在实时仿真中,仿真虚拟世界中的输入和输出与现实世界同步读取或同步更新。当模拟时间达到5秒、50秒或500秒时,在现实世界中经过的时间完全相同。测试可以一天24小时,一周7天,在可能损坏设备或人员的条件下进行,而且可以在实物原型出现之前就开始。

物理系统的实时仿真需要找到的模型的复杂性,求解器类型,求解器设置,模拟硬件的组合,在现实时间允许执行,并提供结果充分接近从桌面模拟得到的结果。改变这些项目往往会加速仿真,但减少的准确性,反之亦然。的Simscape™提供了一些功能,使其更易于配置模型实时仿真。本文介绍如何配置实时仿真气动驱动系统的模型的Simscape(图1)。步骤所述,无论申请使用的实时硬件。

气动致动系统的图1的Simscape模型被配置用于实时仿真。

移动从桌面到实时仿真

配置实时仿真的Simscape模型包括五个步骤:

  1. 获得具有可变步长求解器参考结果。
  2. 在仿真过程中检查步长。
  3. 选择固定步长求解器,并配置一个固定的成本模拟。
  4. 查找的准确性和仿真速度之间的平衡。
  5. 模拟实时平台上的模型。

1.具有可变步长求解器获得参考电压的结果

变步长求解器缩小步长以精确地捕获系统中的事件和动态。由于这减少了实时目标计算该时间步长结果的时间量,因此不能使用变步长求解器进行实时仿真。相反,必须使用隐式或显式固定步骤求解器。

为了确保与固定步长求解器是精确的获得的结果,我们通过具有可变步长求解器模拟系统和拧紧的误差容限,直到模拟结果停止改变(图2)中获得参考结果对它们进行比较。为的Simscape模型的推荐参量步距求解是ode15s和ode23t。

图2.情节从可变步仿真获得的参考结果。

2.检查步长仿真过程中

一种可变步长求解器改变所述步长大小留在错误容差内,并为过零对事件做出反应。如果求解器突然减小步长为小的值,例如1E-15,这表示该解算器试图准确地识别的零交叉事件,例如在流动的反向或开关的开闭。固定步长求解器可能会遇到麻烦,在步长足够大,允许实时仿真捕获这些事件。

我们用下面的MATLAB®命令产生的曲线图示出了时间步骤中的仿真过程中是如何变化的:

semilogy(兜售(1:end-1), diff(宣传),- *);标题(“步长与仿真时间”,“F ontSize”,14,“FontWeight”,“粗体”);包含(“仿真时间(s)”,“字形大小”,12);ylabel(“步长(s)”,“字形大小”,12);

该图表明,我们应该调整摩擦力模型(见图1,摩擦负荷),使系统模型的实时能力(图3)。

图3。上图:模拟时的步长图。底部:电机转速图。过零事件与电机接近或离开0 RPM的速度相吻合,这意味着可能需要调整摩擦模型,使系统模型具有实时性。

3.选择定步长求解器和配置固定成本仿真

我们必须使用一个固定步长求解器,它能够提供健壮的性能,并以足够大的步长提供精确的结果,以便进行实时仿真。我们对同一模型在不同步长下的隐式固定步长求解器和显式固定步长求解器的仿真结果进行了比较(图4)。对于我们的示例模型,隐式固定步长求解器提供了更准确的结果。

图4.剧情进行比较的模拟结果,当模型进行仿真具有可变步长求解器,一个隐式的固定步长求解器,和一个显式的固定步长求解器。显式求解器需要比隐式求解器更小的时间一步实现精确的水平相当。

对于实时仿真,必须防止执行时间超过示例时间时发生的溢出(图5)。为此,我们运行一个固定成本的仿真,限制每个时间步长的迭代次数。

图5.如何出现溢出。上图:更多的迭代有时需要以获得准确的解决方案。发生模拟超限因为迭代不能在时间步长,这是对于固定的步仿真保持恒定内完成:底部。

如图5所示,迭代是常常需要为显式和隐求解每个的Simscape物理网络。在的Simscape迭代由设置的复选框“使用固定成本运行一致性迭代”并输入在规划求解配置块非线性迭代(图6)的数量的限制。对于精度和成本之间的最佳平衡,我们建议非线性迭代次数初始设置两个或三个。

图6.求解器配置块的Simscape与用于限制每个时间步骤的迭代次数的设置。

以指示可用的定步长解算器的相对成本,我们比较归一化的执行时间包含与每个固定步长求解器(图7)的单个的Simscape物理网络非线性模型。在我们的例子,这两个地方的Simscape求解器,反向欧拉和梯形法则,要求最少的计算工作。

BE =向后欧拉,陷阱=梯形法则图7.剧情,可以在的Simscape模型被用于所有固定步骤求解器的归一化成本的。将结果通过模拟含在相同的步长的每个解算器和类似的设置用于迭代求解器的总数量的单个的Simscape物理网络非线性模型获得。

Simscape使用当地的解算器选项,我们可以使用隐式固定步解算器的僵硬的部分模型和一个显式的固定步解决剩余的模型(图8)。这将减少的数量计算每个时间步执行,从而更容易模型实时运行。

图8.图显示在单个模型使用多个求解器。利用当地的求解器可让您在模型和明确的求解器对模型的其余部分的刚性部分配置隐含解算器,最大限度地减少执行时间,同时保持准确度。

4.平衡精度和仿真速度

我们现在可以运行使用C代码,将实际的处理器上运行模拟。在每个时间步骤中,实时系统读取输入,计算用于下一时间步骤的仿真结果,并写入输出。如果此任务所需的时间比规定时间步骤时间以下时,处理器保持的步骤的其余部分期间闲置。

我们面临的挑战是要找到提供准确的结果,同时允许实时仿真(图9)设置。在每一种情况下,存在精度与速度的折衷。选择一个计算密集型解算器,增加了非线性迭代次数,或减少步长增加准确性并减少闲置时间,提高了模拟不会实时运行的风险。在另一方面,在相反方向上调整这些设置会增加的空闲时间量,但降低精度。

图9。权衡涉及求解器的选择、非线性迭代的数量和步长。对于任何给定的模型,必须选择这些设置,以便在足够的空闲时间提供足够的安全余量的情况下提供最大的准确性和健壮性。

通过使用的Simscape反向欧拉局部求解器和限制迭代次数设置为2,我们以可接受的仿真速度获得我们的Simscape模型准确的模拟结果。

5.模拟模型的实时平台上

我们的模型实时运行在一个700MHz的处理器和所使用的可用的步长大小的仅62%至进行必要的计算。从实时仿真所获得的结果是相同的,以所获得的那些桌面模拟期间使用相同的解算器的设置。这些结果也非常接近使用可变步长求解器(图10)中得到的参考结果。

图10。将参考结果与变步长求解器进行作图比较,并将仿真结果配置为实时仿真。

将这种方法扩展

在这篇文章中所描述的方法并不限于一种类型的模型。我们把这种方法用于超过30款涵盖各种应用和物理域。这些模型包含液压的,电的,机械的,气动的,和热元件,以及包括诸如伺服阀流体力学,直流无刷电机,与水锤效应的液压管道,和气动致动系统与粘滑的摩擦。所有型号都能够实时在Intel上运行®酷睿2 E6700(2.66 GHz)的正运行的xPC目标™。在模拟执行花了一步的最大百分比小于18%,留下了广阔的安全边际用于处理I / O和其他任务。在模拟执行所花费的平均百分比为3.9%,最低为6E-4%。

发布时间2011 - 91881v00