预应力混凝土仿真:等效荷载法与实体力筋法选型及APDL实现
简介这份文档面向结构工程与有限元分析人员聚焦ANSYS中预应力混凝土有粘结的建模方法帮助读者在等效荷载法与实体力筋法之间做出合理选择。内容围绕两种方法的原理、优缺点与适用场景展开并给出实体力筋法的体分割法与独立建模耦合法实现思路附有预应力简支梁弹性分析的APDL示例涉及单元类型、初应变、力筋线建立、节点耦合及边界条件设置等关键环节。资源包共1个doc文件约59KB以文字讲解与命令流代码为主便于对照练习与查阅。目前已有347人学习下载适合需要掌握预应力建模流程、理解力筋与实体耦合处理及排错思路的工程师与高年级学生参考。1. 预应力混凝土分析选型等效荷载法还是实体力筋法做预应力混凝土仿真的人几乎都绕不开同一个问题力筋到底怎么处理。有人图省事直接把预应力折算成一组等效荷载加到梁上跑出来跨中挠度和规范手算对得上就以为万事大吉也有人老老实实建实体、拉力筋、耦合节点结果算了三天网格还没划完。这两种做法背后其实是两条完全不同的技术路线——等效荷载法和实体力筋法选错了后面所有结果都站不住脚。这套方案要解决的就是这个选型与落地问题什么场景用等效荷载法能快速拿到整体响应什么场景必须上实体力筋法才能看到局部应力实体力筋法里体分割、节点耦合、约束方程三种处理方式又该怎么挑。适合正在做预应力混凝土毕设、课程设计或者要出一份桥梁/结构仿真分析方案的人读完能直接照着搭模型、写 APDL、做验收。2. 两条技术路线的设计取舍从整体响应到局部应力2.1 等效荷载法能做什么、不能做什么等效荷载法的核心思路是把力筋的作用换算成一组外力——轴向压力、端部弯矩、曲线段的径向等效荷载——直接施加在混凝土模型上。建模时完全不用管力筋在哪混凝土实体或梁单元建好就能加载网格划分也简单整体效应求解快。做初步设计、施工过程控制、或者只需要看结构在预应力作用下的整体变形和内力分布时这条路是合理的。但它有几个硬伤做方案时必须写清楚。第一力筋对混凝土的作用方向和分布被抹平了曲线筋各处的径向力不同等效荷载法只能取一个平均或分段近似水平均布分量也常被忽略。第二外荷载作用下的共同作用没法考虑力筋的应力增量算不出来。第三张拉过程无法模拟应力损失引起的各处应力不等也体现不了。第四细部受力基本失真离开跨中越远误差越大——跨中刚好对称看起来对得上一挪到有摩擦和滑移的地方就露馅。提示等效荷载法适合直线筋的整体分析曲线筋的局部分析不要用它误差可能大到无法接受。2.2 实体力筋法的三种建模处理方式实体力筋法把混凝土和力筋分别用单元模拟——混凝土用 solid 系列弹性阶段用 solid95考虑开裂用 solid65力筋用 link 系列link8 或 link180。预应力通过降温法或初应变法施加。降温法操作简单能模拟应力损失不同位置可以设不同温度初应变法通常不考虑损失否则每个单元实常数都不一样工作量大。建模处理上有三条路体分割法先建混凝土实体用工作平面和力筋线拖拉出的面把体分割分割后体上的一条线定义为力筋线。力筋位置准确结果精确但力筋线形复杂时建模极其麻烦布尔运算还容易失败。节点耦合法实体和力筋独立建模、独立划分单元然后找力筋节点最近的混凝土节点用 cp 命令耦合自由度。建模简单APDL 熟悉后耦合处理也不难。缺点是混凝土网格不够密时力筋节点位置会走动有误差要消除就得加密网格牺牲计算效率。约束方程法在节点耦合法基础上改进用 ceintf 命令在混凝土单元节点和力筋单元节点之间自动建立约束方程容差范围内自动选节点。比手动耦合简单对混凝土网格密度要求不高计算效率高结果也比较精确。三种方式的取舍可以这样记力筋少、线形简单、要精确——体分割力筋多、线形复杂、要效率——节点耦合或约束方程想省事又要精度——约束方程优先。3. 独立建模耦合法落地APDL 实现与关键参数3.1 建模流程与单元定义独立建模耦合法的基本步骤是建混凝土实体几何模型不考虑力筋→ 建力筋线几何模型不考虑实体→ 各自划分单元 → 选力筋线及相关节点存入数组 → 选除力筋节点外的所有节点 → 按力筋节点数组搜寻最近的实体节点 → 耦合力筋节点与最近实体节点 → 施加边界条件和荷载 → 求解。下面是一段预应力简支梁弹性分析的 APDL 核心代码用体线独立耦合法实现! 预应力简支梁弹性分析 - 体线独立耦合法 /prep7 eg2e5 ! 力筋弹性模量 ag140 ! 力筋截面面积 eh4e4 ! 混凝土弹性模量 r09345 ! 力筋曲线半径 yyl200000 ! 预应力初应变控制参数 et,1,link8 ! 力筋单元 et,2,solid95 ! 混凝土实体单元 ! 定义力筋实常数截面面积 初应变 r,1,ag,yyl/eg/ag*1.036258 ! 材料属性 mp,ex,1,eg mp,prxy,1,0.3 mp,ex,2,eh mp,prxy,2,0.2 ! 建立混凝土实体 blc4,,,100,200,3000 /view,1,1,1,1 /ang,1 vplot ! 定义力筋线 ksel,all *get,kp0,kp,0,num,max lsel,none k,kp01,50,160 k,kp02,50,160,3000 k,kp03,50,800,1500 larc,kp01,kp02,kp03,r0 kdele,kp03 *get,line1,line,0,num,min这段代码里几个参数需要说明。r,1,ag,yyl/eg/ag*1.036258是给 link8 单元定义实常数第一个值是截面面积第二个值是初应变那个 1.036258 的系数是用来微调初应变以逼近目标张拉力的实际项目里要通过试算确定。larc定义两点间的圆弧线r0是半径kp03是曲率中心附近的参考点不一定是圆心。*get,kp0,kp,0,num,max是提取当前最大关键点编号方便后续新建关键点不冲突。3.2 网格划分与自由度耦合网格划分和耦合是独立建模耦合法的核心也是最容易翻车的地方! 单元划分 lsel,s,,,line1 latt,1,1,1 lesize,all,,,50 lmesh,all vsel,all vatt,2,2,2 lsel,s,loc,z,0 lsel,r,loc,y,10,140 lesize,all,,,8 lsel,s,loc,z,0 lsel,u,loc,y,10,140 lesize,all,,,4 lsel,s,loc,y,0 lsel,r,loc,x,0 lesize,all,,,50 vsweep,all allsel,all ! 耦合自由度 lsel,s,,,line1 nsll,s,1 cm,cmljnod,node *get,max1,node,0,count *dim,ojd,,max1 *dim,jd,,max1 *get,nod1,node,0,num,min ojd(1)nod1 *do,i,2,max1 ojd(i)ndnext(ojd(i-1)) *enddo allsel,all nsel,all cmsel,u,cmljnod *do,i,1,max1 nod1ojd(i) jnnear(nod1) jd(i)j *enddo nsel,all ji1 *do,i,1,max1 cp,ji,ux,ojd(i),jd(i) cp,ji1,uy,ojd(i),jd(i) cp,ji2,uz,ojd(i),jd(i) jiji3 *enddo allsel,alllmesh对力筋线划分 link8 单元vsweep对混凝土实体扫掠划分 solid95。耦合部分先用nsll选出力筋线上的所有节点存入cmljnod组件再用ndnext遍历节点号存入数组ojd。然后cmsel,u去掉力筋节点用nnear找每个力筋节点最近的混凝土节点存入jd。最后用cp命令逐对耦合三个平动自由度。注意这里不能用cpintf命令它会耦合容差范围内所有节点容易把不该耦合的节点也连上而且可能漏耦合。必须手动用nnear找最近节点再cp。3.3 边界条件、求解与后处理! 边界条件 lsel,s,loc,z,0 lsel,r,loc,y,0 dl,all,,uy lsel,s,loc,z,3000 lsel,r,loc,y,0 dl,all,,all allsel,all ! 求解 /solu solve finish ! 后处理 /post1 pldisp,1 etable,sigi,ls,1 plls,sigi,sigi,1左端 z0 且 y0 的线约束 uy右端 z3000 且 y0 的线全约束模拟简支边界。求解后用etable提取 link8 单元的轴向应力plls画出力筋应力分布。这里要重点看力筋应力是否沿全长合理分布如果出现突变或异常多半是耦合出了问题。4. 避坑与排查预应力仿真最容易翻车的五个点4.1 耦合节点选错导致力筋应力异常现象求解后力筋应力沿长度方向跳变或者某些单元应力为零。原因nnear找到的最近混凝土节点可能不是力筋节点正对应的那个尤其当混凝土网格较粗时力筋节点可能“跑”到相邻单元上。另外如果力筋节点数组遍历时ndnext用错会漏掉节点。解决耦合前先nplot检查力筋节点和混凝土节点的空间对应关系必要时加密混凝土网格。耦合后用elist抽查几对耦合节点确认距离在合理范围内。如果误差大改用约束方程法ceintf它对网格密度要求低。4.2 初应变或降温参数设错导致张拉力不对现象力筋应力远大于或远小于设计张拉控制应力。原因初应变法的实常数直接给的是应变值但 link8 的初应变和实际预应力之间差一个弹性模量换算降温法里线膨胀系数和温差的乘积决定收缩量系数给错就全错。解决先做一次试算提取力筋应力和目标张拉力对比按比例调整初应变或温差。通常需要迭代两三次。降温法还要注意只给力筋单元定义温变混凝土单元不要定义。4.3 体分割法布尔运算失败现象vsbw或vdiv报错体分割不下去。原因力筋线形复杂时拖拉出的面和已有体产生微小面重叠或间隙ANSYS 布尔运算容差不够。解决适当放大布尔运算容差btol命令或者把复杂力筋分段处理一段一段分割。如果还是失败果断换独立建模耦合法不要跟布尔运算死磕。4.4 网格密度不够导致力筋节点位置偏移现象节点耦合法算出的结果和体分割法差很多力筋位置明显偏离设计线形。原因混凝土单元划分太粗力筋节点最近的混凝土节点离实际位置较远耦合后力筋被“拉”到了错误位置。解决在力筋附近局部加密网格或者改用约束方程法。约束方程法通过容差范围内的多个混凝土节点建立约束对网格密度不敏感是更稳妥的选择。4.5 边界条件与耦合自由度冲突现象求解不收敛或者出现刚体位移。原因力筋端部节点和混凝土端部节点同时被耦合又被约束约束方程和耦合方程冲突。或者简支边界只约束了混凝土节点力筋端部自由导致力筋“飞出去”。解决力筋端部节点要么和混凝土节点耦合后由混凝土边界约束要么单独约束力筋端部。检查dl和cp的作用范围有没有重叠冲突。求解前用dlist和clist核对约束和耦合列表。5. 验收与答辩怎么证明你的预应力模型是对的预应力仿真做完怎么判断结果可信答辩时导师最常问的就是“你怎么知道你这个模型是对的”。我一般会走三步验收。第一步量纲和数量级检查。提取力筋应力看是否在合理范围内——预应力钢绞线张拉控制应力通常在一千多兆帕量级如果算出来是几百或几千先查单位制。混凝土应力看是否远小于抗压强度跨中挠度看是否和规范手算在一个数量级。这一步能筛掉大部分低级错误。第二步与规范手算对比。用结构设计原理的公式手算跨中截面应力、挠度和力筋应力和仿真结果对比。等效荷载法在跨中对称位置通常能对上如果对不上检查等效荷载的换算。实体力筋法如果跨中都对不上多半是耦合或初应变出了问题。注意离开跨中后仿真和手算会有偏差这是正常的因为手算不考虑摩擦和滑移仿真如果考虑了反而更真实。第三步网格收敛性验证。把混凝土网格加密一倍重新计算看关键结果跨中挠度、力筋最大应力变化是否在 5% 以内。如果变化很大说明网格还不够密继续加密直到结果稳定。这一步是答辩时最有说服力的能直接证明你的结果不是网格侥幸。下面这张表可以放在答辩 PPT 里一目了然验收项合格标准检查方法力筋应力范围与张拉控制应力偏差 10%etable 提取 ls 应力跨中挠度与规范手算同量级偏差 15%pldisp 读取节点位移混凝土应力远小于抗压强度提取 solid 单元应力网格收敛性加密后关键结果变化 5%两次计算对比耦合节点距离力筋节点与耦合节点距离 单元尺寸 1/3elist 抽查答辩时还有一个技巧主动说出你选的方案有什么局限。比如你用了等效荷载法就主动说“这个方法在曲线筋局部应力上有误差所以我的分析只针对整体响应局部应力建议用实体力筋法复核”。导师听到你清楚方法的边界反而更放心。如果你用了节点耦合法就主动说“混凝土网格密度对力筋位置有影响我做了网格收敛性验证误差在可接受范围内”。把局限说在前面比被问出来强得多。从那以后我每次做预应力仿真都强制走一遍“量纲检查→规范对比→网格收敛”这三步不管项目多急都不跳过。希望帮到你。本文还有配套的精品资源点击获取