【机械】基于广义Hoek-Brown实现应变软化岩体GRC曲线及围岩位移应力塑性区绘制附matlab代码

简介: 【机械】基于广义Hoek-Brown实现应变软化岩体GRC曲线及围岩位移应力塑性区绘制附matlab代码

 1 内容介绍

基于岩体的强度参数随着最大塑性主应变的增加而逐渐演化这一力学行为,采用广义Hoek-Brown(H-B)强度准则,以最大塑性主应变作为应变软化参数,假设广义Hoek-Brown强度准则中的强度参数m,s和a为最大塑性主应变的双线性函数条件下,通过理论推导给出岩体应变软化曲线非线性表达式的求法。最后结合算例分析度参数m,s和a的演化规律对岩体应变软化行为的影响。研究结果表明:强度参数m和s的残余值越大且a的残余值越小,则软化曲线下降得越缓和,岩体的残余强度越大。

2 仿真代码

%%%%%%%%%%%%%%%%%%%无支护时弹塑性应变软化计算程序,压为正

clear;

clc;

close;

tic;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

b=3; %隧道半径

s0=15e6; %初始地应力

E=5.7e9; %初始变形模量

v=0.25; %泊松比

G0=E/(1+v)/2; %剪切模量

Mp=2.0;  %胡克布朗参数

Mr=0.6;  %

Sp=4e-3;   %

Sr=2e-3;   %

Ap=0.56;

Ar=0.6;

scp=30e6;

scr=20e6;

Dp=15;   %峰值剪涨角

Dr=5;   %残余剪涨角

gamastarp=0.01; %临界塑性剪应变

n=200; %塑性区划分的环数

toc

xx1=Elas_u(1,:);

yy1=Elas_pi(:,1)';

xx2=u(n+1,1:cystart);

yy2=Pi(1:cystart,1)';

xx3=u(n+1,cystart:end);

yy3=Pi(cystart:end,1)';

%%%%%%%%%%%%%%%%%%%%后处理

%%%%%%%%%%%%%%%%%%绘制GRC曲线

figure('name','GRC')

hold on

plot(xx1,yy1,'r-s','MarkerSize',5,'LineWidth',2,'MarkerEdgeColor','r')

plot(xx2,yy2,'g-o','MarkerSize',5,'LineWidth',2,'MarkerEdgeColor','g')

plot(xx3,yy3,'b-d','MarkerSize',5,'LineWidth',2,'MarkerEdgeColor','b')

%plot(u(n+1,:),Pi,'r-o','MarkerSize',4,'LineWidth',2,'MarkerEdgeColor','b','MarkerFaceColor','w')

%%%%%%%%%%%绘制应力关于距洞室距离的变化曲线

numk=100;  %表示第50次卸荷的数据

if Rs(numk,1)<3  %说明残余区没有产生

len=length(Glob_RR(Glob_RR(:,numk)<=Rp(numk)));

figure('name','stress')

hold on

plot(Glob_RR(1:len,numk),Glob_sr(1:len,numk),'r-s')

plot(Glob_RR(len:end,numk),Glob_sr(len:end,numk),'b-s')

plot(Glob_RR(1:len,numk),Glob_st(1:len,numk),'r-o')

plot(Glob_RR(len:end,numk),Glob_st(len:end,numk),'b-o')

%%%%%%%%%%%绘制应变关于距洞室距离的变化曲线

figure('name','strain')

hold on

plot(Glob_RR(1:len,numk),Glob_er(1:len,numk),'r-s')

plot(Glob_RR(len:end,numk),Glob_er(len:end,numk),'b-s')

plot(Glob_RR(1:len,numk),Glob_et(1:len,numk),'r-o')

plot(Glob_RR(len:end,numk),Glob_et(len:end,numk),'b-o')

%%%%%%%%%%%绘制径向位移关于距洞室距离的变化曲线

figure('name','rad_disp')

hold on

plot(Glob_RR(1:len,numk),Glob_u(1:len,numk),'r-s')

plot(Glob_RR(len:end,numk),Glob_u(len:end,numk),'b-s')

else  %说明残余区已经产生

   len1=length(Glob_RR(Glob_RR(:,numk)<=Rs(numk)));

   len2=length(Glob_RR(Glob_RR(:,numk)<=Rp(numk)))-len1;

   

figure('name','stress')

hold on

plot(Glob_RR(1:len1,numk),Glob_sr(1:len1,numk),'r-s')

plot(Glob_RR(len1:len2,numk),Glob_sr(len1:len2,numk),'b-s')

plot(Glob_RR(len2:end,numk),Glob_sr(len2:end,numk),'g-x')

