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. 282 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#