cbb
|
e646544f7f
|
refactor(FOC): 重构齿槽转矩校准状态机为独立函数
- 将原本在 calibrate_cogging_tick 中的大函数拆分为多个职责单一的函数
- 新增 start_cogging_calibration、cogging_settling_tick、cogging_sampling_tick、
cogging_stopping_tick、cogging_done_tick 等状态处理函数
- 添加 process_cogging_run_data、start_next_cogging_run、build_cogging_tables、
print_cogging_table、print_cogging_c_array 等辅助函数
- 移动全局 FOC 控制器单例注释到更合适位置
- 添加齿槽转矩校准参数常量定义和详细注释
- 添加防御性编程处理默认状态分支,避免状态机卡死
- 提高代码可读性和维护性
feat(tasks): 添加任务头文件到项目配置
- 在 Robot_V2.cproject.yml 中添加 tasks.h 和 tasks.cpp 文件引用
docs(ADC): 添加ADC转换常量说明注释
- 在 ADC.cpp 中添加关于ADC换算常量的详细注释
- 说明全局采样器单例的初始化和使用方式
|
2026-05-24 01:21:41 +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
|
c6e00e1a49
|
feat(ADC): 重构ADC采样系统以支持同步电流采集
- 将ADC缓冲区从6通道减少到3通道,专门用于MCU温度、DRV温度和VBUS监测
- 实现了注入组ADC同步采样,通过TIMER1 TRGO触发三相电流同时采样
- 添加了PWM中心对齐模式以提供更好的采样窗口
- 在FOC控制器中增加了ADC错误检查和三相公共模偏置消除
- 优化了电流采样更新机制,使用中断驱动的数据搬运
- 调整了ADC通道配置,规则组用于后台温度/VBUS采样,注入组用于PWM同步电流采样
|
2026-05-16 13:09:57 +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
|
2b93a4537c
|
refactor(FOC): 移除代码冲突标记并优化FOC控制器实现
- 移除了所有git冲突标记(<<<<<<< HEAD, =======, >>>>>>>)
- 清理了校准步骤相关注释代码
- 修复了Iq,Id计算中的角度处理逻辑
- 优化了PID控制器参数设置和初始化流程
- 重构了SVPWM相电压设置方法,移除了重复的相电压设置函数
- 修复了关闭功能和电源电压安全限制的计算
feat(CAN): 增强CAN通信协议支持多种控制模式
- 实现了目标电流、速度、角度的多参数控制
- 添加了PID参数动态配置功能
- 支持7种不同控制模式的切换
- 实现了控制模式切换时PID状态重置机制
refactor(pid): 扩展PID控制器功能接口
- 添加了set_P方法替代原有的set_P_percent
- 新增set_limit方法用于输出限幅控制
- 实现了reset方法用于PID状态重置
- 优化了PID参数设置接口
fix(timer): 优化定时器任务调度机制
- 重构了任务调度的时间片管理逻辑
- 实现了基于查找表的任务分配方式
- 优化了100us、1ms、10ms、100ms等不同周期的任务调度
- 提高了系统实时性表现
perf(config): 优化系统配置和数学常量定义
- 添加了必要的GD32头文件包含
- 重新组织了PID参数命名规范
- 定义了常用数学常量如三角函数相关数值
- 优化了定时器频率和周期计算公式
|
2026-03-09 01:48:12 +08:00 |
|
cbb
|
1ee2f68a89
|
Merge branch 'master' of http://172.30.0.1:8418/cbb/Robot_v2
|
2026-03-09 01:47:30 +08:00 |
|
cbb
|
a26dd1cc8e
|
feat(can): 增强CAN通信缓冲区管理机制
- 实现循环缓冲区队列管理CAN消息接收
- 添加缓冲区满/空状态检查函数
- 实现消息出队列dequeue_rx_message功能
- 在中断处理程序中添加消息入队列机制
- 优化CAN消息处理流程,支持批量处理
refactor(motor): 优化电机控制类结构和安全机制
- 重命名PID控制器参数变量名以提高可读性
- 添加过热关机标志位thermal_shutdown和相关处理函数
- 实现过热关机shut_down_thermal和过热恢复resume_from_thermal功能
- 调整关机逻辑,添加drv_stop调用确保电机完全停止
- 修正电流环控制中的占空比设置,改为单相保持
feat(motor): 实现FOC控制算法改进和零点校准功能
- 实现电机零点校准函数calibrate_zero_position用于位置补偿
- 修正FOC控制器中的电气角度计算,集成KTH7823校准角度补偿
- 新增d轴电流计算功能
- 重构PID参数初始化方式,使用统一的电压限制配置
- 更新SVPWM相电压设置算法,改进角度归一化处理
- 修改缺省扇区输出占空比从0.0f改为0.5f以提高稳定性
fix(control): 修复控制回路方向和频率计算问题
- 修正角度控制回路中的误差计算方向
- 修正开环速度控制中的频率参数使用
- 修正速度环控制中的误差计算方向
- 修正MIT模式下多级PID控制器的参数设置和误差计算
refactor(filter): 修正编码器速度计算算法
- 移除速度计算中的冗余乘法因子2
feat(pid): 扩展PID控制器功能
- 添加reset方法用于重置PID内部状态
chore(build): 更新开发工具版本和ADC配置
- 更新csolution版本至2.13.0
- 调整ADC采样时间配置以优化性能
|
2026-03-09 01:35:26 +08:00 |
|
cbb
|
9689841148
|
feat(FOC): 添加电流卡尔曼滤波器并优化MIT控制模式
- 优化MIT控制模式的角度和速度计算
- 调整多个PID控制器的参数配置
- 增强卡尔曼滤波器的数值稳定性
|
2026-02-08 18:53:55 +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
|
c9934849c5
|
feat(FOC): 重构FOC控制器实现并修复SVPWM算法支持
- 修复类名拼写错误:FOC_Controlroller -> FOC_Controller
- 移除不必要的角度归一化函数,直接使用fmod优化性能
- 添加完整的SVPWM算法实现,提高电机控制效率
- 重构PID参数配置,使用动态参数调整机制
- 增加电流反馈功能,实时监测电机运行状态
- 优化电压安全限制,提高系统稳定性
- 更新控制模式映射,支持更多控制策略
- 改进CAN通信协议,增加电流反馈传输
|
2026-02-02 02:12:14 +08:00 |
|
cbb
|
1596b2beb0
|
DRV8313兼容版
refactor(algorithm): 移除冗余头文件
移除不必要的stdint.h头文件引用,统一使用<cstdint>
refactor(sys): 清理系统级头文件依赖
移除未使用的头文件引用,统一整型类型定义,优化初始
化过程中的GPIO配置
|
2026-01-24 01:50:39 +08:00 |
|
cbb
|
72506ce87d
|
feat(FOC): 集成ARM数学库优化FOC算法实现
- 引入arm_math.h库以使用ARM优化的数学函数
- 将角度归一化从弧度制改为角度制,使用360.0f替代2*PI
- 使用arm_sin_cos_f32替代查找表实现正弦余弦计算
- 移除注释中的ARM Clark和Park变换函数调用
- 修正机械角度计算中的时间常量为TIMER2_FREQUENCY倒数
- 移除传感器角度到弧度的转换,保持原始角度值
- 激活电流环控制中的Iq/Id计算并发送CAN数据
|
2026-01-07 23:13:21 +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
|
839a32ff04
|
refactor(main): 统一外设初始化流程
集中所有外设初始化于main函数起始处,通过返回值确认各模块是否成功启动;
refactor(adc): 修改采样器初始化返回值
将sampler构造函数替换为带返回值的init方法,在main函数中加入初始化结果判断,
确保系统启动时硬件配置正确加载。
feat(motor): 引入motor模块并重构电机控制逻辑
将GPIO操作封装进motor_sleep和motor_resume函数,提升代码可读性和维护性。
引入motor.h头文件,并在main.cpp中进行电机初始化统一管理。
修改FOC控制器中的shutdown与resume方法调用新接口。
refactor(filter): 优化卡尔曼滤波器实现
重命名状态变量xp为x,简化访问逻辑;移除冗余注释及未使用的getlastAngle方法;
调整getVelocity计算系数,提高速度估算精度;增加init方法支持初始状态设置。
refactor(angle_sensor): 移除冗余速度计算功能
删除传感器内部的速度估算相关数组和方法,交由外部滤波器处理以降低耦合度。
更新SPI片选宏定义以区分不同设备,并增强错误处理机制。
refactor(can): 调整CAN通信ID及初始化流程
更改状态与配置帧的标识符ID,添加对特定命令ID的响应处理如电机复位指令。
将CAN_transmiter构造函数改为init方法,配合主程序完成模块化初始化检查。
|
2025-12-08 02:48:59 +08:00 |
|
cbb
|
93cbf18f1f
|
feat(FOC): 实现电流环控制并优化相关逻辑
新增了电流环控制功能,包括通过三相电流计算 Iq 的 `cal_Iq_Id` 方法,并在 `current_control` 中实现了基于 PID 的电流控制逻辑。同时对电压设置、占空比计算等部分进行了调整与优化。
refactor(filter): 移除冗余的电流卡尔曼滤波器实现
删除了 `Filter.cpp` 和 `Filter.h` 中关于 `CurrentKalman` 类的冗余代码,统一外部定义,简化结构。
refactor(health): 改进热量控制器算法和数据类型
将热累积计算改为更精确的分段处理方式,并引入 Q16.16 定点数提升运算精度与性能;增加对异常温度值的判断修正。
fix(CAN): 调整电流发送顺序及标志位设置位置
修改 CAN 发送中 V 相与 W 相电流打包顺序,确保通信正确性;调整发送标志设置逻辑至主循环任务内触发。
chore(headers): 清理无用头文件引用和结构调整
移除了多个源文件中不必要的头文件包含(如 `<cstdio>`、`<array>`),并对部分全局变量声明做了 extern 处理以避免重复定义问题。
|
2025-12-05 00:46:19 +08:00 |
|
cbb
|
871e33e10f
|
fix:修复任务调度不准确的问题,
feat:优化电流采样速率
feat:优化PIDramp效率
feat:优化角度采样效率
fix:回滚CAN打包逻辑
feat:去除timer3
feat(FOC): 优化帕克逆变换与克拉克逆变换计算方式
将原有的三角函数计算替换为查表法,提高运算效率。同时添加了 sqrt(3)/2 的预计算常量,并优化了电压限制部分的计算逻辑,减少重复运算。
|
2025-11-23 18:31:47 +08:00 |
|
cbb
|
59f161bd73
|
refactor(angle): 引入角度卡尔曼滤波器 EncoderAngleKalman
新增 EncoderAngleKalman 类以处理编码器角度噪声,改善角度反馈质量,并配合速度滤波器提供更准确的速度估算。
perf(CAN): 优化CAN数据打包与状态标识字段
改进 pack_u16_to_bytes 等函数实现方式,使用 reinterpret_cast 提高效率;
扩展 Status_code 为多个独立状态位,增强诊断能力。
feat(FOC): 添加电机锁止和停止功能
新增 drv_stop 和 drv_hold 方法用于控制电机占空比,支持紧急制动与角度保持。优化了FOC控制器的接口设计,提升安全性和可控性。
fix(filter): 修正中值滤波器数组大小动态分配问题
将 medium_filter 函数中的排序数组改为使用传入参数 size 动态定义,避免固定大小带来的资源浪费或越界风险,提高滤波精度和稳定性。
chore(project): 移除冗余文件及代码清理
移除了 thermal.cpp/h 文件及相关引用,调整项目结构,删除未使用的全局变量定义、注释和头文件包含,精简系统初始化流程。
|
2025-11-22 23:59:43 +08:00 |
|
cbb
|
a7a3805839
|
feat(ADC): 电流采样支持负数
将 CURRENT_OFFSET 从 0 修改为 -1.60f 以校准电流采样偏差。
同时将 ADC 规则通道的采样时间从 55.5 周期调整为 28.5 周期,提高采样响应速度。
feat(timer): 新增 TIMER1 中断及 PWM 周期位置触发功能
新增 TIMER1_CH3 用于在 PWM 周期特定位置(如 50%)触发中断,并配置相关 NVIC 和中断处理逻辑。
修改 TIMER3 的定时周期注释与实际值一致,为 50 微秒。
重新组织 TIMER2 中断中的任务调度顺序,提升执行效率和逻辑清晰度。
refactor(main): 重构主循环任务处理顺序
调整 main.cpp 中任务执行顺序,确保高优先级任务及时处理。
将部分传感器更新任务移动至更合理的位置,保证数据同步性和控制实时性。
|
2025-11-22 02:21:33 +08:00 |
|
cbb
|
67a1c04458
|
refactor(timer): 引入任务调度机制替代硬编码定时操作
通过定义 `TaskScheduler` 结构体和相关枚举类型,
将原TIMER2中断中耦合的操作解耦成多个独立任务标志,
便于后续维护和扩展,并提高系统实时响应能力。
feat(FOC): 优化电压安全范围与PID参数配置
将电压计算中的 `voltage_power_supply` 替换为更安全的 `v_safe`,
并引入电压有效性检测逻辑。同时调整PID控制器参数以适配12V供电场景。
此外,统一布尔变量初始化方式,提升代码可读性和安全性。
chore(build): 更新CMSIS工具链版本依赖
更新vcpkg配置文件中CMSIS Toolbox的版本要求,
从2.11.0升级至2.12.0,确保构建环境兼容最新功能及修复。
|
2025-11-13 02:04:58 +08:00 |
|
cbb
|
7a602dda48
|
fix(FOC): 修正大角度下会导致角度控制失控的问题
移除冗余的 `_electricalAngle` 函数,修正 `setPhaseVoltage` 中电气角度的计算方式
在定时器中断中增加实时角度更新,支持新增的无 PID 角度控制模式。
|
2025-11-10 02:08:03 +08:00 |
|
cbb
|
0c5ab9c1d8
|
feat(ADC): 重构采样器初始化为构造函数
将 `sampler::init()` 方法改为构造函数 `sampler()`,并在其中完成 DMA 和 ADC 的初始化配置,
同时进行初始采样操作。
feat(CAN): 更新角度传感器类接口并修复拼写错误
将全局函数 `KHT7823_readAngle()` 替换为 `angle_sensor::readAngle()` 类成员函数调用,
统一命名风格并修正部分函数名中的拼写错误(如 KHT7823 -> KTH7823)。
refactor(Can): 移除冗余的 timeout 成员变量
在 `CAN_transmiter` 类中移除了未使用的 `timeout` 成员变量,减少资源占用。
refactor(Timer): 删除重复注释内容
清理 `Timer.cpp` 中关于定时器配置的重复注释信息,保留核心常量定义。
refactor(ADC): 修正头文件中函数声明
将 `adc.h` 中的 `init()` 函数声明更新为构造函数 `sampler()`,保持实现与声明一致。
refactor(ang_sensor): 将角度传感器相关功能封装为类
将原先分散的 C 风格函数封装进 `angle_sensor` 类中,提升代码结构清晰度和可维护性。
添加构造函数和读取角度的方法,并修正原有函数命名不一致问题。
refactor(main): 调整初始化顺序并移除多余包含
修改 `main.cpp` 中外设初始化顺序,移除对 `core_cm4.h` 的重复包含,
并将角度传感器和采样器通过类实例方式初始化。
|
2025-11-01 23:41:32 +08:00 |
|
cbb
|
71a92fa68e
|
fix(CAN): 使用DMA优化CAN通信数据收发
重新配置CAN引脚映射并实现基于DMA的数据收发机制,提升通信效率。增加了DMA通道4和5的中断处理函数,用于接收和发送CAN消息。修改了CAN发送函数以支持DMA传输,并去除了原有的轮询等待机制。
feat(ADC): 重新实现ADC与DMA初始化配置
将ADC和DMA的配置迁移至ADC.cpp文件中,完善了DMA循环采样模式配置及ADC多通道扫描功能。删除了initial.cpp中重复的初始化代码,并修正了相关头文件包含。
chore(headers): 清理冗余头文件引用
多个源文件中删除了不必要的标准库和硬件无关头文件引用,减少编译依赖,提高代码清晰度。
|
2025-11-01 20:29:11 +08:00 |
|
cbb
|
867a37ff79
|
```
refactor(device): 重构角度传感器模块并优化ADC电压计算
- 将 tle5012b 角度传感器相关文件重命名为 ang_sensor,统一接口命名
- 修正母线电压采样计算公式,增加 VCC_FACTOR 校正系数
- 移除 main.cpp 中重复和未使用的头文件引用
- 删除对旧角度传感器初始化函数的调用,改用新接口读取角度
```
|
2025-10-31 01:17:52 +08:00 |
|
cbb
|
180a46271c
|
```
feat(DengFOC):
新增了基于三相电流采样的dq轴电流计算函数`cal_Iq_Id`
调整了开环控制中的电压限制逻辑
更新了默认电源电压值为24V。
KHT7823测试代码
```
|
2025-10-30 20:20:14 +08:00 |
|
cbb
|
7f0ca1857b
|
feat(FOC): 优化开环速度控制逻辑并提升性能
refactor(ADC): 重构采样逻辑并封装为 sampler 类
refactor(CAN): 更新 CAN 发送器以使用新的sampler 接口
refactor(timer): 调整定时器中断结构并优化任务调度
|
2025-10-19 23:20:28 +08:00 |
|
cbb
|
35801d6f48
|
FOC开环调试成功
|
2025-10-16 21:43:19 +08:00 |
|
cbb
|
20fbb30067
|
ADC已完成
|
2025-10-02 02:52:07 +08:00 |
|
cbb
|
f2ae2669fa
|
初始化
|
2025-09-23 00:27:51 +08:00 |
|