立即咨询有惊喜哦 !

logo
logo
简介
简介
联系方式
正脉科工有限元分析联系电话010-81387990
邮箱xyq@vipstq.com
 
 

结构线性静力分析

作者:管理员    发布于:2014-12-16 08:36:38    文字:【】【】【

一、 影响线的计算与绘制

      影响线的计算可采用:
       
静力法:用单位力依次作用在活载所有可能作用点,从而得到关心截面的力素;
       
机动法:用位移互等、内力-位移互等、反力-位移互等三个 影响线定理,一次求解即可得到关心截面某个力素的影响线。
   
静力法求解影响线的基本步骤是:
       
创建几何模型和有限元模型,同常规方法。
       
确定单位力作用的节点群及起始节点,并顺序记录节点号和节点坐标,以便逐点加载。
       
利用循环加载并求解。可采用定义荷载步文件求解或连续荷载步求解。
       
进入时程后处理,将节点坐标数组赋予变量,直接绘制某个力素的影响线。
   
用静力法可求得内力、反力、位移、应力等影响线。

1.   连续梁的影响线
   
如图所示三跨连续梁,为简化建模设为等截面梁。实际结构计算中,可能出现各种单元长度,故第一跨划分 50 个单元、第二跨和第三跨均划分 40 个单元。

     示例:

          !  EX6.37  连续梁的影响线计算
          finish  $ /clear  $ /prep7
          l1=40  $ l2=60  $ l3=40  $ et,1,beam3                                !
定义参数及单元类型
          mp,ex,1,3.3e10  $ mp,prxy,1,0.2  $ r,1,7.5,7,2.4                !
定义材料性质及实常数
          ! 
创建几何模型和有限元模型--------------------------------------------------
          k,1  $ k,2,l1  $ k,3,l1+l2  $ k,4,l1+l2+l3                               !
创建关键点

          l,1,2  $ l,2,3  $ l,3,4                                                            !
创建线
          lesize,1,,,50  $ lesize,2,,,40  $ lesize,3,,,40                        !
定义各线的单元划分数目
          lmesh,all  $ dk,all,uy  $ dk,2,ux                                          !
划分单元并施加约束

          !  确定单位力作用节点群和起始节点(由用户确定,这里未自动实现)-------
          nsel,all  $ n0=1                                                                  !
选择所有节点为作用节点群,起始节点号为
1
          nmax=ndinqr(0,13)                                                            !
获取作用节点群总数,即单位力作用点数

          *dim,p1node,,nmax                                                            !
定义作用节点群数组,存放单位力作用的节点号
          *dim,nodex,,nmax                                                              !
定义节点群X坐标数组,存放与节点号对应的X坐标
          p1node(1)=n0                                                                   !
将起始节点号赋予作用节点群数组 P1node(1)
          nodex(1)=nx(n0)                                                                !
n0 节点的 X 坐标赋予数组
nodex(1)
          *do,i,2,nmax                                                                      !
循环,从 2NMAX(节点群总数)

          ni=nnear(n0)                                                                     !
获取距离 n0 节点最近的节点号,并赋予 ni
          p1node(i)=ni                                                                      !
ni 存入数组 p1node(i),注意下标为节点群序号

          nodex(i)=nx(ni)                                                                  !
ni 节点的 X 坐标存入数组 nodex(i)
          nsel,u,,,n0                                                                         !
从当前节点集体中去掉 n0 节点,以单向获取节点号

          n0=ni  $ *enddo                                                                !
ni 节点号赋予变量 n0,实现循环中节点号的变化
          ! 
加载求解,这里定义荷载步并连续求解----------------------------------------------
          /solu  $ allsel,all                                                                !
选择所有图素,防止出现模型不完整

          *do,i,1,nmax                                                                      !
以作用节点群总数循环
          time,i  $ fdele,all,all                                                           !
定义时间标识,删除所有节点荷载(此命令必须)
          f,p1node(i),fy,-1                                                                !
顺序按节点群中的节点编号施加单位荷载
          solve  $ *enddo                                                                 !
求解,并继续循环直到结束

          !  进入时程后处理,绘制各种力素的影响线--------------------------------------
          /post26
          nsol,3,72,u,y                                                                     ! 
