找回密码
 注册
Simdroid-非首页
查看: 63|回复: 2

求高手帮忙改动一下小程序

[复制链接]
发表于 2011-1-16 16:02:07 | 显示全部楼层 |阅读模式 来自 湖南长沙
Mu''+Cu'+Ku'=F(t)这是方程,激励列向量取F(t)={100sin(pi*t);100sin(pi*t);100sin(pi*t)}程序是计算顶层的水平位移,我现在想得到顶层水平位移的时域图,本人水平太菜了,请求高手帮忙!搞完寒假早点回家了!
  1. clear
  2. M=diag([100;100;100]);
  3. C=[170 -85 0;-85 170 -85;0 -85 170];
  4. K=[2800 -1400 0;-1400 2800 -1400;0 -1400 2800];
  5. H=[-inv(M)*C/2 inv(M);C*(inv(M))*C/4-K -C*(inv(M))/2];
  6. I=eye(size(H));
  7. N=20;
  8. delt_t=0.5;
  9. tao=delt_t/20^N;
  10. T1=H*tao;
  11. for i=1:4
  12. T1=T1+(H*tao)^(i+1)/prod(1:i+1);
  13. end
  14. clear i
  15. for i=1:N
  16. T_N=2*T1+T1*T1;
  17. T1=T_N;
  18. end
  19. T=eye(size(T_N))+T_N;
  20. v=[0;0;0;0;0;0];
  21. r1=[0;0;0;100;100;100];
  22. r2=[0;0;0;0;0;0];
  23. A=(eye(6)*pi+H^2/pi)^-1*(r2-H*r1/pi);
  24. B=(eye(6)*pi+H^2/pi)^-1*(-r1-H^2*r2/pi);
  25. clear i
  26. for i=1:1:(20/delt_t+1)
  27. v=T*v+(eye(6)*sin(pi*delt_t*i)-T*sin(pi*delt_t*(i-1)))*A+(eye(6)*cos(pi*delt_t*i)-T*cos(pi*delt_t*(i-1)))*B+T*(inv(H))*[0;0;0;2.725;2.725;2.725]+(inv(H))*[0;0;0;2.725;2.725;2.725];
  28. V(i,:)=v;
  29. end
复制代码
发表于 2011-1-18 07:00:41 | 显示全部楼层 来自 河北廊坊
Simdroid开发平台
画图用plot
回复 不支持

使用道具 举报

发表于 2011-1-18 22:08:51 | 显示全部楼层 来自 天津
Mu''+Cu'+Ku'=F(t)
你这个公式是不是没写对?是Mu''+Cu'+Ku=F(t)吧?如果是的话,那么一般的,这个公式的u是u(x,y,z,t)的函数形式,你把F(t)={100sin(pi*t);100sin(pi*t);100sin(pi*t)}代入,计算出每个离散t值对应的u(x,y,z),那么你绘制u(x,y,z,t)随时间t的变化图是很容易的.
顶层水平位移可能是对z的值做了限制.

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-20 21:59 , Processed in 0.039077 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表