PDA

查看完整版本 : [求助]用simulink下的matlab function的写程序时如何能避免反复初始化?


Andyseren
2009-02-19, 23:49
[求助]用simulink下的matlab function的写程序时如何能避免反复初始化?

我想要完成的任务:X(k)=X(k-1)+u ~这是一个非常普通的状态方程吧,可我就是遇到了麻烦了~

其中u是matlab function的输入参数,X(k)是本次欲输出的值,X(k-1)是上次计算得到的值

我编写的matlab function程序如下:

function Xk = trigger_kalman(u)
Xk_save=0; %Xk_save 用来保存上一次的Xk输出值
Xk = Xsave + u ; %实现X(k)=X(k-1)+u
Xk_save = Xk; %保存这次得到的计算值

我想要能让Xk_save保存住每次得到的Xk值,保存到下次计算新值时使用。
但是如果这样写程序,每次上来都会初始化,因为Xk_save=0;根本保存不了上次的Xk值啊。
但是如果去掉Xk_save=0;这句话,就会提示错误:“Xk_save变量使用之前未定义”
不知我的问题有没有说清楚哦,因为是工作在simulink下,所以一切程序都是顺序执行的

请问各位兄弟姐妹们,如果在simulink里遇到这种反复迭代计算的问题有什么办法吗?
本科毕设遇到的问题,希望大家帮帮忙,有什么想法都可以说说,谢谢大家了~~:lovely:

未注册
2011-07-18, 22:34
if isempty(**)
** = 0;
end

**是你要初始话的变量