dcy_dyh 2025-11-26 14:44 采纳率: 0%
浏览 2

ansys所得结果有误,需如何调试

采用ANSYS对隧道模型进行建模时,未出现报错,但算得的结果存在问题,需如何调试?
代码:

/clear  !更新数据库
/prep7 !进入前处理器
et,1,solid 185 !设置单元类型

!土体材料参数
UIMP, 1, EX, PRXY, DENS, 60e6*10, 0.25, 2000         !4层参数(中砂)
UIMP, 2, EX, PRXY, DENS, 34.5e9, 0.25, 2500         !管片材料参数,管片衬砌按各向同性计算


!定义厚度、半径与中心点
KW_d = 5*2              !!!!!!开挖直径
CQ_t = 0.5              !!!!!!衬砌厚度
Z_DS = -35-KW_d/2       !!!!!!洞室中心位置
D_DS = KW_d             !!!!!!洞室周围影响深度(为洞室直径)
t_MODEL = 40            !!!!!!模型厚度

!定义模型网格划分尺寸
ESIZE_1 = 1           !!!!!!钢衬、钢衬内部部分、钢筋
ESIZE_2 = 0.1           !!!!!!衬砌部分
ESIZE_3 = 2.0           !!!!!!洞室周围影响深度范围部分
ESIZE_4 = 2.0           !!!!!!其他围岩部分

!定义特征位置数组
XD_NUM=5                    !!!!!!宽度方向       
YD_NUM=2                    !!!!!!厚度方向
ZD_NUM=5                   !!!!!!高度方向
*DIM,XD,ARRAY,XD_NUM,1,1, , , 
*DIM,YD,ARRAY,YD_NUM,1,1, , ,
*DIM,ZD,ARRAY,ZD_NUM,1,1, , ,  

!X轴位置
XD(1,1,1)  = -100/2          !!!!!!围岩左边缘
XD(2,1,1)  = -D_DS          !!!!!!洞室作用左范围
XD(3,1,1)  = 0              !!!!!!洞室中心位置
XD(4,1,1)  = D_DS           !!!!!!洞室作用右范围
XD(5,1,1)  = 100/2           !!!!!!围岩右边缘

!Y轴位置
YD(1,1,1)  = 0
YD(2,1,1)  = t_MODEL        !!!!!!模型厚度

!Z轴位置
ZD(1,1,1)  = 0
ZD(2,1,1)  = Z_DS+10              !!!!!!!!一层土深度
ZD(3,1,1)  = Z_DS            !!!!!!!!二层土深度
ZD(4,1,1)  = Z_DS-10             !!!!!!!!三层土深度
ZD(5,1,1) = -70              !!!!!!!!九层土深度

!定义点
*DO,jj,1,YD_NUM
*DO,kk,1,ZD_NUM
*DO,ii,1,XD_NUM
K,ii+(kk-1)*XD_NUM+(jj-1)*XD_NUM*ZD_NUM,XD(ii,1,1),YD(jj,1,1),ZD(kk,1,1)
*enddo
*enddo
*enddo

!定义岩层体
*DO,jj,1,YD_NUM-1
*DO,kk,1,ZD_NUM-1
*DO,ii,1,XD_NUM-1
K1_NUM=ii+(kk-1)*XD_NUM+(jj-1)*XD_NUM*ZD_NUM
V, K1_NUM, K1_NUM+1, K1_NUM+XD_NUM+1, K1_NUM+XD_NUM, K1_NUM+XD_NUM*ZD_NUM, K1_NUM+1+XD_NUM*ZD_NUM, K1_NUM+XD_NUM+1+XD_NUM*ZD_NUM, K1_NUM+XD_NUM+XD_NUM*ZD_NUM
*enddo
*enddo
*enddo

!洞室坐标轴的建立
WPLANE,-1,XD(3,1,1),0,Z_DS,XD(3+1,1,1),0,Z_DS,XD(3,1,1),0,0        !!!!!!建立洞室1极坐标系,中心在洞室断面中心
CSWPLA,11,1,1,1,

