更新:1、修改TAS波束控制逻辑,现在按固定数据率调度TAS波束;

Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
2026-08-27 16:19:47 +08:00
parent 93d39248e5
commit b3e2f52262
6 changed files with 105 additions and 5 deletions
+22 -1
View File
@@ -6,6 +6,12 @@
using namespace std;
// parameters.h 中定义了 DATA_RATE_TAS 宏(相扫0.3/机扫0.0625),
// 而本模块的波束门控必须使用 RadarPara 结构体成员 Work_Parameter.DATA_RATE_TAS
// (由dll调用者经 track_process_parameters_initial 输入),故取消该宏定义,
// 否则 Work_Parameter.DATA_RATE_TAS 会被预处理器展开为非法常量表达式。
#undef DATA_RATE_TAS
TAS_Ctrl::TAS_Ctrl()
{
memset(tas_target_queue,0,TAS_QUEUE_LENGTH*sizeof(Tracking_Target));
@@ -31,7 +37,7 @@ void TAS_Ctrl::tas_ctrl_process(std::vector<Trust_Track> *trust_track
*Trust_track_num_Output = 0;
tas_target_add(trust_track, Trust_Track_Output, Trust_track_num_Output,Work_Parameter);
tas_target_del(trust_track, Trust_Track_Output, Trust_track_num_Output,Work_Parameter);
tas_beam_output(trust_track,Tracking_beam,latest_timestamp);
tas_beam_output(trust_track,Tracking_beam,Work_Parameter,latest_timestamp);
//跟踪队列移位
struct Tracking_Target tas_target_tmp;
@@ -246,6 +252,7 @@ void TAS_Ctrl::tas_target_del(std::vector<Trust_Track> *trust_track,
void TAS_Ctrl::tas_beam_output(std::vector<Trust_Track> *trust_track,
struct TrackingBeam *Tracking_beam,
struct RadarPara Work_Parameter,
long long latest_timestamp)
{
if(tas_target_queue[0].empty_flag==1)
@@ -273,6 +280,20 @@ void TAS_Ctrl::tas_beam_output(std::vector<Trust_Track> *trust_track
return;
}
//数据率门控:航迹时间与当前最新时间戳的差值大于 1/DATA_RATE_TAS 时才输出TAS跟踪波束,
//保证TAS目标数据率不随波束时间变化(使用Work_Parameter中的DATA_RATE_TAS参数值)。
//DATA_RATE_TAS<=0 时不做门控,按原逻辑每次输出(避免除零,兼容未配置该参数的调用者)。
if (Work_Parameter.DATA_RATE_TAS > 0)
{
double delta_T_track = (double)(latest_timestamp - CPI_time) / 1000.0;
if (delta_T_track <= 1.0 / Work_Parameter.DATA_RATE_TAS)
{
//更新间隔未到 不输出跟踪波束
Tracking_beam->open_flag = 0;
return;
}
}
float delta_T = (latest_timestamp - CPI_time) / 1000.0f;
//预测目标位置 计算跟踪波束波位号 俯仰角