- 积分
- 1
- 注册时间
- 2005-6-10
- 仿真币
-
- 最后登录
- 1970-1-1
|
请问高手:我用MATLAB编了一个newmark法计算结构响应的小程序,又用ANSYS将相同的模型计算了一下,结果两者的结果差异很大(数量级差10000倍),不知道为什么?
附MARLAB源程序及ANSYS命令流:
==========================
MATLAB源程序:
clc;clear;close;
M = 1.0e+003 * [5.2000 0 0 1.3000 0 0
0 5.7943 0 0 1.0029 -0.2414
0 0 0.1486 0 0.2414 -0.0557
1.3000 0 0 5.2000 0 0
0 1.0029 0.2414 0 5.7943 0
0 -0.2414 -0.0557 0 0 0.1486];
C = 1.0e+006 * [6.8267 0 0 -3.3955 0 0
0 6.8267 0 0 -3.3955 1.6989
0 0 2.2674 0 -1.6989 0.5664
-3.3955 0 0 6.8267 0 0
0 -3.3955 -1.6989 0 6.8267 0
0 1.6989 0.5664 0 0 2.2674];
K = 1.0e+010 * [4.0017 0 0 -2.0008 0 0
0 4.0001 0 0 -2.0000 1.0000
0 0 1.3334 0 -1.0000 0.3333
-2.0008 0 0 4.0017 0 0
0 -2.0000 -1.0000 0 4.0001 0
0 1.0000 0.3333 0 0 1.3334];
u=[0 0 0 0 0 0]';
v=[0 0 0 0 0 0]';
a=[10 0 0 0 0 0]';
t(1)=0; %时间
x(:,1)=u; %位移
x1(:,1)=v; %速度
x2(:,1)=a; %加速度
%newmark参数
gama=0.5;
dt=2e-1;
delta=0.25;
b1=1/(delta*dt^2);
b2=1/(delta*dt);
b3=1/(2*delta-1);
b4=gama/(delta*dt);
b5=gama/delta-1;
b6=dt*gama/(2*delta)-dt;
b7=1/(2*delta)-1;
%等效刚度矩阵
K1=K+b1*M+b4*C;
t_max=12; %计算时间总长
i=1;
t(1)=0.1;
q=zeros(6,1);
while t(i)<t_max
f=1*sin(15*t(i)*0.2);
%f=sin(t(i));
Q(:,i)=[f,0,0,0,0,0]';
q(:,i+1)=Q(:,i)+M*(b1*x(:,i)+b2*x1(:,i)+b3*x2(:,i))+C*(b4*x(:,i)+b5*x1(:,i)+b6*x2(:,i));
x(:,i+1)=inv(K1)*q(:,i+1);
x1(:,i+1)=b4*(x(:,i+1)-x(:,i))-b5*x1(:,i)-b6*x2(:,i);
x2(:,i+1)=b1*(x(:,i+1)-x(:,i))-b2*x1(:,i)-b7*x2(:,i);
i=i+1;
t(i)=t(i-1)+dt;
end
format long e
t=10:50;
%xrespons=[x(1:1,t)';x(2:2,t)';x(3:3,t)';x(4:4,t)';x(5:5,t)';x(6:6,t)']
%x1respons=[x1(1:1,t)';x1(2:2,t)';x1(3:3,t)';x1(4:4,t)';x1(5:5,t)';x1(6:6,t)']
%x2respons=[x2(1:1,t)';x2(2:2,t)';x2(3:3,t)';x2(4:4,t)';x2(5:5,t)';x2(6:6,t)']
%plot(t,x(:,t),t,x1(:,t),t,x2(:,t)/10000000)
plot(t,x(:,t))
=================================
ANSYS命令流:
!施加正弦荷载进行瞬态分析
!用beam3计算
finish
/clear
/title,the transient analysis of a beam use of beam3
/FILNAME,frame3,1
/CWD,'C:\ansyswork\frame2'
save
/prep7
et,1,beam3
R,1,1,1/12,1, , , ,
mp,ex,1,2e11
mp,dens,1,7800
mp,prxy,1,0.2
k,1
k,2,0,1
k,3,1,1
k,4,1
lstr,1,2
lstr,2,3
lstr,3,4
lesize,all,,,1
lmesh,all
/SOLU
DK,1, , , ,0,ALL, , , , , ,
DK,4, , , ,0,ALL, , , , , ,
/solu
antype,4
trnopt,full
!dk,1,all
!dk,4,all
time,0
autots,0
deltim,0.2, , ,1
kbc,0
alphad,1.0926529, !由计算得知
betad,0.0001737,
outpr,basic,all,
*do,i,1,60,1 !计算到6秒
time,i*0.2
autots,0
deltim,0.2, , ,1
kbc,0
fn=sin(15*i*0.2)
fk,2,fx,fn
solve
*enddo
===========================
因为这个模型极其简单,所以我实在想不出理由。个人认为可能是MATLAB中采用的M、C、K与ANSYS模型不符,那应该是怎样的呢?肯请高人指点!!先行谢过!!
[ 本帖最后由 realyyy 于 2006-8-18 15:51 编辑 ] |
评分
-
1
查看全部评分
-
|