主要内容

Solver Configuration

R2026b

物理网络环境与求解器配置

  • Solver Configuration block

库:
Simscape / Utilities

描述

Solver Configuration 模块定义对连接的 Simscape 物理网络进行仿真所需的求解器和数值设置。每个由连接的 Simscape™ 模块图表示的物理网络都需要一个 Solver Configuration 模块。Solver Configuration 模块指定模型开始仿真所需的求解器参数。

示例

端口

守恒

全部展开

与连接端口关联的非类型化守恒端口。将此端口连接到任何类型的守恒端口之间的连接线上。

参数

全部展开

用于在时域或组合频域-时域中生成方程的选项。

对于具有单一标称频率的系统,使用频率-时间值来加速仿真。有关详细信息,请参阅Frequency and Time Simulation Mode。

用于非线性高指数微分代数方程 (DAE) 的指数降阶方法。从以下选项中进行选择:

  • 导数替换 - 求解器通过解析法对部分 DAE 求导,并将它们附加到原始系统。对于每个附加方程,求解器将导数替换为新的代数变量,该变量称为虚拟导数。有关详细信息,请参阅 https://epubs.siam.org/doi/abs/10.1137/0914043?journalCode=sjoce3。

  • 投影 - 如果由于动态状态选择问题导致导数替换方法失败,请使用此选项。

  • 无 - 如果您的模型不包含非线性高指数 DAE,请使用此选项以绕过非线性指数降阶并消除分析开销。

用于选择是否从稳态开始仿真的选项。当您清除此参数时,仿真从基于初始条件计算获得的初始状态开始。

当您选择此参数时,求解器会尝试找到当系统输入在足够长的时间内保持恒定时所达到的稳态。有关详细信息,请参阅Initial Conditions Computation。仿真随后从该稳态开始。

对于与频率-时间方程形式兼容的模型,当您选中此复选框时,求解器会尝试执行正弦稳态初始化。求解器使用频率-时间方程执行初始化,仿真使用在 Solver Configuration 模块中选择的方程形式和其他选项。有关详细信息,请参阅Frequency and Time Simulation Mode。

注意

如果在“配置参数”对话框的数据导入/导出窗格中选择初始状态参数,则会覆盖从稳态开始仿真选项。

基于状态的容差方法,用于确定初始条件并计算瞬态初始化。从以下选项中进行选择:

  • 模型的 AbsTol 和 RelTol - 使用由“配置参数”对话框的求解器窗格中的绝对容差和相对容差参数指定的模型容差设置。

  • 局部容差设置 - 将模型容差设置替换为局部值。

求解器用于计算初始条件和瞬态初始化条件的局部绝对容差。

依赖关系

要启用此参数,请将一致性容差设置为局部容差设置。

求解器用于计算初始条件和瞬态初始化条件的局部相对容差。

依赖关系

要启用此参数,请将一致性容差设置为局部容差设置。

基于状态的绝对容差和相对容差的缩放因子。基于状态的绝对容差和相对容差的缩放因子。模块会基于您为模型或局部容差指定的设置应用此值。减小该值可以提高准确度,但如果该值太小,则可能会降低仿真性能或导致仿真失败。增大该值可以提高性能,但会以降低准确度为代价。

用于选择是否使用基于采样的局部求解器的选项。在基于采样的仿真中,Simulink® 将所有连续的物理网络状态视为离散状态。每经过一个时间步,求解器都会更新一次状态。此选项用于实时和硬件在环仿真。当您选择此参数时,局部求解器设置仅适用于连接到此模块的 Simscape 物理网络。模型的其余部分使用 Simulink 求解器。

注意

当您启用此参数时,尽量减少使用 Simulink 或 Simulink Control Design™ 线性化工具可能会提高性能。

用于局部仿真的求解器类型。从以下选项中进行选择:

  • 后向欧拉 - 此求解器会抑制振荡,但更加稳定,尤其是在增大时间步时。

  • 梯形法则 - 与后向欧拉设置相比,此求解器能更好地捕获振荡,但稳定性较低。

  • 分区 - 此求解器将与 Simscape 网络对应的方程组划分为一系列较小的方程组,以此加快实时仿真速度。此求解器对实时仿真速度的提升非常显著。有关详细信息,请参阅Understanding How the Partitioning Solver Works和Increase Simulation Speed Using the Partitioning Solver。

在以下时刻,无论选择哪种设置,求解器都会使用后向欧拉法:

  • 仿真开始时。

  • 在发生瞬时变化之后,例如当模块发生内部离散变化时。这些变化包括离合器的锁定和解锁、阀门作动器的打开和关闭,或 PS Asynchronous Sample & Hold 模块的切换。

