声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1974|回复: 4

[线性振动] Wilson-θ 法解,响应无限大

[复制链接]
发表于 2011-6-25 15:10 | 显示全部楼层 |阅读模式

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

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

x
在做悬壁梁简谐激振有限无分析时,分为10个单元,用Wilson-θ 法解响应,  得到无限大,
  1. clear
  2. syms ke L E I p A W
  3. % N=[1-3*ke^2+2*ke^3,L*ke*(1-2*ke+ke^2),3*ke^2-2*ke^3,L*ke^2*(ke-1)];%形函数
  4. kk=E*I/L^3*[12     6*L     -12     6*L;
  5.              6*L    4*L^2   -6*L    2*L^2;
  6.              -12    -6*L    12      -6*L;
  7.              6*L    2*L^2   -6*L    4*L^2];%单元刚度阵
  8. mm=p*A*L/420*[156 22*L 54 -13*L;
  9.               22*L 4*L^2 13*L -3*L^2;
  10.               54 13*L 156 -22*L;
  11.               -13*L -3*L^2 -22*L 4*L^2];%单元质量阵

  12. n=10;%有限单元数
  13. KK=sym(zeros(2*(n+1),2*(n+1)));
  14. MM=sym(zeros(2*(n+1),2*(n+1)));

  15. %组成整体刚阵、质阵
  16. for i=1:2:2*n
  17.     KK(i:i+3,i:i+3)=KK(i:i+3,i:i+3)+kk;
  18.     MM(i:i+3,i:i+3)=MM(i:i+3,i:i+3)+mm;
  19. end

  20. %去掉固定端约束
  21. NK=KK(3:2*(n+1),3:2*(n+1));
  22. NM=MM(3:2*(n+1),3:2*(n+1));

  23. %材料常数
  24. E=210e9;
  25. b=0.05;
  26. h=0.0085;
  27. l=0.898;
  28. I=b*h^3/12;
  29. A=b*h;
  30. L=l/n;
  31. p=7800000;

  32. %转代为数值矩阵
  33. NK=eval(NK);
  34. NM=eval(NM);
  35. syms t
  36. omg=10;
  37. %初始条件
  38. C=zeros(2*n,2*n);
  39. F=sym(zeros(2*n,1));
  40. x0=zeros(2*n,1);
  41. F(2*n-1)=10*sin(10*t);
  42. dx0=zeros(2*n,1);
  43. % wilson theta 法
  44. [ts,Xt,DXt]=WILS(NM,NK,C,F,x0,dx0);
  45. %
  46. m=length(x0);
  47. for ii=m-1
  48.     tt=(ii+1)/2;
  49.     figure(1)
  50. %     subplot(2,1,1)
  51.     plot(ts,Xt(ii,:))
  52.     title(['节点' num2str(tt) '振动曲线'])
  53.     text(ts(1),Xt(ii,1),num2str(tt))
  54.     xlabel('时间t');
  55.     ylabel('位移');
  56.     hold on
  57.    
  58.     figure(2)
  59.     subplot(2,1,2)
  60.     plot(ts,DXt(ii,:))
  61.     title(['节点' num2str(tt) '速度曲线'])
  62.     xlabel('时间t');
  63.     ylabel('速度');
  64.     hold on
  65. end

  66. 下面是wilsontheta法函数的代码
  67. function [ts,Xt,DXt]=WILS(M,K,C,F,x0,dx0)
  68. dt=0.09;
  69. n=500;
  70. theta=1.4;

  71. a0=6/(theta*dt)^2;
  72. a1=3/(theta*dt);
  73. a2=2*a1;
  74. a3=theta*dt/2;
  75. a4=a0/theta;
  76. a5=-a2/theta;
  77. a6=1-3/theta;
  78. a7=dt/2;
  79. a8=dt^2/6;

  80. %初始条件
  81. d2x0=inv(M)*(F-K*x0-C*dx0);
  82. %等效刚度
  83. Kv=K+a0*M+a1*C;   

  84. t=0;
  85. Xt(:,1)=x0;
  86. DXt(:,1)=dx0;
  87. D2Xt(:,1)=eval(d2x0);
  88. Ft(:,1)=eval(F);
  89. i=1;
  90. ts(i)=0;
  91. for t=dt:dt:n*dt
  92.    i=i+1;
  93.    ts(i)=t;
  94.    Fdt=eval(F);
  95.    
  96.    Fv=Ft(:,i-1)+theta*(Fdt-Ft(:,i-1))+M*(a0*Xt(:,i-1)+a2*DXt(:,i-1)+...
  97.        2*D2Xt(:,i-1))+C*(a1*Xt(:,i-1)+2*DXt(:,i-1)+a3*D2Xt(:,i-1));
  98.    Xtheta=inv(Kv)*Fv;
  99.    
  100.    D2X=a4*(Xtheta-Xt(:,i-1))+a5*DXt(:,i-1)+a6*D2Xt(:,i-1);
  101.    DX=DXt(:,i-1)+a7*(D2X+D2Xt(:,i-1));
  102.    X=Xt(:,i-1)+dt*DXt(:,i-1)+a8*(D2X+2*D2Xt(:,i-1));
  103.    
  104.     Xt(:,i)=X;
  105.     DXt(:,i)=DX;
  106.     D2Xt(:,i)=inv(M)*(Fdt-K*Xt(:,i)-C*DXt(:,i));
  107.     Ft(:,i)=Fdt;
  108. end
复制代码
回复
分享到:

使用道具 举报

 楼主| 发表于 2011-6-30 02:25 | 显示全部楼层
已经解决
回复 支持 1 反对 0

使用道具 举报

发表于 2016-9-5 19:25 | 显示全部楼层
你是怎么解决的啊,我现在用wilson算法也是,出现无限大,检查不出问题啊,急急急
发表于 2016-9-6 12:56 | 显示全部楼层
怎么解决的?????楼主  吊胃口啊
发表于 2016-9-7 09:01 | 显示全部楼层
咋解决的啊?求指导
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-17 13:46 , Processed in 0.065840 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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