主要内容

sim

R2026b

Simulink 模型的运行和脚本化编程仿真

描述

Simulink.SimulationInput 对象语法

out = sim(simin) 根据在一个或多个 Simulink.SimulationInput 对象上定义的属性,运行 Simulink® 模型的一个或多个仿真。

  • 如果 simin 是标量 Simulink.SimulationInput 对象,则 out 是标量 Simulink.SimulationOutput 对象。

  • 如果 simin 是由 Simulink.SimulationInput 对象组成的向量、矩阵或数组,则 out 是与 simin 具有相同维数的由 Simulink.SimulationOutput 对象组成的向量、矩阵或数组。

您可以使用 Simulink.SimulationInput 对象来配置仿真的选项和输入,包括:

  • 要仿真的模型

  • 外部输入数据的源变量或文件

  • 用于仿真的模块参数值

  • 用于仿真的模型配置参数值

当 Simulink.SimulationInput 对象的属性修改模型或模块参数值时,该值将在仿真期间修改,并在仿真结束时还原。

当您使用 Simulink.SimulationInput 对象配置程序化仿真时,您可以从使用 sim 函数转换为使用其他函数,如 parsim 和 batchsim。

有关详细信息,请参阅以编程方式运行仿真。

示例

out = sim(simin,Name=Value) 使用一个或多个名称-值参量指定的附加选项来运行仿真。

有关 Simulink.SimulationInput 语法支持的名称-值参量列表,请参阅Simulink.SimulationInput 对象语法。

示例

模型语法

out = sim(mdl) 使用在模型中指定的当前配置参数和模块参数值对模型 mdl 进行仿真。

示例

out = sim(mdl,Name=Value) 使用指定的选项仿真模型,并使用由一个或多个名称-值参量指定的选项。例如,通过将参数名称和值指定为名称-值参量,可以修改仿真的模型配置参数值。

当您通过向 sim 函数提供输入来修改模型配置参数时,这些更改将在仿真期间应用,并在仿真结束时还原。

有关模型语法支持的名称-值参量列表,请参阅模型语法。

out = sim(mdl,params) 使用由结构体 params 指定的模型配置参数值仿真模型。

示例

out = sim(mdl,configset) 使用配置集 configset 中的模型配置参数值仿真模型。

示例

示例

全部折叠

假设您有名为 IntegrateSine 的模型,该模型对 Sine Wave 模块的输出进行积分,并使用 Outport 模块记录结果。Scope 模块显示正弦波输入和积分输出。您打开模型并希望使用在模型中保存的参数值对该模型进行仿真。

Block diagram of the model IntegrateSine.

通过将模型名称指定为 sim 函数的输入对该模型进行仿真。

out = sim(mdl);

仿真使用在模型中指定的当前模型配置参数和模块参数运行。在本例中,模型停止时间为 10 秒,Sine Wave 模块的振幅为 1。

The sine wave input and integrated output displayed on a Scope block.

要在不弄脏模型的情况下修改模型中的参数以进行仿真,请使用 Simulink.SimulationInput 对象来配置仿真。当您使用 Simulink.SimulationInput 对象配置仿真时,您可以配置模型配置参数、模块参数和变量值。sim 函数在仿真期间应用在 Simulink.SimulationInput 对象上指定的配置,并在仿真完成时还原对模型的更改。

假设您要针对正弦波输入的不同振幅对在使用当前参数值运行仿真中所述的模型 IntegrateSine 进行仿真。

Block diagram of the model IntegrateSine.

要对模型进行参数化,请将 Sine Wave 模块的振幅参数的值指定为变量。打开模型。然后,在基础工作区中定义该变量,并将模型中模块参数的值指定为该变量。

mdl = "IntegrateSine";
open_system(mdl)
a = 1;
set_param(mdl + "/Sine Wave",Amplitude="a")

创建一个 Simulink.SimulationInput 对象来存储仿真配置。在 Simulink.SimulationInput 对象上指定参数和变量值以配置仿真,该仿真:

  • 使用求解器 ode45

  • 运行至 20 秒处的停止时间

  • 将仿真的正弦波输入的振幅设置为 2

mdl = "IntegrateSine";
simin = Simulink.SimulationInput(mdl);
simin = setModelParameter(simin,Solver="ode45",StopTime="20");
simin = setVariable(simin,"a",2);

