RA Flexible Software Package Documentation  Release v5.2.0

 
Motor position Interface

Detailed Description

Interface for motor position functions.

Summary

The Motor position interface for getting the speed references from Encoder Sensor

Data Structures

struct  motor_position_info_t
 
struct  motor_position_cfg_t
 
struct  motor_position_api_t
 
struct  motor_position_instance_t
 

Typedefs

typedef void motor_position_ctrl_t
 

Enumerations

enum  motor_position_ctrl_mode_t
 

Data Structure Documentation

◆ motor_position_info_t

struct motor_position_info_t

Position information

Data Fields
uint8_t u1_state_position_profile Position control profile state.
int16_t s2_position_degree Position data [degree].

◆ motor_position_cfg_t

struct motor_position_cfg_t

Configuration parameters.

Data Fields
void const * p_context Placeholder for user data.
void const * p_extend

◆ motor_position_api_t

struct motor_position_api_t

Functions implemented at the HAL layer will follow these APIs.

Data Fields

fsp_err_t(* open )(motor_position_ctrl_t *const p_ctrl, motor_position_cfg_t const *const p_cfg)
 
fsp_err_t(* close )(motor_position_ctrl_t *const p_ctrl)
 
fsp_err_t(* reset )(motor_position_ctrl_t *const p_ctrl)
 
fsp_err_t(* positionGet )(motor_position_ctrl_t *const p_ctrl, int16_t *const p_position)
 
fsp_err_t(* positionSet )(motor_position_ctrl_t *const p_ctrl, float const position_rad)
 
fsp_err_t(* positionReferenceSet )(motor_position_ctrl_t *const p_ctrl, int16_t const position_reference_deg)
 
fsp_err_t(* controlModeSet )(motor_position_ctrl_t *const p_ctrl, motor_position_ctrl_mode_t const mode)
 
fsp_err_t(* positionControl )(motor_position_ctrl_t *const p_ctrl)
 
fsp_err_t(* ipdSpeedPControl )(motor_position_ctrl_t *const p_ctrl, float const ref_speed_rad, float const speed_rad, float *const p_iq_ref)
 
fsp_err_t(* speedReferencePControlGet )(motor_position_ctrl_t *const p_ctrl, float *const p_speed_ref)
 
fsp_err_t(* speedReferenceIpdControlGet )(motor_position_ctrl_t *const p_ctrl, float const max_speed_rad, float *const p_speed_ref)
 
fsp_err_t(* speedReferenceFeedforwardGet )(motor_position_ctrl_t *const p_ctrl, float *const p_speed_ref)
 
fsp_err_t(* infoGet )(motor_position_ctrl_t *const p_ctrl, motor_position_info_t *const p_info)
 
fsp_err_t(* parameterUpdate )(motor_position_ctrl_t *const p_ctrl, motor_position_cfg_t const *const p_cfg)
 

Field Documentation

◆ open

fsp_err_t(* motor_position_api_t::open) (motor_position_ctrl_t *const p_ctrl, motor_position_cfg_t const *const p_cfg)

Initialize the Motor Position Module.

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

◆ close

fsp_err_t(* motor_position_api_t::close) (motor_position_ctrl_t *const p_ctrl)

Close (Finish) the Motor Position Module.

Parameters
[in]p_ctrlPointer to control structure.

◆ reset

fsp_err_t(* motor_position_api_t::reset) (motor_position_ctrl_t *const p_ctrl)

Reset(Stop) the Motor Position Module.

Parameters
[in]p_ctrlPointer to control structure.

◆ positionGet

fsp_err_t(* motor_position_api_t::positionGet) (motor_position_ctrl_t *const p_ctrl, int16_t *const p_position)

Get Position data.

Parameters
[in]p_ctrlPointer to control structure.
[out]p_positionPointer to get position data

◆ positionSet

fsp_err_t(* motor_position_api_t::positionSet) (motor_position_ctrl_t *const p_ctrl, float const position_rad)

Set Position data from Encoder.

Parameters
[in]p_ctrlPointer to control structure.
[in]position_radPosition data [radian]

◆ positionReferenceSet

fsp_err_t(* motor_position_api_t::positionReferenceSet) (motor_position_ctrl_t *const p_ctrl, int16_t const position_reference_deg)

Set (Input) Position reference into the Motor Position Module.

Parameters
[in]p_ctrlPointer to control structure.
[in]position_refernce_degPosition reference [degree]

◆ controlModeSet

fsp_err_t(* motor_position_api_t::controlModeSet) (motor_position_ctrl_t *const p_ctrl, motor_position_ctrl_mode_t const mode)

Set (Input) Position Control Mode.

Parameters
[in]p_ctrlPointer to control structure.
[in]modePosition Control Mode

◆ positionControl

fsp_err_t(* motor_position_api_t::positionControl) (motor_position_ctrl_t *const p_ctrl)

Calculate internal position reference

Parameters
[in]p_ctrlPointer to control structure.

◆ ipdSpeedPControl

fsp_err_t(* motor_position_api_t::ipdSpeedPControl) (motor_position_ctrl_t *const p_ctrl, float const ref_speed_rad, float const speed_rad, float *const p_iq_ref)

Calculate iq reference

Parameters
[in]p_ctrlPointer to control structure.
[in]ref_speed_radSpeed Reference [rad/sec]
[in]speed_radCurrent Speed [rad/sec]
[out]p_iq_refPointer to get iq reference

◆ speedReferencePControlGet

fsp_err_t(* motor_position_api_t::speedReferencePControlGet) (motor_position_ctrl_t *const p_ctrl, float *const p_speed_ref)

Get Speed Reference by P Control

Parameters
[in]p_ctrlPointer to control structure.
[out]p_speed_refPointer to get speed reference

◆ speedReferenceIpdControlGet

fsp_err_t(* motor_position_api_t::speedReferenceIpdControlGet) (motor_position_ctrl_t *const p_ctrl, float const max_speed_rad, float *const p_speed_ref)

Get Speed Reference by IPD Control

Parameters
[in]p_ctrlPointer to control structure.
[out]p_speed_refPointer to get speed reference

◆ speedReferenceFeedforwardGet

fsp_err_t(* motor_position_api_t::speedReferenceFeedforwardGet) (motor_position_ctrl_t *const p_ctrl, float *const p_speed_ref)

Get Speed Reference by Speed Feedforward

Parameters
[in]p_ctrlPointer to control structure.
[out]p_speed_refPointer to get speed reference

◆ infoGet

fsp_err_t(* motor_position_api_t::infoGet) (motor_position_ctrl_t *const p_ctrl, motor_position_info_t *const p_info)

Get Position information.

Parameters
[in]p_ctrlPointer to control structure.
[out]p_infoPointer to get information

◆ parameterUpdate

fsp_err_t(* motor_position_api_t::parameterUpdate) (motor_position_ctrl_t *const p_ctrl, motor_position_cfg_t const *const p_cfg)

Update Parameters for the calculation in the Motor Position Module.

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

◆ motor_position_instance_t

struct motor_position_instance_t

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

Data Fields
motor_position_ctrl_t * p_ctrl Pointer to the control structure for this instance.
motor_position_cfg_t const * p_cfg Pointer to the configuration structure for this instance.
motor_position_api_t const * p_api Pointer to the API structure for this instance.

Typedef Documentation

◆ motor_position_ctrl_t

typedef void motor_position_ctrl_t

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

Enumeration Type Documentation

◆ motor_position_ctrl_mode_t

Position Control Mode