Implement variable switching times for inverter.

3 views (last 30 days)
I have a motor control scheme, where I have to switch certain switches for half of sampling time. For e.g. if the switching sequence is [1 0 1] : Here Inverter legs 1,2,3 will have : Leg 1 upper sw on, lower off ; Leg 2: upper sw off, lower on ; Leg 3: upper sw on, lower off . However, this sequence will take the switching time as sampling time.
Now, I want to implement the switching sequence such that say the sequence is [1 1 0], then
Here Inverter legs 1,2,3 will have : Leg 1 upper sw on, lower off ; Leg 2: upper sw on, lower off ; Leg 3: upper sw off, lower on. But, each of these states will take the switching time as half the sampling time or 1/3rd the sampling time .
Below shown is the normal switching implementation:
How can I add the timing information to achieve the required swtiching and timing?

Answers (1)

Shreshth
Shreshth on 6 Feb 2024
Hello Siddhi,
The information provided by you it is clear that you adjust the switching sequence so that, for example, with a sequence of [1 1 0], the inverter legs 1, 2, and 3 would be configured as: Leg 1 with the upper switch on and the lower switch off; Leg 2 with the upper switch on and the lower switch off; and Leg 3 with the upper switch off and the lower switch on. Yet, in this scenario, each state should persist for only half or one-third of the sampling time.
For this purpose you need to divide the sampling period into two intervals of T/2. For one-third the sampling time, you would divide the sampling period into three intervals of T/3.
Here's how you can implement it for each case:
1. Half the Sampling Time (T/2):
For a switching sequence [1 1 0], you would set:
0 to T/2,
  • Leg 1: upper switch ON, lower switch OFF
  • Leg 2: upper switch ON, lower switch OFF
  • Leg 3: upper switch OFF, lower switch ON
T/2 to T,
  • Leg 1: upper switch ON, lower switch OFF
  • Leg 2: upper switch ON, lower switch OFF
  • Leg 3: upper switch OFF, lower switch ON
2. One-Third the Sampling Time (T/3):
For a switching sequence [1 1 0], you would set:
0 to T/3,
  • Leg 1: upper switch ON, lower switch OFF
  • Leg 2: upper switch ON, lower switch OFF
  • Leg 3: upper switch OFF, lower switch ON
T/3 to 2T/3,
  • Leg 1: upper switch ON, lower switch OFF
  • Leg 2: upper switch ON, lower switch OFF
  • Leg 3: upper switch OFF, lower switch ON
2T/3 to T,
  • Leg 1: upper switch ON, lower switch OFF
  • Leg 2: upper switch ON, lower switch OFF
  • Leg 3: upper switch OFF, lower switch ON
For both cases, the switching sequence [1 1 0] does not change throughout the sampling period, so the state of each leg remains the same for each interval. However, if you had a different sequence for each interval, you would implement the corresponding states for each interval.
You can setup a model in Simulink using the motor control blockset where you would typically use a combination of PWM generation blocks and logic to control the timing of the switching states.
You can refer to the below documentation by MathWorks on motor control blockset.
Hope this helps.
Regards,
Shubham Shreshth.

Communities

More Answers in the  Power Electronics Control

Categories

Find more on MATLAB in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!