RA Flexible Software Package Documentation  Release v5.2.0

 
Motor angle Interface

Detailed Description

Interface for motor angle and speed calculation functions.

Summary

The Motor angle interface calculates the rotor angle and rotational speed from other data.

Data Structures

struct  motor_angle_cfg_t
 
struct  motor_angle_current_t
 
struct  motor_angle_voltage_reference_t
 
struct  motor_angle_ad_data_t
 
struct  motor_angle_encoder_info_t
 
struct  motor_angle_api_t
 
struct  motor_angle_instance_t
 

Typedefs

typedef void motor_angle_ctrl_t
 

Enumerations

enum  motor_sense_encoder_angle_adjust_t
 
enum  motor_angle_open_loop_t
 
enum  motor_angle_error_t
 

Data Structure Documentation

◆ motor_angle_cfg_t

struct motor_angle_cfg_t

Configuration parameters.

◆ motor_angle_current_t

struct motor_angle_current_t

Interface structure

Data Fields
float id d-axis current
float iq q-axis current

◆ motor_angle_voltage_reference_t

struct motor_angle_voltage_reference_t

Motor angle voltage reference

Data Fields
float vd d-axis voltage reference
float vq q-axis voltage reference

◆ motor_angle_ad_data_t

struct motor_angle_ad_data_t

A/D conversion data

Data Fields
float sin_ad_data sin A/D data of induction sensor
float cos_ad_data cos A/D data of induction sensor

◆ motor_angle_encoder_info_t

struct motor_angle_encoder_info_t

Motor angle encoder adjustment info

Data Fields
motor_sense_encoder_angle_adjust_t e_adjust_status Encoder Adjustment Status.
uint8_t u1_adjust_count_full Adjustment count became full.
motor_angle_open_loop_t e_open_loop_status Openloop status.
float f_openloop_speed Openloop speed.
float f_openloop_id_ref Openloop d-axis current.

◆ motor_angle_api_t

struct motor_angle_api_t

Functions implemented as application interface will follow these APIs.

Data Fields

fsp_err_t(* open )(motor_angle_ctrl_t *const p_ctrl, motor_angle_cfg_t const *const p_cfg)
 
fsp_err_t(* close )(motor_angle_ctrl_t *const p_ctrl)
 
fsp_err_t(* reset )(motor_angle_ctrl_t *const p_ctrl)
 
fsp_err_t(* currentSet )(motor_angle_ctrl_t *const p_ctrl, motor_angle_current_t *const p_st_current, motor_angle_voltage_reference_t *const p_st_voltage)
 
fsp_err_t(* speedSet )(motor_angle_ctrl_t *const p_ctrl, float const speed_ctrl, float const damp_speed)
 
fsp_err_t(* flagPiCtrlSet )(motor_angle_ctrl_t *const p_ctrl, uint32_t const flag_pi)
 
fsp_err_t(* internalCalculate )(motor_angle_ctrl_t *const p_ctrl)
 
fsp_err_t(* angleSpeedGet )(motor_angle_ctrl_t *const p_ctrl, float *const p_angle, float *const p_speed, float *const p_phase_err)
 
fsp_err_t(* angleAdjust )(motor_angle_ctrl_t *const p_ctrl)
 
fsp_err_t(* encoderCyclic )(motor_angle_ctrl_t *const p_ctrl)
 
fsp_err_t(* cyclicProcess )(motor_angle_ctrl_t *const p_ctrl)
 
fsp_err_t(* sensorDataSet )(motor_angle_ctrl_t *const p_ctrl, motor_angle_ad_data_t *const p_ad_data)
 
fsp_err_t(* estimatedComponentGet )(motor_angle_ctrl_t *const p_ctrl, float *const p_ed, float *const p_eq)
 
fsp_err_t(* infoGet )(motor_angle_ctrl_t *const p_ctrl, motor_angle_encoder_info_t *const p_info)
 
fsp_err_t(* parameterUpdate )(motor_angle_ctrl_t *const p_ctrl, motor_angle_cfg_t const *p_cfg)
 

Field Documentation

◆ open

fsp_err_t(* motor_angle_api_t::open) (motor_angle_ctrl_t *const p_ctrl, motor_angle_cfg_t const *const p_cfg)

Initialize the Motor_Angle.

Parameters
[in]p_ctrlPointer to control structure.
[in]p_cfgPointer to configuration structure.

◆ close

fsp_err_t(* motor_angle_api_t::close) (motor_angle_ctrl_t *const p_ctrl)

Close (Finish) the Motor_Angle.

Parameters
[in]p_ctrlPointer to control structure.

◆ reset

fsp_err_t(* motor_angle_api_t::reset) (motor_angle_ctrl_t *const p_ctrl)

Reset the Motor_Angle.

Parameters
[in]p_ctrlPointer to control structure.

◆ currentSet

fsp_err_t(* motor_angle_api_t::currentSet) (motor_angle_ctrl_t *const p_ctrl, motor_angle_current_t *const p_st_current, motor_angle_voltage_reference_t *const p_st_voltage)

Set (Input) Current & Voltage Reference data into the Motor_Angle.

Parameters
[in]p_ctrlPointer to control structure.
[in]p_st_currentPointer to current structure
[in]p_st_voltagePointer to voltage Reference structure

◆ speedSet

