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,:))
展开
 我来答
百度网友db4b04636
2015-04-20 · TA获得超过2916个赞
知道小有建树答主
回答量:834
采纳率:92%
帮助的人:357万
展开全部
运行没有错误,结果是类似抛物线的图。
没有语法错误,不太了解你要的是什么结果。
追问
这个程序是参考别人的程序做的,振动加速度嘛做出来图形应该先是围绕0线上下跳动然后归零的,只是我不知道为什么一直做不出来,求解
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式