本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

Trigger

向子系统或模型添加触发器或函数端口

  • 库:
  • Simulink / Ports & Subsystems

    HDL Coder / Ports & Subsystems

说明

Trigger 模块可以添加外部信号来控制子系统或模型的执行。要启用此功能,可在 Subsystem 模块中添加此模块,或在 Model 模块所引用模型的根级别添加此模块。

然后,对 Trigger 模块进行配置,以按下列方式之一执行子系统或模型:

  • 当控制信号的值以您指定的方式更改时,在每个时间步执行一次。

  • 当控制信号是来自 Stateflow® 图、Function-Call Generator 模块或 S-Function 模块的函数调用事件时,在一个时间步执行多次。

端口

输出

全部展开

标识控制信号的值,以标量或向量形式返回。对于输入信号的每个元素,在给定时间步的值为:

  • 对于启动上升触发器的信号,为 1

  • 对于启动下降触发器的信号,为 -1

  • 对于函数调用事件,为 2

  • 对于所有其他情况,为 0

依存关系

要启用此端口,请选择 Show output port

数据类型: double | int8

参数

全部展开

Main

选择执行子系统或模型的控制信号的类型。

rising

当控制信号从负值或零值上升到正值时,触发子系统或模型的执行。如果初始值为负值,信号上升到零则触发执行。

falling

当控制信号从正值或零值下降到负值时,触发子系统或模型的执行。如果初始值为正值,则信号下降到零会触发执行。

either

当控制信号上升或下降时,触发子系统或模型的执行。

function-call

当控制信号接收到来自 Stateflow 图、Function-Call Generator 模块或 S-function 模块的函数调用事件时,执行子系统或模型。

编程用法

模块参数TriggerType
类型:字符向量
'rising' | 'falling' | 'either' | 'function-call'
默认值:'rising'

通过配置 Subsystem 模块,使其成为可使用参数从函数调用方调用的模块,以此来创建 Simulink Function 模块。

off

删除配置。

on

Subsystem 模块配置为 Simulink Function 模块。Trigger 模块必须位于子系统内。

您可以编辑显示在模块上的函数原型,以指定模块的输入和输出参数。

依存关系

要启用此参数,请从 Trigger Type 列表中选择 “function-call”。

编程用法

模块参数IsSimulinkFunction
类型:字符向量
值:'off' | 'on'
默认值:'off'

指定 Simulink Function 模块的函数名称。您也可以通过在模块上编辑函数原型来指定名称。

f

Simulink Function 模块的默认名称。

function name

显示在 Simulink Function 模块上的函数名称。

依存关系

要显示并启用此参数,请从 Trigger type 列表中选择 “function-call”,然后选中 Treat as a Simulink Function 复选框。

编程用法

模块参数FunctionName
类型:字符向量
'f' | '<function name>'
默认值:'f'

控制是否激活通过 Variant Control 参数定义的变体控制项(条件)。

off

禁用子系统的变体控制项。

on

激活子系统的变体控制项。选择此参数将:

  • 启用 Variant control 参数。

  • 在模块上显示一个变体标志 ,指示变体条件已启用。

依存关系

要显示并启用此参数,请从 Trigger type 列表中选择 “function-call”,然后选中 Treat as a Simulink Function 复选框。

编程用法

模块参数Variant
类型:字符向量
值:'off' | 'on'
默认值:'off'

指定变量控制项(条件)表达式,当该表达式的计算结果为 true 时执行变体 Simulink Function 模块。

(inherit)

变体控制项的默认值。从模型中相应的 Function Caller 模块继承变体条件。当 Variant Control 设置为 (inherit) 时,Generate preprocessor conditionals 的值将自动从该模型中的 Function Caller 模块继承。

逻辑表达式

逻辑(布尔)表达式或表示逻辑表达式的 Simulink.Variant 对象。

当表达式的计算结果为 true 时将激活函数。

如果要为模型生成代码,请将表达式中的变量定义为 Simulink.Parameter 对象。

依存关系

要显示并启用此参数,请从 Trigger type 列表中选择 “function-call”,选中 Treat as a Simulink Function 复选框,然后选中 Enable variant condition 复选框。

编程用法

模块参数VariantControl
类型:字符向量
值:'(inherit)' |<logical expression> | Simulink.Variant object
默认值:'(inherit)'

控制 C 预处理器条件语句中包含的变体选择项。

off

不在 C 预处理器条件语句中包含变体选择项。

on

