Power System Platform  2024w23a
Loading...
Searching...
No Matches
PowerFlow Class Reference

Calculate the power flow. More...

#include <PowerFlow.h>

Inheritance diagram for PowerFlow:
Collaboration diagram for PowerFlow:

Public Member Functions

 PowerFlow (std::vector< Element * > elementList)
 
virtual bool InitPowerFlow (std::vector< BusType > &busType, std::vector< std::complex< double > > &voltage, std::vector< std::complex< double > > &power, std::vector< std::complex< double > > &loadPower, std::vector< ReactiveLimits > &reactiveLimit, double systemPowerBase=100e6, double initAngle=0.0)
 
virtual bool RunGaussSeidel (double systemPowerBase=100e6, int maxIteration=5000, double error=1e-6, double initAngle=0.0, double accFactor=1.0)
 
virtual bool RunNewtonRaphson (double systemPowerBase=100e6, int maxIteration=5000, double error=1e-6, double initAngle=0.0, double inertia=1.0)
 
virtual bool RunGaussNewton (double systemPowerBase=100e6, int maxIteration=5000, double error=1e-6, double initAngle=0.0, double accFactor=1.0, double gaussTol=1e-2, double inertia=1.0)
 
virtual wxString GetErrorMessage ()
 
virtual int GetIterations ()
 
- Public Member Functions inherited from ElectricCalculation
 ElectricCalculation ()
 Constructor.
 
 ~ElectricCalculation ()
 Destructor.
 
virtual void GetElementsFromList (std::vector< Element * > elementList)
 Separate the power elements from a generic list.
 
virtual bool GetYBus (std::vector< std::vector< std::complex< double > > > &yBus, double systemPowerBase, YBusSequence sequence=POSITIVE_SEQ, bool includeSyncMachines=false, bool allLoadsAsImpedances=false, bool usePowerFlowVoltagesOnImpedances=false)
 Get the admittance matrix from the list of elements (use GetElementsFromList first).
 
virtual bool InvertMatrix (std::vector< std::vector< std::complex< double > > > matrix, std::vector< std::vector< std::complex< double > > > &inverse)
 Invert a matrix.
 
virtual void UpdateElementsPowerFlow (std::vector< std::complex< double > > voltage, std::vector< std::complex< double > > power, std::vector< BusType > busType, std::vector< ReactiveLimits > reactiveLimit, double systemPowerBase)
 Update the elements after the power flow calculation.
 
void ABCtoDQ0 (std::complex< double > complexValue, double angle, double &dValue, double &qValue)
 
void DQ0toABC (double dValue, double qValue, double angle, std::complex< double > &complexValue)
 
std::vector< std::complex< double > > GaussianElimination (std::vector< std::vector< std::complex< double > > > matrix, std::vector< std::complex< double > > array)
 
std::vector< double > GaussianElimination (std::vector< std::vector< double > > matrix, std::vector< double > array)
 
Machines::SyncMachineModel GetMachineModel (SyncGenerator *generator)
 
std::vector< std::complex< double > > ComplexMatrixTimesVector (std::vector< std::vector< std::complex< double > > > matrix, std::vector< std::complex< double > > vector)
 
void GetLUDecomposition (std::vector< std::vector< std::complex< double > > > matrix, std::vector< std::vector< std::complex< double > > > &matrixL, std::vector< std::vector< std::complex< double > > > &matrixU)
 
std::vector< std::complex< double > > LUEvaluate (std::vector< std::vector< std::complex< double > > > u, std::vector< std::vector< std::complex< double > > > l, std::vector< std::complex< double > > b)
 
bool GetParentBus (Element *childElement, Bus *&parentBus)
 
bool GetParentBus (Element *childElement, Bus *&parentBus1, Bus *&parentBus2)
 
const std::vector< PowerElement * > GetPowerElementList () const
 Get the power elements of the system (use GetElementsFromList first).
 
const std::vector< Bus * > GetBusList () const
 Get the buses of the system (use GetElementsFromList first).
 
const std::vector< Capacitor * > GetCapacitorList () const
 Get the capacitors of the system (use GetElementsFromList first).
 
const std::vector< IndMotor * > GetIndMotorList () const
 Get the induction motors of the system (use GetElementsFromList first).
 
const std::vector< Inductor * > GetInductorList () const
 Get the inductors of the system (use GetElementsFromList first).
 
const std::vector< Line * > GetLineList () const
 Get the lines of the system (use GetElementsFromList first).
 
const std::vector< Load * > GetLoadList () const
 Get the loads of the system (use GetElementsFromList first).
 
const std::vector< SyncGenerator * > GetSyncGeneratorList () const
 Get the synchronous generators of the system (use GetElementsFromList first).
 
const std::vector< SyncMotor * > GetSyncMotorList () const
 Get the synchronous motors of the system (use GetElementsFromList first).
 
const std::vector< Transformer * > GetTransformerList () const
 Get the transformers of the system (use GetElementsFromList first).
 
const std::vector< HarmCurrent * > GetHarmCurrentList () const
 Get the harmonic current source of the system (use GetElementsFromList first).
 

Protected Member Functions

void GetNumPVPQ (std::vector< BusType > busType, int &numPQ, int &numPV)
 
std::vector< std::vector< double > > CalculateJacobianMatrix (std::vector< std::complex< double > > voltage, std::vector< std::complex< double > > power, std::vector< BusType > busType, int numPV, int numPQ)
 
bool CheckReactiveLimits (std::vector< BusType > &busType, std::vector< ReactiveLimits > &reactiveLimit, std::vector< std::complex< double > > power, std::vector< std::complex< double > > loadPower)
 
double GaussSeidel (std::vector< BusType > busType, std::vector< std::complex< double > > &voltage, std::vector< std::complex< double > > oldVoltage, std::vector< std::complex< double > > &power, double accFactor)
 
void NewtonRaphson (std::vector< BusType > busType, std::vector< std::complex< double > > &voltage, std::vector< std::complex< double > > power, int numPV, int numPQ, std::vector< double > dPdQ, double inertia)
 
bool CalculateMotorsReactivePower (std::vector< std::complex< double > > voltage, std::vector< std::complex< double > > &power)
 
- Protected Member Functions inherited from ElectricCalculation
void GetNextConnection (const unsigned int &checkBusNumber, const std::vector< std::vector< std::complex< double > > > &yBus, std::vector< bool > &connToSlack)
 

Protected Attributes

std::vector< std::vector< std::complex< double > > > m_yBus
 
wxString m_errorMsg = ""
 
int m_numberOfBuses = 0
 
int m_iterations = 0
 
- Protected Attributes inherited from ElectricCalculation
std::vector< PowerElement * > m_powerElementList
 
std::vector< Bus * > m_busList
 
std::vector< Capacitor * > m_capacitorList
 
std::vector< IndMotor * > m_indMotorList
 
std::vector< Inductor * > m_inductorList
 
std::vector< Line * > m_lineList
 
std::vector< Load * > m_loadList
 
std::vector< SyncGenerator * > m_syncGeneratorList
 
std::vector< SyncMotor * > m_syncMotorList
 
std::vector< Transformer * > m_transformerList
 
std::vector< HarmCurrent * > m_harmCurrentList
 

Detailed Description

Calculate the power flow.

Author
Thales Lima Oliveira thale.nosp@m.s@uf.nosp@m.u.br
Date
06/10/2017

The documentation for this class was generated from the following files: