静态变量
一般的在函数中定义的变量,当函数执行完毕,系统会释放变量所占有的内存,
当再次访问该函数的时候,系统会重新分配内存给该变量,那么这就导致上面所提到的情况
,每个simulink仿真步长下都会丢失上一个步长所得到的matlab function中的参数数据。
所以我们此时需要使用静态变量的概念来解决这个问题,静态变量是当程序全部结束后,分配给该变量的内存才会被系统释放,
但是每次函数进行重新运算时,静态变量并不会随着函数的重新加载而重新加载。
所以我们可以通过静态变量来锁定simulink初始仿真时候的参数数据。
上图程序中,persistent 关键字即是用以声明静态变量,定义的time_0_value参数即是用来获取仿真时间为0时刻的参数,
后面仿真继续,matlab function函数继续被循环执行,不过该参数并不会被覆盖,可以用做最后仿真结束时刻和仿真初始时刻的数据计算。