HPM SDK
HPMicro Software Development Kit
mcl_control_method_t Struct Reference

Supported control algorithms. More...

#include <hpm_mcl_control.h>

Data Fields

hpm_mcl_type_t(* sin_x )(hpm_mcl_type_t x)
 
hpm_mcl_type_t(* cos_x )(hpm_mcl_type_t x)
 
hpm_mcl_type_t(* arctan_x )(hpm_mcl_type_t y, hpm_mcl_type_t x)
 
hpm_mcl_stat_t(* park )(hpm_mcl_type_t alpha, hpm_mcl_type_t beta, hpm_mcl_type_t sin_x, hpm_mcl_type_t cos_x, hpm_mcl_type_t *d, hpm_mcl_type_t *q)
 
hpm_mcl_stat_t(* clarke )(hpm_mcl_type_t ia, hpm_mcl_type_t ib, hpm_mcl_type_t ic, hpm_mcl_type_t *alpha, hpm_mcl_type_t *beta)
 
hpm_mcl_stat_t(* currentd_pid )(hpm_mcl_type_t ref, hpm_mcl_type_t sens, mcl_control_pid_t *pid_x, hpm_mcl_type_t *output)
 
hpm_mcl_stat_t(* currentq_pid )(hpm_mcl_type_t ref, hpm_mcl_type_t sens, mcl_control_pid_t *pid_x, hpm_mcl_type_t *output)
 
hpm_mcl_stat_t(* speed_pid )(hpm_mcl_type_t ref, hpm_mcl_type_t sens, mcl_control_pid_t *pid_x, hpm_mcl_type_t *output)
 
hpm_mcl_stat_t(* position_pid )(hpm_mcl_type_t ref, hpm_mcl_type_t sens, mcl_control_pid_t *pid_x, hpm_mcl_type_t *output)
 
hpm_mcl_stat_t(* invpark )(hpm_mcl_type_t d, hpm_mcl_type_t q, hpm_mcl_type_t sin_x, hpm_mcl_type_t cos_x, hpm_mcl_type_t *alpha, hpm_mcl_type_t *beta)
 
hpm_mcl_stat_t(* svpwm )(hpm_mcl_type_t alpha, hpm_mcl_type_t beta, hpm_mcl_type_t vbus, mcl_control_svpwm_duty_t *duty)
 
hpm_mcl_stat_t(* step_svpwm )(hpm_mcl_type_t alpha, hpm_mcl_type_t beta, hpm_mcl_type_t vbus, mcl_control_svpwm_duty_t *duty)
 
hpm_mcl_stat_t(* get_block_sector )(hall_phase_t hall, uint8_t u, uint8_t v, uint8_t w, uint8_t *sector)
 
hpm_mcl_stat_t(* dead_area_polarity_detection )(mcl_control_dead_area_compensation_t *dead_area, float id, float iq, float theta, float deadtime, float ts, mcl_control_dead_area_pwm_offset_t *pwm_out)
 
void(* smc_init )(mcl_control_smc_t *smc_cfg)
 
void(* smc_process )(mcl_control_smc_t *smc_cfg, float ualpha, float ubeta, float ialpha, float ibeta)
 
hpm_mcl_stat_t(* offline_param_detection_rs )(mcl_control_offline_param_detection_t *detection, float ialpha, float ibeta, float *ud, float *uq)
 
hpm_mcl_stat_t(* offline_param_detection_ld )(mcl_control_offline_param_detection_t *detection, float ialpha, float ibeta, float *ud, float *uq)
 
hpm_mcl_stat_t(* offline_param_detection_lq )(mcl_control_offline_param_detection_t *detection, float ialpha, float ibeta, float *ud, float *uq)
 
hpm_mcl_stat_t(* offline_param_detection_ls )(mcl_control_offline_param_detection_t *detection)
 
hpm_mcl_stat_t(* offline_param_detection_flux )(mcl_control_offline_param_detection_t *detection, float ialpha, float ibeta, float ualpha, float ubeta, float *ref_d, float *ref_q)
 
hpm_mcl_stat_t(* offline_param_detection_init )(mcl_control_offline_param_detection_t *detection)
 

Detailed Description

Supported control algorithms.

Field Documentation

◆ arctan_x

hpm_mcl_type_t(* mcl_control_method_t::arctan_x) (hpm_mcl_type_t y, hpm_mcl_type_t x)

