由外部输入使能执行的子系统
库:
Simulink / Ports & Subsystems
HDL Coder / Ports & Subsystems
Enabled Subsystem 模块是一个预先配置的 Subsystem 模块,可以作为一个起点,用于创建在控制信号具有正值时执行的子系统。
使用 Enabled Subsystem 模块可以建模:
Subsystem 模块的信号输入,指定为标量、向量或矩阵。在子系统中放置一个 Inport 模块会向Subsystem 模块添加一个外部输入端口。端口标签与 Inport 模块的名称相匹配。
使用 Inport 模块可以从局部环境中接收信号。
数据类型: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image
子系统中的 Enable 模块向 Subsystem 模块添加一个外部输入端口,使该模块成为 Enabled Subsystem 模块。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point
从 Subsystem 模块输出的信号,以标量、向量或矩阵形式返回。在子系统中放置一个 Outport 模块会向 Subsystem 模块添加一个外部输出端口。端口标签与 Outport 模块的名称相匹配。
使用 Outport 模块可以向局部环境发送信号。
数据类型: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image
特性 | 描述 |
---|---|
数据类型 | Boolean \bus\ double\ enumerated \ fixed point\ half \integer\ single\ string |
直接馈通 | No |
多维信号 | Yes |
可变信号 | YES |
过零检测 | No |
补充:实际支持的数据类型或功能取决于模块实施。
库:
Simulink / Ports & Subsystems
HDL Coder / Ports & Subsystems
Enable 模块允许外部信号控制子系统或模型的执行。要启用此功能,可在 Subsystem 模块中添加该模块,或在 Model 模块所引用模型的根级别添加该模块。
如果在模型的根级别使用使能端口:
使能信号从外部连接到 Enabled Subsystem 模块的外部,并传递到子系统的内部。当您选择显示输出端口参数时,使能信号端口将添加到 Enable 模块。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | expression
一 启用时的状态 — 选择当禁用的子系统或模型被激活时要采用的模块状态
“保持” (默认) | “重置”
对于处于禁用状态的 Subsystem 模块或 Model 模块,选择在激活这些模块时其所含模块的状态变化情况。
“保持”
按其先前值保持模块状态。
“重置”
将模块状态重置为其初始条件(如果未定义,则为零)。
二 传播可变大小信号的大小
选择何时传播可变大小信号。
“仅在启用时”
当重新启用包含 Enable 端口模块的 Subsystem 模块或 Model 模块时,传播可变大小的信号。如果您选择此选项,采样时间必须为周期性采样时间。
“执行期间”
在每个时间步传播可变大小的信号。
三 显示输出端口
输出端口将 Enabled Subsystem 模块或激活的 Model 模块的外接使能信号传递到内部。
off
在 Enable 端口模块上删除输出端口。
on
在 Enable 端口模块上显示输出端口。选择此选项将允许子系统或模型处理使能信号。
四 启用过零检测
控制模型的过零检测。
on
检测过零点。
off
不检测过零点。
五 端口维度
指定从外部连接到 Model 模块并传递到模块内部的使能信号的维度。
1
标量信号。
[n]
宽度为 n 的向量信号。
[m n]
具有 m 行和 n 列的矩阵信号。
六 采样时间
指定模块方法执行之间的时间间隔。请参阅指定采样时间。
-1
从模型继承采样时间。
Ts
标量,其中 Ts 是时间间隔。
[Ts, To]
向量,其中 Ts 是时间间隔,To 是初始时间偏移量。
七 最小值
指定从外部连接到 Model 模块并传递到模块内部的使能信号的最小值。
Simulink® 使用此值来执行:
仿真范围检查。请参阅指定信号范围。
定点数据类型的自动定标。
所生成代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。请参阅Optimize using the specified minimum and maximum values (Embedded Coder)。
[]
不指定最小值。
实数标量
实数双精度标量值。
八 最大值
指定从外部连接到 Model 模块并传递到模块内部的使能信号的最大值。
Simulink 使用此值来执行:
仿真范围检查。请参阅指定信号范围。
定点数据类型的自动定标。
所生成代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。请参阅Optimize using the specified minimum and maximum values (Embedded Coder)。
[]
不指定最大值。
实数标量
实数双精度标量值。
九 数据类型
指定从外部连接到 Model 模块并传递到模块内部的使能信号的数据类型。
“double”
双精度浮点。
“single”
单精度浮点。
“int8”
有符号 8 位整数。
“uint8”
无符号 8 位整数。
“int16”
有符号 16 位整数。
“uint16”
无符号 16 位整数。
“int32”
有符号 32 位整数。
“uint32”
无符号 32 位整数。
“int64”
有符号 64 位整数。
“uint64”
无符号 64 位整数。
“boolean”
值为 true 或 false 的布尔值。
“fixdt(1,16)”
未定义二进制小数点位置的有符号 16 位定点数。
“fixdt(1,16,0)”
二进制小数点位置设置为零的有符号 16 位定点数。
“fixdt(1,16,2^,0)”
斜率设置为 2^0 且偏置设置为 0 的有符号 16 位定点数。
“”
数据类型对象,例如 Simulink.NumericType。您不能以数据类型表达式的形式输入 Simulink.Bus 对象的名称。
十 模式 — 选择数据类型类别
选择数据类型类别并显示下拉列表以帮助您定义数据类型。
“内置”
显示数据类型和“数据类型覆盖”的下拉列表。
“定点”
显示“符号性”、“定标”和“数据类型覆盖”的下拉列表。
“表达式”
显示用于输入表达式的文本框。
依存关系
要启用此参数,请选择“显示数据类型助手”按钮。
编程用法
没有等效的命令行参数。
十一 数据插值
指定从工作区加载数据时缺失的工作区数据的值。
on
在不存在对应工作区数据的时间步上对输出进行线性插值。
off
不在时间步处进行输出插值。取存在数据的最近时间步上的输出作为当前输出。
1.首先建立一个Enble subsystem
子系统内部
保持enable的模拟参数
2.创建一个累加的模型,用于功能测试
3.增加手动使能开关和示波器
将使能开关手动调节到"1",查看示波器的执行状态
如上图所示,示波器一直执行,并输出累加结果,满足预期期望
如上实验启用状态为保持,修改状态为重置
单步执行,在手动切换到1的时候,累加功能正常输出,
手动切换使能引脚的信号为0
单步执行几次后发现使能开关切换到0之后,累加功能关闭,而且输出的信号不变
重新切换使能信号为1的时候,则发现累加重新开始.
结论:“重置” 是可以重置内部的变量,比如延时中的缓存
修改输出引脚,为重置模式,初始输出为0,则在使能关闭后,则输出清零
对模型进行修改如下