声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1685|回复: 4

[编程技巧] 线性加速度法求解三自由度系统振动响应的计算程序

[复制链接]
发表于 2010-3-23 22:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
怎么用matlab编写线性加速度法啊?本人刚接触matlab,很多基本函数都不太懂,各位高手帮帮我吧

3F是线性加速度法求解三自由度谐迫振动响应的程序,已测试没有错误,本来该程序是解如下振动微分方程的mx''+cx'+kx=f(t).
现在f(t)=kQ(t)+cQ'(t)
Q(t)是一组离散变量,请高手帮我看看该怎么改啊?
该模型相当于人骑自行车行驶在高低不平的路面上,Q(t)就是路面参数,我需要得到的是人和自行车的振动响应,谢谢

[ 本帖最后由 ChaChing 于 2010-3-24 23:28 编辑 ]
回复
分享到:

使用道具 举报

发表于 2010-3-24 16:37 | 显示全部楼层

把程序贴上来

这样方便大家阅读
 楼主| 发表于 2010-3-24 20:01 | 显示全部楼层

高手们就帮帮我吧,确实不会啊,纠结一下午了

高手们就帮帮我吧,确实不会啊,纠结一下午了

  1. function vtb5(tf,delt)
  2. close all;clc
  3. fid1=fopen('disp','wt');
  4. m=2*[1 0 0;0 1 0;0 0 1];
  5. c=1.5*[2 -1 0;-1 2 -1;0 -1 2];
  6. k=50*[2 -1 0;-1 2 -1;0 -1 2];
  7. x0=[1 1 1]';
  8. v0=[1 1 1]';
  9. bita=1/6;
  10. md=m+delt/2*c+bita*delt^2*k;
  11. [E,F]=eig(m\k);
  12. diag(sqrt(F));
  13. for t=0:delt:tf;
  14.     f=[2.00*sin(3.754*t) -2.00*cos(2.2*t) 1.00*sin(2.8*t)]';
  15.     if t==0;xdd0=m\(f-k*x0-c*v0);
  16.     else
  17.         xdd=md\(f-c*(v0+delt/2*xdd0)-k*(x0+delt*v0+(1/2-bita)*delt^2*xdd0));
  18. x=md\(m*(x0+delt*v0+delt^2/3*xdd0)+c*(delt/2*x0+delt^2/3*v0+delt^3/12*xdd0)+delt^2/6*f);
  19.         xd=v0+delt/2*(xdd0+xdd);
  20.         xdd0=xdd;v0=xd;x0=x;
  21.         fprintf(fid1,'%10.4f',x0);
  22.     end
  23. end
  24.     fid2=fopen('disp','rt');
  25.     n=tf/delt;
  26.     x=fscanf(fid2,'%f',[3,n]);
  27.     t=1:n;
  28.     figure('numbertitle','off','name','自由度1的位移','pos',[450 180 400 420]);
  29.     plot(t,x(1,t)),grid,xlabel('时间*0.1秒'),title('自由度1的位移与时间的关系')
  30.     figure('numbertitle','off','name','自由度2的位移','pos',[350 160 400 420]);
  31.     plot(t,x(2,t)),grid,xlabel('时间*0.1秒'),title('自由度2的位移与时间的关系')
  32.     figure('numbertitle','off','name','自由度3的位移','pos',[250 140 400 420]);
  33.     plot(t,x(3,t)),grid,xlabel('时间*0.1秒'),title('自由度3的位移与时间的关系')
复制代码

[ 本帖最后由 ChaChing 于 2010-3-24 23:29 编辑 ]
发表于 2010-3-31 10:29 | 显示全部楼层
LZ这个我难题解决了吗?我也遇到相同的问题,好头痛啊。
 楼主| 发表于 2010-4-1 22:31 | 显示全部楼层

回复 地板 destiny 的帖子

路面参数用随机rand,然后q'(t)也用类似求加速度的方法,我的问题解决了,不知道能不能帮上你。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-11 14:27 , Processed in 0.070912 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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