通过将 Simulink.SimulationInput 对象指定为 sim 函数的输入对该模型进行仿真。

out = sim(simin);

该模型使用求解器 ode45 和正弦波振幅 2 运行仿真 20 秒。

The sine wave input and integrated output displayed on a Scope block.

在仿真完成后,工作区中的变量、求解器参数和停止时间参数还原为其原始值。

快速重启通过在第一个仿真的执行阶段之前仅编译一次模型来加速参数扫描。每次后续仿真都会使用指定的参数值重新初始化模型而无需重新编译模型,这可以显著减少运行参数扫描所需的总时间。要为使用单次调用 sim 函数运行的参数扫描启用快速重启,请将 UseFastRestart 名称-值参量指定为 "on"。

假设您要针对正弦波输入的不同振幅对在使用当前参数值运行仿真中所述的模型 IntegrateSine 进行仿真。

Block diagram of the model IntegrateSine.

要对模型进行参数化,请将 Sine Wave 模块的振幅参数的值指定为变量。打开模型。然后,在基础工作区中定义该变量,并将模型中模块参数的值指定为该变量。

mdl = "IntegrateSine";
open_system(mdl)
a = 1;
set_param(mdl + "/Sine Wave",Amplitude="a")

创建一个您要进行仿真的参数值向量。然后,创建一个 Simulink.SimulationInput 对象数组,表示参数扫描中每个仿真的配置。在 for 循环中,为每个 Simulink.SimulationInput 对象指定定义参数的变量的值。

mdl = "IntegrateSine";
amps = [1 2 3 4 5 6];
n = length(amps);
simin(1:n) = Simulink.SimulationInput(mdl);

for k = n:-1:1
    simin(k) = setVariable(simin(k),"a",amps(k));
end

使用对 sim 函数的单次调用来运行参数扫描,并将 UseFastRestart 名称-值参量指定为 "on" 来启用快速重启。

out = sim(simin,UseFastRestart="on");
[14-Apr-2026 17:31:23] Running simulations...
[14-Apr-2026 17:31:24] Completed 1 of 6 simulation runs
[14-Apr-2026 17:31:25] Completed 2 of 6 simulation runs
[14-Apr-2026 17:31:25] Completed 3 of 6 simulation runs
[14-Apr-2026 17:31:25] Completed 4 of 6 simulation runs
[14-Apr-2026 17:31:26] Completed 5 of 6 simulation runs
[14-Apr-2026 17:31:26] Completed 6 of 6 simulation runs

sim 函数将仿真结果以 Simulink.SimulationOutput 对象数组形式返回。数组中的每个 Simulink.SimulationOutput 对象都包含使用输入数组中相同索引的 Simulink.SimulationInput 对象配置的仿真的结果。例如,输出数组中索引 1 处的 Simulink.SimulationOutput 对象包含使用输入数组中索引 1 处的 Simulink.SimulationInput 对象运行的仿真的结果。

访问在第一个仿真中记录的输出数据,该仿真使用的振幅为 1。

yout1 = out(1).yout
yout1 = 
Simulink.SimulationData.Dataset 'yout' with 1 element

                         Name    BlockPath             
                         ______  _____________________ 
    1  [1x1 Signal]      output  IntegrateSine/Outport

  - Use braces { } to access, modify, or add elements using index.

要隐藏进度消息,请将 ShowProgress 名称-值参量指定为 "off"。要使用仿真管理器监控进度,请将 ShowSimulationManager 名称-值参量指定为 "on"。有关详细信息,请参阅仿真管理器。

要在不弄脏模型的情况下配置仿真,您可以指定一个或多个名称-值参量。sim 函数在仿真期间修改参数,并在仿真完成时还原对模型的更改。名称-值参量只能指定模型配置参数。要配置其他参数,例如变量和模块参数值,请改用 Simulink.SimulationInput 对象。

假设您要使用求解器 ode45 对使用当前参数值运行仿真中所述的模型 IntegrateSine 运行仿真 20 秒。

Block diagram of the model IntegrateSine.

对模型进行仿真。使用名称-值参量为仿真指定停止时间和求解器参数。

