HPM SDK
HPMicro Software Development Kit
HPMicro MCL FOC APIs

Functions

void hpm_mcl_bldc_foc_al_speed (BLDC_CONTRL_SPD_PARA *par)
 Calculation of speed by angular difference of sampling. More...
 
void hpm_mcl_bldc_foc_pwmset (BLDC_CONTROL_PWMOUT_PARA *par)
 Update output pwm according to duty cycle, provided by the user. More...
 
void hpm_mcl_bldc_foc_current_cal (BLDC_CONTROL_CURRENT_PARA *par)
 Reconfiguring three-phase currents. More...
 
void hpm_mcl_bldc_foc_pi_contrl (BLDC_CONTRL_PID_PARA *par)
 pi control function More...
 
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. More...
 
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 More...
 
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. More...
 
void hpm_mcl_bldc_foc_svpwm (BLDC_CONTROL_PWM_PARA *par)
 svpwm function More...
 
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. More...
 
void hpm_mcl_bldc_foc_position_ctrl (float targetpos, float curpos, float kp, float max, float *output)
 Position Control P Loop. More...
 
void hpm_mcl_bldc_foc_ctrl_dq_to_pwm (BLDC_CONTROL_FOC_PARA *par)
 dq-axis voltage conversion to pwm output More...
 

Detailed Description

Function Documentation

◆ hpm_mcl_bldc_foc_al_speed()

void hpm_mcl_bldc_foc_al_speed ( BLDC_CONTRL_SPD_PARA par)

#include <middleware/hpm_mcl/inc/hpm_foc.h>

Calculation of speed by angular difference of sampling.

Parameters
[in,out]parSpeed parameters BLDC_CONTRL_SPD_PARA

◆ hpm_mcl_bldc_foc_clarke()

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 
)

#include <middleware/hpm_mcl/inc/hpm_foc.h>

Clark Transformation.

Parameters
[in]currentuU-phase current
[in]currentvV-phase current
[in]currentwW-phase current
[out]currentalphaalpha-axis current
[out]currentbetabeta-axis current

◆ hpm_mcl_bldc_foc_ctrl_dq_to_pwm()

void hpm_mcl_bldc_foc_ctrl_dq_to_pwm ( BLDC_CONTROL_FOC_PARA par)

#include <middleware/hpm_mcl/inc/hpm_foc.h>

dq-axis voltage conversion to pwm output

Parameters
parBLDC_CONTROL_FOC_PARA

◆ hpm_mcl_bldc_foc_current_cal()

void hpm_mcl_bldc_foc_current_cal ( BLDC_CONTROL_CURRENT_PARA par)

#include <middleware/hpm_mcl/inc/hpm_foc.h>

Reconfiguring three-phase currents.

Parameters
[in,out]parBLDC_CONTROL_CURRENT_PARA

◆ hpm_mcl_bldc_foc_inv_park()

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 
)

#include <middleware/hpm_mcl/inc/hpm_foc.h>

Motor rotor angle, electrical angle.

Parameters
[in]udd-axis voltage
[in]uqq-axis voltage
[out]ualphau-alpha-axis voltage
[out]ubetau-beta-axis voltage
[in]sin_anglesin(theta)
[in]cos_anglecos(theta)

◆ hpm_mcl_bldc_foc_park()

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 
)

#include <middleware/hpm_mcl/inc/hpm_foc.h>

transform

Park transform

Parameters
[in]currentalphaalpha-axis current
[in]currentbetabeta-axis current
[out]currentdd-axis current
[out]currentqq-axis current
[in]sin_anglesin(theta)
[in]cos_anglecos(theta)

◆ hpm_mcl_bldc_foc_pi_contrl()

void hpm_mcl_bldc_foc_pi_contrl ( BLDC_CONTRL_PID_PARA par)

#include <middleware/hpm_mcl/inc/hpm_foc.h>

pi control function

Parameters
[in,out]parBLDC_CONTRL_PID_PARA

◆ hpm_mcl_bldc_foc_position_ctrl()

void hpm_mcl_bldc_foc_position_ctrl ( float  targetpos,
float  curpos,
float  kp,
float  max,
float *  output 
)

#include <middleware/hpm_mcl/inc/hpm_foc.h>

Position Control P Loop.

Parameters
targetposTarget position
curposcurrent position
kpScale factor
maxOutput maximum
outputOutput after p control

◆ hpm_mcl_bldc_foc_pwmset()

void hpm_mcl_bldc_foc_pwmset ( BLDC_CONTROL_PWMOUT_PARA par)

#include <middleware/hpm_mcl/inc/hpm_foc.h>

Update output pwm according to duty cycle, provided by the user.

Parameters
[in,out]parBLDC_CONTROL_PWMOUT_PARA

◆ hpm_mcl_bldc_foc_speed_ctrl()

void hpm_mcl_bldc_foc_speed_ctrl ( float *  memory,
float  targetspeed,
float  curspeed,
float  kp,
float  ki,
int16_t  max,
int16_t *  output 
)

#include <middleware/hpm_mcl/inc/hpm_foc.h>

Speed Control PI Loop.

Parameters
[in]memoryInternal Data
[in]targetspeedtarget speed
[in]curspeedCurrent speed
[in]kpScale factor
[in]kiIntegral factor
[in]maxOutput maximum and integration maximum
[out]outputOutput after pi control

◆ hpm_mcl_bldc_foc_svpwm()

void hpm_mcl_bldc_foc_svpwm ( BLDC_CONTROL_PWM_PARA par)

#include <middleware/hpm_mcl/inc/hpm_foc.h>

svpwm function

Parameters
parBLDC_CONTROL_PWM_PARA