声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 911|回复: 0

[编程技巧] 使用传递函数求解响应的程序问题!!

[复制链接]
发表于 2008-8-20 15:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
使用下面的程序可以算出结果,可是结果却不对,频响函数法我想各位大牛肯定很熟了,不知程序那部分写法有错,还是理论上有问题???
望指点!!!
××××××程序是3个自由度的小车系统,每个小车上作用一个与质量成比例的力,求响应×××××××
function  y=transfer   
m1=[1 1 1];
m=diag(m1);                %形成3×3的质量阵
k=[3 -1 0;-1 2 -1;0 -1 3]; %形成3×3的刚度阵
[a,b]=eig(k,m);
d=diag(sqrt(b));           %求解固有频率和固有振型
for i=1:3
[d1(i),j]=min(d);
xgd(:,i)=a(:,j);
d(j)=max(d)+1;
end
w=d1;
u=xgd;                       %将固有频率和相应的振型按升序排列
v=u';                       %解耦质量阵,刚度阵
m0=v*m*u;
k0=v*k*u;
syms w t;
for p=1:3                    %求频响传递函数矩阵
    for k=1:3
        h1(p,k)=u(p,1)*u(k,1)/(k0(1,1)-w.^2*m0(1,1));
        h2(p,k)=u(p,2)*u(k,2)/(k0(2,2)-w.^2*m0(2,2));
        h3(p,k)=u(p,3)*u(k,3)/(k0(3,3)-w.^2*m0(3,3));
        H(p,k)=h1(p,k)+h2(p,k)+h3(p,k);
    end
end
HH=-w.^2*H;    %加速度传递函数矩阵
f=sin(6*pi*t)*m1;    %力激励

for i=1:3
    F(i)=fourier(f(i),t,w);     %把激励转换成频率域
  
end
X=F*H;
Y=F*HH;                         %计算频域中的位移和加速度
for i=1:3
    x(i)=ifourier(X(i),w,t);
    y(i)=ifourier(Y(i),w,t);
end                          %计算时域中的位移和加速度
t=0.006;                     %0.025时刻的加速度数值解
xx1=real(subs(x));
yy1=real(subs(y));
disp(xx1);
disp(yy1);
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-11 20:20 , Processed in 0.057417 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表