cbb
|
7c2860f302
|
feat(can): 增加EEPROM状态码和系统配置保存功能
- 在CAN通信中增加EEPROM状态码字段,并通过CAN FD发送
- 实现Flash EEPROM对系统配置参数的CRC校验与保存
- 改进目标角度、速度等关键参数的读写逻辑,支持掉电保存
- 调整EEPROM地址映射,优化错误处理和状态反馈机制
- 修复CRC计算相关问题,增强数据可靠性
|
2025-12-18 18:23:34 +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 |
|
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
|
db2d08032c
|
feat(FOC): 优化FOC控制逻辑与热管理机制
- 移除冗余的三值约束宏定义 `_constrain3`
- 修改关机逻辑,引入 `thermal_uncontrol` 标志替代旧 shut_down 计数方式
- 调整恢复函数中错误标志位清零逻辑
- 将部分 uint8_t 类型成员变量改为 bool 类型以提高可读性
- 在类中添加电源电压成员变量并调整 PID 参数初始化
- 移除 PID 控制器中不必要的 CAN 测试代码
- 添加 thermal 控制相关文件引用及初始化
- 使用 switch 替代多重 if-else 提高控制模式处理效率
- 引入基于定时器的任务负载均衡调度机制
- 初始化热量控制器并在主循环中调用更新逻辑
|
2025-11-12 00:46:26 +08:00 |
|
cbb
|
971374d8ec
|
feat(FOC): 增加闭环速度控制算法
- 重构setPhaseVoltage函数实现,提高执行效率
- 增加update_power函数,动态更新电源电压
- 优化velocity_open_loop函数,调用、setPhaseVoltage避免重复代码
- 实现angle_control和velocity_control闭环控制函数
- 调整PID控制器参数初始化及增加参数设置接口
- 改进电流和编码器速度卡尔曼滤波器实现
- 更新CAN通信数据打包逻辑,增加测试字段
- 在定时器中断中集成多种控制模式切换逻辑
- 完善角度传感器数据处理,改进速度计算方法
- 减小速度滤波数组大小,提升响应速度
|
2025-11-06 02:07:15 +08:00 |
|
cbb
|
516a7bd41d
|
refactor(foc): 重构FOC控制算法与角度传感器接口
- 移除冗余的电机方向和极对数参数传递逻辑
- 简化电气角度计算函数,直接读取角度传感器数据
- 调整电压设置函数,优化PWM输出逻辑
- 注释掉未使用的速度开环控制调用,启用角度闭环控制
- 增加角度和速度获取接口,支持原始值和输出级值区分
feat(sensor): 完善角度传感器数据处理与速度估算
- 增加速度滤波缓冲区,提高速度估算精度
- 改进角度绕回检测阈值,增强鲁棒性
- 添加获取原始角度和速度的接口
- 增加SPI DMA传输超时打印信息
fix(can): 修正CAN通信中的数据打包与解析问题
- 正确发送电机实时速度数据
- 修正CAN FD数据包长度以匹配实际内容
- 角度目标值增加缩放因子适配外部控制指令
|
2025-11-03 02:38:43 +08:00 |
|
cbb
|
974b8e6675
|
feat(FOC): 添加电源电压更新功能
在 FOC 控制器中新增 `update_power` 方法,用于实时获取母线电压,
提升控制系统对电源状态的感知能力。
feat(CAN): 优化 CAN 配置与通信处理
将 CAN 相关宏定义改为 constexpr 常量,并引入角度转换因子。
修正接收数据解析方式,增强通信稳定性与精度。
feat(angle_sensor): 实现角度累积与绕回处理
重写角度传感器驱动,支持角度连续测量与自动绕回处理。
新增 `update`、`getAngle` 和 `reset` 接口,提高角度读取准确性。
feat(main): 增加角度传感器磁感应强度测试
在主函数初始化阶段调用磁感应强度检测函数,辅助判断传感器工作状态。
|
2025-11-02 01:54:01 +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
|
bd77f7a9a9
|
角度传感器改使用DMA
|
2025-11-01 21:03:57 +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
|
34df732659
|
FOC开环速度调试
|
2025-10-16 21:56:15 +08:00 |
|
cbb
|
aaee40f36b
|
FOC开环调试成功
|
2025-10-16 21:43:34 +08:00 |
|
cbb
|
35801d6f48
|
FOC开环调试成功
|
2025-10-16 21:43:19 +08:00 |
|
cbb
|
a63a344f89
|
完成CANFD通信调试
|
2025-10-14 00:49:58 +08:00 |
|
cbb
|
2d807260c5
|
SPI更新
|
2025-10-09 21:09:33 +08:00 |
|
cbb
|
d755715363
|
修复SPI通道错误的问题,增加看门狗功能
|
2025-10-02 23:50:12 +08:00 |
|
cbb
|
20fbb30067
|
ADC已完成
|
2025-10-02 02:52:07 +08:00 |
|
cbb
|
f2ae2669fa
|
初始化
|
2025-09-23 00:27:51 +08:00 |
|