识别单自由度系统振动参数遇到问题
在matlab中用递推最小二乘法,识别单自由度系统在正弦型干扰力作用下的强迫振动,得出的参数全为零,求答疑。系统的运动微分方程式为 400x&#39;&#39;+36x&#39;+160x=5000sin(100t),x(0)=12,x&#39;(0)=10所用程序如下,其中S为运动微分方程所求得的x的解析解t=0:50;S=(6666139369*cos((15919^(1/2)*t)/200))./(555511562*exp((9*t)/200)) - cos((15919^(1/2)*t)/200).*((625*cos(100*t - (15919^(1/2)*t)/200))/1111023124 + (625*cos(100*t + (15919^(1/2)*t)/200))/1111023124 + (1041625*sin(100*t - (15919^(1/2)*t)/200))/1666534686 + (1041625*sin(100*t + (15919^(1/2)*t)/200))/1666534686 + (3125125*15919^(1/2)*cos(100*t - (15919^(1/2)*t)/200))/8843188555478 - (3125125*15919^(1/2)*cos(100*t + (15919^(1/2)*t)/200)):&#39;( /8843188555478 + (41665016875*15919^(1/2)*sin(100*t - (15919^(1/2)*t)/200))/53059131332868 - (41665016875*15919^(1/2)*sin(100*t + (15919^(1/2)*t)/200))/53059131332868) + (3554720134963*15919^(1/2)*sin((15919^(1/2)*t)/200))./(26529565666434*exp((9*t)/200)) - (1250*15919^(1/2)*sin((15919^(1/2)*t)/200).*(((9*sin(t*(15919^(1/2)/200 - 100)))/200 - cos(t*(15919^(1/2)/200 - 100))*(15919^(1/2)/200 - 100))/((15919^(1/2)/200 - 100)^2 + 81/40000) - ((9*sin(t*(15919^(1/2)/200 + 100)))/200 - cos(t*(15919^(1/2)/200 + 100)).*(15919^(1/2)/200 + 100))/((15919^(1/2)/200 + 100)^2 + 81/40000)))/15919;plot(t,S)U=5000*sin(100*t);S(2)=0;S(1)=0;c0=&#39;;p0=10^6*eye(3,3);E=0.0000005;c=;e=zeros(3,50);for k=3:50; h1=[-S(k-1),-S(k-2),u(k-1)]&#39;; x=h1&#39;*p0*h1+1; x1=inv(x); k1=p0*h1*x1; d1=S(k)-h1&#39;*c0; c1=c0+k1*d1; e1=c1-c0; e2=e1./c0; e(:,k)=e2; c0=c1; c(:,k)=c1; p1=p0-k1*k1&#39;*; p0=p1; if e2<=E break; endendc,e
页:
[1]