Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Current »

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.

The resistor-inductor circuit that is a motor acts as a relatively fast low pass filter between voltage and current. So at low to medium rotation rates, you can produce a sinusoidal current vector which rotates with the motor’s angle by inputting voltage vectors which rotate at the same rate as the motor’s angle.

The output of your current control loop will specify a voltage magnitude to be applied. This would be divided by the supply voltage and saturate at a 100%. Now instead of applying the duty cycle fully to whichever MOSFET would be dictated by the block commutation, you would multiply this duty cycle by your A,B,C sinusoids which are functions of theta.

This produces three duty cycles between -100% and +100%, which can then be output accordingly to the H-bridge. The downside to sinusoidal commutation is that at no point during sinusoidal commutation are you taking full advantage of your voltage range. This is because a voltage differential is being applied - the magnitude of the voltage does not matter, only the voltage difference between the three phases does. The phases do not span the full range of supply voltage possible. If we plot the voltage differential (highest voltage - lowest voltage), the maximum voltage being used is only 86.6% of what our voltage could do.

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.

Our voltage differential (in sinusoidal modulation) could theoretically be increased by 15.47% (shown below). This creates a new problem - while we would now be applying the max voltage differential our supply voltage could provide, we would also be required to command a duty cycle of 115% - which is impossible.

We need to command the voltage to high for 115% of the time - but on the other side of the circuit we are only commanding the other two phases to ground at a 58% duty cycle.

Accounting for the fact that the circuit dynamics will filter the PWM voltage into a pseudo-continuous voltage signal, the ability of the voltage differential to drive current would be the exact same for this location if instead of having the impossible 115% duty cycle and 58% duty cycle, we shifted all three phases down by 28.8% such that one was connected to high 86.6% of the time and the other two were connected to low 86.6% of the time.

In the same way, we see that when the points on the low side would be required to connect to ground a 115% of the time, we could shift the common voltage of the three up by 28.8% such that the three duty cycles were again 86.6%. So in order to bring the -115% sections up, and the +115% sections down, we will add a triangle wave with peaks at these locations to all three of our sinusoids.

Using this modulation scheme, we are taking full advantage of the voltage range made available to us, while keeping our required duty cycles at or below 100%.

  • No labels