主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

在可重用算法的多个实例之间共享数据

此示例显示如何使用 Data Store Memory 模块在模型中的算法的多个实例之间共享数据。

在这个示例中,多个 Model 模块引用了一个代表故障处理算法的模型。每个 Model 模块都是该算法的独立实例。每个实例都会计算并存储模型所包含的信号的副本。

由于模型实例不交互,因此本示例使用数据存储在可重用控制算法的所有实例之间共享数据(在本例中为故障指示)。任何模型实例都可以设置故障,从而导致所有模型实例采取行动来清除它。

打开模型

顶层模型 sldemo_shared_data 代表闭环反馈系统。该循环中的对象由具有三个状态的状态空间模型表示。每个状态都由一个信号表示。来自工厂的输出信号是包含控制器算法的 Model 模块的输入。在该模型中,工厂输出信号与 Model 模块输入端口一一映射。

控制器算法由模型 sldemo_shared_data_alg 表示,由三个 Model 模块引用。sldemo_shared_data_alg 模型内的 Data Store Memory 模块使用变量 fault_ind 存储故障指示。要在多个模型实例之间共享故障指示数据,请在 Data Store Memory 模块对话框中选择信号属性 > 在模型实例之间共享

由于数据存储存在于 sldemo_shared_data_alg 中,因此指示对于模型来说是本地的。因此,引用 sldemo_shared_data_alg 的其他模型无法读取或写入该指示。

Algorithm 子系统使用 PID 控制器为作动器生成位置命令。

Fault Handling 子系统设置和清除故障指示。每当算法实例遇到故障情况(控制器输入超过 2.63)时,子系统就会将数据存储的值增加 1。每次实例清除其故障条件(控制器输入小于 0.87)时,子系统就会将数据存储的值减少 1。

仿真模型

仿真父模型 sldemo_shared_data。使用仿真数据检查器观察位置命令和控制信号。在 t = 7.5 s 时,Controller_instance2 信号受到干扰。

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

随后,当故障情况清除时,所有位置命令和控制信号都会恢复到标称值。

另请参阅

| |

主题