要重用算法,可以将块封装在单独的模型文件中,而不是复制和粘贴块。然后,可以使用模型块重复引用模型。每个模型块都是算法的独立实例。
默认情况下,每个实例计算并存储其自身的模型包含的信号副本。因此,这些实例不进行交互。但是,您可以使用数据存储在实例之间共享一段数据。
此示例演示如何在可重用控制算法的所有实例之间共享故障指示。任何实例都可以设置该故障,导致所有实例都采取措施清除该故障。
打开示例模型sldemo_共享_数据
.
控制器子系统指控制器算法模型,sldemo_共享_数据_alg
,通过三个模型块多次。
打开算法模型。
数据存储存储器块故障指示
表示故障指示。块参数信号属性>跨模型实例共享已选中,因此sldemo_共享_数据_alg
共享指示。因为块存在于sldemo_共享_数据_alg
,该指示是模型的局部指示。参考的其他模型sldemo_共享_数据_alg
无法读取或写入指示。
算法子系统使用PID控制器生成执行器的位置命令(由中的块表示)sldemo_共享_数据
).
故障处理子系统设置并清除故障指示。每次算法实例出现故障(受控输入超过2.63),子系统将数据存储的值增加1。每次实例清除故障,子系统将该值减少1。
模拟父模型,sldemo_共享_数据
.
使用模拟数据检查器观察位置命令和控制信号。在Simulink编辑器工具栏中,单击高亮显示的按钮。万博1manbetx
在仿真过程中,控制信号中央干道
经历了一场骚乱。
当前绘图保持不变
干扰在控制算法的相应实例中触发故障。由于故障,所有三个位置命令(vlv
(信号)锁定在零位。
随后,当故障条件清除时,所有位置命令和控制信号返回到标称值。