2、将RadarPara中DATA_RATE_TAS的单位由Hz改为s; 3、修复TAS_Ctrl::tas_beam_output函数中给Tracking_beam->TAS_track_index赋值错误的问题; Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
71 lines
6.3 KiB
Markdown
71 lines
6.3 KiB
Markdown
# Changelog
|
||
|
||
本项目的所有重要变更记录于此文件。
|
||
|
||
格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),
|
||
版本号遵循 [语义化版本(SemVer)](https://semver.org/lang/zh-CN/)。
|
||
|
||
## [Unreleased]
|
||
|
||
### Added
|
||
|
||
- 新增 CHANGELOG.md,采用 Keep a Changelog 格式记录项目变更历史。
|
||
- `RadarPara` 结构体新增 `DATA_RATE_TAS`(TAS 模式数据率)字段,由 DLL 调用者通过 `track_process_parameters_initial()` 输入(b3e2f52)。
|
||
- `Tracking_Target` 新增 `last_track_time` 字段,记录各 TAS 目标最近一次波束输出时间(f438ac5)。
|
||
- 新增 requirements.md,说明 TAS 波束控制逻辑的修改背景与约定(b3e2f52)。
|
||
- 更新 README.md:目录结构补充 CHANGELOG.md / requirements.md;版本历史表补充 93d3924、b3e2f52、e729c5b、f438ac5 提交记录。
|
||
- 新增日志文件输出功能:`parameters.h` 增加 `RDP_LOG_ENABLE` 开关(默认开启)与 `RDP_LOG_DIR` 目录宏(`.\\rdp_logs\\`);新增 `rdp_log.h/.cpp` 日志模块,首次 `Data_Process_Factory::GetB()` 时按 `RDP_LOG_ENABLE` 决定是否用 `rdbuf()` 将 `std::cout` 重定向到 `.\rdp_logs\` 下按日期+时间命名的日志文件(`rdp_YYYYMMDD_HHMMSS.log`,目录不存在自动创建),`Destroy()` 销毁实例时恢复 `std::cout` 并关闭文件;开关注释关闭时不重定向、日志仍输出到标准输出;日志文件在 `CMakeLists.txt` 的 SOURCES 中注册。
|
||
- 新增 `RDP_LOG` 日志输出宏(`rdp_log.h`):自动在每条日志前附加 `[时间戳][代码文件:行号]` 信息后再输出到标准输出(重定向开启时随之写入日志文件),供后续新增日志统一使用。
|
||
|
||
### Changed
|
||
|
||
- TAS 波束控制改为按固定数据率调度:`Beam_Ctrl()` 仅当目标满足 `1 / DATA_RATE_TAS` 秒的数据率间隔(相对航迹时间 `T_track` 与上次波束输出 `last_track_time`)时才输出 TAS 跟踪波束,使 TAS 目标数据率不再随波束时间(Beam_Ctrl 调用频率)变化。
|
||
- TAS 波束输出目标改为队列内调度:不再固定取队首,而是遍历 TAS 队列,选择满足数据率门控且 CPI 时间最早的目标输出;原每次 Beam_Ctrl 末尾的整队循环移位(队列轮转)已停用(代码注释保留)。
|
||
- 数据率门控统一使用运行时参数 `Work_Parameter.DATA_RATE_TAS`(由 DLL 调用者经 `track_process_parameters_initial()` 输入,需为 >0 的有效值);`parameters.h` 中 `DATA_RATE_TAS` 编译期宏(相扫 0.3 / 机扫 0.0625)已注释停用,引导跟踪外推同步改用运行时参数。
|
||
- 编译时以 `#pragma message` 提示当前启用的扫描体制宏(MECHANICAL_SCANNING / PHASE_SCANNING)。
|
||
- 频点宏由 `FREQ0~FREQ20`(16.8 GHz)精简为单个 `FREQ0`,取值改为 9.2 GHz(e729c5b)。
|
||
- MSVC 编译选项按编译器版本条件追加 `/utf-8`(VS2015 及以上);MSVC 2013 不支持该选项,改用源码文件带 BOM 的 UTF-8 编码解决 C4819。
|
||
- 原有零散日志输出统一改用 `RDP_LOG` 宏并自动附加时间戳/文件/行号信息:手动删除航迹(`data_process.cpp`)、TAS 目标消亡(`track_die_tas.cpp`)由 `std::cout` 改为 `RDP_LOG`;TAS 波束最早 CPI 目标调度输出(`tas_ctrl.cpp`)由 `printf` 改为 `RDP_LOG`(文本格式保持不变,`%.3f` → 固定 3 位小数)。重定向开启时上述日志随 `std::cout` 一并写入日志文件。
|
||
|
||
### Fixed
|
||
|
||
- 修复 MSVC `/W3` 下全部 C4819 / C4018 / C4244 编译警告:源码文件改为带 BOM 的 UTF-8 编码;signed/unsigned 不匹配处改用 `size_t` 循环变量或显式 `static_cast<int>` 比较;double/float、__int64/double 等窄化转换改为 `static_cast` 显式转换,保持原有计算逻辑不变(涉及 `data_process.cpp`、`dot_coh.cpp`、`dot_coh_tas.cpp`、`tas_ctrl.cpp`、`track_asso.cpp`、`track_asso_tas.cpp`、`track_init.cpp`、`track_init_direct_tracking.cpp`、`track_index_mangement.cpp` 等)。
|
||
|
||
## [1.5.5] - 2026-08-27
|
||
|
||
初始版本记录:汇总仓库现有功能与自 2022 年以来的主要变更(依据 git 提交历史与 README.md 整理)。
|
||
|
||
### Added
|
||
|
||
- TWS/TAS 双通道雷达数据处理:输入点迹预处理、两帧滑窗点迹凝聚、逻辑法航迹起始(3~9 点起批,含屏蔽区)、IMM + EKF 航迹滤波、最近邻点航关联、航迹外推/消亡/航迹号管理、TAS 波束控制输出。
|
||
- 支持相扫(X256_PS)与机扫(X256_MS)两种扫描体制,通过 `RADAR_SCAN_MODE` / 编译宏配置切换。
|
||
- 适配四面阵机扫跟踪模式;机扫跟踪时增加高度门限判断。
|
||
- 输入点迹、输出航迹的 CPI 时间与 GNSS 时间改为 64 位整型(毫秒)。
|
||
- 增加航迹清空功能,解决重连时大量航迹乱窜的问题。
|
||
- TWS 输出增加高度平滑处理。
|
||
- TWS 点航关联增加俯仰门限与点航距离门限,限制大幅度跳变或突跳到远距离的点迹关联。
|
||
- 航迹起始增加屏蔽区域。
|
||
- 新增 README.md、BUG_REPORT.md、BUG_FIX_REPORT.md 等文档。
|
||
|
||
### Changed
|
||
|
||
- 工程由 Qt/qmake 迁移为 VS Code + CMake 构建,编译器保持 MSVC 2013 x86 不变。
|
||
- 机扫与相扫程序合并,通过宏定义配置切换。
|
||
- TAS 航迹外推时间间隔改为按波束时间计算。
|
||
- 扫描一圈完成的判断逻辑改为用“波位号变小”判断。
|
||
- 点迹凝聚角度约束放宽至 4 度;凝聚条件按近程/中程模式区分。
|
||
- 去掉自动转 TAS 功能,仅支持手动转 TAS。
|
||
- 去掉 1 km 以内航迹起批的 20 dB 信噪比门限。
|
||
- 统一代码缩进格式。
|
||
|
||
### Fixed
|
||
|
||
- 修复若干逻辑 BUG(数组越界/下溢、局部变量未初始化、时间差无效、方位角 ±π 环绕、IMM 概率奇异、输出数组容量越界等),明细见 `BUG_FIX_REPORT.md`。
|
||
- 修复 TAS 外推时间差可能为无效值的问题。
|
||
- 修复航迹起始时未输出跟踪类型、可靠航迹手动转跟踪标志未清零的问题。
|
||
- 修复量测噪声协方差矩阵 R 赋值错误、数据预处理波位号判断规则、点迹数量上限、雅可比矩阵取值、起批负索引等问题。
|
||
|
||
### Removed
|
||
|
||
- 移除 `requirements.md`(93d3924 移除,后于 b3e2f52 重新加入并改为 TAS 波束控制说明)、`CLAUDE.md`、Makefile 系列、Qt 工程用户文件、内置 Eigen 3.3.7 冗余文件及「航迹点迹区分区说明」等不必要文件。
|