高频数据matlab的特征选择

时间:2018-05-10 12:54:38

标签: matlab bigdata feature-selection

我有1年的50Hz数据(风力涡轮机),大约100gb。 10分钟文件,每个文件有大约70个传感器文件。每个传感器变量有大约30.000个数据。

我正在尝试对此数据应用功能选择方法。到目前为止,我正在合并10个传感器,我认为它们对因变量有影响。我最终得到一个包含10个变量的矩阵,每个变量有30.000次,可以说6个文件,所以180.000。在这里,我只评估了一整年的一小时数据。

是否有可能使用featureselection方法评估我的所有数据?

%此脚本从工作空间读取所有数据并合并来自的数据 %不同的文件。创建变量集:从属变量 - A / A1 %和独立变量res_biege用于进一步的工作

xliste = dir('*.mat'); %dateiinformationen werden ge-speichert 
xanzahldateien = numel(xliste); % Anzahl der gefun-denen .mat dateien 
xnamederdatei =  {xliste.name}; % alle dateinamen im Ordner werden im Array gespeichert

C_Bieg1_060_240_merge = [];
Generatordrehzahl_Anlagengeno_merge = [];
Generatordrehzahl_Triebstrang_merge = [];
Pitchwinkel_Blatt1_merge = [];
Rotordrehzahl_merge = [];
Turmschwingung_X_merge = [];
Turmschwingung_Y_merge = [];
Windgeschwindigkeit_Gondel_merge = [];
Windrichtung_relativ_merge = [];
Wirkleistung_merge = [];
C_Bieg2_150_330_merge = [];


for k=1:1:length(xliste)-1 %Einlesen der daten aus dem Ordner 
load(xnamederdatei{k}); % öffnen der dateien
%cut all sensor values into one vector
C_Bieg1_060_240_merge = vertcat(C_Bieg1_060_240_merge, C_Bieg1_060_240);
C_Bieg2_150_330_merge = vertcat(C_Bieg2_150_330_merge, C_Bieg2_150_330);
Generatordrehzahl_Anlagengeno_merge = vertcat(Generatordrehzahl_Anlagengeno_merge,Generatordrehzahl_Anlagengeno);
Generatordrehzahl_Triebstrang_merge = vertcat(Generatordrehzahl_Triebstrang_merge,Generatordrehzahl_Triebstrang);
Pitchwinkel_Blatt1_merge = vertcat(Pitchwinkel_Blatt1_merge,Pitchwinkel_Blatt1);
Rotordrehzahl_merge = vertcat(Rotordrehzahl_merge,Rotordrehzahl);
Turmschwingung_X_merge = vertcat(Turmschwingung_X_merge,Turmschwingung_X);
Turmschwingung_Y_merge = vertcat(Turmschwingung_Y_merge,Turmschwingung_Y);
Windgeschwindigkeit_Gondel_merge = vertcat(Windgeschwindigkeit_Gondel_merge,Windgeschwindigkeit_Gondel);
Windrichtung_relativ_merge = vertcat(Windrichtung_relativ_merge,Windrichtung_relativ);
Wirkleistung_merge = vertcat(Wirkleistung_merge,Wirkleistung);

end
% clear the workspace except needed variables
clearvars -except C_Bieg1_060_240_merge C_Bieg2_150_330_merge Generatordrehzahl_Anlagengeno_merge Generatordrehzahl_Triebstrang_merge Pitchwinkel_Blatt1_merge Rotordrehzahl_merge Turmschwingung_X_merge Turmschwingung_Y_merge Windgeschwindigkeit_Gondel_merge Windrichtung_relativ_merge Wirkleistung_merge
%cutting down vectors to the same length
C_Bieg1_060_240_merge = C_Bieg1_060_240_merge(1:150000);
C_Bieg2_150_330_merge = C_Bieg2_150_330_merge(1:150000);
Generatordrehzahl_Anlagengeno_merge = Generatordrehzahl_Anlagengeno_merge(1:150000);
Generatordrehzahl_Triebstrang_merge = Generatordrehzahl_Triebstrang_merge(1:150000);
Pitchwinkel_Blatt1_merge = Pitchwinkel_Blatt1_merge(1:150000);
Rotordrehzahl_merge = Rotordrehzahl_merge(1:150000);
Turmschwingung_X_merge = Turmschwingung_X_merge(1:150000);
Turmschwingung_Y_merge = Turmschwingung_Y_merge(1:150000);
Windgeschwindigkeit_Gondel_merge = Windgeschwindigkeit_Gondel_merge(1:150000);
Windrichtung_relativ_merge = Windrichtung_relativ_merge(1:150000);
Wirkleistung_merge = Wirkleistung_merge(1:150000);

%avereging every 5 values
C_Bieg1_060_240_merge = nanmean(reshape( [C_Bieg1_060_240_merge(:);nan(mod(-150000,50),1)],50,[]))';
C_Bieg2_150_330_merge = nanmean(reshape( [C_Bieg2_150_330_merge(:);nan(mod(-150000,50),1)],50,[]))';
Generatordrehzahl_Anlagengeno_merge = nanmean(reshape( [Generatordrehzahl_Anlagengeno_merge(:);nan(mod(-150000,50),1)],50,[]))';
Generatordrehzahl_Triebstrang_merge = nanmean(reshape( [Generatordrehzahl_Triebstrang_merge(:);nan(mod(-150000,50),1)],50,[]))';
Pitchwinkel_Blatt1_merge = nanmean(reshape( [Pitchwinkel_Blatt1_merge(:);nan(mod(-150000,50),1)],50,[]))';
Rotordrehzahl_merge = nanmean(reshape( [Rotordrehzahl_merge(:);nan(mod(-150000,50),1)],50,[]))';
Turmschwingung_X_merge = nanmean(reshape( [Turmschwingung_X_merge(:);nan(mod(-150000,50),1)],50,[]))';
Turmschwingung_Y_merge = nanmean(reshape( [Turmschwingung_Y_merge(:);nan(mod(-150000,50),1)],50,[]))';
Windgeschwindigkeit_Gondel_merge = nanmean(reshape( [Windgeschwindigkeit_Gondel_merge(:);nan(mod(-150000,50),1)],50,[]))';
Windrichtung_relativ_merge = nanmean(reshape( [Windrichtung_relativ_merge(:);nan(mod(-150000,50),1)],50,[]))';
Wirkleistung_merge = nanmean(reshape( [Wirkleistung_merge(:);nan(mod(-150000,50),1)],50,[]))';
%Create a table for correlation analysis & array (matrix)
res_biege = sqrt(C_Bieg1_060_240_merge.^2 + C_Bieg2_150_330_merge.^2);
T = table(res_biege , Generatordrehzahl_Anlagengeno_merge, Generatordrehzahl_Triebstrang_merge, Pitchwinkel_Blatt1_merge, Rotordrehzahl_merge, Turmschwingung_X_merge, Turmschwingung_Y_merge, Windgeschwindigkeit_Gondel_merge, Windrichtung_relativ_merge, Wirkleistung_merge);
A = table2array(T);
A1 = table2array(table(Generatordrehzahl_Anlagengeno_merge, Generatordrehzahl_Triebstrang_merge, Pitchwinkel_Blatt1_merge, Rotordrehzahl_merge, Turmschwingung_X_merge, Turmschwingung_Y_merge, Windgeschwindigkeit_Gondel_merge, Windrichtung_relativ_merge, Wirkleistung_merge));
R = corrcoef(A)

0 个答案:

没有答案