您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > 卡尔曼MATLAB-最小二乘法例子的代码
Ts=1;采样时间s=tf('s');sysc=100/(60*s+1);真实系统的传递函数sysd=c2d(sysc,Ts);t=0:Ts:(Ts*300);u=ones(1,length(t));系统输入ys=lsim(sysd,u,t,0);系统输出ys=ys+10*rand(size(ys));测量量=系统输出+噪声[numd,dend]=LeastSquare(u,ys,3);最小二乘法获取预测系统模型[A,B,C,D]=tf2ss(numd,dend);变换到状态空间形式Len=length(u);N=length(A);系统维数yout=zeros(Len,1);滤波器输出Xh=zeros(N,1);状态变量P=eye(N);Q=0.02*eye(N);系统噪声R=50;测量噪声fori=1:LenXh=A*Xh+B*u(i);P=A*P*A'+Q;K=P*C'*inv(C*P*C'+R);Xh=Xh+K*(ys(i)-C*Xh);P=P-K*C*P;yout(i)=C*Xh;endplot(t,ys,t,yout);
本文标题:卡尔曼MATLAB-最小二乘法例子的代码
链接地址:https://www.777doc.com/doc-7234912 .html