文档

在可重用算法的实例之间共享数据存储

要重用算法,可以将块封装在单独的模型文件中,而不是复制和粘贴块。然后,可以使用模型块重复引用模型。每个模型块都是算法的独立实例。

默认情况下,每个实例计算并存储其自身的模型包含的信号副本。因此,这些实例不进行交互。但是,您可以使用数据存储在实例之间共享一段数据。

此示例演示如何在可重用控制算法的所有实例之间共享故障指示。任何实例都可以设置该故障,导致所有实例都采取措施清除该故障。

探索示例模型

打开示例模型sldemo_共享_数据.

控制器子系统指控制器算法模型,sldemo_共享_数据_alg,通过三个模型块多次。

打开算法模型。

数据存储存储器块故障指示表示故障指示。块参数信号属性>跨模型实例共享已选中,因此sldemo_共享_数据_alg共享指示。因为块存在于sldemo_共享_数据_alg,该指示是模型的局部指示。参考的其他模型sldemo_共享_数据_alg无法读取或写入指示。

算法子系统使用PID控制器生成执行器的位置命令(由中的块表示)sldemo_共享_数据).

故障处理子系统设置并清除故障指示。每次算法实例出现故障(受控输入超过2.63),子系统将数据存储的值增加1。每次实例清除故障,子系统将该值减少1。

模拟示例模型

模拟父模型,sldemo_共享_数据.

使用模拟数据检查器观察位置命令和控制信号。在Simulink编辑器工具栏中,单击高亮显示的按钮。万博1manbetx

在仿真过程中,控制信号中央干道经历了一场骚乱。

当前绘图保持不变

干扰在控制算法的相应实例中触发故障。由于故障,所有三个位置命令(vlv(信号)锁定在零位。

随后,当故障条件清除时,所有位置命令和控制信号返回到标称值。

这个话题有用吗?