Skip to content

Diode Bridge Rectifier

Uncontrolled full-wave bridge rectifier. Single-phase mode (topology=0) uses 4 diodes in a Wheatstone-diamond topology with AC ports ac_pos / ac_neg. Three-phase mode (topology=1) uses 6 diodes (3 in the positive group, 3 in the negative group) forming a standard 6-pulse rectifier with a single electrical_3ph AC bus port. All internal diodes share the same forward-voltage drop and on/off resistances. Each internal diode keeps its own piecewise-linear state and registers an in-solve switch evaluator with the Cholesky solver, so the bridge converges within ONE outer step even when multiple diodes flip simultaneously (stiff zero-crossing handling — critical for inductive DC loads where the freewheel hand-off across diodes must happen instantaneously). Two independent current-monitoring toggles let the user emit either the aggregate DC output current, the per-diode currents, or both at once.

Category: Power Electronics / Rectifiers

Keywords: rectifier, bridge, full bridge, full-bridge, full-wave, AC-DC, AC/DC, diode bridge, 6-pulse, six-pulse, Graetz, 1-phase, 1-ph, 1 ph, 1ph, single, single-phase, 3-phase, 3-ph, 3 ph, 3ph, three, three-phase, power electronics, switching

Ports

NameDirectionValue typeNotes
ac_poselectricaldoubleVisible when topology == 0
ac_negelectricaldoubleVisible when topology == 0
acelectrical_3phdoubleVisible when topology == 1
dc_poselectricaldouble
dc_negelectricaldouble

Parameters

Config

NameLabelTypeDefaultUnitsDescription
topologyTopologyenum (Single-Phase (4 diodes) / Three-Phase (6 diodes))0Select single-phase (4 diodes, AC ports `ac_pos` / `ac_neg`) or three-phase (6 diodes, single 3-phase AC bus port `ac`). DC output ports `dc_pos` / `dc_neg` are present in both modes. Toggling the topology hides the inactive AC ports and auto-deletes any wires attached to them — re-draw new ones for the new port set.
v_forwardVfdouble0.7Per-diode forward conduction threshold (V). Applied to every internal diode in the bridge.
resistance_onR_ondouble0.05Ohms (Ω, , )Per-diode conducting (forward-biased) resistance. Pick a unit from the dropdown. Applied to every internal diode.
resistance_offR_offdouble1000000Ohms (Ω, , )Per-diode blocking (reverse-biased) resistance. Pick a unit from the dropdown. Applied to every internal diode.
measure_bridge_currentMeasure bridge (DC) currentenum (Off / On)0Emit the aggregate DC output current as a single observable (sum of currents through the upper-group diodes; by KCL at the DC+ rail this equals the current flowing OUT of dc_pos into the external load).
measure_diode_currentsMeasure per-diode currentsenum (Off / On)0Emit one observable per internal diode (4 in 1-phase mode, 6 in 3-phase mode). Each diode current is signed anode→cathode. Independent of `Measure bridge (DC) current` — enable both at once when you need both views.

Bridge Current

NameLabelTypeDefaultUnitsDescription
bridge_current_nameDC current namestringI_dcObservable id for the aggregate DC output current (A). Blank = skip emission.

Per-Diode Currents

NameLabelTypeDefaultUnitsDescription
current_name_d1D1 current namestringI_d1Observable id for diode D1 branch current (A). Single-phase: top-left diode (ac_pos → dc_pos). Three-phase: positive-group A-phase diode (ac_a → dc_pos). Blank = skip emission.
current_name_d2D2 current namestringI_d2Observable id for diode D2 branch current (A). Single-phase: top-right diode (ac_neg → dc_pos). Three-phase: positive-group B-phase diode (ac_b → dc_pos). Blank = skip emission.
current_name_d3D3 current namestringI_d3Observable id for diode D3 branch current (A). Single-phase: bottom-left diode (dc_neg → ac_pos). Three-phase: positive-group C-phase diode (ac_c → dc_pos). Blank = skip emission.
current_name_d4D4 current namestringI_d4Observable id for diode D4 branch current (A). Single-phase: bottom-right diode (dc_neg → ac_neg). Three-phase: negative-group A-phase diode (dc_neg → ac_a). Blank = skip emission.
current_name_d5D5 current name (3-phase only)string(empty)Observable id for diode D5 branch current (A). Three-phase only: negative-group B-phase diode (dc_neg → ac_b). Blank = skip emission. In 1-phase mode this diode does not exist; if a name is set, the channel reads constant 0.
current_name_d6D6 current name (3-phase only)string(empty)Observable id for diode D6 branch current (A). Three-phase only: negative-group C-phase diode (dc_neg → ac_c). Blank = skip emission. In 1-phase mode this diode does not exist; if a name is set, the channel reads constant 0.

Observables

SignalTypeDefault nameEnableDescription
dcCurrentsignalfrom bridge_current_namemeasure_bridge_currentAggregate DC output current (A). Sum of currents through the upper-group diodes (D1+D2 in 1-phase mode, D1+D2+D3 in 3-phase mode); by KCL at the DC+ rail this equals the current flowing OUT of dc_pos into the external load.
branchCurrent_0signalfrom current_name_d1measure_diode_currentsD1 branch current (A, anode → cathode). 1-phase: top-left (ac_pos → dc_pos). 3-phase: positive-group A (ac_a → dc_pos).
branchCurrent_1signalfrom current_name_d2measure_diode_currentsD2 branch current (A). 1-phase: top-right (ac_neg → dc_pos). 3-phase: positive-group B (ac_b → dc_pos).
branchCurrent_2signalfrom current_name_d3measure_diode_currentsD3 branch current (A). 1-phase: bottom-left (dc_neg → ac_pos). 3-phase: positive-group C (ac_c → dc_pos).
branchCurrent_3signalfrom current_name_d4measure_diode_currentsD4 branch current (A). 1-phase: bottom-right (dc_neg → ac_neg). 3-phase: negative-group A (dc_neg → ac_a).
branchCurrent_4signalfrom current_name_d5measure_diode_currentsD5 branch current (A). 3-phase only: negative-group B (dc_neg → ac_b). In 1-phase mode this diode does not exist — if a name is set the channel reads constant 0.
branchCurrent_5signalfrom current_name_d6measure_diode_currentsD6 branch current (A). 3-phase only: negative-group C (dc_neg → ac_c). In 1-phase mode this diode does not exist — if a name is set the channel reads constant 0.

Implemented in C++ class SimCompElecDiodeBridge (components/electrical/sim_comp_elec_diode_bridge/sim_comp_elec_diode_bridge.h).

Released under the MIT License.