《数值分析》课程设计论文
水塔水流量的估计
摘 要:数学建模方法是处理科学理论的一种经典方法,也是解决各类实际问题的常用方法。本文采用曲线拟合的方法,并利用数学软件MATLAB对水塔流量进行计算,计算结果与实际记录基本吻合。 关键词:建模,流量,拟合,MATLAB
1.问题重述
美国某州的各用水管理机构要求各社区提供用水率(以每小时多少加仑计,英制单位下,1加仑=4.54596dm3,美制单位下,1加仑=3.78533dm3)以及每天所用的总用水量,但许多社区并没有测量流入或流出当地水塔的水量的设备,而只能以每小时测量水塔的水位代替,其精度在0.5%以内。更为重要的是,无论什么时候,只要水塔中的水位下降到某一最低水位L时,水泵就启动向水塔重新充水直至某一最高水位H,但也无法得到水泵的供水量的测量数据。因此,在水泵正在工作时,不容易建立水塔中水位与水泵工作时用水量之间的关系。水泵每天向水塔充水一次或两次,每次大约2小时。试估计在任何时候,甚至包括水泵正在工作的时间内从水塔流出的流量f?t?,并估计一天的总用水量。水塔是一个垂直圆柱体,高为40英尺,直径为57英尺。 下表给出了某个小镇某一天的真实数据:
表1:某小镇某天的水塔水位(1m=3.281英尺) 时间(秒) 水位(英尺) 时间(秒) 水位(英尺) 时间(秒) 水位(英尺) 0 3316 6635 10619 13937 17921 21240 25223 28543 32284 31.75 31.10 30.54 29.94 29.55 28.92 28.50 27.87 27.52 26.97 35932 39332 39435 43318 46636 49953 53936 57254 60574 64554
水泵工作 水泵工作 35.50 34.45 33.50 32.67 31.56 30.81 30.12 29.27 68535 71854 75021 79154 82649 85968 89953 93270 28.42 27.67 26.97 水泵工作 水泵工作 34.75 33.89 33.40 1
《数值分析》课程设计论文
2.问题分析
数据的单位转换:
表2 时间(h) 水位(m) 时间(h) 水位(m) 时间(h) 水位(m) 0 0.92 1.84 2.95 3.87 4.98 5.90 7.01 7.93 8.97 9.6769 9.4788 9.3081 9.1253 9.0071 8.8144 8.6864 8.5030 8.3877 8.2201 9.98 10.93 10.95 12.03 12.95 13.88 14.98 15.90 16.83 17.94 水泵工作 水泵工作 10.8199 10.4998 10.2103 9.9573 9.6190 9.3904 9.1801 8.9211 19.04 19.96 20.84 22.01 22.96 23.88 24.99 25.91 8.6620 8.4334 8.2201 水泵工作 水泵工作 10.5913 10.3292 10.1798 流量是单位时间流出的水的体积,可以由对应时刻的流速乘以水塔的横截面积得到。由于水塔是正圆柱形,横截面积是常数S,所以我们在这里研究的其实是流速的变化。
在水泵不工作的时段,流量很容易从水位对时间的变化率,即流速算出,问题是如何估计水泵供水时段的流速。水泵供水时段的流速只能靠供水时段前后的流速拟合得到,作为用于拟合的原始数据,我们希望水泵不工作的时段流速越准确越好。这些流速大体可由两种方法计算: 一是直接对表2中的水位用数值微分算出各时段的流速,用它们拟合其它时刻或连续时间的流速。二是先用表中数据拟合水位-时间函数,求导数即可得到连续时间的流速。
一般说来数值微分的精度不高,何况测量记录还是不等距的,数值微分的计算尤其麻烦。下面我们用第二种方法处理。
有了任何时刻的流速,就不难计算一天的总用水量。其实,水泵不工作时段的用水量可以由测量记录直接得到,如表2可知从t=0到t=8.97(h)水位下降了
9.6769?8.2201?1.4568(m),乘以水塔的横截面积S
就是这一时段的用水量。这个数值
可以用来检验拟合的结果。水泵第1次供水时段为t=8.98(h)到t=10.94(h),第2次供水时段为t=21(h)到t=23 (h)。这是根据最低和最高水位分别是8.2201m和10.8199m及表2的水位测量记录作出的假设。其中前3个时刻取自实测数据(精确到0.01h),最后1个时刻来自每次供水约两小时的已知条件(从记录看,第2次供水时段应在有记录的22.96h之后不久结束)。
2
《数值分析》课程设计论文
3.模型假设
供水时段的假设
水泵工作时单位时间的供水量基本为常数,这个常数大于单位时间的平均流量。流量是单位时间流出水的体积,这里假设是水位对时间的连续函数,即h?h?t?。为简化处理,不影响问题的解决,假设流量与水泵是工作无关。
4.流量估计
4.1拟合水位-时间函数
从表2 测量记录看,一天有两个供水时段(以下称第1供水时段和第2供水时段)和3个水泵不工作时段(以下称第1用水时段t=0到t=8.97,第2用水时段t=10.95到t=20.48和第3用水时段t=23以后)。对第1、2用水时段的测量数据分别作多项式拟合,得到水位函数h1?h1?t?和h2?h2?t?。为使拟合曲线比较光滑,多项式次数不要太高,一般用3~6次。由于第3时段只有3个测量记录,无法对这一时段的水位作出比较好的拟合,可采用外推的办法解决。 4.2确定流量-时间函数
对于第1、2用水时段,只需将水位函数hi?hi?t?,i?1,2求导数即可,对于两个供水时段的流速,则用供水时段前后(水泵不工作时段)的流速拟合得到,并且将拟合得到的第2供水时段流速外推,将第3用水时段流速包含在第2供水时段内,需要拟合四个流速函数。 4.3一天的总用水量
总用水量等于两个水泵不工作时段和两个供水时段用水量之和,它们都可以由流速对时间的积分得到:
V??tt0V?dt??S?h?dtt0t5.算法设计与计算结果
5.1拟合第1、2时段的水位,并得出流量 5.1.1第1用水时段的流速
3
《数值分析》课程设计论文
设t、h为已输入的时刻和水位测量记录,实现如下:
t=[0,0.92,1.84,2.95,3.87,4.98,5.90,7.01,7.93,8.97,10.95,12.03,12.95,13.88,14.98,15.90,16.83,17.94,19.04,19.96,20.84,23.88,24.99,25.91];
h=[ 9.6769,9.4788,9.3081,9.1253,9.0071,8.8144,8.6864,8.5030,8.3877,8.2201,10.8199,10.4998,10.2103,9.9573,9.6190,9.3904,9.1801,8.9211,8.6620,8.4334,8.2201,10.5913,10.3292,10.1798];
f1=polyfit(t(1:10),h(1:10),5); %用5次多项式拟合第1用水时段水位h1?h1?t?,f1输出5次多项式的系数
b1=polyder(f1); % b1输出多项式(系数为f1)导数的系数,给出水位变化率 tm1=0:0.01:8.97; %将第一用水时段[0 , 8.97]细分
g1=-polyval(b1,tm1); %g1输出多项式b1在tm1点的函数值(取负后边为正值),即tm1时刻 的流速
5.1.2 第2用水时段的流速 实现如下:
f2=polyfit(t(11:21),h(11:21),5); %用5次多项式拟合第2用水时段水位水位h2?h2?t?,f2输出5次多项式的系数
b2=polyder(f2); 2输出多项式(系数为f2)导数的系数,给出水位变化率 tm2=10.95:0.01:20.84; %将第二用水时段[10.95 , 20.84]细分
g2=-polyval(b2,tm2); %g2输出多项式(b2)在tm2点的函数值(取负后边为正值),即tm2时刻的流速
4
《数值分析》课程设计论文
第1、2用水时间段的流速曲线图:
5.2拟合供水时段的流速 5.2.1第1供水时间段的流速
在第1供水时段(t = 8.98~10.94)之前(即第1用水时段)和之后(第2用水时段)各取几点,其流速已经得到,用它们拟合第1供水时段的流速。为使流速函数在供水时段连续,只取4个点,拟合5次多项式(即曲线必过这4个点)。拟合5次多项式,实现如下:
q1=-polyval(b1,[7.93,8.97]); %取第1时段在t=7.93,8.97的流速 q2=-polyval(b2,[10.95,12.03]); %取第2时段在t=10.95,12.03的流速 dx=[7.93,8.97,10.95,12.03]; dy=[q1,q2]; %将四个点合并 d=polyfit(dx,dy,5) ; %拟合5次多项式
ex=8.97:0.01:10.95; %将第一供水时段[8.97,10.95]细分 ey=polyval(d,ex); %ey输出第一供水时段各时刻的流速
5