Skip to content

Thyristor Bridge (6-pulse)

Three-phase 6-pulse line-commutated thyristor bridge (Graetz). Six thyristors (3 in the positive group, 3 in the negative group) fed from a single electrical_3ph AC bus, rectifying to the dc_pos / dc_neg output. All six valves are fired from ONE integer control word — the gates named input, bound by signal name to your firing logic (there is no built-in firing-angle controller, so you supply the synchronised firing word; build a firing unit separately). The word is a BIT FIELD: bit k fires valve T(k+1), i.e. bit 0 (value 1) → T1, bit 1 (value 2) → T2, bit 2 (4) → T3, bit 3 (8) → T4, bit 4 (16) → T5, bit 5 (32) → T6; the low six bits set (value 63) fire every valve. A valve turns ON only when its bit is set AND it is forward-biased, then latches and conducts until its current naturally commutates to the next valve (line commutation). With the firing word held at 63 the bridge degenerates exactly to the uncontrolled diode bridge (V_dc = V_d0); delaying the firing bits by a firing angle α reduces the mean DC voltage as V_dc ≈ V_d0·cos α, and beyond 90° the bridge inverts (the building block for an HVDC line-commutated converter). All internal valves share the same Vf / R_on / R_off. Each valve keeps its own piecewise-linear state and registers an in-solve switch evaluator with the Cholesky solver, so commutations resolve within ONE outer step even when two valves overlap. Valve↔bit↔leg map (DO NOT renumber): T1 bit0 ac_a→dc_pos, T2 bit1 ac_b→dc_pos, T3 bit2 ac_c→dc_pos (positive group); T4 bit3 dc_neg→ac_a, T5 bit4 dc_neg→ac_b, T6 bit5 dc_neg→ac_c (negative group).

Category: Power Electronics / Rectifiers

The Thyristor Bridge is a three-phase, six-pulse controlled rectifier (a Graetz bridge built from six thyristors). It is the controllable sibling of the three-phase Diode Bridge: instead of conducting the moment a valve becomes forward-biased, each valve waits for a firing command — its bit set in the integer gates word — before it turns on. Delaying those firing bits relative to the AC waveform lets you continuously vary the DC output voltage — the basis of a phase-controlled rectifier and, when the DC side is driven by a current source, a line-commutated converter (LCC) for HVDC.

Ports

  • AC (3φ) — the three-phase AC bus, on the left. Connect it to a three-phase source or transformer secondary.
  • DC+ / DC− — the rectified DC output, on the right.

Firing the valves: the gates word

All six valves are fired by a single integer control signal, the gates named input. It is not a wire — instead of dragging six gate wires onto the symbol, type (or pick) the name of a published integer signal in the Gates signal (firing word) field, and the bridge reads that signal every step.

The integer is treated as a bit field: each bit fires one valve, and bit 0 is the least-significant bit.

BitWeight (add to fire)ValveGroupConducts (anode → cathode)
01T1positivephase A → DC+
12T2positivephase B → DC+
24T3positivephase C → DC+
38T4negativeDC− → phase A
416T5negativeDC− → phase B
532T6negativeDC− → phase C

To fire a set of valves, add their weights: e.g. 1 + 8 = 9 fires T1 and T4; the full word 63 (= 1+2+4+8+16+32) fires all six, at which point the bridge behaves exactly like the uncontrolled three-phase diode bridge.

The firing word is always 1-step delayed (the named-input pipeline adds exactly one simulation step of delay and never forms an algebraic loop). Leave the field empty to fire nothing.

There is no built-in firing-angle controller — you build the firing word yourself (a dedicated firing unit, bit/logic blocks such as Shift Left + Add/Or, or a Const Int for a fixed pattern) and publish it under the name the bridge is bound to. This keeps the bridge a pure power-electronics building block.

Valve and leg numbering

