Main Content

Trigger

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

  • Trigger block

库:
Simulink / Ports & Subsystems
HDL Coder / Ports & Subsystems

描述

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

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

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

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

  • 基于在控制端口接收的消息。

示例

端口

输出

全部展开

如果触发器类型上升沿下降沿任一沿函数调用,则端口输出一个标识控制信号的值,以标量或向量形式返回。对于输入信号的每个元素,在给定时间步的值为:

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

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

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

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

如果触发器类型消息,则端口输出从控制端口接收的消息中提取的数据。

依存关系

要启用此端口,请选择显示输出端口或从触发器类型列表中选择消息

数据类型: double | int8

参数

全部展开

常设

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

上升沿

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

下降沿

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

任一沿

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

函数调用

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

消息

当消息在控制端口上可用时,触发子系统的执行。

注意

如果触发器类型设置为消息,则该模块必须放在子系统内部。

编程用法

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

选择此参数可通过配置 Subsystem 模块,使其成为可使用参量从函数调用方调用的模块,以此来创建 Simulink Function 模块。Trigger 模块必须位于子系统内。您可以编辑显示在模块上的函数原型,以指定模块的输入和输出参量。

清除此参数以删除配置。

依存关系

要启用此参数,请从触发器类型列表中选择函数调用

编程用法

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

指定是否为包含此 Trigger 端口模块的子系统异步执行 Simulink Function 模块。

  • 选中此复选框可模拟异步执行,其中调用方(客户端)请求调用函数(服务器)。该函数根据在调度编辑器中定义的顺序执行,然后将输出参量返回到调用方。

  • 清除此复选框可模拟同步执行,其中调用方调用函数,函数立即运行,然后将输出参量返回到调用方。

依存关系

要显示并启用此参数,请从触发器类型列表中选择函数调用,然后选择视为 Simulink 函数参数。然后,从函数可见性列表中,选择端口

编程用法

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

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

f

Simulink Function 模块的默认名称。

函数名称

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

依存关系

要显示并启用此参数,请从触发器类型列表中选择函数调用,然后选中视为 Simulink 函数复选框。

编程用法

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

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

限定作用域

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

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

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

全局

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

端口

只能通过由 Function Element 模块创建的导出函数端口访问的函数。

依存关系

要显示并启用此参数,请从触发器类型列表中选择函数调用,然后选中视为 Simulink 函数复选框。

编程用法

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

对于具有端口可见性的 Simulink Function 模块,指定由 Function Element 模块创建的导出函数端口的名称,通过该端口可以调用函数。

示例: 'ServerPort'

依存关系

要显示并启用此参数,请从触发器类型列表中选择函数调用,然后选中视为 Simulink 函数复选框。然后,从函数可见性列表中,选择端口

编程用法

模块参数ScopeName
类型:字符向量
值:'PortName'
默认值:''

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

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

  • 启用变体控制项参数。

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

清除此参数可反激活子系统的变体控制项。

依存关系

要显示并启用此参数,请从触发器类型列表中选择函数调用,然后选中视为 Simulink 函数复选框。

编程用法

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

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

(inherit)

变体控制项的默认值。从模型中相应的 Function Caller 模块继承变体条件。当变体控制项设置为 (inherit) 时,生成预处理器条件句的值将自动从该模型中的 Function Caller 模块继承。

逻辑表达式

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

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

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

依存关系

要显示并启用此参数,请从触发器类型列表中选择函数调用,选中视为 Simulink 函数复选框,然后选中启用变体条件复选框。

编程用法

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

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

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

依存关系

要显示并启用此参数,请选中启用变体条件复选框。

编程用法

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

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

保持

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

重置

重置模块状态值。

inherit

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

依存关系

要启用此参数,请从触发器类型列表中选择函数调用

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

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

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

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

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

编程用法

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

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

执行期间

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

仅在启用时

仅在执行 Action Port 模块时,或在执行包含 Enable 端口、Trigger 端口且触发器类型设置为函数调用Subsystem 模块或 Model 模块时,传播可变大小的信号。如果您选择此选项,采样时间必须为周期性采样时间。

依存关系

