您现在的位置:首页 >> 机器学习 >> 内容

基于LSTM网络的空调功耗数据预测matlab仿真

时间:2023/1/15 22:57:30 点击:

  核心提示:A238,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y56Wk5Zx

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览


3.算法概述

        电力负荷预测是一种典型的时间序列回归预测任务。电力负荷预测是保证电力供需平衡的基础,并为电网、电源的规划建设以及电网企业、电网使用者的经营决策提供信息和依据。负荷预测分为长期、中期、短期和超短期负荷预测,预测对象包括系统负荷和母线负荷,由电网企业负责组织编制。大用户应根据有关规定,按时报送其主要接装容量和年、月用电量预测及日用电负荷变化过程。

4.部分源码

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

%hidden_output权重

weight_preh_h=rand(cell_num,output_num);

%网络状态初始化

cost_gate=1e-6;

h_state=rand(output_num,data_num);

cell_state=rand(cell_num,data_num);

%% 网络训练学习

for iter=1:1800

    iter

    yita=0.01;            %每次迭代权重调整比例

    for m=1:data_num

        %前馈部分

        if(m==1)

            gate=tanh(train_data(:,m)'*weight_input_x);

            input_gate_input=train_data(:,m)'*weight_inputgate_x+bias_input_gate;

            output_gate_input=train_data(:,m)'*weight_outputgate_x+bias_output_gate;

            for n=1:cell_num

                input_gate(1,n)=1/(1+exp(-input_gate_input(1,n)));

                output_gate(1,n)=1/(1+exp(-output_gate_input(1,n)));

            end

            forget_gate=zeros(1,cell_num);

            forget_gate_input=zeros(1,cell_num);

            cell_state(:,m)=(input_gate.*gate)';

        else

            gate=tanh(train_data(:,m)'*weight_input_x+h_state(:,m-1)'*weight_input_h);

            input_gate_input=train_data(:,m)'*weight_inputgate_x+cell_state(:,m-1)'*weight_inputgate_c+bias_input_gate;

            forget_gate_input=train_data(:,m)'*weight_forgetgate_x+cell_state(:,m-1)'*weight_forgetgate_c+bias_forget_gate;

            output_gate_input=train_data(:,m)'*weight_outputgate_x+cell_state(:,m-1)'*weight_outputgate_c+bias_output_gate;

            for n=1:cell_num

                input_gate(1,n)=1/(1+exp(-input_gate_input(1,n)));

                forget_gate(1,n)=1/(1+exp(-forget_gate_input(1,n)));

                output_gate(1,n)=1/(1+exp(-output_gate_input(1,n)));

            end

            cell_state(:,m)=(input_gate.*gate+cell_state(:,m-1)'.*forget_gate)';   

        end

        pre_h_state=tanh(cell_state(:,m)').*output_gate;

        h_state(:,m)=(pre_h_state*weight_preh_h)';

        %误差计算

        Error=h_state(:,m)-test_data(:,m);

        Error_Cost(1,iter)=sum(Error.^2);

        if(Error_Cost(1,iter)<cost_gate)

            flag=1;

            break;

        else

            [   weight_input_x,...

                weight_input_h,...

                weight_inputgate_x,...

                weight_inputgate_c,...

                weight_forgetgate_x,...

                weight_forgetgate_c,...

                weight_outputgate_x,...

                weight_outputgate_c,...

                weight_preh_h ]=LSTM_updata_weight(m,yita,Error,...

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

 

        end

    end

end

figure

semilogy(1:iter,Error_Cost,'b');

hold on;

title('Error-Cost曲线图');   

%% 使用第七天数据检验

a238

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168