更新:1、TWS模式下,点航关联时增加俯仰门限,限制俯仰大幅度跳变的点迹关联
Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
@@ -467,61 +467,71 @@ void Track_Asso:: model_filter(QVector <Trust_Track> *trust_track,struct RadarP
|
|||||||
IMM_d_cal(v_track,X1,P1,X2,P2, X3,P3,Z,prt,freq_ind,delta_T,&d1,&d2,&d3,Work_Parameter);
|
IMM_d_cal(v_track,X1,P1,X2,P2, X3,P3,Z,prt,freq_ind,delta_T,&d1,&d2,&d3,Work_Parameter);
|
||||||
|
|
||||||
//计算高度门限
|
//计算高度门限
|
||||||
double d_h;
|
// double d_h;
|
||||||
if (r_track<1000)
|
// if (r_track<1000)
|
||||||
{
|
// {
|
||||||
if(abs(h_track-h_point)<=150)
|
// if(abs(h_track-h_point)<=150)
|
||||||
{
|
// {
|
||||||
d_h = 1;
|
// d_h = 1;
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
d_h = 0;
|
// d_h = 0;
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
else if (r_track<2000 && r_track>=1000)
|
// else if (r_track<2000 && r_track>=1000)
|
||||||
{
|
// {
|
||||||
if(abs(h_track-h_point)<=200)
|
// if(abs(h_track-h_point)<=200)
|
||||||
{
|
// {
|
||||||
d_h = 1;
|
// d_h = 1;
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
d_h = 0;
|
// d_h = 0;
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
else if(r_track>=2000 && r_track<3000 )
|
// else if(r_track>=2000 && r_track<3000 )
|
||||||
{
|
// {
|
||||||
if(abs(h_track-h_point)<=200)
|
// if(abs(h_track-h_point)<=200)
|
||||||
{
|
// {
|
||||||
d_h = 1;
|
// d_h = 1;
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
d_h = 0;
|
// d_h = 0;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
else if(r_track>=3000 && r_track<5000)
|
// else if(r_track>=3000 && r_track<5000)
|
||||||
{
|
// {
|
||||||
if(abs(h_track-h_point)<=300)
|
// if(abs(h_track-h_point)<=300)
|
||||||
{
|
// {
|
||||||
d_h = 1;
|
// d_h = 1;
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
d_h = 0;
|
// d_h = 0;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
d_h = 1;
|
// d_h = 1;
|
||||||
}
|
// }
|
||||||
|
|
||||||
qDebug() << delta_T<<" "<<d1<<" "<<d2<<" "<<d3;
|
// qDebug() << delta_T<<" "<<d1<<" "<<d2<<" "<<d3;
|
||||||
qDebug() << h_track<<" "<<h_point<<" "<<d_h;
|
// qDebug() << h_track<<" "<<h_point<<" "<<d_h;
|
||||||
d_h = 1;
|
// d_h = 1;
|
||||||
|
|
||||||
|
//计算俯仰门限
|
||||||
|
bool d_p = false;
|
||||||
|
|
||||||
|
double p_track = atan2(h_track, r_track); //航迹俯仰
|
||||||
|
double p_point = asin(h_point/point_process[loop_of_point].Range); //点迹俯仰
|
||||||
|
|
||||||
|
if(abs(p_track - p_point)*180/PI <= 5){
|
||||||
|
d_p = true;
|
||||||
|
}
|
||||||
|
|
||||||
//计算距离门限,R=航迹点与量测点的距离,VT=航向速度乘以扫描时间差
|
//计算距离门限,R=航迹点与量测点的距离,VT=航向速度乘以扫描时间差
|
||||||
double& t_x0 = (*trust_track)[loop_of_track].X[0];
|
double& t_x0 = (*trust_track)[loop_of_track].X[0];
|
||||||
@@ -549,9 +559,9 @@ void Track_Asso:: model_filter(QVector <Trust_Track> *trust_track,struct RadarP
|
|||||||
|
|
||||||
//小于关联门限 保存关联信息
|
//小于关联门限 保存关联信息
|
||||||
if(
|
if(
|
||||||
( r_track<=500 && (d1*d1<ASSO_THORD*ASSO_THORD || d2*d2<ASSO_THORD*ASSO_THORD || d3*d3<ASSO_THORD*ASSO_THORD/1000) && d_h == 1 && d_r)//
|
( r_track<=500 && (d1*d1<ASSO_THORD*ASSO_THORD || d2*d2<ASSO_THORD*ASSO_THORD || d3*d3<ASSO_THORD*ASSO_THORD/1000) && d_p && d_r)//
|
||||||
||( (r_track>500&&r_track<1000) && (d1*d1<ASSO_THORD*ASSO_THORD || d2*d2<ASSO_THORD*ASSO_THORD || d3*d3<ASSO_THORD*ASSO_THORD/100) && d_h == 1 && d_r)//
|
||( (r_track>500&&r_track<1000) && (d1*d1<ASSO_THORD*ASSO_THORD || d2*d2<ASSO_THORD*ASSO_THORD || d3*d3<ASSO_THORD*ASSO_THORD/100) && d_p && d_r)//
|
||||||
||( r_track>=1000 && (d1*d1<ASSO_THORD*ASSO_THORD || d2*d2<ASSO_THORD*ASSO_THORD || d3*d3<ASSO_THORD*ASSO_THORD) && d_h == 1 && d_r)//
|
||( r_track>=1000 && (d1*d1<ASSO_THORD*ASSO_THORD || d2*d2<ASSO_THORD*ASSO_THORD || d3*d3<ASSO_THORD*ASSO_THORD) && d_p && d_r)//
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
qDebug() << "asooooooooooo";
|
qDebug() << "asooooooooooo";
|
||||||
|
|||||||
Reference in New Issue
Block a user