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

库:
Simulink /
Ports & Subsystems
HDL Coder /
Ports & Subsystems
描述
Trigger 模块可以添加外部信号或消息端口来控制子系统或模型的执行。要启用此功能,可在 Subsystem 模块中添加此模块,或在 Model 模块所引用模型的根级别添加此模块。
然后,对 Trigger 模块进行配置,以按下列方式之一执行子系统或模型:
当控制信号的值以您指定的方式更改时,在每个时间步执行一次。
当控制信号是来自 Stateflow® 图、Function-Call Generator 模块或 S-Function 模块的函数调用事件时,在一个时间步执行多次。
基于在控制端口接收的消息。
示例
Using Message Polling and Message Triggered Subsystems
Demonstrate and compare Message Triggered Subsystems and Message Polling Subsystems.
Model Engine Timing Using Triggered Subsystems
Model a four-cylinder spark ignition internal combustion engine from the throttle to the crankshaft output using triggered subsystems. In this example, the sldemo_engine
model is based on [1].
具有闭环控制的发动机定时模型
此示例说明如何为Model Engine Timing Using Triggered Subsystems中所述的开环发动机模型开发和实现闭环控制算法。在此示例中,模型 sldemo_enginewc
包含控制器,该控制器使用快速节气门作动器来调节发动机转速,以使负载转矩的变化产生的影响最小。该控制器是使用离散 PI 控制器实现的。
端口
输出
如果触发器类型是上升沿、下降沿、任一沿或函数调用,则端口输出一个标识控制信号的值,以标量或向量形式返回。对于输入信号的每个元素,在给定时间步的值为:
对于启动上升触发器的信号,为
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 模块的函数名称。您也可以通过在模块上编辑函数原型来指定名称。
依赖关系
要显示和启用此参数,请将触发器类型设置为函数调用,并选择视为 Simulink 函数。
编程用法
模块参数:FunctionName |
类型:字符向量 |
值:'f' | 用引号引起来的函数名称 |
默认值:'f' |
选择 Simulink Function 模块在子系统或模型内的作用域。
限定作用域 - 将函数的可访问性限制为以下作用域:
包含 Simulink Function 模块的层次级别以及更低的级别。
当前层级的上一级,但有一定限制。
全局 - 可从模型层次结构的任何部分访问函数。
端口 - 只能通过由 Function Element 模块创建的导出函数端口访问的函数。
依赖关系
要显示和启用此参数,请将触发器类型设置为函数调用,并选择视为 Simulink 函数。
编程用法
模块参数:FunctionVisibility |
类型:字符向量 |
值:'scoped' | 'global' | 'port' |
默认值:'scoped' |
对于具有端口可见性的 Simulink Function 模块,指定由 Function Element 模块创建的导出函数端口的名称,通过该端口可以调用函数。
示例: 'ServerPort'
依赖关系
要显示和启用此参数,请将触发器类型设置为函数调用,选择视为 Simulink 函数,并将函数可见性设置为端口。
编程用法
模块参数:ScopeName |
类型:字符向量 |
值:用引号引起来的端口名称 |
默认值:'' |
控制是否激活通过变体控制项参数定义的变体控制项(条件)。
选择此参数可激活子系统的变体控制项。选择此参数将:
启用变体控制项参数。
在模块上显示一个变体标志
,指示变体条件已启用。
清除此参数可反激活子系统的变体控制项。
依赖关系
要显示和启用此参数,请将触发器类型设置为函数调用,并选择视为 Simulink 函数。
编程用法
模块参数:Variant |
类型:字符向量 |
值:'off' | 'on' |
默认值:'on' |
指定变量控制项(条件)表达式,当该表达式的计算结果为 true
时执行变体 Simulink Function 模块。
(inherit)
- 变体控制项的默认值。从模型中相应的 Function Caller 模块继承变体条件。当变体控制项设置为(inherit)
时,生成预处理器条件句的值将自动从该模型中的 Function Caller 模块继承。逻辑表达式 - 逻辑(布尔)表达式或表示逻辑表达式的
Simulink.VariantExpression
对象。当表达式的计算结果为true
时将激活函数。如果要为模型生成代码,请将表达式中的变量定义为
Simulink.Parameter
对象。
依赖关系
要显示和启用此参数,请将触发器类型设置为函数调用,选择视为 Simulink 函数,然后选择启用变体条件。
编程用法
模块参数:VariantControl |
类型:字符向量 |
值:'(inherit)' | 逻辑表达式 | Simulink.VariantExpression 对象 |
默认值:'(inherit)' |
控制 C 预处理器条件语句中包含的变体选择项。
选择此参数可在为 ERT 目标生成代码时,在 C 预处理器条件语句 (#if) 中包含变体选择项。
依赖关系
要显示和启用此参数,请选择启用变体条件。
编程用法
模块参数:GeneratePreprocessorConditionals |
类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
选择当子系统或模型禁用时如何设置模块状态值。
保持 - 将模块状态保留为其当前值。
重置 - 重置模块状态值。
继承 - 使用发出函数调用的父级子系统的保持或重置设置。如果发起方的父级为模型根,则继承的设置为保持。如果触发器有多个发起方,则将所有发起方的父级设置为保持或重置。
依赖关系
要启用此参数,请将触发器类型设置为函数调用。
只有模型明确启用和禁用函数调用子系统时,此参数设置才适用。例如:
函数调用子系统位于使能子系统中。在这种情况下,模型会随父级子系统一起启用和禁用函数调用子系统。
控制函数调用子系统的函数调用发起方位于使能子系统中。在这种情况下,模型会随包含函数调用发起方的使能子系统一起启用和禁用函数调用子系统以。
函数调用发起方是与特定状态绑定的 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 端口模块的子系统或模型的函数调用之间的时间间隔。如果子系统或模型的实际调用速率与此参数指定的时间间隔不同,软件将显示错误。
Ts
- 标量,其中Ts
是时间间隔[Ts, To]
- 向量,其中Ts
是时间间隔,To
是初始时间偏移量-1
- 从控制信号中继承时间间隔
依赖关系
要启用此参数,请将触发器类型设置为函数调用,并将采样时间类型设置为周期性。
编程用法
模块参数:SampleTime |
类型:字符向量 |
值:'1' | 'Ts' | '[Ts, To]' | '-1' |
默认值:'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
列的矩阵信号-1
- 继承的维度
依赖关系
要为模型根级别的 Trigger 端口模块显示和启用此参数,请将触发器类型设置为上升沿、下降沿或任一沿。
编程用法
模块参数:PortDimensions |
类型:字符向量 |
值:'1' | '[n]' | '[m n]' | -1 |
默认值:'1' |
指定驱动触发信号的模块的各次模块方法执行之间的时间间隔。
-1
- 继承的时间间隔Ts
- 标量,其中Ts
是时间间隔[Ts, To]
- 向量,其中Ts
是时间间隔,To
是初始时间偏移量
依赖关系
要为模型根级别的 Trigger 端口模块显示和启用此参数,请将触发器类型设置为上升沿、下降沿或任一沿。
编程用法
模块参数:TriggerSignalSampleTime |
类型:字符向量 |
值:'-1' | 'Ts' | '[Ts, To]' |
默认值:'-1' |
指定从外部连接到 Model 模块并传递到模块内部的触发信号的最小值。
软件使用此值执行:
仿真范围检查。请参阅指定信号范围。
定点数据类型的自动定标。
所生成代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。请参阅Optimize using the specified minimum and maximum values (Embedded Coder)。
依赖关系
要为模型根级别的 Trigger 端口模块显示和启用此参数,请将触发器类型设置为上升沿、下降沿或任一沿。
编程用法
模块参数:OutMin |
类型:字符向量 |
值:'[]' | 用引号引起来的实数标量 |
默认值:'[]' |
指定从外部连接到 Model 模块并传递到模块内部的触发信号的最大值。
软件使用此值执行:
仿真范围检查。请参阅指定信号范围。
定点数据类型的自动定标。
所生成代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。请参阅Optimize using the specified minimum and maximum values (Embedded Coder)。
依赖关系
要为模型根级别的 Trigger 端口模块显示和启用此参数,请将触发器类型设置为上升沿、下降沿或任一沿。
编程用法
模块参数:OutMax |
类型:字符向量 |
值:'[]' | 用引号引起来的实数标量 |
默认值:'[]' |
选择从外部连接到 Model 模块并传递到模块内部的触发信号的数据类型。
继承: 自动 - 继承的数据类型
double - 双精度浮点
single - 单精度浮点
int8 - 有符号 8 位整数
uint8 - 无符号 8 位整数
int16 - 有符号 16 位整数
uint16 - 无符号 16 位整数
int32 - 有符号 32 位整数
uint32 - 无符号 32 位整数
int64 - 有符号 64 位整数
uint64 - 无符号 64 位整数
布尔 - 值为
true
或false
的布尔值fixdt(1,16) - 未定义二进制小数点位置的有符号 16 位定点数
fixdt(1,16,0) - 二进制小数点位置设置为零的有符号 16 位定点数
fixdt(1,16,2^,0) - 斜率设置为
2^0
且偏置设置为0
的有符号 16 位定点数<数据类型表达式> - 数据类型对象,例如
Simulink.NumericType
对象
您不能以数据类型表达式的形式输入 Simulink.Bus
对象的名称。
依赖关系
要为模型根级别的 Trigger 端口模块显示和启用此参数,请将触发器类型设置为上升沿、下降沿或任一沿。
编程用法
模块参数:OutDataTypeStr |
类型:字符向量 |
值:'Inherit: auto' | '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>' |
默认值:'Inherit: auto' |
选择数据类型类别并显示下拉列表以帮助您定义数据类型。
内置 - 显示数据类型和数据类型覆盖的菜单。
定点 - 显示符号性、定标和数据类型覆盖的菜单。
表达式 - 显示用于输入表达式的文本框。
依赖关系
要启用此参数,请选择“显示数据类型助手”按钮 。
控制从 MATLAB® 工作区加载数据时如何估算缺失的工作区数据。
选择此参数可在不存在对应工作区数据的时间步上对输出进行线性插值。
清除此参数可将在此类时间步上的输出设置为等于存在数据的最近时间步上的输出。
依赖关系
要为模型根级别的 Trigger 端口模块显示和启用此参数,请将触发器类型设置为上升沿、下降沿或任一沿。
编程用法
模块参数:Interpolate |
类型:字符向量 |
值:'on' | 'off' |
默认值:'on' |
模块特性
数据类型 |
|
直接馈通 |
|
多维信号 |
|
可变大小信号 |
|
过零检测 |
|
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
HDL Coder™ 提供影响 HDL 实现和综合逻辑的额外配置选项。
有关详细信息,请参阅Triggered Subsystem中的 HDL 代码生成。
此模块具有一个默认 HDL 架构。
对于触发器类型设置为函数调用或消息的 Trigger 模块,无法生成 HDL 代码。
PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。
定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。
版本历史记录
在 R2006a 之前推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)