|
各位粉丝大家好,针对一直有粉丝提问 如何获取梁单元截面栅格点和积分点计算结果的问题,现就做一个系统性的解答,这里的梁单元特指Beam188/189,至于有粉丝会疑问为什么要输出栅格点和积分点的信息,水哥认为可能的原因如下:1、应力应变结果精确度积分点>栅格点>单元节点解;采用ANSYS做过自定义截面类似分析的同学都会知道这样一个步骤,在具体定义截面之前,都会进行截面绘制以及网格划分、截面写出然后截面读入的操作,并且在网格划分时单元类型只能指定为八节点的平面单元类型,如Plane82亦或者Mesh200,当然Mesh200需要将单元关键项1设置为7,代表8节点平面单元,那这是为啥呢?其实这和ANSYS梁单元截面计算的假定有关,在ANSYS计算中,默认会将截面进行栅格化划分,每个栅格由8个节点组成,每个栅格里面包括4个积分点,所以当自定义截面时,我们所进行的网格划分其实就是栅格划分,且必须满足8节点要求,所以单元类型必须指定为82或者200了,而对于系统自带截面类型,则通过Secdata命令输入参数由软件自动划分,如下图为常见矩形截面输入参数,B和H分别代表截面的宽和高,而后面两个参数NB和NH则代表在宽度和高度方向上截面栅格划分个数,默认为2,用户可自由输入。每一个栅格由8个节点组成,一般将栅格与栅格相交处共用的节点称之为角栅点,如下图所示的空心原点,而在中间的节点则称之为栅点,如下图所示的实心原点,图中星号代表积分点。对于梁单元截面,特别是自定义复杂截面,如桥梁里面的箱梁,我们若要输出或者获取特定位置处的应力或者应变情况,需要知道在该位置处的栅点信息,主要是了解其栅点编号以方便后续结果提取,获取过程需要两个比较重要的命令,Secplot以及Slist。 上图是secplot命令的帮助说明,根据后续参数的变化可以输出不同的截面信息内容,如当VaL1值为1,输出截面几何信息;当为2时,图形显示截面栅点编号信息;当为3时,图形显示截面栅格编号信息,对于积分点编号无法显示,只能通过Slist命令列出积分点编号以及相应的位置坐标;当为6、7时分别显示结果文件输出时栅点和栅格输出顺序,值得说明的是对于系统自带的截面,栅点和积分点输出顺序为先下后上,从左到右,逆时针输出。如需要知道每个栅点或者积分点的位置坐标,则可以通过Slist进行列表显示,如下为一圆环截面的栅点显示以及对应的坐标,代码如下:
!定义截面 sectype,1,beam,ctube secdata,0.6,0.8,32 !对默认栅格划分进行加密 !显示截面信息 secplot,1,2 slist,1,,,full
栅点编号
栅点以及积分点编号和位置坐标 想要获取特定位置积分点或者栅点的数据,主要步骤如下: 1、定义截面后,通过Secplot或者Slist命令获取需要提取点位的栅点编号或者积分点编号; 2、对Beam188/189的关键项进行输出设置,主要进行如下关键项的设置:1)、关键项4,主要设置横截面剪应力的输出,默认只输出扭转剪应力,可设为1,只输出横向剪应力,也可设置为2,输出两者组合应力。2)、关键项6~9,主要设置截面栅点和积分点结果数据的输出,注意设置关键项6~9时,需要使用命令Outpr,esol才会被激活。3)、关键项15,默认为0,表示结果数据文件是写入栅点结果数据,如需要积分点数据,则应设置为1。4)、使用*get命令获取具体点位的数值,使用格式如下: *get,Sax,secr,Elenum,s,x,Ival,Snum上式中,Sax表示最后获取的数值,elenum表示获取的单元编号,Ival表示获取的该单元I节点位置截面,若需要获取J节点位置的截面数据,则应该为Jval,Snum表示栅点或者积分点编号,当Key(15)=0时,输入栅点编号;当Key(15)=1时,输入积分点编号。为验证本文方法有效性,现以一个截面尺寸为0.2mx0.4m的2m悬臂梁为例,目标提取顶部中间位置正应力以及中间位置剪应力,并与理论解比较。et,1,beam188 keyopt,1,3,3 keyopt,1,4,1 keyopt,1,6,2 keyopt,1,7,2 keyopt,1,9,3 keyopt,1,15,0 2)定义矩形截面,找到需要提取位置处栅点的编号,此案例顶部观测栅点编号为23,中部观测栅点编号为13。
!定义截面 sectype,1,beam,rect secdata,0.2,0.4 !======================== secplot,1,2 slist,1,,,full
k,1, k,2,2 k,3,0,1 l,1,2 latt,1,,1,,3 lesize,all,,,10 lmesh,all dk,1,all,0 fk,2,fy,-10e3 /solu Outpr,esol allsel,all solve /post1 /eshape,1 plnsol,s,x !弯矩正应力 plnsol,s,xz !横向剪应力
截面正应力分布(Pa)
截面横向剪应力分布(Pa) prssol !列表显示栅点结果 !获取1号单元I节点23号栅点正应力 *get,Sx23,secr,1,s,x,Ival,23 !获取1号单元I节点13号栅点横向剪应力 *get,Sxz13,secr,1,s,xz,Ival,13 通过对比可见,采用上述*get命令后成功获取了指定位置处的应力结果。细心的同学可能会发现在上述剪应力分布图中或者本步骤显示的栅点 横向剪应力顶部栅点剪应力不为0,按照公式Sxz=Fs*Sz/b/Iz,在顶端剪应力应为0,这是为什么呢?水哥个人认为原因如下(注意是个人理解哦):顶部栅点结果从积分点结果派生而来,前文说过,一个栅格里面包含四个积分点,故积分点在断面上的位置总是离顶端具有一定距离,无论如何划分网格,按公式来理解,剪应力一直存在。同理,按正应力公式Sx=Mz*h/Izz,由于积分点距离顶端有一定距离,故正应力与理论解也总是有一定误差。Sx理论解=10000*2/0.001067*0.2=3748828.49Pa,计算解误差为(3749999.99-3748828.49)/3748828.49=0.031%Sxz理论解=1.5*10000/0.08=187500Pa,计算解误差为(218750-187500)/187500=16.67% 可见剪应力误差较大,这或许、大概、Maybe、可能解释为什么我们翻遍了188/189单元输出表,只会看到弯曲应力单元表的输出却无截面最大剪应力的输出。为了减少计算误差,我们需要想办法尽可能在顶端布置积分点,故一个办法就是对截面进行加密,对于自定义截面而言就是加密网格,对于采用截面库而言可在secdata命令输入时人为加大截面划分段数,下列分别列出了本案例当Nb=10,Nh=10与当Nb=20,Nh=20时候的截面云图,大家可自行感受。Nb=10,Nh=10
Nb=20,Nh=20
但应注意,将截面网格细化之后,结构求解时间将大大增长,同时结果数据文件大小将成几何倍增长,水哥建议实际建模时,可以在关心的部位局部采用细化网格后的梁单元,其他部位采用默认值,其宏观求解结果(例如弯矩、剪力、轴力等)依然可以达到相当高的精确度。码字不易,觉得有用的同学可以帮水哥分享一波哦,还可以点一点 右下角的 在看 呢~ 最后,祝大家端午快乐~有兴趣的同学投个票呐,权当娱乐,大家是喜欢吃甜粽子还是咸粽子呢,嘿嘿~
|
|