refactor(FOC): 添加Doxygen文档注释并优化SVPWM算法性能
添加了完整的Doxygen文档注释到FOC算法模块的所有函数、类和变量,提升了代码可读性和维护性。同时优化了SVPWM算法实现,将atan2f替换为符号法扇区判断,显著提升计算效率(约15周期vs atan2f 300周期),并改进了arm_sin_cos_f32替代sqrtf提高性能。 feat(FOC): 统一电气角度计算避免重复运算 重构代码以统一电气角度计算,在各个控制循环中只计算一次电气角度并传递给需要的函数,避免了多次重复的fmodf运算和角度归一化操作,提升了实时控制性能。 refactor(Filter): 改进α-β观测器角度处理精度 修改角度卡尔曼滤波器在归一化角度空间[0,360)内工作,避免大累积角度的浮点精度损失问题,确保静止状态下不会产生虚假速度,同时保持与下游代码的兼容性。 refactor: 为算法模块添加完整文档注释 为所有算法模块(FOC、Filter、pid、thermal)添加了详细的Doxygen文档注释,包括函数说明、参数描述、返回值说明等,便于代码理解和API文档生成。
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
/**
|
||||
* @file sys/initial.cpp
|
||||
* @brief 系统服务与平台支持源文件
|
||||
* @note 本文件仅补充 Doxygen 文档注释,不改变代码逻辑。
|
||||
*/
|
||||
|
||||
#include "initial.h"
|
||||
#include "Can.h"
|
||||
#include "config.h"
|
||||
@@ -13,15 +19,19 @@
|
||||
|
||||
// OTA 调试宏定义
|
||||
#if OTA_DEBUG
|
||||
/** @brief OTA_DEBUG_PRINT 宏定义 */
|
||||
#define OTA_DEBUG_PRINT(fmt, ...) printf(fmt, ##__VA_ARGS__)
|
||||
#else
|
||||
/** @brief OTA_DEBUG_PRINT 宏定义 */
|
||||
#define OTA_DEBUG_PRINT(fmt, ...) ((void)0)
|
||||
#endif
|
||||
|
||||
// EEP 调试宏定义
|
||||
#if EEP_DEBUG
|
||||
/** @brief EEP_DEBUG_PRINT 宏定义 */
|
||||
#define EEP_DEBUG_PRINT(fmt, ...) printf(fmt, ##__VA_ARGS__)
|
||||
#else
|
||||
/** @brief EEP_DEBUG_PRINT 宏定义 */
|
||||
#define EEP_DEBUG_PRINT(fmt, ...) ((void)0)
|
||||
#endif
|
||||
|
||||
@@ -38,18 +48,38 @@ VersionManager::VersionManager() {
|
||||
BOOT_VERSION_BUILD);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 获取 getSoftwareVersion 对应的数据或状态
|
||||
* @return VersionManager::VersionInfo 返回值
|
||||
*/
|
||||
VersionManager::VersionInfo VersionManager::getSoftwareVersion() const {
|
||||
return softwareVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 获取 getHardwareVersion 对应的数据或状态
|
||||
* @return VersionManager::VersionInfo 返回值
|
||||
*/
|
||||
VersionManager::VersionInfo VersionManager::getHardwareVersion() const {
|
||||
return hardwareVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 获取 getBootVersion 对应的数据或状态
|
||||
* @return VersionManager::VersionInfo 返回值
|
||||
*/
|
||||
VersionManager::VersionInfo VersionManager::getBootVersion() const {
|
||||
return bootVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 设置 setSoftwareVersion 对应的参数或状态
|
||||
* @param[in] major 参数
|
||||
* @param[in] minor 参数
|
||||
* @param[in] patch 参数
|
||||
* @param[in] build 参数
|
||||
* @return void
|
||||
*/
|
||||
void VersionManager::setSoftwareVersion(u16 major, u16 minor, u16 patch,
|
||||
u16 build) {
|
||||
softwareVersion.major = major;
|
||||
@@ -58,6 +88,14 @@ void VersionManager::setSoftwareVersion(u16 major, u16 minor, u16 patch,
|
||||
softwareVersion.build = build;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 设置 setHardwareVersion 对应的参数或状态
|
||||
* @param[in] major 参数
|
||||
* @param[in] minor 参数
|
||||
* @param[in] patch 参数
|
||||
* @param[in] build 参数
|
||||
* @return void
|
||||
*/
|
||||
void VersionManager::setHardwareVersion(u16 major, u16 minor, u16 patch,
|
||||
u16 build) {
|
||||
hardwareVersion.major = major;
|
||||
@@ -66,6 +104,14 @@ void VersionManager::setHardwareVersion(u16 major, u16 minor, u16 patch,
|
||||
hardwareVersion.build = build;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 设置 setBootVersion 对应的参数或状态
|
||||
* @param[in] major 参数
|
||||
* @param[in] minor 参数
|
||||
* @param[in] patch 参数
|
||||
* @param[in] build 参数
|
||||
* @return void
|
||||
*/
|
||||
void VersionManager::setBootVersion(u16 major, u16 minor, u16 patch,
|
||||
u16 build) {
|
||||
bootVersion.major = major;
|
||||
@@ -86,6 +132,10 @@ char *VersionManager::versionToString(const VersionInfo &version, char *buffer,
|
||||
return buffer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief sendVersionInfoViaCan 函数
|
||||
* @return void
|
||||
*/
|
||||
void VersionManager::sendVersionInfoViaCan() const {
|
||||
// 准备发送版本信息 (ID: CANFD_VERSION_ID)
|
||||
// 只使用必要的字节数(24 字节)来传输三个版本的信息(每个版本 6 字节)
|
||||
@@ -128,6 +178,10 @@ void VersionManager::sendVersionInfoViaCan() const {
|
||||
CAN0_transmiter.build_can_id(CANFD_VERSION_ID), 24, versionData);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief printVersions 函数
|
||||
* @return void
|
||||
*/
|
||||
void VersionManager::printVersions() const {
|
||||
char versionStr[32];
|
||||
|
||||
@@ -143,6 +197,10 @@ void VersionManager::printVersions() const {
|
||||
}
|
||||
|
||||
/* retarget the C library printf function to the USART */
|
||||
/**
|
||||
* @brief 初始化 USART0 调试串口
|
||||
* @return u8 返回值
|
||||
*/
|
||||
u8 USART0_init() {
|
||||
gd_eval_com_init(EVAL_COM0);
|
||||
return 1;
|
||||
@@ -170,6 +228,10 @@ int fputc(int ch, FILE *f) throw() {
|
||||
return ch;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 初始化未使用引脚状态
|
||||
* @return void
|
||||
*/
|
||||
void unused_pin_init() {
|
||||
rcu_periph_clock_enable(RCU_GPIOA); // 使能 GPIOA 时钟
|
||||
rcu_periph_clock_enable(RCU_GPIOB); // 使能 GPIOB 时钟
|
||||
@@ -227,6 +289,10 @@ u16 get_reset_cause(void) {
|
||||
return cause;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 初始化 OTA 与 A/B 分区状态
|
||||
* @return void
|
||||
*/
|
||||
void OTA_initial(void) {
|
||||
#if OTA_DEBUG
|
||||
u32 temp_val[6];
|
||||
|
||||
Reference in New Issue
Block a user