cbb
|
7c4aaa5ee6
|
feat(FOC): 优化FOC控制算法并修复多个控制环路问题
- 重构cal_Iq_Id函数,移除电角度参数传递,改用预计算的sin/cos值
以避免重复三角函数计算,提升性能约15-300周期
- 修复角度同步Uq前馈学习中的运动方向判断逻辑,解决反转时的
震荡问题和正转正常反转震荡的根本原因
- 实现低速缩放因子函数get_mode3_velocity_scale,改进静摩擦
hunting抑制效果
- 优化电压检测逻辑,将阻塞式ADC读取改为连续模式零等待,
提升实时性能
- 修复初始化期间电压分母为零的问题,添加下限保护防止P增益
无穷大
- 实现PID控制器测量微分功能,消除目标阶跃时的微分冲击
- 改进积分抗饱和策略,添加外部饱和泄放功能,优化到位稳定
性能
perf(Filter): 优化中值滤波算法性能
- 针对ADC_FILTER_SIZE=6的固定场景实现最优排序网络,
用12次比较替代通用std::nth_element算法,显著提升性能
- 保留通用回退路径处理其他尺寸情况
|
2026-09-01 02:46:25 +08:00 |
|
cbb
|
76f7987238
|
feat(FOC): 实现电角度零位自动校准并修复ADC采样干扰问题
- 新增FlashEEPROM用于保存零位校准角,掉电不丢失
- 实现安全的零位校准算法:运行中禁止校准、对齐后重新采样、保存到Flash
- 重构ADC架构:分离ADC0(PWM同步电流采样)和ADC1(VBUS/DRV温度轮询)
- 解决ADC采样冲突:移除ADC0的regular连续扫描,避免与注入组抢占资源
- 修复VBUS电压读取错误:从DMA缓冲区改为直接ADC1单次转换
- 修正开环控制Uq幅值限幅逻辑,保留符号避免反转时抖动
- 更新CAN协议:电流数据改为有符号16位打包,支持负电流传输
- 调整版本号至v26.8.16.7
|
2026-08-16 02:13:37 +08:00 |
|
cbb
|
4c4e47e9e3
|
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文档生成。
|
2026-05-23 22:46:32 +08:00 |
|
cbb
|
f4fb23d640
|
feat(FOC): 添加快速电压检测功能和PWM调试模式
新增基于跌幅检测的快速电压保护机制,在100us周期内响应电压异常,
当电压跌幅超过阈值或低于绝对下限时立即关机保护。同时添加PWM输出
调试模式便于硬件测试。
BREAKING CHANGE: 重构了电压检测逻辑,采用峰值跟踪算法替代固
定阈值检测,提高在动态供电环境下的可靠性
|
2026-04-26 03:36:21 +08:00 |
|
cbb
|
bdf03517b3
|
feat(CAN): 添加静默模式支持并优化节点ID处理
- 添加静默模式功能,在接收到base_id=0x0000消息时停止发送10秒
- 修正节点ID加载逻辑,区分有效节点ID(0-65534)和Flash擦除状态(0xFFFF)
- 添加静默模式相关的状态检查和时间管理功能
- 在CAN通信检查中集成静默模式处理流程
fix(FOC): 修复速度控制中的方向参数应用
- 在velocity_control、angle_control_with_velocity_limit和MIT_Mode函数中
正确应用DIR参数调整速度误差的符号
- 添加详细注释说明DIR参数对速度误差计算的影响
refactor(systick): 添加毫秒级系统时间功能
- 实现get_systick_ms()函数提供毫秒级系统时间
- 添加SysTick中断处理程序更新系统时间计数器
chore(init): 调整初始化顺序优化系统启动流程
- 将EEPROM初始化移至CAN初始化之前,确保正确的依赖关系
|
2026-03-19 23:49:08 +08:00 |
|
cbb
|
9f56ab394e
|
feat(CAN): 实现多节点CAN总线通信与节点ID管理功能
- 添加CAN调试宏定义,支持条件编译调试信息输出
- 实现节点ID相关功能,包括构建CAN ID、消息过滤、获取/设置节点ID
- 支持Flash存储节点ID,提供加载和保存功能
- 实现节点ID设置和查询命令处理
- 更新CANFD发送函数使用节点ID构建发送ID
- 添加消息过滤逻辑,只处理目标节点的消息
- 重构DMA中断服务程序,优化数据传输处理
- 替换printf为调试宏,便于生产环境控制调试输出
|
2026-03-15 02:38:50 +08:00 |
|
cbb
|
173fadadd2
|
feat(FOC): 重构FOC控制器实现并修复SVPWM算法支持
- 修复类名拼写错误:FOC_Controlroller -> FOC_Controller
- 移除不必要的角度归一化函数,直接使用fmod优化性能
- 添加完整的SVPWM算法实现,提高电机控制效率
- 重构PID参数配置,使用动态参数调整机制
- 增加电流反馈功能,实时监测电机运行状态
- 优化电压安全限制,提高系统稳定性
- 更新控制模式映射,支持更多控制策略
- 改进CAN通信协议,增加电流反馈传输
|
2026-02-02 02:23:16 +08:00 |
|
cbb
|
c0b5f6902b
|
docs(config): 新增软件和硬件版本号定义
- 定义SOFTWARE_VERSION 26.1.19.1
- 定义HARDWARE_VERSION 25.12.01.0
- 定义BOOT_VERSION 26.1.12.0
feat(motor-control): 实现FOC控制算法速度环优化
refactor(can-protocol): 升级CANFD通信协议支持版本管理
- 实现版本号管理和CANFD_VERSION_ID协议
- 扩展CMD_ID消息解析支持PID参数动态配置
- 添加版本管理器实例并实现版本信息发送功能
- 优化CANFD异步发送数据长度判断逻辑
fix(angle-sensor): 修正角度传感器方向和偏移校准
- 添加ANGLESENS_OFFSET补偿参数
- 反转角度传感器读数方向(DIR = -1.0f)
- 在角度计算中应用负向因子和偏移量
chore(memory-layout): 调整Flash存储布局和版本配置
- 扩展BOOTLOADER_SIZE从16KB到24KB
- 更新APPLATEST_START_ADDR和APPBACK_START_ADDR偏移
- 重新分配OTA配置参数存储区域
- 增加EEP_DEBUG调试开关
refactor(pid-controller): 增强PID控制器功能接口
- 添加set_P_percent方法支持百分比参数设置
- 格式化PID计算代码提升可读性
- 保留积分和微分环节的约束保护机制
|
2026-01-20 01:28:52 +08:00 |
|
cbb
|
9f84c85a28
|
feat(can): CAN休眠唤醒移动到BOOT以进行以支持40k硬件看门狗
- 更新深度睡眠实现,在跳转到bootloader前记录睡眠状态到Flash
- 添加gd32c10x_fmc.h头文件以支持Flash内存控制功能
- 将prepare_deep_sleep重命名为app_prepare_deep_sleep以提高命名清晰度
- 在CAN通信检测中添加应用层休眠准备功能
- 在接收OTA启动ID时解锁FMC、设置APP为非激活状态并锁定FMC
- 移除main.cpp中的看门狗复位休眠逻辑
- 在config.h中添加睡眠配置相关的常量定义
- 改进OTA_SET函数的Flash写入逻辑,优化数据更新流程
- 在OTA初始化和应用移动过程中添加FMC解锁锁定操作
|
2026-01-12 01:03:43 +08:00 |
|
cbb
|
fccb93dd41
|
feat(can): 添加OTA功能实现AB分区
- 添加新的CANFD消息ID处理,支持OTA请求响应
- 实现OTA状态检查和ACK发送功能
- 优化CAN_transmiter类方法声明格式
refactor(flash): 重构OTA设置和应用数据移动功能
- 修改OTA_SET函数参数类型从bool到u32
- 优化move_app_data函数实现,添加CRC校验和错误处理
- 添加调试输出信息和看门狗喂狗机制
- 修复数据移动过程中的地址计算错误
refactor(config): 优化Flash分区配置和常量定义
- 重新组织Flash分区地址常量定义
- 添加OTA相关CANFD消息ID定义
- 移动CANFD相关常量到合适位置
docs(flash): 更新函数注释和文档说明
- 更新move_app_data函数的注释说明
- 添加代码注释以提高可读性
fix(initial): 修复OTA初始化和看门狗配置
- 将看门狗初始化移到main函数中合适位置
- 修正OTA初始化逻辑
- 添加CAN模块外部引用
|
2026-01-05 00:55:00 +08:00 |
|
cbb
|
d0198fdff7
|
更新OTA功能,config独立成文件统一定义
refactor(build): 更新项目配置和链接器设置
- 修改GD32C103CB的ROM基地址和大小配置
- 更新系统时钟向量表偏移量设置
- 在cproject.yml中添加BIN输出格式支持
- 增加-O3优化级别和代码移除选项
- 更新csolution版本依赖
feat(device): 优化ADC采样和配置管理
- 将DengFOC依赖替换为FOC模块
- 从config.h引入配置常量
- 重命名FILTER_SIZE为ADC_FILTER_SIZE以提高清晰度
- 优化温度和电流采样滤波实现
refactor(algorithm): 简化FOC控制函数接口
- 为angle_control、velocity_control等函数移除不必要的参数
- 统一函数指针类型定义
- 优化电流计算函数的代码格式
- 调整PID控制器初始化参数
|
2026-01-04 22:26:22 +08:00 |
|
cbb
|
abd64da360
|
feat(FOC): 添加带速度限制的角度闭环控制功能
新增angle_control_with_velocity_limit函数,实现带速度限制的角度控制,
包含角度PID和速度PID双环控制,防止电机转速过快导致的不稳定。
- 新增带速度限制的角度控制函数
- 配置新的PID控制器用于速度内环和角度外环
|
2025-12-23 11:55:09 +08:00 |
|
cbb
|
8732174855
|
refactor(flash): 重构EEPROM数据存储逻辑以提升可靠性
- 修改FlashEEPROM类的数据读写流程,优化地址掩码和数据对齐方式
- 引入新的宏定义和常量用于数据校验及地址解析
- 调整系统配置保存函数,支持更精确的CRC校验机制
- 移除旧的角度保存接口,统一通过系统配置保存函数处理
- 在CAN通信检查中替换save_angle调用为format操作
- 增加调试开关EEPDEBUG控制打印信息输出
- 更新健康管理和系统休眠时的EEPROM保存策略
|
2025-12-22 02:20:25 +08:00 |
|
cbb
|
7354a71c51
|
feat(can): 增加CAN睡眠与唤醒功能并优化通信检查逻辑
- 在CAN通信类中添加了CAN_Sleep()和CAN_Wakeup()方法,支持设备进入低功耗模式
- 优化CAN通信检查逻辑,通过解析接收数据的首字节和末字节实现多种控制命令
- 支持远程复位电机、保存角度、清零角度、进入睡眠等操作
- 解决CAN发送邮箱满时可能导致的通信阻塞问题,增加重初始化机制
- 调整mailbox不可用计数逻辑,防止持续打印错误信息
refactor(flash): 移除软件CRC计算模块,改用硬件CRC外设
- 删除自定义CRC.cpp和CRC.h文件及其相关类实现
- 使用GD32硬件CRC模块替代软件算法,提高效率和可靠性
- 更新FlashEEPROM类中的CRC校验方式,调用crc_block_data_calculate进行计算
- 修正Flash地址遍历范围以适配新CRC逻辑及页面管理策略
- 修改save_angle接口签名,不再手动传入角度值,改为内部读取FOC实时角度
feat(timer): 新增RTC闹钟中断处理函数声明
- 在Timer.h中声明rtc_set_wakeup_interval和RTC_ALARM_IRQHandler
- 为后续实现基于RTC的定时唤醒功能做准备
chore(config): 同步csolution工具版本更新并调整组件配置
- 更新RTE_Components.h生成工具版本至2.12.0
- 启用BKP、CRC、RTC等标准外设组件宏定义
- 从项目配置文件中移除旧CRC源文件引用
- 添加SystemCoreClockUpdate调用确保系统时钟同步
refactor(main): 主循环任务调度重构并增强初始化流程
- 将主循环中的任务处理提取为独立do_task函数,提升代码可读性
- 提前执行电机初始化,并根据看门狗复位标志决定是否立即进入深度睡眠
- 调整EEPROM初始化顺序,保证依赖关系正确
- 添加sys/initial.h头文件包含以支持新增系统初始化逻辑
|
2025-12-20 19:53:52 +08:00 |
|
cbb
|
7c2860f302
|
feat(can): 增加EEPROM状态码和系统配置保存功能
- 在CAN通信中增加EEPROM状态码字段,并通过CAN FD发送
- 实现Flash EEPROM对系统配置参数的CRC校验与保存
- 改进目标角度、速度等关键参数的读写逻辑,支持掉电保存
- 调整EEPROM地址映射,优化错误处理和状态反馈机制
- 修复CRC计算相关问题,增强数据可靠性
|
2025-12-18 18:23:34 +08:00 |
|
cbb
|
d6cf143e87
|
fix(flash): 修改角度存储类型为float并更新读写逻辑
将FlashEEPROM中角度数据的存储类型从u16改为float,并相应地更新了读写函数。
新增readFloat和writeFloat函数以支持浮点数存储,同时调整了虚拟地址类型为u8。
修改了save_angle和read_angle函数实现,确保角度值能正确保存与读取。
优化了格式化函数中的数据解析方式,提高数据存储可靠性。
|
2025-12-17 02:34:08 +08:00 |
|
cbb
|
02572df688
|
fix(flash): 优化Flash EEPROM读写逻辑并修复角度保存问题
移除调试打印语句,改进Flash读写稳定性。
使用类型别名统一数据访问,增强代码可读性。
修正CAN通信中角度保存逻辑,确保正确写入实时角度值。
完善错误处理机制,增加对齐检查和状态反馈。
调整EEPROM起始地址以避免潜在冲突。
|
2025-12-17 01:38:48 +08:00 |
|
cbb
|
7371f97882
|
feat(PID): 调整速度与角度环PID参数
更新了FOC控制器中的速度环和角度环PID参数以改善控制响应,并微调电流环参数提升稳定性。
feat(Filter): 改进卡尔曼滤波器初始化逻辑及速度计算方式
引入系统运行时间计数器,修正编码器角度和速度卡尔曼滤波器的初始化流程,并基于实际时间间隔优化角速度估算精度。
refactor(Filter): 移动成员变量声明顺序
调整`EncoderAngleKalman`类中`last_angle`成员变量的访问权限和声明位置,增强封装性和可读性。
feat(Flash): 新增Flash EEPROM功能支持
添加FlashEEPROM类及相关头文件,支持电机角度等关键数据掉电保存,并在CAN通信复位时进行角度存储操作。
refactor(Timer): 优化定时器配置和中断优先级设置
删除冗余的TIMER3定义,修改TIMER1中断服务函数可见性,并调整NVIC子优先级分配,确保中断响应合理有序。
feat(AngleSensor): 完善角度传感器初始化与角度设定接口
重构角度传感器初始化方法并新增角度设置函数,支持从Flash读取初始角度值并与减速比结合应用。
feat(Health): 实现母线电压监测与保护策略
新增电源管理函数,在母线电压异常下降时自动关闭电机输出,防止因供电不足导致设备损坏。
|
2025-12-16 22:39:39 +08:00 |
|