How to Design Motor Controllers Using Simscape Electrical, Part 5: An Alternative Implementation of PWM Control
From the series: How to Design Motor Controllers Using Simscape Electrical
Melda Ulusoy, MathWorks
This video demonstrates how you can modulate the three-phase voltages directly using PWM control. The commutation logic is modeled such that the commutating phases switch between a positive and negative DC source voltage in a complementary fashion. This way the three-phase voltages seen by the motor are being averaged. The back-EMF voltages in the non-commutating phase help us estimate the approximate value of the averaged phase voltage.
Download the model used in this video.
In the previous video, we talked about this architecture which implements a PWM-controlled buck converter to control a BLDC motor at varying speeds. In this video, we’ll show you an alternative implementation of PWM control, which we also discussed in detail in our third motor control Tech Talk video.
What makes the second architecture different from the first one is that it doesn’t use a buck converter to step down the DC source voltage but instead it modulates the three-phase voltages directly. We’ll now start off with this model, which already contains subsystems such as the controller, three-phase inverter, BLDC, and sensor. Feel free to check out our previous videos to learn how you can build these subsystems using blocks from the Simscape Electrical library.
In the first architecture, we implemented PWM control under the buck converter subsystem. In this new architecture that we’re going to build, we’ll implement PWM control under commutation logic, where we compute the switching pattern to be sent to the three-phase inverter. So, let’s go into this subsystem.
Here, we see what we eventually want to achieve with this implementation. We want to modulate the three-phase voltages by taking the DC source voltage, which is 500 volts in this case, and using it to switch the voltages of the commutating phases between these two values— plus or minus half the DC source voltage. This way the effective voltage seen by the motor gets averaged.
The current logic we have represents the one we built in the third video, but it doesn’t do any phase switching. If we used this logic, the commutating phases would be energized with a constant voltage throughout the corresponding sector. In order to switch the phases correctly with PWM control as seen here, now we’ll modify this logic.
Note that during each PWM period, the commutating phases are switched between + and −250 volts in a complementary fashion. For example, during this period where we commutate phases A and B, while we drive phase A with positive voltage, phase B is driven with negative voltage and vice versa. To implement this, we first duplicate all of these blocks with the switching patterns and then reverse the bits of the commutating phases. For example, to reverse this switching pattern, we simply flip the 1s and 0s in the commutating phases A and C. After completing this for the remaining switching patterns, now we add a PWM generator and a switch and connect these together like this.
The input to the PWM generator is the duty cycle computed by the controller. So, we go up and input this signal to the commutation logic, which automatically creates an input port in the subsystem. We then set the PWM frequency and sample time, which has been predefined in the MATLAB workspace. Next, we update the switching threshold to a positive value. This way, during the on time of PWM signal, we’ll pass a switching pattern from this section based on the current sector and in the rest of the PWM cycle we’ll pass the complementary pattern.
Now, this logic takes care of the phase switching properly. To see if it works correctly, let’s simulate this model and take a look at the logged signals. We see that the speed tracking is pretty good. The measured speed is shown in orange which makes it a little hard to see the desired speed that’s in green. This plot shows the DC source voltage of 500 volts, and here we see how it’s switched between + and −250 volts for the commutating phases. As a result of this switching, the motor will see an averaged voltage which will be similar to what’s shown with the dashed line.
Note that the back-EMF voltage seen in the non-commutating phase helps us estimate the approximate effective voltage that is seen by the motor. For example, right before phase A is commutated, we read a back-Emf voltage of −25 volts. So, we can say that the effective phase A voltage seen by the motor is around −25 volts throughout this region. Using the same logic, we can show the approximate back-EMF voltages for phases A, B, and C as seen in here with the dashed lines.
In summary, in this video we built a model to implement PWM control to directly modulate the three-phase voltages to a BLDC motor for controlling its speed at varying values. For more information on BLDC motor control, check out the links below this video.
Download Code and Files
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
- América Latina (Español)
- Canada (English)
- United States (English)
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- United Kingdom (English)
- Australia (English)
- India (English)
- New Zealand (English)
- 日本Japanese (日本語)
- 한국Korean (한국어)