Solver Configuration
R2026b物理网络环境与求解器配置
Solver Configuration block

To add a block to a model, double-click the canvas and start typing the block name. Then, select the block from the list.
库:
Simscape /
Utilities
描述
Solver Configuration 模块定义对连接的 Simscape 物理网络进行仿真所需的求解器和数值设置。每个由连接的 Simscape™ 模块图表示的物理网络都需要一个 Solver Configuration 模块。Solver Configuration 模块指定模型开始仿真所需的求解器参数。
示例
带分区求解器的非线性机电电路
此示例对由斜坡输入控制的 DC 电机进行建模。由于 Diode 和 Rotational Friction 模块的作用,所得到的方程组包含切换线性和非线性部分。但是,分区求解器能够将该系统转换为若干较小的由非线性函数连接的线性时不变和切换线性方程。这有助于降低计算成本,从而加快仿真速度。
端口
守恒
与连接端口关联的非类型化守恒端口。将此端口连接到任何类型的守恒端口之间的连接线上。
参数
用于在时域或组合频域-时域中生成方程的选项。
对于具有单一标称频率的系统,使用频率-时间值来加速仿真。有关详细信息,请参阅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 中推出您可以将分区方法参数设置为以下选项之一:
稳定仿真(最大化稳定性) - 尽可能使用隐式求解器来求解方程组,从而提高仿真稳健性。
平衡仿真(平衡非线性和稳定性) - 对方程组增加隐式求解器的使用,从而平衡速度和稳健性。
快速仿真(最小化非线性) - 尽可能使用显示求解器来求解方程组,从而提高仿真性能。
稳健仿真选项已重命名为平衡仿真(平衡非线性和稳定性)。Simscape 将先前版本中的模型更新为使用新选项。
要在使用梯形求解器时应用多线程函数计算,请将函数计算最大线程数设置为大于 1 的值。
Solver Configuration 模块中的求解不定方程复选框(用于应用运行时正则化来求解静态不定方程组)已重命名为在运行时求解不定方程,并移至对话框的不同部分。以前,您需要选中使用固定成本运行时一致性迭代复选框才能启用它。现在,要启用在运行时求解不定方程复选框,您需要选中使用局部求解器复选框,并将求解器类型设置为后向欧拉或梯形法则。除非您的模型包含无损并行流路径(例如理想的并行离合器或开关),现在只要您使用这些类型的局部求解器,就都可以清除在运行时求解不定方程复选框,并加速仿真,无论仿真是否为固定成本都是如此。
您无法再对全局求解器关闭运行时正则化。
新的多体部分包含特定于求解连接的 Simscape Multibody 网络的设置和参数。选中使用局部求解器复选框,即可通过将 Simscape Multibody 网络表示为具有离散状态来降低计算成本。此部分中的求解器类型和采样时间参数仅适用于多体局部求解器。
此模块使用基于状态的绝对和相对一致性容差,乘以一个缩放因子,来计算初始条件和进行瞬态初始化。使用一致性容差参数,可以在模型容差或局部容差设置之间进行选择。新的容差因子参数为这些值提供了一个缩放因子。这种基于状态的方法能提供更好的稳健性和效率,特别是在将它与按标称值缩放模型结合使用的情况下。
在先前版本中,一致性容差参数具有数值,并且模块使用基于方程残差容差的非线性求解器来初始化模型。
如果您打开一个现有模型,且该模型的一致性容差参数具有数值,则该模型将继续使用与先前版本中相同的基于残差的计算方法。您的仿真结果不会改变。
要将现有模型升级为使用基于状态的方法,请使用升级顾问中的检查 Simscape 是否使用基于状态的一致性容差检查。
如果您的模型使用后向欧拉局部求解器,计算牛顿迭代会非常耗时,这可能会对固定成本仿真造成问题。您可以在多核计算机上使用多线程函数计算来加速仿真,方法是使用新的函数计算最大线程数参数,并清除新的求解不定方程复选框。
在先前版本中,求解器使用单线程函数计算,并且始终应用运行时正则化。函数计算最大线程数参数和求解不定方程复选框的默认值与先前版本中使用的算法等效。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)


