基于GSP工具箱的NILM算法matlab仿真

news2024/11/28 2:33:13

目录

1.课题概述

2.系统仿真结果

3.核心程序与模型

4.系统原理简介

5.完整工程文件


1.课题概述

        基于GSP工具箱的NILM算法matlab仿真。GSP是图形信号处理的缩写,GSP非常适合对未知数据进行分类,尤其是当训练数据非常短时。GSPBox的基本理论是谱图论和图滤波,因此,GSPBox中的主要对象是图,图包括图的基本元素,如节点、边和权重矩阵等。

2.系统仿真结果

3.核心程序与模型

版本:MATLAB2022a

.........................................................................
while m<=M
    [ijk,m]
    Smi_train = Smi(1:n,m);
    Smi_test  = Smi(n+1:N,m);
    Smi_all   = [Smi_train;Smi_test];
    
    dpmi_train= dPmi(1:n,m);
    dpmi_test = dPmi(n+1:N,m);
    dpmi_all  = [dpmi_train;dpmi_test]; 
    THR       = THRm(m);
    %构图,利用GSP工具箱计算得到估计值 
    G         = gsp_community(N);
    G         = gsp_adj2vec(G);
    G         = gsp_estimate_lmax(G);
    G         = gsp_compute_fourier_basis(G);
    AA        = full(G.A);
    %更新图矩阵A
    delta     = 2;
    for i = 1:N
        for j = 1:N
            AA(i,j) = exp(-1*(dpmi_all(i)-dpmi_all(j))^2/delta^2);
        end
    end
    G.A = sparse(AA);
    Mask      = Smi_all;%训练过程中,输入m个smi和中的P
    Y         = dpmi_all;%论文公式中的ni
    %通过GSP工具箱预测未知的电气的Smi变量,因为论文中提到用已知的Smi作为训练label,那么训练已知的smi,得到的就是未知的smi
    sol       = gsp_classification_tv_new(G,Mask,Y,0.5);
    Pm_pre    = sol(n+1:N);
    Kr        = mean(abs(Pm_pre))/mean(abs(dpmi_all(n+1:N)));
    Pm_pre    = [dpmi_train;Pm_pre/Kr];
    
    for i = 1:R
        if i > n & abs(Pm_pre(i)) >= THRm(m)
           Smi_pre(i,m) = 1;
        end 
        if i > n & abs(Pm_pre(i)) < THRm(m)
           Smi_pre(i,m) = -1;
        end   
    end
    Sreal{m}  = Smi0(:,m);
    Spred{m}  = Smi_pre(:,m);%即通过GSP工具箱得到公式11中的Sm
    Preal{m}  = dpmi_all;
    Ppred{m}  = Pm_pre;
    m = m + 1;
end
 
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if ijk == 1
   save R1.mat Sreal Spred Preal Ppred N n X Pi dPi dPmi THR0 THRm Smi Smi0 Pi_train Pi_test Pi_all
end
if ijk == 2
   save R2.mat Sreal Spred Preal Ppred N n X Pi dPi dPmi THR0 THRm Smi Smi0 Pi_train Pi_test Pi_all
end
if ijk == 3
   save R3.mat Sreal Spred Preal Ppred N n X Pi dPi dPmi THR0 THRm Smi Smi0 Pi_train Pi_test Pi_all
end

clear Sreal Spred Preal Ppred N n X Pi dPi dPmi THR0 THRm Smi Smi0 Pi_train Pi_test Pi_all

end
02_061m
    

