FluxMapID

Description

This state includes an process for FluxMap identification. It is based on [1] and has been modified to fit into the ParameterID library of the UltraZohm. The desired range of the identified flux maps can be set in the d- and q-axis, with an input for the stepsize as well. From these input parameters, this state will create a rectangular grid. Each point of this grid will be set and reference currents will be given to an external current controller. This state needs some sort of current controller to work properly. It does not measure the needed signals to calculate the flux maps in each point. It only controls the triggering of the operating points. The necessary measurement vales can either be captured via the JavaScope or an external measurement device. For this purpose a trigger (when activeState = 403) signals the point of time, at which the measurement of this operating point can take place.

During operation, it is possible to automatically determine the current winding temperature, via identifying the current stator resistance and comparing it to a reference value at a set temperature. This guarantees that the measurements are only recorded when the motor has the same winding temperature. This can be turned off. The ID-state simply assumes then, that the winding temperature is constant.

Figure made with TikZ

Fig. 63 Schematic overview of the FluxMapID

Necessary measurement values

  • i_dq

  • v_dq

FluxMapID object

typedef struct uz_ParaID_FluxMapID_t uz_ParaID_FluxMapID_t

Object definition for uz_ParaID_FluxMapID_t.

FluxMapID config

struct uz_ParaID_FluxMapIDConfig_t

configuration struct for FluxMapID specific settings

Public Members

real32_T AMMsampleTime

settling time needed to collect all data in seconds

real32_T IDstart

start point of the id-steps

real32_T IDstepsize

stepsize of the id-steps

real32_T IDstop

end point of the id-steps

real32_T IQstart

start point of the iq-steps

real32_T IQstepsize

stepsize of the iq-steps

real32_T IQstop

end point of the iq-stops

real32_T R_s_ref

reference resistance for online identification in Ohm

real32_T Temp_ref

reference temperature, at which the reference resistance was measured

boolean_T start_FM_ID

flag to enable the automatic current control

boolean_T identR

flag to enable online identification

real32_T identRAmp

amplitude of the d-current injection signal for online identification of Rs in Amps

boolean_T select_dq

selected dq system for identification

boolean_T select_xy

selected xy system for identification

boolean_T select_zero

selected zero system for identification

real32_T lower_meas_temp

lower threshold for measurement

real32_T upper_meas_temp

upper threshold for measurement

FluxMapID output

struct uz_ParaID_FluxMapID_output_t

output struct of FluxMapID

Public Members

boolean_T external_Measurement_Flag

trigger to signal, when an external measurement equipment should measure

real32_T R_s

identified online resistance in ohm

real32_T WindingTemp

identified winding temperature of the stator

real32_T psi_array[4]

measurement values

uint32_T array_index

index of measurement point

FluxMapID functions

uz_ParaID_FluxMapID_t *uz_FluxMapID_init(void)

Initializes the uz_ParaID_FluxMapID_t object.

Returns

uz_ParaID_FluxMapID_t pointer to object

void uz_FluxMapID_step(uz_ParaID_FluxMapID_t *self)

steps the FluxMapID state once

Parameters
  • self – pointer to uz_ParaID_FluxMapID_t object

void uz_FluxMapID_set_Config(uz_ParaID_FluxMapID_t *self, uz_ParaID_FluxMapIDConfig_t Config)

Sets the config struct for the FluxMapID.

Parameters
  • self – uz_ParaID_FluxMapID_t pointer to object

  • Config – configuration struct for the FluxMapID

void uz_FluxMapID_set_ActualValues(uz_ParaID_FluxMapID_t *self, uz_ParaID_ActualValues_t ActualValues)

Sets the ActualValues struct for the FluxMapID.

Parameters
  • self – pointer to uz_ParaID_FluxMapID_t object

  • ActualValues – struct for the measurement values

void uz_FluxMapID_set_GlobalConfig(uz_ParaID_FluxMapID_t *self, uz_ParaID_GlobalConfig_t GlobalConfig)

Sets the GlobalConfig struct for the FluxMapID.

Parameters
  • self – pointer to uz_ParaID_FluxMapID_t object

  • GlobalConfig – struct for the general settings of the ParameterID

void uz_FluxMapID_set_ControlFlags(uz_ParaID_FluxMapID_t *self, uz_ParaID_ControlFlags_t *ControlFlags)

Sets the ControlFlags struct for the FluxMapID.

Parameters
  • self – pointer to uz_ParaID_FluxMapID_t object

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

bool uz_FluxMapID_get_enteredFluxMapID(uz_ParaID_FluxMapID_t *self)

Gets the status of the enteredFluxMapID flag.

Parameters
  • self – pointer to uz_ParaID_FluxMapID_t object

Returns

true state has been entered

Returns

false state hasn’t been entered

bool uz_FluxMapID_get_finishedFluxMapID(uz_ParaID_FluxMapID_t *self)

Gets the status of the finishedFluxMapID flag.

Parameters
  • self – pointer to uz_ParaID_FluxMapID_t object

Returns

true state has finished

Returns

false state hasn’t finished

uz_ParaID_Controller_Parameters_output_t *uz_FluxMapID_get_FOC_output(uz_ParaID_FluxMapID_t *self)

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

Parameters
  • self – pointer to uz_ParaID_FluxMapID_t object

Returns

uz_ParaID_Controller_Parameters_output_t* pointer to the FOC controller parameters struct

uz_ParaID_FluxMapID_output_t *uz_FluxMapID_get_output(uz_ParaID_FluxMapID_t *self)

Gets the pointer to the output struct of the FluxMapID.

Parameters
  • self – pointer to uz_ParaID_FluxMapID_t object

Returns

uz_ParaID_FluxMapID_output_t* pointer to the output struct

Sources

1

Automatisierte Identifikation nichtlinearer Flusskennfelder permanenterregter Synchronmaschinen, Michael Hoerner, 2018