HPM SDK
HPMicro Software Development Kit
hpm_foc.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021-2022 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 #ifndef HPM_FOC_H
8 #define HPM_FOC_H
9 #if defined(__cplusplus)
10 extern "C" {
11 #endif /* __cplusplus */
12 #include "hpm_motor_math.h"
13 
27 
34 
41 
48 
59  HPM_MOTOR_MATH_TYPE *currentalpha, HPM_MOTOR_MATH_TYPE *currentbeta);
60 
74  HPM_MOTOR_MATH_TYPE *currentd, HPM_MOTOR_MATH_TYPE *currentq,
75  HPM_MOTOR_MATH_TYPE sin_angle, HPM_MOTOR_MATH_TYPE cos_angle);
76 
89  HPM_MOTOR_MATH_TYPE sin_angle, HPM_MOTOR_MATH_TYPE cos_angle);
90 
97 
109 void hpm_mcl_bldc_foc_speed_ctrl(float *memory, float targetspeed, float curspeed,
110  float kp, float ki, int16_t max, int16_t *output);
111 
121 void hpm_mcl_bldc_foc_position_ctrl(float targetpos, float curpos,
122  float kp, float max, float *output);
123 
130 
136 #if defined(__cplusplus)
137 }
138 #endif /* __cplusplus */
139 
140 #endif
void hpm_mcl_bldc_foc_al_speed(BLDC_CONTRL_SPD_PARA *par)
Calculation of speed by angular difference of sampling.
Definition: hpm_foc.c:105
void hpm_mcl_bldc_foc_svpwm(BLDC_CONTROL_PWM_PARA *par)
svpwm function
Definition: hpm_foc.c:160
void hpm_mcl_bldc_foc_inv_park(HPM_MOTOR_MATH_TYPE ud, HPM_MOTOR_MATH_TYPE uq, HPM_MOTOR_MATH_TYPE *ualpha, HPM_MOTOR_MATH_TYPE *ubeta, HPM_MOTOR_MATH_TYPE sin_angle, HPM_MOTOR_MATH_TYPE cos_angle)
Motor rotor angle, electrical angle.
Definition: hpm_foc.c:152
void hpm_mcl_bldc_foc_position_ctrl(float targetpos, float curpos, float kp, float max, float *output)
Position Control P Loop.
void hpm_mcl_bldc_foc_ctrl_dq_to_pwm(BLDC_CONTROL_FOC_PARA *par)
dq-axis voltage conversion to pwm output
Definition: hpm_foc.c:336
void hpm_mcl_bldc_foc_clarke(HPM_MOTOR_MATH_TYPE currentu, HPM_MOTOR_MATH_TYPE currentv, HPM_MOTOR_MATH_TYPE currentw, HPM_MOTOR_MATH_TYPE *currentalpha, HPM_MOTOR_MATH_TYPE *currentbeta)
Clark Transformation.
Definition: hpm_foc.c:285
void hpm_mcl_bldc_foc_pwmset(BLDC_CONTROL_PWMOUT_PARA *par)
Update output pwm according to duty cycle, provided by the user.
void hpm_mcl_bldc_foc_speed_ctrl(float *memory, float targetspeed, float curspeed, float kp, float ki, int16_t max, int16_t *output)
Speed Control PI Loop.
void hpm_mcl_bldc_foc_pi_contrl(BLDC_CONTRL_PID_PARA *par)
pi control function
Definition: hpm_foc.c:312
void hpm_mcl_bldc_foc_park(HPM_MOTOR_MATH_TYPE currentalpha, HPM_MOTOR_MATH_TYPE currentbeta, HPM_MOTOR_MATH_TYPE *currentd, HPM_MOTOR_MATH_TYPE *currentq, HPM_MOTOR_MATH_TYPE sin_angle, HPM_MOTOR_MATH_TYPE cos_angle)
transform
Definition: hpm_foc.c:296
void hpm_mcl_bldc_foc_current_cal(BLDC_CONTROL_CURRENT_PARA *par)
Reconfiguring three-phase currents.
Definition: hpm_foc.c:304
float HPM_MOTOR_MATH_TYPE
Definition: hpm_motor_math.h:74
Current sampling parameters.
Definition: hpm_bldc_define.h:170
foc control
Definition: hpm_bldc_define.h:234
pid control parameters
Definition: hpm_bldc_define.h:151
Speed calculation parameters.
Definition: hpm_bldc_define.h:129
svpwm parameters
Definition: hpm_bldc_define.h:208
PWM output parameters.
Definition: hpm_bldc_define.h:192