Skip to main content
Version: 3.0.x

Identification

Motor identification guide

Identification commands

spinup [acceleration] [time] [current]

Spins up motor in the synchronous mode with given [acceleration], for given [time] and with given amplitude of [current]. When spin-up ends, motor freewheels. Units and default values of parameters are same as for identrun. The command returns zero if all the process was successfuly finished.

identlin <options> [samples] [current]

IDENtify LINear - attempts to identify some of the electrical parameters of the motor (phase resistance RdR_d, inductance LdL_d, LqL_q and inductance derating DddD_{dd}, DqdD_{qd}). Obtained values are printed into terminal window and saved as corresponding parameters in /driver/motor/.

If parameters are given, the default ones are overriden:

  • [samples] - [-]; default value is 10 000. Number of measured cycles for one measurement. The higher value, the better the precission, but lower the speed.
  • [current] - [A]; default value is iref/2. Amplitude of phase current used for measurement.

Options

  • -n - attempt to identify non-linear motor parameters (/driver/motor/Da, /driver/motor/Dc)

Remarks

Note that the rotor is auto-positioned into different angles during the procedure. The rotor must be free from load and the time and current values must be chosen properly for good results.

identrun <options> [acceleration] [time] [current]

IDENTify RUNtime - attempts to identify some motor parameters during the freeweeling. Typically, rotor angle sensor parameters and flux linkage (KV) of the motor is measured. The motor accelerates (spins-up) in the synchronous mode by [acceleration] for [time] and with [current]. When the spinup finishes, the motor is left to freewheel, until it stops. During the freewheeling phase, the main motor constant /driver/motor/psi and related motor sensor parameters in /driver/rest/ are identified. The procedure progress is displayed int the terminal and measured curves are presented in the scope window. The command returns zero if all the process was successfuly finished.

If parameters are given, the default ones are overriden:

  • [acceleration] - [erad/s^2]; default value 100. Rotor angular acceleration during the spinup phase. If the value is 0, the spinup phase is skipped and the algorithm presumes a back-driven motor. This is useful for identification where sycnrhnonous spin-up is not possible.
  • [time] - [ms]; default value is 4000. Time of acceleration during identrun spinup phase.
  • [current] - [A]; default value is iref/4. Amplitude of phase current during identrun spunup phase.

Options

  • -q - be quiet (do not plot identification data to the scope after measurement)
  • -k - keep the scope (do not reset defaults) before data plot

Remarks

Note that the successful synchronous spinup is crucial for good results. Spinup requires the rotor free from load. The acceleration, time and current arguments must be adjusted according to the system dynamic parameters.

Measured data sharing:

  • if the command finds any of the writable int16 array named idata1A, idata1B, idata1C with size of at least 360 elements each, the sensor identification data will be written there. The index of each array correspond to the sensor angular degree.
  • if the command finds any of the writable int16 array named idata2A, idata2B, idata2C with size of at least 640 elements each, the motor identification data will be written there. The BEMF voltage of each single motor phase corresponds to each single array. The sampling rate is 20kHz.

identsat <options> [samples] [current]

Measures the dependency of stator inductances LdL_d, LqL_q on the current IqI_q and IdI_d.. This command identifies no parameters. The procedure progress is displayed int the terminal and measured curves are presented in the scope window. The command returns zero if all the process was successfuly finished.

If parameters are given, the default ones are overriden:

  • [samples] - [-]; default value is 100. Number of measured cycles for one measurement. The higher value, the better the precission, but lower the speed.
  • [current] - [A]; default value is iref/4. Amplitude of phase current used for measurement.

Options

  • -q - be quiet (do not plot identification data to the scope after measurement)
  • -k - keep the scope (do not reset defaults) before data plot

Remarks

The rotor is auto-positioned into different angles during the procedure. The rotor must be free from load and the time and current values must be chosen properly for good results.

Measured data sharing

  • if the command finds any of the writable int16 array named idata1A, idata1B, idata1C, idata2A, idata2B, idata2C with size of at least 400 elements each, the measured D-axis (for idata1X) and Q-axis (for idata2X) inductance values will be written there. The index of each array correspond to the 0.25% of the iref current. Each single motor phase corresponds to each single array.

identsal <options> [samples] [current]

Measures the saliency (the dependency of LdL_d, LqL_q on the rotor position). This command identifies no parameters. The procedure progress is displayed int the terminal and measured curves are presented in the scope window. The command returns zero if all the process was successfuly finished.

If parameters are given, the default ones are overriden:

  • [samples] - [-]; default value is 100. Number of measured cycles for one measurement. The higher value, the better the precission, but lower the speed.
  • [current] - [A]; default value is iref/4. Amplitude of phase current used for measurement.

Options

  • -q - be quiet (do not plot identification data to the scope after measurement)
  • -k - keep the scope (do not reset defaults) before data plot

Remarks

The rotor is auto-positioned into different angles during the procedure. The rotor must be free from load and the time and current values must be chosen properly for good results.

Measured data sharing

  • if the command finds any of the writable int16 array named idata1A, idata1B, idata1C with size of at least 360 elements each, the measured inductance values will be written there. The index of each array correspond to the rotor electrical degree.