主要内容

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

为了重用算法,您可以将它们封装在单独的模型文件中,而不是复制和粘贴这些块。然后,您可以使用model块反复引用模型。每个Model块都是算法的一个独立实例。

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

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

探索范例模型

打开示例模型sldemo_shared_data

控制器子系统是指控制器算法模型,sldemo_shared_data_alg,多次通过三个模型块。

打开算法模型。

数据存储内存块fault_ind表示错误指示。block参数信号属性>跨模型实例共享是选中的,那么所有的实例sldemo_shared_data_alg分享建议。因为该块存在于sldemo_shared_data_alg时,该指示是模型的局部指示。其他模型sldemo_shared_data_alg无法读取或写入指示。

算法子系统使用PID控制器为执行器生成位置命令(用中块表示)sldemo_shared_data).

故障处理子系统设置并清除故障指示。每当该算法的一个实例遇到故障情况(受控输入超过2.63),子系统将数据存储的值加1。每当一个实例清除其故障条件时,子系统将该值减去1。

模拟示例模型

模拟父模型,sldemo_shared_data

使用模拟数据检查器观察位置命令和控制信号。在“Simul金宝appink编辑器”工具栏中,单击突出显示的按钮。

模拟进行到一半时,受控信号conc_mid经历干扰。

目前的地块

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

之后,当故障条件清除时,所有的位置命令和控制信号恢复到标称值。

另请参阅

相关的话题