zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【ePL-KRLS-DISCO】基于新型演化模糊系统应用于电力变压器研究(Matlab代码实现)

MATLAB应用系统代码 实现 基于 研究 模糊
2023-09-14 09:05:19 时间

 👨‍🎓个人主页:研学社的博客  

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

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

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

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

目录

💥1 概述

📚2 运行结果

2.1 算例1

2.2 算例2 

2.3 算例3 

 2.4 算例4​编辑

 2.5 算例5

2.6 算例6 

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

大数据的进步促使研究人员开发和改进智能模型,以高效和有效地处理数据。在这种情况下,时间序列预测会获得更多关注。文献表明,这些模型在该主题中表现更好。预测广泛用于战略规划以支持决策,为组织提供竞争差异。该文提出一种基于规则的演化模糊系统用于时间序列预测。这是一个强大的模型,能够在未知环境中开发和更新其结构,捕获流的动态和变化,即使在处理复杂数据时也能产生准确的结果。引入的模型实现了距离相关,通过降低规则的标准差来提高规则的质量。该模型使用两个合成数据集进行评估:麦基-格拉斯时间序列和非线性动态系统识别。最后,利用来自实际电力变压器的三个数据集实现所引入的系统来预测热点温度。热点监测对于最大限度地提高电力变压器的负载能力和使用寿命是必要的。从均方根误差、非维索引误差、平均绝对误差、运行时间和最终规则数等方面对所提方法进行了评估。将结果与传统预测模型以及一些相关的最先进的基于规则的进化模糊系统进行了比较。新的演进模糊系统的性能优于Mackey-Glass时间序列和电力变压器数据集的比较模型。统计检验包括所引入模型的卓越性能。该算法还获得了有竞争力的执行时间和最终规则的数量。结果表明,该模型具有高度的自主性和适应性,可以准确预测复杂和非平稳数据。看到准确模型处理数据以支持决策的重要性,结果表明该模型作为战略规划中的预测工具实施。ePL-KRLS-DISCO(使用核递归最小二乘和距离相关不断发展的参与式学习)

📚2 运行结果

2.1 算例1

 

2.2 算例2 

 

2.3 算例3 

 

 2.4 算例4

 

 2.5 算例5

 

 

2.6 算例6 

 

 

部分代码:

clear all;
close all;
clc;

% Loading the data
Data = load('data/S03_Cemig_Day1');

% Defining the inputs and outputs
Inputs = Data.x;
Output = Data.y;
Data = [Inputs Output];

% Normalizing the input
Max_Input = max(max(Inputs));
Min_Input = min(min(Inputs));

Normalized_Input = (Inputs - Min_Input)/(Max_Input - Min_Input);

% Normalizing the output
Max_Output = max(max(Output));
Min_Output = min(min(Output));

Normalized_Output = (Output - Min_Output)/(Max_Output - Min_Output);

% Total number of observations
Num_Points = length(Output);
% Number of attributes
Num_Vars = size(Inputs, 2);
% Number of observations in the training phase
Num_Training_Points = 289;

% Model parameters
Arousal_Index_Init = 0;
% Rate of changing of the arousal index
beta = 0.04;
% Tresholding to adding a new rule
tau = beta;
% Learning rate
alpha = 0.05;
% Lambda
lambda = 0.0000000001;
% Kernel size
sigma = 0.5;
omega = 1;
% Threshold of the utility measure
e_Utility = 0.05;

% Calling the model
[y_Predicted Residual Num_Clusters] = ePL_KRLS_DISCO(Normalized_Input, Normalized_Output, Arousal_Index_Init, beta, tau, alpha, lambda, sigma, omega, Num_Training_Points, e_Utility);

% Denormalizing the results
y_PredictedDenormalized = y_Predicted*(Max_Output - Min_Output) + Min_Output;

ActualOutputTestData = Output(end-288:end);
ResidualTestData = (y_PredictedDenormalized(end-288:end)-ActualOutputTestData').^2;
y_PredictedTestData = y_PredictedDenormalized(end-288:end);
N_Points = length(ResidualTestData);

% Results
fprintf('\nResults:\n\n')
MSE = (1/N_Points)*sum(ResidualTestData);
RMSE = sqrt(MSE);
fprintf('RMSE: %.7f\n',RMSE);
NDEI= RMSE/std(ActualOutputTestData);
fprintf('NDEI: %.7f\n',NDEI);
MAE = (1/N_Points)*sum(abs(y_PredictedDenormalized(end-288:end)-ActualOutputTestData'));
fprintf('MAE: %.7f\n',MAE);
Final_Rules = Num_Clusters(end);
fprintf('Number of Final Rules: %d\n\n',Final_Rules);

% Plottting the graphic of the predictions
figure1 = figure();
y = ActualOutputTestData;
plot(y);
hold on;
plot(y_PredictedTestData,'r-');
xlabel('k');
ylabel('Output');
legend('Actual Value','ePL-KRLS-DISCO');


% Plottting the graphic of the number of rules
figure2 = figure();
plot(Num_Clusters);
xlim([1 Num_Training_Points]);
ylim([0 max(Num_Clusters)+1]);
xlabel('k');
ylabel('Number of rules');


% Runtime
simulations = 30;
for times = 1:simulations
    initial = tic;
    [y_Predicted Residual Num_Clusters] = ePL_KRLS_DISCO(Normalized_Input, Normalized_Output, Arousal_Index_Init, beta, tau, alpha, lambda, sigma, omega, Num_Training_Points, e_Utility);
    duration(times) = toc(initial);
end

% Runtime results
Media = mean(duration);
fprintf('Mean runtime of %d simulations: %.2f\n', simulations, Media);
STD = std(duration);
fprintf('Runtime standard deviation for %d simulations: %.2f\n', simulations, STD);

🎉3 参考文献

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

[1]Kaike Sa Teles Rocha Alves, Eduardo Pestana de Aguiar (2021) ePL-KRLS-DISCO (evolving Participatory Learning with Kernel Recursive Least Square and Distance Correlation)

🌈4 Matlab代码实现