Driving an IPM motor
The ESCx controllers are well-suited for driving IPMSM (Interior Permanent Magnet Synchronous Machine) motors and leverage the advantages of their construction. Two distinct features are utilized to expand the operating range:
- reluctance torque,
- flux weakening.
Please refer to the flux control documentation to understand the built-in mechanisms.
info
- siliXcon controllers leverage inherent mathematical properties and perform natural automatic flux weakening together with MTPA/MTPW. Unlike competing solutions, no mapping functions or lookup tables are required (unless explicitly needed by the application).
- siliXcon implements a safety mechanism that attempts to stop the motor when the driver enters FREEWHEEL mode, even if the motor sensor is incorrectly identified.
- With an external capacitor bank, the controller can be configured to regenerate power from the spinning motor for self-field-weakening. This configuration requires assistance from siliXcon-please contact us for support.
tip
- Nominal speed is the maximum speed of the motor without flux weakening (e.g.,
/driver/dac/fwcset to 0) at a given DC voltage. - Sensorless control may not achieve maximum performance, as IPM motor parameters are highly non-linear and vary with the operating point, making them difficult to model accurately within the sensorless observer.
- For assistance with advanced tuning, contact our technical support team.
Configuration steps
- Perform basic identification according to this guide.
- Evaluate the drive according to this guide.
- Verify that the motor sensor operates seamlessly and the motor spins without issues at its nominal speed.
- Set the axis prioritization parameter for IPM motor control (
/driver/vcf) to the value 2. Open siliTune for easy run-time parameter access for the next steps. - Set
rposto a safe value to limit mechanical speed and prevent motor damage. Ensure that the pole pair count (pp) is properly configured (note that the limitation may still not be effective unless the sensor delay compensated). - To exceed the nominal speed, gradually increase the flux weakening current limit
fwcfrom zero and evaluate the maximum speed. This parameter can be adjusted at runtime. Always check if the motor can be stopped with 'STOP' commadnd. - Observe the Q-axis current (
/driver/motor/currentqfor in siliWatch) at each step-it should never drop below zero. If the Q-axis current approaches or drops below zero at high speeds, this likely indicates sensor phase delay. Increase the delay compensation parameteredcin small increments until the Q-axis current remains stable above zero. A properly configured sensor will result in smooth acceleration and deceleration in both directions and smooth transitions from/to field weakening zone. - Leave the flux weakening current limit
fwcat your desired value (typically up to 0.707, which equals v2/2) and re-evaluate the drive once again. - Finally, set the reluctance current limit
dxcto increase torque at low speeds (typically up to 0.707, which equals v2/2) and re-evaluate the drive. - A full loading test can be done at this moment.
warning
- IPM motors are more sensitive to proper tuning, and safety concerns must be evaluated carefully. An incorrectly identified motor sensor can result in unintended acceleration or uncontrollable spinning. Speed limiters may be ineffective, and the motor may accelerate until mechanical failure occurs.
- Turning off the controller during flux weakening must be avoided at all costs during the tuning, as it can cause permanent damage.
- Never disconnect the battery during active motor control, unless safety mechanisms have been installed (such as active snubber or auto-generated flux weakening).