更新:1、增加自动TAS跟踪的功能,仅Ku2304适用;

2、更新参数配置文件;

Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
2026-11-04 14:51:20 +08:00
parent a32085bbe8
commit 06e62e5aa9
11 changed files with 78 additions and 7 deletions
+12 -6
View File
@@ -19,7 +19,7 @@ radar_height = 0
# 系统延迟(s) # 系统延迟(s)
radar_system_delay = 0 radar_system_delay = 0
# TWS模式数据率(s) # TWS模式数据率(s)
data_rate_tws = 0.0342 data_rate_tws = 0.0372
# TAS模式数据率(s;0 表示不做 DLL 内部 TAS 波束限速,由宿主调用频率决定) # TAS模式数据率(s;0 表示不做 DLL 内部 TAS 波束限速,由宿主调用频率决定)
data_rate_tas = 0 data_rate_tas = 0
# 纯跟踪模式数据率(s) # 纯跟踪模式数据率(s)
@@ -41,13 +41,13 @@ point_cohesion_range_max = 100000
## 航迹关联参数 ## 航迹关联参数
[track_associate] [track_associate]
# 距离量测精度(m) # 距离量测精度(m)
sigma_range = 10.0 sigma_range = 100.0
# 方位量测精度(弧度) # 方位量测精度(弧度)
sigma_azimuth = 0.02 sigma_azimuth = 0.02
# 俯仰量测精度(弧度) # 俯仰量测精度(弧度)
sigma_pitch = 0.2 sigma_pitch = 0.2
# 速度量测精度(m/s) # 速度量测精度(m/s)
sigma_velocity = 2.0 sigma_velocity = 50.0
# 关联门限 # 关联门限
associate_threshold = 4.0 associate_threshold = 4.0
# 最大外推点数 # 最大外推点数
@@ -83,11 +83,11 @@ track_init_velocity_max = 1000
## 航迹消亡参数 ## 航迹消亡参数
[track_die] [track_die]
# 航迹消亡圈数 # 航迹消亡圈数
track_die_round = 6 track_die_round = 25
# 重点航迹消亡圈数 # 重点航迹消亡圈数
track_die_round_pramary = 10 track_die_round_pramary = 50
# TAS航迹消亡圈数 # TAS航迹消亡圈数
track_die_round_tas = 20 track_die_round_tas = 50
# 航迹消批质量条件 # 航迹消批质量条件
track_die_quality = 0.3 track_die_quality = 0.3
# 重点航迹消批质量条件 # 重点航迹消批质量条件
@@ -125,6 +125,12 @@ default_track_beam_type = 1
tas_track_num_max = 1 tas_track_num_max = 1
# TAS波束最小俯仰角度 # TAS波束最小俯仰角度
tas_beam_pitch_min = -90.0 tas_beam_pitch_min = -90.0
# 自动跟踪使能,0 = 关闭,1 = 开启
auto_tas_enable = 1
# 自动TAS跟踪最小速度
auto_tas_velocity_min = 700
# 自动TAS跟踪最大速度
auto_tas_velocity_max = 900
## singer模型机动参数(均必须 > 0) ## singer模型机动参数(均必须 > 0)
[singer_model] [singer_model]
+6
View File
@@ -125,6 +125,12 @@ default_track_beam_type = 1
tas_track_num_max = 1 tas_track_num_max = 1
# TAS波束最小俯仰角度 # TAS波束最小俯仰角度
tas_beam_pitch_min = 3.0 tas_beam_pitch_min = 3.0
# 自动跟踪使能,0 = 关闭,1 = 开启
auto_tas_enable = 0
# 自动TAS跟踪最小速度
auto_tas_velocity_min = 0.0
# 自动TAS跟踪最大速度
auto_tas_velocity_max = 0.0
## singer模型机动参数(均必须 > 0) ## singer模型机动参数(均必须 > 0)
[singer_model] [singer_model]
+6
View File
@@ -125,6 +125,12 @@ default_track_beam_type = 1
tas_track_num_max = 1 tas_track_num_max = 1
# TAS波束最小俯仰角度 # TAS波束最小俯仰角度
tas_beam_pitch_min = 3.0 tas_beam_pitch_min = 3.0
# 自动跟踪使能,0 = 关闭,1 = 开启
auto_tas_enable = 0
# 自动TAS跟踪最小速度
auto_tas_velocity_min = 0.0
# 自动TAS跟踪最大速度
auto_tas_velocity_max = 0.0
## singer模型机动参数(均必须 > 0) ## singer模型机动参数(均必须 > 0)
[singer_model] [singer_model]
+6
View File
@@ -125,6 +125,12 @@ default_track_beam_type = 1
tas_track_num_max = 4 tas_track_num_max = 4
# TAS波束最小俯仰角度 # TAS波束最小俯仰角度
tas_beam_pitch_min = 3.0 tas_beam_pitch_min = 3.0
# 自动跟踪使能,0 = 关闭,1 = 开启
auto_tas_enable = 0
# 自动TAS跟踪最小速度
auto_tas_velocity_min = 0.0
# 自动TAS跟踪最大速度
auto_tas_velocity_max = 0.0
## singer模型机动参数(均必须 > 0) ## singer模型机动参数(均必须 > 0)
[singer_model] [singer_model]
+6
View File
@@ -125,6 +125,12 @@ default_track_beam_type = 1
tas_track_num_max = 1 tas_track_num_max = 1
# TAS波束最小俯仰角度 # TAS波束最小俯仰角度
tas_beam_pitch_min = 5.4 tas_beam_pitch_min = 5.4
# 自动跟踪使能,0 = 关闭,1 = 开启
auto_tas_enable = 0
# 自动TAS跟踪最小速度
auto_tas_velocity_min = 0.0
# 自动TAS跟踪最大速度
auto_tas_velocity_max = 0.0
## singer模型机动参数(均必须 > 0) ## singer模型机动参数(均必须 > 0)
[singer_model] [singer_model]
+6
View File
@@ -125,6 +125,12 @@ default_track_beam_type = 1
tas_track_num_max = 4 tas_track_num_max = 4
# TAS波束最小俯仰角度 # TAS波束最小俯仰角度
tas_beam_pitch_min = 5.4 tas_beam_pitch_min = 5.4
# 自动跟踪使能,0 = 关闭,1 = 开启
auto_tas_enable = 0
# 自动TAS跟踪最小速度
auto_tas_velocity_min = 0.0
# 自动TAS跟踪最大速度
auto_tas_velocity_max = 0.0
## singer模型机动参数(均必须 > 0) ## singer模型机动参数(均必须 > 0)
[singer_model] [singer_model]
+6
View File
@@ -125,6 +125,12 @@ default_track_beam_type = 1
tas_track_num_max = 4 tas_track_num_max = 4
# TAS波束最小俯仰角度 # TAS波束最小俯仰角度
tas_beam_pitch_min = 5.4 tas_beam_pitch_min = 5.4
# 自动跟踪使能,0 = 关闭,1 = 开启
auto_tas_enable = 0
# 自动TAS跟踪最小速度
auto_tas_velocity_min = 0.0
# 自动TAS跟踪最大速度
auto_tas_velocity_max = 0.0
## singer模型机动参数(均必须 > 0) ## singer模型机动参数(均必须 > 0)
[singer_model] [singer_model]
+6
View File
@@ -127,6 +127,12 @@ default_track_beam_type = 1
tas_track_num_max = 4 tas_track_num_max = 4
# TAS波束最小俯仰角度 # TAS波束最小俯仰角度
tas_beam_pitch_min = 3.0 tas_beam_pitch_min = 3.0
# 自动跟踪使能,0 = 关闭,1 = 开启
auto_tas_enable = 0
# 自动TAS跟踪最小速度
auto_tas_velocity_min = 0.0
# 自动TAS跟踪最大速度
auto_tas_velocity_max = 0.0
## singer模型机动参数(均必须 > 0) ## singer模型机动参数(均必须 > 0)
[singer_model] [singer_model]
@@ -131,6 +131,8 @@ const FloatField kFloatFields[] = {
{"track_quality", "track_quality_decrease_coeff_o1", &RDP_parameter::track_quality_decrease_coeff_o1}, {"track_quality", "track_quality_decrease_coeff_o1", &RDP_parameter::track_quality_decrease_coeff_o1},
// [beam_control] 波束调度参数 // [beam_control] 波束调度参数
{"beam_control", "tas_beam_pitch_min", &RDP_parameter::tas_beam_pitch_min}, {"beam_control", "tas_beam_pitch_min", &RDP_parameter::tas_beam_pitch_min},
{"beam_control", "auto_tas_velocity_min", &RDP_parameter::auto_tas_velocity_min},
{"beam_control", "auto_tas_velocity_max", &RDP_parameter::auto_tas_velocity_max},
// [singer_model] singer 模型机动参数 // [singer_model] singer 模型机动参数
{"singer_model", "model_1_Q_fast", &RDP_parameter::model_1_Q_fast}, {"singer_model", "model_1_Q_fast", &RDP_parameter::model_1_Q_fast},
{"singer_model", "model_1_Q_slow", &RDP_parameter::model_1_Q_slow}, {"singer_model", "model_1_Q_slow", &RDP_parameter::model_1_Q_slow},
@@ -159,6 +161,7 @@ const IntField kIntFields[] = {
// [beam_control] 波束调度参数 // [beam_control] 波束调度参数
{"beam_control", "default_track_beam_type", &RDP_parameter::default_track_beam_type}, {"beam_control", "default_track_beam_type", &RDP_parameter::default_track_beam_type},
{"beam_control", "tas_track_num_max", &RDP_parameter::tas_track_num_max}, {"beam_control", "tas_track_num_max", &RDP_parameter::tas_track_num_max},
{"beam_control", "auto_tas_enable", &RDP_parameter::auto_tas_enable},
// 屏蔽区数目(对应数组长度由它决定) // 屏蔽区数目(对应数组长度由它决定)
{"track_init_prohibite_area", "track_init_prohibite_area_num", &RDP_parameter::track_init_prohibite_area_num}, {"track_init_prohibite_area", "track_init_prohibite_area_num", &RDP_parameter::track_init_prohibite_area_num},
{"tas_prohibite_area", "tas_prohibite_area_num", &RDP_parameter::tas_prohibite_area_num}, {"tas_prohibite_area", "tas_prohibite_area_num", &RDP_parameter::tas_prohibite_area_num},
@@ -462,6 +465,10 @@ bool validate_parameter(const RDP_parameter& p, LoadContext& ctx)
if (p.tas_track_num_max < 0 || p.tas_track_num_max > RDP_TAS_QUEUE_CAPACITY) if (p.tas_track_num_max < 0 || p.tas_track_num_max > RDP_TAS_QUEUE_CAPACITY)
return ctx.fail("参数 tas_track_num_max 必须在 0~" + std::to_string(RDP_TAS_QUEUE_CAPACITY) + return ctx.fail("参数 tas_track_num_max 必须在 0~" + std::to_string(RDP_TAS_QUEUE_CAPACITY) +
" 之间(实际 " + std::to_string(p.tas_track_num_max) + ")"); " 之间(实际 " + std::to_string(p.tas_track_num_max) + ")");
// if (p.auto_tas_velocity_min < 0.0f)
// return ctx.fail("参数 auto_tas_velocity_min 不能为负");
if (!(p.auto_tas_velocity_max >= p.auto_tas_velocity_min))
return ctx.fail("参数 auto_tas_velocity_max 必须大于等于 auto_tas_velocity_min");
// singer 模型机动参数 // singer 模型机动参数
const float model_q[] = { const float model_q[] = {
+3
View File
@@ -258,6 +258,9 @@ struct RDP_parameter
int default_track_beam_type; //默认跟踪波束类型 int default_track_beam_type; //默认跟踪波束类型
int tas_track_num_max; //最大同时跟踪目标数 int tas_track_num_max; //最大同时跟踪目标数
float tas_beam_pitch_min; //TAS跟踪波束俯仰最小值 float tas_beam_pitch_min; //TAS跟踪波束俯仰最小值
int auto_tas_enable; //自动TAS跟踪使能
float auto_tas_velocity_min; //自动TAS跟踪最小速度
float auto_tas_velocity_max; //自动TAS跟踪最大速度
// ******************* singer模型机动参数 ************************// // ******************* singer模型机动参数 ************************//
float model_1_Q_fast; //模型1 float model_1_Q_fast; //模型1
+14 -1
View File
@@ -61,7 +61,7 @@ void TAS_Ctrl::tas_target_add(std::vector<Trust_Track> *trust_track,
azi=azi/PI*180; azi=azi/PI*180;
//进入跟踪的条件: 1.手动跟踪的目标 或 满足速度、距离、高度条件满足 关联点数大于2 2.不在禁止跟踪区域 //进入跟踪的条件: 1.手动跟踪的目标 或 满足速度、距离、高度条件满足 关联点数大于2 2.不在禁止跟踪区域
if( ( (*trust_track)[i].manual_tracking_flag == 1)//|| (tas_auto_start( v, r, h)==1 && (*trust_track)[i][k].associate_point_number>=2) if( ( ( (*trust_track)[i].manual_tracking_flag == 1) || (tas_auto_start( v, r, h)==1)) //&& (*trust_track)[i].associate_point_number>=2))
&& tas_target_num < rdp_parameter.tas_track_num_max && tas_target_num < rdp_parameter.tas_track_num_max
&& (*trust_track)[i].Track_Mode == 0 && (*trust_track)[i].Track_Mode == 0
&& tas_prohibite_area( r, azi, v, h) == 0) && tas_prohibite_area( r, azi, v, h) == 0)
@@ -404,3 +404,16 @@ void TAS_Ctrl::tas_beam_output(std::vector<Trust_Track> *trust_track
// RDP_LOG_INFO("TAS <{}> output: range: {} azi: {} pit: {}", Tracking_beam->TAS_track_index, Tracking_beam->Range, Tracking_beam->Azi, Tracking_beam->Elev); // RDP_LOG_INFO("TAS <{}> output: range: {} azi: {} pit: {}", Tracking_beam->TAS_track_index, Tracking_beam->Range, Tracking_beam->Azi, Tracking_beam->Elev);
} }
int TAS_Ctrl::tas_auto_start(double v, double r, double h)
{
if(rdp_parameter.auto_tas_enable == 0){
return 0;
}
if(v >= rdp_parameter.auto_tas_velocity_min && v <= rdp_parameter.auto_tas_velocity_max){
return 1;
}else{
return 0;
}
}