通过自举方法定位管道泄漏的置信区间定位研究(Matlab代码实现)

本文提出了一种扩展的泄漏定位方法,利用半参数瞬态模型和Bootstrap分析,为决策者提供泄漏位置的置信区间。实验结果显示,该方法通过有限测试确定泄漏位置并有效匹配实际置信区间,降低了维护决策的不精确性和不确定性。

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

文献来源:

摘要:

基于瞬态的管道泄漏检测研究的主要重点都放在泄漏位置的确定性点估计上。本文提出了一个扩展确定性泄漏定位方法的框架,以便它们不仅可以为决策者提供泄漏位置的点估计,还可以为估计提供置信区间。为了解决偶然不确定性的复杂性,引入了半参数瞬态模型,并通过有限数量的瞬态测试建立了测量的经验分布。然后,通过Bootstrap方法探索泄漏定位的随机特征。因此,构建了置信区间来预测泄漏位置的范围。实验结果表明,所提方法能够以准确的覆盖概率定位实际泄漏点,并能与地面实况置信区间完美匹配。在所考虑的场景中,仅通过七次瞬态测试可以容忍点定位误差;在数据量相同的情况下,所提出的Bootstrap方法为管道维护决策的不精确性和不确定性提供了额外的信息。

关键词:

泄漏定位 置信区间 启动 瞬态波 供水系统 偶然的不确定性

📚2 运行结果

部分代码:

%% data loading/selection
load('experimental_data.mat')

L  = 141.43;  % pipe length
xL = 45.58;  % actual leak location

N_esti = 7; % number of samples used in leakage localization
h = h(:,1:N_esti);
h_central = h-repmat(mean(h(1:3000,:)),size(h,1),1);
h_mean = mean(h_central,2);

figure;
subplot(2,1,1);
plot(t-t(1),h_central); xlabel('Time [s]'); ylabel('Head [m]');
subplot(2,1,2);
plot(t-t(1),h_mean); xlabel('Time [s]'); ylabel('Head [m]');

xL_esti = wavelet(h_mean,t,L);  % Eq (7)
disp(['The estimated leak location using averaged signal is ',num2str(xL_esti),' m; the error is ',num2str(xL_esti-xL),' m.']);

%% Bootstrap: resampling the transient signals and bootstrap estimation of leak
N_BS = 10000; % number of boostrap samples
xL_esti_BS = zeros(N_BS,1);

for nn = 1:N_BS
    seq_random = unidrnd(N_esti,1,N_esti);
    h_BS = h(:,seq_random);
    h_central_BS = h_BS - repmat(mean(h_BS(1:3000,:)),size(h_BS,1),1);
    h_mean_BS = mean(h_central_BS,2);
    xL_esti_BS(nn,1) = wavelet(h_mean_BS,t,L); % Eq (8)
end

%% Boostrap: confidence interval of leak location estimation

% Percentile method
xL_esti_BS_sort = sort(xL_esti_BS);
xL_esti_BS_025 = xL_esti_BS_sort(round(2.5*N_BS/100)); xL_esti_BS_975 = xL_esti_BS_sort(round(97.5*N_BS/100));
xL_esti_BS_05 = xL_esti_BS_sort(round(5*N_BS/100)); xL_esti_BS_95 = xL_esti_BS_sort(round(95*N_BS/100));
xL_esti_BS_10 = xL_esti_BS_sort(round(10*N_BS/100)); xL_esti_BS_90 = xL_esti_BS_sort(round(90*N_BS/100));
disp(['Bootstrap percentile: the 95%, 90% and 80% confidnece intervals of leak location are ['...
    ,num2str(xL_esti_BS_025),', ',num2str(xL_esti_BS_975),'], [',num2str(xL_esti_BS_05),', ',num2str(xL_esti_BS_95), ...
    '], [',num2str(xL_esti_BS_10),', ',num2str(xL_esti_BS_90),'].']);

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值