用灰色理论分析的水箱水流量问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

水箱水流量问题

一、问题重述

许多供水单位由于没有测量流入或流出水箱流量的设备,而只能测量水箱中的水位,估计在任意时刻t流出水箱的流量f(t)。

给出原始数据表以及单位换算之后(长度m,时间h)的表。其中泵水用-1

二、模型假设

(1)影响水箱流量的唯一因素是该区公众对水的普通需要;

(2)水泵的灌水速度为常数;

(3)从水箱中流出水的最大流速小于水泵的灌水速度;

(4)每天的用水量分布都是相似的;

(5)水箱的流速可用光滑曲线来近似;

(6)当水箱的水容量达到3

⨯停止泵水。

51410g

677.610g

⨯开始泵水;达到3

三、符号说明

t:时间

V:水箱中水的体积

f(t)任意时刻t水箱的流量

四、模型建立与求解

(一)插值拟合解法:

1.首先将表格中的数据转化为标准单位制,其中时间用小时,体积用立方米。

1E=0.3024m

1L=7.481G

2.(1)水塔中水的体积计算:

24

V D h π

=

式中:D 为水塔的直径;h 为水塔中的水位高度。

(2)水塔中水流速度的估计。水流速度应该是水塔中水的体积对时间的导数,但由于没有每一时刻水体积的具体数学表达式,这里我们用插商近似导数。

由于在两个时间段,水泵向水塔供水,无法确定水位的高度,因此计算水流速度要分3段进行计算。第一段从0省道32284s ,第二段从39435s 到75021s ,第三段从85968s 到93270s

3.为了得到流速的连续曲线可以使用三次样条插值处理,然后做出时间-流速的散点图。

图1:时间流速散点图

4.曲线拟合

用MATLAB 进行三次样条插值拟合的曲线如下

图2:时间-流速曲线

5.对水流速度进行数值积分可以得到24小时的用水量为1358.43m

(二)GM (2,1)模型解法:

1.

-1

2.设时间序列为n t ,体积序列为n V 将11i i

i i

V V t t ++--组成新的一个数组n Q 并存储在文件名为data2.txt 的纯文本文件

中。

然后对序列n Q 建立GM (2,1)模型。

计算出

可以看出用GM(2,1)对本问题进行估计误差较大,所以不建议使用。

GM(2,1)模型流速图

其中蓝线是GM(2,1)模型给出的流速图。

五、附录

计算的MATLAB程序如下:

首先把原始数据粘贴到纯文本文件data.txt中,并把其中的泵水用-1标记。

clc,clear

a=load('data.txt');

t0=a(:,[1,3]);to=t0(:);%Ìá³öʱ¼äÊý¾Ý£¬²¢Õ¹¿ª³ÉÁÐÏòÁ¿

h0=a(:,[2,4]);h0=h0(:);%Ìá³ö¸ß¶ÈÊý¾Ý£¬²¢Õ¹¿ª³ÉÁÐÏòÁ¿

hs=0.3024;%µ¥Î»»»ËãÊý¾Ý

D=57*hs;%Ë®ËþÖ±¾¶£¬µ¥Î»m

h=h0/100*hs;%¸ß¶ÈÊý¾Ý£¬µ¥Î»m

t=t0/3600;%ʱ¼äת»¯³ÉСʱ

V=pi/4*D^2*h;%¼ÆËã¸÷¸öʱ¿ÌµÄÌå»ý

dv=gradient(V,t);%¼ÆËã¸÷ʱ¿ÌµÄÊýÖµµ¼Êý

no1=find(h0==-1);%ÕÒ³öÔ-ʼÎÞЧÊý¾ÝµÄµØÖ·

no2=[no1(1)-1:no1(2)+1,no1(3)-1:no1(4)+1];%ÕÒ³öµ¼ÊýÊý¾ÝÎÞЧµÄµØÖ·tt=t;tt(no2)=[];%ɾ³ýµ¼ÊýÊý¾ÝÎÞЧµÄµØÖ·µÄʱ¼ä

dv2=-dv;dv2(no2)=[];%¸ø³ö¸÷ʱ¿ÌµÄÁ÷ËÙ

plot(tt,dv2,'*')%»-³öÁ÷ËÙµÄÉ¢µãͼ

pp=csape(tt,dv2);%¶ÔÁ÷ËÙ½øÐвåÖµ

tt0=0:0.1:tt(end);%¸ø³ö²åÖµµã

fdv=ppval(pp,tt0);%¼ÆËã¸÷²åÖµµãµÄÁ÷ËÙÖµ

hold on,plot(tt0,fdv)%»-³ö²åÖµÇúÏß

I=trapz(tt0(1:241),fdv(1:241))%¼ÆËã24hÄÚ×ÜÁ÷Á¿µÄÊýÖµ»ý·Ö

clc,clear

a=load('data2.txt');%ÌáÈ¡Êý¾Ý

tt=a(:,1);

x0=a(:,2);

x0=x0/7.481

x0=x0'

n=length(x0);

x1=cumsum(x0)

a_x0=diff(x0)'

z=0.5*(x1(2:end)+x1(1:end-1))';

B=[-x0(2:end)',-z,ones(n-1,1)];

u=B\a_x0

x=dsolve('D2x+a1*Dx+a2*x=b','x(0)=c1,x(26)=c2');

x=subs(x,{'a1','a2','b','c1','c2'},{u(1),u(2),u(3),x1(1),x1(27)}); yuce=subs(x,'t',0:n-1);

x=vpa(x,6)

ezplot(x,[1,26])

x0_hat=[yuce(1),diff(yuce)]

epsilon=x0-x0_hat

plot(tt,x0_hat,tt,x0)

delta=abs(epsilon./x0)

相关文档
最新文档