更新: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
@@ -131,6 +131,8 @@ const FloatField kFloatFields[] = {
{"track_quality", "track_quality_decrease_coeff_o1", &RDP_parameter::track_quality_decrease_coeff_o1},
// [beam_control] 波束调度参数
{"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", "model_1_Q_fast", &RDP_parameter::model_1_Q_fast},
{"singer_model", "model_1_Q_slow", &RDP_parameter::model_1_Q_slow},
@@ -159,6 +161,7 @@ const IntField kIntFields[] = {
// [beam_control] 波束调度参数
{"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", "auto_tas_enable", &RDP_parameter::auto_tas_enable},
// 屏蔽区数目(对应数组长度由它决定)
{"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},
@@ -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)
return ctx.fail("参数 tas_track_num_max 必须在 0~" + std::to_string(RDP_TAS_QUEUE_CAPACITY) +
" 之间(实际 " + 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 模型机动参数
const float model_q[] = {
+3
View File
@@ -258,6 +258,9 @@ struct RDP_parameter
int default_track_beam_type; //默认跟踪波束类型
int tas_track_num_max; //最大同时跟踪目标数
float tas_beam_pitch_min; //TAS跟踪波束俯仰最小值
int auto_tas_enable; //自动TAS跟踪使能
float auto_tas_velocity_min; //自动TAS跟踪最小速度
float auto_tas_velocity_max; //自动TAS跟踪最大速度
// ******************* singer模型机动参数 ************************//
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;
//进入跟踪的条件: 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
&& (*trust_track)[i].Track_Mode == 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);
}
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;
}
}