- 积分
- 1
- 注册时间
- 2008-3-11
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 shipsj 于 2010-7-3 19:45 编辑
最近要做个结构动力学方面的东西,遇到点问题,现描述如下
将一致质量矩阵通过缩放因子的方法转化为对角矩阵,推导的时候不知道出了什么问题和书上的结果不一样,现将matlab程序附上,等待高手指点。具体的可以看王勖成的书上474页
注:此程序换成4节点9节点矩形单元的形函数时,结果和书上的一样,就是这个8节点的算出来不一样
-----------------------------------------------------------------------
clear
syms x y cofx cofe;
%corner node 1,2,3,4 shape function
Ni=1/4*(1+cofx*x)*(1+cofe*y)*(cofx*x+cofe*y-1);
N1=subs(Ni,{cofx,cofe},{-1,-1});
N2=subs(Ni,{cofx,cofe},{1,-1});
N3=subs(Ni,{cofx,cofe},{1,1});
N4=subs(Ni,{cofx,cofe},{-1,1});
%middle node 5,6,7,8 shape function
N5=1/2*(1-x^2)*(1-y);
N6=1/2*(1-y^2)*(1+x);
N7=1/2*(1-x^2)*(1+y);
N8=1/2*(1-y^2)*(1-x);
%Nsh is composed by shape functions
%Nsh=[0 N1 0 N2 0 N3 0 N4 0 N5 0 N6 0 N7 0 N8;N1 0 N2 0 N3 0 N4 0 N5 0 N6 0 N7 0 N8 0]
%We can simply vertify through u or v degree of freedom
Nsh=[N1 N2 N3 N4 N5 N6 N7 N8];
Masstr=Nsh.' * Nsh;
Massco=int(int(Masstr,x,-1,1),y,-1,1)
%vector scalar equal consistent mass matrix of the sum of each row
vm=sym(zeros(1,length(Massco)));
for i=1:length(Massco), vm(i) = sum(Massco(i,); end
vm
vs=sym(zeros(1,length(Massco)));
for i=1:length(Massco), vs(i) = Massco(i,i); end
sum(vs) .\ vs
终于有了结果啊!感谢caoer对本版的支持,tonnyw一致跟我保持探讨,pasuka最后的指点,感谢大家的参与! |
评分
-
1
查看全部评分
-
|