一種多傳感器的數據融合方法——領域搜索

本文提出一種簡易的多數據融合方法

知網見

http://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CJFD&dbname=CJFDLAST2019&filename=YQXB201908023&uid=WEEvREcwSlJHSldRa1FhcTdWa2FjcW90czZveGVyNmU5OTFpODNlcnE1UT0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!&v=MjYwMzR6bFZiN05QRHpUYkxHNEg5ak1wNDlIWjRSOGVYMUx1eFlTN0RoMVQzcVRyV00xRnJDVVJMT2VaZVJ0Rnk=

基於鄰域搜索算法去解決這個問題。搜索原理廣泛應用於工程實際,即在一個目標羣體中尋找具有代表性的潛在最優解,搜索羣體在時空域上具有一定的相關性,可通過一定的搜索規則使具備一定的感知性,其原理結構如下所示:

                       

式中代表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);
 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章