模拟金宝app®模型将全局变量实现为数据存储,或数据存储存储器(金宝appSimulink)块或作为金宝app模拟信号
(金宝appSimulink)物体。您可以使用数据存储在多个Simulink块之间共享数据,而无需显式输入或输出连接将数据从一个块传递到另一个块。状态流金宝app®图表通过象征性地读取和写入数据存储存储器,与Simulink金宝app模型共享全局数据。
要从图表访问全局数据,请将Stateflow数据对象绑定到Simulink数据存储。创建绑定后,Stateflow数据对象将成为Simuli金宝appnk数据存储内存的符号表示形式。然后可以使用此符号对象存储和检索全局数据。Stateflow可以访问Simulink中具有无界维度的数据存储。
状态流程图可以与本地和全局数据存储接口。
本地数据存储对一个模型中的所有块都可见。若要与本地数据存储交互,图表必须位于定义本地数据存储的模型中。您可以通过添加数据存储存储器块到模型或通过创建Simulink信号对象。金宝app
全局数据存储的范围更广,可以跨越模型引用边界。要与全局数据存储交互,图表必须位于定义全局数据存储的顶部模型中,或者位于顶部模型引用的模型中。将全局数据存储实现为Simulink信号对象。金宝app
有关详细信息,请参阅本地和全局数据存储(金宝appSimulink).
要定义Simulink数据存金宝app储内存,请添加数据存储存储器块到模型或创建Simulink信号对象。有关详细信息,请参阅金宝app带有数据存储内存块的数据存储(金宝appSimulink)和带有信号对象的数据存储(金宝appSimulink).
将数据对象添加到状态流程图,如中所述添加状态流数据.
设定名称属性作为要将Stateflow数据对象绑定到的Simul金宝appink数据存储内存的名称。
设定范围财产数据存储存储器
.
Stateflow数据对象从绑定对象的数据存储内存继承所有附加属性。
同一模型层次结构中可以存在多个同名的本地和全局数据存储。在这种情况下,Stateflow数据对象绑定到最近的祖先数据存储。
将Stateflow数据对象绑定到Simulink数据存储后,可以在状态和转换操作中存金宝app储和检索全局数据。数据对象充当全局变量,您可以通过其符号名引用该变量。将数值存储在此变量中时,即写入Simulink数据存储存储器。从该变量中检索数值时,您正在从数据存储内存中读取。
例如,在此图表中,状态操作从名为myglobal
.
将Stateflow数据对象绑定到数据存储时,Stateflow对象将从数据存储继承其所有属性。为确保属性正确传播,在创建Simulink数据存储时:金宝app
指定一种数据类型,而不是汽车
.
尽量减少自动模式属性的使用。
要从多个模型访问全局数据存储,请执行以下操作:
为了避免算法延迟,在读取数据之前先写入数据存储内存。否则,读取操作将检索存储在上一时间步中的值,而不是计算并存储在当前时间步中的值。当未连接的块在以不同速率运行时共享全局数据时:
将读操作与写操作分离到单独的块中。
为块分配优先级,以便模型在读取块之前调用写块。有关详细信息,请参阅控制和显示执行顺序(金宝appSimulink).
要避免在同一时间步中意外发生多个读取和写入,请启用数据存储存储器阻止诊断到:
先读后写检测
读后检测写
检测一次又一次写入
如果使用数据存储内存块作为跨时间步累积值的持久全局存储区域,请通过禁用数据存储存储器块诊断。有关详细信息,请参阅数据存储诊断(金宝appSimulink).
金宝app模拟信号
(金宝appSimulink)|数据存储存储器(金宝appSimulink)|数据存储读取(金宝appSimulink)|数据存储写入(金宝appSimulink)