基于混沌集成决策树的电能质量复合扰动识别(matlab代码)

简介: 基于混沌集成决策树的电能质量复合扰动识别(matlab代码)

1 主要内容

该程序参考《基于混沌集成决策树的电能质量复合扰动识别》,主要做的是S变换电能质量扰动识别,通过S变换对电能质量扰动(谐波,闪变,暂升等单一扰动和复合扰动)进行变换得到时频图,并对其进行特征提取。

2 部分代码

%% 电能质量扰动函数
V1=sin(w*x)+a_3*sin(3*w*x+b_3)+a_5*sin(5*w*x+b_5)+a_7*sin(7*w*x+b_7);
% plot(t,V1);    title('1:谐波'); 谐波
V2=(1-a2.*(stepfun(x,0.08)-stepfun(x,0.16))).*sin(w*x);
%   plot(t,V2)  电压暂降   0.1-0.9
V3=(1+a2.*(stepfun(x,0.08)-stepfun(x,0.16))).*sin(w*x);
  % 电压暂升    
V4=(1-a4.*(stepfun(x,0.08)-stepfun(x,0.16))).*sin(w*x);
%   plot(t,V4)      %0.9-1  电压中断
V5=(1+a_f*sin(b*w*x)).*sin(w*x);
%subplot(2,1,2);  plot(t,V5);   title('5:闪变');
V6=sin(w*x)+a6*exp(-(x-0.02)/tao).*sin(Wn*w*x).*(stepfun(x,0.02)-stepfun(x,0.03));
%plot(t,V6)   暂态振荡
V7=sin(w*x)+a7*exp(-(x-0.02)/tao).*(stepfun(x,0.02)-stepfun(x,0.06)); 
%plot(t,V7)   暂态脉冲
V8=(1-a2.*(stepfun(x,0.18)-stepfun(x,0.26))).*sin(w*x)+a_3*sin(3*w*x+b_3)+a_5*sin(5*w*x+b_5)+a_7*sin(7*w*x+b_7);
%电压暂降+谐波
V9=(1+a2.*(stepfun(x,0.18)-stepfun(x,0.26))).*sin(w*x)+a_3*sin(3*w*x+b_3)+a_5*sin(5*w*x+b_5)+a_7*sin(7*w*x+b_7);
%电压暂升+谐波
V10=(1-a4.*(stepfun(x,0.08)-stepfun(x,0.16))).*sin(w*x)+a_3*sin(3*w*x+b_3)+a_5*sin(5*w*x+b_5)+a_7*sin(7*w*x+b_7);
%电压中断+谐波
V11=(1+a_f*sin(b*w*x)).*sin(w*x)+a_3*sin(3*w*x+b_3)+a_5*sin(5*w*x+b_5)+a_7*sin(7*w*x+b_7);
%电压闪变+谐波
V12=(1-a2.*(stepfun(x,0.08)-stepfun(x,0.16))).*sin(w*x)+a6*exp(-(x-0.02)/tao).*sin(Wn*w*x).*(stepfun(x,0.02)-stepfun(x,0.03));
%电压暂降+暂态振荡
V13=(1+a2.*(stepfun(x,0.08)-stepfun(x,0.16))).*sin(w*x)+a6*exp(-(x-0.02)/tao).*sin(Wn*w*x).*(stepfun(x,0.02)-stepfun(x,0.03));
%电压暂升+暂态振荡
V14=(1+a_f*sin(b*w*x)).*sin(w*x)+a6*exp(-(x-0.02)/tao).*sin(Wn*w*x).*(stepfun(x,0.02)-stepfun(x,0.03));
%电压闪变+暂态振荡
V15=sin(w*x)+a_3*sin(3*w*x+b_3)+a_5*sin(5*w*x+b_5)+a_7*sin(7*w*x+b_7)+a6*exp(-(x-0.02)/tao).*sin(Wn*w*x).*(stepfun(x,0.02)-stepfun(x,0.03));
%谐波+暂态振荡
V16=(1-a2.*(stepfun(x,0.08)-stepfun(x,0.16))).*sin(w*x)+a7*exp(-(x-0.02)/tao).*(stepfun(x,0.02)-stepfun(x,0.06)); 
%电压暂降+暂态脉冲
V17=(1+a2.*(stepfun(x,0.08)-stepfun(x,0.16))).*sin(w*x)+a7*exp(-(x-0.02)/tao).*(stepfun(x,0.02)-stepfun(x,0.06)); 
%电压暂升+暂态脉冲
V18=(1+a_f*sin(b*w*x)).*sin(w*x)+a7*exp(-(x-0.02)/tao).*(stepfun(x,0.02)-stepfun(x,0.06)); 
%闪变+暂态脉冲
V19=sin(w*x)+a_3*sin(3*w*x+b_3)+a_5*sin(5*w*x+b_5)+a_7*sin(7*w*x+b_7)+a7*exp(-(x-0.02)/tao).*(stepfun(x,0.02)-stepfun(x,0.06)); 
%谐波+暂态脉冲
V20=(1-a2.*(stepfun(x,0.08)-stepfun(x,0.16))).*sin(w*x)+a_3*sin(3*w*x+b_3)+a_5*sin(5*w*x+b_5)+a_7*sin(7*w*x+b_7)+a6*exp(-(x-0.02)/tao).*sin(Wn*w*x).*(stepfun(x,0.02)-stepfun(x,0.03));
%暂降+谐波+暂态振荡
V21=(1+a2.*(stepfun(x,0.08)-stepfun(x,0.16))).*sin(w*x)+a_3*sin(3*w*x+b_3)+a_5*sin(5*w*x+b_5)+a_7*sin(7*w*x+b_7)+a6*exp(-(x-0.02)/tao).*sin(Wn*w*x).*(stepfun(x,0.02)-stepfun(x,0.03));
%暂升+谐波+暂态振荡
V22=(1+a_f*sin(b*w*x)).*sin(w*x)+a_3*sin(3*w*x+b_3)+a_5*sin(5*w*x+b_5)+a_7*sin(7*w*x+b_7)+a7*exp(-(x-0.02)/tao).*(stepfun(x,0.02)-stepfun(x,0.06));
%闪变+谐波+暂态脉冲
V23=(1-a2.*(stepfun(x,0.08)-stepfun(x,0.16))).*sin(w*x)+a_3*sin(3*w*x+b_3)+a_5*sin(5*w*x+b_5)+a_7*sin(7*w*x+b_7)+a6*exp(-(x-0.02)/tao).*sin(Wn*w*x).*(stepfun(x,0.02)-stepfun(x,0.03))+a7*exp(-(x-0.02)/tao).*(stepfun(x,0.02)-stepfun(x,0.06));
%暂降+谐波+暂态振荡+暂态脉冲
%plot(x,V20)
%%  V1 谐波  S变换  做时频图


