MATLAB精品教程课件第13章--数值计算方法实际应用案例.pptxVIP

  • 16
  • 0
  • 约4.03千字
  • 约 23页
  • 2023-12-10 发布于重庆
  • 举报

MATLAB精品教程课件第13章--数值计算方法实际应用案例.pptx

第13章数值计算方法实际应用案例;13.1水塔水流量的估计;单位标准化:

loaddatatwater%读取data.mat文件

T=t/3600

h=0.01*water*0.3048

流量估计方法

首先我们需要确定水塔充水时间:由表13-1可知,对于第一次充水时间,当t=32284s时,水位为26.97ft,略低于最低水位27.0ft,因此可作为第一次开始充水时刻,当t=39435s时,水位为35.50ft,恰好为最高水位,因此可作为第一次充水结束时刻,故第一次充水时间为dt=(39435-32284)s=1.9864h;对于第二次充水时间,当t=82649s时,水泵在工作,但充水时间dt=(82649-75021)s=2.1189h,且下一时刻t=85968s时水塔水位为34.75ft,低于最高充水水位,因此可将t=82649s作为第二次充水的结束时刻,且该时刻的水位为最大充水高度35.50ft。

根据上面的介绍以及表13-2所给数据,利用水塔的截面积是常数,作出时间-水塔中水的体积图如图所示。

k=find(t==82649);%寻找t=82649s的位置

h(k)=35.50*0.3048;%将t=82649s时刻的值设为最高水位

T(isnan(h))=[];%将水泵启动的时刻置空

h(isnan(h))=[];%将水泵启动的时刻的水位置空

V=pi*(57*0.3048/2)^2*h;%水塔中水的体积

plot(T,V,K*)%绘制图形

xlabel(时间/h)%标注x轴

ylabel(水的体积/m^3)%标注y轴;下面来计算水箱流量与时间的关系。水流量应该是水塔中水的体积对时间的导数,即

但此处由于没有水的体积关于时间的函数表达式,只有一个离散的函数值表,因此考虑数值微分。这里首先选用均差近似导数,

%利用均值近似表示导数

t1=T(1:10);%第一段时间向量

t2=T(11:21);%第二段时间向量

t3=T(22:end);%第三段时间向量

V1=V(1:10);%第一段水的体积

V2=V(11:21);%第二段水的体积

V3=V(22:end);%第三段水的体积

dV=abs([gradient(V1,t1),gradient(V2,t2),gradient(V3,t3)]);%用均差近似导数

ti=linspace(min(T),max(T));

fi=spline(T,dV,ti);%fi=interp1(t,dV,ti,spline)%三次样条插值

plot(T,dV,*,ti,fi,k)

xlabel(时间/h)

ylabel(流速/m^3/h)

legend(原始数据点,三次样条插值曲线)%添加图例;为提高精度,这里再采用二阶差商近似表示导数。

每段前两点采用向前差分公式:

每段后两点采用向后差分公式:

每段中间点采用中心差分形式:

根据上述公式,可以编写程序(程序具体内容见书本)得到时间与水流量之间的相关数据(见书本表13-3)。根据表13-3中的数据作出水流速散点图如图所示。;下面分别对整体和每一段数据进行插值来加密曲线。

对全体数据进行三次样条插值

%对整体数据进行三次样条插值

fi1=spline(T,f,ti);%fi=interp1(t,f,ti,spline)

plot(T,f,*,ti,fi1,k)

xlabel(时间/h)

ylabel(流速/m^3/h)

legend(原始数据点,三次样条插值曲线);分别对每一组数据进行三次样条插值

%对每一组数据分别进行三次样条插值

ti1=linspace(T(1),T(10));%第一段

ti2=linspace(T(11),T(21));%第二段

ti3=linspace(T(22),T(end));%第三段

fi1=spline(T(1:10),f(1:10),ti1);%对第一段进行三次样条插值

fi2=spline(T(11:21),f(11:21),ti2);%对第二段进行三次样条插值

fi3=spline(T(22:end),f(22:end),ti3);%对第三段进行三次样条插值

plot(T,f,*,[ti1;ti2;ti3],[fi1;fi2;fi3],k)

xlabel(时间/h)

ylabel(流速/m^3/h)

legend(原始数据点,三次样条插值曲线);一天总用水量的计算

数值积分法

直接积分

tti=0:0.01:24;

vi=spline(T,f,tti);

VV1=trapz(tti,vi)%日总用水量

文档评论(0)

1亿VIP精品文档

相关文档