先任意定义一个变量,以便执行 Vput 命令

          vput,nodex,2                                                                     ! 
将数组 nodex() 赋予变量 2,即变量 2 X 坐标
          xvar,2                                                                                ! 
将变量 2 定义为 X 轴,也就是通常的影响线横坐标
          /xrange,nx(p1node(1)),nx(p1node(nmax))                         ! 
定义影响线长度范围
          /axlab,x,length(m)                                                              ! 
定义 X 轴名称
          /gropt,divx,(nx(p1node(nmax))-nx(p1node(1)))/10             ! 
定义 X 轴刻度数
          /gropt,view,on                                                                    ! 
将所绘制的影响线图设为可缩放模式(缺省为不缩放)
          nsol,3,72,u,y,uy_72                                                           ! 
定义节点 72 UY 为变量 3,名称为 UY_72
          /axlab,y,uy_72                                                                   ! 
定义 Y 轴名称为
UY_72
          plvar,3                                                                               ! 
绘制变量 3,即以变量 2 X 轴,以变量 3 Y 轴绘制曲线

          esol,4,70,72,m,z,mz_70r                                                    ! 
定义单元 70 节点 72 端的 MZ 为变量 4,名称为 MZ_70R
          /axlab,y,mz_70r                                                                  ! 
定义 Y 轴名称为
MZ_70R
          plvar,4                                                                                ! 
以变量 2 X 轴,以变量 4 Y 轴绘制曲线

          esol,5,70,72,f,y,fy_70r                                                       ! 
定义单元 70 节点 72 端的 FY 为变量 5,名称为 FY_70R
          /axlab,y,fy_70r                                                                   ! 
定义 Y 轴名称为
FY_70R
          plvar,5                                                                               ! 
以变量 2 X 轴,以变量 5 Y 轴绘制曲线

          rforce,6,2,f,y,ry_2                                                              ! 
定义节点 2 FY 为变量 6(反力节点)
          /axlab,y,ry_2  $ plvar,6                                                      ! 
定义 Y 轴名称,绘制曲线

二、 影响面的计算与绘制

    影响面的计算与影响线计算方法类似,可获得任意关心截面某力素的影响面,但无直接绘制影响面曲面的命令。
   
影响面的数据提取不同于影响线的数据提取,需要在 POST1 中采用 *GET 命令或函数逐一提取,提取数据后可采用第三方软件绘制曲面,或者利用 ANSYS 的特殊命令与特殊方法实现曲面的显示。
   
利用 ANSYS 中提取与绘制影响面的方法与步骤如下:
       
  创建几何模型和有限元模型,同常规方法。
       
  确定单位力作用的节点群及其节点编号,以便逐点加载,无需始点编号。
       
  利用循环加载并求解。可采用定义荷载步文件求解或连续荷载步求解。
       
  进入一般后处理,定义所需影响面数组,提取结果形成所需影响面数据;主要利用 SET 命令和结果获取命令,如 *GET 命令和 GET 函数。
       
  改变图形模式, 修改数据库结果(DNSOL, 显示影响面曲面 PLNSOL)。由于单位力大都在某个面内(平面或曲面,设为 XOY 平面),可将影响面数据以垂直 XOY 面绘制,因此可将所有影响面数据赋予 UZ,以 PLNSOL,U,Z 显示该曲面。

    示例:

        !  EX6.39  影响面及其显示
        ! 
创建几何模型和有限元模型(解释从略)
        finish  $ /clear  $ /prep7
        l1=6  $ l2=8  $ l3=4  $ b=5  $ t=0.4  $  cita=35*acos(-1)/180
        et,1,shell63  $ mp,ex,1,3.0e10  $ mp,prxy,1,0.2  $ r,1,t
        K,1$K,2,L1  $ K,3,L1+L2  $ K,4,L1*2+L2  $ K,5,L1-L3*COS(CITA),,-L3*SIN(CITA)
        K,6,L1+L2+L3*COS(CITA),,-
        L3*SIN(CITA)  $ L,1,2  $ L,2,3  $ L,3,4  $ L,2,5  $ L,3,6  $ k,10,,b
        l,1,10  $ *do,i,1,5  $ adrag,i,,,,,,6  $ *enddo
        ldele,6  $ aglue,all
        esize,1  $ amesh,all
        dk,1,ux,,,,uy,uz  $ ksel,s,,,4,6  $ dk,all,uz,,,,uy
        lsel,s,loc,x,kx(1)  $ lsel,a,loc,x,kx(4)  $ dl,all,,uz  $ lsel,s,loc,z,kz(5)
        dl,all,,ux  $ dl,all,,uz  $ allsel,all

        nmaxt=ndinqr(0,13)                                          ! 获取节点总数
        nsel,s,loc,z,0  $ nmax=ndinqr(0,13)                  !
