马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我编了一段简单的程序,求解一个质量矩阵和一个刚度矩阵。两个矩阵都能求解,但是用刚度矩阵除以质量矩阵就报错。有人热心指正小弟感激不尽。
syms x y db dv dc hb hv hc b L;
y=x/L;
%求Nub与其转置地积分q
Nub=[0,0,1-y,0,0,0,y,0];
T=[Nub]'*[Nub];
q=int(T,0,1);
%质量矩阵[Mub]
[Mub]=db*hb*b*q;
Nw=[1-3*y^2+2*y^3,(y-2*y^2+y^3)*L,0,0,3*y^2-2*y^3,(y^3-y^2)*L,0,0];
%对Nw求导
x=sym('x');
dNw=diff(Nw)
%求Nw与其转置的积分qq
TT=Nw'*Nw;
qq=int(TT,0,1);
%质量矩阵 [Mwb]
[Mwb]=db*hb*b*qq;
[Nb]=[0,0,0,1-y,0,0,0,y];
[Nuc]=-(hv+hb/2+hc/2)*dNw+[Nub]+hv*[Nb];
[Nuv]=-(hb+hc)/2*dNw+[Nub]+hv/2+[Nb];
%质量矩阵[Muv]&[Mwv]
qqq=int([Nuv]'*[Nuv],0,1);
[Muv]=dv*hv*b*qqq;
[Mwv]=dv*hv*b*qq;
%求Nuc的转置与其的积分qqqq
TTT=[Nuc]'*[Nuc];
qqqq=int(TTT,0,1);
%质量矩阵[Muc]&[Mwc]
[Muc]=dc*hc*b*qqqq;
[Mwc]=dc*hc*b*qq;
%得到总的质量矩阵
[M]=[Mub]+[Mwb]+[Muv]+[Mwv]+[Muc]+[Mwc];
syms Ib Ic C11d C11e G
%求刚度矩阵
syms Eb C11E C11D Ic;
%Nub求导
x=sym('x');
dNub=diff([Nub]);
%dNub的积分
kkkk=[dNub]'*[dNub];
p=int(kkkk,x,0,1);
Kub=Eb*b*hb*p;
a=diff(Nw);
aa=diff(a);
pp=int(aa'*aa,x,0,1);
Kwb=Eb*Ib*pp;
dNuc=diff(Nuc);
p=int(dNuc'*dNuc,x,0,1);
Kuc=C11e*b*hc*p;
Kwc=C11d*Ic*pp;
p=int(Nb'*Nb);
Kbv=G*b*hv*p;
K=Kub+Kwb+Kuc+Kwc+Kbv;
K/M
[ 本帖最后由 eight 于 2008-4-18 10:39 编辑 ] |