本文提出一種簡易的多數據融合方法
知網見
基於鄰域搜索算法去解決這個問題。搜索原理廣泛應用於工程實際,即在一個目標羣體中尋找具有代表性的潛在最優解,搜索羣體在時空域上具有一定的相關性,可通過一定的搜索規則使具備一定的感知性,其原理結構如下所示:
式中代表X輸入數據集的矩陣,t代表時間刻度,代表最小值取值函數,i,j分別爲輸入矩陣的大小,i在物理含義上代表傳感器數量,j在物理含義上代表某t時刻傳感器的某項數據值,如此便可以得到訓練集的誤差矩陣,對誤差矩陣進行領域搜索,如下:
這裏代表某t時刻相鄰傳感器得到誤差數據比較值,爲了進行矩陣運算我們需要將其進行轉置並進行最小值比較,即:
在上述基礎上,我們得到了在四個姿態傳感器相鄰三時刻鄰域數據中(即12個數據)某兩值相減的最小誤差值,對其進行反搜索解算,如下:
式中a、b、c爲線性加權值,隨着實驗的效果可以進行調整,即爲最後的目標值。
爲了使搜索算法具有一定的普適性,提高其精度,可將上式進行改進,如下:
效果圖
clear
clc
DATA1 = xlsread('data2.xlsx','Sheet1');
DATA2 = xlsread('data2.xlsx','Sheet2');
DATA3 = xlsread('data2.xlsx','Sheet3');
DATA4 = xlsread('data2.xlsx','Sheet4');
DATA5 = xlsread('data2.xlsx','Sheet5');
data1 = DATA1';
data2 = DATA2';
data3 = DATA3';
data4 = DATA4';
sousuo_data1 = [data1(1,:);data2(1,:);data3(1,:);data4(1,:)];
sousuo_data2 = [data1(2,:);data2(2,:);data3(2,:);data4(2,:)];
sousuo_data3 = [data1(3,:);data2(3,:);data3(3,:);data4(3,:)];
sousuo_data4 = [data1(4,:);data2(4,:);data3(4,:);data4(4,:)];
sousuo_data5 = [data1(5,:);data2(5,:);data3(5,:);data4(5,:)];
sousuo_data6 = [data1(6,:);data2(6,:);data3(6,:);data4(6,:)];
err = zeros(4,269);
sousuo= zeros(1,269);
for j=2:1:268
err(:,j) = abs(abs(sousuo_data1(:,j-1)-sousuo_data1(:,j))-abs(sousuo_data1(:,j)-sousuo_data1(:,j+1)));
[m,n]=min(err(:,j));
sousuo(1,j) = sousuo_data1(n,j);
end
sousuo(1,1)=sousuo_data1(1,1);
sousuo(1,269)=sousuo_data1(1,269);
sousuo = sousuo';
plot(sousuo);
grid on
hold on
plot(DATA5);
xlabel('時間(10ms)','FontSize',16);
ylabel('測量值(°/s)','FontSize',16);