mdl = "IntegrateSine";
out = sim(mdl,StopTime="20",Solver="ode45");

要查看仿真中使用的参数值,请检查与仿真结果一起返回的仿真元数据。

slvr = out.SimulationMetadata.ModelInfo.SolverInfo.Solver
slvr =

    'ode45'
tstop = out.SimulationMetadata.ModelInfo.StopTime
tstop =

    20

要在不弄脏模型的情况下配置仿真,您可以指定一个结构体来定义您要修改的每个参数的名称和值。sim 函数在仿真期间修改指定的参数,并在仿真完成时还原对模型的更改。该结构体只能指定模型配置参数。要配置其他参数,例如变量和模块参数值,请改用 Simulink.SimulationInput 对象。

假设您要使用求解器 ode45 对使用当前参数值运行仿真中所述的模型 IntegrateSine 运行仿真 20 秒。

Block diagram of the model IntegrateSine.

创建一个包含 Solver 和 StopTime 字段的结构体。

simconfig.Solver = "ode45";
simconfig.StopTime = "20";

使用在结构体中指定的参数值对模型进行仿真。

mdl = "IntegrateSine";
out = sim(mdl,simconfig);

要查看仿真中使用的参数值,请检查与仿真结果一起返回的仿真元数据。

slvr = out.SimulationMetadata.ModelInfo.SolverInfo.Solver
slvr =

    'ode45'
tstop = out.SimulationMetadata.ModelInfo.StopTime
tstop =

    20

要将配置集应用于仿真而不弄脏模型,请使用 Simulink.ConfigSet 对象配置仿真。sim 函数在仿真期间将配置集应用于模型,并在仿真完成时还原更改。配置集仅指定模型配置参数值。要指定其他值,例如变量和模块参数值,请改用 Simulink.SimulationInput 对象。

假设您要使用求解器 ode45 对使用当前参数值运行仿真中所述的模型 IntegrateSine 运行仿真 20 秒。

Block diagram of the model IntegrateSine.

要指定仿真中要使用的参数值,请创建并配置 Simulink.ConfigSet 对象。打开模型并获取当前配置集。然后,创建该配置集的一个副本,并对该副本指定停止时间和求解器。

mdl = "IntegrateSine";
open_system(mdl)
mdlconfig = getActiveConfigSet(mdl);
simconfig = copy(mdlconfig);
set_param(simconfig,StopTime="20");
set_param(simconfig,Solver="ode45");

使用配置集 simconfig 对模型进行仿真。

out = sim(mdl,simconfig);

要查看仿真中使用的参数值,请检查与仿真结果一起返回的仿真元数据。

slvr = out.SimulationMetadata.ModelInfo.SolverInfo.Solver
slvr =

    'ode45'
tstop = out.SimulationMetadata.ModelInfo.StopTime
tstop =

    20

输入参数

全部折叠

仿真输入和配置,指定为一个 Simulink.SimulationInput 对象或一个 Simulink.SimulationInput 对象数组。Simulink.SimulationInput 对象的属性指定在仿真中使用的选项和参数值,包括:

  • 要仿真的模型

  • 外部输入数据的源变量或文件

  • 用于仿真的模块参数值

  • 用于仿真的模型配置参数值

Simulink.SimulationInput 对象的属性中定义的值将应用于仿真的模型,并在仿真结束时还原。

要仿真的模型,指定为定义模型名称的字符串或字符向量或模型句柄 (自 R2024a 起)。

示例: out = sim("vdp") 使用模型中当前配置的参数值对名为 vdp 的模型进行仿真。

数据类型: char | string

仿真中要使用的模型参数值,指定为结构体。要指定参数值,请向结构体添加一个与模型参数的编程名称匹配的字段。例如,要指定开始时间为 5 秒,停止时间为 10 秒,请创建以下结构体:

params.StartTime = "5";
params.StopTime = "10";

数据类型: struct

仿真中要使用的配置集,指定为 Simulink.ConfigSet 对象。

名称-值参数

全部展开

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

示例: out = sim(simin,UseFastRestart="on") 使用快速重启运行一组仿真。

示例: out = sim(mdl,FastRestart="on") 启用快速重启并运行模型 mdl 的仿真。

注意

