Main Content

power_loadflow

Perform positive-sequence load flow or unbalanced load flow and initialize models containing load flow blocks

Description

example

LF = power_loadflow(sys,'solve') computes the load flow of sys. The model is initialized with the load flow solution.

Note

Before release R2021a, this function provided access to the machine tool initialization. Although this is still possible, use this function in release R2021a and later to initialize models containing electric machines. Although this function continues to support the -v2 option, this option is no longer required to perform load flows. You can remove this option from your scripts and M functions.

LF = power_loadflow(sys,'noupdate') computes the load flow but does not initialize the model with the load flow solution.

power_loadflow(sys,'solve','report') computes the load flow and opens the editor to save the load flow report.

power_loadflow(sys,'solve','report',fname) computes the load flow and saves detailed information in the fname file.

power_loadflow(sys,'solve','ExcelReport',fname) computes the load flow and saves detailed information in the fname Excel® file. This capability is available only for the positive-sequence load flow.

power_loadflow(sys,'AddBuses') adds Load Flow Bus blocks to the model sys. The added blocks are single-connector Load Flow Bus blocks, which specify bus parameters for a positive-sequence load flow.

Examples

collapse all

As an alternative to using the Load Flow Analyzer to perform a load flow, you can use this function at the command line. For example, to perform the positive-sequence load flow on the power_LFnetwork_5bus model, enter:

LF = power_loadflow('-v2','power_LFnetwork_5bus','solve')
LF = 
             model: 'power_LFnetwork_5bus'
         frequency: 60
         basePower: 100000000
         tolerance: 0.0001
             Ybus1: [5x5 double]
               bus: [1x7 struct]
                sm: [1x1 struct]
               asm: [1x1 struct]
              vsrc: [1x1 struct]
            pqload: [1x1 struct]
           rlcload: [1x2 struct]
          Networks: [1x1 struct]
            status: 1
        iterations: 2
             error: ''
    LoadFlowSolver: 'PositiveSequence'

The power_loadflow function returns the solution in the LF structure, and the model is initialized to start in steady state. You can obtain a detailed load flow report by entering:

LF = power_loadflow('-v2','power_LFnetwork_5bus','solve','report');

The function prompts you to save the report in a file that is displayed in the MATLAB® Editor.

You can use the same command to perform an unbalanced load flow on the power_13NodeTestFeeder model:

LF = power_loadflow('-v2','power_13NodeTestFeeder','solve')
LF = 
             model: 'power_13NodeTestFeeder'
         frequency: 60
         basePower: 100000
         tolerance: 0.0001
              Ybus: [29x29 double]
               bus: [1x29 struct]
                sm: [1x1 struct]
               asm: [1x1 struct]
              vsrc: [1x1 struct]
            pqload: [1x1 struct]
           rlcload: [1x1 struct]
          Networks: [1x1 struct]
            status: 1
        iterations: 3
             error: ''
    LoadFlowSolver: 'Unbalanced'

Input Arguments

collapse all

Model of which you want to compute the load flow and initialize the load flow solution.

File name on which you want to save the detailed information of the load flow solution, specified as a character vector.

Output Arguments

collapse all

Load flow parameters and solutions, returned as a structure with these fields:

FieldDescription
modelThe name of the model.
frequencyThe load flow frequency, in hertz. This value corresponds to the Load flow frequency parameter of the powergui block.
basePowerThe base power used by the Load Flow Analyzer. This value corresponds to the Base power Pbase parameter of the powergui block.
toleranceThe tolerance used by the Load Flow Analyzer. This value corresponds to the PQ Tolerance parameter of the powergui block.
bus[1 x Nbus] structure with fields defining the bus parameters. For a positive-sequence load flow, Nbus is the number of three-phase buses in the model. For an unbalanced load flow, Nbus is the total number of single-phase buses in the model.
sm[1 x Nsm] structure with fields defining the load flow parameters of the Synchronous Machine blocks. Nsm is the number of Synchronous Machine blocks in the model.
asm[1 x Nasm] structure with fields defining the load flow parameters of the Asynchronous Machine blocks. Nasm is the number of Asynchronous Machine blocks in the model.
vsrc[1 x Nsrc] structure with fields defining the load flow parameters of the Three-Phase Source, Three-Phase Programmable Voltage Source, and AC Voltage Source blocks. Nsrc is the number of single-phase and three-phase voltage source blocks in the model.
pqload[1 x Npq] structure with fields defining the load flow parameters of the Three-Phase Dynamic Load blocks. Npq is the number of Three-Phase Dynamic Load blocks in the model.
rlcload[1 x Nrlc] structure with fields defining the load flow parameters of the Three-Phase Parallel RLC Load, Three-Phase Series RLC Load, Parallel RLC Load, and Series RLC Load blocks. Nrlc is the number of three-phase and single-phase blocks in the model.
Ybus1[Nbus x Nbus] positive-sequence complex admittance matrix in pu/Pbase used for positive-sequence load flow solution.
Ybus[Nbus x Nbus] complex admittance matrix in pu/Pbase used for unbalanced load flow solution.
NetworksThe bus numbers of each independent network.
statusReturns 1 when a solution is found, and -1 when no solution is found.
iterationsThe number of iterations that the solver took to solve the load flow.
errorDisplays an error message when no solution is found.
LoadFlowSolverThe type of load flow solver: 'PositiveSequence' or 'Unbalanced'

Algorithms

The power_loadflow function computes the positive-sequence load flow or the unbalanced load flow of a Simscape™ Electrical™ Specialized Power Systems model and initializes the load flow blocks to start simulation in steady-state. Load flow blocks are Simscape Electrical Specialized Power Systems blocks in which you can specify active power (P) and reactive power (Q) to solve the positive-sequence load flow.

The power_loadflow function uses the Newton-Raphson method to provide a robust and fast convergence solution and offers most of the functionality of other load flow software available in the power utility industry.

The power_loadflow function applies the load flow solution to the model by initializing these block parameters:

  • The Phase-to-phase voltage and Phase angle of phase A parameters of Three-Phase Source blocks

  • The Positive-sequence: [Amplitude Phase] parameter of Three-Phase Programmable Voltage Source blocks

  • The Nominal phase-to-phase voltage parameter of Three-Phase Parallel RLC Load and Three-Phase Series RLC Load blocks

  • The Active and reactive power at initial voltage [Po Qo] parameter and Initial positive-sequence voltage Vo [Mag(pu) Phase (deg.)] parameter of Three-Phase Dynamic Load blocks

  • The Initial Conditions [slip, th, ia,ib,ic, pha,phb,phc] parameter of Asynchronous Machine blocks

  • The Initial conditions [dw th ia,ib,ic pha,phb,phc Vf ] parameter of Synchronous Machine and Simplified Synchronous Machine blocks

The function also initializes the following parameters of the blocks that are connected to the Pm, Vf, and Tm inputs of the Synchronous Machine and Asynchronous Machine blocks:

  • The Constant value parameter of Constant blocks

  • The Initial Value parameter of Step blocks

  • The Initial mechanical power parameter of Hydraulic Turbine and Governor blocks

  • The Initial power and generator rotor angle of the Steam Turbine and Governor blocks

The type of load flow solution (positive-sequence or unbalanced) is determined by the Load Flow Bus blocks present in the model. For more information on how to use the Load Flow Bus blocks in your model, see Load Flow Bus.

Version History

Introduced before R2006a