天气: 小阴天
心情: 无味
1. 触发子系统
① Trigger模块在"Port&Subsystem"模块库中
② 三种触发事件:
上升沿触发;下降沿触发;双边沿触发(Either)
在Trigger模块的参数对话框中的Trigger Type参数下拉中选择
其中还存在一种选择function-call选项,创建的是函数调用子系统,这种触发子系统的执行是由S-Function决定的。
“Trigger Type”选项中选择"function-call"时,对话框底部的"Sample time type"选项将被激活,这个选项可以设置为"triggered"或"periodic"
若调用子系统的上层模型在每个时间步内调用一次子系统,那么选择"periodic"选项;否则选择"triggered"选项。
③勾选“Show output port"复选框可输出触发控制信号
simulink会显示出触发模块的输出端口,并输出触发信号
信号值是:
1:表示产生上升触发的信号;
-1:表示产生下降触发的信号;
2:表示函数调用触发;
0:其他类型的触发;
④ "Output data type"选项指定触发输出信号的数据类型,可以选择的类型有
auto,int8,double
auto选项可自动把输出信号的数据类型设置为信号被连接端口的数据类型,若端口不是int8或double,simulink会报错。
⑤ 触发子系统而言,都具有零阶保持的特性。
所谓零阶保持,是指输出结果保持不变。
对于触发子系统而言不能指定常值采样时间(固定采样时间),只有带有继承采样时间的模块才能够在触发子系统中应用。
2.触发使能子系统
既包含使能输入端口,又包含触发输入端口
子系统在触发事件发生的时间步上执行一次,换言之,只有当触发信号和使能信号都满足条件时,系统才执行一次。
simulink不允许一个子系统中有多于一个的Enable端口或Trigger端口
3.交替创建执行子系统
条件执行子系统与Merge模块相结合的方式创建一组交替执行的子系统,它的执行依赖于模型的当前状态。
① Merge模块是Signal Routing模块库中的模块。
Merge模块的"Block Parameter:Merge”可以把模块的多个输入信号组合成一个单个的输入信号。
模块中的"Number of inputs"参数值可任意指定输入端口的数目
"Initial output"参数为[],而且又有超过一个以上的驱动模块,那么Merge模块初始输出等于所有驱动模块中最接近于当前时刻的初始输出值。(* 注意理解)
Merge模块在任何时刻的输出值都等于当前时刻其驱动模块所计算的输出值。
Merge模块不接收信号元素被重新排序的。
② 未勾选"Allow unequal port widths"复选框后,Merge模块只接收具有相同维数的输入信号,而且只输出与输入同维数的信号;
勾选"Allow unequal port widths"复选框后,"Input port offsets"参数也将被激活,可以利用该参数为每个输入信号指定一个相对于开始输出信号的偏移量。