csys,0
wpcsys,-1

!洞室内开挖体建立
csys,11
wpcsys,-1
*DO,j,1,2
*DO,i,1,4
K,i+100*j+10000,KW_d/2-CQ_t,90*(i-1),-t_MODEL*(j-1)
K,i+110*j+10000,KW_d/2,90*(i-1),-t_MODEL*(j-1)
*enddo
*enddo
V, 1+100+10000, 2+100+10000, 3+100+10000, 4+100+10000,  1+200+10000, 2+200+10000, 3+200+10000, 4+200+10000        !!!!!衬砌内部部分
V, 1+110+10000, 2+110+10000, 3+110+10000, 4+110+10000,  1+220+10000, 2+220+10000, 3+220+10000, 4+220+10000        !!!!!衬砌+内部部分

!洞室圆柱体切分
VPTN,ALL                 !洞室内部相互切分
nummrg,all  !合并所有元素
numcmp,all  !压缩所有元素编号

!!定义切分角
*DIM,DIV_A_DS1,ARRAY,4,1,1, , , 

pi = atan(1)*4

DIV_A_DS1(1,1,1) = ATAN( ( ZD(2,1,1)-ZD(3,1,1) ) / ( XD(4,1,1)-XD(3,1,1) ) )/pi*180
DIV_A_DS1(2,1,1) = 180-ATAN( ( ZD(2,1,1)-ZD(3,1,1) ) / ( XD(3,1,1)-XD(2,1,1) ) )/pi*180
DIV_A_DS1(3,1,1) = 180+ATAN( ( ZD(3,1,1)-ZD(4,1,1) ) / ( XD(3,1,1)-XD(2,1,1) ) )/pi*180
DIV_A_DS1(4,1,1) = 360-ATAN( ( ZD(3,1,1)-ZD(4,1,1) ) / ( XD(4,1,1)-XD(3,1,1) ) )/pi*180

!!!!切割
!!洞室
csys,0
wpcsys,-1
VSEL,S,LOC,X,XD(3,1,1),XD(4,1,1)
VSEL,R,LOC,Z,ZD(2,1,1),ZD(3,1,1)
csys,11
wpcsys,-1
wprota,DIV_A_DS1(1,1,1)
wprota,,90
VSBW,ALL

csys,0
wpcsys,-1
VSEL,S,LOC,X,XD(2,1,1),XD(3,1,1)
VSEL,R,LOC,Z,ZD(2,1,1),ZD(3,1,1)
csys,11
wpcsys,-1
wprota,DIV_A_DS1(2,1,1)
wprota,,90
VSBW,ALL

csys,0
wpcsys,-1
VSEL,S,LOC,X,XD(2,1,1),XD(3,1,1)
VSEL,R,LOC,Z,ZD(3,1,1),ZD(4,1,1)
csys,11
wpcsys,-1
wprota,DIV_A_DS1(3,1,1)
wprota,,90
VSBW,ALL

csys,0
wpcsys,-1
VSEL,S,LOC,X,XD(3,1,1),XD(4,1,1)
VSEL,R,LOC,Z,ZD(3,1,1),ZD(4,1,1)
csys,11
wpcsys,-1
wprota,DIV_A_DS1(4,1,1)
wprota,,90
VSBW,ALL

nummrg,all  !合并所有元素
numcmp,all  !压缩所有元素编号

!!!!划分网格前组件
csys,11
WPCSYS,-1
VSEL,S,LOC,X,0,KW_d/2-CQ_t-0.3
CM,V_KW1_01_NB,VOLU                     !衬砌内部
VSEL,S,LOC,X,KW_d/2-CQ_t-0.3,KW_d/2
CM,V_KW1_02_CQ,VOLU                     !衬砌

ALLSEL,ALL
csys,0
wpcsys,-1