依赖关系

要启用此参数,请选择使用局部求解器。

局部求解器采样时间,以秒为单位。每经过一个时间步,求解器都会更新一次状态。平衡此参数的值与非线性迭代参数的值。有关详细信息,请参阅Define Step Size and Number of Nonlinear Iterations for Simscape Real-Time Simulation。

依赖关系

要启用此参数,请选择使用局部求解器。

用于选择在使用分区局部求解器时,是优先考虑速度还是稳健性的选项:

  • 稳定仿真(最大化稳定性) - 尽可能使用隐式求解器来求解方程组,从而提高仿真稳健性。

  • 平衡仿真(平衡非线性和稳定性) - 对方程组增加隐式求解器的使用,从而平衡速度和稳健性。

  • 快速仿真(最小化非线性) - 尽可能使用显示求解器来求解方程组,从而提高仿真性能。

依赖关系

要启用此参数,请选择使用局部求解器,并将求解器类型设置为分区。

用于存储分区数据的方法。当您使用分区求解器时,它会连续求解小型切换线性方程组。您可以选择存储矩阵的逆矩阵,或提高仿真性能。然后,如果求解器在后续时间步中检测到相同的配置,则分区求解器将使用存储的逆矩阵,而不是重新计算它们。从以下选项中进行选择:

  • 按需 - 在仿真过程中计算逆矩阵。这种方法需要的内存较少,但可能会导致性能波动。

  • 穷举 - 在仿真之前计算并存储逆矩阵。这种方法可以提高仿真性能,但需要更多内存。使用分区内存预算 [kB] 参数指定允许的最大数据内存预算。

依赖关系

要启用此参数,请选择使用局部求解器,并将求解器类型设置为分区。

穷举分区的内存预算,以 kB 为单位。如果超出预算,求解器会生成错误。根据可用内存资源和统计量查看器中的总内存估计值数据调整该值。有关详细信息,请参阅Partitioning Solver Statistics。

依赖关系

要启用此参数,请执行以下操作

  • 选择使用局部求解器参数。

  • 将求解器类型设置为分区。

  • 将分区存储方法设置为穷举。

用于选择是否使用运行时正则化来求解静态不定方程组的选项。某些模型配置(例如锁定的并联离合器或并联连接的电流传感器)存在无限数量的解,这使得这些配置在静态上是不确定的。选择此参数可启用正则化,正则化是一种将具有不定流变量的模型转换为可解方程组的变换。默认情况下,此参数处于启用状态。

如果您的模型不包含具有无损并行流路径的配置,可以通过清除在运行时求解不定方程参数来加速仿真。

依赖关系

要启用此参数,请选择使用局部求解器参数,并将求解器类型设置为后向欧拉或梯形法则。

用于选择是否以固定成本计算瞬态初始化和求解器阶段的选项。当您选择此参数时,您可以指定用于瞬态初始化和求解器计算的非线性迭代次数和模式迭代次数。如果在执行指定次数的迭代后系统仍未收敛,则求解器将继续执行下一步。

当您清除此设置时,求解器将执行必要的迭代次数直至收敛,如果在瞬态初始化时未能实现收敛,则会生成错误。当使用此设置时,求解器始终会计算冲激。

有关详细信息,请参阅Making Optimal Solver Choices for Physical Simulation。

求解器在瞬态初始化和积分步骤期间使用的牛顿迭代次数。求解器完成指定次数的牛顿迭代(无论是否收敛)。您可以使用 simscape.getLocalSolverFixedCostInfo 函数来查找每一步所需的迭代次数。平衡此参数的值与采样时间参数的值。有关详细信息,请参阅Define Step Size and Number of Nonlinear Iterations for Simscape Real-Time Simulation。

依赖关系

要启用此参数,请选择使用固定成本运行时一致性迭代。

瞬态初始化时要执行的模式迭代次数。

依赖关系

要启用此参数,请选择使用固定成本运行时一致性迭代,并清除使用局部求解器。

用于选择在瞬态初始化期间,全局和局部固定成本求解器是否计算冲激的选项。对于具有开关事件、接触事件和约束变化的模型,计算冲激会对仿真速度产生显著影响。但是,计算冲激会使瞬态初始化成本随冲激迭代次数成比例增加。当您清除使用固定成本运行时一致性迭代时,求解器始终会计算冲激。

