🎓 Lesson 4
D3
Gauss-Seidel Algorithm: Convergence Behavior & Limitations
The Gauss-Seidel algorithm is a step-by-step method to solve big systems of equations by repeatedly improving guesses until the answers stop changing much.
🎯 Learning Objectives
- ✓ Explain the convergence criteria for Gauss-Seidel and diagnose failure in load flow cases
- ✓ Calculate iteration counts and residual norms to quantify solution accuracy
- ✓ Analyze how matrix conditioning and initial guess affect convergence rate
- ✓ Apply relaxation (SOR) to accelerate convergence in poorly conditioned power system Jacobians
- ✓ Compare Gauss-Seidel performance against Newton-Raphson for small-scale radial network load flow
📖 Why This Matters
In power system load flow analysis—critical for mining site microgrids, off-grid haul truck charging networks, and substation stability studies—the Gauss-Seidel method was historically the first practical iterative solver used in industry software. Though largely superseded by Newton-Raphson for large systems, understanding its behavior reveals why some real-time control algorithms (e.g., distributed battery state-of-charge balancing in mobile mining fleets) still use relaxed Gauss-Seidel variants: it’s memory-light, easily parallelizable per bus, and robust under noisy sensor inputs—key traits for edge-computing deployments on autonomous haulers.
📘 Core Principles
Gauss-Seidel relies on decomposing the coefficient matrix A into lower (L), diagonal (D), and upper (U) triangular parts: A = L + D + U. The iteration formula is x^(k+1) = D⁻¹(b − (L + U)x^k). Unlike Jacobi, it immediately incorporates updated values within the same iteration—improving efficiency but introducing dependency order sensitivity. Convergence hinges on spectral radius ρ(D⁻¹(L + U)) < 1; this fails when off-diagonal coupling dominates (e.g., weakly meshed mine grid with long overhead feeders), causing oscillations or divergence. Diagonal dominance—where each diagonal entry exceeds the sum of absolute off-diagonals in its row—is a sufficient (but not necessary) condition often violated in high-R/X ratio underground distribution networks.
📐 Iteration Update Formula
The Gauss-Seidel update computes each component x_i^(k+1) using all already-updated components from the current iteration and remaining components from the prior iteration. It's derived directly from the i-th equation in Ax = b.
Gauss-Seidel Iteration
x_i^{(k+1)} = \frac{1}{a_{ii}} \left( b_i - \sum_{j=1}^{i-1} a_{ij}x_j^{(k+1)} - \sum_{j=i+1}^{n} a_{ij}x_j^{(k)} \right)Updates the i-th variable using latest available values for j < i and previous iteration values for j > i.
Variables:
| Symbol | Name | Unit | Description |
|---|---|---|---|
| x_i^{(k+1)} | Updated i-th variable | per unit or SI unit (e.g., p.u., kV, MW) | Solution estimate for variable i at iteration k+1 |
| a_{ij} | Coefficient matrix element | dimensionless (p.u.) or Ω, S, etc. | Element in row i, column j of system matrix A |
| b_i | Right-hand side constant | p.u. or physical unit (e.g., MW, MVAr) | i-th entry of load vector b |
Typical Ranges:
Radial mine distribution network (10–20 buses): ρ ∈ [0.4, 0.85]
Meshed substation interconnection: ρ ∈ [0.75, 0.98] (often unstable without SOR)
💡 Worked Example
Problem: Solve the 2×2 system: 4x₁ − x₂ = 8; −x₁ + 4x₂ = 7. Use initial guess x⁽⁰⁾ = [0, 0]ᵀ and perform two iterations.
1.
Step 1: Rearrange equations for explicit x₁ and x₂: x₁ = (8 + x₂)/4; x₂ = (7 + x₁)/4
2.
Step 2: First iteration (k=0): x₁⁽¹⁾ = (8 + 0)/4 = 2.0; x₂⁽¹⁾ = (7 + 2.0)/4 = 2.25
3.
Step 3: Second iteration (k=1): x₁⁽²⁾ = (8 + 2.25)/4 = 2.5625; x₂⁽²⁾ = (7 + 2.5625)/4 = 2.3906
Answer:
After two iterations: x ≈ [2.56, 2.39]ᵀ. Exact solution is [3, 2.5]ᵀ; error norm ||x⁽²⁾ − x*||₂ ≈ 0.47 — showing progressive improvement.
🏗️ Real-World Application
At Newmont’s Boddington Mine (Western Australia), a legacy SCADA-based reactive power optimization module used Gauss-Seidel with 1.2 relaxation (SOR) to update VAR dispatch across 12 radial feeders supplying crushing stations. When a 33-kV cable fault caused sudden topology change (reducing diagonal dominance), the solver diverged after 17 iterations—triggering automatic fallback to pre-fault settings. Post-event analysis revealed the Jacobian’s condition number jumped from 18 to 214; engineers added a diagonal loading term (εI) to restore convergence without hardware upgrades—a low-cost fix validated in ETAP v20.1.2 simulations.
📋 Case Connection
📋 Industrial Plant Power Design: Aluminum Smelter Load Flow Optimization
Severe voltage sag during anode changing cycles causing PLC trip cascades
📋 Hospital Power Systems: Emergency Generator Load Flow Validation
Voltage collapse observed during full transfer test due to motor inrush overwhelming AVR response