7 #ifndef HPM_MCL_CONTROL_H
8 #define HPM_MCL_CONTROL_H
233 float id,
float iq,
float theta,
236 void (*smc_process)(
mcl_control_smc_t *smc_cfg,
float ualpha,
float ubeta,
float ialpha,
float ibeta);
static void init(hpm_panel_t *panel)
Definition: cc10128007.c:86
uint32_t hpm_mcl_stat_t
Definition: hpm_mcl_common.h:15
hpm_mcl_stat_t hpm_mcl_position_pid(float setpoint, float feedback, mcl_control_pid_t *pid_x, float *output)
Calculate the output of a Positional PID controller.
Definition: hpm_mcl_control.c:526
hpm_mcl_stat_t hpm_mcl_control_init(mcl_control_t *control, mcl_control_cfg_t *cfg)
Initialise the operating data for the control function.
Definition: hpm_mcl_control.c:563
hpm_mcl_stat_t hpm_mcl_delta_pid(float setpoint, float feedback, mcl_control_pid_t *pid_x, float *output)
Definition: hpm_mcl_control.c:497
mcl_svpwm_sector_t
Six sectors of svpwm.
Definition: hpm_mcl_control.h:27
@ svpwm_sector5
Definition: hpm_mcl_control.h:32
@ svpwm_sector1
Definition: hpm_mcl_control.h:28
@ svpwm_sector3
Definition: hpm_mcl_control.h:30
@ svpwm_sector2
Definition: hpm_mcl_control.h:29
@ svpwm_sector4
Definition: hpm_mcl_control.h:31
@ svpwm_sector6
Definition: hpm_mcl_control.h:33
hpm_mcl_stat_t hpm_mcl_pid_to_3p3z(mcl_control_pid_cfg_t *cfg_pid, mcl_clc_coeff_cfg_t *cfg_3p3z)
Convert a 3p3z controller to a pid controller.
Definition: hpm_mcl_control.c:478
mcl_control_status_t
Control Module Status.
Definition: hpm_mcl_control.h:16
@ control_status_run
Definition: hpm_mcl_control.h:19
@ control_status_null
Definition: hpm_mcl_control.h:17
@ control_status_init
Definition: hpm_mcl_control.h:18
@ control_status_fail
Definition: hpm_mcl_control.h:20
float hpm_mcl_type_t
Enable Q format.
Definition: hpm_mcl_math.h:30
hall_phase_t
The mounting angle of the Hall sensor, 60 degrees or 120 degrees, is an inherent property of the moto...
Definition: hpm_mcl_physical.h:18
3p-3z Coefficients for 3p-3z controllers
Definition: hpm_mcl_control.h:52
float b3
Definition: hpm_mcl_control.h:56
float a2
Definition: hpm_mcl_control.h:59
float a0
Definition: hpm_mcl_control.h:57
float b1
Definition: hpm_mcl_control.h:54
float b0
Definition: hpm_mcl_control.h:53
float a1
Definition: hpm_mcl_control.h:58
float b2
Definition: hpm_mcl_control.h:55
callback function
Definition: hpm_mcl_control.h:249
Control Function Configuration.
Definition: hpm_mcl_control.h:258
mcl_control_pid_t speed_pid_cfg
Definition: hpm_mcl_control.h:262
mcl_control_dead_area_compensation_t dead_area_compensation_cfg
Definition: hpm_mcl_control.h:264
mcl_control_pid_t currentd_pid_cfg
Definition: hpm_mcl_control.h:260
mcl_control_offline_param_detection_t offline_param_detection_cfg
Definition: hpm_mcl_control.h:266
mcl_control_pid_t currentq_pid_cfg
Definition: hpm_mcl_control.h:261
mcl_control_smc_t smc_cfg
Definition: hpm_mcl_control.h:265
mcl_control_callback_t callback
Definition: hpm_mcl_control.h:259
mcl_control_pid_t position_pid_cfg
Definition: hpm_mcl_control.h:263
DeadAera Compensation Configuration.
Definition: hpm_mcl_control.h:101
float lowpass_k
Definition: hpm_mcl_control.h:102
DeadAera Compensation data.
Definition: hpm_mcl_control.h:109
float d_mem
Definition: hpm_mcl_control.h:111
float q_mem
Definition: hpm_mcl_control.h:112
mcl_control_dead_area_compensation_cfg_t cfg
Definition: hpm_mcl_control.h:110
Used to compensate for pwm dead zones, Duty cycle ratio, between 0 and 1.
Definition: hpm_mcl_control.h:91
float b_offset
Definition: hpm_mcl_control.h:93
float c_offset
Definition: hpm_mcl_control.h:94
float a_offset
Definition: hpm_mcl_control.h:92
Supported control algorithms.
Definition: hpm_mcl_control.h:214
Offline Detection Configuration.
Definition: hpm_mcl_control.h:159
float ud_delta
Definition: hpm_mcl_control.h:161
float flux_detection_times
Definition: hpm_mcl_control.h:164
float lowpass_k
Definition: hpm_mcl_control.h:167
float detection_loop_ts
Definition: hpm_mcl_control.h:166
float vbus
Definition: hpm_mcl_control.h:162
float inductor_detection_times
Definition: hpm_mcl_control.h:163
float current_half_rated
Definition: hpm_mcl_control.h:160
float delay_times
Definition: hpm_mcl_control.h:165
Offline Detection Data.
Definition: hpm_mcl_control.h:174
float val0_mem
Definition: hpm_mcl_control.h:185
float val_filter
Definition: hpm_mcl_control.h:187
float val_filter_mem
Definition: hpm_mcl_control.h:188
float ud_mem
Definition: hpm_mcl_control.h:179
float is_last
Definition: hpm_mcl_control.h:182
float val1_mem
Definition: hpm_mcl_control.h:186
mcl_control_offline_param_detection_cfg_t cfg
Definition: hpm_mcl_control.h:175
float tick_count
Definition: hpm_mcl_control.h:177
mcl_offline_param_detection_result_t result
Definition: hpm_mcl_control.h:176
Configuration data for pid.
Definition: hpm_mcl_control.h:66
hpm_mcl_type_t integral_max
Definition: hpm_mcl_control.h:70
hpm_mcl_type_t kd
Definition: hpm_mcl_control.h:69
hpm_mcl_type_t output_max
Definition: hpm_mcl_control.h:72
hpm_mcl_type_t integral_min
Definition: hpm_mcl_control.h:71
hpm_mcl_type_t ki
Definition: hpm_mcl_control.h:68
hpm_mcl_type_t output_min
Definition: hpm_mcl_control.h:73
hpm_mcl_type_t kp
Definition: hpm_mcl_control.h:67
pid running data
Definition: hpm_mcl_control.h:80
hpm_mcl_type_t error_n2
Definition: hpm_mcl_control.h:84
hpm_mcl_type_t integral
Definition: hpm_mcl_control.h:82
mcl_control_pid_cfg_t cfg
Definition: hpm_mcl_control.h:81
hpm_mcl_type_t error_n1
Definition: hpm_mcl_control.h:83
Sensorless smc configuration.
Definition: hpm_mcl_control.h:119
float inductor
Definition: hpm_mcl_control.h:122
float res
Definition: hpm_mcl_control.h:121
mcl_control_pid_t pll
Definition: hpm_mcl_control.h:134
float ksmc
Definition: hpm_mcl_control.h:130
float theta0
Definition: hpm_mcl_control.h:133
float smc_f
Definition: hpm_mcl_control.h:127
float sample_ts
Definition: hpm_mcl_control.h:123
float smc_g
Definition: hpm_mcl_control.h:128
float filter_coeff
Definition: hpm_mcl_control.h:131
float loop_ts
Definition: hpm_mcl_control.h:124
float zero
Definition: hpm_mcl_control.h:129
Sensorless smc structure.
Definition: hpm_mcl_control.h:141
float zalpha_cal
Definition: hpm_mcl_control.h:146
float zbeta_cal
Definition: hpm_mcl_control.h:148
mcl_control_smc_cfg_t cfg
Definition: hpm_mcl_control.h:142
float ubeta
Definition: hpm_mcl_control.h:152
float theta_mem
Definition: hpm_mcl_control.h:149
float ibeta_mem
Definition: hpm_mcl_control.h:144
float ualpha
Definition: hpm_mcl_control.h:151
float theta
Definition: hpm_mcl_control.h:150
float beta_cal
Definition: hpm_mcl_control.h:147
float ialpha_mem
Definition: hpm_mcl_control.h:143
float alpha_cal
Definition: hpm_mcl_control.h:145
pwm duty cycle
Definition: hpm_mcl_control.h:196
hpm_mcl_type_t b
Definition: hpm_mcl_control.h:198
hpm_mcl_type_t a1
Definition: hpm_mcl_control.h:205
hpm_mcl_type_t b1
Definition: hpm_mcl_control.h:207
hpm_mcl_type_t b0
Definition: hpm_mcl_control.h:206
hpm_mcl_type_t a
Definition: hpm_mcl_control.h:197
hpm_mcl_type_t a0
step motor pwm
Definition: hpm_mcl_control.h:204
hpm_mcl_type_t c
Definition: hpm_mcl_control.h:199
Control function running data.
Definition: hpm_mcl_control.h:273
mcl_control_cfg_t * cfg
Definition: hpm_mcl_control.h:274
mcl_control_method_t method
Definition: hpm_mcl_control.h:275
Results of offline parameter testing.
Definition: hpm_mcl_control.h:40
float rs
Definition: hpm_mcl_control.h:41
float ld
Definition: hpm_mcl_control.h:42
float ls
Definition: hpm_mcl_control.h:44
float flux
Definition: hpm_mcl_control.h:45
float lq
Definition: hpm_mcl_control.h:43