Skip to main content
Engineering LibreTexts

5.3: Gauss–Seidel Iterative Technique

  • Page ID
    55583
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    This is one of many techniques for solving the nonlinear load flow problem. It should be pointed out that this solution technique, while straightforward to use and easy to understand, has a tendency to use a lot of computation, particularly in working large problems. It is also quite capable of converging on incorrect solutions (that is a problem with nonlinear systems). As with other iterative techniques, it is often difficult to tell when the correct solution has been reached. Despite these shortcomings, Gauss–Seidel can be used to get a good feel for load flow problems without excessive numerical analysis baggage.

    Suppose we have an initial estimate (ok: guess) for network voltages. We may partition Equation \ref{8} as:

    \[\ \mathbf{S}_{k}=\mathbf{V}_{k} \sum_{j \neq k} \mathbf{Y}_{j k}^{*} \mathbf{V}_{j}^{*}+\mathbf{V}_{k} \mathbf{Y}_{k k}^{*} \mathbf{V}_{k}^{*}\label{9} \]

    Noting that \(\ \mathbf{S}_{k}=P_{k}+j Q_{k}\), we can solve for \(\ \mathbf{V}_{k}^{*}\) and, taking the complex conjugate of that, we have an expression for \(\ \mathbf{V}_{k}\) in terms of all of the voltages of the network, \(\ P_{k}\) and \(\ Q_{k}\):

    \[\ \mathbf{V}_{k}=\frac{1}{\mathbf{Y}_{k k}}\left(\frac{P_{k}-j Q_{k}}{\mathbf{V}_{k}^{*}}-\sum_{j \neq k} \mathbf{Y}_{j k} \mathbf{V}_{j}\right)\label{10} \]

    Expression Equation \ref{10} is a better estimate of \(\ \mathbf{V}_{k}\) than we started with. The solution to the set of nonlinear equations consists of carrying out this expression, repeatedly, for all of the buses of the network.

    An iterative procedure in which a correction for each of the voltages of the network is computed in one step, and the corrections applied all at once is called Gaussian Iteration. If, on the other hand, the improved variables are used immediately, the procedure is called Gauss–Seidel Iteration.

    Note that Equation \ref{10} uses as its constraints \(P\) and \(Q\) for the bus in question. Thus it is useable directly for load type buses. For other types of bus constraints, modifications are required. We consider only two of many possible sets of constraints.

    For generator buses, usually the real power and terminal voltage magnitude are specified. At each time step it is necessary to come out with a terminal voltage of specified magnitude: voltage phase angle and reactive power \(Q\) are the unknowns. One way of handling this situation is to:

    1. Generate an estimate for reactive power \(Q\), then
    2. Use Equation \ref{10} to generate an estimate for terminal voltage, and finally,
    3. Holding voltage phase angle constant, adjust magnitude to the constraint.

    At any point in the iteration, reactive power is:

    \[\ Q_{k}=\operatorname{Im}\left\{\mathbf{V}_{k} \sum_{j=1}^{N} \mathbf{Y}_{j k}^{*} \mathbf{V}_{j}^{*}\right\}\label{11} \]

    It should be noted that there are other ways of doing this calculation. Generally they are more work to set up but often converge more quickly. Newton’s method and variations are good examples.

    For buses loaded by constant impedance, it is sufficient to lump the load impedance into the network. That is, the load admittance goes directly in parallel with the driving point admittance at the node in question.

    These three bus constraint types, generator, load and constant impedance are sufficient for handling most problems of practical importance.


    This page titled 5.3: Gauss–Seidel Iterative Technique is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by James Kirtley (MIT OpenCourseWare) via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.