📄 newdatatrain.m
字号:
clc;
clear;
t=1;
T=1;
%卡尔曼滤波器的参数
infraredsampletime=[-1,0];
infraredinitstate=[0 0 10 10];
infraredinnum=6;
infraredoutnum=22;
infraredp0=eye(4);
infraredH=[1 0 T 0 ;0 1 0 T;0 0 1 0 ;0 0 0 1 ];
infraredB=[ T*T/2 0 ;0 T*T/2 ;T 0;0 T ];
infraredG=[1;1;1;1];
infraredC=[1 0 0 0 ;0 1 0 0 ];
%v1模块的参数
H=infraredC;
A=infraredH;
num=23;
Q=0.2;
G=[1;1;1;1];
%V2模块参数
N=3;
%new added
pc=0.1;
mc1=0;
mc2=0;
ux=1;
uy=1;
indata=zeros(4,2800);
outdata=zeros(2,2800);
i=1;
%%%%%%%%%%%%%%%%%%%%%%%%以上是仿真需要的参数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%初始速度
vmin=0;
vmax=200;
deltaV=10;
%加速度范围
amin=1;
amax=20;
deltaA=1;
%噪声范围
noisemin=0.1;
noisemax=1;
deltaN=0.1;
for acel=1:20
if acel>1
ux=ux+deltaA;
uy=uy+deltaA;
end
for n=1:10
mc1=mc1+deltaN;
mc2=mc2+deltaN;
sim('nnfilter');
for v=1:10
indata(1,i)=v1((v-1)+4);
indata(2,i)=v2((v-1)+4);
indata(3,i)=v12((v-1)+4);
indata(4,i)=v22((v-1)+4);
outdata(1,i)=ux;
outdata(2,i)=uy;
i=i+1;
end;
end
mc1=0;
mc2=0;
end
%两个传感器对应的噪声不同获得400组样本
for acel=1:3:20 %gong 8 ge
mc1=-0.1;
mc2=1.2;
ux=ux+(acel-1)*deltaA;
uy=uy+(acel-1)*deltaA;
for n=1:5
mc1=mc1+0.2;
mc2=mc2-0.2;
sim('nnfilter');
for v=1:10
indata(1,i)=v1((v-1)+4);
indata(2,i)=v2((v-1)+4);
indata(3,i)=v12((v-1)+4);
indata(4,i)=v22((v-1)+4);
outdata(1,i)=ux;
outdata(2,i)=uy;
i=i+1;
end
end
end;
%重新设置一些参数来生成不同heading angel的数据
for acel=1:4
mc1=0;
mc2=0;
if acel==1
ux=20;
uy=5;
else
ux=ux-5;
uy=uy+5;
end
for n=1:10
mc1=mc1+deltaN;
mc2=mc2+deltaN;
sim('nnfilter');
for v=1:10
indata(1,i)=v1((v-1)+4);
indata(2,i)=v2((v-1)+4);
indata(3,i)=v12((v-1)+4);
indata(4,i)=v22((v-1)+4);
outdata(1,i)=ux;
outdata(2,i)=uy;
i=i+1;
end
end
end
save('newdatawithnoise','indata','outdata');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -