1 内容介绍

在科技水平相当发达的今天,互联网+、大数据慢慢渗透进人们的生活当中,但

科技的进步不仅仅要体现在生活质量水平的提高、经济的快速发展,更应该体现在对社会资源的合理利用。自建国以来,我国管道运输得以迅速发展。从 1958 年至今,先后经历了 11 年的初始发展、17 年的快速发展、7 年的稳步发展,现在正处于加快发展阶段。管道总里程在 2008 年就已经达到 6.4 万千米,是管道运输最初发展阶段 0.02万千米的 3200 倍,可见管道运输在运输业的重要位置[1]。截至 2010 年底,全球管道干线总长度超过 200 万千米,到了 2013 年,全球运行的管道有 3559186 公里,其中8.4%为原油运输管线,80.5%为天然气运输管线,可见天然气运输在管道运输中具有较大比重。中国的油气管道长度在 2015 年也达到 10.87 万公里,其中天然气主干管道总里程也超过 2013 年的 5.5 万公里[2]。

管道运输通常伴随着能源的存储与使用,便会涉及到能源的可持续发展以及相应

的安全保护措施。合理的资源利用,有利于资源的再生及可持续发展;缜密的安保措施,有利于保护资源不被窃取和浪费。但随着油气管道运输的发展,管线的数量越来越多,管道的敷设距离也变得越来越长,而随着服役期的增长,加上环境和人为破坏,运行磨损,设备老化,腐蚀等多种因素,导致管道泄漏时有发生,进而引发许多重大泄漏事故。我国大部分管道目前已运行超过 40 年,且中国的管道事故率远远高于西方国家,数据显示,美国、欧洲、我国的管道事故率分别为 0.42,0.46 和 0.50[3]。我国运行超过 20 年的油气管道已经占总管道数的 60%。随着油气管道的控制日益复杂,运行形势复杂多变,应该把管道运输的安全保障问题视为首要防御任务。因此,为了节约一次能源、改善环境污染、提高人民生活水平,对城市现代化建设的便利、舒适、安全可靠性做出重要贡献,有效的降低危及居民生活安全的燃气管道漏损现象,对燃气管道实行在线运行的实时监测、精确检测定位管网泄漏具有十分重要的意义。​​

针对天然气管道泄漏检测过程中难以提取泄漏特征信息及泄漏定位精度低的问题,本文将局部均值分解(Local Mean Decomposition,LMD)算法应用于管道泄漏检测中,实现管道泄漏信号的分解、特征提取以及泄漏定位。首先,介绍了局部均值分解的理论算法,并将其应用在信号分解中。LMD作为处理非平稳随机信号的一种有效手段,其具备信号分解的自适应特性和完备性。但由于算法本身的影响,易产生模态混叠。针对模态混叠现象,本文利用总体局部均值分解算法(Ensemble Local Mean Decomposition,ELMD),借助辅助噪声技术,抑制LMD分解过程中模态混叠的问题。其次,有用信息在传输过程中往往会受到各种噪声的影响和干扰,使信号源中的有用信号被削减或混淆。为增强有用信号,抑制噪声干扰,保障后续提取的特征值能够代表信号特征,需要对采集的原始信号进行降噪预处理。同时为避免小波分解过程存在的技术漏洞,提出基于小波包的ELMD谱峭度联合降噪算法。该算法在ELMD分解出的各有效PF(Product Function)分量的基础上,利用谱峭度最优参数及小波包能量分布确定信号重构节点,完成对各PF分量的信号降噪。降噪后的各PF分量可表征原始信号在不同尺度下的特征。再次,通过分析管道信号的特点,对时频分析理论进行研究,提出基于时频域的自适应最优核(Adaptive Optimal Kernel,AOK)谱熵参数,定量描述信号的时频特性。对各PF分量中提取相应AOK参数用于初步判定管道是否发生泄漏及工况种类,其针对管道正常运行、管道泄漏、管道敲击具有很好的区分度,具有良好的识别准确率。最后,介绍了基于ELMD多尺度相关的管道泄漏检测算法。通过经ELMD分解得到的PF分量与互相关算法的融合,得到不同特征尺度下的时延差,从而完成对管道泄漏的定位。该算法相比直接利用原始信号进行相关计算得到的定位结果更加精确,有助于管道泄漏定位精度的提升。

2 仿真代码

% clear;
% clc;
% close all;
% x1=xlsread('3.xlsx');
% Ts = 11838 ;
% fs=1/Ts

% VarName2=x1(:,2);
% x=VarName2';
% Nstd =0.1;
% NR =100;

% N=length(x);
% t = linspace(0,1,N);
clc
clear all
close all
x1=xlsread('3.xlsx');
VarName2=x1(:,4);
x=VarName2';
plot(x, 'b');
Z=VarName2(1:8192,:);
z=Z';
% figure;
% plot(Z, 'b');
xlim([0 8192]);
N=length(x);
t = linspace(0,1,N);
Ts = 10324;
fs=1/Ts
Nstd =0.1;
NR =100