选择单位力作用节点群,获取节点数
        *get,n0,node,,num,min                                     !
获取单位力作用节点群最小节点编号
        *dim,p1node,,nmax                                           !
定义节点群编号数组循环获取其他节点编号
        p1node(1)=n0                                                  !
将最小节点编号赋予节点群编号数组
        *do,i,2,nmax                                                     !
循环获取其他节点编号
        p1node(i)=ndnext(p1node(i-1))  $ *enddo
        finish  $ /solu  $ allsel,all                                  !
进入求解层,循环求解,然后进入 POST1
        *do,i,1,nmax  $ fdele,all,all  $ f,p1node(i),fz,-1  $ solve  $ *enddo
        finish  $ /post1
        *dim,n2uz,,nmax                                             !
定义节点 2 UZ 影响面数组

        *dim,n47uz,,nmax                                           !
定义节点 47 UZ 影响面数组
        *dim,n155rz,,nmax                                          !
定义节点 155 FZ 反力影响面数组
        *dim,e57mx,,nmax                                          !
定义单元 51 MX 影响面数组

         *do,i,1,nmax                                                  !  循环获取上述影响面数据
        set,i                                                                ! 
设置荷载步,以获取各个荷载步中的影响面数据
        n2uz(i)=uz(2)                                                  ! 
将节点 2 UZ 赋予数组 n2uz(i)
        n47uz(i)=uz(47)                                              ! 
将节点 47 UZ 赋予数组
n47uz(i)
        *get, n155rz(i),node,155,rf,fz                          ! 
获取节点 155 的反力 FZ 结果,并赋予变量

        *get, e57mx(i),elem,51,smisc,4                       ! 
获取单元 51 MX 结果,并赋予数组 n51MX(i)
        *enddo
        /graphics,full                                                   !  
设置图形模式,准备修改结果

        *do,i,1,nmaxt  $ dnsol,i,u,z,0  $ *enddo           ! 
循环将所有节点的 UZ 0
        *do,i,1,nmax  $ dnsol,p1node(i),u,z,n2uz(i)  $ *enddo                ! 
循环修改节点的 UZ 结果

        plnsol,u,z                                                         ! 
绘制节点 2 UZ 影响面
        *do,i,1,nmax  $ dnsol,p1node(i),u,z,n47uz(i)  $ *enddo
        plnsol,u,z                                                         ! 
绘制节点 47 UZ 影响面
        *do,i,1,nmax  $ dnsol,p1node(i),u,z,n155rz(i)  $ *enddo
        plnsol,u,z                                                         ! 
绘制节节点 155 FZ 反力影响面
        *do,i,1,nmax  $ dnsol,p1node(i),u,z,e57mx(i)  $ *enddo
        plnsol,u,z                                                         ! 
绘制单元 51 MX 影响面
        /device,vector,1  $ plnsol,u,z                           !
以等高线方式绘制影响面         

三、  结构温度应力的计算

     结构温度应力的计算是指已知温度场或温度梯度下的结构力学行为分析,而获取结构的温度场或温度梯度则需要热分析,当然也可进行热-结构耦合场分析直接获知结构的力学行为。
     1.   
温度输入
     
温度作为一种体荷载,可施加到有限元模型上,也可施加到几何模型上。对于可施加体荷载的单元,单元帮助文件中,明确指定了温度荷载的施加位置。
     
