谁能帮我检查以下到底哪里出现了错误,为什么y的输出前面项全是0,难道系统辩始工具箱对初值这么敏感,只能递推?
clear all
v=randn(600,1);%%产生随机数
lam=1;T=0.1;
na=2;nb=1;nc=0;nk=1;
a=[1,-0.8,-1];b=[0,1,1.5];c=[1];d=[1,-1];f=[1];
%%na=2;nb=2;nc=0;nk=1;
%%a=[1,-1.6,0.6];b=[0,1.5,-0.53,0.9];c=[1,0.4,0];d=[1];f=[1];
th0=poly2th(a,b,c,d,f,lam,T);
u=idinput(600,'prbs');
y=idsim([u,v],th0);
z=[y,u];
%idplot(z);hold on;
%%模型参数辨识
th1=armax(z,[na nb nc nk])
[a,b,c,d,f,lam,t]=th2poly(th1);
%%系统输出与参考输出比较
y1=idsim([u,v],th0);
y2=idsim([u,v],th1);
k=1:1:600;
plot(k,y,'b',k,y2,'--r')
阅读(1566) | 评论(0) | 转发(0) |