静态变量

一般的在函数中定义的变量,当函数执行完毕,系统会释放变量所占有的内存,

当再次访问该函数的时候,系统会重新分配内存给该变量,那么这就导致上面所提到的情况

,每个simulink仿真步长下都会丢失上一个步长所得到的matlab function中的参数数据。

所以我们此时需要使用静态变量的概念来解决这个问题,静态变量是当程序全部结束后,分配给该变量的内存才会被系统释放,

但是每次函数进行重新运算时,静态变量并不会随着函数的重新加载而重新加载。

所以我们可以通过静态变量来锁定simulink初始仿真时候的参数数据。

 

 

上图程序中,persistent 关键字即是用以声明静态变量,定义的time_0_value参数即是用来获取仿真时间为0时刻的参数,

后面仿真继续,matlab function函数继续被循环执行,不过该参数并不会被覆盖,可以用做最后仿真结束时刻和仿真初始时刻的数据计算。

 posted on 2022-07-12 13:07  Real_Yuan  阅读(89)  评论(0)    收藏  举报