例如 BEAM3 单元共有 4 个温度施加位置,即 T1T2T3T4,每个节点有两个温度施加位置,如此可形成沿着截面高度和杆件长度方向都变化的温度场。而 BEAM4 则有 8 个温度施加位置,每个节点 4 个,可形成沿着截面高度、宽度和杆件长度方向变化的温度场。上述两个单元的温度施加可采用 BFE 命令,利用该命令的 STLOC 参数可输入多于 4 个的温度值。除上述两个单元外,BEAM23BEAM44 BEAM54 单元也可采用相同的施加温度方法。充分利用其缺省设置,可减少数据的输入。

     BEAM24 BEAM18X 系列单元采用的温度施加方法与上述梁单元不同。如 BEAM189 单元,每个端节点可输入 3 个位置的温度,分别是:

        T(0,0) - 单元 X 轴的温度,

         T(1,0) - 单元 Y 轴方向离开 X 轴单位长度位置的温度,

         T(0,1) - 单元 Z 轴方向离开 X 轴单位长度位置的温度。

    T(0,0) 缺省温度为 TUNIF,若其他位置温度未输入,则缺省为第一个温度值;若 I 节点的温度全部输入而 J 节点温度没有输入,则 J 节点温度缺省为与 I 节点对应的温度。
      
一般地,截面的高度或宽度并不等于单位长度,故需要将温度换算到单位长度位置的温度,然后依此数值施加。
     2D
平面单元通常可在单元的各个节点施加温度。
     SHELL
单元因有顶面和底面,其温度施加位置在每个角节点,且每个节点为两个。
     3D
体单元的每个节点都可施加温度,且每个节点一个温度值。
     
其他单元温度的施加位置可参见其单元帮助或单元介绍。

     超静定平面刚架,采用 BEAM4  BEAM189 单元,其温度输入要注意单元坐标系及位置,BEAM189 单元尚要注意温度的输入
方法。  

        !  EX6.41A  超静定梁的温度内力与变形 - beam4 单元
        finish  $ /clear  $ /prep7
        l=4  $ h=0.4  $ b=0.2  $ a0=b*h  $ i1=b*h**3/12  $ i2=h*b**3/12
        et,1,beam4  $ mp,ex,1,2.1e11  $ mp,prxy,1,0.3  $ mp,alpx,1,1.0e-5
        r,1,a0,i1,i2,b,h
        k,1  $ k,2,,l  $ k,3,l,l  $ l,1,2  $ l,2,3  $ dk,1,all  $ dk,3,uy  $ lesize,all,,,10  $ lmesh,all
        tref,20  $ bfe,all,temp,1,0,,,-10    

! 设置合龙温度,施加单元温度荷载
        /solu  $ solve  $ /post1  $ pldisp,1                                

 ! 求解并进入后处理

        !  EX6.41B  超静定梁的温度内力与变形 - beam189 单元
        finish  $ /clear  $ /prep7
        l=4  $ h=0.4  $ b=0.2  $ et,1,beam189  $ mp,ex,1,2.1e11
        mp,prxy,1,0.3  $ mp,alpx,1,1.0e-5
        sectype,1,beam,rect  $ secdata,b,h  $ k,1  $ k,2,,l  $ k,3,l,l  $ k,10,-l,2*l  $ l,1,2  $ l,2,3
        dk,1,all  $ dk,3,uy  $ latt,1,,1,,10,,1  $ lesize,all,,,10  $ lmesh,all
        tref,20                                                            

! 设置合龙温度
        bfe,all,temp,1,-5,-5,-10/h*(1+h/2)                 

! 施加单元I节点的温度荷载
        bfe,all,temp,4,-5,-5,-10/h*(1+h/2)                 

! 施加单元J节点的温度荷载
        /solu  $ solve  $ /post1  $ pldisp,1                 

! 求解并进入后处理
        etable,myi,smisc,2                                        

! 定义单元表为 MYi
        etable,myj,smisc,15                                       

! 定义单元表为 MYJ
        plls,myi,myj                                                   

! 绘制单元弯矩曲线

 
 
联系我们
 
 
 
图片
图片
多行文字
电话:010-81387990
手机:18301320667
联系人:李老师
网址:www.101315.com
邮箱:bjxu@vip.163.com
地址:北京市房山区良乡绿地启航国际商务办公区14号楼西楼5层
脚注信息
北京正脉科工科技有限公司  电话:010-81387990                            关注微信了解更多信息
版权所有 Copyright(C)2009-2013 京ICP备14038777号-1                                                                    
图片
图片