当您选择计算冲激时,您可以在冲激迭代中指定要执行的冲激迭代次数。如果冲激计算在指定次数的迭代后仍未收敛,则求解器将继续执行下一步。

当您清除计算冲激时,求解器不会执行冲激迭代。

依赖关系

要启用此参数,请选择使用固定成本运行时一致性迭代。

瞬态初始化时要执行的冲激迭代次数。如果在达到此次数后系统仍未收敛,求解器将继续执行下一步。

依赖关系

要启用此参数,请选择计算冲激参数。

实时仿真期间用于多线程函数计算的最大线程数。您可以对后向欧拉求解器和梯形法则求解器使用多线程。模块实际使用的线程数是不超过参数值的最接近的 2 的幂。例如,若将此参数设置为 5,则求解器将使用四个线程。默认值 1 对应于单线程函数计算。

多线程函数计算不支持频率-时间仿真、延迟、可扩展编译、加速模式和或快速加速模式。使用多线程函数计算时,只能使用 Simulink Real-Time™ 生成代码。

依赖关系

要启用此参数,请执行以下操作

求解器用于处理矩阵代数的方法。从以下选项中进行选择:

  • 自动 - 求解器自动选择适当的选项(“稀疏”或“满”)来处理矩阵。

  • 稀疏 - 求解器将矩阵视为稀疏矩阵。

  • 满 - 求解器将矩阵视为满矩阵。

用于多线程线性代数的线程数,指定为 2n,其中 n 是此参数的值。默认值 0 对应于单线程线性代数。

对于小型模型,使用大于 0 的值的多线程算法可能比单线程算法慢。

依赖关系

要启用此参数,请选择使用局部求解器参数,并将线性代数参数设置为稀疏。

模块用于处理延迟的最大内存预算,以 KB 为单位。如果模型包含来自 Delays 库的模块或使用 delay Simscape 语言构造的自定义模块,则在对这些模型进行仿真时,模块会遵守此预算。此预算可防止过度内存交换。如果仿真超出预算,求解器会生成错误。

一个选项,用于选择是否对 Simscape 模块的一维连接与其他产品(例如 Simscape Multibody™ 和其他附加产品)的三维连接之间的连接处应用滤波。可使用统计量查看器来确定模型的一维端口和三维端口之间是否具有连接。有关详细信息,请参阅1-D/3-D Interface Statistics。

当您将 Simscape Multibody 模块直接连接到 Simscape 网络时,求解器可能需要额外的导数。当您选择此参数时,求解器会自动对进入 Simulink-PS Converter 模块的信号应用输入滤波,以获得此额外导数。滤波时间常数参数提供延迟的时间常数。

注意

如果清除此参数,并且一维/三维连接需要额外的导数,则求解器会生成错误消息。

一维端口和三维端口之间的连接处的延迟滤波时间常数,以秒为单位。参数值将应用于连接到同一个 Solver Configuration 模块的所有连接。

依赖关系

要启用此参数,请选择需要时在一维/三维连接处应用滤波参数。

多体

用于选择是否对连接的 Simscape Multibody 网络使用基于采样的局部求解器的选项。对于具有简单 Simscape Multibody 网络的复杂 Simulink 模型,使用局部求解器可以降低计算成本。如果选择此参数,对于全局 Simulink 求解器而言,Simscape Multibody 网络显示为具有离散状态。每经过一个时间步,局部求解器都会更新一次状态。

注意

此参数与模块对话框的主要选项卡中的使用局部求解器参数无关,该参数适用于连接到模块的 Simscape 网络。

用于更新 Simscape Multibody 网络中的状态的求解器。从以下选项中进行选择:

  • 一阶显式公式 - 使用与 ode1 相同的数学方程的显式定步长求解器。

  • 二阶显式公式 - 使用与 ode2 相同的数学方程的显式定步长求解器。

  • 三阶显式公式 - 使用与 ode3 相同的数学方程的显式定步长求解器。

  • 四阶显式公式 - 使用与 ode4 相同的数学方程的显式定步长求解器。

  • 五阶显式公式 - 使用与 ode5 相同的数学方程的显式定步长求解器。

  • 八阶显式公式 - 使用与 ode8 相同的数学方程的显式定步长求解器。

依赖关系

要启用此参数,请在多体部分选择使用局部求解器参数。

多体局部求解器的采样时间,以秒为单位。每经过一个时间步,求解器都会更新一次连接的 Simscape Multibody 网络的状态。

依赖关系

要启用此参数,请在多体部分选择使用局部求解器参数。

扩展功能

全部展开

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2007a 中推出

全部展开