文档

使用原子子图建模冗余传感器对

该模型展示了如何使用原子子图建模一个简单的冗余传感器对。此功能允许您从驻留在不同库文件中的其他图表组成一个大型图表。

主图

主状态流图RedundantSensors由两个“链接原子子图”组成Sensor1Sensor2

默认情况下,Sensor1是活跃的。它读取输入u1并设置输出y。当它失败时,我们切换到Sensor2读取输入u2并设置输出y。当两者都失败时,我们就会陷入报警状态和产生一个名义上的零输出。

Sensor1Sensor2都是“链接原子子图”。除了链接原子子图的内容驻留在另一个库模型中的图中之外,这些状态的外观和行为都与正常的statflow状态类似。在本例中,两个链接的原子子图都对应于库图sf_atomic_sensor_lib / SingleSensor

库表

singlessensor图表为接受传感器输入的单个传感器建模u并提供过滤后的传感器输出y。它包含检测超出范围的错误的逻辑。默认情况下,传感器被假定为处于状态好吧。如果传感器读数超出范围(由从好吧FailOnce)并保持故障0.5秒,然后我们转换到失败。在这种情况下,传感器输出一个常数0。这使得传感器可以模拟故障,但忽略传感器读数中非常短暂的峰值。

  • 好吧FailOnce依赖于两个状态流程图参数

  • 有一个顶级函数叫做inFailed用于向容器图表传递传感器是否处于故障状态。

映射输入、输出和参数

冗余传感器主图有两个输入u1u2,而与链接原子子图相对应的库图只有一个输入u。在本例中,我们需要链接的子图Sensor1访问图表输入u1和链接的子图Sensor2访问图表输入u2。为了实现这一点,我们需要为链接原子子图的每个实例指定一个映射。要编辑子图映射,右键单击原子子图并选择子图表映射从上下文菜单。

在此对话框中,将符号(输入、输出和参数)从主图表映射到库图表中的符号。类似地,在库图中定义的参数可以在子图的不同实例中赋予不同的值。例如,该表列出了Sensor1Sensor2

模拟的行为

如果你模拟这个模型,你会注意到以下行为:

  • 最初,主图表的两个输入都为零。因此产出为零。

  • 当输入u1在-75和75之间变化,输出将被跟踪u1

  • 一旦u1在这些边界之外,输出是否开始跟踪u2

  • u2落在-100和100之间的范围之外,输出开始产生名义上的零输出。

你可以打开这个模型并启动模拟以查看此行为。若要更改图表的输入,请双击增益块并拖动滑块。

相关的话题