Half-bridge with deadtime insertion

25 Ansichten (letzte 30 Tage)
Peter
Peter am 10 Mär. 2025
Kommentiert: Peter am 11 Mär. 2025
there is an example
There is no "deadtime" insertion between top/bottom swithing - still works :) why not is not there shoot-through?
How ro add the deadtime insertion as of regular PWM generator does?

Akzeptierte Antwort

Jack
Jack am 10 Mär. 2025
In many Infineon half‐bridge examples (including the one you referenced), there isn’t an explicit deadtime block because the example is focused on showing device operation rather than detailing a fully realistic gate‐driver scheme. In practice, deadtime is necessary to avoid shoot‐through in a real half‐bridge, but in a simplified simulation, you may not see shoot‐through if:
  1. Switching signals never overlap in the example’s PWM logic (even if not explicitly labeled as “deadtime”).
  2. Device conduction times and internal diodes provide enough “natural” delay that the simulation doesn’t exhibit shoot‐through under the default settings.
If you want to insert a conventional deadtime in your own half‐bridge model, here are a few approaches:
  1. Use a PWM Generator With Built‐In Deadtime
  • Some power electronics toolboxes or blocks (e.g., in Simulink or Simscape Electrical) allow you to specify a deadtime parameter directly in the PWM generator block.
  1. Offset the Gate Signals
  • If you’re generating your PWM signals in Simulink (for example, with Pulse Generator or a custom PWM subsystem), insert a small delay (deadtime) between switching the top and bottom devices. Typically you’d ensure the top switch turns off some microseconds before the bottom switch turns on, and vice versa.
  1. Gate Driver Logic
  • You can create a gate driver subsystem that includes logical conditions ensuring that when one device is commanded to turn off, the complementary device waits for a short “deadtime” before turning on. This can be implemented with simple state machine logic or a set of delay blocks.
Below is a quick sketch of how you might add deadtime in a custom PWM subsystem:
% Pseudocode for generating two complementary PWM signals with deadtime
% Generate base PWM (carrier comparison)
basePWM = (sawtooth(2*pi*carrierFreq*t) < dutyCycle);
% Generate top gate (delayed off)
topGate = basePWM;
% Generate bottom gate as inverted top gate, then add a delay so it turns on later
bottomGateRaw = ~topGate;
% Insert a small delay (deadtimeDelay) before bottomGate turns on
bottomGate = DelaySignal(bottomGateRaw, deadtimeDelay);
% Combine or feed these signals into your half-bridge IGBTs
Alternatively, if you have a specialized “Dead-Time Generator” or “Gate Driver” block in your Simscape library, you can drop it in and configure the desired deadtime.
Follow me so you can message me anytime with future questions. If this helps, please accept the answer and upvote it as well.
  3 Kommentare
Jack
Jack am 11 Mär. 2025
There is no dedicated “Dead-Time Generator” block in standard Simscape libraries, but certain toolboxes (like Motor Control Blockset) include PWM blocks with a built-in deadtime parameter. Otherwise, you can implement deadtime manually or through the “Gate Driver” block.
1. Locating a Dead-Time Option in Built-In Blocks
  • Motor Control Blockset (if you have it):Look for blocks like SVPWM or PWM Generator that provide a “Deadtime” parameter. This allows you to specify a delay between turning one switch off and the complementary switch on.
  • Simscape Electrical (Specialized Technology) Blocks:Some older or specialized “PWM Generator” blocks might have a deadtime parameter, but this depends heavily on your MATLAB/Simulink release. Check under:
Simscape > Electrical > Specialized Technology > Control and Measurements > Pulse & Signal Generators
or in the “Power Electronics Control” sub-libraries. If you see a “Deadtime” field in the block parameters, you can set it directly there.
2. Using the “Gate Driver” Block
The Gate Driver block in Simscape Electrical typically models the turn-on/turn-off characteristics of a transistor, but it does not always include an explicit “Dead-Time” parameter. If your version of MATLAB/Simulink does not show such a parameter, you can still implement deadtime by offsetting the input signals that go into the Gate Driver block (see manual approach below).
3. Manual Implementation of Deadtime
If you cannot find a built-in block that supports deadtime, the simplest approach is to offset your complementary PWM signals. For example:
  1. Generate the main PWM (for the “high side” switch).
  2. Invert that signal to drive the “low side” switch.
  3. Delay the low-side signal slightly (by your deadtime amount) so that it never turns on exactly when the high-side turns off.
Below is a simplified logic example in Simulink:
% Suppose you generate a base PWM signal, basePWM,
% for the high-side switch. Then:
highSidePWM = basePWM;
% Invert for the low side (raw).
lowSidePWM_raw = ~highSidePWM;
% Delay the low-side signal by 'deadtimeDelay' (e.g., a small fraction of the PWM period).
% This could be done with a Discrete-Time Delay block or a Transport Delay block in Simulink.
lowSidePWM = DelaySignal(lowSidePWM_raw, deadtimeDelay);
% Now feed these signals to your half-bridge IGBTs.
You can similarly offset the high side turn-on relative to the low side turn-off, if desired.
4. Analyzing Switching Losses
Once you’ve introduced deadtime, you can measure the resulting switching waveforms (using Scope or Simscape Logging) to see how conduction overlap changes, which in turn affects switching losses. This more realistic gate timing can help you evaluate the efficiency of your half-bridge design.
Follow me so you can message me anytime with future questions. If this helps, please accept the answer and upvote it as well.
Peter
Peter am 11 Mär. 2025
I found On/Off delay blocks with an input delay function that delays the output and the output becomes true after a set time delay.
This might be usefull to implement deadtime insertion

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Peter
Peter am 11 Mär. 2025
My goal is to be more realistic and include Explicit Deadtime to see - what/if/how it affects switching losses ....

Produkte


Version

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by