3 程序结果


相关文章
|
5天前
|
监控 安全 测试技术
在实施自动化和持续集成的过程中,如何确保代码的安全性和合规性?
在实施自动化和持续集成的过程中,如何确保代码的安全性和合规性?
|
1月前
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
126 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
2月前
|
前端开发 C++ Windows
C++生成QML代码与QML里面集成QWidget
这篇文章介绍了如何在C++中生成QML代码,以及如何在QML中集成QWidget,包括使用Qt Widgets嵌入到QML界面中的技术示例。
|
3月前
|
Java Devops 持续交付
探索Java中的Lambda表达式:简化代码,提升效率DevOps实践:持续集成与部署的自动化之路
【8月更文挑战第30天】本文深入探讨了Java 8中引入的Lambda表达式如何改变了我们编写和管理代码的方式。通过简化代码结构,提高开发效率,Lambda表达式已成为现代Java开发不可或缺的一部分。文章将通过实际例子展示Lambda表达式的强大功能和优雅用法。
|
3月前
|
监控 前端开发 JavaScript
ARMS集成监控代码
【8月更文挑战第24天】
75 6
|
3月前
|
jenkins 持续交付 网络安全
利用 Jenkins 实现持续集成与持续部署-代码拉取终端的配置
【8月更文挑战第30天】在Jenkins服务器中,git和Gitee是常用的代码拉取终端。Git作为分布式版本控制系统,具备出色的灵活性和可扩展性;而Gitee则在国内网络环境下表现更佳,适合团队协作。Git配置包括安装、设置用户信息及生成SSH密钥等步骤;Gitee配置也类似,需注册账号、创建仓库、配置基本信息并设置远程仓库地址。开发人员提交代码后,可通过Webhook、定时轮询或事件监听等方式触发Jenkins动作,确保持续集成和部署高效运行。正确配置这些触发机制并通过测试验证其有效性至关重要。
65 2
|
2月前
|
jenkins 持续交付 网络安全
利用 Jenkins 实现持续集成与持续部署-代码拉取终端的配置
安装Git、配置用户信息、生成SSH密钥以及在Gitee上创建项目仓库等。
77 0
|
3月前
|
C# Windows 开发者
当WPF遇见OpenGL:一场关于如何在Windows Presentation Foundation中融入高性能跨平台图形处理技术的精彩碰撞——详解集成步骤与实战代码示例
【8月更文挑战第31天】本文详细介绍了如何在Windows Presentation Foundation (WPF) 中集成OpenGL,以实现高性能的跨平台图形处理。通过具体示例代码,展示了使用SharpGL库在WPF应用中创建并渲染OpenGL图形的过程,包括开发环境搭建、OpenGL渲染窗口创建及控件集成等关键步骤,帮助开发者更好地理解和应用OpenGL技术。
242 0
|
3月前
|
开发者 C# UED
WPF与多媒体:解锁音频视频播放新姿势——从界面设计到代码实践,全方位教你如何在WPF应用中集成流畅的多媒体功能
【8月更文挑战第31天】本文以随笔形式介绍了如何在WPF应用中集成音频和视频播放功能。通过使用MediaElement控件,开发者能轻松创建多媒体应用程序。文章详细展示了从创建WPF项目到设计UI及实现媒体控制逻辑的过程,并提供了完整的示例代码。此外,还介绍了如何添加进度条等额外功能以增强用户体验。希望本文能为WPF开发者提供实用的技术指导与灵感。
141 0
|
3月前
|
存储 开发者 C#
WPF与邮件发送:教你如何在Windows Presentation Foundation应用中无缝集成电子邮件功能——从界面设计到代码实现,全面解析邮件发送的每一个细节密武器!
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中集成电子邮件发送功能,详细介绍了从创建WPF项目到设计用户界面的全过程,并通过具体示例代码展示了如何使用`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类来实现邮件发送逻辑。文章还强调了安全性和错误处理的重要性,提供了实用的异常捕获代码片段,旨在帮助WPF开发者更好地掌握邮件发送技术,提升应用程序的功能性与用户体验。
57 0

热门文章

最新文章