plot(Glob_RR(1:len1,numk),Glob_st(1:len1,numk),'r-s')

plot(Glob_RR(len1:len2,numk),Glob_st(len1:len2,numk),'b-s')

plot(Glob_RR(len2:end,numk),Glob_st(len2:end,numk),'g-x')

%%%%%%%%%%%绘制应变关于距洞室距离的变化曲线

figure('name','strain')

hold on

plot(Glob_RR(1:len1,numk),Glob_er(1:len1,numk),'r-s')

plot(Glob_RR(len1:len2,numk),Glob_er(len1:len2,numk),'b-s')

plot(Glob_RR(len2:end,numk),Glob_er(len2:end,numk),'g-x')

plot(Glob_RR(1:len1,numk),Glob_et(1:len1,numk),'r-s')

plot(Glob_RR(len1:len2,numk),Glob_et(len1:len2,numk),'b-s')

plot(Glob_RR(len2:end,numk),Glob_et(len2:end,numk),'g-x')

%%%%%%%%%%%绘制径向位移关于距洞室距离的变化曲线

figure('name','rad_disp')

hold on

plot(Glob_RR(1:len1,numk),Glob_u(1:len1,numk),'r-s')

plot(Glob_RR(len1:len2,numk),Glob_u(len1:len2,numk),'b-s')

plot(Glob_RR(len2:end,numk),Glob_u(len2:end,numk),'g-x')

end

%%%%%%%%%%%绘制云图  %numk 表示第numk次卸荷的结果

nn = 72;

rr = Glob_RR(:,numk);

theta = pi*(-nn:nn)/nn;

X = rr*cos(theta);

Y = rr*sin(theta);

%%%%%%%%%%%%%%%径向应力

CCsr = Glob_sr(:,numk)*ones(1,length(theta));

figure('name','contour_rad_stress')

pcolor(X,Y,CCsr)

axis equal tight;

shading interp;

colorbar;

colormap(jet);

%%%%%%%%%%%%%%%切向应力

CCst = Glob_st(:,numk)*ones(1,length(theta));

figure('name','contour_cir_stress')

pcolor(X,Y,CCst)

axis equal tight;

shading interp;

colorbar;

colormap(jet);

%%%%%%%%%%%%%%%径向应变

CCer = Glob_er(:,numk)*ones(1,length(theta));

figure('name','contour_rad_strain')

pcolor(X,Y,CCer)

axis equal tight;

shading interp;

colorbar;

colormap(jet);

%%%%%%%%%%%%%%%切向应变

CCet = Glob_et(:,numk)*ones(1,length(theta));

figure('name','contour_cir_strain')

pcolor(X,Y,CCet)

axis equal tight;

shading interp;

colorbar;

colormap(jet);

%%%%%%%%%%%%%%%径向位移

CCu = Glob_u(:,numk)*ones(1,length(theta));

figure('name','contour_rad_disp')

pcolor(X,Y,CCu)

axis equal tight;

shading interp;

colorbar;

colormap(jet);

%colormap(lines);

%colormap(flipud(bone));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%contourf(X,Y,CCu,20,'--','ShowText','on','LineWidth',1)

%contourf(X,Y,CCu,'lines','no')

%axis equal tight;

%shading interp;

%colorbar;

%colormap(jet);

3 运行结果

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

image.gif编辑

4 参考文献

[1]蔡海兵, 程桦, 荣传新. 基于广义Hoek-Brown准则的深埋硐室围岩塑性区位移分析[J]. 采矿与安全工程学报, 2015, 32(5):8.

[2]韩建新, 李术才, 汪雷,等. 基于广义Hoek-Brown强度准则的岩体应变软化行为模型[J]. 中南大学学报:自然科学版, 2013, 44(11):5.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

相关文章
|
8天前
|
机器学习/深度学习 存储 前端开发
Matlab建立SVM,KNN和朴素贝叶斯模型分类绘制ROC曲线
Matlab建立SVM,KNN和朴素贝叶斯模型分类绘制ROC曲线
35 5
|
17天前
|
存储 人工智能 机器人
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
|
2月前
|
机器学习/深度学习 算法 计算机视觉
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
30 2
|
2月前
|
算法
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
38 0
|
2月前
|
算法
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
72 0
|
3月前
|
Perl
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
|
3月前
【数值分析】迭代法求方程的根(附matlab代码)
【数值分析】迭代法求方程的根(附matlab代码)
|
3月前
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
|
3月前
【数值分析】二分法求方程的根(附matlab代码)
【数值分析】二分法求方程的根(附matlab代码)
|
2月前
|
算法
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
41 0

热门文章

最新文章