【机械】基于广义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代码问题可私信交流。

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

相关文章
|
3月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
190 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
122 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
3月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
88 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
3月前
|
移动开发
【光波电子学】MATLAB绘制子午光线路径方程曲线
本文介绍了如何使用MATLAB绘制基于特定折射率分布的第一种子午光线路径方程曲线的方法。
44 3
|
6月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
6月前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
6月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
6月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
6月前
|
供应链 算法
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)