4.系统原理简介

        非侵入式负荷监测(Non-Intrusive Load Monitoring, NILM)是一种通过分析整体电能消耗数据,解析出各个子设备独立功耗的技术。近年来,图信号处理(Graph Signal Processing, GSP)作为一种新兴的信号处理范式,被引入到NILM领域,以更好地表征和处理家庭或建筑内部电器之间的复杂交互关系。

       在GSP中,电气系统中的各个设备被视为图(graph)上的节点,设备之间的相互影响关系通过边(edges)表示。图信号是指定义在图节点上的实值函数,它可以代表节点的用电状态或功率消耗。设G=(V,E,W)是一个加权无向图,其中:

  • V是节点集合,代表单个电器或负荷组;
  • E是边集合,表示节点之间的关联性;
  • W是权重矩阵,其元素wij​量化了节点i和j之间的耦合强度。

       在NILM中,全局总能耗信号视为图信号x,它是在图G上定义的,即x∈R∣V∣,其中∣V∣是节点的数量。目标是通过某种滤波或分解技术从x中提取出代表各个子设备消耗的局部图信号。

       本课题的算法流程图如下图所示:

5.完整工程文件

v

v

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1587134.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SEDEX验厂是什么?

SEDEX验厂是一种审核流程&#xff0c;其主要目的是评估工厂在劳工标准、环境管理、健康与安全以及管理体系等方面的合规性。以下是关于SEDEX验厂的一些关键信息&#xff1a; SEDEX验厂审核标准主要包括以下几个方面&#xff1a; 劳工标准和劳动法规&#xff1a;工厂必须遵守当…

Redis中的集群(七)

集群 ASK错误 ASKING命令 ASKING命令唯一要做的就是打开发送该命令的客户端的REDIS_ASKING标识&#xff0c;以下是该命令的伪代码实现: def ASKING(): # 打开标识 client.flags | REDIS_ASKING# 向客户端返回OK回复 reply("OK")在一般情况下&#xff0c;如果客户…

谷歌官方力作——CodeGemma代码语言模型

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

开发日志2024-04-11

开发日志2024/04/11 1、会员/普通用户预约完成后&#xff0c;技师对应的积分添加预约完成的项目价格添加到统计表的业绩字段中&#xff0c;同时对应的服务次数字段1 实现代码&#xff1a; 前端 shHandler(){this.$confirm(确定操作?, "提示", {confirmButtonText…

基于模型预测算法的含储能微网双层能量管理模型

基于模型预测算法的含储能微网双层能量管理模型 文章目录 基于模型预测算法的含储能微网双层能量管理模型一、项目介绍二、源程序下载 一、项目介绍 代码主要做的是一个微网双层优化调度模型&#xff0c;微网聚合单元包括风电、光伏、储能以及超级电容器&#xff0c;在微网的运…

ELFK (Filebeat+ELK)日志分析系统

一. 相关介绍 Filebeat&#xff1a;轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat&#xff0c;并指定目录与日志格式&#xff0c;Filebeat 就能快速收集数据&#xff0c;并发送给 logstash 进或是直接发给 Elasticsearch 存储&#xff0c;性能上相…

Maven、redis、javaJDK环境配置及安装

一、Maven下载配置 Maven下载地址 下载完成完成配置环境变量 新建系统变量 MAVEN_HOME 地址 设置MAVEN… mvn -v 检测成功 二 、redis安装 下载地址 在安装目录cmd输入redis-server --version检测版本号 三、JAVA配置 设置JAVA… 测试

【Vue3语法单文件——自用】

1. Vue3基础语法 <script setup> import { ref,computed } from vue// 定义响应式的变量 const count ref(0) const author ref({name: John Doe,books: [Vue 2 - Advanced Guide,Vue 3 - Basic Guide,Vue 4 - The Mystery] }) //定义props const props defineProps(…

贪心算法|56.合并区间

