主要内容

使用分区求解器提高模拟速度

分区求解是的Simscape™固定步长求解地方,通过减少模拟的计算成本提高部分型号的性能。降低计算成本收益更快的仿真率桌面模拟和降低部署任务的执行时间(TET)。解算器方程所连接的Simscape网络的整个系统转换成线性切换,其通过非线性函数方程连接几个较小的套。计算成本降低,因为它是更有效的计算的解决方案为几个较小的方程系统比它计算用于一个大的系统方程的解。金宝搏官方网站

分区求解不分区模型,那就是它不模型分成多核处理独立的子系统。要了解如何进行分区的Simscape模型,看将一个模型

要使用分区解算器,打开解算器配置阻止设置和:

  1. 选择使用本地求解复选框。

  2. 设置解算器类型参数到分区

  3. 清除从稳态开始模拟复选框。

  4. 设置公式配方参数到时间

对于实时仿真,还可以选择使用固定成本运行一致性迭代复选框。有关更多信息,请参阅让你的模型实时可行

限制

并非所有的网络都可以用分区求解器进行模拟。如果Simscape网络不能用通过非线性函数连接的切换线性方程表示,则使用分块求解器的模拟结果会出现错误。对于包含以下内容的网络,使用分区求解器进行模拟也会产生错误:

某些解算器配置块设置与分区求解器不兼容。使用Partitioning求解器的模拟如果模型包含解算器配置块:

  • 从稳态开始模拟选择

  • 公式配方设置为频率和时间

选项

为了进一步提高仿真性能,你可以设置分区存储方法参数到详尽的并指定值分区存储器预算[KB]参数,基于总内存估计在统计查看器中的数据。有关更多信息,请参阅解算器配置使用分区求解器时可用的模型统计信息

模拟Simscape使用分区求解器的模型

这个示例展示了如何将使用Partitioning求解器的模拟的速度和准确性与基线结果进行比较。它还展示了如何比较分区求解器和反向欧拉求解器的速度。

  1. 打开模型。在MATLAB®命令提示符,输入代码。

    见代码

  2. 返回单个仿真输出金宝appSimulink.SimulationOutput对象的单输出格式,以便以后可以比较模拟时间sim卡命令。

    %启用单输出格式set_param(模型,“ReturnWorkspaceOutputs”'在'
  3. 使信号进入电机转速Simulink的scope模块金宝app®数据记录和观看与所述模拟数据查验。

    见代码

    日志徽章标记在模型中的信号。

  4. 为每个求解器运行定时仿真:

    • 变步长全局解算器,模型的原始解算器

    • 固定步长局部反向欧拉求解器

    • 固定步骤局部分区求解器

    见代码

    compTimeDiffTable = 3×2表求解Sim_Duration ________________ ____________ '基线'[0.0319] '分区'[0.0204] '向后欧拉'[0.0291] compPctDiffTable = 3×2表的比较Percent_Difference ____________________________________ __________________ '分区相对于基线'[35.9128]“向后欧拉相对于基线” [8.6623]‘分区与向后欧拉’[29.8349]

    你的机器上模拟时间可能有所不同,因为仿真速度取决于机器的处理能力和并发进程的计算成本。

    局部固定步长划分和反向欧拉求解器比变步长基线求解器更快。分区求解器通常(但不总是)比向后欧拉求解器快。

  5. 要比较结果,请打开Simulation Data Inspector。

    见代码

    要查看比较,单击比较然后点击传感1

    第一条曲线示出了基线和分区求解仿真结果的叠加。第二幅图显示它们的区别。对于不同的默认公差为0.。如果要判断结果的准确性满足您的要求,您可以调整相对的,绝对的,时间误差。有关更多信息,请参阅比较模拟数据

相关例子

更多关于