
matlab 的程序结果错误求大神帮忙看看那里错啦是求振动加速度的
>>M=[100,1200,1850,600,30,30,50,50];m=diag(M);C=[150-15045750000;-150165-43.8-84-3-3-...
>> M=[100,1200,1850,600,30,30,50,50]; m=diag(M);
C=[150 -150 45
75 0 0 0 0;-150 165 -43.8 -84 -3 -3 -3 -3;45 -43.8 37.14 44.7 3.9 3.9 -4.5
-4.5;75 -84 22.2 57 -3 4.5 4.5 -3;0 -3 3.9 -150 3.2 0 0 0;0 -3 3.9 4.5 0 3.2 0
0;0 -3 -4.5 4.5 0 0 3.2 0;0 -3 -4.5 -3 0 0 0 3.2]; %阻尼矩阵
K=[15 -15 4.5
7.5 0 0 0 0;-15 85 16.5 -55 -15 -15 -20 -20;4.5 55.5 142.05 -3 19.5 19.5 -30
-30;7.5 -25 0 117.5 -15 22.5 30 -20;0 -15 19.5 -15 265 0 0 0;0 -15 19.5 22.5 0
265 0 0;0 -20 -30 30 0 0 270 0;0 -20 -30 -20 0 0 0 270]; %刚度矩阵
t1=0.001;
nt=20;
dt=0.00005;
alfa=0.25;
beta=0.5;
a0=1/alfa/dt/dt;
a1=beta/alfa/dt;
a2=1/alfa/dt;
a3=1/2/alfa-1;
a4=beta/alfa-1;
a5=dt/2*(beta/alfa-2);
a6=dt*(1-beta);
a7=dt*beta;
x=zeros(8,nt);
v=zeros(8,nt);
a=zeros(8,nt);
for i=2:nt
t=(i-1)*dt;
if (t<t1)
f=[0;0;0;0;250*sin(4*pi*t);0;0;0];
else f=[0;0;0;0;0;0;0;0];
end
ke=K+a0*m+a1*C;
fe=f+m*(a0*x(:,i-1)+a2*v(:,i-1)+a3*a(:,i-1))+C*(a1*x(:,i-1)+a4*v(:,i-1)+a5*a(:,i-1));
x(:,i)=inv(ke)*fe;
a(:,i)=a0*(x(:,i)-x(:,i-1))-a2*v(:,i-1)-a3*a(:,i-1);
v(:,i)=v(:,i-1)+a6*a(:,i-1)+a7*a(:,i);
f=fe;
end
plot(x(4,:)) 展开
C=[150 -150 45
75 0 0 0 0;-150 165 -43.8 -84 -3 -3 -3 -3;45 -43.8 37.14 44.7 3.9 3.9 -4.5
-4.5;75 -84 22.2 57 -3 4.5 4.5 -3;0 -3 3.9 -150 3.2 0 0 0;0 -3 3.9 4.5 0 3.2 0
0;0 -3 -4.5 4.5 0 0 3.2 0;0 -3 -4.5 -3 0 0 0 3.2]; %阻尼矩阵
K=[15 -15 4.5
7.5 0 0 0 0;-15 85 16.5 -55 -15 -15 -20 -20;4.5 55.5 142.05 -3 19.5 19.5 -30
-30;7.5 -25 0 117.5 -15 22.5 30 -20;0 -15 19.5 -15 265 0 0 0;0 -15 19.5 22.5 0
265 0 0;0 -20 -30 30 0 0 270 0;0 -20 -30 -20 0 0 0 270]; %刚度矩阵
t1=0.001;
nt=20;
dt=0.00005;
alfa=0.25;
beta=0.5;
a0=1/alfa/dt/dt;
a1=beta/alfa/dt;
a2=1/alfa/dt;
a3=1/2/alfa-1;
a4=beta/alfa-1;
a5=dt/2*(beta/alfa-2);
a6=dt*(1-beta);
a7=dt*beta;
x=zeros(8,nt);
v=zeros(8,nt);
a=zeros(8,nt);
for i=2:nt
t=(i-1)*dt;
if (t<t1)
f=[0;0;0;0;250*sin(4*pi*t);0;0;0];
else f=[0;0;0;0;0;0;0;0];
end
ke=K+a0*m+a1*C;
fe=f+m*(a0*x(:,i-1)+a2*v(:,i-1)+a3*a(:,i-1))+C*(a1*x(:,i-1)+a4*v(:,i-1)+a5*a(:,i-1));
x(:,i)=inv(ke)*fe;
a(:,i)=a0*(x(:,i)-x(:,i-1))-a2*v(:,i-1)-a3*a(:,i-1);
v(:,i)=v(:,i-1)+a6*a(:,i-1)+a7*a(:,i);
f=fe;
end
plot(x(4,:)) 展开
1个回答
展开全部
运行没有错误,结果是类似抛物线的图。
没有语法错误,不太了解你要的是什么结果。
没有语法错误,不太了解你要的是什么结果。
追问
这个程序是参考别人的程序做的,振动加速度嘛做出来图形应该先是围绕0线上下跳动然后归零的,只是我不知道为什么一直做不出来,求解
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询