!!!!划分网格
!!厚度方向设定单元尺寸
ALLSEL,ALL
*DO,I,1,1
LSEL,S,LOC,Y,YD(I,1,1)+1,YD(I+1,1,1)-1
LESIZE,ALL,2, , , , , , ,0  
*ENDDO

!!开挖围岩网格与组件
ESIZE,ESIZE_1,,
mat,1
type,1
CMSEL,S,V_KW1_01_NB,VOLU
VMESH,ALL

ESIZE,ESIZE_2,,
mat,1
type,1
CMSEL,S,V_KW1_02_CQ,VOLU
VMESH,ALL

CMSEL,S,V_KW1_01_NB,VOLU
CMSEL,A,V_KW1_02_CQ,VOLU
CM,V_KW1,VOLU

!!加密区围岩网格与组件
ESIZE,ESIZE_3,,
mat,1
type,1
VSEL,S,LOC,X,XD(2,1,1),XD(4,1,1)
VSEL,R,LOC,Z,ZD(2,1,1),ZD(4,1,1)
VMESH,ALL

!!土层网格与组件
ESIZE,ESIZE_4,,
mat,1
type,1
VSEL,S,LOC,Z,ZD(1,1,1),ZD(5,1,1)
VMESH,ALL
CMSEL,U,V_KW1,VOLU
CM,V_TC_1,VOLU

!!衬砌网格与组件
CMSEL,S,V_KW1_02_CQ,VOLU
!VGEN,2,ALL, , , , , , ,0         !!!!!!复制开挖部分
!CMSEL,U,V_KW1_02_CQ,VOLU
CM,V_CQ1,VOLU
!ALLSEL,BELOW,VOLU
!MPCHG,7,ALL,

CMSEL,S,V_CQ1,VOLU
ALLSEL,BELOW,VOLU
CM,E_CQ1,ELEM

CMSEL,S,V_KW1,VOLU
ALLSEL,BELOW,VOLU
CM,E_KW1,ELEM

ALLSEL,ALL
CSYS,0
WPCSYS,-1
NSEL,S,LOC,X,XD(1,1,1)
NSEL,A,LOC,X,XD(5,1,1)
CM,N-X,NODE

NSEL,S,LOC,Y,YD(1,1,1)
NSEL,A,LOC,Y,YD(2,1,1)
CM,N-Y,NODE

NSEL,S,LOC,Z,ZD(5,1,1)
CM,N-Z,NODE

CSYS,0
WPCSYS,-1
allsel,all
/PNUM,MAT,1                      !!!!!!开启材料查看
/NUMBER,1                        !!!!!!指定编号颜色查看
/VIEW,1,,-1 
/REPLOT,

Finish  !返回上一次主菜单
/solu !进入求解器
csys,0  !改变坐标系
/view,1,1,0.5,1 !改变视图显示方向
/replot  !重新绘制
eplot !显示单元图
save !保存数据库
nsubst,10 !指定荷载子步
nlgeom,on  !指定大变形
nropt,full !指定newton-lapnace迭代
pred,on  !启用非线性求解预测器
lnsrch,on !启用线性搜索
outres,all,last  !选择将每一子步的最后一个迭代计算步结果保存
 !施加约束条件
!施加约束条件
D,N-X, , , , , ,UX, , , , , !施加X方向约束
D,N-Y, , , , , , ,UY, , , , !施加Y方向约束
D,N-Z, , , , , ,UX,UY,UZ, , , !施加Z方向约束
allsel,all
acel,0,0,-9.8  !施加重力
step=0 !用于记录计算步的参数
save  !存储数据库
 !求解自重应力场。
time,1  !第1个荷载步(时间步)
solve  !求解
save  !存储数据库
finish  !返回上一次主菜单

