Power Foundation Classes
PowerApps calculation engine modules - which comprises of power system analysis
algorithms such as load flow etc, are developed from the basic build blocks or
C++ class libraries called Power Foundation Classes or simply
PFC. The concept of PFC is inspired by the Microsoft Foundation
Classess or MFC, which the developers of PowerApps have used in developing the
graphical user interfaces or GUI's. The entire PowerApps software is built using
Microsoft(R) Corporation's VC++ development tool.
The PFC class libraries can be distributed to the customers under license with
necessary documenation and technical support. These can be customized to
meet specific requirements of our customers.
The list of classes available under PFC is as follows
- CPFCabc012 : This class library provides all the functions of sequence to phase and phase to sequence transformations needed
for 3 phase and symmetrical component calculations of balanced or unbalanced
power system analysis calculations
- CPFCArea : This class is used in
specific algorithms, where multiple area tie line dynamic simulation is used.
- CPFCArr : This is a template class
that provides facilities for building dynamic array during execution time and
can virtually build arrays of any data type. This includes standard arrays like
int, float, double, or arrays of type of other classes or pointers. PowerApps
uses only this class to allocate memory during runtime for all data storage
requirements. This storage allocation is made exactly as needed by the input
data without wasting any memory. Consequently PowerApps memory requirements are
minimum and can virtually handle any practical system sizes for analysis.
"pfcarr" is similar to "CTypedPtrList" of MFC and is designed to handle many
common functions of PFC class libraries.
- CPFCbase : Base class for most
power foundation classes. Stores common data and functions.
- CPFCBHELDigitalAVR : This class
models the data and functions related to BHEL make Digital AVR for use in the
transient stability and dynamic stability simulations.
- CPFCBHELPSS : This class models
the data and functions related to BHEL make power system stabilizer for use in
the transient stability and dynamic stability simulations.
- PFCBranch : This is a generalized
two terminal branch class [an electric circuit connected between two nodes],
which forms the base class for the other two terminal classes suchs as those for
cables, lines, two winding transformers, series compensation, TCSC, Phase
Shifter etc.
- CPFCBreaker : This class is used
to provide the functionality of circuit breakers, isolators, switches,
especially in determing the network topology of the network based on switch
status on/off.
- PFCBus : This class provides the
functionality of an effective electrical node or simply an
equivalent bus considering closed switches if any. The class handles all data
and functions related to the bus for all analysis calculation modules.
- CPFCCapacitor : This class handles
the data and functionality of shunt capacitor for all analysis modules of
PowerApps.
- CPFCColumn : This function ,
similar to pfcarr class is a flexible storage array but stores only data type of
double. Unlike pfcarr class it handle only certain statistical functions related
to a column of type double values. Because the it supports the storage of type
double data values, it forms the basis of PFCMat class, which supports a matrix
class of type double values.
- CPFCcomplex : Many of the
calculations in power system analysis uses complex arithmetic. These are not
well supported in'C' and 'C++' in the same way as Fortran functions. PowerApps
basic modules were originally developed in Fortran and it was convenient to use
similar functions for the same. Consequently the Fortran type functions and many
additional functions were developed with the class PFCcomplex.
- CPFCControlvar : This class is
used in the optimal power flow algorithm of PowerApps to store necessary
information for various types of control variables such as, active power
generation, generatorexcitation, transformer taps, shunt reactive power
compensation, phase shifter control, series compensation control etc.
- CPFCConverter : This class handles
the necessary data and functions for HVDC converters for load flow and transient
stability algorithms of PowerApps
- CPFCCT : This class handles all
the data and functionality of the current transformer in PowerApps
protection related algorithm such as relay coordination.
- CPFCDgDu : This class stores the
information of the sensitivities of the active and reactive power bus power 'g'
with respect to the control varialbes 'u'. This class is used in the optimal
power flow algorithm of PowerApps.
- CPFCDisturbanceScenario : This
class stores information of various disturbance events for specified disturbance
scenario of transient stability simulation.
- CPFCDPslDx : This class stores the
information of the sensitivity of the slack generation with respect to the
dependent variables 'x'. This class is used in optimal power flow, where the
objective function is the minimization of the slack active power generation,
which is equivalent to minimization of the transmission losses under specified
generation schedule for remaining generators.
- CPFCDQgDx : This class stores the
information of the sensitivity of the generator reactive power output Qg with
respect to the dependent variables 'x'. This class is used in the optimal
power flow algorithm of the PowerApps software.
- CPFCDynamicSimulation : This class
simulates the generalized linearlized dynamic model of the type [dx/dt] = [A][x]
+ [B][u]. Where x is the vector of state variables and u is a vector of forcing
functions.
- CPFCEDDemand : This class handles
the data needed for economic dispatch algorithm
- CPFCEvent : This class stores the
disturbance event to be simulated for transient stability analysis. Is a child
member of CPFCDisturbanceScenario, which supports a list of disturbance events.
- CPFCExcType1 : This class supports
the IEEE Type 1 excitation system data and related calculation functions for Transient stability
analysis and Dynamic stability analysis
- CPFCExcType2 : This class supports
the IEEE Type 2 excitation syste data and calculation related functions for
Transient stability analysis and Dynamic stability analysis
- CPFCExcType4 : This class supports
the IEEE Type 4 excitation syste data and calculation related functions for
Transient stability analysis and Dynamic stability analysis
- CPFCExcType5 : This class supports
the IEEE Type 5 excitation syste data and calculation related functions for
Transient stability analysis and Dynamic stability analysis
-
CPFCFaultSummary : This class
primarily stores information of buswise fault summary for reporting purpose.
- CPFCGenED : This class stores
information of the generator control limits and some founctions for optimal
power flow and economic dispatch
- CPFCGenerator : This class stores
all information and functions needed for an AC generator needed to perform
calculations for analysis modules.
- CPFCGTGOV: This class stores all
information and functions needed for a gas turbine generator to perform
calculations for Transient and Dynamic stability calculation modules.
- CPFCHinj : This class stores all
the information needed for a harmonic current source for use in harmonic
analysis module.
- CPFCHVDCLine : This class stores
information and functions related to HVDC links for calculation modules.
- CPFCHydGovTurbine : This class
stores information and handles functions for IEEE type Hydro Governor for use in
the transient stability and dynamic stability programs
- CPFCIEEETypeST1Exc : This class
stores information and handles functions for IEEE type ST1 Excitation system for
use in the transient and dynamic stability programs
- CPFCLine: This is a derived class
from CPFCBranch and handles data and calculations related to overhead lines and
underground cables.
- CPFCLoad: This class stores
information about the power system load and its characteristics and load model
for all calculation algorithms
- CPFCLoadShedding : This class
stores information of underfrequency or undervoltage relay based load shedding
scheme for use in the transient stability analysis program.
- CPFCMat: This class handles the
data storage and various matrix calculation functions needed for power system
studies and calculations. The data storage requirements are allocated during
execution time. Some of the functions are matrix inversion routines, eigenvalue
calculations.
- CPFCMatcomplex: This class uses
complex variables using CPFCcomplex, and is the complex version of CPFCMat
- CPFCMCLine: This class handles
data storage and functions of mutually coupled lines.
- CPFCMeasurement: This is a
generalized class to store information of all types of measurements such as line
flows [Mw, Mvar, Ampere, Volts, Hz] etc for use in the PowerApps State
Estimation algorithm
- CPFCMotor: This class handles the
data and functions related to Induction motor for use in the PowerApps
calculation algorithms
- CPFCNeutral : This class handles
information of the neutral grounding transformer or impedance [both
resistance, reactance information] and supports CT's and thereby the relays fed
by the CT's.
- CPFCNode: This class supports data
and calculations related to an electrical node, i.e. a junction point of two or
more electrical circuits.
- CPFCOff: This class supports data
and calculations related to the off diagonal elements of the admittance matrix,
used in power system algorithm calculations.
- CPFCReactor: This class supports
data and functions related to the shunt reactor for use by calculation
algorithms
- CPFCRecord : This class handles
the flexible data record structure that can accommodate any type of standard
data and is similar to XML, CIM model type records. All of the PowerGUI drawing
information is stored in this type of record.
- CPFCRegression : This class builds
a regression model of the type Y = C0 + C1.X1 + C2.X2....+Cn.Xn, where X's are
provided in the form of CPFCColumn class and internally uses CPFCMat class for
obtaining the least square fit for the model , with or without fitting the
"noise" into the model. The "noise" is the difference between the actual model
and sample values and the "noise" model helps better fit of the model.
- CPFCRelay : This class handles
overcurrent phase and earth fault IDMT relays, with or without instantaneous or
definite time units. Handles 50,50N, 51, 51N relay information and calculations
for overcurrent relay coordination algorithm of PowerApps.
- CPFCShuntHA : This class
specifically stores the information and calculations related to shunt capacitors
for harmonic analysis algorithm. This class forms the base class for shunt
capacitors.
- CPFCSparseMat : This class handles
information and calculations for the sparse matrix solution and sparse vector
solution. the class handles data types of type double and type CPFCcomplex. It
also handles composite matrix elements of type 1x1, 1x2,2x1 and 2x2 as needed by
Newton's load flow in polar coordinate formulation. Further, it also handles
solutions for multiple islanded network model. the class stores all types of
matrix data needed for various calculations, including harmonic analysis.
- CPFCSparseMatD : This class is
similar to CPFCSparseMat , but handles only float or double type variables.
-
CPFCStation: This class
supports a collection of nodes [Class CPFCNode], collection of
switch/breaker/isolators [class CPFCBreaker] and is designed to handle the
network topology at station level, by generating effective connected node or bus
within the station level. In addition additional functions, data related to
station class is also managed by this class.
-
CPFCStmGovTurbine : The class
handles data and functions for the IEEE type steam governor turbine with several
stages for transient and dynamic stability studies.
-
CPFCSvc : This class handles data
and functions related to static var compensator [SVC] for all analysis programs.
-
CPFCTccDraw : This is a drawing
class that uses MFC builtin functions for drawing the
time-current-characteristics of the overcurrent phase/earth fault primary and
backup relays along with load current characteristics, thermal with stand
limits, motor starting currents, transformer inrush currents
-
CPFCTCSC : This class handles data
and functions related to Thyristor controlled series compensation for the
calculation algorithms, such as load flow, optimal power flow.
-
CPFCTieLine :This class handles
data and functions for tie lines, interconnecting two or more areas or a single
area with a large grid network, where an area or large power pool is modeled by
a lumped equivalents. This class is often used along with the class
CPFCDynamicSimulation
-
CPFCTrendExp : This class provides
least square curve fit for a time series data, with exponential model of the
type y = exp(c0+c1.x). The values of x are provided in the form of class
CPFCColumn.
-
CPFCTrendL : This class provides
least square curve fit for a time series data, with linear model of the type y =
c0 + c1.x. The values of x are provided in the form of class CPFCColumn.
-
CPFCTrendPolynomial : This class
provides the least square curve fit fo a time series data, where the model is an
arbitrary polynomial equation of the format y = c0 + c1.x + .....+cn.x**n.
Evidently, the highest polynomial order that we can use is limited by the number
of samples available in the vector x. The data samples of x are provided in the
form of the class CPFCColumn.
-
CPFCTrendQ : This class provides
least square cuver fit for the time series data, with quadratic model of the
type y=c0 + c1.x + C2.x**2. Evidently the linear and the quadratic models are
special types of Polynomial trend described. The data samples of x are provided
in the form of the class CPFCColumn.
-
CPFCTrf2w : This class handles the
data and functions related to two winding transformers. This class is derived
from the class CPFCBranch. The phase shifter
is handles as part of this class.
-
CPFCTrf3w : This class handles the
data and functions related to the three winding transformers
-
CPFCType1Block : This class
handles data and simulation function for the SISO transfer function block of the
type [Xo/Xi] = [A/(B+Cs)], where 's' is the complex frequency denoting laplace transform of
[d/dt], Xo is the output variable, Xi is the input variable, A,B,C are constants
of the transfer function.
-
CPFCType2Block : This class
handles data and simulation function for the SISO transfer function block of the
type [Xo/Xi] = [As/(B+Cs)],
where 's' is the complex frequency denoting laplace transform of [d/dt], Xo is the output variable, Xi is the
input variable, A,B,C are constants of the transfer function.
-
CPFCType3Block : This class
handles data and simulation function for the SISO transfer function block of the
type [Xo/Xi] = [(A+Bs)/(C+Ds)], where 's' is the laplace
operator [d/dt], Xo is the output variable, Xi is the input variable, A,B,C are
constants of the transfer function.
-
CPFCVoltageRelay : This class
handles necessary data needed for simulation of under voltage relay , over
voltage relay in PowerApps transient stability analysis.
CPFCXt : This class handles the
user defined data for variation of the generator/ motor subtransient / transient
reactances with respect to time for calculations of fault level as per IEC
60909, G74 standards. This user defined data is an additional feature apart from
the normal data of time constants and reactances.
-
CPowerGraphXY : This is a generic
XY plotting program which draws plots of several Y variables with respect to a
given X - axis variable. The function is developed using the MFC drawing
functions.
-
CRelay_Characteristics_Obj : This
class stores overcurrent IDMT relay characteristics as samples at user defined
intervals and also as mathematical functions using curve fitting techniques.
-
CTCCDisplayInfo : This class
stores the collection of various characteristics to be displayed in a given time
current characteristics.
-
CPFCCase : This class stores the
complete system data needed for all calculation algorithms and handles several
common functions related to various algorithms. It also handles study case
variations in the data for different calculation algorithms.
-
CPFCDstability : This class
handles the algorithm for Dynamic stability or small signal stability analysis.
-
CPFCED : This class handles one of
the two variation of the economic dispatch algorithm and is used in conjuction
with the optimal power flow and reactive power optimization algorithms.
-
CPFCELD : This class handles
another variation of the economic load dispatch algorithm.
-
CPFCGeneralFA : This class handles
conventional and IEC 60909 type short circuit calculations with or without
initial load flow conditions. Further, it also computes impedance seen at
different line locations for any specified fault location and type. This
impedance information is useful in determining the distance relay settings.
-
CPFCHarmonicAnalysis : This class
handles the harmonic analysis algorithm, calculations of harmonic bus voltages ,
currents for different harmonics, calculations of various indices [Total
harmonic distortion factors], frequency - impedance scan plots.
-
CPFCIec909 : This class handles
IEC 60909 type fault calculations as per G74 UK standard.
-
CPFCLflow : This class handles all
variations of load flow algorithms, Newton's , Gauss Siedel, Fast Decoupled.
-
CPFCLinearProgram : This class
handles linear program solution to PowerApps OPF formulation.
-
CPFCOCRelay : This class handles
the relay coordination algorithm for overcurrent phase and earth fault relays.
-
CPFCOPF: This class handles
PowerApps optimal power flow and reactive power optimization algorithm
-
CPFCSE : This class handles all of
the PowerApps state estimation algorithms
-
CPFCTstability: This class handles
the PowerApps Transient Stability analysis algorithm.
The class library list is under construction and is partially built at this time.
More details about the individual classess may be provided in the future.There
are other classess which are not specific to calculations and are not listed.
Several algortihms that are still in original Fortran format are not yet listed
in the class list.