Help, how to make a buck chopper simulation using SCR only ?

93 views (last 30 days)
Daniel
Daniel on 18 Nov 2025 at 4:02
Commented: Umar on 23 Nov 2025 at 2:50
i want to know how to make a buck chopper simulation in MATLAB using only SCR without mosfet/IGBT is it possible ?

Answers (1)

Umar
Umar on 19 Nov 2025 at 8:08

Hi @Daniel,

Yes, it is technically possible to model a buck chopper topology using SCRs in place of MOSFET or IGBT switches. The Thyristor block available in the Specialized Power Systems library can be used for this purpose. However, please note that this library has been marked “To be removed” in release R2026a, and I recommend transitioning to the corresponding Simscape Electrical blocks for long-term model compatibility.

The Specialized Power Systems thyristor model is implemented as a series combination of Ron, Lon, and a forward-voltage source Vf, along with a controlled switch. The conduction state is determined by the applied gate signal as well as the device voltage (Vak) and current (Iak). This model is suitable for SCR-based converters, including buck choppers.

One important consideration is that SCRs are latching devices. They remain in the conducting state after being triggered until the current falls below the holding current. As a result, traditional PWM strategies used with MOSFETs or IGBTs cannot be directly applied. The commutation behavior of the inductor must be taken into account when designing the control scheme.

If you are beginning a new model, I would encourage you to use the Simscape Electrical thyristor components, which provide similar functionality and will continue to be supported in future MATLAB releases.

Reference https://www.mathworks.com/help/sps/powersys/ref/thyristor.html

  18 Comments
Daniel
Daniel on 23 Nov 2025 at 0:53
So i was trying to tweak the parameters and increasing the load resistance from 1 ohm to 7,5 ohm. But in order to get the output voltage to be near 5 V I have to tweak the forward voltages for both diodes and SCRs otherwise the output voltage would be far from 5 V (I got 6,8 V if I didn't tweak the forward voltages), So i ended up increasing the forward voltages for both diodes which is from 0,8 V to 4,8 V and both SCRs from 0,8 V to 2,5 V. Do you think this is still acceptable result ?
Umar
Umar on 23 Nov 2025 at 2:50

Hi @Daniel,

I need to point out that you're going down the wrong path here. Setting diode forward voltages to 4.8V and SCR forward voltages to 2.5V is not an acceptable solution - these values are physically unrealistic. Real power diodes have Vf around 0.7-1.0V, and SCRs around 1.0-2.0V. You're essentially lying to the simulation to force it to give you the answer you want.

Looking at your earlier simulation with the 7.5 ohm load (before all these tweaks), your circuit was actually producing reasonable results around 5V. The problem now is that you're treating forward voltage as a tuning parameter when it's actually a fixed physical property of your components.

Here's what's really happening: when you increased the load from 1ohm to 7.5 ohm, your current dropped from about 5A to around 0.67A. With less current flowing, there are smaller voltage drops across your components. This means your output voltage went higher than expected - that's why you're seeing 6.8V instead of 5V with the default component values.

The correct solution is NOT to artificially inflate forward voltages. Instead, you need to adjust your duty cycle. The duty cycle is your control parameter - that's what determines output voltage in a buck converter. For a buck converter: Vout = D × Vin - voltage drops

With your 15V input and aiming for 5V output with realistic voltage drops of about 1-1.5V, you need a duty cycle around 40-43%, not 33.3%.

Here's what I recommend you do

First, go back to realistic component values. Set your diode forward voltages back to 0.8V and SCR forward voltages to 0.8-1.0V. Keep your 7.5 ohm load - that's much more realistic than the 1ohm you were using earlier (which was dissipating 25W!).

Then, adjust your pulse generator to try duty cycles in the 40-45% range. Start with 40% and work your way up until you hit your 5V target. This is the proper way to control output voltage.

If something changed between your earlier working simulation and now, you might also want to verify that your inductor and capacitor values haven't been modified, and that your switching frequency is still at 500Hz.

The key point I was making is that your circuit topology and commutation timing are correct - the circuit is functioning properly as a buck converter. But that doesn't mean every parameter combination will give you exactly 5V. You need to tune the duty cycle to match your load conditions.

Think of it this way: in a real buck converter application, you'd have a feedback control loop that automatically adjusts the duty cycle to maintain 5V output regardless of load changes. What you're doing by manually tweaking forward voltages is the equivalent of changing the speedometer reading instead of actually pressing the gas pedal.

Your simulation with the inflated forward voltages might show 4.875V mean output, but it's meaningless because it's based on components that don't exist in reality. When you go to build this circuit with real components, it won't behave the way your simulation predicts.

So bottom line: realistic component parameters + proper duty cycle adjustment = correct buck converter design. That's the path forward.

Hope this helps clarifies everything!

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!