MATLAB实现含NWP的BP神经网络风电功率预测对比

版权申诉
5星 · 超过95%的资源 11 下载量 196 浏览量 更新于2024-10-13 5 收藏 18KB RAR 举报
资源包括两种风电功率预测方法的比较研究,一种是基于NWP的预测方法,另一种则是不依赖NWP的BP神经网络预测方法。用户可以在此资源中找到与风电功率预测相关的数据和实际案例,这将有助于理解和掌握不同预测模型在风电领域中的应用。 在描述中提到的BP神经网络是一种多层前馈神经网络,通过训练算法调整网络权重,最终达到误差最小化的目的。BP神经网络在风电功率预测中具有重要的应用价值,因为风能的不确定性使其功率输出难以预测,而BP神经网络能够处理输入与输出之间的非线性关系,通过学习历史数据来预测未来风电功率的输出。 NWP数值天气预报则是通过计算流体力学和大气物理学原理模拟大气状态的方法。它能够提供未来一段时间内的详细天气情况,如风速、风向等,对于风电功率预测至关重要。NWP提供的实时数据能够帮助预测模型更加准确地预测风电场未来一段时间内的风能资源和功率输出。 结合NWP与BP神经网络,可以使风电功率预测更加精确。这种方法不仅依赖于历史数据学习,还结合了实时的天气预报信息,能够有效提高风电功率预测的准确度和可靠性。 在标签中提到了多个与本资源相关的关键词,包括“神经网络”、“matlab”、“人工智能”、“深度学习”和“机器学习”。这些关键词表明本资源不仅仅关注于风电功率预测,还涉及到了更为广泛的智能计算领域。 神经网络是人工智能的一个重要分支,它通过模拟人脑神经网络的结构和功能,用于解决各种模式识别、分类和预测问题。MATLAB作为一种数学计算软件,提供了神经网络工具箱,使得用户可以方便地进行神经网络设计、仿真和分析。 人工智能是指赋予机器像人类一样进行思考和学习的能力,是计算机科学的一个分支。深度学习是人工智能的一个子领域,它通过构建多层神经网络模型,可以自动地从大量数据中学习复杂的特征。机器学习是人工智能的核心技术之一,它让计算机系统能够通过数据学习模式,从而无需进行显式编程就能改进任务执行性能。 本资源为研究者和工程师在风电功率预测领域进行深入研究提供了基础数据和实际案例,有助于推动相关技术的发展和应用。"

