资源描述:
《单自由度系统,响应的Matlab程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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]
2、; 7.sys = tf(num, den); 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 = impul
3、se(sys, t); 18.y = y'; 19. 20.N = length(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(
4、'name', '虚频'); ..1.plot(f(part), ft_i(part)); 2.figure('name', '幅值'); 3.plot(f(part), abs(ft(part))); 4.figure('name', '相位'); 5.plot(f(part), phase(ft(part)) * 180 / pi); 6.figure('name', '导纳圆'); 7.plot(ft_r(part), ft_i(part), '.'); 8.axis equal; 9.hold on; 1
5、0.xk = [-0.0001165 11. 0.0002857 12. 8.297e-5 13. 0.0004869 14. 0.000682]; 15.xk1 = [-0.0008017 16. -0.0003082 17. 0.0002857 18. 0.001194 19. 0.001451]; 20.yk1 = [-0.002817 21. -0.003095 22. -0.003185 23. -0.002869 24.
6、-0.002633]; 25. 26.yk = [-0.003149 27. -0.003185 28. -0.003179 29. -0.003165 30. -0.003121]; 31.k = 5; 32.A = [ 33. sum(xk.^2) sum(xk .* yk) sum(xk) 34. sum(xk.*yk) sum(yk.^2) sum(yk) 35. sum(xk) sum(yk) k]; 36.B = -[ 37. sum(
7、xk.^3 + xk.* yk.^2) 38. sum(xk.^2.*yk + yk.^3) 39. sum(xk.^2+yk.^2)]; 40.rlt = AB; 41.x0 = rlt(1)*(-0.5); 42.y0 = rlt(2)*(-0.5); 43.r = sqrt(rlt(1)^2/4+rlt(2)^2/4-rlt(3)); 44.fai = 0:0.01:2*pi; 45.x = x0 + r * cos(fai); 46.y = y0 + r * sin(fai); ..1.pl
8、ot(x,y, 'r'); 实验模态分析------非数学公式的简单概述之二分类:模态空间译文
9、标签:锤击法 激振器 窗函数 曲线拟合 2011-07-0223:00阅读(3040)评论(0)编辑删除为何只需获得频响函数矩阵的一行或一