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. 64 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

1

Automatic identification of the frictional behaviour of permanent magnet synchronous machines, Philipp Gebhardt, 2018