%桥梁洪水位快速计算软件 V1.4
%根据设计断面上的已知频率洪水水位,推求现状断面同频率水位和指定频率水位
%中间变量是流量模数G
%桥梁洪水位快速计算软件 V1.4
%根据设计断面上的已知频率洪水水位,推求现状断面同频率水位和指定频率水位
%中间变量是流量模数G
% Code by 陈启刚 at 2025.4.23
% Copyright of BJTU
clear all;
close all;
%以下为输入参数
strDesignSecPath='E:\已完成川哥计算组2\C广东梅平高速公路有限公司汤显政\C长深高速石窟河大桥\C梅平高速公路有限公司石窟河大桥计算部分\设计断面.txt'; %设计状态桥位断面数据文件,两列
strCurrentSecPath='E:\已完成川哥计算组2\C广东梅平高速公路有限公司汤显政\C长深高速石窟河大桥\C梅平高速公路有限公司石窟河大桥计算部分\实测断面.txt';%现场实测桥位断面数据文件,没有就用设计断面
strSavePath='E:\已完成川哥计算组2\C广东梅平高速公路有限公司汤显政\C长深高速石窟河大桥\C梅平高速公路有限公司石窟河大桥计算部分\计算结果.txt'; %保存文件的位置
dAngle=90; %大桥斜交角度
Cv=0.35; %洪峰流量变差系数0.2-0.6,河流洪峰流量的变差系数Cv值通常在0.22到0.6之间?。具体来说,黄河干流的年径流变差系数Cv值一般在0.22~0.25之间,而其较大支流的Cv值一般为0.4~0.5,黄土高原地区的一些中、小支流Cv值可达0.6?
Cs2Cv=3; %偏态系数与变差系数之比2-4
dKnowWaterLevel=64; %设计水位
dKnowFreq=1/100; %设计水位对应的频率
dSafeFreq=1/100; %安全运行水位对应的频率
dWarnFreq=1/25; %设防警戒水位对应的频率
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[dDs,dDz,nDi,dDn]=readSectionFile_Cpx(strDesignSecPath);
[dMs,dMz,nMi,dMn]=readSectionFile_Cpx(strCurrentSecPath);
[dDs,dDz]=projSection(dDs,dDz,dAngle);
[dMs,dMz]=projSection(dMs,dMz,dAngle);
figure;plot(dDs,dDz,'b-','Linewidth',2);hold on; plot(dMs,dMz,'-','Linewidth',2); hold off;
xlabel('起点距(m)');
ylabel('高程(m)');
set(gca,'FontName','宋体','FontSize',15);
%已知水位对应的流量模数
G_Know=getG(dDs,dDz,nDi,dDn,dKnowWaterLevel);
%计算水位-流量模数曲线
maxMz=max(dMz);
minMz=min(dMz);
minMs=min(dMs);
maxMs=max(dMs);
xCurveG=[];
U=100; %%元素个数
sf=0.1; %%图片比例缩放系数
dCurveZ = linspace(minMz, maxMz, U); %水位
dCurveG=dCurveZ.*0; %流量模数
for i=1:U
dCurveG(i)=getG(dMs,dMz,nMi,dMn,dCurveZ(i));
end
%计算安全运行水位
dK0=getKp(Cv,Cs2Cv,dKnowFreq); %已知洪水频率对应的模比系数
dK1=getKp(Cv,Cs2Cv,dSafeFreq); %设计洪水频率对应的模比系数
G_Safe=G_Know*dK1/dK0;
dSafeWaterLevel = interp1(dCurveG,dCurveZ, G_Safe , 'linear'); % 安全运行水位
dK2=getKp(Cv,Cs2Cv,dWarnFreq); %预警洪水频率对应的模比系数
G_Warn=G_Know*dK2/dK0;
dWarnWaterLevel = interp1(dCurveG,dCurveZ, G_Warn , 'linear'); % 线性插值
fprintf('设计水位= %.2fm\r',dKnowWaterLevel);
fprintf('安全水位= %.2fm\r',dSafeWaterLevel);
fprintf('警戒水位= %.2fm\r',dWarnWaterLevel);
fprintf('安全水位流量模数= %.2fm^3/s\r',G_Safe);
fprintf('警戒水位流量模数= %.2fm^3/s\r',G_Warn);
hold on; plot([minMs,maxMs],[dKnowWaterLevel,dKnowWaterLevel],'r-');
hold on; plot([minMs,maxMs],[dSafeWaterLevel,dSafeWaterLevel],'k-');
hold on; plot([minMs,maxMs],[dWarnWaterLevel,dWarnWaterLevel],'g-');
hold off;
legend('设计断面','现状断面','已知水位','安全水位','警戒水位');
saveResult(strSavePath,dKnowWaterLevel,dSafeWaterLevel,dWarnWaterLevel,dK0,dK1,dK2,G_Know,G_Safe,G_Warn,dCurveZ,dCurveG);
for j=1:fix(U*sf)
xCurveG(j)=dCurveG(j);
xCurveZ(j)=dCurveZ(j);
end
if fix(min(xCurveZ))<0
var=min(xCurveZ)-1;
else
var=fix(min(xCurveZ));
end
k1=[G_Safe G_Safe];k2=[ var dSafeWaterLevel];k3=[G_Safe 0];k4=[dSafeWaterLevel dSafeWaterLevel];
m1=[G_Warn G_Warn];m2=[ var dWarnWaterLevel];m3=[G_Warn 0];m4=[dWarnWaterLevel dWarnWaterLevel];
%%figure;
plot(xCurveG,xCurveZ,'k-',k1,k2,'r-.',k3,k4,'r-.',m1,m2,'b:',m3,m4,'b:','linewidth',2)
xlabel('流量模数{\it G}(m^3/s)','FontSize',15,'FontWeight', 'bold')
ylabel('水位{\it h}(m)','FontSize',15,'FontWeight', 'bold')
txt1=[{'\color{red}安全运行基准','洪水流量模数'},['{\it G_p}=',num2str(G_Safe,6),'m^3/s']];
txt2=['\color{red}安全运行基准水位{\it h_p}=',num2str(dSafeWaterLevel,4),'m'];
txt3=[{'\color{blue}警戒洪水流量模数'},['{\it G_y}=',num2str(G_Warn,6),'m^3/s']];
txt4=['\color{blue}警戒水位{\it h_y}=',num2str(dWarnWaterLevel,4),'m'];
X_sf=0.0; %%横坐标比例系数,X_sf为0.0时为原图,即从0开始,X_sf越大,X轴起始值越高,该值取值必须小于1.0
Y_sf=0.0;%%纵坐标比例系数,Y_sf一般不用调整,如需调整一般为不小于1.0的系数,Y_sf越大,纵坐标起点越高
xlim([X_sf*max(xCurveG),max(xCurveG)]);%%横坐标坐标范围自定义;
ylim([min(xCurveZ)+Y_sf,fix(max(xCurveZ))+Y_sf+2]); %%纵坐标范围自定义
%xlim([10000,1300000]);
%ylim([-8,6]);
zbxs_x=1.01;zbxs_y=0.95; %坐标位置系数
FontSize=19; %%字体大小
a=G_Safe*zbxs_x;b=dSafeWaterLevel*zbxs_y;c=G_Warn/zbxs_x;d=dWarnWaterLevel*zbxs_y;
text(a,b-1,txt1,'FontSize',FontSize-1,'FontWeight', 'bold') %% 安全运行基准洪水流量模数坐标
text(200,b/zbxs_y+0.6,txt2,'FontSize',FontSize,'FontWeight', 'bold') %% 安全运行基准水位坐标
text(c,d-1.4,txt3,'FontSize',FontSize-1,'FontWeight', 'bold','HorizontalAlignment','right') %% 警戒洪水流量模数坐标
text(200,d/zbxs_y-0.6,txt4,'FontSize',FontSize,'FontWeight', 'bold') %% 警戒水位坐标
get(gca,'xtick');
set(gca,'xticklabel',get(gca,'xtick'));
set(gca,'FontSize',18)
pbaspect([2 1 1])把这段代码的绝对路径改为相对路径,并且转为py代码
最新发布