%% 计算指标 INdex=[]; n=[]; for i=1:k A=NWP_cluster{i}; index=[]; for j=1:size(A,1) for x=1:size(A,2) index(j,x)=sum((A(j,:)-A(x,:)).^2)^0.5; end end INdex(k)=sum(sum(index))/(size(A,1)*size(A,2)-1)/2; n(k)=size(A,1)*size(A,2); end compactness=sum(INdex)/sum(n); disp(['紧致度为:',num2str(compactness)]) %% 找出原始不聚类的训练测试集 Label_test_first=[]; first_label=[]; Label_1=[L{1}' L{2}' L{3}']; for i=1:k Label=find(label==i); A=Label_1(find(label==i)); first_label{i}=Label(1+ceil(length(A)*5/6):end); A(1:ceil(length(A)*5/6))=[]; Label_test_first=[Label_test_first A]; end X=1:size(data,1); X(Label_test_first)=[]; Train_NWP_power_zhijie =[data(X,:) power_date(X,:)]; Test_NWP_power_zhijie =[data(Label_test_first,:) power_date(Label_test_first,:)]; csvwrite('不聚类的训练集.csv',Train_NWP_power_zhijie); csvwrite('不聚类的测试集.csv',Test_NWP_power_zhijie); %% 找出一重聚类结果的训练测试集 first_L1=[]; first_L2=[]; first_L3=[]; for i=1:k B=first_label{i}; L1_label=B(find(B<=length(L{1}))); L2_label=B(find(B<=length([L{1}' L{2}']))); L3_label=B(~ismember(B,L2_label)); L2_label=L2_label(~ismember(L2_label,L1_label)); first_L1=[first_L1;L1_label]; first_L2=[first_L2;L2_label]; first_L3=[first_L3;L3_label]; end first_cluster_test_1=Label_1(first_L1); first_cluster_test_2=Label_1(first_L2); first_cluster_test_3=Label_1(first_L3); first_cluster_train_1=Label_cluster{1}(~ismember(Label_cluster{1},first_cluster_test_1)); first_cluster_train_2=Label_cluster{2}(~ismember(Label_cluster{2},first_cluster_test_2)); first_cluster_train_3=Label_cluster{3}(~ismember(Label_cluster{3},first_cluster_test_3)); %% 划分出训练测试集 NWP_power_test_1=[data(first_cluster_test_1,:) power_date(first_cluster_test_1,:)]; NWP_power_test_2=[data(first_cluster_test_2,:) power_date(first_cluster_test_2,:)]; NWP_power_test_3=[data(first_cluster_test_3,:) power_date(first_cluster_test_3,:)]; NWP_power_train_1=[data(first_cluster_train_1,:) power_date(first_cluster_train_1,:)]; NWP_power_train_2=[data(first_cluster_train_2,:) power_date(first_cluster_train_2,:)]; NWP_power_train_3=[data(first_cluster_train_3,:) power_date(first_cluster_train_3,:)]; NWP_power_test=[{NWP_power_test_1} {NWP_power_test_2} {NWP_power_test_3}]; NWP_power_train=[{NWP_power_train_1} {NWP_power_train_2} {NWP_power_train_3}]; for i=1:k str_test=['NWP_power_test_',num2str(i),'.csv']; csvwrite(str_test,NWP_power_test{i}); str_train=['NWP_power_train_',num2str(i),'.csv']; csvwrite(str_train,NWP_power_train{i}); end

2023-07-14 上传

INdex=[]; n=[]; for i=1:k A=NWP_cluster{i}; index=[]; for j=1:size(A,1) for x=1:size(A,2) index(j,x)=sum((A(j,:)-A(x,:)).^2)^0.5; end end INdex(k)=sum(sum(index))/(size(A,1)*size(A,2)-1)/2; n(k)=size(A,1)*size(A,2); end compactness=sum(INdex)/sum(n); disp(['紧致度为:',num2str(compactness)]) %% 计算欧氏距离 Dis=[]; for i=1:k Data=NWP_cluster{i}; oushi_dis=[]; Center=center(i,:); for j=1:size(Data,1) oushi_dis(j)=sum((Data(j,:)-Center).^2)^0.5; end Dis{i}=oushi_dis; end L=[]; first_label=[]; for i=1:k [~,location]=sort(Dis{i},'ascend'); Label=Label_cluster{i}; Label=Label(location); L{i}=Label(1:ceil(length(Label))*0.5); first_label=[first_label;Label_cluster{i}]; end %% 二次聚类 double_data=p_train([L{1};L{2};L{3}],:); Double_data=data([L{1};L{2};L{3}],:); double_power=power_date([L{1};L{2};L{3}],:); %% 聚类 k=3; [label,center]=FCM(double_data',k); %% double_label1=label(1:length(L{1})); double_label2=label(1+length(L{1}):length(L{1})+length(L{2})); double_label3=label(1+length(L{1})+length(L{2}):length(L{1})+length(L{2})+length(L{3})); double_label=[{double_label1} {double_label2} {double_label3}];%{double_label4} {double_label5} {double_label6} %% 找出同一类的样本 NWP_cluster=[]; cluster_power=[]; for i=1:k NWP_cluster{i}=double_data(find(label==i),:); cluster_power{i}=double_power(find(label==i),:); end NWP_power=[]; for i=1:k NWP_power{i}=[Double_data(find(label==i),:) double_power(find(label==i),:)]; end for i=1:k str=['NWP_power',num2str(i),'.csv']; csvwrite(str,NWP_power{i});

160 浏览量