Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

 

Enable Subsystem

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

enable子系统,即使能子系统,里面包含一个enable组件,外面会冒出一个信号去读取外部的使能信号。

假如创建如下的一个使能子系统,我们可以点开子系统,设置一下enable和disable时候的动作:

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

点击enable可以设置使能时的动作,点击out可以设置disable时的动作。比如我将两个都设置成reset:

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

两个都设置成held:

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

enable动作设为held,disable动作设置为reset:

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

enable动作设为reset,disable动作设置为held:

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

 

通过组合不同的enable动作与disable动作,可以使使能子系统表现出多种不同的作用。

 

 

Triggered Subsystem

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

触发子系统,和使能很像,包含一个trigger组件。同样的建立下面的模型:

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

触发子系统的动作设定,点击trigger组件即可进行设置。如设置遇到信号上升沿(rising),则保持:

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

如设置遇到信号下降沿(falling),则保持:

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

如设置不管是遇到信号上升还是下降沿(either),都保持:

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

改变trigger的条件,可以看到trigger模块的样子很形象地也变了。

 

 

Function-Call Subsystem

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

Function-Call子系统使用特定函数作为触发信号,属于触发子系统的一种,通常配合stateflow去使用。如设置如下一个stateflow chart,配合模型可以很方便地实现调度系统的设计:

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

 

Enabled and Triggered Subsystem

 

同时在子系统内加入enable和trigger即可创建触发和使能子系统。

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

触发和使能子系统内的内容只在enable不为0且监测到一个触发信号(上升沿或下降沿)时执行。

 

 

 

Resettable subsystems

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

通过在子系统内放置一个reset组件即可创建一个reset子系统,作用是当收到触发信号时,就重置子系统内的行为,用如下的模型来看看它的效果:

Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)Simulink学习——子系统(Enable Subsystem、Triggered Subsystem、Function-Call Subsystem和Resettable subsystems)

可以看到每次下降沿,最下面的积分模块输出就会发生一次重置,重新开始积分。