FrictionID#

Description#

This state includes an automated identification process for different friction/torque parameters. It is based on [[1]] and has been modified to fit into the ParameterID library of the UltraZohm. The breakaway torque \(M_{break}\), coloumb torque \(M_{coul}\), and viscous friction torque \(d_{fric}\) will be identified. This state requires some sort of speed control.

Figure made with TikZ

Fig. 283 Schematic overview of the FrictionID

Necessary measurement values#

  • i_dq

  • omega_m

FrictionID object#

typedef struct uz_ParaID_FrictionID_t uz_ParaID_FrictionID_t#

Object definition for uz_ParaID_FrictionID_t.

FrictionID config#

struct uz_ParaID_FrictionIDConfig_t#

configuration struct for FrictionID specific settings

Public Members

uint16_T BrkCount#

amount of unique breakaway attempts

uint16_T N_Brk#

amount of breakaway identification values

uint16_T N_Visco#

amount of viscous friction identification values

real32_T StepScale#

scales the steps for breakaway torque. Factor in % of rated current of the motor. Should be chosen as small as possible

real32_T n_eva_max#

maximum measuring speed in rpm

real32_T eta#

steady state speed threshold in percent

real32_T maxCurrent#

max current for identification

FrictionID output#

struct uz_ParaID_FrictionID_output_t#

output struct of FrictionID

Public Members

real32_T measArrayTorque[256]#

measured torque values for friction curve

real32_T BrkTorque#

identified breakaway torque in Nm

real32_T CoulTorque#

identified coloumb torque in Nm

real32_T ViscoTorque#

identified viscous friction in Nms/rad

FrictionID functions#

uz_ParaID_FrictionID_t *uz_FrictionID_init(void)#

Initializes the uz_ParaID_FrictionID_t object.

Returns:

uz_ParaID_FrictionID_t* pointer to object

void uz_FrictionID_step(uz_ParaID_FrictionID_t *self)#

steps the FrictionID state once

Parameters:
  • self – pointer to uz_ParaID_FrictionID_t object

void uz_FrictionID_set_Config(uz_ParaID_FrictionID_t *self, uz_ParaID_FrictionIDConfig_t Config)#

Sets the config struct for the FrictionID.

Parameters:
  • self – pointer to uz_ParaID_FrictionID_t object

  • Config – configuration struct for FrictionID

void uz_FrictionID_set_ActualValues(uz_ParaID_FrictionID_t *self, uz_ParaID_ActualValues_t ActualValues)#

Sets the ActualValues struct for the FrictionID.

Parameters:
  • self – pointer to uz_ParaID_FrictionID_t object

  • ActualValues – struct for the measurement values

void uz_FrictionID_set_GlobalConfig(uz_ParaID_FrictionID_t *self, uz_ParaID_GlobalConfig_t GlobalConfig)#

Sets the GlobalConfig struct for the FrictionID.

Parameters:
  • self – pointer to uz_ParaID_FrictionID_t object

  • GlobalConfig – struct for the general settings of the ParameterID

void uz_FrictionID_set_ControlFlags(uz_ParaID_FrictionID_t *self, uz_ParaID_ControlFlags_t *ControlFlags)#

Sets the ControlFlags struct for the FrictionID.

Parameters:
  • self – pointer to uz_ParaID_FrictionID_t object

  • ControlFlags – pointer to the struct with the enable signals of the ParameterID

bool uz_FrictionID_get_enteredFrictionID(uz_ParaID_FrictionID_t *self)#

Gets the status of the enteredFrictionID flag.

Parameters:
  • self – pointer to uz_ParaID_FrictionID_t object

Returns:

true state has been entered

Returns:

false state hasn’t been entered

bool uz_FrictionID_get_finishedFrictionID(uz_ParaID_FrictionID_t *self)#

Gets the status of the finishedFrictionID flag.

Parameters:
  • self – pointer to uz_ParaID_FrictionID_t object

Returns:

true state has finished

Returns:

false state hasn’t finished

uz_ParaID_Controller_Parameters_output_t *uz_FrictionID_get_FOC_output(uz_ParaID_FrictionID_t *self)#

Gets the pointer to the output controller struct of the FrictionID.

Parameters:
  • self – pointer to uz_ParaID_FrictionID_t object

Returns:

uz_ParaID_Controller_Parameters_output_t* pointer to the FOC controller parameters struct

uz_ParaID_FrictionID_output_t *uz_FrictionID_get_output(uz_ParaID_FrictionID_t *self)#

Gets the pointer to the output struct of the FrictionID.

Parameters:
  • self – pointer to uz_ParaID_FrictionID_t object

Returns:

uz_ParaID_FrictionID_output_t* pointer to the output struct

Sources#