The six valves are numbered T1…T6 (the conventional Graetz order; see the firing table above for each valve's bit and conduction path). The positive group (T1–T3) feeds the DC+ rail; the negative group (T4–T6) returns from the DC− rail. The per-valve current observables follow this order: branchCurrent_0 is T1 … branchCurrent_5 is T6.

How a valve behaves

Each valve is an ideal latching switch with a small forward drop:

  • Turns ON only when its firing bit is set and it is forward-biased (anode above cathode by more than Vf). Both conditions must hold at once.
  • Latches — once on, it keeps conducting like a diode even after its firing bit clears. The bit has no turn-off authority.
  • Turns OFF only when its forward current falls to zero, i.e. when the next valve in sequence takes over the load (natural / line commutation).

A short pulse on a valve's bit at the right instant is therefore enough to start conduction; you do not need to hold the bit set for the whole conduction interval (though holding it set does no harm).

With the firing word held at 63 (every valve's bit set), each valve fires as soon as it is forward-biased and the bridge reduces exactly to the uncontrolled three-phase diode bridge.

Firing angle and DC output

The firing angle α is the delay (in electrical degrees) between the instant a valve could start conducting — its natural commutation point, where it becomes the most-forward-biased of its group — and the instant you actually fire it. With α=0 the bridge behaves like the diode bridge; increasing α retards conduction and lowers the mean DC voltage.

For a stiff (current-source-like) DC side the mean output follows the classic relation

Vdc=Vd0cosα,Vd0=32πVLL2Vf1.35VLL2Vf,

where VLL is the RMS line-to-line AC voltage and the 2Vf term accounts for the two valve drops in the conducting loop (one in each group).

  • 0°α<90°rectifier: power flows AC → DC, Vdc>0.
  • α=90° — mean DC voltage is zero.
  • 90°<α<180°inverter: Vdc<0, power flows DC → AC. This region only sustains current if the DC side actively pushes current into the bridge (e.g. the remote station of an HVDC link), which is why an LCC always operates against a stiff DC current.

With a purely resistive DC load the cosine law holds up to the point of discontinuous conduction; beyond that the output sags toward zero.

Building the firing word

A working six-pulse firing scheme sets one valve's bit per 60° of the AC cycle, in the sequence T1, T6, T2, T4, T3, T5, each delayed by the common firing angle α from its natural commutation point. Practical options for how long each bit stays set:

  • a long window (≥ 120° wide) so the bit is still set when the valve becomes forward-biased, or
  • a burst of short pulses covering the same window.

Because a thyristor latches, you may keep several bits set simultaneously — only the valve that is both gated and most forward-biased actually conducts, and it hands off cleanly at commutation. In practice you assemble the integer from per-valve logic (for example, shift each valve's enable into its bit position with Shift Left and combine them with Add or Or), then publish the result under the name bound to gates.

Shared parameters

All six valves share the same characteristics:

  • Vf — forward on-state voltage drop.
  • R_on / R_off — conducting and blocking resistances (each with a unit dropdown).

The firing word's bits are exact 0/1 flags, so there is no gate-threshold parameter.

Current monitoring

Two independent toggles add observables without affecting the simulation:

  • Measure bridge (DC) current publishes the aggregate DC output current dcCurrent (the sum of the positive-group valve currents, which by Kirchhoff's current law equals the current delivered to the external DC load).
  • Measure per-valve currents publishes one signal per valve (T1…T6), each the branch current from anode to cathode.

Typical uses

  • A phase-controlled rectifier feeding an adjustable DC bus.
  • The converter at each end of an HVDC line-commutated link (one station as rectifier, one as inverter).
  • A teaching model for six-pulse commutation, firing-angle control and the rectifier-to-inverter transition.

Ports

NameDirectionValue typeNotes
acelectrical_3phdouble
dc_poselectricaldouble
dc_negelectricaldouble

Parameters

Config

NameLabelTypeDefaultUnitsDescription
gates_nameGates signal (firing word)string(empty)Name of the published INTEGER signal that fires the valves, read as a bit field: bit k fires valve T(k+1) — bit 0 (value 1)→T1, bit 1 (2)→T2, bit 2 (4)→T3, bit 3 (8)→T4, bit 4 (16)→T5, bit 5 (32)→T6. Set value 63 to fire all six (then the bridge equals the uncontrolled diode bridge). Always 1-step delayed; leave empty to fire nothing. Build the firing word with bit/logic blocks (e.g. Shift Left + Add/Or) or a dedicated firing unit.
v_forwardVfdouble0.7Per-valve forward conduction threshold / on-state voltage drop (V). Applied to every internal thyristor.
resistance_onR_ondouble0.05Ohms (Ω, , )Per-valve conducting (latched-on) resistance. Pick a unit from the dropdown. Applied to every internal thyristor.
resistance_offR_offdouble1000000Ohms (Ω, , )Per-valve blocking (forward- or reverse-blocking) resistance. Pick a unit from the dropdown. Applied to every internal thyristor.
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 valves; by KCL at the DC+ rail this equals the current flowing OUT of dc_pos into the external load).
measure_device_currentsMeasure per-valve currentsenum (Off / On)0Emit one observable per internal thyristor (6 total). Each valve 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_dcSignal name for the aggregate DC output current (A). Blank = skip emission.

Per-Valve Currents

NameLabelTypeDefaultUnitsDescription
current_name_t1T1 current namestringI_t1Signal name for thyristor T1 branch current (A). Positive-group A-phase valve (ac_a → dc_pos), fired by bit 0 (value 1). Blank = skip emission.
current_name_t2T2 current namestringI_t2Signal name for thyristor T2 branch current (A). Positive-group B-phase valve (ac_b → dc_pos), fired by bit 1 (value 2). Blank = skip emission.
current_name_t3T3 current namestringI_t3Signal name for thyristor T3 branch current (A). Positive-group C-phase valve (ac_c → dc_pos), fired by bit 2 (value 4). Blank = skip emission.
current_name_t4T4 current namestringI_t4Signal name for thyristor T4 branch current (A). Negative-group A-phase valve (dc_neg → ac_a), fired by bit 3 (value 8). Blank = skip emission.
current_name_t5T5 current namestringI_t5Signal name for thyristor T5 branch current (A). Negative-group B-phase valve (dc_neg → ac_b), fired by bit 4 (value 16). Blank = skip emission.
current_name_t6T6 current namestringI_t6Signal name for thyristor T6 branch current (A). Negative-group C-phase valve (dc_neg → ac_c), fired by bit 5 (value 32). Blank = skip emission.

Observables

SignalTypeDefault nameEnableDescription
dcCurrentsignalfrom bridge_current_namemeasure_bridge_currentAggregate DC output current (A). Sum of currents through the upper-group valves (T1+T2+T3); by KCL at the DC+ rail this equals the current flowing OUT of dc_pos into the external load.
branchCurrent_0signalfrom current_name_t1measure_device_currentsT1 branch current (A, anode → cathode). Positive-group A (ac_a → dc_pos), fired by bit 0 (value 1).
branchCurrent_1signalfrom current_name_t2measure_device_currentsT2 branch current (A). Positive-group B (ac_b → dc_pos), fired by bit 1 (value 2).
branchCurrent_2signalfrom current_name_t3measure_device_currentsT3 branch current (A). Positive-group C (ac_c → dc_pos), fired by bit 2 (value 4).
branchCurrent_3signalfrom current_name_t4measure_device_currentsT4 branch current (A). Negative-group A (dc_neg → ac_a), fired by bit 3 (value 8).
branchCurrent_4signalfrom current_name_t5measure_device_currentsT5 branch current (A). Negative-group B (dc_neg → ac_b), fired by bit 4 (value 16).
branchCurrent_5signalfrom current_name_t6measure_device_currentsT6 branch current (A). Negative-group C (dc_neg → ac_c), fired by bit 5 (value 32).