Case Study – Motor Control Application Designing advanced DSP applications on the Kinetis Cortex-M4 MCU
In this case study we will look closer at a motor control application, where the use of the Kinetis MCU is suitable.
Firmen zum Thema
Sinusoidal PM (permanent magnet) synchronous motors have become more popular for new drives. They replace brushed DC, universal, and other motors in a wide application area. It has better reliability (no brushes), better efficiency, lower acoustic noise, and other benefits for electronic control.
A disadvantage of PM synchronous motor drives might be the need for a more sophisticated electronic circuit. But today, applications need electronic speed, torque regulation, and other features that need electronic control anyway.
An actual trend that is visible mainly in the appliance market segment, tends to remove costly speed and position sensors such as encoders or resolvers and replace them by sophisticated rotor position estimation algorithms that utilize the computation performance of the MCU (sensorless control techniques). Also, instead of expensive current transducers the more price-optimized shunt resistors can be selected together with the power of the MCU that is used here for signal filtering.
Vector control algorithm
High-performance motor control is characterized by smooth rotation over the entire speed range of the motor, full torque control at zero speed, and fast acceleration and deceleration. To achieve such control, vector control (sometimes also referred as Field oriented control) techniques are used for PM synchronous motors.
The basic idea of the vector control algorithm is to decompose a stator current into a magnetic field-generating part and a torque-generating part. Both components can be controlled separately after decomposition. The structure of the motor controller is then as simple as for a separately excited DC motor.
The overview block diagram of the control algorithm is illustrated in figure 1. The aim of this control is to regulate the motor speed at a predefined level. The speed command value is set by high-level control. The algorithm is executed in two control loops. The fast inner control loop is executed with a hundred µsec period range. The slow outer control loop is executed with a period of msec range.
Fast control loop
The fast control loop executes two independent current control loops. They are the direct and quadrature-axis current (isd,isq) PI controllers. The direct-axis current (isd) is used to control the rotor magnetizing flux. The quadrature-axis current (isq) corresponds to the motor torque. The current PI controllers’ outputs are summed with the corresponding d and q axis components of the decoupling stator voltage.
Thus, the desired space vector for the stator voltage is obtained and then applied to the motor. The fast control loop executes all the necessary tasks to achieve an independent control of the stator current components. These include:
- Three-phase current reconstruction
- Forward Clark transformation
- Forward and backward Park transformations
- Rotor magnetizing flux position evaluation
- DC-bus voltage ripple elimination
- Space vector modulation (SVM)
The slow control loop executes the speed controller, field weakening control and lower priority control tasks. The PI speed controller output sets a reference for the torque producing quadrature axis component of the stator current iq_ref and flux producing current id_ref.