在为 ERT 目标生成代码时,在 C 预处理器条件语句 (#if) 中包含变体选择项。

依存关系

要显示并启用此参数,请选中 Enable variant condition 复选框。

编程用法

模块参数GeneratePreprocessorConditionals
类型:字符向量
值:'off' | 'on'
默认值:'off'

选择 Simulink Function 模块在子系统或模型内的作用域。

scoped

将函数的可访问性限制为以下范围:

  • 包含 Simulink Function 模块的层次级别以及更低的级别。

  • 当前层级的上一级,但有一定限制。

global

可从模型层次结构的任何部分访问函数。

依存关系

要显示并启用此参数,请从 Trigger type 列表中选择 “function-call”,然后选中 Treat as a Simulink Function 复选框。

编程用法

模块参数FunctionVisibility
类型:字符向量
'scoped' | 'global'
默认值:'scoped'

选择当子系统或模型禁用时如何设置模块状态值。

held

将模块状态保留为其当前值。

reset

重置模块状态值。

inherit

使用发起函数调用的父级子系统的 heldreset 设置。如果发起方的父级为模型根,则继承的设置为 held。如果触发器有多个发起方,则将所有发起方的父级设置为 heldreset

依存关系

要启用此参数,请从 Trigger Type 列表中选择 “function-call”。

只有模型明确启用和禁用函数调用子系统时,此参数设置才适用。例如:

  • 函数调用子系统位于使能子系统中。在这种情况下,模型会随父级子系统一起启用和禁用函数调用子系统。

  • 控制函数调用子系统的函数调用发起方位于使能子系统中。在这种情况下,模型会随包含函数调用发起方的使能子系统一起启用和禁用函数调用子系统以。

  • 函数调用发起方是与特定状态绑定的 Stateflow 事件。请参阅Control Function-Call Subsystems by Using bind Actions (Stateflow)

  • 函数调用发起方是明确启用和禁用函数调用子系统的 S-Function。有关示例,请参阅 ssEnableSystemWithTid

编程用法

模块参数StatesWhenEnabling
类型:字符向量
值:'held' | 'reset'| 'inherit'
默认值:'held'

选择何时传播可变大小的信号。

During execution

在每个时间步传播可变大小的信号。

Only when enabling

仅在执行 Action Port 模块时,或在执行包含 Enable 端口、Trigger 端口且 Trigger type 设置为 “function- call” 的 Subsystem 模块或 Model 模块时,传播可变大小的信号。如果您选择此选项,采样时间必须为周期性采样时间。

依存关系

要为 Trigger 端口模块显示并启用此参数,请从 Trigger type 列表中选择 “Function-call”。

编程用法

模块参数PropagateVarSize
类型:字符向量
'During execution' | 'Only when enabling'
默认值:'During execution'

控制是否为标识触发信号或函数调用事件信号的信号显示输出端口。

off

删除输出端口。

on

显示输出端口并确定哪个信号启动了触发器信号或函数调用事件。输出端口信号的宽度即为控制信号的宽度。信号值:

  • 对于启动上升触发器的信号,为 1

  • 对于启动下降触发器的信号,为 -1

  • 对于函数调用事件,为 2

  • 对于所有其他情况,为 0

编程用法

模块参数ShowOutputPort
类型:字符向量
值:'off' | 'on'
默认值:'off'

为标识触发信号或函数调用事件信号的信号选择输出端口的数据类型。

auto

数据类型与输出所连接的端口相同。

double

双精度值。

int8

整数值

依存关系

要启用此参数,请选中 Show output port 复选框。

Trigger 模块将忽略 Fixed-Point Tool 的 Data type override 设置。

编程用法

模块参数OutputDataType
类型:字符向量
'auto' | 'double' | 'int8'
默认值'auto'

选择子系统或模型的调用速率。

triggered

适用于包含非周期性函数调用的应用程序。函数调用发起方可以在每个时间步执行一次或多次触发的(非周期性)函数调用子系统,并且可以提供一系列非周期性函数调用事件。

periodic

函数调用发起方在每个时间步只能执行一次周期性函数调用系统,并且必须提供一系列周期性函数调用事件。Stateflow 图就是一个函数调用发起方示例。

依存关系

要启用此参数,请从 Trigger Type 列表中选择 “function-call”。

编程用法

模块参数SampleTimeType
类型:字符向量
'triggered' | 'periodic'
默认值'triggered'

指定对包含此 Trigger 端口模块的子系统或模型的函数调用之间的时间间隔。如果子系统或模型的实际调用速率与此参数指定的时间间隔不同,Simulink® 将显示错误。

-1

从控制信号中继承时间间隔。

Ts

标量,其中 Ts 是时间间隔。

[Ts, To]

向量,其中 Ts 是时间间隔,To 是初始时间偏移量。

依存关系

要启用此参数,请从 Trigger type 列表中选择 “function-call”,并从 Sample time type 列表中选择 periodic

编程用法

模块参数SampleTime
类型:字符向量
'-1' | 'Ts'| '[Ts, To]'
默认值'-1'

控制过零检测。

on

检测过零点。

off

不检测过零点。

依存关系

要启用此参数,请从 Trigger type 列表中选择 “rising”、“falling” 或 “either”。

编程用法

模块参数:ZeroCross
类型:字符向量
值: 'on' | 'off'
默认值:'on'

选择触发器控制信号的初始状态。

compatibility (no trigger on first evaluation)

在第一次计算触发信号时不触发。如果选择此选项并且 Trigger 模块位于状态已重置的子系统中,则该模块不会重置。

zero

零。适合计算在第一个时间步上升或下降的触发信号。

positive

正值。适合计算在第一个时间步下降的触发信号。

negative

负值。适合计算在第一个时间步上升的触发信号。

依存关系

要显示并激活此参数,请从 Trigger type 列表中选择 “rising”、“falling” 或 “either”。

编程用法

模块参数InitialTriggerSignalState
类型:字符向量
'compatibility (no trigger on first evaluation)' | 'zero' | 'positive' | 'negative'
默认值'compatibility (no trigger on first evaluation)'

Signal Attribute

指定从外部连接到 Model 模块并传递到模块内部的触发信号的维度。

1

标量信号。

[n]

宽度为 n 的向量信号。

[m n]

具有 m 行和 n 列的矩阵信号。

依存关系

要为模型根级别的 Trigger 端口模块显示并启用此参数,请从 Trigger type 列表中选择 “rising”、“falling” 或 “either”。

编程用法

模块参数PortDimensions
类型:字符向量
'1' | '[n]' | '[m n]'
默认值'1'

指定驱动触发信号的模块的各次模块方法执行之间的时间间隔。

-1

继承时间间隔。

Ts

标量,其中 Ts 是时间间隔。

[Ts, To]

向量,其中 Ts 是时间间隔,To 是初始时间偏移量。

依存关系

要为模型根级别的 Trigger 端口模块显示并启用此参数,请从 Trigger type 列表中选择 “rising”、“falling” 或 “either”。

编程用法

模块参数TriggerSignalSampleTime
类型:字符向量
'-1' | 'Ts'| '[Ts, To]'
默认值'-1'

指定从外部连接到 Model 模块并传递到模块内部的触发信号的最小值。

Simulink 使用此值来执行:

[]

不指定最小值。

实数标量

实数标量值。

依存关系

要为模型根级别的 Trigger 端口模块显示并启用此参数,请从 Trigger type 列表中选择 “rising”、“falling” 或 “either”。

编程用法

模块参数OutMin
类型:字符向量
'[]' | '<real scalar>'
默认值'[]'

指定从外部连接到 Model 模块并传递到模块内部的触发信号的最大值。

Simulink 使用此值来执行:

[]

不指定最大值。

实数标量

实数标量值。

依存关系

要为模型根级别的 Trigger 端口模块显示并启用此参数,请从 Trigger type 列表中选择 “rising”、“falling” 或 “either”。

编程用法

模块参数OutMax
类型:字符向量
'[]' | '<real scalar>'
默认值'[]'

选择从外部连接到 Model 模块并传递到模块内部的触发信号的数据类型。

double

双精度浮点。

single

单精度浮点。

int8

有符号 8 位整数。

uint8

无符号 8 位整数。

int16

有符号 16 位整数。

uint16

无符号 16 位整数。

int32

有符号 32 位整数。

uint32

无符号 32 位整数。

int64

有符号 64 位整数。

uint64

无符号 64 位整数。

boolean

值为 truefalse 的布尔值。

fixdt(1,16)

未定义二进制小数点位置的有符号 16 位定点数。

fixdt(1,16,0)

二进制小数点位置设置为零的有符号 16 位定点数。

fixdt(1,16,2^,0)

斜率设置为 2^0 且偏置设置为 0 的有符号 16 位定点数。

<data type expression>

数据类型对象,例如 Simulink.NumericType。不要将总线对象指定为表达式。

依存关系

要为模型根级别的 Trigger 端口模块显示并启用此参数,请从 Trigger type 列表中选择 “rising”、“falling” 或 “either”。

编程用法

模块参数OutDataTypeStr
类型:字符向量
'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
默认值'double'

选择数据类型类别并显示下拉列表以帮助您定义数据类型。

Built in

显示数据类型和 Data type override 的下拉列表。

Fixed point

显示 SignednessScalingData type override 的下拉列表。

Expression

显示用于输入表达式的文本框。

依存关系

要启用此参数,请选择 Show data type assistant 按钮

编程用法

没有等效的命令行参数。

控制从 MATLAB® 工作区加载数据时如何估算缺失的工作区数据。

on

在不存在对应工作区数据的时间步上对输出进行线性插值。

off

不在时间步上对输出进行插值。取存在数据的最近时间步上的输出作为当前输出。

依存关系

要为模型根级别的 Trigger 端口模块显示并启用此参数,请从 Trigger type 列表中选择 “rising”、“falling” 或 “either”。

编程用法

模块参数Interpolate
类型:字符向量
'on' | 'off'
默认值'on'

模型示例

模块特性

数据类型

Boolean | double | enumerated | fixed point | integer | single

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

在 R2006a 之前推出