主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

开始时间

仿真开始时间

模型配置窗格: 求解器

描述

开始时间参数将仿真的开始时间(以秒为单位)指定为双精度值。仿真开始时间指定仿真计算结果的第一个时间值,以及仿真引擎传播时间的起始时间。

设置

0.0 (默认) | 标量数值
  • 开始时间必须小于或等于停止时间。

  • 具有初始条件的模块参数的值必须在指定的开始时间与初始条件设置相匹配。

  • 仿真时间与时钟时间不同。例如,运行 10 秒的仿真通常不需要 10 秒的时钟时间。总仿真时间取决于模型复杂度、求解器步长和系统速度等多个因素。

  • 使用定步长求解器时,仿真的开始时间必须为零或仿真的固定时间步的整数倍。当您指定的开始时间不满足此要求时,软件会发出诊断信息,并将开始时间更改为定步长的最接近整数倍。要更改这种情况的诊断行为,请使用自动求解器参数选择参数。

示例

全部展开

打开模型 vdp

mdl = "vdp";
open_system(mdl)

保存的模型的开始时间为 0 秒,停止时间为 20 秒。

get_param(mdl,"StartTime")
ans = 
'0.0'
get_param(mdl,"StopTime")
ans = 
'20'

对模型进行仿真。要查看仿真结果,请双击 Scope 模块。示波器窗口显示从开始时间到停止时间的结果。

out1 = sim(mdl);

The Scope displays the signals x1 and x2 for the 20-second simulation.

将开始时间更改为 10 秒,将停止时间更改为 40 秒。

  1. 建模选项卡上的设置下,点击模型设置

  2. 选择求解器窗格。

  3. 开始时间框中,输入 10

  4. 停止时间框中,输入 40

  5. 点击确定

或者,使用 set_param 函数以编程方式配置开始和停止时间。

set_param(mdl,"StartTime","10","StopTime","40")

再次对模型进行仿真。示波器窗口会更新以反映更长的仿真时间。时间轴的范围是从 0 到 30,在示波器窗口的右下角指示存在 10 秒的偏移量。

out2 = sim(mdl);

The Scope window displays the signals x1 and x2 for the 30-second simulation.

要更改仿真的开始和停止时间,而不修改保存在模型中的配置参数值,请使用 Simulink.SimulationInput 对象。

打开模型 vdp

mdl = "vdp";
open_system(mdl)

保存时,模型的开始时间为 0 秒,停止时间为 20 秒。

get_param(mdl,"StartTime")
ans = 
'0.0'
get_param(mdl,"StopTime")
ans = 
'20'

创建一个 Simulink.SimulationInput 对象来配置模型的仿真。

simIn = Simulink.SimulationInput(mdl);

使用 setModelParameter 函数为仿真指定开始时间为 10 秒,停止时间为 40 秒。

simIn = setModelParameter(simIn,"StartTime","10",...
    "StopTime","40");

使用 SimulationInput 对象仿真模型。

out = sim(simIn);

仿真使用在 SimulationInput 对象上定义的开始时间和停止时间值。

tFirst = out.yout{1}.Values.Time(1)
tFirst = 
10
tLast = out.yout{1}.Values.Time(end)
tLast = 
40

模型中的配置参数值保持不变。

get_param(mdl,"StartTime")
ans = 
'0.0'
get_param(mdl,"StopTime")
ans = 
'20'

编程用法

参数StartTime
类型:字符串 | 字符向量
值:双精度标量
默认值:"0.0"

版本历史记录

在 R2006a 之前推出