simulink中的运行机制,每个采样点会调用一次MATLAB Function的函数,两次调用之间,同一个变量的前次计算结果传递到当前计算周期是个大问题。解决的办法是采用persistent变量来实现函数退出和进入时内部变量值的保持。
persistent变量是定义在某个函数内的来变量类型,可以在函数调用的不同次数间保持上一次退出该函数的值。它变量声明与global的区别是,persistent变量是能在被定义函数中被识别,避免被外部修改。声明persistent变量时,它刚刚被创建,还不具有初始值,其内容为空值[ ]。调用persistent变量的函数时,先判断persistent变量是否为空。如果为空需要进行初始化赋值。当非空时,它会记住上次被调用的结果。
function y = fcn(u)
%#codegen
%*********初始化******************
persistent sum_val
if isempty(sum_val) %初始化
sum_val = 0;
end
sum_val = sum_val + u ;
y = sum_val;
本文发布于:2024-01-30 03:22:09,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170655613318872.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |