DRV8313兼容版

refactor(algorithm): 移除冗余头文件
移除不必要的stdint.h头文件引用,统一使用<cstdint>

refactor(sys): 清理系统级头文件依赖
移除未使用的头文件引用,统一整型类型定义,优化初始
化过程中的GPIO配置
This commit is contained in:
cbb
2026-01-24 01:50:39 +08:00
parent 3f24292ac1
commit 1596b2beb0
24 changed files with 76 additions and 64 deletions
+12 -3
View File
@@ -3,12 +3,15 @@
#define _FOC_H
#include "config.h"
#include "pid.h"
#include <stdint.h>
#include <cstdint>
class FOC_Controlroller {
public:
FOC_Controlroller();
// 初始化函数
u8 init();
u8 control_mode = 0;
float limit_voltage = 0.0f;
@@ -22,10 +25,9 @@ class FOC_Controlroller {
bool voltage_error = false;
bool is_shut_down = false;
float voltage_power_supply = 24.0f; // 电源电压
float v_safe = voltage_power_supply * 1.05f;
float v_safe = voltage_power_supply * 0.95f;
float duty_a = 0, duty_b = 0, duty_c = 0;
float Ua = 0, Ub = 0, Uc = 0;
u8 init(void);
float velocity_open_loop(void);
float angle_control(void);
float angle_control_with_velocity_limit(void);
@@ -50,6 +52,13 @@ class FOC_Controlroller {
PIDController ang_inVelAngloop =
PIDController{ang_angloop_p * 100, 0.0f, 5e-4, 1000000, 999};
void update_pid_limits() {
vel_loop.limit = voltage_power_supply;
angle_loop.limit = voltage_power_supply;
current_loop.limit = voltage_power_supply;
vel_inVelAngloop.limit = voltage_power_supply;
}
protected:
float shaft_angle = 0;
float Ualpha, Ubeta = 0;