要为 Trigger 端口模块显示并启用此参数,请从触发器类型列表中选择函数调用

编程用法

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

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

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

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

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

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

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

清除此参数可删除输出端口。

依存关系

要显示和启用此参数,请从触发器类型列表中选择消息以外的选项。

编程用法

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

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

auto

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

double

双精度值。

int8

整数值

依存关系

要启用此参数,请选中显示输出端口复选框。

Trigger 模块将忽略定点工具的数据类型覆盖设置。

编程用法

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

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

已触发

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

周期性

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

依存关系

要启用此参数,请从触发器类型列表中选择函数调用

编程用法

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

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

-1

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

Ts

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

[Ts, To]

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

依存关系

要启用此参数,请从触发器类型列表中选择函数调用,并从采样时间类型列表中选择 periodic

编程用法

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

选择此参数可检测过零。

依存关系

要启用此参数,请从触发器类型列表中选择上升沿下降沿任一沿

编程用法

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

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

兼容性(首次计算时不触发)

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

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

正值

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

负值

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

依存关系

要显示并激活此参数,请从触发器类型列表中选择上升沿下降沿任一沿

编程用法

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

对于由消息输入触发的子系统,请指定执行时间。

在消息可用时

每当控制端口上有一个或多个消息可用时便触发子系统的执行并拉取消息。

在采样时间命中点上

在每个时间步,检查控制端口上是否有可用的消息。如果有,则拉取一条消息并触发子系统的执行。如果没有可用消息,则不在该时间步执行子系统。

依存关系

要显示和激活此参数,请从触发器类型列表中选择消息

编程用法

模块参数TriggerTime
类型:字符向量
'on message available' | 'on sample time hit'
默认值'on message available'

对于由消息可用性触发的子系统,请指定执行模式。

对于即时模式,请清除此复选框。在即时模式下,一旦控制端口上有消息可用,子系统就会执行,这会将消息推送到子系统而没有队列缓冲消息。

对于调度模式,请选中此复选框。调度模式允许子系统在同一时间步上的特定 Simulink 任务后执行。

依存关系

要显示和激活此参数,请从触发器类型列表中选择消息,然后从触发时间列表中选择在消息可用时

编程用法

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

信号属性

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

1

标量信号。

[n]

宽度为 n 的向量信号。

[m n]

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

依存关系

要为模型根级别的 Trigger 端口模块显示并启用此参数,请从触发器类型列表中选择上升沿下降沿任一沿

编程用法

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

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

-1

继承时间间隔。

Ts

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

[Ts, To]

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

依存关系

要为模型根级别的 Trigger 端口模块显示并启用此参数,请从触发器类型列表中选择上升沿下降沿任一沿

编程用法

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

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

Simulink 使用此值来执行:

[]

不指定最小值。

实数标量

实数标量值。

依存关系

要为模型根级别的 Trigger 端口模块显示并启用此参数,请从触发器类型列表中选择上升沿下降沿任一沿

编程用法

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

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

Simulink 使用此值来执行:

[]

不指定最大值。

实数标量

实数标量值。

依存关系

要为模型根级别的 Trigger 端口模块显示并启用此参数,请从触发器类型列表中选择上升沿下降沿任一沿

编程用法

模块参数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 位定点数。

<数据类型表达式>

数据类型对象,例如 Simulink.NumericType。您不能以数据类型表达式的形式输入 Simulink.Bus 对象的名称。

依存关系

要为模型根级别的 Trigger 端口模块显示并启用此参数,请从触发器类型列表中选择上升沿下降沿任一沿

编程用法

模块参数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'

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

内置

显示数据类型和数据类型覆盖的下拉列表。

定点

显示符号性定标数据类型覆盖的下拉列表。

表达式

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

依存关系

要启用此参数,请选择“显示数据类型助手”按钮

编程用法

没有等效的命令行参数。

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

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

清除此参数可将在此类时间步上的输出设置为等于存在数据的最近时间步上的输出。

依存关系

要为模型根级别的 Trigger 端口模块显示并启用此参数,请从触发器类型列表中选择上升沿下降沿任一沿

编程用法

模块参数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 之前推出