注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

火星号

new world,new start,new life

 
 
 

日志

 
 

CL_CONE_6yue6_last_version  

2010-06-07 08:36:02|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

!改变大端长度LL,直径DL、锥顶角aa、单元长度eesize
finish
/clear
*create,cylinder_pcr,mac
*AFUN,DEG
Pcr=0.3
DL=3000
aa=30    !!!!!!!!!!!!!!!!!! 锥半顶角
EE=2e5
LL=3000 !**************************************筒体长度gai
hh=pcr*LL*(exp(1.5*log(dL)))/2.59/EE
tt=exp(log(hh)/2.5)  
PP=1*DL/(4*tt)
eesize1=50  !***********************************单元长度
/prep7
  
ET,1,SHELL181            
KEYOPT,1,1,0
KEYOPT,1,3,0
KEYOPT,1,8,2
R,1,tt,tt,tt,tt, , ,
RMORE, , , , , , , 

MPTEMP,1,0 
MPDATA,EX,1,,2e5
MPDATA,PRXY,1,,0.3

K,1,(DL-tt)/2,,, 
K,2,(DL-tt)/2,,LL, 
K,3,0,,,
K,4,0,,1000,
lstr,1,2
lsel,all
LESIZE,all,eesize1, , , , , , ,0 !筒体轴向划分网格50
AROTAT,1, , , , , ,3,4,360, ,
lsel,s,loc,z,LL
LESIZE,all,eesize1, , , , , , ,0  !筒体周向划分网格50

aglue,all

!!!!!!!!!!!划分网格
MSHAPE,0,2D
MSHKEY,1
amesh,all

asel,s,area,,1,7,2
amesh,all
!!!!!!!!!!!!!!
alls
csys,1
NROTAT,all
nsel,s,loc,z,LL,        !固支

D,all, , , , , ,Uz
D,all, , , , , ,Uy
D,all, , , , , ,Ux
!D,all, , , , , ,ROTZ
!D,all, , , , , ,ROTy

!
nsel,s,loc,z,0,
nrotat,all
!D,all, , , , , ,ROTy
D,all, , , , , ,Uy
D,all, , , , , ,Ux
cp,1,uz,all

 

alls
/sol
asel,s,loc,x,(DL-tt)/2
SFA,all,2,PRES,1

LSEL,S,LOC,Z,0
SFL,all,PRES,PP,
LSEL,S,LOC,Z,LL
SFL,all,PRES,PP,
!
allsel
csys,0
ANTYPE,0
PSTRES,ON
SOLVE
SAVE
FINISH
/SOL
ANTYPE,1
BUCOPT,subsp,1,0,0
SUBOPT,0,0,0,0,0,ALL
MXPAND,1,0,0,0,0,0.001,
SOLVE
FINISH
SAVE
/POST1
SET,LIST
SET,FIRST
PLDISP,0

*get,pressure,mode,1,freq
nsort,u,sum
*get,max_disp_sum,sort,,max
*end
/input,cylinder_pcr,mac  !创建筒体临界压力的宏文件,并输入
PARSAV,SCALAR,'aa',' ',' '  !将求解的参数保存


!筒体-锥
*create,paremeter_cl_cone,mac
finish
/clear
PARRES,NEW,'aa',' ',' '  !!将clinder求解的参数恢复
*AFUN,DEG
Pcr=0.3
Do=3000
DL=do
aa=30    !!!!!!!!!!!!!!!!!! 锥半顶角
EE=2e5
LL=3000 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!筒体长度gai
hh=pcr*LL*(exp(1.5*log(do)))/2.59/EE
tt=exp(log(hh)/2.5)   !!!!!!!!!!!!!!!基准厚度由拉姆公式反算得到