◆ clarke

hpm_mcl_stat_t(* mcl_control_method_t::clarke) (hpm_mcl_type_t ia, hpm_mcl_type_t ib, hpm_mcl_type_t ic, hpm_mcl_type_t *alpha, hpm_mcl_type_t *beta)

◆ cos_x

hpm_mcl_type_t(* mcl_control_method_t::cos_x) (hpm_mcl_type_t x)

◆ currentd_pid

hpm_mcl_stat_t(* mcl_control_method_t::currentd_pid) (hpm_mcl_type_t ref, hpm_mcl_type_t sens, mcl_control_pid_t *pid_x, hpm_mcl_type_t *output)

◆ currentq_pid

hpm_mcl_stat_t(* mcl_control_method_t::currentq_pid) (hpm_mcl_type_t ref, hpm_mcl_type_t sens, mcl_control_pid_t *pid_x, hpm_mcl_type_t *output)

◆ dead_area_polarity_detection

hpm_mcl_stat_t(* mcl_control_method_t::dead_area_polarity_detection) (mcl_control_dead_area_compensation_t *dead_area, float id, float iq, float theta, float deadtime, float ts, mcl_control_dead_area_pwm_offset_t *pwm_out)

◆ get_block_sector

hpm_mcl_stat_t(* mcl_control_method_t::get_block_sector) (hall_phase_t hall, uint8_t u, uint8_t v, uint8_t w, uint8_t *sector)

◆ invpark

◆ offline_param_detection_flux

hpm_mcl_stat_t(* mcl_control_method_t::offline_param_detection_flux) (mcl_control_offline_param_detection_t *detection, float ialpha, float ibeta, float ualpha, float ubeta, float *ref_d, float *ref_q)

◆ offline_param_detection_init

hpm_mcl_stat_t(* mcl_control_method_t::offline_param_detection_init) (mcl_control_offline_param_detection_t *detection)

◆ offline_param_detection_ld

hpm_mcl_stat_t(* mcl_control_method_t::offline_param_detection_ld) (mcl_control_offline_param_detection_t *detection, float ialpha, float ibeta, float *ud, float *uq)

◆ offline_param_detection_lq

hpm_mcl_stat_t(* mcl_control_method_t::offline_param_detection_lq) (mcl_control_offline_param_detection_t *detection, float ialpha, float ibeta, float *ud, float *uq)

◆ offline_param_detection_ls

hpm_mcl_stat_t(* mcl_control_method_t::offline_param_detection_ls) (mcl_control_offline_param_detection_t *detection)

◆ offline_param_detection_rs

hpm_mcl_stat_t(* mcl_control_method_t::offline_param_detection_rs) (mcl_control_offline_param_detection_t *detection, float ialpha, float ibeta, float *ud, float *uq)

◆ park

◆ position_pid

hpm_mcl_stat_t(* mcl_control_method_t::position_pid) (hpm_mcl_type_t ref, hpm_mcl_type_t sens, mcl_control_pid_t *pid_x, hpm_mcl_type_t *output)

◆ sin_x

hpm_mcl_type_t(* mcl_control_method_t::sin_x) (hpm_mcl_type_t x)

◆ smc_init

void(* mcl_control_method_t::smc_init) (mcl_control_smc_t *smc_cfg)

◆ smc_process

void(* mcl_control_method_t::smc_process) (mcl_control_smc_t *smc_cfg, float ualpha, float ubeta, float ialpha, float ibeta)

◆ speed_pid

hpm_mcl_stat_t(* mcl_control_method_t::speed_pid) (hpm_mcl_type_t ref, hpm_mcl_type_t sens, mcl_control_pid_t *pid_x, hpm_mcl_type_t *output)

◆ step_svpwm

hpm_mcl_stat_t(* mcl_control_method_t::step_svpwm) (hpm_mcl_type_t alpha, hpm_mcl_type_t beta, hpm_mcl_type_t vbus, mcl_control_svpwm_duty_t *duty)

◆ svpwm

hpm_mcl_stat_t(* mcl_control_method_t::svpwm) (hpm_mcl_type_t alpha, hpm_mcl_type_t beta, hpm_mcl_type_t vbus, mcl_control_svpwm_duty_t *duty)

The documentation for this struct was generated from the following file: