|
回复:(jifs2000)[求助]节点压力加载方法&UIDL二次开...
一:关于压力的加载(感谢和aggie网友的探讨) <BR>加载过程在循环后进行,利用SFFUN命令把节点与节点压力相匹配。 <BR>缺点:每个节点需要匹配,导致数组维数太大。 <BR><BR>如,下面指定节点 <BR>1、2,3,4处的表面载荷值。 <BR>*DIM,ABC,ARRAY,4 <BR>ABC(1)=10,20,30,40 <BR>SFFUN,PRES,ABC(1) <BR>SF,ALL,PRES,100 !匹配后,还需加载 <BR>则节点1处的压力值为110,节点2处压力载荷为120,依次类推。 <BR>Main Menu>Solution>Settings>Node Function命令用于把数组变量为节点加载。 <BR><BR>在圆柱外表面0~180度之间加余弦分布载荷。 <BR>全部程序如下: <BR>/prep7 <BR>*afun,deg <BR>et,1,45 <BR>mp,ex,1,2e11 <BR>mp,prxy,1,0.3 <BR>cyl4,,,0.5,,,,1 <BR>smrtsize,1 <BR>vsweep,all <BR>*get,etotnum,node,,count <BR>*dim,t1,array,etotnum,1,1 <BR>csys,1 <BR>*do,i,1,etotnum <BR>*if,ny(i),gt,0,then <BR> *if,ny(i),lt,180,then <BR> *if,nx(i),eq,0.5,then <BR> t1(i)=100*cos(ny(i)) <BR> *else <BR> t1(i)=0 <BR> *endif <BR> *endif <BR>*endif <BR>*enddo <BR>sffun,pres,t1(1) !建立节点号与表面载荷的对应关系 <BR>sf,all,pres,0 !加载 <BR><BR>二:关于力和位移的加载(这里转David2003网友的帖子,原贴由于设置积分限制,很多网友看不见,这里一并转来,做一个总结) <BR><BR>在内孔120度范围内的面上加载与位置有关的面力,还有一部分施加了位移约束。 <BR>/prep7 <BR>*afun,deg <BR>et,1,45 <BR>mp,ex,1,2e11 <BR>mp,prxy,1,0.3 <BR>wpave,0,0,0 <BR>cyl4,0,0,1,360,1.5,360,0.5 <BR>smrtsize,1 <BR>vsweep,all <BR>*get,etotnum,node,,count <BR>*status <BR>CSWPLA,11,1,1,1 <BR>nrotat,all <BR>cscir,11,1 <BR>*do,i,1,etotnum <BR>*if,ny(i),gt,0,then <BR> *if,ny(i),lt,60,then <BR> *if,nx(i),eq,1,then <BR> d,i,all,0 <BR> *endif <BR> *endif <BR>*endif <BR>*enddo <BR>*do,i,1,etotnum <BR>*if,ny(i),gt,120,then <BR> *if,ny(i),lt,240,then <BR> *if,nx(i),eq,1,then <BR> p=cos(ny(i)) <BR> f,i,fx,p <BR> *endif <BR> *endif <BR>*endif <BR>*enddo <BR>eplot <BR><BR>几点说明 <BR>1:加载任意函数载荷时,由于有限元计算采取离散加载到结点的方法,使得加载数值在相邻结点之间以直线近似代替曲线函数。这就要求网格划分的足够细,才能提高近似精度。 <BR>2:对于施加压力,结点上压力(df/ds)的单位是力/面积,对每个节点压力数值积分后的值就是总力的大小,对结点施加压力不能象加力那样(可以在单个结点上加),而应该选用数组匹配的方式加载。 <BR> |
|