/solu                         !进入求解器
antype,,rest                    !重新启动
step=1
time,2                        !第三次计算
AUTOTS,1
DELTIM,0.1,0.001,0.2,1
!!杀死单元
CMSEL,S,E_KW1,ELEM
CMSEL,U,E_CQ1,ELEM
ekill,all                       !杀死核心土单元
allsel,all
CMSEL,S,E_CQ1,ELEM
mpchg,2,all                    !改变管片单元材料参数
allsel,all
solve  !求解
save  !存储数据库

/POST1
LCDEF,1,1, ,       ! 定义“自重工况”(STEP=1)
LCDEF,2,2, ,       ! 定义“开挖后工况”(STEP=2)
LCASE,2,           ! 加载工况2(此时单元状态为“开挖后”,隧道单元已死)
ESEL,S,LIVE        ! 选择工况2的活单元(与开挖后状态一致)
LCOPER,SUB,1, , ,  ! 执行“工况2(开挖后) - 工况1(自重)”
PLNSOL,U,Z,0,1     ! 绘制Z向位移差值云图

结果图:

img

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2025-11-26 15:05
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    在使用 ANSYS 对隧道模型进行建模时,如果未出现报错但结果存在异常,可能是由于以下原因导致:材料参数设置错误、边界条件不正确、网格划分不合理、接触面定义缺失或错误、载荷施加方式不当、求解器设置问题等。以下是详细的调试步骤和解决方案。


    一、检查材料参数是否合理

    重点部分:
    材料参数的单位、弹性模量(EX)、泊松比(PRXY)和密度(DENS)必须与实际工程一致,否则会导致应力应变计算错误。

    解决方案:

    1. 确认材料参数是否符合规范

      • 检查 UIMP 命令中的参数是否正确,例如:
        UIMP, 1, EX, PRXY, DENS, 60e6*10, 0.25, 2000         !4层参数(中砂)
        

        这里 EX=60e6*10600 MPa,可能过高或过低,需根据实际情况调整。

    2. 使用合理的单位制

      • 确保所有参数使用统一单位(如 kN、m、s、MPa),避免单位换算错误。
    3. 检查材料类型是否匹配单元类型

      • SOLID185 是用于实体结构的单元,适用于各向同性材料。若为混凝土或土体,可考虑使用 SOLID65PLANE182 等更合适的单元。

    二、检查几何建模是否正确

    重点部分:
    几何模型是否准确反映了实际结构,包括洞室形状、衬砌厚度、围岩范围等。

    解决方案:

    1. 查看几何模型是否完整

      • 使用 PREP7 中的 VSBWVMESH 命令后,运行 ESHOW 查看模型是否被正确分割。
      • 检查洞室是否被正确开挖,衬砌是否位于洞室内。
    2. 检查坐标系设置是否正确

      • CSWPLA,11,1,1,1 是极坐标系,用于切分洞室。确保该坐标系中心位置正确(即洞室中心)。
    3. 检查洞室切割是否正确

      • 检查 VSELWPROTA 命令是否正确选择了洞室区域并进行了旋转切割。

    三、检查网格划分是否合理

    重点部分:
    网格尺寸过大或过小都会影响结果精度,尤其是关键部位(如衬砌、洞室周围)需要加密。

    解决方案:

    1. 检查网格尺寸设置

      • ESIZE_1 = 1(钢衬、钢筋)
      • ESIZE_2 = 0.1(衬砌)
      • ESIZE_3 = 2.0(洞室周围)
      • ESIZE_4 = 2.0(其他围岩)

      建议:

      • 衬砌部分(ESIZE_2 = 0.1)是合理的,但需确认是否能保证足够的精度。
      • 洞室周围区域(ESIZE_3 = 2.0)可以适当减小,如 ESIZE_3 = 1.0
    2. 检查网格质量

      • 使用 ETABLEESHOW 查看网格是否存在扭曲、拉伸等问题。
    3. 检查网格是否覆盖整个模型

      • 确保所有体积(VOLU)都被正确划分了网格。

    四、检查边界条件和约束

    重点部分:
    边界条件设置错误可能导致模型失稳或结果异常,如无约束导致刚体运动。

    解决方案:

    1. 检查自由度约束

      • SOLU 阶段前,使用 D 命令对模型底部或其他边界施加固定约束,防止刚体位移。
      • 示例:
        D,ALL,UX,0
        D,ALL,UY,0
        D,ALL,UZ,0
        
    2. 检查是否遗漏了支撑条件

      • 若模型仅靠重力作用,可能会发生沉降或漂浮现象,需添加适当的边界条件。

    五、检查载荷施加是否正确

    重点部分:
    载荷方向、大小和施加位置是否与实际一致,否则可能导致结果偏差。

    解决方案:

    1. 检查重力载荷是否施加

      • 如果没有施加重力,模型可能处于无外力状态,导致变形不明显或结果异常。
      • 示例:
        ACEL, , , -9.81       ! 加速度(重力)
        
    2. 检查是否有其他载荷(如地应力、水压等)

      • 如果模型中存在地下水压力或其他外部载荷,需确保已正确施加。

    六、检查求解器设置

    重点部分:
    求解器选择不当可能导致收敛失败或结果不准。

    解决方案:

    1. 选择合适的求解器

      • 使用 SOLVE 前,确认使用的是正确的求解器(如 ANTYPE,1 为静力学分析)。
    2. 检查求解选项

      • 设置合适的求解步长、迭代次数等参数,确保模型能够收敛。
    3. 检查输出文件

      • 查看 *.OUT 文件,确认是否有警告或错误信息,即使 ANSYS 没有报错。

    七、验证模型结果

    重点部分:
    通过对比理论值或实验数据,判断结果是否合理。

    解决方案:

    1. 检查关键节点的应力、应变和位移

      • 使用 PRNSOLPLNSOL 查看关键点的应力分布。
    2. 对比理论值

      • 如隧道围岩的位移、衬砌内力等,与经典理论(如太沙基理论、弹性理论)进行比较。
    3. 检查收敛性

      • 如果模型无法收敛,尝试减小时间步长或增加迭代次数。

    八、代码优化建议

    你提供的代码中有一些潜在问题,以下是修改后的代码片段

    ! 修改后的网格划分部分
    ESIZE, ESIZE_1, ,      ! 钢衬、钢筋区域
    MAT, 1
    TYPE, 1
    CMSEL, S, V_KW1_01_NB, VOLU
    VMESH, ALL
    
    ESIZE, ESIZE_2, ,      ! 衬砌区域
    MAT, 1
    TYPE, 1
    CMSEL, S, V_KW1_02_CQ, VOLU
    VMESH, ALL
    
    ESIZE, ESIZE_3, ,      ! 洞室周围区域
    MAT, 1
    TYPE, 1
    VSEL, S, LOC, X, XD(2,1,1), XD(4,1,1)
    VSEL, R, LOC, Z, ZD(2,1,1), ZD(3,1,1)
    VMESH, ALL
    

    说明:

    • 确保 VSEL 正确选择了洞室周围区域,并对其进行了加密网格划分。
    • 可以将 ESIZE_3 调整为 1.0 以提高精度。

    总结

    | 序号 | 问题点 | 解决方案 | |------|----------------------|--------------------------------------------------------------------------| | 1 | 材料参数错误 | 检查单位、弹性模量、泊松比和密度是否合理 | | 2 | 几何建模错误 | 确认洞室、衬砌、围岩的位置和尺寸是否正确 | | 3 | 网格划分不合理 | 加密关键区域,检查网格质量和覆盖范围 | | 4 | 边界条件缺失 | 添加固定约束,防止刚体运动 | | 5 | 载荷施加错误 | 确保重力、水压等载荷正确施加 | | 6 | 求解器设置不当 | 选择合适的求解器,调整迭代参数 | | 7 | 结果验证不足 | 通过理论值或实验数据验证结果合理性 |


    如果你能提供具体的结果异常表现(如位移过大、应力集中、不收敛等),我可以进一步帮你定位问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月26日