Skip to main content
Firmware Stable

Driving an ACIM (AC induction machine)

The induction motor is outside the primary focus of our customers. Nevertheless, our driver is well suited for this type of motor. There are two supported methods:

  • U/f mode. This is the simple, widely recognized control method, commonly referred to as "variable frequency drive" for induction motors. The frequency is coupled to the output voltage. This method is easy to configure, offers a stable operation, but only the voltage mode is supported. Current control / torque control is provided indirectly, through imult command / iref parameter.

  • FOC mode. Employs the full FOC with axes separation, working with the slip angle and enabling more precise control. With this type, the induction motor achieves most of the drive modes we normally introduce for a PMSM.

How to configure​

tip

Automatic identification is not limited for this type of motor. We recommend consulting our technical support team for assistance.

warning

(Driver 5 and below) An induction machine was declared with psi = 0, and the sensored slip was tuned through /driver/rest/omega. In driver 6 both moved to psi: a negative value declares the machine and its magnitude is the rotor time constant. Re-declare and re-tune when migrating.

For U/F mode​

  • set /driver/psi to minus the rotor time constant in seconds (e.g. -0.2); the negative sign declares an induction machine. In U/f mode the magnitude is not used, so -1 is fine here.

  • set /driver/prest to 00 (asynchronous mode - decouple the field angle from the rotor: execute reinit 0 to make run-time reinitialization).

  • set /driver/vcf to 1212 (disable current control in direct axis, choosing VFD mode). You may experiment with values of 4 and 8 for directional preferences.

  • set /driver/dac/dxc to 2/2\sqrt{2}/2 (roughly 0.7070.707) set direct axis current limit to match the quadrature axis current limit.

  • set /driver/dac/mtk to 00. Alternatively, use a nonzero /driver/dac/mtk to achieve a degree of torque control: the excitation current then follows the load, and mtk sets how quickly.

  • set /driver/rest/omega to the desired ratio rr between the voltage and the frequency. It can be calculated with this equation:

    r=2π⋅fUstator,RMS⋅2/3r = \frac{2\pi \cdot f}{U_{stator,RMS} \cdot \sqrt{2/3}}

    where ff is the rated electrical frequency and Ustator,RMSU_{stator,RMS} is the rated phase-to-phase RMS voltage. The motor manufacturer should specify those ratings.

tip

A fine tuning by hand might be advisory for /driver/rest/omega, as different vendors rate motors differently. The tuning goal is to find the minimum viable current magnitude of unloaded motor (in voltage drive command). However, increasing omega too much will severe the dynamics and efficiency. Usually, a 20-30% upper margin for the calculated omega is advisory when the vendor provides ratings under load (e.g. value of 32 will yield into 40, etc).

For FOC mode​

  • set /driver/psi to minus the rotor time constant in seconds (e.g. -0.2; nameplate or datasheet value Lr/RrL_r / R_r, typically 0.05 to 1 s). The negative sign declares an induction machine, the magnitude sets the slip law.
  • set /driver/prest to the value representing your motor sensor (usually, a quadrature encoder: execute reinit 10 to make run-time reinitialization).
    • For a quadrature encoder, set the correct ppr.
    • Provide sensor mapping in /rest/ folder manually, or execute identrun to map the encoder to the motor automatically. Note that successful spin-up of an induction machine might be tricky to tune.
    • For an encoder, rpole can be auto-identified with the identrun procedure as long as the encoder's resolution is more than 360 ppr. Other sensors work as usual.
  • set /driver/vcf to 22 to prefer the flux axis voltage feed and prevent saturation. This will silence the motor at higher speeds.
  • set /driver/dac/mtk to 00 and /driver/dac/dxc to the motor's no-load current as a fraction of iref (nameplate value, typically 0.3 to 0.5): the excitation is then constant, which is the standard field-oriented choice and keeps the slip law exact. A nonzero mtk lets the excitation follow the load instead (lower losses at light load, but the torque response after idling is delayed by the rotor time constant); 2/2\sqrt{2}/2 is the maximum-torque-per-ampere split at rated current only and over-excites at light load.
  • fine-tune the rotor time constant (the magnitude of /driver/psi) if the nameplate value is uncertain:
    1. Start with a large magnitude (e.g. -2) and feed a drive command in voltage mode (e.g. run 0.1) with a moderate iref, relative to the motor size. The motor should barely spin. If it spins freely, the sensor is not properly identified.
    2. Observe the D-Q currents and gradually decrease the magnitude until the motor starts to spin properly.
    3. Continue until the current stops decreasing proportionally to your steps (optionally, contact siliXcon to help with this step).
    4. Evaluate the drive, and optionally fine-tune the value to find the sweet spot for your operating point. A hot rotor has a shorter time constant than a cold one.
tip

With mtk = 0 the induction machine behaves like a PMSM with a constant excitation, so all siliXcon drive modes can be used with the highest dynamics.

A nonzero mtk selects the load-following excitation instead: the excitation current tracks the torque current, capped at dxc * iref. This is the established loss-minimising strategy for induction drives that run long hours at partial load (pumps, fans, compressors, conveyors, cruising traction), where the rated excitation would only heat the machine. It costs torque response: after idling the flux has to be rebuilt through the rotor time constant before torque is available, and the torque margin at high speed is reduced. Use it where light-load efficiency matters more than response.

Limitations​

  • Please use only VECTOR algorithm. BLDC has no use for this type of motor.
  • For the ACIM in FOC mode, sensorless mode is not supported at the moment. You need to provide a shaft sensor.