1确认矩阵拆分.docx
- 文档编号:9071847
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:15
- 大小:44.26KB
1确认矩阵拆分.docx
《1确认矩阵拆分.docx》由会员分享,可在线阅读,更多相关《1确认矩阵拆分.docx(15页珍藏版)》请在冰豆网上搜索。
1确认矩阵拆分
1.确认矩阵拆分
division.m为主程序
函数1:
[event_no,b]=f_recursion_try(1,confirm_meas_total,mbs+1,confirm_matrix,event_no,aa,b)
功能:
生成所有可行事件
参数说明:
event_no:
可行事件总数
b:
可行事件矩阵
confirm_meas_total:
确认量测总数
mbs:
目标个数
confirm_matrix:
确认矩阵
其中元素非0即1,描述量测与目标是否关联(量测位于目标跟踪门内,则置为1,否则0)
例如:
其确认矩阵
,拆分结果为:
,结果不必唯一,可按行交换。
列数:
量测数!
Bij:
在第i个可行事件中,第j个量测对应于第bij个目标!
函数2:
tag=f_enable(i,j,input,b,event_no);
功能:
在形成新的可行事件中,用以判断量测i和目标j能否关联
参数说明:
i:
量测编号
j:
目标编号
input:
确认矩阵
b:
已生成的可行事件
event_no:
应生成的可行事件数
2.聚形成(需扩展到三维)
%将目标按其在整个跟踪空间中的分布情况划分为“聚”,原则:
具有相交跟踪门的目标归入同一个聚中)
函数说明:
函数名:
[cl_total,cl_element_total,cl_matrix]=f_produce_cluster2(exist_target,exist_target_total,u)
返回值:
cl_total:
聚的总数
cl_element_total:
每个聚中元素个数
cl_matrix:
按行存放各个聚中包含的目标,聚矩阵
输入参数:
exist_target:
目标编号列表
exist_target_total:
目标总数
u:
按列存放的各个目标跟踪门向量
u=[u1,u2,u3,u4]’:
[u1,u3]:
左下顶点
[u2,u4]:
右上顶点
3.确认量测(需扩展到三维)
%该函数用于确定该聚中所有量测
函数说明:
函数名:
[miss_detect_flag,confirm_matrix,confirm_meas,confirm_meas_total]=f_confirm_measure2(cl_element_total,measurement,mes_total,u);
修改为:
[miss_detect_flag,mes_flag,confirm_matrix,confirm_meas,confirm_meas_total]=f_confirm_measure2(cl_element_total(c),measurement,mes_total,u_c);%该函数用于确定该聚中所有量测
返回值:
miss_detect_flag:
该聚中目标漏探标志
confirm_matrix:
确认矩阵(注:
这里的目标号为该聚内部局部编号)
confirm_meas:
按列存放所有确认量测
confirm_meas_total:
确认量测总数
输入参数:
cl_element_total:
此聚中目标总数
measurement:
整个量测集合(按列存放该时刻所有量测)
mes_total:
该时刻所有量测总数
u:
该聚中目标跟踪门向量(按列存放)
4.immjpda:
获得目标的jpda以及immjpda滤波结果
[x_jpda,p_jpda,x_immjpda,p_immjpda]=f_immjpda(state_dm,target_no,flag,prob,mes,mes_total,x1,p1,x2,p2)函数说明:
返回值:
x_jpda:
当前目标单模型jpda滤波状态(各模型按列存放)
p_jpda:
当前目标单模型jpda滤波状态协方差阵(各模型按列存放)
x_immjpda:
当前目标immjpda滤波状态
p_immjpda:
当前目标immjpda滤波状态协方差阵
输入参数:
state_dm:
目标状态向量维数
target_no:
目标编号
flag:
目标类型标志,新目标为1
prob:
量测-目标关联概率
mes:
该聚中所有确认量测
mes_total:
该聚中确认量测总数
x1:
前一时刻该目标immjpda滤波状态
p1:
前一时刻该目标immjpda滤波状态协方差阵
x2:
前一时刻该目标单模型jpda滤波状态(各模型按列存放)
p2:
前一时刻该目标单模型jpda滤波状态协方差阵(各模型按列存放)
5.矩形跟踪门形成(需扩展到三维)
u=f_rect_gate2(z_predict,s_predict,r,kg)%forsimulation
返回值:
u=[u1,u2,u3,u4]’---------------:
跟踪门顶点坐标信息
u1:
跟踪门左下顶点x坐标
u2:
跟踪门右下顶点x坐标
u1:
跟踪门左下顶点y坐标
u2:
跟踪门左上顶点y坐标
输入参数:
z_predict:
预报量测
s_predict:
预报量测协方差阵
r:
量测噪声协方差阵
kg:
跟踪门常数
6.可行事件制定可行事件,计算目标检测指示,量测关联指示,虚警量测个数等
[assoc_vector_rt,dt,tag,w_rt,xjs_rt]=f_produce_w(kxsj,lcs,mbs)
返回值:
assoc_vector_rt:
与该聚中确认量测数同维,标志该事件中各个量测关联的目标号(在聚中的局部编码)。
Dt:
目标关联指示,与该聚中目标个数同维(关联上量测为1,否则0)
Tag:
量测关联指示,与该聚中确认量测个数同维(关联上目标为1,否则0)
w_rt:
该可行事件中量测与目标关联情况
xjs_rt:
该可行事件中的虚警数,即未关联目标的量测数
输入参数:
kxsj:
某个可行事件(将确认矩阵拆分后生成的可行事件矩阵的某一行)
lcs:
该聚中的目标数
mbs:
该聚中的确认量测数
7.坐标变换
1.地面坐标系
2.机体坐标系
俯仰角:
机体坐标系轴ox与地平面oxz之间的角度
偏航角:
机体坐标系轴ox在地平面oxz上的投影与地面坐标系轴ox之间所成的角
滚转角:
飞机的对称平面oxy与通过轴的铅垂平面之间所成的角
(x,y,z)=f_coordi_trans(x0,y0,z0,a1,a2,a3,dis,fw,fy):
坐标变换
无用--8.模拟产生传感器接收到的量测--justforsimulation
[mes_rt,mes_total,x]=f_produce_measure(arg,x,exist_target_total,target_state,u1,u2)
返回值:
mes_rt:
当前时刻传感器接收到的量测信息(按列存放,共mes_total列)
mes_total:
当前时刻传感器接收到的量测总数
x:
各个目标当前状态(按列存放)
输入参数:
arg:
杂波密度参数
x:
前一时刻各个目标状态
exist_target_total:
存在的目标总数
target_state:
各个目标状态
u1:
跟踪空间左下顶点坐标
u2:
跟踪空间右上顶点坐标
9.从航迹起始算法结果中获得指定目标的状态信息
[x_rt,p_rt]=f_get_xandp(x_new,p_new,i,state_dm);
返回值:
x_rt:
指定目标的状态估值
p_rt:
指定目标的状态估值协方差
输入参数:
x_new:
航迹起始的多目标状态估计(各个目标按列存放)
p_new:
航迹起始的多目标状态估计协方差
i:
目标编号
state_dm:
目标状态向量维数
10.为新起始目标预报量测与协方差阵
[z_rt,s_rt]=f_initiate_predict(x_current,p_current)
返回值:
z_rt:
预报量测
s_rt:
预报量测协方差阵
输入参数:
x_current:
当前状态估计
p_current:
当前状态估计协方差阵
有关航迹起始的函数(11,12,13,14,15)
11.多目标航迹起始函数—待完成[new_target_total,x_init,p_init,asso_mes]=f_initiate_tracks(M,dm,measurement,mes_total,vmin,vmax,r,t,yz1,yz2,yz3,yz4)
输入参数:
M:
滑窗宽度
dm:
(当状态维数x,y两个方向为2,当状态维数x,y,z三个方向为3)
Measurement:
各个时刻所有量测(按列存放)
mes_total:
各个时刻量测个数(向量)
vmin:
最小速度
vmax:
最大速度
r:
传感器量测噪声协方差
t:
采样间隔
yz1:
阈值1
yz2:
阈值2
yz3:
阈值3
yz4:
阈值4
返回值:
new_target_total:
新目标总数
x_init:
起始的新目标状态估计值(按列存放)
p_init:
起始的新目标状态估计协方差(按列存放)
asso_mes对应于各个新起始目标的量测编码(按行存放)
12.为初始时刻各个候选航迹起点确定候选量测[confirm_mes,confirm_mes_index,confirm_mes_total,a1,p1,d]=f_confirm1(k,t,mes_now,a_now,p_now,mes_total_next,measurement_next,vmin,vmax,r,
yz1);
输入参数:
k:
当前采样时刻
t:
采样间隔
mes_now:
作为航迹起点的量测
a_now:
多项式系数估计
p_now:
多项式系数估计协方差
mes_total_next:
下一时刻量测总数
measurement_next:
下一时刻所有量测
vmin:
最小速度
vmax:
最大速度
r:
传感器量测噪声协方差
yz1:
阈值1
返回值:
confirm_mes :
所有确认量测
confirm_mes_index:
所有确认量测索引
confirm_mes_total:
确认量测总数
a1:
多项式系数估计(按列存放)
p1:
多项式系数估计协方差(按列存放)
d:
统计距离(按列存放)
13.为非初始时刻各个候选航迹起点确定候选量测[confirm_mes,confirm_mes_index,confirm_mes_total,a1,p1,d]=f_confirm2(k,t,a_now,p_now,mes_total_next,measurement_next,r,yz2);
输入参数
k:
当前采样时刻
t:
采样间隔
a_now:
多项式系数估计
p_now:
多项式系数估计协方差
mes_total_next:
下一时刻量测总数
measurement_next:
下一时刻所有量测
r:
传感器量测噪声协方差
yz2:
阈值2
返回值:
confirm_mes :
所有确认量测
confirm_mes_index:
所有确认量测索引
confirm_mes_total:
确认量测总数
a1:
多项式系数估计(按列存放)
p1:
多项式系数估计协方差(按列存放)
d:
统计距离(按列存放)
14.多项式拟合
function[a_rt,p_rt]=f_poly_fit(k,t,mes_now,a0,p0,r);
输入参数:
k:
当前采样时刻
t:
采样间隔
mes_now:
用于更新多项式系数估计的量测
a0:
多项式系数估计(old)
p0:
多项式系数估计协方差(old)
r:
量测噪声协方差阵
返回值:
a_rt:
多项式系数估计(update)
p_rt:
多项式系数估计协方差(update)
15.多假设扩展[b1,cost,a,p]=f_extend(r,k,t,a0,p0,mes_index,mes_start,mes_total1,measurement,yz4);
输入参数:
r:
量测噪声协方差
k:
当前采样时刻
t:
采样间隔
a0:
多项式系数估计
p0:
多项式系数估计协方差
mes_index:
当前量测编号
mes_start:
当前量测
mes_total1:
下一时刻量测总数
measurement:
下一时刻所有量测
yz4:
阈值4
返回值:
b1:
所有可能关联情况
cost:
所有可能关联情况对应的费用
a:
多项式系数估计(对应所有可能关联情况)
p:
多项式系数估计协方差(对应所有可能关联情况)
16.对于k+1时刻的所有确认量测,确定k+2时刻相应的候选量测[matrix_rt,a_rt,p_rt]=f_decide(dm,matrix_input,b,min_index,a,p);%决策,仅保留其一
输入参数:
dm:
(当状态维数x,y两个方向为2,当状态维数x,y,z三个方向为3)
matrix_input:
前一时刻量测组合
b:
所有可能关联情况
min_index:
费用最小的量测组合索引
a:
多项式系数估计(对应所有可能关联情况)
p:
多项式系数估计协方差(对应所有可能关联情况)
返回值:
matrix_rt:
当前时刻量测组合
a_rt:
多项式系数估计
p_rt:
多项式系数估计协方差
17.得到对应于每个新起始目标的状态和方差
[x_rt,p_rt,d_rt]=f_get_xp(M,t,matrix,a,p,mes_total,measurement,r)
输入参数:
M:
滑窗宽度
T:
采样间隔
Matrix:
当前假设矩阵
a:
多项式系数估计(当前假设)
p:
多项式系数估计协方差(当前假设)
mes_total:
各个时刻量测个数(向量)
Measurement:
各个时刻所有量测(按列存放)
r:
量测噪声协方差
返回值:
a_rt:
多项式系数估计
p_rt:
多项式系数估计协方差
d_rt:
统计距离
mainpro_last1
其中,justfortest,justforsimulation(为验证方法,仅仿真时使用)
几个未交待的函数说明
1.jpda_parameter;%读取一些仿真参数
2.[measurement,mes_total]=f_receive():
从雷达信号处理模块,接收量测数据。
3.[input_mes,input_mes_total]=f_compute_remain(M,input_mes,input_mes_total,new_target_total,asso_mes)%记载未关联量测,从而完成下一次航迹起始
需要多模型方法提供的函数:
函数1:
f_imm():
利用指定量测获得的单(多)模型状态估值以及协方差矩阵
[x_single_model,p_single_model,x_imm,p_imm]=f_imm(flag,mes,target_no,x1,p1,x2,p2);
返回值:
x_single_model:
分别利用每个模型获得的当前时刻滤波状态(形成的组合矩阵)
p_single_model:
分别利用每个模型获得的当前时刻滤波状态协方差(形成的组合矩阵)
x_imm:
利用多模型获得的当前时刻滤波状态
p_imm:
利用多模型获得的当前时刻滤波状态协方差
输入参数:
flag:
目标类型(新,老)
mes:
当前量测向量
target_no:
目标号
x1:
前一时刻各个模型滤波状态(形成的组合矩阵)
p1:
前一时刻各个模型滤波状态协方差(形成的组合矩阵)
x2:
前一时刻多模型滤波状态
p2:
前一时刻多模型滤波状态协方差
函数2:
f_imm_nomes():
获得目标单模型预报(多模型综合预报)状态和协方差阵
[model_total,x_model_predict,p_model_predict,x_imm_predict,p_imm_predict]=f_imm_nomes(falg,target_no,x1,p1,x2,p2);
输入参数:
flag:
目标类型
target_no:
目标号
x1:
前一时刻各个模型滤波状态(形成的组合矩阵)
p1:
前一时刻各个模型滤波状态协方差(形成的组合矩阵)
x2:
前一时刻多模型滤波状态
p2:
前一时刻多模型滤波状态协方差
返回值:
model_total:
模型总数
x_model_predict:
单模型预测状态
p_model_predict:
单模型预测状态协方差
x_imm_predict:
多模型预测状态
p_imm_predict:
多模型预测状态协方差
函数3:
f_imm_predict1----获得已有目标的预报量测和量测状态协方差阵
function[z_predict,s_predict]=f_imm_predict1(i,x_jpda,p_jpda,x_immjpda,p_immjpda);
返回值:
z_predict:
预报量测
s_predict:
预报量测协方差阵
输入参数:
i:
目标编号
x_jpda:
前一时刻目标单模型状态估计(各个模型滤波结果按列排列)
p_jpda:
前一时刻目标单模型状态协方差
x_immjpda:
前一时刻目标多模型状态估计
p_immjpda:
前一时刻目标多模型状态估计协方差
程序修改说明:
1.
2003-4-25日修改!
f_confirm_measure2(cl_element_total,measurement,mes_total,u);%该函数用于确定该聚中所有量测
2.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 确认 矩阵 拆分
![提示](https://static.bdocx.com/images/bang_tan.gif)