%绘制原始信号及频谱
figure
subplot(211)
plot(t,x)
subplot(212)
y2=x;
L=length(y2);
NFFT = 2^nextpow2(L);
Y = fft(y2,NFFT)/L;
f = fs/2*linspace(0,1,NFFT/2);
plot(f,2*abs(Y(1:NFFT/2)))

% LMD分解
[pf,a,si,u] = lmd(x);
line=size(pf,1)
NN = length(pf(1,:))
t = linspace(0,1,NN);
figure('Color',[1 1 1]);
for i=1:1:line
    subplot(line+1,1,i),plot(t,pf(i,:)),ylabel(sprintf('PF%d',i));
    xlabel('Time / s'); legend('LMD')
end

for i = 1:1:line
     cc(i)=min(min(corrcoef(pf(i,:), x)))
 end

figure
plot(cc,'-g<','LineWidth',1.5,'MarkerEdgeColor','b','MarkerFaceColor','b','MarkerSize',5);
set(gca,'XGrid', 'on', 'YGrid', 'on');
legend('CC'); 
xlabel('IMF');
ylabel('LMD相关系数');

%重构信号
cg_ev=pf(3,:)+pf(4,:)+pf(5,:)+pf(6,:);
figure;
plot(t,x,'-b');hold on 
plot(t,cg_ev,'-r');xlabel('t/s');ylabel('幅值');legend('原始信号','LMD重构信号'); 

%误差信号
err=x-cg_ev;
figure
plot(t,err);xlabel('t/s');ylabel('幅值');legend('LMD误差信号');

% ELMD分解
modes = mlmd(x,Nstd,NR);
[a, b]=size(modes);

% 绘制PF分量和其频谱图
PF=modes;
line=size(PF,1); 
NN = length(PF(1,:));
n = linspace(0,1,NN);
for k1=0:4:line-1
     figure('Color',[1 1 1]);
     for k2=1:min(4,line-k1)
        subplot(4,2,2*k2-1);
        plot(t,PF(k1+k2,:));
        title(sprintf('第%d个PF', k1+k2))
        xlabel('Time/s')
        ylabel(sprintf('PF%d',k1+k2));legend('ELMD');
        subplot(4,2,2*k2)
        [yf, f] = FFTAnalysis(PF(k1+k2,:), Ts);
        plot(f, yf)
        title(sprintf('第%d个PF的频谱', k1+k2))
        xlabel('f/Hz')
        ylabel('|PF(f)|');legend('ELMD');
     end
end;

for i = 1:1:line
     cc(i)=min(min(corrcoef(PF(i,:), x)))
 end

figure
plot(cc,'-g<','LineWidth',1.5,'MarkerEdgeColor','b','MarkerFaceColor','b','MarkerSize',5);
set(gca,'XGrid', 'on', 'YGrid', 'on');
legend('CC'); 
xlabel('IMF');
ylabel('ELMD相关系数');

%重构信号
cg_ev1=PF(4,:)+PF(5,:)+PF(6,:);
figure;
plot(t,x);
hold on 
plot(t,cg_ev1,'g');xlabel('t/s');ylabel('幅值')
legend('原始信号','ELMD重构信号'); 

%误差信号
err=x-cg_ev1;
figure
plot(t,err);xlabel('t/s');ylabel('幅值');legend('ELMD误差信号'); 

sigPower1 = sum(abs(cg_ev).^2)/length(cg_ev); 
sigPower2 = sum(abs(cg_ev1).^2)/length(cg_ev1); 
noisePower1 = sum(abs(cg_ev-x).^2)/length(cg_ev-x) ; 
noisePower2 = sum(abs(cg_ev1-x).^2)/length(cg_ev1-x) ;  

  %求出噪声功率
SNR1=10*log10(sigPower1/noisePower1)
SNR2=10*log10(sigPower2/noisePower2)

% 平均绝对误差mae
MAE_LMD = mae(abs(cg_ev-x))
MAE_ELMD = mae(abs(cg_ev1-x))

function snr=SNR_singlech(I,In)
% 计算信噪比函数
% I :original signal
% In:noisy signal(ie. original signal + noise signal)
snr=0;
Ps=sum(sum((I-mean(mean(I))).^2));%signal power
Pn=sum(sum((I-In).^2));           %noise power
snr=10*log10(Ps/Pn);

​​​​​​​

3 运行结果

4 参考文献

[1]李博健. 改进LMD算法在管道泄漏中的应用研究[D]. 东北石油大学.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

【信号分解】基于LMD算法和ELMD算法实现管道泄漏信号处理附matlab代码相关推荐

  1. 【图像重建】基于ART算法和SIRT算法实现超声CT反演附MATLAB代码

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

  2. 【数字信号处理】基于matlab LMD算法和ELMD算法管道泄漏信号处理【含Matlab源码 1985期】

    ⛄一.局部分解理论研究 局部均值分解算法(Local Mean Decomposition, LMD) 作为处理非平稳随机信号的一种手段,得到了广泛应用,并成熟地应用于机械故障诊断.信号特征提取与分析 ...

  3. 【图像分割】基于模糊C均值聚类算法CGFFCM实现彩色图像分割附matlab代码

    1 简介 The fuzzy c-means (FCM) algorithm is a popular method for data clustering and image segmentatio ...

  4. 基于Huffman算法和LZ77算法的文件压缩的改进方向

    基于Huffman算法和LZ77算法的文件压缩(八) 到这里已经简单实现基于Huffman算法和LZ77算法的文件压缩, GitHub源码:点我 根据基于Huffman算法和LZ77算法的文件压缩(七 ...

  5. smoteenn算法_基于EasyEnsemble算法和SMOTE算法的不均衡数据分类方法与流程

    本发明涉及不均衡数据二分类技术领域,尤其涉及一种基于EasyEnsemble算法和SMOTE算法的不均衡数据二分类方法. 背景技术: 数据不均衡指的是在一个样本数据集中,某一类的样本数远少于其他类的样 ...

  6. 智能优化算法-菲克定律算法Fick‘s Law Algorithm(附Matlab代码)

    引言 菲克定律算法Fick's Law Algorithm是一种新的基于物理的元启发式算法,称为菲克定律优化(FLA),其中利用了菲克第一扩散规则.于2022年发表在SCI 一区Knowledge-B ...

  7. 鲸鱼算法优化PID参数优化附matlab代码

    第一 章  鲸鱼优化算法 算法介绍参考文献:Seyedali Mirjalili,Andrew Lewis. The Whale Optimization Algorithm[J]. Advances ...

  8. 【故障诊断】基于粒子群和多元宇宙算法优化最大相关峭度解卷积(MCKD)实现信号处理附matlab代码

    1 内容介绍 1.1研究背景及意义 制造业的发展支撑着国家经济的稳定快速发展,是人民生活幸福和国家局势 稳定的保障.发展制造业离不开科技创新.加强制造业创新.推动产业转型升级是 提升我国国际地位.实现 ...

  9. 【WSN通信】基于注水算法实现宽带无线通信资源分配附matlab代码

    1 简介 功率分配技术能有效提高认知网络传输链路的信道容量,而注水算法利用凸优化的思想能实现功率分配最优化.针对认知网络中使用注水算法分配信道功率时未考虑邻近认知信道干扰的情况,对认知网络中邻近认知信 ...

最新文章

  1. 吴 恩 达 教 你 做 机 器 学 习 职 业 规 划
  2. django_models_关系一对多
  3. OSPFv2的综合实验试题分析第1例(CCNP阶段)
  4. 081_html5地理定位
  5. Linux 进阶笔记(一)
  6. (C语言版)链表(四)——实现双向循环链表创建、插入、删除、释放内存等简单操作
  7. Go语言基础之1--标识符、关键字、变量和常量、数据类型、Go的基本程序结构、Golang的特性...
  8. java 管理后台前台分离_系统前台后台是否应该分离(包括部署)
  9. [Es] Rejecting mapping update to [xxx] as the final mapping would have more than 1 type [xxx xxx]
  10. 用vue.js重构订单计算页面
  11. android soundpool 封装,Android中使用SoundPool来播放音频
  12. Hashtable(哈希表)
  13. 微信小程序引入iconfont阿里字体
  14. 004Spring事务001JdbcTemplate
  15. jotform 设计器_如何使用JotForm简化表单构建
  16. Redis进阶篇:发布订阅模式原理与运用
  17. 图表嵌入到数据表格下方_如何在excel图表下方添加数据表 如何在excel图表中显示数值...
  18. 使用Java解压zip格式压缩包
  19. uniapp应用和页面生命周期
  20. GRU实现时间序列预测(PyTorch版)

热门文章

  1. 一步一步讲解OkHttp最新源码
  2. 五菱大疆怎么造出了Kiwi大疆版?
  3. 方便用户的帮助文档该怎样设计?
  4. Python绘制三角函数图(sin\cos\tan)并标注特定范围
  5. 更改IP电话的IP地址
  6. C语言编译c158,PANTONE潘通色卡C卡_图文.doc
  7. 阿里巴巴系统架构首次曝光
  8. 教你怎样用python进行语音识别
  9. mcp23017接线图_MCP23017,MCP23017 pdf中文资料,MCP23017引脚图,MCP23017电路-Datasheet-电子工程世界...
  10. 运维(2)运维的主要工作内容