⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 input-base-isolator2

📁 有限元程序
💻
字号:
/* *  ========================================================================== *  Force-displacement analysis for one lead-rubber isolator modeled with *  FRAME_3DS element having four lead fibers and four rubber fibers.                    *  *  Each fiber in each direction has one individual shear spring.    *                                                                   *  Isolator Geometry and Material Properties *                                                                   *     650mm diameter x 197mm height with 170mm diameter lead plug        *     Axial stiffness for rubber is the same as lead, (E_rubber=E_lead). *     Shear stiffness for lead after yielding is 0, (Gt)lead=0.          *     Shear stiffness for rubber is always elastic.                      *                                                                   *  Written By : Wane-Jang Lin                                       July 1997 *  ========================================================================== */NDimension         = 3;NDofPerNode        = 6;MaxNodesPerElement = 2;GaussIntegPts      = 2;StartMesh();iso_h = 197 mm;r_dia = 650 mm;l_dia = 170 mm;Kv = 600 kN/mm;Ea = Kv*iso_h/(PI/4*r_dia*r_dia);E_lead  = Ea;G_lead  = 130 MPa;fv_lead = 10 MPa;Kr = 1.75 kN/mm;G_rubber = Kr*iso_h/(PI/4*(r_dia*r_dia-l_dia*l_dia));E_rubber = Ea;AddNode( 1, [ 0 m, 0 m, iso_h ] );AddNode( 2, [ 0 m, 0 m,   0 m ] );AddElmt( 1, [1,2], "isolator_attr");ElementAttr("isolator_attr") { type     = "FIBER_3DS";                               section  = "iso_sec";                               material = "iso_mat";                               fiber    = "iso_fib";                             }SectionAttr("iso_sec") { area  = PI/4*r_dia*r_dia;                         depth = r_dia;                         width = r_dia;                         unit_weight  = 0.0001 kN/m;                         shear_factor = 1.0;                         J            = PI/32*r_dia^4;                       }MaterialAttr("iso_mat") { poisson  = 0.4;                          E        = 3.562e8 N/m^2;                        }no_fiber_type = 2;divid_no      = 4;theta = PI/divid_no;l_r = l_dia*sin(theta)/theta/3;r_r = r_dia*sin(theta)/theta/3;no_fiber = 2*divid_no;fcoord = Matrix([ 2, no_fiber ]);farea  = Matrix([ 1, no_fiber ]);fmap   = Matrix([ 1, no_fiber ]);for( i=1 ; i<=divid_no ; i=i+1 ) {   fcoord[1][i] = l_r*cos((2*i-1)*theta);   fcoord[2][i] = l_r*sin((2*i-1)*theta);   farea[1][i]  = theta*l_dia*l_dia/4;   fmap[1][i]   = 1;   fcoord[1][i+divid_no] = r_r*cos((2*i-1)*theta);   fcoord[2][i+divid_no] = r_r*sin((2*i-1)*theta);   farea[1][i+divid_no]  = theta*(r_dia*r_dia - l_dia*l_dia)/4;   fmap[1][i+divid_no]   = 2;}fattr  = Matrix([ 6, no_fiber_type ]);for( j=1 ; j <= no_fiber_type ; j=j+1 ) {   if( j == 1 ) {  /* lead */      fattr[1][j] = E_lead;      fattr[2][j] = E_lead;      fattr[3][j] = 10e6 MPa;      fattr[4][j] = G_lead;      fattr[5][j] = G_lead*1e-6;      fattr[6][j] = fv_lead;   }   if( j == 2 ) {  /* rubber */      fattr[1][j] = E_rubber;      fattr[2][j] = E_rubber;      fattr[3][j] = 10e6 MPa;      fattr[4][j] = G_rubber;      fattr[5][j] = G_rubber;      fattr[6][j] = 10e6 MPa;   }}FiberAttr( no_fiber, "iso_fib" ) { FiberMaterialAttr = fattr;                                   FiberCoordinate   = fcoord;                                   FiberArea         = farea;                                   FiberMaterialMap  = fmap;                                 }FixNode(2,[1,1,1,1,1,1]);EndMesh();/* Apply compressive axial load to isolator */   stiff = Stiff();   NodeLoad( 1, [ 0 kN, 0 kN, -3150 kN, 0 kN*m, 0 kN*m, 0 kN*m] );   P_old = ExternalLoad();   displ = Solve( stiff, P_old );   ElmtStateDet( displ );   stiff = Stiff();/* Now apply lateral loads */   dof     = GetDof([1]);   max_dof = dof[1][1];   print "\n*** Force-displacement hysteretic loop analysis\n";    print "Step no\t Shear Force\tDisplacement\n";   step = 0;   print step,"\t",P_old[max_dof][1](kN),"\t",displ[max_dof][1](mm),"\n";   no_step = 180;   for( step=1 ; step <= no_step+1 ; step=step+1 ) {      /* define force-controled load increment */      if( step == 1 ) then {          NodeLoad( 1, [ 200 kN, 0 kN, 0 kN, 0 kN*m, 0 kN*m, 0 kN*m] );      } else {         if( step <= 21 ) {             NodeLoad( 1, [  10 kN, 0 kN, 0 kN, 0 kN*m, 0 kN*m, 0 kN*m] );         }         if( step > 21  && step <= 101 ) {             NodeLoad( 1, [ -10 kN, 0 kN, 0 kN, 0 kN*m, 0 kN*m, 0 kN*m] );         }         if( step > 101 ) {             NodeLoad( 1, [  10 kN, 0 kN, 0 kN, 0 kN*m, 0 kN*m, 0 kN*m] );         }      }      P_new = ExternalLoad();      dP    = P_new - P_old;      P_old = P_new;      /* Newton-Raphson Iteration for State Determination */      while( L2Norm(dP) > 0.001 ) {         dp    = Solve( stiff, dP );         displ = displ + dp;         ElmtStateDet( dp );         stiff = Stiff();         PR    = InternalLoad( displ );         dP    = P_new - PR;        /* Compute unbalanced force */      }        UpdateResponse();      print step,"\t",P_new[max_dof][1](kN),"\t",displ[max_dof][1](mm),"\n";   }    print "\n";   print "===========================\n";   print "Nonlinear Analysis Complete\n";   print "===========================\n";   quit;

⌨️ 快捷键说明

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