Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

模型

执行模型的特定仿真阶段

语法

[sys,x0,str,ts] = model([],[],[],'sizes');
[sys,x0,str,ts] = model([],[],[],'compile');
outputs = model(t,x,u,'outputs');
derivs = model(t,x,u,'derivs');
dstates = model(t,x,u,'update');
model([],[],[],'term');

说明

model 命令执行名为 model 的 Simulink® 模型的特定仿真阶段。命令的最后一个参数 (flag) 指定要执行的仿真阶段。请参阅动态系统的仿真阶段,了解 Simulink 软件用来对模型进行仿真所执行步骤的说明。

此命令会忽略状态转移和条件执行的影响。因此,它不适用于具有此类逻辑的模型。对于可表示为简单动态系统的模型,请使用此命令。此类系统应满足以下要求。

  • 模型中的所有状态必须都为内置的非总线数据类型。有关内置数据类型的讨论,请参阅关于 Simulink 中的数据类型

  • 如果您使用向量格式来指定状态,此命令只能访问 double 数据类型的非复数状态。

  • 状态逻辑(Stateflow、条件执行子系统等)极少。

  • 这些模型不是混合域模型。即模型中的大多数模块是内置 Simulink 模块,且不包括用户编写的 S-Function 或来自其他 Sim* 产品的模块。

对于不符合这些要求的模型,使用此命令可能导致 Simulink 生成只有通过进一步分析和简化模型才能解释的结果。

注意

状态变量 x 可以用结构体和向量形式表示。变量遵循所指定格式的限制。

此命令也不适合用来分步运行模型,例如调试模型。如果您需要检查中间结果来调试模型,请使用 Simulink Debugger。

参数

sys

模型大小数据的向量:

  • sys(1) = 连续状态的数量

  • sys(2) = 离散状态的数量

  • sys(3) = 输出的数量

  • sys(4) = 输入的数量

  • sys(5) = 保留

  • sys(6) = 直接馈通标志(1 = 是,0 = 否)

  • sys(7) = 连续、离散、固定子步和可控采样时间的数量(= ts 中的行数)

x0

包含系统状态的初始条件的向量

str

与模型状态关联的模块名称的向量。状态名称和初始条件分别在 strx0 中以相同顺序显示。

ts

m×2 矩阵,包含模型中连续、离散、固定子步和可控采样时间的采样时间(周期、偏移量)信息。

有关 Simulink 中采样时间的详细信息,请参阅采样时间的类型

outputs

模型在时间步 t 的输出。

derivs

模型在时间 t 的连续状态的导数。

dstates

模型在时间 t 的状态,以结构体或数组形式返回。当模型具有状态并且 x 为空 ([]) 或为结构体格式时,Simulink 返回一个结构体。否则,Simulink 会返回一个数组。

  • 如果返回类型是向量或数组,则 Simulink 仅返回双精度实数离散状态。

  • 如果返回类型是结构体,则 Simulink 会返回一个仅包含内置类型的连续和离散状态的结构体。非内置类型将被忽略。

t

时间步,指定为标量格式的双精度实数。

x

状态向量,指定为结构体或向量格式的双精度实数。

u

输入,指定为向量格式的双精度实数。

flag

指定要执行的仿真阶段:

  • 'sizes' 执行仿真的大小计算阶段。本阶段确定模型的输入、输出、状态向量等的大小。

  • 'compile' 执行仿真的编译阶段。编译阶段传播信号和采样时间属性。

  • 'update' 计算模型的离散状态的后续值。

  • 'outputs' 计算模型的模块在时间 t 的输出。

  • 'derivs' 计算模型的连续状态在时间步 t 的导数。

  • 'term' 会导致 Simulink 软件终止模型的仿真。

注意

outputupdatederivs 标志仅对单任务模型有效。有关单任务和多任务的详细信息,请参阅任务模式 (Simulink Coder)

示例

以下命令执行 Simulink 软件随附的 vdp 模型的编译阶段。

vdp([], [], [], 'compile')

以下命令终止在上一示例中启动的仿真。

vdp([], [], [], 'term')

注意

Simulink 不允许在编译或仿真模型的过程中关闭模型。对于除 'sizes' 阶段之外的所有阶段,在关闭模型之前,都必须使用 'term' 参数调用模型命令。

另请参阅

在 R2007a 中推出