sim 函数支持不同的名称-值参量,具体取决于您是将第一个输入指定为一个或多个 Simulink.SimulationInput 对象还指定为要仿真的模型的名称还是句柄。

Simulink.SimulationInput 对象语法

全部展开

启用快速重启的选项,指定为 "off" 或 "on"。快速重启通过在第一个仿真的执行阶段之前仅编译一次模型来减少运行一组仿真所需的时间。有关详细信息,请参阅How Fast Restart Improves Iterative Simulations。

当您通过指定 Simulink.SimulationInput 对象数组来运行一个模型的多个仿真时,请考虑使用快速重启。有关详细信息,请参阅Script Iterative or Batch Simulations Using Fast Restart。

仅当将 sim 函数的第一个输入指定为一个或多个 Simulink.SimulationInput 对象时,才支持此参量。

当您指定标量 Simulink.SimulationInput 对象时,此参量不起作用。要启用快速重启,请使用 setModelParameter 函数对 Simulink.SimulationInput 对象指定 FastRestart 参数。当您使用标量 Simulink.SimulationInput 对象启用快速重启时,仿真完成后快速重启在模型中保持启用状态。

示例: out = sim(simin,UseFastRestart="on");

数据类型: char | string

出现仿真错误时跳过后续仿真的选项,指定为 "off" 或 "on"。

  • "off" - 如果发生仿真错误,软件会在仿真输出中捕获错误并继续运行任何后续仿真。

    例如,假设您使用 Simulink.SimulationInput 对象数组运行五个仿真。第二个仿真期间发生错误。sim 函数在第二个仿真的输出中捕获错误并继续运行第三个、第四个和第五个仿真。

  • "on" - 如果发生仿真错误,软件会在仿真输出中捕获错误,但不运行任何后续仿真。

    例如,假设您使用一个包含五个 Simulink.SimulationInput 对象的数组运行五个仿真。第二个仿真期间发生错误。软件在第二个仿真的输出中捕获错误,并且不运行第三个、第四个和第五个仿真。sim 函数会为每个未运行的仿真返回一个空 Simulink.SimulationOutput 对象。

当您将 sim 函数的第一个输入指定为标量 Simulink.SimulationInput 对象时,此参量不起作用。 (自 R2024a 起)

仅当将 sim 函数的第一个输入指定为一个或多个 Simulink.SimulationInput 对象时,才支持此参量。

示例: out = sim(simin,StopOnError="on");

提示

  • 当第一个输入是 Simulink.SimulationInput 对象数组时,sim 函数始终为每个仿真启用 CaptureErrors。

  • 在仿真输出和元数据中查看有关所捕获错误的信息。

    • sim 函数在 Simulink.SimulationOutput 对象的 ErrorMessage 属性中捕获错误。

      msg = out.ErrorMessage;
    • 要查看诊断查看器中的错误消息,请使用 sldiagviewer.reportSimulationMetadataDiagnostics 函数。

      sldiagviewer.reportSimulationMetadataDiagnostics(out)
    • 仿真返回的 Simulink.SimulationMetadata 对象包含有关错误的附加信息,例如错误发生的仿真阶段。错误信息存储在 ExecutionInfo 属性的 ErrorDiagnostic 字段中。

      e = out.SimulationMetadata.ExecutionInfo.ErrorDiagnostic;

数据类型: char | string

指示仿真进度的选项,指定为 "off" 或 "on"。

  • "off" - 仿真运行时不显示进度消息。

  • "on" - 仿真运行时显示进度更新。

此参数的默认值取决于 sim 函数第一个输入的维度:

  • 当第一个输入是标量 Simulink.SimulationInput 对象时,默认值为 "off"。

  • 当第一个输入是 Simulink.SimulationInput 对象数组时,默认值为 "on"。

仅当将 sim 函数的第一个输入指定为一个或多个 Simulink.SimulationInput 对象时,才支持此参量。

示例: out = sim(simin,ShowProgress="on");

使用仿真管理器监控进度的选项,指定为 "off" 或 "on"。当您通过单次调用 sim 函数运行多个仿真时,请考虑使用仿真管理器。

仅当将 sim 函数的第一个输入指定为一个或多个 Simulink.SimulationInput 对象时,才支持此参量。

