使用原子子图建模冗余传感器对
该模型展示了如何使用原子子图建模一个简单的冗余传感器对。此功能允许您从驻留在不同库文件中的其他图表组成一个大型图表。
主图
主状态流图RedundantSensors由两个“链接原子子图”组成Sensor1
和Sensor2
。
默认情况下,Sensor1
是活跃的。它读取输入u1
并设置输出y
。当它失败时,我们切换到Sensor2
读取输入u2
并设置输出y
。当两者都失败时,我们就会陷入报警
状态和产生一个名义上的零输出。
Sensor1
和Sensor2
都是“链接原子子图”。除了链接原子子图的内容驻留在另一个库模型中的图中之外,这些状态的外观和行为都与正常的statflow状态类似。在本例中,两个链接的原子子图都对应于库图sf_atomic_sensor_lib / SingleSensor
。
库表
singlessensor图表为接受传感器输入的单个传感器建模u
并提供过滤后的传感器输出y
。它包含检测超出范围的错误的逻辑。默认情况下,传感器被假定为处于状态好吧
。如果传感器读数超出范围(由从好吧
来FailOnce
)并保持故障0.5秒,然后我们转换到失败
。在这种情况下,传感器输出一个常数0。这使得传感器可以模拟故障,但忽略传感器读数中非常短暂的峰值。
从
好吧
来FailOnce
依赖于两个状态流程图参数低
和高
。有一个顶级函数叫做
inFailed
用于向容器图表传递传感器是否处于故障状态。
映射输入、输出和参数
冗余传感器主图有两个输入u1
和u2
,而与链接原子子图相对应的库图只有一个输入u
。在本例中,我们需要链接的子图Sensor1
访问图表输入u1
和链接的子图Sensor2
访问图表输入u2
。为了实现这一点,我们需要为链接原子子图的每个实例指定一个映射。要编辑子图映射,右键单击原子子图并选择子图表映射从上下文菜单。
在此对话框中,将符号(输入、输出和参数)从主图表映射到库图表中的符号。类似地,在库图中定义的参数可以在子图的不同实例中赋予不同的值。例如,该表列出了Sensor1
和Sensor2
。
模拟的行为
如果你模拟这个模型,你会注意到以下行为:
最初,主图表的两个输入都为零。因此产出为零。
当输入
u1
在-75和75之间变化,输出将被跟踪u1
。一旦
u1
在这些边界之外,输出是否开始跟踪u2
。当
u2
落在-100和100之间的范围之外,输出开始产生名义上的零输出。
你可以打开这个模型并启动模拟以查看此行为。若要更改图表的输入,请双击增益块并拖动滑块。