资源描述:
《单自由度系统,响应地Matlab程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1.function f = hanning_imp(t, Tc, A) 2. f = zeros(size(t)); 3. f(t < Tc) = A / 2 * (1 - cos(2*pi * t(t < Tc) / Tc)); 4.end 下面是计算单自由度系统响应的Matlab程序,计算传递函数,画实频、虚频、幅频、相位、导纳图[plain] viewplain copy1.m = 100; 2.k = 1000; 3.c = 100; 4. 5.num = 1; 6.den = [m c k]; 7.sys = tf(num, de
2、n); 8.dt = 0.00001; 9.fs = 1/dt; %采样频率(Hz) 100Hz 实际并不需要这么高的采样频率,但是如果采样时间太小,hanning脉冲不完整 10.% 为了得到准确的响应dt一定要小,否则做出的相位可能不对 11. 12.t = 0:dt:200; 13.Tc = 0.001; 14.A = 10; 15.u = hanning_imp(t, Tc, A); 16.y = lsim(sys, u, t); 17.% y = impulse(sys, t); 18.y = y'; 19. 20.N = lengt
3、h(u); 21.fy = fft(y); 22.fu = fft(u); 23.ft = fy ./ fu; 24.f = (0:N-1) * fs ./ N; 25.ft_r = real(ft); 26.ft_i = imag(ft); 27. 28.part = (f < 30); 29. 30.figure('name', '实频'); 31.plot(f(part), ft_r(part)); 32.figure('name', '虚频'); 33.plot(f(part), ft_i(part)); 1.figure('name',
4、 '幅值'); 2.plot(f(part), abs(ft(part))); 3.figure('name', '相位'); 4.plot(f(part), phase(ft(part)) * 180 / pi); 5.figure('name', '导纳圆'); 6.plot(ft_r(part), ft_i(part), '.'); 7.axis equal; 8.hold on; 9.xk = [-0.0001165 10. 0.0002857 11. 8.297e-5 12. 0.0004869 13. 0.0006
5、82]; 14.xk1 = [-0.0008017 15. -0.0003082 16. 0.0002857 17. 0.001194 18. 0.001451]; 19.yk1 = [-0.002817 20. -0.003095 21. -0.003185 22. -0.002869 23. -0.002633]; 24. 25.yk = [-0.003149 26. -0.003185 27. -0.003179 28. -0.003165 29. -0.00312
6、1]; 30.k = 5; 31.A = [ 32. sum(xk.^2) sum(xk .* yk) sum(xk) 33. sum(xk.*yk) sum(yk.^2) sum(yk) 34. sum(xk) sum(yk) k]; 35.B = -[ 36. sum(xk.^3 + xk.* yk.^2) 37. sum(xk.^2.*yk + yk.^3) 38. sum(xk.^2+yk.^2)]; 39.rlt = AB; 40.x0 = rlt(1)*(-0.5); 41.y0 = rl
7、t(2)*(-0.5); 42.r = sqrt(rlt(1)^2/4+rlt(2)^2/4-rlt(3)); 43.fai = 0:0.01:2*pi; 44.x = x0 + r * cos(fai); 45.y = y0 + r * sin(fai); 46.plot(x,y, 'r'); 实验模态分析------非数学公式的简单概述之二分类:模态空间译文
8、标签:锤击法 激振器 窗函数 曲线拟合 2011-07-0223:00阅读(3040)评论(0)编辑删除为何只需获得频响函数矩阵的一行或一列?