主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

最大步长

使用变步长求解器的仿真中允许的最大步长

模型配置窗格: 求解器

描述

最大步长参数指定变步长求解器在仿真中可采用的最大步长(以秒为单位)。

当您配置引用模型以使用本地求解器时,引用模型的最大步长参数指定本地求解器的最大步长。 (自 R2025a 起)

依赖关系

要启用此参数,请将求解器 Type 设置为 Variable-step

设置

auto (默认) | 标量
auto

默认情况下,最大步长参数值 auto,这表示求解器确定仿真中要使用的最大步长。求解器分析模型并选择满足几个约束的步长,包括:

  • 最大步长必须小于或等于以下所有值:

    • 如果模型包含离散采样时间,则为模型中的最小离散采样时间

    • 如果模型包含生成周期信号的模块(例如 Sine Wave 模块和 Signal Generator 模块),则为模型中指定最高频率周期的三分之一

    • 0.2(如果停止时间是 Inf

  • 仿真必须至少进行 50 个时间步。

    hmax=tstoptstart50

  • 停止时间必须是步长的整数倍。

当模型配置为从指定为 Simulink.op.ModelOperatingPoint 对象的初始状态开始仿真并且最大步长参数值 auto 时,软件将使用存储在 ModelOperatingPoint 对象中的最大步长。

提示

最大步长参数设置为自动时,选择启用解耦连续积分参数可允许求解器确定更大的最大步长,从而加快仿真速度。

标量

通常,求解器会确定一个适当的最大步长。在以下情况下,请考虑指定最大步长:

  • 您可以在很长的时间跨度内仿真该模型。对于较长的时间跨度,求解器选择的步长可能太大而无法找到解决方案。

  • 您的模型包含周期性或近似周期性行为,并且您知道周期。将最大步长指定为周期的分数,例如 1/4

  • 您担心当使用求解器确定的最大步长时,求解器会缺少重要的行为。

示例

全部展开

打开模型 vdp

mdl = "vdp";
open_system(mdl)

The model vdp.

要允许软件选择用于模型的求解器,请将类型参数指定为 Fixed-stepVariable-step,并将求解器参数设置为 auto。对于此示例,请配置软件以选择模型的变步长求解器。

  1. 要打开“配置参数”对话框,请在建模选项卡上,点击模型设置

  2. 求解器窗格上,将求解器类型设置为 Variable-step,并将求解器参数设置为 auto (Automatic solver selection)

  3. 点击确定

或者,使用 set_param 函数以编程方式设置参数值。

set_param(mdl,"SolverType","Variable-step", ...
    "SolverName","VariableStepAuto")

对模型进行仿真。在仿真选项卡上,点击运行。或者,使用 sim 函数。

out = sim(mdl);

作为初始化仿真的一部分,软件会分析模型以选择求解器。Simulink 编辑器底部的状态栏会在右侧显示所选求解器。对于此模型,软件选择 ode45 求解器。

The right side of the status bar shows the selected solver as auto(ode45).

要查看有关所选求解器参数的详细信息,请点击状态栏中指示所选求解器的文本。“求解器信息”菜单显示所选求解器和最大步长参数的所选值。对于此仿真,求解器使用的最大步长为 0.4

The pointer is on the text in the status bar that indicates the selected solver. The Solver information menu shows selected parameter values above three buttons.

如果要锁定求解器选择和最大步长,请显式指定求解器参数值。在“求解器信息”菜单中,点击“接受建议的设置”

您也可以使用 set_param 函数以编程方式指定参数值。

set_param(mdl,"SolverName","ode45","MaxStep","0.4")

在显式指定参数值后,状态栏和“求解器信息”菜单中的求解器信息不再指示参数值是自动选择的。

The Solver information menu is opened above the right side of the status bar. The solver information in the status bar and Solver information menu no longer show auto() around the solver parameter values.

编程用法

参数MaxStep
类型:字符串 | 字符向量
值:数值标量
默认值:"auto"

版本历史记录

在 R2006a 之前推出