Resources |
---|
Space Vector Modulation (SVM) is a common technique in field-oriented control for induction motors and BLDC motors. Space vector modulation is responsible for generating pulse width modulated signals to control the switches of an inverter, which then produces the required modulated voltage to drive the motor at the desired speed or torque. It is also known as Space Vector Pulse Width Modulation (SVPWM).
SVM has more advantages over sinusoidal pulse width modulation as it utilizes the DC voltage more effectively and creates a higher voltage output to the motor.
The Clarke Transformation
Our three phase current (yellow) and magnetic field (blue) vectors can be described on the 2D plane as shown below -
It is also possible to describe the result of these mag. field vectors as a 2D vector -
Theoretically, we could generate any resultant vector from just two phases. This is the idea behind the Clarke Transformation. The Clarke transformation describes the move from the A,B,C windings to the alpha-beta frame as shown.
(KCL can be used to derive the above vector equation).
This gives us the equations for the currents in alpha and beta.
The Clarke Transformation describes the equivalent induction of a three-phase motor in two directions.
Now we are going to take this two-axis representation and analyze it from the perspective of the rotor. This will be done through Park Transformation.
The Park Transformation
We will start by creating another reference frame that will turn with the rotor. By convention, the axes are referred to as D(direct) and Q(quadrature).
The direct axis points in the direction of the rotor’s magnetic field, whereas the quadrature axis is 90 deg counterclockwise of it. So, a magnetic field induced in the positive Q direction will produce a a CCW torque and vice versa. A magnetic field induced in the positive D direction corresponds to strengthening the magnetic field of the rotor. A field induced in the negative D direction will weaken the field. Since the DQ axis keeps the same origin as the alpha and beta axis, we can describe a transformation between the two as a rotation matrix -
This gives us the currents in the Q and D directions -
Where theta angle is the angle between the alpha and D axes.
From the Clarke and Park Transformations - if we want to optimize the amount of torque we are getting based on the current in, we want the current to point in the Q axis direction.
At the beginning of the rotation of the motor, we are perfectly aligned with the Q axis and are optimally generating torque.
However, as we move across the remainder of the Hall sector, our direction of current is no longer aligned with the Q axis.
We can see that throughout the commutation process, we are only perfectly aligned with the Q axis at the very centre of each Hall sector. As we get closer to the edges of the Hall sector, more of our current points in the +/-D direction. This causes the amount of torque we are producing to oscillate up and down to create torque ripple.
Closed Loop Control
Say you wanted to control the angle of your motor. You could pass a given reference position to your controller. The controller would look at the error between the orientation of the rotor and the specified reference position. It would then command a torque to the motor to turn it to the desired position. Torque is proportional to current, so the controller is commanding a current to the motor.
We need a second nested controller to dictate the current passed to the motor, based on the first controller, which passes a current reference to the nested controller. It then compares it to the current we have running through the motor, and modulates the voltage being applied to the motor phases based on the error between the actual current and desired current.
It is useful to think of the current as a vector in a polar reference frame (rotation angle and magnitude). The magnitude of the current commanded and the voltage applied are functions of the error terms going into the controllers, and the angle at which they are applied is a function of the orientation of the DQ axis and thus the rotor’s position. These two variables are separately controlled. The magnitude of the vector will be determined by the feedback control loop. Meanwhile, the angle of application will be a function of rotor angle and will be controlled by the chosen method of commutation and PWM to the H-bridge.
If you were using 6-block commutation with your feedback controller, your current controller would look at the current running through your motor, would then compare it to the reference that has been provided, and then generate the magnitude of the voltage signal to be applied, which would then be used to find the duty cycle to be applied to the MOSFETs of the H-bridge.
SVM
Just like with sinusoidal modulation, space vector modulation maintains a voltage differential which rotates with the motor angle to stay in line with the Q axis.
However, it takes full advantage of your supply voltage.
The goal is to create three-phase voltages that are required to drive our PMSM motor, by way of using a three-phase inverter, which takes as an input a constant DC voltage. For properly converting DC to AC power, we need to control the on and off states of the inverter switches along with their switching sequence.