DRV8313兼容版
refactor(algorithm): 移除冗余头文件 移除不必要的stdint.h头文件引用,统一使用<cstdint> refactor(sys): 清理系统级头文件依赖 移除未使用的头文件引用,统一整型类型定义,优化初始 化过程中的GPIO配置
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user