Commit Graph
28 Commits
Author SHA1 Message Date
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 7a602dda48 fix(FOC): 修正大角度下会导致角度控制失控的问题
移除冗余的 `_electricalAngle` 函数,修正 `setPhaseVoltage` 中电气角度的计算方式
在定时器中断中增加实时角度更新,支持新增的无 PID 角度控制模式。
2025-11-10 02:08:03 +08:00
cbb b33574d392 fix(FOC): 修复角度控制中的冗余CAN传输与传感器角度获取错误
- 修正速度控制中角度传感器数据读取错误,使用current_sensorangle替代getRawAngle
- 在Timer中断中统一使用angle_control进行角度闭环控制
- 完善角度传感器类的角度读取逻辑,增加current_angle_deg和current_angle_rad成员变量
- 添加getcurrent_sensorangle接口用于获取当前原始角度值
2025-11-08 21:04:35 +08:00
cbb 99cc397931 feat(FOC): 优化SVPWM算法并重构角度控制逻辑
- 引入新的三值约束宏 `_constrain3` 用于SVPWM计算优化
- 修改 `setPhaseVoltage` 函数签名,移除冗余的角度参数,内部自动计算电气角度
- 调整PWM占空比计算方式,提高电压利用率和控制精度
- 移除旧的DEG2RAD和RAD2DEG常量定义,改由initial.h统一管理
- 在initial.h中新增减速比常量REDUCTION_RATIO,并修正拼写错误
- 为角度传感器类更新速度滤波器尺寸,提升速度估算稳定性
- 更新PID控制器时间片常量,简化dt计算逻辑,提高执行效率
- 切换角度闭环控制至新NPID版本,增强系统响应性能
- 修正CAN通信中的目标角度解析逻辑,确保指令正确应用
2025-11-08 02:15:14 +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 5d14731af5 feat(FOC): 添加开关机功能并优化定时器配置 2025-10-29 21:22:10 +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 6f89355a8a ADC已完成 2025-10-02 02:51:57 +08:00
cbb f2ae2669fa 初始化 2025-09-23 00:27:51 +08:00