荷载结构法计算公路隧道命令流

上传人:z****2 文档编号:187308832 上传时间:2023-02-13 格式:DOCX 页数:28 大小:23.92KB
返回 下载 相关 举报
荷载结构法计算公路隧道命令流_第1页
第1页 / 共28页
荷载结构法计算公路隧道命令流_第2页
第2页 / 共28页
荷载结构法计算公路隧道命令流_第3页
第3页 / 共28页
点击查看更多>>
资源描述
荷载结构法计算公路隧道命令流Sd.mac! 荷载结构模型的 ANSYS 分析! 0. ANSYS 环境设定finish/clear/com,strucral/title,Study on Construction Mechanical Behavior of x x tunnel! 一 前处理! 1. 参数定义DefineParameter! 2. 实体建模GenModel! 3. 划分网格GenGrid! 4. 生成部件GenCom! 5. 改变梁单元圆弧段的法线方向ReverseArc! 6. 计算等效节点荷载LoadTunnel! 二 加载与求解Calculate! 三 计算结果分析PostDefineParameter.mac! 1. 参数定义! (1) 常数设定! 设置角度单位! 设置角度单位为弧度*afun,rad! 弧度转角度因子PI=acos(-1)RadToDeg=180/PIDegToRad=PI/180! 设置角度单位为度*afun,degg=10! (2) 几何参数设定本程序中原点取为隧道衬砌中心线与起拱线交点! 隧道衬砌内轮廓拱部圆弧圆心x_1=0y_1=0! 隧道衬砌内轮廓拱部圆弧半径R_1=5.7!隧道衬砌内轮廓拱部圆弧对应圆心角(Pphi_1=180! 隧道衬砌内轮廓拱部圆弧网格划分份数num_1=12! 隧道衬砌内轮廓边墙部位圆弧圆心x_2=-2.5y_2=0! 隧道衬砌内轮廓边墙部位圆弧半径R_2=8.2! 隧道衬砌内轮廓边墙部位对应圆心角phi_2=17.7508隧道衬砌内轮廓边墙上部圆弧网格划分份数num_2=4! 隧道衬砌内轮廓拱脚部位圆弧圆心x_3=4.35722y_3=-0.2-1.995! 隧道衬砌内轮廓拱脚部位圆弧半径R_3=1! 隧道衬砌内轮廓拱脚部位圆弧对应圆心角phi_3=53.2492隧道衬砌内轮廓拱脚部位圆弧网格划分份数num_3=2! 隧道衬砌内轮廓仰拱圆心x_4=0y_4=12.454-1.995! 隧道衬砌内轮廓仰拱半径R_4=14.383! 隧道衬砌内轮廓仰拱部位圆弧对应圆心角phi_4=38! 隧道衬砌内轮廓仰拱部位圆弧网格划分份数num_4=6! 隧道半衬砌网格划分份数num_totle=num_1+num_2+num_3+num_4! 二次衬砌厚度T_SecLin=0.55! 二次衬砌面积A_SecLin=1*T_SecLin! 二次衬砌惯性矩I_SecLin=T_SecLin*3/12! 二次衬砌中钢筋纵距D_Steel_z=0.2! 每米二次衬砌中钢筋根数N_Steel=2*1/D_Steel_z!22钢筋面积A_Steel=N_Steel*380*1e-6! 弹性链杆(面积)A_link=1! 隧道单洞开挖最大宽度B=2*R_1! 隧道单洞开挖最大高度H=(R_1+y_1)+(R_4-y_4)! 隧道埋深 ,mh_Tunnel=15! (3) 材料参数设定! 二次衬砌材料参数: C30 砼!二次衬砌密度,kg/m3DENS_SecLin=2.5e3! 二次衬砌泊松比U_SecLin=0.2! C30混凝土弹性模量,PaE_Concrete=31e9! 钢材弹性模量, PaE_Steel=210e9! 二次衬砌弹性模量, PaE_SecLin=E_Concrete+E_Steel*A_Steel/A_SecLin! 围岩参数!围岩重度Y,N/m3r_Rock=20.8e3!围岩密度,kg/m3DENS_Rock=r_Rock/g! 土的泊松比 uU_Rock=0.35! 围岩弹性抗力系数 (Pa/m)k_Rock=150e6! 土的侧压力系数入lambda_Rock=0.28! 计算弹性链杆折算弹性模量, Pa! 节点对应衬砌长度! l=(l1+l2)/2! E_Rock=k1*l! (4) 定义单元类型! 进入前处理器/prep7! 定义梁单元et,1,beam3! 定义链杆单元et,2,link10! 设为只受压keyopt,2,3,1! (5) 定义实常数定义梁单元的面积、惯性矩和梁高r,1,A_SecLin,I_SecLin,T_SecLin! 定义链杆单元的实常数(面积)r,2,A_link! (6) 定义材料属性!二次衬砌材料属性,C30mp,ex,1,E_SecLinmp,prxy,1,U_SecLinmp,dens,1,DENS_SecLin! 链杆单元属性!mp,ex,2,E_RockGenModel.mac! 2. 实体建模! (1) 显示设置! 显示点,线,面的编号/PNUM,KP,1/PNUM,LINE,1! 生成二次衬砌中心线内轮廓profile,T_SecLin/2合并重合的关键点和线并压缩编号nummrg,allnumcmp,alllplot! 显示点,线,面的编号/PNUM,KP,0/PNUM,LINE,0Profile.mac! 建立隧道轮廓几何模型! 设置所建轮廓与隧道内轮廓距离Dis=ARG1! 取得当前关键点最大编号*get,Kmax,kp,num,max! 取得当前线最大编号*get,Lmax,line,num,max! 恢复默认坐标系csys,0! 工作平面与当前坐标系重合wpcsys! 工作平面偏移wpoffs,x_1,y_1! 在工作平面处建立 11 号局部坐标系cswpla,11,1! 生成关键点k,Kmax+1,r_1+Dis,90k,Kmax+2,r_1+Dis,90-phi_1/2! 生成隧道初期支护拱部圆弧l,Kmax+1,Kmax+2! 恢复默认坐标系csys,0! 工作平面与当前坐标系重合wpcsys! 工作平面偏移wpoffs,x_2,y_2! 在工作平面处建立 12 号局部坐标系cswpla,12,1! 生成关键点k,Kmax+3,r_2+Dis,-phi_2l,Kmax+2,Kmax+3! 恢复默认坐标系csys,0! 工作平面与当前坐标系重合wpcsys! 工作平面偏移wpoffs,x_4,y_4! 在工作平面处建立 13 号局部坐标系cswpla,13,1! 生成关键点k,Kmax+4,r_4+Dis,-(90-phi_4/2)k,Kmax+5,r_4+Dis,-90l,Kmax+4,Kmax+5! 恢复默认坐标系csys,0! 工作平面与当前坐标系重合wpcsys! 工作平面偏移wpoffs,x_3,y_3! 在工作平面处建立 14 号局部坐标系cswpla,14,1! 生成线l,Kmax+3,Kmax+4! 恢复默认坐标系csys,0! 工作平面与当前坐标系重合wpcsys! 合并重合的关键点和线并压缩编号nummrg,allnumcmp,all! 自动调整大小/auto,1GenGrid.mac! 3. 划分网格! (1) 划分隧道二次衬砌线单元! 梁单元划分! 设置单元类型type,1! 设置实常数real,1! 设置材料属性mat,1! 划分二次衬砌拱部圆弧线单元! 选择线lsel,s,line,1! 设置线的划分段数lesize,all,num_1! 划分线lmesh,allallsel,all! 划分二次衬砌边墙圆弧线单元! 选择线lsel,s,line,2! 设置线的划分段数lesize,all,num_2! 划分线lmesh,allallsel,all! 划分二次衬砌拱脚部位圆弧线单元! 选择线lsel,s,line,4! 设置线的划分段数lesize,all,num_3! 划分线lmesh,allallsel,all! 划分二次衬砌仰拱部位圆弧线单元! 选择线lsel,s,line,3! 设置线的划分段数lesize,all,num_4! 划分线lmesh,allallsel,all! 反射线lsymm,x,all,0,0allsel,all! 合并重合的关键点和线并压缩编号nummrg,allnumcmp,all! (2) 生成弹性链杆外缘节点! 生成拱部圆弧对应弹性链杆外缘节点! 选择线lsel,s,line,1,5,4! 选择所选线上的节点nsll,r,1! 切换坐标系csys,11! 平移所选节点ngen,2,2*num_totle,all,1,0allsel,all! 恢复默认坐标系csys,0! 生成边墙部位圆弧对应弹性链杆外缘节点! 生成边墙右上部圆弧对应弹性链杆外缘节点! 选择线lsel,s,line,2! 选择所选线上的节点nsll,r,1! 切换坐标系csys,12! 平移所选节点ngen,2,2*num_totle,all,1,0allsel,all! 恢复默认坐标系csys,0! 生成边墙左上部圆弧对应弹性链杆外缘节点! 选择线lsel,s,line,6! 选择所选线上的节点nsll,r,1! 工作平面与当前坐标系重合wpcsys! 工作平面偏移wpoffs,-x_2,y_2! 在工作平面处建立 16 号局部坐标系cswpla,16,1! 平移所选节点ngen,2,2*num_totle,all,1,0allsel,all! 恢复默认坐标系csys,0! 生成拱脚部位圆弧对应弹性链杆外缘节点! 生成右拱脚部位圆弧对应弹性链杆外缘节点! 选择线lsel,s,line,4! 选择所选线上的节点nsll,r,1! 切换坐标系csys,14! 平移所选节点ngen,2,2*num_totle,all,1,0allsel,all! 恢复默认坐标系csys,0! 生成左拱脚部位圆弧对应弹性链杆外缘节点! 选择线lsel,s,line,8! 选择所选线上的节点nsll,r,1! 工作平面与当前坐标系重合wpcsys! 工作平面偏移wpoffs,-x_3,y_3! 在工作平面处建立 15 号局部坐标系cswpla,15,1! 平移所选节点ngen,2,2*num_totle,all,1,0allsel,all! 恢复默认坐标系csys,0! 工作平面与当前坐标系重合wpcsys! 生成仰拱部位圆弧对应弹性链杆外缘节点! 选择线lsel,s,line,3,7,4! 选择所选线上的节点nsll,r,1! 切换坐标系csys,13! 平移所选节点ngen,2,2*num_totle,all,1,0! 恢复默认坐标系csys,0allsel,all! 合并重合的关键点和线并压缩编号nummrg,allnumcmp,all! (3) 生成弹性链杆单元GenLinkGenLink.mac! 计算弹性链杆的折算弹性模量并生成弹性链杆单元! 弹性链杆单元划分! 设置单元类型type,2! 设置实常数real,2! (1) 计算右侧弹性链杆的折算弹性模量并生成弹性链杆单元! 选择弹性链杆内缘节点! 选择线lsel,s,line,1,4,1! 选择所选线上的节点nsll,r,1nplot! 读取所选取节点总数*get,Nnum,node,0,count! 切换坐标系csys,11node_Last=0node_Cur=node(R_1+T_SecLin,90,0)node_Next=nnear(node_Cur)! 恢复默认坐标系csys,0! 循环计算右侧弹性链杆的折算弹性模量并生成弹性链杆单元*do,i,1,Nnum! 计算当前节点处弹性链杆对应围岩环向等效长度! 计算当前节点处弹性链杆对应上侧衬砌单元长度*if,i,eq,1,thenl_Last=distnd(node_Cur,node_Next)*elsel_Last=distnd(node_Last,node_Cur)*endif! 计算当前节点处弹性链杆对应下侧衬砌单元长度*if,i,eq,Nnum,thenl_Next=distnd(node_Last,node_Cur)*elsel_Next=distnd(node_Cur,node_Next)*endif! 计算当前节点处弹性链杆对应围岩环向等效长度l_Cur=(l_Last+l_Next)/2! 计算弹性链杆折算弹性模量, Pa! N=k*x! N=E* *A=E*(x/l)*AE_Rock=k_Rock*l_Cur/A_link! 定义链杆单元属性mp,ex,i+1,E_Rock! 设置材料属性mat,i+1! 生成链杆单元e,node_Cur,node_Cur+2*num_totle! 从选择集中删除当前节点nsel,u,node,node_Cur! 计算下一循环的节点号node_Last=node_Curnode_Cur=node_Nextnode_Next=nnear(node_Next)*enddoallsel,all(2) 计算左侧弹性链杆的折算弹性模量并生成弹性链杆单元! 选择弹性链杆内缘节点! 选择线lsel,s,line,5,8,1! 选择所选线上的节点nsll,r,1nplot! 读取所选取节点总数*get,Nnum,node,0,count! 切换坐标系csys,11node_Last=0node_Cur=node(R_1+T_SecLin,90,0)node_Next=nnear(node_Cur)! 恢复默认坐标系csys,0! 循环计算左侧弹性链杆的折算弹性模量并生成弹性链杆单元*do,i,1,Nnum-1*if,i,ne,1,then! 计算当前节点处弹性链杆对应围岩环向等效长度! 计算当前节点处弹性链杆对应上侧衬砌单元长度l_Last=distnd(node_Last,node_Cur)! 计算当前节点处弹性链杆对应下侧衬砌单元长度l_Next=distnd(node_Cur,node_Next)! 计算当前节点处弹性链杆对应围岩环向等效长度l_Cur=(l_Last+l_Next)/2! 计算弹性链杆折算弹性模量, Pa! N=k*x! N=E* *A=E*(x/l)*AE_Rock=k_Rock*l_Cur/A_link! 定义链杆单元属性mp,ex,i+num_totle+2,E_Rock! 设置材料属性mat,i+num_totle+2! 生成链杆单元e,node_Cur,node_Cur+2*num_totle*endif! 从选择集中删除当前节点nsel,u,node,node_Cur! 计算下一循环的节点号node_Last=node_Curnode_Cur=node_Nextnode_Next=nnear(node_Next)*enddo! 删除临时参数l_Last=l_Cur=l_Next=node_Last=node_Cur=node_Next=Nnum=allsel,all! 合并重合的关键点和线并压缩编号nummrg,allnumcmp,all! 显示节点的编号/pnum,node,1eplotGenCom.mac! 4. 生成部件与组件! (1) 生成二次衬砌节点组件! 选择梁单元esel,s,type,1! 选择梁单元上的节点nsle,r! 生成部件cm,CM_Beam_node,nodeallsel,all! 切换到极坐标系csys,2! 生成二次衬砌右上侧节点组件! 选择部件cmsel,s,CM_Beam_node! 选择节点nsel,r,loc,y,0,90! 生成部件cm,CM_Beam_Rig_Top_node,nodeallsel,all! 生成二次衬砌左上侧节点组件! 选择部件cmsel,s,CM_Beam_node! 选择节点nsel,r,loc,y,90,180! 生成部件cm,CM_Beam_Lef_Top_node,nodeallsel,all! 生成二次衬砌左下侧节点组件! 选择部件cmsel,s,CM_Beam_node! 选择节点nsel,r,loc,y,180,270! 生成部件cm,CM_Beam_Lef_Bot_node,nodeallsel,all! 生成二次衬砌右下侧节点组件! 选择部件cmsel,s,CM_Beam_node! 选择节点nsel,r,loc,y,0,-90! 生成部件cm,CM_Beam_Rig_Bot_node,nodeallsel,all! 恢复默认坐标系csys,0! (2) 生成弹性链杆外缘节点组件! 选择部件cmsel,s,CM_Beam_node! 反向选择nsel,inve! 生成部件cm,CM_Link_outside_node,nodeallsel,allReverseArc.mac! 6. 改变梁单元圆弧段的法线方向改变隧道左侧初期支护圆弧段的法线方向! 选择线lsel,s,loc,x,0,-Blreverse,all,0allsel,all! 显示线lplotLoadTunnel.mac! 6. 计算等效节点荷载! 二次衬砌分担荷载比例系数factor=1! (1) 计算隧道荷载! 计算上侧竖直荷载Pressure_Top=435.8e3! 计算下侧竖直荷载Pressure_Bot=0! 计算上侧水平荷载Pressure_Top_Hor=179.2e3! 计算下侧水平荷载Pressure_Bot_Hor=239.1e3! (2) 计算等效节点荷载LoadNodeLoadNode.mac! 计算等效节点荷载并写入文件! (1) 定义数组变量贮存节点号和等效节点荷载allsel,all! 选择所有衬砌节点cmsel,s,CM_Beam_node! 读取所选取节点总数*get,Nnum,node,0,count! 读取所选取节点中最小节点号*get,Nmin,node,0,num,min! 定义一个 Nnum 行 4 列的数组! 数组第 1 列储存节点号*dim,P,array,Nnum,4,1! 令 node_Cur 等于所选取节点中最小节点号node_Cur=Nmin保存节点号*do,i,1,Nnum保存当前节点号P(i,1)=node_Cur!令K等于下一个所选取节点号node_Cur=ndnext(node_Cur)*enddoallsel,all! (2) 计算上侧等效节点荷载! 选择衬砌上侧节点cmsel,s,CM_Beam_Lef_Top_nodecmsel,a,CM_Beam_Rig_Top_nodenplot! 读取所选取节点总数*get,Nnum_Cur,node,0,count! 切换坐标系csys,11! 取得当前节点号node_Cur=node(R_1+T_SecLin/2,0,0)! 恢复默认坐标系csys,0! 取得所选节点中与当前节点相邻的节点号node_Next=nnear(node_Cur)*do,i,1,Nnum_Cur-1! 计算节点 node_Cur 在数组 P 中的位置*do,j,1,Nnum*if,P(j,1),eq,node_Cur,thenLoc_CurNode=j*exit*endif*enddo在数组P中的位置*do,j,1,Nnum*if,P(j,1),eq,node_Next,thenLoc_NextNode=j*exit*endif*enddo! 计算 X 方向坐标差dx=abs(nx(node_Next)-nx(node_Cur)P(Loc_CurNode,3)=P(Loc_CurNode,3)-Pressure_Top*dx/2P(Loc_NextNode,3)=P(Loc_NextNode,3)-Pressure_Top*dx/2P(Loc_CurNode,4)=P(Loc_CurNode,4)+Pressure_Top*dx*2/12P(Loc_NextNode,4)=P(Loc_NextNode,4)-Pressure_Top*dx*2/12! 从选择集中删除当前节点nsel,u,node,node_Cur! 计算下一循环的节点号node_Cur=node_Nextnode_Next=nnear(node_Next)*enddoallsel,all! (3) 计算下侧等效节点荷载! 选择衬砌下侧节点cmsel,s,CM_Beam_Lef_Bot_nodecmsel,a,CM_Beam_Rig_Bot_nodenplot! 读取所选取节点总数*get,Nnum_Cur,node,0,count! 切换坐标系csys,11! 取得当前节点号node_Cur=node(R_1+T_SecLin/2,0,0)! 恢复默认坐标系csys,0! 取得所选节点中与当前节点相邻的节点号node_Next=nnear(node_Cur)*do,i,1,Nnum_Cur-1! 计算节点 node_Cur 在数组 P 中的位置*do,j,1,Nnum*if,P(j,1),eq,node_Cur,thenLoc_CurNode=j*exit*endif*enddo! 计算节点 node_Next 在数组 P 中的位置*do,j,1,Nnum*if,P(j,1),eq,node_Next,thenLoc_NextNode=j*exit*endif*enddo! 计算 X 方向坐标差dx=abs(nx(node_Next)-nx(node_Cur)P(Loc_CurNode,3)=P(Loc_CurNode,3)+Pressure_Bot*dx/2P(Loc_NextNode,3)=P(Loc_NextNode,3)+Pressure_Bot*dx/2P(Loc_CurNode,4)=P(Loc_CurNode,4)-Pressure_Bot*dx*2/12P(Loc_NextNode,4)=P(Loc_NextNode,4)+Pressure_Bot*dx*2/12! 从选择集中删除当前节点nsel,u,node,node_Cur! 计算下一循环的节点号node_Cur=node_Nextnode_Next=nnear(node_Next)*enddoallsel,all! (4) 计算左侧节点处水平压力! 选择衬砌左侧节点cmsel,s,CM_Beam_Lef_Top_nodecmsel,a,CM_Beam_Lef_Bot_nodenplot! 读取所选取节点总数*get,Nnum_Cur,node,0,count! 切换坐标系csys,11! 取得上侧节点号node_Top=node(R_1+T_SecLin/2,90,0)! 切换坐标系csys,13! 取得下侧节点号node_Bot=node(R_4+T_SecLin/2,-90,0)! 恢复默认坐标系csys,0! 取得当前节点号node_Cur=node_Top! 定义数组存放左侧节点处水平压力! 定义一个 Nnum_Cur 行 2 列的数组*dim,Q,array,Nnum_Cur,2,1! 定义临时变量t=Pressure_Bot_Hor-Pressure_Top_Hor! 保存节点号与节点处水平荷载*do,i,1,Nnum_Cur! 保存当前节点号Q(i,1)=node_Cur! 保存当前节点处水平荷载Q(i,2)=Pressure_Top_Hor+t*(ny(node_Cur)-ny(node_Top)/(ny(node_Bot)-ny(node_Top)! 从选择集中删除当前节点nsel,u,node,node_Cur! 计算下一循环的节点号node_Cur=nnear(node_Cur)*enddoallsel,all! 选择衬砌左侧节点cmsel,s,CM_Beam_Lef_Top_nodecmsel,a,CM_Beam_Lef_Bot_nodenplot! 取得当前节点号node_Cur=node_Top! 取得所选节点中与当前节点相邻的节点号node_Next=nnear(node_Cur)*do,i,1,Nnum_Cur-1! 计算节点 node_Cur 在数组 P 中的位置*do,j,1,Nnum*if,P(j,1),eq,node_Cur,thenLoc_CurNode=j*exit*endif*enddo! 计算节点 node_Next 在数组 P 中的位置*do,j,1,Nnum*if,P(j,1),eq,node_Next,thenLoc_NextNode=j*exit*endif*enddo! 计算节点 node_Cur 在数组 Q 中的位置*do,j,1,Nnum_Cur*if,Q(j,1),eq,node_Cur,thenLoc_CurNode_Q=j*exit*endif*enddo! 计算节点 node_Next 在数组 Q 中的位置*do,j,1,Nnum_Cur*if,Q(j,1),eq,node_Next,thenLoc_NextNode_Q=j*exit*endif*enddo! 计算 Y 方向坐标差dy=abs(ny(node_Next)-ny(node_Cur)P(Loc_CurNode,2)=P(Loc_CurNode,2)+(Q(Loc_CurNode_Q,2)*7+Q(Loc_NextNode_Q,2)*3)*dy/20P(Loc_NextNode,2)=P(Loc_NextNode,2)+(Q(Loc_CurNode_Q,2)*3+Q(Loc_NextNode_Q,2)*7)* dy/20P(Loc_CurNode,4)=P(Loc_CurNode,4)+(Q(Loc_CurNode_Q,2)/20+Q(Loc_NextNode_Q,2)/30)*dy*2P(Loc_NextNode,4)=P(Loc_NextNode,4)-(Q(Loc_CurNode_Q,2)/30+Q(Loc_NextNode_Q,2)/20)*dy*2! 从选择集中删除当前节点nsel,u,node,node_Cur! 计算下一循环的节点号node_Cur=node_Nextnode_Next=nnear(node_Next)*enddoallsel,all! 删除临时参数Q(1,1)=! (5) 计算右侧节点处水平压力! 选择衬砌右侧节点cmsel,s,CM_Beam_Rig_Top_nodecmsel,a,CM_Beam_Rig_Bot_nodenplot! 读取所选取节点总数*get,Nnum_Cur,node,0,count! 切换坐标系csys,11! 取得上侧节点号node_Top=node(R_1+T_SecLin/2,90,0)! 切换坐标系csys,13! 取得下侧节点号node_Bot=node(R_4+T_SecLin/2,-90,0)! 恢复默认坐标系csys,0! 取得当前节点号node_Cur=node_Top! 定义数组存放左侧节点处水平压力! 定义一个 Nnum_Cur 行 2 列的数组*dim,Q,array,Nnum_Cur,2,1! 定义临时变量t=Pressure_Bot_Hor-Pressure_Top_Hor! 保存节点号与节点处水平荷载*do,i,1,Nnum_Cur! 保存当前节点号Q(i,1)=node_Cur! 保存当前节点处水平荷载Q(i,2)=Pressure_Top_Hor+t*(ny(node_Cur)-ny(node_Top)/(ny(node_Bot)-ny(node_Top)! 从选择集中删除当前节点nsel,u,node,node_Cur! 计算下一循环的节点号node_Cur=nnear(node_Cur)*enddoallsel,all! 选择衬砌右侧节点cmsel,s,CM_Beam_Rig_Top_nodecmsel,a,CM_Beam_Rig_Bot_nodenplot! 取得当前节点号node_Cur=node_Top! 取得所选节点中与当前节点相邻的节点号node_Next=nnear(node_Cur)*do,i,1,Nnum_Cur-1! 计算节点 node_Cur 在数组 P 中的位置*do,j,1,Nnum*if,P(j,1),eq,node_Cur,thenLoc_CurNode=j*exit*endif*enddo! 计算节点 node_Next 在数组 P 中的位置*do,j,1,Nnum*if,P(j,1),eq,node_Next,thenLoc_NextNode=j*exit*endif*enddo! 计算节点 node_Cur 在数组 Q 中的位置*do,j,1,Nnum_Cur*if,Q(j,1),eq,node_Cur,thenLoc_CurNode_Q=j*exit*endif*enddo! 计算节点 node_Next 在数组 Q 中的位置*do,j,1,Nnum_Cur*if,Q(j,1),eq,node_Next,thenLoc_NextNode_Q=j*exit*endif*enddo! 计算 Y 方向坐标差dy=abs(ny(node_Next)-ny(node_Cur)P(Loc_CurNode,2)=P(Loc_CurNode,2)-(Q(Loc_CurNode_Q,2)*7+Q(Loc_NextNode_Q,2)*3)*dy/20P(Loc_NextNode,2)=P(Loc_NextNode,2)-(Q(Loc_CurNode_Q,2)*3+Q(Loc_NextNode_Q,2)*7)*dy/20P(Loc_CurNode,4)=P(Loc_CurNode,4)-(Q(Loc_CurNode_Q,2)/20+Q(Loc_NextNode_Q,2)/30)*dy*2P(Loc_NextNode,4)=P(Loc_NextNode,4)+(Q(Loc_CurNode_Q,2)/30+Q(Loc_NextN ode_Q,2)/20)*dy*2! 从选择集中删除当前节点nsel,u,node,node_Cur! 计算下一循环的节点号node_Cur=node_Nextnode_Next=nnear(node_Next)*enddoallsel,allnplot! 删除临时参数dx=Nmin=Nnum=Nnum_Cur=node_Cur=node_Next=node_Top=node_Bot=Loc_CurNode=Loc_NextNode=Loc_CurNode_Q=Loc_NextNode_Q=i=j=t=dx=dy=Q(1,1)=! (6) 输出等效节点力打开新文件 mydata.mac( 如存在则覆盖原文件 )*cfopen,mydata,mac*vwrite,P(1,1),P(1,2)(F,f6.0,FX,f18.4)*vwrite,P(1,1),P(1,3)(F,f6.0,FY,f18.4)*vwrite,P(1,1),P(1,4)施加X方向等效节点力! 写入格式施加Y方向等效节点力! 写入格式施加Z方向等效节点弯矩(F,f6.0,MZ,f18.4)*cfclos! 写入格式! 删除临时参数! 关闭文件P(1,1)=Calculate.mac! 二 加载与求解! 1. 设定求解选项/soluallsel,all! 指定为静力学分析类型antype,staticnplot! 2. 施加等效节点力! 施加等效节点力mydata! 删除加载文件/sys,del,mydata.mac! 3. 施加边界条件! 选择弹性链杆外缘节点部件cmsel,s,CM_Link_outside_node! 对弹性链杆外缘节点施加约束d,all,ux,0,uyallsel,all! 切换坐标系csys,13! 选择仰拱中间衬砌节点nsel,s,loc,x,R_4+T_SecLin/2nsel,r,loc,y,-90! 恢复默认坐标系csys,0! 对梁单元施加约束d,all,ux,0allsel,all! 4. 施加边界条件以及重力加速度! 施加重力acel,0,g! 5. 求解allsel,allsolvefinish
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 机械电气


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!