subfunflexibilitymatrix_waterboxcantilever.m

来自「主要用于高层建筑的减振设计,根据线性振动理论,用matlab高级语言编写而成,由」· M 代码 · 共 40 行

M
40 行
字号

function FlexM=SUBFunFlexibilityMatrix_WaterBoxCantilever(L,n,d1,d2,E)
% n--------将杆分为n段
% L--------为杆长
%d1--------钢管的内直径
%d2--------管的外直径
%E---------弹性模量2.1*10^11

Le=L/n; 
Lwe=Le;       %水箱高度
r1=d1/2;      %钢管的内半径
r2=d2/2;      %钢管的外半径
I=pi*(d2^4-d1^4)/64; 

n=n+1;
FlexM=zeros(n,n);
for j=1:n
     a=Le*j;      %力的作用位置
     if (j==21)
         for i=1:n
             x=Le*i;   %位移位置
             if (i==21) 
                  TL=L+Lwe;
                  FlexM(i,j)=(6*TL^3+9*TL^2+L^3+L^2-9*TL*L)/(6*E*I); % (x=L+Lwe)
              else
                  FlexM(i,j)=x^2*(3*(L+Lwe)-x)/(6*E*I); % (0=<x=<L)
              end
          end
      else
          for i=1:n
             x=Le*i;   %位移位置
             if (i<j)   
                  FlexM(i,j)=x^2*(3*a-x)/(6*E*I); % (0=<x=<a)
              else
                  FlexM(i,j)=a^2*(3*x-a)/(6*E*I); % (a=<x=<L+Lwe)
              end
          end
      end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?