主要内容

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

定步长(基础采样时间)

定步长求解器的步长

模型配置窗格: 求解器

描述

定步长(基本采样时间)参数指定定步长求解器的步长。

当您将引用模型配置为使用本地求解器时,引用模型的定步长(基本采样时间)参数指定本地求解器的步长。

依赖关系

要启用此参数,请进行如下设置:

设置

auto | 双精度正标量
auto

默认情况下,定步长为 auto。软件根据以下规则确定适合仿真的步长:

  • 如果模型包括周期性离散采样时间,则软件会选择等于模型中周期性采样时间的最大公约数的步长。此步长确保仿真在模型中的每个采样时间内都采取一步。

  • 如果模型不包含周期性离散采样时间并指定有限采样时间,则求解器会选择将仿真分为 50 个相等步骤的步长。

    hmax=tstoptstart50

  • 如果模型不包括周期性采样时间并将停止时间指定为 Inf,则仿真使用步长 0.2

  • 如果模型没有周期性采样时间并使用 Sine WaveSignal Generator 模块,则软件还会考虑源模块生成的周期信号的最大频率。计算步长以确保步长不小于模型中周期信号最小周期的三分之一,该周期由最大频率 Freqmax 的倒数确定。

    对于具有有限停止时间的仿真,如果最小周期的三分之一小于将仿真分成五十个等步计算出的步长,则仿真使用通过最大频率确定的步长。

    hmax=min(tstoptstart50,(13)(1Freqmax))

    对于具有无限停止时间的仿真,如果最小周期的三分之一小于 0.2,则仿真使用最大频率确定的步长。

    hmax=min(tstoptstart50,(13)(1Freqmax))

  • 当模型配置为从指定为 Simulink.op.ModelOperatingPoint 对象的初始状态开始仿真时,软件使用存储在 ModelOperatingPoint 对象中的定步长。

当您允许求解器确定定步长时,您可以看到求解器通过几种方式确定的值:

  • 模型编译完成后,求解器信息窗口和工具提示将提供有关求解器和定步长的信息。要查看求解器信息,点击或暂停在 Simulink® 编辑器右下角的求解器信息字符串上。

    The Solver information window shows that the software chose the ode3 fixed-step solver and a fixed step size of 0.4 for this simulation.

    几个操作会导致模型编译,包括更新模块图和仿真模型。

  • 当使用 get_param 函数获取 FixedStep 参数的值时,如果参数值指定为 auto,则该函数返回 'auto'。模型编译完成后,您可以通过使用 get_param 函数获取 CompiledStepSize 参数的值,以编程方式访问软件选择的定步长。

    fixedStepSize = get_param("mdlName","CompiledStepSize");

  • 当您将仿真结果作为单个仿真输出对象返回时,Simulink.SimulationOutput 对象中的元数据包括仿真中使用的定步长。定步长作为模型信息的一部分存储在 Simulink.SimulationMetadata 对象中的求解器信息中。

    simMetadata = out.SimulationMetadata;
    simModelInfo = simMetadata.ModelInfo;
    simSolverInfo = simModelInfo.SolverInfo;
    simFixedStep = simSolverInfo.FixedStepSize;

双精度正标量

要使用除 auto 之外的值,请将定步长(以秒为单位)指定为双精度值。

指定的步长必须小于或等于模型中的最小离散采样时间,并且模型中的所有离散采样时间都必须能够被指定的步长整除。

当您指定局部求解器的步长时:

  • 局部步长必须小于或等于通信步长,后者决定了父求解器和局部求解器交换数据的速率。

    在 R2024a 之前的版本中: 当父求解器是定步长求解器时,局部求解器步长必须为父求解器步长的整数倍。

  • 当局部步长小于通信步长时,通信步长必须能被局部步长整除。

    例如,当通信步长为 0.1 秒时,本地求解器可以为 0.1 秒、0.05 秒、0.025 秒等等。

有关详细信息,请参阅Use Local Solvers in Referenced Models

编程用法

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

版本历史记录

在 R2006a 之前推出