Appearance
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.
| Bit | Weight (add to fire) | Valve | Group | Conducts (anode → cathode) |
|---|---|---|---|---|
| 0 | 1 | T1 | positive | phase A → DC+ |
| 1 | 2 | T2 | positive | phase B → DC+ |
| 2 | 4 | T3 | positive | phase C → DC+ |
| 3 | 8 | T4 | negative | DC− → phase A |
| 4 | 16 | T5 | negative | DC− → phase B |
| 5 | 32 | T6 | negative | DC− → 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
). 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
For a stiff (current-source-like) DC side the mean output follows the classic relation
where
— rectifier: power flows AC → DC, . — mean DC voltage is zero. — inverter: , 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
- 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
| Name | Direction | Value type | Notes |
|---|---|---|---|
ac | electrical_3ph | double | |
dc_pos | electrical | double | |
dc_neg | electrical | double |
Parameters
Config
| Name | Label | Type | Default | Units | Description |
|---|---|---|---|---|---|
gates_name | Gates 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_forward | Vf | double | 0.7 | — | Per-valve forward conduction threshold / on-state voltage drop (V). Applied to every internal thyristor. |
resistance_on | R_on | double | 0.05 | Ohms (Ω, kΩ, MΩ) | Per-valve conducting (latched-on) resistance. Pick a unit from the dropdown. Applied to every internal thyristor. |
resistance_off | R_off | double | 1000000 | Ohms (Ω, kΩ, MΩ) | Per-valve blocking (forward- or reverse-blocking) resistance. Pick a unit from the dropdown. Applied to every internal thyristor. |
measure_bridge_current | Measure bridge (DC) current | enum (Off / On) | 0 | — | Emit 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_currents | Measure per-valve currents | enum (Off / On) | 0 | — | Emit 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
| Name | Label | Type | Default | Units | Description |
|---|---|---|---|---|---|
bridge_current_name | DC current name | string | I_dc | — | Signal name for the aggregate DC output current (A). Blank = skip emission. |
Per-Valve Currents
| Name | Label | Type | Default | Units | Description |
|---|---|---|---|---|---|
current_name_t1 | T1 current name | string | I_t1 | — | Signal 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_t2 | T2 current name | string | I_t2 | — | Signal 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_t3 | T3 current name | string | I_t3 | — | Signal 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_t4 | T4 current name | string | I_t4 | — | Signal 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_t5 | T5 current name | string | I_t5 | — | Signal 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_t6 | T6 current name | string | I_t6 | — | Signal 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
| Signal | Type | Default name | Enable | Description |
|---|---|---|---|---|
dcCurrent | signal | from bridge_current_name | measure_bridge_current | Aggregate 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_0 | signal | from current_name_t1 | measure_device_currents | T1 branch current (A, anode → cathode). Positive-group A (ac_a → dc_pos), fired by bit 0 (value 1). |
branchCurrent_1 | signal | from current_name_t2 | measure_device_currents | T2 branch current (A). Positive-group B (ac_b → dc_pos), fired by bit 1 (value 2). |
branchCurrent_2 | signal | from current_name_t3 | measure_device_currents | T3 branch current (A). Positive-group C (ac_c → dc_pos), fired by bit 2 (value 4). |
branchCurrent_3 | signal | from current_name_t4 | measure_device_currents | T4 branch current (A). Negative-group A (dc_neg → ac_a), fired by bit 3 (value 8). |
branchCurrent_4 | signal | from current_name_t5 | measure_device_currents | T5 branch current (A). Negative-group B (dc_neg → ac_b), fired by bit 4 (value 16). |
branchCurrent_5 | signal | from current_name_t6 | measure_device_currents | T6 branch current (A). Negative-group C (dc_neg → ac_c), fired by bit 5 (value 32). |
