【电能质量扰动】基于ML和DWT的电能质量扰动分类方法研究(Matlab实现)

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

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

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

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

目录

[💥1 概述](#💥1 概述)

[📚2 运行结果](#📚2 运行结果)

[🎉3 参考文献](#🎉3 参考文献)

[🌈4 Matlab代码实现](#🌈4 Matlab代码实现)


💥1 概述

近年来,随着可再生能源的并网以及非线性负载和固态开关器件的数量不断增加,导致了大量严重

的电能质量问题。同时,精密电子设备的广泛使用需要极高质量的电源。为合理有效地改善电能质量,电能质量扰动问题的准确分类也变得非常重要 [1]。目前电能质量扰动问题分类方法的过程主要包括特征提取和模式识别两个步骤 [1]。特征提取常用的信息处理技术有短时傅里叶变换 (STFT)[2]、经验模态分解 ( E M D )[3] 和 S 变换 [4] 等。这些方法拥有很好的扰动识别效果,但也存在一些固有的缺陷。其中短时傅里叶变换的使用缺少可变窗口,不利于分析非平稳信号 ;S 变换是小波变换和短时傅里叶变换的结合,但其难点在于如何确认窗函数的宽度[4] ;经验模态分解存在严重的模态混叠和端点效应问题。离散小波变换 (DWT) 可以优化分解频率子带内的信号并估计扰动幅度,是一种灵活的扰动识别方法 [5]。因此,将 DWT 算法应用于特征提取。

模式识别常采用的方法有人工神经网络 [6]、决策树 [7] 和专家系统 [8] 等。人工神经网络存在容易陷入局部最优、收敛性较差等缺点 ;决策树容易出现过拟合现象和局部最优问题 ;专家系统由于自身不具备学习能力,所有的知识和解决方案都是由领域内的专家提供,因此其容错能力差,易产生组合爆炸的问题。支持向量机 (SVM) 基于小样本统计学习理论和结构风险最小化原理,具有较好的泛化能力 [9]。

D W T 具有非常有效的算法和稀疏表示,尤其在处理非平稳信号方面,具有良好的时频特性,和傅

里叶变换不同,离散小波分析不是根据三角多项式而是通过母小波函数的扩张和平移特性生成 [10]。信号h (t) 的 DWT 表示为 :

📚 2 运行结果

运行视频:

基于ML和DWT的电能质量扰动分类方法研究(Matlab实现)_哔哩哔哩_bilibili

部分代码:

%% 暂态脉冲

%fn goes from 300 to 900

fn=500;

amp= rand(1,1)*range([4 7])+min([4 7]);

t1=0.151;

t2=0.150;

ty= (t1+t2)/2;

t=[0 :0.0001:0.4];

k=rand(1,1)*range([1 1.5])+min([1 1.5]);

y= k*(sin((2*pi*50)*t)+ amp*(heaviside(t-t2)-heaviside(t-t1)).*exp(-t/ty).*sin(2*pi*fn*t));

subplot(2,1,2);

plot(t,y)

title('Impulsive Transient');

xlabel ('Time (sec)');

ylabel ('Amplitude');

hold on

Impulsive_transient=[t,y]';

%% 振荡瞬态

%fn goes from 300 to 900

fn=rand(1,1)*range([300 500])+min([300 500]);

t=[0 :0.0001:0.4];

amp= 1;

t1=0.255;

t2=0.248;

ty= (t1+t2)/2;

t=[0 :0.0001:0.4];

k=rand(1,1)*range([1 1.5])+min([1 1.5]);

y= k*(sin((2*pi*50)*t)+ amp*(heaviside(t-t2)-heaviside(t-t1)).*exp(-t/ty).*sin((2*pi*fn)*t));

figure(4)

subplot(2,1,1);

plot(t,y)

title('Oscillatory Transient');

xlabel ('Time (sec)');

ylabel ('Amplitude');

hold on

Oscillatory_transient=[t,y]';

%% SAG+HARMONIC

t=[0 :0.0001:0.4];

alpha=rand(1,1)*range([0.1 0.8])+min([0.1 0.8]);

alpha3=rand(1,1)*range([0.05 0.15])+min([0.05 0.15]);

alpha5=rand(1,1)*range([0.05 0.15])+min([0.05 0.15]);

alpha7=rand(1,1)*range([0.05 0.15])+min([0.05 0.15]);

alpha1= sqrt(1- alpha3^2-alpha5^2-alpha7^2);

k=rand(1,1)*range([1 1.5])+min([1 1.5]);

y=k*((1-alpha*((heaviside(t-0.05)-heaviside(t-0.15)))).*(alpha1* sin(314*t)+ alpha3*sin(3*314*t)+ alpha5*sin(5*314*t)+ alpha7*sin(7*314*t)));

subplot(2,1,2);

plot(t,y);

title('Sag+Harmonics');

xlabel ('Time (sec)');

ylabel ('Amplitude');

hold on

Sag_harmonic=[t,y]';

%% SWELL+HARMONIC

t=[0 :0.0001:0.4];

alpha=rand(1,1)*range([0.1 0.8])+min([0.1 0.8]);

alpha3=rand(1,1)*range([0.05 0.15])+min([0.05 0.15]);

alpha5=rand(1,1)*range([0.05 0.15])+min([0.05 0.15]);

alpha7=rand(1,1)*range([0.05 0.15])+min([0.05 0.15]);

alpha1= sqrt(1-alpha3^2-alpha5^2-alpha7^2);

k=rand(1,1)*range([1 1.5])+min([1 1.5]);

y=k*((1+alpha*((heaviside(t-0.05)-heaviside(t-0.15)))).*(alpha1* sin(314*t)+ alpha3*sin(3*314*t)+ alpha5*sin(5*314*t)+ alpha7*sin(7*314*t)));

figure(5)

subplot(2,1,1);

plot(t,y)

title('Swell+Harmonics');

xlabel ('Time (sec)');

ylabel ('Amplitude');

hold on

Swell_harmonic=[t,y]';

%% FLICKER

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]李家俊,吴建军,陈武,钟建伟.基于DWT-PCA-LIBSVM的电能质量扰动分类方法[J].电工电气,2023(03):20-24.

[2]马嘉秀,徐玮浓,何复兴,邵诗韵,赵家乐,李宁.基于WT和SVM的电能质量分类识别方法[J].智慧电力,2019,47(03):16-22+37.

🌈4 Matlab代码实现

相关推荐
梦想科研社36 分钟前
【无人机设计与控制】四旋翼无人机俯仰姿态保持模糊PID控制(带说明报告)
开发语言·算法·数学建模·matlab·无人机
青椒大仙KI113 小时前
24/9/19 算法笔记 kaggle BankChurn数据分类
笔记·算法·分类
ShuQiHere3 小时前
【ShuQiHere】 探索数据挖掘的世界:从概念到应用
人工智能·数据挖掘
2401_8581205311 小时前
深入理解MATLAB中的事件处理机制
前端·javascript·matlab
leon62511 小时前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
小齿轮lsl11 小时前
PFC理论基础与Matlab仿真模型学习笔记(1)--PFC电路概述
笔记·学习·matlab
惟长堤一痕13 小时前
医学数据分析实训 项目四回归分析--预测帕金森病病情的严重程度
数据挖掘·数据分析·回归
学习不好的电气仔14 小时前
基于虚拟阻抗的逆变器下垂控制环流抑制策略MATLAB仿真
开发语言·matlab
原机小子14 小时前
掌握MATLAB中的数据类型转换技巧
开发语言·matlab
勤劳兔码农15 小时前
文本分类实战项目:如何使用NLP构建情感分析模型
自然语言处理·分类·数据挖掘