示例: out = sim(simin,ShowSimulationManager="on");

模型语法

全部展开

仿真中要使用的模型配置参数值,指定为由配置参数的编程名称和参数值组成的名称-值参量。

例如,要配置停止时间参数,请使用名称 StopTime 和参数值指定名称-值参量。这些命令对名为 MyModel 的模型运行 100 秒仿真。

mdl = "MyModel";
out = sim(mdl,StopTime="100");

在使用 sim 函数运行的仿真中,您可以使用名称-值参量来指定任何模型配置参数的值。您指定的配置参数值将应用于仿真,并在仿真结束时还原。在仿真模型层次结构时,您指定的配置参数值将应用于顶层模型。

仅当您将 sim 函数的第一个输入指定为要仿真的模型的名称或句柄时,才支持将模型配置参数值指定名称-值参量。

示例: out = sim("MyModel",SaveOutput="on");

提示

  • 要对 Simulink.SimulationInput 对象指定配置参数值,请使用 setModelParameter 函数。

    simin = Simulink.SimulationInput("MyModel");
    simin = setModelParameter(simin,StopTime="100");
  • 要获取模型配置参数列表,请使用 getActiveConfigSet 函数和 get_param 函数。

    configSet = getActiveConfigSet("vdp");
    configSetNames = get_param(configSet,"ObjectParameters")

    get_param 函数返回所有模型配置参数的列表,例如 StopTime、SaveTime、SaveState、SaveOutput 和 SignalLogging。

为单个仿真启用快速重启的选项,指定为 "on" 或 "off"。快速重启会在启用快速重启后为运行的第一个仿真编译模型后跳过编译和终止,从而节省迭代仿真工作流中的时间。

  • "on" - 仿真在模型中启用 FastRestart 参数并使用快速重启运行。仿真结束后,FastRestart 参数在模型中保持启用状态。

    如果模型尚未在快速重启模式下完成初始化,软件将在运行仿真之前编译模型。在仿真结束时,模型会在快速重启模式下保持初始化状态。要终止仿真,请禁用快速重启。有关详细信息,请参阅Script Iterative or Batch Simulations Using Fast Restart。

  • "off" - 仿真在模型中禁用 FastRestart 参数并在不使用快速重启的情况下运行。对于每次仿真,模型都会进行编译。

    如果模型已在快速重启模式下初始化,则 sim 函数会在编译模型之前终止先前的仿真。

默认情况下,快速重启在模型中处于禁用状态,使用 sim 函数运行的仿真不会启用快速重启。如果您未指定此参量,sim 函数将使用模型中参数的值。

仅当将 sim 函数的第一个输入指定为模型名称或句柄时,才支持此参量。

示例: out = sim("MyModel",FastRestart="on");

提示

  • 要对 Simulink.SimulationInput 对象指定此参数,请使用 setModelParameter 函数。 (自 R2024a 起)

    simin = Simulink.SimulationInput("MyModel");
    simin = setModelParameter(simin,FastRestart="on");
  • 要使用快速重启运行一组仿真,请将第一个输入参量指定为 Simulink.SimulationInput 对象数组,并改用 UseFastRestart 名称-值参量。

  • 如果您使用 Simulink 编辑器或 set_param 函数启用快速重启,则即使您没有指定此参量,使用 sim 函数运行的仿真也会使用快速重启。

  • 快速重启仿真将结果以单个 Simulink.SimulationOutput 对象形式返回,即使单一仿真输出配置参数被禁用也是如此。

数据类型: char | string

仿真模式,指定为 "normal"、"accelerator" 或 "rapid-accelerator"。如果您未指定此参量,仿真将使用在模型中指定的仿真模式。

值描述
"normal"

使用普通模式运行仿真。

普通模式仿真使用完整模型表示,并为仿真期间与模型的交互提供最佳支持。

对于涉及在各仿真之间修改模型结构的工作流,请使用普通模式。为了获得最佳结果,请使用普通模式来调试仿真。

"accelerator"

使用加速模式运行仿真。

加速模式仿真生成模型的优化表示(称为仿真目标)以用于仿真中。提高仿真性能的优化会降低仿真期间与模型交互的能力。在各加速模式仿真之间修改模型可能需要重新生成仿真目标。