fsp_err_t(* motor_angle_api_t::speedSet) (motor_angle_ctrl_t *const p_ctrl, float const speed_ctrl, float const damp_speed)

Set (Input) Speed Information into the Motor_Angle.

Parameters
[in]p_ctrlPointer to control structure.
[in]speed_ctrlControl reference of rotational speed [rad/s]
[in]damp_speedDamping rotational speed [rad/s]

◆ flagPiCtrlSet

fsp_err_t(* motor_angle_api_t::flagPiCtrlSet) (motor_angle_ctrl_t *const p_ctrl, uint32_t const flag_pi)

Set the flag of PI Control runs.

Parameters
[in]p_ctrlPointer to control structure.
[in]flag_piThe flag of PI control runs

◆ internalCalculate

fsp_err_t(* motor_angle_api_t::internalCalculate) (motor_angle_ctrl_t *const p_ctrl)

Calculate internal parameters of encoder process.

Parameters
[in]p_ctrlPointer to control structure.

◆ angleSpeedGet

fsp_err_t(* motor_angle_api_t::angleSpeedGet) (motor_angle_ctrl_t *const p_ctrl, float *const p_angle, float *const p_speed, float *const p_phase_err)

Get rotor angle and rotational speed from the Motor_Angle.

Parameters
[in]p_ctrlPointer to control structure.
[out]p_anglMemory address to get rotor angle data
[out]p_speedMemory address to get rotational speed data
[out]p_phase_errMemory address to get phase(angle) error data

◆ angleAdjust

fsp_err_t(* motor_angle_api_t::angleAdjust) (motor_angle_ctrl_t *const p_ctrl)

Angle Adjustment Process.

Parameters
[in]p_ctrlPointer to control structure.

◆ encoderCyclic

fsp_err_t(* motor_angle_api_t::encoderCyclic) (motor_angle_ctrl_t *const p_ctrl)

DEPRECATED Encoder Cyclic Process.

Parameters
[in]p_ctrlPointer to control structure.

◆ cyclicProcess

fsp_err_t(* motor_angle_api_t::cyclicProcess) (motor_angle_ctrl_t *const p_ctrl)

Cyclic Process. please

Parameters
[in]p_ctrlPointer to control structure.

◆ sensorDataSet

fsp_err_t(* motor_angle_api_t::sensorDataSet) (motor_angle_ctrl_t *const p_ctrl, motor_angle_ad_data_t *const p_ad_data)

Set sensor A/D data into the Motor_Angle.

Parameters
[in]p_ctrlPointer to control structure.
[in]p_ad_dataPointer to A/D conversion data

◆ estimatedComponentGet

fsp_err_t(* motor_angle_api_t::estimatedComponentGet) (motor_angle_ctrl_t *const p_ctrl, float *const p_ed, float *const p_eq)

Get estimated d/q-axis component from the Motor_Angle.

Parameters
[in]p_ctrlPointer to control structure.
[out]p_edMemory address to get estimated d-axis component
[out]p_eqMemory address to get estimated q-axis component

◆ infoGet

fsp_err_t(* motor_angle_api_t::infoGet) (motor_angle_ctrl_t *const p_ctrl, motor_angle_encoder_info_t *const p_info)

Get Encoder Calculate Information.

Parameters
[in]p_ctrlPointer to control structure.
[out]p_infoMemory address to get angle internal information

◆ parameterUpdate

fsp_err_t(* motor_angle_api_t::parameterUpdate) (motor_angle_ctrl_t *const p_ctrl, motor_angle_cfg_t const *p_cfg)

Update Parameters for the calculation in the Motor_Angle.

Parameters
[in]p_ctrlPointer to control structure.
[in]p_cfgPointer to configuration structure include update parameters.

◆ motor_angle_instance_t

struct motor_angle_instance_t

This structure encompasses everything that is needed to use an instance of this interface.

Data Fields
motor_angle_ctrl_t * p_ctrl Pointer to the control structure for this instance.
motor_angle_cfg_t const * p_cfg Pointer to the configuration structure for this instance.
motor_angle_api_t const * p_api Pointer to the API structure for this instance.

Typedef Documentation

◆ motor_angle_ctrl_t

typedef void motor_angle_ctrl_t

Motor Angle Control block. Allocate an instance specific control block to pass into the API calls.

Enumeration Type Documentation

◆ motor_sense_encoder_angle_adjust_t

Enumerator
MOTOR_SENSE_ENCODER_ANGLE_ADJUST_90_DEGREE 

Roter Angle Adjustment to pull in 90degree.

MOTOR_SENSE_ENCODER_ANGLE_ADJUST_0_DEGREE 

Roter Angle Adjustment to pull in 0degree.

MOTOR_SENSE_ENCODER_ANGLE_ADJUST_FINISH 

Roter Angle Adjustment Finish.

MOTOR_SENSE_ENCODER_ANGLE_ADJUST_OPENLOOP 

Roter Angle Adjustment Finish.

◆ motor_angle_open_loop_t

Enumerator
MOTOR_ANGLE_OPEN_LOOP_INACTIVE 

Openloop inactive.

MOTOR_ANGLE_OPEN_LOOP_ACTIVE 

Openloop active.

◆ motor_angle_error_t

Flag for induction correction error status

Enumerator
MOTOR_ANGLE_ERROR_NONE 

No error happen.

MOTOR_ANGLE_ERROR_INDUCTION 

Error happens in induction sensor correction process.