本文提出一种简易的多数据融合方法
知网见
基于邻域搜索算法去解决这个问题。搜索原理广泛应用于工程实际,即在一个目标群体中寻找具有代表性的潜在最优解,搜索群体在时空域上具有一定的相关性,可通过一定的搜索规则使具备一定的感知性,其原理结构如下所示:
式中代表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);