两年前写的一篇文章,先拿来撑下门面。后面可能会出一个基于模型开发相关的系列,欢迎大家关注。
MBD过程中,有时候需要用到Data Store Read/Write模块。
1,什么时候必须用该模块
在simulink建模过程中,不提倡使用Data Store Read/Write 模块,因为它会降低模型可读性,且给后续的模型测试带来问题。但是,有时候为了实现某些策略,又不得不使用该模块,比如:需要在一个模块中实现对同一个全局变量的读取和赋值。举个项目实例:
空调控制器有一条需求,空调关闭前,需要记录当前鼓风机的挡位(比如有0挡,1挡,2挡,3挡),以备下次打开空调时,鼓风机能直接工作在上次关闭前的挡位上。
如果空调鼓风机挡位用一个全局变量BlowerLevel表示,那么为了在simulink中实现上面的的需求,则需要用到DataStoreRead/Write.
再比如,一个芯片供应商提供的一段demo代码:
Fig 1 芯片供应商代码
变量Motor_fault_status是模块A的输出(该变量在A模块中定义),同时该变量是模块B的输入,且上述代码是在模块B中实现的。也就是对于模块B来说,需要读取变量Motor_fault_status,还需要对该变量赋值。这时候使用inport/outport进行建模难以实现,需要用到DataStoreRead/Write协助实现。如下图:
Fig2 Simulink Model for demo code
<