在不涉及在各仿真之间对模型进行结构性更改的工作流中,使用加速模式可以加速仿真。

"rapid-accelerator"

使用快速加速模式运行仿真。

快速加速模式仿真会生成仿真目标以用于仿真。该仿真目标为仿真期间与模型的交互提供最少的支持。在各快速加速仿真之间修改模型可能需要重新编译仿真目标。

当您在仿真之间仅通过调节变量和参数值修改模型时,使用快速加速模式可实现最快的仿真执行。调节某些参数值可能需要重新编译仿真目标。

有关详细信息,请参阅选择仿真模式和Code Regeneration in Accelerated Models。

仅当将 sim 函数的第一个输入指定为模型名称或句柄时,才支持此参量。

示例: out = sim("MyModel",SimulationMode="accelerator");

提示

  • 要对 Simulink.SimulationInput 对象指定仿真模式,请使用 setModelParameter 函数。

    simin = Simulink.SimulationInput("MyModel");
    simin = setModelParameter(simin,SimulationMode="accelerator");
  • 当您从 UI(如 Simulink 编辑器)运行仿真时,可视化模块会在仿真期间更新,但当您以编程方式运行快速加速仿真时,可视化模块不会在仿真期间更新。

  • 为了防止重新编译仿真目标,您可以通过将 RapidAcceleratorUpToDateCheck 参数值指定为 "off" 来禁用快速加速最新检查。禁用最新检查后,您所做的需要重新编译仿真目标的更改将被忽略。

  • 要使用快速加速模式进行仿真,您可以将 "rapid" 指定为 "rapid-accelerator" 的部分匹配。有关 MATLAB® 中名称-值参量的详细信息,请参阅验证名称-值参量。

数据类型: char | string

发生仿真错误时捕获错误并返回仿真输出的选项,指定为 "off" 或 "on"。

行为CaptureErrors="off"(默认值)CaptureErrors="on"
出现仿真错误时发出异常

软件会在出现仿真错误时发出异常。

该异常会停止发生错误的仿真以及调用该仿真的脚本或函数(如果适用)。

软件不会在出现仿真错误时发出异常。

如果脚本或其他函数调用该仿真,则出现该错误后会停止仿真,但不会停止脚本或函数的执行。

错误报告

在 MATLAB 命令行窗口中会报告仿真期间出现的错误。

仿真输出中会捕获有关仿真错误的信息,包括消息和发生错误的仿真阶段。

仿真结果

发出异常时会立即停止仿真。sim 函数不返回仿真结果。

sim 函数返回截止到错误发生的仿真时间的仿真结果和元数据。

仅当将 sim 函数的第一个输入指定为模型名称或句柄时,才支持此参量。

示例: out = sim("MyModel",CaptureErrors="on");

提示

  • 软件在环 (SIL) 和处理器在环 (PIL) 仿真不支持此选项。

  • 要对 Simulink.SimulationInput 对象指定此参数,请使用 setModelParameter 函数。 (自 R2024a 起)

    simin = Simulink.SimulationInput("MyModel");
    simin = setModelParameter(simin,CaptureErrors="on");
  • 在仿真输出和元数据中查看有关所捕获错误的信息。

    • sim 函数在 Simulink.SimulationOutput 对象的 ErrorMessage 属性中捕获错误。

      msg = out.ErrorMessage;
    • 要查看诊断查看器中的错误消息,请使用 sldiagviewer.reportSimulationMetadataDiagnostics 函数。

      sldiagviewer.reportSimulationMetadataDiagnostics(out)
    • 仿真返回的 Simulink.SimulationMetadata 对象包含有关错误的附加信息,例如错误发生的仿真阶段。错误信息存储在 ExecutionInfo 属性的 ErrorDiagnostic 字段中。

      e = out.SimulationMetadata.ExecutionInfo.ErrorDiagnostic;

数据类型: char | string

启动编程仿真调试会话的选项,指定为 "off" 或 "on"。

仅当将 sim 函数的第一个输入指定为模型名称或句柄时,才支持此参量。

示例: out = sim("MyModel",Debug="on");

数据类型: char | string