力扣题目链接 class Solution { public:vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<vector<int>> result;if (intervals.size() 0) return result; // 区间集合为空直接返回// 排序的参数使用了lambda表达…

Mongodb前后端整合篇

一、前端篇 1.1mongoose介绍 Mongoose 是一个对象文档模型库&#xff0c;官网 http://www.mongoosejs.net/ 方便使用代码操作 mongodb 数据库pnpm i mongoose5.13.15 1.2初步使用 import mongoose from mongoose; //设置 strictQuery 为 true mongoose.set(strictQuery, true…

ubuntu或类Debian获取某些包的离线版本-包括依赖(还有一些意想不到的用途,哈哈)

前言 偶尔能碰到很特殊的情况。网址白名单&#xff0c;纯内网&#xff0c;超多依赖及一些很难描述的场景。 比如一些少见的发行版缺少某些包。这时候可以找一台类似的系统环境来下载离线包及 其依赖包&#xff0c;然后转移到内网进行安装。如果是网址白名单&#xff0c;或者纯内…

为什么需要网络切片?

网络切片是电信领域的一个突破性概念&#xff0c;它允许将物理网络基础设施划分为多个虚拟网络&#xff0c;称为切片。每个切片作为一个独立的网络运行&#xff0c;拥有自己的专用资源和定制的特性&#xff0c;满足不同应用、行业或用户的特定需求。 将网络切片视为在共享物理…

计算机网络——交换机和路由器

目录 前言 引言 交换机是用来做什么的&#xff1f; 与路由器有什么区别&#xff1f; 网关 子网掩码 网关、路由 前言 本博客是博主用于复习计算机网络的博客&#xff0c;如果疏忽出现错误&#xff0c;还望各位指正。 这篇博客是在B站掌芝士zzs这个UP主的视频的总结&am…

【论文阅读】Digging Into Self-Supervised Monocular Depth Estimation

论文&#xff1a;https://arxiv.org/pdf/1806.01260.pdf 代码&#xff1a;https://github.com/nianticlabs/monodepth2 Q: 这篇论文试图解决什么问题&#xff1f; A: 这篇论文试图解决的问题是如何提高仅使用单目图像进行深度估计的性能。具体来说&#xff0c;它关注的是如何…

[大模型]Qwen1.5-7B-Chat-GPTQ-Int4 部署环境

Qwen1.5-7B-Chat-GPTQ-Int4 部署环境 说明 Qwen1.5-72b 版本有BF16、INT8、INT4三个版本&#xff0c;三个版本性能接近。由于BF16版本需要144GB的显存&#xff0c;让普通用户忘却止步&#xff0c;而INT4版本只需要48GB即可推理&#xff0c;给普通用户本地化部署创造了机会。&…

Linux 函数学习 poll

1、Linux poll 函数 int poll(struct pollfd *fds, nfds_t nfds, int timeout); fds&#xff1a; 需要轮询的fd集合 nfds&#xff1a;需要轮询的fds数量 timeout&#xff1a;超时时间 返回值&#xff1a;0 超时&#xff0c;<0 发生异常&#xff0c;> 0 存在数据变化 …

函数、指针和数组的相互运用(C语言)

1、函数指针数组 含义&#xff1a;数组的每个元素都是函数指针类型.eg&#xff1a; &#xff08;此代码链接&#xff1a;http://t.csdnimg.cn/ClJmb.也可以在我发布博客中找到&#xff09; 2、指向函数指针数组的指针 1、引入 3、回调函数 1、含义&#xff1a;就是一个通过…

【嵌入式之中断】

Cortex-M4集成了嵌套式矢量型中断控制器(Nested Vectored Interrupt Controller (NVIC))来实现高效的异常和中断处理。NVIC实现了低延迟的异常和中断处理&#xff0c;以及电源管理控制。它和内核是紧密耦合的。 凡是打断程序顺序执行的事件都称为异常&#xff08;exception&am…

uniapp h5项目实现多选按钮/多选标签/多选框

需求&#xff1a;实现简单多选功能&#xff0c;遍历数据&#xff0c;添加样式 1.效果图 2.以下代码粘贴到代码中&#xff0c;可直接运行&#xff0c;html代码 <view class"page index"><view class"list-box"><view v-for"(item,in…

【力扣】-- 移除链表元素

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;python从入门到精通&#xff0c;魔法指针&#xff0c;进阶C&#xff0c;C语言&#xff0c;C语言题集&#xff0c;C语言实现游戏&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文…