开发者社区> Matlab科研工作室> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

【数学模型】基于Matlab实现洪水调度运算

简介: 【数学模型】基于Matlab实现洪水调度运算
+关注继续查看

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信 无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机

⛄ 内容介绍

%justw 水库调洪演算自编程序

%水量平衡方程:(Q1+Q2)*dt/2-(q1+q2)*dt/2=V2-V1

%水库蓄泄方程:q=m1*L*(z-z0)^1.5+m2*A*(z-z0)^0.5

%zm--演算结果:[初始水位m 最高水位m 水位上涨m 初始库容1e4m3 最大库容1e4m3 调洪库容1e4m3 入库洪峰m3/s 最大泄量m3/s 洪峰削减m3/s]

%Qt--洪水过程线:{[时间h 流量m3/s]}

%Vz--水位库容曲线:[水位m 库容1e4m3]

%fq--蓄泄参数:[流量系数 堰顶净宽m/洞口面积m2 堰顶高程m/洞心高程m 溢洪道(1.5)/泄洪洞(0.5)]

%z0--初始参数:[初始水位m 时段长度h 洪水线性插值<1>/样条插值(2)] 

⛄ 部分代码

function zm=justw(Qt,Vz,fq,z0)

if nargin<1, Qt=fin('Qt',''); end

if nargin<2, Vz=fin('Vz',''); end

if nargin<3, fq=fin('fq',''); end

if nargin<4, z0=fin('z0',''); end

Qt=chk('Qt',Qt);

Vz=chk('Vz',Vz);

fq=chk('fq',fq);

z0=chk('z0',z0);

if isempty(z0), z0=[min(fq(:,3)) 0.1 1]; end

save justw Qt Vz fq z0;


method={'l';'s'};

zm=zeros(length(Qt),9);

qt=cell(size(Qt));

for i=1:length(Qt)

   t=union(Qt{i}(:,1),[0:z0(2):max(Qt{i}(:,1))]');

   t(diff(t).*3600<1)=[];

   Q=interp1([0;Qt{i}(:,1)],[0;Qt{i}(:,2)],t,method{z0(3)});

   z=repmat(z0(1),size(t));

   for j=1:length(t)-1, z(j+1)=funz2(Q(j:j+1),t(j:j+1),z(j),Vz,fq); end

   q=funq(fq,z);

   zm(i,[1 2 4 5 7 8])=[z0(1) max(z) interp1(Vz(:,1),Vz(:,2),[z0(1) max(z)],'s') max(Q) max(q)];

   zm(i,[3 6 9])=[diff(zm(i,[1 2])) diff(zm(i,[4 5])) diff(zm(i,[8 7]))];

   qt{i}=[t Q q];

end


for i=1:length(qt)

   subplot(length(qt),1,i);

   plot(qt{i}(:,1),qt{i}(:,2),qt{i}(:,1),qt{i}(:,3));

end

str=sprintf('\n水库调洪演算\n计算程序:justw\n计算时间:%s\n计算结果......\n',date);

str=[str sprintf('\n    初始水位     最高水位     水位上涨     初始库容     最大库容     调洪库容     入库洪峰     最大泄量     洪峰削减')];

str=[str sprintf('\n           m            m            m         万m3         万m3         万m3         m3/s         m3/s         m3/s')];

str=[str sprintf('\n%12.3f %12.3f %12.3f %12.2f %12.2f %12.2f %12.2f %12.2f %12.2f',zm')];

disp(str);

fid=fopen('justwout.txt','w+t');

fprintf(fid,'%s\n',str);

fclose(fid);


function y=fin(opt,str)

%fin 输入原始数据

switch opt

case 'Qt', str2='Qt--洪水过程:{[时间h 流量m3/s]} <>:';

case 'Vz', str2='Vz--水位库容曲线:[水位m 库容1e4m3] <>:';

case 'fq', str2='fq--蓄泄参数:[流量系数 堰顶净宽m/洞口面积m2 堰顶高程m/洞心高程m 溢洪道(1.5)/泄洪洞(0.5)] <>:';

case 'z0', str2='z0--初始参数:[初始水位m 时段长度h<0.1> 洪水线性插值<1>/样条插值(2)] <>:';

end

y=input([str str2]);

y=chk(opt,y);


function y=chk(opt,x)

%chk 检查原始数据

str='\n数据错误,请检查后重新......\n';

switch opt

case 'Qt'

   if iscell(x) & ~isempty(x)

      x=x(:);

      n=zeros(size(x));

      for i=1:length(x)

         if size(x{i},2)~=2, x{i}=x{i}'; end

         if size(x{i},2)==2

            if isequal(sort(x{i}(:,1)),x{i}(:,1)) & all(x{i}(:,2)>=0), n(i)=1; end

         end

      end

      if all(n), str=''; end

   end


%funz 迭代

dq=mean(Q)-funq(fq,z1);

dz=[0 0];

if dq>1e-4, dz(2)=0.1; elseif dq<-1e-4, dz(2)=-0.1; end

while abs(diff(dz))>0.0005

   dz(1)=dz(2);

   dz(2)=(2.*dq.*dz(1).*diff(t).*3600)./(2.*diff(interp1(Vz(:,1),Vz(:,2).*1e4,[z1 z1+dz(1)],'s'))+diff(funq(fq,[z1 z1+dz(1)])).*diff(t).*3600);

end

z2=z1+dz(2);


⛄ 运行结果

image

⛄ 参考文献

[1]邹进, 张勇传. 一种多目标决策问题的模糊解法及在洪水调度中的应用[J]. 水利学报, 2003.

❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
m基于MATLAB的码分多址复用技术的仿真
CDMA技术的基础是扩频通信。扩频:用来传输信息的信号带宽远远大于信息本身带宽的一种传输方式,频带的扩展由独立于信息的扩频码来实现,与所传信息数据无关,在接收端用同步接收实现解扩和数据恢复。如图2-1,我们可以知道CDMA系统的基本原理和TDMA、FDMA的区别。
35 0
【图像分割】基于改进的主动轮廓模型实现图像分割附matlab代码
【图像分割】基于改进的主动轮廓模型实现图像分割附matlab代码
9 0
【图像分割】基于主动轮廓模型实现图像分割附matlab代码
【图像分割】基于主动轮廓模型实现图像分割附matlab代码
27 0
【图像去噪】基于PM模型实现图像降噪附matlab代码
【图像去噪】基于PM模型实现图像降噪附matlab代码
53 0
【图像去噪】基于隐马尔可夫模型实现图像去噪处理附matlab代码
【图像去噪】基于隐马尔可夫模型实现图像去噪处理附matlab代码
72 0
【显著图】基于多尺度图结构实现显著图计算附matlab源码
【显著图】基于多尺度图结构实现显著图计算附matlab源码
47 0
【数学模型】基于matlab实现车载自组织网络中路边性能及防碰撞算法研究
【数学模型】基于matlab实现车载自组织网络中路边性能及防碰撞算法研究
39 0
Matlab:利用Matlab编程实现模拟分子布朗运动的动画展示
Matlab:利用Matlab编程实现模拟分子布朗运动的动画展示
141 0
+关注
Matlab科研工作室
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题关注公众号 天天Matlab。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载