!
LC=(Do/2)/tan(aa)
kk1=pcr*exp(2.5*log(do))
kk2=2*2.59*tan(aa)*EE*exp(2.5*log(TT))
k=kk1/kk2
bb1=pcr*Do*sqrt(do)*LL
bb2=2.59*EE*exp(2.5*log(TT))
b=bb1/bb2                           !公式y=kx+b的常数项
*end                                 !生成筒+锥基本参数的宏
/input,paremeter_cl_cone,mac
!************************************************************************************************************
*DIM,Array1,ARRAY,1/0.01+1,2,1,x,tickness,!此处的1/0.01与*do命令中的初始值0,终止值1以及步长0.01有关

  *do,x,0,1,0.01                    
  i=x*100+1
  Array1(i,1)=x                         !x的值
  Array1(i,2)=tt*exp(log(k*x+b)/2.5)  !对应的新厚度利用公式y=k*x+b
  *enddo
  !*VEDIT,,2     !列表显示

 

!!!!!!!!!输出数据文件
  *create,csx_cl_base,mac
  *cfopen,x-thickness,txt   !打开数据文件
  *vwrite,
  (/'*************array output by csx**************')
  *vwrite,array1(1,1),array1(1,2)
  (f10.3,2x,f10.3,2x,)   ! 十个数字长度,小数点后保留3位,2个空格
  *cfclos
  *end
  /INPUT,csx_cl_base,mac              !去ANSYS的工作根目录下找datefile.txt文件,即为x与厚度的关系
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!以下判定筒体和锥厚度

!求解基准厚度下的失稳波数
  nnn1=7.06*exp(3*log(do))
  nnn2=tt*exp(2*log(LL))
  nnn=exp(0.25*log(nnn1/nnn2))  !nnn为筒体失稳时波数
!封闭锥
Le=Do/2/tan(aa)/2
gg=Pcr*le/2.59/EE/Do
tt_cone=Do*exp(log(gg)/2.5)    !锥有效厚度
tt_base=tt_cone/cos(aa)         !锥计算厚度
*if,tt,ge,tt_base,then          ! 选取筒体和锥厚度较大的作为基准厚度
  tickness_base_CL=tt                !tt大于等于tt_base返回tt                     
*else
   tickness_base_cone=tt_base  
*endif
*if,tt,ge,tt_base,then          ! 选取筒体和锥厚度较大的作为基准厚度
  tickness_base=tt                !tt大于等于tt_base返回tt                     
*else
  tickness_base=tt_base  
*endif
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


!********************************************************************************************************
x=1     !!!!!!!!!!!!!!!!!初始锥壳的轴向比例长度,此处更改!!!!!!!!!!!!!gai
*create,cl_cone_part,mac

!

!
y=k*x+b
zz=tt*exp(log(y)/2.5)  ! 对应的新厚度
!求解基准厚度下的失稳波数
nnn1=7.06*exp(3*log(do))
nnn2=tt*exp(2*log(LL))
nnn=exp(0.25*log(nnn1/nnn2))  !nnn为波数
tt1=zz
!校核筒-锥

 


L=LL+x*Lc
qq1=2.59*ee*exp(2.5*log(tt1))
qq2=L*exp(1.5*log(DL))
pcr_cl_cone=qq1/qq2
eesize2=50
 

 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
DL=3000
Lc=DL/(2*tan(aa))  !锥壳体总长度
rS=0       ! DL/2-x*Lc*tan(aa)        !锥壳小端外半径
ds=0       !2*rs                     !锥壳小端外径


PP1=1*DL/(4*tt1)
nn1=nint(LL/60)   !筒体划分
nn2=NINT(2598/60) !锥壳划分   
/prep7
  
ET,1,SHELL181            
KEYOPT,1,1,0
KEYOPT,1,3,0
KEYOPT,1,8,2
R,1,tt1,tt1,tt1,tt1, , ,
RMORE, , , , , , , 

MPTEMP,1,0 
MPDATA,EX,1,,2e5
MPDATA,PRXY,1,,0.3
! 无中节点的轴对称2D表面效应单元

 


K,1,(DL-tt1)/2,,, 
K,2,(DL-tt1)/2,,LL,
k,5,0,,LL+Lc
K,3,0,,,
K,4,0,,10000,
lstr,1,2
lstr,2,5
lsel,all
LESIZE,all,eesize2, ,, , , , ,0    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!筒体和锥壳轴向划分网格长度为50


AROTAT,all, , , , , ,3,4,360, ,
alls

BTOL,0.001
asel,s,loc,z,LL,LL+lc
aglue,all
asel,s,loc,z,,LL
aglue,all
alls
aglue,all
BTOL,1e-5