禁用重新编译快速加速模式目标的选项,指定为 "on" 或 "off"。

  • "on" - 在每个仿真之前,软件会检查对模型的任何更改是否需要重新编译快速加速模式目标。如果某项更改需要重新编译快速加速模式目标,软件会在运行仿真之前重新编译目标。

  • "off" - 软件不检查对模型的更改是否需要重新编译快速加速模式目标,并且始终运行仿真而不重新编译目标。需要重新编译快速加速模式目标的模型更改将被忽略,并且不会反映在仿真中。

仅当将 sim 函数的第一个输入指定为模型名称或句柄时,才支持此参量。

示例: out = sim("MyModel",RapidAcceleratorUpToDateCheck="off");

提示

要对 Simulink.SimulationInput 对象指定此选项,请使用 setModelParameter 函数。

simin = Simulink.SimulationInput("MyModel");
simin = setModelParameter(simin,RapidAcceleratorUpToDateCheck="off");

数据类型: char | string

最大仿真运行时间,指定为正标量。以秒为单位指定允许仿真运行的时间。如果仿真运行时间超出您指定的值,软件将发出警告并停止仿真。例如,如果将 Timeout 指定为 30,则计算仿真结果所需的时间超过 30 秒时,软件将停止仿真并发出警告。

Timeout 参数指定仿真运行的时钟时间限制。要指定仿真的最大时间值,请使用停止时间参数。

仅当将 sim 函数的第一个输入指定为模型名称或句柄时,才支持此参量。

示例: out = sim("MyModel",Timeout=60); 运行仿真,且超时时间为 60 秒。

提示

  • 当您使用变步长求解器时,请考虑指定超时。如果仿真条件约束步长,求解器开始采用非常小的时间步,这会减慢仿真速度。

  • 要对 Simulink.SimulationInput 对象指定此选项,请使用 setModelParameter 函数。

    simin = Simulink.SimulationInput("MyModel");
    simin = setModelParameter(simin,Timeout=60);

在开始仿真前显示参数摘要的选项,指定为 "siminfo"。

仅当将 sim 函数的第一个输入指定为模型名称或句柄时,才支持此参量。

示例: out = sim("MyModel",Trace="siminfo");

数据类型: char | string

输出参量

全部折叠

仿真结果和元数据,以 Simulink.SimulationOutput 对象、Simulink.SimulationOutput 对象数组或向量形式返回。Simulink.SimulationOutput 对象包含从仿真记录的所有数据以及元数据,例如时序信息和诊断信息。

为了确保 sim 以一致的格式返回任何语法的结果,请在启用单一仿真输出配置参数的情况下保存模型。

如果满足以下所有条件,sim 函数将返回由仿真时间步组成的向量:

  • 唯一的输入参量是模型名称。

  • 单一仿真输出参数处于禁用状态。

  • 快速重启处于禁用状态。

提示

  • 要以相同格式为每个语法返回结果,请在启用单一仿真输出参数的情况下保存模型。以单个对象形式返回所有仿真数据和元数据有助于分析多个仿真的结果。

  • 要控制脚本化仿真期间的执行并调节参数值,请使用 Simulation 对象。 (自 R2024a 起)有关详细信息,请参阅以编程方式运行仿真。

  • 要同时使用 MATLAB 命令行窗口和 Simulink 编辑器与仿真交互,请使用 set_param 函数发出仿真命令。有关详细信息,请参阅以编程方式运行仿真。

  • 使用 sim 函数运行仿真时,仿真会一直运行,直到出现错误或仿真到达指定的停止时间。

  • 当您仿真停止时间为无限长的模型时,通过按 Ctrl+C 键从 MATLAB 命令行窗口停止仿真。仿真停止,仿真结果不会保存在 MATLAB 工作区中。

  • 当 StopFcn 模型回调执行时,编程仿真的结果不可用。要处理仿真结果,请改用 Simulink.SimulationInput 对象的 PostSimFcn 回调。

  • 使用“配置参数”对话框配置时间、状态和输出的记录。在建模选项卡上的设置下,点击模型设置。然后,在“配置参数”对话框中,选择数据导入/导出。

  • 要记录整个模型中的信号,请使用信号记录或记录模块,如 To Workspace 模块或 Record 模块。有关详细信息,请参阅 使用信号记录保存信号数据。

版本历史记录

在 R2006a 之前推出

全部展开