353025荷载系数201510500.000失跨比为1/5矢跨比为1/40.0200.0400.0600.0800.1000.1200.1400.1600.180 最大初始缺陷(m)可以看出,矢跨比对结构稳定承载极限荷载有较大影响,矢跨比大的结构,荷载系数将越大,网壳结构的整体稳定性越好。同时,随着初始缺陷值增大,结构整体稳定性能也随之下降。失跨比与初始缺陷同样影响着结构的整体稳定性能。
8 考虑杆件材料非线性
使用原始模型,失跨比为1/5,最大初始缺陷为0.0993m(0.1倍),不考虑材料非线性时屈曲荷载系数为5.80,同时考虑材料非线性,荷载系数为5.70,结果如下图。《规程》要求当按弹性全过程分析时,安全系数K可取为2.0,此模型同样符合要求。材料特性如图。
同时考虑几何非线性和材料非线性141210荷载系数864200500最大节点位移1,000 9 附本文使用所有命令流
1)建立网壳K6凯威特网壳
/PMACRO ! 指定宏的内容被写入ANSYS的会话LOG文件中,必须置于命令顶层 *AFUN,DEG ! 在角度函数的输入与输出中使用度为单位 /PREP7 ! 进入前处理模块PREP7
!(1) 用户界面设计,输入基本几何参数
MULTIPRO,'START',4 ! 生成多行提示对话框 *CSET,1,3,f,'Rise f= (m)',8 ! 输入矢高f
*CSET,4,6,Span,' Span=(m)',40 ! 输入跨度Span
*CSET,7,9,Kn,'Radial Number(input even) =',6 !输入沿环向分割的份数Kn *CSET,10,12,Nx,'Node Circle Number Nx =',5 !输入环杆圈数Nx *CSET,61,62,'Please input geometry parameters of the shell.'
!在对话框顶部显示提示“ Please input geometry parameters of the shell” MULTIPRO,'END'
!(2) 计算节点坐标位置,并定义节点
CSYS,2 !转换为球面坐标系
R=(Span*Span/4+f*f)/(2*f) !根据矢高和跨度计算曲面半径R
DPha=Atn(Span/2/Sqrt(R*R-Span*Span/4))/Nx !计算相邻两圈环杆对应的球心夹角Dpha N,1,R,0,90 ! 定义顶点1号节点的位置坐标为(R,0,90) *DO,i,1,Nx ! 第1~Nx圈的节点循环
*DO,j,1,Kn*i ! 对称区的节点循环,第i圈可分为Kn*i份 x=R ! 输入x坐标
y=(j-1)*360/(Kn*i) ! 输入y坐标,各圈上的节点数目为Kn倍圈号 z=90-i*DPha ! 输入z坐标
N,1+Kn*(i-1)*i/2+j,x,y,z ! 依次计算并定义节点的编号和位置 *ENDDO *ENDDO
Numnode=1+Kn*(Nx-1)*Nx/2+Kn*Nx !定义结点最大编号 !(3)定义单元类型及实常数
RTNUM=1 ! 可输入的实常数类型最大数(为节省篇幅,本例只输入一种实常数类型) *DIM,AREAIN,ARRAY,RTNUM ! 定义杆件截面面积数组 *DIM,IZZIN,ARRAY, RTNUM ! 定义面积惯性矩数组 *DIM,IYYIN,ARRAY, RTNUM ! 定义面积惯性矩数组
*DIM,TKZIN,ARRAY, RTNUM ! 定义截面沿Z轴高度数组 *DIM,TKYIN,ARRAY, RTNUM ! 定义截面沿Y轴高度数组 *DIM,THETAIN,ARRAY, RTNUM ! 定义杆件轴线与X轴夹角数组 *DIM,ISTRNIN,ARRAY, RTNUM ! 定义初始应变数组 *DIM,IXXIN,ARRAY, RTNUM ! 定义扭矩数组
*DIM,SHEARZIN,ARRAY, RTNUM ! 定义剪切变形常量数组 *DIM,SHEARYIN,ARRAY, RTNUM ! 定义剪切变形常量数组 MULTIPRO,'START', 1 ! 生成单元类型选择对话框
*CSET,1,3,eltype,'Link8 Input 0, Beam4 Input 1',1 ! 选择单元类型,输入0为选择link8,输入1为选择beam4,也可通过改变本部程序增加新的单元类型。
*CSET,61,62,'Element Type 1 Option:' MULTIPRO,'END'
*IF,eltype,eq,0,then ! 若输入0,即eltype=0
ET,1,link8 ! 定义第1类单元类型为杆单元link8 *ENDIF
*IF,eltype,EQ,1,THEN ! 若输入1,即eltype=1
ET,1,beam4 ! 定义第1类单元类型为梁单元beam4 *ENDIF
MULTIPRO,'START',10 ! 生成第一类实常数R1输入对话框
*CSET,1,3,AREAIN(1),'Section Area (mm^2), AREA(1) =',23.09E-4 *CSET,4,6,IZZIN(1),'Area moment of inertia, IZZ(1) =',624.43E-8 *CSET,7,9,IYYIN(1),'Area moment of inertia, IYY(1) =',624.43E-8 *CSET,10,12,TKZIN(1),'Thinkness along Z axis, TKZ(1) =',0.152 *CSET,13,15,TKYIN(1),'Thinkness along Y axis, TKY(1) =',0.152 *CSET,16,18,THETAIN(1),'Orientation about X axis, THEAT(1) =',0 *CSET,19,21,ISTRNIN(1),'Initial strain, ISTRN(1) =',0
*CSET,22,24,IXXIN(1),'Torsional moment of inertia, IXX(1) =', 0 *CSET,25,27,SHEARZIN(1),'Shear deflection const Z, SHEARZ(1) =',0 *CSET,28,30,SHEARYIN(1),'Shear deflection const Y, SHEARY(1) =',0 *CSET,61,62,'Input Real Constant 1:'
*CSET,63,64,'Just input AREA if link8 was used:' !若选择杆单元只需输入截面面积 MULTIPRO,'END'
*DO,i,1, RTNUM ! 利用数组定义单元实常数
*IF,eltype,EQ,0,THEN ! 若选择的是杆单元,即eltype=0 R,i,AREAIN(i) ! 定义杆单元截面积 *ENDIF
*IF,eltype,EQ,1,THEN ! 若选择的是梁单元,即eltype=1
R,i,AREAIN(i),IZZIN(i),IYYIN(i),TKZIN(i),TKYIN(i),THETAIN(i),ISTRNIN(i),IXXIN(i),SHEARZIN(i),SHEARYIN(i),,500 ! 定义梁单元截面实常数
*ENDIF *ENDDO
MULTIPRO,'START',3 ! 生成材料属性输入对话框
*CSET,1,3,EXIN,'Elasticity (GPa), EX =',2.1e11 ! 输入弹性模量EX *CSET,4,6,PRXYIN,'Passion Ratio, PRXY =',0.3 ! 输入泊松比PRXY
*CSET,7,9,DENSIN,'Dens of steel, DENS =',7850 ! 输入材料的密度DENS *CSET,61,62,'Input Material Property:' MULTIPRO,'END'
MP,EX,1, EXIN ! 定义第1类材料的弹性模量EX MP,PRXY,1,PRXYIN ! 定义第1类材料的泊松比PRXY MP,DENS,1,DENSIN ! 定义第1类材料的密度DENS !(4) 定义单元连接
MULTIPRO,'START',3 ! 生成材料属性输入对话框
*CSET,1,3,TYPEIN,'Eelment Type Number',1 ! 输入单元类型号 *CSET,4,6,MATIN,'Material Type Number',1 ! 输入材料属性号 *CSET,7,9,DENSIN,'Real Constance Number',1 ! 输入实常数号 *CSET,61,62,'Input Material Type Number:' MULTIPRO,'END'
TYPE,TYPEIN ! 设置单元类型
MAT,MATIN ! 设置材料属性类型 REAL,REALIN ! 环向杆连接
*DO,i,1,Nx ! 第1~Nx圈的节点循环
*DO,j,1,Kn*i-1 ! 第1~Kn*i-1对称区的节点循环
E,1+Kn*(i-1)*i/2+j,1+Kn*(i-1)*i/2+j+1 ! 连接相邻两节点生成单元 *ENDDO
E,1+Kn*(i-1)*i/2+1,1+Kn*(i-1)*i/2+Kn*i ! 连接最后一对称区的环杆 *ENDDO
! 径向的单元连接
*DO,i,1,Kn ! 对各对称区循环
E,1,1+i ! 定义中心处径向杆单元 *ENDDO
*DO,i,1,Nx-1 ! 从里圈第2圈开始向最外圈循环 *DO,j,1,Kn ! 对各个对称区循环
*DO,k,1,i+1 ! 对每个对称区内的杆循环
*IF,k,EQ,i+1,THEN ! 判断是否是当前对称区内的最后一根杆 *IF,j,EQ,Kn,THEN ! 判断是否是最后一个对称区
E,1+Kn*(i-1)*i/2+1,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k ! 第1个节点和最后一个节点的连杆 *ELSE
E,1+Kn*(i-1)*i/2+(j-1)*i+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k !一般区内的最后一根连杆 *ENDIF *ELSE
E,1+Kn*(i-1)*i/2+(j-1)*i+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k ! 一般正向连杆 *ENDIF *ENDDO *DO,k,1,i
E,1+Kn*(i-1)*i/2+(j-1)*i+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k+1 ! 一般负向连杆 *ENDDO *ENDDO *ENDDO
!(5) 定义边界约束
*DO,i,1, 1+Kn*(Nx-1)*Nx/2+Kn*Nx ! 所有节点循环 *If,i,GT, 1+Kn*(Nx-1)*Nx/2,THEN ! 选择非边界节点 D,i,all,0 ! 给边界节点定义边界约束 *ENDIF *ENDDO
!(6)保存模型文件 save,mode,db,,all
2)将面荷载转化为点荷载并写入equiforce文件
finish /clear
!/PMACRO ! 指定宏的内容被写入ANSYS的会话LOG文件中,必须置于命令顶层 RESUME,mode,db,,0,0 !恢复mode.db中的数据,即调用初始结构模型 /prep7
!定义面单元
local,11,0,0,0,0
ET,10,SURF154,,1,,1 !定义面单元surf154 R,10,,,,,,,0.1,0.1,0.1 !定义实常熟 MP,DENS,10,0 !定义材料密度 TYPE,10 !设置单元类型 MAT,10 !设置材料属性 REAL,10 !设置实常熟 esys,11
ENUMmax1=ELMIQR(0,14)+1 !找到最后一个杆单元编号,便于知道第一个面单元的编号 *DO,j,1,Kn-1 !连接顶点与第一圈结点形成三角形面单元 E,1,j+1,j+2 *ENDDO
E,1,Kn+1,2
*DO,i,1,Nx-1 ! 从里圈第2圈开始向最外圈循环 *DO,j,1,Kn ! 对各个对称区循环
*DO,k,1,i+1 ! 对每个对称区内的杆循环
*IF,k,EQ,i+1,THEN ! 判断是否是当前对称区内的最后一根杆 *IF,j,EQ,Kn,THEN ! 判断是否是最后一个对称区
E,1+Kn*(i-1)*i/2+1,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k,1+Kn*(i+1)*i/2+1 ! 第1个节点和最后一个节点对应的单元连接 *ELSE
E,1+Kn*(i-1)*i/2+(j-1)*i+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k+1 !一般区内的最后一根连杆对应的单元连接 *ENDIF *ELSE
E,1+Kn*(i-1)*i/2+(j-1)*i+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k+1 ! 一般正向连杆对应的单元连接 *ENDIF *ENDDO *DO,k,1,i
*IF,k,EQ,i,then *IF,j,EQ,Kn,then
E,1+Kn*(i-1)*i/2+(j-1)*i+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k+1,1+Kn*(i-1)*i/2+1 *ELSE
E,1+Kn*(i-1)*i/2+(j-1)*i+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k+1,1+Kn*(i-1)*i/2+(j-1)*i+k+1 ! 一般负向连杆对应单元 *ENDIF *ELSE
E,1+Kn*(i-1)*i/2+(j-1)*i+k,1+Kn*(i+1)*i/2+(j-1)*(i+1)+k+1,1+Kn*(i-1)*i/2+(j-1)*i+k+1 ! 一般负向连杆对应单元 *ENDIF *ENDDO *ENDDO *ENDDO
ENUMmax2=ELMIQR(0,14) !找到最后一个杆单元编号,便于知道第一个面单元的编号 NUMNODE=1+Kn*(Nx-1)*Nx/2+Kn*Nx !约束所有结点
*DO,i,1, 1+Kn*(Nx-1)*Nx/2+Kn*Nx D,i,UX,0 ! 定义约束 D,i,UY,0 D,i,UZ,0 *ENDDO
!施加面荷载
MULTIPRO,'START',1 ! 生成荷载输入对话框 *CSET,1,3,P,'Surface Load(N/㎡)',2000
*CSET,61,62,'Please Input Surface Load Value:' MULTIPRO,'END'
*DO,i, ENUMmax1, ENUMmax2,1 SFE,i,3,PRES,, P *ENDDO !csys,0
!NROTAT,ALL
!所有结点约束的静力求解
FINISH !退出前处理模块 /SOLU !进入求解器 SOLVE !求解
FINISH !退出求解器 /post1 !进入后处理器 set,last
!提取等效结点荷载
rsys,0 !将结果坐标系旋转到笛卡尔坐标系下
*DIM,Force_X,,Numnode !定义X向支座反力数组,用于存储各结点的X向支座反力 *DIM,Force_y,,Numnode !定义Y向支座反力数组,用于存储各结点的Y向支座反力 *DIM,Force_z,,Numnode !定义Z向支座反力数组,用于存储各结点的Z向支座反力 *DO,i,1,Numnode,1 !所有结点循环
*GET,Force_X(i),NODE,i,RF,FX !提取各结点的X向支座反力值赋给X向支座反力数组 *ENDDO
*DO,i,1,Numnode,1
*GET,Force_Y(i),NODE,i,RF,FY !提取各结点的Y向支座反力值赋给Y向支座反力数组 *ENDDO
*DO,i,1,91,1$*GET,Force_Z(i),NODE,i,RF,FZ$*ENDDO
!编写施加等效结点荷载的命令文件equiforce.mac
*DIM,Array_PreName,CHAR,Numnode !定义一维字符串型数组
*DIM,Node_Num,ARRAY,Numnode !定义一维数组作为结点号数组 *DIM,Array_PostName,CHAR,Numnode,3 !定义三维字符串型数组 *DO,i,1,Numnode
*SET,Array_PreName(i),'f,' !给一维字符串数组赋字符串'f,' *SET,Node_Num(i),i !给结点号数组赋结点编号
*SET,Array_PostName(i,1),',fx,' !给三维字符串数组的第一列赋字符串',fx,' *SET,Array_PostName(i,2),',fy,' !给三维字符串数组的第二列赋字符串',fy,' *SET,Array_PostName(i,3),',fz,' !给三维字符串数组的第三列赋字符串',fz,' *ENDDO
*cfopen,E:\\ANSYS\\process\\shell\\example\\equiforce,mac !在本程序的运行目录下创建/打开命令文件equiforce.mac *vwrite,Array_PreName(1),Node_Num(1),Array_PostName(1,1),Force_X(1) !按照格式顺序将数据写入文件中,给各结点赋X向等效结点荷载
(a6,f6.0,a8,f16.8) !设定第一个字符串总长6个字符,第二个字符串总长6位数,第三个字符串总长6个字符,第四个字符串总长16位数,小数点后保留8位
*vwrite,Array_PreName(1),Node_Num(1),Array_PostName(1,2),Force_Y(1) !按照格式顺序将数据写入文件中,给各结点赋Y向等效结点荷载
(a6,f6.0,a8,f16.8)
*vwrite,Array_PreName(1),Node_Num(1),Array_PostName(1,3),Force_Z(1) !按照格式顺序将数据写入文件中,给各结点赋Z向等效结点荷载
(a6,f6.0,a8,f16.8) *cfclos
3)静力求解
FINISH /clear
RESUME,mode,db,,0,0 /SOLU
*use,E:\\ANSYS\\process\\shell\\example\\equiforce.mac acel,,,9.8 SOLVE FINISH /POST1 PLDISP,2
4)考虑初始缺陷非线性屈曲分析
!(1)创建模型,获得静力解
/CLEAR !清除当前数据库文件,并开始一个新的启动 RESUME,mode,db,,0,0 !恢复mode.db中的数据,即调用初始结构模型 /SOLU !进入求解器
*USE,E:\\ANSYS\\process\\shell\\example\\equiforce.mac !调用equiforce.mac,以施加结点荷载 ANTYPE,0 ! 设置求解类型为静力分析 EQSLV,SPAR ! 选择稀疏矩阵直接求解器 PSTRES,ON ! 打开预应力选项