alls

 

alls
MSHAPE,0,2D
MSHKEY,1
asel,s,loc,z,LL,LL+lc
amesh,all
alls
asel,s,loc,z,0,LL
amesh,all

 

alls
csys,1
NROTAT,all
nsel,s,loc,z,-0.1,0.1        !固支

D,all, , , , , ,Uz
D,all, , , , , ,Uy
D,all, , , , , ,Ux
!D,all, , , , , ,ROTZ
!D,all, , , , , ,ROTy

!
!nsel,s,loc,z,LL+LX,
!nrotat,all
!D,all, , , , , ,ROTy
!D,all, , , , , ,Uy
!D,all, , , , , ,Ux
!cp,1,uz,all

 

alls
/sol
asel,s,loc,x,(DL-tt)/2
SFA,all,2,PRES,1
asel,s,area,,9,12,1
SFA,all,2,PRES,1

LSEL,S,LOC,Z,0
SFL,all,PRES,PP1,

!
allsel
csys,0
ANTYPE,0
PSTRES,ON
SOLVE
SAVE
FINISH
/SOL
ANTYPE,1
BUCOPT,subsp,1,0,0
SUBOPT,0,0,0,0,0,ALL
MXPAND,1,0,0,0,0,0.001,
SOLVE
FINISH
SAVE
/POST1
SET,LIST
SET,FIRST
PLDISP,0

*get,pressure1,mode,1,freq
nsort,u,sum
*get,max_disp_sum,sort,,max

 

 

*end
/input,cl_cone_part,mac

!!!!!!!!!!!进入循环体之前定义存储x、厚度、临界压力的数组
i=1
*DIM,Array2,ARRAY,1/0.01+1,3,1,x,Y!定义数组
x1=0
x2=1
PARSAV,all,'cc',' ',' '  !将求解的参数和数组保存
!!!!!!!!!!!!!!!进入循环体
Key=1
*dowhile,Key
/input,paremeter_cl_cone,mac
PARRES,NEW,'cc',' ',' ' 恢复上一次循环的参数
x=(x1+x2)/2
/input,cl_cone_part,mac
*if,pressure1,gt,pressure,then
x2=x
*elseif,pressure1,lt,pressure,then
x1=x
*endif


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!对结果进行判断,如果满足条件继续返回到dowhile进行循环
*if,pressure1,gt,pressure+0.001,or,pressure1,lt,pressure-0.001,then   !ask
  Key=1

  Array2(i,1)=x                         !x的值
  Array2(i,2)=tt1 !对应的新厚度利用公式y=k*x+b
  Array2(i,3)=pressure1 !对应的压力
  i=i+1
  PARSAV,all,'cc',' ',' '  !将下一次的参数保存
*else
  Key=0
  !最后一次计算的压力输出(符合要求的)
  Array2(i,1)=x                         !x的值
  Array2(i,2)=tt1 !对应的新厚度利用公式y=k*x+b
  Array2(i,3)=pressure1 !对应的压力
*endif
*enddo
!初始圆筒的数据厚度、x、临界压力
   Array2(i+1,1)=array1(1,1)
   Array2(i+1,2)=array1(1,2)
   Array2(i+1,3)=pressure
!初始的基准厚度
   ARRAY2(i+2,1)=tt    !圆筒的计算厚度
   ARRAY2(i+2,2)=tt_base  !锥壳的计算厚度
   ARRAY2(I+2,3)=thickness_base  !最后的基准厚度


 
! 生成对应的文本文件,可以导入到excel中 
  *create,csx_cl+cone_base,mac
  *cfopen,x-thickness-pcr,txt   !打开数据文件
  *vwrite,
  (/'*************array output by csx**************')
  *vwrite,array2(1,1),array2(1,2),array2(1,3)
  (f10.6,2x,f10.6,2x,f10.6)   ! 十个数字长度,小数点后保留3位,2个空格
  *cfclos
  *end
  /INPUT,csx_cl+cone_base,mac              !去ANSYS的工作根目录下找datefile.txt文件,即为x与厚度的关系

  评论这张
 
阅读(426)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017