PSLF User's Manual
PSLF User's Manual
PSLF User's Manual
General Electric International, Inc. (GEII) Proprietary Information - The information contained in this manual is GEII proprietary
information. It is the property of GEII and shall not be used, disclosed to others or reproduced without the express written consent of GE. If
consent is given for reproduction in whole or in part, this notice shall appear in any such reproduction in whole or in part. The information
contained in this document may also be controlled by the US export control laws. Unauthorized export or re-export is prohibited.
© General Electric International, Inc., 2019.
What’s New with PSLF Version 21.0.7.1? Release Notes
MODELS Models are accessed here alphabetically
ALL COMMANDS AND FUNCTIONS Alphabetic list of all commands and functions
INDEX
APPLICATION NOTES
89-3 appnot apn893 Modeling Delta-Wye Transformers
91-2 appnot apn912 Merge.p - EPCL Program to Merge Load Flow Data
98-1 appnot apn981 Conversion of Dynamic Data from PSS/E Format to PSLF Format
00-1 appnot apn001 Calculation of Line Outage Distribution Factors EFAX
02-1 appnot apn021 Angle Estimation before AC Solution
02-2 appnot apn022 Writing EPCL Dynamic Models Using EPCMOD for Dynamic
Simulations in PSLF
02-2 appnot apn022II Writing EPCL Dynamic Models Using EPCMOD for Dynamic
Simulations in PSLF (II)
03-2 appnot apn032 Stability Modeling of Vestas V80 Wind Turbine-Generator
08-1 appnot apn0811 Step Response for batch simulations
08-2 appnot apn082 Modeling of GE Wind Turbine-Generators for Grid Studies
08-3 appnot apn083 Engineering checks during raw import
08-4 appnot apn084 EPC Import and Export
08-5 appnot apn085 12 Character Bus Name Version
10-1 appnot apn101 Modeling of GE Solar Photovoltaic Plants for Grid Studies
10-2 appnot apn102 Creating/Reading Incremental Change File
10-3 appnot apn103 The Play In System for PSLF
11-1 appnot apn111 Generic Static Var System Models for WECC
12-1 appnot apn121 PSLF HVDC Modeling for Planning Studies
14-1 appnot apn141 Guide to model an detect transient limit violations
14-2 appnot apn142 Guide to reading/creating incremental IDEV file from PSS®E
14-3 appnot apn143 NERC CIP-014-1
17-1 appnot apn171 Power plant model validation tool
17-2 appnot apn172 Modeling voltage dependent Reactive Limits for wind turbines/solar
generators in power flow
17-3 appnot apn173 Power Flow Solution Options in PSLF
17-4 appnot apn174 Using NERC Case Quality Metrics
18-1 appnot apn181 Simulating RAS/SPS in PSLF Dynamic Simulation
RELEASE NOTES
PSLF V21.0.7.1 is a minor update of PSLF V21.0_07. You are invited to download and try it out. Please
report any issues encountered to pslf-support@ge.com.
PSLF V21.0.7.1 may be downloaded and installed as follows:
1. Copy the “epcd” file from the user’s current PSLF program installation directory (e.g. \upslf21) to
activate this installation. New users should contact pslf.registration@ge.com to obtain their “epcd” file.
2. Execute the ConcordaPSLF-21.0.7.1.exe file to install the program and setup files. Note that you may
have more than one version of PSLF installed on your machine if you choose a different installation
folder.
When starting up this version of PSLF – be sure that PSLF V21.0.7.1, Release Date September 16, 2019
is displayed.
If the version and build date are not V21.0.7.1 and September 16, 2019, please contact
pslf.registration@ge.com (GE Distributions), or Kent Bolton kbolton@wecc.org (GE-WECC Distributions) for
assistance.
FIXES
PSLF 1. Fixed an issue where improper DC system numbers were assigned to HVDC
systems when multi-terminal DC systems are modeled in a case
2. A problem was detected in earlier PSLF versions with the repc_b model when
controlling multiple reec models that were not type 3 wind units(i.e. there were
no wtgq_a models present). This has been fixed
3. Under the menu for file path parameters the folder specified for “rdyd” was not
being correctly read in. It has been rectified
SSTOOLS 1. A problem was noted when executing RAS. It has been corrected
DYTOOLS 1. A problem was noted when executing RAS. It has been corrected
Known Issues
isolate 1. Trying to isolate a range of buses through the menu item misc-
>Isolate fails. A work around is to use the EPCL function “isol”.
One may mark the buses to isolate to be type 4 prior to using the
EPCL function.
Select All 2. The context menu (right click) item “select all …” when accessed
in a column of float values fails to filter down to rows that match
the float value selected.
Column Total 3. In the tabr totals when using the Column Total option for a column
of floats after filtering down to an area or zone, the results may
vary from one attempt to the next. We suggest using an EPCL to
get the totals for a float column, particularly when filtering to a
certain area.
Dynamics 4. Relatively small variations in power have been observed toward
the end of some transient simulations where a more settled
dynamic response was expected. This issue is being
investigated.
RELEASE NOTES
PSLF V21.0_07 is a minor update of PSLF V21.0_06. You are free to download and try it out. Please report
any issues encountered to pslf-support@ge.com.
PSLF V21.0_07 may be downloaded and installed as follows:
3. Copy the “epcd” file from the user’s current PSLF program installation directory (e.g. \upslf21) to
activate this installation. New users should contact pslf.registration@ge.com to obtain their “epcd” file.
4. Execute the ConcordaPSLF-21.0_07.exe file to install the program and setup files. Note that you may
have more than one version of PSLF installed on your machine if you choose a different installation
folder.
When starting up this version of PSLF – be sure that PSLF V21.0_07, Release Date July 2, 2019 is
displayed.
If the version and build date are not V21.0_07 and July 2, 2019, please contact pslf.registration@ge.com
(GE Distributions), or Kent Bolton kbolton@wecc.org (GE-WECC Distributions) for assistance.
PROGRAM ENHANCEMENTS
PSLF 1. A menu item has been added under the RAS Data menu to retain the
currently loaded RAS items if the user chooses to load a new power flow
case. The default behavior is to clear the RAS memory as a new case is
loaded.
2. A menu item has been added to write/save the state of dynamic execution.
PSLF writes a snapshot file in current working directory. Minimum
requirements to a snapshot are: (1) load save case, (2) load dynamic file
and (3) initialize dynamics simulation.
3. A menu item has been added to read/load the state of dynamic execution
saved in some previous session. Once snapshot is loaded, all data is
restored, and the dynamic simulation continues from the point in time when
it was created.
FIXES
PSLF 4. PSLF will now proceed even if a generator in the Qtable does not exist in
the power flow case being read in the EPC format.
5. Problems were identified in updating case file names shown in PSLF
following saved changes to a base case. The changed case name shown
would revert to the base case name. This problem has been corrected.
6. Issues reported with scanning breakers have been resolved.
7. Problems reading DRW files with breakers were reported. These have
been fixed.
8. A crash was reported in reading in DRW files with buses and branches
that did not exist in the accompanying power flow case. The problem has
been resolved.
9. A check to see if a plant level controller has droop has been improved.
10. wdyd now does not write out any of the models created internally by
PSLF for _cmpldw and _cmpldw2 models.
11. A bug-fix has been included to avoid NaNs if the DG component in a
load with cmpldw model is larger than the load component but there is no
dynamic DG model included.
12. It was reported that the initial values of rapp and xapp in ooslen and
distrel models are zero. These are now appropriately initialized.
13. A bug-fix in _cmpldw model to include the der_a component has been
included.
14. wdyd for cmpldw models with dynamic DG models now also prints out
the dynamic DG model data.
15. A bug-fix has been including wrt accounting for the reactive power DG
component of a load without dynamic DG models if the voltage falls
below solpar.vlbrk.
16. Computations for ZIP load models with non-zero p4/q4 have been fixed.
17. An issue identified in replication lines in the EDDS table has been
resolved.
18. It was reported that the reading of an EPC file was slow in the recent
release of PSLF. The performance has been improved.
19. A reported issue with the button sub-panel, where it would not refresh on
solving a case while in a sub-panel, has been fixed.
20. In dynamic model reec_c, the input variable Paux is now accessed via
genbc[].paux2 (vs. genbc[].paux). Since plant controllers, e.g., repc_b
also use genbc[].paux, this fix avoids potential conflicts using
genbc[].paux.
21. An issue was reported that if a case has both _cmpldw models as well
as ZIP load models such as alwscc, the dynamic simulation did not
initialize properly. This has been fixed.
22. An issue was reported w.r.t. _cmpldw models wherein it was not adding
the cmpldw models for applicable loads if lsdt models existed for the
loads in the case already. This has been fixed.
23. A bug w.r.t. the flow function was fixed, wherein it failed to detect
branches if the to-bus of a given branch was connected to another bus
by a jumper.
24. An issue was reported where if some VSCs were turned off in the power-
flow case, the solved case turned off all VSCs. This has been fixed.
25. It was reported that PSLF would crash during rdyd if the format of the
netting records was incorrect in the file. This has been fixed.
26. If an unbalanced line fault has different clearing times from the two ends
of the line, the effective fault impedance is now recalculated after the fault
is cleared from one end to reflect the updated sequence networks. This
leads to improved accuracy in the short time-frame between the clearing
of the fault from one end and complete isolation from both ends.
27. It was observed that for repc_b, the order of parameters for the devices
controlled by the model written out in wdyd was incorrect. This has been
fixed.
28. A problem identified with scanning from the VSC table has been
resolved.
29. The issue with drawing a VSC in OLGR has been corrected.
30. An issue with importing Qtable with the EPC format has been taken care
of.
31. The data check utility has been enhanced to report data outliers in the
three-winding transformers, area, and zone tables. Some issues have
been uncovered reporting data issues with HVDC equipment and are
fixed.
32. A problem identified in the SCAN/OLGR window as relates to reporting
of flows at the from and to end of a line has been corrected.
33. A report about Equivalent Network causing PSLF to crash was
investigated and the issue corrected.
PLOT 1. Identification of files in legends when using SELM has been corrected.
2. The Id settings will default to the bus identifier unless the user chooses
the long id.
3. The EPCL batch_plot.p was reported to malfunction. The problem has
been corrected.
4. A problem reported with the context menu item to paste a trace from the
View table onto a Plot window block has been fixed.
SSTOOLS 2. It was identified that the integrated SSTOOLS program did not correctly
process the “redispatch.p” EPCL program. This has been corrected.
Known Issues
isolate 5. Trying to isolate a range of buses through the menu item misc-
>Isolate fails. A work around is to use the EPCL function “isol”.
One may mark the buses to isolate to be type 4 prior to using the
EPCL function.
Select All 6. The context menu (right click) item “select all …” when accessed
in a column of float values fails to filter down to rows that match
the float value selected.
Column Total 7. In the tabr totals when using the Column Total option for a column
of floats after filtering down to an area or zone, the results may
vary from one attempt to the next. We suggest using an EPCL to
get the totals for a float column, particularly when filtering to a
certain area.
Dynamics 8. Relatively small variations in power have been observed toward
the end of some transient simulations where a more settled
dynamic response was expected. This issue is being
investigated.
RELEASE NOTES
PSLF V21.0_06 is a minor update of PSLF V21.0_05. It is suggested that users upgrade to this version at
the earliest. Please report any issues encountered to pslf-support@ge.com.
PSLF V21.0_06 may be downloaded and installed as follows:
5. Copy the “epcd” file from the user’s current PSLF program installation directory (e.g. \upslf21) to
activate this installation. New users should contact pslf.registration@ge.com to obtain their “epcd” file.
6. Execute the ConcordaPSLF-21.0_06.exe file to install the program and setup files.
When starting up this version of PSLF – be sure that PSLF V21.0_06, Release Date January 15, 2019 is
displayed.
If the version and build date are not V21.0_06 and January 15, 2019, please contact
pslf.registration@ge.com (GE Distributions), or Donald Davies (GE-WECC Distributions) for assistance.
PROGRAM ENHANCEMENTS
PSLF 1. datarec/deleterec/datachange EPCL functions can now add/delete/edit
Datamaintainer recorders.
2. Climate zone has been added to the edit load table.
3. The model _cmpldw has a new parameter kVthresh such that if base kV
of the load bus for which a new cmpldw is to be created, is below this
value, xxf will be zero.
4. Loads with negative Q are now allowed with _cmpldw. Now, only the
magnitude of |P/Q| load is compared with PQmin to ensure it is above the
threshold.
5. The ObjectFieldEvalRef filed is added into SCR element record. By
default, OtherValue filed in SCR element record is blank or 0. A lookup
table will be ignored if it is not defined properly.
6. For the model esst4b, if it is desired to set Vb at a fixed value, set
Kp>=99999 and Vbmax = desired value, in which case Vb is set to
Vbmax (no warnings are issued).
7. Duplicate dynamic models for generators and associated components
(i.e. excitation, turbine-governor, stabilizer), aero, motor and composite
load models are now treated as a fatal error during initialization. The
simulation cannot proceed until only one in-service dynamic model is
used in the case for the above components.
8. The date_in and date_out fields in Edit Tables will now show the year 4
digits. The dates are converted as the specific table is brought up (e.g.
busd, gens). Once the case is saved the appropriate records will hold the
8 digit date.
9. The model lsmon now monitors all load dynamic models, including ZIP
load models.
10. Interface elements in bface table are exported to RAS WCRF file.
11. Enhancement has been made to improve the performance of Dynamic
RAS evaluation.
12. The individual documents for dynamic models under the PSLF manual
have been recreated to improve the graphic resolution.
DYTOOLS 1. Contingency error reporting has been improved and provides users with
a more meaningful description in the summary file (*.sum).
2. Two new fields “RASPATH” and “RASLISTPATH” have been added to
the *.cases file. This allows users to specify the locations for their RAS
files.
3. DYTOOLS may run slow when model expressions are included in RAS,
the performance has been improved.
4. DYTOOLS batch plotting program has been updated to show the
contingency ID and Description fields in the output plot files.
SSTOOLS 1. Contingency error reporting has been improved and provides users with a
more meaningful description in the summary file (*.sum). The output *.crf
file now also lists all those skipped contingencies due to invalid
equipment definitions from the *.otg file.
2. Two new fields “RASPATH” and “RASLISTPATH” have been added to
the *.cases file. This allows users to specify the locations for their RAS
files.
FIXES
PSLF 34. PSLF could crash under the conditions: FLAT start option is enabled and
there are more than 10 islands in the system. The issue has been fixed.
35. It was observed that the repc_b model was incorrectly being read in even
if the IDs of devices were non-numerical characters. While the model
was not eventually added to the case, an appropriate error message was
not being printed. This has been fixed.
36. The model wt4t has an error if the mwcap is entered as zero. As a fix, the
model mbase is fixed to the generator mbase and a message is printed
to the log file as well as the terminal.
37. It was observed that rdyd would crash in the presence of _cmpldw model
in the .dyd file. This has been fixed.
38. The documentation in the repc_ models has been clarified with regard to
the use of qmax/qmin when the electrical controller reec_ model is in
local voltage control mode. In this mode, the output signal of repc_
models is a voltage quantity, not reactive power. Hence the qmax/qmin in
the repc_ model should be voltage limits (pu) if the reec_ model is in local
voltage control mode.
39. In the der_a model, a bug was fixed with regard to tracking vmax. It is
now tracked only after the timer tvh1 elapses.
40. PSLF could crash if an in-line transformer has zero turns ratio. The issue
has been fixed by changing the zero turns ratio to 1.0
41. An issue was reported when sorting edit table columns for Date In and
Date Out. The behavior has been corrected
42. Problem reported with working of Sample EPCL merge.p have been
resolved
43. During initialization, it was reported that duplicate composite load models
(cmpld, cmpldw, cmpldwg, cmpldw2) were not being checked for and
hence no warnings were printed for the same. This has been fixed.
44. In PV studies with SSTOOLS, the subsystem definitions by SCALE
keyword are not processed properly
45. SSTOOLS crashed if the base case had breakers. This has been
corrected
46. There was an issue identified in the case differences function (difs())
where the three winding transformer flows were incorrectly reported. This
has been fixed.
47. When tlin1 model is incorrectly applied to a messed network instead of a
radial network as designed, it may enter a dead loop.
48. An issue was reported when a load with DG component is modeled as a
compldw model and DG type in the cmpldw model is set to zero. The
issue has been fixed.
SC 1. The temporary files created by Short circuit solution are removed after
the solution is done.
GMD 1. When a resistive blocking device is added to the neutral of Y-grounded
windings of a transformer, the DC currents on the transformer windings
are not calculated correctly. The issue has been fixed.
2. The USGS soil conductivity map has been updated. User defined earth
model is allowed.
SSTOOLS 1. Fixed an issue where the correct EPCL file path was not being used as
defined by the variable “EPCLPATH”.
DYTOOLS 3. Fixed an issue where the correct EPCL file path was not being used as
defined by the variable “EPCLPATH”.
RELEASE NOTES
PSLF V21.0_05 is a minor update of PSLF V21.0_04. It is suggested that users upgrade to this version at
the earliest. Please report any issues encountered to pslf-support@ge.com.
PSLF V21.0_05 may be downloaded and installed as follows:
7. Copy the “epcd” file from the user’s current PSLF program installation directory (e.g. \upslf21) to
activate this installation. New users should contact pslf.registration@ge.com to obtain their “epcd” file.
8. Execute the ConcordaPSLF-21.0_05.exe file to install the program and setup files.
When starting up this version of PSLF – be sure that PSLF V21.0_05, Release Date March 30, 2018 is
displayed.
If the version and build date are not V21.0_05 and March 30, 2018, please contact pslf.registration@ge.com
(GE Distributions), or Donald Davies (GE-WECC Distributions) for assistance.
PROGRAM ENHANCEMENTS
PSLF 4. PSLF has been enhanced to simulate RAS in dynamics. RAS can be simulated
by the program during a manual run by the user from the user interface or epcl
script or from the dynamics contingency processor (DYTOOLS).
5. The voltage limit report found under report (rept) has been updated to report
voltage violations with respect to local low and high voltage limits defined for
each bus in the bus table in addition to the global normal and emergency
voltage limits.
6. Based on customer feedback, PSLF has been updated to only allow *.txt file
format to be used to save reported differences between *.sav files.
7. A built-in PSSE raw file importer has been provided, the importer can read raw
files in versions 33 and 34, and be called by epcl scripts.
8. The user can now specify a voltage threshold such that if the voltage at the
monitored bus falls below this threshold, the frequency used by relay models is
set to 60 Hz. The voltage threshold can be set in the file javaini.p using
dypar[0].v_f_inh (the default value is zero). The affected relay models include
an additional output channel to monitor this frequency, frel. The frequency
meter model, fmetr, also includes this output channel.
9.
GMD 1. Supplement Benchmark GMD event has been provided for supplement GMD
vulnerability assessment. Its regional geoelectric field peak amplitude is 12
V/km.
2. vdc and idc are added into secddg structure, where vdc is induced dc voltage
on a line and idc is dc current injection due to the induced dc voltage.
3. A function has been added to screen transformers for thermal impact
analysis. The function, gmdscreent, is accessible via EPCL.
DYTOOLS 1. DYTOOLS has been enhanced to simulate RAS
SSTOOLS 1. Comments can be now added for contingency elements and are
preserved in the native OTG file.
PLOT 1. Added option called Delta in Extreme Plots to display graphs, each with
root of 0 on y-axis. That is, all lines are shifted by value X (where X is
individually calculated for each line) so that each line beings at 0 on y-
axis.
FIXES
PSLF 1. It was observed that the program would crash when appending data from
an *.epc file, if datamaintainer data was present in the case in memory.
This has been corrected.
2. It was observed that countgenonline, countloadonline, countshuntonline
fields in the injection group were not reporting correct values when used
in RAS. This has been fixed.
3. It was observed that filterobjecttype field in RAS SCR record was not
being exported correctly for 3 winding transformers as per the WECC
common format causing issues for other software. This has been
corrected to help users of other software.
4. Problems were reported when using the select edit feature to filter edit
tables to certain areas or zones. These have been corrected.
5. It was reported that RAS “Edit Filters” was not working properly for some
cases. This has been corrected.
6. It was observed that switching action for branches from SCAN was not
working correctly in a hybrid model (containing bus-branch and node-
breaker representation) of the system. This has been resolved.
7. Using substation scan from SCAN will warn the user if a bus or its
immediate neighboring buses are not assigned to a substation.
8. It was observed that the selective epc export based on zones was not
working as expected. This has been fixed
9. It was reported that the epc read-in function behaved inconsistently on
subsequent reads of the same or similar epc files. This has been fixed.
10. For wt4t, wdyd exported mwcap as 0, if default parameters were to be
exported. This has been fixed.
11. In repc_a model, it was reported that the qmin and qmax limits were not
applied correctly when outflag was set to 1. This has been fixed. The
parameter outflag is no longer used by the repc_a model. It is set
internally depending on the control mode.
12. Fixed a bug that would cause the program to crash/stall when the user
attempts to delete a non-existent edit tables record(s) using EPCL
command del().
13. The Edit/View option for RAS SCRs was reported to fail. The functionality
has been corrected.
14. A problem was identified with the export EPC functionality from edit
tables. It has been corrected.
15. An issue was corrected to deal with breaker identifiers of 8 character
length.
16. A problem identified using the differences report in the drawing mode
with a load in the DRW file has been corrected.
17. The functionality to open a DRW file has been modified to bring up the
drawing in a center mode.
18. It was observed that for a generator with negative Pgen and voltage
control mode 2 (Voltage at regulated bus is held constant within Q limits
of generator specified by pf input parameter), the calculated actual Qmax
is negative and the actual Qmin is negative. This has been corrected.
19. The selection of tables to export via EEPC has been corrected to include
or exclude recently added tables.
20. It was observed that the getmodpar/setmodpar parameter names for
some motor components of cmpldw and cmpldwg models given in the
manual did not match the input expected by PSLF. This has been fixed.
The manual pages for cmpldw and cmpldwg models have also been
updated to fix a typo in one of the parameter names.
21. It was observed that if a new dyd file was read in append mode, bus
numbers of any data management models already existing in the case
were getting overwritten by the data management models in the new dyd
file. This has been fixed.
SC 1. Short circuit solution may crash if the fault bus is not specified. This has
been fixed.
GMD 4. A problem was identified with the dc currents on multiple section lines
and jumpers, the problem has been fixed.
5. The access to substation table from the GMD menu has been removed.
The data can now be accessed from the PSLF edit table for substations.
OPF 1. OPF results for SVDs were reported incorrectly, This has been fixed.
PLOT 1. The export to excel functions in the view tables and plot values tables did
not have the appropriate headings. This has been fixed.
DYTOOLS
SSTOOLS 1. PV analysis tool was not working correctly in the new embedded
SSTOOLS. This has been corrected.
2. The amount of generation lost due to RAS for base case (pre-
contingency case) was being reported incorrectly in some cases. This
has been corrected.
3. DC converters were not read in properly when reading legacy OTG files.
This has been corrected.
4. Change has been made to the OTG Creator EPCL to overcome a
problem with a dialog panel.
PLOT 1. It was observed in Extreme Plots that in some instances a line remains in
the plot even after its values have been unselected from the table. This
has been corrected.
1. A problem has been noticed when for instance a bus branch SAV case is
Known loaded while viewing a drawing in the OLGR/SCAN that uses a node
Issues breaker SAV Case. The workaround is to close out PSLF and then
reload.
2. It has been noticed that the status of DC converters does not get
changed from scan. The workaround is to switch the status from the edit-
>dcc table.
3. It has been noticed that the coltot button in tabr tables is not generating
any results. The workaround is to right click on column heading and
choosing column total.
4. Scan from EDDS table or the DSCN button on the interface fails for
models that have multiple block diagrams. The result may be a block
diagram for a different model. It is suggested that users access the
diagrams through the PSLF manual.
RELEASE NOTES
PSLF V21.0_04 is a minor update of PSLF V21.0_03. It is suggested that users upgrade to this version at
the earliest. Please report any issues encountered to pslf-support@ge.com.
PSLF V21.0_04 may be downloaded and installed as follows:
1. Copy the “epcd” file from the user’s current PSLF program installation directory (e.g. \upslf21) to
activate this installation. New users should contact pslf.registration@ge.com to obtain their “epcd” file.
2. Execute the ConcordaPSLF-21.0_04.exe file to install the program and setup files.
When starting up this version of PSLF – be sure that PSLF V21.0_04, Release Date November 27, 2017 is
displayed.
If the version and build date are not V21.0_04 and November 27, 2017, please contact
pslf.registration@ge.com (GE Distributions), or Donald Davies (GE-WECC Distributions) for assistance.
PROGRAM ENHANCEMENTS
PSLF 1. An option has been added for exporting EPC files limited to a range of Balancing
Authorities (BA)
2. Users can now select from and to Balancing Authorities to get reports
3. The PSSE DYR converter “RDYP” is now included as a core PSLF function
instead of an EPCL. The function can be accessed via the interface as well as
through an EPCL call.
4. Number of additional options to visualize Power Plant Model Validation (PPMV)
results have been added. A new option has been added to allow user to resize
output charts on-the-fly.
5. A new tool has been added to perform NERC case quality check to check power
flow and dynamics data. A new application note (apn174) has been added
explaining this feature.
6. A new option has been added to terminate dynamic simulation if the simulation
takes more than a user defined time. This can be used to terminate simulation
which takes unusually long times. This option can be enabled by setting the
flags in the dypar1 record defined in table 5.2 in the PSLF manual.
7. A new application note (apn173) explaining the various power flow options has
been added in the PSLF manual.
8. The execution of the EPC import has been improved for better performance.
DYTOOLS 1. A new option has been added to generate master violations file as per
transient stability criteria violations for all the contingencies and for all the
runs. This makes it easy to inspect violations associated with any
contingency/faults for any case.
2. A new option has been added to generate master event file for all the
contingencies and for all the runs. This makes it easy to inspect events for
any contingency/fault or for any case.
3. DYTOOLS would now report the total number of generators which went out of
step, if genoostrip model is included for global out of step relay actions. The
details of which generators were tripped due to out of step conditions will be
logged to the master event file.
4. A new EPCL tool to merge DYTOOLS violations and/or events has been
added to the installation directory (SSTOOLS\utilities). This tool can be used
to merge all the violations and event files after the DYTOOLS simulation is
over. This tool can be used to consolidate output from runs which were
already completed with earlier versions of PSLF.
5. A new Python script to merge DYTOOLS violations and/or events has been
added to the installation directory (SSTOOLS\utilities). This tool can be used
to merge all the violations and event files after the DYTOOLS simulation is
over. This tool can be used to consolidate output from runs which were
already completed with earlier versions of PSLF. The script can be executed
by copying it to the DYTOOLS output folder and running it after the
DYTOOLS simulation is over.
6. Run times for each contingency/fault is now available in the summary log file.
This can be used to predict future run times and detect contingencies taking
longer time.
7. A new option in now available in DYTOOLS to terminate the simulation of any
contingency if the simulation time exceeds a user defined threshold. This can
be used to terminate contingencies which takes unusually long time and
needs more investigation.
SSTOOLS 1. Additional solution options (Fast Decoupled and AC Auto Solver) are now
available in SSTOOLS. These can be enabled from the control file.
These are described in the SSTOOLS manual.
FIXES
PSLF 1. It was observed that the program would crash when appending data from
an *.epc file, if datamaintainer data was present in the case in memory.
This has been corrected.
2. ID of shunts were not being printed correctly from some dynamic models
(svsmo1, svsmo2, svsmo3, mss1, mss2). This has been corrected.
3. Dynamic simulation was diverging under some situations due to matrix
being ill-conditioned. This has been rectified.
4. The start and stop criteria in the transient limit criteria violation feature
was not working correctly in some cases. This led to some transient
violations not being reported. This has been corrected.
5. A few issues have been identified and fixed in the Contingency Editor
user interface menu.
6. An initialization issue in the excitation system models exac6a and exac8b
when operating outside the linear range of rectifier bridge has been fixed.
7. A problem was identified in using scan and edit tables in repeated
succession. It has been corrected.
8. The epcl stepresponse.p has been updated to account for regc_a and
regc_b
PLOT
1. chan2csv() was reported to have issues while exporting the flows in the
presence of parallel branches. This has been fixed.
DYTOOLS 1. The function to convert the old DYTOOLS-HD contingency list (otg-d
files) to the new DYTOOLS format (otg file) was not converting line fault
definitions in some cases. The line terminals were being swapped in the
definitions incorrectly. This has been rectified.
2. The fault R & X values were not being properly applied when used in the
new integrated DYTOOLS package. This has been corrected.
SSTOOLS 1. The SSTOOLS run epcls were not reporting overloads on 3 winding
transformers correctly in some cases. This was only an issue in the old
EPCL version of the SSTOOLS and not an issue in the
integrated/embedded SSTOOLS. This has been corrected.
RELEASE NOTES
PSLF V21.0_03 is a minor update of PSLF V21.0_02. It is suggested that users upgrade to this version at
the earliest. Please report any issues encountered to pslf-support@ge.com.
PSLF V21.0_03 may be downloaded and installed as follows:
1. Copy the “epcd” file from the user’s current PSLF program installation directory (e.g. \upslf21) to
activate this installation. New users should contact pslf.registration@ge.com to obtain their “epcd” file.
2. Execute the ConcordaPSLF-21.0_03.exe file to install the program and setup files.
When starting up this version of PSLF – be sure that PSLF V21.0_03, Release Date October 6, 2017 is
displayed.
If the version and build date are not V21.0_03 and October 6, 2017, please contact
pslf.registration@ge.com (GE Distributions), or Donald Davies (GE-WECC Distributions) for assistance.
PROGRAM ENHANCEMENTS
PSLF 1. A new power flow option for robust solution called autosolver has been
added. This option can be selected from the solution panel.
2. A new option is now available to save post transient power flow case. This
will allow users to save a power flow case at the end of dynamic simulation
and use the case in power flow studies.
3. A new power plant model validation tool has been added. This tool allows
model validation of power plant starting from either an EMS/Operations
model or planning model. This completely automates the power plant
model validation process. The development of the tool was sponsored by
Bonneville Power Administration.
4. A new option has been added in SSTOOLS to save post contingency
power flows
5. A new EPCL "add_epc_projects.p" has been added under samples folder.
This epcl can be used to add projects modeled as EPC file and makes it
easier to solve the power flow case.
6. A new feature has been added to model and simulate voltage dependent
reactive capability curves for wind and solar generators.
7. The EPC export function has been updated to handle load compatibility
when exporting to versions earlier than v19.
8. PSLF can read PSSE raw files in Ver34 except the node breaker data in
those files.
9. Options have been added in the EEPC process Table Select dialog to skip
export of Substations, Plant, Block, VSC and Balancing authority data
10. When exporting an epc file with selective option turned on, a substation is
written to the output file if it has at least one bus is selected
11. Users can now select to export elements either by element area/zone or
their bus area/zone or both to be written to epc files
12. The EPCL function used for rounding decimal numbers has been improved
and updated
13. Improved the performance of the Datamaintainer read from the EPC file for
large number of Datamaintainers
14. An EPCL function is added to delete all buses that are assigned to an
area/zone/owner
15. Interface flows can be modeled as either equality constraints or inequality
constraints in PSLF OPF. The equality constraints are used to achieve
some desired interface flows.
16. Two APIs have been added to calculate sensitivity factors of flows and
voltages to generations/loads/tap positions/phase angle shifts.
17. Dynamic simulation has been updated to handle VSCDC models with
infeasible dispatch observed in some cases.
18. The report menu for title has been replaced by one for balancing
authority(BA) reports
19. Under the TABR tab, options have been added for balancing authority (BA)
and balancing authority tie lines (TieLineBA) tabulated results
20. A global option is now available in dynamics to detect over speed and
under speed conditions for synchronous generators and trip them. The new
option eliminates the need to check for these via in-run epcl. This new
option can be activated using dypar1 fields described in table 5.2 in the
manual.
21. A global option is now available in dynamics to detect generator out of step
conditions for synchronous generators based upon angle differences. This
new option eliminates the need to use oostrip.p as an in-run epcl. This
option can be activated using dypar1fields described in table 5.2 in the
manual.
22. The usage of EPCL function findstr() has been enhanced to handle input
strings of up to 512 characters
23. PSS®E V34 IDV batch commands are supported
24. The PSSE dyr converter rdyp is now included as a core PSLF function
instead of an EPCL. The function can be accessed via the interface as well
as through an EPCL call.
RAS 1. Remedial action element objects have been enhanced so that it is easier to
specify multiple devices connected to the same bus as per the common
format
2. Removed any string length limits on the name of RAS objects SCR, CCR,
RAS, ModelExpressions
3. Removed limitation on the number of RAS objects which could be modeled
in the case.
4. Improved error messages for exceptions seen with RAS objects
5. The RAS importer has been optimized for speed
6. Added support for online/derived/derived online status in DC line objects for
RAS
7. Users can now import list of RAS files directly into SSTOOLS
8. The output of model expressions are displayed automatically in the model
expressions edit table
9. Added support for istrue function in EPCL compiler and for
modelexpressions
10. Added ability to search for a RAS objects (SCR, CCR, Remedial Action,
Model Expression) by name using “Live Search”
11. A new feature to list RAS dependencies has been added.
FIXES
PSLF 1. Execution of RAS schemes has been improved.
2. In some cases, invalid branches which were defined as part of RAS
objects were interpreted incorrectly by the program. This has been
corrected
3. A problem was reported that if the switched shunt adjustment option is
disabled, performing optimal order and power flow solution in one click or
separately may yield different solution results. The issue has been fixed
4. A problem was reported that DC load flow solution updates voltage
angles at buses in a swingless island. The issue has been fixed
5. A problem was observed with the fast decoupled power flow solution in
some cases. Bus with multiple machines that controlled different buses
showed large Q mismatch after the solution converged in some cases.
The issue has been resolved
6. Some issues were observed and fixed in the epcl functions, datarec() and
deleterec()
7. There was a problem editing modelexpression data from the user
interface in some cases. This has been rectified
8. A problem was identified in launching edit tables created via EPCL in
case user had invoked a selection to limit to certain area(s) via Select-
>Edit option. It has been corrected
9. The model repc_b was not being written out via WDYD. This issue has
been taken rectified
10. PSLF was crashing on exit after processing RAS. This has been
corrected
11. PSLF was crashing when adding new bus in some cases. This issue has
been corrected
12. OLGR was failing to save a .drw file when user chose to change the pen
font or brush size either from the bus coordinate table or individual
properties pop-up. This has been corrected
13. A failure was reported when saving a case that included sorted short
circuit data. This has been resolved
14. If an isolated bus had voltage schedule of 0, it was causing issues in
contingency processor. This has been corrected
15. The data for injection groups and voltage control groups were being
written to the epc file, even if the selective table export feature was
enabled and these tables were not selected. This has been resolved.
16. A problem was identified with the EPCL getstr function when reading file.
This has been corrected
17. It was observed that when reading a new power flow case in epc file
format, the voltage control groups in the file may be ignored. This has
been corrected.
18. If equipment’s on buses other than swing were controlling the swing bus,
it led to issues with optimal ordering. This has been corrected.
19. A problem identified with use of filtering tables and then using the fill
options in the filtered table has been corrected.
20. It was observed that the events table was loading properly in some cases
where dynamic simulation was executed with zlinw relay model. This has
been resolved.
21. For the dynamics EDDS table, once the user filters the table and then
selects to edit model parameters using the record editor, the Previous
and Next buttons did not correspond to the filtered table list. This has
been improved
22. In the previous version, if the user passed an external bus number with
the appropriate flag when using rec_index for Qtable, the record index
could not be found. This is now fixed
23. It was observed that sometimes, when the high side bus linked to the
composite load model got disconnected, the simulation would have fatal
error. This has been resolved
24. Corrected a problem reported with reading of DRW files from earlier
versions
25. An issue reported excessing the interface table from the branch interface
table was resolved
26. A problem was observed with using non existing BA numbers in the
load/gen scale feature. It has been corrected
27. It was reported that the load values displayed on scan after initialization,
were incorrect if motor load was present at the bus. This has been fixed
28. An issue was reported with using rec_index for accessing Qtables, using
external bus numbers. This has been fixed.
PLOT 1. A problem reported with cross plotting using the Plot Template file has
been corrected
2. A problem related to reading a PLT file for XY plots has been resolved
3. A correction has been made to the PLOT EPCL function chan2csv to
write to file with or without the column headers
4. An issue found when writing CSV files involving parallel branches with
distinct circuit ids was reported and resolve for both chan2csv and
chan2csvxml EPCL functions
SSTOOLS 1. Users were not able to log into summary file using user written pre or
post epcl from the new integrated SSTOOLS. This issue has been
resolved
2. Improved error messages in case of contingency errors
3. In some cases, the post contingency percentage flows were calculated
based upon pre-contingency rating. This was causing some RAS to get
triggered incorrectly. This has been corrected
4. An issue has been identified and fixed in the new outage creator EPCL
“SSTOOLS_Otg_Creator(NEW_FORMAT)-v1” where the three winding
transformer outages were not properly written to the outage file
5. An issue was observed when changing load as part of contingency. This
led to division by zero error in some situations causing all contingency to
get corrupted. This has been corrected
6. It was observed that in some cases, additional loads were monitored than
requested by the user. This has been corrected
7. RAS criteria which were defined using secondary status were not being
evaluated correctly in the reference (pre-contingency) state in SSTOOLS.
This has been resolved
8. There an issue up converting the load change command from older
version of OTG file format to the latest format. This was only seen if the
load was being changed. This has been resolved
9. The closing angle limits were reported incorrectly by SSTOOLS leading to
large number of violations seen during post processing of results. This
has been resolved.
10. Added a new option to define optional individual layout and color settings
for each draw file in the *.cases file
11. A new option has been added in SSTOOLS to save post contingency
power flows
DYTOOLs 1. An issue has been identified and fixed in the new outage/fault creator
EPCL “DYTOOLS_Otg_Creator(NEW_FORMAT)-v1” where the three
winding transformer outages were not properly written to the outage file
2. An issue was observed when changing load as part of contingency. This
led to division by zero error in some situations causing all contingency to
get corrupted. This has been corrected
3. The convergence monitor was not being enabled even if the option was
set in the DYTOOLS cases file. This issue has been fixed
4. DYTOOLS was crashing if an in-run epcl was used and if the contingency
contained an EPCL. This issue has been fixed
5. For WECC base cases with the Transbay Cable HVDC link (TBC)
modeled as two generators in the power flow file, it is recommended that
user do not use the “selfreg.p” EPCL. This limitation is not applicable
if/when the TBC is modeled using VSCDC control devices
RAS 1. A memory leak was observed when running all the WECC RAS with large
number of contingencies. This has been fixed
2. The interface object was not getting exported as per the WECC common
format specification. This has been corrected
3. Two winding transformer fields were not being exported as per the WECC
common format specifications. This has been corrected
4. It was observed that in some cases, the feature to export a selected RAS
was not working correctly. This has been corrected
5. Criteria which were defined using secondary status were not being
evaluated correctly in the reference (pre-contingency) state in SSTOOLS.
This has been resolved
6. In some cases, model expression which had very long names were not
being exported correctly when saving the RAS data to WCRF file. This
has been corrected
GMD 1. Transformer can now be represented as a T model
2. The earth model of Canada has been included in PSLF
3. Users can now simulate both benchmark and supplemental GMD events
4. A function has been provided to create localized peak geoelectric field in
the supplemental GMD event
RELEASE NOTES
PSLF V21.0_02 is a minor update of PSLF V21.0_01. It is suggested that users upgrade to this version at
the earliest. Please report any issues encountered to pslf-support@ge.com.
PSLF V21.0_02 may be downloaded and installed as follows:
1. Copy the “epcd” file from the user’s current PSLF program installation directory (e.g. \upslf21) to
activate this installation. New users should contact pslf.registration@ge.com to obtain their “epcd” file.
2. Execute the ConcordaPSLF-21.0_02.exe file to install the program and setup files.
When starting up this version of PSLF – be sure that PSLF V21.0_02, Release Date February 3, 2017 is
displayed.
If the version & build date are not V21.0_02 and February 3, 2017, please contact pslf.registration@ge.com
(GE Distributions), or Donald Davies (GE-WECC Distributions) for assistance.
PROGRAM ENHANCEMENTS
PSLF 1. Four (4) dispatch modes have been added for DCTR/ACTR functions for
transfer studies.
2. A new dynamic model for COLSTRIP Acceleration Trend Relay based
upon the latest specifications from Northwestern is now available in PSLF.
3. A fast decoupled solution option has been added
FIXES
PSLF 1. It was observed that in PSLF OLGR one could not draw a DCC Converter
through the right click pop up option. This has been addressed
2. A problem was reported in reading files when executing dynamic simulation
with more than one DYD file after about 500 iterations. The issue has been
resolved
3. It was observed that the generators’ ids were not exported to the raw files.
It stands rectified
4. An issue reported in regard with the display of longitude and latitude in Edit
tables and record editors has been resolved
5. It was observed that if no dynamic models were attached to Type 5, 6 or 7
SVD’s from the power flow in the dynamic simulation, they were not
properly accounted for in the simulation. This has been corrected
6. It was observed that the dynamic violation criteria check didn’t get reset
properly, if the monitored variable went below the violation set-point after
initially exceeding the set-point and before the time duration set-point. This
would cause violations to be reported even though the monitored variable
was not violating, as per the criteria defined based upon the time. This has
been corrected
7. It was reported that PSLF may crash when working on the cases where
isolated DC buses were defined. This has been fixed
8. It was observed that the changeby action for injectiongroup in RAS was not
consistent when using percentage or actual values for load shedding RAS
actions. This has been resolved. For load shedding via injectiongroup, the
changeby action should be positive
9. When importing a PSSE raw file, PSLF is now enables to generate the
mid-point buses with unique name for three-winding transformers
10. The exported filter object type has been corrected to reflect the WECC
common RAS fomat
11. The reading of the field ampsFrom for transformer objects from RAS files
has been corrected
12. An issue was reported where PSLF’s in-built SSTOOLS outage file (*.otg)
reader was interpreting the SSTOOLS *.otg format as DYTOOLS *.otg-d
format in some instances. This has been fixed.
SSTOOLs 1. If multiple *.drw files are defined in the *.cases file, it has been observed
that the layout and color settings for the last *.drw file is applied globally.
This has been fixed to use individual settings defined for each *.drw file.
2. A new outage creator EPCL file has been added to the
“\\upslfxx\samples\SSTOOLSV6” folder to help users create the outage list
in the integrated SSTOOLs contingency specification formats.
3. It was reported that if the EPCLPATH was specified in the SSTOOLS-
DYTOOLS new format cases file, the program did not proceed without a
run EPCL file. This has been corrected
DYTOOLs 1. A new outage creator EPCL file has been added to the
“\\upslfxx\samples\SSTOOLSV6” folder to help users create the outage
list in the integrated DYTOOLs contingency and fault specification
formats.
2. It was reported that if the EPCLPATH was specified in the SSTOOLS-
DYTOOLS new format cases file, the program did not proceed without a
run EPCL file. This has been corrected
RELEASE NOTES
PSLF V21.0_01 is a minor update of PSLF V21.0_00. It is suggested that users upgrade to this version at
the earliest. Please report any issues encountered to pslf-support@ge.com.
PSLF V21.0_01 may be downloaded and installed as follows:
1. Copy the “epcd” file from the user’s current PSLF program installation directory (e.g. \upslf21) to
activate this installation. New users should contact pslf.registration@ge.com to obtain their “epcd” file.
2. Execute the ConcordaPSLF-21.0_01.exe file to install the program and setup files.
When starting up this version of PSLF – be sure that PSLF V21.0_01, Release Date November 8, 2016 is
displayed.
If the version & build date are not V21.0_01 and November 8, 2016, please contact
pslf.registration@ge.com (GE Distributions), or Donald Davies (GE-WECC Distributions) for assistance.
FIXES
PSLF 1. It was observed that PSLF would crash if the system swing bus got
disconnected. This issue was found in earlier versions of PSLF and has
been fixed.
2. Line shunts which were defined as per the WECC common RAS format
were not read properly from the WECC common RAS file format. This has
been resolved.
3. An issue was observed with formatted print in EPCL from logprint and
logterm command. The command would print all decimal numbers even if
the user specified no decimals. The issue was only found in V21 only and
has been fixed.
4. A program freeze was observed when reading some RAS files. This has
been resolved.
5. A program freeze was observed when reading some contingency files with
invalid data. This has been resolved.
PROGRAM ENHANCEMENTS
PSLF 1. The options in the solve panel have been rearranged to be in line with the
options provided under the solution parameters
2. Contingency processor has been updated to properly evaluate secondary
status used in some RAS/SPS.
RELEASE NOTES
PSLF V21.0_00 is a major update of PSLF V19.0_02. It is suggested that users upgrade to this version.
Please report any issues encountered to pslf-support@ge.com.
PSLF V21.0_00 may be downloaded and installed as follows:
1. Copy the “epcd” file from the user’s current PSLF program installation directory (e.g. \upslf19) to
activate this installation. New users should contact pslf.registration@ge.com to obtain their “epcd” file.
2. Execute the ConcordaPSLF-21.0_00.exe file to install the program and setup files.
When starting up this version of PSLF – be sure that PSLF V21.0_00, Release Date October 20, 2016 is
displayed.
If the version & build date are not V21.0_00 and October 20, 2016, please contact pslf.registration@ge.com
(GE Distributions), or Donald Davies (GE-WECC Distributions) for assistance.
PROGRAM ENHANCEMENTS
PSLF 1. This version includes the features to create and use RAS schemes
2. Optimal power flow (OPF) option has been added. OPF can improve
the performance of the power systems which cannot be done by
traditional power flow solutions. The PSLF OPF is an add-on module.
3. The program can now model up to 125,000 buses.
4. A menu item “Contingencies” has been added with an option to run
SSTOOLS (Steady state contingency processor) and DYTOOLS
(Dynamics contingency processor).
5. A new integrated and advanced SSTOOLS is now available from
within PSLF. There is no longer a need to run it as an EPCL or to use
extended data records.
6. Seven new types of re-dispatch options have been added in
SSTOOLS
7. A new integrated DYTOOLS is now available from within PSLF. There
is no longer the need to run it as an EPCL.
8. A new feature has been added in SSTOOLS to support generic
Centralized Grid Capacitor Control algorithm.
9. Under the menu “Contingencies” utilities have been added to read and
write OTG files
10. Users can now edit and save contingencies from within the user
interface.
11. In power flow solution, a new option is provided to regulate voltage
control devices. The option may behave better for some cases where
power flow solutions cannot converge due to voltage controls, and can
be called by EPCL function, solnv().
12. A family of EPCL APIs has been added to manage the power flow
data; these can be used to delete/add/edit elements.
13. Negative and zero sequence data are not required when running
three phase faults in short circuit analysis.
14. Distribution factor calculation can simulate line outages that cause
swingless islands.
15. Added a new field <errdupmodels> in dypar structure. This flag can be
set to 1 to abort dynamic simulation in the presence of duplicate
models.
16. Turbine type 20 has been added for wind turbine without any type
17. A new menu item has been added to automatically setup WSM
simulation
18. Output of injection groups can be directly obtained from the injection
group table
19. The in-run WCA tool has been updated to support the new WECC
CRT-100 criteria for voltage violations
20. The in-run WCA now allows multiple types of criteria violations for the
same monitored bus.
21. New options available to define participation factors for injection group
elements using standard field/members of the PSLF records or using
user defined fields or using model expressions.
22. New Datamaintainer object has been added in PSLF
23. New utility function “bootstrap_datamaintainer” is available to boostrap
base cases with Datamaintainers
24. New interface element object has been added to allow users to
specify generic objects such as generators, loads, injection group etc.
as part of an interface.
25. A new option has been added in the power flow solution to balance
parallel transformers to minimize circulating flows when the LTC
adjustment option is enabled. This can be activated by setting the
solpar[0].balparltc to 1.
26. The existing tool to check for voltage regulation conflicts for parallel
transformers has been built into the power flow solution.
27. Dynamic simulations now can simulate unbalanced bus and line faults
provided that sequence data is available.
PLOT 1. A new integrated DYTOOLS batch-plotting post-processor application
is now available from within PLOT. There is no longer the need to run
it as an EPCL.
FIXES
PSLF 1. Fixed the issues with Distribution factor calculation, duplicate base case
overloads; the from/to buses of branches are printed incorrectly and some
monitored lines are missing in reports.
2. The parameter names of tiocrs displayed in the EDMD table were incorrect.
This was not consistent with the fields in the record editor. This has been
corrected.
3. The duplicate check tool in PSLF which checks for duplicate dynamic
models during initialization did not account for renewable models. This has
been rectified.
4. It was observed that dynamic models were written to dyd file based upon
bus identifiers even when the user selected the long id option. This has
been rectified.
5. Fixed the issue with island check that the islands are not reported correctly
when the working case has breakers.
6. Fixed the issue with power flow solutions that when running again a solved
power flow solution, the large reactive power mismatch is observed at the
first iteration.
7. A few of issues with the converters between PSLF and PSSE have been
fixed.
8. Corrections have been made to the Injection Group addition dialogs to
overcome an incorrect assignment of group elements
9. A reported error when executing more than one EPCL from within another
EPCL has been corrected
10. A memory leak in running dynamic simulations in a loop has been tackled
11. A problem seen in using the EPCL function edit() has been resolved
12. A problem was observed with EPCL function rec_index() when querying for
bface having parallel branches. The function would return the index of the
first parallel branch. This has been resolved.
13. The Area/Zone scan was not working correctly after initializing the dynamic
simulation. This has been resolved.
14. It was observed that in some cases buses could not be assigned to
substation after adding a new substation. This has been resolved.
15. Fixed an issue with editlog feature that the resulting epcl codes for
substation record may use internal indices directly.
16. A problem was observed when reading a blank line with epcl functions,
inline and inbuf. This has been fixed.
17. Power flow solutions may diverge if the desired flows of phase shifters are
not achievable. This has been improved.
18. Fixed an issue with ordr that improper messages are present when there is
only one effective bus in an island.
PLOT 1. The length of the output filename for the CH2A command was found to be
limited to 32 characters. It has been now extended to 300
2. A problem was found in using SELM and the new view in reporting of
filename on the legend when one switched from one view to the other. It
has been corrected
3. The ID Setting choice was not being retained properly. This has been
corrected
Known Issues
Dynamics A problem has been reported when executing a large number of dynamic
simulations (>500) via an EPCL. It is being investigated
WDYD It has been noticed that in case a user sets the status of all relay models off,
when using wdyd the status of models involving parallel circuits (such as tlin1,
locti and tiocrs) are set to on. This occurs for parallel circuits after the first
one. This matter is being worked on
MACHINE MODELS
gencc gencls genind genrou gensal gensdo gentpf gentpj
genwri gewtg motor1 motorc motorld motorw motorx
EXCITATION MODELS
ccomp ccomp4 emac1t esac1a esac2a esac3a esac4a esac5a
esac6a esac7b esac8b esdc1a esdc2a esdc3a esdc4b esst1a
esst2a esst3a esst4b esst5b esst6b esst7b ex21br exac1
exac1a exac1m exac2 exac3 exac3a exac4 exac6a exac8b
exbbc exdc1 exdc2 exdc2a exdc4 exeli exeli2 exivo
expic1 exst1 exst2 exst2a exst3 exst3a exst4b exwtg1
exwtge ieeet1 mexs pfqrg rexs scrx sexs texs
uel1 uel2c
STABILIZER MODELS
ieeest pss1a pss2a pss2b pss3b psssb psssh psssvc
wsccst
TRANSMISSION DEVICE
ltc1 msc1 mslr1 msr1 mss1 mss2 scgap scmov
svsmo1 svsmo2 svsmo3 smes1 stcon stcon1 svcwsc tcsc
upfc vft vwscc
HVDC MODELS
cdc6 chvdc2 dc2t dcbtb1 dcmt epcdc hvdcau vhvdc1(Beta)
vscdc vsdc1
LOAD MODELS
_clod _cmp_1pac _cmp_der_a _cmp_dgpv _cmp_elec _cmp_mot3 _cmp_stat _cmpldw
_cmpldw2 alwscc apfl blwscc clod cmpld cmpldw cmpldw2
cmpldwg ld1pac ldelec ldtrpmon lsmon motorc motorld motorw
motorx rect secld1 secld2 secld3 spfl wlwscc zlwscc
METERS
ameta ametr fmeta fmetb fmetr ifmaz ifmon imetr
monds mondsa monit pmetr vfmetr vfmgen vmeta vmetr
zmetr zmetra
isolnoswgislds This EPCL function would isolate all the buses in the
island which do not have a swing bus.
lid_index The lid_index() functions returns the index of the record
that describes a designated component of the power
system. lid_index() returns -1 if the system component
specified by the arguments does not exist
loadtrip This function trips the load specified by the user
mappaths_op_pl This function maps the paths/interfaces between
operations and planning cases
model_index() The model_index() function returns the index of the
record that describes a designated dynamic simulation
model, or -1 if it does not find the record indicated by
its arguments
name_index() The name_index() function returns the index of a
system component. name_index() returns -1 if the
system component specified by the arguments does not
exist.
next_flow() The next_flow() function returns the index in the flox[]
table of them record describing the flow in a designated
transmission line or transformer. next_flow() returns -
1 if the system component specified by the arguments
does not exist.
next_index() The next_index() function returns the index of the
record that describes a designated component of the
power system. next_index() returns -1 if the system
component specified by the arguments does not exist.
number() The EPCL number() function returns the bus index or
bus external number of the bus whose identifier is
specified. The bus identifier may be either
openeditlog() The editor keeps a log file containing all changes made
to data if the edit log feature is turned on. This function
is used to set the dispar parameters, edlogfile and
edlogflg. These parameters may also be set through the
PARM:DIS panel or the winini.p file. IF the <app> flag
is 0 no log file is written. If it is 1 the <file> is opened
and all subsequent edit functions are written to it. If it is
a 2 the changes are appended onto the end of the log
file. The file is written in EPCL language therefore the
same data changes can be made on several defferent
cases by running the log file through the EPCL
language processor. Please note that an editlog file
created with PSLF Version 16 does not work with
PSLF Version 17 series.
panel() The panel() function allows an EPCL program to
construct a menu panel as its interface with its user in
the same style as the menu and data entry panels of
PSLF. A panel displayed by panel() may be either a
selection panel or a data entry panel, with properties as
follows:
pass() The pass() function is used in conjunction with olgr to
allow the EPCL program to pass values to the olgr
commands to be placed on drawings. Drawing files
constructed with the olgr command can invoke an
EPCL program and expect that program to pass up to a
hundred results back to the drawing. EPCL files may be
referenced to perform the calculation. Up to 20 files
may be referenced to perform the calculations. The
pass() function must be called in this EPCL program
once for each argument that is to be sent to the
drawing. <value> may be any numeric constant, pslf
variable, or EPCL @, #, $, or * variable
pick() The pick() function is used to select files from a
directory on your computer's filesystem. Filenames are
selected based on two criteria. First, the <path> is used
for a directory name in which to search for files.
Second, the <ext>is used to select a group of files from
the specified directory. The <ext> is used as a filter for
the filenames.
readwsmmapping To read mapping file information into either the
planning or the WSM case
readraw() The fucniton is used to read raw files in versions 33 and
above
renumrec() The function is used to renumber a bus, re-route a
branch or move a load/generator/shunt/svd from one
bus to another bus
rvdcc This function will read the voltage dependent reactive
capability curve and the association between generators
and voltage dependent reactive capability curve
rec_index() The rec_index() functions returns the index of the
record that describes a designated component of the
power system. If <flag> is non-zero the designation is
in terms of external bus numbers; if <flag> is zero the
designation is in terms of bus indexes in the busd
table. rec_index() returns -1 if the system component
specified by the arguments does not exist.
setbix() If you add a bus or are renumbering the buses in a case
you need to set up the bix table. The function setbix() is
used for this purpose.
setdatein() and The setdatein() and setdateout() functions are used to
setdateout() give values to the in-service and out-of-service date
members of the tables in PSLF. For example to set the
in-service date to Feb 20 1995 for the 1st bus in the
system, your EPCL program would contain the line
set_paths() The function set_paths() is used to set the path for a
PSLF command. This path is used in the Open (or
Save) file dialog brought up via the pick EPCL
function. The program searches the path for filenames
with a designated suffix and displays the matching files
in the dialog. The change is valid for the current session
of PSLF and its effect is to record the change in the
PARM PATH parameter panel, where the commands
used are listed.
setup_wsm_sim This sets up the entire WSM dynamics simulation
automating a number of steps
shunt_index() The shunt_index() functions returns the index of the
record that describes a line-connected or bus-connected
shunt. If <flag> is zero, the <from> bus and <to> bus
designation is in terms of bus index numbers. If <flag>
is one, the <from> bus and <to> bus designation is in
terms of external bus numbers(like the edit table). If
<flag> is two, the <from> and <to> buses are entered
by name (8 character name + kv enclosed in double
quotes). Only the from bus number/name and
component ID is entered for a bus-connected shunt (the
to bus should be set to 0 or -1, circuit and section are
not checked). A line-connected shunt checks the from
bus number/name, to bus number/name, circuit,
component identifier and section number
sortarray() The sortarray() function is used to sort a locally
dimensioned array. It sorts the values in place. The sort
may be started at any valid position in the array. The
following is an example of a sort of a real number array
backwards:
sstools() The function is used to run continency analysis.
substbix A function to return index of substation in the
substation table given the external substation number
substbuslist The functions returns a list of buses that are part of the
substation specified by the user
tictoc This is a stop watch function to return the elapsed
processor time in seconds
tiescalc() and tiescalc() calculates the total flows between pairs of
tiesget() areas or zones by summing up the flows on lines
originating and terminating in different areas or zones.
The line flows are calculated in accordance with their
aloss parameters. tiescalc() must be called before the
first call to tiesget() but after the most recent solution
of the load flow case or other data operation that would
affect the results of tiesget().
validate_op_pl Validates the Substation and Balancing Authority (BA)
information transferred from an operations case to a
planning case
vdcc_soln To solve the poweflow with voltage dependent
capability curve modeled for select generators
5.11 Direct Access to PSLF Commands
In addition to its own PSLF Interface Functions which are strictly a part of the EPCL Language Subsystem, an EPCL
can access most PSLF commands. These commands and their arguments may be found in Chapter 4. Each of these
commands can be invoked from an EPCL program by a statement of the form:
<ret> = <command name>(<arg1> ... <argn>)
where the arguments are the arguments of the PSLF command as defined in Chapter 4.
Click HERE for a quick reference to the available commands.
5.12 EPCL Programming Hints
5.12.1 The Most Basic Things
The following simple program forces all bus voltages to one per unit and zero phase angle - a "flat start", and
illustrates the most basic structure of an EPCL program:
for @i = 0 to casepar[0].nbus-1
volt[@i].vm = 1
volt[@i].va = 0
next
In this program
@i is an EPCL variable used as a loop index
casepar[0].nbus is the number of buses in the system
volt[@i].vm is the voltage magnitude at the @i-th bus
volt[@i].va is the voltage phase angle at the @i-th bus
It is important to note that @i does not correspond to the external bus number that is seen by the user as identifier of a
bus; @i is the position of the record for a bus in the bus data and voltage tables. It must be noted, also, that EPCL
counts records in pslf tables from 0 to (n-1). Accordingly, if the first three buses of the system have the number 1001,
1005, and 1013
busd[0].extnum is 1001
busd[1].extnum is 1005
busd[2].extnum is 1013
and so on. To look up the voltage magnitude at bus 1013, an EPCL program would use volt[2].vm, and to look up the
voltage at bus 1001 it would use volt[0].vm.
There are two convenient ways to get the internal table position of a bus. If the name of the bus, such as MAINST 69,
is given, the EPCL function
number() can be used. For example, the following use of number() would make the HIGHFALS 12.5 bus a type 2
bus with a scheduled voltage of 1.025 pu.
@i = number("HIGHFALS 12.5")
busd[@i].type = 2
busd[@i].vsched = 1.025
If the number of a bus is known, the function bix() can be used to obtain the table position of the bus. @i = bix(n)
gives the bus index, @i, of the bus whose external number is n. For example:
@i = bix(736)
busd[@i].type = 2
busd[@i].vsched = 1.03
makes bus 736 a generator bus with a scheduled voltage of 1.03 pu.
The reverse translation, from bus index to external bus number, is much simpler because the external bus number is an
attribute of the bus. For example, the following code would list the external numbers of all swing buses in the system.
for @i = 0 to casepar[0].nbus -1
if (busd[@i].type = 0)
logterm(busd[@i].extnum, "<")
endif
next
While this certainly lists the swing buses by external number, it would be much nicer to list the complete "number,
name, base voltage" identifiers of the buses by replacing the logterm statement above with
logterm(busd[@i].extnum:5:0, ">")
logterm(busd[@i].name:8:0, ">")
logterm(busd[@i].basekv:6:2, "<")
5.13 Interactive EPCL Execution
An EPCL is invoked in the menu mode by positioning the cursor on the epcl button and either left clicking the mouse
or pressing the enter key. A select panel will come up with a list of ".p" (EPCL programs) files in the current directory.
At this point, the user may either select a ".p" file to execute by positioning the cursor on the desired program and
hitting the return key or cancel out. If a program is selected by specifying a file name, the EPCL program is loaded
and executed.
A step by step demonstration follows.
From the PSLF main menu, select epcl which opens the selection panel as shown below.
Here, select the EPCL you wish to run from the working directory, or click the to bring up the directortory panel
shown below. From the directory panel, select the directory where your EPCL resides and click the EPCL you wish to
run.
This will bring up a dialog to select area numbers, input 1-2. The EPCL executes and displays the results in the main
menu window as shown below.
5.13.1 EPCL Commands
PSLF provides a command line mode in the form of a text box in the lower left corner of the main panel labeled
“Input:”. The user may type EPCL followed by the filename and then a <cr> which would execute the EPCL.
Alternatively the user may type EPCL followed by a carriage return ( <cr>). This would case a shell prompt
(PSLF:EPCL:) to show up on the message panel (if messages are turned on) invoking a EPCL command shell.
The EPCL shell provides an environment in which to execute and debug EPCL programs. Within the shell, the
commands listed in the following section are available.
Command: load <file name>
Function: The load command retrieves an EPCL program from disk from
your current working directory. EPCL program names must end
with a ".p" extension.
In the command mode, type EPCL
This will display the following results in the main menu window.
Next, type load <EPCLname>
This will display the following results in the main menu window.
Command: list [<line number>][{, | -}<line number>] [off]
Function: The list command displays the current working program as it
stands in memory. The first line number specified must be less
than the second (if a second is specified). Either a',' or a '-' may
be used to separate the beginning and ending line numbers. The
off option causes line numbers to be suppressed. The two
options may be specified in any order. The list command with
no arguments causes the entire program to be listed with line
numbers.
Once the EPCL file cutout.p is loaded into PSLF, the list command is used to display lines from 10 up to 30.. On the
INPUT line, type: list 10-30 <CR>
Shown below are the results of the list 10-30 command.
Command: run [<file name>]
Function: The run command causes an EPCL program to be executed. If
no file name is specified, the program currently in memory is
executed; otherwise, the program with file name <file name> is
loaded into memory and executed.
To run the EPCL, at the Input prompt, type: run <CR>
Shown below are the results of running the EPCL cutout.p.
Command: mem
Function: The mem command causes the current lists of EPCL variables to
be displayed.
To display the current lists of EPCL variables, at the Input prompt, type: mem <CR>.
The results of the mem command are shown below.
Command: stop | end | quit
Function: The stop command (or any of its synonyms) exits the EPCL
shell to the PSLF command line prompt, erasing the current
program residing in memory.
To exit from the EPCL command mode, type: stop <CR>
The stop commands returns control to the PSLF main menu.
Command: psds
Function: The psds command clears memory space for dynamic
computations..
psds should be used prior to performing a dynamic simulation from an EPCL. Although an EPCL might run without
invoking psds, its is a good EPCL programming practice to include this command, e.g.,
/* Load solved power flow data */
@ret = getf(*basecase[0])
/* Commands to perform dynamic simulation */
@ret = psds()
/* Load Dynamic Model Databases */
@ret = rdyd(*dyd[0], *repfile[0], 1, #sort[0], 1)
etc.
5.14 Sample EPCL Programs
A set of EPCL programs is provided with the PSLF program. These are useful both in their own right to perform their
various functions and as starting points for the development of new “EPCL. In this file the available EPCL programs
are listed by category such as Load Flow, Graphics etc... The programs are located in the directory
c:\upslfXX\samples (Windows NT/95/98/2000) or /usr/pslfXX/samples (UNIX) and are listed below:
Program Name Function
3wpt.p Produces a list of all mid point buses 3 winding transformers.
adjbuses.p finds all lines and transformers connected up to X levels away
areano.p Sets area/zone numbers of every system element equal to the
area/zone numbers of the bus to which it is connected.
avail.p Convenient access to all available EPCLs, listed by categories.
bmeter.p Build meter records for GE dynamic reader.
casediff.p compare status of up to 6 cases.
checkazo.p Check area, zone, or owner tables are assigned if referenced
from any other table.
checkbusname Modified Bus names print to 12 character format
chkshunt.p Check line reactors have a valid entry in the secdd table.
clasc_sc.p Modify data for classic short circuit representation.
conbus.p Reconnect a bus back into the network.
conflict.p Finds instances where generator and tap_changer voltage control
objectives are in conflict.
convertdrwv14.p Converts pre version 14 drawings to version 14 drawings.
convl.p Changes proportions of constant impedance, constant current,
and constant MVA in load characteristics.
cptidraw.p Convert PTI drawing files to GE drawing files.
cutout.p Cut area and add generators to mismatched buses.
datachck.p Checks load flow data for errors.
dcflow Displays branch flows using DCLF calculation methods
dcresult.p DC load flow results.
delarea.p Deletes an area and all elements within that area.
delbus.p Deletes a bus and all elements connected to it.
deletedcc.p Deletes DC elements and substitutes equivalent loads
delisld.p Deletes and/or displays an island.
dinertia.p Calculate area inertias from generator H.
dstates.p Checks delta-states (derivative of state variables) of major PSLF
standard models - genrou, gensal, gencls, gencc and gentpf, all
exciter models and all governor models. This EPCL can be run
at any pause time after initialization to check delta-states at the
moment. It can be used to debug dynamic data.
duplicate.p Check for duplicate elements in all the tables.
edit_pst.p Removes dangling elements after deleting bus data.
eqivarea.p Makes a load flow equivalent.
explot.p Example plotting program to show EPCL features.
fixowntran.p EPCL to be run on .sav cases prior to V13.
genlim.p Displays a list of generators outside their limits.
genreg.p Displays a list of generators being remotely regulated.
gpwtg.p Generator protection for wind turbine generator
holes.p Displays a list of unused bus numbers
iac1.p Calculates on inter-area power transfer limit(see appl. note 90-3).
isld_isol.p Converts buses to a bus type 0 if they are part of an isolated
island.
join.p Join two buses together.
lntosec.p Move data from the line to the secdd table.
loadpf.p Calculate load power factor.
makelist.p Makes a file listing lines and transformers in an area.
merge.p Merges area to partial system models (see appl. note 91-2).
modcount.p Count the number of dynamic models converted from pti to ge
format.
modinmem.p Display model name and number of each models.
modpar.p Example of setting/getting dynamic model data.
modstat.p Changes the model status of all out-of-service generators.
motrstrt.p Example dynamics motor starting run.
msc2.p Example epcmod model for Mechanical Switch Capacitor
mssc.p Example epcmod model for Mechanical Switch Capacitor
netting.p Net the generation with loads.
nomodel.p Creates netting.dyd to fix the "No Model for generator".
offsched.p Reports buses where scheduled voltage was not held.
ohms.p Correct shifting indices.
otherv.p Locate voltages in database and compare to pslf.vlv
outage_creator.p Build N-1, N-2, N-1-1 and extreme outages automatically based
on user specifed criteria. The resulting outages can be written
into a new otg file or existing otg file, subsequently the file can
be used for SSTOOLS.
panel.p Illustrates the use of the panel() function in a load scaling job.
partx.p Check for unequal taps on parallel transformers.
postactr.p Build edit tables from actr output.
read-owntrans.p Used to export or import PSLF tables
rtox.p Display all loads with an X/R ratio > selected value.
rundyn_upfc.p Run a dynamic simulation case containing UPFC.
savecase.p Use to retrieve history files that were created on machines other
than what you are using.
sc_auto.p Perform multiple short circuit cases.
selfreg.p Change generator regulation for specified areas/zones.
solv_pst.p Sample EPCL to run after the solution command
sortindx.p Get the index number after using sortarray in EPCL.
stab.p Create a simple .dyd file
stabchck.p Stability Data Check Program
status.p Sets the status of all elements based on in service and out of
service dates.
step.p Steps the voltage reference of a given excitation system.
stepresponse.p Steps the voltage reference of excitation systems listed in a data
file (batch mode). See Application Note apn0811.
svdfix.p Modify svd data based on Vband/bactual.
system-sum.p Sample report showing output from multiple command.
t3bubble.p Bubble diagram example for t3ps.sav.
t3psdyn.p Dynamic Simulation example using t3ps.sav.
t3ties.p Calculates MW and MVAR totals for t3psties.drw.
tapline.p Add a new bus between an existing branch section.
tapon.p Puts type 2 transformers on integral tap steps.
tculfix.p Checks transformer tap changer data for errors and
inconsistencies.
trximp.p Display transformer impedances for a given area.
upfc.p Example UPFC modeling in dynamics.
upgrade_acf.p Converts an acf file in old format to new format
usteady.p Build an edit table of unsteady dynamic models.
usteady2.p Builds an edit table from the PSLF dynamic report file that lists
the derivatives that exceed a given tolerance.
windgust.p Wind gust model
xplot.p EPCL that makes it convenient to cross plot from a list provided
by the user
5.15 Standard EPCL Programs
2tTap.p Template for implementing customized tap control algorithm for
a 2-terminal dc in load flow
Case_Dif_Inc_Create.p EPCL to determine differences between two *.sav cases and
create a change file. (Please see Application Note 10-2)
Case_Dif_Inc_Read.p EPCL to read the change file created by Case_Dif_Inc_Create.p.
(Please see Application Note 10-2)
cleandata.p EPCL to clean data if any buses have negative subscript
dc2_PI.p Generic PI control for a 2-terminal d.c. system using dc2t
model.
dc3_PI.p Generic PI control for a 3-terminal d.c. system using “dcmt”
model.
epti.p Exports pslf loadflow data in pti format.
gpwtg.p Generator protection for wind turbine generator
epti_sub_31 This program exports a PSSE RAWD File from a PSLF data
base. The code is compatable with PSSE Versions 23-30 formats
modwscc.p load flow reader to convert wscc modified data to PSLF
mtTAP.p Converter current order allocation, dc voltage scheduling and
converter tap controls
pdci_nocontrol.p Dummy control EPCL for dcmt model
pdci_ns3.p PDCI control algorithm for dcmt model used in dynamic
simulation for power flow from North to South
pdci_sn3.p PDCI control algorithm for dcmt model used in dynamic
simulation for power flow from South to North.
qflow.p Compute current and power flow into line from the upfc model.
QregSOLV_ADJ.p Calculations for upfc load flow model: P, Q, Pdc, equiv.
generator VAR limits, equiv. tranformer phase shift limits.
QregSOLV_END.p Clean-up calculations for upfc load flow model at end of load
flow solution.
QregSOLV_INIT.p Initialization calculations for upfc load flow model.
QregSOLV_UPDT.p Voltage tap calculations for upfc load flow model.
rpti.p Reads & converts Version 23-29 pti loadflow data into pslf
format.
rptie.p Does engineering checks of the PSLF database binary file
(*.SAV) converted from PSS/E ASCII file (*.RAW) (PSS/E
V23-V31)
rpti-sub_31.p Converts a PSS/E ASCII file (*.RAW) into a PSLF database
binary file (*.SAV) (PSS/E V23-V31)
rscp.p Converts a PSS/E seq. file into a PSLF Data Base
smes1.p D-SMES (Distributed Superconducting Magnetic Energy
Storage System) used in dynamic simulation.
stcon1.p Template of control implementation for dynamic simulation of
static Var compensation device using stcon1 library model.
upfcSOLV_ADJ Calculations for upfc load flow model: P, Q, Pdc, equiv.
generator VAR limits, equiv. tranformer phase shift limits.
upfcSOLV_END Clean-up calculations for upfc load flow model at end of load
flow solution.
upfcSOLV_INIT Initialization calculations for upfc load flow model. .
upfcSOLV_UPDT Voltage tap calculations for upfc load flow model.
vscdc.p Template of control implementation for simulation of voltage
source converter 2-terminal dc using vscdc library model.
windgust.p Wind Gust Model for use with wndtrb and wndtge models.
wscp.p Converts a PSLF Data Base into a PSS/E sequence file
These EPCL programs are standard EPCL programs and are located in the standard EPCL program directory -
\upslfXX\stdEPCL (for Windows 95/98/NT/2000) or /usr/pslfXX/stdEPCL (for UNIX). They are designed to be
used together with particular sections of C codes of PSLF to implement various customized control algorithms. For
example, pdci_ns3.p must be used together with dcmt dynamic model to simulate PDCI controls for dynamic
simulation, smes1.p with smes1 dynamic model, vscdc.p with vscdc dynamic model, etc.
These standard EPCL programs can be jointly developed by the PSLF group and certain designated users who have
the expertise in the content of the customized controls to be implemented. The structure of the standard EPCL makes it
convenient to best combine the expertise of the PSLF staff and the designated users to implement user specified
control algorithms. For example, the standard EPCL programs - pdci_ns3.p and pdci_sn3.p which model the PDCI
(Pacific DC Intertie) 3-terminal dc controls for dynamic simulations was jointly developed by the PSLF group and the
BPA staff.
Since the C code dynamic models associated with these EPCLs are usually generic models, they can be used with
various standrad EPCL programs for various applications. This helps more than one user who need to implement
special control schemes associated with certain devices. For example, various EPCL programs can be used together
with the generic dynamic model stcon1 to implement customized controls of STATCOM devices.
For majority of users, once these EPCL programs are developed, they can be used by relevant groups of users and
used as if they are part of the PSLF core. For example, WSCC users use the standard EPCL programs pdci_ns3.p and
pdci_ss3.p.
For details of applications related to each EPCL program in the standard EPCL program directory, refer to the manual
page of the EPCL program. To view the manual page of an EPCL program in standard EPCL program directory or
samples directory, use the PSLF pick panel - highlighting the EPCL then hitting F1
5.16 EPCL Warning and Error Messages
Error messages produced by the EPCL processor are summarized in the table below.
Where error messages refer to a line number this is the actual line number of the problem line. The
problem line can be found with an external text editor or with the "list" function of the interactive EPCL
command.
Below is a short EPCL which contains an error.
@a = 9
@c = a * 1.1
To run this EPCL, from the PSLF main menu, select EPCL. The selection panel appears and here test.p is selected to
run the EPCL.
The following error message was generated from PSLF after running this EPCL indicating there is a malformed array
or PSLF identifier in line 3 of file test.p.
To examine the line number, use Textpad and open the EPCL and examine line #3. Upon examination of line #3, the
@ sign is missing on the a in line #3.
EPCL Warning and Error Messages
Error Message Probable Cause
,.-Missing '=' in the 'for' statement in line There was no equal sign in the 'for'
<line number> statement in the indicated line
number.
Missing 'to' in the 'for' statement in line The 'to' key word did not appear in
<line number> the 'for' statement in indicated the
line number.
'quitfor' without 'for' error in line <line The 'quitfor' statement in the indicated
number> line occurred outside of a 'for' loop.
'next' without 'for' error in line <line There is no 'for' statement to go with
number> the 'next' statement appearing in the
indicated line. This error message
will arise if a 'next' appears within an
'if' statement with the corresponding
'for' being outside of the 'if' statement.
'else' without 'if' error in line <line There is no 'if' that corresponds to the
number> 'else' statement in the indicated line.
'endif' without 'if' error in line <line There is no 'if' that corresponds to the
number> 'endif' statement in the indicated line.
'return' without 'subroutine' error in line The 'return' statement in the indicated
<line number> line occurred outside of a subroutine
block, i.e. there is no 'subroutine' that
corresponds to the 'return' in the
indicated line number.
Subroutine definition in line <line A 'subroutine' statement cannot occur
number> cannot occur within another within a 'for' statement, an 'else'
type of program block statement, or another 'subroutine'
statement - this phenomenon has
occurred in the indicated line.
Missing subroutine identifier in line <line The statement in the indicated line is
number> expecting to find some sort of name
Missing label identifier in line <line to identify either where the program
number> is (in the,case of the 'subroutine' and
Missing goto label identifier in line <line the 'label' statements) or where the
number> program will be going (in the case of
Missing gosub identifier in line <line the 'goto' and the 'gosub' statements)
and finds none.
number>
Undefined label error in line <line A reference was made in the indicated
number> line - either in a 'goto' or a 'gosub'
statement - to a 'label' or a
'subroutine' statement that doesn't
exist.
Malformed PSLF identifier: missing '[' in A PSLF identifier is not properly
line <line number> formed in the indicated line. The
Malformed PSLF identifier: missing ']' in specific missing element is indicated
line <line number> in the message.
Malformed PSLF identifier: missing '.' in
line <line number>
Malformed EPCL # identifier '<EPCL #
identifier>': missing '#' in line <line
number>
Malformed EPCL # identifier '<EPCL #
identifier>': missing '[' in line <line
number>
Malformed EPCL # identifier '<EPCL #
identifier>': missing ']' in line <line
number>
An EPCL # identifier is not properly The specific missing element is
formed in the indicated line. indicated in the message.
Re-dimensioned array error ('<EPCL # An EPCL # array cannot be re-
identifier>') in line <line number> dimensioned. An attempt was made
to do so in the line indicated.
Out of memory error in line number <line There was not enough memory to
number> allocate space for an EPCL # array in
the indicated line.
Could not open log file <file name> in line For some reason, the EPCL processor
<line number>, setting log file to stdout could not open the indicated log file.
In this case, output is set to the screen
and the program execution continues.
One possible cause for this is that the
person logged on does not have
permission to write in the current
directory.
Could not open input file <file name> in For some reason, the EPCL processor
line <line number>, setting input file to could not open the indicated input
stdin file. In this case, input is taken from
the keyboard and the program
execution continues. One possible
cause for this is that the input file
does not exist in the indicated
directory.
Could not enter PSLF command mode For some reason, the EPCL processor
from line <line number> could not enter the PSLF command
mode. If this happens, the program
continues executing after the 'endpslf'
statement as if it has successfully
completed executing the PSLF dialog
block.
Undefined PSLF identifier '<PSLF
identifier>' used in line <line number>
Undefined EPCL @ variable '<EPCL @
identifier>' used in line <line number>
Undefined EPCL variable '<EPCL $
identifier>' used in line <line number>
Undefined # or * array '<EPCL # The identifier used in the indicated
identifier>' used in line <line number> line is not currently defined. In the
case of EPCL @ variables and EPCL
$ variables, this means that they have
not been assigned a value. In the case
of an EPCL # or * array, the array has
not been dimensioned. In the case of
a PSLF identifier, the identifier is not
a legitimate PSLF identifier.
Bad subscript error in line <line number> Illegal subscript '<subscript>' used in
PSLF variable in line <line number>.
Undefined EPCL @ variable '<EPCL @ The subscript used in either a PSLF
identifier>' used as a PSLF subscript in identifier or an EPCL or of an
line <line number> inappropriate type.
Type mismatch error in line <line Two variables were used in some
number> operation (assignment, comparison,
etc.) that were not of the same type.
For example, trying to assign an
EPCL @ variable a string value
would cause this error.
Nonexistent EPCL @ variable used in
logical expression in line <line number>
Nonexistent EPCL $ variable used in
logical expression in line <line number>
Error in logical expression in line <line An undefined variable or a garbled
number> operator was used in the logical
expression in the indicated line.
Division by zero error in line <line The denominator of a division was
number> zero.
Cannot find logfile <file name> used in The file has not been opened with an
line <ln> appropriate setlog, openlog, or
Cannot find input file <file name> used in setinput statement.
line <ln>
Branch program cannot access main A branch EPCL program attempted to
program file, <file name> in line <ln> open a file that is already open in its
parent EPCL program. Both
programs cannot have the same file
open concurrently.
No file name specified in line <ln> No file name was specified in a
setlog, setinput, or openlog statement.
Illegal call to EPCL() from branch file in An attempt was made to execute
line <ln> EPCL() from an EPCL program that
was itself started via an EPCL() call.
Memory allocation failure An EPCL() call failed because
adequate memory could not be
allocated.
Could not open program file <file name> An invalid file name was specified in
an EPCL() call.
Program file must be specified in olgr to An EPCL program attempted to
pass values execute the pass() function, but was
not called from olgr.
Illegal pass value, <value>, in line <ln> The argument in a pass() statement
was invalid.
Table 5.2
Dictionary of PSLF Variables Accessible from EPCL
The flag column (F) in this table identifies the type of bus numbers:
e External number - number seen in external data files and pslf edit tables
i Internal bus number-index of ac or dc bus record describing this bus
Record / Index
Field F Definition Units
LOAD FLOW DATA RECORDS
casepar 0 Working Case Parameters Record
title[5][80] Five line title
comnt[15][80] Case comments
nbus Number of buses
nbrsec Number of branch sections
ngen Number of generators
ntran Number of transformers
nload Number of loads
nshunt Number of shunts
narea Number of areas
nzone Number of zones
nztab Number of transformer impedance tables
nsvd Number of static VAR devices
ndcb Number of dc buses
ndcl Number of dc lines
ndcc Number of dc converters
nitface number of interfaces
nbface number of interface branches
ngroup number of economic dispatch groups
ngcd Number of gate controlled devices(gcd)
fgcd
nord
njump
nbre
nbrel (Number of lines + tx)*2
nbrez
nbrelz
seqdata
ncpl Number of zero sequence mutual couplings
necy
date_flag Date_flag = 1 for mon num, 0 for let
dummy
ftwow effbrz index of first 2-winding transformer
fthreew effbrz index of first 3-winding transformer
time_t Time stamp for this case and history file
sortflag Sort flag 0=don't sort, 1=sort (not used)
batchflag Batch flag 0=not in batch mode, 1= batch mode
sbase System MVA base MVA
vcheck_h1 Voltage checking upper limit 1 per unit
vcheck_l1 Voltage checking lower limit 1 per unit
vcheck_h2 Voltage checking upper limit 2 per unit
vcheck_l2 Voltage checking lower limit 2 per unit
rating_pct Percentage of rating to be used in check
rating_no Active rating number
base_date Base date for date_in and date_out members
ncond Number of conductors
ncable Number of cables
npole Number of poles
nline Number of lines
ntransact Number of transactions
nowner Number of owners
nmotor Number of motors
ngenbc Number of generator models
save_type type of machine the history file was created on
1=AIX,SUN,HP 2=DEC, 3=NT/WIN95
nqtable Number of generator reactive capability curves
ndcsys Number of dc systems
longname 0=8 Character bus names, 1=12 character bus
names
nvsc Number of voltage source converters
nsubst Number of substations
nba Number of balancing authorities
ninjgrp Number of injection groups
ninjgrpelem Number of injection group elements
nifaceelem Number of interface elements
nvoltcntgrp Number of voltage control groups
nvoltcntgrpelem Number of voltage control group elements
busd casepar[0].nbus AC Bus Data Record
t_stamp Time stamp
extnum e Bus external number
busnam[12] Bus name
basekv Bus base voltage kV
type Bus type
area e Area number
zone e Zone number
ba E Balancing Authority number
projid Project Identifier
level Level number
vsched Scheduled voltage per unit
vmax bus voltage maximum per unit
vmin bus voltage minimum per unit
vmax1 bus voltage emergency maximum limit per unit
vmin1 bus voltage emergency minimum limit per unit
date_in In service date yyyymmdd
date_out Out-of-service date yyyymmdd
(To change date fields please use EPCL function
datarec)
nown Owner number
latitude Bus geographical coordinate
longitude Bus geographical coordinate
isubst i Substation internal number
iplnt i Plant internal number
lid[32] Long identifier
devtype Device type
transnum Translation table number
idm i Datamaintainer internal number
topologytype Topology Type
0 (bus)
1 (busbar)
2 (junction)
3 (midpoint bus of 3 winding transformer)
4 (ground)
volt (same index as busd) AC Bus Voltage Data Record
vr Real component of voltage per unit
vi Imaginary component of voltage per unit
vm Voltage magnitude per unit
va Voltage phase angle radians
bixst casepar[0].nbus AC Bus Indexing Data Record
i Index of record in busd table
extnum External bus number
subst casepar[0].nsubst Substation Data Record
t_stamp Time stamp
extnum e Substation external number
name Substation name
latitude Substation geographical coordinate (latitude)
longitude Substation geographical coordinate (longitude)
Rdc Substation ground resistance
idm i Datamaintainer internal number
secdd casepar[0].nbrsec AC Line Data Record
t_stamp Time stamp
ifrom i Section from bus index
ito i Section to bus index
ck[2] Circuit identifier
projid Project Identifier
st Status
stn Normal status
nsec Section number
type Line type 0=standard, 1=transformer terminated
zsecr Line section resistance per unit
zsecx Line section reactance per unit
bsec Section total charging sequence per unit
rate[8] Section ratings MVA
aloss Section loss assignment factor per unit
area e Area number
zone e Zone number
lngsec Section length
trangi Line connected tx conductance
trantapf Line connected tx from tap ratio per unit
trantapt Line connected tx to tap ratio per unit
lid[40] Long identifier
ohms Ohmic data flag: 1 impedances in ohms, 0 in pu
date_in In service date yyymmdd
date_out Out-of-service date yyymmdd
(To change date fields please use EPCL function
datarec)
nown[8] Owner numbers
pown[8] Owner participation factor (0-1)
export_sort Used by exporters
indx_flox index number in flox table, from - to
indxt_flox index number in flox table, to - from
ost Online status
dst Derived status
dost Derived online status
tdbrfr Time delay of breaker at from terminal
tdbrto Time delay of breaker at to terminal
idm i Datamaintainer internal number
tran casepar[0].ntran Transformer Data Record
t_stamp Time stamp
ifrom i Primary winding bus index
ito i Secondary winding bus index
ck[2] Circuit identifier
projid Project Identifier
st Status
stn Normal status
type Transformer type code
kreg i Index of bus whose voltage is regulated or “to” bus
number of flow-regulated branch
iztabl Impedance correction table number
itert i Tertiary winding bus index
iint i Internal "3-winding point" bus index
area e Owner area
zone e Owner zone
tbase Transformer MVA base (prim. to sec. for 3-wndg) MVA
tbasept MVA base - prim. to tertiary for 3-wndg MVA
tbasets MVA base - tertiary. to sec. for 3-wndg MVA
zpsr Resistance primary to secondary per unit
zpsx Reactance primary to secondary per unit
zptr Resistance primary to tertiary per unit
zptx Reactance primary to tertiary per unit
ztsr Resistance tertiary to secondary per unit
ztsx Reactance tertiary to secondary per unit
vnomp Primary winding nominal voltage kV
vnoms Secondary winding nominal voltage kV
vnomt Tertiary winding nominal voltage kV
anglp Primary winding phase angle degrees
angls Secondary winding phase angle degrees
anglt Tertiary winding phase angle degrees
gmag Magnetizing conductance per unit
bmag Magnetizing susceptance per unit
rate[8] Ratings (primary winding for 3-winding xfmr) MVA
rates[3] Ratings - secondary winding for 3-winding xfmr MVA
ratet[3] Ratings - tertiary winding MVA
aloss Loss assignment factor (primary winding for 3- per unit
wndg)
alosss Loss assignment factor - secondary winding for 3- per unit
wndg
alosst Loss assignment factor – tertiary winding per unit
tmax Maximum TCUL ratio per unit
tmin Minimum TCUL ratio per unit
vtmax Maximum voltage at controlled bus per unit
vtmin Minimum voltage at controlled bus per unit
stepp TCUL step per unit
tapp TCUL tap position (primary winding) per unit
tapfp Primary winding fixed tap position per unit`
tapfs Secondary winding fixed tap position per unit
tapft Tertiary winding fixed tap position per unit
lid[32] Long identifier
ohms Ohmic data flag 1 impedances in ohms 0 in pu
date_in In service date yyyymmdd
date_out Out-of-service date yyyymmdd
(To change date fields please use EPCL function
datarec)
nown[8] Owner number
pown[8] Owner participation factor (0-1)
export_sort Used by exporters
indx_flox index number in flox table, from-to if 2-winding
from-internal if 3-winding
indxt_flox index number in flox table, to-from if 2-winding,
internal-from if 3-winding
indx1_flox if 3-winding, index number in flox table, to-internal
indxt1_flox if 3-winding, index number in flox table, internal-to
indx2_flox if 3-winding, index number in flox table, tertiary-
internal
indxt2_flox if 3-winding, index number in flox table, internal-
tertiary
ost Online status
dst Derived status
wcanglp Winding connection angle
tdbrpri Time delay of breaker for primary winding terminal
tdbrsec Time delay of breaker for secondary winding
terminal
tdbrter Time delay of breaker for tertiary winding terminal
idm i Datamaintainer internal number
tztab casepar[0].nztab Transformer Impedance Variation Data Record
t_stamp Time stamp
ta e 0 = tcul ratio , 1 = phase shift angle
t[11] Independent variable value, p.u. or degrees
f[11] Impedance adjustment factor, p.u.
extnum table number
idm i Datamaintainer internal number
gens casepar[0].ngen Generator Data Record
t_stamp time stamp
ibgen i Generator terminal bus index
id[2] Generator identifier
projid Project Identifier
st Generator status
stn Normal status
cont_mode Voltage control mode
igreg i Index of bus regulated by this generator
area e Area number
zone e Zone number
mbase Generator MVA base MVA
pgen Actual real power output MW
qgen Actual reactive power output MVAr
qmax Maximum reactive power limit MVAr
qmin Minimum reactive power limit MVAr
pf Power factor limit
qtab Qtable selector: 1 – use qtable if it exists
qtabno e Qtable number
qmx Actual max. Q (from qtable, qmax, or pf) MVAr
qmn Actual min. Q (from qtable, qmin, or pf) MVAr
prf Real power regulating assignment factor per unit
qrf Reactive power regulating assignment factor per unit
pmax Maximum power output MW
pmin Minimum power output MW
zgenr Generator characteristic resistance per unit
zgenx Generator characteristic reactance per unit
rcomp Compensating resistance (+ values looks into
system,
xcomp Compensating reactance - values looks into gen.)
hbus Index of high voltage bus of step up xfm
tbus Index of terminal bus
lid[32] Long identifier
date_in In service date yyyymmdd
date_out Out-of-service date yyyymmdd
(To change date fields please use EPCL function
datarec)
nown[8] Owner number
pown[8] Participation factor (0-1)
rtr Resistance of generator stepup tx
xtr Reactance of generator stepup tx
gtap Tap ratio of generator stepup tx
gov_flag =0 no governor control, = 1 under governor
control
agc_flag =0 no agc control, =1 agc control
dispatch_flag =0 not dispatchable, =1 dispatchable under
manual load control
baseload_flag =0 not at maximum output, =1 at maximum output
=2 at maximum and cannot be dispatched down
either
air_temp = ambient air temperature in degrees C (def. = 15)
turbine_type = 0 unknown
= 1 non-reheat steam
= 2 reheat steam
= 3 steam cross compound unit
= 4 steam in combined cycle (separate shaft)
= 5 hydro
= 6 diesel-non turbo charged
= 7 diesel turbo charged
= 11 industrial GT (single shaft)
= 12 aero derivative GT
= 13 single shaft combined cycle
= 14 synchronous condenser (no turbine)
= 20 type unknown wind turbine
= 21 type 1 wind turbine
= 22 type 2 wind turbine
= 23 type 3 wind turbine
= 24 type 4 wind turbine
= 31 photovoltaic
= 40 dc tie (generators representing DC ties)
= 41 motor/pump
= 50 Energy Storage
= 99 other
iblck i Block (internal) number
ost Online status – used to calculate secondary status
for RAS actions
dst Derived status – used to calculate secondary status
for RAS actions
unittype Unit Type
fueltype[3] Fuel Type (primary, secondary, tertiary)
ctgc_cont_mode Post contingency voltage control mode – used to
define control mode for generator. Valid values
are 0 (default normal regulation), 1 (fixed Q,
cannot regulate), 2 (normal regulation but power
factor-based Q limits), 3 (fixed Q determined by
power factor), 4 (line drop compensation), -1
(self-regulate with normal Q range) and -2 (self-
regulate with Q limits based on power factor)
ctgc_agc_flag Post contingency AGC option – used to set AGC
based on post-contingency options. Valid values
are 0 (do not respond), 1 (respond), and 2 (use
option from base case)
ctgc_prf Post contingency participation factor in reference
to other generators – used during redispatch
routine
ctgc_maxmw_flag Flag indicating how ctgc_maxmw value is
interpreted (0 mw or 1 for %)
ctgc_maxmw Max mw deviation allowed for the generator
during a contingency, if ctgc_maxmw_flag is 0
MW mw deviation as % of maximum MW limit
during contingency, if ctgc_maxmw_flag is 1 –
used to calculate Pmax in redispatch routine
tdbr Time delay of breaker
idm i Datamaintainer internal number
qtable casepar[0].nqtable Generator Reactive Capability Data Record
t_stamp time stamp
ibgen i Generator terminal bus index
genid[2] Generator identifier
crvno e Curve number
lid[32] Long Identifier 32 characters
p[20] Generator power output (* See note) MW
qmx[20] Maximum reactive power MVAr
qmn[20] Minumum reactive power MVAr
idm i Datamaintainer internal number
*Note : P values must be in ascending sequence.
motr casepar[0].nmotor Motor Data Record
t_stamp time stamp
ibus i Motor terminal bus number
id[2] 2 character motor identifier
projid Project Identifier ( information only )
st Motor status 1=in service; 0=out of service
stn Normal motor status 1=in service; 0=out of
service
area Area number
zone Zone number
nown Owner number
flag
type Type of motor 8 characters
mbase Motor base (MVA)
pelec Sched or actual real power consumed at terminals
(Mw)
qelec Sched or actual reac. power consumed at
terminals(Mvar)
pf Motor power factor
ls Synchronous reactance, pu
tp0 Transient open circuit time constant, sec
lp Transient reactance, pu
tpp0 Subtransient open circuit time constant, sec
lpp Subtransient reactance, pu
ra
h
rt Transformer reactance, pu
bcap lt Shunt capacitor admittance, pu
alt0 Load parameter
alt1 Load parameter
blt1 Load parameter
alt2 Load parameter
blt2 Load parameter
lid[32] Long Identifier 32 characters
zppr
zppx
isorc
iterm
eterm
speed
pmech
date_in In service date yyyymmdd
date_out Retirement date yyyymmdd
(To change date fields please use EPCL function
datarec)
load casepar[0].nload Load Data Record
t_stamp Time stamp
lbus i Index of bus at which load is connected
id[2] Load identifier
projid Project Identifier
st Load status
stn Normal status
area e Area number
zone e Zone number
p Constant MVA real power load MW
q Constant MVA reactive power load MVAR
ip Constant current real power load MW
iq Constant current reactive power load MVAR
g Constant admittance real power load MW
b Constant admittance reactive power load MVAR
pdgen MW from distributed generation (dg) MW
qdgen MVAR from distributed generation (dg) MVAR
stdg Status of distributed generation (dg)
pdgenmax Maximum MW from distributed generation (for MW
information purpose only)
pm
qm
lid[32] Long identifier
nonconf Non-Conforming Flag
date_in In service date yyyymmdd
date_out Out-of-service date yyyymmdd
(To change date fields please use EPCL function
datarec)
nown Owner number
shed Amount of load not shed (pu)
auxtype Auxiliary load type
0 none
1 generator
iaux Internal index of component reference by aux load
ost Online status
dst Derived status
clzone[8] Climate zone
pnom Nominal MW load
qnom Nominal MVAR load
calcopt Load calculation method
0 : total load made up of ZIP components
1 : total load made up of ZIP fractions and
nominal load
pfr Fraction of constant MVA real power load per unit
qfr Fraction of constant MVA reactive power load per unit
ipfr Fraction of constant current real power load per unit
iqfr Fraction of constant current reactive power load per unit
gfr Fraction of constant admittance real power load per unit
bfr Fraction of constant admittance reactive power per unit
load
dgfr Fraction of MW from distributed generation (dg) per unit
pmax Load mw maximum value (for information only) MW
pmin Load mw minimum value (for information only) MW
tdbr Time delay of breaker
idm i Datamaintainer internal number
shunt casepar[0].nshunt Fixed Shunt Data Record
t_stamp Time stamp
ifrom i From bus index
id[2] Shunt identifier
ito i To bus index or -1
ck[2] Circuit identifier
projid Project Identifier
st Status of shunt
stn Normal status
nsecsh Section number
area e Area number
zone e Zone number
ishreg i Regulating bus (not used)
g Actual shunt conductance per unit
b Actual shunt susceptance per unit
lid[32] Long identifier
date_in In service date yyyymmdd
date_out Out-of-service date yyyymmdd
(To change date fields please use EPCL function
datarec)
nown[4] Owner number
pown[4] Participation factor (0-1)
isvd Bus index of SVD that controls this shunt
idsvd[2] ID of SVD that controls this shunt
stsvd SVD control status: <= 0 keep shunt fixed; else
permit SVD to switch it
ost Online status
dst Derived status
dost Derived online status
tdbr Time delay of breaker
idm i Datamaintainer internal number
svd casepar[0].nsvd Controlled Shunt Data Record
t_stamp Time stamp
ibus i Index of bus at which device is connected
id[2] SVD identifier
projid Project Identifier
st Device status
stn Normal status
type Device type
kreg i Index of bus regulated by this shunt
area e Area number
zone e Zone number
g Actual shunt conductance per unit
b Actual shunt susceptance per unit
bmin Minimum susceptance of continuous element per
unit
bmax Maximum susceptance of continuous element per
unit
vband Width/2 of voltage control band per unit
bstep[10] Susceptance step size per unit
nstep[10] Number of steps in each group
beffmin Minimum total susceptance for this device per
unit
beffmax Maximum total susceptance for this device per
unit
lid[32] Long identifier
date_in In service date yyyymmdd
date_out Out-of-service date yyyymmdd
(To change date fields please use EPCL function
datarec)
nown[4] Owner number
pown[4] Participation factor (0-1)
xc Compensating (slope) reactance
bminsh Range within which shunts are not switched
bmaxsh
stsb On/off status of slow B control
bminsb B range for slow B control
bmaxsb
vrefmin Vrange for slow B control (Vrange for types 3 &
4 if
vrefmax Vband <= 0.)
dvdb p.u. change in V / p.u. change in B
ishunt[8] i Indices of controlled switched shunts
vsched Bus vsched as modified by SVD
bvsch0 Original bus vsched
decel Internal deceleration factor for slow B logic
ibslow Internal slow B logic status indicator
ost Online status
dst Derived status
tdbr Time delay of breaker
idm i Datamaintainer internal number
gcd casepar[0].ngcd Power Electronic Devices Data Record
t_stamp Time stamp
i i From bus
j i To bus
ck[2] Circuit Id
projid Project ID
st GCD Status
stn Normal Status
sec Section number
type Type
pset Real Power Setpoint MW
qset Reactive Pow Setpt MVAR
p Real Power
q Reactive Power
vsm Series Voltage Mag, pu
vsa Series Voltage Ang, rad
r Series Resistance, pu
x Series Reactance, pu
b Shunt Susceptance, pu
svbase Series Voltage Base
svabase Series MVA Base
pvbase Parallel Voltge Base
pvabase Parallel MVA Base
vsmax Max Series Voltage
vpmax Max Parallel Int Voltage
aloss Aloss
area e Area number
zone e Zone number
ps Series Real Power
qs Series Reactive Power
mvas Series MVA
pp Parallel Real Power
qp Parallel Reactive Power
mvap Parallel MVA
accel Acceleration factor
vmr Internal V real
vmi Internal V imag
vmm Internal V mag
vma Internal V ang
cmr Internal I real
cmi Internal I imag
lid[32] Long Identifier
date_in In Service date yyyymmdd
date_out Out of Service date yyyymmdd
(To change date fields please use EPCL function
datarec)
nown[4] Owner number
pown[4] Participation factor (0-1)
dcb casepar[0].ndcb DC Bus Data Record
t_stamp Time stamp
extnum e DC bus external number
busnam[12] DC bus name
basekv DC bus base voltage kV
type DC bus type
dcsys DC system number
area e Area number
zone e Zone number
projid Project Identifier
vsched Scheduled dc voltage per unit
vdc Actual dc voltage kV
date_in In service date yyyymmdd
date_out Out-of-service date yyyymmdd
(To change date fields please use EPCL function
datarec)
nown Owner number
lid[32] Long Identifier
dcbixst casepar[0].ndcb DC Bus Indexing Data Record
i Index of record describing bus in dcb table
extnum External bus number describing bus in dcb table
dcl casepar[0].ndcl DC Line Data Record
t_stamp Time stamp
ifrom i Index of dc bus at "from" end
ito i Index of dc bus at "to" end
ck[2] DC line identifier
projid Project Identifier
st DC line status
stn Normal status
dcsys DC system number
area e Area number
zone e Zone number
r DC line resistance ohms
l DC line inductance henries
c DC line capacitance microf
rate[8] DC current ratings amps
length Line length miles
aloss DC line loss assignment factor per unit
lid[32] Long identifier
date_in In service date yyyymmdd
date_out Out-of-service date yyyymmdd
(To change date fields please use EPCL function
datarec)
nown[8] Owner number
pown[8] Participation factor (0-1)
tdbrfr Time delay of breaker at from terminal
tdbrto Time delay of breaker at to terminal
idm i Datamaintainer internal number
dcc casepar[0].ndcc DC Converter Data Record
t_stamp Time stamp
acbus i AC bus index
dcbus i DC bus index
id[2] Converter identifier
projid Project Identifier
st Converter status
stn Normal status
dcsys DC system number
type Converter type 1=rectifier; 2=inverter
mode Converter control mode
nbridge Number of bridges in series
tran_kreg Converter transformer control flag
dcv_kreg Number of dc bus whose voltage is controlled by
this converter xformer
area e Area number
zone e Zone number
idc Converter dc current amps
vdc Converter dc voltage kV
pac AC real power at ac bus side of converter MVAR
transformer
qac AC reactive power at ac bus side of converter
transformer
alpha Rectifier firing delay angle degrees
gamma Inverter firing margin angle degrees
p_sched Scheduled converter dc power MW
i_sched Scheduled converter dc current amps
v_sched Scheduled converter dc voltage kV
i_margin
rcomp Compounding resistance for voltage control by ohms
this converter
vmin_pctl DC voltage at which this converter abandons per unit
power control
vmin_comm Minimum ac bus voltage at which this converter per unit
will operate
alpha_min Minimum rectifier firing angle degrees
alpha_max Maximum rectifier firing angle degrees
gamma_min Minimum inverter margin angle degrees
gamma_max Maximum inverter margin angle degrees
vdiode Converter forward voltage drop kV
xcomm Effective commutating inductance seen by this ohms
converter
r_tran Converter transformer resistance per unit
x_tran Converter transformer reactance per unit
vac_base Base voltage of converter transformer ac side kV
winding
vdc_base Base voltage of converter transformer dc side kV
winding
tbase Converter transformer MVA base MVA
tapf_ac Fixed tap position on converter transformer ac per unit
winding
tapf_dc Fixed tap position on converter transformer dc per unit
winding
tap_ac TCUL tap position on converter transformer ac per unit
winding
tap_dc TCUL tap position on converter transformer dc per unit
winding
tmin Minimum TCUL position per unit
tmax Maximum TCUL position per unit
tstep TCUL step size per unit
vtmax Maximum voltage for converter transformer per unit
voltage control
vtmin Minimum voltage for converter transformer per unit
voltage control
aloss Converter transformer loss assignment factor
i_rate Converter rated dc current amps
x_smooth Smoothing reactor inductance henries
lid[32] Long identifier
date_in In service date yyyymmdd
date_out Out-of-service date yyyymmdd
(To change date fields please use EPCL function
datarec)
nown[8] Owner number
pown[8] Participation factor (0-1)
alpha_dy Rectifier firing delay angle for dynamics degrees
gamma_dy Inverter firing delay angle for dynamics degrees
mode_dy Converter control mode for dynamics
cosctlang Cosine of control angle for DCMT
invbypass Inverter bypass signal for DCMT
rectblock Rectifier block signal for DCMT
tdbr Time delay of breaker
idm i Datamaintainer internal number
vsc casepar[0].nvsc VS Converter Data Record
t_stamp Time stamp
acbus i AC bus index
dcbus i DC bus index
id[2] Converter identifier
projid Project Identifier
lid[32] Long identifier
st Converter status
stn Normal status
dcsys DC system number
type Converter type 1=rectifier; 2=inverter
dc_mode
dcset
psetlim
vdc
idc
pdc
ac_mode
acset
ireg
qrf
qmax
qmin
qmx
qmn
pac
qac
Smax
Imax
pwf
Aloss
Bloss
Minloss
sort_index
area e Area number
zone e Zone number
ba e Balancing Authority
nown[8] Owner number
pown[8] Participation factor (0-1)
date_in In service date yyyymmdd
date_out Out-of-service date yyyymmdd
(To change date fields please use EPCL function
datarec)
tdbr Time delay of breaker
idm i Datamaintainer internal number
area casepar[0].narea Interchange Control Area Data Record
t_stamp Time stamp
arnum e Area number
arname[32] Area name
iswng i Index of bus at which area swing generator is
located
pnetdes Desired real power net interchange MW
pnettol Tolerance for net interchange control MW
pnet Actual real power net interchange MW
qnet Actual reactive power net interchange MVAR
swingmw Area swing MW generation (Total)
swingmvar Area swing MVAR generation (Total)
injgrp[64] Injection Group Name
aicntopt -1 (Disable interchange control)
0 (use area slack bus for interchange control)
1 (use generators with AGC flag enabled for
interchange control)
2 (use generators defined in the injectiongroup for
interchange control)
ai_mwlim 0 (don’t enforce MW limit of generator during
interchange control)
1 (enforce MW limits of generator during
interchange control
zone casepar[0].nzone Zone Data Record
t_stamp Time stamp
zonum e Zone number
zonam[32] Zone name
pznet Actual real power net interchange MW
qznet Actual reactive power net interchange MVAR
ba casepar[0].nba Balancing Authority Data Record
t_stamp Time stamp
banum e Ba number
baname[32] Ba name
iswng i Index of bus at which area swing generator is
located
pnetdes Desired real power net interchange MW
pnettol Tolerance for net interchange control MW
pnet Actual real power net interchange MW
qnet Actual reactive power net interchange MVAR
swingmw Area swing MW generation (Total)
swingmvar Area swing MVAR generation (Total)
injgrp[64] Injection Group Name
aicntopt -1 (Disable interchange control)
0 (use area slack bus for interchange control)
1 (use generators with AGC flag enabled for
interchange control)
2 (use generators defined in the injectiongroup for
interchange control)
ai_mwlim 0 (don’t enforce MW limit of generator during
interchange control)
1 (enforce MW limits of generator during
interchange control
owner casepar[0].nowner Owner Data Record
name Owner name up to 32 characters
sname Owner short name up to 4 characters
net_inter_mw Actual real power net interchange MW
net_inter_mvar Actual reactive power net interchange MVAR
net_sched_mw Schedule real power net interchange MW
net_sched_mvar Schedule reactive power net interchange MVAR
nown Owner number
areano e Area number
datamaintainer casepar[0]. ndatamaintainer DataMaintainer Record
name[64] DataMaintainer name up to 64 characters
phone[32] DataMaintainer phone number up to 32 characters
email[64] DataMaintainer e-mail up to 64 characters
company[64] DataMaintainer company name up to 64 characters
location[64] DataMaintainer location up to 64 characters
parent[64] Parent DataMaintainer’s name up to 64 characters
itface casepar[0].nitface Interface Data Record
t_stamp Time stamp
itnum e Interface Number
name[32] Interface name
pnet Net MW's across interface
qnet Net MVAR's across interface
rate[8] Interface ratings
bface casepar[0].nbface Branch Interface Data Record
t_stamp Time stamp
from i Section from bus index
to i Section to bus index
ck[2] Circuit identifier
itface e External number of the interface
pf Participation factor (0-1.)
mw branch real power flow MW
mvar branch reactive power flow MVAR
ifaceelem casepar[0]. nifaceelem Interface Elements Data Record
t_stamp Time stamp
itface e Interface Number
ifacename[32] Interface name
objectstr[100] Object string specifying the monitored elements.
The elements allowed in the interface can be of
type :
· Branch (“branch <FROM BUS> <TO BUS>
<’CIRCUIT’> <SECTION>”)
· Generator (“gen <FROM BUS> <’CIRCUIT’>”)
· Load (“load <FROM BUS> <’CIRCUIT’>”)
· Interface (“interface <INTERFACE NUMBER>”)
· Injectiongroup (“injectiongroup
<’INJECTIONGROUP NAME’>”)
· Area tie-line (“area <FROM AREA> <TO AREA>”)
· Zone tie-line (“zone <FROM ZONE> <TO ZONE>”)
· BA tie-line and (“ba <FROM BA> <TO BA>”)
· DC line (“dcl <DC FROM BUS> <DC TO BUS>
<’CIRCUIT’>”)
imeterbus i Monitored bus index
meterdir Monitored/Metered Direction
0 – Meter direction (leaving the metered bus)
1 – Meter direction (entering the metered bus)
pf Participation factor (0-1.) per unit
mw Monitored element real power flow MW
mvar Monitored element reactive power flow MVAR
transact casepar[0].ntransact Transaction Data Record
from from transaction number
fid[2] from transaction 2 character id
ftype[4] From type a=area, z=zone, o=owner, g=gen,
l=load
to to transaction number
tid[2] to transaction 2 character id
ttype[4] To type a=area, z=zone, o=owner, g=gen, l=load
sched_mw Scheduled real power net interchange MW
sched_mvar Scheduled reactive power net interchange MVAR
flag flag up to 4 characters
st status 1 = in service; 0 = out of service
stn Normal status 1=in service; 0=out of service
projid Project Identifier ( information only )
name Name 32 characters
flox casepar[0].nbrel AC Branch Flow Data Record
p Real power flow MW
q Reactive power flow MVAR
mva MVA flow MVA
amps Line current amps
rate Effective rating amps (line) or MVA (xfmr)
pul Per unit loading
from i Bus at which flow is evaluated
to i Bus at other end of branch
flag 0 = line, 1 = transformer
mwloss MW loss
mvloss MVAR loss
ck[2] Circuit identifier (two characters)
indx_branch index number in secdd or tran table.
1st secton index number in secdd table if multi-
section line.
mispar 0 Mismatch Summary Data Record
ipmism i Index of bus with largest real power mismatch
iqmism i Index of bus with largest reactive power mismatch
iordfl Is Case Ordered Flag, set to 0 to re-order
ibeffl
pmism Largest real power mismatch
qmism Largest reactive power mismatch
idvm i Index of bus with largest voltage change
idva i Index of bus with largest angle change
dvm Largest voltage change
dva Largest angle change
usr_flag
mis casepar[0].nbus Mismatch Data Record
p real power mismatch at the bus
q reactive power mismatch at the bus
extnum external bus number
intnum i internal bus number
solpar 0 Solution Parameters Record
itnrmx Maximum number of full Newton iterations
itndmx Maximum number of decoupled newton iterations
itgsmx Maximum number of Gauss Seidel iterations
itfymx Maximum number of factored y iterations
itnrvl Newton iteration for var limit application
itndvl Decoupled iteration for var limit application
tolnr Newton solution tolerance
acnrvl Newton var limit acceleration
vlthr Mismatch tolerance for var limit application
tolgs Gauss Seidel solution voltage tolerance
accgsp Gauss Seidel acceleration, P
accgsq Gauss Seidel acceleration, Q
tolfy Factored y solution voltage tolerance
accfy Factored y acceleration
zeps Jumper impedance threshold
vlbrk Voltage break point for load models
vltap Voltage change threshold for tap adjustment
psthr Mismatch threshold for phase shifter adjustment
aithr Mismatch threshold for area interchange adjustment
tapadj Tap adjustment flag
psadj Phase shifter adjustment flag
psopt Phase shifter adjustment solution option
aiadj Area interchange adjustment flag
aiopt Area interchange adjustment solution option
epclflg TRUE if in epcl processor
itmin Minimum no of N-R iterations
cntl_brk TRUE if cntl_brk has been trapped
vlband Minimum var limit band
swsadj Switched shunt adjustment flag
dccadj DC converter control flag
accnr Overall acceleration for Newton Raphson method
maxvarb Maximum permitted number of var limit bounces
maxtapb Maximum permitted number of transformer tap
bounces
maxvdv Maximum change in voltage allowed at type 2 bus
track Internal number of bus to be tracked in lf solutions
acnrtp acc. factor for direct tap adjustment
econtol Tolerance to solve economic dispatch cases
gcdflg Activate user EPCL programs
usr_tapflag
usr_psflag
usr_iniflag
usr_dcflag
dclossflag dc load flow flag 1=include losses,0=don’t include
losses
angest flag to use angle estimation before ac load flow
solution
tolhvdc Solution tolerance for HVDC network (amps)
itmxhvdc Max. iterations for HVDC network solution
gensqrf For future use
ECONOMIC DISPATCH DATA RECORDS
area_gref casepar[0].narea Area Dispatch Data Record
t_stamp Time stamp
disp_group Group to which area belongs
load Area load
net_int Net interchange
reserve_mw Fixed reserve MW
reserve_margin Reserve margin pu
gen Area generation MW
loss Area losses MW
nondisp Non-dispatchable generator output MW
dispatch Dispatchable generator output MW
reqgen Required generation MW
comcap Area committed capacity MW
totcap Area total capacity MW
dg casepar[0].ngroup Group Dispatch Data Record
t_stamp Time stamp
group_no Group number
group_name[8] Group name
group_load Group load MW
group_net_int Net interchange MW
group_reqgen Required generation MW
group_comcap Committed capacity MW
group_totcap Total capacity MW
group_nondisp Non-dispatchable generator output MW
group_dispatch Dispatchable generator output MW
loss_mw Group losses MW
reserve_mw Fixed reserve MW
reserve_margin Reserve margin per unit
max_lambda Maximum dispatched lambda $/MWhr
group_lambda Dispatched lambda $/MWhr
group_cost Group cost $/MWhr
ged casepar[0].ngen Generator Dispatch Data Record
t_stamp Time stamp
rank Generator ranking
fuel_cost Generator fuel cost $/Mbtu
ave_fullhr Full load heat rate Mbtu/MWhr
inc_mw[11] Incremental MW points MW
heat_rate[11] Incremental heat rate points Mbtu/MWhr
penalty Effective penalty factor
cost Full load operating cost $/MWhr
mincost Minimum load operating cost $/MWhr
opercost Operating cost at dispatched load $/MWhr
min_load_heat Minimum load heat input Mbtu/hr
permfac Performance factor pu
fuelfac Fuel factor pu
varom Variable O_M cost $/Mbtu
lineloss Transmission loss penalty factor pu
efor Effective forced outage rate
pumpfac Pumping factor pu
pioc Penalized incremental operating cost $/MWhr
gengp Group number
dispatch Dispatch code 0=nondispatchable, 1=dispatchable
priorno Priority number
unit_type[2] Unit type
fuel_type[2] Fuel type
unit_remark[16] Remark field
SSTOOLS/DYTOOLS DATA RECORDS
sstdyt 0 SSTOOLS/DYTOOLS Data Record
mode 0 : run steady state contingency processor
1 : run dynamics contingency processor
default_time Default time when adding new contingency
elements or when reading a contingency definition
from an older file format
conerr_opt Option to specify how to treat contingency errors
0: ignore contingency errors and still complete the
solution or dynamics run
1: treat any contingency error as fatal. If this option
is set to1, PSLF would flag a contingency as invalid
even if one of the contingency elements is invalid
DYNAMIC SIMULATION DATA RECORDS
dypar 0 Dynamics Parameters Record
delt Time step for numerical integration sec
omegao Base frequency radians per sec
time The present value of time interval of the sec
simulation
tpause Next pause time sec
rate_tol tolerance for stationary derivatives. If the
magnitude of the state is greater than 0.01, the
derivative is checked against the tolerance
multiplied by the magnitude of the state (i.e.
effectively the magnitude of the derivative is
checked relative to the magnitude of the state
itself). Thus if the magnitude of any given state is
greater than 0.01 but less than 1.0, that can cause
effective threshold to be lower.
tolfy Tolerance for network solution in dynamic per
unit simulation
accfy Acceleration factor for network solution in
dynamic simulation
faultr Fault resistance per unit
faultx Fault reactance per unit
fault_type Defines the type of fault, if the user wants the
program to calculate fault impedance (negative
and zero sequence) using the short circuit engine
for the following type of faults.
0 No fault (default)
1 single line to ground
2 line to line
3 three phase
4 line to line to ground
5 one phase open
6 two phase open
This option should only be used if the sequence
data is available and loaded into the program.
The effective fault impedance used by the
program will be the summation of faultr, faultx
and the fault impedance calculated by the
program.
faulton Fault status 0 = off, 1 = on, 2 = no change in load
representation during fault
time_unit Time units: 0 = seconds, 1 = cycles
nmodels Number of models
nplot Steps per plot
nprint Steps per print
nscreen Steps per screen display
nchan Number of output channels
itfymx Maximum number of iterations in network
solutions
abfync Flag to set criteria to terminate dynamic
simulation if the dynamic network solution does
not converge for atleast (abfynctime) consecutive
time. This flag should be set to 1 to enable this
criteria and 0 to disable this criteria
abfynctime Time associated with abfync flag
stoprun Flag to terminate the dynamic simulation. This
flag can be set to 1 by the user via user defined
model or in-run epcl to terminate the dynamic
simulation. This would be useful to develop user
defined criteria’s to terminate a dynamic
simulation.
conv_mon Set to 1 to display convergence monitor
cntl_brk
print_all_ch Set to nonzero to force print all channels
faultloc[32] Bus identifier of fault location
angle_ref_gen i Generator whose rotor angle is system reference
ref_angle Absolute rotor angle of reference generator
degrees
plotfile[300] Name of channel file currently in use
fault_from[32] From end of faulted line
fault_to[32] To end of faulted line
fault_ck[2] Circuit id of faulted line
fault_sec Faulted section number
fault_position Fault position - fraction of section length
t_fault_on Fault application time sec
t_from_clear From end clearance time sec
t_to_clear To end clearance time sec
fault_from_st From end circuit breaker status
fault_to_st To end circuit breaker status
lf_case_name[64] Name of load flow base case used in making this
simulation
iter current iteration number, needed by dynamic
models network mode
new_fact set to one to force a new matrix build/factorization
t_prev time at which previous network solution and rate
calcn was made
tfreq filter time constant for general network frequency
detector
order flag to request ordering before commencing run
fact flag to request factorizing of admittance matric
before commenc
cmi index of the model currently being executed, index
in the model structure array
prog_plotbus i internal bus no. of machine selected to display
while running
prog_tmax maximum running time for the progress plot bus
mode for epcmod only; the mode the model is running
in,
0=DYNM,1=ENTR,2=INT,3=SORC,4=ALGE,
5=RATE,6=STEP,7=OUTP
run_epcl[20] epcl program run automatically at each time step
comp_inrun 1=re-compile run_epcl at each time step, 0=do not
sw_flag switch flag for epcl's using i/dswtch function
fixup 1=set the fix up flag in INIT, 0 = do not fixup data
num_chan_head number of chan_head. Each model in service has
one chan_head
zload_flton 1=preserve load characteristics during fault,
0=convert load to constant impedance during fault
viol Number of violations
ctgcName[32] Contingency name
ctgcCat[8] Contingency category
ctgcSubcat[4] Contingency sub category
ctgcType[8] Contingency type
drpfixwind Flag to fix incorrect droop
drpfixsyn Flag to fix incorrect droop
mbasefix Flag to check dispatch vs. rating of the generator.
The rating would be updated if the generator
dispatch exceeds unit rating.
pumpcheck Flag to automatically disable dynamic models
which are not appropriate, when the generator is
operating in pumping mode.
usrdefcheck
autosortmodels 1 (default): PSLF would always auto sort dynamic
models internally to meet all the pre-requisite and
invoke models during the simulation in the order
which it seems best.
0: PSLF would not auto sort the dynamic model.
Models would be invoked based upon the order of
models in the EDDS table.
kvcmpldw Nominal voltage in kV for the buses added by
composite load model
errdupmodels Flag to specify how duplicate dynamic models are
to be treated during initialization
0 : report and continue
1 : report and abort the run
modini_erropt 1 : treat initialization errors as fatal errors
0 : treat initialization errors as non-fatal errors
dypar1 Dynamics Parameters Record
0
spdcheck Flag to activate generic relay to detect overspeed
or underspeed conditions for synchronous
generators and trip the generator under such
conditions
overspdpu Over speed threshold Pu
overspdtime Time for over speed condition check. If the speed sec
exceeds the over speed threshold for longer than
this time, the generator will be tripped.
underspdpu Under speed threshold pu
underspdtime Time for under speed condition check. If the sec
speed decreases below the under speed threshold
for longer than this time, the generator will be
tripped.
genooscheck Flag to activate generic relay to detect generator
out of step conditions for synchronous generators
and trip the generator under such conditions. The
out of step conditions is detected using
approximation by checking for difference in rotor
angle.
maxoosangle Out of step angle threshold degrees
maxsimruntimecr Flag to stop dynamic simulation if the simulation
time exceeds <maxsimruntime>
0 : disable this criteria
1 : enabled this criteria
maxsimruntime Maximum simulation time (per run). If sec
maxsimruntimecr option is enabled, PSLF would
terminate the dynamic simulation if the run time
exceeds maxsimruntime
genbc casepar[0].ngenbc Generator Initial Conditions Record
t_stamp Time stamp
vcomp Compensating voltage pu
efd Field voltage (**see Note A) pu
ladifd Field current (**see Note A) pu
vref Reference voltage (**see Note A) pu
vsig Signal voltage (from PSS) pu
speed Speed pu
angle Angle Deg.
pmech Mechanical power
pelec Sched or actual real power consumed at terminals
(pu)
pref Reference power (**see Note A)
psig (**see Note A)
elimv Exciter limit value (**see Note A)
elimt Exciter limit type (**see Note A)
glimv (**see Note A)
glimt (**see Note A)
kgen i Index of the generator (in the gens table)
modindex Index of the model (in the edds table)
vuel
voel
**Note A: For renewable power plant models, several variables in this table have meanings
different from traditional synchronous machines. Please refer to the interconnection diagrams
located in the installation directory: “upslfXX\samples\WTG generic models\Interconnection
diagrams” where the signals represented by vref, fref, pref, elimv, elimt, efd, ladifd, psig, glimv,
glimt are illustrated.
model dypar[0].nmodels Model Data Record
k i index of component to which this model is
attached or index into genbc record for generator
models
st model status; 1 = normal execution, 0 = non-
execution
bus i from bus of component to which this model is
attached
to i to bus of component to which this model is
attached
ck[2] 2 character circuit
id[2] 2 character identifier
sec section number
mod_lib_no i index into the model library data record
data not available in epcl
channel first channel used by this model
sigst[2] input-output status sockets for transfer of signals
sigval[2] input-output value sockets for transfer of signals
rec_level channel assignment level 0 = minimum, 9 =
maximum
achans number of active channels for this model
mon_i i monitor from bus
mon_j i monitor to bus
mon_ck[2] monitor circuit
mon_sec monitor section
mbase individual rotor mvabase (Mbaser) for machines
or turbine MW capacity (MWcap) for prime
movers
setpoint1
setpoint2
channel_head dypar[0].nchan Channel Heading Data Record
bus from bus external bus number
busname[12] from bus name
buskv from bus base kv
to to bus external bus number
toname[12] to bus name
tokv to bus base kv
id[2] channel id
ck[2] channel circuit id
sec channel section number
area channel area
zone channel zone
selno channel plot number
modelname[8] name of model which generated the channel
achans number of channels associated witha chan_head
type[4] channel type (spd,efd,vt etc)
cmin channel minimum
cmax channel maximum
modlib 240 Model Library Data Record
name[15] model name
type type of model g=generator, x=excitation etc...
params number of constant parameters for this model
states number of state variables for the model
vars number of algebraic variables for this model
netflag true if model uses mode NETW
netw casepar[0].nbus Network Bus Variables
va_old previous time step voltage angle
f per unit delta frequency (1-frequency)
shed per unit load shed at bus
SHORT CIRCUIT RECORDS
fltpar 0 Short circuit parameters
typereq Fault type 1=l-g, 2=l-l-g, 3=3 phase fault
ifault i Fault location
jopen Line open fault flag (0=no lines open, 1=open)
jend Line end fault flag (0=no line end, 1=Line end)
type Fault type
izeroflag 0 if 3Io to be shown 1 for Ia
i_flag Current annotation type
i_units Current annotation units
v_flag Voltage annotation type
v_units Voltage annotation units
monbus[10] i monitor buses
nutr0 local variables
nutr1 local variables
nutr2 local variables
vthev_r Thevenin voltage in pu (Real part)
vthev_i Thevenin voltage in pu (Imaginary part)
vthev_mag Thevenin voltage in pu (Magnitude)
zthev0_r Zero sequence Thevenin impedance in pu (Real
part)
zthev0_i Zero sequence Thevenin impedance in pu
(Imaginary part)
zthev1_r Positive sequence Thevenin impedance in pu
(Real part)
zthev1_i Positive sequence Thevenin impedance in pu
(Imaginary part)
zthev2_r Negative sequence Thevenin impedance in pu
(Real part)
zthev2_i Negative sequence Thevenin impedance in pu
(Imaginary part)
cfault_r Fault current in pu (Real part)
cfault_i Fault current in pu (Imaginary part)
cfault_mag Fault current in pu (Magnitude)
rfault Fault resistance in ohms
xfault Fault reactance in ohms
rgrnd Ground fault resistance in ohms
xgrnd Ground fault reactance in ohms
jfault i Internal number for the to bus of faulted line
line_out
line_end
br_endflg 1= report line end fault, 0 = no report
br_outflg 1= report line out fault, 0 = no report
secdd0 casepar[0].nbrsec Line Zero Sequence Data Record
t_stamp Time stamp
zsecr Line section resistance per unit
zsecx Line section resistance per unit
bsec Line section shunt admittance per unit
tran0 casepar[0].ntran Transformer Zero Sequence Data Record
t_stamp Time stamp
zpsr Resistance primary to secondary per unit
zpsx Reactance primary to secondary per unit
zptr Resistance primary to tertiary per unit
zptx Reactance primary to tertiary per unit
ztsr Resistance tertiary to secondary per unit
ztsx Reactance tertiary to secondary per unit
typep Primary winding type
types Secondary winding type
typet Tertiary winding type
zgpr Resistance primary neutral to ground per unit
zgpx Reactance primary neutral to ground per unit
zgsr Resistance secondary neutral to ground per unit
zgsx Reactance secondary neutral to ground per unit
zgtr Resistance tertiary neutral to ground per unit
zgtx Reactance tertiary neutral to ground per unit
seccp0 casepar[0].ncpl Line Zero Sequence Mutual Coupling Data Record
t_stamp Time stamp
i i First circuit from bus index
j i First circuit to bus index
nsecij First circuit section number
ckij[2] First circuit identifier
dija Distance from the "i" bus per unit
dijb Distance from the "j" bus per unit
k i Second circuit from bus index
l i Second circuit to bus index
nseckl Second circuit section number
ckkl[2] Second circuit identifier
dkla Distance from the "k" bus per unit
dklb Distance from the "l" bus per unit
grp Unused
zmr Mutual coupling resistance per unit
zmi Mutual coupling reactance per unit
ymr Mutual coupling conductance per unit
ymi Mutual coupling susceptance per unit
gensq casepar[0].ngen Generator Sequence Impedance Data Record
t_stamp Time stmap
z0[r] Zero sequence impedance real
z0[i] Zero sequence impedance imag
z1[r] Positive sequence impedance real
z1[i] Positive sequence impedance imag
z2[r] Negative sequence impedance real
z2[i] Negative sequence impedance imag
loadsq casepar[0].nload Load Sequence Impedance Data Record
t_stamp Time stmap
y0[r] Zero sequence impedance real
y0[i] Zero sequence impedance imag
y1[r] Positive sequence impedance real
y1[i] Positive sequence impedance imag
y2[r] Negative sequence impedance real
y2[i] Negative sequence impedance imag
shunt0 casepar[0].nshunt Fixed Shunt Zero Sequence Data Record
t_stamp Time stmap
g Shunt conductance per unit
b Shunt susceptance per unit
svd0 casepar[0].nsvd Controlled Shunt Zero Sequence Data Record
t_stamp Time stamp
g Actual shunt conductance per unit
b Actual shunt susceptance per unit
ONE-LINE DIAGRAM DATA RECORDS
One-Line Diagram Data Parameters Can No Longer be Accessed by EPCL
TRANSMISSION LINE CONSTANT RECORDS
line casepar[0].nline Line parameters
ifrom i from bus of line data
ito i to bus of line data
length length of this line section
ck[2] Two character circuit identifier
sec Section number
pole[8] Name of pole on which this line section is
mounted
ws[5] wire station
cond[5] conductor names
ampac[5] ampacity
ncb Number of conductors per bundle (1...4)
st status 1=in service; 0=out of service
stn Normal status 1=in service; 0=out of service
projid Project Identifier ( information only )
area e Area number
zone e Zone number
rating Line rating
impc impedance check 0=o.k, 1=pole error
2=cond error, 3=sing. matrix
r Line resistance (TLC output) per unit
x Line reactance (TLC output) per unit
b Total charging sequence (TLC output) per unit
r0 Line zero seq. resistance (TLC output) per unit
x0 Line zero seq. reactance (TLC output) per unit
b0 Total zero seq. charging sequence (TLC output)
per unit
aloss Loss assignment factor per unit
lid Long Identifier (up to 8 characters)
date_in In service date yymmdd
date_out Retirement date yymmdd
nown[8] Line owner up to 8 entries
pown[8] Line owner participation factor( 0-1 ) up to 8
entries
cond casepar[0].ncond Conductor parameters
name conductor name
gm diameter of the conductor in inches
rohm resistance of the conductor at 60Hz, 25degC
l1 resistance of the conductor at 60Hz, 75degC
c1 electrical geometric mean radius of cond in feet
ampacity[4] ampacities for four different ambient conditions
cable casepar[0].ncable Cable parameters
name[16] 8 character cable name
r1 real positive seq impedance in ohms/mile
x1 imag positive seq impedance in ohms/mile
r0 real zero seq impedance in ohms/mile
x0 imag zero seq impedance in ohms/mile
b1 positive seq charging susceptance in
microohms/mile
b0 zero seq charging susceptance in microohms/mile
rn real impedance of sheath to zero seq current
ohms/mile
xn imag impedance of sheath to zero seq current
ohms/mile
pole casepar[0].npole Pole Geometry parameters
name[16] pole name
x[10] coordinates of the wire station relative to the
center
y[10] line base of the pole in feet
resispar 0 Resistance parameters
freq Frequency Hz
rho Earth Resistivity (Ohm-mile)
ampf conductor resis flag, 1=%ampacity, 2=amps,
3=temp
ampg conductor resis value
temp grounded wire resis flag, 1=%ampacity, 2=amps,
3=temp
tempg grounded wire resis value
keep retain grounded wires, 1=yes, 0=no
ratpar 0 Rating parameters
maxcondtemp Maximum allowable conductor temp. in deg C
ambtemp Ambient temperature in deg C
windspeed Ambient wind speed in ft/sec
emiss Coefficient of emissivity
solabs Coefficient of solar absorbtion
elev Line elevation in feet above sea level
linedir Line direction: E-W <1>; N-S <0>
latitude Line latitude in degrees `
suntime Local sun time between 10am & 2pm
locatm Local atmosphere: industrial <1>; clear <0>
name[32] name up to 32 characters enclosed in double
quotes
MISCELLANEOUS RECORDS
winpar 0 Window Parameters
graph_x upper x coord of scan/olgr display windows
graph_y upper y coord of scan/olgr display windows
edpan_x upper x coord of edit and menu display windows
edpan_y upper y coord of edit and menu display windows
panel_font[100] 50 character font used for menus
edit_font[100] 50 character font used for edit tables
graphics_font(100] 50 character font used for olgr menus
manual_font[100] 50 character font used for help pages
backingstore if menu goes black sometimes, set this to 1
graph_height height of scan/olgr graphics display windows
graph_width width of scan/olgr graphics display windows
printpar 0 Printing Parameters
txopt1[50] text spooling command option 1
txopt2[50] text spooling command option 2
txflg flag indicating use option 1 or 2
text[50] text spooling command (qprt, lpr, etc...)
gropt1[50] graphics spooling command option 1
gropt2[50] graphics spooling command option 2 (portrait)
grflg flag indicating use option 1 or 2
graphics[50] graphics spooling command (qprt, lpr, etc...)
printer_type format 1=ibm4019, 2 = hplaser, 3 = postscript
PLTR_XMAX Maximum graphics x coordinate
PLTR_YMAX Maximum graphics y coordinate
pen_thck Printer pen thickness
graph_init[100] olgr, scan graphics initialization string
pscolorflag 1 if using a PostScript color printer, 0 if not
mailbox 0 Global Variables
number[500] 500 numbers global to all EPCL's
string[15][256] 15 strings with 256 characters global to all
EPCL's
spare 0 Spare Variables - saved in history files
number[500] 500 numbers
string[15][100] 15 strings
ret 0 EPCL return values
number[500] 500 numbers
string[500][100] 500 strings
dispar 0 Display Parameters
nlinesc number of lines displayed for reports
nlinepg number of lines printed for reports and edits
ncolpg number of columns printed for reports and edits
nlined number of lines displayed for edits
ncoled number of columns displayed for edits
fast fast mode flag for one-line diagram drawing
graflg graphics mode flag, graphics = 1, normal = 0
precision used in OLGR for accuracy of coord. data points
nameflag 1 if bus names to be used when read draw file
color_flag_mode color flagging mode
appendflg 0 open report to writing, 1 open report to append
edlogflg 0 no edit log, 1 write edit log, 2 append edit log
edlogfile[32] edit log file name
br_annote branch annotation flag
compcom[32] history file compression command; compress,
pkzip
uncompcom[32] history file uncompression command; uncompress,
pkunzip
editcom[52] edit command used for user note creation in
epcman
menusize 0 = small(original), 1 = large(version 9)
noprint 0 = print SOLN output to terminal, 1 = no
terminal output
scan_level =2 display up to 2 buses away,=1 display 1 buses
away
browserfile[100] internet browser path filename
overload_dir overload direction: from = 0, from + to = 1
default is 1
jmp_msg 1 = display messages about jumpered loop if any,
0 = do not display messages about jumpered loop.
The jumpered loop messages are typically
displayed when calculating flows and are useful to
identify jumpered loops where flows could not be
accurately calculated.
objstrkey Determines how PSLF objects are displayed in
output messages from RAS and contingency
objects.
0 primary key based upon bus number and device
id
1 secondary key based upon bus name and kv and
device id
2 tertiary key based upon long id/ems labels
selbeg 5 Selector beginning numbers
extnum e External bus number
busid[32] Bus number name kv
arnum e Area Number
arid[32] Area name
zonum e Zone number
zonid[32] Zone name
kv Bus base voltage
selend 5 Selector ending numbers
extnum e External bus number
busid[32] Bus number name kv
arnum e Area Number
arid[32] Area name
zonum e Zone number
zonid[32] Zone name
kv Bus base voltage
filepar 0 List of program filenames
getf[100] Filename of save case (filename.sav)
epcl[100] Filename of epcl case (filename.p)
olgr[100] Filename of drawing file (filename.drw)
plot[100] Filename of channel file (filename.chf)
report[100] Filename of report file (filename.out)
dyreport[100] Filename of dynamics report file (filename.rep)
rdyd[100] Filename of dynamics input data file
(filename.dyd)
econ[100] Filename of economics dispatch files
(.ede,.edi,.edp)
confile[100] Filename of conductor properties (.con)
cablefile[100] Filename of cable properties (.cab)
polefile[100] Filename of pole geometry (.pol)
current 0 Directory Parameters
directory[100] the current working directory
file_path 100 File Selection Search Paths
pick[8] command name
path[100] directory search path
geterm 0 PSLF Terminal Window Parameters
use_flag 1 = Use the GE Terminal win,
0 = Use the UNIX or DOS win
output_flg 0 = to turn off output to either GE, UNIX or DOS
win
font[100] Font for Terminal Window
x x upper left corner, -1 = automatic placement
y y upper left corner, -1 = automatic placement
ncol columns (width) of terminal window
nline lines (height) of terminal window
outfile[100] file used for Print (1 page) Button ("print" =
hardcopy)
save_line lines saved for Page UP and Page DOWN Buttons
logfile[100] File used to save ENTIRE output of session
select 0 Selective Edit Parameters Flag
edit
sel_editbeg 5 Selective edit beginning numbers
arnum area number
zonum zone number
sel_editend 5 Selective edit ending numbers
arnum area number
zonum zone number
sel_tabr 0 Sorting in the TABR function
tr_sortfb Trate: Sort by %Rate forward(1) or backward(0)
fl_from Flow: From-to(0) or to-From(1) or Both(2)\
fl_sortby Flow: Sort by P(0), Q(1), %Rate(2), MVA(3),
Amp(4), Ploss(5), Qloss(6)
fl_sortfb Flow: Sort forward(1) or backward(0)
mm_sortby Mism: Sort by Pmis(0), Qmis(1), or Both(2)
mm_sortf; Mism: Sort forward(1) or backward(0)
Chapter 1
User’s Reference Manual and Setup
1.1 Introduction to PSLF
The GE Positive Sequence Load Flow (PSLF) software suite is a package of programs for studying power system
transmission networks and equipment performance in both the steady-state and dynamic environments.
Effective system performance analysis requires large-scale simulations with large volumes of data. Effective data tools
are just as important as the engineering models in which the data is used. GE Energy’s programs recognize these
imperatives. They can handle system models of up to either 60,000 or 80,000 buses and are structured as relational
databases. GE system modeling is detailed and comprehensive, and all data is accessible under relational principles at all
times.
Engineering studies require intense and intimate dialog with the computer in the setup phase, unattended programmed
number-crunching to produce a base of physical results, and flexible post-processing to distill and focus raw results.
GE’s user interfaces provide these modes and allows the user to switch smoothly between them.
1.2 PSLF Activities
The GE Positive Sequence Load Flow (PSLF) program is a large-scale power system simulation package, which includes
the following main activities:
· Menu and Command Selector
· Main Load Flow Program and Working Case Maintenance Commands (PSLF)
· Graphics Subsystem (OLGR)
· Short-Circuit Subsystem (SCSC)
· Dynamics Subsystem (PSDS)
· Dynamic Results Viewer (PLOT)
· Control Language Processor (EPCL)
· Linearized Network Analysis Subsystem (LINA)
· Economic Dispatch Subsystem (ECON)
PSLF program is available in 60,000 or 80,000 bus version in addition to an educational 10 bus and a 50 bus version.
Consult GE if a special version is needed.
1.3 PSLF Maximum Capacities
The standard maximum capacities of the GE PSLF suite in terms of system components are summarized in the table
below.
Table 1: Standard GE PSLF Maximum Capacities
Maximum Maximum Maximum
Load Flow Network Components
Number Number Number
Buses 10/50 60,000 125,000
Multi-Section Branches 75 90,000 150,000
Transformers 30 30,000 50,000
Generators 20 30,000 40,000
Generator Reactive Capability Curves 1000 1,000 1,000
Motors (Currently Not Used) 200 200 200
Loads 15 40,000 75,000
Fixed Shunts 20 50,000 80,000
Switched Shunts or Static VAr Devices 5 10,000 20,000
Gate-Controlled Devices (Currently Not Used) 50 50 50
HVDC Buses 4 200 200
HVDC Lines 4 100 100
HVDC Converters 2 200 200
Areas 1,000 5,000 10,000
Zones 1,000 5,000 10,000
Owners 2,000 2,000 2,000
Interfaces 5 1,000 1,000
Branches Associated With Interfaces 50 5,000 5,000
Transaction Tables 20 1,000 1,000
Transformer Impedance Tables 50 100 125
Transmission Line Configurations 10 150 200
Maximum Maximum
Short-Circuit Network Components
Number Number
Buses 10/50 60,000 125,000
Multi-Section Branches 75 90,000 150,000
Transformers 30 30,000 50,000
Mutual Coupling Data 40 5,000 6,500
Generators 20 30,000 40,000
Loads 15 40,000 75,000
Fixed Shunts 20 50,000 80,000
Switched Shunts or Static VAr Devices 5 10,000 20,000
Maximum Maximum Maximum
Dynamic Simulation Components
Number Number Number
Total Dynamic Models in *.dyd File 600 40,000 50,000
Dynamic Generator Models 500 30,000 40,000
Total Number of Any Single Model 300 20,000 26,000
User Written Model Tables 49 49 49
Maximum Maximum Maximum
EPCL Components
Number Number Number
Program Length 12,000 Lines 12,000 Lines 12,000 Lines
Line Length 255 Characters 255 Characters 255 Characters
Input File Line Length 255 Characters 255 Characters 255 Characters
Variable Identifier Length (@, $, #, *) 15 Characters 15 Characters 15 Characters
Number of define Statements 10 Statements 10 Statements 10 Statements
Number of Real Number Variables (@) 800 Variables 800 Variables 800 Variables
Number of Real Number Arrays (#) 70 Arrays 70 Arrays 70 Arrays
Number of String Variables ($) 200 Variables 200 Variables 200 Variables
Number of String Arrays (*) 75 Arrays 75 Arrays 75 Arrays
Number of Labels and/or Subroutines 50 50 50
Nested for Loops 100 Levels Deep 100 Levels Deep 100 Levels Deep
Nested subroutine Calls 50 Levels Deep 50 Levels Deep 50 Levels Deep
Number of Input / Output Files 20 Files 20 Files 20 Files
Number of pass Variables For Drawings 200 Variables 200 Variables 200 Variables
Maximum Maximum Maximum
One-Line Diagram Components
Number Number Number
Limited By Page Limited By Page Limited By Page
Buses
Size Size Size
Limited By Page Limited By Page Limited By Page
Branches / Transformers
Size Size Size
Limited By Page Limited By Page Limited By Page
Bus Connected Elements
Size Size Size
Limited By Page Limited By Page Limited By Page
Lines
Size Size Size
Limited By Page Limited By Page Limited By Page
Shapes
Size Size Size
Limited By Page Limited By Page Limited By Page
Text
Size Size Size
Number of Pass Variables For Drawings 200 Variables 200 Variables 200 Variables
1.4 Running the PSLF Program Interactively
The PSLF installer places the PSLF program on the Start menu and it also creates and places icons as shortcuts for PSLF
and PLOT on the user’s desktop.
METHOD 1:
The first method allows the user to access the PSLF program from the Start button on the Windows Taskbar. The user
can select:
Start > Programs > Concorda PSLF > PSLFXX
where XX is the latest major version of PSLF installed on the computer.
This method will automatically start the PSLF program with the working directory pointing to the MyPSLF folder located
under the installation directory upslfxx.
METHOD 2:
The user can also execute the PSLF program by clicking on the shortcut placed on the desktop by the installer. Again the
shortcut has the working directory pointing to the MyPSLF folder as mentioned above. The user can however edit the
shortcut to set the working directory of one’s choice. To do so the user does a right click on the icon, selects properties
and edits the “Start in” text box.
The user can also create “JOB SPECIFIC” PSLF application shortcut icons as demonstrated below.
STEP 1: In Windows Explorer – Go to the PSLF Installation Directory (e.g. C:\upslfxx)
STEP 2: In Windows Explorer – Right Mouse Click on the PSLF.BAT File and Select “Create Shortcut”
STEP 3: In Windows Explorer – Right Mouse Click on the SHORTCUT TO PSLF.BAT File and Select “Cut”
STEP 4: On The Desktop – Right Mouse Click on the Desktop and Select “Paste”
STEP 5: On The Desktop – Right Mouse Click on the SHORTCUT TO PSLF.BAT File and Select “Properties”
STEP 6: Modifications to “Properties” Shortcut Tab
STEP 7: Modifications to “Properties” General Tab
1.5 Definition & Initialization Files for the PSLF Program
The operation of PSLF is controlled by setup and configuration files provided with the PSLF installation package and are
normally kept in the C:\upslfxx directory (where xx is the PSLF version the user is currently using). The installation
directory is not mandatory, although for most files it is recommended. If the user does not wish to use the installation
directory for the location of these files, there are several options. The program searches for its startup files in the
following order:
· WORKING DIRECTORY
The current directory from which PSLF is started
Set by changing the properties of the PSLF icon (Start In)
· HOME DIRECTORY
The user’s home directory, indicated by the home environment variable
Can be set in AUTOEXEC.BAT, PSLF.BAT or WINDOWS/NT configuration
· THE PSLF INITIALIZATION DIRECTORY
Defaulted by the program (C:\upslfxx)
Can be set in AUTOEXEC.BAT, PSLF.BAT or WINDOWS/NT configuration
PSLF will select the FIRST occurrence of the file.
The javaini.p file in installation directory may be copied to the user's working or home directory and can be edited to
change the default parameters.
The parameters saved in javaini.p.are used as default values when PSLF starts up. Unless the user saves modified
parameters (as described under the PARM section of the manual), those are discarded.
1.5.3 Font-Color File
File: font-color
Function: Defines User’s PSLF Viewing Preferences
The font-color file will store the latest viewing preferences setup by the user. These include:
Message Window Settings
Font Sizes
1.5.5 Voltage Levels Color File
File: vlv.color
Function: Defines Voltage Level Colors
OLGR uses vlv.color to define the colors associated with the pslf.vlv file numbers 0 - 15:
This file is created when the user changes the default settings in the parameters, vlv section
1.5.6 Editor Control Files
Edit tables are specified by Edit Definition Files in the directories listed below. One Edit Definition File is used for each
Edit Table. We will discuss these Edit Definition Files in Sections 4 and 6 of these notes.
1. C:\UPSLFXX\EPSLF\
· Defines the Load Flow Edit Tables (EDIT) and Table Results (TABR)
2. C:\UPSLFXX\ESCSC\
· Defines the Short-Circuit Edit Tables (SCSC)
3. C:\UPSLFXX\EPSDS\
· Defines the Dynamics Edit Tables (EDDS)
Similar to javaini.p, when modifying Edit Tables, these folders and files should be copied to the user’s working or home
directory before any changes are made. As a rule of thumb, the user should never modify the folders in the C:\upslfxx
directory. The user should completely review Edit Tables of the PSLF Manual before modifying these files.
File: epslf/* escsc/* epsds/*
Function: Defines Edit Table Setup
Edit tables are specified by Edit Definition files in the directories listed above. One edit definition file is used for each
edit table.
An edit table is specified by identifying its columns; each record of an edit definition file describes one column of the
corresponding edit table.
CAUTION: DO NOT USE A DASH TO START A COLUMN NAME
The key features of an edit table are shown by Figure 1.1.
Figure 1.1
Definition of PSLF Edit Table
The edit definition file contains one record per column as follows:
<record> <member> <flag> <scale factor> <column> <heading> <format> <arec1> <amem1> ...
<amemk> /<def> <min> <max>
<record> Name of the PSLF Data Record from which this column is taken.
<member> Name of the Record Member shown in this column.
<member> may be an unsubscripted member identifier, such as st, or a
subscripted identifier such as rate[1].
See Table 5.2 for Record Member Names
<flag> A 3 character string specifying the form of the entity to be displayed.
The first character of <flag> may be:
m
<member> is an ordinary member; it is both written to and read from the
display
M
<member> is an ordinary member; it is written to but NOT read from the
display
n
<member> is a bus number; displays the complete bus identifier consisting of
<external number> in current column
<name> in the next column
<basekv> in the next column
<member> is both written to a display and read from the display
N
<member> is the same as type n, except <member> is NOT read from the
display
d
<member> is a date; displays the complete date in the form
<day> in current column
<month> in the next column
<year> in the next column
<member> is both written to a display and read from the display
D
<member> is the same as type d, except <member> is NOT read from the
display
The second character of <flag> may be:
p
All of the above rules for <member> still hold but <member> is protected
and cannot be changed
f
Freeze the edit table display ending with this column. The edit table will
always display the columns up until this column, even when tabbed to the right.
Note that if a freeze is chosen, the right click context menu and column
highlight will not work. One may choose to freeze at a certain column from the
individual table’s Options menu.
<scale factor> The <scale factor> is applied to an ordinary member if its value is other
than * or unity. The displayed quantity is the <member> times the <scale
factor> and the value stored in the <member> (if flag is m) is the displayed
value divided by <scale factor>. A <scale factor> can be applied
only to ordinary <member> of type f, i, or l.
<column> The column number at the left-hand edge of this column
<heading> The character string, of 32 characters or less, to be used for this column. There
should be no blanks in the string.
<format> A format specifier string stating the format in which this column is to be
displayed. <format> may be %whd display a type i column, w columns
wide
%wd
Display a type l column, w columns wide
%w.nf
Display a type f column, w columns wide, with n digits to the right of the
decimal point
%w.nfu
Display a type f column w columns wide, with a value-dependent number of
digits to right of decimal point. Do not reserve first column for sign
%w.nfs
Same as %w.nfu, but do reserve first column for sign
%-w.ws
Display character column, w characters wide, left justified
%w.ws
Same as for %-w.ws but right justified
<arec i> The name of a record that is to be associated with this column of the table.
<amem> The name of the member of the associated record that defines the type of the
association. <amem> may be
- An actual member name (unsubscripted)
-*
-#
Each type of <amem> entry defines a different type of association. In each case
the association is made between the k-th record of the associated record table
and the i-th record of the displayed table, where the cursor is in row i of the
displayed table.
i When <amem> is a member name the associated record is the record in which
the value of the associated member is equal to the value of the member at which
the cursor is located in the displayed table:
<arec>[k].<amem> = <record>[i].<member>
ii When <amem> is a member name preceded by a ! the associated record is the
record in which the value of the associated member, when mapped to an
external bus number, is equal to the value of the member at which the cursor is
located in the displayed table:
busd[<arec>[k].<amem>].extnum = <record>[i].member
iii When <amem> is *, the associated record is that whose position in the
associated record table is the same as the position of the record containing the
cursor in the displayed table
k = I
iv When <amem> is #, the associated record is that whose position in the
associated record table is given by the value of the member at which the cursor
is located in the displayed table
k = <record>[i].<member>
<def> This is the default data value for this member. If present, it must be preceded
by the slash with no space separating the value from the slash. The edit
commands use this value for it's "fill with defaults" option.
<min> This is the minimum allowable data value for this member. If present, it must
be preceded by the <def> value. The edit and record edit commands will
display any data that is under this minimum in yellow.
<max> This is the maximum allowable data value for this member. If present, it must
be preceded by the <min> value. The edit and record edit commands will
display any data that is over this maximum in red.
Note: The actual column width varies with the width of the character string used for the column header and the formatting
set up.
1.6 Setting Up The Working Directory
The following is an optional, but recommended way to setup the user’s working directory. It allows the user to organize
their study in a structured manner.
1. CASES FOLDER
· *.sav – PSLF Loadflow File (Binary Format)
· *.epc – PSLF Loadflow File (ASCII Format)
2. DRAWS FOLDER
· *.drw – PSLF One-Line Diagram File (ASCII Format)
3. DYDS FOLDER
· *.dyd – PSLF Dynamics Model Data (ASCII Format)
4. EPCLS
· *.p – Store Directly Under Working Directory
Chapter 2
Basic Concepts
2.1 Working Case and Power Flow Files
The basic structure of PSLF is shown in Figure 2.1.1. The key part of the program is a WORKING CASE. The working
case is a model of the electric power system, contained in the working memory of the program. All operations of the
program are performed on the working case and, with few exceptions; most functions will not work without a valid
working case loaded.
The working case consists of tables of data. Buses are represented by their numbers, names, and base voltages.
Transmission line sections are represented by the numbers of their "from" and "to" buses, as well as their impedances.
Loads, generators, shunts, and transformers are similarly represented in the working case by one or more bus numbers
stating their locations, and by their various electrical and rating parameters.
Each table can be viewed as a table of a relational database that can be displayed on the screen, manipulated with the data
editor of PSLF, added to, and listed. The principal Edit Tables of PSLF are:
Table: Relevant Data:
Busd Bus Number, Name, Base kV
Secdd Transmission Line Section Connections, Impedances, Length,
Circuit Identifier, and Rating Data
Line Transmission Line Section Connections, Conductors, Wire
Station and Pole Data
Tran Transformer Connections, Impedances, and Rating Data
Tap Transformer Tap and Control
Gens Generator Identity, Loading, Impedances, and Rating Data
Qtab Generator Reactive Capability Curve Data
Motr Not Currently Used (Future Development of Motor Models)
Load Load Identity and Consumption Data
Shunt Shunt Reactor/Capacitor Identity, Susceptance and Rating
Data
Svd Switched Shunt and Static VAr Device Data
Gcd Not Currently Used (Future Development of FACTs Models)
Dcb HVDC Bus Data
Dcl HVDC Line Data
Dcc HVDC Converter Data
Area Area Interchange Control Data
Zone Zone Interchange Control Data
Owner Owner Data
Iface Interface / Path Definition and Rating Data
Bface Branch Interface Association Data
Trans Transaction Data
Tztab Transformer Impedance Variation Data
Figure 2.1.1
Basic Structure of PSLF
The working case is seen, changed, and controlled through these tables.
The working case is volatile and its contents are repeatedly overwritten by PSLF. For example, making a change in a table
with the PSLF edit command or solving a load flow with the PSLF soln command changes the working case. Each time an
action is taken that changes the working case, its prior contents are lost; however, a "copy" of the working case can be
made at any time and placed in a PSLF POWER FLOW FILE. A power flow file can be read into the working case to
restore it to the exact condition that it had when it was saved. The working case is lost when one exits PSLF.
Power flow files are stored permanently in the computer's file system. They are secure within the limitations of the
computers file security system.
In normal operation, engineers using PSLF will have their own file directory on the system and will keep their own private
library of power flow files in that directory. The normal procedure in starting a session with PSLF will be to start up the
program and immediately retrieve an appropriate power flow file into the working case. They will then manipulate the
working case as required to produce their load flow solutions, and will save new power flow history files, or update
existing power flow history files, from time to time during their PSLF session. When a power flow file is saved the entire
contents of the working case are copied into it. When a power flow file is saved by writing to a file that exists, whether
that file is a previously saved power flow history file or some other file, the old contents of the file are overwritten with the
contents of the working case, and the file is truncated. Saving a power flow file should, therefore, be done with some care.
A planned naming system for power flow files is very useful.
As with all data editing systems, users should establish their own routine practice for saving their work in a secure file from
time to time. In PSLF, saving power flow files does this. Each power flow file occupies a significant amount of memory,
and thus one should be cognizant of the memory usage. It is usually advisable to keep a few "personal" semi-permanent
power flow files for temporary secure storage, and to copy these semi-permanent files into systematically named and stored
"permanently secure" power flow files as they are checked out and established as reference material.
2.2 PSLF Commands
PSLF is a small self-contained "operating system" that runs a number of engineering functions called commands in the
JAVA environment. When started up, PSLF establishes space for itself and its working case and then waits for the user to
give it a command. PSLF executes commands in the order that it receives them. Each command instructs PSLF to perform
an operation on the working case. The operation may be quick and simple, as in the case of editing operations, or may be a
complex and time consuming computation as in the case of many load flow solution operations. The commands recognized
by PSLF are described in detail in Chapter 4 of this manual.
If the working case represents a valuable collection of power system data before a PSLF command is given, and if that
command has the potential to "damage" the working case, a power flow file should be saved before the potentially
damaging command is given.
2.3 Importing Data, External Data Files
Load flow working cases are normally established in power system planning work by importing data from a file made by
some "external source". The external source is likely to be another load flow program, either within the PSLF user's
organization if they are transferring data from an older computer/program combination, in a power pool or a neighboring
power company.
PSLF can import data into its working case from the following formats:
· The EPC load flow format (PSLF ASCII Based)
· The raw data file format of the Siemens PTI PSS/E load flow program
· The card deck format of the BPA/WSCC/WECC load flow program
Importing a data file normally resets the contents of the working case to "empty" tables and then uses the data in the file to
build up a new set of working tables. The records of the PSLF tables do not correspond exactly to the records of any of
the above files. The importing process therefore creates new records in PSLF tables as required to accommodate the data
that it finds in the file, and places that data into these records. All of the above files contain a record for each bus, and
PSLF creates one bus table record for each bus record that it finds in the file. For all other types of power system element,
the types and number of records created by PSLF depend on the detail that the imported file offers.
When a PSLF importing command has been completed the working case contains the power system model data given by
the external data file. This data can then be examined, changed, or printed by the PSLF data editor, and can be saved in a
PSLF power flow history file by the PSLF savf command.
EPCLs, (see Chapter 5) can also be created by the user to import any documented/known format to import into PSLF. The
user should take care in knowing how the data is used to ensure proper conversions are made with the EPCL.
2.4 Exporting Data
PSLF can transmit data to external places by "exporting" a data file in one of the formats noted in Section 2.3. The export
process builds up records in the chosen export format to take the data contained in the PSLF working case tables.
When exporting data in one of the file formats noted in Section 2.3, PSLF must make assumptions in order to compress its
own very detailed power system model into the less detailed form of model recognized by the data file format. For
example, because the PTI PSS/E RAW format does not recognize multi-section transmission lines, PSLF must make an
assumption each time it is required to export data on such a line in that format. The assumptions used in each of these cases
are stated in the reference sections on the export commands.
Because PSLF does not remember the source from which its working case was obtained, and because the user is not
restricted in adding to or modifying the working case, it cannot be guaranteed that a data file created by an export
command will correspond exactly to an original data file from which data was imported. If the export is made without any
data modifying actions having been taken, the great majority of the data will be re-exported in the same form as received.
Such an unaltered "round trip" in the PTI PSS/E RAW format should be an infrequent occurrence however, since it implies
that the full modeling capabilities of PSLF have not been used.
EPCLs, (see Chapter 5) can also be created by the user to export to any documented/known format from PSLF. The user
should take care in knowing how the data is used to ensure proper conversions are made with the EPCL.
2.5 Equipment Based Model Organization
PSLF handles each item of power system equipment as an individual entity. It recognizes
· Buses
· Transmission Lines
· Two Winding Transformers
· Three Winding Transformers
· Generators
· Loads
· Shunts
· Controlled VAr Devices
· Power Electronic Devices
· DC Buses
· DC Lines
· DC Converters
Unlike most other load flow programs, load, generation, and shunt elements are treated by PSLF, not as attributes of buses
or branches, but as self-contained entities. Each load, for example, is described by its own data record, and has its own
identifier. Each load has, as an item in its data record, the identifier of the bus at which it is connected. The load is
"connected" to the bus by this identifier, and can be moved from one bus to another by changing this bus identifier.
(Moving a bus would occur, for example, in a substation where transfer switches and/or a transfer bus allow a load to be
connected on one side or the other of an open bus-tie switch).
It is entirely legitimate in PSLF for more than one load to be connected at a single bus. This requires only that two or more
records in the load data table contain the same bus identifier. Output reports from PSLF will show the individual loads as
separate entities. It is advisable, of course, to give distinct identifiers to loads that can be connected to the same bus. The
same principles apply to generators, shunts, lines, and transformers. The termination of a line can be moved from one bus
in a substation (or from one substation to another), for example, by changing the "from" or "to" bus identifier in its data
record with an edit operation in the line data table.
Each line, transformer, generator, load, and shunt has a status flag in its data record and may be switched in or out of
service by changing this flag.
In normal operation of PSLF, many of the changes in the system model are outages of system components and these
changes are made by changing status flags. In the great majority of PSLF sessions, the working case will be "loaded" by
retrieving a power flow file with the getf command, statuses and variable values such as generator powers will be changed
to set up the desired system conditions, solutions will be made, and new power flow files will be saved with the savf
command. It is rarely necessary to make changes to a system model by changing and re-importing an external data file.
Each main menu entry identifies a major PSLF command by a 4 letter command word and a brief description will be
displayed when the mouse is stopped within a box for a few seconds.
The targets and functions associated with the main menu are:
Target Key Function
Manual F1 Help
Move Up Up arrow Cursor Up
Move Down Down arrow Cursor Down
Move Left Left arrow Cursor Left
Move Right Right arrow Cursor Right
Far Left Home Cursor Home
Far Right End Cursor End
Invoke Command Enter Enter/Invoke
Cancel Command Esc Exit/Cancel
One entry of the menu is always selected and is highlighted to show that it is selected. You can move to a different
selected entry by successive hits of arrow keys or mouse clicks.
You can invoke a command in three ways:
1. Move the highlighted command with the Up, Down, Left, Right, Home, or End key then click the CR target or hit
the CR key.
or
2. Left Mouse click the desired command word to invoke it simultaneously.
or
3. Use the drop down menus with the mouse to select the desired command and invoke it immediately
Note that you should not attempt to move the highlight to a menu entry by moving the mouse cursor to it and clicking it
unless you want to invoke it immediately. To move the highlight to an entry but not invoke it, you must use the Up Arrow,
Down Arrow, Left Arrow, or Right Arrow keys.
2.6.2 Selecting From Menus
The rules outlined above are general; they apply to all menus. Every menu allows you to either do actions, such as invoke
commands or perform operations, or use things, use a file as a source of or destination for data, for example.
Following the rules outlined above, you can do either of the following:
· To do or use the action identified by a menu entry immediately - click it directly
· To select a menu entry but not do or use the action identified by it - move the highlight with Up Arrow, Down
Arrow, Left Arrow, or Right Arrow steps.
From here on in this manual we refer to the former process by "click the menu entry" and the second process by "select the
menu entry". To "click" the menu entry means to position the mouse cursor on it and hit either the left mouse button or the
CR key. To "select" the menu entry means to move the highlight to it (by keystrokes or clicks of targets at the bottom of
the menu) but to not click that menu entry.
2.6.3 Getting Help
There is a help screen associated with each command in every command menu. You can get this help screen for a
command by selecting the command and then clicking the F1 key. A typical help screen looks like this:
The material may be more than one screen long; you can move back and forth through it with the scroll bar at the right or
the Arrow Up and Arrow Down keys.
2.6.4 Executing a Command
You execute a command by clicking its menu entry. A command may display a sub-menu, an argument panel, or a select
panel depending on the information that it needs to perform its operation. A typical submenu is shown below. Edit needs
to know which table to work on; the menu entries are the names of the data tables. Note that the sub-menu has its own
array of function targets. These are active as well as the underlying main menu targets are inactive while the sub-menu is
displayed.
Clicking a table name directs the edit command to edit that table and clicking ESC returns you to the main memory.
Clicking on the lower right entry in this case edit will cause the sub-menu to disappear.
2.6.5 Text Entry Boxes
PSLF often needs to prompt you for a response. For example, in the command below a series of bus numbers are
requested.. These needs are handled by Text boxes that look similar to this:
A Text box is always the active window when it is displayed; no other action can be taken until a target in that box has
been clicked.
2.6.6 Selection Panels
Several important commands operate on files, require the name of the source or target file, and cannot function if the file
cannot be opened or created. Most of these commands start out by displaying a Select panel, as shown here for the getf
command.
The main directory used to select the files from is listed at the bottom left next to Start At: The directories one level under
the main directory (sub-directories) are listed as folders. The entry listed as " " is one level above the main directory.
Each select panel looks for and lists files with the suffix associated with its command; for example Select from getf and
savf looks for ".sav" while Select associated with rdyd and wdyd looks for ".dyd". You may change the suffix by clicking
on the box containing FileName and typing something new. For instance, if you want to see all of the files in the directory,
click on the FileName, then type "*.*" and click CR. The list of files will reflect that change.
A file or directory is selected by clicking its menu entry. If a directory is selected, the select panel is redisplayed with the
files found matching the suffix. If a file is selected, it exists, and the user has the required access permission, the file is
opened, used by the command, and closed. You can also hit the Arrow Down or Arrow Up keys down the list to select a
file.
This use of a Text Entry box is the way you specify the name of a new file that is to be created, a file whose suffix does
not match the standard suffix for the command, or a file in a different directory. To select a file in a different directory by
this method, type the full path name of the file in the Text Entry box. When saving .sav cases, the .sav extension must be
entered in the filename. The program does not automatically add the .sav extension.
Commands that write to files follow a successful selection with a Yes or No confirming that you want to write the selected
file. If the file exists the box indicates that there is a previous version do you want to replace it and a Yes or No is required.
The current working folder is displayed on the top of the panel. All other commands are left to use the current working
folder (identified by a dot), which is the default.
The user may change the paths by either typing in or by clicking on a specific button to choose a folder for that command.
A user entry will be checked to see if the folder exists and the user warned otherwise.
File paths can be present each time pslf is started up by including entries of the form:
@i = set_paths(<command>,<path>)
in the path parameters section of the javaini.p file (see the parm command description in the Commands section).
For example, the entries in the panel above could be preset by putting these records in javaini.p
@i = set_paths("epcl", "c:\javapslf\upslfxx\samples")
@i = set_paths("getf", "c:\home2")
@i = set_paths("rdyd", "c:\home2")
The file path that will be used with a command that uses files is displayed at the top of the file in the Look In: field within
the Open File dialog as shown below. The files listed in the selection panel are those in the directory specified by the path
and having the suffix that is pertinent to the command being executed. You can direct the select panel to a different
directory clicking on the pull down arrow and selecting the directory of your choice.
2.6.8 Specifying Report Destinations
The next example below shows the common case where the destination for a report is to be specified. You can type a file
name at the File prompt to send the report to a file for future disposition, or type "print" at the Printer prompt to print the
report immediately. Leaving both options blank sends the report to the display.
When the Send to file box is checked and the Append line is not selected, the file is opened or created for writing and the
report is written over the prior contents of the file. If the Append box is checked, the file is opened for appending and the
report is added on to the end of the contents of the file.
When Send To Printer box is checked, all output is sent directly to the printer.
This argument panel always appears with the Selective Output option specified by the Selective Output flag. If the
Selective Output option is not selected, the report will be produced for the full system or the reporting command will ask
questions about the output to be produced. If the Selective Output line is selected, the File:parm:select panel will appear
immediately after the Report argument panel.
You can then accept the present output selections by just clicking OK or you can modify your selection and then click OK
to proceed.
Clicking ESC cancels the Argument Panel, returns you to the menu that presented the panel, and causes the entries in the
panel not to be accepted.
2.6.9.1 Selective Reporting
Most of the standard reports produced by PSLF may be made either for the entire working case or for a subsystem of the
working case. The subsystem is specified by a set of areas, zones, base voltages, and bus numbers. PSLF examines these
each time it prepares to report on an individual bus, area, or system component and includes it in the report only if it is
meaningful with respect to the specified set. Note that a report may respect all or only some of the selection sets. For
example, if selective reporting is specified by:
· areas 3 thru 6
· base voltages of .48 thru 500,
then:
· the outt command would show output only for buses in areas 3, 4, 5 and 6 and only for buses
at voltages from 230 to 345 kV. No report entry would appear for a 138 kV bus in area 4 or
for a 230 kV bus in area 7
· the area command would show area totals for areas 3, 4, 5 and 6 only, without regard to bus
voltages.
To set up a selection, you would fill out the Selection Parameters panel using the most convenient area identifiers, in this
case, the area numbers.
For information on using this option in EPCL read SELE.
When you enter the panel contents by hitting OK button the area and bus identifiers are expanded to their complete
<number> <name> (<base voltage>) form in case you revisit the panel.
You can set up a selection specification in advance of using reporting commands by using the Selection Parameters panel
through the File:parm:select command sequence.
Checking the select flag in either the parm.select panel or the Get Report Destination panel turns on selective reporting. If
selective reporting is turned on, the Selection Parameters panel follows the Get Report Destination panel immediately so
that you can check your selection and change it if necessary. If you don't want to change it, just hit <CR> or <delete> to
proceed; if you want to change it type new entries then hit <CR>.
If entries of the Select Parameters panel are left blank for any one of the four sets (bus number, base voltage, area, zone),
that set is ignored in the sense that all system components are taken to be within it.
The following PSLF reporting commands use the selection panel:
Uses Area, Bus, KV, and Zone selections
OUTT EEPC TITL
OUTX DIFS RVOLT
WDYP RATE WDYD
Uses Area and Zone only
LOSS
Uses Area Only
RAREA
RTIEA
Uses Zone only
RZONE
RTIEZ
2.6.9.2 Selective Edit
Most of the edit tables produced by PSLF may be made either for the entire working case or for a subsystem of the
working case. The subsystem is specified by a set of areas and zones. PSLF examines these each time it prepares to
display an edit table. It includes a record in the table if it is meaningful with respect to the specified set.
To set up a selection, you would fill out the Selection Edit Parameters panel through the edit:sel command sequence.
For information on using this option in EPCL read SELE.
2.6.10 Window Management
PSLF uses two windows, the startup (or the DOS) window where the program starts up and the main panel for its menus.
It opens additional windows or dialogs at various times as needed.
The "DOS" window from which PSLF was started can be minimized immediately. The main panel contains the main
menu, message area, and button selection is used as the destination for text reports that are written to the display. This
PSLF panel can be re-sized in the usual manner.
The picture above shows the condition of windows just prior to execution of a typical command that writes a text report.
The checked box is Send to screen in the Report destination panel routes the report to the screen. Clicking CR, send the
pages of the report to the home screen, like this (partial output of TieLineArea shown) :
2.6.11 User Defined Messages
The messages that appear in the "menu" window are displayed to indicate that something has gone wrong, or to report on a
command that was just executed. Some of these messages or errors may be changed to suit the user’s needs. A file called
message.txt contains some of the standard messages that PSLF prints out. This file should be located in one of the standard
search paths that PSLF looks in. The user may edit this file to change or add-to any one of the messages. The lines of the
file include a message number followed by the text that is to replace the standard PSLF message. The message number is
not to be changed; this is how PSLF searches for the appropriate line. To append to the standard message, simply add a
plus sign (+) before the message number.
2.6.12 Command Mode
PSLF commands may be types directly into the Input box in the lower left corner of the main menu. The typical form is
shown below:
<command>("<arg1>","<arg2>")<CR>
For example, to retrieve the history file case1.sav, the command would be:
getf("case1.sav")
The details of the arguments <arg1> and <arg2> required by each command are given in Chapter 4.
The operation of PSLF in its menu mode corresponds to the issuing of commands of the form:
<command>(<argument>)
where
<command> is the command name shown in and selected from the command menu
<argument > is the file name or option as entered from a select or argument panel.
2.6.13 Batch Mode
PSLF can be executed in BATCH MODE by setting up a control file to run the PSLF commands from a file or a shell. The
batch control file must have the .bat extension. Prior to executing in batch mode the classpath variable should be set to:
classpath=c:\upslfXX\jclasses (windows)
For example, batch.bat contains:
@set PSLFDIR=c:\upslf##\
@set classpath= %PSLFDIR%jclasses
%PSLFDIR\jre\bin\Java -jar %classpath%\pslf.jar run1.bat
where in the first line “##” should be replaced by the version number to match the PSLF installation folder name and
run1.bat may contain:
epcl ("build.p")
epcl ("calculate.p")
epcl ("output.p")
stop
The control file contains PSLF commands listed one per line. When PSLF is called with a batch file as an argument,
execution terminates when the line containing stop is encountered.
PSLF may also be called with filenames as arguments. This allows you to execute a command quickly before entering the
PSLF main menu. The recognized extensions are:
.bat execute the batch file
.p call EPCL and execute the program
2.7 Tables, Records, and Members
2.7.1 General Table Structure
PSLF stores its data in tables. These tables are seen by the data import commands as the places to which data is to be
delivered, by the data editing commands. The data is stored as assemblies of records that can be displayed and operated on
according to relational data management principles. The tables are used by the calculation and reporting commands as
places where data can be found.
The basic table structure of PSLF is shown in Figure 2.7.1. Each table consists of a number of records; each record could
be thought of as a row if the table should be shown conventionally on a printed page. Each record has a number of
members; each set of members taken one from each record could be thought of as a column of the printed form of the
table.
Each type of record has a name, and each member of each record is named. Each data item is identified by its record and
member name. For example, the real power output of the 876-th generator is found in the gens table and is identified as:
gens[876].pgen
Here gens is the name of the type of record that describes a generator; pgen is the name of the member stating power
output. Similarly, the bus to which the 876th generator is connected is identified as
gens[876].ibgen
The complete list of records and members available to the user in PSLF is given in Table 5.2.
Load flow and short circuit studies in PSLF are controlled by retrieving the desired system model in the data tables and
then executing solution or reporting commands as required. PSLF data items shown in Table 5.2 can be examined and
manipulated by two methods; the PSLF data editors and the EPCL language. The editors are described in following
sections and EPCL is described in Chapter 5.
Figure 2.7.1
PSLF Table Structure and Terminology
2.8 Data Editors
2.8.1 The Table and Record Editors
PSLF includes two data editors, the table editor and the record editor. These are complementary. The table editor gives a
broad view of many records at a time in less than full detail; the record editor shows a single record in full detail. The
table editor is usually invoked first to look at a table and to find records of interest. The record editor is usually invoked
from the table editor to examine an interesting record in detail.
The editor displays include arrays of function targets along their bottom edge in the same manner as menus. The functions
of these targets are listed in the detailed description of the edit commands. The rules for using the targets are the same as
for the targets on menus except that you can move the highlight directly to an entry in an edit panel by clicking that entry.
(Clicking an entry in an edit panel only selects that entry, but does not cause other actions as in menus.)
2.8.2 The Table Editor
The table editor displays a table of data in multi-column format and allows a user to move around with clicks and
keystrokes.
The user can insert and delete rows in a table with the table editor. In the basic application of the table editor, each row
shows members of one record of one PSLF data table. In most cases, the PSLF data record has too many members for
them all to be displayed by the table editor. Hence, in basic applications, each row of a table editor display shows a subset
of a record of a PSLF data table. Deleting or inserting a row with the data table editor deletes the entire corresponding
record from the PSLF data table. Inserting a row with the data table record inserts a corresponding row into the PSLF data
table and assigns values to the members that appear in the table editor's display; members of the new record that are not
shown in the table editor's display are undefined and must be given values by another operation.
2.8.3 The Record Editor
The record editor shows the entire contents of a single PSLF data record. You go into the record editor by going to the
desired record in the table editor and clicking RecEd (F8). You then click an entry in the Record Argument panel and the
Record Editor panel is displayed at the right of the screen like this:
If the number of members in the record is greater than the number of screen rows available the edit screen is used as a
window into the record and you can scroll through the record with Up Arrow, Down Arrow, Home, and End clicks, but
not the Page Up. Page Down clicks. Typing a new value in the record editor can change any member of a record. The
record editor can be moved to the preceding or next record in the same PSLF data table with the Page Up and Page Down
clicks, respectively. The data members that are required are marked with an asterisk.
2.8.4 Associated Records
It is common when examining a record from one table to want to look immediately at a record from a different table. For
example, upon seeing a bus record referring to area as the area containing the bus, you may want to examine the area data
record for the bus without losing your place in the bus table. PSLF uses associated records to provide this capability.
As an example, this table shows the cursor highlighting area 4.
Selecting "area" then invokes the record editor to show an area record in detail
Note that selecting the associated "area" record shows the area record describing area number 4. The record editor can now
be used to its full capability in the area table. Hitting <escape> in the record editor returns you to the table editor with the
cursor on the record from which you left, in this case the record for bus 33, EAST--03.
One or more associated records may be assigned to each column of a table edit display. Many columns of a table edit
display will be assigned no associated record. Hitting F8 in the table editor displays an associated record selector panel if
associated records are assigned for the current column. If no associated record is assigned F8 immediately invokes the
record editor for the record identified by the current cursor location.
2.9 Extended Tables, Records, and Members
You may define your own records and record extensions. These user-defined records extensions and the members
contained in them should be treated exactly like those already in the standard PSLF database.
2.9.1 Extended Record Definition Files
A directory called pslfexr contains the record definition files. Each new record or extension of a standard PSLF record is
described by a file in this directory. Each such file describes the members in the new record or record extension. The file
names for each record should have this format:
<rec_name>.exr
where:
<rec_name> is the record name
1-15 characters in length
<rec_name> can be the name of a standard PSLF record, such as "secdd", or the name of a new record type, such as
"relay" or "thing". The file describes the members of the new or extended record.
The members are listed one per line. The first entry on the line is the member name. There may be no spaces within a
member name. The second entry on the line describes the member's type. This indicates what type of data is to be entered
in each member. The type may be followed by an optional number which indicates this member is an array of values.
There should not be a space between the type and the number. If the record is new, the last line should contain the keyword
"maxrecs" followed by the maximum number of records allowed. The line should be omitted for an extension of a standard
record. The file should have the following format:
MN1 MT1j
MN2 MT2j
MN3 MT3j
……
……
……
MNn MTnj
Maxrecs MR
where:
MN1…MNn are member names 1-15 characters in length
MT1…MTn are member type indicators 1-5 characters in
length i.e.
l long integer
I short integer
f floating point number
d double precision
c character string
j is the # of elements defined in the array
(optional for all types but c)
MR is the optional maximum number of records
NOTES:
1. If the record is new to the PSLF database, the first member must be "time_stamp" and its type must be "l".
2. The PSLF database contains a record called "casepar". This contains the number of instances of each record. For
example:
casepar[0].nbus is the number of buses in the case
When adding a new record definition to PSLF, you must extend the casepar record by adding the corresponding
member to the "casepar.exr" file. You may need to create this file (in the pslfexr directory). For example, if you
have two new records defined by the files "relay.exr" and "trap.exr" add the following to the casepar.exr file.
Nrelay 1
Ntrap 1
The member name for this extension of "casepar" must be the letter "n" followed by the new record name. This
type must be "l" for these members.
3. Once you save the data with the SAVF function, you may not change anything in the pslfexr sub-directory. If you need
to do so you must a.) export the binary file in ascii format (using EEXA), b.) make the necessary changes to the pslfexr
files, c.) re-start PSLF, d.) use REXA to read the ascii file, then e.) SAVF to save the new binary format.
2.9.2 Extended Record Use in EPCL
The records and members defined by the ".exr" files are available to the EPCL language processor. These new records and
members should be treated exactly as the standard PSLF records. That is, a member of a record is referred to as:
<rec_name>[<@index>].<mem_name>[<@index2>]
where:
<rec_name> the name of the record
<mem_name> the name of the member in the record
<@index> the instance of the record, in the range of [0 ... MAXREC - 1]
<@index2> optional, used for types l, i, f, d when defined as arrays in the .exr file
To insert, delete, or replicate instances of the records in the new tables, use the EPCL functions ins(), del(), and rep(). The
casepar variables for the new records are updated automatically.
2.10 Extended Record Data Editors
2.10.1 The Extended (Build-Your-Own) Table Editors
The "uepslf" directory contains user-built edit table control files. This gives you an opportunity to format your own edit
tables. The directory is read each time the user executes the command "uedt" from the PSLF menu. Each file in the
directory is displayed in a menu. When selected from the menu, the edit table described by that file is displayed. These
files may contain the record extensions that were added at program start-up as well as the records already in the PSLF
database. All of the normal editing functions described in the "edit" section of the manual are available in these tables. For
information on the format of these files, refer to Chapter 6 section 6.5, "Editor Control Files" in the PSLF manual.
2.10.2 The Extended Record Editor
The Extended Records may be viewed in an F8 panel exactly as shown in section 2.8.3.
Chapter 3
The Power System Model
3.0 Component Identifiers, Memberships, and Status
3.0.1 Component Identifiers
Each bus in the PSLF database is identified by a number, a name and a base voltage. The complete bus identifier is
<number> <name> <base kv>
where
<number> an integer from 1 to 9999999
<name> an optional alphanumeric string containing 1 to 12 characters
<base kv> the bus base voltage in kilovolts, expressed in floating point format
interpreted as a number, not a character string
The following are valid bus identifiers:
713 ESSEX 115
19321 MAIN-ST 138
14 MIDWAYPS 138
The names
ESSEX 115.0
ESSEX 115
ESSEX 0115
are synonymous because all three expressions of 115 result in <base kv> for the bus being set to 115.0. It would,
therefore, be an error to assign identifiers
731 ESSEX 115
732 ESSEX 0115
and 14 MIDWAYPS 138
Components such as generators, loads, shunts, SVDs that are connected to a single bus are identified by a bus number
and a two-character alphanumeric ID. Components connected to two buses such as lines and transformers are identified
by two bus numbers and a two-character alphanumeric circuit ID.
In addition, each component can also be assigned a 32-character alphanumeric ID <lid> also called as long id or labels.
The lid of each component can also be used to uniquely identify a component as long as the long ids are unique. The
long id for each component only needs to be unique within the category (class) of that component.
Each component can also be assigned an integer project id <projid>, an in-service date <date_in>, and an out-of-service
date <date_out>. These are not used by the program, but can be accessed by user-written (EPCL) programs for data base
management or other purposes. The dates are expressed as integers in the form “yymmdd”.
3.0.2 Component Memberships
Each network component may be given an <area> assignment, <zone> assignment and a <ba> assignment by providing
valid area, zone and ba numbers from the area,zone and ba data. In addition, the ownership of each component can be
specified by one or more owner numbers, <nown>, as follows:
Components Maximum number of
owners
Bus, load, motor, DC bus 1
Shunt, SVD, UPFC (GCD) 4
Transmission line (secdd), transformer, 8
generator, DC line, DC converter, line, VSC
The range of areas, zones and owners allowed are as described below
Area An integer from 1 to 4999
Zone An integer from 1 to 4999
Ba An integer from 1 to 4999
Owner An integer from 1 to 1999
For components with more than one owner, the fractional ownership is specified by a participation factor, <pown>.
Areas, zones, and owners are used to provide summaries of generation, load, losses, and other quantities. Areas are also
the basis for control of area interchange.
3.0.3 Component Status
With the exception of buses, each component has a status flag <st>. A value of 1 indicates the component is in service.
A value of 0 indicates the entire component is out of service. Each component also has a “normal status” flag <stn>.
This is not used by the program, but can be accessed by user-written (EPCL) programs for data base management or
other purposes.
Buses can only be taken out of service by isolating them, that is, tripping all of the components connected to the bus. At
present this requires that the bus type also be set to 0. [In future releases, it is planned to use the <stisol> flag to indicate
an isolated bus without changing the type to 0.]
Some components have additional status values, as follows:
Transmission line sections (secdd) – 2 indicates the line section is bypassed (WARNING: use only when modeling a
series capacitor (Negative zsecx) and when modeled with more than one section per
circuit.)
Three-winding transformers (tran) – 2 indicates secondary winding is open
3 indicates tertiary winding is open
4 indicates primary winding is open
In addition, some components might also have additional status fields called online status <ost>, derived status <dst> and
derived online status <dost>. These fields are useful when working with full topology model to determine whether the
component is in service or not, since operations (real time) models don’t have component status like the ones used in
planning models and component status are determined based upon topology and breaker connections.
Online status <ost> of a component would be 1, if the component is in service (i.e. has <st> set to 1) and the terminating
buses are not isolated.
For components other than branches, derived status <dst> would be 1, if the component is in service (i.e. has <st> of 1)
and if a closed breaker or generator load or shunt is found by looking outward from the terminal bus which is connected
to an active (in-service) load or generator or shunt. Otherwise the <dst> is 0. For branch components (i.e. transmission
lines or transformers), derived status <dst> would be 0 if the branch is open (i.e. <st> is 0). The derived status would be 1
if the branch is closed and if a closed breaker or generator load or shunt component is found by looking outward from
each of the terminals of the branch. For transmission lines, the derived status would be 3, if a closed breaker or generator,
load or shunt is only found at the <to> end of the branch and the derived status would be 4, if a closed breaker or
injection group device is only found at the <from> end of the branch. For transformers, the derived status would be 2, if a
closed breaker or generator, load or shunt is not found at the secondary winding terminal of the transformer; derived
status would be 3, if a closed breaker or generator, load or shunt is not found at the tertiary winding terminal of the
transformer; the derived status would be 4, if a closed breaker or generator, load or shunt is not found at the primary
winding terminal of the transformer.
Derived online status <ost> is set to 0, if online status of the component is 0; otherwise it is set to value of derived status
of the component.
3.1 Buses
In load flow modeling, buses usually represent all of the equipment in a substation that is at the same voltage level and is
connected together. If desired, multiple bus sections can be represented by separate buses connected by jumpers, that is,
lines (secdd) with zero impedance, that can be opened or closed as needed.
Required data
Each bus must be given a <type>, in addition to its identifier. The following types are recognized:
<type> bus characteristics
0 swing bus; fixed voltage magnitude and phase
1 unconstrained bus; magnitude and phase angle of voltage may vary
2 generator bus; a synchronous machine may be connected to the bus
to control either its own voltage or the voltage of another bus.
-2 generator bus; reactive power limits disabled -- bus acts as if all
generators or SVD's connected to it have unlimited reactive power
capability.
It is not necessary for a generator to be in service at a type 2 or type -2 bus.
Each isolated section of the system must contain at least one type 0 bus. Individual isolated buses, if they have any in-
service generation or load, must be type 0.
If voltage at the bus is regulated by a generator or other device, either at this bus or another bus, the scheduled voltage,
<vsched>, must be specified in per unit with respect to the base voltage, <base kv>, of the bus. At non-regulated buses,
<vsched> is optional for information purposes only.
Optional data
The following data may also be specified for each bus:
<vmin>, <vmax> - normal voltage low and high limits for the bus. These are normally for information
purposes, but are also used by contingency processor.
<vmin1>, <vmax1> - emergency voltage low and high limits for the bus. These are normally for information
purposes, but are also used by contingency processor.
<latitude>, <longitude> - bus coordinates
<islnum> - island number - island number (isolated system) to which the bus belongs. This is
updated by running the island command.
<stisol> - isolation status (intended for future use in identifying buses that are
isolated)
<level> - flag for informational purposes only
3.2 Transmission Lines
3.2.1 Transmission Line Sections
Transmission lines (and cables) are represented by line sections (secdd). PSLF models each transmission line by 1 to 9
sections as shown in Figure 3.2.1a. A line is identified by its <from> bus and its <to> bus, and by a 2-character circuit
identifier <ck>. Each section is identified by the line identifier <from> <to> <ck> and its section number <sec>. Line
sections must be numbered sequentially starting at the <from> bus. Transmission line sections must be specified in
ascending order and in consecutive rows in the secdd table.
Each transmission line is represented in load flow solution by building up the sub-network containing the junctions
between sections as well as the end points as nodes and reducing it to an unbalanced pi equivalent connected directly
between the end point buses. The position of sections in a line is significant; it affects the overall series and shunt
impedances of the line.
Setting the status of any one section of a line to zero has the effect of taking all line sections out of service. A status of 2
will bypass that section only.
Each line section has a type code <type> whose meaning is as follows:
type = 0 indicates an ordinary line section
type = 1 indicates a transformer-terminated line section
(see Section 3.3.2 below)
Each line section has the following electrical attributes:
Series resistance, R <zsecr> in per unit or Ohms
Series reactance, X <zsecx> in per unit or Ohms
Total charging susceptance, B <bsec> in per unit or micro-Mhos
Ratings 1 through 8, <rate[0]> … <rate[7]> in MVA
The resistance, reactance, and charging susceptance must be expressed in per unit with respect to the system MVA base
and the base voltage of the <from> bus, or in Ohms. To specify values in Ohms, the <ohms> parameter for that line
section must be set 1.
The rating of a line section is stated in MVA but interpreted in terms of current in Amps. The MVA rating should be
stated as 1.732 * (from bus base line-to-line voltage) * (rated amps).
The eight ratings may be assigned any convenient significance, such as "summer continuous", "summer emergency",
"winter continuous", and so on. Be sure to keep this consistent throughout the entire database.
Each line section has a status flag, <st>, with the following meanings
<st> line section status
0 out of service; isolated at each end of the section
1 in service; connected to bus or adjacent line section at each
end of section
2 bypassed; shorted out by a closed switch which is connected
to adjacent bus or line section
Figure 3.2.1a
PSLF Multi-section Line Model Sections are numbered
in increasing sequence beginning at "from" bus
Figure 3.2.1b
PSLF Line Section Model
An ordinary line section connects its two end points without transformation. The base voltages of the buses at the
<from> and <to> ends of an ordinary section (or of a line consisting only of ordinary sections) need not be equal,
although connection of buses with widely different base voltages would normally be unrealistic.
The line section pi equivalent model consists only of the symmetrical pi-section shown in Figure 3.2.1b. It can, therefore,
represent only a length of transmission line and not shunt devices that may be connected to the line. Shunt devices may
be connected to a transmission line at either end of any line section. Line-connected shunt devices are handled as
individual shunts and are described by shunt data records (see Section 3.7).
A transmission line with series capacitors at each end and shunt reactors connected on the line side of the capacitors at
the from end would, therefore, be represented by four records as indicated by Figure 3.2.1c.
Figure 3.2.1c
Line Data Records for 3-section Line with Shunt Reactor
Optional data
The following data may also be specified for each line section:
<lngsec> - length of the line section. This is not used by the program but can be provided for information purposes. The
function mmil, which is only accessible by user-written (EPCL) programs, uses the length to calculate “MW
miles”.
3.2.2 Transformer-Terminated Line Sections
For compatibility with other programs, PSLF permits a transformer to be represented as a section of a transmission line.
This modeling is not recommended in most cases. Set the section <type> to 1 to indicate that the line section is a
transformer.
A transformer represented as a line section in PSLF has:
· Fixed number of turns on each winding (that is, no adjustable taps)
No phase shift
·
· Wye-wye (grounded) connection for short circuit calculation purposes.
The impedance of a transformer represented as a line section may be zero provided that the net impedance of other
sections of the same line is non-zero.
To set up data for a transformer-terminated line section enter data in the line section record as follows:
· From bus, to bus, circuit, section, status as for a normal section (status must not be 2)
· Length, if used, should be zero
· Pi-section series impedance equal to transformer impedance on system MVA base
· Ratings 1 through 8 as MVA ratings of the transformer
· Per unit turns ratio of the <from> winding in the <trantapf> field of the section data record as
(from winding tap in Kv) / (from bus base voltage)
· Per unit turns ratio of the <to> winding in the <trantapt> field of the section data record as
<to winding tap in Kv> / <to bus base voltage>
· Magnetizing susceptance in per unit with respect to system MVA base in the <b> (line charging) field. Note: this
entry will be negative.
· Loss conductance in
per unit with respect to system MVA base in the <trangi> field.
Note that the tapped winding voltages of the transformer are not required to be equal to the base voltages of the from and
to buses of the line; this allows the line to contain a fictitious zero impedance "base changing" transformer as used in
Western Systems Coordinating Council power flow models.
3.2.3 Transmission Line Losses
Transmission line losses may be assigned for reporting and accounting purposes to the areas, zones, and owners of the
"from" and/or the "to" bus of the line. The assignment of losses is specified by the secdd parameter <aloss>, which
specifies the fraction of the line losses assigned to the "from" bus, as illustrated by Figure 3.2.2. Hence, when <aloss> is
unity, all losses are assigned to the "from" end of the line and when <aloss> is zero, all losses are assigned to the “to”
end. For net interchange metering purposes setting <aloss> to unity is equivalent to placing the meter at the "to" end of
the line.
The assignment of losses in a multi-section line is governed by the <aloss> parameter of the section nearest the "from"
bus, regardless of the status (in-service or bypassed) of that section.
Figure 3.2.2
Assignment of Line Losses
3.3 Two Winding Transformers
3.3.1 Transformer Types
A two winding transformer is identified by its <from> bus, its <to> bus, and a 2-character circuit identifier <ck>. A
transformer cannot be treated as a line section, and no section number is recognized in connection with a transformer.
Each transformer is characterized by a status flag <st> and a type flag <type>. <st> is 1 if the transformer is connected to
its bus on each side, and otherwise is zero. <type> indicates the type of control exerted by the transformer, as follows:
Type Control exerted by transformer
1 or 11 None
2 or 12 Controls a voltage by adjusting voltage tap ratio
4 or 14 Symmetrical phase shifter, controls real power flow by adjusting phase shift angle
5 Asymmetrical phase shifter, controls real power flow by adjusting phase shift angle
Transformers of Type 1-4 are represented by the PSLF model. Transformers of Type 11-14 originally used the old
WECC transformer model. Types 11-14 are now the same as the PSLF model, but the values 11-14 have been retained
for compatibility with data sets that have these values.
3.3.2 The PSLF Transformer Model
Transformer data is stated with respect to transformer nameplate voltages and ratings as identified in Figure 3.3.1. The
leakage impedance, Z, is in per unit with respect to the transformer bases, <tbase> MVA, <vnomp> kV, and <vnoms>
kV. It is very important to note that <vnomp> and <vnoms> are not required by PSLF to be equal to the bus base
voltages Vbasei and Vbasej, and that when the values are different, Z is expressed with respect to the transformer
nominal values, not the system nominal values.
PSLF represents each two-winding transformer by the model shown in Figure 3.3.2. This transformer model recognizes a
manually operated (or "fixed") tap on each winding, and an on-load tap changer (OLTC, TCUL, LTC) on the "from"
winding. Each winding has a nominal number of turns, Nn, that corresponds to its nominal voltage, Vnom, and nominal
flux level. The fixed tap in each winding changes the number of turns in each winding to Nf. Nn and Nf are not stated in
the PSLF working case; rather, the fixed tap ratio,
tapf = Nf/Nn
is stated for each winding.
The on-load tap changer has the effect of changing the number of turns in the "from" side winding to Nc, when Nf = Nn
in that winding. Again, Nc is not stated in the working case but, rather, the TCUL ratio
<tapp> = Nc/Nn
is stated.
With these data definitions, the actual number of turns in the primary ("from") winding is
(Nci + (Nfi-Nni)) = (<tapp> + <tapfp> - 1) * Nni
and the number of turns in the secondary ("to") winding is
Nfj = <tapfs> * Nnj
The overall ratio of the transformer is, therefore,
This ratio may be viewed as having two components:
· An overall effective tap ratio, in per unit, of
<tapp> + <tapfp> - 1
---------------------------
<tapfs>
· A nominal turns ratio of <vnomp>/<vnoms>
Figure 3.3.1
Relation of Transformer Base Values to System Base Values Leakage Impedance = Z p.u. on Transformer Base
Values Tbase, Vnomi, Vnomj
Figure 3.3.2
PSLF Two Winding Transformer Model
Note that the data items <tapp>, <tapfp>, <tapfs>, <vnomp>, <vnoms> are parameters of the transformer and not of the
power system in which it is connected or of the base voltages and MVA chosen for modeling the power system. Hence,
their values can be determined directly from transformer nameplate data, and they do not have to be adjusted to
accommodate particular values of system bases. The conversion of data from transformer bases to a common system base
for network solutions is handled internally by PSLF and no manual base conversion is required of the user.
If the transformer has core loss conductance <gmag> and/or magnetizing susceptance <bmag>, they are stated in per unit
with respect to the transformer base MVA <tbase> and winding base voltages. Note that <bmag> should be a small
negative number. The total Ym = <gmag> +j<bmag> is split equally between the two terminal buses of the transformer
when building the system matrix, as shown in Figure 3.3.3.
In addition to the basic transformer impedance, nominal voltage, and tap position described above, data must be specified
for the on-load tap-changer and control element of each transformer. If the transformer has no TCUL unit, these TCUL
data may be left at their default values.
The following parameters should be specified for each transformer; all data for the transformer must be in per unit with
respect to the bases <tbase>, <vnomp> and <vnoms>:
Parameter Description Default Value
tbase Transformer base MVA 100
vnomp From winding nominal voltage, kv From bus base kv
vnoms To winding nominal voltage, kv To bus base kv
zpsr R From-to, p.u. or ohms 0.
zpsx X from-to, p.u. or ohms 0.
tapfp From winding fixed tap position, p.u. 1.0
tapfs To winding fixed tap position, p.u. 1.0
tapp TCUL position, p.u. 1.0
anglp Phase position of “from winding” open circuit voltage 0.0
relative to the “to winding”, degrees
gmag Core loss conductance, p.u. 0.0
bmag Magnetizing susceptance, p.u. 0.0
type 1 or 11 for non-regulating transformer 1.0
2 or 12 for voltage-controlling transformer
4 or 14 for phase shifter controlling own real power flow
tmax Max. tapp if type is 2; max. anglp if type is 4 0
tmin Min. tapp if type is 2; min. min. anglp if type is 4 0
vtmax Upper limit of controlled voltage band if type is 2 0
Upper limit of controlled MW flow band is type is 4
vtmin Lower limit of controlled voltage band if type is 2 0
Lower limit of controlled MW flow band if type is 4
lreg Number of bus whose voltage is controlled by this 0
transformer if type is 2
stepp Ratio step of TCUL unit if type is 2, p.u. Ratio step of 0.00625
type 2 TCUL should be positive if TCUL should be
moved to regulate voltage of primary winding bus and
should be negative if TCUL should be moved to regulate
voltage of secondary winding bus
Angle step of TCUL unit if type is 4, degrees. The angle
step of type 4 transformers should not be a negative
value.
st Status.
rate[0]
rate[1] Eight ratings for the transformer in MVA 0
.
.
rate[7]
The transformer base <tbase> may be the nameplate rating for which nameplate leakage impedance is stated, the system
base MVA, or any other convenient base; the transformer impedance must be expressed with respect to this base
regardless of its origin. The winding nominal voltages should be the nameplate nominal values if they are available, or
other appropriate values such as the from and to bus base voltages if nameplate values are not available. Transformer
impedance, tap ratios, and ratio limits must be stated with respect to <vnomp> and <vnoms>, not to the from and to bus
base voltages.
In addition to its use in representing phase angle regulating transformers, the phase angle <anglp> can also be used to
model the 30 degree phase shift between delta and wye transformer windings. Care must be exercised that all
transformers connecting two subsystems have consistent phase shift included. The to-side phase angle <angls> will be
ignored if entered for a two-winding transformer.
The TCUL step must be specified in both magnitude and sign. The sign of the step must be positive if the TCUL should
be moved "upward" (more turns in the "from" winding) to raise the controlled voltage, and negative if the TCUL should
be moved "downward" to raise the controlled voltage. The sign of the TCUL step should always be positive if the
transformer controls MW flow (type = 4).
The TCUL step must be non-zero for a transformer that controls voltage (type = 2). For controlled phase shifters, the
TCUL step may be zero or non-zero (positive only):
· if stepp is zero, the phase shifter is treated as a continuously variable device and is adjusted to hold the real power
flow measured at the from bus at (vtmax+vtmin)/2.
· if stepp is non-zero, the phase shifter is treated a stepping device and is adjusted to the angle that is an integral
number of steps closest to the angle that gives a flow of (vtmax+vtmin)/2.
Transformer ratio is adjusted only when the voltage at the controlled bus falls outside the band from vtmin to vtmax.
Transformer phase angle is adjusted only when the flow falls outside the band from vtmin to vtmax, regardless of the
value of the TCUL step.
The preparation of transformer data for PSLF is illustrated by the example shown in Figure 3.3.4. A 200 MVA
transformer interconnects two systems whose base voltages are specified as 345 and 138 kv. The transformer was
purchased for a nominal primary winding voltage of 362.25 kv, with a leakage reactance of 5.5 percent on a 200 MVA
base. The transformer is in service with its manual taps set at 345 and 138 + 2.5%. The TCUL on the 345 kv winding
controls the voltage on the 138 kv terminal bus to a band from 1.01 p.u. to 1.03 p.u.
Figure 3.3.3
Example Transformer Application
The transformer should be specified in PSLF as follows:
tbase = 200.0
Vnomp = 362.25
Vnoms = 138.
R = 0
X = 0.055
tapfp = 345/362.25 = 0.95238
tapfs = 1.025
anglp = 0.0
type = 2
tmax = 1 + 16x5/8 = 1.1 p.u.
tmin = 1 - 16x5/8 = 0.9 p.u.
stepp = -0.00625 p.u.
lreg
= 791 (Note: this is external number seen in "tap" edit table)
rate[0] = 200.0
rate[1] = 250.0
rate[2] = 175.0
rate[3] = 210.0
vtmin = 1.01
vtmax = 1.03
gmag = 0.002
bmag = -0.02
3.3.3 Asymmetrical Phase Shifting Transformer
Both type 4 and 5 transformers are phase shifting transformers, or phase angle adjustment transformer (PAR), or phase
shifters. Those transformers control active power flow by adjusting phase shift angles. Symmetrical phase shifting
transformers are represented by type 4. The transformer type does not change the amplitudes of voltages when operating
phase shift angles, therefore the magnitude of the complex turns ratio of the symmetrical phase shifting transformers,
<tapp> is constant, 1.0 by default. The type 5 transformer models asymmetrical phase shifting transformers. It can add an
in-phase and quadrature regulating voltage with a winding connection angle to the phase-to-neutral voltage at the
primary terminal; therefore it can regulate both active and reactive power flows. The transformer type changes not only
the phase angle between from and to winding voltages, but also their magnitudes. The no-load phase diagram for an
asymmetrical phase shifting transformer is in shown in Figure.
Figure 3.3.4
Asymmetrical phase shifting transformer
The is the winding connection angle <wcanglp> and is the phase shift angle <anglp>. When the phase shift angle is ,
the turns ratio, tapp, is .
3.3.4 Transformer Impedance Adjustment Function
While the per unit leakage impedance of most transformers is substantially constant as taps are changed, some
transformers, particularly phase shifters, exhibit large changes in per unit leakage reactance as taps are changed. The
transformer impedance adjustment function allows the leakage impedance of a transformer to be varied as taps are
moved.
The impedance adjustment factor is a function of the transformer's TCUL ratio or phase shift angle as shown in Figure
3.3.4.
Figure 3.3.5
Transformer Impedance Adjustment Factor as a
Function of TCUL Ratio or Phase Shift Angle
The effective leakage impedance of the transformer to which the adjustment function is applied is given by:
Xeff = Xnominal * F(T)
where:
Xnominal Nominal leakage impedance from
transformer data record
Xeff Adjusted leakage impedance
T Independent variable, either TCUL ratio or
phase shift angle
F Impedance adjustment factor
Note that a transformer impedance adjustment function should not be used to represent the normal effects of tap
changing in a conventional transformer whose volts-per-turn are substantially constant.
An impedance adjustment function is applied to a transformer by setting its parameter <tran.iztabl> (TZ in tran edit
table) to a non-zero positive value. If this value matches the “Impedance adjustment function number” of an entry in the
impedance adjustment table, tztab, this adjustment table will be used. The elements of tztab are:
<extnum> Impedance adjustment function number
<ta> Independent variable flag
0 for TCUL tap ratio
1 for phase shift angle
<t[0]> to <t[10]> Independent variable value, tap p.u. or degrees
<f[0]> to <f[10]> Impedance adjustment factor, p.u.
3.4 Three Winding Transformers
3.4.1 System Connections
The three-winding transformer model involves connections to 2 or 3 system buses as shown in Figure 3.4.1. The three-
winding transformer always involves a “from” bus and a “to” bus, which are normally connected to the primary and
secondary windings. It always involves an "interior" bus which does not correspond to a real transmission system bus.
The three-winding transformer model may or may not involve a tertiary bus. The inclusion of the tertiary bus is
necessary if, for example, a shunt capacitor, auxiliary load, or synchronous condenser is connected on the tertiary
winding, but is not needed if nothing is connected to the tertiary.
The from and to buses are routinely included in the transmission system model. The interior bus and the tertiary bus, if
used, must also be included in the system model by including records in the bus data table. The interior bus must have a
type of 1 and may have any convenient name and base voltage. The tertiary bus, if used, must be of type 1 or 2
depending on the equipment connected to it, and should have its base voltage set appropriately for connected equipment.
The three-winding transformer model checks for the existence of the tertiary and interior buses. If a tertiary bus but no
interior bus is found, an error message is generated and you must add an appropriate record for the interior bus to the bus
data table. If an interior bus is found, the three-winding model is used; if neither tertiary nor interior bus is found, the
two-winding transformer model is used.
Setting the status of a three-winding transformer to 0 trips the entire transformer. Opening individual windings can be
specified by setting status to 2 (open secondary winding), 3 (open tertiary winding) or 4 (open primary winding).
3.4.2 Three Winding Model
The three-winding transformer model is shown in Figures 3.4.1 and 3.4.2A, and Figure 3.4.2B. Currents flowing into the
three windings flow through the three impedances Zp, Zs, and Zt. These three equivalent impedances are related to the
usual transformer test impedances by the following:
Zps = Zp + Zs
Zpt = Zp + Zt
Zts = Zt + Zs
where Zps is the leakage impedance measured at the primary winding with the secondary short circuited and the tertiary
opened, and so on.
From the above:
Zp = (Zps + Zpt - Zts)/2.
Zs = (Zps + Zts - Zpt)/2.
Zt = (Zpt + Zts - Zps)/2.
The user must specify the three "nameplate" impedances Zps, Zpt, Zts. These must be stated in per unit with respect to
the corresponding MVA base, to the nominal voltages of the three windings, and with all taps in "nominal" position.
Note that the three "nameplate" impedances must be specified regardless of whether the tertiary bus is used.
Each of the three windings has a fixed tap and a fixed phase shift, and the winding at the "from" bus has an automatic
on-load tap changer. All tap and tap-changing data is specified in the same way as described in Section 3.3 for a two-
winding transformer.
Phase angles may be specified for the secondary and tertiary windings, <angls> and <anglt> respectively, in addition to
<anglp> for the primary winding. These express the relative phase position of the voltage in the winding with respect to
the other windings when this winding is energized and the other two are open circuited.
Separate MVA bases can be specified for each of the three input impedances: <tbase> for the primary to secondary
impedance, <tbasept> for the primary to tertiary impedance, and <tbasets> for the tertiary to secondary impedance. If the
either of the latter bases are less than or equal to zero, they are set equal to <tbase>.
Separate rating MVA levels can be specified for each of the windings. The primary winding uses the same eight ratings
as are used for the two-winding transformer. The secondary and tertiary windngs each have three MVA levels that can
be specified. If these are omitted, the primary ratings are used.
A separate loss allocation factor can also be specified for each winding. A value of 1 means all of the losses in the
winding are assigned to its terminal bus; 0 means all of the losses are assigned to the internal bus.
Figure 3.4.1
Three Winding Transformer Connections
Figure 3.4.2
Three Winding Transformer Equivalent Circuits
3.5 Generators
3.5.1 Basic Data
Each generator is identified by the bus to which it is connected and a 2-character identifier, <id>. The identifier must be
unique among the generators at each bus. Generators are modeled in the following ways:
Generator on swing (Type 0) bus:
Voltage magnitude and angle are held constant
Generator P and Q are adjusted to balance system generation, load, and losses
Generator designated as an area swing bus:
Generator P is adjusted to maintain scheduled area interchange P
Generator Q is adjusted to regulate voltage as for other generators (below)
Non-swing generator:
Generator P is held constant
Generator Q is adjusted depending on value of cont_mode:
0 (default) Voltage at regulated bus is held constant within Q limits of generator specifed by Qmin, Qmax or
Q table
1 Q is held at its initial Qgen value
2 Voltage at regulated bus is held constant within Q limits of generator specified by pf input
parameter
3 Q is held constant at the value specified by pf input parameter (negative Q if pf is negative)
4 Use line-drop compensation (Rcomp, Xcomp). Voltage at terminal bus is adjusted within Q limits
to regulate Vt – It * ( Rcomp + j Xcomp) to input value of Vcsched. (Remote regulated bus, if
specified, is ignored.)
-1 Voltage at terminal bus is held constant within Q limits of generator specifed by Qmin, Qmax or
Q table
-2 Voltage at terminal bus is held constant within Q limits of generator specified by pf input
parameter
The Q limits actually used during a load flow solution, based on cont_mode, are determined by the program and shown,
after the solution, in the Qmn and Qmx fields in the generator edit table.
The voltage at the regulated (or terminal) bus is controlled to the value specified by the scheduled voltage of the
controlled bus.
The bus to which the generator is connected must be of type 0, 2 or -2. If PSLF finds a generator at a type 1 bus it
changes the type of that bus to 2. Generators at a swing (type 0) bus must regulate that bus and not a remote bus.
Multiple generators, connected at one or more buses, can contribute to the control of voltage at a single bus. When this
is done the generator reactive power regulation factor, Qrf, of each generator in the group regulating a bus should be
assigned a fractional value stating the proportion of the total reactive power required from the group that is to be
delivered by that generator. The sum of the reactive power regulation factors for a group of generators regulating a single
bus should be unity when all generators are in service. The specification of the regulating factors, Qrf, is illustrated in
Figure 3.5.1.
Each individual generator at a bus may be disconnected or connected by setting its status, <st>, to 0 or 1 as appropriate.
Care must be taken to avoid impossible voltage control assignments such as the situation shown in Figure 3.5.2. In this
situation the attempt to control the voltages of the two adjacent buses must fail because fixing the voltage at either bus
dictates the VAR flow through the single connecting branch, and hence dictates the voltage at the other bus. Figures
3.5.2B and 3.5.2C show voltage control situations that are possible with proper assignments of the reactive power
regulating factors, Qrf.
Care must be taken when changing regulated bus assignments for generators. When the regulated bus assignment is
changed, the scheduled voltage at the regulated bus should be checked and updated if necessary. Matrix reordering
should also be performed when changing regulated bus assignments.
Line-drop Compensation –
1. Values of Rcomp, Xcomp are in p.u. on generator MVA base. Values larger than the GSU transformer impedance
are usually not appropriate. Very large values may cause computational difficulties – the program may switch to
normal regulation and issue a warning message if this occurs.
2. Line-drop compensation should not be used for multiple generators connected to the same terminal bus. [Future
capability – If multiple generators are connected to the same terminal bus and one has cont_mode = 4, the
cont_modes of the others will be set to 4, if they is not already. The total current of the generators will be used
together with an MVA weighted average of their Rcomp, Xcomp values in computing the compensated voltage Vc.
The required reactive power will be allocated using the Qrf factors.]
3.5.2 Reactive Power Limits
The reactive power limits set the minimum and maximum reactive power that the generator may deliver to the system at
its terminals. Positive reactive power flow is from the generator to the system and corresponds to the condition where the
generator is overexcited and its current lags its terminal voltage.
A synchronous motor is represented as a generator with a negative value of real power. In this case positive reactive
power flow is still from the machine (motor) to the system and so positive reactive flow corresponds to the condition
where the motor current leads the motor terminal voltage and the motor is overexcited.
The reactive power limits are used at a generator (or motor) only if:
· The iteration number in the solution process is above the "Iterations before VAR limits" number in the parm.sol
and/or load flow solution arguments panel and
· The type of the generator bus is 2, and
· The VAR limits of the generator differ by more than the "Minimum VAR limit band width" shown in the
parm.sol panel.
Hence:
· VAR limits can be ignored at all generators by setting the "iterations before VAR limits" number higher than the
"MAX iterations" number in the solution arguments panel.
· VAR limits can be ignored at a few selected generators by setting the type codes of their regulated buses to –2.
Figure 3.5.1
Assignment of Generator Reactive
Power Regulating Factors, Qrf,
When Generators Regulate Remote Buses
Figure 3.5.2
Illustrating Impossible and
Possible Voltage Control Assignments
3.5.3 Reactive Capability Curves
The generator reactive limits can be automatically changed as a function of Pgen by supplying reactive capability curves
as shown in Figure 3.5.3. The curves for a specific generator are input using the qtable data by specifying the generator
bus and <id> and up to 20 sets of Pgen, Qmx, Qmn in MW and MVAr.
To use this data for a load flow solution, the generator parameter <qtab> is set to a non-zero value. At the start of the
load flow solution, the qtable data for the generator will be interpolated to obtain the values of <qmx> and <qmn>.
These values will be used in place of <qmax> and <qmin> for the solution and for reporting results. The original
<qmax> and <qmin> are not modified, and can be used by setting <qtab> = 0.
If the value of <pgen> is less than the lowest value in the table, the values of <qmx> and <qmn> for the lowest p value
will be used. If the value of <pgen> is greater then the largest value in the table, <qmx> and <qmn> will be set to 0.
Figure 3.5.3
Generator Reactive Capability Curves
3.5.4 Additional Generator Data
In addition to the basic generator data, the following generator data can be provided:
· Maximum power output, Pmax and Pmax2, in megawatts
· Generator MVA base, Mbase, in MVA
· Subtransient impedance, (Zgenr +j Zgenx) in per unit on generator MVA base
· Real power regulating factor, Prf, in per unit
· Unit type (unittype) and Fuel type (fueltype)
PSLF uses (Zgenr +j Zgenx) as the impedance of the generator in the SCSC command (short circuit calculations) and
hence the three values Mbase, Zgenr, Zgenx for each generator must be specified before the SCSC command is used to
enter the short circuit sub-system.
The generator internal voltage for short circuit calculations is set up at the conclusion of each load flow solution as the
voltage behind (Zgenr +j Zgenx) and so the values of Zgenr, Zgenx in the load flow data must agree with the positive
sequence generator impedance in the short circuit data. This is assured when the short circuit data is as set up by the
default mode of the SCSC command; it is the user's responsibility to keep the generator impedances coordinated in the
load flow and short circuit data once the "Save Short Circuit Data in History File" flag has been set in the parm.sol panel
to cause PSLF to use saved short circuit data rather than default values from SCSC.
The Pmax, Pmax2, and Prf parameters are not used directly by the program, but may be used by the user or user-written
EPCL programs to aid in redispatching generators. For example, Pmax and Pmax2 may be used for different seasonal
generator limits.
The unittype and 3 fueltype fields are not used directly by the program, but may be used by the user or user-written
EPCL programs. They can be used to store additional information about generators from production cost models. The
user can store the primary fuel, secondary fuel and tertiary fuel types in the 3 fueltype fields.
3.5.5 Generator Step Up Transformers
PSLF allows a generator to be represented as being connected directly to its high-voltage bus in load flow work, and to
be moved to the low voltage side of its step-up transformer for short circuit and dynamic simulation work. This practice
offers no advantage in terms of volume of data but is sometimes advantageous in the handling of high-side bus voltage
control and in maintaining compatibility with data files from some external sources.
To take advantage of this capability the generator should be entered into the load flow working case on the high voltage
bus and the step-up transformer should be entered as shown in Figure 3.5.4.
Figure 3.5.4
The following rules must be observed:
· The type, busd[].type, of the high voltage bus must be 2.
· The generator VAR limits must be applicable to the high- voltage side of the transformer.
· All other generator data must be entered in the normal manner. The generator bus index, gens[].ibgen should be
that of the high voltage bus.
· The generator "high" and "terminal" bus indices gens[].hbus and gens[].tbus must contain the indices of the
"from" and "to" buses of the transformer. These may be entered by entering the bus numbers in the generator
record with the record editor (F8) in the data table editor.
· The "from" bus must be the high voltage bus and the "to" bus must be the generator terminal bus.
· All other transformer data must be entered in the normal manner.
· The transformer may be in or out of service; if it is out of service the type, busd[].type, of the terminal bus must
be zero.
Load flow solutions recognize the generator at the bus gens[].ibgen. The commands SCSC and PSDS move all
generators for which gens[].ibgen != gens[].tbus from the high voltage bus to the terminal bus and adjust the generator
output to account for real and reactive losses in the transformer. Generators are not moved back to the high voltage bus
on exit from the SCSC and PSDS shells. Therefore, it is not normally advisable to save the working case in the same file
as the original load flow after entering SCSC or PSDS.
Generator VAR limits are not adjusted for transformer reactive losses when generators are moved to the terminal bus.
The step up transformer is placed in service regardless of its prior status. Generator status is not changed.
3.6 Loads
Each load is identified by the bus to which it is connected and a 2-character identifier, <id>. Any number of loads may
be connected to any single bus; the <id> of each load at the bus should be unique with respect to that bus. Load transfer
systems can be represented simply by giving loads fed through transfer switching separate <id>s and moving them from
bus to bus as shown in Figure 3.6.1. The two loads in this example can be switched back and forth between the two
alternative supply buses, 954 and 955, simply by changing their bus number entries in the load data table. Note that this
reassignment can be done even if the two load <id>s are the same, but this is not advisable because it loses the individual
identities of the loads.
Figure 3.6.1
Transfer of Loads Between Buses
Each load has a constant MVA component (Pm +j Qm), a constant current
component, (Pi +j Qi), and a constant admittance component, (Py +j Qy). The
actual load at a given per unit voltage, V, is:
P = Pm + |V|*Pi + |V|*|V|*Py
Q = Qm + |V|*Qi + |V|*|V|*Qy
The P and Q values are the megawatts and megavars that would be consumed by the corresponding load component at 1
p.u. voltage.
All three pairs of load component values are shown and can be changed in the load edit table. The load components are
stated in megawatts and megavars.
Load can be specified as either conforming (scalable) or non-conforming (fixed). Load scaling operations by the SCAL
command always change the three P or Q components of a given load by the same ratio. Load scaling operations won’t
scale non-conforming loads. If different load scalings are desired simple EPCL programs can implement them.
The constant MVA and constant current load components retain their "constant" properties only for per unit voltages
above the "Load Model Minimum Voltage" value shown in the parm.sol table. At lower voltages both load components
are rolled-off smoothly so as to consume zero current at zero voltage. No such roll-off is applied to constant admittance
load since it inherently consumes zero current at zero voltage.
Loads may be connected to buses of any type. Each load may be disconnected individually by setting its status to zero,
and reconnected by resetting its status to 1.
Loads may have distributed generation (DG) entered as Pdgen and Qdgen. These are subtracted from the constant
MVA load during load flow solution. The DG can be turned off by setting stdg to 0.
3.7 Fixed Shunts
A shunt connected reactor or capacitor bank is modeled as a shunt in PSLF. An inductive shunt (reactor) has a negative
value of susceptance and a capacitor has a positive value of susceptance.
A shunt may be connected on a bus or a line, and is identified by a from bus, a to bus, a circuit identifier, a circuit
section number, and a shunt identifier.
If the shunt is connected on a line, specify
<from> <from> bus of line section on which shunt is connected
<to> <to> bus of line
<ck> circuit identifier of line
<section> number of section on which shunt is connected
<id> the first character of the identifier must be:(note 1)
'f' if shunt is at <from> end of section
't' if shunt is at <to> end of section
1. If <from> and <to> are entered in the reverse of the secdd’s “from” and “to” buses, the <id> designation “f” or “t”
refers to the shunt’s <from> or <to>, not that of the secdd data.
If the shunt is connected on a bus, specify
<from> bus at which shunt is connected
<to> set <to> bus external number to 0
<ck> set to blanks
<section> set to 0
<id> two character identifier of the shunt, first character should be
'b' for identification in drawings
The status of a line-connected shunt places it in and out of service when the line is in service. If the line is out of service,
the shunt is also out of service and its status is ignored.
In Version 18 and later, a bus-connected shunt can be switched during a run by a Type 5, 6, or 7 SVD. To enable this,
specify the following additional data:
<SVD> Bus number of controlling SVD
<SNAME> Bus name of controlling SVD
<ID> ID of controlling SVD
<STSV> Control status: > 0 – control by SVD is active
<= 0 – control is inactive; shunt is fixed
3.8 Controlled Shunts (SVDs)
Controlled shunts of all types, inductive and capacitive, continuous and switched, are called Static VAR devices, SVDs,
in PSLF. Subsection 3.8.1 describes the SVD types that existed prior to Version 18 of PSLF. The newer types are
described in subsequent subsections.
Control with <type> = 0 or negative
If <type> is zero or negative, the SVD is locked at the most recently determined admittance. This value <b> may have
been determined in a previous load flow solution in which <type> was a positive type, may have been specified by the
user through an edit function, or may have been set by an EPCL program. When <type> is zero or negative the present
value of <b> is used regardless of the susceptance limits of the SVD. A negative value can be used to lock an SVD
while indicating what the original type was.
3.8.1 Type 1-4 Controlled Shunts
PSLF models controlled-shunt devices (types 1, 2, 3, and 4) as shown in Figure 3.8.1. A controlled shunt consists of
switched and/or continuously-controlled shunt elements whose admittance is adjusted in order to regulate the voltage at a
bus.
A thyristor-controlled-reactor (TCR) based static VAR compensator (SVC) can be modeled as a Type 1 or 2 SVD with a
continuous element and, usually, one or more switched stages. (Note: The newer type 5 SVD is a more detailed model of
an TCR-based SVC.) A switched capacitor or reactor bank can be modeled as a Type 3 or 4 SVD with no continuous
element. (Note: The newer type 7 SVD is similar to Type 4 but with switching logic more typical of thyristor-switched
reactors and capacitors (TSR/TSC).)
An SVD can be connected at any bus, including generator buses.
The following data must be specified for each Type 1, 2, 3, or 4 SVD:
<bus> identifier of bus at which SVD is connected
<id> two character identifier of SVD, first character should be
'v' for identification in drawings
<st> SVD status
<typ> SVD type
<kreg> identifier of bus whose voltage is regulated by the SVD
<g> constant real per unit admittance associated with this SVD
<b> user-specified, or most recently computed, per unit
susceptance
<bmin> minimum B of continuous element in p.u. (not used by
types 3 & 4)
<bmax> maximum B of continuous element in p.u. (not used by
types 3 & 4)
<vband> width/2 of voltage control dead band, p.u. (around bus
Vsched) (used by types 3 and 4)
<nstepi> number of equal admittance steps in i-th switched element
<bstepi> susceptance of each switched element in i-th stage
<vrefmin> Voltage reference minimum, p.u. (used by types 3 & 4 if
vband <= 0.) [new in Version 18]
<vrefmax> Voltage reference maximum, p.u. (used by types 3 & 4 if
vband <= 0.) [new in Version 18]
An SVD may have 0 to 10 stages of switched admittance connected. Each stage may have any number of steps. Most
SVD's have less than 10 stages; "unused" stages must have the values of <nstep> set to zero.
The <type> of the SVD specifies how it is to be controlled, as follows:
type Form of control
1 Switched stepwise and continuous control. Steps are switched
on/off as necessary, and continuous element is active.
2 Continuous control. Continuous control between total
maximum and minimum susceptance of switched and
continuous elements
3 All-or-nothing full on/off control. Switched if voltage goes
outside of dead band. (No continuous element.)
4 Switched stepwise control only when voltage goes outside
dead band. (No continuous element.)
Control with <type> = 1
If <type> is 1, the SVD is controlled in load flow solutions by finding a combination of "on" and "off" stages and steps
that closely approximate the exact susceptance needed to hold the regulated voltage exactly on schedule, and then using
the continuous element (if any) to the limits of its range to "trim" the susceptance to the "exact" value. The <vband>
parameter is not used when <type> is equal to 1.
With <type> equal to 1, the SVD is treated as continuously adjustable during the initial iterations of the load flow
solution. The SVD will regulate voltage to <vsched> using a reactive range equal to the maximum and minimum values
of susceptance that it could achieve by full use of all switched elements and the continuous element. When the load flow
solution converges to twice the solution tolerance, the SVD's with <type> equal to 1 are set to the nearest fixed step,
which when combined with the output from the continuous element, gives the required B value. The load flow solution
continues with that fixed value of shunt susceptance until it is converged.
The load flow control logic with <type> equal to 1 is intended to simulate the step-by-step switching of real switched
shunt banks. It must be noted, however, that each real bank will have its own specific sequencing strategy and the result
of a solution with <type> equal to 1 may not produce exactly the combination of stage/step status that would be selected
by the real controller (whose details are unknown to PSLF).
When <type> is 1 the SVD logic will use:
· Only capacitive switched elements if the controlled voltage must be raised
· Only inductive switched elements if the controlled voltage must be lowered
If maneuvering range is available in the continuous element, it is used in any case.
With <type> = 1, the final susceptance of the SVD is not permitted to exceed the maximum and minimum values that
can be achieved by full use of all switched elements and the continuous element.
Control with <type> = 2
If <type> is 2, the SVD is treated as if it is continuously adjustable between the maximum and minimum values of
susceptance that it could achieve by full use of all switched elements and the continuous element.
This control option is appropriate when the SVD includes only a continuously adjustable element. It is also useful when
solving a case with switched elements where the step sizes are large and it is necessary to know what value of
susceptance would be needed to achieve a given bus voltage.
Control with <type> = 3
If <type> is 3, the admittance of the SVD is changed in load flow solutions only if the voltage at the controlled bus falls
below vsched - vband or above vsched + vband. If voltage is low, the SVD is switched to its most capacitive value and
frozen at that value for all succeeding iterations. If voltage is high, the SVD is switched to its most inductive value and
frozen. If it is suspected that the SVD should not be at the value at which it has been frozen, the solution should be
checked by a further execution of the soln command; all SVDs whose type is greater than zero are "unfrozen" at the start
of each execution of soln. For Version 18 and later, if vband <= 0, the vrefmin and vrefmax values are used as the
voltage regulating range.
Control with <type> = 4
If <type> is 4, the admittance of the SVD is changed in steps if the controlled voltage falls below vsched - vband or
above vsched + vband. Admittance steps are turned on and off in the sequence they appear in the SVD data record. For
Version 18 and later, if vband <= 0, the vrefmin and vrefmax values are used as the voltage regulating range.
Effect of Load Flow Solution SVD Adjustment flag
SVDs are adjusted in accordance with their types if SVD adjustment is turned on in the load flow solution. If SVD
adjustment is off, all SVD's are treated as if they are of <type> zero. If SVD adjustment is set to 2, all type 3 and 4 SVDs
are held fixed, but other types are allowed to regulate.
Effect of Load Flow Solution VAR limits flag
When load flow solutions are made with VAR limits active, that is, when the number of iterations is greater than
“Iterations before VAR limits” <solpar.itnrvl>, the maximum and minimum susceptance limits of type 1 and type 2
SVD's are respected. When VAR limits are not applied in the load flow, the maximum and minimum susceptance of type
1 and 2 SVD's are ignored and the SVD susceptance is set to the value needed to hold the controlled bus voltage at its
scheduled value. The use of VAR limits in the load flow solution has no impact on type 3 and 4 SVD's.
In any case, regardless of whether VAR limits are applied, the final value of SVD susceptance is placed in <b> so that it
will be used if the SVD is locked by setting <type> to zero, or if SVD adjustment is not turned on, in a subsequent
solution.
Figure 3.8.1
Controlled Static VAR Device with 1 Continuously Variable Element
And Up to 10 Switched Stages with Equal Steps in each Stage
3.8.2 Type 5, 6, and 7 Controlled Shunts
New in Version 18 are the types 5, 6, and 7 SVDs that correspond to the following new WECC-developed dynamic
models:
Type 5 – SVSMO1 – TCR-based SVC with coordinated shunt switching
Type 6 – SVSMO3 – STATCOM with coordinated shunt switching
Type 7 – SVSMO2 – TSC/TSR-based SVC with coordinated shunt switching
The logic for all 3 types is similar. The main differences are in the representation of the variable element, as follows:
Type 5 – Variable element can take any B value between Bmin and Bmax.
Type 6 – Variable element has a current limit (same positive and negative) input as Bmax
Type 7 – Variable element is a set of Thyristor-switched shunts input using the nstep, bstep parameters used with the
older SVD models. (These parameters are not used for the Type 5 and Type 6 SVDs.)
All three types combine the variable element with coordinated control of up to 8 switched shunts. The switched shunts
can be at any bus. They are input in the SHUNT table with the controlling SVD specified (see section 3.7).
Note: These SVD models are designed to be used without explicit representation of the transformer between the low-
side and high-side bus, i.e., with the susceptance, voltage, and current values as viewed from the high-side bus. If a
branch is inserted between the high-side bus and the SVD bus, e.g. for ease of identification of the SVD bus, this branch
should be a jumper (R = X = 0.). Otherwise, solution convergence problems may be encountered, especially when the xc
parameter is non-zero. Alternatively, the transformer can be explicitly included, but the SVD parameters must be
adjusted accordingly.
Type 5 Controlled Shunts
The following data is specified for each Type 5 SVD:
<bus> identifier of bus at which SVD is connected
<id> two character identifier of SVD, first character should be
'v' for identification in drawings
<st> SVD status
<typ> 5
<kreg> Regulated bus of SVD (If Xc is non-zero, kreg is ignored
and terminal bus is regulated.)
<g> constant real per unit admittance associated with this SVD
<b> user-specified, or most recently computed, p.u.
susceptance
<bmin> minimum B of continuous element, p.u.
<bmax> maximum B of continuous element, p.u.
<xc> Compensating reactance (slope) for voltage control, p.u.
<bminsh> Shunt switching will only be performed if required B is
<bmaxsh> outside the range of Bminsh to Bmaxsh.
<stsb> Slow control status: 1 = active; 0 = inactive
<bminsb> Slow B minimum B, p.u. (Types 5 and 7)
<bmaxsb> Slow B maximum B, p.u. (Types 5 and 7)
<vrefmin> Slow B minimum voltage, p.u.
<vrefmax> Slow B maximum voltage, p.u.
<dvdb> p.u. change in V / p.u. change in B (should be approx.
equal to the system short circuit impedance at the SVD
bus) – used only for slow B logic
The Vsched of the regulated bus in the BUSD table is used by the SVD as its scheduled voltage. If slow B control is
active, the vrefmin to vrefmax range should include the Vsched value.
Type 5 SVDs are active if the SVD adjustment flag is non-zero. If the SVD adjustment flag is 0, SVDs are held at their
input value of B.
Control with Slow B control INACTIVE
1. Voltage reference:
a. If Xc is zero, the voltage of the kreg bus is regulated to its bus scheduled voltage (Vsched in the BUSD table).
b. If Xc is non-zero, the voltage of the SVD terminal bus will be regulated with slope adjustment. During the
solution, the desired bus voltage is set equal to Vsched / (1. - Xc*Bsvd). To accomplish this, the busd[].vsched is
temporarily modified to this value, but is reset to its original value at the end of the run.
2. Initial solution: Until the load flow solution has converged to 10 times the mismatch tolerance, the SVD regulates
the specified voltage using the range Beffmin to Beffmax, determined internally by the program as follows:
Beffmin = Bmin + B of inductive shunts that are off-line and could be turned on
- B of capacitive shunts that are on-line and could be turned off
Beffmax = Bmax + B of capacitive shunts that are off-line and could be turned on
- B of inductive shunts that are on-line and could be turned off
3. Shunt switching: After convergence to 10 times the mismatch tolerance, one of the following occurs:
a. If the required B is within the range of Bminsh to Bmaxsh, the switched shunts are kept at their initial status and
the solution continues to iterate to determine the final value of the variable B.
a. If the required B is outside the range of Bminsh to Bmaxsh, one or more shunts are switched on or off to get
within that range, assuming that the full effect of the shunt switching is felt at the regulated bus. Since this may
not be the case, additional switching may be required as the solution continues until the required B is within the
Bmin to Bmax range of the variable element or until one of the limits is reached.
4. When solution converges to twice the mismatch tolerance and no switching actions have occurred, the required B of
the continuous element is “fixed” by putting it in the Y matrix. Iterations then continue with no further adjustment of
B.
Control with Slow B control ACTIVE
If the slow B (also referred to as slow reset) control is active, it will attempt to hold the B of the variable element within
the range Bminsb to Bmaxsb (these may be equal) as long as the voltage does not go outside the range of Vrefmin to
Vrefmax. (Note: The logic may change the bus scheduled voltage during the solution to a value within this range. At
the end of the solution, the bus scheduled voltage (in the BUSD table) is reset to its original value.
Until convergence to 10 times the mismatch tolerance and no further shunt switching occurs, the solution is the same as
without the “Slow B” control. After that, the following logic is used:
1. Slow B Logic: (for Bminsb < Bmaxsb) After solution converges to 10 times the mismatch tolerance and no further
shunt switching actions occur:
a. If the required B is within the range of Bminsb to Bmaxsb, and regulated voltage is within the range Vrefmin to
Vrefmax, no further adjustments are required.
b. If the required B is greater than Bmaxsb:
i. The scheduled voltage is adjusted downward using the following logic:
Vsched = Vsched – (Brequired – Bmaxsb) * dvdb, where dvdb is a user- specified sensitivity of changes
in voltage to changes in B at the SVD terminals (should be approximately equal to the system short circuit
impedance)
ii. If Vsched is less than Vrefmin, Vsched is set equal to Vrefmin and the full range of the continuous element
Vsched = Vsched + (Bminsb - Brequired) * dvdb, where dvdb is a user- specified sensitivity of changes
in voltage to changes in B at the SVD terminals (should be approximately equal to the system short circuit
impedance)
ii. If Vsched is greater than Vrefmax, Vsched is set equal to Vrefmax and the full range of the continuous
Figure 3.9.1
PSLF DC Converter Model
Figure 3.9.2
Arrangement of DC Converters and Transformers
Commutating Reactance
The commutating reactance as seen by each individual converter bridge (not each converter station) <dcc.xcomm>, must
be specified in ohms. The most commonly used value for <dcc.xcomm> is the reactance of the converter transformer in
ohms as seen from the d.c. winding side.
Converter Transformer Impedance
The converter transformer resistance and reactance, <dcc.r_tran> and <dcc.x_tran>, must be specified in per unit on the
MVA base of the converter transformer. These values are not used in the PSLF d.c. transmission simulation, but should
be entered and made consistent with <dcc.xcom> so that they can be exported for use by other programs.
Converter Transformer AC Base Voltages
The a.c. base voltages of the a.c. and d.c. side windings of the converter transformers, <dcc.vac_base> and
<dcc.vdc_base>, must be specified in kilovolts. These values should be the nameplate nominal RMS phase-to-phase
voltages of the transformer regardless of the value of the a.c. bus and d.c. bus base voltages.
Converter Transformer Fixed Tap Positions
The converter transformer fixed tap positions, <dcc.tapf_ac> and <dcc.tapf_dc>, must be specified in per unit on the
same basis as detailed in Section 3.3.2 for the fixed taps of normal a.c. transformers.
Converter Transformer Variable Tap Positions
The converter transformer variable tap positions, <dcc.tap_ac> and <dcc.tap_dc> must be specified in per unit on the
same basis as detailed in Section 3.3.2. The d.c. side variable tap is not adjusted by the d.c. transmission simulation but
may be adjusted by external means such as an EPCL program. The a.c. side variable tap is adjusted by the d.c.
simulation if the appropriate solution option and the flag <dcc.tran_kreg> are non- zero.
Converter Transformer Variable Tap Step
The converter transformer variable tap step size, <dcc.stepp>, may be either:
· Zero, if the variable tap is to be adjusted as a continuous variable
· A non-zero positive value, if the variable tap is to be adjusted step-by-step
Figure 3.9.3
Two Terminal d.c. Line Representation
Converter Transformer Minimum and Maximum Variable Tap Positions
The converter transformer minimum and maximum variable tap positions must be specified in per unit on the same basis
as detailed in Section 3.3.2.
Converter Minimum Angles
The rectifier minimum firing delay angle, <dcc.alpha_min>, and inverter minimum margin angle, <dcc.gamma_min>,
must be specified in degrees. Both may be specified for each converter but only the one corresponding to the converter
type <dcc.type> is used.
3.9.3 DC Converter Control
The d.c. transmission simulation adjusts converter firing angles and converter transformer variable tap positions in
accordance with the "Enable d.c. Converter Control" option of the soln command and the <dcc.tran_kreg> flags of the
individual converters. If both the soln flag and <dcc.tran_kreg> of a converter are set to 1, the converter transformer
variable tap is adjusted to hold the firing angle, alpha, or the margin angle, gamma, as close as possible to the minimum
value alpha_min or gamma_min. If <dcc.step> is non-zero, the tap is adjusted stepwise and the converter angle will be
placed close to but not at the minimum value. If <dcc.step> is zero, the tap position is treated hypothetically as a
continuous variable and the firing angles will be held exactly at their minimum values.
If either the "Enable" option of the soln command or <dcc.tran_kreg> is set to 0, the converter transformer tap is locked
and the converter angle is adjusted as necessary to meet the scheduled d.c. power, current, or voltage.
The minimum and maximum tap position and minimum converter angle limits are always respected. If a converter
cannot reach its schedule at minimum angle, it operates at minimum angle and control is transferred to its opposing
converter. No current margin is applied when 'control' is transferred from one converter to the other in load flow
solutions; rather the power or current schedule of the converter assuming control is used. The power or current schedules
of each pair of converters may be specified as if a current margin is in effect or as if the converter setpoints are adjusted
by the operators to achieve the scheduled load after recognition of current margin.
If the “Enable” option of the soln command is set to 1 and the <dcc.tran_kreg> is set to –1, the EPCL program stored in
upslfxx\stdepcl\mtTAP.p will be executed. Logic for more than one dc system (2-terminal or multi-terminal) can be
included in mtTAP.p.
Although current margin is not used in load flow solutions, it is advisable to specify it, in amps, because it is required in
dynamic simulations.
3.9.4 Four-Terminal DC
The special four-terminal dc system model that was used to simulate the Pacific DC Intertie (PDCI) of WECC is no
longer available. The Multi-terminal DC model should now be used to represent the PDCI and other multi-terminal
systems.
3.9.5 Multi-Terminal DC
Figure 3.9.4 shows a simplified schematic diagram of a typical multi-terminal dc system.
For the load flow solutions of the multi-terminal dc, the generic control algorithms built in PSLF follow the same
principals as the two-terminal dc control algorithms. That is, the angles (alpha and gamma) are adjusted within their
limits to drive the dc voltages as close as possible to their scheduled values. The transformer taps are adjusted within
their limits to drive the angles as close as possible to their minimum values.
Users also have the option of using the customized tap control algorithms for controlling the converter tranformer taps or
other setpoints. The customized control algorithms are implemented in an EPCL program, mtTAP.p, located in the
standard EPCL program directory, upslfxx\stdepcl. The program runs the EPCL on each iteration of the dc network
solution. If more than one dc system has customized control algorithms, they can all be incorporated into mtTAP.p
Figure 3.9.4
Example Multi-terminal DC Configuration
3.9.6 Customized DC Controls
The EPCL programming capability in PSLF provides a necessary tool for the implementation of customized algorithms
which are executed interactively with the PSLF core during simulations. Special interfaces must be set up in PSLF core
to run the PSLF core and the EPCLs coherently.
Early examples of these interfaces are epcmod C code model and the structure which supports in-run EPCLs.
The epcmod C code model is a shell which is able to hold the content of a dynamic model written in EPCL by users. The
epcmod models become helpful when users cannot find any dynamic model in the PSLF dynamic model library, which
satisfies his/her particular application need. An EPCL following defined epcmod format can be written to implement the
customized dynamic model algorithms which will be executed during dynamic simulations in the same fashion as any
other standard dynamic models.
In-run EPCLs are often used for implementing customized algorithms related to network monitoring and operation
during dynamic simulations.
The more recent applications of implementing customized algorithms are more specific - closely related to specific pieces
of C codes and their functionalities. Implementation of customized dc control algorithms using EPCLs is an example of
such.
3.9.6.1 Customized DC Controls for Load Flow Simulation
Special interfaces were set up between the EPCLs implementing customized dc controls and the PSLF core (particularly,
those C code functions related to dc system simulation in load flow). For the PDCI 3-terminal dc, customized tap control
algorithms are implemented in an EPCL program - mtTAP.p. This EPCL program must locate in the standard EPCL
program directory. As long as the EPCL program with the exact name exists in the standard EPCL program directory, the
customized controls will be executed. Otherwise, standard tap controls built in PSLF core will be executed.
For more details regarding this EPCL program, refer to the manual page for this EPCL program. You can view the
manual page for an EPCL program in standard EPCL program directory or in samples directory by using the PSLF pick
panel - highlighting the EPCL program then hitting F1.
3.9.6.2 Customized DC Controls for Dynamic Simulation
The PSLF dynamic model library includes several models for 2-terminal and back-to-back systems with typical control
logic. In addition, any dc system can be modeled using the DCMT dynamic model and user-written (EPCL) control
logic. The DCMT model can be used to simulate any of the dc systems included in the load flow data. Each instance of
the DCMT model can have associated with it an EPCL program with the control logic to adjust the converter firing
angles. The input data and interface between the EPCL model and DCMT model are described on the manual page for
the DCMT model.
For other applications of implementing customized controls using a combination of PSLF core and EPCL programs
interactively as referenced in Application Note 02.
3.9.7 Voltage-Source DC Converter
Voltage-Source DC converters appear, from an operational and computational standpoint, much like a synchronous
generators (or motors). Reactive power can be adjusted within limits to any lagging or leading value to regulate AC bus
voltage or to maintain a set power factor. In PSLF, the VSC converter is connected exactly the same as a conventional
(DCC) converter between an AC bus and a DC bus. A multi-terminal VSC configuration is possible although, at
present, the maximum current logic will not be functional.
The parameters that must be input include the following:
dc_mode One converter must regulate the DC voltage (dc_mode = 1); the rest regulate their DC power (dc_mode =
2)
ac_mode Each converter can either regulate AC voltage (ac_mode = 1) or power factor (ac_mode = 2)
dcset If dc_mode = 1, DC voltage in kV
If dc_mode = 2, DC power in MW; positive for inverter, negative for rectifier
acset If ac_mode = 2, power factor
if ac_mode = 1, not used (AC voltage is regulated to bus Vsched.
aloss, bloss Converter losses (kWloss = aloss + bloss * Idc)
minloss Minimum converter losses (kW)
smax Converter MVA rating (if <= 0, limit is not enforced)
imax Converter AC current limit (amps on AC side of converter) (if <= 0, limit is not enforced)
qmax, qmin Reactive power limits; positive for Q into network
pwf Power weighting factor when smax or imax limits is hit (0 to 1) -- 0: reduce P; 1: reduce Q
When ac_mode = 1, Porder and Qlimit are reduced
When ac_mode = 2, Porder and Qorder are reduced
If Porder is reduced at one end of a two-terminal system, Porder is also reduced at the other end
accounting for line and converter losses between the two ends.
3.10 Power Electronic Devices
3.10.1 UPFC (Unified Power Flow Controller)
The UPFC consists of both series and shunt ac/dc converters as shown schematically in Figure 3.10.1.
Figure 3.10.1
UPFC Schemetic
The effect of the series converter is to inject a series voltage between VI and VJ. There is also a small series impedance.
The shunt converter supplies real power to (or absorbs real power from) the series converter as required to produce this
series voltage. The shunt converter can also supply
(or absorb) reactive power to (from) the ac bus. The current from the bus to the shunt converter is therefore the
combination of these real and reactive currents. Figure 3.10.2 is an equivalent circuit of the UPFC showing the voltage
and current sources.
Figure 3.10.2
Equivalent Circuit of UPFC
The phasor relationships among several of the voltages in this equivalent circuit are shown in Figure 3.10.3. Note that
the phase angle (qS ) of the series voltage is with respect to the bus voltage, not the system reference.
Figure 3.10.3
Phasor Relationships
In general, the UPFC series converter can be controlled to produce a series voltage with any magnitude up to some
maximum and at any angle. Control of this voltage can, in turn, be used to regulate various quantities. For purposes of
this model, it is assumed that the series converter is used to regulate the real power (P L) flowing in the line and the
voltage magnitude (VJ ) on the to-bus side of the UPFC, or the real power (P L) and reactive power (QL) flowing in the
line. The reactive power capability of the shunt converter is used to regulate the from-bus voltage (VI ).
The regulating capability of the UPFC may be limited by several constraints. The following limits are incorporated in the
load flow model:
· The series voltage magnitude (VS ) must be less than VSmax.
· The dc power flow between the two converters must be less than PDCmax .
· The magnitude of the current in the shunt converter must be less than I SHmax.
The UPFC is modeled in the PSLF load flow solution as a transformer and a generator, as shown in Figure 3.10.4. The
transformer has adjustable tap ratio and phase shift, which are used to regulate the real power flow and the voltage
magnitude on the line side, or real and reactive power flow. The limits on tap ratio and phase shift are adjusted during the
load flow solution to ensure that the limits VSmax and PDCmax are not violated. The generator supplies or absorbs reactive
power to regulate the voltage at the bus. The VAR limits on the generator are adjusted during the load flow solution to
ensure that the I SHmax limit is not violated. Note that the real power flow through the shunt converter does not flow into
or out of this generator, but rather is part of the power flowing through the transformer. The reactive power flowing out
of this generator is the sum of the reactive power supplied by both the shunt and series converters of the UPFC.
Figure 3.10.4
Transformer/Generator Equivalent Model of UPFC
The use of the UPFC model in the load flow solution requires the use of several EPCL modules and special rules for data
entry, which are not all explained in this manual. If you need to use this model, contact GE for additional instructions.
3.11 Injection Groups and Injection Group Elements
Injection group and injection group element enables the user to define collection of different or same type of components
for various needs. Injection group is currently used for Remedial action schemes, but can also be used in the future for
scaling components or other purpose.
3.11.1 Injection Group
Injection group is the primary container of Group.
Required data
Each injection group must be given a <name>. The name should be unique among all the injection groups.
3.11.2 Injection Group Elements
Injection group element defines which components make up an injection groups. Injection group element can be a
generator, load, shunt or svd. Each injection group element should belong to 1 parent injection group.
Each injection group element has an object record type <rec> to represent the class of component, terminal bus <ibus> of
the component and <id> of the component.
rec = 3 indicates that the element is a generator
rec = 4 indicates that the element is a load
rec = 5 indicates that the element is a shunt
rec = 6 indicates that the element is a svd
Each injection group element has two attributes <prfcalcopt> and <prf> which defines how the injection group element
participates and contributes to the group.
prfcalcopt = 0 to use the user defined value of <prf>
prfcalcopt = 1 indicates to use generator pmax as the value of prf
prfcalcopt = 2 indicates to use generator pmax-pgen reserve as the
value
of prf
prfcalcopt = 3 indicates to use generator pgen-pmin reserves as the
value of prf
prfcalcopt = 4 indicates to use load pmax as the value of prf
prfcalcopt = 5 indicates to use shunt qmax as the value of prf
prfcalcopt = 6 indicates to use shunt up reserve (pmax-q) as the value
of prf
prfcalcopt = 7 indicates to use shunt down reserve (q-qmin) as the value
of prf
prfcalcopt = 8 indicates to use a given field/member from the object as
the value of prf
prfcalcopt = 9 indicates to use the output of a model expression as the
value of prf
3.12 Interface and Interface Elements Objects
Interface and interface element object enables the user to define collection of different or same type of components for
various needs.
3.12.1 Interface
Interface is the primary container defining the identification information for interface objects like number and name.
Required data
Each interface object must be given a number <itnum>, interface name <name>, and optional thermal ratings <rate[8]>
for flows in normal direction and <rater[8]> for flows in reverse direction. The <itnum> and <name> should be unique
among all the interface objects.
3.12.2 Interface Elements Object
Interface elements object defines which components make up an interface object. Interface element can be a branch
(secdd or tran), generator, load, interface, injection group, area tie-line, zone tie-line, BA tie-line or a DC line. Each
interface element object record should belong to 1 parent interface object.
Each interface element record has an object record type <objectstr> to represent the class of component, metered bus
<imeterbus> of the component and metered direction <meterdir> of the component.
objectstr = "secdd <FROM BUS> <TO BUS> <'CIRCUIT'> <SECTION>"; indicates that the element is a
transmission line
objectstr = "tran <FROM BUS> <TO BUS> <'CIRCUIT'>"; indicates that the element is a two winding
transformer
objectstr = "tran <FROM BUS> <TO BUS> <TERT BUS> <'CIRCUIT'>"; indicates that the element is a two
winding transformer
objectstr = "gen <FROM BUS> <'CIRCUIT'>"; indicates that the element is a generator
objectstr = "load <FROM BUS> <'CIRCUIT'>"; indicates that the element is a load
objectstr = "interface <INTERFACE NUMBER>"; indicates that the element is an interface
objectstr = "injectiongroup <’INJECTIONGROUP NAME’>"; indicates that the element is an injection
group
objectstr = "area <FROM AREA> <TO AREA>"; indicates that the element is made up of all area tie-
lines
objectstr = "zone <FROM ZONE> <TO ZONE>"; indicates that the element is made up of zone tie-lines
objectstr = "ba <FROM BA> <TO BA>"; indicates that the element is made up of BA tie-lines
objectstr = "dcl <DC FROM BUS> <DC TO BUS> <’CIRCUIT’>"; indicates that the element is a DC line
The meterbus indicates the metered terminal of branch (secdd or transfomers). The meterdir can be leaving (0) or
entering (1) the metered bus.
Each injection group element has an attribute participation factor <pf> which can take per unit values between (0-1.) and
defines how an interface element record participates and contributes to the interface object.
3.13 DataMaintainer Object
DataMaintainer object allows the user to represent an entity responsible for maintaining the input modeling data for an
object/equipment. This table provides direct contact information to retrieve any information pertaining to a particular
object/equipment. The DataMaintainer field can also be used to filter the input/output data similar to that of area/zone
based filters.
Each DataMaintainer object must be given an unique name <name[64]>, phone number <phone[32]>, e-mail address
<email[64]>, owning company name <company[64]>, and geographical location information like city/state
<location[64]>. If the current DataMaintainer object is inherited from another DataMaintainer object, the parent
DataMaintainer object’s name has to be assigned using <parent[64]>.
If a particular qualified equipment has an identifiable DataMaintainer object, then the “idm” field of that equipment
should be assigned with the index of the record from the DataMaintainer table.
For Example,
busd[10].idm = 2
3.14 Dynamic Simulation Modeling
3.14.1 General Points
In a PSDS dynamic simulation, the power system is described by the algebraic equations of the electric network and the
differential equations of the generators and other equipment connected to it. The network model is established in the load
flow working case. The loads of the load flow working case are normally applied to the network in the same way as in
load flow solutions, although the majority of the load is normally shifted from the constant MVA component that is used
in normal load flow work to the constant current and/or constant impedance components for stability work. (The change
of load characteristic can be executed conveniently by EPCL programs such as convl.p.)
The differential equation part of the dynamic simulation is handled by the Dynamic Model Library of PSDS. The
Dynamic Model Library is a set of code modules, each of which handles the functions involved in integrating the
differential equations of an item of equipment. The model library modules are "connected" to the appropriate buses and
branches of the network, and parameters of the models are established, by the RDYD command. The initial values of the
many variables in the dynamic models are established by the INIT command to correspond to the system voltage and
flow conditions in the load flow working case. After initialization, the values of these variables are re-determined,
instant-by-instant, by integrating the differential equations of the equipment models.
The integration of many of the equipment differential equations requires values of network bus voltages and branch
flows as input signals. These values are provided by solutions of the network equations subject to the several boundary
conditions of dynamic simulation. The overall dynamic simulation process is shown in Figure 3.14.1.
Output of results of the dynamic simulation is handled by a set of output channels. Variables from the dynamic
simulation models are assigned to output channels when INIT is executed. The values of the output channels are written
to a channel output file at specified sampling intervals throughout the simulation run.
3.14.2 The Dynamic Simulation Model Library
All dynamic simulation work uses the model library to read and store values of model parameters, to execute the
simulation calculations, and to send output variables to the channel recording file.
Each model is invoked by a record in the Dynamic Simulation Data File that is read by the RDYD command. Each
model has a set of prerequisites, requires a set of parameter values, and provides a set of outputs. These are specified in
the following model descriptions.
Figure 3.14.1
Basic Dynamic Simulation Process Steps
3.14.2.1 Standard Data Conventions
The models use standard data conventions as follows:
a. Per unit parameters of generators, excitation systems, and other models relating to a generator, except for turbine-
governor models, are stated in per unit with respect to the base MVA of that individual generator
b. Saturation factors for generators and exciters are stated with reference to the open circuit magnetization curve of
the equipment as defined in Figure 3.14.2.
c. Turbine-governor models produce turbine power as their output signal (pmech) and express the value of this
signal in per unit of the MVA base of the generator that the turbine drives. The per unit parameters for most of
the turbine-governor models can be input on the base of the turbine MW capability, by including this value
(mwcap) in the input. If mwcap is not input, the generator MVA base is used.
d. All shaft speed damping coefficients are stated with the dimensions Power/Speed, in per unit. Note that while
turbine output and shaft damping factors are stated in terms of power, the acceleration of the shaft is always
calculated as Torque/Inertia. Turbine torque is calculated internally as Power/Speed when required.
e. All reactance of generators and motors are unsaturated values. In models that recognize change of reactance with
saturation, the saturated reactance is determined internally from the unsaturated reactance and the open circuit
magnetization curve.
f. Provision for deadbands and non-linear valve (gate) characteristics have been added to many of the turbine-
governor models, as indicated in the description of each model. The characteristics of these elements are
specified in more detail below.
Figure 3.14.2
Definition of Saturation Factor for
Generator and Exciter Models
3.14.2.2 Deadbands
Two types of deadband can be represented in many of the turbine-governor models:
"Intentional deadband" at the input of the governor is a deliberate attempt to reduce mechanical wear. A typical value for
intentional deadband is about 0.01Hz. "Unintentional deadband" is present due to mechanical backlash in mechanical
components of governor systems. The amount of unintentional deadband is dependant on the condition of the equipment
and usually increases as parts wear out. A typical value is 0.0003 per unit of the MW capability of the turbine.
The "intentional deadband" can have several forms, depending on the input values of db1 and eps. The "bowtie" form
(Figure 3.14.3), typical of digital electro- hydraulic control, is obtained by setting db1 and eps equal. If eps=0, then there
is no hysteresis and the resulting deadband (Figure 3.14.4) is typical of mechanical-hydraulic or analog electro-hydraulic
controls. Partial hysteresis (Figure 3.14.5) can also be represented by setting eps < db1.
The "unintentional deadband" has a backlash hysteresis form as shown in Figure 3.14.6, with only one input parameter,
db2. For pre-disturbance initialization,
The input (GVdes) is set equal to the output (GV).\p
Figure 3.14.3
Intentional Deadband with "Bow-Tie" Hysteresis
Figure 3.14.4
Intentional Deadband with No Hysteresis
Figure 3.14.5
Intentional Deadband with Partial Hysteresis
Figure 3.14.6
Unintentional Deadband
3.14.2.3 Non-linear (Gate) Characteristics
Provision has been made in several of the turbine-governor models to represent the non-linear relationship between valve
or gate position and power output of the turbine. Piecewise linear curves of up to 6 points, plus the assumed (0.,0.) and
(1.,1.) point, can be input by the user. A straight line is used if no input or all zero input is given. Built-in curves can also
be used by setting the first parameter value (gv1) to a negative value.
The built-in curve for hydro models (ieeeg3, hygov, hyg3, hygov4, g2wscc, gpwscc)uses the following points:
GV 0.0 0.07 0.25 0.67 0.75 0.83 1.0
Pgv 0.0 0.0 0.20 0.80 0.90 0.96 1.0
The built-in curve for steam models (ieeeg1) uses the following points:
GV 0.0 0.40 0.50 0.60 1.0
Pgv 0.0 0.75 0.91 0.98 1.0
For the intercept valve characteristic of the tgov3 model, if the gv2 has a negative value, the following built-in values are
used:
GV 0.0 0.10 0.20 0.30 0.5 1.0
Pgv 0.0 0.45 0.67 0.80 0.91 1.0
3.14.2.4 Baseload Flag
A baseload option has been added to many of the prime mover models using the baseload_flag in the gens data structure
of the load flow data. Setting this flag has the following effect during execution of the dynamic simulation:
· Turbine governor upper control valve limit is set at initial condition valve position - governor can close
valve(s) but not open them
· Turbine governor upper and lower valve limits are set at initial valve position - governor cannot change valve
position
Setting this flag will cause most turbines to run at very nearly constant power. Note however, that the power output of
turbines that are sensitive to speed will still vary slightly as speed varies.
This flag can be set in the load flow record editor for the generator or by means of an EPCL program. It cannot be input
from an epc file.
3.14.3 Compatibility with Other Programs
3.14.3.1 WECC Stability Program
The WECC dynamic simulation data reading command, RDWS, recognizes WECC data records and produces data
records for a PSDS ".dyd" file. The correspondence between WECC models and PSDS models is as shown in Table
3.1. The PSDS "gens" and "ex" models, and models whose name includes "wecc" correspond exactly to WECC models
without translation of data. Other correspondences, such as that for "hygov", depend on the ability of the PSDS model to
match the WECC model by the appropriate choice of parameters but do not have an item-by-item correspondence of
parameter values. Where possible, RDWS determines parameters for the PSDS models to give correspondence with the
WECC models.
3.14.3.2 PSS/E Dynamic Simulation Program
The PTI PSS/E dynamics data is read in with the PSDS:DSIX command RDYP, or the EPCL file rdyp.p. Using the
EPCL program is the preferred method of conversion. This EPCL converts the PSS/E dynamics data file to a PSLF
dynamics data file called "ptitemp.dyd". This file is then automatically read in by the PSDS:RDYD command. Please
see Applications notes 98-1 for a detailed description of the PSS/E data conversion.
PSDS models whose names are the same as those of models in the PSS/E program have parameters that correspond item-
by-item to those of the PSS/E models and have corresponding transfer function performance. When reading data files that
originated in PSS/E the PSDS RDYD command takes the records with model names recognized by PSDS directly, and
ignores records containing model names that are not those of PSDS models.
PSDS has several models that are functionally equivalent to PSS/E models but whose names are different from those of
the corresponding PSS/E models. For example, the PSDS model vwscc represents conduction-angle-modulated static
VAR devices and can correspond to several PSS/E models named csvgn(x). Similarly the PSDS models wsccst and
ieeest can be used in place of several
PSS/E stabilizer models. However, where names do not match, RDYD does not automatically translate PSS/E data into
corresponding PSDS model invocations and data.
Table 3.1
Correspondence Between WECC Models and PSDS Models
Type of Model Description Model Name
GE WECC
MACHINE Detailed generator gentpf MF
Classical generator gencls MC
Induction Motor motorw MI
Detailed Two Rotor Generator gencc MF
EXCITATION Amplidyne/Magamp controlled dc exciter exdc1 FA
Amplidyne/Magamp controlled dc exciter bus exdc2a FB
voltage regulator supply
Alternator exciter with non-controlled exac1 FC
rectifier
Compound source static exciter exst2 FD
DC exciter with motor-driven rheostat exdc4 FE
contactor
Alternator exciter with non-controlled exac2 FF
rectifiers - high initial response
Alternator exciter with controlled rectifiers exac4 FG
Alternator exciter with non-controlled exac3a FH
rectifiers - output dependent control
Bus-fed static exciter exst1 FK
Series current-potential transformer or exst3a FL
internal winding exciter
Compound Source Rectifier exst2a FM
Alternator exciter with non-controlled exac6a FP
rectifiers and simplified supplied EVR
PRIME MOVER Steam ieeeg1 GS
Hydro hygov GW
Hydro ieeeg3 GH
Hydro g2wscc G2
Hydro gpwscc GP
Gas Turbine gast GG
STABILIZER Power system stabilizer wsccst ST,SB,SS,SP,SF
Power system stabilizer pss2a SD
Power system stabilizer psssb SD,SB
STATIC VAR Thyristor controlled reactor svcwsc V
RELAY Under frequency relay lsdt1 UF
Under voltage relay lsdt2 UV
Under frequency relay, 9 stages lsdt9 UF
Colstrip ATR colatr RC
Out-of-step relay ooslen RL
DC DC line model epcdc D
LOAD Algebraic voltage frequency dependence alwscc LA
blwscc LB
wlwscc
zlwscc
Table 3.2
Summary of PSDS Dynamic Models Listed Alphabetically
Model Name Description
_clod Complex load model for a group
_cmp_1pac Data management model for use with cmp_1pac
_cmp_dgpv Photovoltaic distributed generation data management model
_cmp_dist Data management model for use with cmp_dist
_cmp_elec Electronic load data management model
_cmp_mot3 Three phase motor data management model
_cmp_stat Static load data management model
_cmpldw Data Management model for WECC composite load model for a group
_cmpldw2 Data Management model for WECC composite modularized load model for a
group
agc2 Automatic Generation Control ( uclp2 )
alwscc, Load voltage/frequency dependence model
blwscc,
wlwscc,
zlwscc
ameta Bus voltage angle recorder for system, areas, or zones
ametr Bus angle recorder. Places bus angle in an output channel
apfl Pump/fan driven load model for asynchronous motors
blindef Blinder definition for WECC distance relay model
boel OEL model for Baster Voltage Regulators excluding brushless exciters
ccbt1 Steam plant boiler / turbine and governor
ccomp Cross and joint current compensation model
ccomp4 Cross current compensation model
ccst3 Two-plus-one Combined Cycle Plant Steam Turbine Model
cdc6 Two terminal d.c. transmission
chvdc2 Two terminal d.c. transmission
clod Complex Load Model (based on PSS/E CLODBL)
cmpld Composite Load Model
cmpldw Composite Load Model
cmpldw2 WECC Composite load model – modular version
cmpldwg Composite Load Model
colatr Colstrip Acceleration Trend Relay
colatr2 Colstrip Acceleration Trend Relay – 2016 revised
crcmgv Cross compound turbine governor model
dc2t Two terminal d.c. transmission
dcbtb1 Back to back d.c. terminal ( call GE )
dcmt Multi-terminal, monopolar d.c. transmission and bridge model. Controls are
implemented in an epcl program.
degov1 Woodward diesel governor
der_a (BETA) Distributed energy resource model
diffrlyg General line/transformer differential relay
diffrlys General line/transformer differential relay
distrel WECC distance relay
emac1t Modified IEEE (1992/2005) type AC1A excitation system (AEP)
epcdc Two terminal d.c. transmission
epcexc User written dynamic mdoel for a device connected directly to the network,
e.g. generator, motor, stacon
epcgen User written dynamic mdoel for a device connected directly to the network,
e.g. generator, motor, stacon
epcmd1 User written model
epcmd2 User written model
epcmd3 User written model
epcmod User written model
User written model
epctrb
esac1a IEEE (1992/2005) type AC1A excitation system
esac2a IEEE (1992/2005) type AC2A excitation system
esac3a IEEE (1992/2005) type AC3A excitation system
esac4a IEEE (1992/2005) type AC4A excitation system
esac5a IEEE (1992/2005) type AC5A excitation system with optional speed
multiplier
esac6a IEEE (1992/2005) type AC6A excitation system with optional speed
multiplier
esac7b IEEE (2005) type AC7B excitation system
esac8b IEEE (2005) type AC8B with added speed multiplier
esdc1a IEEE (1992/2005) DC1A excitation system model with optional speed
multiplier
esdc2a IEEE (1992/2005) DC2A excitation system model with optional speed
multiplier
esdc3a IEEE (1992/2005) DC3A excitation system model with optional speed
multiplier
esdc4b IEEE (1992/2005) DC4B excitation system model with optional speed
multiplier
esst1a IEEE (1992/2005) type ST1A excitation system
esst2a IEEE (1992/2005) type ST2A excitation system with optional lead-lag block
esst3a IEEE (1992/2005) type ST3A excitation system
esst4b IEEE (2005) type ST4B excitation system
esst5b IEEE (2005) type ST5B excitation system
esst6b IEEE (2005) type ST6B excitation system
esst7b IEEE (2005) type ST7B excitation system
estor2 Generic energy storage device
ewtgfc Electrical control for full-converter wind turbine generator
ewtgfx Electrical control for full-converter wind turbine generator
ex21br IEEE (2005) type AC7B excitation system with OEL
for EX2100BR
exac1 IEEE type AC1 excitation system
exac1a Modified IEEE type AC1 excitation system
exac1m Modified IEEE type AC1 excitation system
exac2 IEEE type AC2 excitation system
exac3 IEEE type AC3 excitation system
exac3a IEEE type AC3 excitation system
exac4 IEEE type AC4 excitation system
exac6a IEEE type AC6a excitation system
exac8b Brushless exciter with PID voltage regulator
exbbc Transformer fed static excitation system
exdc1 IEEE type 1 excitation system model. Represents systems with d.c. exciters
and continuously acting voltage regulators, such as amplidyne-based
excitation systems
exdc2 IEEE type 2 excitation system model
exdc2a Represents systems with d.c. exciters and continuously acting voltage
regulators, such as amplidyne-based excitation systems
exdc4 IEEE (1968) type 4, DC3 (1980), and DC3A (1992, 2005) excitation system
model with added speed multiplier
exeli Static PI transformer fed excitation system
exeli2 VATECH (ELIN) excitation system model with PSS
exivo IVO excitation system
exoel OEL model for GE EX2100 Voltage Regulators
expic1 Proportional/Integral Regulator Excitation System model
exst1 IEEE type ST1 excitation system
exst2 IEEE type ST2 excitation system
exst2a IEEE type ST2 excitation system
exst3 IEEE type ST3 excitation system
exst3a IEEE type ST3 excitation system
exst4b IEEE type ST4 excitation system
exuel UEL model for GE EX2100 Voltage Regulators
exwtg1 Excitation system model for wound rotor induction wind-turbine generator
exwtge Excitation (converter) control model for GE wind-turbine generators
fmeta Bus frequency recorder. Places area, zone or all bus frequencies in output
channels
fmetb System frequency recorder.
fmetr Bus frequency recorder. Places bus frequency in an output channel
focdt Generator field overcurrent relay with definite time characteristic
g2wscc Double derivative hydro governor and turbine. (Represents WSCC G2
governor plus turbine model.)
gast Single shaft gas turbine
gegt1 Gas Turbine Model for Combined Cycle plant
gencc Generator represented by uniform inductance ratios rotor modeling to match
WSCC type F model, used for two rotor generators; shaft speeds effects are
neglected
gencls Synchronous machine represented by "classical" modeling
genind “Two-cage" or "one-cage" induction generator
genoostrip Generator out-of-step tripping model
genrou Solid rotor generator represented by equal mutual inductance rotor modeling
gensal Salient pole generator represented by equal mutual inductance rotor modeling
gensdo Generator with stator d.c. current represented
gentpf Generator represented by uniform inductance ratios rotor modeling to match
WSCC type F model; shaft speed effects are neglected
gentpj Generator represented by uniform inductance ratios rotor modeling to match
WSCC type F model with modified saturation model, shaft speed effects are
neglected
genwri Wound-rotor induction generator model (with variable external rotor
resistance)
gewtg Generator/converter model for GE 1.5 and 3.6 MW wind turbines
gewtgx
ggov1 General Governor Model
ggov2 General Governor Model with frequency-dependent fuel flow limit
ggov3 General Governor Model with GE gas turbine control features
gp1 Generic Generator Protection System
gp2 Generic Generator Protection System
gpwscc PID governor and turbine. (Represents WSCC GP governor plus turbine
model.)
gthev Thevenin source of defined voltage amplitude and frequency
h6b Hydro turbine governor model
h6bd Model to manage parameter data for h6b
h6e Hydro Turbine with American Governor Company controller
hvdcau WSCC DC Auxiliary signal
hyg3 PID governor, double derivative governor
hygov4 Hydro turbine and governor
hygov8
hygov Hydro turbine and governor. Represents plants with straight forward penstock
configurations and hydraulic-dashpot governors or electro-hydraulic
governors that mimic dashpot governors (i.e. Woodard hydraulic; ASEA
electro-hydraulic)
hygovr Fourth order lead-lag governor and hydro turbine
hypid Hydro turbine and governor. Represents plants with straight forward penstock
configurations and proportional-integral derivative governor. Includes
capability to represent blade angle adjustment of Kaplan and diagonal flow
turbines.
hyst1 Hydro turbine with Woodward Electro-hydraulic PID Governor, Penstock,
Surge Tank, and Inlet Tunnel
ieeeg1 IEEE turbine/governor model
ieeeg3 IEEE hydro turbine/governor model
ieeest Power system stabilizer
ieeet1 "Old" IEEE type 1 excitation system model. Represents systems with d.c.
exciters and continuously acting voltage regulators, such as amplidyne-based
excitation systems
ifmaz Records MW and MVAR flow on an interface between zones and/or areas
ifmon Records MW and MVAR flow on a network interface
imetr Branch current recorder. Places branch power and current flow in output
channels
lcfb1 Turbine Load Controller model
ld1pac Performance-based model of single-phase air conditioner load
ldelec Electronic Load Model
ldtrpmon Load trip monitor
lhfrt Low/High Frequency Ride Through generator
protection
lhfrta Low/High Frequency Ride Through generator
protection. For all generators in an area/zone or system
lhsrt Low/High speed generator protection
lhvrt Low/High Voltage Ride Through generator
protection
lhvrta Low/High Voltage Ride Through generator
Protection. For all generators in an area/zone or system
lm2500 LM2500 Aero-derivative gas turbine governor
lm6000 LM6000 Aero-derivative gas turbine governor
lnrelscan Line relay scanning model
lofscan Loss-of-field scanning model
locti Line overcurrent relay with inverse time characteristic
lsdt1 Definite time under frequency load shedding relay acting at a bus
lsdt2 Definite time under voltage load shedding relay acting at a bus
lsdt3 Definite time under voltage load shedding relay acting at a bus
lsdt3a Definite time under voltage load shedding relay acting at a bus
lsdt7 Definite time under frequency load shedding relay acting at a bus
lsdt8 Definite time under frequency load shedding relay acting at a bus
lsdt9 Definite time under voltage load shedding relay acting at a bus, with 9 stages
lsmon Load Shedding Monitor
ltc1 Transformer load tap changer
mexs Manual excitation control with field circuit resistance
monds
mondsa
monit Dynamic simulation solution monitor (EPC specified model)
motor1 Induction machine modeled with rotor flux transients
motorc Phasor model of single-phase A/C motor
motorw Induction machine modeled with rotor flux transients
motorx "Two-cage" or "one-cage" induction machine for part of a bus load
msc1 Mechanically Switched Capacitor
mslr1 Mechanically Switched Line Reactor
msr1 Mechanically Switched Reactor
mss1 Mechanically Switched Shunt
mss2 Mechanically Switched Shunt
oel1 Over excitation limiter for synchronous machine excitation systems
ooslen Out-of-step relay with 3 zones, each of which may be lens, tomato or circle
ooslnq Out-of-step relay with 3 zones, each of which can be a circle, lens, tomato, or
rectangle
oosmho Out-of-step mho relay with blinders. Outputs apparent impedance and timer
status
oosscan Out-of-step line scanning model
pfpb Simple Power-Frequency control
pfqrg Power factor / Reactive power regulator
pidgov Hydro turbine and governor. Represents plants with straight forward penstock
configurations and "three term" electro-hydraulic governors (i.e. Woodard
electronic)
plefd Plays in generator field voltage
plnow Delivers played-in signal to dynamic simulation models
plref Play-in of voltage regulator and governor reference settings
pltp Plays in turbine power
pmetr Monitor for total real/reactive power output of a multi-unit plant
pss1a Single input Power System Stabilizer
pss2a Dual input Power System Stabilizer (IEEE type PSS 2A)
pss2b IEEE (2005) type PSS2B dual-input power system stabilizer
pss3b IEEE (2005) type PSS3B dual-input power system stabilizer
psssb Dual input Power System Stabilizer (IEEE type PSS 2A) +Voltage Boost
signal Transient Stabilizer and Vcutoff
psssh Model for Siemens ”H infinity” power system stabilizer with generator
electrical power input
psssvc Single input power system stabilizer for SVSMO1 and SVCALS models
pv1e PV converter control model
pv1g PV converter control model
pvd1 Distributed PV system model
rect Rectifier-supplied load
reec_a Renewable energy electrical control model
reec_b Renewable energy electrical control model
regc_a Generator/converter model
reloden Load encroachment definition for WECC Distance and
Overcurrent Relay Models
repc_a Power Plant Controller
repc_b Power Plant Controller
rexs General purpose rotating excitation system
scgap Series Capacitor Gap
scmov Metal Oxide Varistor (MOV) and bypass protection for a series capacitor
scrx Simple excitation system model representing generic characteristics of many
excitation systems; intended for use where negative field current may be a
problem
secld1 Secondary load model with continuous reset of transformer tap ratio
secld2 and Secondary load model with continuous reset of
secld3 transformer tap ratio and 3-component characteristic
sexs Standard excitation system model representing generic characteristics of many
excitation systems; intended for use where details of the actual excitation
system are unknown and/or unspecified
smes1 Controllable current injection model
socdt Generator stator over-current relay with definite time characteristic
socti Generator stator over-current relay with inverse time characteristic
spfl Pump/fan driven load model for synchronous motors
stag1 Single Shaft Combined-Cycle Plant Model
stcon Static Synchronous Condenser
stcon1 Static Synchronous Condenser Kernal Model w/o control
svcwsc Static Var Device
svsmo1 Static Var System
svsmo2 Discretely Controlled SVC
svsmo3 Static Var System (STATCOM)
tcsc Thyristor controlled series compensation model
texs General Purpose Transformer Fed Excitation System Model
tgov1 Basic steam turbine and governor
tgov3 Turbine/governor with fast valving
tiocrs Time inverse overcurrent relay standards model for transmission lines and
transformers
tlin1 Under-voltage or under-frequency relay tripping line circuit breaker(s)
uclp2 Unit Control Loop (used with AGC2)
uel1 IEEE UEL1 under excitation limiter
uel2c IEEE UEL2C under excitation limiter
upfc Power Flow Controller
uvls1 Definite time under voltage load shedding relay with option for independent
action of stages
vcr Remote voltage Controller
vfmetr Volts-per-Hertz recorder
vfmgen Volts-per-Hertz recorder for generators
vft Variable frequency transformer
vmeta Area bus voltage recorder. Places bus voltage in output channels
vmetr Area bus voltage recorder. Places bus voltage in output channels
vphr1 Volts-per-Hertz relay model for generator
vscdc Voltage source converter two-terminal dc
vscdc1 Two-terminal voltage source converter HVDC system
vwscc Static var device (compatible with WSCC model)
w2301 Woodward 2301 governor and basic turbine model
wlwscc Load voltage/frequency dependence model
wndtge Generator/converter model for GE 1.5 and 3.6 MW wind turbines
wndtrb Wind turbine control model
wndvar Supervisory voltage/VAr control for a wind power plant of GE wind turbines
wsccst WSCC Power System Stabilizer
wt1g Generator model for generic Type-1 wind turbines
wt1p Pseudo governor model for Type-1 wind turbines (conventional directly
connected induction generator)
wt1p_b Generic wind turbine pitch controller for WTGs of Type 1 and 2
wt1t Wind turbine model for Type-1 wind turbines (conventional directly
connected induction generator)
wt2e Generic wind turbine plant models for Type 2 machines
wt2g Generic wind turbine plant models for Type 2 machines
wt2p Generic wind turbine plant models for Type 2 machines
wt2t Generic wind turbine plant models for Type 2 machines
wt3e Excitation (converter) control model for Type 3 (doubly fed) wind turbines
wt3g Generator/converter model for Type 3 (doubly-fed) wind turbines
wt3p Pitch controller model for Type 3 (doubly-fed) wind turbines
wt3t Wind turbine model for Type 3 (doubly-fed) wind turbines
wt4e Generic wind turbine plant models for Type 4 machines
wt4g Generic wind turbine plant models for Type 4 machines
wt4t Generic wind turbine plant models for Type 4 machines
wtga_a Simple aerodynamic model
wtgp_a WTG Pitch controller
wtgq_a WTG Torque controller
wtgt_a Drive train model
zdcb Distance relay with circle, lens, or quadrilateral characteristics. With
Directional Comparison Blocking (DCB)
zlin1 Basic impedance distance relay. Places apparent impedance in output
channels.
zlin2 Basic impedance distance relay. Line may have non-radial tap buses.
zlinw Default impedance distance relay. Applies to all branches within specified
voltage range.
zmetr Apparent impedance recorder. Places apparent impedance in output channels.
zmetra Apparent impedance recorder for all lines in a system, area or zone
zonedef Zone definition for WECC Distance Relay Model
zpott Distance relay with circle, lens, or quadrilateral characteristics. With Permissive
Overreaching Transfer Trip (POTT)
zqlin1 Basic distance relay with circle, lens, or rectangular characteristic.
zqlin2 Basic distance relay with circle, lens, or rectangular characteristic. Line may
have non-radial tap buses..
Table 3.3
Summary of PSDS Dynamic Models Listed by Type
Model Name Description
MACHINE MODELS
gencc Generator represented by uniform inductance ratios rotor modeling
to match WECC type F model, used for two rotor generators; shaft
speeds effects are neglected
gencls Synchronous machine represented by "classical" modeling
genind "Two-cage" or "one-cage" induction generator
genrou Solid rotor generator represented by equal mutual inductance rotor
modeling
gensal Salient pole generator represented by equal mutual inductance rotor
modeling
gensdo Generator with stator d.c. current represented
gentpf Generator represented by uniform inductance rotor modeling to
match WECC type F model; shaft speed effects are neglected
gentpj Generator represented by uniform inductance ratios rotor modeling
to match WSCC type F model with modified saturation model; shaft
speed effects are neglected
genwri Wound-rotor induction generator model (with variable external rotor
resistance)
gewtg Generator/converter model for GE wind turbines
motor1 Induction machine modeled with rotor flux transients
motorc Phasor model of single-phase A/C
motorw "Two-cage" or "one-cage" induction machine for part of a bus load
motorx "Two-cage" or "one-cage" induction machine for part of a bus load
shaft5 Please contact GE for details
EXCITATION MODELS
ccomp Cross and joint compensation model
ccomp4 Cross and joint compensation model
emac1t Modified IEEE (1992/2005) type AC1A excitation system (AEP)
esac1a IEEE (1992/2005) type AC1A excitation system
esac2a IEEE (1992/2005) type AC2A excitation system
esac3a IEEE (1992/2005) type AC3A excitation system
esac4a IEEE (1992/2005) type AC4A excitation system
esac5a IEEE (1992/2005) type AC5A excitation system
esac6a IEEE (1992/2005) type AC6A excitation system
esac7b IEEE (2005) type AC7B excitation system
esac8b IEEE (2005) type AC8B excitation system
esdc1a IEEE (1992/2005) DC1A excitation system model with optional speed
multiplier
esdc2a IEEE (1992/2005) DC2A excitation system model with optional speed
multiplier
esdc3a IEEE DC3A (1992, 2005) excitation system model with added speed
multiplier
esdc4b IEEE DC4B (1992/2005) excitation system model with added speed
multiplier
esst1a IEEE (1992/2005) type ST1A excitation system
esst2a IEEE (1992/2005) type ST2A excitation system
esst3a IEEE (1992/2005) type ST3A excitation system
esst4b IEEE (2005) type ST4B excitation system
esst5b IEEE (2005) type ST5B excitation system
esst6b IEEE (2005) type ST6B excitation system
esst7b IEEE (2005) type ST7B excitation system
ex21br IEEE (2005) type AC7B excitation system with OEL for EX2100BR
exac1 IEEE type AC1 excitation system
exac1a Modified IEEE type AC1 excitation system
exac1m Modified IEEE type AC1 excitation system
exac2 IEEE type AC2 excitation system
exac3 IEEE type AC3 excitation system with added speed multiplier
exac3a IEEE type AC3 excitation system
exac4 IEEE type AC4 excitation system
exac6a IEEE type AC6a excitation system
exac8b Brushless exciter with PID voltage regulator
exbbc Transformer fed static excitation system.
exdc1 IEEE type 1 excitation system model. Represents syetems with d.c.
exciters and continuously acting voltage regulators, such as
amplidyne-based excitation systems
exdc2 and exdc2a IEEE type 2 excitation system model. Represents systems with d.c.
exciters and continuously acting voltage regulators, such as
amplidyne-based excitation systems
exdc4 "Old" IEEE type 4 excitation system model. Represents systems with
d.c. exciters and non- continuously acting voltage regulators.
exeli Static PI transformer fed excitation
exeli2 VATECH (ELIN) excitation system model with PSS
exivo IVO Excitation System
expic1 Proportional/Integral Regulator Excitation System Model
exst1 IEEE type ST1 excitation system
exst2 IEEE type ST2 excitation system
exst2a IEEE type ST2 excitation
exst3 IEEE type ST3 excitation system
exst3a IEEE type ST3a excitation system
exst4b IEEE type ST4 excitation system
exwtg1 Excitation system model for wound rotor induction wind-turbine
generator.
exwtge Excitation (converter) control model for GE wind-turbine generators
ieeet1 "Old" IEEE type 1 excitation system model. Represents systems with
d.c. exciters and continuously acting voltage regulators, such as
amplidyne-based excitation systems
mexs Manual excitation control with field circuit resistance
pfqrg Power factor / Reactive power regulator
rexs General purpose rotating excitation system
scrx Simple excitation system model representing generic characteristics of
many excitation systems, intended for use where negative field current
may be a problem.
sexs Standard excitation system model representing generic characteristics
of many excitation systems, intended for use where details of the
actual excitation system are unknown and/or unspecified.
texs general purpose static excitation model able to include field current
regulator
uel1 IEEE UEL1 under excitation limiter
uel2c IEEE UEL2C under excitation limiter
PRIME MOVER MODELS
ccbt1 Steam plant boiler / turbine and governor
ccst3 Two-plus-one Combined Cycle Plant Steam Turbine Model
crcmgv Cross compound turbine governor model.
degov1 Woodward diesel governor
g2wscc Double derivative hydro governor and turbine (Represents WECC
G2 governor plus turbine model.)
gast Single shaft gas turbine
gegt1 Gas Turbine Model for Combined Cycle plant
ggov1 General Governor Model
ggov2 General Governor Model with frequency-dependent fuel flow limit
ggov3 General governor model with GE gas turbine control features
gpwscc PID governor and turbine. (Represents WECC GP governor plus
turbine model.)
h6b Hydro turbine governor model
h6e Hydro Turbine with American Governor Company controller
h6bd Model to manage parameter data for the h6b hydro turbine governor model
hyg3 PID governor, double derivative governor
hygov4 Hydro turbine and governor
hygov8 Hydro Governor Model for Up to 4 Units on Common Penstock
hygov Hydro turbine and governor. Represents plants with straight forward
penstock configurations and hydraulic-dashpot governors or electro-
hydraulic governors that mimic dashpot governors (i.e. Woodard
hydraulic; ASEA electrohydraulic)
hygovr Fourth order lead-lag governor and hydro turbine.
hypid Hydro turbine and governor
hyst1 Hydro turbine with Woodward Electro-hydraulic PID Governor,
Penstock, Surge Tank, and Inlet Tunnel
ieeeg1 IEEE turbine/governor model
ieeeg3 IEEE hydro turbine/governor model.
lcfb1 Turbine load controller model.
lm2500 LM2500 Aero-derivative gas turbine governor
lm6000 LM6000 aero-derivative gas turbine governor.
pidgov Hydro turbine and governor. Represents plants with straight forward
penstock configurations and "three term" electro-hydraulic governors
(i.e. Woodard electronic)
stag1 Single Shaft Combined-Cycle Plant Model
tgov1 Basic steam turbine and governor
tgov3 Turbine/governor model with fast valving.
w2301 Woodward 2301 governor and basic turbine model.
wndtge Wind turbine and turbine control model for GE 1.5 and 3.6 MW wind
turbines
Wind turbine control model.
wndtrb
STABILIZER MODELS
ieeest Power system stabilizer
pss1a Single input power system stabilizer
pss2a Dual input Power System Stabilizer (IEEE type PSS 2A)
pss2b IEEE (2005) type PSS2B dual-input power system stabilizer
pss3b IEEE (2005) type PSS3B dual-input power system stabilizer
psssb Dual input Power System Stabilizer (IEEE type PSS 2A) with Voltage
Boost signal Transient Stabilizer and Vcutoff
psssh Model for Siemens “H infinity” power system stabilizer with
generator electrical power input
psssvc Single input power system stabilizer for SVCMOD
wsccst WECC Power System Stabilizer
TRANSMISSION
DEVICE
ltc1 Transformer Load Tap Changer
msc1 Mechanically Switched Capacitor
mslr1 Mechanically Switched Line Reactor
msr1 Mechanically Switched Reactor
mss1 Mechanically Switched Shunt
mss2 Mechanically Switched Shunt
scgap Series Capacitor Gap
scmov Metal Oxide Varistor (MOV) and bypass protection for a series
capacitor
smes1 Controllable current injection model
stcon Static Synchronous Condenser
stcon1 Static Synchronous Condenser Kernal Model
svcwsc Static Var Device (compatible with WECC models)
svsmo1 Static Var System
svsmo2 Discretely Controlled SVC
svsmo3 Static Var System
tcsc Thyristor controlled series capacitor
upfc United Power Flow Controller
vft Variable Frequency Controller
vwscc General static var device
HVDC MODELS
cdc6 Two terminal d.c. transmission
chvdc2 Two terminal d.c. transmission
dc2t Two terminal d.c. transmission
dcbtb1 Back to back d.c. terminal ( call GE )
dcmt Multi-terminal, monopolar d.c. transmission and bridge model.
Controls are implemented in an epcl program
epcdc Two terminal d.c. transmission
hvdcau WECC DC Auxiliary signal
vscdc Voltage Source Converter Two-Terminal dc
vscdc1 Two-terminal voltage source converter HVDC system
LOAD MODELS
_clod Complex Load Model for a group
_cmp_1pac Data management model for use with cmp_1pac
_cmp_dgpv Photovoltaic distributed generation data management model for use with
CMPLDWX composite load model
_cmp_elec Electronic load data management model for usewith CMPLDWX
composite load model
_cmp_mot3 Three-phase motor data management model for use with CMPLDWX
composite load model
_cmp_stat Static load data management model for use with CMPLDWX composite
load model
_cmpldw WECC Composite load model for a group (climate zone, area, zone,
owner) using data management models for submodel data input.
_cmpldw2 WECC Composite load model for a group (climate zone, area, zone,
owner) using data management models for submodel data input.
alwscc Area-wide load voltage/frequency dependence model
apfl Pump/fan driven load model for asynchronous motors
blwscc Bus load voltage/frequency dependence model
clod Complex load model (based on PSS/E CLODBL)
cmpld Composite Load Model
cmpldw Composite Load Model
cmpldw2 Composite Load Model - Modularized
cmpldwg WECC Composite load model with distributed generation
ld1pac Performance-based model of single-phse air conditional load
ldelec Electronic load model
ldtrpmon Load trip monitor
lsmon Load Shedding Monitor
motorc Phasor model of single-phase A/C compressor motor
motorw Induction machine modeled with rotor flux transients
motorx "Two-cage" or "one-cage" induction machine for part of a bus load
rect Call GE
secld1 Secondary load model with continuous reset transformer tap ratio
secld2 and Secondary load model with continuous reset of transformer tap ratio
secld3 and 3-component characteristic
spfl Pump/fan driven load model for synchronous motors
wlwscc World-wide load voltage/frequency dependence model
zlwscc Zone-wide load voltage/frequency dependence model
METERS
ameta Bus voltage recorder for system, areas or zones
ametr Bus angle recorder. Places bus angle in an output channel
fmeta Bus frequency recorder. Places area, or all bus frequencies in output
channels
fmetb System frequency recorder.
fmetr Bus frequency recorder. Places bus in an output channel
ifmaz Records MW and MVAR flow on an between zones and/or areas
ifmon Records MW and MVAR flow on a network interface
imetr Branch current recorder. Places branch and current flow in output
channels.
monds
mondsa
monit Dynamic simulation solution monitor
pmetr Monitor for total real/reactive power output of multi-unit plant
vfmetr Volts-per-Hertz recorder
vfmgen Volts-per-Hertz recorder for generators
vmeta Area bus voltage recorder. Places bus voltage output channels
vmetr Bus voltage recorder. Places bus voltage an output channel
zmetr Apparent impedance recorder. Places impedance in output channels.
Arguments: <flag> Flag for addition or deletion
0 add
1 delete
<
injgrpname
Name of the injection group to add
>
<brflag>
0 (default) : if brflag is 0, adjbuses would also account
for switches and breakers
1 (optional) : if brflag is 1, adjbuses would not account
for switches and breakers and only return adjacent buses
connected via lines and transformers
<ret> number of adjacent buses
add_del_injgrp () is used to add or delete an injection group. The function returns 0 on success
and negative value on failure.
Example 1:
@ret = getf("t3ps.sav") /* sample system */
@flag = 0 /* 0 add, 1 delete */
@ret = add_del_injgrp(@flag,"InjGroup1")
if( @ret < 0 )
logterm("Cannot add injection group<")
endif
Function adjareazone()
Form: <ret> = adjareazone(<flag>,<number>)
Arguments: <flag> 0 =area,1= zone,2=ba
<number> area or zone number or ba number
<ret> number of adjacent areas or zones or bas
adjareazone() returns the number of adjacent areas or zones connected to <number> and stores
the actual area or zone numbers into the epcl return value array. The epcl return value array
called ret[0].number stores all the connected area or zone numbers starting at location
ret[0].number[0] and proceeding upwards until all connecting area or zone numbers are stored.
Example 1:
@ret = getf("t3ps.sav") /* sample system */
@flag = 0
@number = 3
@num =
adjareazone(@flag,@number)
returns a value of 3 for @num and stores the external area numbers
ret[0].number[0] =1
ret[0].number[1] = 2
ret[0].number[2] = 4
The epcl return value array is a temporary storage location for any epcl function therefore the
user should save desired results before executing another epcl function.
Function adjbuses()
Form: <ret> = adjbuses(<bus>,<flag>,<brflag>)
Arguments: <bus> external bus number or bus identifier
<flag> 0 (default)
1 (optional) : useful only if buildeff(1) is called before
calling this function. If flag is 1, adjbuses would also
account for transformer status of 2, 3 and 4 for three
winding transformers and won’t consider the bus
connected through the ‘out of service’ winding as an
adjacent bus.
<brflag>
0 (default) : if brflag is 0, adjbuses would also account
for switches and breakers
1 (optional) : if brflag is 1, adjbuses would not account
for switches and breakers and only return adjacent buses
connected via lines and transformers
<ret> number of adjacent buses
adjbuses() returns the number of adjacent buses connected to <bus> and stores the actual
external bus numbers into the epcl return value array. The epcl return value array called
ret[0].number stores all the connected bus numbers starting at location ret[0].number[0] and
proceeding upwards until all connecting bus numbers are stored. The value array called
ret[0].string stores the circuit identifiers.
Example 1:
@ret = getf("t3ps.sav") /* sample system */
@ret = buildeff(0) /* build the effective */
/* (internal) branch list */
@bus = 23
@num = adjbuses(@bus)
returns a value of 4 for @num and stores the external bus numbers
ret[0].number[0] = 21 ret[0].string[0] = 1
ret[0].number[1] = 22 ret[0].string[1] = 1
ret[0].number[2] = 33 ret[0].string[2]
ret[0].number[3] = 231 ret[0].string[3] = 1
Example 2:
@ret = getf("t3ps.sav") /* sample system */
@ret = buildeff(0) /* build the effective */
/* (internal) branch list */
/* typed name */
@ret = adjbuses("JONESUB
115")
/* or use logbuf to put name+kv into $name*/
logbuf($name,busd[0].busnam:8:0," ",busd[0].basekv:6:2)
@ret = adjbuses($name)
The epcl return value array is a temporary storage location for any epcl function therefore the
user should save desired results before executing another epcl function.
CAUTION: Execute buildeff() prior to calling the adjbuses function in order to build the
internal linked list array. This function returns zero if the target bus is a jumpered bus
and buildeff(2) is used.
Function adjsubst()
Form: <ret> = adjsubst(<flag>,<number>,<outflag>)
Arguments: <flag> 0 =internal substation number, 1 external substation
number, 2= substation name
<number> Substation number (internal or external) or substation
name based upon the flag
<outflag> 0 (default) : Information about branch connecting the
substation to neighboring substations or buses will be
returned using external bus number and external
substation number
1 : Information about branch connecting the substation
to neighboring substations or buses will be returned
using internal bus number and internal substation
number
<ret> number of adjacent substations and adjacent buses
without any substation designation
adjsubst() returns the number of substations and buses (without any substation assignment)
which are adjacent to the given substation. The function provides the list of buses adjacent
(connected via branches) to this substation. This list of neighboring buses would include
adjacent buses in neighboring substations as well as adjacent buses without any substation
assignment. The list of adjacent buses and their substation assignments are stored in the epcl
return value array starting at location ret[0].number[0]. Every adjacent bus would have five
entries in the ret[].number structure corresponding to the bus within the substation, adjacent bus
number, substation number corresponding to the adjacent bus, type of branch (0 for secdd/1
transformer) and index of branch (secdd or transformer based upon the type) connecting the
substation to the neighboring bus. The ckt id of branch connecting the substation to the
neighboring bus is stored in ret[0].string structure starting at location ret[0].string[0].
Example 1:
@ret = getf("test.sav")
/* sample system */
@flag = 0
@number = 3
@num = adjsubst(@flag,@number)
logterm("There are ",@num," neighboring buses &
substations<")
if( @num >= 0 )
@k = 0
for @j = 0 to @num-1
logterm("substation bus= ",ret[0].number[@k], "<")
logterm("adjacent bus= ",ret[0].number[@k+1],
"<")
logterm("adjacent bus substation=",ret[0].number[@k+2],"<")
logterm("branch type ",ret[0].number[@k+3],"<")
@k = @k + 5
logterm("branch id ",ret[0].string[@j],"<")
next
endif
Example 2:
@ret = getf("test.sav")
/* sample system */
@flag = 1
@number = 3
@num = adjsubst(@flag,subst[@number].num)
logterm("There are ",@num," neighboring buses &
substations<")
if( @num >= 0 )
@k = 0
for @j = 0 to @num-1
logterm("substation bus= ",ret[0].number[@k], "<")
logterm("adjacent bus= ",ret[0].number[@k+1],
"<")
logterm("adjacent bus substation=",ret[0].number[@k+2],"<")
logterm("branch type ",ret[0].number[@k+3],"<")
@k = @k + 5
logterm("branch id ",ret[0].string[@j],"<")
next
endif
Example 3:
@ret = getf("test.sav")
/* sample system */
@flag = 2
@number = 3
@num = adjsubst(@flag,subst[@number].name)
logterm("There are ",@num," neighboring buses &
substations<")
if( @num >= 0 )
@k = 0
for @j = 0 to @num-1
logterm("substation bus= ",ret[0].number[@k], "<")
logterm("adjacent bus= ",ret[0].number[@k+1],
"<")
logterm("adjacent bus substation=",ret[0].number[@k+2],"<")
logterm("branch type ",ret[0].number[@k+3],"<")
@k = @k + 5
logterm("branch id ",ret[0].string[@j],"<")
next
endif
The epcl return value array is a temporary storage location for any epcl function therefore the
user should save desired results before executing another epcl function.
Function azcalc() and
azget()
Form: <ret> = azcalc(<flag>)
Arguments: <flag> 0 to calculate and return area totals
1 to calculate and return zone totals
2 to calculate and return owner totals
<varno> 1 to 31 see list below
1 to return loss MW 17 to return MW mile
2 to return loss MVAR 18 to return MVAR mile
3 to return generator MW 19 to return mile
4 to return generator MVAR 20 to return mismatch MW
5 to return load MW 21 to return mismatch MVAR
6 to return load MVAR 22 to return number of buses
7 to return constant I load MW 23 to return number of branches
8 to return constant I load MVAR 24 to return number of trans
9 to return constant Z load MW 25 to return number of gens
10 to return constant Z load MVAR 26 to return number of loads
11 to return shunt MW 27 to return number of shunts
12 to return shunt MVAR 28 to return number of svds
13 to return svd MW 29 to return number of dc buses
14 to return svd MVAR 30 to return number of dc lines
15 to return interchange MW 31 to return number of dc conv.
16 to return interchange MVAR 32 to return actual MW load
33 to return actual MVAR load
34 to return DG load total MW
35 to return DG load total MVAR
<number> area,zone or owner number
<ret> return value
azcalc() executes calculations of totals that can be reported with azget() must be called
before the first call to azget() but after the most recent solution of the load flow case or other
data operation that would affect the results of azget().
azcalc() always returns zero.
azget() returns the value of the quantity indicated by its
varno argument.
Example: @area = 5
@i = azcalc(0) /* area totals */
@mwloss = azget(1,0,@area)
logterm("area",@area:4:0,"loss =",@mwloss:7:1, "<")
NOTE: Each azget() MUST BE on it's own line of epcl code. You cannot concatenate
more than one azget() per line.
Function beep()
Form: <ret> = beep()
Arguments: <ret> 0
Call this function to generate the beep tone from your program
Function bix()
Form: <ret> = bix(<busno>)
Arguments: <busno> external bus number
<ret> index of bus in busd table
If you have an external bus number, the corresponding bus index can be looked up by calling the
translation function bix() as follows:
@bus_index = bix(@external_no)
Before PSLF Version 10.0, this took the form of:
@bus_index = bix[@external_no].i
The corresponding function to translate external DC buses in the dcb table is dcbix.
Function buildeff()
Form: <ret> = buildeff(<tp>)
Arguments: <tp> 0 = all lines regardless of status
1 = all lines in service only
2 = buses connected by jumpers treated as one
regardless of status
<ret> return value is 0
buildeff() is used to build the effective (internal) branch and transformer list. The primary
purpose of this function is to be called prior to the adjbuses() function.
Example:
@ret = buildeff(0) /* build the effective */
/* (internal) branch list */
Function busident()
Form: <ret> = busident(<busno>,<qte>,<numfor>,<namefor>,<kvfor>)
Arguments: <busno> internal bus number
<qte> quotation mark flag (0 no, 1 yes)
<numfor> bus number format (7)
<namefor> bus name format (12)
<kvfor> basekv format (6.2)
<ret> string containing the full bus identifier (MUST be a PSLF
* variable because the length is greater than 15 characters
busident() is used to output a bus identifier. The return value is a string which contains the bus
identifier in <bus number> + <bus name> + <basekv> format. The only required parameter is
<busno>. This is the INTERNAL bus number. If quotation marks are required around the <bus
name>, set the optional <qte> flag to 1. This would be required if the resulting bus identifier is to
be used in an EPCL input file. The last three parameters are also optional and are used to format
the <bus number>, <bus name>, and/or <basekv> outputs. If these parameters are left out, the
default formats are the following:
bus number 7 characters wide, right justified
bus name 12 characters wide, right justified
basekv 6 characters wide, 2 decimals, right justified
Any of these may be left justified by adding a - to the left of the formats. All parameters after the
<busno> are optional but the order is mandatory. If you only need to specify <kvfor>, you MUST
include the entries for all of the preceeding parameters.
Since the return value is a string, this function may used as a string argument to other epcl
functions (i.e. logterm, logprint).
Example:
dim *bid[1][32]
*bid[0] = busident(3)
logterm("The fourth bus is ",*bid[0],"<")
file = "bid.out"
@ret = openlog($file)
logprint($file,"The fifth bus is ",
busident(4,1,7,8,7.3), "<")
close($file)
end
Function change_dir()
Form: <ret> = change_dir(<path>)
Arguments: <path> a filesystem path
<ret> not used
The change_dir function is used to change the current working directory. The working
directory is used by all PSLF commands that do not have a file path set up in
PARM:PATHS. The EPCL commands that write and read to files also use the working
directory. The default working directory is the directory in which you started PSLF. This can
also be modified through the PARM:PATHS panel by changing the PWD field.
Example:
@ret = change_dir("c:\basecases")
@ret = change_dir("\upslf\samples")
Function create_op_dyd ()
Form:
<ret> = create_op_dyd (<outputdydfile>, <operationsavfile>,
<planningsavfile>, <planningdydfile>, <mappingfile>,
<filterlistfile>)
Arguments:
<outputdydfile> Name of the DYD file to be created by the
function which can be used with the operations
case
<operationsavfile> Name of the operations power flow case (SAV
file)
<planningsavfile> Name of the planning power flow case (SAV file)
<planningdydfile> Name of the planning dynamics data file (DYD
file)
<mappingfile> Name of the mapping file containing the mapping
of the generators between planning and operations
case
<filterlistfile>) Name of the filterlistfile containing the list of
dynamic models not be linked to operations case
from the planning model
<ret> return value
0 on success
-ve value on failure
The create_op_dyd() function will create a dynamics data file (dyd) for the operations case by
linking the planning case (sav and dyd) with the operations power flow case based upon the
mapping specified between the planning and operations. The dyd file created by the function
can then be used with the operations case.
The filterlistfile is a text file containing the list of dynamic models to be ignored from the
planning dynamics database. An example is shown below. The list of the dynamic models to
be ignored starts with the keyword deselectdynamicmodels and is enclosed in curly braces ( {
and } ). Each model in the list is specified in a given row.
Example:
Example 1
dim *outputdydfil[1][256]
dim *opersavfil[1][256]
dim *planningsavfil[1][256]
dim *planningdydfil[1][256]
dim *mappingfil[1][256]
dim *filterlistfil[1][256]
*outputdydfil[0] = "output.dyd"
*opersavfil[0] = "WSMExport_May16_2014_23_16.sav"
*planningsavfil[0] = "15hw3a.sav"
*planningdydfil[0] = "15hw31.dyd"
*mappingfil[0] = "wsmmapping.csv"
*filterlistfil[0] = "modelfilter.lst"
@ret = create_op_dyd( *outputdydfil[0], *opersavfil[0], *planningsavfil[0],
*planningdydfil[0], *mappingfil[0], *filterlistfil[0] )
if( @ret < 0 )
logterm("create_op_dyd failed<")
endif
Function createsubsystem()
Form: <ret> =
createsubsystem(<subsystem_name>,<nbuses>,<array>[<bus_no>])
Arguments: <subsystem_name> Name of the sub-system
<nbuses> Total number of buses selected
<array>[<bus_no>] Array <bus_no> of which each element points to
a particular bus
<ret> 0 or higher value on success. Negative value on
failure
createsubsystem() carves out and creates a sub-system out of the full-blown power flow
basecase. The sub-system is defined by the user by providing all the bus numbers that constitute
the sub-system.
It is to be noted that the user will need to load a valid power flow basecase (either via EPCL or
interactive mode) prior to calling createsubsystem().
createsubsystem() creates the sub-system by preserving only the user selected buses along with
all the equipment connected directly at and between those buses. This function also preserves
the area, zone, and owner information pertaining to the user selected buses.
If the selected sub-system contains any DC converter devices, the corresponding power
injections will be replaced with load devices.
After the sub-system carving process is complete, createsubsystem() function saves the sub-
system to a new power flow file defined by <subsystem_name>. To help the users quickly
retrieve the power flow basecase prior to the carving process, this function also saves the pre-
carve basecase to a file “<subsystem_name>_PreCarve.sav”.
Example :
dim #bus[100]
@nbus = 4
#bus[0] = 15021
#bus[1] = 14931
#bus[2] = 14932
#bus[3] = 14933
@ret = createsubsystem("PALOV",@nbus,#bus[0],#bus[1],#bus[2],#bus[3])
logterm("ret = ", @ret)
Function datachange ()
The function is used to modify the data of an existing element in the working case.
Form: <ret> =datachange(<flag>,<type>,<element identifier>,<string list> <parameter list> )
Arguments:
<flag> flag is an integer,
1 if element identifier is specified by external numbers
2 if element identifier is specified by bus names
when the names flag of 2 is selected , eight/twelve character bus name and
the basekv is specified within double quotes
<type> type is number or the valid name of table in double quotes (e.g. “secdd”).
The type option determines the format of element identifiers, the members
in the string list and parameter list.
type =0 or <element identifier> = <ibus>
“busd ”
ibus is bus number or combination of bus name and bus basekv (e.g. “GEN
13.8”). When the flag of 2 is selected, the eight/twelve character name and
the basekv are specified within double quotes. When the flag is 1, the ibus
is external bus number.
<string list> is the list of members in busd table (see table 5.2 in PSLF
user’s manual) whose values will be modified; the string list is enclosed
with double quotes. It contains up to 15 members.
<parmeter list> lists new values of members specified in the string list,
separated by comma.
Return codes:
0 success
1 insufficient input
2 bus not found when using combination of bus name and basekv
3 negative bus number
4 bus number is out of range
5 bus does not exist
-2 negative base voltage
-3 bus type is out of range
Example:
@ret = datachange(1,0,100,“type lid area”, 2, “long id”, 1)
@ret = datachange(2,0,”GEN 13.8”,“type lid area”,2,“long
id”,1)
Both functions set the bus type, long id and area of the bus 100 or GEN
13.8KV.
type =1 or < element identifier > = (<ibus> <jbus> <id> <scd>)
“secdd” ibus and jbus are from bus and to bus of the branch section. When the
names flag is selected, the eight/twelve character name and the basekv is
specified within double quotes.
id is the circuit id, “1 ” by default, and scd is the section number, 1 by
default.
<string list> is the list of members in secdd table (see table 5.2 in PSLF
user’s manual) whose values will be modified. The string list is enclosed
with double quotes.
Use ‘rate1’ in string list to modify the rating set 1, ‘rate2’ for rating set 2
and so on. Use ‘nown1’ in string list to modify the owner 1, and ‘pown1’
for owner factor of the owner 1.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 branch bus out of range
3 branch bus does not exist
4 branch from and to buses are identical
5 branch does not exist
Example;
@ret = datachange(1,1,100, 200, “1 “, 1, “zsecr zsecx”,
0.001,0.001)
type =2 or < element identifier > =(<ibus> <jbus> <id> <kbus>)
“tran ” ibus and jubs are from bus and to bus of the transformer, kbus is the
tertiary bus of a three winding transformer, -1 for a two winding
transformer. When the names flag is selected, the eight/twelve character
name and the basekv is specified within double quotes.
id is the circuit id, “1 ” by default .
<string list> lists members in tran table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘rate1’ in string list to modify the rating set 1, ‘rate2’ for rating set 2
and so on. Use ‘nown1’ in string list to modify the owner 1, and ‘pown1’
for owner factor of the owner 1.
<parmeter list> lists new values of members specified in the string list.
When the number flag is selected, the value of the member ‘kreg’ is the bus
number whose voltage is controlled by the transformer. When the names
flag is selected, the value for the member ‘kerg’ is the eight/twelve
character name and the basekv specified within single quotes.
When adding a three winding transformer, the star bus of the three winding
transformer is generated by PSLF automatically.
Return codes:
0 success
1 insufficient input
2 transformer bus out of range
3 transformer bus does not exist
4 transformer from and to buses are identical
5 transformer does not exist
Example;
@ret = datachange(1,2,100, 200, “1 “, -1, “zpsr zpsx”,
0.001,0.001)
The api defines the from-to impedance of a two winding transformer
between 100 to 200.
type =3 or < element identifier > =(<ibus> <id>)
“gens ” ibus is generator bus number or combination of bus name and bus basekv
(e.g. “GEN 13.8”). When the names flag is selected , the eight/twelve
character name and the basekv is specified within double quotes.
id is the generator id, “1 ” by default .
<string list> lists members in gens table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘nown1’ in string list to modify the owner 1 and ‘pown1’ for owner
factor of the owner 1, and so on. Each generator can have up to 8 owners.
<parmeter list> lists new values of members specified in the string list.
When the number flag is selected, the value of the member ‘igreg’ is the
bus number whose voltage is controlled by the generator. When the names
flag is selected, the value for the member ‘igreg’ is the eight/twelve
character name and the basekv specified within single quotes.
Return codes:
0 success
1 insufficient input
2 generator bus out of range
3 generator bus does not exist
4 generator does not exist
Example;
@ret = datachange(1,3,100, “1 “, “mbase igreg”, 100.0,50)
The api sets generator MVA base to 100MVA and the regulated bus to 50.
type =4 or < element identifier > =(<ibus> <id>)
“load ” ibus is load bus number or combination of bus name and bus basekv (e.g.
“GEN 13.8”). When the names flag is selected , the eight/twelve character
name and the basekv is specified within double quotes.
id is the load id, “1 ” by default .
<string list> lists members in load table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 load bus out of range
3 load bus does not exist
4 load does not exist
type =5 or < element identifier > =(<ibus> <id>)
“shunt”
ibus is shunt bus number or combination of bus name and bus basekv (e.g.
“GEN 13.8”), and the eight/twelve character name and the basekv is to
specified within double quotes.
id is the shunt id, “1 ” by default .
<string list> lists members in shunt table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘nown1’ in string list to modify the owner 1 and ‘pown1’ for owner
factor of the owner 1, and so on. Each shunt can have up to 4 owners.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 bus shunt bus out of range
3 bus shunt bus does not exist
4 bus shunt does not exist
type =501 or < element identifier > =(<ibus> <jbus> <id> <scd> <lid>)
“lshunt ” ibus and jbus are from bus and to bus of the branch section. When the
names flag is selected, the eight/twelve character name and the basekv is
specified within double quotes.
id is the circuit id, “1 ” by default, and scd is the section number, 1 by
default. lid is the line shunt id, no default is allowed.
<string list> lists members in shunt table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘nown1’ in string list to modify the owner 1 and ‘pown1’ for owner
factor of the owner 1, and so on. Each line shunt can have up to 4 owners.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 line shunt bus out of range
3 line shunt bus does not exist
4 line shunt does not exist
type =6 or < element identifier > =<ibus> <id>
“svd ” <ibus> is svd bus number or combination of bus name and bus basekv
(e.g. “GEN 13.8”). When the names flag is selected, the eight/twelve
character name and the basekv is specified within double quotes.
id is the svd id, “1 ” by default .
<string list> lists members in svd table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘bstep1’ and ‘nstep1’ to specify the number of steps and stepsize of
block 1, and so on. Use ‘nown1’ in string list to modify the owner 1 and
‘pown1’ for owner factor of the owner 1, and so on. Each svd can have up
to 4 owners.
<parmeter list> lists new values of members specified in the string list.
When the number flag is selected, the value of the member ‘kreg’ is the bus
number whose voltage is controlled by the generator. When the names flag
is selected, the value for the member ‘kerg’ is the eight/twelve character
name and the basekv specified within single quotes.
Return codes:
0 success
1 insufficient input
2 svd bus out of range
3 svd bus does not exist
4 svd does not exist
type =7 or < element identifier > =<iarea>
“area ” <iarea> is area number.
<string list> lists members in area table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
When the number flag is selected, the value of the member ‘iswng is the
area swing bus number. When the names flag is selected, the value for the
member ‘iswng’ is the eight/twelve character name and the basekv
specified within single quotes.
Return codes:
0 success
1 insufficient input
2 invalid area number
3 area does not exist
Example:
@ret = datachange(1,7,1, “name pnetdes”, “AREA1”,100.0)
type =8 or < element identifier > =<izone>
“zone ” <izone> is zone number.
<string list> lists members in zone table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 invalid zone number
3 zone does not exist
type =9 or <element identifier> = <ibus>
“dcb ”
ibus is dc bus. When the names flag is selected , the eight/twelve character
name and the basekv is specified within double quotes. When adding a new
dc bus, its bus number must be specified.
<string list> lists members in dc bus table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 dc bus not found when using combination of bus name and basekv
3 negative bus number
4 dc bus number is out of range
5 dc bus does not exist
type =10 or < element identifier > =(<ibus> <jbus> <id>)
“dcl ” ibus and jbus are from bus and to bus of the dc line. When the names flag
is selected, the eight/twelve character name and the basekv is specified
within double quotes.
id is the circuit id, “1 ” by default.
<string list> lists members in dc line table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘rate1’ in string list to modify the rating set 1, ‘rate2’ for rating set 2
and so on.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 dc line bus out of range
3 dc line bus does not exist
4 dc line from and to buses are identical
5 dc line does not exist
type =11 or <element identifier> = (<ibus> <dcbus> <id>)
“dcc ”
ibus is converter ac bus, dcbus is the converter dc bus. When the names
flag is selected, the eight/twelve character name and the basekv is to
specified within double quotes.
<string list> lists members in dcc table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 ac/dc bus out of range
3 dcc does not exist
type =13 or < element identifier > =(<ibus> <jbus> <id>)
“bface” ibus and jubs are from bus and to bus of the branch section. When the
names flag is selected, the eight/twelve character name and the basekv is
specified within double quotes.
id is the circuit id, “1 ” by default, and scd is the section number, 1 by
default.
<string list> lists members in bface table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 bus does not exist
3 branch does not exist
4 interface does not exist
type =14 or < element identifier > =<iitface>
“itface ” iitface is interface number.
<string list> lists members in itface table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘rate1’ in string list to modify the rating set 1, ‘rate2’ for rating set 2
and so on.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 invalid interface number
3 interface does not exist
type =16 or < element identifier > =<iowner>
“owner” iowner is owner number.
<string list> lists members in owner table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 invalid owner number
3 owner does not exist
type =19 or < element identifier > =<itztab>
“tztab” itztab is impedance correction table number.
<string list> lists members in tztab table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘t1’ and ‘f1’ in string list to define the turns ratio and factor for the first
sample point, and so on. Each z table can have up to 11 owners.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 impedance correction table does not exist
type =20 or < element identifier > =<ibus> <id>)
“qtable ” ibus is generator bus. When the names flag is selected , the eight/twelve
character name and the basekv is specified within double quotes.
id is the generator id, “1 ” by default .
<string list> lists members in qtaqble table (see table 5.2 in PSLF
user’s manual) whose values will be modified.
Use ‘p1’, ‘qmx1’ and ‘qmn1’ in string list to define the active power,
maximum q and minimum q of the first sample point, and so on. Each
generator q table can have up to 20 points.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 invalid bus number
3 generator bus does not exist
4 generator does not exist
type =21 or < element identifier > = (<ibus> <jbus> <id>)
“breaker” ibus and jbus are from bus and to bus of the breaker. When the names flag
is selected, the eight/twelve character name and the basekv is specified
within double quotes.
id is the breaker id, “1 ” by default.
<string list> is the list of members in breaker table (see table 5.2 in
PSLF user’s manual) whose values will be modified. The string list is
enclosed with double quotes.
Use ‘rate1’ in string list to modify the first rating, ‘rate2’ for the second
rating and so on
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 breaker bus out of range
3 breaker bus does not exist
4 breaker from and to buses are identical
5 breaker does not exist
Example:
@ret = datachange(1,21,100, 200, “1 “, “st rate1”, 1,10.0)
Where the st of breaker between 100 and 200 buses is changed
to 1 and its first rating is set to 10.
type =23 or < element identifier > =<isub>
“subst” <isub> is substation number.
<string list> lists members in subst table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 invalid substation number
3 substation does not exist
Example:
<ret> = datachange(1,23,1, “name latitude”, “SUB1”,0.001)
type =24 or < element identifier > =<iba>
“ba” iba is balancing authority number.
<string list> lists members in balancing authority table (see table 5.2 in
PSLF user’s manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 invalid ba number
3 ba does not exist
Function datarec ()
The function is used to modify the data of an existing element in the working case, or to insert a new element record
after the last one in the corresponding table of the working case. Note that all strings are enclosed in double quotes.
Form: <ret> =datarec(<flag>,<type>,<element identifier>,<string list> <parameter list> )
Arguments:
<flag> flag is an integer,
1 if element identifier is specified by external numbers
2 if element identifier is specified by bus names
when the names flag of 2 is selected , eight/twelve character bus name and
the basekv is specified within double quotes
<type> type is number or the valid name of table in double quotes (e.g. “secdd”).
The type option determines the format of element identifiers, the members
in the string list and parameter list.
type =0 or <element identifier> = <ibus>
“busd ”
ibus is bus number or combination of bus name and bus basekv (e.g. “GEN
13.8”). When the flag of 2 is selected, the eight/twelve character name and
the basekv are specified within double quotes. When the flag is 1, the ibus
is external bus number. When adding a new bus, the flag can not be 2
because its bus number must be specified.
<string list> is the list of members in busd table (see table 5.2 in PSLF
user’s manual) whose values will be modified; the string list is enclosed
with double quotes. It may contain up to 15 members.
<parmeter list> lists new values of members specified in the string list,
separated by comma.
Return codes:
0 success
1 insufficient input
2 bus number not found when using combination of bus name and
basekv
3 negative bus number
4 bus number is out of range
-2 negative base voltage
-3 bus type is out of range
Example:
@ret = datarec(1,0,100, “type lid area”, 2, “long id”, 1)
@ret = datarec(2,0,”GEN 13.8”, “type lid area”, 2, “long id”,
1)
Both functions set the bus type, long id and area of the bus 100 or GEN
13.8KV.
type =1 or < element identifier > = (<ibus> <jbus> <id> <scd>)
“secdd” ibus and jbus are from bus and to bus of the branch section. When the
names flag is selected, the eight/twelve character name and the basekv is
specified within double quotes.
id is the circuit id, “1 ” by default, and scd is the section number, 1 by
default.
When inserting a new section of a multiple section line, the line section is
placed in the proper position based on its section number.
<string list> is the list of members in secdd table (see table 5.2 in PSLF
user’s manual) whose values will be modified. The string list is enclosed
with double quotes. It may contain up to 10 members.
Use ‘rate1’ in string list to modify the rating set 1, ‘rate2’ for rating set 2
and so on. Use ‘nown1’ in string list to modify the owner 1, and ‘pown1’
for owner factor of the owner 1.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 branch bus out of range
3 branch bus does not exist
4 branch from and to buses are identical
Example;
@ret = datarec(1,1,100, 200, “1 “, 1, “zsecr zsecx rate1”,
0.001,0.001, 100.0)
type =2 or < element identifier > =(<ibus> <jbus> <id> <kbus>)
“tran ” ibus and jubs are from bus and to bus of the transformer, kbus is the
tertiary bus of a three winding transformer, -1 for a two winding
transformer. When the names flag is selected, the eight/twelve character
name and the basekv is specified within double quotes.
id is the circuit id, “1 ” by default .
<string list> lists members in tran table (see table 5.2 in PSLF user’s
manual) whose values will be modified. The string list is enclosed with
double quotes. It may contain up to 10 members.
Use ‘rate1’ in string list to modify the rating set 1, ‘rate2’ for rating set 2
and so on. Use ‘nown1’ in string list to modify the owner 1, and ‘pown1’
for owner factor of the owner 1.
<parmeter list> lists new values of members specified in the string list.
When the number flag is selected, the value of the member ‘kreg’ is the bus
number whose voltage is controlled by the transformer. When the names
flag is selected, the value for the member ‘kerg’ is the eight/twelve
character name and the basekv specified within single quotes.
When adding a three winding transformer, the star bus of the three winding
transformer is generated by PSLF automatically.
Return codes:
0 success
1 insufficient input
2 transformer bus out of range
3 transformer bus does not exist
4 transformer from and to buses are identical
Example;
@ret = datarec(1,2,100, 200, “1 “, -1, “zpsr zpsx”,
0.001,0.001)
The api defines the from-to impedance of a two winding transformer
between 100 to 200.
type =3 or < element identifier > =(<ibus> <id>)
“gens ” ibus is generator bus number or combination of bus name and bus basekv
(e.g. “GEN 13.8”). When the names flag is selected , the eight/twelve
character name and the basekv is specified within double quotes.
id is the generator id, “1 ” by default .
<string list> lists members in gens table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘nown1’ in string list to modify the owner 1 and ‘pown1’ for owner
factor of the owner 1, and so on. Each generator can have up to 8 owners.
<parmeter list> lists new values of members specified in the string list.
When the number flag is selected, the value of the member ‘igreg’ is the
bus number whose voltage is controlled by the generator. When the names
flag is selected, the value for the member ‘igreg’ is the eight/twelve
character name and the basekv specified within single quotes.
Return codes:
0 success
1 insufficient input
2 generator bus out of range
3 generator bus does not exist
Example;
@ret = datarec(1,3,100, “1 “, “mbase igreg”, 100.0,50)
The api sets generator MVA base to 100MVA and the regulated bus to 50.
type =4 or < element identifier > =(<ibus> <id>)
“load ” ibus is load bus number or combination of bus name and bus basekv (e.g.
“GEN 13.8”). When the names flag is selected , the eight/twelve character
name and the basekv is specified within double quotes.
id is the load id, “1 ” by default .
<string list> lists members in load table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 load bus out of range
3 load bus does not exist
type =5 or < element identifier > =(<ibus> <id>)
“shunt”
ibus is shunt bus number or combination of bus name and bus basekv (e.g.
“GEN 13.8”), and the eight/twelve character name and the basekv is to
specified within double quotes.
id is the shunt id, “1 ” by default .
<string list> lists members in shunt table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘nown1’ in string list to modify the owner 1 and ‘pown1’ for owner
factor of the owner 1, and so on. Each shunt can have up to 4 owners.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 bus shunt bus out of range
3 bus shunt bus does not exist
type =501 or < element identifier > =(<ibus> <jbus> <id> <scd> <lid>)
“lshunt ” ibus and jbus are from bus and to bus of the branch section. When the
names flag is selected, the eight/twelve character name and the basekv is
specified within double quotes.
id is the circuit id, “1 ” by default, and scd is the section number, 1 by
default. lid is the line shunt id, no default is allowed.
<string list> lists members in shunt table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘nown1’ in string list to modify the owner 1 and ‘pown1’ for owner
factor of the owner 1, and so on. Each line shunt can have up to 4 owners.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 line shunt bus out of range
3 line shunt bus does not exist
type =6 or < element identifier > =<ibus> <id>
“svd ” <ibus> is svd bus number or combination of bus name and bus basekv
(e.g. “GEN 13.8”). When the names flag is selected, the eight/twelve
character name and the basekv is specified within double quotes.
id is the svd id, “1 ” by default .
<string list> lists members in svd table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘bstep1’ and ‘nstep1’ to specify the number of steps and stepsize of
block 1, and so on. Use ‘nown1’ in string list to modify the owner 1 and
‘pown1’ for owner factor of the owner 1, and so on. Each svd can have up
to 4 owners.
<parmeter list> lists new values of members specified in the string list.
When the number flag is selected, the value of the member ‘kreg’ is the bus
number whose voltage is controlled by the generator. When the names flag
is selected, the value for the member ‘kerg’ is the eight/twelve character
name and the basekv specified within single quotes.
Return codes:
0 success
1 insufficient input
2 svd bus out of range
3 svd bus does not exist
type =7 or < element identifier > =<iarea>
“area ” <iarea> is area number.
<string list> lists members in area table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
When the number flag is selected, the value of the member ‘iswng is the
area swing bus number. When the names flag is selected, the value for the
member ‘iswng’ is the eight/twelve character name and the basekv
specified within single quotes.
Example:
@ret = datarec(1,7,1, “name pnetdes”, “AREA1”,100.0)
Return codes:
0 success
1 insufficient input
2 invalid area number
type =8 or < element identifier > =<izone>
“zone ” <izone> is zone number.
<string list> lists members in zone table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 invalid zone number
type =9 or <element identifier> = <ibus>
“dcb ”
ibus is dc bus. When the names flag is selected , the eight/twelve character
name and the basekv is specified within double quotes. When adding a new
dc bus, its bus number must be specified.
<string list> lists members in dc bus table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 dc bus not found when using combination of bus name and basekv
3 negative bus number
4 dc bus number is out of range
type =10 or < element identifier > =(<ibus> <jbus> <id>)
“dcl ” ibus and jbus are from bus and to bus of the dc line. When the names flag
is selected, the eight/twelve character name and the basekv is specified
within double quotes.
id is the circuit id, “1 ” by default.
<string list> lists members in dc line table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘rate1’ in string list to modify the rating set 1, ‘rate2’ for rating set 2
and so on.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 dc line bus out of range
3 dc line bus does not exist
4 dc line from and to buses are identical
type =11 or <element identifier> = (<ibus> <dcbus> <id>)
“dcc ”
ibus is converter ac bus, dcbus is the converter dc bus. When the names
flag is selected, the eight/twelve character name and the basekv is to
specified within double quotes.
<string list> lists members in dcc table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 ac/dc bus out of range
type =13 or < element identifier > =(<ibus> <jbus> <id>)
“bface” ibus and jubs are from bus and to bus of the branch section. When the
names flag is selected, the eight/twelve character name and the basekv is
specified within double quotes.
id is the circuit id, “1 ” by default, and scd is the section number, 1 by
default.
<string list> lists members in bface table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 bus does not exist
3 branch does not exist
type =14 or < element identifier > =<iitface>
“itface ” iitface is interface number.
<string list> lists members in itface table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘rate1’ in string list to modify the rating set 1, ‘rate2’ for rating set 2
and so on.
<parmeter list> lists new values of members specified in the string list.
type =16 or < element identifier > =<iowner>
“owner” iowner is owner number.
<string list> lists members in owner table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 invalid owner number
type =19 or < element identifier > =<itztab>
“tztab” itztab is impedance correction table number.
<string list> lists members in tztab table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
Use ‘t1’ and ‘f1’ in string list to define the turns ratio and factor for the first
sample point, and so on. Each z table can have up to 11 owners.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
type =20 or < element identifier > =<ibus> <id>)
“qtable ” ibus is generator bus. When the names flag is selected , the eight/twelve
character name and the basekv is specified within double quotes.
id is the generator id, “1 ” by default .
<string list> lists members in qtaqble table (see table 5.2 in PSLF
user’s manual) whose values will be modified.
Use ‘p1’, ‘qmx1’ and ‘qmn1’ in string list to define the active power,
maximum q and minimum q of the first sample point, and so on. Each
generator q table can have up to 20 points.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 invalid bus number
3 generator bus does not exist
4 generator does not exist
type =21 or < element identifier > = (<ibus> <jbus> <id>)
“breaker” ibus and jbus are from bus and to bus of the breaker. When the names flag
is selected, the eight/twelve character name and the basekv is specified
within double quotes.
id is the breaker id, “1 ” by default.
<string list> is the list of members in breaker table (see table 5.2 in
PSLF user’s manual) whose values will be modified. The string list is
enclosed with double quotes.
Use ‘rate1’ in string list to modify the first rating, ‘rate2’ for the second
rating and so on
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 breaker bus out of range
3 breaker bus does not exist
4 breaker from and to buses are identical
Example:
@ret = datarec(1,21,100, 200, “1 “, “st rate1”, 1,10.0)
Where the st of breaker between 100 and 200 buses is changed
to 1 and its first rating is set to 10.
type =23 or < element identifier > =<isub>
“subst” <isub> is substation number.
<string list> lists members in subst table (see table 5.2 in PSLF user’s
manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Example:
<ret> = datarec(1,23,1, “name latitude”, “SUB1”,0.001)
Return codes:
0 success
1 insufficient input
2 invalid substation number
type =24 or < element identifier > =<iba>
“ba” iba is balancing authority number.
<string list> lists members in balancing authority table (see table 5.2 in
PSLF user’s manual) whose values will be modified.
<parmeter list> lists new values of members specified in the string list.
Return codes:
0 success
1 insufficient input
2 invalid ba number
Function date()
Form: <ret> = date(<file>)
Arguments: <file> name of file to which date is to be written
<ret> string containing the date (at least 25 characters)
This function allows you to time and date stamp reports being constructed by EPCL programs.
where <file> is an EPCL character variable or constant specifying the file to which the date is to be
written. If <file> is omitted (e.g. *ret = date(" ")), the date is written to the terminal CRT screen.
If <file> is present the file must have been opened with a setlog() or openlog() statement. The
return value contains the date in string format.
Example:
dim *str_ret[1][32]
$output = "date.out"
*str_ret[0] = date(" ") /* write date to screen */
*str_ret[0] = date($output) /* write date to file */
Function deleterec ()
The function is used to delete an existing element from the working case. Note that all strings are enclosed in double
quotes.
Form: <ret> =deleterec(<flag>,<type>,<element identifier>)
<flag> flag is an integer,
1 if element identifier is specified by external numbers
2 if element identifier is specified by bus names
when the names flag of 2 is selected , eight/twelve character bus name and
the basekv is specified within double quotes
<type> type is number or valid name of table in double quotes (e.g. “secdd”). The
type option determines the format of element identifier.
type =0 or <element identifier> = <ibus>
“busd ”
ibus is bus number or combination of bus name and bus basekv (e.g. “GEN
13.8”), when the names flag is selected , the eight/twelve character name
and the basekv is specified within double quotes
The function will delete the bus and all elements attached to it. If a
generator is remotely controlling its bus voltage, the generator will be set as
self-control.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 bus does not exist
Example:
@ret = deleterec(1,0,1000)
@ret = deleterec(2,0,”GEN 13.8”)
type =1 or < element identifier > =<ibus> <jbus> <id> <scd>)
“secdd” ibus and jbus are from bus and to bus of the branch section. When the
names flag is selected, the eight/twelve character name and the basekv is
specified within double quotes.
id is the circuit id, “1 ” by default, and scd is the section number, 1 by
default. If the scd is -1, the function delete all sections of the branch
defined by ibus, jbus and id.
The function will delete the branch. All other tables that refer to it will be
updated.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 branch bus does not exist
4 branch does not exist
Example:
@ret = deleterec(1,1,1000, 2000, “1”, -1)
The api call deletes all sections for the branch 1000-2000, circuit id of “1”.
type =2 or < element identifier > =<ibus> <jbus> <id> <kbus>)
“tran ” ibus and jbus are from bus and to bus of the transformer, kbus is the
tertiary bus of a three winding transformer, empty for a two winding
transformer. When the names flag is selected, the eight/twelve character
name and the basekv are specified within double quotes. When a three
winding transformer is deleted, its star bus is deleted as well.
id is the circuit id, “1 ” by default .
The function will delete the transformer. All other tables that refer to it will
be updated.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 transformer bus does not exist
4 transformer does not exist
type =3 or < element identifier > =(<ibus> <id>)
“gens ” ibus is generator bus number or combination of bus name and bus basekv
(e.g. “GEN 13.8”). When the names flag is selected , the eight/twelve
character name and the basekv is specified within double quotes.
id is the generator id, “1 ” by default .
The function will delete the generator. All other tables that refer to it will
be updated, such as qtable, injection group table etc.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 generator bus does not exist
4 generator does not exist
Example:
@ret = deleterec(1,3,1000, “1”)
The api call deletes generator “1” at bus 1000.
type =4 or < element identifier > =(<ibus> <id>)
“load ” ibus is load bus number or combination of bus name and bus basekv (e.g.
“GEN 13.8”). When the names flag is selected , the eight/twelve character
name and the basekv is specified within double quotes.
id is the load id, “1 ” by default .
The function will delete the load. All other tables that refer to it will be
updated.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 load bus does not exist
4 load does not exist
Example:
@ret = deleterec(1,4,1000, “1”)
The api call deletes load “1” at bus 1000.
type =5 or < element identifier > =<ibus> <id>)
“shunt” The function is used to delete bus fixed shunt.
ibus is shunt bus number or combination of bus name and bus basekv (e.g.
“GEN 13.8”), when flag is 2, the eight/twelve character name and the
basekv is to specified within double quotes.
id is the shunt id, “1 ” by default .
The function will delete the bus shunt. All other tables that refer to it will
be updated.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 shunt bus does not exist
4 shunt does not exist
type =501 or < element identifier > =<ibus> <jbus> <id> <scd> <lid>)
“lshunt ” ibus and jbus are from bus and to bus of the branch section. When the
names flag is selected, the eight/twelve character name and the basekv are
specified within double quotes.
id is the circuit id, “1 ” by default, and scd is the section number, 1 by
default. lid is the line shunt id, no default is allowed.
The function will delete the line shunt. All other tables that refer to the line
shunt will be updated.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 shunt bus does not exist
4 line shunt does not exist
Example:
@ret = deleterec(1,501,1000, 2000, “1”, 1, “f”)
The api call deletes line shunt “f”, of branch between 1000-2000 with
circuit id of “1”.
type =6 or < element identifier > =(<ibus> <id>)
“svd ” ibus is svd bus number or combination of bus name and bus basekv (e.g.
“GEN 13.8”). When the names flag is selected, the eight/twelve character
name and the basekv are specified within double quotes.
id is the svd id, “1 ” by default .
The function will delete the svd (static var device). All other tables that
refer to the svd will be updated.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 svd bus does not exist
4 svd does not exist
type =7 or < element identifier > =<iarea>)
“area ” iarea is area number.
The function can be used to delete the area, iarea when the type is 7. All
other tables that refer to the area will be updated.
The optional input, busflag, is defined to delete the buses in the area, 0 for
area only, 1 for both area and buses in the area. busflag is 0 by default.
<ret> =deleterec(<flag>,type, <element identifier>,[busflag])
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 area does not exist
Example:
@ret = deleterec(1,7,1)
The api deletes area 1 from area table.
@ret = deleterec(1,7,1, 1)
The api deletes area 1 from area table and all buses in area 1.
type =8 or < element identifier > =<izone>)
“zone ” izone is zone number.
The function can be used to delete the zone, izone when the type is 8. All
other tables that refer to the zone will be updated.
The optional input, busflag, is defined to delete the buses in the zone, 0 for
zone only, 1 for both zone and buses in the zone. Busflag is 0 by default.
<ret> =deleterec(<flag>,type, <element identifier>,[busflag])
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 zone does not exist
Example:
@ret = deleterec(1,8,1)
The api deletes zone 1 from zone table.
@ret = deleterec(1,8,1, 1)
The api deletes zone 1 from zone table and all buses in zone 1.
type =9 or <element identifier> = <ibus>
“dcb ”
ibus is dc bus. When the names flag is selected , the eight/twelve character
name and the basekv is to specified within double quotes
The function will delete the dc bus and all elements attached to the dc bus.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 dc bus does not exist
type =10 or < element identifier > =<ibus> <jbus> <id>)
“dcl ” ibus and jubs are from bus and to bus of the dc line. When the names flag
is selected, the eight/twelve-character name and the basekv are specified
within double quotes.
id is the circuit id, “1 ” by default.
The function will delete the dc line. All other tables that refer to the dc line
will be updated.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 dc bus does not exist
4 dc line does not exist
type =11 or <element identifier> = <ibus> <dcbus> <id>
“dcc ”
ibus is converter ac bus, dcbus is the converter dc bus. When the names
flag is selected, the eight/twelve character name and the basekv are
specified within double quotes.
The function will delete the converter.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 ac bus does not exist
4 dc bus does not exist
type =13 or < element identifier > =(<ibus> <jbus> <id> <itface>)
“bface” ibus and jbus are from bus and to bus of the branch section. When the
names flag is selected, the eight/twelve character name and the basekv is
specified within double quotes.
id is the circuit id, “1 ” by default, and scd is the section number, 1 by
default. itface is the interface number.
The function will delete the branch from the interface itface. All other
tables that refer to the branch will be updated.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 bus does not exist
4 branch does not exist
type =14 or < element identifier > =<iitface>
“itface ” iitface is interface number.
The function will delete the interface and branches that make up the
interface.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 interface does not exist
type =16 or < element identifier > =<iowner>
“owner” iowner is owner number.
The function can be used to delete the owner, iowner, when the type is 16.
All other tables that refer to the owner will be updated.
The optional input, busflag, is defined to delete the buses in the owner, 0
for owner only, 1 for both owner and buses in the owner. busflag is 0 by
default.
<ret> =deleterec(<flag>,type, <element identifier>,[busflag])
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 owner does not exist
Example:
@ret=deleterec(1,16,1)
The function call deletes owner 1.
@ret=deleterec(1,16,1,1)
The function call deletes owner 1 and all buses in owner 1.
type =17 or < element identifier > =(<ibus> <id>)
“motor” ibus is motor bus, When the names flag is selected , the eight/twelve
character name and the basekv is specified within double quotes.
id is the motor id, “1 ” by default .
The function will delete the motor. All other tables that refer to the motor
will be updated.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 motor bus does not exist
4 motor does not exist
type =19 or < element identifier > =<itztab>)
“tztab” itztab is impedance correction table number.
The function will delete the impedance correction table.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 impedance correction table does not exist
type =20 or < element identifier > =(<ibus> <id>)
“qtable ” ibus is generator bus. When the names flag is selected, the eight/twelve
character name and the basekv are specified within double quotes.
id is the generator id, “1 ” by default .
The function will delete the reactive capability table of a generator. All
other tables that refer to it will be updated.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 generator bus does not exist
4 generator does not exist
type =21 or < element identifier > =<ibus> <jbus> <id>)
“breaker” ibus and jbus are from bus and to bus of the breaker. When the names flag
is selected, the eight/twelve character name and the basekv is specified
within double quotes.
id is the circuit id, “1 ” by default.
The function will delete the breaker. All other tables that refer to it will be
updated.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 breaker bus does not exist
4 breaker does not exist
type =23 or < element identifier > =<isubst>)
“subst” isubst is substation number.
The function will delete the substation. All other tables that refer to it will
be updated.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 substation does not exist
type =24 or < element identifier > =<iba>)
“ba” iba is balancing authority number.
The function will delete the balancing authority. All other tables that refer
to it will be updated.
Return codes:
0 no error
1 invalid identifier
2 insufficient inputs
3 ba does not exist
Function dspost()
Form: @ret = dspost( )
Arguments None
dspost modifies the load flow data for post transient conditions, the modified case can
then be saved for conventional power flow solutions. dspost can be executed anytime
after initialization (init) during a dynamic simulation. Since load flow data is changed
by dspost under a post transient condition at the time when the dspost is conducted,
the dynamic simulation is disrupted and can not continue. Major changes to load flow
data are:
· Composite load models are placed back to their original load buses, and
the models are removed from the load flow data.
· Constant impedance load, constant current loads, and motors are
converted to constant active power and reactive power loads.
· The load shedding by relays is considered.
· SVD outputs are set based on the SVD models.
It is always advisable to execute the dspost command when dynamic simulation
results show the simulated system is stable.
Example 1 to create a post transient power flow case:
@ret = dspost() /* sample system
@ret=savf(“t3ps_posttransient.sav”) */
Function dynautodebug()
Form: <ret> = dynautodebug( <savfile>, <dydfile>, <flatruntime> )
Arguments:
< savfile > Name of the power flow sav file (sav) containing
power flow model
< dydfile > Name of the dynamics data file (dyd) containing
the dyanmics models. If the user has more than 1
dyd file, they should be combined into 1, before
using it with this function
<flatruntime> Number of seconds until which the flat run should
not diverge
<ret> return value
0 on success
-ve value on failure
The dynautodebug() function helps to debug the dynamic simulation. The function will try to
run the dynamic simulation using the power flow data specified in the SAV file and the
dynamics data specified in the DYD file. The function will check for divergence and take
appropriate actions to isolate the suspect models causing divergence if possible.
The function will create a netting file auto_debugger_suspectmodels.dyd which will contain the
buses which have to be netted to run the simulation until the modeling issues are resolved by
the user explicitly.
This function might not catch every possible modeling issue.
Example:
dim *dydfil[1][256]
dim *savfil[1][256]
*savfil[0] = "WSMExport_May16_2014_23_16.sav"
*dydfil[0] = "output.dyd"
@flattime = 1.0
@ret = dynautodebug( *savfil[0], *dydfil[0], @flattime )
if( @ret < 0 )
logterm("dynautodebug failed<")
endif
Function editcol() and
edit()
Form: editcol(<tablename>,<col>,<data>[<pos>],<format>,<heading>)
edit(<tablename>, <num>)
Arguments: <tablename> Character string used to identify this column as part of
the <tablename> edit table. This is ultimately the name of
the epslf file used to describe the edit table.
<col> Epcl @ or # variable indicated which edit column is
being described. Note: Edit tables are described by
columns, not rows. Each editcol() command will create a
new column in your edit table.
<data>[<pos>] The data arrays may be:
epcl # arrays
epcl * arrays
PSLF <table_name>[<pos>].<member_name>
The data which is displayed in the column, usually starts
at the first <pos> of the array (index 0). However, you
may start to display anywhere from index<0> to
<the_number_of_elements -1>.
<format> Character string used to describe the format of the data in
the column. This is C - type format. A more detailed
explanation may be found in epcman Chapter 6. Append
the letter 'p' to the format to make the column protected
from change.
<heading> Character string used to describe the heading of the data
displayed in the column. The heading may NOT contain
blanks. The length of this string should be the same as
the width described by the <format>.
Once every column in the edit table has been described, you may use the edit() command to
display the data.
<tablename> Character string used to identify the edit table to be
displayed.
<num> Number of elements in the column. Every column is
displayed using the number of elements in the largest
array in this edit display (whether it has valid data for all
elements or not).
These two commands are used to set up and display any data that is available in epcl. The data is
displayed in exactly the same format that PSLF uses in the table editors. The data must be in
array format.
The data which is changed, added, or deleted, is changed "in-place". This means that once you
hit the ESC key to exit an edit table, the changes are read back into the arrays or PSLF tables.
You cannot recover the data.
The edit command writes to a file located in a sub-directory of the current working directory.
This directory name is "epslf" and you must create it before attempting to edit with the
command:
mkdir epslf
Note: edit() and editcol() DO NOT have return values.
The following is an example of EPCL file with a 3 column user-defined edit table named "test":
dim #row[500], *busnam[500][8]
dim #double[3][500]
for @i = 0 to casepar[0].nbus-1
#row[@i] = @i+1
*busnam[@i] = busd[@i].busnam
for @j = 0 to 3
#double[@j][@i] = @j * casepar[0].nbus + @i
next
next
editcol("test",0,#row[0],"%-5.0f","-ROW-")
editcol("test",1,*busnam[0],"%-9.9s","BUSNAME")
editcol("test",2,busd[0].basekv,"%-6.2f","BASEKV")
editcol("test",3,#double[0][0],"%-4.0f","DBL1")
editcol("test",4,#double[1][0],"%-4.0f","DBL2")
editcol("test",5,#double[2][0],"%-4.0f","DBL3")
edit("test",casepar[0].nbus)
Function epcl()
Form: <ret> = epcl (<name>)
Arguments: <name> epcl program filename
<ret> not used
A primary EPCL program can have its execution suspended, can execute a secondary EPCL
program while it is suspended, and then can continue its own execution when the secondary
program terminates. This linking-in of a secondary EPCL program is handled by the
statement
@ret = epcl(<prog_file_name>)
in which <prog_file_name> is an EPCL character variable or constant containing the name
of the secondary program file (normally a ".p" file). Execution of the epcl() statement
transfers control to the secondary EPCL program and, when it terminates, returns control to
the primary program at the statement immediately after the epcl() statement.
The primary program may contain multiple epcl() statements linking in a single secondary
program many times or linking in many different secondary programs. An EPCL program
that is used as a secondary program via an epcl() statement may not, itself, contain epcl()
statements. That is, EPCL programs can only be linked one level deep.
The following rules apply to variables and files used by primary and secondary EPCL
programs:
a) EPCL scalar variables (@,$)and EPCL array variables (#,*) are local to the programs
in which they are used. Scalars and arrays used in the primary program are unknown to
the secondary program and vice versa.
b) PSLF variables are global, that is, known to primary and secondary EPCL programs .
Example:
/* set up generator redispatch */
*
*
*
@ret = epcl("redispatch.p")
*
*
*
@ret = epcl("report.p")
end
Function flow()
Form: <ret> = flow (<flag>, <from>, <to>, <ck>, <type>)
Arguments: <flag> 0 if <from>, <to> are bus index numbers
1 if <from>, <to> are external numbers
<from> branch from bus
<to> branch to bus
<ck> Two character branch circuit identifier
<type> 1 to return MW flow also in ret[0].number[0]
2 to return MVAR flow also in ret[0].number[1]
3 to return MVA flow also in ret[0].number[2]
4 to return Amp flow also in ret[0].number[5]
5 to return MW loss also in ret[0].number[6]
6 to return MVAR loss also in ret[0].number[7]
<ret> return value
Note: The effective branch table must be created before flow is used (executing SOLV, TABR,
SCAN or flowcalc() creates this table. SAVF does not save the present effective branch table.
The table can also be created by calling buildeff(0) or buildeff(1) epcl function).
The flow() function returns the flow or loss at the from bus end of the designated branch as
specified by the <type> argument. If <flag> is non-zero <from> and <to> are external bus
numbers; if <flag> is zero <from> and <to> are bus indexes.
flow() is useful when the flows or losses are needed for a limited number of branches, but is not
efficient if the flows are needed for a large number of branches. If flows throughout the system
are needed, it is much better to use the EPCL flowcalc() function which evaluates all branch
flows very efficiently, and then to use the flow_index() function to find the required flow entry
in the flox[] table.
Caution: Check the status of the branch/transformer prior to calling this function.
Example:
/* calculate line losses for every line in area 8 */
@area = 8
for @i=0 to casepar[0].nbrsec-1
if (secdd[@i].area = @area)
@from = secdd[@i].ifrom
@to = secdd[@i].ito
$ck = secdd[@i].ck
@mwloss = flow(0, @from, @to, $ck, 5)
logterm("from",busd[@from].extnum:5:0)
logterm("to",busd[@to].extnum:5:0)
logterm("ck",$ck:2:0,"mw
losses=",@mwloss:7:3,"<")
Function flow_index()
Form: <ret> = flow_index (<from>, <to>, <ck>)
Arguments: <from> Branch from bus external number or bus identifer
<to> Branch to bus external number or bus identifier
<ck> Two character branch circuit identifier
<ret> return value
The flow_index() function returns the index in the flox[] table of the record describing the flow in a
designated transmission line or transformer. The from and to buses must be specified by the external
bus numbers at the two ends of the branch. The from bus number must be that of the bus at the end
where the flow is to be monitored. It is the user's responsibility to check the return value of
flow_index() for a negative value indicating the component does not exist.
Note: A flox[] table must have been created with the flowcalc() function before flow_index() is
used.
Example:
/*find the index of first branch in AC line table */
@ret = flowcalc(1) /*calculate line and tranformer flow - use
rating 1*/
@from = secdd[0].ifrom
@to = secdd[0].ito
$ck = secdd[0].ck
@k = flow_index(busd[@from].extnum,busd[@to].extnum, $ck)
if(@k < 0)
logterm("Can't find component from ",busd[@from].extnum:5:0)
logterm(" to ",busd[@to].extnum:5:0," ckt[",$ck:2:0:"]<")
endif
@mw = flox[@k].p
@mvar = flox[@k].q
@pu_loading = flox[@k].pul
/*epcl program to report and check*/
/*overloads and voltage violations*/
Function flowcalc()
Form: <ret> = flowcalc(<rating>)
Arguments: <rating> rating to be used in calculating per unit loading
(Valid entries are 1-8)
<ret> return value
The flowcalc() command calculates the flow on every branch of the system and places
these results in the flox[] table. The qualities calculated are:
flox[*].p branch real power flow, MW
flox[*].q branch reactive power flow, MVAR
flox[*].mva branch MVA flow
flox[*].amps branch currents, Amps
flox[*].rate rated current (for lines) Amps rated MVA (for
transformer)
flox[*].pul branch per unit loading
flox[*].from from bus external number
flox[*].to to bus external number
flox[*].flag 0 for line, 1 for transformer
flox[*].ck branch circuit identifier
flox[*].mwloss branch MW losses
flox[*].mvloss branch MVAR losses
flox[*].from, flox[*].to, and flox[*].ck identify the branch and are the means by which a
branch is found in the flox[] table. flox[*].flag identifies the branch as a line or
transformer. The flox[] table contains an entry for each branch in each direction. The
flows are calculated at the "from" bus of each entry with a positive value for p or q
indicating flow towards the "to" bus.
The flox[] table is sorted according to flox[*].from and flox[*].to. While it is often
convenient to work through the table in this order, it is equally often necessary to find a
specific branch in the table. This is best done with the flow_index() function, as in the
following example.
Example:
/* find per unit loadings of all transformers in area
8 */
@ret = flowcalc(1)
for @k = 0 to casepar[0].nbrel-1
if(busd[@from].area = 8)
.
. /* report value of flox[@k].pul */
.
endif
/* find MVA on branch 732 to 136, circuit 2 */
@k = flow_index(732,136,"2 ")
.
. /* report value of flox[@k].mva .*/
Function getmodpar() and
setmodpar()
Form: <ret> = getmodpar (<flag>, <from> ,<to> ,<id> ,<sec> ,
Arguments: <flag> 0 if <from>, <to> are bus index numbers
1 if <from>, <to> are external numbers
2 if <from>, <to> are bus names
<from> Bus at which component is connected
<to> To bus (or -1 if to bus is not needed)
<id> Two character circuit or component identifier
<sec> Section number
<modnam> The name of the model
<parameter name> The parameter to get or set value of
<value> pFloat value to set the parameter to
<ret> return value
The getmodpar() function returns the value of the parameter for the specified dynamic simulation
model. The setmodpar() functions returns a zero to indicate that the parameter was set successfully to
<value> or -1 to indicate that an error occurred and the parameter was not changed.
Note that <parameter name> must be written in lowercase.
Example:
@ret = getf("t3ps.sav")
@ret = rdyd("t3ps.dyd","t3ps.rep",1)
@extflag = 1 /* indicating an external number will be used
*/
@frbus = 111
@tobus = 0
$id = "1 "
@sec = 1
modname = "gast"
$
$parname = "vmax"
@value = 1.1
@a =getmodpar(@extflag,@frbus,@tobus,$id,@sec,$modname,$parname)
logterm("before getmodpar the value is @a=",@a,"<")
@a = setmodpar(@extflag,@frbus,@tobus,$id,@sec,$modname, $parname,
@value)
@a = getmodpar(@extflag,@frbus,@tobus,$id,@sec,$modname,$parname)
logterm("after setmodpar the value is @a = ",@a,"<")
Function getpslfver()
Form: <ret> = getpslf(<verflag>)
Arguments: <verflag> 0 to get the major version
1 to get the minor version
<ret> Version number
getpslfver() function is a function to get the PSLF major or minor version number.
This function could be used when adding logic in the EPCL’s to do different actions based upon
version of PSLF.
Example 1:
@maj = getpslfver(0)
@min = getpslfver(1)
logterm("major version = ",@maj,"<")
logterm("minor version = ",@min,"<")
Function inherit_idm()
Form: <ret> = inherit_idm()
Arguments:
<ret> number of objects or records whose datamaintainer
reference has been set based upon inheritance.
inherit_idm() sets the reference of each object to its dataamaintainer using inhertinance. For
example, if a bus belongs to a datamaintainer called CAISO and there is a generator on the bus
without any datamaintainer assigned to it, then by inheritance, PSLF would associate CAISO as
the datamaintainer for the generator too.
Example 1:
@ret = inherit_idm()
returns a value of 3 indicating that datamaintainer reference has been set for a total of 3
objects using the inheritance.
Function ins(), del(), rep()
Form: <ret> = ins(<tabname>, <pos>, <num>)
Arguments: <tabname> Name of the PSLF data table to be changed (e.g. "gens")
(see Table 5.2)
<pos> Position in table where the changes will take place
<num> The number of elements in the table that will be changed
<ret> return value
The ins() function inserts <num> blank elements into table <tabname> starting after position
<pos>. <pos> must be between -1 and the total number of records.
The del() function deletes <num> elements from table <tabname> starting at position <pos>.
<num> must be less than the total number of records.
The rep() function expands a table <tabname> by <num> replications of the record at position
<pos>. The new records are placed immediately behind the record at position <pos>.
Example:
@ret = ins("gens", casepar[0].ngen-1, 1)
This will insert 1 blank record into the generator table at the last position.
When inserting or replicating (recommended) into the "busd" table, you must set the bus lookup
table using the setbix() function. This must happen after the new bus external number has been
set. You must also replicate the corresponding record in the "volt" table to set the bus voltages to
the right values.
Example
@ret = rep("busd", 3, 1)
@ret = rep("volt", 3, 1) /* "volt" always follows the
"busd" table */
@newbus = 9999
@newindex = 4
busd[@newindex].extnum = @newbus
@ret = setbix(@newbus, @newindex)
There is no need to use the setbix() function when deleting a bus.
Command: irand() This epcl function would return a random number
between 0 and 32767.
EPCL: @ret = irand( <seed> )
Arguments:
<type> number or name of table in double quotes
(valid names in parenthesis)
0 for buses (busd)
1 for transmission line(secdd.)
2 for transformer(tran.)
3 for generator(gens.))
4 for load(load.)
5 for bus-connected shunt(shunt.)*
6 for static var device(svd.)
7 for area(area.)
8 for zone(zone.)
9 for dc bus(dcb.)
10 for dc line(dcl.)
11 for dc converter(dcc.)
12 for gcd(gcd.)
13 for branch interface(bface.
14 for interface(itface.)
15 for transaction(transact.)
16 for owner(owner.)
17 for motor(motor.)
18 for line(line.)
19 for tztab(tztab.)
20 for qtable
21 for breaker
22 for vsc
23 for substation
24 for ba
25 for block
26 for plant
27 for injection group
<longid> Long id of the component or name of the device
<caseflag> 0 case sensitive
1 case insensitive
<ret> return value
The lid_index() functions returns the index of the record that describes a designated
component of the power system. lid_index() returns -1 if the system component specified by
the arguments does not exist.
Example:
Example 1
dim *lid[1][40]
@table = 1 /* 1 = line */
*lid[0] = "Line_leeds_PV_345"
@caseflag = 0 /* case sensitive */
@k = lid_index( @table,*lid[0],@caseflag)
if( @k < 0)
/* Report an error and act accordingly */
endif
/* Use the value of @k for further processing */
Function loadtrip()
Form: <ret> = loadtrip(<flag>,<identifier>,<id>)
Arguments: <flag> 0 if < identifier > is bus internal number
1 if < identifier > is bus external number
2 if < identifier> is bus name + kv string
3 if < identifier> is bus long id string
4 if < identifier> is load long id
<identifier
>
Bus identifier for the bus at which the load is connected,
if <flag> is either 0, 1 or 2 or 3.
LongID of load if <flag> is set to 4.
<id>
2 char id of load
<ret> -1 : illegal input
0 : load not found in the case
1 : load found and tripped
2 : load found but already tripped
3 : composite load found and tripped
4 : composite load found but already tripped
loadtrip() function trips the load specified by the user. If the load specified by the user is not
found in the load table, the function searches for a dynamic composite load model (CMPLDW)
connected to the specified load. The function will then trip the composite load model, including
the substation transformer and equivalent feeder elements that were added by CMPLDW.
Example 1:
@ret = getf("t3ps.sav") /* sample system */
@flag = 1 /* external bus */
@bus = 21
@ret=loadtrip(@flag,@bus,"1")
Function mappaths_op_pl()
Form: <ret> = mappaths_op_pl(<operationscase>,<planningcase>)
Arguments: <operationscase> Operations power flow case
<planningcase> Planning power flow case with substations
populated
<ret> 0 or higher value on success. Negative value on
failure
mappaths_op_pl() maps the paths/interfaces between operations case and planning case and is
helpful for MOD-033 type studies. The mapping is done based on the topology (identified by
substation connectivity between the cases).
It is to be noted that the user will need to supply the planning power flow case with substation
data populated. Such a case can be easily obtained by running the tran_op_plan() function prior
to mappaths_op_pl().
mappaths_op_pl() creates comma separated values (*.csv) formatted report for those mapped
paths/interfaces between the planning case and operations case. The mapped report also
contains summary of net MW and MVAR across each path from both cases.
This function also creates two separate comma separated values (*.csv) formatted reports for
unmapped paths/interfaces from both the planning case and operations case respectively.
Example :
dim *operations[1][MAXFILELEN]
dim *planning[1][MAXFILELEN]
/**** INPUTS : START *****/
*planning[0] = "16hw3a_with_Substations.sav"
*operations[0] = "WSMExport_NetmomCSV_Expor_dB81t.sav"
/**** INPUTS : END *****/
@ret = mappaths_op_pl(*operations[0], *planning[0])
Function model_index()
Form: <ret> = model_index(<flag>,<modname>,<from>,<to>,<id>,
<sec>,<status>)
Arguments: <flag> 0 if <from>, <to> are bus index numbers
1 if <from>, <to> are external numbers
2 if <from>, <to> are bus names
3 if <from> is long id of power flow device to
which the model corresponds
<modname> The name of the model enclosed in quotation
marks
<from> Bus at which component is connected
Won’t be used when flag is 3
<to> To bus (or -1 if to bus is not needed)
Won’t be used when flag is 3
<id> Two character circuit or component identifier
Won’t be used when flag is 3
<sec> Section number or 0 if not needed
Won’t be used when flag is 3
<status> 0 to deactivate the model
1 to activate the model
-1 to leave the status of the model unchanged
<ret> return value
The model_index() function returns the index of the record that describes a designated
dynamic simulation model, or -1 if it does not find the record indicated by its
arguments.
If <flag> is non-zero the designation is in terms of external bus numbers; if <flag> is
zero the designation is in terms of internal bus numbers.
If <flag> is 3, the designation is in terms of long id the device. For example, the user
can set the flag to 3 and specify the long id of generators in <from> field. The user
still needs to specify a value (dummy) for <to>, <id>, <sec>, even when the flag is 3
Example:
@ret = model_index(1,"genrou",101,-1,"h ",1,0)
@ret = model_index(3,"genrou","Albany_G1_13.8",-
1,"h ",1,0)
Function next_flow()
Form: <ret> = next_flow (<from>, <to>, <index>)
Arguments:
<from> Branch from bus external number or bus
identifer
<to> Branch to bus external number or bus
identifer
<index> index into flox table.
A -1 index starts at the first record in the
table, whereas, a zero or positive index starts
searching from the next index to the end of
the table.
<ret> return value
The next_flow() function returns the index in the flox[] table of them record
describing the flow in a designated transmission line or transformer. next_flow()
returns -1 if the system component specified by the arguments does not exist.
Note: A flox[] table must have been created with the flowcalc() function before
next_flow() is used.
Example:
/*find the index of all branches from 21 to 23 */
@ret = flowcalc(1) /*calculate line and tranformer
flow - use rating 1*/
@ind = -1
@from = 21
@to = 23
@mw = 0
@mvar = 0
for @i = 0 to casepar[0].nbrel - 1
@ ind = next_flow(@from,@to, @ind)
if(@ind < 0)
logterm("Can't find component from
",@from:5:0)
logterm(" to ",@to:5:0,"<")
quitfor
endif
@mw = @mw + flox[@ind].p
@mvar = @mvar + flox[@ind].q
next
Function next_index()
Form: <ret> = next_index(<type>,<from>,<ck>,<index>)
Arguments:
<type> number or name of table in double quotes(valid names in
parenthesis)
0 for bus(busd.)
1 for transmission line(secdd.)
2 for transformer(tran.)
3 for generator(gens.)
4 for load(load.)
5 for bus-connected shunt(shunt.)
6 for static var device(svd.)
7 not used
8 not used
9 not used
10 for dc line(dcl.)
11 for dc converter(dcc.)
12 for gcd(gcd.)
13 for branch interface(bface.)
14 for interface(itface.)
15 for transaction(transact.)
16 for owner(owner.)
17 for motor(motor.)
18 for line(line.)
19 not used
<from> External bus number at which component is connected
<ck> Two character circuit or component identifier An asterisk
may appear anywhere in the identifier to act as a wild
card character. A double asterisk finds the next occurrence
of the from bus (or to bus for lines and transformers)
without trying to match the component identifier.
<index> index into a table.
A -1 index starts at the first record in the table, whereas, a
zero or positive index starts searching from the next index
to the end of the table.
<ret> return value
The next_index() function returns the index of the record that describes a designated
component of the power system. next_index() returns -1 if the system component specified by
the arguments does not exist.
Example:
/* to find all lines connected to bus 13 */
@from = 13
$ck = "**"
@table = 1 /* 1 = line */
@k = -1
for @i = 0 to 10 /* note: using the same variable (@k)
as an argument */
@k = next_index( @table, @from, $ck, @k)
if( @k < 0)
quitfor
endif
/* Use the value of @k for further processing */
next
Function number()
Form: <ret> = number (<identifier>,<flag>)
Arguments: <identifier> bus identifier in quotation marks
<flag> optional 0 to return bus index
1 to return external bus number
<ret> return value
The EPCL number() function returns the bus index or bus external number of the bus whose
identifier is specified. The bus identifier may be either
· the "external" or identifying number of the bus
or
· the full name and base voltage of the bus separated by a space.
Number() is an easy way of obtaining the index needed to find items related to a bus in PSLF data
tables. For example, to get the magnitude of the voltage at the bus identified by the name
MIDWAY 230, one could use the EPCL code
@index = number("MIDWAY 230.") /* using busname + basekv
*/
@voltage = volt[@index].vm
or
logbuf($b,"4651")
@index = number($b) /* using external bus number
*/
voltage = volt[@index].vm
The external number associated with a given name could be obtained by
$name = "MIDWAY 230."
@index = number($name)
@enumb = busd[@index].extnum
or
$name = "MIDWAY 230."
@enumb = number($name, 1)
Caution: Use logbuf (not +) to enter the bus identifer.
right dim *bid[1][25] /* array to hold 12 char bus name and kv */
logbuf(*bid[0] ,busd[@i].busnam:12:0," ",busd[@i].basekv:6:2)
@index = number(*bid[0] )
wrong dim *bid[1][25] /* array to hold 12 char bus name and kv */
*bid[0] = busd[@i].busnam + " " + busd[@i].basekv
@index = number(*bid[0])
Note that while number() is provided as a convenience and is appropriate for non-repetitive use, it is
not efficient in terms of execution time. Internal numbers of buses can be obtained much more
efficiently in time-critical EPCL programs by alternative techniques such as the use of the bix()
function as described in section 5.9.2.
The return value is -1 if the bus does not exist
Function openeditlog()
Form: <ret> = openeditlog(<name>,<app>)
Arguments: <file> edit log file name
<app> append flag
<ret> return value
The editor keeps a log file containing all changes made to data if the edit log feature is turned on.
This function is used to set the dispar parameters, edlogfile and edlogflg. These parameters may also
be set through the PARM:DIS panel or the winini.p file. IF the <app> flag is 0 no log file is written.
If it is 1 the <file> is opened and all subsequent edit functions are written to it. If it is a 2 the changes
are appended onto the end of the log file. The file is written in EPCL language therefore the same
data changes can be made on several defferent cases by running the log file through the EPCL
language processor.
This function is setting these variables:
dispar[0].edlogflg /* 0 no log, 1 write log, 2 append log
*/
dispar[0].edlogfile /* edit log file name 32 chars max */
Note: Please note that an editlog file created with PSLF V 16 does not work with PSLF V 17 series.
Function panel()
Form: <ret> = panel(<title>,<des>,<inp>,<n>,<type>)
Arguments:
<title> title to be shown at top of the panel (30 characters or
less)
<des> an EPCL character array (*) containing labels for the
entries
in the panel
<inp> pan EPCL character array (*) containing data values for
the entries in the panel
<n> the number of entries in the panel
<type> 0 for a selection panel
1 for a data entry panel
<ret> return value
The panel() function allows an EPCL program to construct a menu panel as its interface with
its user in the same style as the menu and data entry panels of PSLF. A panel displayed by
panel() may be either a selection panel or a data entry panel, with properties as follows:
· a selection panel displays up to <n> entries and detects which entry
"contains" the cursor when the <CR> key is hit.
· a data entry panel displays up to <n> entries, allows the data part of each
entry to be changed from the keyboard, and makes the updated data values
available to the EPCL program when <CR>is hit.
The <type> argument instructs panel() to make a "selection" or "data entry" panel.
panel() displays the entries specified by <des> and <inp>, one entry per line, with the <title>
line at the top and the PSLF standard mouse-click options at the bottom. In a "selection" panel
the order of the items in the line for each entry is <inp><des>. The <inp> items cannot be
changed through a selection panel and so <inp><des> can be used to make up a single text
message indicating the significance of each entry. In a "data entry" panel the order is <des>
<inp> and default values can be entered for the <inp>. panel() returns the index of the entry at
which the cursor is located if the <CR> key is hit to leave the panel, or a negative number if the
exit from the panel was caused by hitting <ESC>.
Example
dim *des[3], *inp[3]
label start
*inp[0] = "INITIALIZE"
*inp[1] = "CALCULATE"
*inp[2] = "END"
*des[0] = "system model"
*des[1] = "all flows"
*des[2] = "....."
@k = panel ("Job Control", *des[0],*inp[0],3,0)
if (@k<0)
goto start
elseif (@k = 0)
.
. /* initialization code */
.
elseif (@k = 1)
.
. /* calculation code */
.
else
.
. /* clean up code */
.
endif
This EPCL code sets up a selection panel to direct the execution of the remainder of the EPCL
program to one of three blocks of code. The test for a negative value of @k forces the user to
make a valid choice. If they hit <ESC> the panel is re- displayed; they can proceed only by
positioning the cursor at one of the three entries and hitting <CR>.
Example
dim *des[3][30], *inp[3]
*des[0] = "Area to be tested for voltage")
*des[1] = "Maximum voltage"
*des[2] = "Minimum voltage"
*inp[0] = "0"
*inp[1] = "69."
*inp[2] = "230."
@k = panel("Test Scope",*des[0],*inp[0],3,1)
if(@k >= 0)
@area = atof(*inp[0])
@maxv = atof(*inp[1])
@minv = atof(*inp[2])
This EPCL code sets up a data entry panel to obtain values for @area, @maxv, and @minv.
These three variables are given default values of 0, 69, and 230 respectively and are updated
only if the user leaves the panel by hitting <CR>. Note the style of the arguments <des> and
<inp>.
Function pass()
Form: <ret> = pass(<id>, <value>)
Arguments: <id> Argument number corresponding with an id specified in olgr under
the Epcl function
<value> The argument value that is to be placed on a drawing
<ret> return value
The pass() function is used in conjunction with olgr to allow the epcl program to pass values to the olgr
commands to be placed on drawings. Drawing files constructed with the olgr command can invoke an epcl
program and expect that program to pass up to a hundred results back to the drawing. EPCL files may be
referenced to perform the calculation. Up to 20 files may be referenced to perform the calculations. The pass()
function must be called in this epcl program once for each argument that is to be sent to the drawing. <value>
may be any numeric constant, pslf variable, or epcl @, #, $, or * variable.
EPCL programs containing pass() can only be executed by invocation from a drawing function in the olgr
shell.
Example:
The user must execute OLGR:OLGR and the Epcl option to set up the pass variables on the drawing. Listed
below is a partial PSLF drawing file showing the results of adding pass variables.
PSLF DRAWING FILE V14.0
BACKGROUND [r=235,g=235,b=235]
START
BUS 1 "NORTH-01" 230.00 236 246 1 [r=0,g=0,b=0] 0 125
5 196
BUS 2 "NORTH-02" 230.00 161 371 1 [r=0,g=0,b=0] 0 136
5 121
………
. ………
TEXT "t3ties.p 2" 192 587 90 Monospaced 20 0
[r=0,g=0,b=0]
TEXT "t3ties.p 3" 479 560 90 Monospaced 20 0
[r=0,g=0,b=0]
TEXT "t3ties.p 4" 507 554 90 Monospaced 20 0
[r=0,g=0,b=0]
TEXT "t3ties.p 5" 533 402 0 Monospaced 20 0
[r=0,g=0,b=0]
TEXT "t3ties.p 6" 524 447 0 Monospaced 20 0
[r=0,g=0,b=0]
TEXT "t3ties.p 7" 428 665 0 Monospaced 20 0
[r=0,g=0,b=0]
…………….
END
The next step is to write an epcl program to link the pass variable numbers (3 rd column 1-10 in the above
example) to the calculated values. This link is accomplished by the pass() function in the epcl program. The
first argument @var_num is the number corresponding to the third column in the pass section of the drawing
file. The second argument is the calculated value, such as, #areap[] or #areaq[] as shown below.
/* listing of t3ties.p */
dim #areap[101], #areaq[101]
@var_num = 1
flowcalc(1)
for @i=0 to casepar[0].narea-1
@area = area[@i].arnum
for @j=0 to 100
#areap[@j] = 0.0
#areaq[@j] = 0.1
next
for @k=0 to casepar[0].nbrel-1
@frbus = flox[@k].from
@tobus = flox[@k].to
@intfr = bix(@frbus)
@intto = bix(@tobus)
if((busd[@intfr].area=@area)and(busd[@intfr].area!=busd[@intto].area))
@toarea = busd[@intto].area
#areap[@toarea] = #areap[@toarea] + flox[@k].p
#areaq[@toarea] = #areaq[@toarea] + flox[@k].q
endif
next
for @j=1 to 100
if( #areap[@j] !=0)
if( @j > @area)
@ret = pass(@var_num, #areap[@j])
@val_num = @var_num +1
@ret = pass(@var_num, #areaq[@j])
@val_num = @var_num +1
endif
endif
next
next
Function pick()
Form: <ret> = pick(<path>, <ext>, <findfile>)
Arguments: <path> Character string used for the directory path in
which to search for files to be displayed. If
<path>
is a command name found in the path
parameters
panel, the pick function selects files using the
path already set for that command. If you wish
to use your local directory <path> should be
"".
<ext> Character string used to select files with names
containing the <ext> substring. The wildcard
character (*) may be used. The substring must
be on the tail end of the filename. Examples of
valid<ext> are: "*", "*.sav", "*.sav.Z"(
extensions are ALWAYS lowercase regardless
of the case in your directory )
<findfile> If the <findfile> character string is found in the
list of files selected, that file is highlighted in
the pick function panel.
<ret> return value
Note: If you use "" for any of the arguments above, make sure there are no
spaces between the quotation marks.
The pick() function is used to select files from a directory on your computer's
filesystem. Filenames are selected based on two criteria. First, the <path> is used for
a directory name in which to search for files. Second, the <ext>is used to select a
group of files from the specified directory. The <ext> is used as a filter for the
filenames.
The return value, <ret>, is 1 if the user selected a file from the panel with a mouse
click or by moving the cursor to a file and hitting the Enter key. <ret> is a 0 or -1 if
the user did not select a file and hit the Delete or Escape key. The filename selected is
returned in the epcl variable ret[0].string[0] as well as epcl variable
ret_file[0].name[0]. ret[0].string[0] is limited to 100 characters whereas there is no
limit to ret_file[0].name[0].
Examples: @ret = pick("getf", "*.sav.Z", "t3ps.sav.Z")
Use the getf command path name, list all the compressed history files, and highlight
the file named t3ps.sav.Z.
@ret = pick("/usr/pslf/samples", "*", "")
List all of the files in the /usr/pslf/samples directory.
@ret = pick("", "*.out", "")
List all of the output files (*.out) in the current directory.
Function readwsmmapping()
Form: <ret> = readwsmmapping(<flag>, <mappingfile>)
Arguments:
<flag> 0 read the mapping data from the mapping file into
the planning case
1 read the mapping data from the mapping file into
the operations case
<mappingfile> Name of the mapping file containing the mapping
of the generators between planning and operations
case
<ret> return value
0 on success
-ve value on failure
The readwsmmapping() function reads the mapping file information into either the planning
case or the WSM case.
Example:
Function rec_index()
Form: <ret> =
rec_index(<flag>,<type>,<from>,<to>,<ck>,<sec>,<status>,<tert>)
Arguments: <flag> 0 if <from>, <to> are bus index numbers
1 if <from>, <to> are external numbers
2 if <from>, <to> are bus names
<type> number or name of table in double quotes
(valid names in parenthesis)
1 for transmission line(secdd.)
2 for transformer(tran.)
3 for generator(gens.))
4 for load(load.)
5 for bus-connected shunt(shunt.)*
6 for static var device(svd.)
7 for area(area.)
8 for zone(zone.)
9 for dc bus(dcb.)
10 for dc line(dcl.)
11 for dc converter(dcc.)
12 for gcd(gcd.)
13 for branch interface(bface.
14 for interface(itface.)
15 for transaction(transact.)
16 for owner(owner.)
17 for motor(motor.)
18 for line(line.)
19 for tztab(tztab.)
20 for qtable
21 for breaker
22 for vsc
23 for substation
24 for ba
25 for plant
* for line connected shunts use the function shunt_index
<from> Bus at which component is connected or from bus of line or
transformer. When the names flag is selected both the
eight/twelve character name and the basekv is to specified
within double quotes
<to> To bus of line or transformer (or -1 if to bus is not needed)
<ck> Two character circuit or component identifier. Use "**" to
find first occurrence (or blanks for types 7 and 8).
<sec> Section number for transmission line; otherwise zero
<status> 0 to force component to "open"
1 to force component to "close"
2 to bypass line section
3 to toggle between "open" and "close"
-1 to leave status unchanged
<tert> Tertiary bus of a three winding transformer. –1 for line or two
winding transformer or other non-transformer records. When
the nameflag is selected, both the bus name and basekv has to
be specified within double quotes.
<ret> return value
The rec_index() functions returns the index of the record that describes a designated
component of the power system. If <flag> is non-zero the designation is in terms of external
bus numbers; if <flag> is zero the designation is in terms of bus indexes in the busd table.
rec_index() returns -1 if the system component specified by the arguments does not exist.
Example:
Example 1
@from = 14
@to = 24
$ck = "1 "
@table = 1 /* 1 = line */
@k = rec_index( 1,@table,@from,@to,$ck,1, -1)
if( @k < 0)
/* Report an error and act accordingly */
endif
/* Use the value of @k for further processing */
Example 2
@from = 21
@to = 22
$ck = "1 "
@tert = 23
@table = 2 /* 2 = tran */
@k = rec_index(1, @table, @from, @to, $ck, 1, -1,
@tert)
If( @k < 0 )
/* Report an error and take action accordingly */
endif
/* Use the value of @k for further processing */
Function redisp()
Form: <ret> = redisp(<deltp>,<rdopt>,<gpfopt>,<rdbl>,<arswing>,<
dispnegunits >,<maxiter>)
Arguments:
<deltp> MW amount to be redispatched
<rdopt> Redispatch options
0 governor powerflow based redispatch
1 reserve margin based redispatch
<gpfopt> Governor power flow options for redispatch
(only used when <rdopt> is 0)
0 pgen
1 pmax
2 mvabase
<rdbl> base load generators would not be redispatched, if
rdbl is 1
base load generators would be redispatched, if rdbl is
0
<arswing> Area swing generators would not be redispatched, if
flag is 1
Area swing generators would be redispatched, if flag
is 0
.
< dispnegunits> Generators with negative output will be redispatched,
if this flag is 1
Generators with negative output would not be
redispatched, if this flag is 0
<maxiter> Maximum number of iterations for governow
powerflow
<ret> return value
0 on success
-ve value on failure
The redisp() function will re-dispatch the generators in the system for an additional MW
specified by the user. Only units which has the dispatch_flag set to 1 will be re-dispatched.
Example:
Example 1
@deltp = 20
@rdopt = 0
@govpf = 0
@rdbl = 1
@arswing = 1
@dispnegunits = 0
@maxiter = 25
@prflag = 1
@ret = redisp(@deltp, @rdopt, @govpf, @rdbl, @arswing,
@dispnegunits, @maxiter, @prflag)
Function rvdcc()
Form: <ret> = rvdcc (<filename>)
Arguments:
<filename> Filename
<append> Append flag
0 (default) start new setup
1 to append
<ret> return value
0 on success
-ve value on failure
The rvdcc() function will read the voltage dependent reactive capacibility curve and the
association between generators and voltage dependent reactive capability curve.
Example:
Example 1
dim *vqdatafile[1][256]
*vqdatafile[0] = "vdcc-1.wcrf"
@ret = rvdcc( *vqdatafile[0], 0 )
if( @ret < 0 )
logterm("Cannot open file ",*vqdatafile[0],"<")
end
endif
Function rwcrf()
Form: <ret> = rwcrf (<filename>, <append>)
Arguments: <filename>
String
File name containing WCRF data (*.wcrf)
<append> Flag used to append WCRF data
Integer
0 = Do not append WCRF data
1 = Append WCRF data
<ret> Return value
Integer
0 = Success
-1 = Failure
The rwcrf(<filename>, <append>) function will load a WCRF data file into memory. The first argument
<filename> contains the name of the WCRF file to be loaded. The argument <append> will either start a new setup
or append to existing data.
Example:
/************************************************************
* This example will load a power flow case and a *
* WCRF file into memory *
************************************************************/
dim *wcrffname[1][1000] /* Stores WCRF file name */
*wcrffname[0] = "myWcrf\myCase.wcrf"
@ret = getf("cases\myCase.sav")
if(@ret < 0)
logterm("<Failed to load power flow case")
end
else
logterm("<Successfully loaded power flow case")
endif
logterm("<WCRF file name: " , *wcrffname[0], "<")
@ret = rwcrf(*wcrffname[0],0)
if(@ret < 0)
logterm("<Failed to load WCRF file!")
end
else
logterm("<Successfully loaded WCRF file!")
endif
end
Function setbix()
Form: <ret> = setbix(<busno>, <index>)
Arguments: <busno> external bus number
<index> index of bus in busd table
<ret> return value
If you add a bus or are renumbering the buses in a case you need to set up the bix table.
The function setbix() is used for this purpose.
for @num = 0 to casepar[0].nbus-1
busd[@num].extnum = @num + 1
@ret = setbix(busd[@num].extnum,
@num)
next
Before PSLF Version 10.0, this took the form of:
for @num = 0 to casepar[0].nbus-1
busd[@num].extnum = @num + 1
@ext = busd[@num].extnum
bix[@ext].i = @num
next
The corresponding function to set the dcbix table for the DC buses is setdcbix.
Function setdatein() and setdateout()
Form: <ret> = setdatein(<tabname>,<pos>,<yr>,<mon>,<day>)
<ret> = setdateout(<tabname>,<pos>,<yr>,<mon>,<day>)
Arguments: <tabname> pname of data table in which dates are to be
changed, in quotes. e.g. "gens"
<pos> the record for which the date will be set
<yr> plast two digits of the year. e.g.96 for 1996;13 for
2013
<mon> month by number. e.g. 6 for June
<day> day by number, 1 through 28, 30 or 31
<ret> return value
The setdatein() and setdateout() functions are used to give values to the in-service and out-
of-service date members of the tables in PSLF. For example to set the in-service date to Feb
20 1995 for the 1st bus in the system, your EPCL program would contain the line
@ret = setdatein("busd", 0, 95, 2, 20)
A faster method is to set the variable directly. To set the first bus date in-service to April 18
2000 type the following:
busd[0].date_in = 000418
This number is in the form yymmdd.
Function set_paths()
Form: <ret> = set_paths(<comm>,<path>)
Arguments: <comm> PSLF command
<path> a filesystem path
<ret> not used
The function set_paths() is used to set the path for a PSLF command, generally in the PARM PATH
parameter panel. Open (or Save) file dialog brought up via the pick EPCL function. The program searches
the path for filenames with a designated suffix and displays the matching files in the dialog. The change is
valid for the current session of PSLF and its effect is to record the change in the PARM PATH parameter
panel, where the commands used are listed.
For example:
@ret = set_paths("getf",".\basecases")
@ret = set_paths("savf",".\pslfuser")
NOTE: It should be noted that the set_paths function updates the panel on the UI. However, using EPCLs it is
advisable to use the absolute path or relative path within the current working folder. Generally for PSLF
commands it may not work if the command is called via EPCL immediately following the set_paths() call. So for
example in the case a user a set_paths is used to set the “getf” path, it is recommended to use:
@ret = getf(basecases\test.sav")
Function setup_wsm_sim()
Form:
<ret> = setup_wsm_sim( <operationsavfile>, <outputdydfile>,
<planningsavfile>, <planningdydfile>, <mappingfile>,
<filterlistfile>)
Arguments:
<operationsavfile> Name of the operations power flow case (SAV
file)
<outputdydfile> Name of the DYD file to be created by the
function which can be used with the operations
case
<planningsavfile> Name of the planning power flow case (SAV file)
<planningdydfile> Name of the planning dynamics data file (DYD
file)
<mappingfile> Name of the mapping file containing the mapping
of the generators between planning and operations
case
<filterlistfile>) Name of the filterlistfile containing the list of
dynamic models not be linked to operations case
from the planning model
<ret> return value
0 on success
-ve value on failure
The setup_wsm_sim() function sets up the entire WSM dynamic simulation by automating a
number of internal steps which othetrwise have to be manually done. The function will create a
dynamics data file (dyd) to be used with the WSM power flow case by linking the planning
case (sav and dyd) with the operations power flow case (sav) based upon the mapping specified
between the planning and operations. The dyd file created by the function can then be used
with the operations case. The function further automates a number of manual steps to make it
easier to run dynamic simulation with WSM case and planning dynamics file.
The filterlistfile is a text file containing the list of dynamic models to be ignored from the
planning dynamics database. An example is shown below. The list of the dynamic models to
be ignored starts with the keyword deselectdynamicmodels and is enclosed in curly braces ( {
and } ). Each model in the list is specified in a given row.
Example:
Example 1
dim *outputdydfil[1][256]
dim *opersavfil[1][256]
dim *planningsavfil[1][256]
dim *planningdydfil[1][256]
dim *mappingfil[1][256]
dim *filterlistfil[1][256]
*outputdydfil[0] = "output.dyd"
*opersavfil[0] = "WSMExport_May16_2014_23_16.sav"
*planningsavfil[0] = "15hw3a.sav"
*planningdydfil[0] = "15hw31.dyd"
*mappingfil[0] = "wsmmapping.csv"
*filterlistfil[0] = "modelfilter.lst"
@ret = setup_wsm_sim( *opersavfil[0], *outputdydfil[0], *planningsavfil[0],
*planningdydfil[0], *mappingfil[0], *filterlistfil[0] )
if( @ret < 0 )
logterm("Error : setup_wsm_sim failed<")
endif
Function shunt_index()
Form: <ret> = shunt_index(<flag>,<from>,<to>,<ck>,<id>,<sec>,<status>)
Arguments: <flag> 0 if <from>, <to> are bus index numbers
1 if <from>, <to> are external numbers
2 if <from>, <to> are bus names
<from> Bus at which shunt is connected when the names flag is selected
both the 8 character name and the basekv in double quotes
<to> To bus of line-connected shunt (or -1 if a bus-connected shunt)
<ck> Two character circuit identifier. Use "**" to find first
occurrence.
<id> Two character component identifier. Use "**" to find first
occurrence.
<sec> Section number for transmission line
<status> 0 to force component to "open"
1 to force component to "close"
2 to bypass line section
3 to toggle between "open" and "close"
-1 to leave status unchanged
<ret> return value
-1 if not found
-2 if incorrect flag specified
-3 if from bus is not found
>=0 if found
The shunt_index() functions returns the index of the record that describes a line-connected or bus-
connected shunt. If <flag> is zero, the <from> bus and <to> bus designation is in terms of bus
index numbers. If <flag> is one, the <from> bus and <to> bus designation is in terms of external
bus numbers(like the edit table). If <flag> is two, the <from> and <to> buses are entered by name
(12 character name + kv enclosed in double quotes). Only the from bus number/name and
component ID is entered for a bus-connected shunt (the to bus should be set to 0 or -1, circuit and
section are not checked). A line-connected shunt checks the from bus number/name, to bus
number/name, circuit, component identifier and section number. shunt_index() returns negative
number if the shunt component specified by the arguments does not exist.
Example:
@from = 14
@to = 24
$ck = "1 "
$id = "f1"
@sec = 1
@k = shunt_index( 1, @from, @to, $ck, $id, @sec, -1)
if( @k < 0) /* Report an error and act accordingly */
endif /* Use the value of @k for further
processing */
Function sortarray()
Form: <ret> = sortarray(<array>[<pos>], <num>)
Arguments: <array>[<pos>] pname of array to be sorted; # or * array <pos>
indicates the starting position index
<num> direction; 1 for forward, -1 for backward
<ret> not used
The sortarray() function is used to sort a locally dimensioned array. It sorts the values in
place. The sort may be started at any valid position in the array. The following is an
example of a sort of a real number array backwards:
dim #busdata[5]
#busdata[0] = 22
#busdata[1] = 1
#busdata[2] = 311
#busdata[3] = 33
#busdata[4] = 101
@ret = sortarray(#busdata[0], -1)
Upon completion the array named busdata would contain the following values:
#busdata[0] = 311
#busdata[1] = 101
#busdata[2] = 33
#busdata[3] = 22
#busdata[4] = 1
Function substbix()
Form: <ret> = substbix(<substno>)
Arguments: <substno> external substation number
<ret> index of substation in subst table
If you have an external substation number, the corresponding substation index can be looked up
in the substation table by calling the translation function substbix() as follows:
@subst_index = substbix(@external_no)
Function substbuslist()
Form: <ret> = substbuslist(<flag>,<number>)
Arguments: <flag> 0 =internal substation number, 1 external substation
number, 2= substation name
<number> Substation number (internal or external) or substation
name based upon the flag
<ret> number of buses in the substation
substbuslist() returns the list of buses which are part of this substation. The list of buses are
stored in the epcl return value array starting at location ret[0].number[0]. The total number of
buses in this substation are returned in the return variable ret.
Example 1:
@ret = getf("test.sav")
/* sample system */
@flag = 0
@number = 3
@numbuses = substbuslist(@flag, @number)
logterm("There are ",@numbuses," buses in substations as
follows<")
if(@numbuses >= 0 )
for @j = 0 to @numbuses-1
logterm("bus = ",ret[0].number[@j], "<")
next
endif
Example 2:
@ret = getf("test.sav")
/* sample system */
@flag = 1
@number = 3
@numbuses = substbuslist(@flag, subst[@number].num)
logterm("There are ",@numbuses," buses in substations as
follows<")
if(@numbuses >= 0 )
for @j = 0 to @numbuses-1
logterm("bus = ",ret[0].number[@j], "<")
next
endif
Example 3:
@ret = getf("test.sav")
/* sample system */
@flag = 2
@number = 3
@numbuses = substbuslist(@flag, subst[@number].name)
logterm("There are ",@numbuses," buses in substations as
follows<")
if(@numbuses >= 0 )
for @j = 0 to @numbuses-1
logterm("bus = ",ret[0].number[@j], "<")
next
endif
The epcl return value array is a temporary storage location for any epcl function therefore the
user should save desired results before executing another epcl function.
Function tiescalc() and tiesget()
Form: <num> = tiescalc(<flag>)
Arguments: <num> total number of area-to-area or zone-to-zone tie lines (returned
by tiescalc, used by tiesget)
<flag> 0 to calculate and return area totals
1 to calculate and return zone totals
<from number> from area or zone number
<to number> to area or zone number
<varno> 1 to return tie line MW
2 to return tie line MVAR
3 to return number of tie lines
<ret> return value
tiescalc() calculates the total flows between pairs of areas or zones by summing up the flows on lines
originating and terminating in different areas or zones. The line flows are calculated in accordance with
their aloss parameters. tiescalc() must be called before the first call to tiesget() but after the most recent
solution of the load flow case or other data operation that would affect the results of tiesget().
tiescalc() always returns the number of area/zone tie lines.
ctiesget() returns the value of the quantity indicated by its varno argument.
Example:
@flag = 0
@frarea = 1
@toarea = 2
@num = tiescalc(@flag) /* area totals */
@mw = tiesget(@num, @flag, @frarea, @toarea, 1)
@mwvar = tiesget(@num, @flag, @frarea, @toarea, 2)
Function trangen_op_pl()
Form: <ret> =
trangen_op_pl(<planningcase>,<WSMgenmappingfile>,<grouptype>,<groupno>)
Arguments: <planningcase> Planning power flow case with generator
EMSID fields populated
<WSMgenmappingfile> WSM case generation mapping file
<grouptype> Group selection flag:
1 – Area
2 – Zone
3 – BA
<groupno> Area/Zone/BA number corresponding to the
selection made using <grouptype>
<ret> 0 or higher value on success. Negative value on
failure
trangen_op_pl() transfers the generation information from operations case and planning case and is
helpful for MOD-033 type studies.
It is to be noted that the user will need to supply the planning power flow case with EMS ID field data
populated for all generators. This tool will match the generators between operations case and planning
case based on Area/Zone/BA selection set by the user and by using their EMS ID fields. For all the
matched generators in the planning case, the Pgen (real power output) and St (status) fields are
updated from the operations case.
trangen_op_pl() creates comma separated values (*.csv) formatted report for those matched generators
between the planning case and operations case. The mapped report contains summary of old and
updated Pgen and St data for all the matched units.
This function also creates a separate comma separated values (*.csv) formatted report for unmatched
generators from the original mapping file <WSMgenmappingfile> .
Example :
dim *planning[1][MAXFILELEN]
dim *genmapping[1][MAXFILELEN]
/**** INPUTS : START *****/
*planning[0] = "17LSP2sa.sav"
*genmapping[0] = "GenWSMoutput.csv"
@groupsel = 1 /* 1 = Area; 2 = Zone; 3 = BA */
@groupno = 14 /* Arizona */
/**** INPUTS : END *****/
@ret = trangen_op_pl(*planning[0], *genmapping[0], @groupsel, @groupno)
Function validate_op_pl()
Form: <ret> = validate_op_pl(<operationscase>,<planningcase>)
Arguments: <operationscase> Operations power flow case
<planningcase> Planning power flow case with substations and BA
fields populated
<ret> 0 or higher value on success. Negative value on
failure
validate_op_pl() validates the Substation and Balanacing Authority (BA) information
transferred from an operations case to a planning case and is helpful for MOD-033 type studies.
It is to be noted that the user will need to supply the planning power flow case with substation
and BA data populated. Such a case can be easily obtained by running the tran_op_plan()
function prior to validate_op_pl().
validate_op_pl() creates comma separated values (*.csv) formatted reports for mapped
substations and BAs’ between the planning case and operations case. The substation validation
report contains information about total number of buses sited in a given substation. Similarly
the BA validation report contains the net power interchange information along with the total
number of equipment sited in a given BA.
This function also creates separate *.csv formatted reports for unmapped substations and BAs’
(if any) from both the planning case and operations case respectively.
Example :
dim *operations[1][MAXFILELEN]
dim *planning[1][MAXFILELEN]
/**** INPUTS : START *****/
*planning[0] = "16hw3a_with_Substations_BA.sav"
*operations[0] = "WSMExport_NetmomCSV_Expor_dB81t.sav"
/**** INPUTS : END *****/
@ret = validate_op_pl(*operations[0], *planning[0])
Function vdcc_soln()
Form: <ret> = vdcc_soln(<toler>,<maxitr>,<accnr>)
Arguments:
< toler> Tolerance (p.u.)
0.01 (default)
< maxitr > Maximum Iterations
20 (default)
<accnr> Acceleration Factor
0.8 (default)
Should be between 0 and 1
<ret> return value
0 on success
-ve value on failure
The vdcc_soln() function will solve the power flow with voltage dependent capability curve
modeled for select generators.
Example:
Example 1
@toler = 0.001 /* tolerance */
@maxiter = 20 /* max iteration */
@accnr = 0.8 /* acceleration */
@ret = vdcc_soln(@toler, @maxiter, @accnr)
if( @ret < 0 )
logterm("<<Did not converge<")
else
logterm("<<Successfully Converged<")
endif
Function wgmd()
Form: <ret> = wgmd (<filename>)
Arguments: <filename>
String
File name where GMD data will be saved (*.gmd)
<ret> Return value
Integer
0 = Success
-1 = File name not provided
-2 = File cannot be open
The wgmd(<filename>) function writes GMD data currently loaded in memory to a text file (*.gmd). The
argument <filename> contains the name of the GMD file where data is to be saved.
Example:
/************************************************************
* This example will load a power flow case and *
* a GMD file into memory and save the GMD file *
* under a different name *
************************************************************/
/* Dimensionig variable used to store GMD file name */
dim *gmdfname[1][1000]
*gmdfname[0] = "cases\myCase.gmd"
/** Loading power flow case **/
@ret = getf("cases\myCase.sav")
if(@ret < 0)
logterm("<Failed to load power flow case")
end
else
logterm("<Successfully loaded power flow case")
endif
/** Loading GMD data file **/
@ret = rgmd(*gmdfname[0])
if(@ret < 0)
logterm("<Failed to load gmd file!")
end
else
logterm("<Successfully loaded GMD file!")
endif
/** Writing GMD data to myCase_new.gmd file **/
*gmdfname[0] = "cases\myCase_new.gmd"
@ret = wgmd(*gmdfname[0])
if(@ret < 0)
logterm("<Failed to write gmd file!")
end
else
logterm("<Successfully saved GMD file!")
endif
end
Function wwcrf()
Form: <ret> = wwcrf (<filename>, <select>)
Arguments: <filename>
String
File name containing WCRF data (*.wcrf)
<select> Integer Flag used to select WCRF data
0 = Do not select WCRF data
1 = Select WCRF data
<ret> Return value
Integer
0 = Success
-1 = Failure
The wwcrf(<filename>) function will write a WCRF data file on the path specified or the
working folder. The argument <filename> contains the name of the WCRF file to be saved. In
case user wants to select specific output to be skipped, one needs to set the specific field e.g.
filt[@i].sel = 0 in addition to passing the <select> as 1.
Example:
/************************************************************
* This example will write a WCRF file *
************************************************************/
dim *wcrffname[1][1000] /* Stores WCRF file name */
*wcrffname[0] = "myWcrf\myCase.wcrf"
logterm("<WCRF file name: " , *wcrffname[0], "<")
@ret = wwcrf(*wcrffname[0], 0)
if(@ret < 0)
logterm("<Failed to write WCRF file!")
end
else
logterm("<Successfully wrote WCRF file!")
endif
end
Table 5.1
Limitations and Rules
Item Current Maximum/Limit
Program length 12000 lines (see note 1)
Code line length 255 characters (see note 2)
Input file line length 511 characters (see note 3)
@/$/#/* identifier length 15 characters inclusive
define statements 10 statements
@ variables 800 variables
$ variables 200 variables
# arrays 70 arrays (see note 4)
Elements in an # array limited only by memory (see note 4)
* arrays 75 arrays
Elements in a * array limited only by memory (see note 5)
$ variable length 32 characters (see note 5)
Labels/subroutines 50 labels and/or subroutines
Nested for loops 100 levels deep
Nested subroutine calls 50 levels deep
Total subroutine calls 120
Input/output files 20 files regardless of type (input/output)
(see note 6)
Pass Variables for 200 variables
Drawings
Comments C style comments (see note 7)
Notes:
1) EPCL program can have up to 12000 statements. There are no "multiple line" statements. Labels, subroutine
headers, else, and endif are all included in the statement count. Comments and blank lines in the source code
for the EPCL program are not included in the statement count.
2) The line length in you epcl cannot be more than this number of characters.
3) When using input or inline statements this is the maximum length (in characters) of the line that will be read in.
4) EPCL $ variables and the one-dimensional * array names are fixed length character strings which consist of
fifteen characters inclusive of the identifier. Double dimension * arrays have a total size of <first
subscript>*<second subscript>. Any printable character may be used. When input is from a file or from the
keyboard (using an input or interm statement), string values that contain embedded blanks must be enclosed in
double quotation marks ("). EPCL # and * arrays must be dimensioned before use: there is no implicit
dimensioning of EPCL # or * arrays.
5) Subscripts in EPCL # and * arrays and PSLF variables must be either EPCL @ variables or integral constants.
Nested subscripts are not permitted.
6) When passing a file/pathname via an epcl function, the string should be less than 300 characters long.
7) Comments in EPCL are in the 'C' language style. That is, a comment is everything between a '/*' and the next
occurrence of '*/'.
Chapter 6
Customizing PSLF
6.1 PSLF Toolbars
The PSLF program initially starts with a standard toolbar, as shown in Figure 2.11. The user has the ability to modify the toolbar
with PSLF functions suited to their needs. In order to disable the standard toolbar, use the mouse to unselect View, ToolBars,
Standard as shown in Figure 2.13. The user can enable the toolbar by the same method. The standard toolbar overrides all other
toolbars.
Once the PSLF standard toolbar has been disabled, the PSLF Main Menu Window will appear as shown below.
Once the standard toolbar has been disabled, the other toolbars that appear disabled in the first snap are now enabled and can now
be checke. They are selected in the same way as the standard toolbar. The following toolbars are available with the PSLF
program.
File Toolbar: This toolbar is associated with the loading, importing, exporting and saving of cases. It also allows the user to edit a case title and run the EPCL
processor.
Edit Toolbar: This toolbar is associated with editing case data, data checking and viewing results.
LoadFlow Toolbar: This toolbar is associated with load flow solutions and one-line diagrams.
ShortCircuit Toolbar: This toolbar is associated with loading, importing, exporting, saving and editing short-circuit data. It also allows the user to perform
short-circuit calculations.
Dynamics Toolbar: This toolbar is associated with loading, saving and editing dynamics data. It also allows the user to perform dynamics simulations and
access the output.
Misc Toolbar: This toolbar is associated with miscellaneous features of PSLF, such as output reports, linearized analysis and economic dispatch.
Standard Toolbar:
6.2 PSLF Message Window Formatting
The PSLF program initially starts with all messages (i.e. function confirmations, solution reporting, etc…) being reported to the
main menu message window and an output file, term.log. This file is automatically created and stored in the current working
directory by the PSLF program.
6.2.1 Hide\Show Messages
The PSLF program allows for the user to customize the message window in various ways. The user has the ability to disable all
messages from being reported to the message window by selecting View, Messages, Hide Messages as shown below. This
automatically disables the messages from being displayed, but the file term.log is still updated with all the messages.
To enable messages, select View, Messages, Show Messages as shown below.
6.2.2 Clear Messages
The PSLF program allows for the user to clear the message window at any point by selecting View, Messages, Clear Messages as
shown below. This automatically clears all messages from the screen, but the file term.log is still updated with all the messages.
6.2.3 Clear Error Logs
The PSLF program may possibly experience a core dump due to access violations or memory allocation issues. During the
normal operation of PSLF over time, the program will store error logs to the working directory. These can build up over time.
The function, View, Messages, Clear Error Logs as shown below allows the user to delete all these files in one click.
6.2.4 Print Messages
The user has the ability to print messages from the message window by selecting View, Messages, Print to print the entire
message window or View, Messages, Print Marked to print selected text from the message window after the user has highlighted
what is to be printed. Once the user has selected the print option, the following dialog box will appear for the user to select the
desired printer and printing preferences.
6.2.5 Message Window Color Formatting
The user has the ability to change the message window to any color they desire by selecting:
View, Messages, ForeGround Color: This selection allows the user to change the message window foreground text to any desired color.
View, Messages, BackGround Color: This selection allows the user to change the message window background to any desired color.
View, Messages, ForeGround Default: This selection allows the user to default the message window foreground text color to black.
View, Messages, BackGround Default: This selection allows the user to default the message window background color to grey.
6.2.6 Message Window Font Size
The user has the ability to change the font size in the message window by selecting View, Messages, Messages FontSize between
10 and 24. This option allows users who may have difficulty seeing small fonts to increase the font size.
6.2.7 Message Window Rotating Buffer Size
The message window behaves like a rotating buffer. The number of lines that will be retained by the message window at all times
is adjustable by selecting View, Messages, Messages Lines. While all messages are saved to the file term.log, only the number of
lines specified by this parameter will be kept in the message window. The greater the number of lines saved in the message
window allows the user to look further back into past actions, but will have an effect on the speed of the program due to the
amount of information stored in the window.
6.3 PSLF Window, Toolbar and Panel Formatting
Beyond the Message Window formatting, the PSLF program can be formatted in other ways as well to give the user a customized
look and feel.
6.3.1 Toolbar and Subtoolbar Customization
This option allows for the user to customize the color of the toolbars and subtoolbars by selecting View, PSLF Colors, Toolbar or
View, PSLF Colors, SubToolBar. The following figures show the process for changing the main toolbar and subtoolbar colors.
6.3.2 Panel Customization
This option allows for the user to customize the color of the PSLF panels in the program by selecting View, PSLF Colors, Panel.
6.3.3 PSLF Font Size
This option allows for the user to change the font size of the PSLF Panels and/or Edit Tables by selecting View, PSLF Fonts
between 10 and 18.
Chapter 7
PSLF Manual
7.1 Introduction
The GE PSLF Manual and PLOT program manuals are in .html and .pdf format and are located in the \upslfXX\html
(htmlpl for plot) and \upslfXX\pdf (pdfpl for plot) directories for the windows XP/VISTA/Windows 7 operating
systems and /usr/pslfXX/html (htmlpl for plot) and /usr/pslfXX/pdf (pdfpl for plot) directories for the UNIX operating
systems. When installing the PSLF Manual, the PSLF and PLOT18 Manual icons for the .html versions are
automatically set up on both your Desktop and Start Menu.
7.1.1 Setting up the manual in your browser
The PSLF installation sets up the default browser URL in the \upslfXX\javaini.p file as
c:\progra~1\intern~1\iexplore.exe. Go to the PSLF18 Manual icon and double click it to start up the manual.
Scrolling down, you will see click points for MODELS and COMMANDS these display lists of the manual sections
for those categories.
If the manual does not start up from the icon set up in the installation, check your browser path to be sure it is the
same path listed in the javaini.p file as shown below.
Adobe 6 has some very useful search features when using it with the PSLF manual. To set up an icon for the .pdf
version, using windows explorer go to \upslfXX\pdf and right mouse click on toc.pdf and select create shortcut to
toc.pdf .
This will create “shortcut to toc.pdf”.
Right mouse click on “shortcut to toc.pdf” and select rename
Change the “shortcut to toc.pdf” to PSLF18 Manual (pdf).
The icon can be changed to look like your icon for the PSLF18 html manual by right mouse clicking on the above
icon, select properties
Next click change icon
Next click browse
Go to the directory c:\upslfXX\icons
Select books04.ico and click open
Then click OK
Click apply, then click OK and the icon will look like the PSLF18 Manual in html format as shown below.
This icon can be dragged/dropped to your desktop for easy manual access.
7.1.2 Hyperlinks
Some pages in a section are linked with pages of another section. For instance the command 'toc' - Table of Contents
is linked to all sections of the manual. If there is a link available, you can access it by placing your mouse on the
highlighted text and hitting your left mouse button. This action displays the associated manual page. When you are
finished viewing this section, hit the back key and you are placed back in your original page.
7.1.3 Using the manual from PSLF or PLOT
To view a section of one of the manuals do one of the following:
1. If the PSLF program is running, place your cursor on a command or panel entry and hit the F1 key.
This should take you to the PSLF/PLOT index page. Here add a bookmark.
Scrolling down, you will see click points for MODELS and COMMANDS these display lists of the manual sections
for those categories.
7.2 Customizing the LOGO in PSLF
The PSLF Program generates the GE logo that appears at the bottom left corner of drawings for output to printers and
postscript files. The image is picked up from \upslfXX\images\ge_logo.gif. This file can be replaced by any other
image (gif / jpg) as long as the default \upslfXX\images\ge_logo.gif is replaced with a similar sized image. The
filename must remain ge_logo.gif.
7.3 Customizing PSLF Font-Colors
PSLF saves certain characteristics like background colors, position of main frames, etc. every time PSLF is closed.
This information is written in the “font-color” file and this file is saved in the working directory when upon exiting the
program. If a working directory initially contains no font-color file, PSLF searches PSLFDIR for this file. If no file
exists there, it uses the internal default font-colors.
To customize your font-color file to use same settings from all working directories, copy your most suitable “font-
color” file to the \upslfXX directory. Be sure there is no font-color directory in that working directory.
Chapter 6 will give detailed instructions on how to customize your PSLF.
Chapter 8
PSLF Examples
8.1 Introduction
In this section "ascii files" can be in the form of ".epc" files which are GE format files, ".pti" files which are PTI
format files, or ".ips" files which are WSCC format files.
These examples were done from a Windows 2000 system. These examples will use "inst_dir" for the PSLF
installation directory which will be "c:\upslfXX" for Windows NT/2000/XP/Vista (where XX is the release number)
and "/usr/pslfXX" for the UNIX machines or your installation directory if you installed the program in a directory
other than the standard directory.
For the purpose of running these examples, a working directory should be set up - for example, create the directory
"home2" copy the files from the "samples" directory located under the "inst_dir" to the "home2".
When starting up the PSLF Program, the window where PSLF is executed is called the PSLF startup window. Since
the program sends messages to the startup window, this startup window should be moved to the lower right corner of
the screen so it is always visible when running the program.
In this chapter, "click" = left mouse button in GE format.
8.2 Starting from an ASCII file in GE Format
Start up the PSLF Program from your "MYPSLF" directory. From the PSLF main menu select "exim",
next select "Import EPC".
From the import argument panel, select start new case and click OK or <CR>.
From the open file panel, click on "t3ps.epc".
In this example, the ASCII file t3ps.epc was read in.
You will see messages written out to your PSLF startup window indicating the data has been read in.
Next, this case will be ordered. From the PSLF main menu, select "solv". In the solution argument panel the pull
down menu contains Full and DC options. In this case the Full is selected, and check the “Optimal Order” to order
the case but do not check solve as we are not going to solve this case.
Next, click on the OK box which indicates messages were sent to the PSLF startup window.
These messages were sent to the PSLF startup window when the case was ordered:
The next step is to create a powerflow file. From the PSLF main menu select the savf.
Here the save file panel will appear.
Here type the name of the history file to be saved - in this case "myt3ps.sav" and then click the “save”.
The message below was sent to the PSLF startup window when saving this case.
8.3 Starting from powerflow files and solving load flows.
To solve a load flow starting from a history file, from the PSLF main menu select getf.
Here in the open file panel all the .sav files will be displayed.
Next select "t3ps.sav" and click open
Read the messages being sent to the PSLF startup window.
Next select solv from the PSLF main menu which opens the Solve argument panel. In the solve argument panel, Full
should be the default to do a full load flow and “Solve” should be the default to solve the case. Here hit OK or
<CR>.
Next read the messages being sent to the PSLF startup window indicating this case solved after 1 iteration.
8.4 Modifying data
To modify data, from the PSLF main menu select getf, next select the history file t3ps.sav.
8.4.1 AC Branch Data
In this example AC branch data will be modified. From the PSLF main menu select edit.
Next select secdd.
To change the rating on a line, the MVA1 rating must be changed. In this example, we will change the rating of Bus 2
to Bus 3 ckt 1 which is the 3rd line of the table from 600.0 to "700.0", hit <CR> and hit done which returns to edit.
If we go back into secdd and check the MVA1 rating which is the 3rd line of the table, the rating has been changed to
700.0 as shown in the example below.
FYI - To change data and exit the edit tables, make your change, hit enter, then hit <ESC> or the “done”
button. To exit panels after making a selection, the <CR> is always hit.)
Next a new line is going to be entered. Again, select secdd to bring up the line table.
Place your cursor on the line where you want to enter a new line.
Hit Insert or F6 and the choices panel will come up. The first two lines will enter a line of data with all 0's in it. It is
recommended, that either of the Replicate lines be used to add a new line or multiple lines. In this example,
"Replicate one line" is selected which replicates the line your cursor is positioned on and places it above.
The example shows the shaded line as the replicated line. Now you can make changes to this replicated line to add the
new line of data.
To add multiple lines of data, hit Insert or <F6> and select replicate > line.
Selecting this option will bring up another panel asking how many lines to replicate. Here we type in 3 to replicate 3
lines as shown below.
The 3 shaded lines below were replicated.
The delete or <F7> deletes lines in the edit table. The example below selects the delete lines which opens up the
delete panel. Here the three lines we just replicated are highlighted with the mouse, select delete
Delete brings up the next panel where the Marked Rows is checked and hit OK.
Another option is place the cursor on the line where you want the delete to start, hit the delete or <F7> .
In the delete panel, type the number 2 for the Number of Rows to delete, then click OK.
The example below shows 2 bus 21 lines were deleted.
8.4.2 Transformer Data
To remove a transformer from the edit panel, select "tran".
The cursor is placed on the line to be removed. In this example, the cursor is placed on the fourth line which is Bus 22
to Bus 24 ckt 1 and <F7> is hit.
The F7 Argument panel opens and "delete lines" is selected.
Next this panel comes up and “Marked Rows” is selected. The cursor is on the Bus 22 to Bus 24 transformer, so this
line will be removed
Here is the result.
To change a transformer, it is important that the voltage and angle for the bus is reasonable. In this case, a copy of the
second line Bus 11 to Bus 111 ckt 1 is going to be replicated.
Move the cursor to the second line and hit "<F6>."
Then select "Replicate one line" which replicates line 2.
Now the changes for the new transformer can be made to this replicated line.
After making the necessary changes for the new transformer, place the cursor on the old line, hit <F7> or “delete
lines”. Then hit
Then click "Delete Marked Rows”and hit <CR> to delete the old line.
Here shows the results with the new line.
To add a transformer, place cursor on a line to move and click <F7> or “delete” and select “Pick Up Line”,
then enter 1 row and click OK.
Move cursor to the bottom of the table so the new transformer will be added at the bottom of the table and click”
insert”, then click “Put Copy Below”.
Here the line is entered at the bottom of the table.
8.5 Creating A One-Line Diagram
From the PSLF main menu select "getf" to get a powerflow file and then select the “t3ps.sav” and click “open” to
read in the history file. (sample powerflow files are located in the \samples directory with every installation).
Once the history file is read in, select "olgr".
This will bring up the graphics screen in switch mode (default) as shown.
In this section we want to add a bus so we select gedi as shown below.
The line at the top of the screen will be called the "Pull-down" menus and the window at the bottom of the screen
which displays all the messages will be called the "Message Window". For a full description of each button, see
“COMMANDS/olgr” in the PSLF User's Manual.
First, the buses will be drawn next the branches (transformers & lines) will be drawn.
To add buses, select "draw" from the pull-down menu then “bus” and fill in the panels at the bottom of the screen.
The button “Adjacent Buses” will display all buses connected to the bus whose number is in the “Enter Bus
Number” box. . In case the “Bus Table" button at the bottom right is selected, it will bring up the busd table.
Enter "12" in “Enter Bus Number” and check all the other parameters, such as, BusLen and angle to see that are
correct, then click in the drawing area to locate this bus.
The bus will be drawn and the "adjacent buses:" window will appear at the bottom of the screen showing a list of
adjacent buses connected to Bus 12. Since Bus 11 appears in that window, it can be clicked to “Enter Bus Number”,
then change the angle to 90 for a vertical bus and click in the drawing area to locate this bus.
Next Enter Bus Number 111, then click in the drawing area to locate the bus.
To add the generator at bus 111, click bus 111 till the color turns red, then right mouse click and select “element”.
next select “g 111 WEST—G1 id 1”
The generator will be drawn at bus 111.
Next Enter Bus Number 13, then click in the drawing area to locate the bus.
Next Enter Bus Number 14, then click in the drawing area to locate the bus.
Prior to adding branches, it would be best to click both gedi “Grid” and “Snap” options.
To add a line between Bus 111 and 11, right mouse click on bus 111 and select the third item on the menu called
“Branch”.
From the list of branches, leaving a bus click on the desired branch, annot draws the flows (from, to, both or none),
then left mouse click each section until you hit the desired bus, then double click to end the drawing of this line.
Repeat this process for the other branches.
To add text inside the box, select “Draw” then “Shapes” from the pull-down menu.
Click the box that is a rectangle, then left mouse click on the drawing area and hold as you move the mouse to get a
box. When it’s the right size and shape, release the left mouse button to draw the box.
To enter text in the box, go to draw from the pull down menu and select text. In the text box, type the text you want
entered on the diagram and then click inside the box where you want to text to be displayed.
This example shows the basics of drawing a simple one-line diagram adding buses, lines, flows, loads, transformers,
generators, boxes, and text. The next page shows the one-line diagram that was just created.
8.6 Graphics Output - SCAN/SWCH
Starting from the one-line diagram just created, select "Switch" from the feature buttons to go from the drawing mode
to the switching mode (the drawing buttons will be removed).
Moving the mouse over a bus and a left mouse click will display a menu to edit, scan, mism (mismatches), isol
(isolate this bus), list all elements from this bus, and details (voltage, angle).
Highlighting a branch (color turns to yellow) and clicking on the line between Bus 13 and 14 will bring up a menu
showing "EDIT", "SWITCH", and "SWITCH&SOLVE".
Here "SWITCH&SOLVE" is selected. This will take the line out, resolve the load flow, and redraw the diagram
showing a dotted line for the line taken out and the new system conditions. This is an example of what can be done
with the one-line diagram once it is created.
To exit go under “File”, then select “Exit” or left mouse click on the X in the upper right corner.
Users can link loaded DRW files to the current SAV case. For each SAV case the user may have up to fifteen
associations recorded. Within one working folder set up a total of 200 associations can be saved. This enables the user
to bring up a list of DRW files and load one of those available.
In case there is a single DRW file associated with a SAV case, it will be brought up automatically. For more than one
DRW files a list, as shown above will appear for the user to select. In case the user tries to associate more than 15
DRW files to one SAV case, a warning message will pop up.
Operating System
What does the message “Out of Environment Space” mean on Windows?
Sometimes the following error message will appear for Windows machines "Out of Environment space". To fix this
problem, right mouse click the PSLF icon and click properties. Under the memory tab in the section called Initial
Environment, change the setting from Auto to 4096 and apply. Probable causes are the multiple entries in the path
command.
I run PSLF by clicking on the pslf.bat file from DOS – why won’t it start up now?
If you normally run PSLF using the icons set up in the installation, everything should work fine.
For those who may run PSLF by clicking on the pslf.bat file from their installation directory or at the DOS Prompt,
this will no longer work as we now pass an argument in the PSLF.BAT file. If you want to execute the PSLF.BAT file
at the DOS prompt the command syntax would be:
PSLF.BAT <your install_dir>
Example for installations on the c: drive:
cd to upslfXXX
pslf.bat c:\upslfXXX\
EPCL program problems when moving files from one machine to another?
Often a file is moved from machine to machine or server or even a different operating system, such as, LINUX, or
Windows. This moving process can create a problem in epcl programs. (It adds non-printing characters). Recently
we got an error message when executing an epcl program that worked on another computer. The error message was
“EPCL error” with no other details, such as, line number or description of problem. To fix this problem:
1. Open epcl file using TEXTPAD
2. Copy the entire file
3. Open a new file and paste the entire file into it.
4. Save as a unique filename.
This new file when re-executed through the epcl command worked to perfection.
Installation
How do I install PSLF?
Download the ConcordaPSLF-17.0.02 installation file from the GEConcorda.Worksmart.net server (ConcordaPSLF-
17.0.02.exe) to your computer and follow the steps below.
Double click on “ConcordaPSLF-17.0.02.exe” to start the installation.
This will display our Welcome to the Concorda PSLF Setup Wizard panel shown below:
Click “Next”
The License Agreement panel will be displayed. Here you need to read the licensing terms and conditions.
Click “I agree” to accept the terms & conditions in the license agreement and to proceed with the installation.
Once you’ve agreed to the terms & conditions, the Choose Install Location panel will be displayed. The default
destination folder is always c:\upslf17 but you do have the option of changing the drive.
(To change the drive just retype the drive to the drive of your choice.)
Click “Next”
This will display the Choose Components panel. The default installs the PSLF Program Files, SSTOOLS,
DYTOOLS, and PSLF Desktop Icon as shown in the example below. PSLF Program Files are required files.
SSTOOLS, DYTOOLS, and PSLF Desktop Icon are optional installations.
Click “Next”
This will display the Choose Start Menu Folder display where you enter the folder name for the program’s shortcuts.
Click “Install”
The program will begin the installation as shown below.
Once the installation has completed, the following display will appear.
Click “Finish”
This completes the installation of the setup & manual files for ConcordiaPSLF-17.0.02exe.
***To Complete the Installation****
IMPORTANT: All PSLF users must have an "epcd" options file in their installation directory
(default c:\upslf17) to activate this download. When downloading PSLF from the web, you
must copy the "epcd" file from your current working PSLF installation directory to c:\upslf17
to activate this download.
GEConcorda.Worksmart.net
GEConcorda.Worksmart.net is our current external server used for all our PSLF software downloads and exchange
of information to/from our customers. It replaced our PSLF QuickPlace server in September 2008.
How do I get an account on the GEConcorda.Worksmart.net server?
All PSLF Licensees who license PSLF thru GEII will receive an account on the GEConcorda.Worksmart.netserver.
When the account is created, the user receives an “Invitation to the GEConcorda.Worksmart.net server” by email
with a link to the server and a login/password. We no longer have access to any customer login/passwords as they
are automatically generated by the server. Only the PSLF License Contact for each company has an account with a
login/password set up on the server . If an IT person needs to install the software or your company’s PSLF license
allows other users, the PSLF License Contact can forward his/her email invitation containing the server url,
login/password to anyone else who needs access to the software downloads.
I’ve been told that an account has been created for me on the GEConcorda.Worksmart server, but I didn’t get
the Invitation email?
Sometimes when the Invitation email is sent, some company email filters send it to either junk mail or spam so it’s
important to first check both these locations if you did not get the email. If it’s not in either of these places, contact
pslf.registration@ge.com or the support team email pslf-support@lists.dstar.org and your account can be deleted
and re-created so the invitation is resent to you.
I am a new PSLF user and just got a login/password to the server. What is the best way to save this site
information?
** You need to keep the email invitation from the server that contains your login/password information as it is
generated from the server and no one else has this information. You should also bookmark or set up a shortcut
to this site for future use.
How do I set up a bookmark to the GEConcorda.Worksmart.net site?
If this is your first time logging into GEConcorda.Worksmart.net, click the Bookmark This Page on the
GEConcorda.Worksmart.net login page.
How do I set up a shortcut on my desktop to the GEConcorda.Worksmart.net server?
Right mouse click on your desktop and select New/Shortcut
Enter the url for the server as shown below.
Click Next
Enter a name for this shortcut (ex. PSLF Server, GEConcorda.Worksmart, etc.)
Click Finish
The shortcut will be created on your desktop with the Windows/Explorer symbol.
How can I put the PSLF logo on this shortcut to the server?
Right mouse click on the icon,
Click Properties
Click Change Icon
Click OK
Click Browse
On your computer under the PSLF directory \upslfXX\icons,
Click pslf_48x48.ico
Click open
Click OK
Click OK
Icon will be changed to the PSLF Logo on your shortcut as shown below.
I am unable to enter GEConcorda.Worksmart.net – what should I do?
If you are having problems entering our GEConcorda.Worksmart.net server, there are a few things that could affect
signing on.
1. If you are having a problem with the server not accepting your password, click the Forgot Password link.
Enter your username and the server will email you a new password.
2. Under Internet Explorer/Tools/Internet Options under the Security tab, select custom level and scroll down to
the bottom. Under the User authentication/Logon, the second bullet – Automatic Logon only in intranet zone
should be selected.
Where can I get the PSLF Training Schedule?
The PSLF Training Schedule is posted on the GEConcorda.Worksmart.net server under PSLF Training.
Where can I find information about the PSLF User’s Group Meeting?
The PSLF User’s Group Meeting information is posted under 2008 & 2009 PSLF User’s Group Mtg.
Where can I upload a large case for the support team to look at that is too large to send by email?
If you are a GE Licensee, there is a File Upload/Download folder where you can upload your case.
If are a GE-WECC Licensee and need to have GE look at a special case, contact the PSLF support team at pslf-
support@lists.dstar.org and someone will email you a temporary login/password to the GEConcorda.Worksmart.net
server where you can upload the file under the File Upload/Download folder.
If you are a GE-WECC Licensee, WECC has an area on their WECC Bulletinboard where you can upload your case.
(see QASupport)
Support
What do I do if I need help with a PSLF issue?
PSLF Support for GE Licensees
Support Procedure
· Send zipped case, dynamics, and associated files to PSLF team email.
pslf-support@lists.dstar.org
· Include detailed description of problem.
· If there is an EPCL issue, please send EPCL and description.
You will receive an email response back like this:
Depending on your PSLF problem/issue/case, someone from the PSLF technical support team in the area of expertise
of your problem, will respond back to you.
PSLF Support for WECC Members
WECC is the support contact for the PSLF Program for WECC Members. WECC staff responsible for support are:
· Donald Davies
· Branden Sudduth
· Kent Bolton
· Ben Novak
· Enoch Davies
Support Procedure
· Send zipped case, dynamics, associated files to WECC.
· Include detailed description of problem.
WECC Web Site Help
· Go to www.wecc.biz
· Select “GE User’s Group” under the Committee Pages Ruler
LoadFlow
Equivalencing
A persistent complaint in making an electrical equivalent in PSLF is the result of large shunts and loads at the same
bus. These typically will combine to zero but have the potential to cause cases to diverge during outage cases on this
equivalent network.
Previously you would have to remove all out of service buses, lines, transformers, etc. prior to executing the eqiv
command. This is no longer the case in V14.05 and above.
How do I re-arrange my zone edit table to look more ordered? Each time the zone edit table is entered it is
somewhat randomly ordered. A manual re-order can be done on the column, but can this be handled another
way?
In earlier versions of pslf you would click on edit, then sort, then zone' and enter 1 next to zonum.
With PSLF V14.X the main window has two rows of buttons. The rightmost button on the lower row is sort. Click on
this sort button and then click on the zone button, and enter 1 next to zoname.
Next time you enter your zone edit table, things should look better.
Islands created by outage in a contingency
If, as a result of a line outage, there are two islands and only one of them has a swing bus, how does PSLF treat the
second island with no swing bus?
The load flow solution will treat the second island as such, without being able to balance the load and generation in
that island. So you will end up with a solved case (the main island with the swing bus) but with great mismatches (the
second island).
Short Circuit
PSLF V14.1 has problems after importing a short circuit seq file?
The newer upgrades to V14.1 can import short circuit seq files from more recent PSS/e versions (later than V27).
Although this importing feature worked perfectly at first, we are now having random crashes with V14.1 with seq files
that have been more recently exported from V29. Is there an epcl version of this PSLF importer or any other way to
import this data?
Your more recently exported V29 seq data has more than 1500 mutual coupling records. All 60000 bus versions of
PSLF have a hard coded limit of 1500 mutual coupling records.
Although an epcl now exists for doing the same import function, it cannot solve this internally hard coded limit
problem.
We will increase the mutual coupling limit in V14.1 and make an upgrade available to anyone in this same situation.
Everyone else should wait for V14.2.
Does PSLF has problems with .sav cases from V12 & V13?
PSLF has an option ('Parm', 'Fault', 'Save Short Circuit Data') that allows short circuit data to be saved within a PSLF
.sav file for future use.
Although V13.x can load in such a .sav file (created from PSLF V12.x) it appears that V14 will load the .sav file OK
with getf but Short Circuit('SCSC', 'ScCalculation') will not work correctly.
This also appears to be true when trying to load a similarly created .sav file from V13.x into V14.
This issue is a little broader than just short circuit.
PSLF has the ability to read in .sav files created with older versions of PSLF. Owner, transaction, motor, and short
circuit sections may need additional steps to get them into V14 correctly however.
Depending on the which version of PSLF the .sav file was created, epcls or the export/importing of text files may
provide a solution.
In this specific case of short circuit you will need to have a PSLF V12 or V13 still installed on your computer so you
can export the short circuit data to an epc text file format:
1) Load the .sav file into V12 or V13 with 'getf' and then export short circuit using 'scsc', 'wseq'. Be sure to give the
exported file name a .seq extension.
2) Load the .sav file into V14 with 'getf'. Import the .seq file with 'SCSC', 'Read SeqGe'. An input dialog box will
popup "Enter a 1 to start a new Load Flow/Short Circuit case". Do not enter 1, just hit the enter key.
3) Set the default 'fault' parameters ('parm', 'fault') to have faulted bus, monitored buses to be blank, type=3, and
branch & current=0, ohms=0.00.
4) save everything into a new .sav file ('savf').
5) Close PSLF V14 and open it again, load in this new .sav file, and run a short circuit analysis.
How do I find documentation for Grounding transformers modeling?
The documentation for the short circuit program can be found by selecting "Commands" and "scsc" in the manual.
Transformer grounding is specifed on the zero-sequence record by the "winding type" code: 1 for grounded wye, 2 for
ungrounded winding. In the default zero-sequence data, the program makes some assumptions about the winding type
based on the kV base of the winding. This can be changed in the edit table or by loading in a sequence data set.
Dynamics
What is the UPFC model?
UPFC modeling has been included in both the load flow and dynamics part of the PSLF program for future release. In
the load flow, a UPFC is modeled by a special transformer with adjustable phase angle and voltage tap, and a
generator. Data for a UPFC device should be input in three tables - "gcd"(gate controlled devices) table, transformer
table and generator table. The edit table "ped" has been renamed to be "gcd". A detailed guide for how to input data
and use the UPFC load flow and dynamic model will be included in the program.
A simple example of the UPFC application will also be included in samples directory.
Is there a guide for writing customized dynamic models?
epcmod is used for writing customized dynamic models. When you are in a situation where you can't find a built-in
dynamic model which fits your particular application purpose, you can write one of your own using epcmod. A guide
for how to write an epcmod model is posted on GEConcorda.Worksmart.net. Two examples were discussed in this
guide - one is an exciter model (a power plant oriented dynamic model), another is a mechanically switched shunt
capacitor model (a system oriented dynamic model).
In the PSLF Version 12 release, epcm1, epcm2 and epcm3 models were removed. These were used for supporting user
written dynamic models, similar to the epcmod model but following an old style. The user written models using
epcm1, epcm2 and epcm3 should be manually converted to use epcmod.
Does the time constant H have to be in seconds for the H calculation?
The machine time constant H must be in “seconds” in PSLF dynamic simulation. In many occasions, users may be
given data of machine rotating inertia in pound-feet2 or in kg-meter 2 , instead of H in seconds.
Formula for conversion from rotating inertia X (in pound-ft2 ) to machine time constant H (in seconds):
H = (0.231*10 -6 )* X * (rpm) 2 / KVA rating
Where rpm is machine speed in revolution per minute, e.g., 3600 rpm for a two-pole machine and 1800 rpm for a 4-
pole machine.
Example, given machine rating of 234 MVA, rpm of 3600 and machine rotating inertia of 278,620 pound-ft2 , H (sec.)
= (0.231*10 -6 ) * 278,620 * 36002 / 234000 = 3.56
Formula for conversion from rotating inertia Y (in kg-m 2 ) to machine time constant H (in seconds):
H = (0.231*10 -6 )* Y * 23.73 * (rpm) 2 / KVA rating
Example, given machine rating of 234 MVA, rpm of 3600 and rotating inertia of 15,695 kg-m 2 , H(in seconds) =
(0.231*10 -6 ) * 15,695 * 23.73 * 36002 / 234000 = 4.76
How do I write a user written EPCL model?
Caution: when writing multiple user written EPCL models for dynamics the parameter names must be unique
between all the models.
e.g. First Model
epcmod 1 “New bus” 115.00 “1“ : #9 msc4.p 6.0000 vmax 1.0440 vmin 0.9880 delay 4.0000 vinrg 1.1590 vinlo
1.1910
Second Model
epcmod 3 “New bus” 115.00 “1” : #9 msc5.p 7.0000 vmax1 1.03 vmin1 0.97 delay1 4.0 vinrg1 1.2 vinlo1 1.3
Notice in the second EPCL model, 1 was added to the variable names to make them unique.
Should I do anything before running a dynamic simulation?
Prior to executing a dynamic simulation, run the following steps would be advised:
1. Under your current working directory create a new folder called epclcom
2. Create a file in that directory called init_pre.p within that file should be a record
@ret=epcl(“c:\upslfXX\samples\modstat.p”)
This will turn off all dynamic models for those generators that are status off prior to executing INIT.
How do I turn off a power system element?
Turning off power system elements, such as, a DC line or generator is accomplished by setting the component status
equal to zero and not changing the model status.
For a dc line dcl[@i].st = 0
or
For a generator gens[@i].st = 0
The status of models, as displayed in the EDDS table, should be changed ONLY before the execution of the INIT
command. For example, if a generator is to be simulated as running with constant turbine power, its turbine governor
model could be deactivated prior to executing INIT. For the avoidance of doubt, the status of a model should NOT be
changed after INIT has been executed.
Is there a workaround to the Jumper Problems in Dynamic Model IFMAZ?
Dynamic model ifmaz which monitors the P and Q flows between areas or zones has a problem with jumpers at or
adjacent to tie line buses. This problem has been fixed in V14. For V13 and earlier, the workaround is to eliminate all
jumpers at or adjacent to tie lines by setting the impedance above the jumper threshold, typically .00011 in the east or
.00029 in the west, reorder, solve, and resave the case.
DataBase
How do I add buses, branches, etc. to different basecases?
There are three different ways to add a small number of buses, branches, etc. to many different base cases.
1. Write an epcl
2. Use edit log-by going through the changes one time with the edit log flag turned on (PARM:DIS change the
“use edit log” flag from 0 to 1) and all changes made in the edit tables will be put into a file called edit log.p or
any name the user selects. This is an ascii file that can be modified by any text editor to add additional items
or commands.
3. F9 function to export a portion of edit table in EPC format. Any of the tables (busd, secdd, ….)
How do I replicate records in Edit Tables?
When replicating records in the edit tables particularly the transformer or generator, remember to use F8 and view the
entire record. For transformers you may have to change the regulating bus, tertiary bus or 3 wpt bus from its
replicated value to 0. Likewise in the generator record the regulating bus, hbus and tbus entries will have to be
modified. Regulating bus is the bus it is attached to or some adjacent bus and hbus, tbus entries should be zero.
How do I renumber Buses in the edit tables?
When changing bus numbers in the edit tables, remember to use F8 and modify the bus number in the green screen. If
the main edit table is used, the change will occur in the bus table but all the other tables (secdd, tran, tap, gens, etc.)
will show a zero.
How do I delete a large number of records in V14?
V14 has the new feature in the edit tables to mark a bunch of rows, then right mouse click and hit “Delete Marked
Rows”. This works for any table and any number of rows but it can take a lot of time to perform this operation (also
in V13). The fastest way to delete a large number of records from a table is mark the status field with –4 and click
dele under edit. This action happens immediately. Note: Not all tables have a status field therefore check the manual
under the dele command for details.
What are some database checks?
Check existing databases that the generator status is 0 or 1 and not 99. If equal to 99, it is best to change all of them to
1 and resave the case.
Dynamic models pfs and lcfb1 are now type c models instead of type t. A base load flag is now visible in the gens
edit table (BL column) this flag is now used by various dynamic models (see section 3.11.2.4 of the user manual)
What voltage values should be set when adding new buses into the database?
When adding new buses into the database through an epcl program, you must set the following voltage values:
volt[ ].vm pu voltage magnitude
volt[ ].va angle in radians
volt[ ].vr real portion of the voltage
volt[ ].vi imaginary portion of the voltage
where
volt[ ].vr=volt[ ].vm*cos(volt[ ].va)
volt[ ].vi=volt[ ].va*sin(volt[ ].va)
The epcl function called REP can also be used to replicate a record in both the busd and volt table.
Caution: RPTI read in generators that were at limits and set the status = 99. This feature has been removed and it is
best to set all generators whose status is 99 back to 1. Check in rpti.p that gens[ ].st=00 section is commented out.
Sorry for any inconvenience.
A rpti.p resides in \upslf141\samples which also corrects a time stamp issue.
Is there a way to export data from PSLF into a spreadsheet program?
A new feature was added to the eepc command that places all the exported fields onto one record. This is handy for
importing into a spreadsheet program. To activate this feature, set the first entity in the eepc export panel “Page
Format file” to 2. Previously the generator and transformer records were multiple lines and could not be imported
into a spreadsheet.
Can moving V13.X edit description files into V14 cause a problem?
V14 edit description files that are located in the c:\upslf141\epslf have two restrictions that the previous program didn’t
have.
1. No dashes in front/behind column heading names, such as, -bmin- or --name--
2. All column heading names MUST be unique within the same file. Example in the gens file we had –NAME--
for the bus where the generator was located and -NAME-- for the regulating bus name. In V14 we call those
column names, NAME1 and NAME2 so the names are unique.
V14 files all have been modified to correct this situation already. A problem can be caused by moving an edit
description file from V13.1 because of extended records or modifying existing tables. These files can be used if you
correct the above restrictions prior to starting V14.
Can I Export raw data in GE format?
A new feature was added to the eepc command that places all the exported fields onto one record. This is handy for
importing into a spreadsheet program. To activate this feature, set the first entity in the eepc export panel “Page
Format file” to 2. Previously the generator and transformer records were multiple lines and could not be imported
into a spreadsheet.
Old sav cases
Old .sav cases (prior to V13) require the following steps to ensure all data is correctly retrieved.
1. Using PSLF V12 run an epcl program called fixowntran.p. This will write out owner, transaction, and motr
and line tables in epc format.
1. Start PSLF V13 or V14 and getf original case.
Execute epcl called read-owntrans.p which appends owner and transaction data to the .sav case. Then savf to save the
case.
Does PSLF have a Macro-Reader
PSLF has a macro-recorder in edit tables that will become functional with the release of V14.2. It saves various
operations that you do manually into a text file that can be run later as an epcl. The resultant epcl can then be polished
a little with a text editor and than re-used for similar exercises. To turn this feature on, click on the 'PARM' button,
click on 'display', change 'use edit log' from 0 to 1. Discussion on edit logging can be found the quickest by opening
c:\upslf141\pdf\toc.pdf and then searching for occurrences of 'edit log'.
EPCL
What does avail.p do?
A reminder that an EPCL called avail.p is located in the c:\upslfXXX\samples directory. It is a handy reference to all
the different sample EPCLs according to their function.
When do I need the epslf directory?
When running an epcl that is going to create an edit table, a new directory called epslf must be created under the
current working directory prior to executing that epcl otherwise an error message will appear in the GE terminal
window or the DOS startup window.
How do I convert a number to a string?
There are times when writing an EPCL program it is desirable to convert a number of a string or a string to a number.
The string to a number conversion is accomplished by the epcl function atof (alpha to float)
@num=atof($string)
The number to string can be done by the function logbuf.
logbuf($string,@number)
or to format
logbuf($string,@number:8:0)
Another example is creating a file name
for @i=1 to 10
logbuf($file,”case”, @i:1:0,”.out”)
.
.
next
This will create a variable $file with the name being case1.out, case2.out, etc.
How to I do repeat scenarios in multiple cases?
There is an epcl called editlog.p to do repeated scenarios for multiple cases.
getf test1.sav
PARM:DIS
use edit log set = 1
best to change name from editlog.p to some unique name (claudia.p)
edit
whatever you do in the EDIT command will be logged in the epcl claudia.p
stop (to exit PSLF)
later if you want to repeat the same scenario on another save case,
Start PSLF
getf test2.sav
EPCL select claudia.p to replicate these same
EDIT changes that were made in the
first case
How do I get the latest version of epti.p and rpti.p for reading/writing PSS/E data?
The rdyp.p in version 13 (on GEConcorda.Worksmart.net) is updated to coordinate with the update of the standard
model library in PSLF version 13.
What EPCLs are used by WECC?
Posted on GEConcorda.Worksmart.net are the official EPCL programs used by WECC called 4ttap.p, pdci_ns.p, and
pdci_sn.p which represents the 4 terminal Pacific DC Intertie. The EPCL distributed with Version 13 isn’t up to date.
The distribution of PSLF Version 13 from WECC “will” contain these updated EPCLs.
How do I check delta states of major PSLF standard models?
“dstates.p” is available on our GEConcorda.Worksmart.net. This EPCL checks delta-states (derivative of state
variables) of major PSLF standard models - genrou, gensal, gencls, gencc and gentpf, all exciter models, and all
governor models. This epcl can be run at any pause time after initialization to check delta-states at the moment. It can
be used to debug dynamic data. This EPCL is more flexible to use than the existing EPCL usteady.p in samples
directory in that it can be run at any pause time during a dynamic simulation. usteady.p is useful only at the beginning
of a dynamic simulation right after initialization. Note that this EPCL checks delta-states of major standard dynamic
models but not all models. Before using this EPCL, a subdirectory /epslf has to be set up under the current working
directory with no files in it.
How do I get the latest version of rdyd.p to convert PSS/E data to PSLF data?
“rdyd.p” is available on our GEConcorda.Worksmart.net. This EPCL has been updated to convert a PSSE dynamic
data file to PSLF dynamic data file. The update replaces any conversion to obsolete models in Version 13 with
conversion to existing models in Version 13.
How do I sort names in the gens table?
Permanently sorting (SORT command) the bus names can be done for the busd table but not directly in other tables,
such as, gens or load. Here’s a way to sort names in the gens table.
· After the save case is in memory, click EDIT:gens
· Move the cursor to the NAME column and sort in ascending order (this is a temporary sort).
· Move to a column that isn’t used for normal load flow data, such as, GTAP. Click SORT and index ascending
which will start numbering the column from 0 to the number of items in the table.
· Go to the SORT command, then click GENS and move down to the row called gtap and enter a 1, then hit OK.
· Best to return to EDIT:GENS to check the names are sorted alphabetically and also fill the column labeled GTAP
with 1 and resave the case.
Replicating an element, such as a transformer or generator that has a bus reference inside the record, will put a zero
entry for that bus. Unfortunately a zero entry which is an internal index 0 number translate to the first bus in the
system. We are in the process of fixing this but until then, the work around is to execute the Record Editor (F8) and
manually change those entities to the valid numbers.
Pass() function behaves differently in PSLF Version 14.1?
This is a subtle change made to improve the way users reference things...
Another difference is that there is no longer an edit epcl pass variable (edep) table. Instead the user can manually add
the epcl as a simple text string and OLGR will correctly interpret it as an epcl pass variable.
After this text has been added and then needs to be modified, place the mouse cursor on the left side of the text and
then right click to bring up the change dialog box. It is recommended that you first increase the dialog box size by right
clicking on it's right edge and dragging it until the text field is completely visible.
What file path rules apply to epcls referenced in OLGR draw files?
The epcl path should be part of the epcl text string in the drawing file. For example: c:\pslfdata\epcl\cu_olgr.p
If the path information is missing and only the file name is given: cu_olgr.p is specified, then PSLF(OLGR) looks for
the epcl file in your working directory. The working directory can be modified by right clicking on the ICON that
starts PSLF, then clicking on properties, and modifying the path in 'Start In:' field in the center of this properties box.
Although something like: @i = set_paths("epcl","s:\pslfdata\epcl") can be added to your javaini.p, it only applies to the
default path that is used if the epcl button is clicked on while in the main PSLF window but it is not used by OLGR.
This same default epcl file path behaviour is also in earlier versions of PSLF.
Does PSLF have a Macro-Recorder?
PSLF has a macro-recorder in edit tables that will become functional with the release of V14.2. It saves various
operations that you do manually into a text file that can be run later as an epcl. The resultant epcl can then be polished
a little with a text editor and than re-used for similar exercises. To turn this feature on, click on the 'PARM' button,
click on 'display', change 'use edit log' from 0 to 1. Discussion on edit logging can be found the quickest by opening
c:\upslf141\pdf\toc.pdf and then searching for occurrences of 'edit log'.
What did we ever conclude about the pointers to various directories in javaini.p? Right now I have to put the
solv_pre.p and solv-pst.p files in a subdir of drw along with the .drw and .sav files.
It is easy to set your working directory folder by having a shortcut Icon on the computer's desktop that is used to start
PSLF (especially important to have this desktop Icon with Windows NT). Left click on the shortcut Icon and then
select 'properties' and then modify the field named 'Start in:' to establish the pathname of the working directory.
The javaini.p file can be modified to specify paths for files that are not expected to be in your working directory.
Examples are:
@i=set_paths("stdp","c:\upslf141\samples")
@i=set_paths("epcl","c:\temp2\OLGR\EPCL")
@i=set_paths("getf","c:\temp2\OLGR\SAV")
@i=set_paths("savf","c:\temp2\OLGR\SAV")
@i=set_paths("olgr","c:\temp2\OLGR\DRW")
The epcl path is for starting epcls from the main PSLF window. It however does not apply to epcls referenced in an
OLGR draw file. In this case the epcls must be in the working directory.
Merge.p does not check the return value when getf is issued for the cases. How can this be addressed in the
EPCL?
It was recently discovered that the merge.p epcl in the samples folder does not check the return value when getf
is issued for the cases. If you enter a file name that is not valid, the screen starts to scroll a long listing of
duplicate bus names. If merge.p is used, add lines to check @zz and end the routine if -1 is returned. Here is
the code needed.
@zz = getf(*inp[1])
if ( @zz = -1)
logterm ("Case ", *inp[1] , " not found. ")
end
endif
Solve
I tried to solve a case and got a segmentation fault? What should I do?
Recently received a database and in the first attempt to solve the case a segmentation fault occurred. The first
command to execute should have been DCHK which alerted us to the BFACE table which has 0 bus entities. After
that table was corrected, the case solved immediately.
How do I solve large cases?
Many databases are now 40,000 plus and present a difficult challenge in solving. Here are some tips:
1. Under PARM:SOL make the tolerance 1.0 and the Minimum Var Limit Band Width 10-20.
2. Don't have jumpers (impedance < than the jumper threshold) next to generator or dc buses. Recommend
changing all impedance <.0005 to .001 (then reorder) thereby eliminating all jumpers and don't have to ever
reorder when executing a contingency processor.
3. Use bus type -2 temporary in a region where the mismatches are greatest until the case almost converges then
switch back to type 2.
4. Always use SCAN/LIST where the mismatches are the highest to see if low impedance branches or remote
regulation issues exist at or near that bus.
How do I solve cases from various sources?
Solving cases from various sources seems to require the minimum var limit band width located under PARM:SOL be
changed from 2 to 20. The alternative is to correct the scheduled bus voltages that may be quite different from the
actual voltage.
How do I fix large mismatches?
You can go to TABR: MISM table and sort the mismatches in descending order and look at the buses having large
mismatches. The suspect buses can be scanned. Once in scan window, you can use list command at the bus and see if
there are any data issues associated with the equipment connected to the buses or any voltage regulation issues.
You can also look at the iteration log on the PSLF terminal and take a closer look at those buses, which shows up
repeatedly during iterations.
I have a radial phase shifter connected to a bus with no active elements – is this a problem?
A recent database was solved successfully with all options turned off. When the phase shifter option was enabled, the
case diverged in the first iteration. After some trial and error attempts (setting half the type 4 transformers to type 1
and finding the problem phase shifter), the cause turned out to be a radial phase shifter connected to a bus with no
active elements (load, generator, shunt, dc or svd). An epcl called radialps.p is posted on GEConcorda.Worksmart.net
under EPCLS/GE EPCLS to help solve this situation.
How do I get rid of the message “Branch from xx to yy closes jumpered loop” after a load flow solution?
If you want to get rid of the message “Branch from xx to yy closes jumpered loop” after a load flow solution, go to
EDIT:SECDD and move cursor to the X-PU column then hit F11 and sort forward; then hit F1 and in the box >= 0
then hit F4 (this eliminates all the negative values) hit F1 then > .0001 then hit F2. Now we want to fill the column
upward so hit F1 in the box type .001 then hit ! then up arrow to fill the column upward with .001. Best to SAVF this
case then go to SOLV and set the optimal ordering flag to 1 after it solves resave the case and those messages are
gone.
Graphics
How do I modify a scan drawing?
1. To modify a scan drawing and make it into a draw file, perform the following steps:
2. Click scan from the main menu
3. Enter target bus number, hit CR
4. Exit scan by clicking quit then ESC
5. Click olgr and move cursor to blank white line and hit Enter
“No drawing file Specified, enter name”, hit CR
6. Click gedi and modify the drawing as needed, hit exit, then hit cfop and type XXX.drw on the blank yellow
line to save a new drawing file.
How do I deleting large amounts of data (> 1000 records) from edit tables?
When deleting large amounts of data (>1000 records) from edit tables using F7 may be rather slow. A quicker way is
to go edit, select the edit table, move cursor to status field, hit F1, type –4, hit ! to fill, hit CR to fill whole column,
then ESC to main menu. Select misc/dele and hit CR to execute it. (see dele command for all tables to see what field
to mark.) Example: eliminate all loads prior to doing a short circuit calculation from a database that contains 21000
loads. The F7 way took more than 30 minutes, but the column fill all the status fields with –4 then dele took 1 second.
Another quick way when eliminating the entire table is set the casepar[0].nload = 0 (for load table) or casepar[0].ngen
for generator table in an EPCL program.
How do I Sum line flows & display single MW and MVAR?
A question at the user group meeting came up regarding summing all line flows and displaying a single MW and
MVAR.
Step1 Draw a single line between two buses
Assign a circuit ID =1 initially
My browser won’t come up in the plot program – what should I do?
When running PSLF or the PLOT program and the F1 key is hit to bring up the help pages through the internet
browser, if you want the manual pages in the browser and the program to both be active, the internet browser MUST
be running prior to starting the help pages. If the browser isn’t running, then only the manual pages will be active and
the browser will have to be shut down to get to the program (PSLF or PLOT) active again.
Contingency Processor
I have the lastest contingency processor and PSLF doesn’t start up – what do I do?
New contingency processor on GEConcorda.Worksmart.net requires lots of memory. If PSLF doesn’t start after
downloading the files, then you will have to reduce the dimensions in the following files in the pslfexr folder:
flow.exr (200000)
voltct.exr (30000)
colct.exr (20000)
voltage.exr (200000)
(the maximum records.MAXRECS dimensions are in parenthesis)
I have been unsuccessful in getting the contingency processor to run. I repeatedly get the same message
“ERROR reading save cases\psec-1.sav” etc.?
The contingency processor searches for the base case (s), the .sav file(s), in a path indicated in the cases file, from
where the contingency processor manages its auxiliary files (.otg files, .ctrl files, output files, paths, etc.). If this path
is wrong, or if the file is not located in the specified path, then the contingency processor will not find the file and
return that error message.
To fix this, modify the path on the third line of the .cases file, SAVEPATH, of interest to be where the .sav files are
located.
I have been unable to get cont-load.p to work. I keep getting the message “undefined PSLF identifier in line 53
of file cont-load.p”?
This particular message where cont-load.p will not compile because of an error in line 53 of the EPCL suggests
that the extended records have not been read in when PSLF was started. One possible reason is that the
resources on your machine have been exhausted.
If the extended records (which are needed by the contingency processor) demand more memory than what your
machine has available, the extended records will not be properly read in, therefore, PSLF will not "see" the new
variables (that should have been created by the extended records).
There are two possible solutions:
1. Long term: upgrade your machine. We have found that the extended records needed for some
contingency set runs could make the demand of resource in your PC add up to over 600 MB of RAM, so we
would recommend a PC with 1 GB of RAM.
2. Short to Mid-Term: reduce the memory allocation of the extended records. To do this
· open each and every file (except for casepar.exr) in the pslfexr folder of interest (where the
contingency processor looks for the extended records)
· reduce by, say half, the number defined by "maxrecs" (it will appear beside it). This might not
reduce the resource (memory) demand exactly by half, so you would have to work on a trial an
error basis to customize the records to your case.
IMPORTANT NOTE: if your case requires more records than what you have allowed for it to handle, you
MUST increase the maxrecs, or you will get unstable behavior. If this is the case PSLF may or may not
crash, but tables (in UEDT) will definitely fall short of the total amount of records required.
I have been unable to get cont-load.p to work. I keep getting the message “undefined PSLF identifier in line 53
of file cont-load.p”?
Another possible reason is that the present working directory does not contain the pslfexr folder, which contains
the extended records. To correct this either:
1. Copy the pslfexr folder (which you can find under c:\upslf141\samples\cont-process-v2 if you already have
PSLF 14.1) to your working directory; OR
2. Change your working directory to be that where the pslfexr folder exists.
We recommend the first option IMPORTANT NOTE: you MUST close PSLF and reload it for either change to take
effect.
How do I get rid of the message “Branch from xx to yy closes jumpered loop” after a load flow solution?
This particular message where cont-load.p will not compile because of an error in line 53 of the EPCL suggests that
the extended records have not been read in when PSLF was started.
One possible reason is that the present working directory does not contain the pslfexr folder, which contains the
extended records.
To correct this either:
1. Copy the pslfexr folder (which you can find under c:\upslf141\samples\cont-process-v2 if you already have PSLF
14.1) to your working directory; OR
2. Change your working directory to be that where the pslfexr folder exists.
We recommend the first option. IMPORTANT NOTE: you MUST close PSLF and reload it for either change to take
effect.
I have been unable to get cont-load.p to work. I keep getting the message “undefined PSLF identifier in line 53
of file cont-load.p’?
Another possibility: Many databases are now 40,000 plus and present a difficult challenge in solving. Here are some
tips:
1. Under PARM:SOL make the tolerance 1.0 and the Minimum Var Limit Band Width 10-20.
2. Don't have jumpers (impedance < than the jumper threshold) next to generator or dc buses. Recommend
changing all impedance <.0005 to .001 (then reorder) thereby eliminating all jumpers and don't have to ever
reorder when executing a contingency processor.
3. Use bus type -2 temporary in a region where the mismatches are greatest until the case almost converges then
switch back to type 2.
4. Always use SCAN/LIST where the mismatches are the highest to see if low impedance branches or remote
regulation issues exist at or near that bus.
I have been unsuccessful in getting the contingency processor to run. I repeatedly get the same message
“ERROR reading savecases\psec-1.sav”, etc.
If you want to get rid of the message “Branch from xx to yy closes jumpered loop” after a load flow solution, go to
EDIT:SECDD and move cursor to the X-PU column then hit F11 and sort forward; then hit F1 and in the box >= 0
then hit F4 (this eliminates all the negative values) hit F1 then > .0001 then hit F2. Now we want to fill the column
upward so hit F1 in the box type .001 then hit ! then up arrow to fill the column upward with .001. Best to SAVF this
case then go to SOLV and set the optimal ordering flag to 1 after it solves resave the case and those messages are
gone.
Miscellaneous
After importing a PSS/E case and going to TITL, my words type backwards – what should I do?
After importing a case from PSS/E format then going into the command TITL and typing a new line or modifying an
existing line, the words might type backwards. The problem is a non- printing character on that line. The solution is to
place the cursor on the last character of an existing line or the first character of a new line and hold the delete key until
you hear a beep indicating the last character has been reached. A new title line can now be entered. After exiting
TITL resave the case.
My dates don’t appear correctly in my pick panel – how do I correct it?
In the red pick panel, one of our customers had dates appearing in the left column where the directories should appear.
This is caused if your system date is set to dashes instead of slashes. To correct this problem go to start:
Settings
Control Panel
Regional Settings
Date
Change date to slashes
Are there any cautions to watch out for when using extended records?
A couple of cautions when using extended records.
1. Always have the variable definitions on four byte boundaries (this applies only for character definitions)
because floats (f)and integer (l) are automatically on 4 byte boundaries) if you define a flag to be one character,
such as,
flag C1
then must have a dummy variable to fill the other three spaces
flag C1
dummy C3
2. The other caution is don't use the name "spare" as the first five characters to define an extended record. Names
like sspare or aspare are ok but not spare, spare1, or sparec.
Users Beware!!! You cannot have a 0 bus # in any edit table. A 0 bus # in an edit table can cause the program to do
unusual things - even crash!!
When making equivalents, what steps should I do prior to running EQUIV?
When making equivalents, please follow these steps prior to running EQUIV:
1. Remove all out of service branches/transformers/generators/load/ shunt/svd (Highlight the status field, then hit
F1, type 1, then hit F5, and ESC, then F5 again to confirm)
2. Remove all islands (epcl program called delisld.p can help).
3. Delete all dc data (run deletedcc.p from the samples directory.)
4. Don't move the system swing bus prior to making the equivalent.
5. Reorder, resolve, and save the case.
6. Mark the buses to equivalence with -1 and then execute the command EQUIV.
7. If the system swing bus was removed, you will need to add a new one.
I’m getting the message “there are … models with unsteady initial conditions” after initializing my dynamic
case – what should I do?
After initializing a dynamic case, sometimes you see the message “There are … models with unsteady initial
conditions”. This results from a PSLF automatic check on all state derivatives of all dynamic models in your system.
If a model has a state derivative which satisfies the condition – (dstate > tolerance * state), then this model is counted
as one with unsteady initial condition. The rate check tolerance value can be viewed from the DYNAM:PARM panel,
or RUN panel. This message is only for information purposes. Always use a no disturbance (flat) run to tell whether
your system is initialized well or not.
Where can I get the latest version of the Contingency Processor V2?
Version 2.2 of the contingency processor main program (cont-process.p) is available for download on
GEConcorda.Worksmart.net. This download contains the following changes:
cont-process.p – correct ratings used in one-line diagrams, correct index into secdd and tran table used to check out of
service lines and transformers before outputting results.
cont-load.p – changed the temporary dir file from “junk” to “junk.tmp” for Windows 2000 compatibility.
Division by zero when phase angle is larger than last valid point in table
Recent databases contain impedance correction tables where the current phase angle is larger than the last valid point
in the table causing a division by zero. Version 14.0 will correct this situation but earlier versions will have to modify
the last value of the table to be larger than the phase angle.
If you normally run PSLF using the icons set up in the installation, everything should work fine.
For those who may run PSLF by clicking on the pslf.bat file from their installation directory or at the DOS Prompt,
this will no longer work as we now pass an argument in the PSLF.BAT file. If you want to execute the PSLF.BAT file
at the DOS prompt the command syntax would be:
PSLF.BAT <your install_dir>
Example for installations on the c: drive:
PSLF.bat c:\upslf14
Is the Electrical Equivalence issue fixed in Version 14.1?
A persistent complaint in making an electrical equivalence in PSLF is the result of large shunts and loads at the same
bus. These typically will combine to zero but have the potential to cause cases to diverge during outage cases on this
equivalent network.
Previously you would have to remove all out of service buses, lines, transformers, etc. prior to executing the eqiv
command. This is no longer the case in V14.1
How do I retrieve old .sav cases (prior to V13)?
Old .sav cases (prior to V13) require the following steps to ensure all data is correctly retrieved.
1. Using PSLF V12 run an epcl program called fixowntran.p. This will write out owner, transaction, and motr
and line tables in epc format.
1. Start PSLF V13 or V14 and getf original case.
Execute epcl called read-owntrans.p which appends owner and transaction data to the .sav case. Then savf to save the
case.
A
ACCA accumulate area and group totals acca
Acceleration for VAR Limits solpar
Activate user EPCL programs for solution soln
ACTR single transaction transfer limit analysis actr
AC two party transfer limit actr
All load models in service for export dynamics data wdyd
Alternative bus number for scan scan
Angle Estimation solpar
Annotation Parameters parm
Area edit table area
Area interchange control for solution soln
Area/loss summary report loss
Area summary report rarea
area summary table tabr
Area tie line summary report rtiea
area tie line summary table tabr
Automatic SVD control for solution soln
Automatic phase shifter adjustment for solution soln
B
Base frequency Hz parm:dynam
Bface (Branch Interface Edit Table) bface
BINT list branch interface flows bint
Block diagrams dscn
Branch end /out cases parm:fault
Branch interface summary table tabr
Bus Fault status for dynamics parm:dynam
Bus Identifier function busident
Bus names flag for graphics parm:display
Bus topology scan scan
Busd edit table busd
Bus mismatches summary table tabr
C
Cabl cable properties edit table cabl
Calculate area totals acca
Calculate distribution factor efax
Calculate losses losf
Case summary summ
Character height for graphics parm:display
Check load flow data dchk
Checking Parameters parm
Colors Parameters parm:color
Color by nominal voltage(0) - volt/load limits(1) parm:check
Column width for the edit tables parm:display
ECOM1 commit & dispatch (full load heat rate) ecom1
ECOM2 commit & dispatch (minimum inc. heat rate) ecom2
ECOM3 commit & dispatch (strict lambda commitment) ecom3
Compile in-run epc parm:dynam
Cond conductor properties edit table cond
Convergence Monitor parm:dynam
Current flag 0 for 3Io 1 for Ia parm:fault
D
DATE, set working case date/time stamp date
Data checking dchk
Data Document – Load Flow Data Export/Import File dexm
Data Document – Short Circuit Export/Import File rseq
Data Document – Dynamics Simulation Data Export/Import File ddexm
DC analogy load flow dclf
DC two party transfer limit dctr
Dcb DC bus edit table dcb
Dcc DC converter edit table dcc
DCHK check load flow data dchk
Dcl DC line edit table dcl
DCLF solve network using dc solution dclf
DCTR single transaction transfer limit analysis dctr
Decoupled NR Solution Max Iterations parm:solve
Decoupled iterations before VAR limits parm:solve
DELE delete records from the data base dele
DIFS find and report differences between load flow cases difs
Direction arrow flag for graphics parm:display
DISP economic dispatch with generator status as given disp
Display Parameters parm:display
DRSC draw system diagram (file) drpl
DRPR draw system diagram (printer) drpr
Dynamics Parameters parm:dynam
E
ECAB write underground cable properties for use by TLC ecab
ECMF export load flow date in IEEE Common Format
ecmf
ECON thermal economic dispatch econ
ECOND write conductor properties data for use by TLC econd
EDER display dynamic simulation error report eder
EDIC edit dynamic simulation internal and boundary conditions edic
EDIT edit data tables edit
Edit/Report Columns for printing parm:display
Edit/Report Rows for printing parm:display
EDMD edit dynamic models edmd
EEPC export load flow data in EPC format eepc
EEXA\write the extended record data text file eexa
EFAX calculate branch outage distribution factors & scan system for efax
overloads
Enable Area Interchange Adjustment parm:solve
Enable Phase Shifter Adjustment parm:solve
Enable Switched Shunt Control parm:solve
Enable Transformer TCUL Action parm:solve
Enable d.c. Converter Control parm:solve
END termination of particular PSLF sub-system end
EPCL Epcl processor epcl
EPCO export load flow data in PECO format epco
EPOLE write pole data file for use by TLC epole
EQIV replace part of working system by electrical network eqiv
equivalent
Equivalent boundary bus type eqiv
Equivalence network eqiv
EXIM initiates import/export shell exim
CMF rcmf
EPC repc
PECO rpco
PTI rpti
WSCC rwsc
Export exim
EPC eepc
CMF ecmf
PECO epco
PTI epti
cable ecab
conductor econd
extension eexa
pole epole
Page format file eepc
Select table eepc
Selective Output eepc
Version number eepc
by dates(mmyy) eepc
tie lines eepc
F
F1 relational search and select F1
F2 sum column values F2
F3 scan bus F3
F4 fill a column F4
F5 refresh edit table F5
F6 Insert above F6
F6 Insert below F6
F6 Replicate > one line F6
F6 Replicate one line F6
F7 delete records F7
F8 record editor F8
F9 EEPC output F9
F9 Graph F9
F9 Record Print F9
F9 Row Print F9
F10 Access dropdown menus F10
F11 index backward F11
F11 index forward F11
F11 sort backward F11
F11 sort by magnitude backward F11
F11 sort by magnitude forward F11
F11 sort forward F11
F11 sort time stamp backward F11
F11 sort time stamp forward F11
Factorize parm:dynam
Fault reactance ohms parm:fault
Fault resistance ohms parm:fault
Faulted Bus parm:fault
Fault R, pu parm:dynam
Fault X, pu parm:dynam
Fault on time, sec parm:dynam
Fault Parameters parm:fault
Fault position, pu parm:dynam
Faulted bus. parm:dynam
Faulted line ckt parm:dynam
Faulted line sec parm:dynam
Faulted line, from parm:dynam
Faulted line, to parm:dynam
File Paths Parameters parm:path
Find differences difs
Find islands isld
Flat start for solution soln
FLOW list branch flows in an edit table flow
Fonts parm:display
From clear time parm:dynam
Full (1), DC (2), Decpl (3)) for solution soln
Full Newton Solution Max Iterations parm:solve
G
Gated control devices tabr
Generator results tabr
Gens generator edit table gens
GETF store and retrieve history files getf
GETM merge part of case in history file into working case getm
Graphics Height parm:display
Graphics Width parm:display
Grounding reactance ohms parm:fault
Grounding resistance ohms parm:fault
GRST list generators outside var limits and voltages not on schedule grst
in an edit table
H
History file getf
HTML format chap7 7.1.1
I
Iface interface edit table itface
Iface interface edit table itface
Import exim
Import/export lf data exim
INIT initialize a dynamic simulation run init
Initialize channel file name init
Initialize fix bad data init
Initialize simulation init
In-run epcl program parm:dynam
ISLD find and display islands isld
ISOL isolate a bus isol
Isolated buses isol
Iterations before VAR limits for solution soln
Iterations before VAR limits parm:solve
J
Jumpers bint
chap5
eqiv
parm
Jumper Threshold Impedance parm:solve
K
L
EXIM initiates import/export shell exim
CMF rcmf
EPC repc
PECO rpco
PTI rpti
WSCC rwsc
LINA linear analysis lina
Line rating number parm
Line and transformer flows tabr
Linearized analysis lina
Line / COND edit table line
Load edit table load
Load flow solution solv
Load Model Minimum Voltage parm:solve
LOSF unit commitment and economic dispatch losf
LOSS summary of totals of generation, load, and losses loss
Losses by voltage level tabr
M
Maximum iterations for solution parm:solve
Maximum soln iterations for dynamics run parm:dynam
Maximum time for dynamics run parm:dynam
Minimum Number of Iterations (all methods) parm:solve
Minimum VAR limit band width parm:solve
Miscellaneous misc
MISC initiates miscellaneous PSLF commands misc
Mismatch Threshold for Area Interchange Adjustment parm:solve
MISM list bus mismatches in an edit table mism
MMIL calculate and report area-by-area accumulations of MW-mile mmil
values
Monitored Bus parm:fault
Motr motor edit table motr
N
Next Pause Time, for dynamics run parm:dynam
Newton Solution Tolerance, MVA parm:solve
Number of channels for dynamics run parm:dynam
O
OLGR enter one-line diagram subsystem olgr
One-line diagrams olgr
Optimal ordering for solution soln
ORDR build optimal ordering table for system solutions ordr
OUTT load flow output in 112 column format outt
OUTX load flow output in 125 column format outx
Overload percentage parm:check
Overload report report rate
Owner owner edit table owner
Owner summary tabr
P
Panel font parm:display
Parameters edit parm
annot parameters parm:annot
checking parameters parm:check
color parameters parm:colors
display parameters parm:display
dynam parameters parm:dynam
fault parameters parm:fault
path parameters parm:path
printing parameters parm:display
select edit parameters parm:sel_edit
select parameters parm:select
solution parameters parm:solve
Select TABR parameters parm:sel_tabr
Parameter name output for wdyd wdyd
PARM display/edit of program parameters parm
Phase shifter results tabr
PHSF list phase shifter results in an edit table phsf
PLOT link to the PLOT program plot
Plot dynamics results
plot
Pole edit table pole
PREC list all records in the PSLF database prec
Present Time, sec for dynamics run run
Print num of chans for dynamics run parm:dynam
Progress plot bus for dynamics run parm:dynam
Program manual help
R
RAREA display area totals and area interchange summary rarea
RATE list lines or transformers which exceed the limits rate
RCAB read underground cable properties data for use by TLC rcab
RCMF read IEEE common format load flow data rcmf
RCOND read conductor properties data for use by TLC rcond
RDWS read dynamic simulation data from WSCC format file rdws
RDYD read dynamic simulation model data file rdyd
RDYP read dynamic simulation data from PTI format file rdyp
Read generator mva bases rdyd
Read dynamics data rdyd
Read history file getf
Read pti dynamics data rdyd
Read sequence data - epc format rseq
Read sequence data - pti format rscp
Read wscc dynamics data rdws
REDE read economic dispatch data file rede
REDI read economic dispatch data from PTI format file redi
REDP read economic dispatch data from PSAP format file redp
Reference BusNo for dynamics run parm:dynam
Reorder for dynamics run parm:dynam
REPC read load flow data from file into working case repc
Reports rept
REPT initiate reporting functions rept
REXA read an extended record data file rexa
RMIL read distance assignment data for MW-distance calc rmil
Rows for the edit tables parm:display
RPCO read a PECO format load flow file rpco
RPOLE read pole geometry data for use by TLC rpole
RSCP read PTI short circuit sequence file rscp
RSEQ read short circuit data file rseq
RTIEA display tie line flows between connecting areas rtiea
RTIEZ display tie line flows between connecting zones rtiez
RUN advances the dynamic simulation to the specified next pause run
time
Run simulation run
RVOLT display bus voltages and/or voltage violations rvolt
RWSC read WSCC format load flow file rwsc
RZONE display zone totals and zone interchange summary rzone
S
Save history file savf
Save short circuit data parm:fault
SAVF store and retrieve history files savf
SCAL scale load and generation in one or more areas scal
Scale load/generation scal
SCAN display system connections in vicinity of primary bus scan
SCSC initiate fault analysis subsystem scsc
SCSF three phase and single phase short circuit calculation scsf
Secdd line / IMPD edit table secdd
SELE enable or disable the selective report option sele
Select Parameters parm
SEPC initiate epcl language shell sepc
Short circuit subsystem scsc
Short circuit calculation scsf
Shunt shunt edit table shunt
SOLN load flow solution by full Newton Raphson method soln
Soln accel factor for dynamics run parm:dynam
Solution tolerance for dynamics run parm:dynam
Solution Parameters parm:solve
SOLV initiate and set parameters for soln,sold and ordr solv
Sort load flow components sort
Sort models rdyd
SORT sort tables according to specified field precedence sort
Standard 113 column output report outt
Standard epcl programs sepc
Step width, sec for dynamics run parm:dynam
Steps/display for dynamics run parm:dynam
Steps/plot (file) for dynamics run parm:dynam
SUMM display case summary report summ
Svd edit table svd
SWITCH switch system components from one-line diagram olgr
Symbols/gen ratio for graphics parm:display
System Base MVA parm:solve
System diagrams olgr
System title editor titl
T
Table results tabr
TABR display load flow results in edit tables tabr
Tap edit table tap
TAREA display area totals and area interchange summary tarea
Target bus number for scan scan
TCUL tap ratio adjustment parm:solve
TITL give summary of load flow case title and size and allow edit of titl
title and comments
Title editor titl
TLC Calculate transmission line constants tlc
cable rcab
conductor rcond
extension rexa
pole rpole
To clear time for dynamics run parm:dynam
Tolerance for VAR Limits, MVA parm:solve
TOWNER display owner totals towner
Tran transformer edit table tran
Trans transaction edit table trans
Transformer flows tabr
Transmission line constants tlc
TTIEA display tie line flows between connecting areas ttiea
TTIEZ display tie line flows between connecting zones ttiez
Type 3 (3ph) 2 (l-l) 1 (1ph) 0 both for Fault Analysis parm:fault
TZONE display zone totals and zone interchange summary tzone
Tztab Impedance edit tabl tztab
U
UEDT display and edit the user built edit tables uedt
Unsteady rate tol for dynamics run parm:dynam
Use edit log parm:display
User data tables uedt
V
VLOS display MW and MVAR losses at voltage levels vlos
Voltage Change Threshold for Tap Adjustment parm:solve
Voltage limit report rvolt
W
WDYD write a dynamics data file for subsequent use by RDYD wdyd
WDYP write a PTI format dynamics data file wdyp
Web Browsing chap7 7.1.1
WEDE write economic dispatch data file wede
Wide output report outx
Window height for graphics parm:display
Window width for graphics parm:display
Write EPC economic data file wede
Write dynamics data wdyd
Write pti dynamics data wdyp
Write sequence data - epc format wseq
Write sequence data - pti format wscp
WSCP write short circuit file in PTI format (for RSCP) wscp
WSEQ write short circuit file for (RSEQ) wseq
Z
Zone edit table zone
Zone summary report rzone
Zone summary table tabr
Zone tie line summary report rtiez
Zone tie line summary table tabr
Zoom factor for graphics parm:display
Subject: Modelling Delta-Wye Transformers
Function
Author: John Undrill
Date: June 5, 1989
1. Fault Analysis Example
Figure 3-1 shows a very simple system with all data on a base of 100 MVA and 100 Kv for convenience. With these
bases, the base current and impedance are:
Ibase = 477.4 amps
Zbase = 100 ohms
The transformer between buses 3 and 4 is connected delta-wye with the wye point being on the bus 4 side and solidly
grounded. The transformer has Z1 = Z2 = Z0 = 0.1 p.u.
The impedances of the generator are:
Z1 = Z2 = 0.2 p.u.
Z0 = 0.3 p.u.
The line impedances in the positive and negative sequences are as shown in Figure 3.1; the line zero sequence
impedances are 3 times their positive sequence impedances. All line charging is ignored (b1 = b2 = b0 = 0).
2. Transformer Phase Shift
The conditions in a delta-wye transformer on open circuit and with an L-G short circuit are shown in Figure 3.2. On
open circuit the delta-side A-to-Neutral voltage leads the wye side A-to-Neutral voltage by 30 degrees. Thus, an
accurate representation in the positive sequence load flow model requires that it have a 30 degree phase shift angle.
With an L-G fault on the wye side, and no other current paths on that side, the current in the b and c phase windings
must be zero. Correspondingly, because the delta side A-B winding is coupled to the b-n winding, it must carry zero
current. As a result the current must flow only in the CA winding on the delta side and the faulted situation is as
shown in Figure 3.2B .
3. Full Detail Short Circuit Solution
To make a full detail solution of faults at the delta-wye transformer in pslf/scsc, the model must be set up with
· The transformer having its 30 degree positive sequence phase shift represented (trans[].anglp = 30 or -30)
· The pre-fault load flow solution having the bus voltages positioned in phases as dictated by the transformer
phases shift angle
· The transformer represented by through branches in the positive and negative sequences, and a ground branch
in the zero sequence as shown in Figure 3.3 (this is achieved by setting tran[delta-side].type = 2, tran[wye-
side].type = 1 in pslf/scsc).
Figure 3.4 shows the result from scsf for a 3-phase fault at bus 4, starting from a load flow solution made with the
transformer phase shift represented. This case is contained in the history file f1.sav. Because the source voltage has
zero phase, the pre- fault voltage at bus 4 has a phase position of -30 degrees. Then, because the system is purely
inductive, the fault current lags the pre-fault voltage by 90 degrees and has a phase position of -120 degrees.
The positive sequence Thevenin impedance of the system as seen from the fault, by inspection, is 0.45 p.u., giving the
expected fault current of 2.222 p.u. = 1280.3 amps at a phase position of -120 degrees. (See Figure 3.4A.)
Notice that the a-phase current flowing
· From bus 4 to bus 3 (wye-side transformer lead current) is the opposite of the fault current and hence has the
phases position of (-120 + 180) = +60 degrees. (See Figure 3.4D.)
· From bus 3 to bus 4 (delta-side transformer lead current) is 30 degrees ahead of the fault current in phase
position. (See Figure 3.4B.)
Figure 3.5 shows the result from scsf for an L-G fault at bus 4, starting from the same load flow case, with the
"Current Flag" in the parm.fault panel set to 1 to show a-phase current. The positive and zero sequence impedances of
the system as seen from the fault point, bus 4, are as expected. The fault current again lags the pre-fault a-phase
voltage by 90 degrees for a phase position of -120 degrees (see Figure 3.5A). Again, the transformer lead current at
bus 4 has the opposite phase of the fault current (see Figure 3.5D). Now, however, the delta-side transformer lead
current (see Figure 3.5B), has the same phase as the fault current (not a 30 degree advance) and has a magnitude of
1/1.732 times the fault current.
Figure 3.6 shows the scsf result for the same case as Figure 3.5, but with the "Current Flag" set to zero so that 3I0 is
shown for all currents. Note that 3I0 is equal to the fault current in the wye side of the transformer (see Figure 3.6D),
but that no zero sequence current flows on the delta side of the transformer (see Figure 3.6B). Comparing Figures 3.5
and 3.6 emphasizes that
· A-phase current is equal to 3I0 only in the direct path to the fault (See Figures 3.6A, D, and B)
· A-phase current is shown accurately in all branches when transformer phase shift is included in the system
model (See Figures 3.5A, D, and B).
4. Short Circuit Representation Without Phase Shift
The normal practice on load flow and short circuit work is to neglect the 30 degree phase shifts introduced by delta-
wye transformers. This approximation was essential in early programs because of computer limitations, and is still
reasonable because the proper "phasing-out" of all transformers in a large system model would be a burdensome task.
When this approximation is used it must be remembered that
· The determination of zero sequence currents and voltages is unaffected because delta-wye transformers
introduce no phase shift in the zero sequence
· The phase position of all positive and negative sequence currents that are separated from the fault by a delta-
wye transformer are incorrect.
and that, as a result
· The values of 3I0 at all points in the network are accurate, but all a-phase currents and voltages that are
separated from the fault by a delta-wye transformer are inaccurate
A load flow case, identical to the fully detailed one, except that the transformer phase shift is omitted, is contained in
the history file f2.sav. Figure 3.7 shows the scsf report made from this case for an L-G fault with the Current Flag set
to 1 to show a-phase current. This figure corresponds directly to Figure 3.5 except that it shows a-phase currents and
voltages inaccurately at buses away from the fault. Note that
· The phase of the fault current is correct in magnitude now has a phase position of -90 degrees (see Figure
3.7A) instead of -120
· The current shown for the delta-side transformer leads (see Figure 3.7B) is incorrect
· The voltage shown for the delta-side bus (see Figure 3.7D) is incorrect
Figure 3.1
Small System for Short Circuit Examples
Figure 3.2A
Delta-Wye Voltages on Open Circuit Van Leads Van by 30 degrees
Figure 3.2B
L-G Fault on Wye-Side Produces Fault Current in Two Phase Leads on Delta Side
Figure 3.2
Delta-Wye Transformer
Figure 3.3
Sequence Connections for Delta Wye Transformer
(all turns ratios match system base voltages exactly)
Figure 3.4
Three-phase Fault at Bus 4
Full Detail Modeling Showing I1 = Ia
Figure 3.5
L-G Fault at Bus 4
Full Detail Modeling Showing Ia
Figure 3.6
L-G Fault at Bus 4
Full Detail Modeling Showing 3I0
Figure 3.7
L-G Fault at Bus 4
Phase Shift in Transformer Neglected Showing Ia
PSLF Program Manual Application Note 89-3 Page 1
Subject: PSLF Program Application Note 91-2
Function: Merge.p - EPCL program to merge Load Flow Data
John Burns, Dean LaForest
Author:
October 7, 1991
Date:
Merge.p joins parts of two separate load flow cases to create a new case. The most common application of merge.p is
to replace a minimal representation of a company's system in a large "external" case with a detailed representation
from a "detailed" case.
The two cases containing the parts to be merged must satisfy the following requirements:
· the two case must contain exactly the same set of tie lines between the two systems segments that are to be
merged. This condition applies for DC tie lines also
· the bus names and base voltages ( not the bus numbers ) for the buses at both ends of each tie between the
system segments must be identical in the two cases
· neither case may contain an area/zone with the number 9988 or 9999
· total number of impedance corrections tables between the two cases is limited to 10
The following example describes the use of merge.p. An "external" case in history file easternus.sav contains a
minimal representation of our company as its area 8. This minimal representation has 70 buses of which 4 are
terminals of tie lines to the outside system. A "detailed" case in history file detail.sav contains the complete
representation of our company as its area 1. This complete representation has 300 buses including the same 4 tie buses
that appear in area 8 of the "external" case. We wish to discard the minimal area 8 model from the external case and
replace it with the area 1 model from the "detailed" case. The figures illustrate the operations to be performed.
The merging process removes area 8 from the external case (easternus.sav) creating a "hole". Area 1 from the detailed
model (detail.sav) is then places in the hole.
The merge.p program requires four questions to be answered before the merge is started: ( all responses refer to the
example )
1. Selection by area or zone
2. Enter name of external case in which to create hole for the detailed system: easternus.sav
3. Enter numbers of areas to delete (up to 10) to create hole: 8
4. Enter name of case from which to take detailed system: detail.sav
5. Enter numbers of areas to retain (up to 10) from detailed system: 1
A verification message about the area entries is printed. A carriage return continues the process. The merging process
assumes that the user wishes to retain the bus numbers used in the detailed system. Therefore, any bus number
conflicts are removed by changing the number of buses in the external system where bus numbers conflicts occur.
The merging process retains the tie lines from the external case.
When a branch is removed from the external case during merging, its corresponding records from interface and branch
interface tables are removed as well.
A number of messages area shown on the screen during the merge process. The message identify the number and
location of the tie branches found, inform the user of cutting out the hole and creating the detailed system, and warn of
possible duplicate bus numbers or names in the resulting merged case.
The merging process re-numbers the DC buses internally while trying to retain the DC tie lines from the external case.
The final message is :
The cases are successfully merged. Please re-order the case in the memory and save.
After merge.p is executed, two new files will exist in the user's directory called temp.wrk and detail.wrk. Temp.wrk is
the external system minus the hole and detail.wrk contains only the retained areas from the detailed system. Both of
these files may be deleted after merge.p is completed and the resulting working load flow case has been saved into a
history file.
The resultant load flow case should be ordered ( using the ORDR command ) and solved. These actions are not
performed by merge.p but are left to the user.
Subject: Conversion of Dynamic Data from PSS/E Format to
PSLF Format
Function rdyp ()
Author: Kara Clark GE PSEC
Modified : Shruti Rao, GE Power
Date: October 27, 2017
June 18, 2019
Introduction
The purpose of this document is to provide a step-by-step procedure that will guide a PSLF user through the process of
converting dynamic data from PSS/E to PSLF format. The conversion of the *.dyr to *dyd file is performed by the
rdyp function that can be accessed through the interface (misc->Read Dyn PTI) or can also be called through epcl
using the function rdyp(). The few user-written and PSS/E-specific models that do not convert automatically can be
added manually or, in some cases, ignored. Examples of output from a specific data conversion are used throughout
this document to illustrate various steps.
The conversion process can be roughly divided into the following steps:
1. Read PSS/E raw load flow data
2. Solve PSLF base case load flow
3. Edit generation netting files
4. Read PSS/E dynamic data
5. Add generation netting, unconverted models, and any new models
6. Run PSLF no-bump test simulation
The remainder of this document will describe the step-by-step data conversion process in greater detail.
Read PSS/E Raw Load Flow Data
The first step in the dynamic data conversion process is to convert the load flow data from PSS/E to PSLF format.
This is accomplished by clicking on the following commands (starting in the main menu):
misc…………miscellaneous
exim…………export/import data
rpti…………..import PTI
In response to the prompt “start new case :” type 1 (this is the default value). Select the appropriate .pti or .raw file
from the working directory. Due to the structural differences between PSS/E and PSLF, several messages are likely to
appear in the MS/DOS command window. For example, Figure 1 illustrates the messages written during a particular
load flow conversion.
The significant messages are those noting a change in generator status and those identifying an isolated bus. In PSS/E,
the generators on load busses are ignored, so the first message indicates that any generator on a load bus in the PSS/E
load flow has been converted to a generator with a status of 0 (out-of-service) in the PSLF load flow. The second
message indicates that a bus is isolated from the rest of the system and therefore all elements (e.g., branches, loads,
generators, shunts) connected to that bus will be de- committed (i.e., status = 0). Both of these messages are related to
the structural differences between the two programs, and should be expected in a typical conversion. When in doubt,
the user can edit the original PSS/E raw data file and verify that a specific generator is on a load bus and/or that a
specific bus is isolated.
Reading bus data for version 23 or earlier
Reading generator data
Generator on type 1 bus - status changed to zero at bus 34170
Generator on type 1 bus - status changed to zero at bus 34172
Generator on type 1 bus - status changed to zero at bus 34172
Generator on type 1 bus - status changed to zero at bus 34172
Generator on type 1 bus - status changed to zero at bus 34219
Generator on type 1 bus - status changed to zero at bus 34222
Generator on type 1 bus - status changed to zero at bus 34234
Generator on type 1 bus - status changed to zero at bus 34235
Reading branch data
Reading transformer adjustment data
Reading area data
Reading dc transmission data
Reading static VAR device data
Reading impedance adjustment data
Skipping multi-terminal data
Reading multi-section Line Grouping data
Reading zone data
Warning bus type 4 encountered (isolated bus) - executing the ISOL command
found isolated bus at (34223) VIEJO 230
decommiting load with id 1
decommiting branch from 34223 to 34039
decommiting branch from 34223 to 34182
total load shed 181.00 mw 7.00 mvar
found isolated bus at (36006) RBW 14 14
decommiting generator with id 1
decommiting load with id 1
decommiting shunt at 'from' bus with id b
decommiting branch from 36006 to 36007
total load shed 226.55 mw 21.66 mvar
found isolated bus at (36007) RBW LAKE 144
decommiting load with id 1
decommiting shunt at 'from' bus with id b
decommiting branch from 36007 to 36006
decommiting branch from 36007 to 36039
decommiting branch from 36007 to 36061
decommiting branch from 36007 to 37228
total load shed 271.95 mw 65.76 mvar
Figure 1. Load Flow Data Conversion Messages
Solve PSLF Base Case Load Flow
Once the load flow data has been read into PSLF, the case needs to be ordered and solved. The first step is to check
the solution parameters. Beginning in the main menu, click on the following commands:
parm…………parameters edit
sol.…………..solution
In particular, check that the jumper threshold impedance and system base MVA are correct. You should ask the
person who developed the PSS/E case to specify this and other solution parameters when sending the data. If the
jumper threshold impedance is not available, a value of 0.0001 will typically work (that is the default in PSS/E).
The next step is to order the case, using the command solv (load flow solution) from the main menu. First, set the
“Full (1), DC (2), Decpl (3) “ flag to 0 and the “Optimal ordering” flag to 1, then click on <CR>. After the case has
been ordered, save it using the savf command (save history file) in the main menu.
Finally, solve the case using the command solv again. This time, however, set the “Full (1), DC (2), Decpl (3) “ flag
to 1 and the “Optimal ordering” flag to 0, before clicking on <CR>. Additional options in the solv menu can be
selected for a user’s specific study needs, such as :
TCUL tap ratio adjustment………………………..1
Automatic SVD control…………………………… 1
Automatic phase shifter adjustment….1
After the case has been solved (and perhaps at intermediate points, as well!!), save it using the savf command in the
main menu.
Edit PSS/E Dynamic Data and Generation Netting Files
The true dynamic data conversion process begins with this step. The generation netting file .gne (this is a PSS/E idev
file which executes the GNET command) need to be edited to accommodate the program which reads the PSS/E
dynamic data into PSLF format.
The generation netting file will require the following changes:
1. Remove “GNET” at top of file
2. Remove “0” and “IDEV” at bottom of file
3. Remove “/” throughout file
4. Add double quotations (") around bus names
An alternative to editing the PSS/E netting file is to write an epcl program to read the original idev file and write out
PSLF netting records. The format and an example of these records is as follows:
Bus #, Bus name in double quotes, bus kv.
Up to 5 buses can be listed on a single line.
netting
1099 "MARY IPP" 4.16 18016 "ARTESIA " 345.00 18025 "BLACKWTR" 345.00
20001 "ABERDEEN" 115.00 20580 "ASTORIA " 115.00 136 "AMERICAN" 69.00
Save the new versions of both the dynamic data and generation netting files.
Read PSS/E Dynamic Data
The dynamic data conversion is performed by the “Read Dyn PTI” command (from main menu: misc and then “Read
Dyn PTI”). Any models that are not shown in table A.1 will need to be converted manually, or ignored. This includes
dc models (e.g., cdc6), user-written models, and PSS/E-specific models (e.g., relang, sysang).
After clicking on “Read Dyn PTI”, an Open File panel menu will allow the user to navigate to the file directory and
choose the appropriate dyr file as shown in Figure 2.
Figure 4.1 The sexs excitation system block diagram
Figure 4.2 sexs excitation system block diagram,
equivalent transformation from figure 4.1
To start with, we need to be clear of a few things – parameters, number of state variables needed, input and output
signals. Refer to figure 4.2,
The parameters are:
Tr, tatb, Tb, Kc, Tc, K, Te, Emin, Emax, Efdmin, Efdmax
The state variables are:
4 state variables are needed, as labeled on the block diagram.
The input signals are:
Compensated generator terminal voltage, Vcomp;
Voltage reference, Vref;
The auxiliary signal from other control models ( e.g., from a PSS model).
The output signal is:
Exciter field voltage, Efd.
4.1 Invocation of the epcmod model – sexs
An epcmod model is called in dyd file following the similar format used for calling standard dynamic models.
Suppose, in this example, the sexs epcmod model is connected to a generator at bus #111, id “1”. The invocation of
the epcmod model is shown in the follows:
bus_# name kV id record_level epcl_name table_# param_name
param_value
epcmod 111 ! ! "1 " : #9 "sexs.p" 3.0000 "Tr" 0.0100 /
"tatb" 1.0000 "Tb" 1.000 "Kc" 10.000 "Tc" 10.00 "K" 1.0000 "Te" 1.00 "Emin" 0.0000 /
"Emax” 5.0000 "Efdmin" 0.0000 "Efdmax" 5.0000
Note that table number is an entry uniquely associated with the epcmod models. Standard PSLF dynamic models do
not have this entry. Table number assigns an internal slot which holds the compiled epcl program. This number must
be between 0 and the maximum defined in Chapter 1, Section 3 of the PSLF manual where Table 1 defines the number
of tables allowed for user defined models. The table number should be unique for each epcl program. If the same epcl
model is used several times, the same table number should be used for all applications. Note that when running
dynamics from an epcl program, PSLF will automatically use slot 0 for that program. Running dynamics using two
epcl programs (e.g. running from batch mode and using an epcl to perform the dynamic run actions) will use slots 0
and 1. In-run epcl program will always be placed in the last slot. Therefore, it is recommended that other slots be used
for the table numbers of epcmod models.
“epcl_name” indicates which epcl program is used simulating this user written exciter model. This epcl program
should exist in the current working directory. The alternative is to set the correct path for the epcmod models in the
PARM:PATH.
The record level is 9 in this example. This asks 10 storage variables v0 through v9 to be output to the channel file.
4.2 Explanation of the epcl – sexs.p
Listing of the epcl program sexs.p can be found in samples directory. Refer to the epcl program for the explanations
discussed in the follows.
INIT block
There are two important data structures relevant to the dynamic part of the PSLF program – “model” and “genbc”.
These two structures are accessible from epcl. The number of entries in the model structure is the total number of
dynamic models in the current working case. The number of entries in the genbc structure is the total number of
dynamic generator models and those non-generator dynamic models but which are modeled as generators in load flow
( e.g., stcon model, motor1 model, etc.). You can see the total number of entries in model structure by going into
“edds” edit table. You can see the total number of genbc elements by going into “edic” edit table.
The elements in the genbc structure which are relevant to this particular application are the generator field voltage, efd,
the compensated generator terminal voltage, vcomp, the controlled voltage reference, vref, and the auxiliary signal,
vsig . These variables need to be accessed and/or defined in this epcmod model. In order to do so, we need to obtain
the correct index number of the genbc structure. This index number must point to the generator to which this exciter
epcmod model is connected.
The genbc index number is a field in the data structure “model”. Therefore, it all comes down to obtain the correct
index number of the model structure. This index number must point to the generator to which this exciter epcmod
model is connected.
In INIT block in sexs.p, the relevant model index number is obtained using the epcl function “model_index”. The
genbc index number is obtained subsequently, which is stored in the epcmod storage variable v10. Note that a storage
variable is required here because the content of the variable needs to be remembered from time step to time step.
Next in INIT block, the state variables are initialized. There are a couple of hints which are helpful when initializing
state variables.
1) Assign all “s” in a block diagram to be zero to help see the relationship between different variables.
2) The initialization of the state variables follows a backward order. For example, referring to figure 4.2, from right
to left, state variable s1 is initialized first and state variable s3 is initialized last.
Using these two hints, it should be straightforward to initialize all the state variables in this example.
By convention, Vref must be initialized in an excitation system model. In this example, Vref is initialized to be
Vcomp which is the compensated generator terminal voltage. The compensation impedance is defined in generator
model. If the compensation reactance is greater than zero, the excitation system tries to control the voltage of a point
outside generator terminal bus. If the compensation reactance is less than zero, the excitation system tries to control the
voltage of a point inside the generator terminal bus. If the compensation reactance is zero, Vcomp is simply the
voltage of the generator terminal bus. By convention, Vcomp is defined in generator model, while Vref is defined in
exciter model. At steady-state, the auxiliary control signal should be zero. Therefore, in sexs.p, Vsig is defined to be
zero in INIT block. After initialization, Vsig should be defined by, say, a PSS model and the exciter model uses this
signal in the computation of the excitation system output.
In INIT, channel_head[].type, cmin and cmax of the output channels can be modified. These variables have default
values which are defined by the PSLF core. It is suggested that meaningful data for these variables be provided in
epcmod model INIT block, which will modify the defaults. In INIT in sexs.p, 2 output variables are initialized, v0 and
v1. The channel_head[].type, channel_head[].cmin and channel_head[].cmax for these 2 output variables are defined.
v0 is the storage for the state variable s0 and v1 is the storage for the state variable s2.
RATE block
In RATE block, all state derivatives are calculated. A few hints listed below are helpful for the implementation of the
state derivative calculations.
A complicated control scheme can normally be broken down into a series of 1st order filters and 1st order integrators.
Therefore, implementations of 1st order filter and 1st order integrator are the building blocks for implementation of a
complete control system.
1) derivative calculation for 1st order lag
ds = (input*A – s) / T
2) derivative calculation for 1st order integrator
ds = input*A
3) non-windup limits acting on a state variable
if ( s > max )
s = max
zs = s
endif
if ( s < min )
s = min
zs = s
endif
if ( (ds > 0) and (s >= max) )
ds = 0
endif
if ( (ds < 0) and (s <=min) )
ds = 0
endif
4) calculation of the state derivatives follows a forward order. For example, referring to the block diagram in figure
4.2, from left to right, state variable derivative ds3 is calculated first and state variable derivative ds1 is calculated
last.
ALGE block
ALGE block is simple in this example. The generator field voltage (genbc[].efd) is defined in this block. Also, the
output variables v0 and v1 are updated in ALGE.
The output channels can be defined in either ALGE block or OUTP block. In this example, they are defined in ALGE
block, so OUTP block is no longer needed.
As mentioned earlier, all blocks are not needed in one epcmod model. In this example, only 3 blocks – INIT, RATE
and ALGE are used to implement sexs excitation system. In general, these 3 blocks are the major building blocks to
construct an epcmod model. The SORC block is needed only if the model is directly connected to the network, e.g., if
the epcmod model is a user written generator model.
5. Second example of epcmod model – mssc.p
This epcl program is included in the samples directory under the PSLF installation directory.
Mssc.p is an epcmod model representing a mechanically switched shunt capacitor. During dynamic simulation, this
epcmod model acts on an “svd” device which was set up in load flow. The operation principal of this mechanically
switched shunt capacitor is simple. When the svd controlled voltage drops below a threshold, one step of shunt
capacitor is switched in after a time delay. Similar, when the svd controlled voltage rises above a threshold, one step
of shunt capacitor is switched out after a time delay. Also, the switching action will happen only if the total shunt
capacitor compensation stays in the defined range of minimum and maximum.
The shunt capacitor switching step size is defined in svd record. For simplicity, the first step in the first stage
(svd[].bstep[0] ) in the relevant svd record is used as a uniform step size in the epcmod model. The effective maximum
and minimum shunt compensation levels (svd[].effmax, svd[].effmin) associated with the relevant svd record are used
as the maximum and minimum shunt compensation limits in the epcmod model.
Internally, PSLF defines svd[].effmax to be the maximum available shunt compensation (discretely and continuously
controlled). Svd[].effmin is defined to be the minimum available shunt compensation (discretely and continuously
controlled). These two PSLF variables are made available to epcl.
INIT block
In INIT block in mssc.p, model[@mx].k is defined to be the index number of the relevant svd record set up in load
flow. The index number for the svd record was obtained using the epcl function “rec_index”.
In INIT block in mssc.p, storage variables are initialized. The storage variables v0 through v4 used in this epcmod
model happen to be output variables as well. The channel head variables associated with these output channels are
defined.
ALGE block
In ALGE, there are two if-endif blocks. These are for implementing the logics of switching in and out the shunt
capacitor steps.
The statement which sets the “new_fact” option to be 1 is important (dypar[0].new_fact = 1). This tells PSLF core to
re-factorize the network matrix during network solution, so that any recent changes related to network will be taken
into account. If “new_fact” is not set to 1, a change in shunt capacitor compensation level will not be included during
network solution, even if this change was requested by the epcmod model.
Important note
Whenever a network change is involved in an epcmod model, dypar[0].new_fact needs to be set to 1.
Subject: Writing EPCL Dynamic Models Using EPCMOD for
Dynamic Simulations in PSLF (II)
Function:
Wenchun Zhu, John Undrill, John Burns, Bill Price
Author:
February, 2002
Date:
1. Introduction
In part I on this topic, fundamentals and examples were provided on writing customized dynamic models using
epcmod. In this summary, details on how to model a number of commonly used transfer functions in INIT, RATE and
ALGE will be provided. The initial conditions of the epcmod state variables must be calculated in INIT, and the
derivatives of the state variables must be calculated in RATE.
2. 1 st order lag
1) Assume the model index for this epcmod was already defined to be @mx (refer to part I for how to define this
index).
2) Pick a state variable which was not used by any other functions in this epcmod model. Assume epcmod[@mx].s0
is picked.
3) Define this state variable to be equal to the output Y, i.e., epcmod[@mx].s0 = Y.
4) Assume gain A and time constant T were defined as an epcmod parameters, epcmod[@mx].A and
epcmod[@mx].T. (refer to part I for how to define epcmod parameters.)
In INIT,
epcmod[@mx].s0 = Y0 , where Y0 is the initial steady-state value of the output Y, and
X0 = Y0 /epcmod[@mx].A
In RATE,
epcmod[@mx].ds0 = ( epcmod[@mx].A*X - epcmod[@mx].s0 ) / epcmod[@mx].T
In ALGE,
epcmod[@mx].v0 = epcmod[@mx].s0,
where epcmod[@mx].v0 represents the output and is recorded in channel file which can be viewed in plot after
dynamic simulation.
3. 1 st order lead-lag
Block diagram of 1st order lead-lag equivalent
It is custom to model the 1st order lead-lag according to its equivalent. This equivalent is obtained as explained in the
follows.
Assume
(1 + sTa) / (1 + sTb) = A + B/(1 + sTb).
Re-organize the right hand side of this equation, there is
(1 + sTa) / (1 + sTb) = (A + A sTb + B) / (1 + sTb)
Solve for A and B from the above equation, there are
A = Ta/Tb, and
B = 1 – Ta/Tb
Therefore,
(1 + sTa) / (1 + sTb) = Ta/Tb + (1 - Ta/Tb)/(1 + sTb).
Now define an epcmod state variable, e.g., epcmod[@mx].s0, to be equal to the output of the 1st order lag, as shown
on the block diagram of the 1st order equivalent. Also, assume time constants Ta and Tb were defined as epcmod
parameters, epcmod[@mx].Ta and epcmod[@mx].Tb.
In INIT,
X0 = Y0
epcmod[@mx].s0 = Y0 *(1 - epcmod[@mx].Ta / epcmod[@mx].Tb ),
where Y0 and X0 are steady-state values of output and input.
In RATE,
epcmod[@mx].ds0 = ( X*(1- epcmod[@mx].Ta / epcmod[@mx].Tb) –
epcmod[@mx].s0 ) / epcmod[@mx].Tb
In ALGE,
epcmod[@mx].v0 = X*epcmod[@mx].Ta/epcmod[@mx].Tb + epcmod[@mx].s0
where epcmod[@mx].v0 represents the output and is recorded in channel file which can be viewed in plot after
dynamic simulation.
4. 1 st order washout
Block diagram of 1st order washout
This transfer function is equivalent to
Block diagram of 1st order washout equivalent
It is custom to model the 1st order washout according to its equivalent. This equivalent is obtained as explained in the
follows.
Assume
sK / (1 + sT) = A + B/(1 + sT).
Re-organize the right hand side of this equation, there is
sK / (1 + sT) = (A + A sT + B) / (1 + sT)
Solve for A and B from the above equation, there are
A = K/T, and
B = – K/T
Therefore,
sK / (1 + sT) = K/T + (-K/T)/(1 + sT).
Now define an epcmod state variable, e.g., epcmod[@mx].s0, to be equal to the output of the 1st order lag, as shown
on the block diagram of the equivalent. Also, assume constants K and T were defined as epcmod parameters,
epcmod[@mx].K and epcmod[@mx].T.
In INIT,
Y0 = 0
epcmod[@mx].s0 = – X0 *( epcmod[@mx].K / epcmod[@mx].T ),
where Y0 and X0 are steady-state values of output and input.
In RATE,
epcmod[@mx].ds0 = ( X*(- epcmod[@mx].K / epcmod[@mx].T) –
epcmod[@mx].s0 ) / epcmod[@mx].T
In ALGE,
epcmod[@mx].v0 = X*epcmod[@mx].K/epcmod[@mx].T + epcmod[@mx].s0
where epcmod[@mx].v0 represents the output and is recorded in channel file which can be viewed in plot after
dynamic simulation.
5. Integral controller
Block diagram of an integral controller
Define an epcmod state variable, e.g., epcmod[@mx].s0, to be equal to the output Y. Also, assume constant KI was
defined as epcmod parameter, epcmod[@mx].K I .
In INIT,
epcmod[@mx].s0 = Y0 , where Y0 is the steady-state value of Y.
X0 =0.
In RATE,
epcmod[@mx].ds0 = X*KI .
In ALGE,
epcmod[@mx].v0 = epcmod[@mx].s0
where epcmod[@mx].v0 represents the output of the integral controller and is recorded in the channel file which
can be viewed in plot after the dynamic simulation.
6. PI (Proportional + Integral) controller
Block diagram of a PI controller
Define an epcmod state variable, e.g., epcmod[@mx].s0, to be equal to the output from the integral controller. Also,
assume constants KP and KI were defined as epcmod parameters, epcmod[@mx].KP, and epcmod[@mx].KI.
In INIT,
epcmod[@mx].s0 = Y0 , where Y0 is the steady-state value of Y.
X0 = 0.
In RATE,
epcmod[@mx].ds0 = X*epcmod[@mx].KI.
In ALGE,
epcmod[@mx].v0 = epcmod[@mx].s0 + X*epcmod[@mx].KP
where epcmod[@mx].v0 represents the output of the PI controller and is recorded in the channel file which can be
7. Time delay
Block diagram of a time delay function
7.1 accurate modeling
Time delay can be modeled using an array of variables. The number of variables needed to implement a time delay of
Tdelay seconds is
k = Tdelay/dypar[0].delt (delay time divided by time step).
Assume k is 5, and epcmod variables v11 through v15 are used.
In INIT,
epcmod[@mx].v11 = Y0
epcmod[@mx].v12 = Y0
epcmod[@mx].v13 = Y0
epcmod[@mx].v14 = Y0
epcmod[@mx].v15 = Y0
and
X0 = Y0
where X0 and Y0 are steady-state values for input and output.
In RATE,
Y = epcmod[@mx].v15
epcmod[@mx].v15 = epcmod[@mx].v14
epcmod[@mx].v14 = epcmod[@mx].v13
epcmod[@mx].v13 = epcmod[@mx].v12
epcmod[@mx].v12 = epcmod[@mx].v11
epcmod[@mx].v11 = X
In ALGE,
epcmod[@mx].v0 = epcmod[@mx].v15
where epcmod[@mx].v0 represents the output and is recordedin the channel file which can be viewed in plot after
dynamic simulation.
approximate modeling
Accurate modeling of time delay may consume a lot of storage variables which may not be desirable. Approximate
modeling of time delay can avoid this problem.
7.2.1 pick up samples only at selected time step intervals
If input samples are not picked at every time step, instead, at certain intervals of time steps, large time delay can still
be modeled approximately using the method discussed above and a limited number of storage variables.
For example, assuming time step of 0.004 second, a time delay of 1 second can be modeled using 10 epcmod variables
as demonstrated in the follows.
In INIT,
epcmod[@mx].v11 = Y0
epcmod[@mx].v12 = Y0
epcmod[@mx].v13 = Y0
epcmod[@mx].v14 = Y0
epcmod[@mx].v15 = Y0
epcmod[@mx].v16 = Y0
epcmod[@mx].v17 = Y0
epcmod[@mx].v18 = Y0
epcmod[@mx].v19 = Y0
epcmod[@mx].v20 = Y0
and
epcmod[@mx].v21 = 0
and
X0 = Y0
where X0 and Y0 are steady-state values of input and output.
In RATE,
epcmod[@mx].v21 = epcmod[@mx].v21 + 1
if ( epcmod[@mx].v21 = 25 )
Y = epcmod[@mx].v20
epcmod[@mx].v20 = epcmod[@mx].v19
epcmod[@mx].v19 = epcmod[@mx].v18
epcmod[@mx].v18 = epcmod[@mx].v17
epcmod[@mx].v17 = epcmod[@mx].v16
epcmod[@mx].v16 = epcmod[@mx].v15
epcmod[@mx].v15 = epcmod[@mx].v14
epcmod[@mx].v14 = epcmod[@mx].v13
epcmod[@mx].v13 = epcmod[@mx].v12
epcmod[@mx].v12 = epcmod[@mx].v11
epcmod[@mx].v11 = X
epcmod[@mx].21 = 0
endif
In ALGE,
epcmod[@mx].v0 = epcmod[@mx].v20
where epcmod[@mx].v0 represents the output and is recorded in the channel file which can be viewed in plot after
dynamic simulation.
7.2.2 Pade approximation
A time delay (long or short ) can also be modeled using Pade approximation. A second order Pade approximation is
Y/X = ( s 2 Td 2 – 6Td s + 12 ) / ( s 2 Td 2 + 6Td s + 12 )
where Td is delay time in seconds.
This transfer function can be represented by a block diagram shown in the follows.
Block diagram of Pade approximation
In INIT,
X0 = Y0
epcmod[@mx].s0 = 2.0 * X0
epcmod[@mx].s1 = 0.
where X0 and Y0 are steady-state values for input and output.
In RATE,
epcmod[@mx].ds0 = epcmod[@mx].s1 * 2.0 / epcmod[@mx].Td
epcmod[@mx].ds1 = ( 2.0*X – epcmod[@mx].s0 – epcmod[@mx].s1 ) * 6.0
/ epcmod[@mx].Td
In ALGE,
epcmod[@mx].v0 = X – epcmod[@mx].s1
where epcmod[@mx].v0 represents output of the delay, and is recorded in the channel file which can be viewed in
plot after dynamic simulation.
8. Non-windup limits
The algorithms for modeling non-windup limits were provided in part I, which are listed again in the follows.
if ( s > max )
s = max
zs = s
endif
if ( s < min )
s = min
zs = s
endif
if ( (ds > 0) and (s >= max) )
ds = 0
endif
if ( (ds < 0) and (s <=min) )
ds = 0
endif
Commonly, a pair of non-windup limits is applied to a state variable. However, limits given as input parameters may
not be reference to the state variable. Therefore, before the non-windup limits are applied, the values of the limits need
to be derived from the given limits. For example, in a PI controller, non-windup limits may be applied to the state
variable of integral output, while the limits given as input parameters can be for output of the PI controller (see the
block diagram in the follows).
Block diagram of a PI controller with non-windup limits
In this case, before the non-windup limits are applied in RATE, the values of the limits should be derived. Assuming
the state variable is epcmod[@mx].s0, the implementation of the PI controller and the non-windup limits in RATE is
shown in the follows.
@max_non_wu = epcmod[@mx].max – X*epcmod[@mx].KP
@min_non_wu = epcmod[@mx].min – X*epcmod[@mx].KP
if ( epcmod[@mx].s0 > @max_non_wu )
epcmod[@mx].s0 = @max_non_wu
epcmod[@mx].zs0 = epcmod[@mx].s0
endif
if ( epcmod[@mx].s0 < @min_non_wu )
epcmod[@mx].s0 = @min_non_wu
epcmod[@mx].zs0 = epcmod[@mx].s0
endif
if ( (epcmod[@mx].ds0 > 0) and (epcmod[@mx].s0 >= @max_non_wu) )
epcmod[@mx].ds0 = 0
endif
if ( (epcmod[@mx].ds0 < 0) and (epcmod[@mx].s0 <= @min_non_wu) )
epcmod[@mx].ds0 = 0
endif
Subject: Stability Modeling of Vestas V80 Wind Turbine-Generator
(Version 2.0)
Function:
Nicholas W. Miller, William W. Price, Juan J. Sanchez-Gasca
Author:
March 2003
Date:
Legal Notice
This report was prepared by General Electric International, Inc.’s Power Systems Energy Consulting (PSEC). Neither
PSEC nor any person acting on behalf of either:
1. Makes any warranty or representation, expressed or implied, with respect to the use of any information
contained in this report, or that the use of any information, apparatus, method, or process disclosed in the report
may not infringe privately owned rights.
2. Assumes any liabilities with respect to the use of or for damage resulting from the use of any information,
apparatus, method, or process disclosed in this report.
Table of Contents
1. Introduction
2. Model Overview
3. Modeling for Loadflow
4. Modeling for Stability Analysis
4.1 Generator Model (genwri)
4.2 Field Resistor Control Model (exwtg1)
4.3 Wind Turbine Model (wndtrb)
4.4 Generator and PFC Protection Model (gpwtg.p)
4.5 Wind Speed (windgust.p)
5. Sample Results and Application Notes
5.1 Response to Fault and Line Trip
5.2 Response to Severe Disturbance
5.3 Response to Wind Gust
5.4 Existing Model Performance Comparison
5.5 Equivalencing
5.6 Applicability to other model WTGs
6. Summary
Appendices
A. GENWRI (Wound-rotor Induction Machine) Data Sheet
B. EXWTG1 (Field Resistor Control) Data Sheet
C. WNDTRB (Wind Turbine) Data Sheet
Introduction
GE Power Systems Energy Consulting has developed a model of the Vestas V80 wind turbine generator, suitable for
use in system impact studies. This report documents that effort, including the assumptions, capabilities and limitations
of the resulting model. It includes model revisions from the first version of this report dated August 2002 and second
version dated March 2003.
This version includes the new model “gpwtg.p” for modeling the protection (tripping) of the wind turbine and
its power factor correction capacitors for high and low voltage and for high and low frequency conditions. This
model replaces both the “gp1” and “mscwtg.p” models described in previous verions.
The model presented here is based on limited qualitative and quantitative information obtained from the manufacturer,
combined with engineering judgment provided by GE engineers.
The model we have developed is not perfect. It is valuable to put the limitations in the context of what analysis is
required. We have provided as simple a model as is appropriate for bulk power system stability studies. There are
several assumptions implied in that statement. First and most important, this means positive sequence phasor time-
domain simulations - i.e. PSLF or PSS/e. Second, this implies that the analysis is mainly focused on how the wind
turbine-generators (WTGs) react to disturbances, e.g. faults, on the transmission system. The model also provides for
calculation of the effect of wind speed fluctuation on the electrical output of the WTG. Details the device dynamics,
especially the turbine mechanical controls, have been greatly simplified.
Further, it is important to note that we have not had any physical test data with which to validate the model
performance. PSEC has unparalleled experience in developing simulation models and we are confident that the PSLF
model provided here will give reasonable results. Dynamic behavior of WTGs in bulk power systems is fertile ground
for substantial research - research that the industry needs to conduct. However, this was not a full blown research
project, but rather an important first step.
Model Overview
A simple representation of the Vestas system is shown in Figure 2-1. From a loadflow perspective, there are three
components that need to be included in the loadflow setup and are required for initialization of the stability program:
Generator
Mechanically switched power factor correction (PFC) capacitors
· Transformer
These three components use conventional loadflow device models, and can be represented in any loadflow program.
Figure 2-1. Vestas 80 Major Components.
The stability models developed in this project are specific to the Vestas V80 WTG, but are structured in a fashion
similar to other conventional generators. To construct a complete WTG model, five device models are available:
Generator (Wound rotor induction)
Excitatation system (Field resistance control – ‘Opti-slip’)
Turbine and turbine control (Blade pitch control)
Generator and PFC protective switching for over/under voltage
and over/under frequency
A fifth, optional EPCL model, is available to simulate a wind gust by varying input wind power. These device models
provide similar, but not identical, functions to device models for conventional thermal generation. The overall
connectivity of the models is shown in Figure 2-2.
Since the generator is an induction machine, the exact reactive power consumption will be a function of initial active
power, terminal voltage and machine parameters. However, a good first approximation is that the machine runs at
.89pf leading (i.e. –1 MVAr per 2 MW generation). The loadflow generator MVAr limits, Qmax and Qmin, should
be set to this value (about -.9 MVAr for the V80).
There are several options for modeling the pf correction capacitors (MSCs):
1. If an individual WTG is being modeled over a range of power output, then the most exact representation is an
SVD with 4 equal steps of 0.225 MVAr each.
2. If an indiviual WTG or aggregation of WTGs is being modeled only at rated power ouput, then the SVD can
be modeled as a single shunt capactor of 0.9 MVAr times the number of WTGs, which is always on.
3. An even simpler representation is to ignore the MSCs and include a generator running at the desired active
power and zero vars (unity pf on the machine terminals – not the transformer high side). This is suitable only
for loadflow analysis or stability analysis in which the WTG is not subject to significant voltage excursions.
The generator step-up transformer should be provided as well. Many collector systems (in US applications) are
34.5kV, so a 34.5/0.69 KV transformer is needed. The transformer leakage reactance is typically around 6%, on the
MVA base of the machine. This should be confirmed for the particular application under study.
Equivalencing
In practice, a wind farm has a local grid connecting and collecting the output from the machines into a single point of
connection with the grid. Since the farm is to be made up of many, identical machines, it is a reasonable
approximation to parallel all the machines into a single equivalent machine, transformer, and collector line, with
appropriate MVA ratings. Reasonable -- up to a point. Disturbances within the local grid can not be analyzed, and
there is some potentially significant variation in the equivalent impedance for the connection to each machine. To a
first approximation, for grid disturbances, the power output of all the machines will be the same at a given instant of
time. This presumes that the geographic dispersion is small enough that the wind over the farm is roughly uniform.
This approximation is less correct for wind gusts. Wind gusts travel across a farm, impacting machines in a somewhat
sequential fashion. From a systemic perspective, this can be roughly approximated with the wind gust model by
reducing the amplitude and increasing the width of the gust. Development of dynamic aggregation methods for WTGs
is presently the subject of considerable research in the industry.
A further, potentially important consideration is supervisory control of a wind farm. No master farm controller model
is included in this effort. Such controllers tend to be customized to the particular application, and models must be
obtained from the developer.
Summary
This report documents the development, assumptions and limitations of a PSLF model developed for representation
of the Vestas V80 wind turbine generator. Key points from the report are:
· Dynamic models and data with a suitable level of detail and consistent with accepted practice for bulk
system simulations have been provided for the Vestas V80 machine.
· A considerable amount of data and information from the manufacturer is reflected in the model structures
and data.
· Many engineering judgments and estimates are included as well.
· The models are modular, and intended to provide flexibility and some degree of generality for modeling
WTGs.
· The models are not necessarily suitable for other models and manufacturers of WTG.
· Performance of the model has not been verified by field tests, nor has it been confirmed for validity by the
manufacturer.
· Settings of protective functions have the potential to dominate dynamic performance of the system for large
disturbances.
Appendices
Notes:
a) T’o must be non-zero.
b) All reactances must be specified. L’ must be less than L, and Ll must be less than L’.
c) D has the dimensions pu P/ pu speed.
d) Se1.0 and Se1.2 are defined in Figure 3.10.2, and must be non- zero.
e) (Ra+jL’) overwrites the load flow machine characteristic impedance when the INIT, RDYD, or RDWS command
is executed.
f) If Rcomp and Xcomp are omitted, they will be set to zero.
g) The initial electrical speed of the rotor, wro, must be specified.
h) The initial external rotor resistance is calculated to give the desired rotor speed and power and is stored in
genbc[k].efd. The excitation system model exwtg1 can be used to regulate this resistance.
i) The difference between the load flow Qgen value and the initial Q consumed by the generator is supplied by a
shunt capacitor that is included in the model, as with the motor1 model.
Rotor mechanical model:
Electrical Equations:
R2Tpo is a constant which is equal to T’o times the total
rotor resistance
R2 is internal rotor resistance
R2ex is external rotor resistance
exwtg1
Model Name:
Description Excitation system model for wound rotor induction
wind-turbine generator
Prerequisites: genwri model ahead of this model in dynamic
models table
Inputs: Generator speed, bus frequency, generator electrical
power
Output Channels:
Record
Level Name Description
1 Rext Gen. external rotor resistance, pu
Invocation: Exwtg1 [<n>] {<name> <kv>} <id> :
Parameters: (Highlighted quantities were provided by or derived from mfr data)
EPCL
Name Variable Description
0.02 Ta ta Time constant, sec
0.1 Kdp kdp Power derivative gain
1.0 Tdp tdp Power derivative washout time constant, sec
-1.0 Kw kw Speed regulator gain
2.0 Tw1 tw1 Speed regulator TGR num. time constant, sec
4.0 Tw2 tw2 Speed regulator TGR den. time constant, sec
0.0977 Rmax rmax Maximum external rotor resistance, pu
0.0061 Rmin Rmin Minimum external rotor resistance, pu
Notes:
a) Ta and Tdp must be non-zero. Tw1 = Tw2 or Tw2 = 0. bypasses TGR.
b) The p.u. speed reference is stored in genbc[k].vref and can be stepped in the edic table.
wndtrb
Model Name:
Description Wind turbine control model
Prerequisites: Generator model ahead of this model in dynamic
models table
Inputs: Generator speed, wind power
Output Channels:
Record
Level Name Description
1 pm Mechanical power, pu (on turb. MW base)
1 Pwnd Wind power, pu (on turbine MW base)
1 Kpch Blade pitch factor, pu
Invocation: wndtrb [<n>] {<name> <kv>} <id> : [mwcap=<value>]
Parameters: (Highlighted quantities were provided by or derived from mfr data)
EPCL
Name Variable Description
0.05 Ta ta Actuator time constant, sec
100.0 Kp kp Speed regulator gain
0.2 T1 t1 Speed regulator TGR numerator time constant, sec
0.5 T2 t2 Speed regulator TGR denominator time constant, sec
12.0 BPRmax bprmx Blade pitch maximum rate, deg./sec.
1.2 Pwo pwo Initial wind power, pu
Notes:
a) Per unit parameters are on base of turbine MW capability. If no value is entered for "mwcap", the generator MVA
base is used.
b) The speed reference is stored in genbc[k].pref and can be stepped in the edic table.
c) The wind power (pu on mwcap base) is stored in genbc[k].glimv and can be stepped in the edic table.
d) If initial wind power, Pwo, is less than Pmech, it will be set equal to Pmech.
Subject: Step Response Simulations
Function StepResponse.p – Step AVR reference voltages
Date: October, 2008
StepResponse is an epcl program for stepping the reference of an automatic voltage regulator (Vref in Figure 1). The
epcl may be used in batch mode by providing a list of machines to be stepped; one simulation will be performed for
each machine listed.
Figure 1. Step input into excitation system.
The following input files are needed to run StepResponse.p:
*.sav file – Power flow solved case
*.dyd file – Dynamic data set
*.runs file – Control file
*.dat file – Specifies the machines to be stepped
The following output files are created by StepResponse.p:
*.chf files – Plot files (binary files)
*.out file1 – Run summary (ASCII file)
*.out file2 – List of .chf files created
*.log file – Log file
StepResponse.p and the control file, *.runs, must be located in the working directory. The file that specifies the
machines to be stepped must be placed in the same directory where the *.dyd files are located.
1 Control File Format
The format of the control file, *.runs file, resembles the format of the control file used by DYTOOLS. The file
consists of several keywords listed on the left side of the file followed by one or more lines that specify the files to be
used. An example of this file is shown in Figure 2. A sample *.runs file, SampleRuns.runs, is included in the
Figure 2. Control file.
The list of keywords and their meaning follows.
ENDTIME: Final simulation time in seconds.
PULSE: Three numbers define the step (pulse). The first number indicates the time when the step is applied; the
second number is the step duration in seconds; the third number is the height of the step in p.u. (the
height can be positive or negative). In Figure 2, a pulse of 0.10 p.u. is applied at time 1 second, and
removed at time 2 seconds (the duration of the step is 1 second). To apply a step that lasts the total
simulation time, the second number should be made larger than the total simulation time. The height of
step will be added to the voltage regulator reference signal.
SAVEPATH: Denotes the folder where the .sav files are located. If absent, it is assumed that the .sav files are in the
working directory.
DYDPATH: Denotes the folder where the .dyd files are located. If absent, it is assumed that the .dyd files are in the
working directory.
CHFPATH: Denotes the folder where the .chf files are located. If absent, the plot files are placed in the working
directory.
SORTDYD : Sort dynamic models (=1), do not sort dynamic models (=0). The number of entries for SORTDYD
should match the number of .dyd files.
FIXDATA: If set to 1, directs PSLF to fix bad dynamic data.
NUMPLOT: Plotting interval.
SCREENPLT: Printing interval.
CONVMON: If set to 0 (default) the convergence monitor is turned off, otherwise it is turned on.
STEPSIZE: Time step of integration in seconds.
VAROUT: If VAROUT is equal to 0, the recording levels for the devices connected to the perturbed plant are set
to 9; all other recording levels are unchanged. If VAROUT is equal to 1, only the generator variables of
the perturbed plant are outputted; if VAROUT is equal to 2, all the output variables of the perturbed
plant are outputted, i.e., the recording levels for the devices connected to the perturbed plant are set to 9,
all other recording levels are set to 0.
CASES: This is a required keyword that precedes the lines that list the files to be used in the simulations.
Comment lines with appropriate labels to identify individual files may be included between the line
with the word CASES and the actual list of file names as shown in Figure 2. The list includes the
following file names:
- Power flow solved case (*.sav)
- File used to specify the machines to be perturbed (.dat). This file consists of a list of bus numbers
and generator Ids. See Figure 3.
- Plot files (*.chf) – a .chf file is created for each machine perturbed, the
complete .chf file name consists of the name specified under CASES
with the generator number and Id appended to it, e.g., “filename_1234_Id.chf”
- List of .chf files created (*.out)
- Run summary (*.out)
- Up to ten dynamic data files (*.dyd)
Figure 3. Example of generator bus numbers and Ids.
2. Running StepResponse
To run StepResponse, click the epcl command button in the PSLF main display, then use the PSLF pick panel to select
StepResponse, as shown in Figure 4. Once StepResponse.p has been selected, click Open with the left mouse button.
Figure 4. Selecting StepResponse.p.
A panel listing the control file (*.runs) is displayed (Figure 5).
Figure 5. Selecting the control file.
Once a control file is selected, StepResponse.p will run a dynamic simulation for each machine listed. If a generator
status is zero, the machine is skipped and a message is printed in the summary file. StepResponse.p will turn off
models that are connected to a generator model with status of zero in the power flow case.
3. Sample Files
A complete setup for StepResponse.p is located in c:\upslf*\samples\StepResponse. The setup is for stepping the
voltage reference of each generator in a simple four-generator system. The purpose of the setup is to illustrate the
application of StepResponse, the dynamic data is not associated with an actual power system.
A sample control file (ControlFile.runs) and a run summary file (StepRunSumm.out) are located in \Stepresponse. The
summary file is an output file generated by StepResponse.
There are three folders under \StepResponse: \cases, \dyds, \chans:
The \cases folder contains the solved power flow case g4.sav.
The \dyds folder contains the dynamic data file (g4.dyd) and a *.dat file: gen_list.dat. Gen_list.dat contains a list of
generator numbers and their Ids.
The \chans folder contains the plot files *.chf. Each file name consists of the plot file name specified in the control
file, g4, followed by the generator number and Id of the machine perturbed. Also in the \chans folder there is a file
with the list of .chf files created, ChfLst.out.
4. Program Execution
To run StepResponse.p the program needs to be copied to the working directory along with the control file (*.runs). A
setup similar to that described in Section 3 needs to be in place.
Subject: Modeling of GE Wind Turbine-Generators for Grid
Studies (Version 4.6)
Function:
Author: Miaolei Shao, Nicholas W. Miller, Juan J. Sanchez-Gasca, Jason
MacDowell
Date: March 08, 2013
GE WTG Modeling
Subject: Engineering Checks during raw file import
Function: RPTI
Brian Thomas
Author:
August, 2008
Date:
A number of data issues have been encountered during import of Eastern Interconnect cases in PTI raw file format. To
highlight these issues and assist the user to either rectify the problem, or to seek clarifications from issuing authorities
for these Load flow cases, a number of engineering checks have been added to the import routine.
To include engineering checks while importing a *.raw file, the Engineering check flag should be set to “yes”, as
shown:
With this flag set to yes, PSLF will import the data files and after a successful import will perform the engineering
checks. The original imported case (in PSLF format), without any data changes is saved as junk.wrk in the working
directory. If the user would like to retrieve the original file, then rename the file to *.sav and open up in PSLF using
the getf command.
Three categories of engineering checks are performed:
1. Basic Engineering Checks
2. Bad Modeling Checks
3. Solution Checks
Basic Engineering Checks:
The summary of the violations detected or changes made to the data, for basic engineering checks listed below are
written to the output file “rpti_check.out”.
1. Check to see if any phase shifters are connected to Radial buses. If yes, they are changed to fixed type
transformers.
2. Check to see if system swing is self-regulating. If its not self-regulating, it is made to self regulate.
3. Check to see if z table reference exists for transformer records. If they don’t exist, the ztable field is set to 0 for
these transformers.
4. Check to see if the tap step size of dc converter transformers seems practical.
5. Check to see if there are any non-swing buses, which have no transmission lines/transformers connected to it. If
there are any such buses, all the equipments connected to them except DC are disconnected and the bus
isolated. The details of buses isolated during this check can be found in file “rpti_isol.out”.
6. Check to see if any generator, svd, dc line or phase shifters are connected to a jumper, which might cause solution
difficulties. If there were any such records, the reactance of these lines/transformers is changed to 0.001.
Bad Modeling Checks
The following checks will be performed during this process and the summary of the violations detected or changes
made to the data is written to output file “rpti_ModellingCheck.out”
1. Check to see if any Non-Transformer terminated transmission lines are connected between buses having different
base voltages levels.
2. Check to see if any generator reactive limits are specified in a wrong way (if limits are swapped).
3. Check to see if any fixed type transformers have abnormal tap limits (like in kV rather than in p.u.). Normally this
doesn’t have any impact on the solution, but if the user changes the tap type to other than fixed type, then it
might create a problem. These abnormal tap limits are reported as seen in the raw file based upon RMA1
(upper tap limit) and RMI1 (lower tap limit).
4. Check to see if there are any TCUL’s, which doesn’t have the regulated bus data specified. If there are any
such TCUL’s, they would be converted to fixed type
5. Check to see if there any TCUL’s whose tap limits falls outside of normal tap limit range of 1.1 (max) and 0.9
(min).
Solution Checks
The following checks will be performed during this process and the summary of violations found is written to output
file "rpti_SolutionCheck.out"
1. Check if there is any generator having reactive output, which falls outside reactive limit input data range.
2. Check if case was solved with TCUL enabled.
3. Check if case was solved with Phase Shifters enabled.
4. Check if Area interchange data is correct.
These solution checks are purely based upon input data as seen in the raw file and may not indicate that the case was
really a solved PSS/e case, even if there are no violations detected after performing these checks.
Output Reports
Report Title Description
rpti_check.out Summary of basic engineering checks
rpti_isol.out Summary of buses isolated (if any) in basic
engineering checks
rpti_ModellingCheck.out Summary of modeling checks
rpti_SolutionCheck.out Summary of solution checks
Note: The case might need to be re-ordered several times. Performing the import with the engineering checks
does take more time than a simple import. Please be patient during this process.
Subject: EPC Import and Export
Function: REPC and EEPC
Brian Thomas
Author:
August, 2008
Date:
Version 17 Compatibility with *.epc files
PSLF version 17 can import any *.epc file (created either in version 17 or earlier releases) and export a case as
an *.epc file with either 12 character (default) or 8 character bus names.
Exporting a case with 8 character bus names (Special feature if user wants to use a case
saved in version 17 with an earlier version)
If the user wants to export a case from version 17 and read it with an earlier version, the following steps need to be
followed. First, set the long name flag to 0. This flag is under Parm->Display Parameters-> “bus name 8-characters=0,
12-characters=1”. Then export the file (exim -> Export EPC). The above setting results in PSLF writing 8 characters
for each bus name in the *.epc file. This epc file with 8 character bus names can be read in earlier PSLF version.
Caution: Data relating to bus names longer than 8 characters is lost if one exports the case with the long name flag set
to 0.
Using Bus name flag during *.epc file import ( User Interface : Parm -> Display Parameter
Dialog -> bus names flag or Epcl Access: dispar[0].nameflag )
Each bus is uniquely identified based upon the bus identifier, which can be either external bus number or bus name
and base voltage separated by a space and enclosed in double quotes. The flag, dispar[0].nameflag governs whether the
import will use external bus numbers or bus name and base voltage as bus identifier to check for duplications.
During *.epc import, after each record is read, it is checked against existing records in memory to avoid duplication. If
there are duplicate records, only one record will be read. For this reason, it is important to make sure that there are no
duplicate buses having the same bus identifier. In case, the nameflag is used, do make sure that no two (or more) buses
have the same bus name and base voltage.
If there are multiple three winding transformers, and the user is not careful while creating the case, it is likely that
some of the three winding transformers may have the same name and base voltage for the midpoint bus. For this
reason, it is advisable to import the *.epc file with the nameflag set to 0 that lets PSLF use external bus numbers as the
bus identifier during import.
Subject: 12 Character bus name version
Function: Version 17
Brian Thomas
Author:
August, 2008
Date:
The major change in Version 17 is the enhancement to work with 12 character bus names.
Backwards Compatibility with *.sav, *.epc, *.dyd files
Version 17 can
· Read *.sav files created in earlier PSLF versions (having 8 character bus names).
· Import *.epc files created in earlier PSLF versions.
· Read *.dyd files created in earlier PSLF versions.
· Read *.drw files created in earlier PSLF versions.
· Read *.chf files created in earlier PSLF versions.
If the bus name has less than 12 characters, it is padded with spaces.
Do not try to read a *.sav case created in version 17 back in version 16.3 or earlier. This would result in a program
crash.
2. This will bring a dialog box, which allows you to choose the base case. If there is a power case already loaded
in, this program assumes the case in the memory as the base case. To choose a different case, you can simply
enter a keyword ‘pick’ which will render a file chooser. If you would like to determine differences between two
power flow cases, but for a single bus enter a keyword “yes” in the field “Diff. on a single bus (yes/no):” (please
follow through step a below). By default, this field is set to “no”, which would determine the differences for the
whole network as illustrated in step b below.
a.) The next screen allows you to choose your change case, incremental file name and enter the external bus
number of interest.
With all the options set, click ‘OK’. This will start the process of comparison and the incremental file will be
ready with the changes recorded, located in your PSLF working folder.
b.) The next screen allows you to choose your change case, incremental file name and other filtering options.
Change Case:
You can either type in the change case name or enter the keyword ‘pick’ which allows you to choose a case using
file chooser.
Output File Name (*.upd):
As you may notice here, you may choose the incremental file name and it has an extension *.upd.
delete elements (yes/no):
If you wanted to tag records for deletion from the base case as compared with the change case, set this flag to
‘yes’. With this flag set to ‘no’, there will be no records tagged for deletion from the base case and only the
changes in the existing records form base case are recorded as compared with change case.
range flag (yes/no):
If you want to apply filters by areas and zones to record the differences set this flag to ‘yes’ and enter the
corresponding area and zone numbers in next two fields. You can enter up to 10 areas and 10 zones each separated
by a comma or space. Please note that all the range checks are exclusive.
Example: area ranges : 10, 20,… (or) 10 20 ….
title & comments (append/replace/no):
append - Appends the title and comment lines from change case to the base case title comments up to supported
maximum number of lines.
replace - Replaces the title and comments section from the change case to the base case.
no – No changes will be recorded for the title and comments section.
With all the options set, click ‘OK’. This will start the process of comparison and the incremental file will be ready
with the changes recorded, located in your PSLF working folder.
Notes: It should be noted here that the incremental file format (UPD) is similar to that of standard PSLF EPC format.
However, the incremental file generated by “Case_Dif_Inc_Create.p” will just record the changes field-by-field in
each record and if there is no change it writes a ‘-’ character.
If you wish to read an EPC file and apply the changes to the base case choose keyword ‘EPC’ in the next field
‘Incremental File Format’.
3. This action will render a file chooser dialog from where you can locate your incremental file. This will initiate
the process of merging the changes in to the base case.
Notes: After the program completes merging the changes, the user is responsible for optimal ordering the case and
saving it.
Subject: The Play In System for PSLF
Function:
John Undrill
Author:
September, 2010
Date:
1. Background
The play in system allows PSLF to be used to simulate the response of power system equipment to specific inputs. The
typical specific inputs are recorded system conditions such as voltage and frequency at the terminals of a generator.
Playing these variables into a simulation allows the user of PSLF to see the responses of a simulation model to this
input; comparison of the simulated response with recordings of the same signals gives an excellent indication of the
quality of the simulation.
2. Play in Data Tables
The play-in system is based on two data tables in the PSLF data system:
pldat this table contains the recorded signals to be played in
plhead this table contains channel headings together with
scale factors, and offsets that can be used to convert
signals from 'raw' engineering values to per unit values
suitable for PSLF
It is useful to think of the played in data as a file of samples of the value of recorded channels. Each set of samples
constitutes one record. There are nchan samples per record, including the independent variable channel which is
normally the value of time. Time is normally, but not necessarily, contained in channel 0.
The data in these tables can be accessed through the EPCL language as follows:
The value of channel nc in record nr is pldat[0].data[k] where k = nr*nchan+nc
The heading of channel nc is plhead[nc].name
The scale factor for channel nc is plhead[nc].scale
The offset for channel nc is plhead[nc].ofset
The filter time constant for channel nc is plhead[nc].tf
The lower plot limit for channel nc is plhead[nc].min
The upper plot limit for channel nc is plhead[nc].max
The flag for plotting of channel nc is plhead[nc].plot
The signal value played in to the dynamic models of PSLF is calculated as
<value> = ( <data value> - <ofset> ) / <scale>
Thus, if a channel contains samples of generator terminal voltage in kV, and if the base value of voltage is 13.8 kV,
the per unit voltage can be obtained by setting the scale factor to 13.8. If there is known to be a +0.3 kV zero error in
the raw data in that channel, this could be corrected by setting the offset to 0.3.
3. Manipulating the Play in Data
Scaling can be done by the rpli command as it reads the raw data or by the plsc command at a later time.
It is not necessary to edit the file of raw data to change the scaling or offset used in obtaining per unit values. The scale
factors and offsets can be changed by simple EPCL statements such as
plhead[7].scale = 13.8
plhead[7].ofset = 0.3
If scaling factors different from those in the data file are to be used, the scaling by the rpli command should be turned
off and the plsc command should be used after the scale factors have been set.
4. Loading the Raw Data
The tables pldat and plhead must be loaded before play in can be done. The tables are loaded by reading an external
ASCII data file that contains heading/scaling/ offset values and then one record per data sample. Each data sample
record contains between one and 16 data channels.
The data loading command has the form
@ret = rpli(<filename>, <nrecs>, <ndec>, <scale>)
a) The file must be in a straightforward "csv" format with either commas or blanks as delimiters.
b) If the data read by rpli exceeds the allocated space, the message “RPLI reached its space limit” is issued to the .log
file following the call to rpli. Exceeding the allocated space can lead to erroneous results.
5. Applying the Scaling
There are two options for scaling and offsetting the raw play-in data. Scaling can be done when the data file is read by
setting the <scale> argument of the rpli command to 1. Scaling can be applied before the play-in begins by using the
EPCL command plsc(). plsc() can be executed after the raw data has been loaded with rpli(). plsc() scales and offsets
each play-in channel according to
<data> = ( <data> - ofset ) / scale
The scaled data values replace the raw values.
6. Interpolation with Respect to Time
It is unusual for the sampling of the play-in data to be synchronized with the numerical integration time step used in
PSLF simulation. The models that apply play-in signals to the simulation therefore must interpolate between play-in
samples to obtain the value to be applied to the simulation at each time step. This interpolation is done by a model,
plnow. At every time step of the simulation plnow gets the data samples whose times just precede and follow the
present simulation time, dypar.time. plnow then gets the value of the play-in signals at the present time by linear
interpolation. If a non-zero filter time constants is provided (in plhead[*].tf) for a channel the filter is applied to the
interpolated signal value.
Subject: Generic Static Var System Models for WECC
Function:
Eric Allen -NERC, Bharat Bhargava - SCE, Anders Bostrom -
Author: ABB, Donald Davies - WECC, Dave Dickmander - ABB,
Wenyan Gu - ATCO Electric, Yuriy Kazachkov - Siemens PTI,
Janet Kowalski - SCE, Ronnie Lau - PG&E, Andrew J. Meyer -
TEP, Ram Nath - Siemens PTI, Pouyan Pourbeik - EPRI,
William Price - Consultant, Armando Salazar - SCE; Juan
Sanchez-Gasca - GE; Branden Sudduth - WECC, Dan Sullivan
- MEPPI , Stephen Williams - S&C
April 18, 2011
Date:
WECC_SVC_TF_Generic_SVS_Model.pdf is posted in the \upslf18\pdf directory
Subject: PSLF HVDC Modeling for Planning Studies
Function:
Author: Kara Clark, Rob D’Aquila, Miaolei Shao
March, 2012
Date:
Overview
This document describes how to model a basic conventional HVDC transmission project for powerflow and stability
analysis in PSLF. The model is for use in transmission planning, where exact equipment characteristics and controls
have not yet been specified. An example 2000 MW, +/- 500 kV bipole system is presented. This example can be
easily modified to using the example calculations, EXCEL spreadsheet and epcl programs that are provided.
Example System
The system used for this example is 2,000 MW, +/- 500 kV bipole. In PSLF, each pole is modeled independently.
That is, there are two independent HVDC systems (i.e., 4 DC buses, 2 DC lines, 4 converters). A simplified one-line
diagram of this example is shown in Figure 1.
Figure 1. Bipolar HVDC Link.
The calculations below are for one pole, or HVDC system, in PSLF. For the example system, the following input data
are assumed for each pole:
Pd = rated DC power = 1,000 MW
Vdi = rated DC voltage at the inverter = 500 kV
a = g = nominal firing angle = 20
Xtpu = converter transformer impedance = 0.13 pu (on transformer base)
Nb = number of bridges = 2
Rdc = DC line resistance = 5 ohms
Therefore, the following can be calculated:
I d = Pd /Vdi = 1000 MW/500 kV = 2.0 kA
Vdr = Vdi + I d *Rdc = 500 + 2*5 = 510 kV
where:
I d = rated DC current
Vdr = rated DC voltage at the rectifier
The basic HVDC equations from “Power System Stability and Control” by Prabha Kundur are used to calculate the
necessary converter data:
(9)
Finally, Equation (9) can be rearranged such that:
(10)
Therefore, the following calculations (per bridge) apply to the rectifier of the example system:
And, these calculations (per bridge) apply to the inverter of the example system:
Powerflow Model
The example system is represented in a powerflow case, dc-example-2pole.sav, using PSLF’s dcb (dc bus), dcl (dc
line) and dcc (dc converter) models. A one-line diagram of the example system is shown in Figure 2. The HVDC
system connects two single-machine, single-load systems. Shunt capacitors are provided at both the rectifier and
inverter to partially compensate for their reactive power consumption.
Figure 2. Powerflow Model of Example HVDC System.
(file “cases\dc-example-2pole.sav”)
Four 500kV DC buses, two DC lines, and four DC converters are required to represent the HVDC system. The DC
bus and DC line data are largely self-explanatory.
The DC converter models use data obtained from the equations above, which have been replicated in the EXCEL
spreadsheet DC Calculations rev2.xls. Other necessary data (e.g., control mode options) are described in Section 3.9
of the PSLF manual. Note that a significant portion of the converter data shown in the dcc table is not actually
required by PSLF. Some of the data is for information only, and some is for compatibility with other programs.
The key input data for one rectifier and one inverter are shown in Table 1. The values determined in the EXCEL file
are highlighted in yellow.
Table 1. Power Flow Data for Example Rectifier and Inverter Converter Models.
Input Parameter Description Rectifier Inverter
AC bus 20 30
DC bus 1 2
Converter ID r1 i1
Converter status 1 1
Converter type 1 2
Control mode 1 3
Number of bridges 2 2
Converter transformer tap control flag 1 1
Idc scheduled, Amps 2000.
Vdc scheduled, kV 500.
Alpha minimum, deg 15
Gamma minimum, deg 20
Xcommutating per bridge, ohms 9.92 9.73
Vbase AC side, kV 345. 345.
Vbase DC side, kV 215.9 211.6
Transformer MVA base, MVA 610.6 598.6
Fixed AC side tap, pu 1.00 1.00
Fixed DC side tap, pu 1.00 1.00
Tap minimum, pu 0.8 0.8
Tap maximum, pu 1.2 1.2
Tap step, pu 0.00625 0.00625
Converter rating, Amps 2000. 2000.
Dynamic Model
The example system is represented by one of the two-terminal HVDC transmission system models available in PSLF -
the epcdc model. The associated data are shown in the dynamic data file, dc-example-2pole.dyd, and were generated
by an epcl, Add_epcdc.p. This epcl determines the dynamic data from both powerflow parameters and default values.
More information on the epcdc model is provided in the PSLF manual.
Key input data for the epcdc model are shown in Table 2. As noted above, the example data are deliberately generic,
and appropriate for planning studies where exact equipment characteristics and controls have not yet been specified.
The rectifier and inverter AC systems are represented by two equivalent machines. The rectifier-side machine is
modeled with the gentpf, exst4b and ieeeg1 models. The inverter-side machine is modeled with the genrou, exst4b and
ieeeg1 models. The associated data are shown in the dynamic data file, dc-example-2pole.dyd.
Table 2. Dynamic Data for Example Two-Terminal EPCDC Model.
Name Input Parameter Description Value Notes
dcbusr Rectifier dc bus 1
dcbusi Inverter dc bus 2
alpmin Minimum rectifier firing angle, deg 5.0
gammin Minimum inverter firing angle, deg 16.0
tmeasv DC voltage transducer time constant, sec 0.05
tmeasi DC current transducer time constant, sec 0.05
trdown Rectifier VDCOL down time constant, sec 0.017
trup Rectifier VDCOL up time constant, sec 0.08
tidown Inverter VDCOL down time constant, sec 0.017
tiup Inverter VDCOL up time constant, sec 0.08
v1r Rectifier VDCOL voltage break point, kV 225 45% of rated DC voltage
v2r Rectifier VDCOL voltage break point, kV 400 80% of rated DC voltage
v3r Rectifier VDCOL voltage break point, kV 275 55% of rated DC voltage
v4r Rectifier VDCOL voltage break point, kV 450 90% of rated DC voltage
c1r Rectifier VDCOL current break point, pu 0.3
c2r Rectifier VDCOL current break point, pu 1.1
v1i Inverter VDCOL voltage break point, kV 225 45% of rated DC voltage
v2i Inverter VDCOL voltage break point, kV 400 80% of rated DC voltage
v3i Inverter VDCOL voltage break point, kV 275 55% of rated DC voltage
v4i Inverter VDCOL voltage break point, kV 450 90% of rated DC voltage
c1i Inverter VDCOL current break point, pu 0.3
c2i Inverter VDCOL current break point, pu 1.1
cmin Minimum current order, Amps 600 30% of rated DC current
cmax Maximum current order, Amps 2200 110% of rated DC current
vblock Rectifier AC voltage for instantaneous block, pu 0.2
vunbl Rectifier AC voltage for unblock, pu 0.3
tblock Rectifier minimum block time, sec 0.02
vbypas Inverter DC voltage for bypass, pu 0.2
vunby Inverter AC voltage for unbypass, pu 0.3
tbypas Inverter minimum bypass time, sec 0.02
Name Input Parameter Description Value Notes
tcmode Minimum time in enforced current mode, sec 0.02
vdeblk Rectifier AC voltage for delayed block, pu -9999 Disables function
tdeblk Rectifier pickup time for delayed block, sec 9999 Disables function
Rectifier minimum block time for delayed block,
treblk 9999 Disables function
sec
vacbyp Inverter AC voltage for delayed bypass, pu -9999 Disables function
tdebyp Inverter pickup time for delayed bypass, sec 9999 Disables function
Inverter minimum bypass time for delayed
tinbyp 9999 Disables function
bypass, sec
Sudden inverter AC voltage change for
vchange 9999 Disables function
instantaneous bypass, pu
Sudden voltage change detector time constant,
tvchange 9999 Disables function
sec
imarg Current margin, Amps 200 10% of rated DC current
alp_max Maximum rectifier firing angle, deg 90
gam_max Maximum inverter firing angle, deg 90
Overview
This document describes how to model and detect transient limit violations in a PSLF dynamics simulation run. Transient
limit violations can be used to detect voltage and frequency violations at different buses, areas, zones, balancing authorities
(ba) based upon user defined criteria’s.
Transient limit criteria violation checks can be enabled, by specifying the violation criteria in the INIT panel when
initializing a dynamics simulation, as illustrated in the figure below. The violation criteria is defined in a *.dycr file. The
format of the *.dycr file is defined in this document.
Developing a Criteria File
The Criteria file is where the violation criteria and parameters for violations checks are specified. This section will discuss
how to develop the *.dycr file for transient limit criteria violations.
starttime <TIME>
postfaultdelay <TIME>
initvalflag <FLAG>
initvaltime <TIME>
TIME: Designates the time (seconds) at which the initial conditions should
be used. This field will be used if “initvalflag” is set to 0.
ignoredisconnectedisland <FLAG>
The following tables describe the violation criteria by 4 different categories for voltage and frequency
Specifying Criteria for Minimum Voltage Violations
<GROUPING> <FROM> <TO> <VALTYPE> <VAL> <FILTER> <ADVANCEDFILTER>
<STARTIFBELOWFLAG> <STARTIFBELOWVALUETYPE> <STARTIFBELOWVALUE>
minvolt <STOPIFBELOWFLAG> <STOPIFBELOWVALUETYPE> <STOPIFBELOWVALUE>
<STARTIFABOVEFLAG> <STARTIFABOVEVALUETYPE> <STARTIFABOVEVALUE>
<STOPIFABOVEFLAG> <STOPIFABOVEVALUETYPE> <STOPIFABOVEVALUE>
val = value
per = percent of initial value
VALTYPE:
dev = deviation from initial value
perdev = percentage deviation from initial value
VAL: Minimum voltage limit. VAL will be interpreted by PSLF, based upon
the VALTYPE flag specified by the user.
load
FILTER nonload
all
0 DISABLED (default)
STARTIFBELOW FLAG
1 ENABLED
val = value
STARTIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STARTIFABOVE FLAG
1 ENABLED
val = value
STARTIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
Specifying Criteria for Maximum Voltage Violations
<GROUPING> <FROM> <TO> <VALTYPE> <VAL> <FILTER> <ADVANCEDFILTER>
<STARTIFBELOWFLAG> <STARTIFBELOWVALUETYPE> <STARTIFBELOWVALUE>
maxvolt <STOPIFBELOWFLAG> <STOPIFBELOWVALUETYPE> <STOPIFBELOWVALUE>
<STARTIFABOVEFLAG> <STARTIFABOVEVALUETYPE> <STARTIFABOVEVALUE>
<STOPIFABOVEFLAG> <STOPIFABOVEVALUETYPE> <STOPIFABOVEVALUE>
val = value
per = percent of initial value
VALTYPE:
dev = deviation from initial value
perdev = percentage deviation from initial value
VAL: Maximum voltage limit. VAL will be interpreted by PSLF, based upon
the VALTYPE flag specified by the user.
load
FILTER: nonload
all
0 DISABLED (default)
STARTIFBELOW FLAG
1 ENABLED
val = value
STARTIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STARTIFABOVE FLAG
1 ENABLED
val = value
STARTIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
Specifying Criteria for Voltage Violations If It Decreases Below a Lower Limit for a Minimum Duration
<GROUPING> <FROM> <TO> <VALTYPE> <VAL> <DURTYPE> <DUR> <FILTER>
<ADVANCEDFILTER> <STARTIFBELOWFLAG> <STARTIFBELOWVALUETYPE>
minvoltdur <STARTIFBELOWVALUE> <STOPIFBELOWFLAG> <STOPIFBELOWVALUETYPE>
<STOPIFBELOWVALUE> <STARTIFABOVEFLAG> <STARTIFABOVEVALUETYPE>
<STARTIFABOVEVALUE> <STOPIFABOVEFLAG> <STOPIFABOVEVALUETYPE>
<STOPIFABOVEVALUE>
area = Check for violations within a designated set of Areas
zone = Check for violations within a designated set of Zones
GROUPING:
ba = Check for violations within a designated set of BAs
bus = Check for violations within a designated set of Buses
val = value
per = percent of initial value
VALTYPE:
dev = deviation from initial value
perdev = percentage deviation from initial value
VAL: Minimum voltage limit. VAL will be interpreted by PSLF, based upon
the VALTYPE flag specified by the user.
seconds
DURTYPE:
cycles
DUR: Minimum duration value. DUR will be interpreted by PSLF, based upon
the DURTYPE flag specified by the user.
load
FILTER: nonload
all
0 DISABLED (default)
STARTIFBELOW FLAG
1 ENABLED
val = value
STARTIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STARTIFABOVE FLAG
1 ENABLED
val = value
STARTIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
Specifying Criteria for Voltage Violations If It Exceeds an Upper Limit for a Minimum Duration
<GROUPING> <FROM> <TO> <VALTYPE> <VAL> <DURTYPE> <DUR> <FILTER>
<ADVANCEDFILTER> <STARTIFBELOWFLAG> <STARTIFBELOWVALUETYPE>
maxvoltdur <STARTIFBELOWVALUE> <STOPIFBELOWFLAG> <STOPIFBELOWVALUETYPE>
<STOPIFBELOWVALUE> <STARTIFABOVEFLAG> <STARTIFABOVEVALUETYPE>
<STARTIFABOVEVALUE> <STOPIFABOVEFLAG> <STOPIFABOVEVALUETYPE>
<STOPIFABOVEVALUE>
val = value
per = percent of initial value
VALTYPE:
dev = deviation from initial value
perdev = percentage deviation from initial value
VAL: Maximum voltage limit. VAL will be interpreted by PSLF, based upon
the VALTYPE flag specified by the user.
seconds
DURTYPE:
cycles
DUR: Minimum duration value. DUR will be interpreted by PSLF, based upon
the DURTYPE flag specified by the user.
load
FILTER: nonload
all
0 DISABLED (default)
STARTIFBELOW FLAG
1 ENABLED
val = value
STARTIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STARTIFABOVE FLAG
1 ENABLED
val = value
STARTIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
Specifying Criteria for Minimum Frequency Violations
<GROUPING> <FROM> <TO> <VALTYPE> <VAL> <FILTER> <ADVANCEDFILTER>
<STARTIFBELOWFLAG> <STARTIFBELOWVALUETYPE> <STARTIFBELOWVALUE>
minfreq <STOPIFBELOWFLAG> <STOPIFBELOWVALUETYPE> <STOPIFBELOWVALUE>
<STARTIFABOVEFLAG> <STARTIFABOVEVALUETYPE> <STARTIFABOVEVALUE>
<STOPIFABOVEFLAG> <STOPIFABOVEVALUETYPE> <STOPIFABOVEVALUE>
val = value
per = percent of initial value
VALTYPE:
dev = deviation from initial value
perdev = percentage deviation from initial value
VAL: Minimum frequency limit. VAL will be interpreted by PSLF, based upon
the VALTYPE flag specified by the user.
load
FILTER nonload
all
0 DISABLED (default)
STARTIFBELOW FLAG
1 ENABLED
val = value
STARTIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STARTIFABOVE FLAG
1 ENABLED
val = value
STARTIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
per = percent of initial value
STOPIFABOVE VALUE
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
Specifying Criteria for Maximum Frequency Violation
<GROUPING> <FROM> <TO> <VALTYPE> <VAL> <FILTER> <ADVANCEDFILTER>
<STARTIFBELOWFLAG> <STARTIFBELOWVALUETYPE> <STARTIFBELOWVALUE>
maxfreq <STOPIFBELOWFLAG> <STOPIFBELOWVALUETYPE> <STOPIFBELOWVALUE>
<STARTIFABOVEFLAG> <STARTIFABOVEVALUETYPE> <STARTIFABOVEVALUE>
<STOPIFABOVEFLAG> <STOPIFABOVEVALUETYPE> <STOPIFABOVEVALUE>
val = value
per = percent of initial value
VALTYPE:
dev = deviation from initial value
perdev = percentage deviation from initial value
VAL: Maximum frequency limit. VAL will be interpreted by PSLF, based upon
the VALTYPE flag specified by the user.
load
FILTER: nonload
all
0 DISABLED (default)
STARTIFBELOW FLAG
1 ENABLED
val = value
STARTIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STARTIFABOVE FLAG
1 ENABLED
val = value
STARTIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
Specifying Criteria for Frequency Violations If It Decreases Below a Lower Limit for a Minimum Duration
<GROUPING> <FROM> <TO> <VALTYPE> <VAL> <DURTYPE> <DUR> <FILTER>
<ADVANCEDFILTER> <STARTIFBELOWFLAG> <STARTIFBELOWVALUETYPE>
minfreqdur <STARTIFBELOWVALUE> <STOPIFBELOWFLAG> <STOPIFBELOWVALUETYPE>
<STOPIFBELOWVALUE> <STARTIFABOVEFLAG> <STARTIFABOVEVALUETYPE>
<STARTIFABOVEVALUE> <STOPIFABOVEFLAG> <STOPIFABOVEVALUETYPE>
<STOPIFABOVEVALUE>
val = value
per = percent of initial value
VALTYPE:
dev = deviation from initial value
perdev = percentage deviation from initial value
VAL: Minimum frequency limit. VAL will be interpreted by PSLF, based upon
the VALTYPE flag specified by the user.
seconds
DURTYPE:
cycles
DUR: Minimum duration value. DUR will be interpreted by PSLF, based upon
the DURTYPE flag specified by the user.
load
FILTER: nonload
all
0 DISABLED (default)
STARTIFBELOW FLAG
1 ENABLED
val = value
STARTIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STARTIFABOVE FLAG
1 ENABLED
val = value
STARTIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
Specifying Criteria for Frequency Violations If It Exceeds an Upper Limit for a Minimum Duration
<GROUPING> <FROM> <TO> <VALTYPE> <VAL> <DURTYPE> <DUR> <FILTER>
<ADVANCEDFILTER> <STARTIFBELOWFLAG> <STARTIFBELOWVALUETYPE>
maxfreqdur <STARTIFBELOWVALUE> <STOPIFBELOWFLAG> <STOPIFBELOWVALUETYPE>
<STOPIFBELOWVALUE> <STARTIFABOVEFLAG> <STARTIFABOVEVALUETYPE>
<STARTIFABOVEVALUE> <STOPIFABOVEFLAG> <STOPIFABOVEVALUETYPE>
<STOPIFABOVEVALUE>
val = value
per = percent of initial value
VALTYPE:
dev = deviation from initial value
perdev = percentage deviation from initial value
VAL: Maximum frequency limit. VAL will be interpreted by PSLF, based upon
the VALTYPE flag specified by the user.
seconds
DURTYPE:
cycles
DUR: Minimum duration value. DUR will be interpreted by PSLF, based upon
the DURTYPE flag specified by the user.
load
FILTER: nonload
all
0 DISABLED (default)
STARTIFBELOW FLAG
1 ENABLED
val = value
STARTIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFBELOW VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STARTIFABOVE FLAG
1 ENABLED
val = value
STARTIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
0 DISABLED (default)
STOPIFBELOW FLAG
1 ENABLED
val = value
STOPIFABOVE VALUE per = percent of initial value
TYPE dev = deviation from initial value
perdev = percentage deviation from initial value
Example
Mentioned below is an example of criteria violation *.dycr file.
Viewing Violations
After the end of the dynamic simulation, all the criteria violations for the case can be viewed by using the “dyvl” table from
the menu option as shown below.
PSLF also creates a .csv file containing a list of all violations for each dynamics run, if the transient violation criteria are
defined. The csv file will have the same name as the .chf file and will end with suffix “_violations.csv”. This is useful
when running lot of cases in the batch mode.
The user can define all the violation criteria for different categories of contingencies in one single global file. Based upon
the dynamics simulation run, PSLF would select the criteria for the appropriate contingency. This feature is especially
useful when running a number of transient contingencies in batch mode using DYTOOLS or other user defined batch
processor.
Subject: Read/Create PSS®E IDEV Response File
Function: EPCLs ridv.p, and (EPC_Inc_Read.p & IDV_Inc_Create.p)
Note that ridv is executed via an EPCL in an interactive mode
Author: Surendra Puchalapalli
March, 2014
Date:
Read Incremental (change) IDEV File
The epcl program “ridv.p” reads a PSS®E incremental *.idv response file, and updates the case in the memory. Most
of the power flow data changing batch command syntaxes that pertain to PSLF’s data model are supported except for
the HVDC system commands. This program currently can process the batch commands from PSS®E V32 and V33.
The following are the steps to use this program:
1. Click on the button exim à Import IDV from within PSLF main panel. Import IDV executes the EPCL program
ridv.p located in \upslfxx\stdepcl.
2. This will bring a dialog box, which allows you to choose the base case and the PSS®E *.idv file. If there is a
power case already loaded in, this program assumes the case in the memory as the base case. To choose a
different case, you can simply enter a keyword ‘pick’ which will render a file chooser. Similarly, the second
text-box field allows you to choose the *.idv file.
3. With all the options set, click ‘OK’. This will initiate the process of merging the changes in to the base case.
Notes: After the program completes merging the changes, the program automatically performs the optimal ordering.
The user is responsible for saving it.
This program makes the best engineering judgment updating the current base case in memory, in cases of insufficient
data provisions, and where applicable. Manual inspection and scrutiny may be required.
Create Incremental (change) IDEV File
The epcl based program “EPC_Inc_Read.p” reads the incremental *.epc file, and updates the case in the memory. A
“projid” value ‘1’ is assigned for all the equipment modifications and additions, and a value “-1” for all the equipment
tagged for deletion. Then the program automatically calls the EPCL “IDV_Inc_Create.p” for the creation of PSS®E
incremental *.idv response file based on the “projid” values that are set in the previous step. Batch commands from
PSS®E V32 and V33 are currently supported.
Before using the EPCLs please copy them from the upslf installation of the stdepcl folder to your current working
folder.
The following are the steps to use this program:
1. Click on the ‘epcl’ command button from within PSLF main panel. This will bring up the file chooser menu, that
will allow you to browse for the epcl “EPC_Inc_Read.p”. Select the epcl program and click on Open.
2. This will bring a dialog box, which allows you to choose the base case and the *.epc file. If there is a power case
already loaded in, this program assumes the case in the memory as the base case. To choose a different case,
you can simply enter a keyword ‘pick’ which will render a file chooser. Similarly, the second text-box field
allows you to choose the *.epc file. The name and version choice (PSS ®E V32 or V33) for the output *.idv file
to be created should be entered in the next two text-box fields appropriately.
3. With all the options set, click ‘OK’. This will initiate the process of converting the power flow incremental
changes from the original *.epc file to equivalent PSS®E power flow data changing batch command syntaxes in
*.idv file.
Subject: NERC CIP-014-1
Function:
Author: Brian Thomas
September, 2014
Date:
Overview
The purpose of the NERC CIP-014-1 criteria is t o identify and protect Transmission stations and Transmission substations, and their associated primary control centers
that if rendered inoperable or damaged as a result of a physical attack could result in widespread instability, uncontrolled separation, or Cascading within an Interconnection.
More information on this standard can be found at http://www.nerc.com/pa/Stand/Pages/CIPStandards.aspx.
This document describes how to identify Transmission stations and Transmission substations that meets the NERC CI-014-1 criteria. This document further
describes how to generate list of contingencies for the loss of such stations and how SSTOOLS and DYTOOLS-HD can be used to run these contingencies.
The user can specify the following inputs
1. Starting number of substation: PSLF would add substation starting from this number. If the substation number is already being used, PSLF would
automatically use the next available unused substation number while adding new substations.
2. Impedance check option
a. In-built option: PSLF would check each class of line to determine if it’s within a substation.
b. User defined: PSLF would check impedance of the line against the values defined by the user in the next option. Lines having impedance less than
the user defined values would be added in the same substation.
3. Impedance per mile (reactance + charging): If the impedance check option is set to “user defined” , PSLF would use the impedance option spefied by the
user to determine if the line is within the same substation or not.
Overview
This application note describes the new power plant model validation tool which automates the process of model
validation. PSLF was the first in the industry to offer the play back (play in field measured data) into the simulation.
The feature to play in measured data from the field was added in PSLF since 2001. The first generation of play in
models were added in PSLF in 2001 and the 2nd generation of play in models was added in 2010 by Dr. John Undrill.
The power plant model validation tool which was added in 2017 and described in the document further automates the
entire step of extracting the power plant model data from an interconnection wide case, matching boundary conditions
and running the play back simulation and comparing the simulation results versus the measured data. The development
of this tool was sponsored by Bonneville Power Administration (BPA).
Disturbances of various types occur very frequently in the power grid. The installed base of PMU’s has been growing
in the past few years. Some interconnections require that generator owners add PMU’s at the point of interconnection
for the new power plants. Regular disturbances along with availability of PMU’s provides the opportunity to use these
disturbance events along with the PMU’s to periodically validate power plant models used in transient stability studies
and complement the stage testing.
PSLF can simulate a planning model (bus-branch based) or EMS operations model (node-breaker based) or
combination of two (hybrid model). The power plant model validation tool allows the user to validate any number of
power plants in any power flow interconnection wide case (planning or operations) for a given event (disturbance) or
for any number of events very efficiently and quickly. This type of model validation complements the regulatory
standards such as NERC MOD-026, MOD-027, MOD-033.
The figure below gives an overview of the power plant model validation process if there was one generator in the
power plant.
The rest of the document describes the process of using this tool.
Inputs
The input to the power plant model validation is defined in the model validation list file (mdvlst file). The mdvlst file
contains list of all power plants to be validated for any number of events. Each power plant is defined in the mdvlst file
as as a model validation subsystem. Each model validation subsystem assignment starts with keyword modvsubsystem
followed by the name (unique identifier) of the subsystem. The name of the subsystem can be any string. The only
requirement is that the name be unique among all the model validation subsystems defined the mdvlst file.
Each model validation subsystem has the following fields
Field Values
yes: to skip model validation for the given subsystem
skip:
no : to perform model validation for the given subsystem
Name of the play in file containing field measured data. The details
of the play back file can be found in application note 103 in the
PSLF manual. Each POI is expected to have the following 4 quantities
in the play back file in the sequence described below
Voltage at the POI
playbackfile Frequency at the POI
Active Power flow measured at the POI entering the POI from the
power plant
Reactive Power flow measured at the POI entering the POI from the
power plant
The following is an example of two model validation subsystems defined for PALOVERDE and NAVAJO power
plants along with the equipment terminals and the point of interconnection.
Once the user selects a given subsystem, PSLF would automatically generate the PLOT showing the results of the
model validation as shown below.
Overview
This application note describes voltage dependent reactive limits of wind and solar generators.
Conventional generators have reactive capability curve (example show below), which can be modeled using reactive
capability curve table (qtable) in PSLF.
However, type 3 (doubly fed), type 4 (full converter) type of wind generators and some solar photovoltaic (PV)
generators can have voltage dependent reactive capability curve (VDCC), which makes the reactive power limits
dependent upon the terminal voltage. This VDCC characteristics is described in the image below.
Traditional power flow solvers available in the commercial software packages (to the best of the author’s knowledge)
use fixed generator reactive limits to solve the power flow and compute the bus voltages. This may not necessarily
represent the characteristics of the type 3/type 4 wind turbine and some PV generators, as the reactive limits are
function of terminal voltage.
In the traditional power flow, type 3/type 4 wind turbine generator (or PV generators) would have the following data
with fixed set of reactive limits as mentioned below.
Base (mva)
Dispatch, pgen (mw)
Maximum Reactive limit, qmax (mvar)
Minimum Reactive limit, qmin (mvar)
However, as described above, type 3 and 4 wind turbine generators (or PV generators) might not have fixed reactive
limits, but rather voltage dependent reactive current limits.
The following shows an example of a GE wind plant summarizing the voltage dependent reactive capability curve.
Fig. Aggegate wind farm and the collector system
Fig. voltage dependent reactive power limits for the wind plant
Without modeling the voltage dependent reactive capability curve, simulation could give optimistic results when
terminal voltage is low, in addition to ignoring different reactive limits are different power levels.
PSLF now allows users to model 3 dimenstional voltage dependent reactive capability curve for wind and solar
generators. This also paves the way for a new tool which can be used to determine the reactive power requirements at
the point of interconnection required for Grid codes in different parts of the world. The rest of the document describes
the use of VDCC and the new wind compliance tool which can be used to determine the reactive limits of wind/solar
plants for Grid code compliance.
A line can be commented out in the file by starting the line with // or #.
All the VDCC data for different type of manufacturers or classes of generator can be defined in the VDCC record. The
VDCC record begins with keyword VDCC (Name) followed by { and ends with }. The data for different VDCC
should be entered between the curly braces ( { } ). Each VDCC data should be assigned a unique name which could
be the name of the manufacturer or the class of the turbine or equipment. The data for each VDCC begins with the
name enclosed in double quotes such as "Manufacturer A". The lookup data for the VDCC for this manufacturer or
class of equipment is then entered between the keywords <SUBDATA LookupTable> and </SUBDATA> as shown in
the example above. The first line starts with xy1y2 keyword following by different power levels for the VDCC. The
following rows contain voltage level and two reactive limits (max and min) for each input power level at that voltage
level.
In some cases, the manufacturer might have data in other some other format where they don’t have uniform samples.
The GE PSLF team has developed a standalone tool which can transform the data from CSV file to the data required
by PSLF. If there is a need to use this feature, either send the data to the pslf-support@ge.com or request the
executable of the tool.
Once the VDCC data curves are defined, they can be assigned to generators using those curves. Each generator is
assigned a specific VDCC by linking the generator object to the vdccname as shown in the example below. The record
specifying the assignment of the VDCC to generator begins with keyword GENVDCC ( object, vdccname ). The
assignment of VDCC to generator is done between the curly braces. Each generator object is defined followed by the
unique name of the VDCC to be used for the curve.
In the above example, generator at bus 1 with id ‘1’ is assigned VDCC curve "Manufacturer A". Similarly generator at
bus 10 with id ‘1’ is assigned VDCC curve "Manufacturer A".
Reading voltage dependent reactive capability curves (VDCC) data and association to
generators
The VDCC data defined in the WCRF file can be loaded by calling the EPCL command rvdcc(). The function is
defined in the EPCL functions library.
An example is shown below.
The following shows the output reactive capability curve accounting for capacitor and reactor banks in the plant for
voltage compensation.
Subject: Power Flow Solution Options in PSLF /
General Guidelines for Solving Power Flow Cases
Function:
Author: Brian Thomas
November 2017
Date:
Overview
This application note describes the various power flow solutions options available in PSLF. For a very long time,
PSLF supported two traditional power flow solution options (Newton Raphson and DC power flow solution). Several
new power flow solutions have been recently added to PSLF in version 21 that are designed to help users in solving
cases that may be difficult to solve with the traditional Newton Raphson method. Some of the major new power flow
solution options are listed below and are described in more detail in this application note.
· Fast Decoupled power flow solution
· Newton Raphson power flow solution with new voltage control option
· Auto AC power flow solution
· Distributed slack bus option
· Fixed slope option
Some power flow options are more tolerant to bad initial conditions or bad data and hence provide a much better
chance of solving a difficult power flow case. In some cases, the combination of different power flow solution options
improves the chances of solving a case. This application note provides general guidance to the user on how to use the
different solution techniques for different type of cases.
The traditional Newton Raphson power flow solution can also be invoked from an EPCL by calling the soln()
command. The example below illustrates how to call this function via EPCL.
Newton Raphson Power Flow Solution Option with New Voltage Control Option
This new method is similar to the traditional Newton Raphson power-flow option available in PSLF, but uses a slightly
different voltage adjustment technique. This makes it easier to solve some cases compared to the traditional Newton
Raphson method, especially when dealing with large numbers of remotely regulated buses on voltage controls. Similar
to the full Newton-Raphson method, all control adjustment options are available with this method.
This option can be enabled by selecting the option from the solution parameter (parm à solve) window as shown
below.
The new Newton Raphson power flow solution can also be invoked from an EPCL by calling the solnv() command.
The example below illustrates how to call this function via EPCL.
The Auto AC solution can also be invoked from an EPCL by calling the robustsoln() command. The example below
illustrates how to call this function via EPCL.
Flags Description
Enforce base load flag
solpar[0].rdbl
1 : don’t redispatch base load generators
0 : redispatch base load generators
The generators whose dispatch_flag is enabled (set to 1) would participate in distributed slack bus option.
The distributed slack bus option is like the redispatch option in the PSLF contingency processor (SSTOOLS).
Caution: The distributed slack bus option should not be enabled along with the redispatch option in SSTOOLS when
running the contingency processor.
It is recommended that users use AC power flow solution techniques such as Full Newton Raphson or Fast Decoupled
or Auto AC Solver method rather than using the DC method for power flow studies. DC method can be used for
screening thermal violations.
· When importing cases from Eastern Interconnection, it is found helpful to use Auto AC solver or Fast
Decoupled method. Auto AC solver makes it easy to solve without worrying about which option to use.
· When importing ERCOT cases, any AC solution method should work. However, Auto AC solver makes it
easy to solve.
· When working with WECC cases, Full Newton Raphson method or Auto AC solver has been identified to be
better than Fast Decoupled solution method.
Flat Start Option
The following are the solution techniques recommended by the author when using flat start option, based upon his
personal experience developing different power flow algorithms for flat start and working with power flow cases for
various interconnections.
It is highly recommended to relax reactive limit checks for the first few iterations when using flat start to improve
overall convergence. This could be done by setting the “Iterations before VAR limits” to a small number such as 2 or 3
or 5 when using flat start option as shown below. This value should be below the max iterations for solution. This field
can also be set from epcl by setting solpar[0].itnrvl variable.
Using Angle Estimation feature when adding projects via user interface
Follow the steps below to enable this feature interactively from the user interface, when adding new projects in a base
case:
· Add the project (equipment’s) from the user interface via edit tables
· Set the bus angle of the newly added buses to 0 and set their initial voltage magnitude to 1 per unit or the
scheduled voltage value.
· Set the status of all the equipment’s in the project to 1 (i.e. put them to in-service)
· Enable the angle estimation flag in the solution parameter dialog
· Solve the case
Using Angle Estimation feature when adding projects via EPC file
If the new project is added in the form of an *.EPC file (such that all new equipment’s including buses are defined in
the incremental *.EPC file), the bus voltage angle can be set to 0 in the *.EPC. After importing the *.EPC file, set the
angle estimation flag to 1.
c. Use preferred power flow solution option (such as Full Newton Raphson) or AC Auto solver and try to
solve the case
d. If the case cannot be solved,
i. Inspect buses showing up frequently in the iteration log (having large mismatch or voltage
corrections). Inspect those buses and look for any generator regulation conflicts using LIST
command in SCAN and fix the conflicts. Repeat the process from step a.
ii. If any HVDC terminal AC bus is showing up repeatedly in the solution iteration log, decrease
the converter tap step size. Repeat the process from step a.
iii. If the case cannot be solved after taking the steps described above, contact GE PSLF support
c. Use preferred power flow solution option (such as Full Newton Raphson) or AC Auto solver and try to
solve the case
d. If the case cannot be solved,
i. Inspect buses showing up frequently in the iteration log (having large mismatch or voltage
corrections). Inspect those buses and look for any voltage regulation conflicts between ltc’s and
generators using LIST command in SCAN and fix the conflicts. Repeat the process from step a.
ii. If any HVDC terminal AC bus is showing up repeatedly in the solution iteration log, decrease
the converter tap step size. Repeat the process from step a.
iii. If the case cannot be solved after taking the steps described above, contact GE PSLF support
c. Use preferred power flow solution option (such as Full Newton Raphson) or AC Auto solver and try to
solve the case
d. If the case cannot be solved,
i. Inspect buses showing up frequently in the iteration log (having large mismatch or voltage
corrections). Inspect those buses and look for any voltage regulation conflicts between svd’s and
generators using LIST command in SCAN and fix the conflicts. Repeat the process from step a.
ii. If any HVDC terminal AC bus is showing up repeatedly in the solution iteration log, decrease
the converter tap step size. Repeat the process from step a.
iii. If the case cannot be solved after taking the steps described above, contact GE PSLF support
c. Use preferred power flow solution option (such as Full Newton Raphson) or AC Auto solver and try to
solve the case
d. If the case cannot be solved,
i. Inspect buses showing up frequently in the iteration log (having large mismatch or voltage
corrections). Inspect those buses and look for any voltage regulation conflicts between svd’s and
ltc’s using LIST command in SCAN and fix the conflicts. Repeat the process from step a.
ii. If any HVDC terminal AC bus is showing up repeatedly in the solution iteration log, decrease
the converter tap step size. Repeat the process from step a.
iii. If the case cannot be solved after taking the steps described above, contact GE PSLF support
c. Use preferred power flow solution option (such as Full Newton Raphson) or AC Auto solver and try to
solve the case
d. If the case cannot be solved,
i. Inspect buses showing up frequently in the iteration log (having large mismatch or voltage
corrections). Inspect those buses and look for any regulation conflicts between phase shifters
using LIST command in SCAN and fix the conflicts. Repeat the process from step a.
ii. If any HVDC terminal AC bus is showing up repeatedly in the solution iteration log, decrease
the converter tap step size. Repeat the process from step a.
iii. If the case cannot be solved after taking the steps described above, contact GE PSLF support
c. Use preferred power flow solution option (such as Full Newton Raphson) or AC Auto solver and try to
solve the case
d. If the case cannot be solved,
i. Inspect buses showing up frequently in the iteration log (having large mismatch or voltage
corrections). Inspect those buses for any regulation conflicts using LIST command in SCAN and
fix the conflicts. Repeat the process from step a.
ii. If any HVDC terminal AC bus is showing up repeatedly in the solution iteration log, decrease
the converter tap step size. Repeat the process from step a.
iii. If the case cannot be solved after taking the steps described above, contact GE PSLF support
(pslf-support@ge.com) with the case.
7. Solve with all adjustments/controls enabled
a. Enable all solution control adjustments (LTC, SVD, phase shifter adjustment, Area Interchange)
c. Use preferred power flow solution option (such as Full Newton Raphson) or AC Auto solver and try to
solve the case
d. If the case cannot be solved,
i. Inspect buses showing up frequently in the iteration log (having large mismatch or voltage
corrections). Inspect those buses for any regulation conflicts using LIST command in SCAN and
fix the conflicts. Repeat the process from step a.
ii. If any HVDC terminal AC bus is showing up repeatedly in the solution iteration log, decrease
the converter tap step size. Repeat the process from step a.
iii. If the case cannot be solved after taking the steps described above, contact GE PSLF support
Overview:
“NERC Case Quality Metrics” performs the check based on the NERC September 2017 report titled “Case Quality
Metrics: Annual Interconnection-Wide Model Assessment”. The tool can be use by clicking on the “NERC Case
Quality Metric Check” button in dynamic utilities (dutils) in the dynamics tab of the main interface as shown below:
The tool can also be used to perform the checks provided in the WECC SADD tool if required.
Users can also choose to perform the checks only for a given set of areas/zones/BAs. The key steps involved in the
program are as follows:
1. It reads the *.sav (solved power flow case) and *.dyd files.
2. It performs Powerflow Phase I and II and Dynamic Data Phase I and II checks (briefly summarized in
the list of checks section below) for either the entire system or selected set of areas/zones/BAs.
3. It generates three files:
a. The file containing the final metrics pertaining to each criterion.
b. The file containing the details of each instance of violation of the powerflow case checks
c. The file containing the details of each instance of violation of the dynamic data checks
List of Checks:
Power-flow Phase-I checks:
· Pgen<=Pmax.
· Pgen>=Pmin.
· Schedule area interchanges sum should be zero.
· Active voltage regulation devices controlling same bus should not have conflicting voltage regulation set-
points.
· For voltage-controlling transformers, ratio of voltage bandwidth to tap step should not be less than 1.6;
ratios below 1.0 are severe violations.
· Ratio of rate B of a branch to its rate A should be greater than or equal to 1 and less than or equal to 3.0.
· Branch loading should not exceed rate A and loadings in excess of 105% of rate A are considered to be
severe violations.
Power-flow Phase-II checks:
· Qgen ≠ Qmin and Qgen ≠ Qmax (not applied for wind units).
· Qmax and Qmin in comparison with Pmax should have a power factor of at least 0.8(if generating Vars) or
-0.85 (if consuming vars). (not applied if Pmax = 0).
· Parallel transformers should not have circulating current.
· Loads greater than 2 MVA (with positive P and Q loads) should have power factor greater than 0.5.
· Rsource should be less than Xsource (except Xsource = 9999).
Dynamics Phase-I checks:
· Generating units larger than threshold for each interconnection that do not have a dynamic model.
(Threshold: 20 MVA for EI and 10 MVA for WECC and Texas interconnections)
· Generating units larger than threshold for each interconnection that have a model but are netted anyway.
· Generating units larger than threshold for each interconnection that are netted.
· Generating units larger than threshold for each interconnection that are modeled using the classical
generator model. (Threshold: 50 MVA for EI and Texas interconnections ; 10 MVA for WECC)
· Generator reactance values should be reasonable (Xd≥Xd’; Xd’≥Xd’’ ; Xd’’≥Xl ; Xq ≥ Xq’ ; Xq’≥Xq’’)
In addition, for each of these five metrics, the maximum real and reactive power limits for each unit found to
violate the criteria are totaled and printed to the summary metric output file.
The generator size for the first four checks in this phase is taken to be the maximum of: (√(Pgen 2 + Qgen2 ) ,
√(Pmax2 + Qmax 2 ) and the MVA base of the generator) (unless it is 100MVA).
Dynamics Phase-II checks:
· Generator time constants should be consistent (Tdo’’≤Tdo’ ; Tqo’’≤Tqo’ ; Tqo’≤Tdo’). (Only first check
for gentpj and gentpf. Last check not applied for gensal and gensae).
· Generator inertia 1.5≤H≤9.0. (In evaluating inertia constants for WECC, the inertia constant has been
evaluated on the MVA base specified in the powerflow file unless it is 100 MVA).
· Saturation factors should be reasonable:
o 0.03≤S(1.0)≤0.18
o 0.2≤S(1.2)≤0.85
o 2≤S(1.2)/S(1.0) ≤8
· Severe Saturation factor violations based on following criteria:
o Both factors should be positive
o Both factors should be less than 1.0
o S(1.0)≤ S(1.2)
· Units with PSS should have excitation system modeled.
· Damping coefficient should be zero for non-classical models.
· Turbine-governor lead-time constants should be less than lag-time constants.
· Turbine power development fractions in IEEEG1 should add to zero.
· GAST models should not be used.
· In DC exciter models, KE should be a small negative number unless it is zero or 1.0.
o Wind turbine electrical model WT3E should have ωPmin <ωP20<ωP40<ωP60<ωP100
All the above metrics are calculated as a percentage of the total number of models under test; for example the metric
for Pmax exceedances is calculated as the number of generators with such exceedances expressed as a percentage of
the total number of in-service generators. For details on calculating the numerical scores for different criterion, please
refer to NERC report, section Numerical Scores for Case Metrics.
The following example describes the use of NERC Case Quality Metrics:
When the user runs the program, the following dialog will pop-up:
· The first input should be ‘Y’ if WECC-SADD checks are also to be performed in addition to the NERC
checks, else it should be ‘N’.
· For the second input, if the user would like to evaluate only a particular set of areas/ zones/ BAs, they must
enter ‘Y’, else enter ‘N’.
· The user also needs to input whether the area, zone in which each violation occurred details, as seen in the
reports, should be printed out based on the area/zone/owner of the device or those of the bus to which the
device is connected. The input must match the spelling of one of the strings shown in brackets exactly.
If the user chose to perform the checks selectively for a set of areas/zones/BAs, the following dialog will pop-up. The
inputs (area/zone/BA numbers) to the following dialog are:
1. Area number of beginning of range of areas which are to be checked
2. Area number of end of range of areas which are to be checked
3. Zone number of beginning of range of zones which are to be checked
4. Zone number of ending of range of zones which are to be checked
5. BA number of beginning of range of BAs which are to be checked
6. BA number of ending of range of BAs which are to be checked
7. Individual areas that are to be checked in addition to those that belong to the range specified by inputs 1
and 2. Upto five area numbers can be entered, and they must be separated by commas. Do not put a
comma at the end.
8. Individual zones that are to be checked in addition to those that belong to the range specified by inputs 3
and 4. Upto five zones numbers can be entered, and they must be separated by commas. Do not put a
comma at the end.
9. Individual BAs that are to be checked in addition to those that belong to the range specified by inputs 5
and 6. Upto five BA numbers can be entered, and they must be separated by commas. Do not put a
comma at the end.
The program will then perform the checks on the devices that satisfy any of the above criteria. It is not necessary to
enter inputs in all input boxes, the user can enter it depending on their area/zone/BAs of interest. For example if only
areas between numbers 50 and 54 are to be checked inputs 3 through 9 would be empty. If areas between numbers 50
and 54 are to be checked; along with BA 21, inputs 3 through 8 would be empty.
The next pop-up windows asks for output file names and the interconnection to which the case belongs:
· The first three inputs are the file names of the output files generated by the program for the NERC checks.
· The user also needs to enter the name of the interconnection to which the case belongs, since some thresholds
are different for each interconnection. The user must enter one of the strings shown in the brackets and it must
match the spelling of one of the displayed strings exactly.
The WECC-SADD tool needs additional input files i.e. gen_exempt.aux, bus_exempt.aux which list the generators and
buses exempt from certain checks. If the WECC-SADD checks are chosen to be performed, the pop-up window will
be shown below where the first two inputs correspond to the files names of these additional input files. The last four
inputs are file-tags for the output files corresponding the SADD checks. For example, for the entries shown below, the
SADD output details files would be caseerrors_details.csv, Exceededlimits_details.csv, SADDPflow_details.csv, and
SADDDyn_details.csv. The SADD output summary files would be caseerrors_summary.csv,
Exceededlimits_summary.csv, SADDPflow_summary.csv, and SADDDyn_summary.csv.
Next, the user will be directed to choose the *.sav file as shown below.
***Please ensure that the power-flow case is a solved case.***
Finally, the user will choose the dynamic data (*.dyd) file as shown:
Once the execution is complete, the user will see a message on the interface that looks as follows:
Output files:
A sample of the summary output file containing the final metrics generated by the program is shown below. Column A
classifies the violation as power-flow/dynamic, and column B specifies the phase (I/II). The description of the check is
in column C. The numerical score corresponding to the given criterion is printed in column D. Columns F and G
contain the sum of Pgmax and Qgmax of all the units that violate the checks for the dynamic data checks. Column H
has the total number of violations in the given criterion and column I has the number of units applicable for the given
criterion. (column H column /I * 100 = column D)
The SADD output summary files, i.e. caseerrors_summary.csv, Exceededlimits_summary.csv,
SADDDyn_summary.csv, SADDPflow_summary.csv also have a very similar format to the above NERC summary
file.
A sample of the output file containing the details of the power-flow violations is shown below. Column A describes
the kind of violation (eg. Generator Qmin (MVAr) violation). Column B contains the bus number (external). For
transformers column B is the regulated bus number. Columns C, D, E contain the from, to and tertiary bus numbers
(external) for branches/transformers. Column F contains the CK/ ID of the unit. The next three columns contain the
area, zone and BA numbers, followed by the datamaintainer name and datamaintainer company names. Upto four
owners are printed in the next four columns. The threshold being violated is printed in column P and the actual
parameter value is in column Q. Any fields that are not applicable to a given unit are kept blank.
A sample of the file containing the details of the dynamic data violations is shown below. Column A describes the
kind of violation (eg. Gens without models). Column B contains the bus number (external) to which the device is
connected. Column C contains the CK/ ID of the unit. The next three columns contain the area, zone and BA numbers,
followed by the datamaintainer name and datamaintainer company names. Upto four owners are printed in the next
four columns. The threshold being violated is printed in column M and the actual parameter value is in column N. Any
fields that are not applicable to a given unit are kept blank.
The SADD output details files, i.e. caseerrors_details.csv, Exceededlimits_details.csv, SADDDyn_details.csv,
SADDPflow_details.csv also have a very similar format to the above details files.
Subject: Simulating RAS/SPS in PSLF Dynamic Simulation
Function:
Author: Brian Thomas
March, 2018
Date:
Overview
The RAS (Remedial Action Scheme, also known as Special Protection Scheme) module in PSLF has been designed to
eliminate the need for the user to maintain two separate RAS files for steady state and dynamics. PSLF uses the same
Remedial Action Schemes (RAS and known as SPS too) input for steady state (power flow) and for dynamics. The
RAS models can be saved in the WECC common RAS file format (*.wcrf).
This document describes the process of simulating RAS in dynamic simulation in PSLF. The process of simulating
RAS in steady state contingency processor (SSTOOLS) is described in the SSTOOLS manual.
RAS can be simulated in dynamic simulation either during a manual simulation (via user interface or from a script) or
it can be simulated via the dynamics contingency processor (DYTOOLS).
5. Initialize the simulation via <init> command
6. Run the dynamic simulation via <run> command and apply the fault or contingency and complete the
simulation by hitting <dsst> button
If any RAS criteria were found to be true during the simulation, the RAS actions would be automatically executed.
The user can also check the criteria block diagram to see which inputs were true. The true input conditions in the SCR
or CCR will be shown in red.
Simulating RAS in dynamics contingency processor (DYTOOLS)
2. Launch DYTOOLS (as shown below) and select the input *.cases file. DYTOOLS
3. Once DYTOOLS completes simulation of all the contingencies, the results can be viewed following the steps in
the next section
Any RAS action triggered during the simulation for any contingency would be written to the master *.event file. The
master event csv file has the name of the MASTERLOGFILE defined the *.cases file, but with
“_events_summary.csv” suffix.
The master event file will be in the output folder for DYTOOLS. This file contains information of all events (relay
actions, faults, contingency actions, RAS actions) for all the contingencies for all the cases which DYTOOLS
processed.
The following is an example of the master event file.
Sum (*.sum) file
Any RAS action for any contingency will also be written to the master summary file (*.sum file). The master summary
(*.sum file) contains detailed status summary of every contingency which DYTOOLS processed for every case.
The following is an example of the master summary file showing RAS actions for various contingencies.
Master Log Summary file
The total number of RAS actions triggered per contingency for each case can also be found from the master case log
summary file created by DYTOOLS. The RAS actions for each contingency can be found in the column
NUMBER_RAS_ACTIONS in the spreadsheet for each contingency. The Master log file is defined in the *.cases file
as shown below.
An example of the output spreadsheet summarizing the total number of RAS actions is shown below.
Model Name: _clod
Prerequisites:
Parameters:
EPCL Default
Variable Data Description
LMpct 0.0 % large motor
SMpct 0.0 % small motor
TXpct 0.0 % transformer exciting current
DLpct 0.0 % discharge lighting
CPpct 0.0 % constant power
Kp 1.0 Voltage exponent of remaining load P
Rbr 0.0 Branch R – p.u. on load MW base
Xbr 0.01 Branch X – p.u. on load MW base
Pmin 0.0 Minimum load P, MW
PFmin 0.0 Minimum load power factor
Vmin 0.0 Minimum bus voltage
Notes:
a) This model is a data management model. During the dynamic data input (rdyd), a
separate clod model is created at each load in the group that doesn’t have a specific
dynamic load model. A model will not be created if the load P < Pmin or the load
power factor < PFmin. See the clod manual page for notes and output channels.
b) This model is provided solely for compatibility with the PSS/E CLODAR,
CLODZN, and CLODOW models. It should not be used for loads at buses that have
large voltage changes because it does not include any representation of protective
tripping, e.g. contactors, low voltage protection, thermal protection of motors.
c) Input parameters through Xbr must be included. If Pmin, Pfmin, and Vmin are
omitted, values of zero will be used.
d) num is an arbitrary negative number that must only be different from other data
management models (model names starting with “_”) in the data file.
Copyright 2015 General Electric International. Inc. All Rights
Reserved. This material may not be copied or distributed in whole or
in part, without prior written permission of the copyright owner
e) The group type values and corresponding “group name” are as follows:
0 (or missing) – Climate Zone
1 – Area name
2 – Zone name
3 – Owner name
-1 – Area number
-2 – Zone number
-3 – Owner number
Schematic Diagram:
Low- side
bus
Small
Rbr + jXbr M Motor
Discharge Static
Lighting Load Load
Transformer
Discharge
Static
Constant P
Exciting
Lighting Load
Current
Parameters:
EPCL Default
Variable Data Description
LFm 1.0 Motor loading factor
CompPF 0.97 Power factor
Vstall 0.6 Stall voltage, p.u.
Rstall 0.124 Stall resistance, p.u.
Xstall 0.114 Stall reactance, p.u.
Tstall 0.033 Stall time delay, sec.
Frst 0.5 Fraction of load that can restart after stalling
Vrst 0.6 Voltage at which restart can occur, p.u.
Trst 0.4 Restart time delay, sec.
Fuvr 0. Fraction of load with undervoltage relay protection
Vtr1 0.0 First undervoltage trip level, p.u.
Ttr1 0.2 First undervoltage trip delay time, sec.
Vtr2 0.0 Second undervoltage trip level, p.u.
Ttr2 5.0 Second undervoltage trip delay time, sec.
Vc1off 0.5 Contactor voltage at which tripping starts, p.u.
Vc2off 0.4 Contactor voltage at which tripping is complete p.u.
Vc1on 0.6 Contactor voltage at which reconnection is complete, p.u.
Vc2on 0.5 Contactor voltage at which reconnection starts, p.u.
Tth 20. Thermal time constant, sec.
Th1t 0.7 Thermal protection trip start level, p.u. temperature
Th2t 1.3 Thermal protection trip completion level, p.u. temperature
Tv .05 Voltage measurement lag, sec.
a) This data management (DM) model is only for the purpose of providing parameter
values to be used by one or more cmp_1pac submodels of cmpldw2 models. The
<data ID number> may be any negative integer that is different from those of any
other DM models that are in the data set. This number is referenced by the lddatno
parameter of cmpldw2 to select the parameters of this model.
b) Data management models beginning with an “_” are not associated with any bus or
element in the load flow. However, in the model edit tables, the <data ID number>
will appear in the “from bus” column. (It also appears in the “section” column in the
edds table.)
c) The parameters of the data management models can be modified in the edmd table
and record editor and by the epcl setmodpar function. Modified values will apply to
all cmp_1pac submodels that use these parameters.
c) Initialization calculations:
Q’o = tan ( acos(CompPF) ) - 6 * (1. – 0.86) 2
V’stall is calculated to determine the voltage level at which there is an intersection
between the stall power characteristic and the transition characteristic used for V <
0.86:
for ( V = 0.4; V < Vstall; V += 0.01 )
{
pst = Gstall * V2
p_comp = Po + 12 * (0.86 – V) 3.2
if ( p_comp < pst )
{
V’stall = V
break
}
}
d) Both levels of undervoltage protection trip the same fraction of the motor load (not
cumulative) and no reconnection occurs.
e) The models for the contactor and thermal relays are shown in the block diagrams
below.
f) The “record level” of the submodel output is the same as that of the main cmpldw2
model. If more than one cmp_1pac submodel is included in the same cmpldw2
model, the output channels can be distinguished by their data ID numbers, which are
displayed in the “to bus” column of the PLOT/View table.
g) The output channels include load tripped MW values, which may be summed for
areas, zones, etc. using the LDTRPMON model. See manual page for LDTRMON
for definition of these outputs
Output Channels:
Record
Level Name Description
2 Pac cmp_1pac load power consumption, MW
2 xacn Nominal value of cmp_1pac load tripped, MW
2 xaci Instantaneous value of cmp_1pac load tripped (and shed), MW
3 Qac cmp_1pac load reactive power consumption, MVAr
4 fuv Fraction of cmp_1pac not tripped by UV relay
4 fcn Fraction of cmp_1pac not tripped by contactor
4 crA Current in non‐restarting part of load, p.u.
4 crB Current in restarting part of load, p.u.
4 Fm Fraction of cmp_1pac not tripped by load shedding relays
9 tmpA “Temperature” in non‐restarting part of load, p.u.
9 fthA Fraction of non‐restarting part of load not tripped by thermal prot.
9 tmpB “Temperature” in restarting part of load, p.u.
9 fthB Fraction of restarting part of load not tripped by thermal prot.
Block Diagram:
Model Name: _cmp_der_a (cmp_der_a model is also described below.)
Parameters:
EPCL Default
Variable Data Description
trv 0.025 Transducer time constant, sec.
dbd1 -0.02 Lower voltage deadband (See Note f), p.u.
dbd2 0.02 Upper voltage deadband (See Note f), p.u.
kqv 0.0 Proportional voltage control gain, p.u./p.u.
vref0 0.0 Voltage reference set-point, p.u. (See Notes d and e)
tp 0.05 Transducer time constants, sec.
pfflag 0.0 0 = constant Q control; 1 = constant power factor control
tiq 0.05 Q control time constants, sec.
ddn 0.02 Frequency control droop gain (down side) (See Note g)
dup 0.02 Frequency control droop gain (upper side) (See Note g)
fdbd1 -0.01 Lower frequency control deadband (See Note f), p.u.
fdbd2 0.01 Upper frequency control deadband (See Note f), p.u.
femax 0.0 Frequency control maximum error, p.u.
femin 0.0 Frequency control minimum error, p.u.
pmax 0.0 Maximum power, p.u.
pmin 0.0 Minimum power, p.u.
frqflg 0.0 0 = frequency control disabled; 1 = frequency control enabled (See
Note j)
dPmax 0.0 Power ramp rate up, p.u./sec
dPmin 0.0 Power ramp rate down, p.u./sec.
tpord 0.0 Power order time constant, sec.
imax 0.0 Maximum converter current, p.u. See Note c.
pqflag 0.0 0 = Q priority; 1 = P priority
vl0 0.0 Voltage break-point for low voltage cut-out of the inverter, p.u.
vl1 0.0 Voltage break-point for low voltage cut-out of the inverter, p.u.
vh0 0.0 Voltage break-point for high voltage cut-out of the inverter, p.u.
vh1 0.0 Voltage break-point for high voltage cut-out of the inverter, p.u.
tvl0 0.0 Low voltage cut-out of timer, sec.
tvl1 0.0 Low voltage cut-out of timer, sec.
tvh0 0.0 High voltage cut-out of timer, sec.
tvh1 0.0 High voltage cut-out of timer, sec.
vrfrac 0.0 Fraction of device that recovers after voltage returns within vl1 and vh1
fltrp 0.0 Low frequency threshold for cut-out of the inverter, Hz.
fhtrp 0.0 High frequency threshold for cut-out of the inverter, Hz.
tfl 0.0 Low frequency cut-out of timer, sec.
tfh 0.0 High frequency cut-out of timer, sec.
tg 0.0 Current control time constant, sec.
rrpwr 0.0 Power rise ramp rate following a fault, p.u./sec.
tv 0.0 Time constant for voltage and frequency cut-out, sec.
kpg 0.0 Proportional gain, real power controller, p.u./p.u.
kig 0.0 Integral gain, real power controller, p.u./p.u./sec
xe 0.5 Voltage source reactance, p.u.
typeflag 0.0 1 = unit is a generator (ipmin=0); 0 = the unit is a storage device
(ipmin = -ipmax). If typeflag is not equal to 1, the program sets
typeflag to 0.
vfth 0.8 Voltage threshold (See Note l)
iqh1 0.0 Upper limit on Iq injection, p.u.
iql1 0.0 Lower limit on Iq injection, p.u.
Notes:
a) This data management (DM) model is only for the purpose of providing parameter
values to be used by one or more cmp_der_a submodels of cmpldwg. The <data
ID number> may be any negative integer that is different from those of any other
DM models that are in the data set. This number is referenced by the DGdatno
parameter of cmpldwg to select the parameters of this model.
b) Data management models beginning with an “_” are not associated with any bus or
element in the load flow. However, in the model edit tables, the <data ID number>
will appear in the “from bus” column. (It also appears in the “section” column in the
edds table.)
c) The parameters of the data management models can be modified in the edmd table
and record editor and by the epcl setmodpar function. Modified values will apply to
all cmp_der_a submodels that use these parameters.
b) This model is identical to the stand-alone der_a model. See the der_a manual page
for a detailed description.
c) The MVA base of the submodel is specified by the DGmbase parameter of the
cmpldwg model
d) The “record level” of the submodel output is the same as that of the main cmpldwg
model.
Output Channels:
Record
Level Name Description
1 Pdg DG active power output, MW
1 Qdg DG reactive power output, MVAr
2 ipcm Active current command (ipcmd), p.u.
2 iqcm Reactive current command (iqcmd), p.u.
3 vmlt Fraction not tripped by low or high voltage protection (vmult)
3 fmlt Fraction not tripped by low or high frequency protection (fmult)
Block Diagram:
See der_a
Model Name: _cmp_dgpv (cmp_dgpv model is also described below.)
Parameters:
EPCL Default
Variable Data Description
Imax 1.0 Current limit, p.u.
Vt0 0.0 Voltage below which all DG is tripped, p.u.
Vt1 0.0 Voltage below which DG starts to be tripped, p.u.
Vt2 0.0 Voltage above which DG starts to be tripped, p.u.
Vt3 0.0 Voltage above which all DG is tripped, p.u.
Vrec 0.0 Fraction of DG that restarts when voltage recovers
Ft0 0.0 Frequency below which all DG is tripped, Hz.
Ft1 0.0 Frequency below which DG starts to be tripped, Hz.
Ft2 0.0 Frequency above which DG starts to be tripped, Hz.
Ft3 0.0 Frequency above which all DG is tripped, Hz.
Frec 0.0 Fraction of DG that restarts when frequency recovers
Notes:
a) This data management (DM) model is only for the purpose of providing parameter
values to be used by one or more cmp_dgpv submodels of cmpldw2. The <data ID
number> may be any negative integer that is different from those of any other DM
models that are in the data set. This number is referenced by the lddatno parameter
of cmpldw2 to select the parameters of this model.
b) Data management models beginning with an “_” are not associated with any bus or
element in the load flow. However, in the model edit tables, the <data ID number>
will appear in the “from bus” column. (It also appears in the “section” column in the
edds table.)
c) The parameters of the data management models can be modified in the edmd table
and record editor and by the epcl setmodpar function. Modified values will apply to
all cmp_dgpv submodels that use these parameters.
cmp_dgpv model description:
b) This model is a simplified version of the WECC PVD1 model. It is intended for
composite modeling of multiple PV and other inverter-based systems connected at
various locations in the distribution system. The tripping and reconnection logic for
high/low voltage and frequency is the same as described for low-voltage tripping of
the cmp_elec model.
c) The “record level” of the submodel output is the same as that of the main cmpldw2
model. If more than one cmp_dgpv submodel is included in the same cmpldw2
model, the output channels can be distinguished by their data ID numbers, which are
displayed in the “to bus” column of the PLOT/View table.
d) The output channels include tripped MW values (xdgn,xdgi), which may be summed
for areas, zones, etc. using the LDTRPMON model. See manual page for
LDTRMON for definition of these outputs
Output Channels:
Record
Level Name Description
1 Pdg DG active power output, MW
1 Qdg DG reactive power output, MVAr
2 xdgn Nominal DG tripped, MW
2 xdgi Instantaneous DG tripped, MW
4 Fvl Fraction of DG not tripped by low voltage
4 Fvh Fraction of DG not tripped by high voltage
4 Ffl Fraction of DG not tripped by low frequency
4 Ffh Fraction of DG not tripped by high frequency
Block Diagram:
N ipord’ ipord ip
CMP_DGPV pinit ÷ ×
D
Model
ialim Current
vterm
0.01 Limit Logic
Vrflag D iq
Iqord’ iqord
qinit ÷ ×
N
1.0 iaord = (ipord’2 + iqord’2)½
If( iaord > ialim )
Fvl ratio = ialim / iaord
0.0 ipord = ratio * ipord’
Vt0 Vt1
Vrflag
iqord = ratio * iqord’
X
1.0
Fvh
0.0
Vt2 Vt3
Frflag
1.0
fterm
Ffl
0.0
Ft0 Ft1
Frflag
1.0
Ffh
0.0
Ft2 Ft3
Model Name: _cmp_dist (cmp_dist model is also described below)
Parameters:
EPCL Default
Variable Data Description
Bss 0. Substation shunt capacitor susceptance, p.u.
Rfdr 0. Feeder equivalent resistance, p.u.
Xfdr 0. Feeder equivalent reactance, p.u.
Xxf 0.0 Substation transformer reactance, p.u.
Tfixhs 1. Transformer high side fixed tap, p.u.
Tfixls 1. Transformer low side fixed tap, p.u.
LTC 0 = 1 for automatic tap adjustment (low side variable tap)
Tmin 0.9 Minimum variable tap, p.u.
Tmax 1.1 Maximum variable tap, p.u.
step 0.00625 Variable tap step size, p.u.
Vmin 1.02 Minimum low-side voltage, p.u.
Vmax 1.04 Maximum low-side voltage, p.u.
Tdel 30. Time delay to initiate tap adjustment, sec.
Ttap 5. Time delay between tap steps, sec.
Rcmp 0.0 Transformer LTC compensating resistance, p.u.
Xcmp 0.0 Transformer LTC compensating reactance, p.u.
s1 0.0 Saturation factor (for possible future use)
s12 0.0 Saturation factor (for possible future use)
Note: Parameters after Ttap may be omitted if not used
a) This data management (DM) model is only for the purpose of providing parameter
values to be used by one or more cmp_dist submodels of cmpldw2 models. The
<data ID number> may be any negative integer that is different from those of any
other DM models that are in the data set. This number is referenced by the
distdatno parameter of cmpldw2 to select the parameters of this model.
b) Data management models beginning with an “_” are not associated with any bus or
element in the load flow. However, in the model edit tables, the <data ID number>
will appear in the “from bus” column. (It also appears in the “section” column in the
edds table.)
c) The parameters of the data management models can be modified in the edmd table
and record editor and by the epcl setmodpar function. Modified values will apply to
all cmp_dist submodels that use these parameters.
b) The substation shunt capacitor and feeder equivalent are modeled by normal PSLF
shunt and transmission line network models, respectively. The shunt (charging)
capacitance of the line is set to zero. If Bss = 0., the shunt is not added. If Xfdr <
junper threshold, the feeder equivalent is not added. In this case, the “low side-bus”
and “far-end” bus are the same bus. A shunt (Bfar) is also added at the far-end bus.
Its value will be set in the main cmpldw2 model to balance the initial VAr
consumption of the load components (minus Qdg) with the Q supplied at the far-end
of the feeder equivalent.
d) If LTC = 1, the transformer tap moves in discrete steps during the dynamic
simulation to control the regulated voltage. If the voltage is less than Vmin or
greater than Vmax for a time period greater than Tdel, the transformer tap moves in
steps until the voltage is within range. Ttap is the delay time between successive tap
step movements.
e) The calculations related to the tap adjustment are the only computations performed
in model during time simulation. The calculations to decide if a tap change is
needed and the timer logic are performed at the end of each network solution. If a
tap change is to be made it can be done in either of two ways:
1) (if dypar.cmpldw_tapchg = 1) The transformer tap is changed in the
transformer data, the network matrix is rebuilt and the time step is repeated.
2) (if dypar.cmpldw_tapchg = 0) The tap is not changed in the transformer data,
but current injections that produce the same effect as the tap change are
computed. These current injections must be recomputed on each network
iteration since they depend on the voltage values. If the network matrix is
rebuilt for other reasons, the transformer data is updated with the latest tap
value.
f) Initialization Calculations:
1. During initialization, the low-side bus and far-end bus, as needed, are added to
the system Y matrix and are given numbers equal to the original (high-side) bus
plus 800,000 and 900,000, respectively. If more than one load is connected to
the same high-side bus, the bus numbers for the second and subsequent loads
will have (n-1) * 1,000,000 added. After initialization, the new buses and added
transformer, feeder, and shunts can be viewed with SCAN. NOTE: A history
(sav) file should not be saved after initialization. The load flow program will
not recognize the new buses.
2. The MVA base for the elements (transformer, equivalent feeder, shunt
capacitors) in the load model depends on the value entered for
“mva=<mvabase>” of the main cmpldw2 model, as follows:
a) If <mvabase> > 0., the entered value is used as the MVA base.
b) If <mvabase> < 0., the entered value is used as a “loading factor”. The
MVA base is set equal to the load P divided by the loading factor.
c) If <mvabase> = 0. or if “mva=<mvabase>” is omitted, a loading factor
of 0.8 is assumed. That is, the MVA base is set equal to the load P / 0.8.
3. The distribution equivalent is initialized starting with the net load P and Q (load
P, Q, minus any Pdgen, Qdgen if stdg is 1).
4. If the transformer is included and Vmax > Vmin + 2*step, the (low-side)
variable tap will be adjusted to set the initial regulated voltage at approximately
the mid-point of Vmin -- Vmax unless Tmin or Tmax is exceeded. If the
resulting low-side voltage is less than 0.95, the tap will be changed to make the
voltage 0.95. In this case the feeder equivalent will be made into a jumper so
that the far-end voltage will not be any lower.
5. If the far-end voltage magnitude is determined to be less than 0.95, Rfdr and
Xfdr are reduced (in equal ratio) to make the voltage = 0.95. If Xfdr becomes
less than the jumper threshold, the feeder will be made into a jumper.
Output Channels:
Record
Level Name Description
3 tap transformer tap ratio, p.u.
Schematic Diagram:
System Bus
(230, 115, 69kV)
Distribution Equivalent
Transformer Load (far-end) Bus
Feeder Equiv.
Model Model
1:tap
jXxf Rfdr +jXfdr
Bss
Bfar
Low-side Bus
Model Name: _cmp_elec (cmp_elec model is also described below)
Parameters:
EPCL Default
Variable Data Description
PFel 0.0 Electronic load power factor
Vd1 0.0 Voltage below which electronic load decreases, p.u.
Vd2 0.0 Voltage below which electronic load is zero, p.u.
frcel 0.0 Fraction of electronic load that recovers from low voltage tripping
Notes:
a) This data management (DM) model is only for the purpose of providing parameter
values to be used by one or more cmp_elec submodels of cmpldw2 models. The
<data ID number> may be any negative integer that is different from those of any
other DM models that are in the data set. This number is referenced by the lddatno
parameter of cmpldw2 to select the parameters of this model.
b) Data management models beginning with an “_” are not associated with any bus or
element in the load flow. However, in the model edit tables, the <data ID number>
will appear in the “from bus” column. (It also appears in the “section” column in the
edds table.)
c) The parameters of the data management models can be modified in the edmd table
and record editor and by the epcl setmodpar function. Modified values will apply to
all cmp_elec submodels that use these parameters.
b) The electronic load model is constant P, Q with the power factor PFel. (During
initialization, if |Pfel| < 0.8, it is set = 0.8 and a warning message is written.) The P
and Q are decreased linearly to zero between voltages Vd1 and Vd2. If frcel is
greater than zero, that fraction of the load that was tripped will be reconnected
linearly as the voltage recovers. The logic for low-voltage tripping and reconnection
is as follows:
if( V < Vmin ) Vmin = V [Initially, Vmin = Vo]
if( Vmin < Vd2 ) Vmin = Vd2 [Vmin tracks the lowest voltage during
the simulation but not below Vd2]
if( V < Vd2 )
Fvl = 0.0 [All load is tripped for V below Vd2]
else if( V < Vd1 )
if( V <= Vmin ) [While decreasing between Vd1 and Vd2]
Fvl = (V – Vd2) / (Vd1 – Vd2)
else [While recovering above Vmin, partial reconnection]
Fvl = ( (Vmin – Vd2) + frcel * (V - Vmin) )
/ (Vd1 – Vd2)
endif
else
if( Vmin >= Vd1 ) [If V has not gone below Vd1]
Fvl = 1.0
else [V has been below Vd1 but has recovered]
Fvl = ( (Vmin – Vd2) + frcel * (Vd1 - Vmin) )
/ (Vd1 – Vd2)
endif
endif
Pel = Fvl * Pel0
Qel = Fvl * Qel0
c) The “record level” of the submodel output is the same as that of the main cmpldw2
model. If more than one cmp_elec submodel is included in the same cmpldw2
model, the output channels can be distinguished by their data ID numbers, which are
displayed in the “to bus” column of the PLOT/View table.
d) The output channels include load trip MW values, which may be summed for areas,
zones, etc. using the LDTRPMON model. See manual page for LDTRMON for
definition of these outputs
Output Channels:
Record
Level Name Description
2 Pel Electronic load power consumption, MW
2 xeln Nominal value of electronic load tripped, MW
2 xeli Instantaneous value of electronic load tripped (and shed), MW
3 Qel Electronic load reactive power consumption, MVAr
Model Name: _cmp_mot3 (cmp_mot3 is also described below.)
Parameters:
EPCL Default
Variable Data Description
LFm 0.8 Motor loading factor
Rs 0.02 Stator resistance, p.u.
Ls 2.0 Synchronous reactance, p.u.
Lp 0.2 Transient reactance, p.u.
Lpp 0.2 Subtransient reactance, p.u.
Tpo 0.16 Transient open circuit time constant, sec.
Tppo 0.02 Subtransient open circuit time constant, sec.
H 0.3 Inertia constant, sec.
Etrq 2.0 Mechanical torque exponent
Vtr1 0.0 First low voltage trip level, p.u. V
Ttr1 9999. First low voltage trip delay time, sec.
Ftr1 0.0 First low voltage trip fraction
Vrc1 9999. First low voltage reconnection level, p.u. V
Trc1 9999. First low voltage reconnection delay time, sec.
Vtr2 0.0 Second low voltage trip level, p.u. V
Ttr2 9999. Second low voltage trip delay time, sec.
Ftr2 0.0 Second low voltage trip fraction
Vrc2 9999. Second low voltage reconnection level, p.u. V
Trc2 9999. Second low voltage reconnection delay time, sec.
a) This data management (DM) model is only for the purpose of providing parameter
values to be used by one or more cmp_mot3 submodels of cmpldw2 models. The
<data ID number> may be any negative integer that is different from those of any
other DM models that are in the data set. This number is referenced by the lddatno
parameter of cmpldw2 to select the parameters of this model.
b) Data management models beginning with an “_” are not associated with any bus or
element in the load flow. However, in the model edit tables, the <data ID number>
will appear in the “from bus” column. (It also appears in the “section” column in the
edds table.)
c) The parameters of the data management models can be modified in the edmd table
and record editor and by the epcl setmodpar function. Modified values will apply to
all cmp_mot3 submodels that use these parameters.
a) The 3-phase motor model uses the same electrical equations as the motorw model in
PSLF. Its block diagram is shown below. The equations for the mechanical model
are:
Tm = Tmo * Etrq
d dt = (Te – Tm) / 2H
b) Two levels of undervoltage tripping are represented. The fractions tripped by each
level are cumulative.
c) The “record level” of the submodel output is the same as that of the main cmpldw2
model. If more than one cmp_mot3 submodel is included in the same cmpldw2
model, the output channels can be distinguished by their data ID numbers, which are
displayed in the “to bus” column of the PLOT/View table.
d) The output channels include load tripped MW values, which may be summed for
areas, zones, etc. using the LDTRPMON model. See manual page for LDTRMON
for definition of these outputs
Output Channels:
Record
Level Name Description
2 Pmot Motor P, MW
2 xmon Nominal motor load tripped, MW
2 xmoi Instantaneous motor load tripped (and shed), MW
3 Qmot Motor Q, MVAr
4 spd Motor speed, p.u.
4 Tm Motor mechanical torque, p.u.
4 Te Motor electrical torque, p.u.
4 fuv Fraction of motor not tripped by UV relay
4 fsh Fraction of motor not tripped by load shedding relays
Block Diagram:
1
E'q 1 E"q
1 1
Tpo s Tppo s
d-AXIS
o SLIP Tpo
o SLIP
Lp - Lpp
id
Ls - Lp
o SLIP
o SLIP Tpo
1
E'd 1 E"d
1 1
Tpo s Tppo s
q-AXIS
Lp - Lpp
iq
Ls - Lp
Model Name: _cmp_stat (cmp_stat model is also described below)
Parameters:
EPCL Default
Variable Data Description
PFs 0.9 Power factor of static load component
P1e 1.0 Static load – exponent of first P term
P1c 1.0 Static load – coefficient of first P term
P2e 2.0 Static load – exponent of second P term
P2c 0.0 Static load – coefficient of second P term
Pfrq 0.0 Frequency sensitivity factor for P
Q1e 1.0 Static load – exponent of first Q term
Q1c 0.0 Static load – coefficient of first Q term
Q2e 2.0 Static load – exponent of second Q term
Q2c 1.0 Static load – coefficient of second Q term
Qfrq 0.0 Frequency sensitivity factor for Q
Notes:
a) This data management (DM) model is only for the purpose of providing parameter
values to be used by one or more cmp_stat submodels of cmpldw2 models. The
<data ID number> may be any negative integer that is different from those of any
other DM models that are in the data set. This number is referenced by the lddatno
parameter of cmpldw2 to select the parameters of this model.
b) Data management models beginning with an “_” are not associated with any bus or
element in the load flow. However, in the model edit tables, the <data ID number>
will appear in the “from bus” column. (It also appears in the “section” column in the
edds table.)
c) The parameters of the data management models can be modified in the edmd table
and record editor and by the epcl setmodpar function. Modified values will apply to
all cmp_stat submodels that use these parameters.
b) The static load model in cmp_stat uses the following formulas during each iteration
of the network solution:
P = Po * (P1c * V P1e + P2c * V P2e + P3 ) * (1 + Pfrq * f )
Q = Qo * (Q1c * V Q1e + Q2c * V Q2e + Q3 ) * (1 + Qfrq * f )
P3 = 1. – P1c – P2c
Q3 = 1. – Q1c – Q2c
c) If the voltage is less than Vbrk (solpar.vlbrk -- default = 0.7) the following
formulas are used:
Pbrk = Po * (P1c * Vbrk P1e + P2c * Vbrk P2e + P3 )
P = Pbrk * (V/lbrk)2 * (1 + Pfrq * f )
Qbrk = Qo * (Q1c * Vbrk Q1e + Q2c * Vbrk Q2e + Q3 ) * (1 + Qfrq * f )
Q = Qbrk * (V/Vbrk)2 * (1 + Qfrq * f )
b) The “record level” of the submodel output is the same as that of the main cmpldw2
model. If more than one cmp_stat submodel is included in the same cmpldw2
model, the output channels can be distinguished by their data ID numbers, which are
displayed in the “to bus” column of the PLOT/View table.
Output Channels:
Record
Level Name Description
2 Pst Static load power consumption, MW
3 Qst Static load reactive power consumption, MVAr
Model Name: _cmpldw
Prerequisites:
Parameters:
EPCL Default
Variable Data Description
Pmin 0.0 Minimum load P, MW
PQmin 0.0 Minimum load P / Q ratio
Vmin 0.0 Minimum bus voltage, p.u.
kVthresh 0.0 Base kV threshold, below which xxf is set to 0.0
Bss 0.0 Substation shunt capacitor susceptance, p.u.
Rfdr 0.0 Feeder equivalent resistance, p.u.
Xfdr 0.0 Feeder equivalent reactance, p.u.
Fb 0.0 Fraction of feeder shunt capacitance at substation bus end
Xxf 0.0 Substation transformer reactance, p.u.
Tfixhs 1. Transformer high side fixed tap, p.u.
Tfixls 1. Transformer low side fixed tap, p.u.
LTC 0 = 1 for automatic tap adjustment (low side variable tap)
Tmin 0.9 Minimum variable tap, p.u.
Tmax 1.1 Maximum variable tap, p.u.
step 0.00625 Variable tap step size, p.u.
Vmin 1.02 Minimum low-side voltage, p.u.
Vmax 1.04 Maximum low-side voltage, p.u.
Tdel 30. Time delay to initiate tap adjustment, sec.
Ttap 5. Time delay between tap steps, sec.
Rcmp 0.0 Transformer LTC compensating resistance, p.u.
Xcmp 0.0 Transformer LTC compensating reactance, p.u.
FmA 0.0 Motor A fraction of load P
FmB 0.0 Motor B fraction of load P
FmC 0.0 Motor C fraction of load P
FmD 0.0 Motor D fraction of load P
Fel 0.0 Electronic load fraction of load P
PFel 0.0 Electronic load power factor
Vd1 0.0 Voltage below which electronic load decreases, p.u.
Vd2 0.0 Voltage below which electronic load is zero, p.u.
frcel 0.0 Fraction of electronic load that recovers from low voltage trip
Copyright 2015 General Electric International. Inc. All Rights
Reserved. This material may not be copied or distributed in whole or
in part, without prior written permission of the copyright owner
PFs 0.8 Power factor of static load component
P1e 1.0 Static load – exponent of first P term
P1c 1.0 Static load – coefficient of first P term
P2e 2.0 Static load – exponent of second P term
P2c 0.0 Static load – coefficient of second P term
Pfrq 0.0 Frequency sensitivity factor for P
Q1e 1.0 Static load – exponent of first Q term
Q1c 0.0 Static load – coefficient of first Q term
Q2e 2.0 Static load – exponent of second Q term
Q2c 1.0 Static load – coefficient of second Q term
Qfrq 0.0 Frequency sensitivity factor for Q
Mtypa 0.0 First motor type: = 3 -- three-phase motor
= 1 -- 1-phase air conditioner
Mtypb 0.0 Second motor type
Mtypc 0.0 Third motor type
Mtypd 0.0 Fourth Motor type
The following motor parameters must be included (see Notes b & c) for each motor with Fm > 0.:
For Type 3 motor, the following parameters must be input: (see below for Type 1)
LFmn 0.8 Motor loading factor
Rsn 0.02 Stator resistance, p.u.
Lsn 2.0 Ssynchronous reactance, p.u.
Lpn 0.2 Transient reactance, p.u.
Lppn 0.2 Subtransient reactance, p.u.
Tpon 0.16 Transient open circuit time constant, sec.
Tppon 0.02 Subtransient open circuit time constant, sec.
Hn 0.3 Inertia constant, sec.
Etrqn 2.0 Mechanical torque exponent
Vtr1n 0.0 First low voltage trip level, p.u. V
Ttr1n 9999. First low voltage trip delay time, sec.
Ftr1n 0.0 First low voltage trip fraction
Vrc1n 9999. First low voltage reconnection level, p.u. V
Trc1n 9999. First low voltage reconnection delay time, sec.
Vtr2n 0.0 Second low voltage trip level, p.u. V
Ttr2n 9999. Second low voltage trip delay time, sec.
Ftr2n 0.0 Second low voltage trip fraction
Vrc2n 9999. Second low voltage reconnection level, p.u. V
Trc2n 9999. Second low voltage reconnection delay time, sec.
For Type 1 A/C load, the following parameters must be input:
LFmn 1.0 Motor loading factor
CompPFn 0.97 Power factor
Vstalln 0.6 Stall voltage, p.u.
Rstalln 0.124 Stall resistance, p.u.
Xstalln 0.114 Stall reactance, p.u.
Tstalln 0.033 Stall time delay, sec.
Frstn 0.5 Fraction of load that can restart after stalling
Vrstn 0.6 Voltage at which restart can occur, p.u.
Trstn 0.4 Restart time delay, sec.
Fuvrn 0. Fraction of load with undervoltage relay protection
Copyright 2015 General Electric International. Inc. All Rights
Reserved. This material may not be copied or distributed in whole or
in part, without prior written permission of the copyright owner
Vtr1n 0.0 First undervoltage trip level, p.u.
Ttr1n 0.2 First undervoltage trip delay time, sec.
Vtr2n 0.0 Second undervoltage trip level, p.u.
Ttr2n 5.0 Second undervoltage trip delay time, sec.
Vc1offn 0.5 Contactor voltage at which tripping starts, p.u.
Vc2offn 0.4 Contactor voltage at which tripping is complete p.u.
Vc1onn 0.6 Contactor voltage at which reconnection is complete, p.u.
Vc2onn 0.5 Contactor voltage at which reconnection starts, p.u.
Tthn 20. Thermal time constant, sec.
Th1tn 0.7 Thermal protection trip start level, p.u. temperature
Th2tn 1.3 Thermal protection trip completion level, p.u. temperature
Tvn .05 Voltage measurement lag, sec.
For distributed generation, if present, the following parameters must be input:
DGtype 0.0 1 – PV; 0 - none
Pflgdg 2.0 Initial Pdg method:
0 – Pgdg is fraction of Pload
1 – Pgdg is MW
2 – Use Pdgen, and Qdgen from load table
Pgdg 0.0 DG fraction or MW
PFdg 1.0 DG power factor (for Pflgdg = 0 or 1)
Imax 1.0 Current limit, p.u.
Vt0 0.0 Voltage below which all DG is tripped, p.u.
Vt1 0.0 Voltage below which DG starts to be tripped, p.u.
Vt2 0.0 Voltage above which DG starts to be tripped, p.u.
Vt3 0.0 Voltage above which all DG is tripped, p.u.
Vrec 0.0 Fraction of DG that restarts when voltage recovers
Ft0 0.0 Frequency below which all DG is tripped, Hz.
Ft1 0.0 Frequency below which DG starts to be tripped, Hz.
Ft2 0.0 Frequency above which DG starts to be tripped, Hz.
Ft3 0.0 Frequency above which all DG is tripped, Hz.
Frec 0.0 Fraction of DG that restarts when frequency recovers
Notes:
a) This model is a data management model. During the dynamic data input (rdyd), a separate
cmpldw model is created at each load in the group that doesn’t have a specific load model. A
model will not be created if the load P < Pmin or the load’s |P / Q| < PQmin or bus V <
Vmin. (If any of these are set to a negative value, the global values, dypar.cmp_pmin,
dypar.cmp_pqmin, and dypar.cmp_vmin, are used.)
b) If the basekV of the load bus for which a new cmpldw model is to be created is below
kVthresh, the xxf of that particular cmpldw is set to 0.0.
c) See the cmpldw manual page for complete model notes and output channels.
d) Input parameters through Mtypd must be included. If, at any point after that, the remaining
parameters are omitted, the default values shown in the table will be used.
g) num is an arbitrary negative number that must only be different from other data management
models (model names starting with “_”) in the data file.
h) The group type values and corresponding “group name” are as follows:
0 (or missing) – Load Zone (Climate Zone)
1 – Area name
2 – Zone name
3 – Owner name
-1 – Area number
-2 – Zone number
-3 – Owner number
To use Load Zone, the power flow load data must include the Load Zone in the Load Zone
(clzone) field not just in the long id field.
Prerequisites:
Parameters:
EPCL
Variable Description
Pmin Minimum load P, MW
PQmin Minimum load P / Q ratio
Vmin Minimum bus voltage, p.u.
distlibno** Name of distribution equivalent submodel
distdatno ID number of DM model for dist. equiv. submodel
ldlibno1** Name of first load (or dg) submodel
lddatno1 ID number of DM model for first load (or dg) submodel
ldfrac1 Fraction of load P (or Pdg) for first submodel
ldlibno2** Name of second load (or dg) submodel
lddatno2 ID number of DM model for second load (or dg) submodel
ldfrac2 Fraction of load P (or Pdg) for second submodel
ldlibno3** Name of third load (or dg) submodel
lddatno3 ID number of DM model for third load (or dg) submodel
ldfrac3 Fraction of load P (or Pdg) for third submodel
ldlibno4** Name of fourth load (or dg) submodel
lddatno4 ID number of DM model for fourth load (or dg) submodel
ldfrac4 Fraction of load P (or Pdg) for fourth submodel
ldlibno5** Name of fifth load (or dg) submodel
lddatno5 ID number of DM model for fifth load (or dg) submodel
ldfrac5 Fraction of load P (or Pdg) for fifth submodel
ldlibno6** Name of sixth load (or dg) submodel
lddatno6 ID number of DM model for sixth load (or dg) submodel
ldfrac6 Fraction of load P (or Pdg) for sixth submodel
ldlibno7** Name of seventh load (or dg) submodel
lddatno7 ID number of DM model for seventh load (or dg) submodel
ldfrac7 Fraction of load P (or Pdg) for seventh submodel
ldlibno8** Name of eigth load (or dg) submodel
lddatno8 ID number of DM model for eigth load (or dg) submodel
ldfrac8 Fraction of load P (or Pdg) for eigth submodel
ldlibno9** Name of ninth load (or dg) submodel
Copyright 2015 General Electric International. Inc. All Rights
Reserved. This material may not be copied or distributed in whole or
in part, without prior written permission of the copyright owner
lddatno9 ID number of DM model for ninth load (or dg) submodel
ldfrac9 Fraction of load P (or Pdg) for ninth submodel
ldlibno10** Name of tenth load (or dg) submodel
lddatno10 ID number of DM model for tenth load (or dg) submodel
ldfrac10 Fraction of load P (or Pdg) for tenth submodel
** The submodel names must be entered without quotation marks. Submodel names are
entered, but their model library numbers are stored and must be used for reference in epcl
programs.
Notes:
a) This model is a data management model. During the dynamic data input (rdyd), a separate
cmpldw2 model is created at each load in the group that doesn’t have a specific load model.
A model will not be created if the load P < Pmin or the load P / Q ratio < PQmin or bus V
< Vmin. (If any of these are set to a negative value, the global values, dypar.cmp_pmin,
dypar.cmp_pqmin, and dypar.cmp_vmin, are used.)
b) See the cmpldw2 manual page for complete model notes and output channels.
c) The value input after mva = must be a negative value indicating the load factor to be
applied. The MVA base for the load will be the load P divided by the load factor.
d) num is an arbitrary negative number that must only be different from other data
management models (model names starting with “_”) in the data file.
e) The group type values and corresponding “group name” are as follows:
0 (or missing) – Load Zone (Climate Zone)
1 – Area name
2 – Zone name
3 – Owner name
-1 – Area number
-2 – Zone number
-3 – Owner number
To use Load Zone, the power flow load data must include the Load Zone in the Load Zone
(clzone) field not just in the long id field.
Load Bus
Fb Bfdr M Motor C
Bss
(1-Fb) Bfdr M Motor D
UVLS
UFLS Electronic
DG
Static
Inputs: Shaft speed, Tie flow, Real power output of the controlled
generators Scheduled speed and tie flow
Parameters:
EPCL Default
Variable Data Description
Notes:
b) The AGC2 model has to be used in pair with the UCLP2 model. One AGC2 model
has control over selected generators in an area. AGC2 and UCLP2, used in pair,
controls 1) Speed of an isolated system; 2) Sum of the tie flows of the controlled area
(that is , area interchange MW); 3) Generation allocations among the controlled units.
c) "areanum" in the AGC2 data list needs to be equal to the agc controlled area number.
There can be more than one AGC2 model, but each area can have only one AGC2
model.
d) The agc controlled units are selected by giving the units a zone number in gens table,
which is equal to "zonenum" in the AGC2 data list. Each of these units has to be
equiped with an UCLP2 model.
e) The AGC2 model has to be put at the bus of the first agc controlled unit in the gens
table. That is, the bus number of this unit is smaller than any other agc controlled
units in the controlled area.
f) The section numbers for tie lines (secdd's) associated with the agc controlled area
must start with 1.
g) Note the digital control feature of this model. The PI controller in the area control is
discrete and updates the output, Prqs, every second. In the unit control, signal
digitization function transfers the discrete signal, Perr, into pulsing signal. The
pulsing interval is 4 seconds. Simulated are pulses of two types of width, 0.4s and
0.1s. Both have height of 1 pu. The magnitude of Perr decides pulse of which width
to use. If Perr > 0.012 pu, then 0.4s pulse is fired. Otherwise, 0.1s pulse is fired. The
output of the pulsing signal integration is Pref. This signal drives a connected
governor. The smallest change in Pref depends on the width of the smallest pulse and
coefficient Kiu. For example, if Kiu is 0.025, then the smallest change in Pref is 0.1 *
0.025 = 0.0025. That is, the accuracy of this digital control is within 0.0025 pu in real
power. Therefore, the selection of Kiu is important. The recommended value of Kiu is
0.025, if Pref is the power reference of the governor, and 0.025 * droop, if Pref is the
speed reference of the governor.
Output Channels:
Record
Level Name Description
1 ace Area control error, sum of the speed error and tie flow error
1 prqs Total required real power for speed/tie flow control
1 pnet Total tie flow of an area in MW
1 ttgn Total generation of an AGC controlled area (agc2->totgen)
1 tgnf Filtered total generation of an AGC controlled area (agc2->totgenf)
Block Diagram:
Pulsing logic
Area Control Pulse (in every 4
Unit 1
Power (agc2) seconds)
Requirement Output from AGC
Signal Input to turbine governor
Control Digitization
control
Algebraic approx.
Prqu
in every second Vsmax Prqs Purf Perr Digital
Integration Turbine Governor
Kis Control
Kps +
s
Factor + +
+ 1/Kmw
+ Governor,
Kiu Generator
ace
Vsmin +
Pnet -
Palc Pref
in MW Pgen
Vumax Pgen
- Net
+ Gain +
+ Vumin
To 2nd Unit Vamax
..
Pnsched
in MW
bias
. Vamin
To last
Freqset unit Algebraic approx.
+
+ in every second Pgen
- +
Pgen of
Frequency in 1 totgen + 2nd unit
Hz
Kalloc
1 + tfS
+
..
.
Pgen of
Unit last unit
Control
(uclp2) Allocation logic
Unit 1
Model Name: alwscc
blwscc
wlwscc
zlwscc
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
If p4 or q4 is non-zero
Po and Qo are the total load at the bus at nominal voltage and frequency. p1 through
q4 are fractions of the total nominal load having constant impedance, constant
current, and constant power characteristics.
p1 + p2 + p3 + p4 = 1
q1 + q2 + q3 + q4 = 1
b) The blwscc model implements the load characteristic for the specified load identified
by bus number and id in the invocation.
The wlwscc model implements the load characteristics for all loads at all buses.
The alwscc model implements the load characteristic for all loads at all buses in a
designated area.
The zlwscc model implements the load characteristic for all loads at all buses in a
designated zone.
The invocation of alwscc and zlwscc should use the first bus that has load in the area
or zone being addressed but this bus identifier is used as a check only; the area or
zone must be identified by number in the first parameter.
c) The bus specified in the invocation of the load model, [<n>], must exist in the power
flow data.
In blwscc this parameter is the time constant of a filter to smooth the frequency
signal. This parameter should normally be zero because frequency is filtered in the
network solution and this filtering is normally adequate. A non-zero filter time
constant may be used in blwscc either to approximate a delayed load response, or to
accommodate a troublesome network solution.
In alwscc and zlwscc the first parameter must be the number of the area or zone,
respectively, to which the model is assigned.
e) Each execution of one of these models for a bus overrides the effects of prior
executions at the same bus. You can, therefore, use wlwscc to set a load
characteristic for the whole system, then alwscc or zlwscc to override the system-
wide characteristic for selected areas or zones, then blwscc to apply specific
characteristics to a few individual buses. These models must be called in the order:
wlwscc
alwscc and/or zlwscc
blwscc
f) The load characteristics implemented by alwscc, blwscc, wlwscc, zlwscc override the
load characteristic implied by the constant MVA, constant current, and constant
impedance entries in the load data table. The initialization of alwscc, blwscc, zlwscc
changes the entries in the load table to match the initial condition load given by p1
through q4 to the initial condition load given by the load flow.
Therefore, the load flow data should not be saved into the initial condition load flow's
.sav file after the init command has been executed. Instead, the initialized network
condition should be saved in a separate .sav file with the savf command.
g) These models have special behavior that must be recognized in the management of
dynamic simulation jobs. These models handle the voltage dependence part of the
load characteristic by modifying the load parameters in the load flow data base; that is
THESE MODELS MODIFY THE load[] DATA TABLE. This modification is made
in the INIT command. The load flow working case should be saved over the original
load flow history file that was used to initialize the dynamic simulation only with
great care. IF IN DOUBT - DO NOT USE SAVF AFTER USING INIT. When the
frequency dependence terms of the load model are unused (lpd, lpq = 0 or p4,q4 = 0)
it is not necessary to execute these load models in the dynamic simulation after
completion of the INIT command. INIT recognizes this and turns off all of these load
models that do not use their frequency dependence terms. (The model status flags are
set to 0 in the EDDS table.) This causes the WDYD command to list these models as
"out-of-service". Therefore if WDYD is executed after INIT it may be necessary to
edit the resulting ".dyd" file to take references to these models out of the "out-of-
service models" list that appears at the end of the ".dyd" file.
Output Channels:
Record
Level Name Description
none
Block Diagram:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) If bus exists in area, zone or all, then an output channel is assigned by ameta.
Output Channels:
Record
Level Name Description
Block Diagram:
Bus Voltage
Vin
Angle
Gain = 1
Model Name: ametr
Parameters:
EPCL Default
Variable Data Description
Notes:
b) If the bus does not exist an output channel is assigned by ametr but no signal is
recorded in it.
c) If refa is not included in the dyd file, the rotor angle of the reference generator is not
subtracted from the bus voltage angle.
Output Channels:
Record
Level Name Description
dypar.ref_angle
0.0
(refa ≠ 0 ) (refa = 0 )
1 180
volt[i].va abus
1 + sTf +
s0
Model Name: apfl
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
Tm = aw**2 + bw + c + dw**e
Pm = Tm * To / w**(DM-1)
where:
c = 1.0 - a - b - d
To = initial torque = wo**(DM-1) / Tm(wo)
wo = 1.0 - So
So = initial motor slip
DM = motor damping (D) factor
b) This model can be used with either the motor1 or motorw model. It must be after
the motor model in the dyd file.
Record
Level Name Description
Block Diagram:
Inputs: none
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Blindef is a Data Management Model for input of blinder definition data used by the
distrelay model. The computational portions of this model are included in the distrelay
model. Blindef is only used for data input and editing. The model parameters can be
edited from the edmd or edds tables.
b) The meaning of the input parameters are illustrated in the diagrams below. If type is set to
zero for any of the blinders, that blinder is not used
Diagrams:
Model Name: blwscc
alwscc
wlwscc
zlwscc
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
If p4 or q4 is non-zero
P = Po (p1v2 + p2v + p3 + p4 (1 + lpd f))
Q = Qo (q1v2 + q2v + q3 + q4 (1 + lqd f))
Po and Qo are the total load at the bus at nominal voltage and frequency. p1 through
q4 are fractions of the total nominal load having constant impedance, constant
current, and constant power characteristics.
p1 + p2 + p3 + p4 = 1
q1 + q2 + q3 + q4 = 1
b) The blwscc model implements the load characteristic for the specified load identified
by bus number and id in the invocation.
The wlwscc model implements the load characteristics for all loads at all buses.
The alwscc model implements the load characteristic for all loads at all buses in a
designated area.
The zlwscc model implements the load characteristic for all loads at all buses in a
designated zone.
The invocation of alwscc and zlwscc should use the first bus that has load in the area
or zone being addressed but this bus identifier is used as a check only; the area or
zone must be identified by number in the first parameter.
In blwscc this parameter is the time constant of a filter to smooth the frequency
signal. This parameter should normally be zero because frequency is filtered in the
network solution and this filtering is normally adequate. A non-zero filter time
constant may be used in blwscc either to approximate a delayed load response, or to
accommodate a troublesome network solution.
In alwscc and zlwscc the first parameter must be the number of the area or zone,
respectively, to which the model is assigned.
d) Each execution of one of these models for a bus overrides the effects of prior
executions at the same bus. You can, therefore, use wlwscc to set a load
characteristic for the whole system, then alwscc or zlwscc to override the system-
wide characteristic for selected areas or zones, then blwscc to apply specific
characteristics to a few individual buses. These models must be called in the order:
wlwscc
alwscc and/or zlwscc
blwscc
e) The load characteristics implemented by alwscc, blwscc, wlwscc, zlwscc override the
load characteristic implied by the constant MVA, constant current, and constant
impedance entries in the load data table. The initialization of alwscc, blwscc, zlwscc
changes the entries in the load table to match the initial condition load given by p1
through q4 to the initial condition load given by the load flow.
Therefore, the load flow data should not be saved into the initial condition load flow's
.sav file after the init command has been executed. Instead, the initialized network
condition should be saved in a separate .sav file with the savn command.
f) These models have special behavior that must be recognized in the management of
dynamic simulation jobs. These models handle the voltage dependence part of the
load characteristic by modifying the load parameters in the load flow data base; that is
THESE MODELS MODIFY THE load[] DATA TABLE. This modification is made
in the INIT command. The load flow working case should be saved over the original
load flow history file that was used to initialize the dynamic simulation only with
great care. IF IN DOUBT - DO NOT USE SAVF AFTER USING INIT. When the
frequency dependence terms of the load model are unused (lpd, lpq = 0 or p4,q4 = 0)
it is not necessary to execute these load models in the dynamic simulation after
completion of the INIT command. INIT recognizes this and turns off all of these load
models that do not use their frequency dependence terms. (The model status flags are
set to 0 in the EDDS table.) This causes the WDYD command to list these models as
"out-of-service". Therefore if WDYD is executed after INIT it may be necessary to
edit the resulting ".dyd" file to take references to these models out of the "out-of-
service models" list that appears at the end of the ".dyd" file.
Output Channels:
Record
Level Name Description
none
Block Diagram:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model can be used with any model of an excitation system whose input
signal for VOEL is fed into the summing junction of the excitation to calculate the
VERR signal of the AVR. This model is not intended for take over operation, i.e.
entry into a low value select gate. Check excitation system model block diagram
before using this model.
b) The sign for VOEL input in the excitation system model must be negative.
c) Models which have VOEL as an input signal are esdc4b with OELin = 2, and
esst6b with OELin = 1.
Output Channels:
Record
Level Name Description
VSIGNAL
0
_
IFDC KI
KP+ VOEL
+ s
S0
VSIGNAL
IFMAX
IFMED
IFCONT
Parameters:
General Description:
ccbt1 is a basic representation of a boiler and steam turbine. The boiler section of the
model is a simple representation of the dependence of drum pressure and throttle pressure
on steam flow to the turbine, fuel flow, and energy stored in the drum. The power
provided to the turbine is taken to be the product of throttle pressure and steam flow;
changes in enthalpy of the steam with temperature are not accounted for. The steam flow
is assumed to be proportional to control valve opening and the square root of steam
pressure.
The turbine model assumes that a fraction, ah, of the turbine power is developed
immediately in proportion to the product of steam flow and pressure with the balance, (1-
ah), developing with a time constant, trh. This corresponds to the development of power
in the high-pressure turbine being immediate and the power in the intermediate and low
pressure turbines following after a lag as the steam passes through the reheater. The heat
transfer process and mass balance of the reheater are not modeled explicitly; the single
time constant, trh, is used as an overall representation of these complex processes.
Similarly, the production of steam in the boiler walls is not modeled explicitly but the
overall dynamics of the processes is approximated by the single time constant, tw.
The boiler pressure and turbine load controls are modeled at the generic level. This
boiler/turbine control model does not represent the details of any particular boiler or
turbine, but does provide a general representation of the principle characteristics of most
modern boiler control schemes.
This model can represent older "boiler follow" control systems, "coordinated control"
arrangements as found in most newer plants, or "turbine follow" systems by appropriate
use of its various individual controllers.
The model incorporates eight controllers whose assignments are as follows (the first
seven are proportional-integral controllers and the last controller is a proportional-
derivative controller):
Controller Assignment
Pure "turbine follow" control can be implemented by setting the gains of controllers 2, 5,
6 and 7 to zero. In this the fuel flow is determined solely by the "boiler master"
controller, 3, and the turbine valves are used to control steam pressure without regard to
turbine power or speed. This control arrangement is rarely used except in once through
boilers.
The many variations of "coordinated control" can be implemented by using finite gains in
controllers 1 and 2 so that the control of steam pressure is handled by manipulating both
turbine valves and boiler load setting. Coordinated control normally requires controllers
5 and 6 to ensure that the boiler and turbine load references maintain proper relationship
to one another. Controller 7 anticipates a droop in pressure as it sees an increase in steam
flow and thus increases the demand on fuel flow.
The parameter, ref, is a reference setting whose significance changes with the choice of
controller gains and of the parameter flag as described below. ref is re-calculated when
the model is initialized; it should be set to a standard value of 1.0 in the original data
record for the model but will have a new value each time the data is saved or exported
with the wdyd command.
The user can use one of a set of three default parameter values by appropriately setting
the value of the parameter btype.
data = 0 means that the user must enter values for all the model parameters,
data = 1 parameters are set by the program as shown in the table below for a Boiler
Follow unit,
data = 2 parameters are set by the program as shown in the table below for a
Coordinated unit,
data = 3 parameters are set by the program as shown in the table below for a
Turbine Follow unit,
NOTE: For the default parameter settings given in the table below to take effect the user
must set the parameter “data” appropriately and then save the dynamics file. Reloading
the file using rdyd will get the default parameter settings. Until the parameter data is
changed to zero, rdyd will read in the default data indicated.
Notes:
a) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
b) The reference setting of the boiler control is specified by genbc[].pref. This signal is
interpreted as being either the governor speed reference or the boiler control power
(load) reference depending on the value of flag. If
In either case, the reference is per unitized to be 1.0 pu when the machine is at no
load, and equal to (1.0 + droop) pu when the machine is at full load.
c) The parameter ref is set by the initialization of the model to the value of the reference
signal that is not specified by genbc[].pref. If
Once the model has been initialized, the control reference that is assigned to ref can
be changed by changing the parameter ref. Furthermore, if values have been specified
for the parameters dref, t1 and t2 then the control reference ref is ramped from its
initial value to a final value of
That is, the plants load reference is increased linearly by 'dref' megawatts. The load
ramp starts at time t1 seconds and ends at time t2 seconds. The value of dref must be
specified in megawatts.
d) When PI controller number 6 is being used its max and min limits must equal vmax
and -vmax (since this controller is tracking the governor valve position, with its
initial input bias equal to initial governor valve position).
e) The parameters rmax* and rmin* are the rate limits on the reference inputs of the PI
controllers. That is, the sum of all reference signals at the input summing junction of
the PI controller is rate limited so that it cannot increase/decrease its output at a rate
greater than rmax*/rmin*.
f) The parameters gv1 and gvb1 define the characteristics of the governor valve as
shown below. For a linear valve characteristic set gv1 = 1.0 pu and gvb1 = 1.0 pu.
g) The governor droop should be set by either using valve feedback, rvalve, or
electrical power feedback, rpelec, as appropriate. Alternatively, the governor droop
can be set by kpgov and then setting kigov, rvalve and rpelec all to zero.
h) The parameters p0, h1, p1, h2 and p2 define the scheduling of the throttle pressure
reference, as a function of turbines mechanical power output. This is shown in a
diagram below. Note, h1 and h2 cannot be equal in value, and they can not be equal
to 1.0. If all these parameters are set to zero then a flat pressure reference of 1.0 pu is
assumed at all operating conditions.
Output Channels:
Record
Level Name Description
1 pm Turbine power, MW
1 gv Control valve opening, pu
2 Pd Drum pressure, p.u.
2 Pt Throttle pressure, p.u.
2 qf Fuel flow, p.u.
2 qt Steam Flow, p.u.
7 pc1 Controller 1 output, p.u.
7 pc2 Controller 2 output, p.u.
7 pc3 Controller 3 output, p.u.
7 pc4 Controller 4 output, p.u.
7 pc5 Controller 5 output, p.u.
7 pc6 Controller 6 output, p.u.
9 ci1 Controller 1 reference, p.u.
9 ci2 Controller 2 reference, p.u.
9 ci3 Controller 3 reference, p.u.
9 ci4 Controller 4 reference, p.u.
9 ci5 Controller 5 reference, p.u.
9 ci6 Controller 6 reference, p.u.
9 pc7 Controller 7 output, p.u.
9 ci7 Controller 7 reference, p.u.
9 cplm Low pressure limiter output, p.u.
Block Diagrams:
Figure 1
Figure 2
Model Name: ccomp
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model implements cross current compensation for the voltage regulators of a
pair of generators that are bussed together at their terminals. The model can
represent two different implementations of cross compensation as described in
notes b. and c. The bus and IDs of the two generators (a and b) are entered as
shown under Invocation above. (If the bus and ID for the second generator are
omitted, the second generator mustl be the one immediately following the first
generator in the dynamic models (edds) table – this is the same as earlier versions
of this model.)
In this mode, the parameters Rt and Xt of this model are not used and are
ignored. If the parameters after Xc are omitted in the dyd record, Rt, Xt, and Tf
will default to 0. and flag will default to 1.
e) The MVA bases (mbase) of the two generators must be equal. The compensating
resistance and reactance values must be stated in per unit on the MVA base of one
generator. The generators are not assumed to have equal parameters, except for
their MVA bases. The excitation system models need not be identical.
f) The time constant, Tf, can be used to approximate the delay and filtering of
voltage and current signals that may be present in digital implementations of the
compensation. The time constant is applied to both compensated voltages as
shown in the accompanying figure. Tf may be zero. If the value of Tf is omitted
from the data record the parameter is set to zero.
g) The cross compensation, using (Rc + jXc) is active only when both generators are
connected to the common bus. The joint (or individual) compensation, using Rt +
jXt (or Rcomp +j Xcomp), is always active.
Output Channels:
Record
Level Name Description
Block Diagram:
Ia
a
Id = Ia - Ib
It = Ia + Ib
b
Ib
Flag = 0
Vca
1
1+sTf Vcompa
Ia +
Ia
+ + +
Vt
Rc + j Xc Rt + j Xt
+ +
Ib + + Ib
1
1+sTf Vcompb
Vcb
Flag = 1
Ia
Rcompa + j Xcompa
Ia Vca 1
+ 1+sTf Vcompa
+ +
Vt
Rc + j Xc
+ + Vcb 1
Vcompb
Ib + 1+sTf
Ib
Rcompb + j Xcompb
Model Name: ccomp4
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The bus and IDs of the generators are entered as shown under Invocation above.
The bus and IDs of units 3 and 4 may be omitted if not needed. (Note that in the
edds table the bus numbers of units 3 and 4 are listed as MFROM and MTO and
their IDs as MID and MCK, respectively. MID (mon_id) was added for use in
this model and is not present in the input for any other models.)
b) Separate instances of the model must be included for each of the units that share
cross compensation. The MVA bases of the units may be different. The MVA
bases of the parameters K1 through K4 are that of Unit 1 in each instance.
Copyright 2015 General Electric International. Inc. All Rights
Reserved. This material may not be copied or distributed in whole or
in part, without prior written permission of the copyright owner
c) The input from each unit is the reactive component of current, i.e. Qgen (MW) /
(Vt (pu) * BaseMVA1).
d) The limits Vmax and Vmin are not applied if the input values are zero..
e) The time constant, Tf, can be used to approximate the delay and filtering of
voltage and current signals that may be present in digital implementations of the
compensation. If the value of Tf is omitted from the data record the parameter is
set to zero.
Output Channels:
Record
Level Name Description
Block Diagram:
Iq1
Vmax
K1
Iq2 K2 +
Kc
1 + sTf
Vcomp1
Iq3 K3 + + S0
+
K4
Vmin Vt1
Iq4
Parameters:
EPCL Default
Variable Data Description
General Description
This model represents the behavior of the heat-recovery steam boilers and the steam
turbine in a multi-shaft combined-cycle power plant. This model covers the case where
the steam turbine is normally operated with its admission valves fully open and steam
pressure varying as gas turbine power varies.
A pressure controller is represented in the model. This pressure controller will normally
have its reference set to a value significantly lower than full pressure so that it holds the
admission valve(s) fully open unless the gas turbine outputs fall to low values.
The gas turbines are connected to this model by the parameters gt1, gt2, and g3. These
parameters specify the external bus numbers of the two gas turbines. This model
assumes that all the gas turbines in the plant are identical.
The boiler model is a simplified equivalent of the complex structure and processes of the
boiler. There may be as many as three drums in each boiler and each may have its own
feedwater supply, evaporator and associated superheater sections. There may be
individual control valves regulating the separate drum pressures independently. This
complex system is modeled by a single time constant, Td, to represent the the storage of
energy in the boiler drums and a single loss coefficient, Kp, to represent the accumulated
pressure losses between the drums and the turbine inlet.
This equivalent modeling is able to reproduce the principal factors affecting the delivery
of energy to the steam turbine:
the drop in pressure available at the steam turbine with increasing steam flow through
the post-evaporator sections of the boilers
The steam turbine itself is modeled by the greatly simplified model of a single "lead/lag"
block. This model, while extremely simplified, is the standard practice for representing
the behavior of a reheat steam turbine in power transmission system studies. The
conventional understanding of this model is that its lag time constant characterizes the
delay in development of flow through the part of the turbine behind the rehaeater.
Notes:
a) The user must specify at least one of the first three parameters gt1, gt2, gt3. If the
second or third gas turbine is absent gt2 and/or gt3 must be zero. If unspecified, the
remaining parameters take default values.
c) The lead/lag block described by the time constants ta and tb represents the split
between the fraction of power developed almost instantaneously in the HP turbine,
versus the power developed in the turbine sections behind the reheater. The time
constant tb characterizes the reheater. The value (ta/tb) states the fraction of the total
turbine power developed ahead of the reheater.
d) If the mechanical power of a gas turbine falls to zero, it is assumed that it has tripped
and the steam flow out of the corresponding boiler is shut off. (This approximates the
action of check valves in the steam system.)
e) The parameter qdf specifies the additional heat provided in the exhaust duct of each
gas turbine. This heat is stated in per unit of the heat in the gas turbine exhaust stream
at rated conditions.
f) This model requires that the real power outputs of the gas turbines and steam turbine
are properly coordinated in the initial condition load flow. Improper coordination of
the gas turbine and steam turbine powers in the initial condition load flow will result
in non-steady initial behavior of the steam turbine in dynamic simulation.
Output Channels:
Record
Level Name Description
1 pm Turbine power, MW
1 tv Throttle control valve opening, p.u
9 Pt Throttle pressure, p.u
9 q1 Steam flow out of boiler one, MW
9 q2 Steam flow out of boiler two, MW
9 q3 Throttle steam flow, p.u.
9 vsrn Governor valve command signal, p.u.
9 vsrp Pressure controller valve command signal, p.u.
Block Diagram:
1 + sTa Pmech
1 + sTb s2
Reheat Steam Turbine
1 Pd1-Pt 1 1
sTd Kp 1 + sTh 1 + sTu
Qdf
+ + Pd1 q1
s5
qturb
Pt s4
S0
S1 q2 Vmax
1 + Kip
S8 q3 Kpp +
Minimum Select
s
Qnl
Pmgt1 s3
Pressure Vmin
0
0 1 Reference, Pset
Inlet Pressure
HRSG 1, 2, 3 Controller
R
Elec 1 + sTpelec
Power Vmax
Governor (Kpg/Klg) = Tg s7
Pressure Controller (Kpp/Klp) = Tp speed Kig
Kpg +
Kh = 0.5 Th = 1.0 s
Vmax = 1.0 Vmin = 0.0
Speed
Reference, Pref
+ Vmin s6
Model Name: cdc6
Parameters:
EPCL Default
Variable Data Description
Notes:
a) nf identifies the rectifier a.c. bus; nt identifies the inverter end a.c. bus.
c) One and only one converter may join each (a.c. bus)-(d.c. bus) pair. Each d.c. bus
may have only one converter and one d.c. line connected to it.
d) Each d.c. bus, line, and converter must be fully represented in the load flow working
case.
e) The converter operating modes in the load flow working case are applied in the
dynamic simulation and must be appropriate for the dynamic characteristics of the
d.c. converters.
Output Channels:
Record
Level Name Description
From AC From DC To DC To AC
alpha gamma
Model Name: chvdc2
Prerequisites: From, to a.c. and d.c. buses, and d.c. branch must exist in
load flow data tables
Parameters:
EPCL Default
Variable Data Description
Notes:
a) In this model, a PI loop controls the firing angle; control objectives are achieved by
dynamically controlling controller limits.
b) nf identifies the rectifier a.c. bus; nt identifies the inverter end a.c. bus.
d) One and only one converter may join each (a.c. bus)-(d.c. bus) pair.
Each d.c. bus may have only one converter and one d.c. line connected to it.
d) Each d.c. bus, line, and converter must be fully represented in the load flow working case.
f) The limits Alpha_mxr, Alpha_mnr, and Alpha_mni are set during the model initialization
to dcc[rec]alpha_max, dcc[rec]alpha_min, and dcc[inv]alpha_min, respectively.
Output Channels:
Record
Level Name Description
Idc 1 Idc_margin_r K ir
1+ sT r s Alpha_mxr
Alpha_mxr rmax
s0 + + s5 +
Alpha_mnr 1
Idc_ord r _
r
+ + s T alpr
+ _
+ Alpha_mnr rmin s7
Alpha_mnr
Iaux r K pr
Alpha_max_ram
0 0 flag sTram
1+sTram
Alpha_max_ram 1
s13
Alpha_mnr
Inverter controls:
Idc 1 Idc_margin_i K ii
1+ sT r s rmax
s2 + + s6 +
Alpha_mni 1
Iaux i
+ + + s T alpi
_ + _ i
Alpha_mni rmin s8
Alpha_mni
Idc_ord i K pi
maxc
K max
1+ sT max
s12
minc
cosmin_i
_
K ref n n
K cos _ -1 arccos()
1+ sT ref d
+
s11 d 0
cosref
0.05 H
1 1 V
V ac i
1+ sT r Tapi S
s14
DC VDCOL:
if dv/td ≥ 0
T = Tu
else VDCOL
T = Td
Imax2
1
Vdc_comp
1+ sT Imax1
S1(rec) V1 V2
S3 (inv)
Imax_lim
max_err Flag
0
V ac r I dc_ord
1 1
1+ sT r
sT
LVS
V ac i +_ vd 1
S4 (rec) S9 (rec)
S14 (inv) min_err S10 (inv)
Imin_lim
V ac_ref
I dc_ref
R L L R
Vr Vi
Ir Ii
Ir Ii
C
Model Name: clod
Parameters:
EPCL Default
Variable Data Description
LMpct 0.0 % large motor
SMpct 0.0 % small motor
TXpct 0.0 % transformer exciting current
DLpct 0.0 % discharge lighting
CPpct 0.0 % constant power
Kp 1.0 Voltage exponent of remaining load P
Rbr 0.0 Branch R – p.u. on load MW base
Xbr 0.01 Branch X – p.u. on load MW base
a) This model is provided solely for compatibility with the PSS/E CLODBL model. It
should not be used for loads at buses that have large voltage changes because it does
not include any representation of protective tripping, e.g. contactors, low voltage
protection, thermal protection of motors.
b) During initialization, the active power (MW) of the load is divided into the following
components:
The transformer exciting current model does not include any active power, so TXpct
is not used in the allocation of MW.
d) The PSLF model differs from the PSS/E model in that the motor components are
modeled with dynamic (differential) equations for the rotor flux dynamics rather
than static (algebraic) equations. The dynamic model is the same as the 3-phase
motor model in CMPLDW with parameters consistent with the PSS/E model. The
following parameters are used:
e) During initialization, the transformer low-side bus is added to the system Y matrix
and is given a number equal to the original (high-side) bus plus 900,000. If more
than one load is connected to the same high-side bus, the bus numbers for the second
and subsequent loads will have (n-1) * 1,000,000 added. After initialization, the
new buses and added transformer, can be viewed with SCAN. NOTE: A history
(sav) file should not be saved after initialization. The load flow program will
not recognize the new buses.
f) During initialization the transformer tap is adjusted to give a voltage of 0.98 p.u. at
the low-side bus. A transformer is always represented with its reactance set to the
input value of Xbr ( minimum of 0.01 p.u. of load MW).
j) The three-phase motor model uses the same electrical flux model as the motorw
model in the PSLF dynamic model library. The mechanical torque is computed
using the following formula:
Tm = Tmo * D
This differs slightly from the PSS/E model which uses a linear approximation to the
above as follow:
Tm = Tmo * D *
k) CLOD responds to the load[ ].shed signal from any of the load sheddding relay
models as follows:
1) Static, constant P, and discharge lighting load P and Q values are multiplied
by load[ ].shed.
2) Motor) MVA bases are multiplied by load[ ].shed to reduce the motor MW
without changing the internal variables.
3) The change in MW at the substation high side bus due to the load shedding
action is recorded in the variable load[ ].pshed for use by the lsmon model
in accumulating MW shed for the system and by area.
Output Channels:
Record
Level Name Description
1 Pld Total load active power at high side bus, MW
1 Qld Total load reactive power at high side bus, MVAr
Note: The MVA bases for the large motor and small motor torques are the initial P
values of each motors.
Schematic Diagram:
Low- side
bus
Small
Rbr + jXbr M Motor
Discharge Static
Lighting Load Load
Transformer
Discharge
Static
Constant P
Exciting
Lighting Load
Current
Parameters:
EPCL Default
Variable Data Description
* Psec and Qsec are P and Q components of the polynomial load connected at the tap-
change transformer secondary bus. Pfar, Qfar are P and Q components of the polynomial
load connected at far end in the composite load model. See figure at the end of this
manual page. The initial values of Psec and Qsec are specified by providing fractions in
pu of the total P and Q connected at this bus in load flow solution. The initial values of
the real power of the 1st and 2nd motor loads are specified in the same fashion. The initial
values of Pfar and Qfar are calculated based on the total P and Q connected at this bus in
load flow, Psec, Qsec, motor load and the internal circuit of the composite load.
Notes:
a) The composite load model is represented by a load in load flow solution. After
initialization, the status of the corresponding load representation in load flow
becomes "0", and the load is completely represented by the composite load model
during dynamics.
b) The composite load model contains two motors and two polynomial loads. The two
motors are connected at far end. One polynomial load (Pfar + jQfar) is connected at
far end. The other polynomial load (Psec + jQsec) is connected at tap-changing
transformer secondary bus. The configuration of this composite load model is shown
in the figure below.
c) The motor model in the composite load model is identical to the motor1 model in the
PSLF dynamic model library.
d) The default data for parameters associated with this model is available via the "DEF"
key in the "edds" table. The default data represents the 1st motor with relatively large
inertia, 0.6 sec, and the 2nd motor with relatively small inertia, 0.3 sec. Both motors
are represented as two-cage motors by default.
e) The initial input (Psec, Qsec) of the polynomial load connected at transformer
secondary bus CAN BE zero. This simulates a condition where all loads are
connected at far end in the model. If f_Psec is less than zero, a default value of 0.05 is
assigned to it. Same for f_Qsec.
f) Initial definition of motor loads CAN NOT be zero. If the initial real power load of
the motors is less than or equal to zero, the default values of 15% of the total initial
real power of the composite load are assigned to be the initial real power for each of
these two motors. This default assignment is done during initialization. The initial
value of the motor reactive power is calculated according to the motor real power
output and other given initial conditions. If the input of motor MVA base, mtrbase, is
zero, then it is assigned a value of (1.25 Pmtr) during initialization.
g) The initial value of the far end polynomial load (Pfar + jQfar) is calculated according
to the initial total real and reactive power of the composite load, initial polynomial
load connected at transformer secondary bus, initial real power of the two motor loads
and the internal circuit of the composite load.
h) The four loads (two motors and two polynomials) have independent under-voltage
trip threshold, as well as independent under-frequency trip threshold. Once a load is
tripped, it can not be reconnected automatically.
i) The transformer tap moves in discrete steps to control the transformer secondary
voltage. If the secondary voltage is less than "(vsec_init - dv_down)" or greater than
"(vsec_init + dv_up)", then the transformer tap moves in steps. "Tdelay" represents
delay time between tap step movement. "tapmax" and "tapmin" are the pu maximum
and minimum values of the tap position. The initial tap position is defined as "1"
during initialization.
j) "p_c" and "q_c" in the channel output represents the real and reactive components of
the total composite load. The initial values of these two variables are equal to the total
real and reactive load connected at the bus (with correct "id") in the load flow case.
The composition of the constant pq, constant current and constant impedance portions
in (Psec + jQsec) and (Pfar + jQfar) are defined by the composition factors "f_p_sec",
"f_pi_sec", "f_pz_sec", etc. The three component composition of the load in load edit
table is not used by the dynamic model.
j) The internal line impedance, r4, x4 and transformer impedance, rtap, xtap, should be
defined on the base, sbase_4_z. sbase_4_z must be defined to be non-zero. If the
input for this parameter is zero, then it is assigned to be 1.25 sqrt(p_c2 + q_c2)
during initialization. X4 and xtap must be non-zero as well. If either is zero, it will
take default value of 0.05.
Output Channels:
Record
Level Name Description
1 pc Composite load MW
1 qc Composite load MVar
2 vsec Load tap-change transformer secondary voltage in pu
2 tap Load tap-change transformer tap position, p.u.
2 v3 Far end bus voltage in pu
3 ic Composite load current injection in pu
9 vc Composite load bus voltage in pu
Block Diagram:
Vsec_measured Vsec_init
Parameters:
EPCL Default
Variable Data Description
(see Note b)
Bss 0.0 Substation shunt capacitor susceptance, p.u.
Rfdr 0.0 Feeder equivalent resistance, p.u.
Xfdr 0.0 Feeder equivalent reactance, p.u.
Fb 0.0 Fraction of feeder shunt capacitance at substation bus end
Xxf 0.0 Substation transformer reactance, p.u.
Tfixhs 1. Transformer high side fixed tap, p.u.
Tfixls 1. Transformer low side fixed tap, p.u.
LTC 0 = 1 for automatic tap adjustment (low side variable tap)
Tmin 0.9 Minimum variable tap, p.u.
Tmax 1.1 Maximum variable tap, p.u.
step 0.00625 Variable tap step size, p.u.
Vmin 1.02 Minimum low-side voltage, p.u.
Vmax 1.04 Maximum low-side voltage, p.u.
Tdel 30. Time delay to initiate tap adjustment, sec.
Ttap 5. Time delay between tap steps, sec.
Rcmp 0.0 Transformer LTC compensating resistance, p.u.
Xcmp 0.0 Transformer LTC compensating reactance, p.u.
FmA 0.0 Motor A fraction of load P
FmB 0.0 Motor B fraction of load P
FmC 0.0 Motor C fraction of load P
FmD 0.0 Motor D fraction of load P
Fel 0.0 Electronic load fraction of load P
PFel 0.0 Electronic load power factor
Vd1 0.0 Voltage below which electronic load decreases, p.u.
Vd2 0.0 Voltage below which electronic load is zero, p.u.
frcel 0.0 Fraction of electronic load that recovers from low voltage trip (see
note n)
PFs 0.8 Power factor of static load component
P1e 1.0 Static load – exponent of first P term
The following motor parameters must be included (see Note a) for each motor with Fm > 0.:
For Type 3 motor, the following parameters must be input: (see below for Type 1)
LFmn 0.8 Motor loading factor
Ran 0.02 Stator resistance, p.u.
Lsn 2.0 Ssynchronous reactance, p.u.
Lpn 0.2 Transient reactance, p.u.
Lppn 0.2 Subtransient reactance, p.u.
Tpon 0.16 Transient open circuit time constant, sec.
Tppon 0.02 Subtransient open circuit time constant, sec.
Hn 0.3 Inertia constant, sec.
Etrqn 2.0 Mechanical torque exponent
Vtr1n 0.0 First low voltage trip level, p.u. V
Ttr1n 9999. First low voltage trip delay time, sec.
Ftr1n 0.0 First low voltage trip fraction
Vrc1n 9999. First low voltage reconnection level, p.u. V
Trc1n 9999. First low voltage reconnection delay time, sec.
Vtr2n 0.0 Second low voltage trip level, p.u. V
Ttr2n 9999. Second low voltage trip delay time, sec.
Ftr2n 0.0 Second low voltage trip fraction
Vrc2n 9999. Second low voltage reconnection level, p.u. V
Trc2n 9999. Second low voltage reconnection delay time, sec.
For Type 1 A/C load, the following parameters must be input:
LFmn 1.0 Motor loading factor
CompPFn 0.97 Power factor
Vstalln 0.6 Stall voltage, p.u.
Rstalln 0.124 Stall resistance, p.u.
Xstalln 0.114 Stall reactance, p.u.
Tstalln 0.033 Stall time delay, sec.
Frstn 0.5 Fraction of load that can restart after stalling
Vrstn 0.6 Voltage at which restart can occur, p.u.
Trstn 0.4 Restart time delay, sec.
Fuvrn 0. Fraction of load with undervoltage relay protection
Vtr1n 0.0 First undervoltage trip level, p.u.
Copyright 2015 General Electric International. Inc. All Rights
Reserved. This material may not be copied or distributed in whole or
in part, without prior written permission of the copyright owner
Ttr1n 0.2 First undervoltage trip delay time, sec.
Vtr2n 0.0 Second undervoltage trip level, p.u.
Ttr2n 5.0 Second undervoltage trip delay time, sec.
Vc1offn 0.5 Contactor voltage at which tripping starts, p.u.
Vc2offn 0.4 Contactor voltage at which tripping is complete p.u.
Vc1onn 0.6 Contactor voltage at which reconnection is complete, p.u.
Vc2onn 0.5 Contactor voltage at which reconnection starts, p.u.
Tthn 20. Thermal time constant, sec.
Th1tn 0.7 Thermal protection trip start level, p.u. temperature
Th2tn 1.3 Thermal protection trip completion level, p.u. temperature
Tvn .05 Voltage measurement lag, sec.
Note: Input parameters through Mtypd must be included. If, at any point after that, the
remaining parameters are omitted, the default values shown in the table will be used.
NOTE: If a motor is to be omitted, but a motor after it is to be included, the motor
fraction, e.g. Fmc, must be set to a non-zero value <= 0.0001. If it is set to zero, data for
the later model(s) will not be read.
Notes:
a) The following global (dypar) parameters have been added in V21 of PSLF:
Default cmpldw model will not be
values used if:
dypar.cmp_pmin 0 MW Pload < dypar.cmp_pmin
dypar.cmp_pqmin 0.0 Pload / Qload <
dypar.cmp_pqmin
dypar.cmp_vmin 0.0 p.u. System bus V <
dypar.cmp_vmin
Warning messages are written if any of these conditions occur. The values of
these parameters can be changed by entering different values in the javaini.p file.
b) For all motor input parameters, the trailing “n” is to be replaced by “a”, “b”, “c”, or
“d” corresponding to the motor fractions Fma, Fmb, Fmc, Fmd. If Fmn = 0., the
data for that motor must be omitted. If it is desired to include motor data for a motor
with Fmn = 0., Fmn must be set to a small positive value (<= 0.0001) – the data will
be read, but the motor fraction will be set to zero.
c) To reference the motor parameters in the epcl functions getmodpar and setmodpar,
both names (if different), separated by a underscore, must be used. For example, for
the first motor, the following are the parameter names:
LFma
Raa_CompPFa
Lsa_Vstalla
Lpa_Rstalla
Lppa_Xstalla
Tpoa_Tstalla
Tppoa_Frsta
Copyright 2015 General Electric International. Inc. All Rights
Reserved. This material may not be copied or distributed in whole or
in part, without prior written permission of the copyright owner
Ha_Vrsta
Etrqa_Trsta
Ftr1a_Fuvra
Vtr1a
Ttr1a
Vtr2a
Ttr2a
Ftr2a_Vc1offa
Vrc1a_Vc2offa
Trc1a_Vc1ona
Vrc2a_Vc2ona
Trc2a_Ttha
Th1ta
Th2ta
Tva
For PSLF version 17.0_07 and later, capitalization is optional (getmodpar/setmodpar
are no longer case sensitive). For previous versions, the parameters must be entirely
lower case.
d) The composite load model is represented by a load in the load flow solution. After
initialization, all the load P and Q are included in the cmpldw model and are shown
in the Pmot, Qmot columns of the load table. The original load values are set to
zero.
e) During initialization, the low-side bus and far-end bus are added to the system Y
matrix and are given numbers equal to the original (high-side) bus plus 800,000 and
900,000, respectively. If more than one load is connected to the same high-side bus,
the bus numbers for the second and subsequent loads will have (n-1) * 1,000,000
added. After initialization, the new buses and added transformer, feeder, and shunts
can be viewed with SCAN. NOTE: A history (sav) file should not be saved after
initialization. The load flow program will not recognize the new buses.
f) The MVA base for the elements (transformer, equivalent feeder, shunt capacitors) in
the load model depends on the value entered for “mva=<mvabase>” as follows:
1) If <mvabase> > 0., the entered value is used as the MVA base.
2) If <mvabase> < 0., the entered value is used as a “loading factor”. The
MVA base is set equal to the load P divided by the loading factor.
3) If <mvabase> = 0. or if “mva=<mvabase>” is omitted, a loading factor of
0.8 is assumed. That is, the MVA base is set equal to the load P / 0.8.
Note: The input value of mvabase is shown in the edmd table as MbaseR and may
be modified there prior to initialization. The Mbase column in edmd shows the
acutal MVA base used for the load, e.g. if a “loading factor” was entered, Mbase is
the computed value of MVA base. This is set by the model during initialization.
h) The electronic load model is constant P, Q with the power factor Pfel. The P and Q
are decreased linearly to zero between voltages Vd1 and Vd2. If frcel is greater
than zero, that fraction of the load that was tripped will be reconnected linearly as
the voltage recovers.
1) The three-phase motor model uses the same electrical flux model as the motorw
model in the PSLF dynamic model library. The mechanical torque is computed
using the following formula:
Tm = Tmo * Etrq
2) The single-phase air conditioner model in the composite load model uses
essentially the same model as the ld1pac model in the PSLF dynamic model
library. Some of the parameters of that model are hard-wired to the following
values:
Tv = 0.02 voltage sensing time constant, sec.
Tf = 0.05 frequency sensing time constant, sec.
Kp1 = 0. real power coefficient for runing state 1, pu W/ pu V
Np1 = 1.0 real power exponent for runing state 1
Kq1 = 6.0 reactive power coefficient for runing state 1, pu VAr/ pu V
Nq1 = 2.0 reactive power exponent for runing state 1
Kp2 = 12.0 real power coefficient for runing state 2, pu W/ pu V
Np2 = 3.2 real power exponent for runing state 2
Kq2 = 11.0 reactive power coefficient for runing state 2, pu VAr/ pu V
Nq2 = 2.5 reactive power exponent for runing state 2
CmpKpf = 1.0 real power frequency sensitivity, pu W / pu freq.
CmpKqf = -3.3 reactive power frequency sensitivity, pu VAr / pu freq.
Trstrt = 0.4 restart delay time, sec.
Lfadj = 0. stall voltage sensitivity to loading factor
j) If the transformer reactance (Xxf) is less than the jumper threshold, the transformer
is omitted. If the transformer is included and Vmax > Vmin + 2*step, the (low-
side) variable tap will be adjusted to set the low-side voltage at approximately the
mid-point of Vmin -- Vmax unless Tmin or Tmax is exceeded. If LTC = 1, The
transformer tap moves in discrete steps during the dynamic simulation to control the
low-side voltage. If the voltage is less than Vmin or greater than Vmax for a time
period greater than Tdel, the transformer tap moves in steps until the voltage is
within range. Ttap is the delay time between successive tap step movements.
k) If Xfdr is less than the jumper threshold, the feeder equivalent is omitted.
m) After the load components are initialized to determine their reactive power
consumption, shunt capacitance is added to make the Q at the original load bus
equal the value from the load flow solution. If Fb = 0., all of this capacitance is
added at the far end of the feeder (Bf2). If this capacitance is negative (inductive),
the substation capacitor (Bss) is reduced to make Bf2 zero or slightly positive.
n) Cmpldw responds to the load[ ].shed signal from any of the load sheddding relay
models as follows:
1) Static and electronic load P and Q values are multiplied by load[ ].shed.
2) Motor (Type 1 and 3) MVA bases are multiplied by load[ ].shed to reduce
the motor MW without changing the internal variables.
3) Feeder R and X values are increased by 1. / load[ ].shed and feeder B values
decreased by load[ ].shed to simulate tripping of an equivalent fraction of the
feeders from the substation.
4) Transformer and substation shunt B values are not changed.
5) The change in MW at the substation high side bus due to the load shedding
action is recorded in the variable load[ ].pshed for use by the lsmon model
in accumlating MW shed for the system and by area.
o) The parameter frcel was added in Version 17.0_07. Earlier data sets must be
updated to include this parameter in the specified location.
p) The output channels have been modified in V19 to include load trip MW values,
which may be summed for areas, zones, etc. using the LDTRPMON model. See
manual page for LDTRMON for definition of these outputs.
Schematic Diagram:
Load Bus
Fb Bfdr M Motor C
Bss
(1-Fb) Bfdr M Motor D
UVLS
UFLS Electronic
Static
Parameters:
EPCL
Variable Description
distlibno** Name of distribution equivalent submodel
distdatno ID number of DM model for dist. equiv. submodel
ldlibno1** Name of first load (or dg) submodel
lddatno1 ID number of DM model for first load (or dg) submodel
ldfrac1 Fraction of load P (or Pdg) for first submodel
ldlibno2** Name of second load (or dg) submodel
lddatno2 ID number of DM model for second load (or dg) submodel
ldfrac2 Fraction of load P (or Pdg) for second submodel
ldlibno3** Name of third load (or dg) submodel
lddatno3 ID number of DM model for third load (or dg) submodel
ldfrac3 Fraction of load P (or Pdg) for third submodel
ldlibno4** Name of fourth load (or dg) submodel
lddatno4 ID number of DM model for fourth load (or dg) submodel
ldfrac4 Fraction of load P (or Pdg) for fourth submodel
ldlibno5** Name of fifth load (or dg) submodel
lddatno5 ID number of DM model for fifth load (or dg) submodel
ldfrac5 Fraction of load P (or Pdg) for fifth submodel
ldlibno6** Name of sixth load (or dg) submodel
lddatno6 ID number of DM model for sixth load (or dg) submodel
ldfrac6 Fraction of load P (or Pdg) for sixth submodel
ldlibno7** Name of seventh load (or dg) submodel
lddatno7 ID number of DM model for seventh load (or dg) submodel
ldfrac7 Fraction of load P (or Pdg) for seventh submodel
ldlibno8** Name of eigth load (or dg) submodel
lddatno8 ID number of DM model for eigth load (or dg) submodel
ldfrac8 Fraction of load P (or Pdg) for eigth submodel
ldlibno9** Name of ninth load (or dg) submodel
lddatno9 ID number of DM model for ninth load (or dg) submodel
ldfrac9 Fraction of load P (or Pdg) for ninth submodel
ldlibno10** Name of tenth load (or dg) submodel
lddatno10 ID number of DM model for tenth load (or dg) submodel
ldfrac10 Fraction of load P (or Pdg) for tenth submodel
** The submodel names must be entered without quotation marks. Submodel names
are entered, but their model library numbers are stored and must be used for reference in
epcl programs.
Notes:
a) The schematic of the cmpldw2 model is shown below. The structure differs from
the original cmpldw model in the following ways:
The load (and DG) components and the distribution equivalent are
represented by separate submodels that are instantiated by and executed by
the cmpldw2 model. New component submodels can be added in the future
without modification of the main model or other submodels.
The shunt reactive compensation required to match the VAr consumption of
the loads (minus Qdg) with the VArs supplied at the far end of the
distribution equivalent (Qfar) is placed at the far-end bus rather than being
split between the far-end and low-side buses.
b) The following global (dypar) parameters have been added in V21 of PSLF:
Default values cmpldw2 model will not be used if:
dypar.cmp_pmin 0 MW Pload < dypar.cmp_pmin
dypar.cmp_pqmin 0.0 Pload / Qload < dypar.cmp_pqmin
dypar.cmp_vmin 0.0 p.u. System bus V < dypar.cmp_vmin
Warning messages are written if any of these conditions occur. The values of
these parameters can be changed by entering different values in the javaini.p file.
c) When cmpldw2 is input from the dynamic data (dyd) file, the specified submodels
are created. The following submodels are currently available:
Name Libno Description
cmp_dist 331 distribution equivalent
cmp_stat 332 static load model
cmp_elec 333 electronic load model
cmp_mot3 334 3-phase motor model
cmp_1pac 335 1-phase air conditioner performance-based model
cmp_dgpv 336 photovoltaic distributed generation model
The manual pages for these models describe their modeling and input parameters,
which are the same as the models in the original cmpldw model. Other submodels
will be added in the future.
e) The input values for distdatno and lddatnon are negative integers that reference
data management (DM) model input data sets. Each submodel has a corresponding
DM model with the same name prefixed with an underscore (_). Multiple instances
of a submodel may use the same DM input data set. The DM models must precede
the cmpldw2 models in the dyd file.
f) Any number of load subcomponents up to 10, may be entered. Multiple instances of
the same subcomponent model may be entered, each referring to different data
management model data sets.
g) The load component fractions determine the division of the load P. If one of the
fractions is set to -1 and the other fractions add up to less than one, that component’s
fraction will be set to (1 – sum(other fractions)). If the fractions add up to more than
one or less than one, they will be scaled proportionately.
i) The “record level” (#r) entered for the cmpldw2 model will apply to all of the
component submodels. Each submodel outputs its own channels as listed on the
submodel manual pages.
j) The MVA base for the input data for elements (transformer, equivalent feeder, shunt
capacitors, motors, etc.) in the load model depends on the value entered for
“mva=<mvabase>” as follows:
If <mvabase> > 0., the entered value is used as the MVA base.
If <mvabase> < 0., the entered value is used as a “loading factor”. The
MVA base is set equal to the load P divided by the loading factor. If DG is
present, the gross load P is used to determine the mvabase.
If <mvabase> = 0. or if “mva=<mvabase>” is omitted, a loading factor of
0.8 is assumed. That is, the MVA base is set equal to the load P / 0.8.
k) If, during initialization, the far end voltage is computed to be less than 0.95 p.u.,
Rfdr and Xfdr are reduced to bring it above 0.95. If these values are reduced to less
than the “jumper threshold”, the feeder is removed.
l) After the load components are initialized to determine their reactive power
consumption, shunt capacitance is added to make the Q at the original load bus equal
the value from the load flow solution. All of this capacitance is added at the far end
of the feeder (Bfar). If this value is negative, Bfar will be inductive.
m) CMPLDW2 responds to the load[ ].shed signal from any of the load shedding relay
models as follows:
Static and electronic load P and Q values are multiplied by load[ ].shed.
Motor (Type 1 and 3) MVA bases are multiplied by load[ ].shed to reduce
the motor MW without changing the internal variables.
Feeder R and X values are increased by 1. / load[ ].shed and Bfar is
decreased by load[ ].shed to simulate tripping of an equivalent fraction of the
feeders from the substation.
Transformer and substation shunt Bss values are not changed.
The change in MW at the substation high side bus due to the load shedding
action is recorded in the variable load[ ].pshed for use by the lsmon model
in accumulating MW shed for the system and by area.
n) The output channels include load trip MW values, which may be summed for areas,
zones, etc. using the LDTRPMON model. See manual page for LDTRMON for
definition of these outputs.
Output Channels:
Record
Level Name Description
1 Pld Total load active power at high side bus, MW
1 Qld Total load reactive power at high side bus, MVAr
2 Vls Voltage magnitude at substation low‐side bus, p.u.
2 Vld Voltage magnitude at far end bus, p.u.
2 xshn Nominal value of load shed, MW
2 xton Nominal total load tripped, MW
2 xtoi Instantaneous total load tripped, MW
Schematic Diagram:
1
System Bus
Distribution Equivalent
(230, 115, 69kV)
Transformer Feeder Equiv.
Model Model
1:tap 2
jXxf Rfdr +jXfdr
Bss
Bfar
4
UVLS
Low-side Bus
5
UFLS
* DG(DER) included as one or more DG* ...
of the N load components
N
Model Name: cmpldwg
Parameters:
EPCL Default
Variable Data Description
(see Note b)
Bss 0.0 Substation shunt capacitor susceptance, p.u.
Rfdr 0.0 Feeder equivalent resistance, p.u.
Xfdr 0.0 Feeder equivalent reactance, p.u.
Fb 0.0 Fraction of feeder shunt capacitance at substation bus end
Xxf 0.0 Substation transformer reactance, p.u.
Tfixhs 1. Transformer high side fixed tap, p.u.
Tfixls 1. Transformer low side fixed tap, p.u.
LTC 0 = 1 for automatic tap adjustment (low side variable tap)
Tmin 0.9 Minimum variable tap, p.u.
Tmax 1.1 Maximum variable tap, p.u.
step 0.00625 Variable tap step size, p.u.
Vmin 1.02 Minimum low-side voltage, p.u.
Vmax 1.04 Maximum low-side voltage, p.u.
Tdel 30. Time delay to initiate tap adjustment, sec.
Ttap 5. Time delay between tap steps, sec.
Rcmp 0.0 Transformer LTC compensating resistance, p.u.
Xcmp 0.0 Transformer LTC compensating reactance, p.u.
FmA 0.0 Motor A fraction of load P
FmB 0.0 Motor B fraction of load P
FmC 0.0 Motor C fraction of load P
FmD 0.0 Motor D fraction of load P
Fel 0.0 Electronic load fraction of load P
PFel 0.0 Electronic load power factor
Vd1 0.0 Voltage below which electronic load decreases, p.u.
Vd2 0.0 Voltage below which electronic load is zero, p.u.
frcel 0.0 Fraction of electronic load that recovers from low voltage trip (see
note n)
PFs 0.8 Power factor of static load component
P1e 1.0 Static load – exponent of first P term
P1c 1.0 Static load – coefficient of first P term
P2e 2.0 Static load – exponent of second P term
P2c 0.0 Static load – coefficient of second P term
Pfrq 0.0 Frequency sensitivity factor for P
Q1e 1.0 Static load – exponent of first Q term
Q1c 0.0 Static load – coefficient of first Q term
Q2e 2.0 Static load – exponent of second Q term
Q2c 1.0 Static load – coefficient of second Q term
Qfrq 0.0 Frequency sensitivity factor for Q
Mtypa 0.0 First motor type: = 3 -- three-phase motor
= 1 -- 1-phase air conditioner
Mtypb 0.0 Second motor type
Mtypc 0.0 Third motor type
Mtypd 0.0 Fourth Motor type
The following motor parameters must be included (see Note a) for each motor with Fm > 0.:
For Type 3 motor, the following parameters must be input: (see below for Type 1)
LFmn 0.8 Motor loading factor
Ran 0.02 Stator resistance, p.u.
Lsn 2.0 Ssynchronous reactance, p.u.
Lpn 0.2 Transient reactance, p.u.
Lppn 0.2 Subtransient reactance, p.u.
Tpon 0.16 Transient open circuit time constant, sec.
Tppon 0.02 Subtransient open circuit time constant, sec.
Hn 0.3 Inertia constant, sec.
Etrqn 2.0 Mechanical torque exponent
Vtr1n 0.0 First low voltage trip level, p.u. V
Ttr1n 9999. First low voltage trip delay time, sec.
Ftr1n 0.0 First low voltage trip fraction
Vrc1n 9999. First low voltage reconnection level, p.u. V
Trc1n 9999. First low voltage reconnection delay time, sec.
Vtr2n 0.0 Second low voltage trip level, p.u. V
Ttr2n 9999. Second low voltage trip delay time, sec.
Ftr2n 0.0 Second low voltage trip fraction
Vrc2n 9999. Second low voltage reconnection level, p.u. V
Trc2n 9999. Second low voltage reconnection delay time, sec.
For Type 1 A/C load, the following parameters must be input:
LFmn 1.0 Motor loading factor
CompPFn 0.97 Power factor
Vstalln 0.6 Stall voltage, p.u.
Rstalln 0.124 Stall resistance, p.u.
Xstalln 0.114 Stall reactance, p.u.
Tstalln 0.033 Stall time delay, sec.
Frstn 0.5 Fraction of load that can restart after stalling
Vrstn 0.6 Voltage at which restart can occur, p.u.
Trstn 0.4 Restart time delay, sec.
Fuvrn 0. Fraction of load with undervoltage relay protection
Vtr1n 0.0 First undervoltage trip level, p.u.
Ttr1n 0.2 First undervoltage trip delay time, sec.
Vtr2n 0.0 Second undervoltage trip level, p.u.
Ttr2n 5.0 Second undervoltage trip delay time, sec.
Vc1offn 0.5 Contactor voltage at which tripping starts, p.u.
Vc2offn 0.4 Contactor voltage at which tripping is complete p.u.
Vc1onn 0.6 Contactor voltage at which reconnection is complete, p.u.
Vc2onn 0.5 Contactor voltage at which reconnection starts, p.u.
Tthn 20. Thermal time constant, sec.
Th1tn 0.7 Thermal protection trip start level, p.u. temperature
Th2tn 1.3 Thermal protection trip completion level, p.u. temperature
Tvn .05 Voltage measurement lag, sec.
For simplified photovoltaic DG model (DGPV), the following parameters must be input:
DGtype 1.0 1 – DGPV; 0 – none; 2 – der_a
Pflgdg 2.0 Initial Pdg method:
0 – Pgdg is fraction of Pload
1 – Pgdg is MW
2 – Use Pdgen, and Qdgen from load table
Pgdg 0.0 DG fraction or MW
PFdg 1.0 DG power factor (for Pflgdg = 0 or 1)
Imax 1.0 Current limit, p.u.
Vt0 0.5 Voltage below which all DG is tripped, p.u.
Vt1 0.8 Voltage below which DG starts to be tripped, p.u.
Vt2 1.1 Voltage above which DG starts to be tripped, p.u.
Vt3 1.2 Voltage above which all DG is tripped, p.u.
Vrec 0.0 Fraction of DG that restarts when voltage recovers
Ft0 59 Frequency below which all DG is tripped, Hz.
Ft1 59.5 Frequency below which DG starts to be tripped, Hz.
Ft2 60.5 Frequency above which DG starts to be tripped, Hz.
Ft3 61.0 Frequency above which all DG is tripped, Hz.
Frec 0.0 Fraction of DG that restarts when frequency recovers
Tvn .05 Voltage measurement lag, sec.
Note: Input parameters through Mtypd must be included. If, at any point after that, the
remaining parameters are omitted, the default values shown in the table will be used.
NOTE: If a motor is to be omitted, but a motor after it, and/or a DG model, is to be
included, the motor fraction, e.g. Fmc, must be set to a non-zero value <= 0.0001. If it is
set to zero, data for the later model(s) will not be read.
Notes:
a) The following global (dypar) parameters have been added in V21 of PSLF:
Default values cmpldwg model will not be used if:
dypar.cmp_pmin 0 MW Pload < dypar.cmp_pmin
dypar.cmp_pqmin 0.0 Pload / Qload < dypar.cmp_pqmin
dypar.cmp_vmin 0.0 p.u. System bus V < dypar.cmp_vmin
Warning messages are written if any of these conditions occur. The values of
these parameters can be changed by entering different values in the javaini.p file.
c) For all motor input parameters, the trailing “n” is to be replaced by “a”, “b”, “c”, or
“d” corresponding to the motor fractions Fma, Fmb, Fmc, Fmd. If Fmn = 0., the
data for that motor must be omitted. If it is desired to include motor data for a motor
with Fmn = 0., Fmn must be set to a small positive value (<= 0.0001) – the data will
be read, but the motor fraction will be set to zero.
d) To reference the motor parameters in the epcl functions getmodpar and setmodpar,
both names (if different), separated by a underscore, must be used. For example, for
the first motor, the following are the parameter names:
LFma
Raa_CompPFa
Lsa_Vstalla
Lpa_Rstalla
Lppa_Xstalla
Tpoa_Tstalla
Tppoa_Frsta
Ha_Vrsta
Etrqa_Trsta
Ftr1a_Fuvra
Vtr1a
Ttr1a
Vtr2a
Ttr2a
Ftr2a_Vc1offa
Vrc1a_Vc2offa
Trc1a_Vc1ona
Vrc2a_Vc2ona
Trc2a_Ttha
Th1ta
Th2ta
Tva
For PSLF version 17.0_07 and later, capitalization is optional (getmodpar/setmodpar
are no longer case sensitive). For previous versions, the parameters must be entirely
lower case.
e) The composite load model is represented by a load in the load flow solution. After
initialization, all of the load P and Q are included in the cmpldw model and are
shown in the Pmot, Qmot columns of the load table. The original load values are set
to zero.
f) During initialization, the low-side bus and far-end bus are added to the system Y
matrix and are given numbers equal to the original (high-side) bus plus 800,000 and
900,000, respectively. If more than one load is connected to the same high-side bus,
the bus numbers for the second and subsequent loads will have (n-1) * 1,000,000
added. After initialization, the new buses and added transformer, feeder, and shunts
can be viewed with SCAN. NOTE: A history (sav) file should not be saved after
initialization. The load flow program will not recognize the new buses.
g) The MVA base for the elements (transformer, equivalent feeder, shunt capacitors) in
the load model depends on the value entered for “mva=<mvabase>” as follows:
1) If <mvabase> > 0., the entered value is used as the MVA base.
2) If <mvabase> < 0., the entered value is used as a “loading factor”. The
MVA base is set equal to the load P divided by the loading factor.
3) If <mvabase> = 0. or if “mva=<mvabase>” is omitted, a loading factor of
0.8 is assumed. That is, the MVA base is set equal to the load P / 0.8.
Note: The input value of mvabase is shown in the edmd table as MbaseR and may
be modified there prior to initialization. The Mbase column in edmd shows the
acutal MVA base used for the load, e.g. if a “loading factor” was entered, Mbase is
the computed value of MVA base. This is set by the model during initialization.
i) The electronic load model is constant P, Q with the power factor Pfel. The P and Q
are decreased linearly to zero between voltages Vd1 and Vd2. If frcel is greater
than zero, that fraction of the load that was tripped will be reconnected linearly as
the voltage recovers.
1) The three-phase motor model uses the same electrical flux model as the motorw
model in the PSLF dynamic model library. The mechanical torque is computed
using the following formula:
Tm = Tmo * Etrq
2) The single-phase air conditioner model in the composite load model uses
essentially the same model as the ld1pac model in the PSLF dynamic model
library. Some of the parameters of that model are hard-wired to the following
values:
Tv = 0.02 voltage sensing time constant, sec.
Tf = 0.05 frequency sensing time constant, sec.
Kp1 = 0. real power coefficient for runing state 1, pu W/ pu V
Np1 = 1.0 real power exponent for running state 1
Kq1 = 6.0 reactive power coefficient for running state 1, pu VAr/puV
Nq1 = 2.0 reactive power exponent for running state 1
Kp2 = 12.0 real power coefficient for running state 2, pu W/ pu V
Np2 = 3.2 real power exponent for running state 2
Kq2 = 11.0 reactive power coefficient for running state 2, pu VAr/puV
Nq2 = 2.5 reactive power exponent for running state 2
CmpKpf = 1.0 real power frequency sensitivity, pu W / pu freq.
CmpKqf = -3.3 reactive power frequency sensitivity, pu VAr / pu freq.
Trstrt = 0.4 restart delay time, sec.
Lfadj = 0. stall voltage sensitivity to loading factor
k) If the transformer reactance (Xxf) is less than the jumper threshold, the transformer
is omitted. If the transformer is included and Vmax > Vmin + 2*step, the (low-
side) variable tap will be adjusted to set the low-side voltage at approximately the
mid-point of Vmin -- Vmax unless Tmin or Tmax is exceeded. If LTC = 1, The
transformer tap moves in discrete steps during the dynamic simulation to control the
low-side voltage. If the voltage is less than Vmin or greater than Vmax for a time
period greater than Tdel, the transformer tap moves in steps until the voltage is
within range. Ttap is the delay time between successive tap step movements.
l) If Xfdr is less than the jumper threshold, the feeder equivalent is omitted.
m) If, during initialization, the far end voltage is computed to be less than 0.95 p.u.,
Rfdr and Xfdr are reduced to bring it above 0.95.
n) After the load components are initialized to determine their reactive power
consumption, shunt capacitance is added to make the Q at the original load bus
equal the value from the load flow solution. If Fb = 0., all of this capacitance is
added at the far end of the feeder (Bf2). If this capacitance is negative (inductive),
the substation capacitor (Bss) is reduced to make Bf2 zero or slightly positive.
o) cmpldwg responds to the load[ ].shed signal from any of the load sheddding relay
models as follows:
1) Static and electronic load P and Q values are multiplied by load[ ].shed.
2) Motor (Type 1 and 3) MVA bases are multiplied by load[ ].shed to reduce
the motor MW without changing the internal variables.
3) Feeder R and X values are increased by 1. / load[ ].shed and feeder B values
decreased by load[ ].shed to simulate tripping of an equivalent fraction of the
feeders from the substation.
4) Transformer and substation shunt B values are not changed.
5) The change in MW at the substation high side bus due to the load shedding
action is recorded in the variable load[ ].pshed for use by the lsmon model
in accumulating MW shed for the system and by area.
p) The output channels have been modified in V19 to include load trip MW values,
which may be summed for areas, zones, etc. using the LDTRPMON model. See
manual page for LDTRMON for definition of these outputs.
q) The Type 2 DG model used the separate submodel cmp_der_a, which is the same as
the stand-alone der_a model. The parameter data for the cmp_der_a mdoel is taken
from the _cmp_der_a data management model specified by DGdatno.
r) For Type 1 DG model, if Pdgen and/or Qdgen are non-zero in load flow data and the
DG status (stdg) is 1, then Pflgdg must be input as 2 or a fatal error will occur
during data input. (Methods 0 and 1 for Pdg are incompatible with non-zero Pdgen.)
s) For Type 2 DG model, the Pdgen and Qdgen values from the load table are used. If
Pdgen is zero or stdg is zero, no cmp_der_a model will be included. If DGmbase is
negative, the actual MVA base calculated as Pdgen / abs(DGmbase)
Output Channels:
Record
Level Name Description
1 Pld Total load active power at high side bus, MW
1 Qld Total load reactive power at high side bus, MVAr
Note: Most motor channel names have “a”, “b”, “c”, or “d” added in place of “n” to
indicate which of the four motors they are associated with.
Load Bus
Bss
(1-Fb) Bfdr M Motor D
UVLS
N ipord’ ipord ip
CMP_DGPV pinit ÷ ×
D
Model
ialim Current
vterm
0.01 Limit Logic
Vrflag D iq
Iqord’ iqord
qinit ÷ ×
N
1.0 iaord = (ipord’2 + iqord’2)½
If( iaord > ialim )
Fvl ratio = ialim / iaord
0.0 ipord = ratio * ipord’
Vt0 Vt1
Vrflag
iqord = ratio * iqord’
X
1.0
Fvh
0.0
Vt2 Vt3
Frflag
1.0
fterm
Ffl
0.0
Ft0 Ft1
Frflag
1.0
Ffh
0.0
Ft2 Ft3
Model Name: colatr
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This is a special purpose relay model for the Colstrip plant. See separate detailed
documentation of the operating principles. The bus id supplied in invoking the model
is not used, but should be one of the Colstrip generator buses. The correct bus
numbers must be supplied in the input parameters: gbnum1, gbnum2, etc.
b) The transducer time constants, Tfp and Tfw, can be 0. The washout time constants,
Twp, Tww, and Twa must be > 0.
c) The trip signals output by the model have the following values:
Value Description
(First, second, third switching action means, for generators: generator trip, aux. load trip,
aux. load reconnect; for dc: dc trip, reactor #1 connection, reactor #2 connection.)
d) The switching logic acts as follows after receiving a trip signal: For each Colstrip
generator:
Generator (representing dc converter) at bus no. dcbnum is tripped after time delay, Tdmcdc
Shunt reactor (or SVD) at bus no. R1bnum is set to the B value of R1B after time delay, R1Td
Shunt reactor (or SVD) at bus no. R2bnum is set to the B value of R2B after time delay, R2Td
(R1B and R2B should be negative for a reactor.) (dcbnum, R1bnum, and/or R2bnum can be
input as 0 if the respective switching is not desired.)
Output Channels:
Record
Level Name Description
Block Diagram:
Power i (i = 1 to 4)
Trip Signal i (i = 1 to 4)
colatr
Speed i (i = 1 to 4)
Model Name: colatr2
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This is a special purpose relay model for the Colstrip plant. See separate detailed
documentation of the operating principles. The bus id supplied in invoking the model
is not used, but should be one of the Colstrip generator buses. The correct bus
numbers and unit IDs must be supplied in the input parameters.
b) The relay determines the minimum MW of generator tripping that is required to
maintain stability. In general, specific generators are selected for tripping that are
greater than but as close as possible to the desired MW. However, the “preference
switch selection” inputs are used to modify the selection.
c) Messages are written to the terminal window when various actions are taken by the
relay.
d) The switching logic acts as follows, after receiving a trip signal for each Colstrip
generator:
Colstrip generator #i is tripped after uidelay seconds
Colstrip gen. #i auxiliary load #j is reduced by 20% after auxdelay
seconds (by setting load[j].shed to 0.8)
Output Channels:
Record
Level Name Description
1 u1spd Unit 1 filtered speed (in ATR units)
1 u1ang Unit 1 filtered angle (in ATR units)
1 u1acl Unit 1 filtered acceleration (in ATR units)
1 u2spd Unit 2 filtered speed (in ATR units)
1 u2ang Unit 2 filtered angle (in ATR units)
1 u2acl Unit 2 filtered acceleration (in ATR units)
1 u3spd Unit 3 filtered speed (in ATR units)
1 u3ang Unit 3 filtered angle (in ATR units)
1 u3acl Unit 3 filtered acceleration (in ATR units)
1 u4spd Unit 4 filtered speed (in ATR units)
1 u4ang Unit 4 filtered angle (in ATR units)
1 u4acl Unit 4 filtered acceleration (in ATR units)
1 cmspd Center of mass speed (in ATR units)
1 cmang Center of mass angle (in ATR units)
1 cmacl Center of mass acceleration (in ATR units)
1 cmla6ang Center of mass look ahead angle (in ATR units)
1 peakspd Peak to date center of mass speed (in ATR units)
1 peakacl Peak to date center of mass acceleration (in ATR units)
1 enable Gross Enable flag (enabled (1) and disabled (0))
1 trippct Requested trip percent
Block Diagram:
Power i (i = 1 to 4)
Trip Signal i (i = 1 to 4)
colatr
Speed i (i = 1 to 4)
Model Name: crcmgv
Parameters:
EPCL Default
Variable Data Description
Notes:
e) Fhp and Flp may be used to represent the presence of dual reheat stages for a single
turbine. If there is only one reheat stage, between the HP and LP turbines, Fhp and
Flp should normally be unity and zero, respectively, and T5lp should be set to the
reheater time constant.
f) Dhp and Dlp give a rough approximation of the damping of intermachine speed
oscillations by electromagnetic effects. When the generators are represented by the
gentpf or genrou models with proper values for subtransient time constants this
damping is represented accurately in the generator electrical torques and Dhp, Dlp
should be set to zero.
g) Rhp and Rlp must be greater than zero. If any of the time constants are zero, they
are bypassed.
Output Channels:
Record
Level Name Description
Block Diagram:
Reference Pmax
Speed
+ Pmech HP
HP 1/ R 1 sFT5 +
Reference
Pmax
Speed + +
LP 1/ R 1 sFT5 + Pmech LP
- 1 sT1 - (1 sT3) (1 sT 4) (1 sT5) -
S4 S5 S6 S7
Pmin = 0
Note: additional output can come from variables v0-v9 in the epcl program which
implements dc controls..
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This is a two terminal d.c. transmission dynamic model. There must exist a
corresponding two-terminal dc system solution in load flow case.
b) For dynamic simulations of a two-terminal dc system, the two-terminal dc bridge is
simulated in the PSLF dc2t model. The dc controls are modeled in an epcl program in
the standard epcl directory.
c) An example case, 2tdc.sav and 2tdc.dyd, are included in the samples directory for
illustrating the usage of this model. In the .dyd file, data entries for the dc2t model are
similar to epcmod models. The variable names must be specified along with the
variable values, as shown in "2tdc.dyd" in the samples directory. The first entry after
#number is the epcl program file name, which implements dc controls. For example,
if the first entry in the .dyd file is "dc2_PI.p", then this specified epcl program in the
standard epcl directory is called during a dynamic simulation. Note that the
prerequisite is the specified epcl program exists in the standard epcl directory. If
PSLF can not find the file, it can not continue.
d) In the .dyd file, the entry after the epcl program file name is the table number, similar
to the table number in any epcmod models. This table number should NOT be in
conflict with table numbers used by any "epcmod" within the same case.
e) Rectifier and inverter commutation reactance entered in dcc table must be non-zero.
f) Inverter bypassing and dc blocking are modeled in dc2t C code model. The logics for
triggering the bypassing and blocking must be implemented in an epcl program. The
dc2t variables which trigger the bypassing and blocking are "invbyp" and "dcblk". If
"invbyp" is greater than zero, the dc inverter is bypassed. Otherwise, the inverter is
not bypassed. If "dcblk" is greater than zero, the dc system is blocked. Otherwise, the
dc system is not blocked. These two dc2t variables, "invbyp" and "dcblk", can be
accessed and/or modified from an epcl by the reference of "dc2t[].invbyp" and
"dc2t[].dcblk".
Output Channels:
Record
Level Name Description
Block Diagram:
idc Inverter
Rectifier
Model Name: dcbtb1
Parameters:
EPCL Default
Variable Data Description
Notes:
a) nf identifies the rectifier a.c. bus; nt identifies the inverter end a.c. bus. The
functional diagram of the dcbtb1 model is shown in Figure 1.
d) The parameters scmvar and scmavi are used to aid in convergence of the network
iterations. The values of these parameters may be approximate; better performance
typically results from values equal to or greater than the actual short circuit MVA at
the bus.
e) The values of the mode flags (modr and modi) indicate the following
0 Bypass
1 Current Control
2 Voltage Control
3 Minimum Gamma Control
4 Minimum Alpha Control
blck Description
0 Normal
1 Block
byps Description
0 Normal
1 Inverter Bypass
2 Rectifier Bypass
The priority of operating conditions is such that the block condition always takes
precedence, followed by the bypass condition, then followed by normal regulation.
g) Since the dcbtb1 model includes a d.c. line representation (usually a minimal d.c.
resistance value), this model could be used to represent d.c. transmission systems.
However, the details of such systems (e.g. VDCOL) are not included in the dcbtb1
model as it is intended for use in representing back-to-back dc systems.
h) The dcbtb1 model represents only the basic circuit calculations and mode-switching
for back-to-back d.c. systems. Through the epcm3 model, the dcbtb1 model can be
combined with user-written EPCL to represent the higher level controls (e.g.
automatic voltage regulator, reactive compensation control, transformer tap control).
All of the dcbtb1 parameters and variables can be accessed in this manner. Figure 2
shows the input/output relationships for this method of modeling.
Output Channels:
Record
Level Name Description
From ac From dc To dc To ac
alpha gamma
High-Level Controls
xcomm (EPCL via EPCM3)
rdc line
alpha min., alpha max
gamma min., gamma max idcor, vdco, tapr, tapi*
(alpha min., alpha max., idc, vdcr, vdci,
vac (vm), vdc, idc, edor, edoi,
gamma min., gamma max.,
alpha, gamma alpha, gamma,
scmvar, scmvai, imarg**
block, bypass moder, modei,
Taps for rec and inv.: pacr, qaci, vaci
tapf_dc, tap_dc
tapf_ac, tap_ac
Load Flow dcbtb1
vacr, vaci
AC current injections
Network Solution
Static Dynamic
* Initialized from power flow values
** Initialized from dynamic data file
Model Name: dcmt
Note: additional output can come from variables v0 - v9 in the epcl program which
implements dc controls.
Note: <epcl name> is the name of the epcl program implementing multi-terminal dc
controls. This epcl program must exist in the standard epcl directory. <table> is the
assigned table number for this epcl program. This must not be in conflict with the table
numbers used by any "epcmod" in the case. Parameter names and values can be
included if used by the epcl program. No parameters are needed by “dcmt”. The bus
identification can be for any of the converter ac buses of the dc system.
Parameters:
EPCL EPCL
Variable Variable Description
Notes:
f) Two variables have been added to the “dcc” table for each converter:
dcsys dc system number – at present this is only used
internally to identify elements of the same system
cosctlang cosine of control angle – used in dynamic model to
transfer the value of alpha or beta from the control
epcl program
b) In the .dyd file, data entries for the DCMT model are similar to
epcmod models. The first entry after the record level (#number) is
the epcl program file name, which implements the dc controls. For
example, if the first entry in the .dyd file is "dc3_PI.p", then this
specified epcl program in the standard epcl directory is called during
a dynamic simulation. If PSLF can not find the specified file, a
message is printed and execution is halted.
c) In the .dyd file, the entry after the epcl program file name is the table
number, similar to the table number in any epcmod model. This table
number must NOT be in conflict with table numbers used by any
"epcmod" within the same case.
e) The control epcl program calculates values for the cosines of the
control angles of the converters (alpha for rectifiers, beta for
inverters). These values must be stored in the variable
dcc[k].cosctlang, where “k” is the index of the dc converter. See
sample program “dc3_PI.p” for an example of determining “k” and
setting the cosine of the control angles.
Output Channels:
Record
Level Name Description
1 v0 Variable defined in epcl control program
1 v1 Variable defined in epcl control program
1 v2 Variable defined in epcl control program
1 v3 Variable defined in epcl control program
1 v4 Variable defined in epcl control program
1 v5 Variable defined in epcl control program
1 v6 Variable defined in epcl control program
1 v7 Variable defined in epcl control program
1 v8 Variable defined in epcl control program
1 v9 Variable defined in epcl control program
For each converter:
1 calp, cbet Cosine of control angle (alpha or beta)
1 alpa, gama Firing or extinction angle (alpha or gamma)
1 idcr, idci d.c. current
1 vdcr, vdci d.c. voltage
1 pacr, paci Real power
1 qacr, paci Reactive power
Block Diagram:
EPCL program
(dc controls)
cosα1 R1 +sL1
ac bus R5 +sL5 R6+sL6 R4 +sL4 cosβ1
R7 +sL7
cosα3 R3 +sL3
ac bus
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
b) If T5 is zero, then the transfer function (1+T4s) / (1+T5s) is treated as a unity gain.
Output Channels:
Record
Level Name Description
1 pm Turbine power, MW
Block Diagram:
Model Name: der_a
Parameters:
EPCL Default
Variable Data Description
trv 0.025 Transducer time constant, sec.
dbd1 -0.02 Lower voltage deadband (See Note f), p.u.
dbd2 0.02 Upper voltage deadband (See Note f), p.u.
kqv 0.0 Proportional voltage control gain, p.u./p.u.
vref0 0.0 Voltage reference set-point, p.u. (See Notes d and e)
tp 0.025 Transducer time constants, sec.
pfflag 0.0 0 = constant Q control; 1 = constant power factor control
tiq 0.05 Q control time constants, sec.
ddn 0.0 Frequency control gain (down side) (See Note g)
dup 0.0 Frequency control gain (upper side) (See Note g)
fdbd1 -0.01 Lower frequency control deadband (See Note f), p.u.
fdbd2 0.01 Upper frequency control deadband (See Note f), p.u.
femax 99.0 Frequency control maximum error, p.u.
femin -99.0 Frequency control minimum error, p.u.
pmax 1.1 Maximum power, p.u.
pmin 0.0 Minimum power, p.u.
frqflg 0.0 0 = frequency control disabled; 1 = frequency control enabled (See
Note j)
dPmax 1.00 Power ramp rate up, p.u./sec
dPmin -1.00 Power ramp rate down, p.u./sec.
tpord 0.05 Power order time constant, sec.
imax 1.2 Maximum converter current, p.u. See Note c.
pqflag 0.0 0 = Q priority; 1 = P priority
vl0 0.550 Voltage break-point for low voltage cut-out of the inverter, p.u.
vl1 0.80 Voltage break-point for low voltage cut-out of the inverter, p.u.
vh0 1.15 Voltage break-point for high voltage cut-out of the inverter, p.u.
vh1 1.05 Voltage break-point for high voltage cut-out of the inverter, p.u.
tvl0 98.0 Low voltage cut-out of timer, sec.
tvl1 99.0 Low voltage cut-out of timer, sec.
tvh0 98.0 High voltage cut-out of timer, sec.
tvh1 99.0 High voltage cut-out of timer, sec.
vrfrac 0.5 Fraction of device that recovers after voltage returns within vl1 and vh1
fltrp 59.9 Low frequency threshold for cut-out of the inverter, Hz.
fhtrp 60.1 High frequency threshold for cut-out of the inverter, Hz.
tfl 99.0 Low frequency cut-out of timer, sec.
tfh 99.0 High frequency cut-out of timer, sec.
tg 0.02 Current control time constant, sec.
rrpwr 5.0 Power rise ramp rate following a fault, p.u./sec.
tv 0.025 Time constant for voltage and frequency cut-out, sec.
kpg 0.10 Proportional gain, real power controller, p.u./p.u.
kig 0.05 Integral gain, real power controller, p.u./p.u./sec
xe 0.4 Voltage source reactance, p.u.
typeflag 1.0 1 = unit is a generator (ipmin=0); 0 = the unit is a storage device
(ipmin = -ipmax). If typeflag is not equal to 1, the program sets
typeflag to 0.
vfth 0.8 Voltage threshold (See Note l)
iqh1 0.0 Upper limit on Iq injection, p.u.
iql1 0.0 Lower limit on Iq injection, p.u.
Notes:
b) The model variables are in per unit on its own base. It is recommended that the MVA base
be specified in the dyd file by the entry mva=value after the record level. The following is
an example:
der_a 5 "DER TERM" 0.600 "1 " : #9 mva=5.0 "trv" 0.05 etc.
For Q priority (pqflag = 0): iqmax = imax; iqmin = -imax; ipmax = sqrt( imax2 - iqcmd2 )
if typeflag = 1 then ipmin = 0, else ipmin = -ipmax.
For P priority (pqflag = 1): ipmax = imax; iqmax = sqrt( imax2 - ipcmd2 ), iqmin = -iqmax
if typeflag = 1 then ipmin = 0, else ipmin = -ipmax.
d) If the difference (vref0 – terminal voltage) falls outside the deadband (dbd1,dbd2) then
vref0 is set to the terminal voltage and an error message is issued during the model
initialization. If dbd1 and dbd2 are zero then vref0 is set to the terminal voltage and a
warning message is issued during the model initialization.
e) If vtref0 is zero, the model sets it to the terminal voltage.
f) For consistency in the sign conventions, the model resets the input parameters as follows:
dbd1 = -| dbd1 |, dbd2 = +|dbd2|, fdbd1 = -| fdbd1 |, fdbd2 = +|fdbd2|.
g) The model resets the input parameters ddn and dup as follows: ddn = |ddn|, dup = |dup|.
The output of block Ddn equals its input times ddn; the output of block Dup equals its
input times dup.
h) The block labeled Vfrac in the block diagram is for emulating partial tripping of the
aggregate DG model. Its output is vmult ( 0 ≤ vmult ≤ 1 ).
i) If the frequency is less than fltrp Hz for more than tfl seconds, then fmult is zero and the
model is tripped. If the frequency is greater than fhtrp Hz for more than tfh seconds, then
fmult is zero and the model is tripped. Otherwise, fmult is equal to one.
k) Qref and Pref can be accessed via genbc[].qref and genbc[].pref, respectively. Freq_ref is a
model variable and can be accessed via the epcl commands setmodpar and getmodpar.
l) If Vt ≤ vfth then the frequency used by this model is set to 1.0 p.u. This is done to avoid
computations when the measured frequency, which is essentially a derivative, may be
numerically compromised due to low voltage conditions.
m) Iterations associated with low voltage during faulted network conditions may be mitigated
by reducing the convergence tolerance and acceleration factor for the network solution,
e.g., dypar[0].tolfy = 0.01, dypar[0].accfy = 0.5.
Output Channels:
Record
Level Name Description
Block Diagram:
iql1
iqh1
ܧௗ ൌ ܸݐௗ െ ܺ ݅
ܧ ൌ ܸݐ ܺ ݅ௗ
vmult
Vfrac
1
Vt_flt 1 vmult
0
vl0 vl1 vh1 vh0
The output of the block Vfrac shown above, vmult, tracks the black line defined by the points
(vl0,0), (vl1,1),(vh1,1), and (vh0,0) unless the following conditions occur: if the voltage stays
below vl1 for a duration greater than tvl1, vmult will follow the path of the red line when the
voltage recovers. Similar logic is applied to the overvoltages involving vh1 and the time tvh1,
i.e., if the voltage stays above vl1 for a duration greater than tvh1, vmult will follow the path of
the red line when the voltage recovers. If the voltage Vt_flt stays below vl0 for more than tvl0
seconds or if it stays above vh0 for more than tvh0 seconds, then vmult will remain at zero.
Vmin is the lowest voltage (greater than vl0) during a simulation after timer tvl1 expires.
An example of the operation of the Vfrac block is shown below. In this case, Vt_flt and vmult
are the red and blue traces, respectively. vl0 = 0.4, vl1 = 0.8, vh1 = 1.1, vh0 = 1.3, tvl1 = 0.5
sec, tvh1 = 0.5 sec. At time 2 seconds, when Vt_flt is less than vl0 (0.8), vmult begins to
decrease and timer tvl1 begins to time. At time 2.5 seconds the timer tvl expires, at this point
in time vmult is 0.77. When the voltage recovers vmult is held at this value (between 5.85 and
7.23 seconds). When Vt_flt exceeds vh1, vmult begins to decrease and timer th1 begins to
time. At time 7.73 seconds timer thl expires, at this point in time vmult is 0.36. Had the
voltage recovered, vmult would have been held at this value. In this example Vt_flt does not
recover and remains high reaching a value of 1.26 which produces vmult equal to 0.14.
Model Name: diffrlyg
Description General Line/Transformer Differential Relay
Prerequisites: None
Inputs: None
Invocation: diffrlyg :
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Diffrlyg (and diffrlys) can be used to set the fault clearing time for a bus or line fault
applied in the usual manner. These relays will only be used if dypar[0].diffrly is set to
1 in javaini.p.
b) When a fault is applied, the differential relay models are queried to determine which, if
any apply to the fault location. Specific relays (diffrlys) take priority, then the general
(diffrlyg) relays. If more than one general relay applies to a fault location, it is indefinite
which one will be used. It is best to avoid this situation.
c) Diffrlyg will set the clearing time if the fault location is within the specified area, zone,
or owner and at the specified voltage level(s), as follows:
- line faults – base kV of terminal buses must equal kV1 ±10%
- bus faults on internal bus of 3-winding transformer – base kV of transformer
terminal buses must equal kV1 ±10%, kV2 ±10%, and kV3 ±10%,
respectively.
Diffrlyg does not apply to any other bus faults, and faults on transformer branches are
not currently an option in PSLF.
d) The fault clearing time will be the fault application time plus Tcb + Tcc. These two
parameters have no individual significance within the model. The distinction is only for
documentation purposes.
e) At the time of fault application, a message is written to the terminal, dynamic log file,
and event file in the following form:
At t = 0.1000 Fault clearing time set to 0.2000 by DIFFRLYG for
owner number 74 b n’;
f) At the fault clearing time, messages are written indicating what network elements, if
any, are tripped by the relay, in addition to the normal fault clearing action.
diffrlyg : 1 22 500. 0. 0. 1. 2. 2.
4 cycle clearing delay for 500kV lines in area 22
Inputs: None
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Diffrlys can be used to set the fault clearing time for a bus or line fault applied in the
usual manner. These relays will only be used if dypar[0].diffrly is set to 1 in
Javaini.p.
b) When a fault is applied, the differential relay models are queried to determine which, if
any apply to the fault location. Specific relays (diffrlys) take priority, then the general
(diffrlyg) relays. .
c) Diffrlys will set the clearing time if the fault location is within the zone of protection
specified by the values in the invocation of the model, as follows:
[<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>} <ck> <sec>
These specify the branch to which the relay applies. If there is nothing else in
invocation, then the zone of protection is limited to this line (or 2-winding tranformer).
[<ni>] {<namei> <kvi>} (no nj bus)
Bus ni is the far end of a multi-segment line. Zone of protection includes all
intermediate buses and line segments. Connections to intermediate buses must be radial.
! ! ! ! [<nj>] {<namej> <kvj>} (no ni bus)
Bus nj is the tertiary bus of a 3-winding transformer. The zone of protection is the
internal bus of the transformer.
[<ni>] {<namei> <kvi>} ! [<nj>] {<namej> <kvj>})
Bus ni is the far end of a 3-terminal line. Bus nj is the third terminal. Zone of protection
includes the tap bus (bus nt) and all line segments.
d) The fault clearing time will be the fault application time plus Tcb + Tcc. These two
parameters have no individual significance within the model. The distinction is only for
documentation purposes
e) At the time of fault application, a message is written to the terminal, dynamic log file,
and event file in the following form:
At t = 0.1000 Fault clearing time set to 0.1833 by DIFFRLYS
22652 [PENSQTOS ] 230.00 22232 [ENCINA ] 230.00
f) At the fault clearing time, all branches and bus-connected elements within the zone of
protection are tripped and messages are written indicating what network elements, if
any, are being tripped by the relay, in addition to the normal fault clearing action.
nf nt ni
Fb = nf Sb = nt Tb = ni
Ttb = nj
Model Name: distrel
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Distrelay represents a distance relay based on the specifications of the WECC MSRA Task
Force. It protects a line by operating the circuit breaker at its "from" end, <nf>. If a line is
protected by distance relays at both ends, distrelay must be applied twice, once for each
end. Distrelay trips only the circuit breaker at the "from" end. However, it checks whether
the "to" end of the line is already open. If so, it trips all intermediate line segments.
b) The location of the "far end" circuit breaker is indicated by the bus number, nfar, in the
parameter list. Bus <nt> must be the first bus on the line towards the far end, as shown
below. Intermediate taps on the line can be handled in one of two ways:
1. If connections to all of the tap buses are purely radial, the model will
automatically locate the tap buses and intermediate line segments.
2. If any of the tap buses have connections to other buses in the network, the tap
buses between <nt> and nfar must be listed in order as the input parameters
ntap[0], ntap[1], etc.
c) If notrip > 0, tripping is not performed but “signals” are set and output messages are
written to indicate pickup times, etc.
d) If notrip = 0, when distrelay trips the line, it also trips generators, loads, and dynamic
models connected to buses that are radially connected to intermediate tap buses along the
line. For non-radial connections to tap buses, separate relays must be included to trip the
infeed at those buses. In addition, a branch can be tripped by entering its specification in
the nf2, etc. data. This could be used for tripping the a non-radial tap connection or any
other branch.
e) Distrelay calculates the apparent impedance as seen looking into the line at its "from" end.
The current seen by distrelay is the total current flowing into the line at its “from”
terminal, including current flowing into charging capacitance and any line-connected
shunts.
f) The relay characteristics used by distrelay are input using the following Data Management
models:
1. Zonedef – definition of the characteristics for up to 4 zones
2. Blinddef – definition of blinder characteristics
3. Reloden – definition of load encroachment restraint characteristics
4. Trantrip – transfer trip specification (future)
These models must be input using the same branch specification as distrelay. If no
zonedef model is found, distrelay will not function. The other models are optional. Only
one of each should be included.
g) The signals in the first four output channels indicate the condition of the relay for each
zone as follows:
signal = 0 not picked up (out of zone)
signal = 1 picked up (in zone) and timing, trip not initiated
signal = 2 timed out, trip initiated
h) Signalx in the fifth output channel indicates the status of the circuit breaker timer, as
follows:
signal = 0 trip not initiated
signal = 1 trip initiated, cb timer running
signal = 2 circuit breaker tripped
j) The following messages relate to the line opening process when notrip = 0:
1) At t = <time> DISTRELAY opened <branch id>
means the line segment at the from bus end has been opened, but the remaining
segments (if any) may still be fed from the other end.
2) At t = <time> DISTRELAY opened <branch id>
Far end already open - trip radial islands
means that all segments of the line and radial connections to tap buses are being
tripped.
3) Failed to find far end of line in DISTRELAY at <branch id>
means that the program had trouble locating the far end of a multi-segment line. This
usually means that one or more of the tap buses has elements that loop back into the
system and the intermediate buses have not been specified. If this is the case, the
intermediate buses must be input.
Output Channels:
Record
Level Name Description
Block Diagram:
Model Name: emac1t
Parameters:
EPCL Default
Variable Data Description
b) Ka, Ta, Te, Tf, Tfe must be non-zero. If any of these are zero, the respective blocks are
bypassed.
c) To disable the forward path gain reduction, set T2 = T1 or set T2 = 0, set T4 = T3 or set
T4 = 0, set T5 = T6 or set T6 = 0. To disable the rate feedback, set Kf = Kfe =0.
d) Saturation parameters are consistent with the IEEE saturation factor definition using the
open circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower.
.
e) If spdmlt is omitted from the input data, it is set to 0 (disabled) to be consistent with the
IEEE model, which does not have this option.
Output Channels:
Record
Level Name Description
Block Diagram:
Vs VUEL VOEL
V ref [speed]
[vsig] Vamax [vuel] [voel] Vrmax
[v ref] 1
1 spdmlt
+ HV 0
LV Vr
1 Vc 1+sT1 + 1+sT3 1+sT5 Ka Va Gate 1 Ve Efd
Gate X
[v comp] 1 + sTr 1+sT2 - 1+sT4 1+sT6 1+ sTa + sTe [efd]
- -
S0 S6 S1 S7 S2 S3 Fex
Vamin Vrmin 0
Vf F(In)
sKfe
1 + sTfe
In
S5
1+ sTf +
S4 Kd Ifd
[ la d I f d ]
Model Name: epcdc
Prerequisites: From, to a.c. and d.c. buses, and d.c. branch must exist in load
flow data tables
Parameters:
EPCL Default
Variable Data Description
Notes:
a) nf identifies the rectifier a.c. bus; nt identifies the inverter end a.c. bus.
c) One and only one converter may join each (a.c. bus)-(d.c. bus) pair.
Each d.c. bus may have only one converter and one d.c. line connected to it.
d) Each d.c. bus, line, and converter must be fully represented in the load flow working
case.
e) Epcdc requires one of the two converters (usually the inverter) to be in mode 3. If the
converter models in the load flow case are 0 and 4 epcdc changes them to 1 and 3
respectively; if they are 0 and 5 in the load flow case, epcdc changes them to 2 and 3
respectively.
f) The time constants tmeasv and tmeasi are associated with the power control
subsystem. If this subsystem is quick acting these time constants may have small
values, though zero values are not permitted. If the power control subsystem is slow
acting tmeasv and tmeasi may be many seconds.
g) The time constants tiup and tidown specify the time delay of the voltage dependent
current limit of the inverter. The voltage used to determine the values of the current
limit is the inverter dc voltage as measured through a small time constant of value
0.02sec. The value of Teff is Tidown when voltage is decreasing and Tiup when it is
increasing. This allows the VDCOL to respond more quickly to falling voltage than
to increasing voltage. Tidown is normally about 0.03 seconds, Tiup is normally 0.2
seconds or longer.
Trdown and Trup handle the same VDCOL functions for the rectifier.
h) The inverter VDCOL limit function is defined by the values v1i thru v4i, c1i and c2i.
V1i thru v4i are the breakpoints of the VDCOL curve in Kv. The curve defined by
v1i and v2i applied when voltage is falling, that defined by v3i and v4i applies for
rising voltage.
C1i and c2i are the current break points in per unit of nominal current order. Note
that the nominal current order is limited to the bridge maximum current order, cmax.
The parameters v1r thru c2r give the corresponding definitions for the rectifier.
i) The parameters vchange and tvchange describe a voltage dip detector at the inverter
ac bus. If the sudden voltage change detected by this device exceeds vchange in the
downward direction it is presumed that the inverter will experience a commutation
failure and the inverter is bypassed instantaneously.
Record
Level Name Description
Block Diagram:
From ac From dc To dc To ac
alpha gamma
Ibr
Iset V2 V4
C2
Vdclim
S0
<0 Teff = Tdown
VdClim
1
1 + sTvc bypass = true
Vaci +
Vchange
-
Model Name: epcmod epcmd1, epcmd2, epcmd3, epcexc,
epctrb
Parameters:
Defined by user. Specified by name and value in dyd file record as shown above.
All the parameter names must be explicitly defined before the parameter values in
the *.dyd file. See example of a simple excitation system model (epcmodsexs.p) in
the samples directory.
CAUTION: Up to three user written models can have parameters with the same
parameter names. These models must be identified as epcmo, epcmd1, and
epcmd2, e.g.,
epcmod 2 "GEN2 " 22.00 "1 " : #9 "EXCEpcmod.p" 4.0000 "ka" 50.0000
"ta" 0.0500 "vmax" 7.0000 "vmin" 0.0000 "tr" 0.02500
epcmd1 3 "GEN3 " 22.00 "1 " : #9 "EXCEpcmd1.p" 5.0000 "ka" 40.0000
"ta" 0.0600 "vmax" 6.0000 "vmin" 0.0000 "tr" 0.03500
epcmd2 4 "GEN4 " 22.00 "1 " : #9 "EXCEpcmd2.p" 6.0000 "ka" 30.0000
"ta" 0.0700 "vmax" 5.0000 "vmin" 0.0000 "tr" 0.04500
If more than one user written model identified as epcmod is being used, the
parameter names in each model MUST be different (the same rule applies to
epcmd1 and epcmd2). In addition, the parameter names must be unique through
the number of characters used for the name, for example, the names “ks” and
“ks1” are not acceptable, but “ks1” and “ks2” are.
Notes:
b) epcmod, epcmd1, epcmd2, epcmd3, epcexc and epctrb differ only in their “model
type”, which determines their order when the “sort” option is turned on when reading
the dynamic data file (rdyd). This can be important if several user-written models are
associated with the same generator and must be initialized in a specific order. The
sort order in rdyd is as follows:
epcexc and epctrb are assigned types “x” and “t”, respectively, only to force the
sorting order. They do not necessarily have to be used to represent excitation
systems and turbine-governor systems, respectively. epcmd3 is similar to epcmod,
epcmd1 and epcmd2 with the exception that the first parameter after EPCL table
number should be variable Ndiv. This variable can be used to divide the PSLF time
step of integration internally within the model if the model requires smaller time step.
For example if the PSLF simulation time step is set to 0.01 seconds and the model
requires 0.0001 seconds step size, Ndiv can be set to 100.
c) The parameter <table> is the internal slot that holds the compiled epcl program. This
number must be between 0 and 49, and must be unique for each epcl program. If the
same epcl model is used several times, the same table number should be used for each
application. Note that when running dynamics from an epcl program, PSLF will
automatically use slot 0 for that program. Running dynamics using two epcl
programs (e.g. running from batch mode and using an epcl to perform the dynamic
run actions) will use slots 0 and 1. Therefore, it is recommended that slots 2 through
49 be used for the table number of user written models. The following example
shows the use of epcl table slots.
d) Model variables are addressed using the model index (@mx), which is obtained from
dypar[0].cmi. This index is used for the model record (refer to Table 5.2 for
complete description) includes the following elements:
k index of component to which this model is
attached or index of genbc record for generator
models
st model status; 1 = normal execution, 0 = non-
execution
bus “from” bus index of the component to which this
model is attached
id[2] 2 character identifier of component to which this
model is attached
mon_i bus index of the monitored bus, e.g. for voltage
controlling devices
This index is also used for epcmod described below.
Input parameters
Up to 100 input parameters. Accessed using epcmod[@mx].name, where name is
the parameter name specified in the dyd file (see example below)
state variables
Up to 100 state variables. Accessed using epcmod[@mx].s0, s1,... through
epcmod[@mx].s99. state variable derivatives are accessed using
epcmod[@mx].ds0,... and integrator storage variables accessed using
epcgen[@mx].zs0,...
storage variables
Up to 100 storage variables, accessed using epcmod[@mx].v0, v1,... The values
of these variables are retained from each call to the model. They are used for
values such as control outputs, timers, switch status and other information that is
needed on consecutive calls to the model. These variables are available as output
channels.
local variables
All standard epcl local variables (@,$,# and *) can be used in the epcl models.
However, they should be used with caution. They should not be used to store any
information from one call to another since the same epcl model can be used many
times (e.g. an excitation model can be applied to several generators).
f) There are five dynamic modes with which the epcl program is called. These
correspond to the flow diagram in Figure 3.11.1. Each one is described below. Any of
these modes can be skipped in a particular epcl model.
INIT
The dynamic model is initialized in INIT mode. All state variables and variables
are initialized. These variables must be calculated to produce zero values for all
derivatives in order to have a steady-state initialization. The index of the data
structure of the network device to which this model is connected is determined,
and the value is stored in model[@mx].k. Examples of determining the model
index are provided below in note (f). In the INIT section, the type and scaling of
the output channels can also be by setting values for channel_head[].type,
channel_head[].cmin and channel_head[].cmax. If these are omitted, default
“type” will be um1, um2, … and cmin and cmax will be –100 and 100,
respectively.
SORC
Generator network boundary source conditions are calculated here. Normally,
this section is not needed by control models.
ALGE
ALGE is called immediately after the network solution is completed. ALGE
should calculate any variables that may be needed as inputs to other models, e.g.
an excitation system model should calculate genbc[@k].efd which is needed by
the generator model. In addition, network events such as capacitor switching
and load shedding are initiated in ALGE.
RATE
All state variable derivatives are calculated in RATE.
OUTP
Values of output channel variables, v0 through vnn (nn=highest variable used up
to 99) are set in OUTP. If these values have been set in another mode, they do
not need to be reset in OUTP.
g) The following examples show the how the model component index model[@mx].k is
determined:
For non-generator models (e.g. switched shunts, load shedding, relays, etc.) the
rec_index function is used to set the model component index. The following
example shows how the index of an SVD is obtained for use in a switched shunt
capacitor model. This portion of code will be executed in INIT.
For generator-connected models (e.g. exciter, pss, limiters, etc.), the index into the
genbc table is used. This is shown in the following example.
h) Output statements can be written to the screen using logterm and to the dynamics log
file using logdy.
i) When a network switching event is initiated from a dynamic model, the flag
dypar[0].new_fact must be set to 1. This will cause the network Y matrix to be
rebuilt with the specified change. This action is required for events such as switching
an SVD or shunt, tripping a line, generator or load, or any other network switching
event. This type of action should be performed in ALGE mode.
j) When adding a new user-written model, the data should be put in a .dyd file using a
standard text editor. All parameters used in the model should be listed in the .dyd
file. The data can then be edited and copied through normal PSLF edit table
functions.
k) For more information regarding epcmod dynamic models, refer to application notes
apn022 and apn022II on writing epcmod dynamic models.
Output Channels:
Record
Level Name* Description
Parameters:
Defined by user. Specified by name and value in dyd file record as shown above.
See examples epcgenrou.p and epcvwscc.p in samples directory.
CAUTION: Up to three user written models can have parameters with the same
parameter names. These models must be identified as epcgen, epcgn1, epcgn2
and epcgn3, e.g.,
epcgen 1 "GEN1 " 22.00 "1 " : #9 mva=1000.0 "epcGEN.p" 13.0 "rsrc" 0.01 /
"xsrc" 0.22
#
epcgn1 2 "GEN2 " 22.00 "1 " : #9 mva=500.0 "epcGEN_gn1.p" 14.0 "rsrc" 0.005 /
"xsrc" 0.25
#
epcgn2 3 "GEN3 " 22.00 "1 " : #9 mva=900.0 "epcGEN_gn2.p" 15.0 "rsrc" 0.005 /
"xsrc" 0.20
#
epcgn3 4 "GEN4 " 22.00 "1 " : #9 mva=900.0 "epcGEN_gn3.p" 16.0 “Ndiv” 1.0 /
"rsrc" 0.005 "xsrc" 0.20
#
If more than one user written model identified as epcgen is being used, the
parameter names in each model MUST be different (the same rule applies to
epcgn1, epcgn2 and epcgn3). In addition, the parameter names must be unique
through the number of characters used for the name, for example, the names
“xs” and “xs1” are not acceptable, but “xs1” and “xs2” are.
Notes:
a) The Notes below apply to epcgen, epcgn1, epcgn2 and epcgn3. To avoid repeating
the three model names, only epcgen is used. Model epcgn3 is similar to epcgen,
epcgn1 and epcgn2 with the exception that the first parameter after EPCL table
number should be variable Ndiv. This variable can be used to divide the PSLF time
step of integration internally within the model if the model requires smaller time step
c) The device must be modeled as a generator in the load flow. The bus number (name,
kv) and id of this generator must be specified on the data record. If the device
includes voltage control logic, the controlled bus can be input as the monitored bus,
nm (namem, kvm) as shown above. (The !’s are placeholders for the “to” bus and
branch ckt, sec, which would not be used for this type of model.).
d) The name of the epcgen model <epcl name> MUST be specified after the mva base
as shown in the example above. The name can be up to 16 characters in length. The
file is searched for based on the entry "epcm" in the PARM PATH panel or in the
working directory if the “epcm” path is not specified.
e) The parameter <table> is the internal slot that holds the compiled epcl program. This
number must be between 0 and 49, and must be unique for each epcgen and epcmod
program. If the same epcl model is used several times, the same table number should
be used for each application. Note that when running dynamics from an epcl
program, PSLF will automatically use slot 0 for that program. Running dynamics
using two epcl programs (e.g. running from batch mode and using an epcl to perform
the dynamic run actions) will use slots 0 and 1. Therefore, it is recommended that
slots 2 through 49 be used for the table number of user written models. The
following example shows the use of epcl table slots.
f) Model variables are addressed using the model index (@mx), which is obtained from
dypar[0].cmi. This index is used for the model record (refer to Table 5.2 for
complete description) includes the following elements:
k index of component to which this model is
attached or index of genbc record for generator
models
st model status; 1 = normal execution, 0 = non-
execution
bus “from” bus index of the component to which this
model is attached
id[2] 2 character identifier of component to which this
model is attached
mon_i bus index of the monitored bus, e.g. for voltage
controlling devices
This index is also used for epcgen described below. The index for the load flow
generator table (gens) is in the kgen element of the genbc table. At the beginning of
each model the following statements should be included to obtain the needed indices:
Input parameters
Up to 98 input parameters in addition to rsrc and xsrc. Accessed using
epcgen[@mx].name, where name is the parameter name specified in the dyd file
(see example below)
state variables
Up to 100 state variables. Accessed using epcgen[@mx].s0, s1,... through
epcgen[@mx].s99. state variable derivatives are accessed using
epcgen[@mx].ds0,... and integrator storage variables are accessed using
epcgen[@mx].zs0,...
storage variables
Up to 86 variables, accessed using epcgen[@mx].v0, v1,... The values of these
variables are retained from each call to the model. They are used for values such
as control outputs, timers, switch status and other information that is needed on
consecutive calls to the model. These variables are also available as output
channels.
local variables
All standard epcl local variables (@,$,# and *) can be used in the epcl models.
However, they should be used with caution. They should not be used to store any
information from one call to another since the same epcl model can be used many
times (e.g. an excitation model can be applied to several generators).
h) There are six dynamic modes with which the epcl program is called. These
correspond to the flow diagram in Figure 3.11.1. Each one is described below. Some
of these modes can be skipped in a particular epcl model.
INIT
The dynamic model is initialized in INIT mode. All state variables and other
variables are initialized. These variables must be calculated to produce zero
values for all derivatives in order to have a steady-state initialization. In the
INIT section, the type and scaling of the output channels can also be specified by
setting values for channel_head[].type, channel_head[].cmin and
channel_head[].cmax. If these are omitted, default “type” will be um1, um2, …
and cmin and cmax will be –100 and 100, respectively.
The following variables are available for use during initialization:
epcgen[@mx].vt magnitude of terminal voltage, p.u.
epcgen[@mx].er Terminal voltage component on network real axis (p.u.)
epcgen[@mx].ei Terminal voltage component on network imaginary axis (p.u.)
epcgen[@mx].itr Terminal current component on network real axis (p.u.)
epcgen[@mx].iti Terminal current component on network imaginary axis (p.u.)
gens[@kgen].pgen Power output (MW)
gens[@kgen].qgen Lagging reactive power output (MVAr)
gens[@kgen].mbase Generator MVA base - value from dyd file if present, else from LF
SORC
Generator network boundary source conditions are calculated here. If the model
has non-zero internal reactance (xsrc), the model must calculate the following
varibles:
epcgen[@mx].angle angle (rad) of model q axis relative to network real axis
epcgen[@mx].ed d-axis component of voltage behind rsrc + j xsrc
epcgen[@mx].eq q-axis component of voltage behind rsrc + j xsrc
If the model’s xsrc is input as zero, then the model must calculate the following
variables:
epcgen[@mx].pcur terminal current component in phase with voltage
epcgen[@mx].qcur terminal current component lagging voltage by 90 degrees
These values, specified in the epcl model, will be converted into the proper
current injections by the EPCGEN library model.
NETW
If the values calculated in the SORC section depend directly on the voltage or
current at the terminal bus, then iterative solution with the network is necessary.
The NETW section is executed on each network iteration. The SORC variables
must be updated. The following variables from the network solution are
available via the EPCGEN model:
epcgen[@mx].er Terminal voltage component on network real axis (p.u.)
epcgen[@mx].ei Terminal voltage component on network imaginary axis (p.u.)
epcgen[@mx].itr Terminal current component on network real axis (p.u.)
epcgen[@mx].iti Terminal current component on network imaginary axis (p.u.)
ALGE
ALGE is called immediately after the network solution is completed. Since
RATE is called immediately after this, ALGE can generally be empty, unless it
needs to calculate a genbc variable that is needed by another model. The same
variables from the network solution listed above under NETW are available for
use by the model.
RATE
All state variable derivatives are calculated in RATE. Values calculated by other
models and stored in genbc variables can be used in these calculations, as well as
the network variables listed above. For example, if an excitation model is used
with this model, the field voltage will be available in genbc[@k].efd. If turbine-
governor model is used, the mechanical power will be available in
genbc[@k].pmech.
OUTP
Values of output channel variables, v0 through vnn (nn=highest variable used up
to 99) are set in OUTP. If these values have been set in another mode, they do
not need to be reset in OUTP.
i) Output statements can be written to the screen using logterm and to the dynamics log
file using logdy.
j) When a network switching event, e.g. tripping the “generator” modeled by this
device, is initiated from a dynamic model, the flag dypar[0].new_fact must be set to
1. This will cause the network Y matrix to be rebuilt with the specified change.
This type of action should be performed in ALGE mode.
k) When adding a new user-written model, the data should be put in a .dyd file using a
standard text editor. All parameters used in the program must be listed in the .dyd
file. The data can then be edited and copied through normal PSLF edit table
functions.
l) For more information regarding epcl dynamic models, refer to application notes
apn022 and apn022II on writing epcl dynamic models.
Output Channels:
Record
Level Name* Description
Parameters:
EPCL Default
Variable Data Description
Notes:
c) To disable the forward path gain reduction, set Tb = Tc or set Tb = 0.. To disable the
rate feedback, set Kf = 0.
d) Saturation parameters are consistent with the IEEE saturation factor definition using the
open circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower.
.
e) If spdmlt is omitted from the input data, it is set to 0 (disabled) to be consistent with the
IEEE model, which does not have this option.
Output Channels:
Record
Level Name Description
Block Diagram:
Model Name: esac2a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) For modeling high initial-response alternator-rectifier excitation system with non-
controlled rectifiers and feedback from exciter field current, e.g. Westinghouse HIR
Brushless system.
b) Ka, Kb, Ta, Te, Tf must be non-zero. If Tr or Tb are zero, the respective blocks are
bypassed.
c) To disable the forward path gain reduction, set Tb = Tc or set Tb = 0.. To disable the
rate feedback, set Kf = 0.
d) Saturation parameters are consistent with the IEEE saturation factor definition using
the open circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)]
may be the higher value and the other the lower.
.
e) The upper limit on Ve (s3) represents the effect of the field current limiter. If Vfemax
is zero, this limit will not be enforced. The real system, the limiter is implemented by
a low value gate just before Kb. The input to this LV gate is Kl * (Vlr – Vfe). If the
values of Kl and Vlr are given, Vfemax can be calculated as Vlr*Kl*Kb / (1 + Kl*Kb).
f) If spdmlt is omitted from the input data, it is set to 0 (disabled) to be consistent with
the IEEE model, which does not have this option.
g) The integration time step is reduced for this model by a factor of 5 to avoid numerical
instability due to the Kh feedback loop.
Record
Level Name Description
Block Diagram:
Kh
In
K e+ S e ( V e ) Kc Ifd / Ve
sKf Vfe +
1+ sTf +
S4
Kd Ifd
[ l a d I f d]
Model Name: esac3a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) For modeling field-controlled alternator-rectifier excitation system with non-controlled,
e.g. GE Alterrex systems with static voltage regulators.
b) Ka, Kr, Ta, Te, Tf must be non-zero. If Tr or Tb are zero, the respective blocks are
bypassed.
c) To disable the forward path gain reduction, set Tb = Tc or set Tb = 0.. To disable the
rate feedback, set Kf = Kn = 0.
d) Saturation parameters are consistent with the IEEE saturation factor definition using the
open circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower.
e) The upper limit on Ve (s3) is an approximate represention of the effect of the maximum
field current limiter. If Vfemax is zero, this limit will not be enforced. The lower limit
(Vemin) on Ve (s3) is an approximate representation of the minimum field voltage
limiter. If these limiters are specified in terms of their basic parameters (Kl1, Kfa, Vlv),
the exac3a model should be used.
f) If spdmlt is omitted from the input data, it is set to 0 (disabled) to be consistent with the
IEEE model, which does not have this option.
Output Channels:
Record
Level Name Description
Block Diagram:
Kr
Vs [speed
Vfemax - Kd Ifd
[vsig Vamax ]
VUEL Ke + Se(Ve) 1
]
[vuel] 1 0 spdmlt
+
1 Vc 1 + sTc HV Ka Vr 1 Ve
Efd
- Gate + X X
[ v c o m p ] 1 + sTr 1 + sTb 1+ sTa Va
+
sTe [efd]
+ - -
S0 S1 S2 S3 Fex
Vref Vf Vamin Vemin
[vref]
F(In)
Vfe
In
s
1+ sTf Ke+Se(Ve) Kc Ifd / Ve
+
S4
+
Kd Ifd
[ladIfd]
Kn
Vn
Vn
Kf
Efd
Efdn
Model Name: esac4a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model can be used to represent controlled rectifier systems in which the excitation
power is provided by a voltage-controlled source such as a shaft driven alternator with its
own voltage regulator. The voltage droop of the a.c. excitation power source, if any, and
the regulation of the rectifier are approximated by the parameter, Kc. Do not use this
model to represent "bus-fed" excitation systems.
Output Channels:
Record
Level Name Description
Block Diagram:
Vref
[vref] Vuel
Vimax Vrmax - Kc Ifd
+
[vcomp] 1 Vc 1 + sTc HV Ka Efd
gate
1 + sTr - 1 + sTb 1 + sTa [efd]
+
S0 S1 S2
Vimin Vrmin - Kc
Vs Ifd
[vsig]
Model Name: esac5a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Ka, Ta, Te, Tf1 must be greater than zero. Tr, Tf1, Tf2 may be zero. If Tr is zero, the
block is bypassed.
b) Saturation parameters are given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be the
higher value and the other the lower value.
c) If spdmlt is omitted from the input data, it is set to 0 (disabled) to be consistent with the
IEEE model, which does not have this option.
Output Channels:
Record
Level Name Description
Block Diagram:
Vref Vs
[speed]
[vref] [vsig] Vrmax
1
1 0 spdmlt
+
Vc + Vr + Ve
1 Ka 1
[vcomp] 1 sTr 1 sTa 1 sTe Efd
S0 S2 S3 [efd]
Vrmin 0
Se(Ve) + Ke
sKf (1 sTf 3)
(1 sTf1) (1 sTf 2)
S1 S4
Model Name: esac6a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Ka, Te, Th must be non-zero. If Tr, Ta, Tb or Tc is zero, the respective block is
bypassed.
b) To disable the forward path gain reduction, set Tb = Tc = 0. This will also disable
the non-windup limits Vamax and Vamin.
d) Saturation parameters is given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower.
e) If spdmlt is omitted from the input data, it is set to 0 (disabled) to be consistent with
the IEEE model, which does not have this option.
Record
Level Name Description
Block Diagram:
Vs Vuel [speed]
[vsig] [vuel] Vamax Vt Vrmax 1
1 0 spdmlt
+
[vcomp] 1 Vc + Ka (1 + sTk) 1 + sTc Va Vr 1 Ve Efd
1 + sTr 1 + sTa 1 + sTb + + sTe
+ [efd]
Fex
S0 S1 S2
S3
Parameters:
EPCL Default
Variable Data Description
Notes:
b) Te and Tf must be non-zero. If Tr or Tdr are zero, the respective blocks are
bypassed. Kpa and Kpr must not be zero if their corresponding integral gains are
zero.
d) Saturation parameters are consistent with the IEEE saturation factor definition using
the open circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)]
may be the higher value and the other the lower.
e) The upper limit on Ve (s3) represents the effect of the field current limiter. If
Vfemax is zero, this limit will not be enforced.
f) If spdmlt is omitted from the input data, it is set to 0 (disabled) to be consistent with
the IEEE model, which does not have this option.
g) In the IEEE Std 421.5 – 2005 document, the denominator of integrator s3 in the block
diagram below is written as “1 + sTE” - this is incorrect. The block diagram below
shows the correct notation: “sTe”.
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model represents a PID voltage regulator with either a brushless exciter or dc
exciter. For a dc exciter, Kc and Kd are set to zero.
b) Te must be non-zero. If Tr is zero, the block is bypassed. If Ta is zero, the block is
reduced to multiplication by Ka. If Tdr is zero, the output of the derivative block is set
to zero. Kpr must not be zero if Kir is zero.
c) Saturation parameters are consistent with the IEEE saturation factor definition using the
open circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower.
d) The upper limit on Ve (s3) represents the effect of the field current limiter. If Vfemax is
zero, this limit will not be enforced.
e) If spdmlt is omitted from the input data, it is set to 0 (disabled) to be consistent with the
IEEE model, which does not have this option.
f) If vtmult is non-zero, the limits Vrmax and Vrmin are multiplied by the generator’s
terminal voltage to represent a thyristor power stage fed from the generator terminals
Output Channels:
Record
Level Name Description
Block Diagram:
Vref
[vref] Kpr Vfemax - Kd Ifd Speed
Vrmax Ke + Se(Ve)
+ +
Vcomp 1 Kir Ka Vr 1 Ve Efd
X
[vcomp] 1 sTr - s + 1 sTa + sTe [efd]
+ S1 + - Fex
S0 S2 S3
s Kdr Vrmin
Vemin F(In)
1 sTdr Vfe
Vsig
S4 In
[vsig]
Kc Ifd
Ke + Se
+ Ve
+
Kd
LadIfd
Model Name: esdc1a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Ka, Ta, and Te, must be greater than zero. If Tr, Tb or Tf1 are zero, the respective
blocks are bypassed.
b) To disable the forward path gain reduction, set Tb = Tc or set Tb = 0.. To disable the
rate feedback, set Kf = 0.
c) If Ke is entered as zero, the model calculates an effective value of Ke such that the
initial condition value of Vc is zero. The zero value of Ke is not changed. If Ke is
entered as non-zero, its value is used directly, without change.
d) If Vrmax <= 0., an effective maximum control value of Vrmax is determined, such
that the control signal, Vc, has the value Vrmax when the exciter output is equal to
E2.
e) Saturation parameters is given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower value if the input value of Vrmax > 0; else
E2 must > E1.
f) If spdmlt is omitted from the input data, it is set to 0 (disabled) to be consistent with
the IEEE model, which does not have this option.
g) IEEE standard is ambiguous about lower limit on exciter output. If exclim is set non-
zero, a lower limit of zero will be applied to integrator output.
Output Channels:
Record
Level Name Description
Block Diagram:
Vref [speed
VUEL ]
[vref] uelin =2 uelin < 2 Vrmax
[vuel] 1
+ 1 0 spdmlt
+
[vcomp] 1 Vc 1 sTc Ka Vr 1
HV
X
1 sTr 1 sTb Gate 1 sTa + sTe
Efd
S0 + S1 S2 S3 [efd]
Vs Vrmin (note g)
Vf
[vsig]
Se + Ke
sKf
1 sTf
S4
Model Name: esdc2a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Ka, Ta, and Te, must be greater than zero. If Tr or Tb is zero, the respective block
is bypassed. If Tf is zero, the rate feedback block is not used.
b) To disable the forward path gain reduction, set Tb = Tc or set Tb = 0.. To disable the
rate feedback, set Kf = 0 or Tf = 0.
c) If Ke is entered as zero, the model calculates an effective value of Ke such that the
initial condition value of Vc is zero. The zero value of Ke is not changed. If Ke is
entered as non-zero, its value is used directly, without change.
d) If Vrmax <= 0., an effective maximum control value of Vrmax is determined, such
that the control signal, Vc, has the value Vrmax when the exciter output is equal to
E2.
e) Saturation parameters are given by the IEEE saturation factor definition using the
open circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may
be the higher value and the other the lower value if the input value of Vrmax > 0;
else E2 must > E1.
f) If spdmlt is omitted from the input data, it is set to 0 (disabled) to be consistent with
the IEEE model, which does not have this option.
g) IEEE standard is ambiguous about lower limit on exciter output. If exclim is set non-
zero, a lower limit of zero will be applied to integrator output.
Output Channels:
Record
Level Name Description
Block Diagram:
Model Name: esdc3a
Parameters:
EPCL Default
Variable Data Description
Notes:
b) If Ke is entered as zero, the model calculates an effective value of Ke such that the initial
condition value of Vr is zero. The zero value of Ke is not changed. If Ke is entered as
non-zero, its value is used directly, without change.
c) Saturation parameters are given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be the
higher value and the other the lower.
d) If spdmlt is omitted from the input data, it is set to 0 (disabled) to be consistent with the
IEEE model, which does not have this option.
e) IEEE standard is ambiguous about lower limit on exciter output. If exclim is set non-zero, a
lower limit of zero will be applied to integrator output.
Output Channels:
Record
Level Name Description
Block Diagram:
Vref
[vref]
Vrmax
+ Kv
[vcomp] 1 Vc Verr VrmaxVrmin
1 sTr
s Kv Trh
S0
Kv S1
[speed]
Vrmin Vrh Vx Vx = Efd Se(Efd)
1
1 0 spdmlt
If V err K v , Vr Vr max Vr
1
If V err K v , Vr Vr min Ke STe
X
else Vr Vrh + Efd
[efd]
S2
(note e)
Model Name: esdc4b
Parameters:
EPCL Default
Variable Data Description
a) Ka, Ta, and Te, must be greater than zero. If Tr is zero, the block is bypassed. If Td or
Tf are zero, the respective blocks are not used.
b) To disable the derivative path, set Kd = 0 or set Td = 0.. To disable the rate feedback, set
Kf = 0.
c) If Ke is entered as zero, the model calculates an effective value of Ke such that the initial
condition value of Vc is zero. The zero value of Ke is not changed. If Ke is entered as
non-zero, its value is used directly, without change.
d) If Vrmax <= 0., an effective maximum control value of Vrmax is determined, such that
the control signal, Vc, has the value Vrmax when the exciter output is equal to E2.
e) Saturation parameters are given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be the
higher value and the other the lower value if the input value of Vrmax > 0; else E2 must >
E1.
f) If spdmlt is omitted from the input data, it is set to 0 (disabled) to be consistent with the
IEEE model, which does not have this option.
Output Channels:
Record
Level Name Description
1 Ka 1
1 sTr 1 sTa sTe
sKf
1 sTf
Model Name: esst1a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model can be used to represent a controlled-rectifier excitation system whose
a.c. power source is a power transformer fed from the generator terminals. The
voltage regulation of the excitation transformer and rectifier are approximated by the
parameter Kc.
b) The field current limiter (Klr, Ilr) is optional. If Klr = 0., the limiter is not used.
c) Ka must not be zero. Ta may be zero. If Tr, Tb, or Tb1 are zero, the corresponding
block is bypassed. If Tf is zero, the output of the rate feedback block is zero.
Output Channels:
Record
Level Name Description
Block Diagram:
V EL VUEL Vs V
Vs [ v uU e l] [vuel] [vsig U E L
[vuel]
[vsig] ]
uelin =2 ps sin 0 uelin = -1
pssin = 0 uelin = 1
Vimax Vamax Vt Vrmax - Kc Ifd
+ +
+ 1 sTc 1 sTc1 Ve Efd
1 Vc HV Ka Va + HV
1 sTa LV
[ v c o m p ] 1 sTr 1 sTb
Gate 1 sTb1 Gate Gate [efd]
+
S0 S1 S4 S2
Vimin Vamin Vt Vrmin
Vref
Voel
[vref] [voel]
sKf
1 sTf
S3
+ lfd
Klr
[ladifd]
0
Ilr
Model Name: esst2a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Ka, Ta, Te must be greater than zero. If Tr or Tb are zero, the respective blocks are
bypassed. If Tf is zero, the rate feedback is disabled.
b) The lead/lag block (Tc, Tb), which is not in the IEEE ST2A model, is included to
match the WECC FM exciter model. The block can be bypassed by not specifying
data for Tb and Tc, or setting Tb to zero.
c) If Kp = 0 and Ki = 0, then Vb = 1.
Output Channels:
Record
Level Name Description
Block Diagram:
Model Name: esst3a
Parameters:
EPCL Default
Variable Data Description
Notes:
Output Channels:
Record
Level Name Description
Block Diagram:
Vgmax
Vuel Kg
Vref
[vuel]
[vref]
Vimax Vrmax Vmmax
+
1 Vc Vi HV 1 sTc Ka Vr Km Vm Efd
1 sTr
1 sTa +
1 sTm
[vcomp] Gate 1 sTb [efd]
S0
+ S3 S1 S2
Vimin Vrmin Vmmin Vb
Vbmax
Vs
[vsig]
Ifd
Vt Ve In
Kp Vt j(K i Kp Xl ) It Fex(In) Kc Ifd / Ve [ladIfd]
It
j
Kp K p e p
Model Name: esst4b
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The inner loop field voltage regulator parameters (Kpm, Kim and Kg) are used for
modeling of a compound power source static exciter. Any of these values can be
zero, but either Kpm or Kim must be non-zero. To bypass the inner loop field
voltage regulator, set Kpm = 1.0, and Kim and Kg to zero.
b) Either of the automatic voltage regulator AVR parameters (Kpr, Kir) may be zero
but at least one must be non-zero.
d) If it is desired to set Vb at a fixed value, set Kp>=99999 and Vbmax = desired value,
in which case Vb is set to Vbmax (no warnings are issued).
Output Channels:
Record
Level Name Description
Block Diagram:
Vgmax
Kg
Ifd
Vt Ve In
Kp Vt + j(K i + Kp Xl ) It • Fex(In) Kc Ifd / Ve [ladIfd]
It
j
Kp = K p e p
Model Name: esst5b
Parameters:
EPCL Default
Variable Data Description
Notes:
a) For modeling static systems such as ABB UNITROL D, P, F, or 5000 or Brush DCP.
Similar to IEEE Type ST1A but with alternative OEL and UEL inputs and transfer
functions.
b) Kr must not be zero. Any of the time constants may be zero. If any denominator time
constant is zero, the respective block is bypassed.
c) If T1 is less than 4*delt, it’s block is replaced by a one time step delay.
Output Channels:
Record
Level Name Description
Block Diagram:
Vrmax/ Vrmax/
Kr Kr
sTo sTo
1 1 1 2
c c
sTo
1 sTob1 1 2
b
S4 S5
Vrmin/ Vrmin/ if (Voel < Verr, jlim = +1
Vref Kr Kr if (Vuel > Verr, jlim = -1
else jlim = 0
[vref]
Vrmax/ Vrmax/ Vrma Vt
Voel
Kr Kr x Vrmax
+ [voel] LV
Ver sT +1
1 Gate 1 1 1 sTc 2 0 jlim Vr 1 Efd
r c Kr
Vc 1 sTr HV + 1 sTb1 1 sTb 2 + 1 sT1 [efd]
+ 1
[vcomp] S0 Vuel Gate S2 S3 Vrmi S1
Vrmin/ Vrmin/ Vt
[vuel] Vs n
Kr Kr Vrmin
[vsig]
Ifd
Vrmax/ Vrmax/ Kc
Kr Kr [ladifd]
sTu
1 1 1 sTuc 2
c
sTu
1 1 1 sTub 2
b
S6 S7
Vrmin/ Vrmin/
Kr Kr
Model Name: esst6b
Parameters:
EPCL Default
Variable Data Description
Notes:
b) Kpa and Kia must not be zero. (Kff + Km) must not be zero. Any of the time
constants may be zero. If any time constant is zero, the respective block is bypassed.
c) If Ts is less than 4*delt, its block is replaced by a one time step delay.
Output Channels:
Record
Level Name Description
Block Diagram:
+ Ifd
Ilr Kcl [ladlfd]
Klr Vt
OELin=1 VOEL OELin=2 1
Vamax Vrmin 1 vmult
[voel] 0
Kff
+ Vrmax Vb
+ Kia Va + Vr
1
HV
Kpa
+
Km
LV
Gate
1
1 sTr Gate s 1 sTs Efd
Vc + +
[vcomp] S0
S1 Vrmin S3 [efd]
Vamin
Vuel Vs Kg
Vref [vuel] [vsig] 1 sTg
[vref]
S2
Model Name: esst7b
Parameters:
EPCL Default
Variable Data Description
Notes:
a) For modeling static systems such as Alstom Eurorec, Microrec K4.1 and ALSPA
P320.
b) Kpa must not be zero. Any of the time constants may be zero. If any time constant
is zero, the respective block is bypassed.
Output Channels:
Record
Level Name Description
Block Diagram:
Voel
[voel]
1 2 Vmax
+
+ LV HV
Gate Gate Vs
Vref + + [vsig]
+
[vref] Vmin
1 Vuel
[vuel] 2 Voel2 Vuel
[elimv] [vuel]
3
Vt * Vrmax
+
1 1 sTg 1 sTc LV 1
Kpa HV LV
1 sTb
HV
Vc 1 sTr 1 sTf Gate Gate + Vr Gate Gate 1 sTs Efd
[vcomp] + S4
S0 S1 S2 Vt * Vrmin [efd]
Vt * Vrmin Vt*Vrmax
+ +
Kia
Kl 1 sTia
S3
Kh
Model Name: estor2
Parameters:
EPCL Default
Variable Data Description
Output Channels:
Record
Level Name Description
fref
Pmax Imax*Vterm
Pout
n/d
n Ir(pu)
d
-Pmax -Imax*Vterm
Vterm
vsig
Vbus Vmax Iimax
+
_ Verr 1 + s T1 1 + s T2 KV
Vref + 1 + s T3 1 + s T4 s
_ Ii(pu)
s3 s4 s5
Vmin -Iimax
D
2 2
Iimax = sqrt [ Imax - Ir ]
Emax
-1
eff_chr
s
P <0 s6 Emax
+
Einit E
Pout SW +
[MW] P ≥0 +
0
-1
eff_dis
s
s7
0
Model Name: ewtgfc
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The Q order can either come from a separate model via the genbc[k].vref signal (varflg
= -1) or from the WindCONTROL emulation part of this model (varflg = 1). The
WindCONTROL emulation represents the effect of a centralized WindCONTROL (aka
Wind Farm Management System) control by an equivalent control on each wind turbine-
generator model.
b) For the WindCONTROL emulator, voltage at a remote bus (e.g. system interface) can be
regulated by entering the bus identification as the second bus ([<nr>] {<namer> <kvr>})
on the input record. Alternatively, generator terminal bus voltage can be regulated by
omitting the second bus identification. If a monitored branch is included in the
invocation, then the from-bus is regulated. The voltage reference, Vrfq, for the
WindCONTROL emulator is stored in genbc[k].vref when varflg = 1.
c) Any of the time constants may be zero.
d) The time constant Tc reflects the delays associated with cycle time, communication
(SCADA) delay to the individual WTGs, and additional filtering in the WTG control.
e) Kqi can be tuned to obtain faster or slower response from the WindCONTROL. The
time constant of the Q control loop is approximately equal to the equivalent reactance
looking out from the generator terminals (= dV/dQ) divided by Kqi. The default value
(0.1) assumes a desired time constant of 0.5 sec. and an equivalent reactance of 0.05 p.u.
(on gen. MW base). This is appropriate for a single WTG connected to a stiff system and
is currently the recommended setting.
For constant Q regulation (varflg = pfaflg = 0), the value of Kqi should be set to a very
small number, e.g. 0.001) since this control is a slow reset.
Rapid power factor angle regulation (varflg = 0, pfaflg = 1) is currently used for
European units when WindCONTROL is not employed. Kqi may need to be set to a
larger value for these units.
f) The default WindCONTROL gains, Kpv and Kiv, are appropriate when the system short
circuit capacity beyond the point of interconnection of the wind farm is 5 or more times
the MW capacity of the wind farm. For weaker systems, these values should be reduced,
e.g. for SCC = 2., Kpv = 13 and Kiv = 2 are recommended.
g) The “fix bad data” option will do the following: If non-zero, set Tr, Tc, Tv, Tpwr,
Tlpqd to a minimum of 4*delt
h) The primary structural difference between this model and exwtge (the latter designed for
use in conjunction with Doubly Fed Asynchronous Generators) is that ewtgfc generates a
reactive current command rather than a flux command. Additional functions in ewtgfc
include a dynamic braking resistor, and converter current limit (Figures 2 and 3). A
detailed description of these functions is provided in Application Note 08-7.
i) The compensating reactance for voltage control, Xc, is used to synthesize a bus for
regulating voltage that is further into the power system than either the terminal bus or a
remote bus. It is only available when a monitored branch is included in the invocation. If
there is a monitored branch, then the terminal bus and the to-bus are ignored. If Xc = 0
then the monitored branch from bus (mon_i) is regulated; if Xc > 0 then the monitored
branch from bus (mon_i) plus a projection into the system based on Xc*(branch current)
is regulated. See note b) for other voltage regulation options.
j) The Q Droop function, shown in Figure 5, is a relatively slow-acting function that
reduces the change in voltage reference as reactive power changes. This improves
coordination between multiple integral controllers regulating the same point in the
system. With default data, the function is not active. To use this function, typical data
would be Kqd = 0.04, Tlpqd = 5.0, Xqd = 0. There are three options for the reactive
power input to this function:
a. Default Q input is reactive power generated by this wind turbine generator.
b. If a monitored branch is in the invocation, then the Q input is the reactive power
flow in that branch. The from-bus of the monitored branch must be closest to the
generator terminals.
c. If a monitored branch is in the invocation and Xqd is non-zero, then the Q input is
the reactive power flow in that branch plus a secondary term, Xqd*Im^2, where
Im is the magnitude of the current flowing in the monitored branch. The from-
bus of the monitored branch must be closest to the generator terminals.
k) This model, in conjunction with the generator/converter model gewtg, can be used to
represent an inverter-based solar PV plant. See the application note “Modeling of GE
Solar Photovoltaic Plants for Grid Studies” for more information.
l) An arbitrary test signal can be injected into the terminal bus voltage regulator via
model[@index].sigval[0], as shown in Figure 3. A user-written dynamic model
(epcmod) is used to generate the desired signal. The index of the wind turbine model
(@index) can be obtained using the model_index function.
Output Channels:
Record
Level Name Description
Block Diagram:
Vref WindCONTROL
Vreg Emulation
PFAref Power
Factor
Regulator
Pord
(from wind turbine model)
Pelec Pdbr
(to wind turbine model)
(from generator model)
P,Q Priority Flag
Figure 1. Overview
WindCONTROL Vrfq
Emulator (vref)
Vermx Qmax
Kiv/s
Vreg + +
1 s4 1
1/fN Qord
1+ sTr - + Qwv 1+ sTc
Kpv
s3 - Vermn 1+ sTv Qmin s5
Vqd s2
< Vfrz?
If yes, freeze 2 integrators
PFAref Qref
(vref) tan (vref) Qord from separate model
0
Pelec 1 1 (vref)
1+ sTp
x
s6 0 -1 Qmax
pfaflg
1
Qord Qcmd
varflg Qmin
Figure 2. Reactive Power Control Model
Qgen
Vmax Iqmx
- IQcmd
Qcmd + Vref
KQi / s KVi / s
+ (efd)
s0 - s1
to Wind
Vterm Vmin Iqmn
Generator Model
Ipmx
Pord Porx . IPcmd
.
(vsig) (ladifd)
from Wind to Wind
Turbine Model Generator Model
Vterm
+ 1
Pelec Pdbr
-
from Wind + (elimt)
Generator
Pdlt - 0 to Wind
Model Turbine Model
Eerr
+
Kdbr 1/s
0 - Edbr s7
EBST
Dynamic Braking Resistor
0 1
Minimum Minimum
IPcmd
ImaxTD ImaxTD2 - IPcmd2
IQcmd
ImaxTD2 - IQcmd2
Iphl
Minimum Minimum
Ipmx Ipmx
Q Input 1 Vqd
Kqd
1+ sTlpqd
s8
Please contact pslf‐support@ge.com for details on this GE proprietary model.
Model Name: Ex21br
Parameters:
EPCL Default
Variable Data Description
Notes:
b) Te, Tdr and Tf must be non-zero. Kpa and Kpr must not be zero if their
corresponding integral gains are zero.
d) Saturation parameters are consistent with the IEEE saturation factor definition using
the open circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)]
may be the higher value and the other the lower. To not represent saturation set E1
to 0.
e) The upper limit on Ve (s3) represents the effect of the field current limiter. For
applications set Vfemax to 99.
f) In the IEEE Std 421.5 – 2005 document, the denominator of integrator s3 in the
block diagram below is written as “1 + sTE” - this is incorrect. The block diagram
below shows the correct notation: “sTe”.
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Ka, Ta, Te, Tf must be non-zero. If Tr or Tb are zero, the respective blocks are
bypassed.
b) To disable the forward path gain reduction, set Tb = Tc or set Tb = 0.. To disable the
rate feedback, set Kf = 0.
c) If Ke is entered as zero, the model calculates an effective value of Ke such that the
initial output of the Ka/(1+sTa) block is zero. The zero value of Ke is not changed.
If Ke is entered as non-zero, its value is used directly, without change.
d) If Vamax <= 0., an effective maximum control value of Vamax is determined, such
that the control signal has the value Vamax when the exciter output is equal to E2.
e) Saturation parameters is given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower value if the input value of Vamax > 0; else
E2 must > E1.
Output Channels:
Record
Level Name Description
Block Diagram:
Vsig Speed
Vref Vamax Vrmax
+
+ 1 + sTc Ve
1 Ka 1 Efd
X
Vcomp 1 + sTr 1 + sTb 1+ sTa + sTe
Fex
S0 S1 S2 S3
Vrmin 0
Vamin F(In)
Vf In
Ke + Se Kc Ifd / Ve
Vfe +
sKf
1+ sTf +
S4
LadIfd
Kd
Model Name: exac1a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model is a variation of model exac1. It is identical to exac1 except that the rate
feedback uses excitation voltage as its input signal, rather than exciter field current.
Also, in this model the voltage regulator limits are as in IEEE AC1 not as in AC1A.
Exac1a is appropriate for an excitation system using an alternator, non-controlled
stationary rectifiers, and slip rings. The exac1 model should be used for rotating
rectifier brushless systems in which field voltage is inaccessible.
b) Ka, Ta, Te, Tf must be non-zero. If Tr or Tb are zero, the respective blocks are
bypassed.
c) To disable the forward path gain reduction, set Tb = Tc or set Tb = 0.. To disable the
rate feedback, set Kf = 0.
d) If Ke is entered as zero, the model calculates an effective value of Ke such that the
initial condition value of vc is zero. The zero value of Ke is not changed. If Ke is
entered as non-zero, its value is used directly, without change.
e) If Vrmax <= 0., an effective maximum control value of Vrmax is determined, such
that the control signal, vc, has the value Vrmax when the exciter output is equal to
E2.
f) Saturation parameters is given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower value if the input value of Vrmax > 0; else
E2 must > E1.
Output Channels:
Record
Level Name Description
Block Diagram:
Vre Speed
Vsig
f Vrmax
+ +
1 1 + sTc Ka 1 Ve Efd
- X
V c o m p 1 + sTr -
1 + sTb 1+ sTa +
- sTe
S0 S1 S2 Fex
S3
Vf 0 F(In)
Vrmin
In
Vfe
Ke + Se Kc lfd / Ve
+
+
LadIfd
Kd
sKf
1+ sTf
S4
Exac1a
05/24/04
cmm
Model Name: exac1m
Parameters:
EPCL Default
Variable Data Description
Notes:
Output Channels:
Record
Level Name Description
Vref
[vref]
+
[vcomp] 1 1 + s Ta 1 +s Tc
_ K1
1 + s Tr 1 + s Tb 1 +s T d
+
S0 S1 S2
[vsig]
Vs
Vrmax [speed]
+ Efd
Vr 1 Ve [efd]
X
+ + sTe
- - S3 Fex
Vrmin 0
Vfe F(In)
In
Ke+Se(Ve) Kc Ifd / Ve
+
sKf 1
1+ sTf 1 + sT1 +
S4 S5 Kd Ifd
[ladIfd]
K2
Iref
+
+
VUEL
[vuel]
Model Name: exac2
Parameters:
EPCL Default
Variable Data Description
a) Ka, Ta, Te, Tf must be non-zero. If Tr or Tb are zero, the respective blocks are
bypassed.
b) To disable the forward path gain reduction, set Tb = Tc or set Tb = 0.. To disable
the rate feedback, set Kf = 0.
c) Saturation parameters are consistent with the IEEE saturation factor definition using
the open circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)]
may be the higher value and the other the lower.
d) The integration time step is reduced for this model by a factor of 5 to avoid numerical
instability due to the Kh feedback loop.
Output Channels:
Record
Level Name Description
Block Diagram:
Speed
Vref Vsig Vamax Vrmax
+ +
1 Vc 1 + sTc Ka Va 1 Ve E fd
LV Kb X
V c o m p 1 + sTr - 1 + sTb 1+ sTa + Gate +
sTe
- - -
S0 S1 S2 S3 Fex
Vamin V r mi n 0
Vh Vl
F(In)
Kl
+ -
Vlr In
Kh
Ke + Se Kc Ifd / Ve
Vf sKf Vfe +
1+ sTf +
S4 LadIfd
Kd
Model Name: exac3
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Ka, Kr, Ta, Te, Tf must be non-zero. If Tr or Tb are zero, the respective blocks are
bypassed.
b) To disable the forward path gain reduction, set Tb = Tc = 1 or set Tb = 0.. To disable
the rate feedback, set Kf = 0.
c) Saturation parameters is given by the IEEE saturation factor definition (see Figure
3.10.2) using the open circuit magnetization of the exciter. Either point [E1, S(E1)
or E2, S(E2)] may be the higher value and the other the lower value if the input value
of Vamax > 0; else E2 must > E1.
d) If Ifmx is omitted from the input or input as 0., it is set to 999. This limit is not in the
IEEE AC3 model and is not shown in the block diagram below.
Output Channels:
Record
Level Name Description
Block Diagram:
Klv
+
HV
Gate Speed
Vref Vamax
Vlv
+
Vc Ka Va Vr Efd
1 1 sTc 1 Ve
1 sTa X X
Vcomp 1 sTr 1 sTb + + sTe
+ Fex
S0
S1 S2 S3
F(In)
Vamin 0
Vsig
In
Kr
Ke + Se Kc Ifd / Ve
+
+
LadIfd
Kd
kn
s kf
1 sTf
Efdn
S4
Model Name: exac3a
Parameters:
EPCL Default
Variable Data Description
b) Ka, Kr, Ta, Te, Tf must be non-zero. If Tr or Tb are zero, the respective blocks are
bypassed.
c) To disable the forward path gain reduction, set Tb = Tc or set Tb = 0.. To disable the
rate feedback, set Kf = Kn = 0.
d) Saturation parameters is given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower value.
Output Channels:
Record
Level Name Description
Block Diagram:
Kr
Vsig Vamax
Vemax
Speed
Vcomp
1
1 + sTr
Etx
-
+
1 + sTc
1 + sTb +
Ka
1+ sTa
Va
X
Vr
+
1
sTe
.
Ve
X . Efd
+ - - Fex
S0 S1 S2 S3
Vref
Vamin Vemin F(In)
Vf
Kd . LadIfd
Ve
Kn
s
Kf
1+ sTf Ve
Efdn
S4
Model Name: exac4
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model can be used to represent controlled rectifier systems in which the
excitation power is provided by a voltage-controlled source such as a shaft driven
alternator with its own voltage regulator. The voltage droop of the a.c. excitation
power source, if any, and the regulation of the rectifier are approximated by the
parameter, Kc. Do not use this model to represent "bus-fed" excitation systems.
Output Channels:
Record
Level Name Description
Block Diagram:
Vref
[vref] Vimax Vrmax - Kc Ifd
+
[vcomp] 1 Vc 1 + sTc Ka Efd
1 + sTr - 1 + sTb 1 + sTa [efd]
+
S0 S1 S2
Vimin Vrmin - Kc Ifd
Vs
[vsig]
Model Name: exac6a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Ka, Te, Th must be non-zero. If Tr, Ta, Tb or Tc is zero, the respective block is
bypassed.
b) To disable the forward path gain reduction, set Tb = Tc = 0. This will also disable
the non-windup limits Vamax and Vamin.
d) Saturation parameters is given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower.
Output Channels:
Record
Level Name Description
Block Diagram:
Vs Speed
[speed]
[vsig] Vamax Vt Vrmax
1 + sTj +
Vh
Kh Ke Kc Ifd / Ve
1 + sTh + + +
+
S4
Vfe
0 Vfelim
Ifd
Kd
[ladifd]
Model Name: exac8b
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model represents a brushless exciter with its excitation provided by a self
contained voltage regulator. This model includes all features of the IEEE type AC8B
excitation system model except the limits on the exciter (Te) integrator. If has added
limits (Vimax, Vimin) on the error input plus multiplication of the output by speed.
d) The integration time step for this model is reduced by a factor of 10 to avoid
numerical instability.
e) The limits vrmax and vrmin are implemented as vrmax = vrmax*fact and vrmin =
vrmin*fact. If limflg is nonzero, fact=1; else, fact is max( 1.0, (Ke + Se(a) )a +
Kd ) where a=(1.0 + 0.58*Kc)/speed.
Output Channels:
Record
Level Name Description
Block Diagram:
Vsig Speed
Kvp
Vimax Vrmax
+ +
1 kvi 1 1 Efd
X
Vcomp 1 sTr - s + 1 sTa + sTe
+ S1 + - Fex
S0 S3 S4
-Vimax sKvd Vrmin
Ife 0 F(In)
1 sTvd
Vref In
S2
Kc Ifd
Ke + Se
+ Ve
+
Kd
LadIfd
Model Name: exbbc
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model represents a static excitation system in which a gated thyristor bridge fed
by a transformer at the main generator terminals feeds the main generator directly.
c) Xe models the regulation of the transformer/rectifier unit and must be zero or positive.
Output Channels:
Record
Level Name Description
1 if Generator field current, p.u.
Block Diagram:
Vref
Vrmax Et Efdmax
1 + 1 + sT3 + T2 + + Efd
K
Vcomp 1 sTf 1 + sT4 T1
+ + +
S1 Vrmin
S0 Et Efdmin
Xe
T1 1
1
T2 1 sT2
In
S2
LadIfd
switch = 0 switch = 1
Supplemental Signal
[vsig]
GAIN
FREQUENCY
1 1 1 1
j omega
T4 T3 T2 T1
Model Name: exdc1
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Ka, Ta, Te, Tf1 must be greater than zero. If Tr or Tb are zero, the respective
blocks are bypassed.
b) To disable the forward path gain reduction, set Tb = Tc or set Tb = 0.. To disable the
rate feedback, set Kf = 0.
c) If Ke is entered as zero, the model calculates an effective value of Ke such that the
initial condition value of Vc is zero. The zero value of Ke is not changed. If Ke is
entered as non-zero, its value is used directly, without change.
d) If Vrmax <= 0., an effective maximum control value of Vrmax is determined, such
that the control signal, Vc, has the value Vrmax when the exciter output is equal to
E2.
e) Saturation parameters is given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower value if the input value of Vrmax > 0; else
E2 must > E1.
Output Channels:
Record
Level Name Description
Block Diagram:
Vrmin Se + Ke
sKf
1 sTf
S4
Model Name: exdc2
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Ka, Ta, Te, Tf1 must be greater than zero. If Tr or Tb are zero, the respective
blocks are bypassed.
b) To disable the forward path gain reduction, set Tb = Tc or set Tb = 0.. To disable the
rate feedback, set Kf = 0.
c) If Ke is entered as zero, the model calculates an effective value of Ke such that the
initial value of Vc is zero. The zero value of Ke is not changed. If Ke is entered as
non-zero, its value is used directly, without change.
d) If Vrmax <= 0., an effective maximum control value of Vrmax is determined, such
that the control signal has the value Vrmax when the exciter output is equal to E2.
e) Saturation parameters is given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower value if the input value of Vrmax > 0; else
E2 must > E1.
Output Channels:
Record
Level Name Description
Block Diagram:
Speed
Vref Vsig Vrmax * Vt
+
1 - +
1 sTc Ka +
1
X
Vcomp 1 sTr 1 sTb 1 sTa Vc - 1 sTe Efd
-
S1 S2
S0 S3
Vrmin * Vt Se + Ke
sKf
(1 sTf1) (1 sTf 2)
S4 S5
Model Name: exdc2a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Ka, Ta, Te, Tf must be greater than zero. If Tr or Tb are zero, the respective blocks
are bypassed.
b) To disable the forward path gain reduction, set Tb = Tc or set Tb = 0.. To disable the
rate feedback, set Kf = 0.
c) If Ke is entered as zero, the model calculates an effective value of Ke such that the
initial condition value of Vc is zero. The zero value of Ke is not changed. If Ke is
entered as non-zero, its value is used directly, without change.
d) If Vrmax <= 0., an effective maximum control value of Vrmax is determined, such
that the control signal, Vc, has the value Vrmax when the exciter output is equal to
E2.
e) Saturation parameters is given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower value if the input value of Vrmax > 0; else
E2 must > E1.
Output Channels:
Record Name
Level Description
Block Diagram:
Speed
Vref Vsig Vrmax * Vt
+
1 + 1 sTc ka Vc 1
X
Vcomp 1 sTr - 1 sTb 1 sTa +
- sTe
- Efd
S0 S1 S2 S3
Vrmin * Vt Se + Ke
sKf
1 sTf
S4
Model Name: exdc4
Parameters:
EPCL Default
Variable Data Description
Notes:
a) If Kr is not zero, the voltage regulator input changes at a constant rate if Verr > Kr
or Verr < -Kr as per the IEEE (1968) Type 4 model. If Kr is zero, the error signal
drives the voltage regulator continuously as per the IEEE (1980) DC3 and IEEE
(1992, 2005) DC3A models.
c) If Ke is entered as zero, the model calculates an effective value of Ke such that the
initial condition value of Vr is zero. The zero value of Ke is not changed. If Ke is
entered as non-zero, its value is used directly, without change.
d) Saturation parameters is given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower.
Output Channels:
Record
Level Name Description
Vrmax
Verr 1
1
kr sTrh
-1
S0
V ref Vrmin
[vref]
Vrmax
Vc + Kv
[vcomp] Verr VrmaxVrmin >0
s Kv Trh 0 kr
Kv S0
[speed]
Vrmin Vrh Vx Vx = Efd Se(Efd)
If Verr K v , Vr V rmax Vr
1
If Verr K v , Vr V rmin X
else Vr Vrh + Ke sTe Efd
[efd]
S1
Model Name: exeli
Parameters:
EPCL Default
Variable Data Description
Notes:
Output Channels:
Record
Level Name Description
Block Diagram:
Ks1
+ smax
Pgen sTsw sTs2
1 sTsw 1 sTs2
Ks2 + -smax
3 in Series
1 sTs1 S7
S3, S4, S5
S6
efmin
+
Vcomp 1 Vpu + 1 + + Efd
Vpi
1 sTfv - + sTnu + - -
+ +
S0 S2 efmax
1
F(In)
Vpnf Vt
Vref Bias
Xe
-
+ 1 LadIfd
1 sTfi
S1
Dpnf
Model Name: exeli2
Parameters:
EPCL Default
Variable Data Description
Notes:
a) A voltage controller establishes a desired field current set point for a proportional
current controller.
Record
Level Name Description
Block Diagram:
1
1 sTr
sKd1
1 sTb1
1 1
1 sTe sTe2
1
sTi 1
1
1 sTr 4
1
sTi3
1
sTi4
Model Name: exivo
Parameters:
EPCL Default
Variable Data Description
Output Channels:
Record
Level Name Description
Block Diagram:
Vref
[vref]
Vmax1 Vmax3
Vmax5
+
[vcomp] A3 + s T 3 A5 + s T5 Efd
1 A1 + s T1
_ K1 K3 K5
1 + s Tr A2 + s T 2 A4 + s T4 A6 + s T6
[efd]
+
S0 S1 S2 S3
Vmin5
Vmin1 Vmin3
Vs
[vsig]
Model Name: Exoel
Parameters:
EPCL Default
Variable Data Description
KAGFL 0.333 Scale Factor for Generator Field Current at Air Gap to Full
Load
IFDPU 1.02 OEL Inverse Time Integrator Pickup Level (pu)
IFDTRP 9.38 OEL Inverse Time Trip Active Level (pu)
IFDTRN 7.92 OEL Inverse Time Transfer Active Level (pu)
IFDLIM 6.56 OEL Inverse Time Limiter Active Level (pu)
IFDTMX 18.76 OEL Inverse Time Integrator Positive Limit
TIFDT 1.0 OEL Inverse Time Integrator Time Constant (sec)
KIFDT 0.00426 OEL Inverse Time Leakage Gain
TILEAD 0.0 OEL Field Current Feedback Lead Time Constant (sec)
TILAG 0.0 OEL Field Current Feedback Lag Time Constant (sec)
IFSPU 1.4 OEL SLD Pickup Level (pu)
TIFDLV 1.0 OEL SLD Timer Set Point (sec)
IFSDO 1.1 OEL SLD Drop Out Level (pu)
IFDRF1 1.25 OEL Field Current Reference 1 (pu)
IFDRF2 1.0 OEL Field Current Reference 2 (pu)
KPIFD 0.47 OEL Field Current Proportional Gain
KIIFD 17.81 OEL Field Current Integral Gain
IFDMX 1.0 OEL Field Current Regulator Positive Limit (pu)
IFDMN 0.0 OEL Field Current Regulator Negative Limit (pu)
VRMAX 6.0 OEL Field Voltage Scale for OEL Inactive
K1 1.0 K1 for xT or xxT Function
Notes:
a) This model can be used to represent an OEL for an excitation system, which
consists of a DC exciter, static excitation system or ALTERRREX with EX2100
digital control for the AVR (see list in Note c for a partial list models which are
available in PSLF model library). To represent an excitation system consisting of
a brushless exciter and the GE controls (EX2000, EX2100 and EX2100e) use the
PSLF library model EX21BR.
b) The model represents an OEL which will take control from the AVR to reduce the
field current. There are two sets of blocks that represent the monitoring of
generator field current, one is labeled as SLD for Straight Time Field Over-
Current Limit Activation and the other is a time inverse characteristic using state
variable s0. When the generator field current exceeds the value for IFSPU the block
SLD will start a timer. If the field current does not decrease below the value for
IFSDO, then the block SLD will issue a signal equal to 1 (true) to the OR gate,
which will change the status of the switches so that the output of PI function with
State variable s1 is selected. If the time inverse function has not issued a value of
1 (true), then the reference value for the PI function is the value in parameter
IFDREF1. Once the time inverse function issues a value of 1, then the reference
value for the PI function is the value in parameter IFDREF2. If the generator field
current is below the value of IFDPU, the time inverse function will wind down to 0
and the output signal is set to 0 and the OEL output will be restored to the value
of VRMAX. Note that if the value of the generator field current stays at 1.0 pu
(base value at rated terminal conditions as given on the nameplate) the time
inverse function will wind down in about 200 seconds.
c) The signal VOEL is entered in the excitation system after the AVR block into a low
value gate, which chooses the smaller signal, i.e. the AVR output or VOEL. Not all
models in PSLF have the input signal for this model. PSLF models which have
VOEL as an input signal to the low value gate after the AVR output include
esac1a, esac2a, esdc4b, esst1a, esst4b and esst7b.
d) Set VRMAX to the value of the maximum limit for the AVR.
e) The value of KAGFL is dependent on the generator model. To identify the value,
calculate the value of the per unit field current for the condition of rated voltage
and rated power and reactive power, and take the reciprocal of that value of field
current and assign for the value the value of KAGFL. From GE terminology KAGFL
= IFAG/IFFL (field current on air gap line at 1.0 terminal voltage divided by full
load field current).
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
a) This model can be used to represent excitation systems with a proportional-integral (PI)
voltage regulator controller.
e) Tr, Ta1, Ta2, Ta3, Ta4, Tf1, and Tf2 may be zero.
f) Saturation parameters are given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be the
higher value and the other the lower.
Output Channels:
Record
Level Name Description
Block Diagram:
Ke + Se
Vref Vr1
Vrmax Efdmax Ife
+
Vcomp 1 Ka( 1 + sTa1) 1 + sTa3 Vr Vfe 1
1+ sTr + s ( 1 + sTa2 ) ( 1 + sTa4 ) + sTe Efd
+
s0 s1 s2, s3 s6
Vrmin Efdmin
Vsig Vr2
sKf
( 1 + sTf2) ( 1 + sTf1)
s4, s5
Vb
Fex = f(IN) :
Parameters:
EPCL Default
Variable Data Description
Notes:
b) The parameters after Tf were not part of the IEEE (1980) ST1 model. If these are
omitted from the input data, they will be set to values so that they have no effect as
follows (0., 0., 99., -99., 0., 99., 0.). All of these parameters except Xe are in the
IEEE (1992, 2005) ST1A model.
c) Ka and Ta must not be zero. If Tr, Tb, or Tb1 are zero, the corresponding block is
bypassed. If Tf is zero, the output of the rate feedback block is zero.
d) The integration time step is reduced for this model by a factor of 60 to avoid
numerical instability.
Output Channels:
Record
Level Name Description
Block Diagram:
Vref Vs
[vref] [vsig] Vimax Vamax Vt Vrmax - Kc Ifd
+ + Efd
1 Vc 1 sTc 1 sTc1 Ka Va + Ve +
1 sTa
[ v c o m p ] 1 sTr 1 sTb 1 sTb1 [efd]
S0
S1 S4 S2
Vimin Vamin Vt Vrmin - KcIfd
sKf Xe
1 sTf
S3
+ lfd
Klr
[ladifd]
0
Ilr
Model Name: exst2
Parameters:
EPCL Default
Variable Data Description
Notes:
a) If the exciter is a d.c. machine the regulation parameter, Kc should be zero. If the
exciter is an alternator, Kc must be used to approximate the combined regulation of
the alternator and rectifier.
b) Ka, Ta, Te must be greater than zero. If Tr or Tb are zero, the respective blocks are
bypassed. If Tf is zero, the rate feedback is disabled.
c) The lead/lag block (Tc, Tb) is included to match the WECC FM exciter model. The
block can be bypassed by not specifying data for Tb and Tc, or setting Tb to zero.
d) If Kp = 0 and Ki = 0, then Vb = 1.
Output Channels:
Record
Level Name Description
Block Diagram:
1 1 sTc Ka
1
1 sTr 1 sTb 1 sTa sTe
skf
1 sTf
Model Name: exst2a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) If the exciter is a d.c. machine the regulation parameter, Kc should be zero. If the
exciter is an alternator, Kc must be used to approximate the combined regulation of
the alternator and rectifier.
b) Ka, Ta, Te must be greater than zero. If Tr or Tb are zero, the respective blocks are
bypassed. If Tf is zero, the rate feedback is disabled.
c) The lead/lag block (Tc, Tb) is included to match the WECC FM exciter model. The
block can be bypassed by not specifying data for Tb and Tc, or setting Tb to zero.
Output Channels:
Record
Level Name Description
Block Diagram:
Vref Vs
[vref] [vsig]
Vrmax Efdmax
+ Efd
+ [efd]
1 Vc 1 sTc Ka Vr + 1
[vcomp] 1 sTr 1 sTb 1 sTa sTe
S4 S1 S2
S0 Vb
Vrmin 0
Ke
skf
1 sTf
S3
Ifd
[ladIfd]
Vt Ve In
Ve K p V t jK i It Fex(In) Kc Ifd / Ve
It
Model Name: exst3
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model represents an excitation system using a stationary rectifier and a series current
compounded a.c. power source. The parameters Kp and Ki describe the contributions of
potential and current elements, respectively, to the excitation power. This model has
sometimes been used to describe GE Generex excitation system, but should no longer be
used for that purpose; the exst3a model should be used for Generex systems. The
parameter XL is used only to describe a GE Generex excitation system; it is the coupling
reactance describing the voltage induced in the excitation bars of the Generex system by
flux created by current in the main stator bars of the generator. For a GE Generex system
the coupling reactance, XL, should be approximately half of the leakage reactance of the
generator.
b) Where the excitation power source is a straightforward power transformer Kp should be
nonzero and both Ki and XL should be zero. Where the excitation power source is a
combination of a power potential transformer (PPT) and power current transformer
(PCT), Kp and Ki should be nonzero and XL should be zero.
c) Ka, Kj, Ta must be greater than zero. If Tr or Tb are zero, the respective blocks are
bypassed.
Output Channels:
Record
Level Name Description
Block Diagram:
Vgmax
Speed
Kg
LadIfd
Vt Ve
KpVt j(Ki KpXl) It X Fex Kc Ifd / Ve
It
jangp
Kp Kpe
Model Name: exst3a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model differs from EXAC3 by addition of Vbmax, removal of Efdmax, and
moving of the added speed multiplier.
b) Ka, Kj, Ta must be greater than zero. If Tr or Tb are zero, the respective blocks are
bypassed.
Output Channels:
Record
Level Name Description
Block Diagram:
Vgmax
Kg
Vref
[vref] Vimax Vrmax
+
1 Vc 1 sTc Vr Ka Vm Efd
1 sTr
Kj 1 sTa
[vcomp] 1 sTb + [efd]
S0
+ S1 S2
Vimin Vbmax Vrmin Vb
Vs
[speed]
[vsig]
Ifd
Vt Ve In
K p Vt j(K i K p X l ) It Fex(In) Kc Ifd / Ve [ladIfd]
It
j
Kp K p e p
Model Name: exst4b
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model represents the GE EX2000 bus fed potential source, static compound and
Generrex-PPS or -CPS, and SILCOmatic 5 excitation systems, with proportional plus
integral (PI) voltage controller.
b) The inner loop field voltage regulator (Kpm, Kim and Kg) are used for modeling of a
compound power source static exciter. Any of these values can be zero. To bypass
the inner loop field voltage regulator, set Kpm = 1.0, and Kim and Kg to zero.
Output Channels:
Record
Level Name Description
Block Diagram:
Kg
Vref
[vref] Vrmax Vmmax
Efd
+
1 Vc Kir Vr + Kim Vm [efd]
1 sTr
Kpr
1
Kpm
[vcomp] s 1 sTa s
S0
+ S1 S2 S3
Vrmin Vmmin Vbmax Vb
Vs
[vsig]
Ifd
[ladIfd]
Vt Ve In
K p Vt j(K i K p X l ) It Fex(In) Kc Ifd / Ve
It
j
Kp K p e p
Model Name: exuel
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model can be used with any model for excitation system in which the signal
VUEL is an input signal for the excitation system model. The preference for input
of VUEL is at the summing junction whose output is the voltage error signal to the
AVR.
b) Values for power and reactive power are in per unit on generator MVA base.
c) For the UEL look-up table, Pi-1<Pi<Pi+1.
d) For the SCL table, PS0<PS1.
e) All values of reactive power in the look-up table must be less or equal to 0.0.
f) Time constants, TUV, TUP and TSP must be greater than 0.
g) The values for P1 through P11 should cover the full range of the turbine output.
h) State S0 is the output of the voltage filter
i) State S1 is the output P’
j) State S2 is the output P”
k) State S3 is the Integral Controller
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model is an approximate representation for the rotor resistance control of a wind
turbine-generator, such as the Vestas V80. Users should see Application Note 03-2
“Stability Modeling of Vestas V80 Wind Turbine-Generator” for more information
on this model.
Output Channels:
Record
Level Name Description
Block Diagram:
wref
+
wr 1 + sTw1
Kw
– 1 + sTw2
s1
Rmax
+
Kdp s + 1
Pe 1 + sTdp 1 + sTa Rext(Efd)
s2 + s0
Rmin
Rext0
Model Name: exwtge
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The Q order can either come from a separate model via the genbc[k].vref signal (varflg = -
1) or from the WindCONTROL emulation part of this model (varflg = 1). The
WindCONTROL emulation represents the effect of a centralized WindCONTROL (aka
Wind Farm Management System) control by an equivalent control on each wind turbine-
generator model.
b) For the WindCONTROL emulator, voltage at a remote bus (e.g. system interface) can be
regulated by entering the bus identification as the second bus ([<nr>] {<namer> <kvr>}) on
the input record. Alternatively, generator terminal bus voltage can be regulated by omitting
the second bus identification. If a monitored branch is included in the invocation, then the
from-bus is regulated. The voltage reference, Vrfq, for the WindCONTROL emulator is
stored in genbc[k].vref when varflg = 1.
c) Any of the time constants may be zero.
d) The time constant Tc reflects the delays associated with cycle time, communication
(SCADA) delay to the individual WTGs, and additional filtering in the WTG control.
e) The operation of the open loop Q control (parameters Vl1 to Qh3) is defined by the table
below. The parameters can be set in various ways to model different control strategies.
Setting a Q command parameter (e.g. Qh1) to 0 indicates that Qpfc from the “power factor
control” is transmitted without modification. The open loop controls will reset if the
voltage recovers beyond Vl1, Vl2, or Vh1, respectively. The default data disables this
control as is the case on most units.
f) Kqi can be tuned to obtain faster or slower response from the WindCONTROL. The time
constant of the Q control loop is approximately equal to the equivalent reactance looking
out from the generator terminals (= dV/dQ) divided by Kqi. The default value (0.1)
assumes a desired time constant of 0.5 sec. and an equivalent reactance of 0.05 p.u. (on
gen. MW base). This is appropriate for a single WTG connected to a stiff system and is
currently the recommended setting.
For constant Q regulation (varflg = pfaflg = 0), the value of Kqi should be set to a very
small number, e.g. 0.001) since this control is a slow reset.
Rapid power factor angle regulation (varflg = 0, pfaflg = 1) is currently used for European
units when WindCONTROL is not employed. Kqi may need to be set to a larger value for
these units.
g) The default WindCONTROL gains, Kpv and Kiv, are appropriate when the system short
circuit capacity beyond the point of interconnection of the wind farm is 5 or more times the
MW capacity of the wind farm. For weaker systems, these values should be reduced, e.g.
for SCC = 2., Kpv = 13 and Kiv = 2 are recommended.
h) The model will automatically detect if its input data is in an old format (16.2 or 16.3) and
will correct it using the default data. The model writes messages to the terminal and to
dylogfilep indicating what has been done
i) The “fix bad data” option will do the following:
a. If non-zero, set Tr, Tc, Tv, Tpwr, Tlpqd to a minimum of 4*delt.
b. If Xiqmax < 1.1 then set Xiqmax = 1.45 p.u.
c. If Xiqmax < 0.0 or > 0.9 then set Xiqmax = 0.50 p.u.
j) The compensating reactance for voltage control, Xc, is used to synthesize a bus for
regulating voltage that is further into the power system than either the terminal bus or a
remote bus. It is only available when a monitored branch is included in the invocation. If
there is a monitored branch, then the terminal bus and the to-bus are ignored. If Xc = 0 then
the monitored branch from bus (mon_i) is regulated; if Xc > 0 then the monitored branch
from bus (mon_i) plus a projection into the system based on Xc*(branch current) is
regulated. See note b) for other voltage regulation options.
k) The Q Droop function, shown in Figure 4, is a relatively slow-acting function that reduces
the change in voltage reference as reactive power changes. This improves coordination
between multiple integral controllers regulating the same point in the system. With default
data, the function is not active. To use this function, typical data would be Kqd = 0.04,
Tlpqd = 5.0, Xqd = 0. There are three options for the reactive power input to this
function:
a. Default Q input is reactive power generated by this wind turbine generator.
b. If a monitored branch is in the invocation, then the Q input is the reactive power
flow in that branch. The from-bus of the monitored branch must be closest to the
generator terminals.
c. If a monitored branch is in the invocation and Xqd is non-zero, then the Q input is
the reactive power flow in that branch plus a secondary term, Xqd*Im^2, where Im
is the magnitude of the current flowing in the monitored branch. The from-bus of
the monitored branch must be closest to the generator terminals.
l) An arbitrary test signal can be injected into the terminal bus voltage regulator via
model[@index].sigval[0], as shown in Figure 3. A user-written dynamic model (epcmod)
is used to generate the desired signal. The index of the wind turbine model (@index) can
be obtained using the model_index function.
m) The WindFREE reactive power feature is available on GE’s DFAG wind turbines, however
the reactive power capability of the equipment is reduced when operating with zero power
output. If the WindFREE option is selected in the wndtge model and the power output is
zero, then the reactive power range in the exwtge model is automatically set to +/- 0.12 pu,
regardless of user input.
Output Channels:
Record
Level Name Description
Block Diagram:
Vrfq
WindCONTROL
Vreg
Emulator
Vterm
From
Wind Turbine Pord
Model
Figure 1. Overview
WindCONTROL Vrfq
Emulator (vref)
Vermx Qmax
Kiv/s
Vreg + +
1 s4 1
1/fN Qord
1+ sTr - + Qwv 1+ sTc
Kpv
s3 - Vermn 1+ sTv Qmin s5
Vqd s2
< Vfrz?
If yes, freeze 2 integrators
PFAref Qref
(vref) tan (vref) Qord from separate model
0
Pelec 1 1 (vref)
1+ sTpwr
x
s6 0 -1 Qmax
pfaflg Open
1
Qord Loop Qcmd
Control
varflg Qmin
Qgen
Vterm
Vmax XIQmax
- -
Qcmd Vref
KQi / s KVi / s Eq"cmd
+ + s1
(efd)
Vmin
s0 + XIQmin
To Generator
model[@index].sigval[0] Model
Pord IPmax
(vsig)
. IPcmd
.
From (ladifd)
Wind Turbine
Model Vterm
Figure 3. Electrical Control
Q Input 1 Vqd
Kqd
1+ sTlpqd
s7
Parameters:
EPCL Default
Variable Data Description
Notes:
a) If the bus does not exist an output channel is assigned by fmeta but no signal is
recorded in it.
Output Channels:
Record
Level Name Description
Block Diagram:
netw[i].f
+
1.0 o f
+ 2
Model Name: fmetb
Parameters:
EPCL Default
Variable Data Description
Notes:
a) If the bus does not exist an output channel is assigned by fmetb but no signal is
recorded in it.
Output Channels:
Record
Level Name Description
1 fr frequency, Hz
1 ang Angle, degrees
1 pg Total generation active power (MW)
1 qg Total generation reactive power (MVAR)
Model Name: fmetr
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The bus frequency is calculated by numerical differentiation of the bus voltage angle.
The result is passed through a filter with a time constant of Tf.
c) If the bus does not exist, an output channel is assigned by fmetr but no signal is
recorded in it.
Output Channels:
Record
Level Name Description
netw[i].va_old 1.
+
+ 1 1 + o
volt[i].va fbus
to 1 + sTf 2
s0
netw[i].f
Model Name: focdt
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Focdt is a simple "generic" model of a definite time relay protecting a generator field
winding. The relay characteristic is as shown below. It picks up and starts its timer
when the field current exceeds <pickup> and resets immediately if it falls below
<pickup>. A trip signal is issued to the generator main circuit breaker when the field
current has been above <pickup> for <tdelay> seconds.
b) The current settings are in per unit of generator base current. Hence typical values
are:
Output Channels:
Record
Level Name Description
1 foc Generator field current, p.u.
Block Diagram:
Time
Sec
id
nf
Pickup Current
Model Name: g2wscc
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
b) Td, Tp, Tt, and Tturb may be zero to bypass the corresponding transfer function
blocks. If Tf is input as zero, but K1 or K2 is not zero, Tf is set to a small value
(4*delt). If Bturb*Tturb is less than 4*delt, Tturb is set to zero to bypass the block.
e) The nonlinear gain between gate position and power may be input with up to 6 points.
The (0.,0.) and (1.,1.) points are assumed and need not be input. The output is not
allowed to go beyond 0. and 1. However, if Pmax > 1., the input and output are
scaled by Pmax.
If GV1 is input as a negative number, the default hydro curve (see section 3.11.2)
will be used. If input is omitted or if all zero values are input, a straight line is used.
a) For a hydro turbine, set Tturb = Tw (water starting time), set Aturb = -1. and Bturb =
0.5.
For a deisel engine or two-shaft gas turbine, set Aturb = 0.8 and Bturb = 1.0 and
Tturb = 1 second.
For a small steam turbine with a non-reheat steam supply or a single- shaft gas
turbine, set Aturb = 0. and Bturb = 1.0 and Tturb = .2 second.
Record
Level Name Description
Block Diagram:
Pref
db1 gmax
eps sk1 ki
1
W
db1 1 sTd 1 sTf
s
CV
S0 S1 (Tt = 0)
S3
gmin
s2K 2 R
1
PG
1 sTt
(1 sTf )2 SW
S2 S7
GV PGV Pmech
kg 1 1+ s Aturbs Tturb
CV
1 + sTp s NGV 1+ s Bturbs Tturb
S4 S5
Velcl Pmin S6
Model Name: gast
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
b) T1, T2, T3, Tltr, R, and b must be greater than zero. Rmax thru Ltrat may be set to
99. to disable rate limiting. Fidle through Ltrat may be omitted from the parameter
list; they will default to Fidle = 0, and 99 for the last four values.
c) T1 represents the natural valve positioning time constant of the governor for small
disturbances, as seen when rate limiting is not in effect.
d) T2 represents delay due to internal energy storage of the gas turbine engine. T2 can
be used to give a rough approximation to the delay associated with acceleration of the
compressor spool of a multi-shaft engine, or with the compressibility of gas in the
plenum of a the free power turbine of an aero-derivative unit, for example.
e) T3 represents delay in the exhaust temperature and load limiting system. Lmax is the
turbine power output, in per unit, corresponding to the limiting exhaust gas
temperature.
f) Rmax, Linc, Tltr, Ltrat represent a loading rate limit subsystem. For small
excursions about a steady load the fuel valve can open at a rate of Rmax pu/sec. The
time constant, Tltr, is used to obtain a long term average valve position. When a
large output increase is called for, the fuel valve is allowed to open at the full rate
only until the valve opening has moved ahead of the long term average position by
Linc pu. After this the valve is permitted to open only at the rate, Ltrat, until the
long term average position catches up.
h) The nonlinear gain on the output may be input with up to 6 points. The (0.,0.) and
(1.,1.) points are assumed and need not be input. The output is not allowed to go
beyond 0. and 1. However, if Vmax > 1., the input and output are scaled by this
value. If input is omitted or if all zero values are input, a straight line is used.
Output Channels:
Record
Level Name Description
1 pm Turbine power, MW
Block Diagram:
1
1 sT1tr
if (Dv>llnc) Rllm=ltrat S3
else Rllm=Rmax Dv
Vmax Vmax
Rllm
Parameters:
EPCL Default
Variable Data Description
pfract 0.00 Per unit loading at present ambient temperature (See Note g)
rpelec 0.00 Governor droop, Hz per MW (NOTE THE UNITS OF THIS
PARAMETER)
tpelec 0.00 Governor electrical power transducer time constant, sec.
kpgov 0.00 Governor proportional gain
tgov 0.00 Governor PI controller lead time constant (kp/ki), sec.
kisoc 0.00 Governor Isochronous reset time constant, sec
ttemp 0.00 Temperature controller lead time constant (kp/ki), sec.
ktemp 0.00 Temperature controller proportional gain
aset 0.00 Acceleration controller limit setting, p.u. speed/sec.
ka 0.00 Acceleration controller proportional gain
ta 0.00 Acceleration controller lead time constant (kp/ki), sec.
wfnl 0.00 No load fuel flow, p.u.
fsrmin 0.00 Minimum fuel valve, p.u.
tf 0.00 Fuel valve time constant, sec.
kturb 0.00 Turbine gain
tturb 0.00 Turbine time constant, sec.
tthcp 0.00 Temperature detector (thermocouple) time constant, sec.
tnshld 0.00 Radiation shield lead time constant, sec.
tdshld 0.00 Radiation shield lag time constant, sec.
igvmax 0.00 Maximum inlet guide vane opening, degrees
igvmin 0.00 Minimum inlet guide vane opening, degrees
ktigv 0.00 Guide vane temperature controller proportional gain
ttigv 0.00 Guide vane temperature controller lead time constant (Kp/Ki), sec
taigv 0.00 Guide vane actuator time constant, sec.
kgvff 0.00 Governor guide vane feedforward gain
tgvff 0.00 Governor guide vane feedforward time constant, sec.
kfb 0.00 Fuel override bias gain, deg C per guide vane degree
fobmax 0.00 Maximum fuel override bias, deg C
rtbmax 0.00 Maximum rate of change of temperature limit, deg C per sec.
rtbmin 0.00 Minimum rate of change of temperature limit, deg C per sec.
rtmax 0.00 Maximum rate of change of temperature reference, deg C per sec.
rtmin 0.00 Minimum rate of change of temperature reference, deg C per sec.
tref1 0.00 Temperature limit control curve intercept, deg C
kcpr1 0.00 Temperature limit control curve slope, deg C p.u. Cpr
tref2 0.00 Temperature reference control curve intercept, deg C
kcpr2 0.00 Temperature reference control curve slope, deg C p.u. Cpr
tref3 0.00 Temperature reference control curve intercept, deg C
kcpr3 0.00 Temperature reference control curve slope, deg C p.u. Cpr
tref 0.00 Turbine control main reference (isotherm), deg C
dbd 0.00 Governor deadband, p.u.
emax 0.00 Not Used.
rrmax 0.00 Maximum rate of change of load reference, p.u. per sec.
fsrol 0.00 Maximum fuel valve command, p.u.
flag 0.00 Governor Flag
tair 0.00 Ambient temperature, deg C
pamb 0.00 Ambient pressure, deg C
a0 0.00 Compressor air flow coefficient
a1 0.00 Compressor air flow coefficient
a2 0.00 Compressor air flow coefficient
a3 0.00 Temperature model coefficient
a4 0.00 Temperature model coefficient
a5 0.00 Pressure ratio model coefficient
a6 0.00 Pressure ratio model coefficient
a7 0.00 Pressure ratio model coefficient
igv0 0.00 Guide vane / air flow model coefficient
kaf 0.00 Guide vane / air flow gain
sf 0.00 Fuel valve multiplier flag (1 for GE "Frame" engines, else 0)
gvffmax 0.00 Not used
rgvmax 0.00 Maximum guide vane opening rate, deg/sec
rgvmin 0.00 Maximum guide vane closing rate, deg/sec
kttb 0.00 Transient temperature bias gain, deg C/(p.u. speed)
tttb 0.00 Transient temperature bias reset time constant, sec
dipttb 0.00 Transient temperature bias deadband, p.u. speed
maxttb 0.00 Maximum speed deviation input for transient temperature bias,
p.u.
fgcv 0.00 Setting of fuel gas supply pressure control valve, p.u.
tgcv 0.00 Fuel gas control valve time actuator constant, sec
nlgfa 0.00 Nonlinear grid frequency filter break point, p.u.
nlgfb 0.00 Nonlinear grid frequency filter gain for small deviations
tnkvr 0.00 Fuel transient limiter allowable rate of change
tnkld 0.00 Fuel transient limiter allowable quick deviation for decreasing
output, p.u.
tnkli 0.00 Fuel transient limiter allowable quick deviation for increasing
output, p.u.
ksteam 0.00 Fraction of shaft power provided by steam turbine
tsteam 0.00 Not Used
nlgfc 0.00 Nonlinear grid frequency filter gain for large deviations
ropen 0.00 Maximum fuel valve opening rate, p.u./sec
rclose 0.00 Maximum fuel valve closing rate, p.u./sec
t1 0.00 1st break time for perceived speed deviation input, sec
t2 0.00 2nd break time for perceived speed deviation input, sec
t3 0.00 3rd break time for perceived speed deviation input, sec
t4 0.00 4th break time for perceived speed deviation input, sec
t5 0.00 5th break time for perceived speed deviation input, sec
n1 0.00 Perceived speed deviation at 1st break time, p.u.
n2 0.00 Perceived speed deviation at 2nd break time, p.u.
n3 0.00 Perceived speed deviation at 3rd break time, p.u.
n4 0.00 Perceived speed deviation at 4th break time, p.u.
n5 0.00 Perceived speed deviation at 5th break time, p.u.
General Description:
Notes:
a) Per unit parameters are on base of turbine MW capability. The value of mwcap
should always be entered on the data record for an engine represented by this model,
but if no value is entered for "mwcap", the generator MVA base is used.
The value of mwcap should normally be the maximum power capability of the
engine in "ISO" conditions (sea level and 15 degC). The variation of the 'present day
ambient' capability of the engine should be handled by specifying the 'present day'
atmospheric pressure with the parameter pamb and the temperature via the parameter
tair or pfract. (See note g).
c) The governor droop should be set on the basis of test data and should not be changed
as the turbine capability, MWCAP, is changed.
d) The deadband parameters dbd describes the input deadband that can be applied in
some governors to deliberately reduce sensitivity to normal variations of system
frequency. The value of dbd may be set to zero for most purposes, but could be set to
0.00025 in critical situations.
e) The parameter rrmax is a limit on the rate at which the load reference can be changed.
This limitation restricts the rate at which the engine can increase and decrease its
output when responding to normal load change commands while connected to the
grid at constant frequency. A typical value of rrmax is 0.000067, which corresponds
to a loading rate of approximately 10 percent per minute.
f) The flag, sf, makes the fuel flow the multiple of shaft speed and fuel valve position.
This is the normal configuration of GE heavy duty gas turbine controls, and sf should
be set to 1.0 for these engines. For other engines sf should be zero.
g) The parameter pfract allows the ambient air temperature to be deduced by the model
in its initialization. If pfract >= 0 the value specified for air temperature (tair) is
ignored and the ambient air temperature is calculated such that the initial condition
real power output, gens.pgen, is the fraction pfract of maximum capability of the
engine at the calculated temperature.
h) The parameters kttb, tttb, dipttb, and maxttb describe a provision for transient
temperature bias. When activated this provision develops a bias proportional to
deviation of speed below 1 p.u. and applies this to temporarily increase the exhaust
gas temperature limit. This provision should only be used on the specific advice from
General Electric that it is applicable to a particular turbine. In the great majority of
applications these four parameters should be omitted from the parameter list so that
they will be assigned their default values by PSLF.
i) The parameters t1 – t5 and n1 – n5 represent test signal synthesis which mimics the
test capabilities of GE Mark V and Mark VI turbine controllers. The location of the
injection of this test signal is shown in the attached block diagram.
Output Channels:
Record
Level Name Description
1 pm Turbine power, MW
9 qar Fuel-air ratio, p.u.
9 igv Guide vane opening, degrees
9 fsr Selected fuel valve command, p.u.
9 fsrn Fuel command from governor, p.u.
9 tnhs Delta perceived speed from t1-t5 and n1-n5, p.u.
9 mtmp Measured exhaust gas temperature, deg C
9 trf1 Temperature limit signal, deg C
9 trf2 Temperature control signal, deg C
Block Diagram:
Pelec Rpelec
Rvalve
1 + sTpelec
s0
Governor
Reference
Deadband and
Rate Limit, rrmax Error limit
1.0
emax
fsrn Speed
Kpgov
Speed dbd
fsrmin
fsrmin
1 Kturb
Kpt (1+ sTtemp ) 1+ sTturb Pm
s3
s5
1
( 1 + sTgov )
s1
Guide Vane
Kgvff Feedforward Signal
gff
1 + sTgvff
s12
etemp
Temperature Error Signal
1+sTnhld 1
1+sTdshld 1+sTthcp
Tx Mtmp
s8 s7
igvmax
Tref2-Kcpr2.Cpr Trf2 1
Ktigv
Tref3-Kcpr2.Cpr 1+sTaigv
Cpr Igv
igvmin s9
1
1+sTtigv
gvff
s10
fobmax rtbmax
Kfb
Igvmax Tbias Trf
etemp
rtbmin
Tref rtmax
Trf1
Tref1-Kcpr1.Cpr
M rtmin
1 1 A
X Kttb
speed dipttb 1+sTttb
s13
maxttb
1.0
0
ig v
wa
speed
G as Tx
wf T u r b in e
cpr
ta ir
M odel
Pm
pam b
Temperature
Tref1
Temp Limit Line
Kcpr1
Base
Tref2 Fuel Bias Line
Load
Kcpr2 Kfb Fabmax
Tref
Tref3
Kcpr3
Guide Vane Temp
Control Lines
Cpr
+
True
Speed
+
Model Name: gencc
Parameters:
EPCL Default
Variable Data Description
b) To represent a salient pole machine with a single amortisseur circuit on each axis
(keeping compatibility with the WSCC program's method of handling such machines)
Set Tpdo, Tppdo and Tppqo to non-zero values
Set Tpqo to zero
Set Lpq = Lq
Set Lppq to the q-axis subtransient reactance
(Ra +j Lppd) overwrites the generator subtransient R, X from the load flow
d) All reactances entered in the parameter list must be unsaturated values. Saturated
reactances are calculated internally.
g) S1 and S12 are defined in Figure 3.11.2, and must be non- zero.
h) The acceleration factor, accel, must be less than unity and should normally be in the
range 0.3 to 0.5.
i) If Pf and Qf are absent from the data record read by RDYD, they are set to 0.5. If
accel is also absent, it is set to 0.4. If Rcomp and Xcomp are also absent, they are set
to zero. If Ra is also absent, it is set to the resistance part of the machine subtransient
impedance from the load flow generator data table.
j) xcomp must be negative for a cross compound unit in which the generators are
bussed together at their terminals.
k) gencc is intended to model cross-compound machines represented as a single
generator in the power flow. Associating gencc with more than one generator on a
given bus is not allowed.
Output Channels:
Record
Level Name Description
Block Diagram:
Ld L' d
L' d L' ' d
E'q E''q
Efd 1 1
sT' do sT' ' do
id
Ld L" d
L'd-L''d
L' d Ld
Se
d axis E1
X
Lq
Ld
q axis
Model Name: gencls
Parameters:
EPCL Default
Variable Data Description
The parameters identified by ** are entered only to use the 'playback' function of
gencls.
Notes:
a) When the parameter “file” is absent from the parameter list in the dyd file the
model implements the standard classical generator model in which the motion of
the generator is determined by its electrical power output. When the “file”
parameter is present the model 'plays back' a known time variation of the
amplitude and frequency of voltage.
b) The notes under b) describe the use of the model to implement the ordinary
classical generator representation.
b2) All parameters are with respect to the generator base MVA. It is recommended
that the MVA base be specified in the dyd file by the entry #MVA=, immediately
following the : in the dyd file record.
b3) (Ra+jLppd) overwrites the load flow machine subtransient impedance when the
INIT, RDYD, or RDWS command is executed.
c) The notes under c) describe the use of the model to play back a known variation
of voltage.
c1) The model is instructed to play back a voltage signal by specifying the name of a
file containing sampled data in the dyd file record. The only way to invoke this
application of the model is to include the file name in the dyd file record. This
file name is not accessible or changeable via the data tables or EPCL functions of
PSLF.
c2) The data file specifying the signal must be as described in d) below.
c3) The complete description of the signal to be played back is read into the PSLF
data structures in the RDYD command of PSLF, and cannot be changed
thereafter.
c4) In its playback mode, the magnitude and frequency of the internal voltage of the
generator represented by gencls is made identical to the played-back signal. This
magnitude and phase of the internal voltage are thus input variables to the
simulation and are unaffected by the current, voltage, and power delivered by the
generator at its terminals.
c5) The played-back voltage is the Thevenin internal voltage of the generator, not the
voltage at its terminals. Where it is necessary to play back the voltage at a bus
where a Thevenin impedance cannot be identified, the MVA base of the generator
can be made very large.
The figure, below, illustrates two options for the use of gencls. The amplitude
and frequency of the voltage at bus A are recorded and it is desired to play the
recorded voltage into the partial system model at and behind bus B. The gencls
model can be applied in two alternative ways:
- applied at bus B with its MVA base set to 100 and its Thevenin impedance,
Lppd, set to 0.03 on that base
- applied at bus A with its MVA base set to a large value, say 100,000 and its
Thevenin impedance set to a reasonable value, say 0.1 per unit on that base
c6) The recorded variation of the Thevenin voltage must be described in a file as
follows:
(maxsamples)
(time), (voltage) , (frequency), a2, a3, a4
.
.
end
c7) The first value of time must be zero, and all values of time must be stated relative
to the time of the first sample.
c8) When used as a playback source the gencls model must be set up in PSLF exactly
as when it is used to represent a real generator. It is often convenient to make the
generator the 'swing' generator in the load flow case; that is the generator at a type
0 bus. The Thevenin voltage of gencls is then initialized to the value
corresponding to the real and reactive power flowing from the generator in the
load flow.
c9) The values of (voltage) and (frequency) in the first sample need not be equal to
the initial condition values of the Thevenin voltage and frequency. There are two
options for dealing with the difference between the initial sample values and
corresponding simulation values:
i. When vbias and/or fbias is 9.0 or less, this bias is applied to all subsequent
samples regardless of the actual difference between the first sample and the
corresponding simulation variable.
ii. When vbias and/or fbias is greater than 9.0, the bias to be applied to all
samples is determined as the difference between the first sample and the
value of the corresponding simulation value.
c10) The playback of the recorded signal starts at time t0. Prior to t0 the magnitude
and frequency of the Thevenin voltage are held constant at their initial condition
values. At time t0 the initial condition values are replaced by the values of the
first sample, offset as noted in c9).
c11) Gencls recognizes that the sample times of the recorded signal will not be aligned
with time steps of the simulation process. The effective sample value at each
simulation time point is obtained by linear interpolation between the sample
values immediately preceding and following the present value of time.
C12) The sampled signal values can be smoothed by simple single-pole low pass filters
whose time constant is tf. A separate filter time constant is specified for each
playback channel. The filtering rule is:
Output Channels:
Record
Level Name Description
* The playback channels are transferred to the output file ‘as received’ and without the
filtration described in c12) These channels are not output if playback file is not being
used.
Block Diagram:
Responding
Recorded System
Voltage Zab = 0.03
on 100 MVA base
A B
Responding
System
lppd
gencls
B
Responding
System
lppd Zab = 0.03
gencls on 100 MVA base
A B
Model Name: genind
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model is exactly the same as the MOTOR1 model except that the output
variables are expressed using generator convention instead of motor convention and
the undervoltage and underfrequency trip data has been removed.
d) This model initializes itself to match the terminal power of the generator to the power
of the generator in the load flow case. The slip and reactive power consumption of
the machine are determined as needed to match the specified power. The reactive
power consumed by the generator will not normally match the reactive power
assigned to it in the load flow. The difference between the actual and load flow
values of reactive power is accommodated by a shunt capacitor or reactor at the
machine terminals whose admittance is determined by the model in the initialization.
e) Tripping the generator leaves the capacitor (reactor) connected to the system; that is,
the capacitor is on the system side of the machine's switch.
f) The output channel, It, includes only the generator current and not the capacitor
current. Qg is the net reactive power of the generator and capacitor.
i) D has the dimensions delta P/ delta speed. The value of Pmech coming from a
separate model, if used, is multiplied by speed raised to the power D to determine the
effective mechanical load seen by the generator.
j) The saturation factors, Se1 and Se2, may be zero if no saturation is to be represented.
k) Ra+jLpp overwrites the load flow values of Rsubtransient and Xsubtransient when
INIT command is executed.
l) The acceleration factor, Acc, may be omitted in most cases. If the message "Failed to
initialize GENIND" appears for a particular generator, it may be necessary to enter a
value for Acc. If the convergence of the starting iteration shows a sequence of slip
values that approach a final value slowly but smoothly Acc can be made greater than
unity. If the convergence of slip values towards a final result is erratic or oscillatory
Acc should be set to a value less than unity. If Acc is given a negative value the
progress of the initialization iteration for the generator is displayed at the terminal
screen. If Acc is positive or zero the display is suppressed. Setting Acc to zero has the
same effect as setting it to 1.
Output Channels:
Record
Level Name Description
Block Diagram:
ψ dr 2 ω o SLIP
+ - ψ qr 2
ω o R r2 1.
- L lr 2 + L lr 2
ψ dr 1 ω o SLIP
- ψ +
+ ω o R r1 qr1
1. E " d ψ" q
L m " sat
- L lr1 + L lr1 + ωo
ψ mq
+ iqs
L m " sat
-
Se K sat 1. S e ( ψ m ) 1.
ψ 2 md ψ 2 mq L m " sat
K sat / L m 1. / L lr 1 1. / L lr 2
ψm
ψ md - ids
L m " sat
+
ψ qr1 ω o SLIP
+ ω o R r1 + ψ dr1
1.
+
Lm " sat
- L lr1 + L lr1 + E " q ψ" d
Lm Ls Ll
ψ qr 2 ω o SLIP
L m ' 1. / ( 1. / L m 1. / L lr1 ) L' L l
+ ωo Rr2
+ ψ L m " 1. / ( 1. / L m 1. / L lr1 1. / L lr 2 ) L" L l
dr 2 1.
T' o L lr1 L m / ( ω o R r1 L m ' ) ( L lr1 L m ) / ( ω o R r1 )
- L lr 2 + L lr 2
T" o L lr 2 L m ' / ( ω o R r 2 L m " ) ( L lr 2 L m ' ) / (ω o R r 2 )
Model Name: genoostrip
Prerequisites: None
Invocation: genoostrip :
Parameters:
EPCL Default
Variable Data Description
Notes:
a) genoostrip computes the center-of-inertia angle (COIangle) of each island. If any generator’s
angle separates from it’s island’s COIangle by more than delta_ang, the generator is either
tripped (if trip <> 0) or flagged as exceeding the out-of-step criterion (if trip = 0).
b) When tripping (or potential tripping) occurs, messages are written to the terminal, the
dynamic log file (*.log) and the event table (*event.csv) with the following information:
Simultation time
Generator identification (terminal bus, ID)
“Generator tripped on out-of-stap condition: delta_angle > nnnn degrees”
or
“Generator out-of-step condition [ALARM only]: delta_angle > nnnn degrees”
The message to the terminal and dynamic log file also includes:
“Tripped nnnnnn MW for this unit.”
“Positive MW loss = nnnnnn for all units”
“Negative MW loss = nnnnnn for all units”
(The last 2 lines are cummulative MW for the run.)
Record
Level Name Description
none
Parameters:
EPCL Default
Variable Data Description
Notes:
d) S1 and S12 are defined in Figure 3.11.2, and must be non- zero.
e) (Ra+jLppd) overwrites the load flow machine subtransient impedance when the
INIT, RDYD, or RDWS command is executed.
f) If Rcomp and Xcomp are absent from the data record read by RDYD, they are set to
zero. If Ra is also absent, it is set to the resistance part of the machine subtransient
impedance from the load flow data table.
g) Rcomp and Xcomp can be used for regulating voltage at a point other than the
terminals of the generator: Vcomp = | Vterm – ( Rcomp + jXcomp ) Iterm | .
Vterm and Iterm are the generator terminal voltage and current, and Vcomp is the
compensated voltage in pu. Vcomp is the input voltage to the excitation system
models. Rcomp and Xcomp can be used to implement Line Drop Compensation and
Droop Control. Line Drop Compensation allows for the regulation of voltage at a
point partway into the generator step-up transformer (Rcomp and Xcomp would
have positive values). Droop control allows for the regulation of voltage at a point
internal to the generator (Rcomp and Xcomp would have negative values).
h) The MVA base for the model is the value entered on the dynamic data file record, if
present, e.g.,
genrou 1 "GEN1 " 22.00 "1 " : #9 mva=400.0 "tpdo" 8.0 etc.
Output Channels:
Record
Level Name Description
iq
X' ' d Xl
X' d Xl Ra
fd
kd "d Eq
Efd 1 1 X' d X' ' d
sT' do sT' ' do X' d Xl
pfd pkd
id
Xd-X'd
Lad Ifd
"d
Se
" = sqrt("d2+"q2)
Xq Xl
"q
Xd Xl
Xq-X'q
iq
1q
2q "q
1 1 X' q X' q
sT' qo sT' ' qo X' q Xl
Ed
pfq pkq
Ra
X' ' q Xl
X' q Xl
id
ppd * iq – ppq * id
speed
-
pmech n
n 1 1
1
+ d + 2H s + s angle
- -
speed angle
d
1
D
Model Name: gensal
Parameters:
EPCL Default
Variable Data Description
Notes:
d) S1 and S12 are defined in Figure 3.10.2, and must be non- zero.
e) (Ra+jLppd) overwrites the load flow machine subtransient impedance when the
INIT, RDYD, or RDWS command is executed.
f) If Rcomp and Xcomp are absent from the data record read by RDYD, they are set to
zero. If Ra is also absent, it is set to the resistance part of the machine subtransient
impedance from the load flow generator data table.
g) Rcomp and Xcomp can be used for regulating voltage at a point other than the
terminals of the generator: Vcomp = | Vterm – ( Rcomp + jXcomp ) Iterm | .
Vterm and Iterm are the generator terminal voltage and current, and Vcomp is the
compensated voltage in pu. Vcomp is the input voltage to the excitation system
models. Rcomp and Xcomp can be used to implement Line Drop Compensation and
Droop Control. Line Drop Compensation allows for the regulation of voltage at a
point partway into the generator step-up transformer (Rcomp and Xcomp would
have positive values). Droop control allows for the regulation of voltage at a point
internal to the generator (Rcomp and Xcomp would have negative values).
Output Channels:
Record
Level Name Description
L"d - Ll
L'd - Ll
d-AXIS
L'd - L"d
L'd - Ll
(L'd - Ll) **2
SePfd
Ld - L'd
Lad ifd id
1 Pkq P"q
sT' ' qo
q-AXIS
Lq - Lq”
iq
Model Name: gensdo
Parameters:
EPCL Default
Variable Data Description
Notes:
d) S1 and S12 are defined in Figure 3.10.2, and must be non- zero.
e) (Ra+jLppd) overwrites the load flow machine subtransient impedance when the
INIT, RDYD, or RDWS command is executed.
f) If Tdc is absent from the data record read by RDYD, it is set to 0.1. If Rcomp and
Xcomp are also absent, they are set to zero. If Ra is also absent, it is set to the
resistance part of the machine subtransient impedance from the load flow generator
data table.
g) Rcomp and Xcomp can be used for regulating voltage at a point other than the
terminals of the generator: Vcomp = | Vterm – ( Rcomp + jXcomp ) Iterm | .
Vterm and Iterm are the generator terminal voltage and current, and Vcomp is the
compensated voltage in pu. Vcomp is the input voltage to the excitation system
models. Rcomp and Xcomp can be used to implement Line Drop Compensation and
Droop Control. Line Drop Compensation allows for the regulation of voltage at a
point partway into the generator step-up transformer (Rcomp and Xcomp would
have positive values). Droop control allows for the regulation of voltage at a point
internal to the generator (Rcomp and Xcomp would have negative values).
Output Channels:
Record
Level Name Description
L"d - Ll
L'd - Ll
d-AXIS
L'd - L"d
L'd - Ll
(L'd - Ll) **2
SePfd
Ld - L'd
Lad ifd id
1 Pkq P"q
sT' ' qo
q-AXIS
Lq - Lq”
iq
Model Name: gentpf
Parameters:
EPCL Default
Variable Data Description
Notes:
b) To represent a salient pole machine with a single amortisseur circuit on each axis
(keeping compatibility with the WSCC program's method of handling such machines)
Set Tpdo, Tppdo and Tppqo to non-zero values
Set Tpqo to zero
Set Lpq = Lq
Set Lppq to the q-axis subtransient reactance
(Ra +j Lppd) overwrites the generator subtransient R, X from the load flow
d) All reactances entered in the parameter list must be unsaturated values. Saturated
reactances are calculated internally.
g) S1 and S12 are defined in Figure 3.11.2, and must be non- zero.
h) The acceleration factor, accel, must be less than unity and should normally be in the
range 0.3 to 0.5.
i) If accel is absent from the data record read by RDYD, it is set to 0.4. If Rcomp and
Xcomp are also absent, they are set to zero. If Ra is also absent, it is set to the
resistance part of the machine subtransient impedance from the load flow generator
data table.
j) Rcomp and Xcomp can be used for regulating voltage at a point other than the
terminals of the generator: Vcomp = | Vterm – ( Rcomp + jXcomp ) Iterm | .
Vterm and Iterm are the generator terminal voltage and current, and Vcomp is the
compensated voltage in pu. Vcomp is the input voltage to the excitation system
models. Rcomp and Xcomp can be used to implement Line Drop Compensation and
Droop Control. Line Drop Compensation allows for the regulation of voltage at a
point partway into the generator step-up transformer (Rcomp and Xcomp would
have positive values). Droop control allows for the regulation of voltage at a point
internal to the generator (Rcomp and Xcomp would have negative values).
k) The “fix bad data” option will do the following:
a. If lppq = 0 and tpqo > 0, set lppq = lpq, lpq = lq, tppqo= tpqo and tpqo = 0
b. If lppq>1.5*lppd, it is set to 1.5*lppd
c. If lppq≤0.01*lppd, it is set to lppd.
d. If lppq<0.8*lppd, it is set to 0.8*lppd.
e. If lpd≥ld, set it to 0.8*ld.
f. If tppdo≠0 (Corresponding checks are also performed for the q-axis if
tppqo≠0)
i. If tppdo<4* dypar.delt, set it to 4* dypar.delt
ii. If lppd≥lpd, set it to 0.8*lpd
iii. If ll≥lppd, set it to 0.8*lppd
g. If tpqo≠0
i. If lpq≥lq, set it to 0.8*lq
h. If tpqo=0
i. If lpq≠lq, set it to lq.
i. If lppd ≠lpd
i. If tppdo<4.8* dypar.delt, set it to 4.8* dypar.delt
j. If lpd ≠ld
i. If tpdo<2.0, set it to 2.0
k. If lppq≠lpq
i. If tppqo<6* dypar.delt, set it to 6* dypar.delt
l. If lpq≠lq
i. If tpqo<0.2, set it to 0.2
Output Channels:
Record
Level Name Description
Block Diagram:
Ld L' d
Se
L ' d L' ' d
" d
1 E’q 1 E”q
Se
Efd sT' do sT' ' do
Se 1. fsat(ag)
Lq
Se 1. (ag)
Ld
Model Name: gentpj
Parameters:
EPCL Default
Variable Data Description
Notes:
b) To represent a salient pole machine with a single amortisseur circuit on each axis
(keeping compatibility with the WSCC program's method of handling such machines)
Set Tpdo, Tppdo and Tppqo to non-zero values
Set Tpqo to zero
Set Lpq = Lq
Set Lppq to the q-axis subtransient reactance
(Ra +j Lppd) overwrites the generator subtransient R, X from the load flow
d) All reactances entered in the parameter list must be unsaturated values. Saturated
reactances are calculated internally.
g) S1 and S12 are defined in Figure 3.11.2, and must be non- zero. The saturation level
is based on the magnitude of the air-gap flux plus (or minus, if Id < 0.) Kis times the
magnitude of terminal current.
h) The acceleration factor, accel, must be less than unity and should normally be in the
range 0.3 to 0.5.
i) If accel is absent from the data record read by RDYD, it is set to 0.4. If Rcomp and
Xcomp are also absent, they are set to zero. If Ra is also absent, it is set to the
resistance part of the machine subtransient impedance from the load flow generator
data table.
j) Rcomp and Xcomp can be used for regulating voltage at a point other than the
terminals of the generator: Vcomp = | Vterm – ( Rcomp + jXcomp ) Iterm | .
Vterm and Iterm are the generator terminal voltage and current, and Vcomp is the
compensated voltage in pu. Vcomp is the input voltage to the excitation system
models. Rcomp and Xcomp can be used to implement Line Drop Compensation and
Droop Control. Line Drop Compensation allows for the regulation of voltage at a
point partway into the generator step-up transformer (Rcomp and Xcomp would
have positive values). Droop control allows for the regulation of voltage at a point
internal to the generator (Rcomp and Xcomp would have negative values).
k) The “fix bad data” option will do the following:
a. If lppq = 0 and tpqo > 0, set lppq = lpq, lpq = lq, tppqo= tpqo and tpqo = 0
b. If lppq>1.5*lppd, it is set to 1.5*lppd
c. If lppq≤0.01*lppd, it is set to lppd.
d. If lppq<0.8*lppd, it is set to 0.8*lppd.
e. If lpd≥ld, set it to 0.8*ld.
f. If tppdo≠0 (Corresponding checks are also performed for the q-axis if
tppqo≠0)
i. If tppdo<4* dypar.delt, set it to 4* dypar.delt
ii. If lppd≥lpd, set it to 0.8*lpd
iii. If ll≥lppd, set it to 0.8*lppd
g. If tpqo≠0
i. If lpq≥lq, set it to 0.8*lq
h. If tpqo=0
i. If lpq≠lq, set it to lq.
i. If lppd ≠lpd
i. If tppdo<4.8* dypar.delt, set it to 4.8* dypar.delt
j. If lpd ≠ld
i. If tpdo<2.0, set it to 2.0
k. If lppq≠lpq
i. If tppqo<6* dypar.delt, set it to 6* dypar.delt
l. If lpq≠lq
i. If tpqo<0.2, set it to 0.2
Output Channels:
Record
Level Name Description
Block Diagram:
Ld L' d
Se
L' d L' ' d
"d
1 E’q 1 E”q
Se
Efd sT ' do sT ' ' do
Se 1. fsat ( ag Kis It )
Lq
Se 1. fsat ( ag Kis It )
Ld
Model Name: genwri
Parameters:
EPCL Default
Variable Value Description
Notes:
a) This model may be used to represent a wind turbine-generator, such as the Vestas
V80. Users should see Application Note 03-2 “Stability Modeling of Vestas V80
Wind Turbine-Generator” for more information on this model.
b) Tpo must be non-zero.
c) All reactances must be specified. Lp must be less than ls, and ll must be less than lp.
d) S1 and s12 are defined in Figure 3.10.2, and must be non-zero.
f) The initial electrical speed of the rotor, spdrot, must be specified.
g) The initial external rotor resistance is calculated to give the desired rotor speed and
power and is stored in genbc[k].efd. The excitation system model exwtg1 can be
used to regulate this resistance.
h) The difference between the load flow Qgen value and the initial Q consumed by the
generator is supplied by a shunt capacitor that is included in the model, as with the
motor1 model.
Output Channels:
Record
Level Name Description
Block Diagram:
fs
Pelec
– +
Pmech wr slip
1
+
: 2Hs – wo
Electrical Equations:
R2Tpo is a constant which is equal to
(L Ll) 2 T’o times the total rotor resistance
R 2Tpo
o (L L ' ) R2 is internal rotor resistance
R2ex is external rotor resistance
To' R 2Tpo /(R 2ex R 2)
fd ( fd S d (L L' ) i d ) / To' slip fq
d' fd
q' fq
eq s d' L' i d R a i q
e d s q' L' i q R a i d
'2 '2
' d q
S e f sat ( ' )
S d S e 'd
S q S e 'q
Model Name: gewtg
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The generator reactance and generator variables are in per unit on the generator MVA
base. It is recommended that the MVA base be specified in the dyd file by the entry
mva=value after the record level.
b) The flux and active current commands from the converter control model, exwtge, are
transferred via the variables genbc[k].efd and genbc[k].ladifd, respectively.
c) The reactive and active current commands from the converter control model, ewtgfc,
are transferred via the variables genbc[k].efd and genbc[k].ladifd, respectively.
d) The generator will be tripped if the terminal voltage deviates from nominal (1 p.u.) by
more than any of the voltage trip levels for more than the corresponding trip time. If
any of the dVtrp values are set to zero, that trip level is ignored.
e) The voltage trip levels will vary for different wind farms.
f) A trip signal stored in genbc[k].glimt, which may be set by the exwtge, ewtgfc and
wndtge models, will also cause the generator to trip.
g) The LVPL characteristic for a DFAG machine is defined by the default data of
brkpt = 0.9 p.u. and zerox = 0.5 p.u.
h) The LVPL characteristic for a full converter machine is defined by brkpt = 0.9 p.u.
and zerox = 0.4 p.u.
i) The model will automatically detect if its input data is in an old format (16.2 or 16.3)
and will correct it using the default data. The model writes messages to the terminal
and to dylogfilep indicating what has been done.
j) The “fix bad data” option will set the generator effective reactance, lpp, to 0.8 p.u.
Regardless of the “fix bad data” option, rrpwr values are limited to between 3 and
20.
k) This model, in conjunction with the full converter control model ewtgfc, can be used
to represent an inverter-based solar PV plant. See the application note “Modeling of
GE Solar Photovoltaic Plants for Grid Studies” for more information.
Output Channels:
Record
Level Name Description
Block Diagram:
Isorc
Eq"cmd 1 -1 High Voltage
(efd) 1+ 0.02s X" Reactive Current
From s0 Management
exwtge
LVPL & rrpwr
Low Voltage
IPcmd 1 IPlv Active Current
(ladifd) 1+ 0.02s Management
From s1
exwtge
LVPL
Vterm
1.22
LVPL V
1
jX"
1+ 0.02s
V s2
zerox brkpt
(0.50) (0.90)
Low Voltage Power Logic
LVPL
Vterm
1.22
LVPL V
1
1+ 0.02s
V s2
zerox brkpt
(0.40) (0.90)
Low Voltage Power Logic
Please contact pslf‐support@ge.com for details on this GE proprietary model.
Model Name: ggov1
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model can be used to represent a variety of prime movers controlled by PID
governors. It is suitable, for example, for representation of
• gas turbine and single shaft combined cycle turbines
• diesel engines with modern electronic or digital governors
• steam turbines where steam is supplied from a large boiler drum or a large header
whose pressure is substantially constant over the period under study
• simple hydro turbines in dam configurations where the water column length is short
and water inertia effects are minimal
b) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
c) The range of fuel valve travel and of fuel flow is unity. Thus the largest possible value
of vmax is 1.0 and the smallest possible value of vmin is zero. Vmax may, however, be
reduced below unity to represent a loading limit that may be imposed by the operator or
a supervisory control system. For gas turbines vmin should normally be greater than
zero and less than wfnl to represent a minimum firing limit.
The value of the fuel flow at maximum output must be less than, or equal to unity,
depending on the value of Kturb. If the initial power requires a fuel flow greater than
1.0, a warning message is written and Kturb is increased to permit initialization with
valve position = 1.0.
d) The parameter Teng is provided for use in representing diesel engines where there is a
small but measurable transport delay between a change in fuel flow setting and the
development of torque. Teng should be zero in all but special cases where this transport
delay is of particular concern.
e) The parameter Flag is provided to recognize that fuel flow, for a given fuel valve stroke,
can be proportional to engine speed. This is the case for GE gas turbines and for diesel
engines with positive displacement fuel injectors. Flag should be set to unity for all GE
gas turbines and most diesel engines. Flag should be set to zero where it is known that
the fuel control system keeps fuel flow independent of the engine speed.
f) The load limiter module may be used to impose a maximum output limit such as an
exhaust temperature limit. To do this the time constant Tfload should be set to
represent the time constant in the measurement of temperature (or other signal), and the
gains of the limiter, Kpload, Kiload, should be set to give prompt stable control when
on limit. The load limit can be deactivated by setting the parameter Ldref to a high
value.
g) The parameter Dm can represent either the variation of the engine power with the shaft
speed or the variation of maximum power capability with shaft speed.
If Dm is positive it describes the falling slope of the engine speed verses power
characteristic as speed increases. A slightly falling characteristic is typical for
reciprocating engines and some aero-derivative turbines.
If Dm is negative the engine power is assumed to be unaffected by the shaft speed, but
the maximum permissible fuel flow is taken to fall with falling shaft speed. This is
characteristic of single-shaft industrial turbines due to exhaust temperature limits.
i) The load reference of the supervisory load control loop is accessible as the parameter,
Pmwset. Pmwset is given a value automatically when the model is initialized. This
value overwrites any value entered prior to initialization. This parameter should not be
manipulated by the manual operation or an EPCL program prior to the execution of the
“INIT’ command.
j) The parameters aset, Ka, and Ta describe an acceleration limiter. Ta must be non-
zero, but the acceleration limiter can be disabled by setting aset to a large value, such as
1.
l) The parameter, db, is the speed governor dead band. This parameter is stated in terms
of per unit speed. In the majority of applications of ggov1 it is recommended that this
value be set to zero.
m) The parameters, Tsa, Tsb, are provided to augment the exhaust gas temperature
measurement subsystem in gas turbines. For example, they may be set to values such
as 4., 5., to represent the ‘radiation shield’ element of large gas turbines. If both
parameters are left off the end of the parameter list, they default to 1.0.
n) The parameters, rup, rdown, specify the maximum rate of increase and decrease of the
output of the load limit controller (Kpload/Kiload). These parameters should normally
be set, or defaulted to 99/-99, but may be given particular values to represent the
temperature limit controls of some GE heavy-duty engine controls. If both parameters
are left off the end of the parameter list, they default to 99 and –99.
o) The fuel flow command (fsr) is determined by whichever is lowest of fsrt, fsra, and
fsrn. Although not explicitly shown in the block diagram, the signals that are not in
control track fsr so that they do not “windup” beyond that value. This represents GE
gas turbine control practice but may not be true for other controller designs.
p) As shown in the block diagram, when Kpgov is non-zero, the governor PI control is
implemented to “track” fsr to prevent windup when fsr is limited by another signal
(fsrt, fsra) or Vmax/Vmin. If Kpgov is zero, the integral path is implemented directly.
The same applies to the load limiter PI control with regard to Kpload.
q) Pref is genbc[].pref.
Output Channels:
Record
Level Name Description
1 pm Turbine power, MW
1 fsr Fuel valve command, p.u.
1 fsrt Temperature limit fuel valve command, p.u.
Block Diagram:
Model Name: ggov2
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model is a modification of the ggov1 model in order to represent the frequency-
dependent fuel flow limit of a specific gas turbine manufacturer.
b) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
c) The frequency-dependent limit reduces the vmax limit on fuel flow signal (fsr). For
normal operation, the limiter performs no action. When frequency (generator speed) drops
below Flim1, the highest frequency data point, the desired value for the power limit (Plim)
is determined by linear interpolation between associated data pairs. The maximum value
of the limiter (vmax) will ramp to the fsr value corresponding to Plim (Plim / Kturb +
wfnl) at the Prate ramp rate. Plim will be updated as frequency changes. If frequency
subsequently rises back above Flim1, the value of the limit will ramp up at the rate Prate
back to the normal value of vmax.
e) Refer to ggov1 model for other notes. Aside from the frequency-dependent limt, ggov2 is
identical to ggov1, except that the temperature fuel command (fsrt) does not track fsr
when it is not in control. Instead, it stays at its upper limit (1.).
Output Channels:
Record
Level Name Description
1 pm Turbine power, MW
1 fsr Fuel valve command, p.u.
1 fsrt Temperature limit fuel valve command, p.u.
Block Diagram:
if Dm > 0 speed
wfnl dm
+
Ldref 1. + tlim if Dm < 0 speed**Dm
Kturb
Pmech
+
1 1+sTsa ext
x 1+sTc
1+sTfload 1+sTsb
Kpload 1+sTb
s5 s9
+ 1.0 s4
Kiload + speed
fsrt Kturb
aset s rup
s6
rdown
+
s
Ka t Frequency- e-sTeng
fsra
speed 1+sTa + dependent
s8 + Low limit
wfnl
Value
Kpgov Select
maxerr vmx cfe +
+
Pref + + -db Kigov + fsr
fsrn 1 x
db s
+ 1.1r s2 + vmin
1+sTact
minerr s3
sKdgov
Kimw ropen
s r 1+sTdgov s1 rclose
s7
1.1r govervor output
Pmwset valve stroke
rselect 1.0 speed
+
Pe 1 1 - electrical power
-1 - valve stroke
1+sTpelec
-2 - governor output
s0 0 - isochronous Flag
1 - fuel flow proportional to speed
Note: The Kpgov/Kigov and Kpload/Kiload controllers include tracking logic to 0 - fuel flow independent of speed
ensure smooth transfer between active controllers. This logic is not shown.
Model Name: ggov3
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model can be used to represent a variety of prime movers controlled by PID
governors. It is suitable, for example, for representation of
gas turbine and single shaft combined cycle turbines
diesel engines with modern electronic or digital governors
steam turbines where steam is supplied from a large boiler drum or a large header
whose pressure is substantially constant over the period under study
simple hydro turbines in dam configurations where the water column length is short
and water inertia effects are minimal
b) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used. For turbines whose capability depends on
ambient conditions, all parameters should be based on the capability at nominal
conditions, e.g. ISO conditions for gas turbines. The variation of maximum power
should then be handled by adjusting the value of the load limit parameter, Ldref. Ldref
can be greater then unity. (See f.)
c) The range of fuel valve travel and of fuel flow is unity. Thus the largest possible value
of vmax is 1.0 and the smallest possible value of vmin is zero. Vmax may, however, be
reduced below unity to represent a true limit applied to the fuel command. Varitaion of
maximum capability should be handled by adjustment of Ldref. For gas turbines vmin
should normally be greater than zero and less than wfnl to represent a minimum firing
limit.
The value of the fuel flow at maximum output must be less than, or equal to unity,
depending on the value of Kturb. Kturb is normally greater thn unity. If the initial
power requires a fuel flow greater than 1.0, a warning message is written and Kturb is
increased to permit initialization with valve position = 1.0.
d) The parameter Teng is provided for use in representing diesel engines where there is a
small but measurable transport delay between a change in fuel flow setting and the
development of torque. Teng should be zero in all but special cases where this transport
delay is of particular concern.
e) The parameter Flag is provided to recognize that fuel flow, for a given fuel valve stroke,
can be proportional to engine speed. This is the case for GE gas turbines and for diesel
engines with positive displacement shaft-drivein fuel injectors. Flag should be set to
unity for all GE gas turbines and most diesel engines. Flag should be set to zero where it
is known that the fuel control system keeps fuel flow independent of the engine speed.
f) The load limiter module may be used to impose a maximum output limit such as an
exhaust temperature limit. To do this the time constant Tfload should be set to
represent the time constant in the measurement of temperature (or other signal), and the
gains of the limiter, Kpload, Kiload, should be set to give prompt stable control when
on limit. The load limit can be deactivated by setting the parameter Ldref to a high
value.
g) The parameter Dm can represent either the variation of the engine power with the shaft
speed or the variation of maximum power capability with shaft speed.
If Dm is positive it describes the falling slope of the engine speed verses power
characteristic as speed increases. A slightly falling characteristic is typical for
reciprocating engines and some aero-derivative turbines.
If Dm is negative the engine power is assumed to be unaffected by the shaft speed, but
the maximum permissible fuel flow is taken to fall with falling shaft speed. This is
characteristic of single-shaft industrial turbines due to exhaust temperature limits.
i) The load reference of the supervisory load control loop is accessible as the parameter,
Pmwset. Pmwset is given a value automatically when the model is initialized. This
value overwrites any value entered prior to initialization. This parameter should not be
manipulated by the manual operation or an EPCL program prior to the execution of the
“INIT’ command.
j) The parameters aset, Ka, and Ta describe an acceleration limiter. Ta must be non-zero,
but the acceleration limiter can be disabled by setting aset to a large value, such as 1.
The acceleration limiter gain, Ka, in this implementation of the ggov model should be
entered as its true value. For GE gas turbines this gain is 10.
l) The parameter, db, is the speed governor dead band. This parameter is stated in terms
of per unit speed. In the majority of applications of ggov3 it is recommended that this
value be set to zero.
m) The parameters, Tsa, Tsb, are provided to augment the exhaust gas temperature
measurement subsystem in gas turbines. For example, they may be set to values such
as 4., 5., to represent the ‘radiation shield’ element of large gas turbines. If both
parameters are left off the end of the parameter list, they default to 1.0.
n) The parameters, rup, rdown, specify the maximum rate of increase and decrease of the
output of the load limit controller (Kpload/Kiload). These parameters should normally
be set, or defaulted to 99/-99, but may be given particular values to represent the
temperature limit controls of some GE heavy-duty engine controls. If both parameters
are left off the end of the parameter list, they default to 99 and –99.
o) The fuel flow command (fsr) is determined by whichever is lowest of fsrt, fsra, and
fsrn. Although not explicitly shown in the block diagram, the signals that are not in
control track fsr so that they do not “windup” beyond that value. This represents GE
gas turbine control practice but may not be true for other controller designs.
p) The parameters, Tbd, Tcd, characterize the fuel supply system. In particular, where the
fuel gas supply system is heavily loaded or the primary fuel pressure regulator is slow
acting, a rapid opening of the fuel control valves may cause a transient depression of
fuel supply pressure. This can be described by setting Tbd to characterize the recovery
time of the fuel gas supply; Tcd can then be set to a smaller value to describe the extent
of supply pressure variations.
q) The speed input signal to the governor can be processed by two cascaded filters, the
Nonlinear Frequency Filter and the Speed Tracking Filter. The block diagrams of these
filters are shown below the main block diagram.
r) The Nonlinear Frequency Filter, described by the break points ffa, ffb, and the gain,
ffc, can be used to implement a speed deadband or a variable governing droop. If the
data for these parameters are omitted, this filter is disabled by setting ffa = ffb = 0. and
ffc = 1.
s) The Speed Tracking Filter can be used to ensure that the governor does not respond
excessively to large deviations of grid frequency. This function is described by the
parameters dnrate, dnhi, and dnlo. If the data for these parameters is omitted, the filter
is disabled by setting dnrate = dnhi = 999. and dnlo = -999.
t) The parameters t1 – t5 and n1 – n5 represent test signal synthesis which mimics the test
capabilities of GE Mark V and Mark VI turbine controllers. The location of the
injection of this test signal is shown in the attached block diagram.
Output Channels:
Record
Level Name Description
1 pm Turbine power, MW
1 fsr Fuel valve command, p.u.
1 fsrt Temperature (load) limit fuel valve command, p.u.
1 fsra Acceleration limit fuel valve command, p.u.
1 fsrn Speed governor fuel valve command, p.u.
1 tnhs Delta perceived speed from t1-t5 and n1-n5, p.u.
Block Diagram:
wfnl
speed
if Dm > 0 dm
Pmech
+
Ldref tlim 1+sTc
1 if Dm < 0 speed**Dm
Kturb
1+sTb
+
+ s4
1 1+sTsa ext
x Kturb
1+sTfload 1+sTsb
Kpload s5 s9
+ 1.0
Kiload + e-sTeng
fsrt
aset s rup
s6 rdown
+ 1+sTcd
s 1+sTbd
speed Ka t fsra
1+sTa + s10
s8 + Low
perceived wfnl
speed
Value
Kpgov
maxerr Select vmax cfe +
+
Pref + -db Kigov + fsr
fsrn 1 x
+ 1.1 r
db s
s2 + 1+sTact
+ vmin
minerr s3
sKdgov
Kimw ropen
s r 1+sTdgov s1 rclose
+ Filtered
Speed
True
Speed
+ Perceived
Speed
Model Name: gp1
Parameters:
EPCL Default
Variable Data Description
Notes:
a. This model can be used to acknowledge the presence of a generator protection
subsystem on an individual generator. (See the gp2 model for system-wide
application of the same modeling.) The gp1 and gp2 models do not provide
specific representation of any particular relay or generator protection package.
Rather, they are intended to provide general purpose monitoring to indicate when
generator protection would be likely to operate or when its behavior should be
examined closely.
d. The definite time functions pick up when the relevant input signal crosses the
pickup setting and operate if the signal is still over the setting after the delay time.
These functions reset instantaneously if the input signal goes below the pickup
setting (above for reverse power).
e. The parameter ifoc is the setting of the field over-current element. Ifoc must be in
per unit of the generators rated field current. The rated field current is not an input
parameter, it is estimated by the model as the field current corresponding to
operation at rated MVA, one per unit voltage, and 0.9 power factor. This rated
field current is calculated by the gp1 model at initialization.
The variable s2 used in determining the pickup time is given by Ifd /(ifoc*Affl)
where Ifd is the field current (pu) and Affl is an internally computed constant
obtained using the generator parameters.
The red and blue curves shown in the figure below are both valid. For the red
curve the value of the parameter afoc is less than 1.05 and, in this case the element
will not operate if Ifd/Ifoc is less than 1.05, regardless of whether the time curve
is exceeded. For the blue curve the value of afoc is greater than 1.05.
g. The stator over-current element has a time inverse characteristic with voltage
restraint. The time characteristic of this relay is
where vr varies linearly from 1.0 when terminal voltage is 0.3 per unit to 5.0 when
terminal voltage is 1.0 per unit.
The stator over-current element picks up and starts timing when the stator current
exceeds 1.05*isoc, regardless of the value of terminal voltage.
h. The inverse time elements reset at a rate of (one timer second) per (real time
second) when the input signal goes below the pickup value (1.05).
i. The generator rated field current can be specified by the parameter ifdr or can be
estimated automatically by the model. If ifdr is greater than zero, the settings of
the field over-current element are used in relation to this value. If ifdr <= 0, the
rated field current is estimated by the model by calculating the per unit field current
at rated MVA, rated terminal voltage, and 0.9 power factor.
h. The frequency used by this model (output channel frel) is set to 60 Hz when the
voltage drops below the voltage threshold dypar[].v_f_inh. The default value for
this threshold is 0.0 p.u and it is set in javaini.p.
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model is identical to gp1, however, it monitors all generators in the system.
Furthermore, the first parameter flag has a default value of 1 which invokes the model
to arm the relay on all generators. If flag is set to 0 by the user, the model will not trip
any generators and will issue an alarm only. The alarm is issued in the form of a
message written to the screen and copied to the pslf log file.
b) The frequency used by this model is set to 60 Hz when the voltage drops below the
voltage threshold dypar[].v_f_inh. The default value for this threshold is 0.0 p.u and
it is set in javaini.p.
Output Channels:
Record
Level Name Description
none
Block Diagram:
Trip Signal
52G k
Alarm T1
1.05 a
1 Only
flag T1
0 k
T2
s2 a
GSU
PT
Vt
Generator
Protection
l T2
CT (GP)
The variable s2 used in determining the pickup time is given by Ifd /(ifoc*Affl) where Ifd
is the field current (pu) and Affl is an internally computed constant obtained using the
generator parameters.
Model Name: gp3
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model can monitor either the unit to which it is applied; or monitor all generators
in an area/a zone/ the entire system depending on the value of flag2.
b) Furthermore, the first parameter flag1 has a default value of 0, by which the model will
not trip any generators and will issue an alarm only. The alarm is issued in the form of
a message written to the screen and copied to the pslf log file. If flag1 is set to 1 by the
user, the model will trip generators.
c) The frequency used by this model is generator speed in pu, to avoid complications in
computing frequency.
d) If Vt<0.7, the under/over frequency relay is disabled, until the voltage comes back up
above 0.75 pu.
e) Voltage-restrained time over-current protection logic:
𝑘𝑜𝑐
𝑇𝑡𝑟𝑖𝑝 (𝐼𝑡) = 𝑝𝑜𝑐 + 𝑏𝑜𝑐
|𝐼𝑡|
(
𝐼 ) −1
( 𝑝𝑖𝑐𝑘𝑢𝑝 )
𝑡𝑟𝑜𝑐
𝑇𝑟𝑒𝑠𝑡 (𝐼𝑡) =
|𝐼𝑡| 2
( ) −1
𝐼𝑝𝑖𝑐𝑘𝑢𝑝
𝑇(𝐼𝑡) = 𝑇𝑡𝑟𝑖𝑝 (𝐼𝑡) 𝑖𝑓 |𝐼𝑡| > 𝐼𝑝𝑖𝑐𝑘𝑢𝑝
= 𝑇𝑟𝑒𝑠𝑡 (𝐼𝑡) 𝑖𝑓 |𝐼𝑡| < 𝐼𝑝𝑖𝑐𝑘𝑢𝑝
= −𝑡𝑟𝑜𝑐 𝑖𝑓 |𝐼𝑡| = 𝐼𝑝𝑖𝑐𝑘𝑢𝑝
𝑡
1
𝑇𝑟𝑖𝑝 = ∫ 𝑑𝑡
0 𝑇(𝐼𝑡)
Record
Level Name Description
none
Block Diagram:
Xoff
Xz1
Xz2
0.25
0
0.25 1.0 Vt (pu)
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used. (If generator electrical power feedback is
used, then the per unit base for R is generator MVA base.)
b) Td, Tp, Tt, and Tturb may be zero to bypass the corresponding transfer function
blocks. If Tf is input as zero, but Kd is not zero, Tf is set to a small value (4 times
integration time step).
e) The nonlinear gain between gate position and power may be input with up to 6 points.
The (0.,0.) and (1.,1.) points are assumed and need not be input. The output is not
allowed to go beyond 0. and 1. However, if Pmax > 1., the input and output are
scaled by Pmax.
If GV1 is input as a negative number, the default hydro curve (see section 3.10.2)
will be used. If input is omitted or if all zero values are input, a straight line is used.
f) For a hydro turbine, set Tturb = Tw (water starting time), set Aturb = -1. and Bturb =
0.5.
For a deisel engine or two-shaft gas turbine, set Aturb = 0.8 and Bturb = 1.0 and
Tturb = 1 second.
For a small steam turbine with a non-reheat steam supply or a single- shaft gas
turbine, set Aturb = 0. and Bturb = 1.0 and Tturb = .2 second.
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model plays in the Thevenin source voltage specified by two columns of the pldat
data table. The pldata and plhead tables must be in place before the init command is
executed.
b) This model treats the generator located at bus <n> as a Thevenin source. The amplitude
and phase of the source voltage are initialized to match the conditions at the terminal of
the generator.
c) The play-in channels containing the amplitude and frequency of the source voltage are
selected by parameters civ and cif. The time channel for playback must be channel 0 of
the pldat table.
d) If civ is -1 the play-in data is not used and the amplitude of the Thevenin voltage is held
constant at its initial-condition value. (This is established when the simulation is
initialized.) If cif is -1 the play-in data is not used and the frequency of the Thevenin
voltage is held constant at its 1.0 per unit.
e) In most applications it is necessary to apply an offset to the played-in voltage amplitude
signal to match it to the initial condition voltage source amplitude established in
initialization of the model. If the parameter, vbias, of this model is less than 9.0 it is used
as the offset. If greater than 9.0 the required offset is determined by the model as the
difference between its initialized value of the source voltage amplitude and the first
voltage value in the pldat table. This model does not use, and does not change, the offset
value contained in plhead[*].offset. The parameter fbias is treated in the same way,
though it is unusual to require a bias for the frequency value because PSLF normally
initializes frequency to 1.0 per unit.
f) The Thevenin impedance used in this model must be nonzero. Accordingly, simulations
in which the Thevenin source is to be used should be configured so that a finite part of
the impedance of the simulated network can be represented by the Thevenin impedance
of the source.
h) The epcl rpli command is used to read play-in data into the data tables pldat and plhead.
i) The epcl plsc command is used to apply scale factors and offsets to the play-in data
Output Channels:
Record
Level Name Description
Block Diagram:
Model Name: h6b
Invocation:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Per unit parameters are on base of turbine MW capability. The base power must be
stated by means of the "mwcap=" entry in this record. The turbine base power entered
in the associated h6bd data record is not used. If no value is entered for “mwcap”, the
generator MVA is used.
b) The turbine and the feedback functions of the governor are described by the
parameters entered and maintained by the h6bd model. See the h6bd model data page
for notes on the turbine and basic governor modeling.
c) Two separate feedforward paths can be used to maneuver the turbine power output by
addition of a signal to the gate position command of the governor.
Changes in the speed-load reference, genbc[].pref, are fed forward through the gain,
kfp. This feedforward gives a quick open-loop response to changes in the speed-load
reference of the governor.
d) The load controller model, lcfb1, should have its first parameter, type, set to zero
when it is applied to h6b.
Output Channels:
Record
Level Name Description
Block Diagram:
Figure 1. Governor schematic diagram
Description Model to manage parameter data for the h6b hydro turbine
governor model
Prerequisites:
Inputs: n/a
Invocation:
Parameters:
EPCL Default
Variable Data Description
re 0.0 Permanent droop for electrical power feedback, pu
rq 0.05 Permanent droop for gate position feedback, pu
tpe 0.025 Electric power feedback transducer time constant, sec
tsp -0.50 Shaft speed transducer time constant, sec
fd 0.0 Flag for proportional electric power signal
1 Electric power is used in proportional path
0 Electric power is not used in proportional path
kp *** Governor proportional gain
ki *** Governor internal gain
kd *** Governor derivative gain
td 0.05 Derivative gain filter time constant, sec
kg 5.00 Pilot servovalve gain
tg 0.05 Pilot servovalve time constant, sec
velm 0.20 Maximum gate actuator velocity, pu/sec
gmax 1.00 Maximum gate actuator stroke, pu
gmin 0.00 Minimum gate actuator stroke, pu
dturb 0.50 Turbine speed sensitivity constant
pnl 0.12 Hydraulic power needed at full speed no load
Notes:
a) Per unit parameters are on the base of turbine MW capability which is entered on the
data record of the h6b model, or models, that are associated with this model. The
“mwcap” entry may be included in the data record of this data model for convenience
but it is NOT USED by the dynamic models associated with this data model. Note
that the data established by an h6bd model can be used to represent multiple turbine-
governor sets of differing real power capabilities.
b) The gates travel over a range of 1.0 per unit from fully closed to fully open. The gates
are at a position greater than zero when the turbine real power output is zero – gmax
and gmin are operating limits.
c) Parameter values for tpe, tsp, td, tg, tbf, tbs must be greater than zero.
agv the effective flow area of wicket gates versus gate servomotor stroke
bgv the effective flow area factor of turbine versus gate servomotor command
The effective flow area of complete turbine is the product of two factors:
Each curve is specified by ten points (numbered 0-9) corresponding to ten gate
servo positions which are given by gv0 – gv9. The same set of servo stroke
position is used for both curves.
The curve of gate flow area, agv, must pass through (0,0) and (1,1) for all
turbines.
For a Kaplan turbine the blade flow area curve, bgv, must pass through (0,0) and
(1,1).
For a Francis turbine all the points on the blade flow area curve, bgv, curve must
be at (g, 1).
Figure 7 shows typical curves for a Kaplan turbine. Figure 8 shows typical curves
for a Francis turbine.
The parameter bgvmin specifies the blade flow area when the blade when the
blade servo is at zero stroke. The value of bgvmin is in per unit of the blade flow
area when the blades are fully open.
g) The gate opening and flow required to support no-load operation is described by the
parameter pnl.
h) The adjustment factor, deff, can be used to account for reduction of Kaplan turbine
power when the blade angle is at an off-nominal angle. The adjustment is:
(adjusted power) = (on-angle power) – deff * (ideal blade stroke – actual blade stoke)
Output Channels:
None
Block Diagram:
Model Name: h6e
Description Hydro Turbine with American Governor
Company controller
Parameters:
EPCL Default
Variable Data Description
re 0.05 Permanent droop for electrical power feedback, p.u.
rg 0.05 Permanent droop for gate position feedback, p.u.
tpe 0.025 Electric power feedback transducer time const., sec
tsp 0.50 Shaft speed transducer time const., sec.
fd 0.0 Flag for porportional elec. Power signal
0 Speed control mode – droop is based on gate servo stroke
1 Load control mode – droop is based on electric power
kp 3.3 Governor proportional gain
ki 0.5 Governor integral gain
kd 0.05 Governor derivative gain
td 0.05 Derivative gain filter time constant, sec
velm 0.2 Maximum gate actuator velocity, p.u./sec
gmax 1.00 Maximum gate actuator stroke, p.u.
gmin 0.00 Minimum gate actuator stroke, p.u.
buf 0.1 Upper limit of gate buffer region
buv 0.05 Max gate closing rate in buffer region
kg 10.0 Pilot servovalve gain
tg 0.05 Pilot sevovalve time constant, sec.
blg 0.0 Backlash in ring linkage
dbbd 0.0 Deliberate sliding deadband in digital blade cam output
tbd 0.0 Time constant of sliding deliberate dead band
blb 0.0 Backlash in blade adjustment linkage
dbbs 0.0 Mechanical deadband in blade servovalve/motor
tbs 0.2 Blade servo time constant
bgvmin 0.9 Flow area factor of blades when at minimum position
blv 0.1 Maximum stroking rate of blade servomotor
dturb 0.50 Turbine speed sensitivity constant
pgc 0.12 Electric motoring power with gates fully closed, p.u.
Copyright 2017 General Electric International. Inc. All Rights
Reserved. This material may not be copied or distributed in whole or
in part, without prior written permission of the copyright owner
deff 0.00 Off blade angle power decrease factor
hdam 1.00 Operating head, p.u.
gv0 0.00 First abcissa value for wicket gate
gv1 0.40 and blade curves
gv2 0.50 ……………………
gv3 0.55 ……………………
gv4 0.60 ……………………
gv5 0.70 ……………………
gv6 0.80 ……………………
gv7 0.85 ……………………
gv8 0.88 ……………………
gv9 1.00 ……………………
pgv0 0.00 Curve of wicket gate flow area
pgv1 0.50 as function of gate servo stroke
pgv2 0.62 ……………………
pgv3 0.68 ……………………
pgv4 0.73 ……………………
pgv5 0.83 ……………………
pgv6 0.91 ……………………
pgv7 0.94 ……………………
pgv8 0.96 ……………………
pgv9 1.00 ……………………
bgv0 0.00 Curve of Kaplan turbine blade
bgv1 0.00 flow area as function of gate servo stroke
bgv2 0.00 ……………………
bgv3 0.045 ……………………
bgv4 0.136 ……………………
bgv5 0.46 ……………………
bgv6 0.82 ……………………
bgv7 0.98 ……………………
bgv8 1.00 ……………………
bgv9 1.00 ……………………
tw 2.0 Water inertia time constant, sec
sprate 0.10 Rate limit on adjustment of speed-load reference
Notes:
(a) Per unit parameters are on the base of turbine MW capability as given by the parameter tbase.
(b) The gates travel over a range of 1.0 per unit from fully closed to fully opened. The gates are at
a position greater than zero when the turbine real power output is zero. Gmax and Gmin are
operating limits.
(e) Details of the deadband and backlash functions are shown in figure 3
(g) Each curve is specified by ten points (numbered 0-9) corresponding to ten values of gate servomotor
stroke which are given as gv0 - gv9. The same set of servo stroke values is used for both curves.
Figure 4 shows the form of the turbine curves.The value of gv0 should normally be greater than
zero and the value of gv9 should normally be 1.0. The value of pgv9 need not be equal to unity.
(h) For a fixed blade turbine all the points on the blade flow area curve, bgv, must be at (g,1).
See Figure 5.
(i) For a Kaplan turbine the blade flow area curve, bgv, must pass through (0,0) and (1,1). See
Figure 6.
(j) The parameter bgvmin specifies the blade flow area when the blade servo is at zero stroke. The
value of bgvmin is in per unit of the blade flow area when the blades are fully open.
(k) The power absorbed by the turbine when running at rated speed with the gates fully closed is given
by the parameter, pgc.
(l) The adjustment factor, deff, can be used to account for reduction of Kaplan turbine power
when the blade angle is at an off-nominal angle. The adjustment is
(adjusted pwr) = (on-angle pwr) - deff * (ideal blade stroke - actual blade stroke)**2
(m) The speed-load reference of the governor is initialized to correspond to the initial turbine output.
For initialization, linkages with backlash and deadband are taken to be at the midpoint of the
backlash/deadband.
(n) When the curves describing the relationship between gate servo stroke and power are set up from
test data, they must be corrected to account for generator losses and for the difference between
Copyright 2017 General Electric International. Inc. All Rights
Reserved. This material may not be copied or distributed in whole or
in part, without prior written permission of the copyright owner
the operating head and rated head, as follows:
i. Increase the measured generator power by the generator stator losses
ii. State adjusted measured power in per unit of turbine power base, Tbase
iii. Correct power to account for the head in the test condition
In the foregoing Mbase is the generator MVA base and Ptbase is the turbine MW base.
(o) The ’speed’ input to the governor is the turbine shaft speed if the time constant, tsp>=0, or
frequency of the generator terminal voltage if the time constant, tsp<0. The speed/frequency
transducer time constant is the absolute value of tsp.
(p) The parameters buf and buv describe the effects of the closing rate buffer on the gate servomotor.
The buffer takes effect when the gate servomotor stroke is less than buf and limits the gate closing
rate to buv per unit per second.
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
ic
1 branch current
2 branch power
3 bus frequency difference (freq. at bus mf - freq. at bus mt)
4 bus voltage
5 bus frequency
c) Hvdcau always takes its input signal from the monitored buses, <mf> and <mt>.
<mf> and <mt> are part of model invocation. The monitored from bus entry,
<mf>, must always be present; the monitored to entry is needed for input signal
modes 1, 2, and 3.
The hvdcau invocation shown above is associated with the following invocation
of the epcdc model:
epcdc 1111 "BUSNAME1" 345.00 "r " 2222 "BUSNAME2" 345.00 "i " 1 : #1
"dcbusr" 5.0000 …etc.
Output Channels:
Record
Level Name Description
Reference
Signal
Maxin Maxout
s1 s0 s2 s3 s4 s5
Minin Minout
Model Name: hyg3
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
d) Note that this model differs from that defined in the IEEE modeling guideline paper
in that the limits on gate position and velocity do not permit "wind up" of the
upstream signals.
f) The nonlinear gain between gate position and power may be input with up to 6 points.
The (0.,0.) and (1.,1.) points are assumed and need not be input. The output is not
allowed to go beyond 0. and 1. However, if pmax > 1., the input and output are
scaled by pmax.
If gv1 is input as a negative number, the default hydro curve (see section 3.10.2) will
be used. If input is omitted or if all zero values are input, a straight line is used.
Output Channels:
Record
Level Name Description
Pelec
w = (speed - 1) pu
1
1 + sTt
S6
relec rgate
k2
_ _ +
w 1
_ ki +
1 + sTd s
+ S2
S0 +
Pref sk1
db1
1 + sTf
S1
Pref if cflag>0
db1 Pmax
+ +
w 1 sk1 ki CV
_ s
1 + sTd 1 + sTf + _
S1 + _ S2 if cflag<0
S0 Pmin
s 2 k2 relec rgate
(1+sTf) 2
S6
S7, S8
1
1 + sTt
Pelec
CV kg 1 Gv
+ 1 + sTp s
_ S4
S3
Velcl Pmin
X w
Dturb
_
Pgv
Gv Pgv 1 q Pmech
NGV X
H
_ X At
q/Pgv sTw + +
Gv + _
S5
H0 qn1
Model Name: hygov4
Parameters:
**** The parameter hdam appears in the list twice. The second entry is required only
when the parameters following it are to be included in the list. The value of hdam in the
second entry, when present and > 0., overrides the first entered value.
Notes:
a) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
b) The gates travel over a range of 1.0 per unit from fully closed to fully opened. The
gates are at a position greater than zero at zero power and, normally, less than 1.0
when power is 1.0 p.u. Gmax and Gmin are operating limits.
h) The simple turbine model is selected by omitting GV0 and all following parameters
from the parameter list. (Note - you could set GV0 and all following parmaters to
zero, except hdam which should be set to the the appropriate nonzero value to
describe the available head)
The simple model will normally have a value slightly greater than unity for At and a
value in the range 0 - 0.15 for qnl.
i) The Francis/Pelton turbine model is invoked by specifying values for GV0, Pgv0,
through GV5, Pgv5 as shown in figure C. The values of GV0 - GV5 must be in
increasing order and GV5 must be less than unity. The values of Pgv0 must be in
increasing order and the value of Pgv5 must be less than unity. If GV0 is greater
than 0., the first two data points will be used to extrapolate downward for gate
positions less than GV0.
The curve described by GV0 - Pgv5 describes the relationship of flow through the
turbine to stroke of the gate actuating servomotor. This curve is proportional to
turbine power, with the constant of proportionality being a function of available
head. This constant must be specified by the turbine gain, At.
If GV0 is input as a negative number, the default hydro curve (see section 3.10.2)
will be used. If input is omitted or if all zero values are input, a straight line is used.
This option is provided for compatibility with older data bases of the now-
discontinued WSCC dynamic simulation program and should be used only when
needed for that compatibility.
Record
Level Name Description
Block Diagram:
Pref
db1 uo Pmax
db2
eps 1 1
Tg( 1 + sTp) s
s0 s1
uc Pmin gv
Rperm
s Tr rtemp
X
1 sTr
s2
Dturb
pgv h q
pgf 1 + bld / bmax af .. 1
X X At
1 + bgf / bmax q s Tw
gv pmech
q af s3
hdam qnl
bgv bgf 1 bld
gv 1 sTblade
s5
slope=At
b=power at 1 per unit flow,
normally >1
0.0
(gv3,Pgv3)
(gv2,Pgv2)
(gv1,Pgv1)
0.0
(gv0,Pgv0)
at (gv3,Pgv3)
Programmed
Value Blade Angle
(gv3,Bgv3)
(gv2,Pgv2)
Power with
Blade
(gv1,Pgv1) at Minimum
Angle
0.0
(gv0,Pgv0)
(gv2,Bgv2)
(gv0,Bgv0) (gv1,Bgv1)
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Bus Numbers are assigned as done in load flow. The user is permitted to represent
up to 4 units with this model. In event there are less than 4 units the user may set the
value for ibus(i) to 0.0 and this will disable the portion of the model, which performs
the dynamics for the ith unit.
b) User is permitted to represent more than 1 unit on the low side of the generator step
up transformer, making use of individual ID.
c) The values for ID are floating point and are limited to 1, 2, 3 and 4. The user cannot
have two units on the same bus with the same ID.
d) User can change plant response by setting generator status in load flow in the
generator record block or by changing Bus Type to 1 to disable the unit. The
generator that is defined by the bus number, bus name, KV and ID after HYGOV8 in
the invocation in DYD must have dispatched in load flow, or the model status will be
set to 0.
e) The nonlinear gain between gate position and power may be input with up to 6
points. The (0,0) and (1,1) points are assumed and need not be entered. The output
is not allowed to go below 0. And above 1.0. If the input is all zero values, then a
straight line is used.
f) The values for the water starting time are calculated as follows:
Note that all the elements in the column will have the value for flow of the ith unit.
The summation of lengths divided by area includes the total length for the ith unit
for the term on the diagonal from the intake to the exit at the draft tube. The off
diagonal term in the ith column will have summation of lengths divided by area of
the ith unit, in which section of the conduit is shared with the jth unit. The term H
is the net head and the term g is the acceleration of gravity (32.174 ft/sec2 or 9.81
m/ sec2).
Output Channels:
Record
Level Name Description
Block Diagram:
Pe1
1
Turb1
Gmax1 + 0.02
rpe1
1 + sTT1 Kigov
rgate1 s
VOP1 Gmax1
_ _ Gmin1 + 0.02
+
speed1 + Kg1 1
1.0
_ Kpgov
+ +_ 1 + sTp1 s
+ +
db1
Pref
VCL1 Gmin1
s Kdgov
1 + sTF1
1.0
_
speed1
Pgv1 X
pgv1 q1 +
Gv1
q1/pgv1
Dturb1
X qNL1 h1
h1
_ _ _
Ho h1 q1
Aturb1 X Turb1
+ + + Pm1
h2 q2 (MW)
[ Tw ]-1
h3 s q3
h4 q4
Model Name: hygov
Parameters:
Notes:
a) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
b) The gates travel over a range of 1.0 per unit from fully closed to fully opened. The
gates are at a position greater than zero at zero power and, normally, less than 1.0
when power is 1.0 pu Gmax and Gmin are operating limits.
The simple model will normally have a value slightly greater than unity for At and a
value in the range 0 - 0.15 for qnl.
i) The Francis/Pelton turbine model is invoked by specifying values for GV0, Pgv0,
through GV5, Pgv5 as shown in figure C. The values of GV0 - GV5 must be in
increasing order and GV5 must be less than unity. The values of Pgv0 must be in
increasing order and the value of Pgv5 must be less than unity. If GV0 is greater
than 0., the first two data points will be used to extrapolate downward for gate
positions less than GV0.
The curve described by GV0 - Pgv5 describes the relationship of flow through the
turbine to stroke of the gate actuating servomotor. This curve is proportional to
turbine power, with the constant of proportionality being a function of available
head. This constant must be specified by the turbine gain, At.
If GV0 is input as a negative number, the default hydro curve (see section 3.10.2)
will be used. If input is omitted or if all zero values are input, a straight line is used.
This option is provided for compatibility with older data bases of the now-
discontinued WSCC dynamic simulation program and should be used only when
needed for that compatibility.
j) The Kaplan turbine model is invoked by specifying values for Bgv0 - Bgv5 as
shown in figure D, and by bmax. For the Kaplan turbine model the curve GV-Pgv
describes the relationship of turbine flow to gate position when the turbine blade
angle is in the position given by the GV-Bgv curve. The values of Bgv0 - Bgv5
must be a monotonically increasing sequence. Bgv0 may be greater than zero and
all values must be less than or equal to unity.
To use this spread sheet enter proposed values of the curve of power versus gate
opening in the column 'PminB' and proposed values of blade angle in the column
'Bgv' (Use the green cells). The resulting values of turbine power/flow to be used as
the parameters, Pgv, are displayed in the column 'Pgv'. The value to be used for the
parameter bmax is displayed.
The value of qf is modified as follows, where Bgv is the output of the Gv-Bgv
function and Pgv is the output of the Gv-Pgv function:
Bgv
1 b max
qf Pgv 1 sTblade
1 Bgv
b max
Output Channels:
Record
Level Name Description
Block Diagram:
pref
db1 Gmax
S2
1 sTn 1 sTr
1 1
1 sTnp 1 sTf rsTr 1 sTg
db2
S4 S0 S1 S2
Gmin
rate limit - Velm
R
X
Dturb
Pgv H q
gv qf
1
/
q
X
s Tw
X At pmech
(gate)
qf
S3
1.0 qn1
Note g.
b
Notes:
slope=At
b=power at 1 per unit flow,
normally >1
0.0
(gv2,Pgv2)
(gv1,Pgv1)
0.0
(gv0,Pgv0)
(1,0,1.0)
(gv5,Pgv5) (1,0,1.0)
1.0
(gv4,Pgv4)
Power with (gv5,Bgv5)
Blade Angle (gv4,Bgv4)
Turbine Power, p.u.
at (gv3,Pgv3)
Programmed
Value Blade Angle
(gv3,Bgv3)
(gv2,Pgv2)
Power with
Blade
(gv1,Pgv1) at Minimum
Angle
0.0
(gv0,Pgv0)
(gv2,Bgv2)
(gv0,Bgv0) (gv1,Bgv1)
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
e) The nonlinear gain between gate position and power may be input with up to 6
points. The (0.,0.) and (1.,1.) points are assumed and need not be input. The output
is not allowed to go beyond 0. and 1. However, if pmax > 1., the input and output are
scaled by pmax.
If Gv1 is input as a negative number, the default hydro curve (see section 3.10.2) will
be used. If input is omitted or if all zero values are input, a straight line is used.
Output Channels:
Record
Level Name Description
w = (speed - 1) pu
Pref
gmax
db1
+
w 1 1 + sT1 1 + sT3 1 + sT5 1 + sT7 ki CV
_
1 + sTd 1 + sT2 1 + sT4 1 + sT6 1 + sT8 _ s
S2
S0 S1, S7, S8, S9
gmin
R
( Tt = 0 )
1
1 + sTt
Pelec
S6
( Tt = 0 )
Velop Pmax
db2
CV kg 1 Gv
+ 1 + sTp s
_
S3 S4
Velcl Pmin
X w
Dturb
_
Pgv
Gv Pgv H 1 q Pmech
NGV X _ X At
q/Pgv sTw + +
Gv + _
S5
H0 qn1
Model Name: hypid
Parameters:
Notes:
b) The gates travel over a range of 1.0 per unit from fully closed to fully opened. The
gates are at a position greater than zero at zero power and, normally, less than 1.0
when power is 1.0 p.u. Gmax and Gmin are operating limits.
g) The simple turbine model is selected by omitting GV0 and all following parameters
from the parameter list. (Note - you could set GV0 and all following parameters to
zero, except hdam which should be set to the the appropriate nonzero value to
describe the available head)
The simple model will normally have a value slightly greater than unity for At and a
value in the range 0 - 0.15 for qnl.
h. The Francis/Pelton turbine model is invoked by specifying values for GV0, Pgv0
thru GV5, Pgv5 as shown in figure C. The value of GV0 must be zero. The values
of GV0 - GV5 must be in increasing order and GV5 must be less than unity.
increasing order and the value of Pgv5 must be less than unity. The valuesof Pgv0
must be in increasing order and the value of Pgv5 must be less than unity..
The curve described by GV0 - Pgv5 describes the relationship of flow through the
turbine to stroke of the gate actuating servomotor. This curve is proportional to
turbine power, with the constant of proportionality being a function of available
head. This constant must be specified by the turbine gain, At.
If GV0 is input as a negative number, the default hydro curve (see section 3.10.2)
will be used. If input is omitted or if all zero values are input, a straight line is used.
This option is provided for compatibility with older data bases of the now-
discontinued WECC dynamic simulation program and should be used only when
needed for that compatibility.
i. The Kaplan turbine model is invoked by specifying values for Bgv0 - Bgv5 as
shown in figure D, and by bmax. For the Kaplan turbine model the curve GV-Pgv
describes the relationship of turbine flow to gate position when the turbine blade
angle is in the position given by the GV-Bgv curve. The values of Bgv0 - Bgv5
must be a monotonically increasing sequence. Bgv0 may be greater than zero and
all values must be less than or equal to unity.
To use this spread sheet enter proposed values of the curve of power versus gate
opening in the column 'PminB' and proposed values of blade angle in the column
'Bgv' (Use the green cells). The resulting values of turbine power/flow to be used as
the parameters, Pgv, are displayed in the column 'Pgv'. The value to be used for the
parameter bmin is displayed.
Output Channels:
Record
Level Name Description
Block Diagram:
Figure A Hypid Transfer Function Model
(1,0,1.0)
(gv5,Pgv5) (1,0,1.0)
1.0
(gv4,Pgv4)
Power with (gv5,Bgv5)
Blade Angle (gv4,Bgv4)
Turbine Power, p.u.
at (gv3,Pgv3)
Programmed
Value Blade Angle
(gv3,Bgv3)
(gv2,Pgv2)
Power with
Blade
(gv1,Pgv1) at Minimum
Angle
0.0
(gv0,Pgv0)
(gv2,Bgv2)
(gv0,Bgv0) (gv1,Bgv1)
Parameters:
EPCL Default
Variable Data Description
Notes:
Lp penstock length
Vp velocity in penstock at rated flow
g gravity
H nominal total head (headwater elevation - tailwater elevation)
Lt length of tunnel
Vt flow velocity in tunnel at rated flo
d) The surge tank may have a change in cross section area at an elevation that may be
above or below head-water elevation. The change of cross section occurs at a level
specified by h2, where
e) The surge tank cross sections are specified by As1 and As2 which are time
constants, in seconds, given by
As = aH/Q
where
Output Channels:
Record
Level Name Description
1 pm Turbine power, MW
1 gate Gate Opening
1 htnk Surge Tank Level
1 hscr Scroll case head
Block Diagram:
Pref
Rperm
Pgen
1 sTreg
S0
speed Ki 1 1
Kp
s 1 sTa 1 sTa
S1 S3 S4
sKd
1 sTa
S2
gmax
pgv
Pmech
1
G (s)
1 sTb
gv
S5 S6, S7, S8
gmin
D
Model Name: ieeeg1
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Per unit parameters are on base of total turbine MW capability. If no value is entered
for "mwcap", the generator MVA base is used. (If there are two generators, the sum
of the MVA bases is used.)
b) T3 must be greater than zero. All other time constants may be zero.
c) <nh> <nameh> <kvh> <idh> identify the first of two generators controlled by this
governor. These must identify a generator that is in the working case.
<nl> <namel> <kvl> <idl> identify the second of two generators controlled by this
governor. These may be omitted if only one generator is controlled.
d) The two generators identified by the invocation of this model are normally the high
and low pressure machines, respectively, of a cross compound steam turbine set, or
the gas and steam turbine machines of a combined cycle plant. The second machine
may be absent and, in this case, the model can be used to approximate the behavior of
a wide range of types of single shaft turbine.
e) If the two generators identified in the invocation of this model are not connected to
same bus, then ieeeg1 needs to be placed at the end of the dynamic file and the
dynamic file must be read with the sort option turned off. An alternate approach to
handling generators connected to different buses is to read ieeeg1 from a separate
dynamic file after the data for the other models has been read.
f) The gains K1-K8 and time constants T5-T7 describe the division of power output
among turbine stages and the transfer of energy in the boiler or combustion prime
mover.
g) ) Each generator must be represented in the load flow by data stated on its own MVA
base. The values of K1, K3, K5, K7 must be specified to describe the proportionate
development of power on the first turbine shaft. K2, K4, K6, K8 must describe the
second turbine shaft. Normally
K1 + K3 + K5 + K7 = 1.0
K2 + K4 + K6 + K8 = 1.0
The division of power between the two shafts is in proportion to the values of
MBASE of the two generators. The initial condition load flow should, therefore,
have the two generators loaded to the same fraction of the MVA base.
i) The nonlinear gain between gate position and power may be input with up to 6 points.
The (0.,0.) and (1.,1.) points are assumed and need not be input. The output is not
allowed to go beyond 0. and 1. However, if Pmax > 1., the input and output are
scaled by Pmax.
If GV1 is input as a negative number, the default full-arc steam valve curve (see
section 3.10.2) will be used. If input is omitted or if all zero values are input, a
straight line is used.
Output Channels:
Record
Level Name Description
Block Diagram:
K (1 sT 2 ) 1 1 1 1 1 1
1 sT1 T3 s 1 sT 4 1 sT5 1 sT6 1 sT7
Model Name: ieeeg3
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
b) Tr, Tg, Tw, Kturb, and Bturb must be greater than zero.
d) Note that this model differs from that defined in the IEEE modeling guideline paper
in that the limits on gate position and velocity do not permit "wind up" of the
upstream signals.
f) The nonlinear gain between gate position and power may be input with up to 6 points.
The (0.,0.) and (1.,1.) points are assumed and need not be input. The output is not
allowed to go beyond 0. and 1. However, if Pmax > 1., the input and output are
scaled by Pmax.
If GV1 is input as a negative number, the default hydro curve (see section 3.11.2)
will be used. If input is omitted or if all zero values are input, a straight line is used.
g) For compatibility with older versions of this model, if old-style turbine parameters
(a11, a13, a21, a23) are read from a "dyd" file, they are automatically converted to the
new form (Kturb, Aturb, Bturb).
Output Channels:
Record
Level Name Description
Block Diagram:
db2
pref
uo Pmax
db1
Pgv
Gv Pmech
1 1 1 Pgv Kturb(1 AturbsTw )
1 sTp Tg s 1 BturbsTw
Gv
S0 uc S1 S3
Pmin
Rperm
Rtemp sTR
1 sTR
S2
Model Name: ieeest
Parameters:
EPCL Default
Variable Data Description
Notes:
e) The input signal code, j, and the remote bus number, k, specify the input signal used
by the stabilizer. If k is zero the signal is taken from the shaft or terminals of the
generator on which the stabilizer is located. If k is non-zero the signal is taken from
bus number k ( for j = 1, 2, 3, 4, or 5 ). The input signal code, j, is:
Output Channels:
Record
Level Name Description
Block Diagram:
Input 1 1+ A5 s + A6 s2
e-s Tdelay
Signal 1 + A1 s + A2 s2 1 + A3 s + A4 s2
Lsmax
Vl l o u t Vs
s T5 1 + s T1 1 + s T3 Output
Ks
1 + s T6 1 + s T2 1 + s T4 Limiter
S0 S1 S2
Lsmin
Output Limiter
Vct = Compensating
voltage
( genbc[k].vcomp )
Model Name: ieeet1
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Ka, Ta, Te, Tf must be greater than zero. If Tr is zero, the corresponding block is
bypassed.
b) If Ke is entered as zero, the model calculates an effective value of Ke such that the
initial condition value of Vc is zero. The zero value of Ke is not changed. If Ke is
entered as non-zero, its value is used directly, without change.
c) If Vrmax <= 0., an effective maximum control value of Vrmax is determined, such
that the control signal, Vc, has the value Vrmax when the exciter output is equal to
E2.
d) Saturation parameters is given by the IEEE saturation factor definition using the open
circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may be
the higher value and the other the lower value if the input value of Vrmax > 0; else
E2 must > E1.
Output Channels:
Record
Level Name Description
Block Diagram:
Se
Speed
Vref
Vrmax X
Vc
+ -
1 + + 1
ka Efd
1 + sTr
X
Ec - - 1+ sTa Vc Ke + sTe
+
S0 S2
S1
Vrmin
Vs
sKf
1+ sTf
S3
Model Name: ifmaz
Invocation: ifmaz ! ! ! ! :
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model sums up the MW and MVAR flows on all lines and transformers that
originate in area or zone <zf> and terminate in area or zone <zt>. Specify whether
area or zone is to be used by setting <az> to 0 or 1, respectively.
Output Channels:
Record
Level Name Description
Invocation: ifmon ! ! ! ! :
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model records the MW and MVAR flow on all interfaces defined in the load
flow interface table. These flows are the summations of the interface branch flows
multiplied by their participation factors for the interface as defined in the load flow
interface branch table.
Output Channels:
Record
Level Name Description
Invocation: imetr [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>} <ck>
<sec>:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) nf identifies the "from" end of the branch; nt identifies the "to" end. The branch must
be identified in imetr with the metered end first, regardless of its direction in the load
flow line or transformer table.
b) Tf may be zero.
c) If the branch does not exist output channels are assigned by imetr but no signals are
recorded in them.
d) The current seen by imetr is the total current flowing into the line at its from
terminal, including current flowing into charging capacitance and any line-connected
shunts.
e) <id> is ignored if entered on the data record. A “!” can be entered instead.
f) To obtain the flow into a particular winding for a 3-winding transformer, the imetr
“from” bus must be the transformer “from”, “to”, or “tert” bus, and the imetr “to” bus
must be the transformer “3wpt” bus (internal star point bus). For flow out of a
winding, the imetr “from” bus must be the transformer “3wpt” bus and the imetr
“to” bus must be the desired winding terminal bus.
g) The pul output for a line is the per unit line current divided by the rated current (rated
MVA converted to a p.u. current). For a transformer, pul is the MVA flow divided
by the rated MVA. The rating that is used is as specifed in parm\check or by
casepar[0].rating_no in the javaini.p file or in the user’s epcl execution file.
h) The model should only be attached to branch which is not a jumper. PSLF would not
compute flow on jumpered branches in dynamic simulation.
Output Channels:
Record
Level Name Description
Block Diagram:
Voltage
1 MW, MVAR
1 sTf
Current
Current
Model Name: lcfb1
Parameters:
EPCL Default
Variable Data Description Note
Notes:
a) This model represents a supervisory turbine load controller that acts to maintain
turbine power at a set value by continuous adjustment of the turbine governor speed-
load reference. This model is intended to represent slow reset 'outer loop' controllers
managing the action of the turbine governor.
c) The load reference of this supervisory load control loop is accessible as the
parameter, Pmwset. Pmwset is given a value automatically when the model is
initialized. This value overwrites any value entered prior to initialization. This
parameter may therefore be omitted from the parameter list in the "dyd" file, and
should not be manipulated by manual operation or an EPCL program prior to
execution of the 'init' command.
d) The load controller is enabled by setting the flag, pbf, to 1, and disabled by setting
fbf to zero.
e) The frequency bias function is enabled by setting the flag, fbf,to 1, and disabled by
setting fbf to zero.
f) The controller acts by applying a bias to the turbine-governor speed load reference,
pref. This reference is initialized in the normal manner by the turbine-governor
model. After the execution of the init command, the original value of the reference
is displayed by the edic command. Because the load reference is managed by this
model, the value of pref should not be changed from the edic command after init has
been executed. (Unless one really knows what one is doing!).
g) The output of the controller is limited to plus or minus lrmax. To prevent the
controller from adjusting the turbine power excessively, lrmax should not exceed
approximately one half of the governor droop or approximately 0.025 per unit.
h) The error limit, emax, is intended to set a maximum rate of change of turbine power.
If limitation of load change rate is desired emax should be set to
Note that that governor droop used in this calculation must be in per unit relative to
the base power, mwcap, of the turbine.
Note, also, that some governor models (such as ieeeg1) have their droop specified by
the value of a gain whose value is the reciprocal of the droop. For example, in ieeeg1
the droop is specified by the gain, K, whose typical value is 1/0.04 = 25.
i) This model recognizes the two alternative ways of specifying the turbine-governor
load reference. In models such as ggov1 and hygov, the reference is a speed
setpoint. In other models such as ieeeg1 the reference is a per unit load value.
The parameters of lcfb1 must always be set on the basis of a governor speed
reference, except for the first parameter, type, which should be set as follows:
j) Kdrp is set to one if the flag indicating the type of turbine governor is zero. If the
flag indicating the type of turbine governor is not zero, then Kdrp is set to the value
entered in the dyd file (if there is no value for Kdrp in the dyd file, Kdrp is set to 25).
hygov ieeeg1
ggov1 gast
tgov1 hyst1
gegt1 pidgov
ieeeg3 tgov3
hygov4 w2301
g2wscc
gpwscc
hyg3
Output Channels:
Record
Level Name Description
Freq
1.0
fb Kp lrmax
emax
-db
Kdrp
Pmwset db lrmax
Pref
-emax
Ki
1 -lrmax
s
1 + sTpelec Pref0
s0 s1
-lrmax
Pgen
Model Name: ld1pac
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model is used to represent a fraction of an ordinary load as "single phase air
conditioner" motor load. It allows load that is treated as ordinary constant power in
load flow work to be represented by an A/C model in dynamic simulation. This
model is intended for representation of aggregations of many air conditioners
dispersed through a load represented at a high voltage bus
b) Ld1pac treats a fraction of the constant power part of a load as an equivalent air
conditioner load. When the INIT command is executed, ld1pac, moves a fraction,
Pul, of the load from load.p to load.pm; that is
The reactive power demand of the air conditioner compressor motor is calculated as a
function of voltage at the load bus and is stored in load.qm. This reactive power
demand may be less than or greater than the constant Q component of the load. If the
motor’s reactive demand is greater than the constant Q component of the load, ld1pac
places a capacitor at the terminals of the motor so the total Q is equal the constant Q
reactive load, and load.q is set to zero. If the compressor motor’s Q demand is less
than the constant Q load, the motor’s Q is subtracted from load.q. The remaining
load.q is modeled by whatever other load model, e.g. alwscc, applies to that bus.
c) Ld1pac can be used with static load models such as alwscc. However, the order that
the models are called will affect the amount of load represented as air conditioner.
Ld1pac treats a fraction of the constant power load as motor. If a static load model is
called before ld1pac, ld1pac will work with only that part of the load that is still
constant power. If ld1pac is called before the static load model, the static load model
will work with the portion of load not represented as motor.
d) Tripping the load by setting load.st to zero removes the entire load, including the
ld1pac component and the capacitor from the system. A load that includes a ld1pac
component may not be reconnected to the system after it has been tripped by setting
load.st to zero.
e) Per unit parameters are on the load’s MVA base specified in the .dyd file. This value
is specified using "mva=<value>" following the colon (and reporting level). If this
is not specified, the MVA base is set to load.mbase from the load flow data. If
load.mbase is zero, the motor MVA base and load.mbase are set to load.pm.
g) Motor stalling – If the terminal voltage drops below Vstall for Tstall seconds, the
motor stalls. The current drawn by the stalled motor is represented by a constant
impedance load (Rstall + jXstall). If the voltage recovers to above Vrst for Trst
seconds, the fraction Frst of the load restarts. The portion of the load which is not
allowed to restart is referred to as the “A” load and the portion that can restart is
referred to as the “B” load.
h) There are three devices included in the model which may trip all or part of the load:
a. Contactor – If the voltage drops to below Vc2off, all of the load is tripped; if
the voltage is between Vc1off and Vc2off, a linear fraction of the load is
tripped. If the voltage later recovers to above Vc2on, all of the motor is
reconnected; if the voltage recovers to between Vc2on and Vc1on, a linear
fraction of the load is reconnected. The fraction of the load that has not been
tripped by the contactor is output as “fcon”.
b. Undervoltage relay – Two levels of undervoltage load shedding can be
represented: If the voltage drops below uvtr1 for ttr1 seconds, the fraction
“fuvtr” of the load is tripped; If the voltage drops below uvtr2 for ttr2
seconds, the fraction “fuvtr” of the load is tripped. Load tripped by the
undervoltage relay is not reconnected. The fraction of the load that has not
been tripped by the undervoltage relayr is output as “fuvr”.
c. Thermal overload protection – When the motor is stalled, the “temperature”
of the motor is computed by integrating I^2 R through the thermal time
constant Tth. If the temperature reaches Th2t, all of the load is tripped. If
the temperature is between Th1t and Th2t, a linear fraction of the load is
tripped. The “termperatures” of the “A” and “B” portions of the load are
computed separately. The fractions of the “A” and “B” parts of the load that
have not been tripped by the thermal protection is output as “fthA” and
“fthB”, respectively.
i) Note that the output channels for power and reactive power variables use load
convention.
Current AC Stall threshold
Proposed AC Stall threshold
When the voltage is below the highest value in the table (0.57), the corresponding value
of Tstall is found by interpolating the table. If the voltage is less than the minimum value
in the table (0.46), Tstall is set to 3 cycles. Tstall will change at each time step as V
varies. This is used in the following equation:
(where delt is time step in sec. and fo is nominal system frequency in Hz.)
When timer reaches 1, the motor stalls (i.e. stays on the stall characteristic even when the
voltage recovers). If voltage becomes greater than 0.57 before “stall” occurs, the timer is
reset to 0.
Output Channels:
Record
Level Name Description
Block Diagram:
Model Name: ldelec
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The electronic load model is constant P and Q for voltage greater than Vd1. The P
and Q are decreased linearly to zero between voltages Vd1 and Vd2. If frcel is
greater than zero, the frcel fraction of the load that was tripped will be reconnected
linearly as the voltage recovers.
Output Channels:
Record
Level Name Description
Block Diagram/Equations:
if( Vt < Vmin ) Vmin = Vt
if( Vmin < Vd2 ) Vmin = Vd2
Prerequisites: None
Parameters:
EPCL Default
Variable Data Description
Notes:
b) Ldtrpmon should be invoked with the number of a bus in the load flow case, but this
bus number is used for check purposes only and has no effect on the outputs from the
model.
d) The parameter Plotno is used to assign the model's outputs to a convenient “plot
number” in the “P” column of the View table. It is normally chosen to be different
from any bus number in the system. Zero is acceptable.
In the Plot View table, the channels are described as shown in the table below. In order to
identify which group (area, zone, owner, ba) the channels are associated with, the
following will be displayed:
Column Value
Name Group type (area, zone, owner, or ba)
To Number Group number
To Name Group name
The maximum MW tripped during the run can be viewed in the Vmax column of the Plot
View table for each of the “x” channels.
Record
Level Name Description
1 Pld Total load active power at high side bus, MW
1 xshn Nominal value of load shed, MW
1 xton Nominal value of load tripped, MW
1 xtoi Instantaneous value of load tripped and shed, MW
1 Pdg Distributed Generation P, MW
1 xdgn Nominal value of distributed generation tripped, MW
1 xdgi Inst. value of distributed generation tripped and shed , MW
2 Pst Static load P, MW
2 Pel Electronic load P, MW
2 Pma Motor A P, MW
2 Pmb Motor B P, MW
2 Pmc Motor C P, MW
2 Pmd Motor D P, MW
2 xeln Nominal electronic load tripped, MW
2 xman Nominal motor A load tripped, MW
2 xmbn Nominal motor B load tripped, MW
2 xmcn Nominal motor C load tripped, MW
2 xmdn Nominal motor D load tripped, MW
2 xeli Instantaneous electronic load tripped and shed, MW
2 xmai Instantaneous motor A load tripped and shed, MW
2 xmb Instantaneous motor B load tripped and shed, MW
2 xmci Instantaneous motor C load tripped and shed, MW
2 xmdi Instantaneous motor D load tripped and shed, MW
Model Name: lhfrt
Parameters:
EPCL Default
Variable Data Description
fref 60.0 Delta frequency is computed with respect to fref (See Note a)
dftrp1 0.0 Delta frequency trip level (See Note a)
dftrp2 0.0 Delta frequency trip level
dftrp3 0.0 Delta frequency trip level
dftrp4 0.0 Delta frequency trip level
dftrp5 0.0 Delta frequency trip level
dftrp6 0.0 Delta frequency trip level
dftrp7 0.0 Delta frequency trip level
dftrp8 0.0 Delta frequency trip level
dftrp9 0.0 Delta frequency trip level
dftrp10 0.0 Delta frequency trip level
dttrp1 0.0 Frequency trip time, sec. (See Note f)
dttrp2 0.0 Frequency trip time, sec.
dttrp3 0.0 Frequency trip time, sec.
dttrp4 0.0 Frequency trip time, sec.
dttrp5 0.0 Frequency trip time, sec.
dttrp6 0.0 Frequency trip time, sec.
dttrp7 0.0 Frequency trip time, sec.
dttrp8 0.0 Frequency trip time, sec.
dttrp9 0.0 Frequency trip time, sec.
dttrp10 0.0 Frequency trip time, sec.
alarm 0.0 If greater than zero, no tripping action is enforced; a
message is printed when a trip level is exceeded.
Notes:
The Delta frequency trip levels (dftrp) are expressed in Hz when fref is the nominal
frequency, e.g., fref = 60, and in p.u. when fref = 1.
b) The monitored bus used to compute the delta frequency trip levels is the generator
terminal bus unless there is a to-bus ([<nr>] {<namer> <kvr>}) specified in the
invocation of lhfrt. In the latter case, the monitored bus is the to-bus. Below is an
example of how to invoke lhfrt when the monitored bus is i) the terminal bus of the
generator associated with lhfrt, and ii) a bus other than the generator terminal bus.
In the example, the generator associated with lhfrt is connected to bus 12345:
c) lhfrt should not be used with models that already include frequency protection.
d) A delta frequency trip level and its corresponding frequency trip time should not both
be zero if subsequent entries of delta frequency trip levels and frequency trip times
are not all zero.
e) The following example illustrates the invocation and data of lhfrt for the immediate
tripping of a generator connected at bus 15 if the frequency measured at bus 12
reaches 60.9 Hz (dftrp1 = 0.9, dttrp1 = 0.0 ) or 58.0 Hz (dftrp3 = -2.0, dttrp3 = 0.0), the
generator is also tripped if the frequency remains below 59.0 Hz for four seconds
(dftrp2 = -1.0, dttrp2 = 4.0):
lhfrt 15 "DFIG- NEW " 0.57 "1 " 12 "WF HIGH " 230.00 : #9/
"fref " 60.00 /
"dftrp1" 0.9 "dftrp2" -1.0 "dftrp3" -2.0 "dftrp4" 0.0 "dftrp5" 0.0 /
"dftrp6" 0.0 "dftrp7" 0.0 "dftrp8" 0.0 "dftrp9" 0.0 "dftrp10" 0.0 /
"dttrp1" 0.0 "dttrp2" 4.0 "dttrp3" 0.0 "dttrp4" 0.0 "dttrp5" 0.0 /
"dttrp6" 0.0 "dttrp7" 0.0 "dttrp8" 0.0 "dttrp9" 0.0 "dttrp10" 0.0
f) If dttrp[i] is less than or equal to zero, then, during the model initialization dttrp[i] is
set to twice the value of the integration step size.
g) The frequency used by this model (output channel frel) is set to 60 Hz when the
voltage drops below the voltage threshold dypar[].v_f_inh. The default value for this
threshold is 0.0 p.u and it is set in javaini.p.
h) The “fix bad data” option will do the following:
If fref is less than or equal to zero, set fref to 60.0
Output Channels:
Record
Level Name Description
Prerequisites:
Parameters:
EPCL Default
Variable Data Description
The Delta frequency trip levels (dftrp) are expressed in Hz when fref is the nominal
frequency, e.g., fref = 60, and in p.u. when fref = 1.
c) The monitored bus used to compute the delta frequency trip levels is the generator
terminal bus
d) lhfrta should not be used with models that already include frequency protection.
e) A delta frequency trip level and its corresponding frequency trip time should not both
be zero if subsequent entries of delta frequency trip levels and frequency trip times
are not all zero.
f) The following example illustrates the invocation and data of lhfrta for the immediate
tripping of a generator connected at bus 15 in area 40 if the frequency measured at
bus reaches 60.9 Hz (dftrp1 = 0.9, dttrp1 = 0.0 ) or 58.0 Hz (dftrp3 = -2.0, dttrp3 = 0.0),
the generator is also tripped if the frequency remains below 59.0 Hz for four seconds
(dftrp2 = -1.0, dttrp2 = 4.0):
g) If dttrp[i] is less than or equal to zero, then, during the model initialization dttrp[i] is
set to twice the value of the integration step size.
h) The frequency used by this model is set to 60 Hz when the voltage drops below the
voltage threshold dypar[].v_f_inh. The default value for this threshold is 0.0 p.u and
it is set in javaini.p.
Parameters:
EPCL Default
Variable Data Description
b) The model should not be used with models that already include speed protection.
c) The data should be entered sequentially, e.g., dstrp1 and dttrp1 with value zero,
followed by non-zero entries is not allowed.
An example of the model invocation is shown below (values are not associated with a
real machine)
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Time (sec)
V (%) V (pu) ZVRT LVRT
75 -0.25 1.9 1.7
50 -0.50 1.2 1.1
30 -0.70 0.7 0.7
15 -0.85 0.2 0.02
110 0.10 1.0 1.0
115 0.15 0.1 0.1
140
120
100
Voltage [ % ]
80
ZVRT
60
40
20
0
0.7 1.2 1.9
-1.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0
0.1 0.2
Time [sec]
140
120
100
Voltage [ % ]
80
LVRT
60
40
20
0
0.7 1.1 1.7
-1.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0
Time [sec]
g) If dttrp[i] is less than or equal to zero, then, during the model initialization dttrp[i] is
set to twice the value of the integration step size.
Output Channels:
Record
Level Name Description
Prerequisites:
Parameters:
EPCL Default
Variable Data Description
c) If the Dv exceeds a particular trip level (dvtrp), a timer is started for that trip level. If
Dv continues to exceed the trip level when the timer reaches the corresponding trip
time (dttrp), a message is written and, if alarm = 0, the generator is tripped. If,
before the trip time is reached, Dv falls below the trip level, the timer is reset. Each
trip level is processed independently of the others.
d) The trip levels and corresponding trip times can be input in any order. If not all 10
trip levels are used, the remaining values should be input as 0.
e) There is no output to the chf file for plotting. Messages are written to the terminal
window, dynamic log file, and the event file when relay action occurs.
f) Examples of Zero Voltage Ride Through (ZVRT) and Low Voltage Ride Through
(LVRT) settings are given below.
Time (sec)
V (%) V (pu) ZVRT LVRT
75 -0.25 1.9 1.7
50 -0.50 1.2 1.1
30 -0.70 0.7 0.7
15 -0.85 0.2 0.02
110 0.10 1.0 1.0
115 0.15 0.1 0.1
140
120
100
Voltage [ % ]
80
ZVRT
60
40
20
0
0.7 1.2 1.9
-1.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0
0.1 0.2
Time [sec]
140
120
100
Voltage [ % ]
80
LVRT
60
40
20
0
0.7 1.1 1.7
-1.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0
Time [sec]
The model invocation in the dyd file for the LVRT case shown above is as follows:
Parameters:
EPCL Default
Variable Data Description
droop 0.04 Permanent droop, p.u
tplec 2.0 Electrical power transducer time constant, sec
t2 50.0 Ambient Temperature in degree F
p2 14.7 Ambient Pressure in psia
minflow 2400. Minimum fuel flow
fuel = 0 for natural gas, = 1 for liquid fuel
hphiref 10711 HP turbine high maximum speed reference
decref -4000 HP turbine maximum deceleration rate
accref 1000 HP turbine maximum acceleration rate
t48ref 1566 Temperature 48 maximum reference
t3ref 927 Compressor discharge temperature maximum reference
ps3ref 362 Compressor discharge pressure maximum reference
gascale 0.00005 Scale factor for natural gas valve
liqscal 0.00005 Scale factor for liquid fuel valve
kturb 1.376 Turbine gain
wfn 0.273 No load fuel flow, p.u
mph 2.0 HP inertia time constant
tcoupl1 3.0 Thermocouple time constant for t3
tcoupl2 3.0 Thermocouple time constant for t48
tps3 0.1 Pressure transducer time constant for ps3
dt 0.0 Mechanical damping coefficient, pu
td 0.1 Time constant for turbine
wf1n25 0.3204 Lookup table for n25 vs. fuel flow
wf2n25 0.5163 Lookup table for n25 vs. fuel flow
wf3n25 0.7467 Lookup table for n25 vs. fuel flow
wf4n25 0.9255 Lookup table for n25 vs. fuel flow
n251 8923.0 Lookup table for n25 vs. fuel flow
n252 9416.0 Lookup table for n25 vs. fuel flow
GE PSLF
General Electric International, Inc - Proprietary Information
n253 9891.0 Lookup table for n25 vs. fuel flow
n254 10200.0 Lookup table for n25 vs. fuel flow
wf1t3 0.3204 Lookup table for t3 vs. fuel flow
wf2t3 0.8275 Lookup table for t3 vs. fuel flow
wf3t3 0.9065 Lookup table for t3 vs. fuel flow
wf4t3 0.9255 Lookup table for t3 vs. fuel flow
t31 749.0 Lookup table for t3 vs. fuel flow
t32 955.8 Lookup table for t3 vs. fuel flow
t33 963.1 Lookup table for t3 vs. fuel flow
t34 971.0 Lookup table for t3 vs. fuel flow
wf1t48 0.3011 Lookup table for t48 vs. fuel flow
wf2t48 0.8275 Lookup table for t48 vs. fuel flow
wf3t48 0.9065 Lookup table for t48 vs. fuel flow
wf4t48 0.9255 Lookup table for t48 vs. fuel flow
t481 1050.0 Lookup table for t48 vs. fuel flow
t482 1458.0 Lookup table for t48 vs. fuel flow
t483 1466.0 Lookup table for t48 vs. fuel flow
t484 1484.0 Lookup table for t48 vs. fuel flow
n251ps3 3.4500 Lookup table for ps3 vs. fuel flow
n252ps3 5.9360 Lookup table for ps3 vs. fuel flow
n253ps3 10.2930 Lookup table for ps3 vs. fuel flow
n254ps3 13.2810 Lookup table for ps3 vs. fuel flow
ps31 202.2 Lookup table for ps3 vs. fuel flow
ps32 386.4 Lookup table for ps3 vs. fuel flow
ps33 415.8 Lookup table for ps3 vs. fuel flow
ps34 423.6 Lookup table for ps3 vs. fuel flow
tau1 3.0 Speed Control Lead Time Constant
tau2 0.7 Speed Control Lag Time Constant
kpsm 1.0 Multiplier for proportional gain of speed control
Notes:
Output Channels:
Record
Level Name Description
1 pm Turbine power, MW
1 wf Fuel Flow, p.u.
1 n2 HP turbine rotor speed, rpm
GE PSLF
General Electric International, Inc - Proprietary Information
1 ps3 HP compressor discharge pressure, psia
1 t48 LP power turbine inlet temperature, deg F
1 t3
Block Diagram:
GE PSLF
General Electric International, Inc - Proprietary Information
Model Name: lm6000
Parameters:
EPCL Default
Variable Data Description
Notes:
Output Channels:
Record
Level Name Description
1 pm Turbine power, MW
1 wf Fuel Flow, p.u.
1 n2 HP turbine rotor speed, rpm
1 ps3 HP compressor discharge pressure, psia
1 t48 LP power turbine inlet temperature, deg F
1 t3
Block Diagram:
Prerequisites: None
Invocation: lnrelscan :
Parameters:
EPCL Default
Variable Data Description
Notes:
a) lnrelscan computes the apparent impedance for all lines within the specified area or zone and
writes messages when the impedance locus enters or leaves any of the circles. These
messages are written to the terminal, the dynamic log file (*.log) and the event table
(*event.csv).
b) Scanning does not begin until after the initial disturbance, as indicated by the user-settable
parameter dypar[0].t_post_dist, which defaults to 0.5 sec. Value can be set in javaini.p or an
epcl used for the dynamic run.
c) Lines that are series capacitors (negative X) are not scanned. Multi-section lines that include
series capacitors are scanned; the relay circles are based on the net impedance of the line.
(Note: There is a known issue with the properly determining operation for line faults on muti-
section lines that include series capacitors.)
d) The current seen by lnrelscan is the total current flowing into the line, including current
flowing into charging capacitance and any line-connected shunts.
e) Lines may be excluded from scanning by setting the parameter secdd[].stn to –1 for those
lines.
f) Lines are scanned in both directions. In the messages, the direction is indicated by the order of
the buses (from bus, to bus).
g) Messages are written to the terminal, the dynamic log file and the event table including the
following information:
Simultation time
Circuit identification (from bus, to bus, ckt ID)
“Apparent impedance {enters/leaves} circle {A/B/C}”
Output Channels:
Record
Level Name Description
none
Relay Characteristic:
Model Name: locti
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Locti is a simple "generic" model of inverse time line overcurrent relay. The relay
characteristic is as shown below. The current settings are in per unit values on system
base.
b) Locti can be used for lines (secdd) and transformers. For a 3-winding transformer the
winding to be monitored is specified by the terminal bus and the internal bus.
Separate relays can be used, if desired, to monitor more than one winding. If the
parameter t3trip = 0, the relay only trips the winding it is monitoring (tran.st = 2, 3, or
4, for secondary, tertiary, or primary, respectively). If t3trip = 1, the entire
transformer is tripped (tran.st = 0).
c) The relay picks up and starts its timer when the branch current exceeds <pickup>. A
trip signal is issued to the branch circuit breakers when the current is above the time-
current characteristics represented by 5 input values.
d) The time to close the relay contact for a constant current input is the time
corresponding to that point on the time current characteristics. However if the current
varies with time, the actual time to close the relay contact is given by the equation
below
θ = ∫ -( (1-I2)/Treset ) dt
where I is branch per unit current on system base
f) If the first setting point (lowest current point specified by m1,t1) specified by the user
is greater than the pickup current, the relay will take 1 hour to operate at pickup
current value.
g) If the Mode is 0, the relay won’t trip the branch but only issue a warning that the
branch would have tripped. If mode was set to 1, the relay will trip the branch if the
current exceeds the time-current characteristics.
h) Time dial multiplier setting allows selection of multiple of the base curve shape
(where the time dial multiplier = 1) with the curve (time current) settings. Unlike the
electromechanical time dial equivalent, operating times are directly proportional to
the time multiplier (tdm).
i) The “From” end ([<n>] {<name> <kv>} <id> ) is monitored by the model.
Output Channels:
Record
Level Name Description
Block Diagram:
Time (sec)
Model Name: lofscan
Prerequisites: None
Invocation: lofscan :
Parameters:
EPCL Default
Variable Data Description
Notes:
a) lofscan computes the apparent impedance for all generators within the specified area or zone
and writes messages when the impedance enters either of the relay circles. These messages
are written to the terminal, the dynamic log file (*.log) and the event table (*event.csv).
b) Scanning does not begin until after the initial disturbance, as indicated by the user-settable
parameter dypar[0].t_post_dist, which defaults to 0.5 sec. Value can be set in javaini.p or an
epcl used for the dynamic run.
c) Generators may be excluded from scanning by setting the parameter gens[].stn to –1 for those
generators.
d) Messages are written to the terminal, the dynamic log file and the event table including the
following information:
Simultation time
Generator identification (terminal bus, ID)
“Generator enters loss-of-field Zone {1/2}”
Output Channels:
Record
Level Name Description
none
Relay Characteristic:
Model Name: lsdt1
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This relay sheds load equal to the fraction, sf, of the ORIGINAL LOAD of the
designated bus. For example, if the original load is 100 MW and sf1, sf2, and sf3 are
0.2, 0.3, and 0.5 respectively, the three stages result in after-trip loads as follows:
c) The timer in each stage picks up when the measured frequency falls below its pick-up
setting. Each timer resets instantaneously when the frequency goes above its pick-up
setting (Treset is not used).
d) The filter time constant may be set to approximately 0.05 seconds to avoid false
operations of the relay due to noise in the frequency signal.
e) The frequency used by this model (output channel frel) is set to 60 Hz when the
voltage drops below the voltage threshold dypar[].v_f_inh. The default value for this
threshold is 0.0 p.u and it is set in javaini.p.
Output Channels:
Record
Level Name Description
Block Diagram:
Model Name: lsdt2
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This relay sheds load equal to the fraction, sv, of the original load of the designated
bus. For example, if the original load is 100 MW and sv1, sv2, sv3, sv4, sv5, and sv6
are 0.05, 0.1, 0.1, 0.2, 0.25, 0.3 respectively, the six stages result in the following
after-trip load:
b) The trip of stage two sheds all stage one and all stage two load if stage one has not
already tripped. The trip of stage three sheds all load of stages one, two, and three
that have not already been tripped, etc.
c) The timer in each stage picks up when the measured voltage falls below its pick-up
setting. Each timer resets instantaneously when the voltage goes above its pick-up
setting (Treset is not used).
d) The filter time constant may be set to approximately 0.05 seconds to avoid false
operations of the relay due to noise in the voltage signal.
e) To measure the voltage at a bus other than the load terminals, the bus identification (
[<mon_i>] {<name> <kv>} ) must be entered, either in the DYD file as given in the
"Invocation" above or in the "edds" table.
Output Channels:
Record
Level Name Description
Block Diagram:
Model Name: lsdt3
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This relay sheds load equal to the fraction, sv, of the ORIGINAL LOAD of the
designated bus. For example, if the original load is 100 MW and sv1, sv2, and sv3
are 0.2, 0.3, and 0.5 respectively, the three stages result in after-trip loads as follows:
b) The trip of stage two sheds all stage one and all stage two load if stage one has not
already tripped. The trip of stage three sheds all load of stages one, two, and three
that has not already been tripped.
c) The timer in each stage picks up when the measured voltage falls below its pick-up
setting. The timer in each stage can have two reset criterions. The timer in each stage
will reset, if the voltage goes above the reset voltage for a minimum of reset time.
d) The filter time constant may be set to approximately 0.05 seconds to avoid false
operations of the relay due to noise in the voltage signal.
e) To measure the voltage at a bus other than the load terminals, the bus identification (
[<mon_i>] {<name> <kv>} ) must be entered, either in the DYD file as given in the
"invocation" above or in the "edds" table.
Output Channels:
Record
Level Name Description
Block Diagram:
Model Name: lsdt3a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This relay sheds load equal to the fraction, sv, of the ORIGINAL LOAD of the
designated bus. For example, if the original load is 100 MW and sv1, sv2, and sv3
are 0.2, 0.3, and 0.5 respectively, the three stages result in after-trip loads as follows:
b) The trip of stage two sheds all stage one and all stage two load if stage one has not
already tripped. The trip of stage three sheds all load of stages one, two, and three
that has not already been tripped.
c) The timer in each stage picks up when the measured voltage falls below its pick-up
setting (Vstagepickup). For each stage, the load will be shed, if the voltage falls
below the Voltage set-point (Vstage) for that stage and stays below this voltage for
time delay (Tstage). The timer in each stage can have two reset criterions. The timer
in each stage will reset, if the voltage goes above the reset voltage for a minimum of
reset time.
d) The filter time constant may be set to approximately 0.05 seconds to avoid false
operations of the relay due to noise in the voltage signal.
e) To measure the voltage at a bus other than the load terminals, the bus identification (
[<mon_i>] {<name> <kv>} ) must be entered, either in the DYD file as given in the
"invocation" above or in the "edds" table.
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This relay sheds load equal to the fraction, sf, of the ORIGINAL LOAD of the
designated bus. For example, if the original load is 100 MW and sf1, sf2, and sf3 are
0.2, 0.3, and 0.5 respectively, the three stages result in after-trip loads as follows:
GE PSLF
General Electric International, Inc - Proprietary Information
after first stage trip 80 MW
after first and second stage trip 50 MW
after three stages trip 0 MW
b) The trip of stage two sheds all stage one and all stage two load if stage one has not
already tripped. The trip of stage three sheds all load of stages one, two, and three
that has not already been tripped.
c) The timer in each stage picks up when the measured frequency falls below its pick-up
setting. Each timer resets instantaneously when the frequency goes above its pick-up
setting (Treset is not used).
d) The filter time constant may be set to approximately 0.05 seconds to avoid false
operations of the relay due to noise in the frequency signal.
e) This relay sheds load when the frequency is below the stage pick-up value for the
amount of time specified by the stage time delay and the rate of change in frequency
exceeds the df/dt setting.
f) The frequency used by this model (output channel frel) is set to 60 Hz when the
voltage drops below the voltage threshold dypar[].v_f_inh. The default value for this
threshold is 0.0 p.u and it is set in javaini.p.
Output Channels:
Record
Level Name Description
Block Diagram:
GE PSLF
General Electric International, Inc - Proprietary Information
GE PSLF
General Electric International, Inc - Proprietary Information
Model Name: lsdt8
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This relay sheds load equal to the fraction, sf, of the ORIGINAL LOAD of the
designated bus. For example, if the original load is 100 MW and sf1, sf2, and sf3 are
0.2, 0.3, and 0.5 respectively, the three stages result in after-trip loads as follows:
c) The timer in each stage picks up when the measured frequency falls below its pick-up
setting. Each timer resets instantaneously when the frequency goes above its pick-up
setting (Treset is not used).
d) The filter time constant may be set to approximately 0.05 seconds to avoid false
operations of the relay due to noise in the frequency signal.
e) This relay sheds load when the frequency is below the stage pick-up setting for the
amount of time specified by the stage time delay, or when the frequency is below the
stage pick-up setting and the rate of change in frequency exceeds the df/dt setting.
f) The frequency used by this model (output channel frel) is set to 60 Hz when the
voltage drops below the voltage threshold dypar[].v_f_inh. The default value for this
threshold is 0.0 p.u and it is set in javaini.p.
Output Channels:
Record
Level Name Description
Block Diagram:
Model Name: lsdt9
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This relay sheds load equal to the fraction, sf, of the ORIGINAL LOAD of the
designated bus. For example, if the original load is 100 MW and sf1, sf2, and sf3 are
0.2, 0.3, and 0.5 respectively, the three stages result in after-trip loads as follows:
b) If fewer than 9 stages are used, the data for the remaining stages need not be input.
c) The pick-up frequency (fp) of each stage in use must be lower than that of the
previous stage.
d) The stages of load shedding are independent of one another. It is possible, depending
on the operating time settings for a low-frequency stage to operate before a stage with
a higher frequency setting and in this case only the part of the original load associated
with the stage that has actually tripped is shed. For example in the case of a)., if only
the third stage has operated the load would be reduced to 50MW.
e) The timer in each stage picks up when the measured frequency falls below its pick-up
setting (fp). When the timer in a given stage picks up, it picks up all lower stages if
they have not already picked up. Each timer resets if the frequency goes above its
pick-up setting for longer than Treset, which may be input as 0.
f) The filter time constant (Tfilter) may be used to minimize false load shedding
operations due to noise in the frequency signal. A typcial value for Tfilter is Tfilter =
0.05. Tfilter may be set to zero to disable filtering of the frequency signal.
g) The frequency used by this model (output channel frel) is set to 60 Hz when the
voltage drops below the voltage threshold dypar[].v_f_inh. The default value for this
threshold is 0.0 p.u and it is set in javaini.p.
Output Channels:
Record
Level Name Description
Block Diagram:
Model Name: lsmon
Prerequisites: None
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Lsmon is intended to monitor the amount of load shed by load shedding relays during
a run. Output channels for plotting are written for the MW shed in the entire system
and for each area.
b) Lsmon should be invoked with the number of a bus in the load flow case, but this bus
number is used for check purposes only and has no effect on the outputs from the
model.
c) The values output by lsmon are accumulated from the load[].pshed values for each
load. These values are updated by the load models when any load shedding relay
causes all or part of the load to be shed. The value recorded is the amount of shed
MW at the time of shedding, which may be dependent on the voltage at the time. It is
not the “nominal” load MW at rated voltage.
e) The parameter Plotno is used to assign the model's outputs to a convenient “plot
number” in the “P” column of the View table. It is normally chosen to be different
from any bus number in the system. Zero is acceptable.
f) In the Plot View table, the channels are described as shown in the table below, that is,
all channels have “lsmo” as the “Type”, “Pshed” as the “Name”, and the area name or
“System” as the “ToName”. The appropriate area number is also shown in the
“Area” column for the area channels.
Output Channels:
Record
Level Type Name ToName Description
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The transformer must exist as a type 2 in the powerflow. All voltage and tap
control data is taken from the tran record. The transformer will act to regulate
voltage at the tran[].kreg bus.
c) Ltc1 does not modify the value tran[].tapp. tran[].tapp will retain its original
value from the initial powerflow. The modified tap value is available through
epcl variable ltc1[]tapnew.
d) Setting the flag noprint to 1 will suppress all printouts to the log file and the
screen.
e) Saturation can be represented by entering positive values for S1 and S12. A
(negative) value must also be input for bmag in the transformer data. The
saturation factors are defined in the same way as for generator models; see Figure
3.11.2 in Chapter 3 of the User Manual. The “air gap” line for the generator is
replaced by a straight line through the point (V=1., B=bmag) for the transformer.
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model can be used as a very simple representation of manual voltage control.
Ka may be set to a non-zero value to represent the gain with which an operator
observes and reacts to voltage error. Ta may be used to approximate the delay in his
action.
c) Rex represents the effective output resistance seen by the excitation system.
Output Channels:
Record
Level Name Description
Block Diagram:
Vref
Vcomp Ka Efd
1 sTa
S0
Vsig
Rex
LadIfd
Model Name: monds
Parameters:
EPCL Default
Variable Data Description
Notes:
The remaining channels of monit, two per area, contain the bus number of the bus in
each area having the lowest voltage at the sampling instant, and the value of this
voltage. The locations of the lowest voltages normally change from moment to
moment and the voltage channels of monit are NOT, except by coincidence, a history
of the voltage at any one bus.
b) Monit should be invoked with the number of a bus in the load flow case, but this bus
number is used for check purposes only and has no effect on the outputs from the
model.
e) It is usually most convenient to make monit the first model invoked in the simulation
setup.
Output Channels:
Record
Level Name Description
Block Diagram:
Number of Iterations
Network Solution
Largest Voltage Change
MONIT
Largest Angle Change
Mechanical Power Lowest Voltage & Bus#
for all areas
Model Name: motor1
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
b) The MVA base for the model parameters and outputs is the value entered on the
dynamic data file record, if present. Otherwise, the value in the load flow data
(gens[kgen].mbase] is used.
c) This model initializes itself to match the terminal power of the machine to the power
of the generator in the load flow case. The slip and reactive power consumption of
the induction machine are determined as needed to match the specified power. The
reactive power consumed by the induction machine will not normally match the
reactive power assigned to it in the load flow. The difference between the actual and
load flow values of reactive power is accommodated by a shunt capacitor or reactor at
the machine terminals whose admittance is determined by the model in the
initialization.
d) Tripping the machine leaves the capacitor (reactor) connected to the system; that is,
the capacitor is on the system side of the machine's switch.
e) The output channel, It, includes only the motor current and not the capacitor current.
Qg is the net reactive power of the motor and capacitor (motor convention).
h) D has the dimensions delta P/ delta speed. The value of Pmech coming from an
separate mechanical load model, if used, is multiplied by speed raised to the power D
to determine the effective mechanical load seen by the motor.
i) The saturation factors, Se1 and Se2, may be zero if no saturation is to be represented.
j) Ra+jLpp overwrites the load flow values of Rsubtransient and Xsubtransient when
INIT command is executed.
l) The parameters Ft and Tf define under-frequency tripping logic that operates in the
same way as the under voltage trip logic.
m) The parameters Vr and Tvr define reconnection logic that can reclose the motor onto
the system after the under-voltage logic has tripped it. A timer is started when the
voltage at the motor bus rises above Vr per unit and continues to run until this voltage
falls below Vr. If the voltage is above Vr when the timer reaches Tvr the motor is
reconnected immediately. The under-voltage trip logic is reset when the motor is
reconnected so that it can trip the motor again if voltage falls below Vt again.
n) The acceleration factor, Acc, may be omitted in most cases. If the message "Failed to
initialize MOTOR1" appears for a particular motor it may be necessary to enter a
value for Acc. If the convergence of the starting iteration shows a sequence of slip
values that approach a final value slowly but smoothly Acc can be made greater than
unity. If the convergence of slip values towards a final result is erratic or oscillatory
Acc should be set to a value less than unity. If Acc is given a negative value the
progress of the initialization iteration for the motor is displayed at the terminal screen.
If Acc is positive or zero the display is suppressed. Setting Acc to zero has the same
effect as setting it to 1.
o) Motor start-up can be simulated using this model. Set the status of the generator
which simulates a motor in load flow to 0. Solve the load flow case. Then start a
dynamic run. During the dynamic run, when the status of the generator is changed to
1, the motor is connected to the network simulating a motor start-up. The motor’s
mechanical power (genbc[k].pmech), at synchronous speed and rated voltage, must
be set by epcl or in the edic table or by a separate mechanical load model.
p) In order to prevent network solution divergence during motor starting and motor
stalling conditions, the model automatically uses a smaller time step (dypar.delt /
ndelt) whenever the per unit speed of the motor is below the value, wdelt. If the
default values do no produce satisfactory results, ndelt and/or wdelt can be increased.
q) If the value of Tppo is small relative to the time step (less than 4*dypar.delt), it may
be necessary to set wdelt to 1.1 so that the smaller time step will be used for the
entire run. Otherwise, numerical oscillations may be observed in the motor variables.
s) Note that the output channels for power, reactive power, and torque variables use
motor convention.
Output Channels:
Record
Level Name Description
ψ dr 2 ω o SLIP
+ - ψ qr 2
ωo Rr2 1.
- L lr 2 + L lr 2
ψ dr1 ω o SLIP
- ψ +
+ ω o R r1 qr1
1. E " d ψ" q
L m " sat
- L lr1 + L lr1 + ωo
ψ mq
+ iqs
- L m " sat
Se K sat 1. S e ( ψ m ) 1.
ψ 2
md ψ 2
mq
L m " sat
K sat / L m 1. / L lr 1 1. / L lr 2
ψm
ψ md - ids
L m " sat
+
ψ qr1 ω o SLIP
+ ω o R r1 + ψ dr1
1.
+
Lm " sat
- L + L lr1
lr1 + E " q ψ" d
Lm Ls Ll
ψ qr 2 ω o SLIP
L m ' 1. / ( 1. / L m 1. / L lr1 ) L' L l
+ ωo Rr2
+ ψ L m " 1. / ( 1. / L m 1. / L lr1 1. / L lr 2 ) L" L l
dr 2 1.
T' o L lr1 L m / ( ω o R r1 L m ' ) ( L lr1 L m ) / ( ω o R r1 )
- L lr 2 + L lr 2
T" o L lr 2 L m ' / ( ω o R r 2 L m " ) ( L lr 2 L m ' ) / (ω o R r 2 )
Model Name: motorc
Inputs:
Notes:
Inputs:
Parameters:
EPCL Defaul
t
Variable Data Description
Notes:
b) motorld treats a fraction of the constant power part of a load as a motor. When the
INIT command is executed, motorld, moves a fraction, pul, of the load from load.p
to load.pm; that is
The reactive power demand of the motor is calculated as a function of voltage at the
load bus. This reactive power demand may be less than or greater than the constant Q
component of the load. If the motor's reactive demand is greater than the constant Q
component of the load motorld places a capacitor at the terminal of the motor to
bring its reactive demand down to equal the constant Q reactive load. The
appropriate part of the constant Q reactive load is then moved to the motor
component of the load:
where (motor reactive load) is the motor's reactive demand as compensated by the
capacitor where needed.
motorld can be used with static load models such as alwscc. However, the order that
the models are called will affect the amount of load represented as motor. motorld
treats a fraction of the constant power load as motor. If a static load model is called
before motorld, motorld will work with only that part of the load that is still constant
power. If motorld is called before the static load model, the static load model will
work with the portion of load not represented as motor.
c) Per unit parameters are on the motor MVA base specified in the .dyd file. This value
is specified using "mva=<value>" following the colon (and reporting level). If this is
not specified the MVA base is set to load.mbase. If load.mbase is zero, the motor
MVA base and load.mbase are set to 1.25 * load.pm.
e) Tripping the load removes the entire load, including the motor component and the
capacitor from the system. A load that includes a motor component (motorld has
been invoked for that load) may not be reconnected to the system after it has been
tripped.
f) The model for the contactor is shown in the diagram below. It is intended to
represent the tripping (and reconnection) of a fraction of an aggregation of motors
over a range of voltage levels. If using the model to represent a single motor, Vc2off
should be set equal to Vc1off, and Vc2on should be set equal to Vc1on.
g) The model for the “control trip” is shown in the diagram below. It is intended to
represent the tripping of motors by a “controller” such as an energy management
system, with a range of time delays that are a function of voltage. If using the model
to represent a single motor, one should set V2 = V1, T2a = T1a, and T2b=T1b.
When the voltage dips below V0, a timer (dT) is started. At each time step, the points
on the two characteristics corresponding to the present value of V are calculated, call
them T1 and T2. When dT becomes > T1, a fraction of the load is tripped equal to
(dT – T1) / (T2 – T1), that is, the relative fraction of the distance between the two
characteristics. As V changes, the values of T1 and T2 will change, which may result
in the trip fraction shifting to higher or lower values. However, once a given fraction
has been tripped, it is not allowed to be “untripped”. When V recovers above V0, the
timer is reset and the fraction tripped is stored. If a subsequent voltage dip below V0
occurs, the calculations are repeated to determine what additional amount may be
tripped, i.e. tripping amounts on successive voltage dips are cumulative.
Reconnection of tripped load is assumed to require operator action or a time delay
beyond the range of the simulation, so no reconnection is modeled.
h) Note: The fractions of motors with contactors and with controller are not additive but
ovelapping. Therefore, tripping of fractions of the motor by contactor, controller, and
load shedding relays is multiplicative, that is, the total fraction not tripped is the
product of the fraction not tripped by each of these devices. Tripping by these
devices also trips a corresponding fraction of the compensating capacitor, if present.
i) The output channel, It, includes only the motor current and not the capacitor current.
Qg is the net reactive power of the motor and capacitor (motor convention).
l) Dt has the dimensions of delta torque (p.u.) / delta speed (p.u.). The acceleration
equation used in the model is:
m) The saturation factors, Se1 and Se2, may be zero if no saturation is to be represented.
n) The acceleration factor, acc, may be omitted in most cases. If the message "Failed to
initialize MOTORLD" appears for a particular motor, it may be necessary to enter a
value for acc. If the convergence of the starting iteration shows a sequence of slip
values that approach a final value slowly but smoothly acc can be made greater than
unity. If the convergence of slip values towards a final result is erratic or oscillatory
acc should be set to a value less than unity. If acc is input as the negative value, the
absolute value is used but the progress of the initialization iteration for the motor is
displayed at the terminal screen. If acc is positive or zero the display is suppressed.
Setting acc to zero has the same effect as setting it to 1.
o) In order to prevent network solution divergence during motor starting and motor
stalling conditions, the model automatically uses a smaller time step (dypar.delt /
ndelt) whenever the per unit speed of the motor is below the value, wdelt. If the
default values do no produce satisfactory results, ndelt and/or wdelt can be increased.
p) If the value of Tppo is small relative to the time step (less than 4*dypar.delt), it may
be necessary to set wdelt to 1.1 so that the smaller time step will be used for the
entire run. Otherwise, numerical oscillations may be observed in the motor variables.
r) Note that the output channels for power, reactive power, and torque variables use
motor convention.
Output Channels:
Record
Level Name Description
ω o SLIP
ωo Rr2 1.
L lr 2 L lr 2
ω o SLIP
ω o R r1 E " d ψ" q
1. L m " sat
L lr1 L lr1
L m " sat
Se K sat 1. S e ( ψ m )
2 md 2 mq
ψm
L m " sat
ω o SLIP
ω o R r1 1.
L m " sat
L L lr1
lr1 E " q ψ" d
ω o SLIP
ωo Rr2 1.
L lr 2
L lr 2
1.
Lm Ls Ll L m " sat
K sat / L m 1. / L lr 1 1. / L lr 2
L m ' 1. / ( 1. / L m 1. / L lr1 ) L' L l
L m " 1. / ( 1. / L m 1. / L lr1 1. / L lr 2 ) L" L l
T' o L lr1 L m / ( ω o R r1 L m ' ) ( L lr1 L m ) / ( ω o R r1 )
T" o L lr 2 L m ' / ( ω o R r 2 L m " ) ( L lr 2 L m ' ) / (ω o R r 2 )
Model Name: motorw
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
b) MOTORW treats a fraction of the constant power part of a load as a motor. When the
INIT command is executed, motorw, moves a fraction, pul, of the load from load.p
to load.pm; that is
The reactive power demand of the motor is calculated as a function of voltage at the
load bus. This reactive power demand may be less than or greater than the constant Q
component of the load. If the motor's reactive demand is greater than the constant Q
component of the load motorw places a capacitor at the terminal of the motor to
bring its reactive demand down to equal the constant Q reactive load. The
appropriate part of the constant Q reactive load is then moved to the motor
component of the load:
where (motor reactive load) is the motor's reactive demand as compensated by the
capacitor where needed.
MOTORW can be used with static load models such as alwscc. However, the order
that the models are called will affect the amount of load represented as motor.
MOTORW treats a fraction of the constant power load as motor. If a static load
model is called before MOTORW, MOTORW will work with only that part of the
load that is still constant power. If MOTORW is called before the static load model,
the static load model will work with the portion of load not represented as motor.
c) Tripping the load removes the entire load, including the motor component and the
capacitor from the system. A load that includes a motor component (MOTORW has
been invoked for that load) may not be reconnected to the system after it has been
tripped.
d) The rotor time constant Tpo and inertia time constant H must be non-zero.
h) The acceleration factor, Acc, may be omitted in most cases. If the message "Failed to
initialize MOTOR1" appears for a particular motor, it may be necessary to enter a
value for Acc. If the convergence of the starting iteration shows a sequence of slip
values that approach a final value slowly but smoothly, Acc can be made greater than
unity. If the convergence of slip values towards a final result is erratic or oscillatory,
Acc should be set to a value less than unity. If Acc is given a negative value the
progress of the initialization iteration for the motor is displayed at the terminal screen.
If Acc is positive or zero the display is suppressed. Setting Acc to zero has the same
effect as setting it to plus one.
i) Per unit parameters are on the motor MVA base specified in the .dyd file. This value
is specified using "mva=<value>" following the colon (and reporting level). If this is
not specified the MVA base is set to load.mbase. If load.mbase is zero, the motor
MVA base and load.mbase are set to 1.25 * load.pm.
k) In order to prevent network solution divergence during motor stalling conditions, the
model automatically uses a smaller time step (dypar.delt / ndelt) whenever the per
unit speed of the motor is below the value, wdelt. If the default values do no produce
satisfactory results, ndelt and/or wdelt can be increased.
l) Note that the output channels for power, reactive power, and torque variables use
motor convention.
Output Channels:
Record
Level Name Description
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
c) The dynamic equations describing motorx are the same as those describing motorw.
d) Motorx does not model magnetic saturation. This model is intended for the
representation of aggregations of many motors dispersed through a load represented
at a high voltage bus but where there is no information on the characteristics of
individual motors.
e) Motorx treats a fraction of the constant power part of a load as a motor. When the
INIT command is executed, motorx, moves a fraction, pul, of the load from load.p to
load.pm; that is
The reactive power demand of the motor is calculated as a function of voltage at the
load bus. This reactive power demand may be less than or greater than the constant Q
component of the load. If the motor's reactive demand is greater than the constant Q
component of the load motorx places a capacitor at the terminal of the motor to bring
its reactive demand down to equal the constant Q reactive load. The appropriate part
of the constant Q reactive load is then moved to the motor component of the load:
where (motor reactive load) is the motor's reactive demand as compensated by the
capacitor where needed.
Motorx can be used with static load models such as alwscc. However, the order in
which the models are called affects the amount of load represented as motor. motorx
treats a fraction of the constant power load as motor. If a static load model is called
before motorx, motorx will work with only that part of the load that is still constant
power. If motorx is called before the static load model, the static load model will
work with the portion of load not represented as motor.
f) Tripping the load removes the entire load, including the motor component and the
capacitor from the system. A load that includes a motor component may not be
reconnected to the system after it has been tripped.
k) Setting Acc to zero has the same effect as setting it to plus one. If the convergence of
the starting iteration shows a sequence of slip values that approach a final value
slowly but smoothly, Acc can be made greater than unity. If the convergence of slip
values towards a final result is erratic or oscillatory, Acc should be set to a value less
than unity. If Acc is given a negative value the progress of the initialization iteration
for the motor is displayed at the terminal screen. If Acc is positive or zero the display
is suppressed.
l) Per unit parameters are on the motor MVA base specified in the .dyd file. This value
is specified using "mva=<value>" following the colon (and reporting level). If this is
not specified the MVA base is set to load.mbase. If load.mbase is zero, the motor
MVA base and load.mbase are set to pfact * load.pm.
n) In order to prevent network solution divergence during motor stalling conditions, the
model automatically uses a smaller time step (dypar.delt / ndelt) whenever the per
unit speed of the motor is below the value, wdelt. If the default values do no produce
satisfactory results, ndelt and/or wdelt can be increased.
o) The output channels for power, reactive power, and torque variables use motor
convention.
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Tin1 0.0 Time 1 for switching in (sec.)
Vmin1 0.0 Voltage lower limit 1 (p.u.)
Tout1 0.0 Time1 for switching out (sec.)
Vmax1 0.0 Voltage upper limit 1 (p.u.)
Tin2 0.0 Time 2 for switching in (sec.)
Vmin2 0.0 Voltage lower limit 2 (p.u.)
Tout2 0.0 Time2 for switching out (sec.)
Vmax2 0.0 Voltage upper limit 2 (p.u.)
Tlck 0.0 Lock out time (sec.)
Notes:
b) Msc1 is used in conjunction with a capacitor in the shunt table. The shunt may have
a status of zero or one at the beginning of a simulation.
c) Msc1 monitors the voltage at the bus to which it is connected (Vbus) and allows for
two voltage ranges, [Vmin1, Vmax1] and [Vmin2, Vmax2]. The logic for each
voltage range is as follows:
e) The invocation for msc1 is as follows if the monitored bus is the bus to which msc1
is connected: msc1 [<n>] {<name> <kv>} <id> :, for example:
The invocation for msc1 is as follows if the monitored bus is different than the bus to
which msc1 is connected:
msc1 [<n>] {<name> <kv>} <id> [<nr>] {<namer> <kvr>} ! ! [<mon_i>] {<namei>
<kvi>}
for example:
In this case, msc1 is connected to bus 1 and the monitored voltage is the voltage of
bus 3.
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Tin1 0.0 Time 1 for switching in (sec.)
Vmax1 0.0 Voltage upper limit 1 (p.u.)
Tout1 0.0 Time1 for switching out (sec.)
Vmin1 0.0 Voltage lower limit 1 (p.u.)
Tin2 0.0 Time 2 for switching in (sec.)
Vmax2 0.0 Voltage upper limit 2 (p.u.)
Tout2 0.0 Time2 for switching out (sec.)
Vmin2 0.0 Voltage lower limit 2 (p.u.)
Notes:
b) Mslr1 is used in conjunction with a line reactor in the shunt table. The shunt may
have a status of zero or one at the beginning of a simulation.
c) Mslr1 monitors the voltage at the monitored bus (Vmon). If no monitored bus is
specified, the terminal bus of the shunt is used. The model for two voltage ranges,
[Vmin1, Vmax1] and [Vmin2, Vmax2]. The logic for each voltage range is as
follows:
If Vbus > Vmax for Tin seconds then
Switch in the shunt reactor
If Vbus < Vmin for Tout seconds then
Switch out the shunt reactor
GE PSLF
General Electric International, Inc - Proprietary Information
d) There can be more than one mslr1 model on a bus. Their associated shunts must
have different identifiers.
Output Channels:
Record
Level Name Description
GE PSLF
General Electric International, Inc - Proprietary Information
Model Name: msr1
Parameters:
EPCL Default
Variable Data Description
Tin1 0.0 Time 1 for switching in (sec.)
Vmax1 0.0 Voltage upper limit 1 (p.u.)
Tout1 0.0 Time1 for switching out (sec.)
Vmin1 0.0 Voltage lower limit 1 (p.u.)
Tin2 0.0 Time 2 for switching in (sec.)
Vmax2 0.0 Voltage upper limit 2 (p.u.)
Tout2 0.0 Time2 for switching out (sec.)
Vmin2 0.0 Voltage lower limit 2 (p.u.)
Notes:
b) Msr1 is used in conjunction with a bus reactor in the shunt table. The shunt may
have a status of zero or one at the beginning of a simulation.
c) Msr1 monitors the voltage at the monitored bus (Vmon). If no monitored bus is
specified, the terminal bus of the shunt is used. The model allows for two voltage
ranges, [Vmin1, Vmax1] and [Vmin2, Vmax2]. The logic for each voltage range is
as follows:
If Vbus > Vmax for Tin seconds then
Switch in the shunt reactor
If Vbus < Vmin for Tout seconds then
Switch out the shunt reactor
GE PSLF
General Electric International, Inc - Proprietary Information
d) There can be more than one msr1 model on a bus. Their associated shunts must have
different identifiers.
e) The invocation for msr1 is as follows if the monitored bus is the bus to which msr1
is connected: msr1 [<n>] {<name> <kv>} <id> :, for example:
The invocation for msr1 is as follows if the monitored bus is different than the bus to
which msr1 is connected:
msr1 [<n>] {<name> <kv>} <id> [<nr>] {<namer> <kvr>} ! ! [<mon_i>] {<namei>
<kvi>}
for example:
In this case, msr1 is connected to bus 1 and the monitored voltage is the voltage of
bus 3.
Output Channels:
Record
Level Name Description
GE PSLF
General Electric International, Inc - Proprietary Information
Model Name: mss1
Parameters:
EPCL Default
Variable Data Description
Vlow1 0.0 Voltage threshold for switching shunt, p.u.
Vlow2 0.0 Voltage threshold for switching shunt, p.u.
Vhigh1 0.0 Voltage threshold for switching shunt, p.u.
Vhigh2 0.0 Voltage threshold for switching shunt, p.u.
Tbrkr 0.0 Time required by MSS breaker to operate, sec.
Tdlow1 0.0 Time delay, sec.
Tdlow2 0.0 Time delay, sec.
Tcout 0.0 Capacitor lockout time, sec.
Tdhigh1 0.0 Time delay, sec.
Tdhigh2 0.0 Time delay, sec.
Notes:
a) Mss1 represents a set of mechanically switched shunts (up to ten shunts are allowed).
b) Mss1 is used in conjunction with shunt elements defined in the shunt table. The
shunts associated with mss1 must have the same id as mss1 specified in column SID.
For instance, the shunt table below shows nine shunts connected to bus 3. The first
eight shunts are associated with an mss1 model whose id is “sh”.
GE PSLF
General Electric International, Inc - Proprietary Information
Column STSW in the shunt table is used to specify which shunts are available for
switching. If STSW is zero, the status of the corresponding shunt is not changed in
the course of a simulation.
c) The invocation for mss1 is as follows if the monitored bus is the bus to which mss1
is connected: mss1 [<n>] {<name> <kv>} <id> :, for example:
The invocation for mss1 is as follows if the monitored bus is different than the bus to
which mss1 is connected:
mss1 [<n>] {<name> <kv>} <id> [<nr>] {<namer> <kvr>} ! ! [<mon_i>] {<namei>
<kvi>}
for example:
In this case, mss1 is connected to bus 3 and the monitored voltage is the voltage of
bus 2.
d) mss1 allows for two voltage ranges and associated timers, [Vlow1, Vhigh1] and
[Vlow2, Vhigh2]; Vlow1<Vlow2 and Vhigh1>Vhigh2. The following plots
illustrate the operation of mss1 (the plots are not associated with the performance of
an actual power system).
1. For the case shown below, Vlow1 = 0.80, Vlow2 = 0.95, Tdlow1 = 1.00, Tdlow2
= 2.00, and Tbrkr is set to zero. The first three switching events at times = 2, 3 and 4
sec., following a voltage drop at time 1 sec., are due to V < Vlow1 and Tdlow1 (V is
the monitored bus voltage). The subsequent three switching events at 6, 8 and 10
sec., are due to V < Vlow2 and Tdlow2. The timer associated Tdlow2 picks up
following the switching actions associated with Vlow1 and Tdlow1. In this example
there were six shunt elements associated with mss1.
GE PSLF
General Electric International, Inc - Proprietary Information
2. For the case shown below, Vlow1 = 0.80, Vlow2 = 0.95, Tdlow1 = 1.00, Tdlow2
= 2.00, and Tbrkr is set to zero. The switching events at times = 27, 29 and 31 sec.,
following a voltage drop at time 25.0 sec., are due to V < Vlow2 and Tdlow2.
GE PSLF
General Electric International, Inc - Proprietary Information
3. For the case shown below, Vhigh1 = 1.20, Vhigh2 = 1.02, Tdhigh1 = 1.00,
Tdhigh2 = 0.50, and Tbrkr is set to zero. The first three switching events at times =
21, 22 and 23 sec., following a voltage rise at time 20 sec., are due to V > Vhigh1
and Tdhigh1 (V is the monitored bus voltage). The subsequent three switching
events at 23.5, 24.0 and 24.5 sec., are due to V > Vhigh2 and Tdhigh2. The timer
associated Tdhigh2 picks up following the switching actions associated with Vhigh1
and Tdhigh1. In this example there were six shunt elements associated with mss1.
GE PSLF
General Electric International, Inc - Proprietary Information
e) If Tdhigh1 and Tdhigh2 are not included in the dynamic data file (.dyd file), then
Tdhigh1 = Tdlow1 and Tdhigh2 = Tdlow2.
f) mss1 reports the switching actions and indicates when there are no more shunts
available for switching, e.g.,
mss1 with ID [aa] at bus [13]: MSR 7 with ID [7 ] switched OUT at time = 7.71
mss1 with ID [aa] at bus [13]: MSR 8 with ID [8 ] switched OUT at time = 10.82
mss1 with ID [aa] at bus [13]: MSC 9 with ID [9 ] switched IN at time = 13.92
mss1 with ID [aa] at bus [13]: Exhausted Caps/Ind to switch IN/OUT at Time = [ 13.92]
Output Channels:
Record
Level Name Description
GE PSLF
General Electric International, Inc - Proprietary Information
1 Q Reactive power in MVAr
2 B Susceptance in p.u. on the system base
GE PSLF
General Electric International, Inc - Proprietary Information
Model Name: mss2
Parameters:
EPCL Default
Variable Data Description
Vlow1 0.0 Voltage threshold for switching shunt, p.u.
Vlow2 0.0 Voltage threshold for switching shunt, p.u.
Vhigh1 0.0 Voltage threshold for switching shunt, p.u.
Vhigh2 0.0 Voltage threshold for switching shunt, p.u.
Tbrkr 0.0 Time required by MSS breaker to operate, sec.
Tdlow1 0.0 Time delay, sec.
Tdlow2 0.0 Time delay, sec.
Tcout 0.0 Capacitor lockout time, sec.
Tdhigh1 0.0 Time delay, sec.
Tdhigh2 0.0 Time delay, sec.
Notes:
a) Mss2 represents a set of mechanically switched shunts (up to ten shunts are allowed).
b) The timers associated with [Tdlow1, Tdhigh1] and [Tdlow2, Tdhigh2] operate
independently. If the timers coincide on a switching time, only one shunt element is
switched.
c) Mss2 is used in conjunction with shunt elements defined in the shunt table. The
shunts associated with mss2 must have the same id as mss2 specified in column SID.
For instance, the shunt table below shows nine shunts connected to bus 3. The first
eight shunts are associated with an mss2 model whose id is “sh”.
Column STSW in the shunt table is used to specify which shunts are available for
switching. If STSW is zero, the status of the corresponding shunt is not changed in
the course of a simulation.
d) The invocation for mss2 is as follows if the monitored bus is the bus to which mss2
is connected: mss2 [<n>] {<name> <kv>} <id> :, for example:
The invocation for mss2 is as follows if the monitored bus is different than the bus to
which mss2 is connected:
mss2 [<n>] {<name> <kv>} <id> [<nr>] {<namer> <kvr>} ! ! [<mon_i>] {<namei>
<kvi>}
for example:
In this case, mss2 is connected to bus 3 and the monitored voltage is the voltage of
bus 2.
e) mss2 allows for two voltage ranges and associated timers, [Vlow1, Vhigh1] and
[Vlow2, Vhigh2]; Vlow1<Vlow2 and Vhigh1>Vhigh2. The following plots
illustrate the operation of mss2 (the plots are not associated with the performance of
an actual power system).
1. For the case shown below, Vlow1 = 0.95, Vlow2 = 1.00, Tdlow1 = 1.00, Tdlow2
= 1.50, and Tbrkr is set to zero. The first switching events at time = 2.0 sec.,
following a voltage drop at time 1 sec., is due to V < Vlow1 and Tdlow1 (V is the
monitored bus voltage). The switching event at 2.50 sec. is due to V < Vlow2 and
Tdlow2. The switching event at 3.0 sec. is due to V < Vlow1 and Tdlow1. At time
4.0 sec. both timers coincide – only one shunt element is switched. The switching
event at 5.0 sec. is due to V < Vlow1 and Tdlow1. etc. In this example there were
eight shunt elements associated with mss2.
2. For the case shown below, the switching events up to 4 sec. are the same as in the
previous example. After time = 4 sec., only the threshold Vlow2 = 1.00 is violated.
Switching actions after 4 sec. are due to Vlow2 and Tdlow2 = 1.5.
3. For the case shown below, Vhigh1 = 1.20, Vhigh2 = 1.02, Tdhigh1 = 1.0,
Tdhigh2 = 2.50, and Tbrkr is set to zero. The first switching event at time = 21.0
sec., following a voltage rise at time 20 sec., is due to V > Vhigh1 and Tdhigh1 (V is
the monitored bus voltage). The switching event at 22.0 sec. is due to V > Vhigh1
and Tdhigh1. The switching event at 22.5 sec. is due to V > Vhigh2 and Tdhigh2.
Switching events at 23.0 and 24.0 sec. are due to V > Vhigh1 and Tdhigh1.
Subsequent switching events are due to V > Vhigh2 and Tdhigh2. In this example
there were eight shunt elements associated with mss2.
f) If Tdhigh1 and Tdhigh2 are not included in the dynamic data file (.dyd file), then
Tdhigh1 = Tdlow1 and Tdhigh2 = Tdlow2.
g) mss2 reports the switching actions and indicates when there are no more shunts
available for switching, e.g.,
mss2 with ID [aa] at bus [13]: MSR 7 with ID [7 ] switched OUT at time = 7.71
mss2 with ID [aa] at bus [13]: MSR 8 with ID [8 ] switched OUT at time = 10.82
mss2 with ID [aa] at bus [13]: MSC 9 with ID [9 ] switched IN at time = 13.92
mss2 with ID [aa] at bus [13]: Exhausted Caps/Ind to switch IN/OUT at Time = [ 13.92]
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Ifdset 0.0 Pickup level of time dependent excitation limit, per unit
Ifdmax 99.0 Level of hard excitation limit, per unit
Tpickup 0.0 Timer setting for time dependent limit
Runback 0.0 Parameter of voltage regulator reference adjustment
Tmax 0.0 Definite time delay for generator trip if field current exceeds
Ifdmax
Tset 0.0 Definite time delay for generator trip if field current exceeds
Ifdset
Ifcont 99.0 Maximum continuous field current, per unit
Vfdflag 0.0 0 for field current
1 for field voltage
Alarm 0.0 If greater than zero, no limiting action is enforced; a message is
printed when limit is exceeded. See Note l.
Notes:
a) This limiter is intended to represent the generic behavior of a wide range of excitation
limiters. It is not an exact representation of any one specific type or model of
excitation limiter, but is capable of representing the effect of many such units. This
model may be used with the excitation system models listed in Notes j and k.
1. A time dependent element whose timer starts when the excitation level
exceeds Ifdset and which may have either an inverse time or a definite time
characteristic. When this element times out the limiter sends a signal to the
voltage reference summing junction of the voltage regulator.
This element may sense either field current or field voltage as specified by the
parameter Vfdflag.
2. An instantaneous acting hard limiter that operates when main generator field
current reaches Ifdmax. When this element operates the limiter sends a signal
to the excitation system to be used as an overriding upper limit on field
voltage. This element always senses field current and always acts to limit field
voltage.
3. Trip devices that will trip the generator if its field current exceeds Ifdmax for
a definite time of Tmax seconds or exceeds Ifdset for a definite time of Tset
seconds.
c) The per unit base for the field current levels Ifdset, Ifdmax, and Ifcond is the field
current required to give one per unit stator voltage on open circuit in the absence of
saturation.
d) The parameter Ifdset is the field current or field voltage at which the time dependent
element picks up to start its timer. This value should be equal to or slightly greater
that the maximum permissible continuous value of field current, in per unit. The
typical full load excitation current of a generator is from about 1.8 per unit to 2.8 per
unit.
e) The parameter Ifdmax is the field current at which the instantaneous element picks
up and takes over limiting control of excitation. This value should normally be set to
the maximum permissible field current in per unit.
Ifdmax must be greater than or equal to Ifdset. oel1 normally lets excitation level
exceed Ifdset for a period determined by Tpickup but acts immediately to limit field
voltage if the excitation level reaches Ifdmax.
f) The input signal sensed by the time dependent element is selected by setting the value
of the parameter Vfdflag as follows:
g)
If (Tpickup > 0) the field current limit timer has an inverse characteristic.
Tpickup is the delay in operation of the limiter for a constant input
of 1 per unit (i.e. field current exceeds Ifdset by 1 per unit).
If (Tpickup < 0) the field current limit timer has a definite time characteristic.
Tpickup is the time for which the field current must remain above
Ifdset for the limiter to operate.
Both types of timer reset instantaneously if field current falls below Ifdset before
the timer has timed out.
h) The parameter Runback specifies the action of the limiter when the time dependent
element operates.
If ( Runback > 0) The voltage regulator reference is biased by the output, elimv, of
oel1. This output is ramped in the negative direction at the rate of
1/Runback per unit per second as long as field current or field
voltage, as selected by Vfdflag exceeds Ifcont. When the selected
value falls below Ifcont the ramping of elimv is stopped and the
value of the voltage regulator reference remains frozen at its biased
value. oel1 does not remove the bias from the voltage regulator
reference. The original value of the voltage regulator reference is
lost. Signals are set to
genbc[].elimt = 1
genbc[].elimv = <bias>
i) The hard limiter acts instantaneously to instruct the excitation system to apply an
immediate mandatory limit to the excitation system output voltage. This limit is
permanent.
If (Ifdmax > 0) - Field voltage is limited to Ifdmax
If (Ifdmax < 0) - Field voltage is reduced to and limited to Ifcont
Signals are set to
genbc[].elimt = 2
genbc[].elimv = <limit value>
j) The biasing of the voltage regulator reference when the signal genbc[].elimt = 1 is
independent of the type of the excitation system and is implemented in the same way
for all excitation system models. In addition to the excitation system models listed in
Note k, the following excitation system models also respond to this action of oel1:
esac4a esac6a esac7b esdc3a esst2a esst3a esst6b exac3 exac3a exac4 exac6a
exac7b exdc4 exeli exst2 exst2a exst3 exst3a exst4b ieeet1 scrx sexs texs
k) The implementation of the mandatory limit on excitation voltage when the signal
genbc[].elimt = 2 is dependent on the type of the excitation system. Not all excitation
system models respond to the action of oel1 when genbc[].elimv = 2. Only the
following excitation system models respond to this action of oel1:
esac5a esac8b esdc1a esdc2a esdc4b exac1 exac1a exac2 exac8b exbbc exdc1
exdc2 exdc2a exst1 rexs
“At time 79.5114 OEL1 limit exceeded for unit 1 at bus 1 [GEN ] 24.00”
Generator tripping action is not affected by Alarm, i.e., if the generator current
exceeds Ifdmax for a definite time of Tmax seconds or exceeds Ifdset for a definite
time of Tset seconds, the generator will be tripped regardless of the value of Alarm.
m) The action of OEL1 is either at the AVR summation point or at the exciter output
(Efd), but never both at the same time. If the instantaneous limit is active (i.e. Ifd has
hit the limit) there will be no OEL input to the summation point.
n) The “fix bad data” option will do the following: If Alarm is less than zero, then set it
to zero.
Output Channels:
Record
Level Name Description
Block Diagram:
Generator
PT CT
Field
Winding Voltage Reference Voltage
Regulator Runback
Field Reference
Current
Transformer
Overexcitation
Limiter
Model Name: ooslen
Parameters:
EPCL Default
Variable Data Description
notrip 0.0 0: trip, >0: do not trip, <0: trip line, but do not trip isolated islands
nfar 0.0 Number of far end bus
type 0.0 0 = minimum time between zones, outward travel
1 = minimum time between zones, inward travel
10 = minimum time within each zone, outward travel
11 = minimum time within each zone, inward travel
tcb 0.0 Circuit breaker delay (sec.)
alpha1 0.0 Zone 1 torque angle (deg.)
rf1 0.0 Zone 1 forward reach (p.u. Z)
rr1 0.0 Zone 1 reverse reach (p.u. Z)
wl1 0.0 Zone 1 lens width (p.u. Z)
t1 0.0 Zone 1 minimum time (sec.)
alpha2 0.0 Zone 2 torque angle (deg.)
rf2 0.0 Zone 2 forward reach (p.u. Z)
rr2 0.0 Zone 2 reverse reach (p.u. Z)
wl2 0.0 Zone 2 lens width (p.u. Z)
t2 0.0 Zone 2 minimum time (sec.)
alpha3 0.0 Zone 3 torque angle (deg.)
rf3 0.0 Zone 3 forward reach (p.u. Z)
rr3 0.0 Zone 3 reverse reach (p.u. Z)
wl3 0.0 Zone 3 lens width (p.u. Z)
t3 0.0 Zone 3 minimum time (sec.)
Notes:
a) Ooslen can model any combination of lens, tomato, or circle characteristics for each
zone, based on the input value of Wl:
Wl = 0. or Wl = Rf - Rr Circle with diameter = Rf - Rr
Wl < Rf - Rr Lens (intersection of 2 circles)
Wl > Rf - Rr Tomato (union of 2 circles)
(Note: Rr is negative for reach behind the bus, e.g. for case shown in figures below.)
Zone 3 (or Zone 3 and Zone 2) can be omitted by setting Rf and Rr equal to each other.
In this case the corresponding timer signals are initialized to 2.
b) For Types 0 or 1, Zone 1 is the innermost zone and must lie within Zone 2. Zone 2 must
lie within Zone 3.
As the impedance locus travels from the area outside all zones into Zone 3 to Zone 2 to
Zone 1, the travel times are measured. In order to trip, the locus must stay inside Zone 3
but outside Zone 2 for T3 seconds, inside Zone 2 but outside Zone 1 for T2 seconds, and
inside Zone 1 for T1 seconds. An outward travel type (type = 0) must also exit all active
zones before it will trip.
c) For Types 10 or 11, Zone 1 is normally the innermost zone and Zone 3 is the outermost.
However, the zones may overlap. A zone with nearly parallel line boundaries can be
modeled by setting Rf and Rr to large positive and negative values.
As the impedance locus travels from the area outside all zones into Zone 3 to Zone 2 to
Zone 1, the times within each zone are measured. In order to trip, the locus must stay
inside Zone 3 for T3 seconds, inside Zone 2 for T2 seconds, and inside Zone 1 for T1
seconds. An outward travel type (type = 10) must also exit all active zones before it will
trip.
d) After all trip conditions have been met for any of the relay types, the line will be tripped
following the circuit breaker delay time, Tcb. However, if the notrip parameter is > 0,
the line will not be tripped, but relay timer signals and apparent impedance will be
output.
e) Ooslen protects a line by operating the circuit breaker at its "from" end, <nf>. The line
may have any number of tap buses provided that connections to the tap buses are purely
radial. Any combination of loads, generators, shunts, and SVDs may be connected at tap
buses and at buses radial to the tap bus. If a line is protected by out-of-step relays at
both ends, ooslen must be applied twice, once for each end.
The location of the "far end" circuit breaker is indicated by the bus number, nfar, in the
parameter list. Bus <nt> must be the first bus on the line towards the far end as shown
below, and bus nfar must be at the location of the far end circuit breaker.
Ooslen trips only the circuit breaker at the "from" end. However, ooslen checks
whether the "to" end of the line is already open. If so, it trips all intermediate line
segments.
f) If notrip = 0, when ooslen trips the line it also trips generators, loads, and dynamic
models connected to buses that are radially connected to intermediate tap buses. along
the line.
g) Ooslen calculates the apparent impedance as seen looking into the line at its "from" end.
The current seen by ooslen is the total current flowing into the line at its from terminal,
including current flowing into charging capacitance and any line-connected shunts.
h) The signals in the first three output channels indicate the condition of the relay timer for
each zone, as follows:
i) Signalx in the fourth output channels indicates the condition of the circuit breader timer,
as follows:
j) Messages are written to the terminal window, term.log file, and the dynamic log file as
follows:
1) When apparent Z enters circle for zone <n>:
At t = <time> OOSLEN z<n> timer started for <branch id>
2) When apparent Z has remained in zone <n> for T<n>:
At t = <time> OOSLEN z<n> timed out for <branch id>
3) When apparent Z leaves zone <n> before T<n> and zone is reset :
At t = <time> OOSLEN z<n> reset for <branch id>
4) When all trip conditions are met and trip signal is sent:
At t = <time> OOSLEN trip initiated for <branch id>
5) When Tcb has elapsed after trip signal is sent:
At t = <time> OOSLEN cb timed out for<branch id>
k) The following messages relate to the line opening process when notrip <= 0:
1) At t = <time> OOSLEN opened <branch id>
means the line segment at the from bus end has been opened, but the remaining
segments (if any) may still be fed from the other end.
2) At t = <time> OOSLEN opened <branch id>
Far end already open - trip radial islands
means that all segments of the line and radial connections to tap buses are being
tripped.
3) Failed to find far end of line in OOSLEN at <branch id>
means that the program had trouble locating the far end of a multi-segment line.
This usually means that one or more of the tap buses has elements that loop back
into the system which is not permitted for OOSLEN.
Output Channels:
Record
Level Name Description
Block Diagram:
"Lens" "Tomato"
X X
rf rf
alpha alpha
R R
wl
rr rr wl
nf nt nfar
Model Name: ooslnq
Parameters:
EPCL Default
Variable Data Description
notrip 0.0 0: trip, >0: do not trip, <0: trip line, but do not trip isolated islands
nfar 0.0 Number of far end bus
type 0.0 0 = minimum time between zones, outward travel
1 = minimum time between zones, inward travel
10 = minimum time within each zone, outward travel
11 = minimum time within each zone, inward travel
tcb 0.0 Circuit breaker delay (sec.)
shape1 0.0 Zone 1 shape (0 circle/lens/tomato; 1 rectangle)..
ang1 0.0 Zone 1 angle (deg.)
rf1 0.0 Zone 1 forward reach (p.u. Z)
rr1 0.0 Zone 1 reverse reach (p.u. Z) (positive is “behind” the bus)
wt1 0.0 Zone 1 total width (p.u. Z)
wr1 0.0 Zone 1 right width (p.u. Z) (for rectangle only)
t1 0.0 Zone 1 minimum time (sec.)
shape2 0.0 Zone 2 shape (0 circle/lens/tomato; 1 rectangle)..
ang2 0.0 Zone 2 angle (deg.)
rf2 0.0 Zone 2 forward reach (p.u. Z)
rr2 0.0 Zone 2 reverse reach (p.u. Z) (positive is “behind” the bus)
wt2 0.0 Zone 2 total width (p.u. Z)
wr2 0.0 Zone 2 right width (p.u. Z) (for rectangle only)
t2 0.0 Zone 2 minimum time (sec.)
shape3 0.0 Zone 3 shape (0 circle/lens/tomato; 1 rectangle)..
ang3 0.0 Zone 3 angle (deg.)
rf3 0.0 Zone 3 forward reach (p.u. Z)
rr3 0.0 Zone 3 reverse reach (p.u. Z) (positive is “behind” the bus)
wt3 0.0 Zone 3 left width (p.u. Z)
wr3 0.0 Zone 3 right width (p.u. Z) (for rectangle only)
t3 0.0 Zone 3 minimum time (sec.)
Notes:
a) Ooslnq models out of step protection with up to 3 zones. Zone 3 (or Zone 3 and Zone
2) can be omitted by setting Rf and Rr equal to each other. In this case the
corresponding timer signals are initialized to 2.
b) Note: Rr is positive for reach behind the bus, e.g. for case shown in figures below. This
is the opposite of ooslen but is more consistent with relay terminology convention.
c) For Types 0 or 1, Zone 1 is the innermost zone and must lie within Zone 2. Zone 2 must
lie within Zone 3.
As the impedance locus travels from the area outside all zones into Zone 3 to Zone 2 to
Zone 1, the travel times are measured. In order to trip, the locus must stay inside Zone 3
but outside Zone 2 for T3 seconds, inside Zone 2 but outside Zone 1 for T2 seconds, and
inside Zone 1 for T1 seconds. An outward travel type (type = 0) must also exit all active
zones before it will trip.
d) For Types 10 or 11, Zone 1 is normally the innermost zone and Zone 3 is the outermost.
However, the zones may overlap.
As the impedance locus travels from the area outside all zones into Zone 3 to Zone 2 to
Zone 1, the times within each zone are measured. In order to trip, the locus must stay
inside Zone 3 for T3 seconds, inside Zone 2 for T2 seconds, and inside Zone 1 for T1
seconds. An outward travel type (type = 10) must also exit all active zones before it will
trip.
e) After all trip conditions have been met for any of the relay types, the line will be tripped
following the circuit breaker delay time, Tcb. However, if the notrip parameter is > 0,
the line will not be tripped, but relay timer signals and apparent impedance will be
output.
f) Ooslnq protects a line by operating the circuit breaker at its "from" end, <nf>. The line
may have any number of tap buses provided that connections to the tap buses are purely
radial. Any combination of loads, generators, shunts, and SVDs may be connected at tap
buses and at buses radial to the tap bus. If a line is protected by out-of-step relays at
both ends, ooslnq must be applied twice, once for each end.
The location of the "far end" circuit breaker is indicated by the bus number, nfar, in the
parameter list. Bus <nt> must be the first bus on the line towards the far end as shown
below, and bus nfar must be at the location of the far end circuit breaker.
Ooslnq trips only the circuit breaker at the "from" end. However, ooslnq checks
whether the "to" end of the line is already open. If so, it trips all intermediate line
segments.
g) If notrip = 0, when ooslnq trips the line it also trips generators, loads, and dynamic
models connected to buses that are radially connected to intermediate tap buses along
the line.
h) Ooslnq calculates the apparent impedance as seen looking into the line at its "from" end.
The current seen by ooslnq is the total current flowing into the line at its from terminal,
including current flowing into charging capacitance and any line-connected shunts.
i) For shape = 0, the impedance locus will be a circle, lens, or tomato shape based on the
input parameters, as follows:
j) For shape = 1, the impedance locus will be a rectangle with width = Wt. Wr is the
distance between the line through the origin and right side of the rectangle.
k) The signals in the first three output channels indicate the condition of the relay timer for
each zone, as follows:
l) Signalx in the fourth output channels indicates the condition of the circuit breader timer,
as follows:
m) Messages are written to the terminal window, term.log file, and the dynamic log file as
follows:
1) When apparent Z enters circle for zone <n>:
At t = <time> OOSLNQ z<n> timer started for <branch id>
2) When apparent Z has remained in zone <n> for T<n>:
At t = <time> OOSLNQ z<n> timed out for <branch id>
3) When apparent Z leaves zone <n> before T<n> and zone is reset :
At t = <time> OOSLNQ z<n> reset for <branch id>
4) When all trip conditions are met and trip signal is sent:
At t = <time> OOSLNQ trip initiated for <branch id>
5) When Tcb has elapsed after trip signal is sent:
At t = <time> OOSLNQ cb timed out for<branch id>
n) The following messages relate to the line opening process when notrip <= 0:
1) At t = <time> OOSLNQ opened <branch id>
means the line segment at the from bus end has been opened, but the remaining
segments (if any) may still be fed from the other end.
2) At t = <time> OOSLNQ opened <branch id>
Far end already open - trip radial islands
means that all segments of the line and radial connections to tap buses are being
tripped.
3) Failed to find far end of line in OOSLNQ at <branch id>
means that the program had trouble locating the far end of a multi-segment line.
This usually means that one or more of the tap buses has elements that loop back
into the system which is not permitted for OOSLNQ.
Output Channels:
Record
Level Name Description
Rectangle Circle
X pu X pu
rf
rf
wr
wt
R pu
R pu
rr rr
Lens Tomato
X pu X pu
rf rf
wt R pu
rr R pu
rr wt
nf nt nfar
Model Name: oosmho
Parameters:
EPCL Default
Variable Data Description
notrip 0.0 0: trip, >0: do not trip, <0: trip line, but do not trip isolated islands
nfar 0.0 Number of far end bus
ang 0.0 Mho zone angle (deg.)
rf 0.0 Mho zone forward reach (p.u. Z)
rr 0.0 Mho zone reverse reach (p.u. Z) (positive is “behind” the bus)
int1 0.0 Blinder 1 intercept, p.u. R
rot1 0.0 Blinder 1 rotation, deg.
int2 0.0 Blinder 2 intercept, p.u. R
rot2 0.0 Blinder 21 rotation, deg.
t1 0.0 Relay operating time (sec.)
tcb 0.0 Circuit breaker delay (sec.)
Notes:
a) Oosmho will operate when the impedance trajectory has crossed both blinders and has
been within the mho circle for at least t1 seconds. .
b) After all trip conditions have been met, the line will be tripped following the circuit
breaker delay time, Tcb. However, if the notrip parameter is > 0, the line will not be
tripped, but relay timer signals and apparent impedance will be output.
c) Oosmho protects a line by operating the circuit breaker at its "from" end, <nf>. The
line may have any number of tap buses provided that connections to the tap buses are
purely radial. Any combination of loads, generators, shunts, and SVDs may be
Copyright 2014 General Electric International. Inc. All Rights Reserved.
This material may not be copied or distributed in whole or in part, without
prior written permission of the copyright owner
connected at tap buses and at buses radial to the tap bus. If a line is protected by out-of-
step relays at both ends, oosmho must be applied twice, once for each end.
The location of the "far end" circuit breaker is indicated by the bus number, nfar, in the
parameter list. Bus <nt> must be the first bus on the line towards the far end as shown
below, and bus nfar must be at the location of the far end circuit breaker.
Oosmho trips only the circuit breaker at the "from" end. However, ooslnq checks
whether the "to" end of the line is already open. If so, it trips all intermediate line
segments.
d) If notrip = 0, when oosmho trips the line it also trips generators, loads, and dynamic
models connected to buses that are radially connected to intermediate tap buses along
the line.
e) Oosmho calculates the apparent impedance as seen looking into the line at its "from"
end. The current seen by oosmho is the total current flowing into the line at its from
terminal, including current flowing into charging capacitance and any line-connected
shunts.
h) Messages are written to the terminal window, term.log file, and the dynamic log file as
follows:
1) When apparent Z enters circle and crosses one blinder:
At t = <time> OOSMHO timer started for <branch id>
2) When apparent Z has remained in zone for T1 seconds:
At t = <time> OOSMHO timed out for <branch id>
3) When apparent Z leaves zone before T1 seconds and zone is reset :
At t = <time> OOSMHO reset for <branch id>
4) When all trip conditions are met and trip signal is sent:
At t = <time> OOSMHO trip initiated for <branch id>
5) When Tcb has elapsed after trip signal is sent:
At t = <time> OOSMHO cb timed out for <branch id>
i) The following messages relate to the line opening process when notrip <= 0:
Copyright 2014 General Electric International. Inc. All Rights Reserved.
This material may not be copied or distributed in whole or in part, without
prior written permission of the copyright owner
1) At t = <time> OOSMHO opened <branch id>
means the line segment at the from bus end has been opened, but the remaining
segments (if any) may still be fed from the other end.
2) At t = <time> OOSMHO opened <branch id>
Far end already open - trip radial islands
means that all segments of the line and radial connections to tap buses are being
tripped.
3) Failed to find far end of line in OOSMHO at <branch id>
means that the program had trouble locating the far end of a multi-segment line.
This usually means that one or more of the tap buses has elements that loop back
into the system which is not permitted for OOSMHO.
Output Channels:
Record
Level Name Description
Rectangle Circle
X pu X pu
rf
rf
wr
wt
R pu
R pu
rr rr
Lens Tomato
X pu X pu
rf rf
wt R pu
rr R pu
rr wt
nf nt nfar
Prerequisites: None
Invocation: oosscan :
Parameters:
EPCL Default
Variable Data Description
Notes:
a) oosscan computes the apparent impedance for all lines within the specified area or zone and
writes messages when the impedance becomes less than the line impedance. These messages
are written to the terminal, the dynamic log file (*.log) and the event table (*event.csv).
b) Scanning does not begin until after the initial disturbance, as indicated by the user-settable
parameter dypar[0].t_post_dist, which defaults to 0.5 sec. Value can be set in javaini.p or an
epcl used for the dynamic run.
c) Lines that are series capacitors (negative X) are not scanned. Multi-section lines that include
series capacitors are scanned; the relay circles are based on the net impedance of the line.
(Note: There is a known issue with the properly determining operation for line faults on muti-
section lines that include series capacitors.)
d) The current seen by oosscan is the total current flowing into the line, including current
flowing into charging capacitance and any line-connected shunts.
e) Lines may be excluded from scanning by setting the parameter secdd[].stn to –1 for those
lines.
f) Lines are scanned in both directions. In the messages, the direction is indicated by the order of
the buses (from bus, to bus).
g) Messages are written to the terminal, the dynamic log file and the event table including the
following information:
Simultation time
Circuit identification (from bus, to bus, ckt ID)
“The line is flagged as out of step – MONITOR only”
or
“The line is flagged as out of step – LINE TRIPPED”
Output Channels:
Record
Level Name Description
none
Model Name: pfpb
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This is a simple model for a plant power-frequency controller. The model will change
the governor reference of up to four units in order to maintain system frequency at its
nominal value, as measured terminal of the generator to which the model is
connected. Furthermore, a second control loop acts to change the governor reference
of the units in order to share the total load on the generating units in the plant equally
(i.e. in proportion to their MVA ratings).
b) The parameter gnum determines the number of units being controlled. This number
cannot be greater than 4.
c) The model will control the generator on the bus to which the model is connected. It
will also control the (gnum - 1) other generators that come before this generator in the
gens table. Therefore, this model MUST BE PLACE ON THE LAST GENERATOR
in the group of four or less generators to be controlled.
Output Channels:
Record
Level Name Description
Block Diagram:
fmax
freq 1 k1
(netw[k].f) 1 sTf s
fmin
pmax b4
+
Palloc4 + k2 +
s
etc. -
1 pmin
Power ku4
1 sTp
allocation
+ +
+ Pe4
+
Pref4
Model Name: pfqrg
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model represents the power factor or reactive power controller such as the Basler
SCP-250. The controller measures power factor angle or reactive power (p.u. on
generator MVA base) and compares it with the operator's set point.
b) The output of the controller is added to the voltage error signal in the voltage
regulator to bias excitation as required to achieve the desired power factor or reactive
power output. The output is stored in genbc[k].vsig, which is also used by PSS
models. Therefore, PFQRG and a PSS cannot be active on the same excitation
system model at the same time.
c) PFQRG assumes that the generator is operating at the desired power factor or reactive
power output in the initial condition and initializes itself with zero output.
d) PRQRG should be called after the generator model and before the excitation model
for its plant.
e) The reference signal, Ref, is initialized by the model. This initialization overrides the
value for Ref, if any, entered in the dyd file. Ref may be changed, after the INIT
command has been executed, to represent a plant operator's change of the reference
setting. If J=0, Ref is in radians; if J=1, Ref is in per unit on the MVA base of the
associated generator.
Output Channels:
Record
Level Name Description
Block Diagram:
Ki
Kp
s
Model Name: pidgov
Parameters:
EPCL Default
Variable Data Description
a) The gates travel over a range of 1.0 per unit from full closed to full opened. The
gates are at a position greater than zero at zero power and, normally, less than 1.0
when power is 1.0 p.u.
e) g0, g1, p1, g2, p2, p3 specify the variation of power with gate g2>g1>g0.
f) This model uses a simplified turbine-penstock model that does not account for
variation of water inertia effect with gate opening. To make this model correspond to
other models using the "classical" turbine-penstock model, set atw to unity. To
approximate water inertia effects at part load, atw can be set to the per unit gate
opening about which perturbations are centered.
g) The feedback signal used by the governor can be selected by setting the feedback flag
as follows:
Output Channels:
Record
Level Name Description
Block Diagram:
Pref
Flag = 0
Pgen
Flag = 1
Rperm
1 sTreg S0
speed Ki 1 1
Kp
s 1 sTa 1 sTa
S1 S3 S4
sKd
1 sTa
S2
gmax
power 3 S6
Pmech
1 1 sTz
2
1 sTb 1 gate 1 sTz / 2
S5 0 Tz - (atw)*Tw
gmin
D
Model Name: plefd
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model transfers a signal from the pldat.now array to the generator field voltage
input of the generator model for which this model is invoked, genbc[n],efd.
c) The epcl rpli command is used to read play-in data into the data tables pldat and
plhead
d) The epcl plsc command is used to apply scale factors and offsets to the play-in data
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Notes:
a) plnow makes the signals stored in the pldat.data array available to the dynamic
simulation process. If dypar[0].autosortmodels option is set to 0 by the user, plnow
should be the first model called in a dynamic simulation setup in which “played in”
signals are used. That is, plnow should appear as the first model listed in the edds table,
if dypar[0].autosortmodels is set to 0. plnow should be called only ONCE.
b) This model obtains the value of the played-in data channels corresponding to the present
value of the simulation time, dypar.time. In most simulation runs the simulation time
step, dypar.time, will be smaller than the sampling interval of the played in data. PSLF
therefore obtains the ‘present’ value of the played-in signals in the array pldat.now[*].
The models plref, plefd, pltp, gthev, get the signal values that they need from this array.
c) The parameter, tz, can be used to line up an event time in the play-in data with a specific
time in the simulation. For example, if an event occurs at time, <tp> in the play in data
and at time <ts> in the simulation, the value of <tz> should be set to
d) In addition to obtaining the present values of the played-in signals, plnow can pass each
channel through a single pole low pass filter so that the signal delivered to the simulation
is given by
e) In addition to preparing the present value of the played-in signals, if its recording level is
non-zero, this model transfers signals from the pldat.now array to the dynamics channel
output file. The recording level is set by the # entry immediately after the : in the
dynamics data file record, or via the edds table.
f) The plot output channels are named according to the bus at which this model is invoked.
The first four characters of the play-in channel name, plhead[0].name, are used as the
signal type in the PSLF channel output file.
h) The epcl rpli command is used to read play-in data into the data tables pldat and plhead.
If the data read by rpli exceeds the allocated space, the message “RPLI reached its space
limit” is issued to the .log file following the call to rpli. Exceeding the allocated space
can lead to erroneous results.
i) The epcl plsc command is used to apply scale factors and offsets to the play-in data.
Output Channels:
Record
Level Name Description
Prerequisites: The pldat and plhead tables must have been loaded with
the rpli command
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model plays in the voltage regulator reference and governor speed-load reference
signals contained in columns civt and cisl of the pldata table. The pldata and plhead
tables must be prepared before the init command is executed. (see the rpli command)
b) The columns of the pldata table containing the reference signals are selected by the
parameters civt and cisl. The time channel for playback must be column 0 of the pldat
table. Setting civt to zero suppresses playback of voltage regulator reference; setting cisl
to zero suppresses playback of speed-load reference.
c) In most applications it is necessary to apply offsets to the played-in signals to match their
initial values to the initial conditions of the simulation. If the parameters, vbias, nbias
of this model are greater than 9.0 the required biases are determined by the model as the
difference between its initialized simulation value and the first value in the pldat table.
If the value of vbias and/or nbias is less than 9.0 it is used directly.
d) The scaling and offset specified by plhead[*].scale and plhead[*].ofset are used BEFORE
the offset specified by the bias parameter, of this model is applied. That is,
plhead[*].scale and plhead[*].ofset are used first to translate raw recorded data into the
units required for play in to the model and, after that translation, the bias parameter of the
model is used to align the test and simulated initial conditions.
e) The epcl rpli command is used to read play-in data into the data tables pldat and plhead
f) The epcl plsc command is used to apply scale factors and offsets to the play-in data
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model transfers signals from the pldat.now array to the turbine power applied to
generator for which this model is invoked, genbc[n],pmech.
c) The epcl rpli command is used to read play-in data into the data tables pldat and plhead.
d) The epcl plsc command is used to apply scale factors and offsets to the play-in data.
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
None
Notes:
a) pmetr monitors the total output of a multi-generator power plant. It does this by
summing up the flows of real and reactive power arriving at a designated bus through
transformers or transmission line branches having a specified first character in their
circuit identifier, <id>.
b) The operation of pmetr is illustrated by the two examples shown in the following
diagram.
In the first example a plant has five units connected to a high voltage bus, bus 731, by
unit-connected two winding transformers. The generators have identifiers 1, 2, 3, 4, 5
and their respective transformers have the circuit identifiers t1, t2, t3, t4, t5. pmetr is
invoked by
This causes pmetr to search for all branches arriving at bus 731 with t as the first
character of the identifier, and to sum the their flows into the output channels pp and
qp.
In the second example four generators are connected to the common bus, bus 896, by
two three winding transformers with the identifiers sa, sb. Here the summation of the
four generator outputs is done by summing the flows in the two transformer windings
connected to bus 896 by invoking
pmetr with
Output Channels:
Record
Level Name Description
Block Diagram:
1 2 3 4 5
t1 t2 t3 t4 t5
P1 Q1 P2 Q2 P3 Q3 P4 Q4 P5 Q5
Bus 731
1 2 1 2
sa sb
P1 Q1 P2 Q2
Bus 896
Parameters:
EPCL Default
Variable Data Description
Notes:
e) To use branch current as an input, the branch is specified using the ( [<mon_i>]
{<name> <kv>} [<mon_j>] {<name> <kv>} <ck> <sec> ) data in the DYD file. Note
that only one branch current may be used as input to this model.
Output Channels:
Record
Level Name Description
Input 1 s T5 1
Ks
Signal 1 + s T6 1 + s T5 1 + A1 s + A2 s2
S3 S0
Vrmax
Vl l o u t Vs
1 + s T1 1 + s T3 Output
1 + s T2 1 + s T4 Limiter
S1 S2
Vrmin
Output Limiter
Vct = Compensating
v o l ta g e
( genbc[k].vcomp )
Model Name: pss2a
Parameters:
EPCL Default
Variable Data Description
Notes:
c) Ta, Tb, a, T1, T2, T3, T4, T6, T7, T8, and T9 may be zero.
f) The input signal code, j, and the remote bus number, k, specify the input signal used
by the stabilizer. If k is zero the signal is taken from the shaft or terminals of the
generator on which the stabilizer is located. If k is non-zero the signal is taken from
bus number k ( for j = 1, 2, 3, 4, or 5 ).
g) To use branch current as an input, the branch is specified using the ( [<mon_i>]
{<name> <kv>} [<mon_j>] {<name> <kv>} <ck> <sec> ) data in the DYD file or in
the "edds" table. Note that only one branch current may be used as input to this
model.
h) If the value of Tb is zero or not specified, the non-IEEE block is bypassed (regardless
of the value of a).
Output Channels:
Record
Level Name Description
1 vs Stabilizer output signal, p.u.
Block Diagram:
Input
n
sTw1 sTw 2 1 1 sT8 Ks1
1 sT1
1 sTw1 1 sTw 2 1 sT 6 m - 1 sT 2
1 (1 sT9)
S0 S1 S2 S6
S8-S17
ks3 ks4
Vstmax
Input
sTw 3 sTw 4 Ks2 1 sT3 a sTa Vst
1 sTw 3 1 sTw 4 1 sT7 1 sT 4 1 sTb
2
S3 S4 S5 S7 S18
Vstmin
Model Name: pss2b
Parameters:
EPCL Default
Variable Data Description
Notes:
c) Ta, Tb, a, T1, T2, T3, T4, T6, T7, T8, and T9 may be zero.
f) The input signal code, j, and the remote bus number, k, specify the input signal used
by the stabilizer. If k is zero the signal is taken from the shaft or terminals of the
generator on which the stabilizer is located. If k is non-zero the signal is taken from
bus number k ( for j = 1, 2, 3, 4, or 5 ).
g) To use branch current as an input, the branch is specified using the ( [<mon_i>]
{<name> <kv>} [<mon_j>] {<name> <kv>} <ck> <sec> ) data in the DYD file or in
the "edds" table. Note that only one branch current may be used as input to this
model.
Output Channels:
Record
Level Name Description
Block Diagram:
Vsi1max
n
Input 1 sTw1 1 1 sT 8 1 sT 1
sTw2
1 sTw1 1 sTw2 1 sT 6 (1 sT 9) m Ks1
1 sT 2
S0 S1 S2 S6
Vsi1min S10-S19
ks3 ks4
Vsi2max Vstmax
S3 S4 S5 S7 S8 S9
Vsi2min Vstmin
Model Name: pss3b
Parameters:
EPCL Default
Variable Data Description
Notes:
a) If T1, T2, or Tw3 is zero, the corresponding block is bypassed. Tw1 and Tw2 must
be non-zero.
c) The input signal code, j, and the remote bus number, k, specify the input signal used
by the stabilizer. If k is zero the signal is taken from the shaft or terminals of the
generator on which the stabilizer is located. If k is non-zero the signal is taken from
bus number k ( for j = 1, 2, 3, 4, or 5 ). The input signal code, j, is:
e) To use branch current as an input, the branch is specified using the ( [<mon_i>]
{<name> <kv>} [<mon_j>] {<name> <kv>} <ck> <sec> ) data in the DYD file.
Note that only one branch current may be used as input to this model.
Output Channels:
Record
Level Name Description
Input 1 1 sTw1
Ks1
1 + sT1 1 + sTw1
S0 S1
Input 2 1 sTw2
Ks2
1 + sT2 1 + sTw2
S2 S3
Vstmax
Parameters:
EPCL Default
Variable Data Description
Notes:
c) T1, T2, T3, T4, T6, T7, T8, and T9 may be zero.
f) The voltage boost signal transient stabilizer can be specified using time constants td1,
td2, voltage signal vk and limit vtl. The transient stabilizer is operated by the action
of the remote relay or by closing the normally open switch sw1.
g) The input signal code, j, and the remote bus number, k, specify the input signal used
by the stabilizer. If k is zero the signal is taken from the shaft or terminals of the
generator on which the stabilizer is located. If k is non-zero the signal is taken from
bus number k (for j = 1, 2, 3, 4, or 5).
h) To use branch current as an input, the branch is specified using the ( [<mon_i>]
{<name> <kv>} [<mon_j>] {<name> <kv>} <ck> <sec> ) data in the DYD file or in
the "edds" table. Note that only one branch current may be used as input to this
model.
i) Stabilizer output Vstmax and Vstmin should bracket 0 per unit voltage. A reasonable
default value would be .1 for the maximum and the minimum is -.1.
Output Channels:
Record
Level Name Description
Block Diagram:
Vstmax
n
Input 1 sT8 Vst
1 sT1 1 sT3
sTw1 sTw 2 1
Ks1
1 sTw1 1 sTw 2 1 sT 6 (1 sT9 )
m 1 sT 2 1 sT 4
1
S0 S1 S2 S6 S7
S8-S17 Vstmin
ks3 ks4
Input
sTw 3 sTw 4 Ks2
1 sTw 3 1 sTw 4 1 sT7
2
S3 S4 S5
Model Name: psssh
Parameters:
EPCL Default
Variable Data Description
Notes:
Record
Level Name Description
Block Diagram:
Vsmax
Vs
K [vsig]
+ + + +
Pe 1 + + + +
1 sTd Vsmin
K0 K1 K2 K3 K4
+
S0
1 1 1 1
sT 1 sT 2 sT3 sT 4
+ + +
S1
+ S2 + S3 + S4
Model Name: psssvc
Parameters:
EPCL Default
Variable Data Description
Notes:
b) The input signal code, j, and the remote bus number, k, specify the input signal used
by the stabilizer. If k is zero the signal is taken from the bus at which the stabilizer is
located. If k is non-zero the signal is taken from bus number k. The input signal
code, j, is:
1 for magnitude of bus voltage
2 for magnitude of branch current, p.u.
3 for branch electrical power, p.u.
4 for bus frequency, p.u.
c) If the input signal code, j, is not 1 or 2 or 3 or 4, the input to psssvc is set to zero.
e) To use branch current (or power) as an input, the branch is specified using the (
[<mon_i>] {<name> <kv>} [<mon_j>] {<name> <kv>} <ck> <sec> ) data in the
DYD file, e.g.:
psssvc 7 "BUS-7 " 230.00 "1 " ! ! ! ! ! 2 "BUS-2 " 230.00 3 "BUS-3 " 230.0 "2 " : #1 /
Only one branch current (or power) may be used as input to this model.
Output Channels:
Record
Level Name Description
Block Diagram:
Vmax
Vs
Input 1 s Tw 1 + s T1 1 + s T3
Ka
Signal 1 + s Tr 1 + s Tw 1 + s T2 1 + s T4
S3 S0 S1 S2
Vmin
Model Name: pv1e
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The Q order can either come from a separate model via the genbc[k].vref signal (varflg
= -1) or from the PV plant Var controller emulator part of this model (varflg = 1). The
PV plant Var controller emulator represents the effect of a centralized controller.
b) For the PV plant Var controller emulator, voltage at a remote bus (e.g. system interface)
can be regulated by entering the bus identification as the second bus ([<nr>] {<namer>
<kvr>}) on the input record. Alternatively, generator terminal bus voltage can be
regulated by omitting the second bus identification. If a monitored branch is included in
the invocation, then the from-bus is regulated. The voltage reference, Vrfq, for the PV
plant Var controller emulator is stored in genbc[k].vref when varflg = 1.
c) Any of the time constants may be zero.
d) The time constant Tc reflects the delays associated with cycle time, communication
delay, and filtering in the plant control.
e) Kqi can be tuned to obtain faster or slower response. The time constant of the Q control
loop is approximately equal to the equivalent reactance looking out from the plant
terminals (= dV/dQ) divided by Kqi. The default value (0.1) assumes a desired time
constant of 0.5 sec. and an equivalent reactance of 0.05 p.u. (on the plant MW base).
This is appropriate for a single PV plant connected to a stiff system.
f) For constant Q regulation (varflg = pfaflg = 0), the value of Kqi should be set to a very
small number, e.g. 0.001) since this control is a slow reset.
g) The default PV plant Var controller emulator gains, Kpv and Kiv, are appropriate when
the system short circuit capacity beyond the point of interconnection of the PV plant is 5
or more times the MW capacity of the PV plant. For weaker systems, these values should
be reduced, e.g. for SCC = 2., Kpv = 13 and Kiv = 2 are recommended.
h) The compensating reactance for voltage control, Xc, is used to synthesize a bus for
regulating that is further into the power system then either the terminal bus or a remote
bus. It is only available when a monitored branch is included in the invocation. If there
is a monitored branch, then the regulated bus is the from-bus plus a projection into the
system based on Xc*branch current. See note b) for other voltage regulation options.
i) The Q Droop function, is a relatively slow-acting function that reduces the change in
voltage reference as reactive power changes. This improves coordination between
multiple integral controllers regulating the same point in the system. With default data,
the function is not active. To use this function, typical data would be Kqd = 0.04, Tlpqd
= 5.0, Xqd = 0. There are three options for the reactive power input to this function:
a. Default Q input is reactive power generated by this PV plant.
b. If a monitored branch is in the invocation, then the Q input is the reactive power
flow in that branch. The from-bus of the monitored branch must be closest to the
generator terminals.
c. If a monitored branch is in the invocation and Xqd is non-zero, then the Q input is
the reactive power flow in that branch plus a secondary term, Xqd*Im^2, where
Im is the magnitude of the current flowing in the monitored branch. The from-
bus of the monitored branch must be closest to the PV plant terminals.
j) An arbitrary test signal can be injected into the terminal bus voltage regulator via
model[@index].sigval[0]. A user-written dynamic model (epcmod) is used to generate
the desired signal. The index of the wind turbine model (@index) can be obtained using
the model_index function.
k) If imaxtd is absent in the model input data or if it is zero, then imaxtd is set to 1.7 and a
warning is printed.
l) Integrators s0 and s1 are frozen when either Iqmx or Iqmn is reached.
m) The “fix bad data” option will do the following:
a) If 0 < Tr < 4*delt, then set Tr = 4*delt
b) If 0 < Tc < 4*delt, then set Tc = 4*delt
c) If 0 < Tv < 4*delt, then set Tv = 4*delt
d) If 0 < Tpwr < 4*delt, then set Tpwr = 4*delt
e) If 0 < Tlpqd < 4*delt, set Tlpqd = 4*delt
Output Channels:
Record
Level Name Description
Block Diagram:
P,Q Priority Flag
(pqflag)
0 1
Vt
Iqmn Iqmx Iqmx Iqmn
Iqmxv
-1 -1
Iqmxv
Iqhl Minimum
Minimum Minimum
IPcmd
ImaxTD ImaxTD2 - IPcmd2
IQcmd
ImaxTD2 - IQcmd2
Iphl
Minimum Minimum
Ipmx Ipmx
Qinput Vqd
1
Kqd
1+ sTlpqd
s7
Q Droop Function
Model Name: pv1g
Parameters:
EPCL Default
Variable Data Description
Lvplsw 1.0 Connect (1) / disconnect (0) Low Volt. Power Logic switch
Rrpwr 10.0 LVPL ramp rate limit, p.u.
Brkpt 0.9 LVPL characteristic breakpoint, p.u.
Zerox 0.4 LVPL characteristic zero crossing, p.u.
Lvpl1 1.22 LVPL breakpoint, p.u.
Volim 1.2 Voltage limit used in the high voltage reactive current
management function, p.u.
Lvpnt1 0.8 High voltage point for low voltage active current
management function, p.u.
Lvpnt0 0.4 Low voltage point for low voltage active current
management function, p.u.
Iolim -1.3 Current limit in the high voltage reactive current
management function, p.u.
Khv 0.70 Acceleration factor used in the high voltage reactive
current management function.
Notes:
a) It is recommended that the MVA base be specified in the dyd file by the entry
MVA=value after the record level. The variables are in per unit on the unit MVA
base.
b) The model is a simplified representation of rather complex and very fast controls. The
small time constants (0.02 seconds) provide a reasonable approximation to fast
electronic control systems.
c) The active and reactive current commands from the converter control model, pv1e,
are transferred via the variables genbc[k].efd and genbc[k].ladifd, respectively.
d) If Lvplsw is set to 0 the Low Voltage Power Logic is not used and the LVPL and
Rrpwr limits are not applied.
e) The 'High Voltage Reactive Current Management" block limits the reactive current
injected into the network equations such that the terminal voltage does not exceed
Volim of nominal, as long as the converter is within current limits.
f) The "Low Voltage Active Current Management" block is designed to capture the
characteristic of active power under very low voltage scenarios. This function is
designed to reduce active current in a linear fashion.
g) The model does not include Low/High voltage protection. This voltage protection
function should be implemented using the lhvrt model.
Output Channels:
Record
Level Name Description
1 vt Terminal voltage, pu
1 pg Electrical power, MW
1 qg Reactive power, MVAr
2 ipcd Active current command (Ipcmd), p.u.
2 iqcd Reactive current command (Iqcmd), p.u.
2 ip Active current (Pgen/Vt), p.u.
2 iq Reactive current (Qgen/Vt), p.u.
2 iplv Final active current command after LVPL, p.u.
Block Diagram:
LVPL
V term
Lvpl1
Lvplsw = 0
LVPL V 1
jX"
Lvplsw = 1 1+ 0.02 s
V s2
zerox brkpt
(0.50) (0.90)
Low Voltage Power Logic
0
+
Khv
-
0
Volim 1
Isorc
Vterm
IPIv
Gain
X
1
Vterm
Lvpnt0 Lvpnt1 V
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The model variables are in per unit on its own base. It is recommended that the MVA base
be specified in the dyd file by the entry mva=value after the record level. The following is
an example:
pvd1 9 "PVG TERM" 0.575 "1 " : #2 mva=10. "pqflag " 1.0 etc.
b) The Instantaneous High Voltage Reactive Power Logic Flowchart and the Instantaneous
Low Voltage Active Power Logic Flowchart provide a functional/conceptual description of
the interface between the regc_a model and the transmission network.
e) PVD1 allows for tripping all or portion of the generation based on over- and under- voltage
and/or frequency levels. As an example, consider the following sample invocation:
pvd1 13245 "PV TERM" 0.575 "1 " : #9 mva=10. "pqflag" 1. "xc" 0. "qmx" 0.328 "qmn" -0.328 /
"v0" 0.90 "v1" 1.10 "dqdv" 0.05 "fdbd" -0.05 "ddn" 0.05 "imax" 1.20 /
"vt0" 0.80 "vt1" 0.90 "vt2" 1.10 "vt3" 1.20 "vrflag" 1.00 /
"ft0" 59.5 "ft1" 59.7 "ft2" 60.3 "ft3" 60.5 "frflag" 0.00 /
"tg" 0.02 "tf" 0.05 "vtmax" 1.2 "lvpnt1" 0.8 "lvpnt0" 0.4 "qlim" -1.3 "accel" 0.7
In this case, generation would disconnect outside the voltage range 0.9 to 1.1 p.u. (vt1,
vt2); all generation disconnects when the terminal voltage is less than 0.8 p.u. (vt0) or
greater than 1.2 p.u. (vt3). Similarly, generation would disconnect when the frequency falls
outside the range 59.7 to 60.3 Hz (ft1, ft2); all generation disconnects when the frequency
is outside the range 59.5 to 60.5 Hz (ft0, ft3). vrflag and frflag are set to 1.0 and 0.0,
respectively. This means that, as the voltage and frequency recover, generation
disconnected on voltage reconnects, but generation disconnected on frequency is not
allowed to reconnect.
Record
Level Name Description
Block Diagram:
Q priority (pqflag = 0)
iqmax = imax
iqmin = - iqmax
ipmax = sqrt( imax2 – iqcmd2 )
P priority (pqflag = 1)
ipmax = imax
iqmax = sqrt( imax2 – ipcmd2 )
iqmin = - iqmax
Generator/converter model
False
True: q = qmin q=q
Not solved,
Magnitude Vmi = |Vi| Nodal voltage: next
Angle Vai = atan(Vx/Vy) Vi = Vx + jVy algebraic
(both decelerated after 1st iteration) on common reference iteration,
“i”.
Power Limit
1.0
Max Active
Multiplier
Using Vmi:
Calculate Maximum Active
Power Limit Multiplier (mult)
0.0 Algebraic Network
Voltage Solved
Solution Solved?
(Vmi)
Lvpnt0 Lvpnt1
Time
Algebraic Network Solution Advances…
Nodal current
Translate ip, iq back to common reference injection:
frame Ii =Ix + IVy
on common reference
if (ft < fmin ) fmin = ft (fmin tracks the lowest frequency during a simulation)
if( ft ≤ fmin )
else
end if
else
ffl = 1.0
else
end if
end if
For high frequency tripping:
ffh = 0.0
if( ft ≥ fmax )
else
end if
else
ffh = 1.0
else
end if
Inputs:
Parameters:
EPCL Default
Variable Data Description
Output Channels:
Record
Level Name Description
Inputs:
Parameters:
EPCL Default
Variable Data Description
mvab 0.0 MVA base (See Note a)
vdip -99. Vterm < vdip activates the current injection logic, p.u. (see Note b)
vup 99. Vterm > vup activates the current injection logic, p.u. (see Note b)
trv 0.0 Transducer time constant, sec.
dbd1 -0.05 Deadband in voltage error, p.u.
dbd2 0.05 Deadband in voltage error, p.u.
kqv 0.0 Reactive current injection gain during voltage dip (and overvoltage)
conditions, p.u./p.u.
iqh1 1.05 Maximum limit of reactive current injection (iqinj), p.u.
iql1 -1.05 Maximum limit of reactive current injection (iqinj), p.u.
vref0 0.0 Reference voltage (See Note e)
iqfrz 0.15 Value at which Iqinj is held for thld seconds following a voltage dip
if thld > 0, p.u.
thld 0.0 Time delay associated with the computation of iqinj and with the
operation of switch SW (See block diagram and description of SW
switch operation below block diagram), sec.
thld2 0.0 The active current command (Ipcmd) is held for thld2 seconds after
voltage_dip returns to zero.
tp 0.05 Electrical power transducer time constant, sec.
qmax 0.436 Reactive power maximum limit, p.u.
qmin -0.436 Reactive power minimum limit, p.u.
vmax 1.10 Voltage control maximum limit, p.u.
vmin 0.90 Voltage control minimum limit, p.u.
kqp 0.0 Proportional gain, p.u.
kqi 0.50 Integral gain, p.u.
kvp 0.0 Proportional gain, p.u.
kvi 40.0 Integral gain, p.u.
vref1 0.0 User-defined reference on the inner-loop voltage control (default
value is zero), p.u.
tiq 0.02 Time constant, sec.
dpmax 99. Up ramp rate on power reference p.u./sec.
dpmin -99. Down ramp rate on power reference p.u./sec.
pmax 1.12 Maximum power reference, p.u.
pmin 0.04 Minimum power reference, p.u.
imax 1.82 Maximum allowable total current limit, p.u.
tpord 0.02 Time constant, sec.
pfflag 0.0 Power factor flag:
= 1 : Power factor control
= 0 : Q control
vflag 1.0 Voltage control flag:
= 1 : Q Control
= 0 : Voltage control
qflag 1.0 Reactive power control flag
= 1 : Voltage/Q control
= 0 : Constant power factor or Q Control
pflag 0.0 Power reference flag:
= 1 : reference is Pref*speed (Do not use with Type 3 WTG)
= 0 : reference is Pref
pqflag 0.0 Flag for P or Q priority selection on current limit:
= 1 : P priority
= 0 : Q priority
vq1 -1.00 User defined voltage used to define VDL1 function, p.u.
iq1 1.45 User defined current used to define VDL1 function, p.u.
vq2 2.00 User defined voltage used to define VDL1 function, p.u.
iq2 1.45 User defined current used to define VDL1 function, p.u.
vq3 0.0 User defined voltage used to define VDL1 function, p.u.
iq3 0.0 User defined current used to define VDL1 function, p.u.
vq4 0.0 User defined voltage used to define VDL1 function, p.u.
iq4 0.0 User defined current used to define VDL1 function, p.u.
vp1 -1.0 User defined voltage used to define VDL2 function, p.u.
ip1 1.1 User defined current used to define VDL2 function, p.u.
vp2 2.0 User defined voltage used to define VDL2 function, p.u.
ip2 1.1 User defined current used to define VDL2 function, p.u.
vp3 0.0 User defined voltage used to define VDL2 function, p.u.
ip3 0.0 User defined current used to define VDL2 function, p.u.
vp4 0.0 User defined voltage used to define VDL2 function, p.u.
ip4 0.0 User defined current used to define VDL2 function, p.u.
Notes:
a) If mvab is less than or equal to zero, then the base used by model regc_a is also used in
reec_a.
b) The voltage dip logic is activated using the internal flag Voltage_dip if the terminal voltage
(Vterm) is less than vdip or if the terminal voltage is greater than vup:
e) If vref0 is zero, then vref0 is initialized to the terminal voltage of the generator model
associated with reec_a.
f) When PfFlag = 1, PFAref is computed by the model during initialization.
g) If reec_a is used in conjunction with regc_a and wtgt_a to represent a Type 4 WTG, then
set pflag to 1 (if wtgt_a is not used, the value of pflag does not affect the simulation
results). If reec_a is used in the representation of a Type 3 WTG, then set pflag to 0.
h) If reec_a and repc_ are used to represent a Type 4 WTG, then Pref0 is computed in the
plant controller model, repc_. If reec_a and wtgq_a are used in the representation of a
Type 3 WTG, then Pref is computed in the torque controller model, wtgq_a.
i) The interconnection of this this model with other components in a wind power plant and a
simple application example are provided in the upslf*/samples folder.
j) Reactive power control options (RefFlag is part of the plant controller model i.e. repc_
model):
N/A means that the position of the associated flag does not affect the simulation results,
i.e., the flag can be either 1 or 0. Table 1 provides a breakdown of commonly employed
reactive power control options. In addition to the control options listed in Table 1, the model
also allows for pfflag = 1 vflag = 1 and qflag = 1. An error is reported if the model does not
detect this or an operating condition defined in the table; in this case, the data must be fixed
to avoid invalid initial conditions.
Output Channels
Record
Level Name Description
*
Switch SW:
Voltage_dip = 0 and switch SW in position 0 is the normal operating condition.
When Voltage_dip is set to 1, then switch SW is set to position 1.
Immediately after Voltage_dip is reset from 1 to 0, depending upon the value of thld, one of the following
three actions takes place:
If thld = 0, switch SW is reset to position 0.
If thld > 0, switch SW is set to position 2 for thld seconds; after thld seconds, switch SW is reset to
position 0.
If thld < 0, switch SW is held at position 1 for |thld| seconds; after |thld| seconds, SW is reset to
position 0.
Current Limit Logic:
If (pqflag = 0) {Q priority}
Iqmax = min [ Output of VDL1, Imax ]
Iqmin = ‐ Iqmax
Ipmax =min [ Output of VDL2, ]
Ipmin = 0.0
else {P priority}
Iqmax = min [ Output of VDL1, ]
Iqmin = ‐ Iqmax
Ipmax =min [ Output of VDL2, Imax]
Ipmin = 0.0
end
Model Name: reec_b
Inputs:
Parameters:
EPCL Default
Variable Data Description
mvab 0.0 MVA base (See Note a)
vdip -99.99 Vterm < vdip activates the current injection logic, p.u. (see Note b)
vup 99.99 Vterm > vup activates the current injection logic, p.u. (see Note b)
trv 0.05 Transducer time constant, sec.
dbd1 0.00 Deadband in voltage error, p.u.
dbd2 0.00 Deadband in voltage error, p.u.
kqv 0.00 Reactive current injection gain, p.u./p.u.
iqh1 1.05 Maximum limit of reactive current injection (iqinj), p.u.
iql1 -1.05 Minimum limit of reactive current injection (iqinj), p.u.
vref0 0.00 Reference voltage (See Note c)
tp 0.05 Electrical power transducer time constant, sec.
qmax 0.43 Reactive power maximum limit, p.u.
qmin -0.43 Reactive power minimum limit, p.u.
vmax 1.1 Voltage control maximum limit, p.u.
vmin 0.90 Voltage control minimum limit, p.u.
kqp 0.10 Proportional gain, p.u.
kqi 0.10 Integral gain, p.u.
kvp 5.0 Proportional gain, p.u.
kvi 1.0 Integral gain, p.u.
tiq 0.05 Time constant, sec.
dpmax 99.0 Up ramp rate on power reference p.u./sec.
dpmin -99.0 Down ramp rate on power reference p.u./sec.
pmax 1.0 Maximum power reference, p.u.
pmin 0.00 Minimum power reference, p.u.
imax 1.25 Maximum allowable total current limit, p.u.
tpord 0.05 Time constant, sec.
pfflag 0.00 Power factor flag:
= 1 : Power factor control
= 0 : Q control
vflag 0.00 Voltage control flag:
= 1 : Q Control
= 0 : Voltage control
qflag 1.00 Reactive power control flag
= 1 : Voltage/Q control
= 0 : Constant power factor or Q Control
pqflag 0.00 Flag for P or Q priority selection on current limit:
= 1 : P priority
= 0 : Q priority
Notes:
a) If mvab is less than or equal to zero, then the base used by model regc_a is also used in
reec_b.
b) The voltage dip logic is activated using the internal flag Voltage_dip if the terminal voltage
(Vterm) is less than vdip or if the terminal voltage is greater than vup:
c) If vref0 is zero, then vref0 is initialized to the terminal voltage of the generator model
associated with reec_b. Verrx (see block diagram) is assumed to be zero during the model
initialization.
d) When PfFlag = 1, PFAref is computed by the model during initialization.
e) Reactive power control options (RefFlag is part of the plant controller model i.e. repc_
model):
Table 1 – Reactive Power Control Options
Functionality Models Needed PfFlag Vflag Qflag RefFlag
Constant local PF control REEC_B 1 N/A 0 N/A
Constant local Q control REEC_B 0 N/A 0 *
Local V control REEC_B 0 0 1 *
Local coordinated V/Q control REEC_B 0 1 1 *
Plant level Q control REEC_B, REPC_ 0 N/A 0 0
Plant level V control REEC_B, REPC_ 0 N/A 0 1
Plant level Q control + local coordinated
REEC_B, REPC_ 0 1 1 0
V/Q control
Plant level V control + local coordinated REEC_B, REPC_ 0 1 1 1
V/Q control
* If there is a plant controller (repc_ model) connected to this model, the repc_ model will
change Qref.
N/A means that the position of the associated flag does not affect the simulation results,
i.e., the flag can be either 1 or 0. Table 1 provides a breakdown of commonly employed
reactive power control options. In addition to the control options listed in Table 1, the model
also allows for pfflag = 1 vflag = 1 and qflag = 1. An error is reported if the model does not
detect this or an operating condition defined in the table; in this case, the data must be fixed
to avoid invalid initial conditions.
Output Channels
Record
Level Name Description
Imax
Vt_filt Current
Limit
PQflag Logic
0.01
0 – Q priority
Freeze state if 1 – P priority
Voltage_dip = 1
Pmax &
dPmax Ipmax
D
1 N N
Ipcmd
Pref
1+sTpord D
To
From
repc_a s5 regc_a
0
Pmin &
dPmin
Current Limit Logic:
If (pqflag = 0) {Q priority}
Iqmax = Imax
Iqmin = ‐ Iqmax
Ipmax =
Ipmin = 0.0
else {P priority}
Iqmax =
Iqmin = ‐ Iqmax
Ipmax = Imax
Ipmin = 0.0
End
Model interconnection diagram for generic PV plant
Model Name: reec_c
Inputs:
Parameters:
EPCL Default
Variable Data Description
mvab 0.0 MVA base (See Note a)
vdip -99. Vterm < vdip activates the current injection logic, p.u. (see Note b)
vup 99. Vterm > vup activates the current injection logic, p.u. (see Note b)
trv 0.0 Transducer time constant, sec.
dbd1 -0.05 Deadband in voltage error, p.u.
dbd2 0.05 Deadband in voltage error, p.u.
kqv 0.0 Reactive current injection gain during voltage dip (and overvoltage)
conditions, p.u./p.u.
iqh1 1.05 Maximum limit of reactive current injection (iqinj), p.u.
iql1 -1.05 Maximum limit of reactive current injection (iqinj), p.u.
vref0 0.0 Reference voltage (See Note e)
SOCini 1. Initial state of charge
SOCmax 1. Maximum allowable state of charge
SOCmin 0.0 Minimum allowable state of charge,
T 99999 Discharge time, sec.
tp 0.05 Electrical power transducer time constant, sec.
qmax 0.40 Reactive power maximum limit, p.u.
qmin -0.40 Reactive power minimum limit, p.u.
vmax 1.10 Voltage control maximum limit, p.u.
vmin 0.90 Voltage control minimum limit, p.u.
kqp 0.0 Proportional gain, p.u.
kqi 0.10 Integral gain, p.u.
kvp 0.0 Proportional gain, p.u.
kvi 120. Integral gain, p.u.
tiq 0.02 Time constant, sec.
dpmax 99. Up ramp rate on power reference p.u./sec.
dpmin -99. Down ramp rate on power reference p.u./sec.
Copyright 2015 General Electric International. Inc. All Rights
Reserved. This material may not be copied or distributed in whole or
in part, without prior written permission of the copyright owner
pmax 1.00 Maximum power reference, p.u.
pmin 0.0 Minimum power reference, p.u.
imax 1.70 Maximum allowable total current limit, p.u.
tpord 0.04 Time constant, sec.
pfflag 0.0 Power factor flag:
= 1 : Power factor control
= 0 : Q control
vflag 1.0 Voltage control flag (see Note i):
= 1 : Q Control
= 0 : Voltage control
qflag 1.0 Reactive power control flag
= 1 : Voltage/Q control
= 0 : Constant power factor or Q Control
pqflag 1.0 Flag for P or Q priority selection on current limit:
= 1 : P priority
= 0 : Q priority
vq1 0.00 User defined voltage used to define VDL1 function, p.u.
iq1 1.45 User defined current used to define VDL1 function, p.u.
vq2 2.00 User defined voltage used to define VDL1 function, p.u.
iq2 1.45 User defined current used to define VDL1 function, p.u.
vq3 0.0 User defined voltage used to define VDL1 function, p.u.
iq3 0.0 User defined current used to define VDL1 function, p.u.
vq4 0.0 User defined voltage used to define VDL1 function, p.u.
iq4 0.0 User defined current used to define VDL1 function, p.u.
vp1 0.0 User defined voltage used to define VDL2 function, p.u.
ip1 1.15 User defined current used to define VDL2 function, p.u.
vp2 2.00 User defined voltage used to define VDL2 function, p.u.
ip2 1.15 User defined current used to define VDL2 function, p.u.
vp3 0.00 User defined voltage used to define VDL2 function, p.u.
ip3 0.00 User defined current used to define VDL2 function, p.u.
vp4 0.0 User defined voltage used to define VDL2 function, p.u.
ip4 0.0 User defined current used to define VDL2 function, p.u.
Notes:
a) If mvab is less than or equal to zero, then the base used by model regc_a is also used in
reec_c.
b) The voltage dip logic is activated using the internal flag Voltage_dip if the terminal voltage
(Vterm) is less than vdip or if the terminal voltage is greater than vup:
e) If vref0 is zero, then vref0 is initialized to the terminal voltage of the generator model
associated with reec_c.
f) The time constant T is not allowed to be zero (1/T would be undefined).
g) Pref may be accessed via the epcl variable genbc[].pref (genbc[].pref is in MW).
h) Paux is set to zero when the model is initialized. Paux may be accessed via the epcl
variable genbc[].paux2 (genbc[].paux2 should be in pu of the reec_c model).
i) When PfFlag = 1, PFAref is computed by the model during initialization.
j) Example of model parameterization:
Consider a BESS rated 40 MVA, with an energy rating of 30 MWh for 4 hours. When in
operation, the BESS is required to always be in a state of charge between 20% to 80%, with
the same charging rate (i.e. 4 hours).
Then, SOCmax = 0.8; SOCmin = 0.2
Total energy = 30×4 = 120 MJ, thus in operation, it can go from 0.8×120 (96 MJ) to
0.2×120 (24 MJ), which means that the maximum output would be (96 – 24)/4 = 18 MWh
for 4 hours.
Therefore,
T = ((18/30) × (60×60×4)) / (0.8 – 0.2) = 14,400
Pmax = 18/30 = 0.6; Pmin = - Pmax = -0.6
Imax = 40/30 = 1.33
Model MVA = 30 MVA so that SOCmax and SOCmin correspond to 80% and 20%,
respectively.
All other parameters would be set per the vendor data.
N/A means that the position of the associated flag does not affect the simulation results,
i.e., the flag can be either 1 or 0. Table 1 provides a breakdown of commonly employed
reactive power control options. In addition to the control options listed in Table 1, the model
also allows for pfflag = 1 vflag = 1 and qflag = 1. An error is reported if the model does not
detect this or an operating condition defined in the table; in this case, the data must be fixed
to avoid invalid initial conditions.
Output Channels
Record
Copyright 2015 General Electric International. Inc. All Rights
Reserved. This material may not be copied or distributed in whole or
in part, without prior written permission of the copyright owner
Level Name Description
Block Diagram:
Vref0
iqh1
dbd1 dbd2
Vterm +
1 Vt_filt
1+ sTrv _ Kqv
s0
if (Vterm < Vdip ) or
iql1
(Vterm > Vup)
Voltage_dip = 1 Freeze state if Voltage_dip = 1 iqinj
else Voltage_dip
Voltage_dip = 0 Qmax Vmax Vmax Iqmax Iqmax
VFlag _ QFlag
end +
1 1 Iqcmd
K qi K vi
PFAref
K qp + K vp +
+ s + s + To
tan _
s2 0 s3 0 regc_
PfFlag Qmin Vmin Iqmin
Vmin Iqmin
Pgen 1 1
1+ sTp
P Qgen Freeze state if
Voltage_dip = 1
s1 0
N 1
N D 1+ sTiq
D s4 VDL1
Qref 0.01
Vt_filt Freeze state if
Voltage_dip = 1 Current
From PQflag
0.01 Limit
repc_ dPmax Pmax 0 – Q priority Logic
VDL2
D 1 – P priority
Pref 1 N N
1+sTpord D
+
s5 thld2
dPmin Pmin
Paux
SOCini + Ipmax
SOCmax
Ipcmd
+ If SOC >= SOCmax
1 SOC Ipmin = 0
Pgen _ Else if SOC <= SOCmin
To
Ts regc_
s6 Ipmax = 0 Ipmin
SOCmin
If (pqflag = 0) {Q priority}
Iqmax = min [ Output of VDL1, Imax ]
Parameters:
EPCL
Variable Data Description
lvplsw 1.0 Connect (1) / disconnect (0) Low Volt. Power Logic switch
rrpwr 10.0 LVPL ramp rate limit, p.u.
brkpt 0.9 LVPL characteristic breakpoint, p.u.
zerox 0.5 LVPL characteristic zero crossing, p.u.
lvpl1 1.22 LVPL breakpoint, p.u.
vtmax 1.2 Voltage limit used in the high voltage reactive power logic,
p.u. See Instantaneous High Voltage Reactive Power Logic
Flowchart.
lvpnt1 0.8 High voltage point for low voltage active power logic, p.u.
See Instantaneous Low Voltage Active Power Logic
Flowchart.
lvpnt0 0.4 Low voltage point for low voltage active power logic, p.u.
See Instantaneous Low Voltage Active Power Logic
Flowchart.
qmin -1.3 Limit in the high voltage reactive power logic, p.u. See
Instantaneous High Voltage Reactive Power Logic
Flowchart.
accel 0.70 Acceleration factor used in the high voltage reactive power
logic, p.u. See Instantaneous High Voltage Reactive Power
Logic Flowchart.
tg 0.02 Time constant, sec.
tfltr 0.02 Voltage measurement time constant, sec.
iqrmax 99.0 Upward rate limit on reactive current command p.u./sec.
See Note m.
iqrmin -99.0 Downward rate limit on reactive current command p.u./sec.
See Note m.
xe 0.0 Generator effective reactance, p.u. See Note n.
Notes:
a) The generator variables are in per unit on the generator MVA base. It is
recommended that the MVA base be specified in the dyd file by the entry mva=value
after the record level. The following is an example:
regc_a 5 "WTG TERM" 0.600 "1 " : #99 mva=111.0 "lvplsw" 1.0 "rrpwr" 10.0
etc.
c) The reactive and active current commands from the converter control model, reec_a,
are transferred via the variables genbc[k].efd and genbc[k].ladifd, respectively.
d) For modeling an aggregation of several (N) WTGs, the generator MVA base must
equal N times the MVA rating of a single WTG.
f) If Lvplsw is set to 1, then LVPL is equal to the output of the Low Voltage Active
Power Logic block.
g) The 'High Voltage Reactive Power Logic" block limits the reactive current injected
into the network equations such that the terminal voltage of the machine does not
exceed vtmax of nominal, as long as the converter is within current limits.
h) The "Low Voltage Active Power Logic" block is designed to capture the
characteristic of active power under very low voltage scenarios.
i) The Instantaneous High Voltage Reactive Power Logic Flowchart and the
Instantaneous Low Voltage Active Power Logic Flowchart provide a
functional/conceptual description of the interface between the regc_a model and the
transmission network.
j) The model does not include Low/High voltage protection. This voltage protection
function should be implemented using the lhvrt model.
k) The model does not include Low/High frequency protection. This frequency
protection function should be implemented using the lhfrt model.
Output Channels:
Record
Level Name Description
1 vt Terminal voltage, pu
1 pg Electrical power, MW
1 qg Reactive power, MVAr
2 ipcm Active current command (Ipcmd), p.u.
2 iqcm Reactive current command (Iqcmd), p.u.
2 ip Active current command (Ip), p.u.
2 iq Reactive current command (Iq), p.u.
3 ipv Active current (Pgen/Vt), p.u.
3 iqv Reactive current (Qgen/Vt), p.u.
Block Diagram:
Iqrmax
I qcm Iq
1
(efd) 1 + Tg s
From s0
reec_a Iqrmin
Vterm
Interface
Network
High Voltage
LVPL & Reactive Power
rrpwr Logic
I pcm 1 Ip
(ladifd) 1+ Tg s
From s1
reec_a
Vterm
Low Voltage
Active Power
Logic
LVPL
Lvplsw = 0
Lvpl1
V 1
1+ Tfltr s Vterm
LVPL
Lvplsw = 1 s2
zerox brkpt V
Low Voltage
Power Logic
Generator/converter model
False
True: q = qmin q=q
Not solved,
Magnitude Vmi = |Vi| Nodal voltage: next
Angle Vai = atan(Vx/Vy) Vi = Vx + jVy algebraic
(both decelerated after 1st iteration) on common reference iteration,
“i”.
Power Limit
1.0
Max Active
Multiplier
Using Vmi:
Calculate Maximum Active
Power Limit Multiplier (mult)
0.0 Algebraic Network
Voltage Solved
Solution Solved?
(Vmi)
Lvpnt0 Lvpnt1
Time
Algebraic Network Solution Advances…
Nodal current
Translate ip, iq back to common reference injection:
frame Ii =Ix + IVy
on common reference
Inputs: none
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Reloden is a Data Management Model for input of blinder definition data used by the
distrelay and ocrelay models. The computational portions of this model are included in
the distrelay and ocrelay modesl. Reloden is only used for data input and editing. The
model parameters can be edited from the edmd or edds tables.
b) The meaning of the input parameters are illustrated in the diagrams below.
Diagrams:
Model Name: repc_a
Parameters:
EPCL Default
Variable Data Description
mvab 0.0 Base MVA
tfltr 0.02 Voltage or reactive power transducer time constant, sec.
kp 18.0 Proportional gain, p.u.
ki 5.0 Integral gain, p.u.
tft 0.0 Lead time constant, sec.
tfv 0.05 Lag time constant, sec.
refflg 1.0 = 1 : Voltage control; = 0: Reactive control
vfrz 0.0 If Vreg < vfrz, then state s2 is frozen
rc 0.0 Line drop compensation resistance, p.u.
xc 0.0 Line drop compensation reactance, p.u.
kc 0.02 Droop gain, p.u.
vcmpflg 1.0 Flag for selection of droop (=0), or line drop compensation (=1)
emax 0.1 Maximum error limit, p.u.
emin -0.1 Minimum error limit, p.u.
dbd 0.0 Deadband
qmax 0.436 Maximum Q control output, p.u., see note m
qmin -0.436 Minimum Q control output, p.u. , see note m
kpg 0.1 Proportional gain for power control, p.u.
kig 0.05 Integral gain for power control, p.u.
tp 0.25 Lag time constant on Pgen measurement, sec.
fdbd1 0.0 Deadband downside, p.u.
fdbd2 0.0 Deadband upside, p.u.
femax 99. Maximum error limit, p.u.
femin -99. Minimum error limit, p.u.
pmax 99. Maximum power, p.u.
pmin -99. Minimum power, p.u.
tlag 0.1 Lag time constant on Pref feedback, sec.
ddn 20.0 Downside droop, p.u.
dup 0.0 Upside droop, p.u.
frqflg 0.0 Pref output flag
outflag 0.0 Not used.
puflag 0.0 Per unit flag (See Note l)
Notes:
a) If there is a “to-bus” specified in the invocation of the repc_a, then the voltage at the “to-
bus” is regulated. If the “from” bus is the only bus included in the invocation, then the
voltage at the “from” bus is regulated.
b) If mon_i and/or mon_j is/are absent in the model invocation, then ibranch, qbranch and
pbranch are set to zero, and Pref is constant and equal to its initial value. In this mode of
operation Vreg will be regulated, provided that vcmpflg and refflg are set to one. A sample
invocation is shown below. In this case, the regulated bus is bus number 2.
repc_a 5 "WTG TERM" 0.600 "1 " 2 "WF HIGH " 230.00 : #1 “mvab” 12.23
"tfltr" 0.02 etc.
c) A sample invocation for the case where mon_i and mon_j bus are included is shown below:
d) repc_a 5 "WTG TERM" 0.600 "1 " 5 "WTG TERM" 230.00 ! ! 4 "WF LOW2 "
230.00 3 "WF LOW " 230.0 "1 " : #1 "mvab" 12.34 "tfltr" 0.02 etc.
Output Channels:
Record
Level Name Description
Inputs:
Parameters:
EPCL Default
Variable Data Description
tfltr 0.02 Voltage or reactive power transducer time constant, sec.
kp 18.0 Proportional gain, p.u.
ki 5.0 Integral gain, p.u.
tft 0.0 Lead time constant, sec.
tfv 0.05 Lag time constant, sec.
refflg 1.0 = 1 : Voltage control; = 0: Reactive control
vfrz 0.0 If Vreg < vfrz, then state s2 is frozen
rc 0.0 Line drop compensation resistance, p.u.
xc 0.0 Line drop compensation reactance, p.u.
kc 0.02 Droop gain, p.u.
vcmpflg 1.0 Flag for selection of droop (=0), or line drop compensation (=1)
emax 0.1 Maximum error limit, p.u.
emin -0.1 Minimum error limit, p.u.
dbd 0.0 Deadband
qmax 0.436 Maximum Q control output, p.u., see note k
qmin -0.436 Minimum Q control output, p.u., see note k
kpg 0.1 Proportional gain for power control, p.u.
kig 0.05 Integral gain for power control, p.u.
tp 0.25 Lag time constant on Pgen measurement, sec.
fdbd1 0.0 Deadband downside, p.u.
fdbd2 0.0 Deadband upside, p.u.
femax 99. Maximum error limit, p.u.
femin -99. Minimum error limit, p.u.
pmax 99. Maximum power, p.u.
pmin -99. Minimum power, p.u.
tlag 0.1 Lag time constant on Pref feedback, sec.
ddn 20.0 Downside droop, p.u.
dup 0.0 Upside droop, p.u.
frqflg 0.0 Pref output flag
busn1 Bus number (See Note b)
idn1 Id (See Note b)
Kw1 Gain (See Note b)
Kz1 Gain (See Note b)
Tw1 Time constant [sec] (See Note b)
busn2 Bus number
idn2 Id
Kw2 Gain
Kz2 Gain
Tw2 Time constant [sec]
…
…
Notes:
a) This model can be used in conjunction with the following models: renewables, e.g., reec_a,
reec_b, reec_c, svsmo1,2,3, esst1a, esst4b, esac7b, esac8b.
b) Up to 50 devices may be controlled by repc_b. The bus number (busn) and id (idn) of each
device must be specified; the id must be a number. The associated gains and time constant
(Kw, Kz, Tw) also need to be specified, e.g.:
"bus1" 5.0 "id1" 1.0 "Kw1" 1.0 "Kz1" 1.0 "Tw1" 0.02 /
"bus2" 55.0 "id2" 1.0 "Kw2" 1.0 "Kz2" 1.0 "Tw2" 0.02 /
"bus3" 3.0 "id3" 1.0 "Kw3" 0.001 "Kz3" 0.001 "Tw3" 0.02
c) If mon_i and/or mon_j is/are absent in the model invocation, then ibranch, qbranch and
pbranch are set to zero, and Pref is constant and equal to its initial value. In this mode of
operation Vreg will be regulated, provided that vcmpflg and refflg are set to one. A sample
invocation is shown below. In this case, the regulated bus is bus number 2.
repc_b 5 "WTG TERM" 0.600 "1 " 2 "WF HIGH " 230.00 : #1 "tfltr" 0.02 etc.
d) A sample invocation for the case where mon_i and mon_j bus are included is shown below:
repc_b 5 "WTG TERM" 0.600 "1 " 5 "WTG TERM" 230.00 ! ! 4 "WF LOW2 "
230.00 3 "WF LOW " 230.0 "1 " : #1 "tfltr" 0.02 etc.
e) Vaux is set to zero during the model initialization and can be accessed via vaux in genbc,
i.e., Vaux = genbc[@k].vaux.
f) Paux is set to zero during the model initialization and can be accessed via paux in genbc,
i.e., Paux = genbc[@k].paux.
g) Qaux is set to zero during the model initialization and can be accessed via qaux in genbc,
i.e., Qaux = genbc[@k].qaux.
h) The input Freq is in per unit. If the “to bus” is specified (<nr>), then Freq is the frequency
at this bus, e.g., repc_b 7 "ABCD-BUS " 0.48 "1 " 3 ! !
i) The reference frequency Freq_ref is model variable fref.
j) If the electrical controller (reec_) model is set to be in local voltage control mode (pfflag =
0, vflag = 0, qflag = 1), the output signal of repc_b is a voltage quantity not reactive power.
Consequently qmax, qmin should be the voltage limits in pu.
k) If RefFlg is not 0, 1, or 2, it is set to 0.
l) The “fix bad data” option will do the following:
a. If 0 < tfltr < 4*delt, then tfltr = 4*delt
b. If 0 < tflag < 4*delt, then tflag = 4*delt
c. If qmax < qmin, swap the values
d. If emax < emin, swap the values
e. If pmax < pmin, swap the values
Output Channels:
Record
Level Name Description
_
PFA_ref
tan( ) X
+
P aux
Plant_pref Frqflg
femax Pmax
+ 0
Pbranch + 1 Pext
1 K
_ Kpg + ig
1 + sTlag
1+ sTp s 1
s4 + s5
femin s6
0 Pmin
Ddn
fdbd1 fdbd2
+
Freq
_
+ +
Dup
Freq_ref
0
Model Name: rexs
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model can be used to represent a wide range of excitation systems whose DC
power source is an AC or DC generator. It encompasses IEEE type AC1, AC2, DC1,
and DC2 excitation system models and the EXBBB and EXBAS model of the
PSLF/PSDS program.
f) Te must be non-zero. If Tr, Ta, Tb1, Tb2, or Tf2 is zero, the corresponding blocks
are bypassed. If Tf is zero, the feedback path is not used.
g) The voltage regulator output may be either the field voltage applied directly to the
exciter or the input to an exciter field current regulator by choice of values of Kip,
Kii, and Kh. Either or both of Kip and Kii must be non-zero. If Kii is non-zero, Kh
should normally be non-zero.
h) The rate feedback signal used by the voltage regulator can be selected by setting the
feedback signal flag, Fbf, as follows:
i) The voltage regulator output limits, Vrmax, Vrmin must be stated as multiples of the
value of exciter field current needed to maintain the exciter output at its base value.
The field current limit, Vlr, must be stated as a multiple of the exciter field current
needed to maintain the exciter output at its base value. That is, vrmax, vrmin must
be stated in terms of the per unit exciter output voltage to which they correspond in
the steady state.
j) The limits vrmax, vrmin, vfmax, and vfmin are implemented as vrmax =
vrmax*fact, vrmin = vrmin*fact, vfmax = vfmax*fact, and vfmin = vfmin*fact. If
limflg is nonzero, fact=1; else, fact is max( 1.0, (Ke + Se(a) )a + Kd ) where a=(1.0
+ 0.58*Kc)/speed.
k) The regulator output limit flag indicates whether the control power supply for the
voltage regulator is a transformer at the generator terminals or an independent source
such as a permanent magnet generator. Set Flimf as follows:
Flimf = 0 the limits on regulator output are Vrmax, Vrmin, Vfmax and
Vfmin
l) Saturation parameters are given by the IEEE saturation factor definition using the
open circuit magnetization of the exciter. Either point [E1, S(E1) or E2, S(E2)] may
be the higher value and the other the lower value.
m) The integration time step is reduced for this model by a factor of 10 to improve
numerical stability.
Output Channels:
Record
Level Name Description
Block Diagram:
Model Name: scgap
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Whenever the current through the capacitor (Icap) exceeds Iflash the gap will flash
and bypass the capacitor.
b) The capacitor will be reinserted if, after being bypassed, Icap stays below Ireins for
Rdelay seconds. If, after reinsertion, Icap exceeds Iflash, the capacitor will be
bypassed again. The maximum number of times reinsertion will be attempted is
Nshots. After this, the capacitor will be permanently bypassed. The capacitor will
also be permanently bypassed if, after being bypassed, reinsertion does not occur
within Trmax seconds.
c) The branch with the capacitor must be a multi-section branch with at least two
sections. Unless the branch is tripped, at least one section of the branch must not be
bypassed at all times.
d) The current measured in the capacitor (Icap) will include the current in any branch-
connected shunts connected to the capacitor section.
e) The gap status gst is set as follows:
f) If the status of any section of the line with scgap is 0 (tripped), scgap will set the
status of its section to 0 also. To reinsert the line, you must reset the status of all
sections to 1.
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
a) Model scmov is for use in conjunction with a series capacitor. The capacitor must be
a single-section line, not part of a multi-section line.
c) The MOV begins to conduct when the ratio of capacitor current over the capacitor
protective level current (Icappro) exceeds the threshold value Ithresh. Ithresh
should be greater than 0.95. Above this value, the cap+mov are modeled by an
equivalent R+jX that is a function of the capacitor current, as follows:
f) The bypass mode is implemented by replacing the capacitor with an impedance equal
to two times the value of the jumper threshold. In bypass mode the capacitor voltage
and current are set to zero.
g) After bypassing, reinsertion of the capacitor and MOV will occur under the following
conditions:
1) If bypassing was due to the external signal, reinsertion will occur if the external
signal is reset to zero and none of the other bypass conditions are true. The
reinsertion will occur after a time delay of Operdly.
2) If bypassing was due to one of the overcurrent conditions, then reinsertion will
occur if all bypass conditions are reset to zero and then the current is below
Iinsert for Tinsert seconds.
3) If the MOV energy level has been exceeded, reinsertion will not be performed.
h) If the initial status of the capacitor is zero or two, scmov is not active.
Output Channels:
Record
Level Name Description
The total bank current (ItoA, Itot) is the magnitude of the phasor addition of the
capacitor and mov currents when the bank is not bypassed; it is the current magnitude
thru the bypass impedance (see note f) when the bank is bypassed.
VCAP
ITOTAL ICAP
scmov
IMOV
Bypass
switch
scmov bypass logic:
IMOV ICAP
Operator Bypass Signal:
model[@scmov].sigval[0]
Bypass = 1
Do not bypass = 0
Calculate Energy
WMOV = RMOV I2MOV t
OR
Gate
Bypass = 1
Do not bypass = 0
Once WMOV or IMOV exceeds its threshold, Enerlim or Imovlim, or the operator-generated
signal is set to one, the MOV+CAP are bypassed after the specified delay (Enerdly,
Imovdly, Operdly).
Model Name: scrx
Parameters:
EPCL Default
Variable Value Description
Notes:
a) K and Te must be greater than zero. If Tb is zero, the lead-lag block is bypassed.
b) The parameter TaTb is the ratio of the time constants, Ta and Tb. Ta is not
specified directly.
Record
Level Name Description
Block Diagram:
1.0 et
1 0
Cswitch
Vref
Emax
Vcomp 1 sTa K
X
Ifd >= 0
1 sTb 1 sTe
Efd
S0 S1
Emin
rc
rfd Ifd
[ladIfd]
Model Name: secld1
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Secld1 represents the complete load, as constant impedance on the secondary side of
a voltage-regulating transformer as shown in the schematic below. The secondary
load admittance is determined in initialization such that the primary load is exactly
equal to the total value of the load in the working case.
The primary load of this model overrides the load in the working case. The voltage
and time dependence of the load seen by the transmission network are determined by
the adjustment of the transformer ratio. This ratio is adjusted in a pure reset mode to
hold the transformer secondary voltage at its initial condition value.
b) Other load characteristic models must not be applied to the same load as this model.
c) The transformer equivalent impedance is specified in per unit with respect to the
transformer MVA base. The transformer MVA base is equal to the initial condition
load MVA. The transformer ratio is initialized at unity and has a range of plus and
minus ten percent.
d) The load table entries in the working case need no special treatment for this model.
The initial condition primary load is equal to the sum of the constant MVA, constant
current, and constant impedance loads specified in the load table. Secld1 does not
alter entries in the load table.
Output Channels:
Record
Level Name Description
Block Diagram:
1
vinit
sT1 ¯ +
vsec
tsld
Ppri
+ j Qpri Gload
+ j Bload
Model Name: secld2
and
secld3
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Secld2 and secld3 represent the complete load, as shown in the schematic below, as
3-component load on the secondary side of a voltage-regulating transformer. The
base secondary load (P0 +j Q0) is determined in initialization such that the primary
load is exactly equal to the total value of the load in the working case.
The primary load of this model overrides the load in the working case. The voltage
dependence of the load seen by the transmission network is determined by the
adjustment of the transformer ratio and by the load characteristic constants specified
for the model. The transformer ratio is adjusted to hold the transformer secondary
voltage at its initial condition value.
b) Other load characteristic models must not be applied to the same load as this model.
c) The transformer equivalent impedance is specified in per unit with respect to the
transformer MVA base. The transformer MVA base is equal to the initial condition
load MVA. The transformer ratio has a range of plus and minus ten percent and is
initialized, subject to these range limits, to place the initial secondary voltage between
vsmin and vsmax.
If the primary bus has a shunt connected to it secld2 leaves it there. Secld3 moves
any shunt found at the primary bus to the secondary side of the transformer and
adjusts the load reactive power, Qo, accordingly to hold the total load plus shunt
reactive power at its load flow value in the initial condition.
d) The load table entries in the working case need no special treatment for this model.
The initial condition primary load is equal to the sum of the constant MVA, constant
current, and constant impedance loads specified in the load table. Secld2 does not
alter entries in the load table. The break up of the total load given in the load table is
overridden by this model.
Output Channels:
Record
Level Name Description
Block Diagram:
1
vinit
sT1 ¯ +
vsec
tsld
Ppri
Po = (pzv2 + piv + pm)
+j
Qo = (qzv2 + qi v + qm)
Qpri
Model Name: secld3
and
secld2
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Secld2 and secld3 represent the complete load, as shown in the schematic below, as
3-component load on the secondary side of a voltage-regulating transformer. The
base secondary load (P0 +j Q0) is determined in initialization such that the primary
load is exactly equal to the total value of the load in the working case.
The primary load of this model overrides the load in the working case. The voltage
dependence of the load seen by the transmission network is determined by the
adjustment of the transformer ratio and by the load characteristic constants specified
for the model. The transformer ratio is adjusted to hold the transformer secondary
voltage at its initial condition value.
b) Other load characteristic models must not be applied to the same load as this model.
c) The transformer equivalent impedance is specified in per unit with respect to the
transformer MVA base. The transformer MVA base is equal to the initial condition
load MVA. The transformer ratio has a range of plus and minus ten percent and is
initialized, subject to these range limits, to place the initial secondary voltage between
vsmin and vsmax.
If the primary bus has a shunt connected to it secld2 leaves it there. Secld3 moves
any shunt found at the primary bus to the secondary side of the transformer and
adjusts the load reactive power, Qo, accordingly to hold the total load plus shunt
reactive power at its load flow value in the initial condition.
d) The load table entries in the working case need no special treatment for this model.
The initial condition primary load is equal to the sum of the constant MVA, constant
current, and constant impedance loads specified in the load table. Secld2 does not
alter entries in the load table. The break up of the total load given in the load table is
overridden by this model.
Output Channels:
Record
Level Name Description
Block Diagram:
1
vinit
sT1 ¯ +
Vsec
tsld
Parameters:
EPCL Default
Variable Data Description
Notes:
b) The parameter TaTb is the ratio of the time constants, Ta and Tb. Ta is not specified
directly.
c) The PI controller is active if Tc is greater than zero, in which case Kc must also be
greater than 0.. The PI controller is bypassed when Tc is zero.
a) The “fix bad data” option will do the following:
a. Set Te to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. Set K and Kc to a minimum of 1.
d. If Emax < Emin, swap the values.
e. If Emax < Emin, swap the values.
Output Channels:
Record
Level Name Description
Block Diagram:
Vref
Ema
Efdmax
x
Efd
1 sTa K
1
Kc
1 sTc 1 sTe
Vcomp 1 sTr 1 sTb sTc
S3 S0 S2 S1
Emin Efdmin
Stabilizer
Output
Model Name: smes1
Note: "epclname" is the name of the epcl program implementing smes1 controls. This
epcl program must exist in the standard epcl directory. <table> is the assigned table
number for this epcl program. This must not be in conflict with the table numbers used
by any other models. The parameter names must be included in the record.
Parameters:
EPCL Default
Variable Data Description
Notes:
c) The dynamic data input for the smes1 model has to be completed by editing a dyd
file. It can be modified using "edds" function, but CANNOT be started using "edds".
The epcl file name has to be indicated in the dyd file. Different control files can be
used by changing the relevant entry in the dyd file.
d) The MVA value is default to the mbase value of the associated generator in the load
flow case. If this default value is desired to be overwritten, include <mva=> and a
desired value in the dyd file.
e) The control schemes implemented in smes1.p control the magnitude and phase angle
(relative to the smes terminal bus angle) of the current injection into the network it is
connected to.
*The injection current magnitude controls a bus voltage (can be different than smes
terminal voltage) through a feedback PI controller. The smes controlled bus is defined
by the parameter "cntrbus". When the controlled bus voltage moves below "vref1",
the voltage control reference becomes "vref1"; when the voltage moves above
"vref2", the voltage control reference becomes "vref2". "vref1" and "vref2" are
variables in smes1.p. Their nominal values are defined by parameters "vref_hg" and
"vref_lw". If the controlled bus voltage from load flow solution is below "vref_lw",
"vref1" is assigned the voltage value from load flow; if the controlled bus voltage
from load flow solution is above "vref_hg", "vref2" is assigned the voltage value
from the load flow solution. This algorithm ensures good initialization from any
voltage values out of load flow solution. When the controlled bus voltage is between
"vref1" and "vref2", the PI controller output of the injection current magnitude is
zero.
The injection current phase angle is normally +-90 degrees, which indicates
reactive power injection or absorption only. When magnet discharges, injection
current phase angle is determined by the MW discharge and injection current
magnitude. The magnet starts discharge when the smes terminal bus voltage goes
below "V_hg_p". Also, the magnet is not allowed to discharge unless the smes
terminal voltage is above "V_lw_p". The peak discharge MW is "pk_mw", and
the rate and time duration of discharge are "rate_p" and "tdisc".
The smes shunt capacitor can be connected at a bus other than the smes terminal
bus or the smes controlled bus. The capacitor connection bus is defined by the
parameter "capbus". The smes shunt capacitor is switched in at the same moment
the maximum current is ordered to be "ImPk". It is switched off when the voltage
is above"V_cap_off".
The maximum current can be peaked again only after a time delayof "tdelay_Ipk"
from the start of the previous peak. A default value of 999 for "tdelay_Ipk"
indicates that the maximum current will not be peaked for a second time in one
simulation run. Similarly, the magnet can discharge again only after a time delay
of "tdelay_p" from the start of the previous discharge. A default of 999 for
"tdelay_p" is saying that the magnet does not discharge for a second time in one
simulation run.
In load flow, smes is represented by a generator in the gens table and smes shunt
capacitor is represented by a fixed shunt in shunt table. The P and Q output of
smes generator can be zero, and the shunt admittance of the capacitor can be zero.
The status of both should be 1.
Output Channels:
Record
Level Name Description
Note: additional output can come from variables v0-v9 in the epcl program which
implements dc controls, when the record level is > 1.
Block Diagram:
Vreg
Vreg
controls in smes1.p:
Imag
epcl
+/- rcomm
PI Imag
Vref +jxcomm
-/+
Vreg Note:
P is relative to
terminal voltage inverter
= +/- 90 = +/- 90
time
defined by P
and Imag
magnet
Model Name: socdt
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Socdt is a simple "generic" model of a definite time relay protecting a generator stator
winding. The relay characteristic is as shown below. It picks up and starts its timer
when the stator current exceeds <pickup> and resets immediately if it falls below
<pickup>. A trip signal is issued to the generator main circuit breaker when the stator
current has been above <pickup> for <tdelay> seconds, or immediately if stator
current reaches <instnt>.
b) The current settings are in per unit of generator base current. Hence typical values
are:
Record
Level Name Description
Block Diagram:
Time
Sec
id
nf
Tdelay
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Socti is a simple "generic" model of a definite time relay protecting a generator stator
winding. The relay characteristic is as shown below. It picks up and starts its timer
when the stator current exceeds <pickup> and resets immediately if it falls below
<pickup>. A trip signal is issued to the generator main circuit breaker when the stator
current is above the time-current characteristics, or immediately if stator current
reaches <instnt>.
b) The current settings are in per unit of generator base current. Hence typical values
are:
c) Socti uses the voltage restraint factor, vrf, to implement the increase in the relay's
sensitivity as restraint voltage is reduced. Setting vrf to a value less than unity
specifies that the time current curves of the relay are shifted to the left (to lower
currents) by the factor, vrf, when the restraint voltage is zero. The mrestraint voltage
is the generator terminal voltage. Setting vrf to unity makes socti behave as an
ordinary time inverse device, unaffected by voltage.
d) The time current curve must be specified by m1, t1,---m5, t5 as it applies when the
restraint voltage is 1.0 per unit.
Because the curve and pick up values are specified for full restraint voltage, the pick
up value must be greater than 1.0 per unit (of generator rated current). The relay will
then, not pick up for rated current with normal voltage, but will pick up and operate
when voltage is low due to a nearby fault.
e) Note that, while socti has the general characteristics of a G.E. IAC or IFC or W CO
relay with vrf = 1.0, and of a G.E. IJCV or IFCV relay with vrf < 1.0, it is not
intended to represent any specific type of relay exactly. In particular, its progressive
variation of sensitivity with restraint voltage may differ in detail from that of specific
real relays.
Output Channels:
Record
Level Name Description
Block Diagram:
Time
Sec
m1 t1 id
nf
m2 t2
m3 t3
m4 t4
m5 t5
Pickup Stator
Inst
Current.
p.u.
Model Name: spfl
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
Tm = aw**2 + bw + c + dw**e
Pm = Tm * To * w
where:
c = 1.0 - a - b - d
To = initial torque = initial Pmech
b) This model can be used with any of the synchronous machine models. It must be
after the machine model in the dyd file.
Output Channels:
Record
Level Name Description
1 pmld Mechanical power, MW (motor convention).
Block Diagram:
Parameters:
EPCL Default
Variable Data Description
General Description:
The gas turbine controls are identical to the gasp model. The parameters stfrac, kpp,
kip, vmax, tw, td, kp, tpv, y0, x1, y1, x2, y2, p0, h1, p1, h2 and p2 represent the steam
cycle. If all of these values are set to zero the models response will be identical to that
of the gasp model.
The following default data may be chosen by the user by clicking on the 'def' button
in the model parameter window.
Notes:
a) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
b) For a description of the gas turbine controls see the manual page for the model 'gasp'.
c) The steam turbine is essentially under pressure control by the PI controller defined by
the gains kpp and kip.
d) The pressure reference for the throttle pressure of the steam turbine is scheduled
according to the piecewise linear function define by p0, h1, p1, h2 and p2. Note the
values of h1 and h2 should not be equal, and neither parameter should be set to 1.0.
e) The piecewise linear function defined by y0, x1, y2, x2 and y2 characterizes the
variation in heat available for steam production as a function of gas turbine power
output. Note that when the gas turbine is at noload there is still heat being generated
at the exhaust of the GT and thus y0 should not be set to zero. Furthermore, this
means that the generator cannot be initialized at zero MW output. Also, the values of
x1 and x2 should not be equal and they must not be set to 1.0.
f) The parameter stfrac is the ratio of the nameplate MW rating of the steam turbine to
the total sum of the nameplate MW rating of the steam and gas turbine.
g) The lead/lag block described by the time constants tnrh and tdrh represents the split
between the fraction of power developed almost instantaneously in the HP turbine,
versus the power developed in the turbine sections behind the reheater. The time
constant tdrh characterizes the reheater. The value (tnrh/tdrh) states the fraction of the
total turbine power developed ahead of the reheater.
Output Channels:
Record
Level Name Description
1 pm Turbine power, MW
1 gv Fuel valve opening, p.u.
9 wf Fuel flow, p.u.
9 fsr Fuel command, p.u.
9 fsrg Fuel command from governor, p.u.
9 fsrt Fuel command from temperature controller, p.u.
9 fsra Fuel command from acceleration controller, p.u.
9 wa Air flow, p.u.
9 pgt Gas turbine mechanical power output, MW
9 pst Steam turbine mechanical power output, MW
9 Pd Drum pressure, p.u.
9 Pt Throttle pressure, p.u.
9 tv Throttle valve opening, p.u.
Block Diagram:
speed
load ref
+ +
eps ¯ + 1 pelec
rpelec
dba 1 stpelec
+
1.0 S0
Kigov
Kpgov S1 rvalve
s
fsmin Low 1.0
fidlexfb/vb
Value 1.0 wf pgt
Select 1 + ¯ 1 stnturb
Kturb
and 1 stvalve 1 stdturb
Tracking 1.0
Logic fsmin S2 S3
tlim hpwr
tlim S5 S4
+
Kit 1 1 stnshld f(hpwr,airflow
Kpt speed)
s 1 s.ttemp 1 stdshld
¯ wa
S6 fsmin
1.0
+ Kiigv 1 air min
tlimgv ¯ Kpigv
s 1 stigv +
0.0 S7 +
S8
tlim S10 aclim S9 airmin
+
Kiacc s
Kpacc
s 1 stacc
¯
fsmin
1.0
S12 Pd
y2 Pt
y1 s 1 1 stnrh
pgt pst
y0 1 stw std 1 stdrh
x1 x2 1.0 S11 pr
kp
qt
1.0 S13
tv
1
1 stpv
pressure reference
1.0 vmax 0.0
p2
1 p1 P+ ref
Kip
1 300s Kpp
p0 s
S15 h1 h2 1.0
0.0 S14
pgt 1-stfrac
pm
pst stfrac
Model Name: stcon
Parameters:
EPCL Default
Variable Data Description
The internal controls managing the phase of the inverter and thence the capacitor
voltage are treated as being very fast in relation to the bandwidth of the simulation
and their dynamics are not represented.
b) If [<mon>], etc. are defined in the dyd file, the stcon regulates the voltage of the bus
whose external number is "mon". Otherwise, stcon regulates its terminal bus voltage.
The regulation is by means of a proportional-plus-reset controller which adjusts the
magnitude of the internal voltage. The high and low output limits of this controller
are, in turn, adjusted to limit the current in the device to a maximum value of Imax.
c) This model requires that the Statcon be represented in the load flow case by a
GENERATOR with zero MW loading, and with var limits corresponding to the
MVA rating of the unit.
DO NOT represent the Statcon by an SVD in the load flow SVD tables.
d) stcon can accept an auxiliary input signal from a stabilizing unit represented by a
model such as ieeest.
f) The reactive power controller with gain Kiq is intended to be used to give a slow reset
of the reactive power so that the Statcon operates with maneuvering range in normal
system conditions. This control can be disabled by setting kiq = 0. The quick
response of the controller may be made independent of the current output of the
device by setting the droop, cr, to zero.
g) The parameter qset is overridden by stcon in the init command. This set-point value
can then be changed via the edds or edmd command to maneuver the reactive power
output of the statcon.
h) When statcon current is larger than Imax, umax or umin is limited to bring the statcon
current to below Imax. When statcon terminal voltage is below vthresh, vmax or
vmin is not activated and umax or umin is calculated only to limit the statcon current.
Output Channels:
Record
Level Name Description
Block Diagram:
qset
S5 +
xt Vt Kiq
qterm
iterm s ¯
Note: "epclname" is the name of the epcl program implementing stcon1 controls. This epcl
program must exist in the standard epcl directory. <table> is the assigned table number for this
epcl program. This must not be in conflict with the table numbers used by any other models. The
parameter names must be included in the record.
Parameters:
EPCL Default
Variable Data Description
Notes:
a) stcon1 model represents an internal voltage source behind a reactance. This model
can be used as a core model for modeling a static Var compensation device. It models
the interaction between the voltage source and the rest of the system. The device
controls must be implemented in an epcl program which must reside in the standard
epcl directory. This epcl program controls the magnitude of the internal voltage
source of the stcon1 model.
c) If [<mon>], etc. are defined in the dyd file, the stcon regulates the voltage of the bus
whose external number is "mon". Otherwise, stcon regulates its terminal bus voltage.
d) The dynamic data input for the stcon1 model has to be completed by editing a dyd
file. It can be modified using "edds" function, but CANNOT be started using "edds".
The epcl file name has to be indicated in the dyd file. Different control files can be
used by changing the relevant entry in the dyd file.
e) The MVA value is default to the mbase value of the associated generator in the load
flow case. If this default value is desired to be overwritten, include <mva=> and a
desired value in the dyd file.
f) There are 30 parameters, p0 through p29, in stcon1 C code model which can be used
to store epcl local parameters defined in epcl program for implementing controls.
Once they are saved using p0 through p29, they can be accessed and/or changed in
any other epcl programs. For example, suppose the epcl program for implementing
controls is named stcon1.p. Also, suppose there is a local epcl variable Vaux in
stcon1.p and you want to change this local variable in another epcl program (e.g.,
batch mode running epcl program). You can define the local variable Vaux to be p0
(or any one between p0 to p29) in stcon1.p. Then you can access and/or change p0
using "getmodpar" and/or "setmodpar" in any other epcl programs.
Output Channels:
Record
Level Name Description
Note: additional output can come from variables v0-v9 in the epcl program which implements dc
controls, when the record level is > 1.
Block Diagram:
xt Vt
Vterminal
Vcontrolled EPCL Vint
Qterm/Iterm
Model Name: svcwsc
Parameters:
EPCL Default
Variable Data Description
Notes:
b) N2, name2, kv2 are the identifiers of the bus from which the voltage input signal is
taken. If the voltage input signal is taken from the bus at which the unit is connected
these items should be omitted.
c) All per unit quantities are expressed with respect to SYSTEM MVA BASE.
d) This model requires that the SVD be represented in the load flow case by a
GENERATOR with any desired value of MBASE, with zero MW loading, and with
VAr limits corresponding to Bpmax, Bpmin, and the scheduled input signal voltage.
DO NOT enter an SVD in the load flow SVD tables when svcwsc is to be used.
e) The basic input signal to the controller is the voltage at bus <n> if the second bus is
not identified in the invocation, or the voltage at bus <n2> if the second bus is
identified in the invocation
f) Svcwsc can accept an auxiliary input signal from a stabilizing unit represented by a
model such as ieeest. Note, however, that svcwsc includes its own stabilizer. This
stabilizer is turned on by a non-zero value for either or both of the parameters j1, j2.
h) Any of the time constants Ts7 thru Ts14 may be zero, but at least one of Ts7, Ts9, or
Ts14 should be nonzero and at least one of Ts10, Ts12, or Ts14 should be nonzero.
If you are using an input signal to the stabilizer other than frequency or accelerating
power, Ts14 should be nonzero.
i) The error signal threshold for the fast override logic is determined by the value of
Dv. If Dv is greater than 0, the voltage error threshold is set to +/-Dv. If Dv is less
than or equal to zero, the voltage error threshold is set to Bpmax/Ksvs or
Bpmin/Ksvs.
The fast override logic leaves the output of the continuous control path unchanged if
the error signal, Verr, is less than the voltage error threshold.
If the error is greater than the upper voltage error threshold, the controlled shunt
admittance is changed to Bpmax + Ksd(Verr - Dv).
If the error is less than the lower voltage error threshold, the controlled shunt
admittance is changed to Bpmin.
j) The additional shunt admittance Bshunt is switched on if the error signal, Verr,
remains greater that Dv2 for Tdelay seconds. Once the additional shunt has been
switched on it remains on for the rest of the simulation run.
k) The constant shunt admittance bias represents fixed shunt capacitors or reactors
connected at the same location as the static VAR device.
l) Switching of shunt admittance other than the operations simulated by this model may
be implemented by changing the values of Bshunt or Bias.
m) Voltage Clamp – If the terminal bus voltage goes below V1vcl, the V2max and
V2min limits are set to zero. If the voltage recovers above V2vcl for time period
Tdvcl, the limits are restored to their original values.
n) The input signals used by the built in stabilizer of this model are controlled by the
parameters j1, k1, k2, j2 as follows:
j1 k1 k2 Input 1
J2 Input 2
All of these input signals are in per unit with respect to SYSTEM MVA base.
o) CAUTION - there should be NO LOAD located at the bus where the svc represented
by this model is connected.
Record
Level Name Description
Block Diagram:
Bmax
Vemax V1max Kvc * V2max
Fast
Vbus + 1 sTc ¯
+ 1 sTs2 1 sTs4 1
Ksvs Over Bsvs
1 sTs1 1 sTs3 b sTs5 Ride 1 sTs6
¯ + +
S0 S1 S2 S3
Vemin V1min Kvc *
Bmin
V2min
Vref Vscs + Vs
Vs (from external PSS)
Xc
Parameters:
EPCL Default
Variable Data Description
UVSBmax 0.20 Max. capacitive limit during undervoltage strategy
UV1 0.5 Under voltage setpoint 1 (p.u.)
UV2 0.3 Under voltage setpoint 2 (p.u.)
UVT 0.5 Under voltage trip setpoint (p.u.)
OV1 1.3 Over voltage setpoint 1 (p.u.)
OV2 1.5 Over voltage setpoint 2 (p.u.)
UVtm1 1.0 Under voltage trip time 1 (sec.)
Uvtm2 7.0 Under voltage trip time 2 (sec.)
OVtm1 1.0 Over voltage trip time 1 (sec.)
Ovtm2 0.25 Over voltage trip time 2 (sec.)
flag1 0. 0 - no MSS switching; 1 - MSS switching enabled
flag2 0. 0 - linear slope; 1 - non-linear slope (piecewise)
Xc1 0.02 Slope (nominal linear slope or first section of piecewise
linear slope) (p.u./p.u.)
Xc2 0.0 Slope of second section of piecewise linear slope (p.u./p.u.)
Xc3 0.0 Slope of third section of piecewise linear slope (p.u./p.u.)
Vup 1.1 Upper voltage break-point for non-linear slope (p.u.)
Vlow 0.0 Lower voltage break-point for non-linear slope (p.u.)
Tc1 0.0 Voltage measurement lead time constant (sec.)
Tb1 0.01 Voltage measurement lag time constant (sec.)
Tc2 0.0 Lead time constant for transient gain reduction (sec.)
Tb2 0.0 Lag time constant for transient gain reduction (sec.)
Kpv 50.0 Voltage regulator proportional gain (p.u./p.u.)
Kiv 250.0 Voltage regulator integral gain (p.u./p.u. sec.)
vemax 0.5 Max. allowed voltage error (p.u.)
vemin -0.5 Min. allowed voltage error (p.u.)
T2 0.01 Firing delay time constant (sec.)
Bshrt 2.20 Short-term max. capacitive rating of the SVC (p.u.)
Bmax 2.00 Continuous max. capacitive rating of SVC (p.u.) (Note n)
Bmin -0.50 Continuous min. inductive rating of SVC (p.u.) (Note n)
Tshrt 3.0 Short-term rating definite time delay (sec.)
Kps 0.0 Proportional gain of slow-suceptance regulator (p.u./p.u.)
Kis 0.00001 Integral gain of slow-susceptance regulator (p.u./p.u. sec.)
Vrmax 0.0 Max. allowed PI controller output of slow-susceptance
regulator (p.u.)
Vrmin 0.0 Min. allowed PI controller output of slow-susceptance
regulator (p.u.)
Vdbd1 0.0 Steady-state voltage deadband; SVC is inactive between
Vref+Vdbd1 to Vref-Vdbd1 (p.u.)
Vdbd2 0.0 Inner voltage deadband (p.u.). When Vdbd1 is exceeded
SVC must come back within Vdbd2, for Tdbd seconds, in
order to be locked again (p.u.)
Tdbd 0.0 Definite time deadband delay (sec.)
PLLdelay 0.15 PLL delay in recovering if voltage remains below UV1 for
more than UVtm1 (sec.)
eps 0.5 Small delta added to the susceptance bandwidth of the slow-
susceptance regulator in order to ensure its limits are not
exactly identical to the MSS switching point (MVAr)
Blcs 40.0 Large threshold for switching MSS on the capacitive side
(MVAr)
Bscs 20.0 Small threshold for switching MSS on the capacitive side
(MVAr)
Blis -40.0 Large threshold for switching MSS on the inductive side
Bsis -20.0 Small threshold for switching MSS on the inductive side
(MVAr)
Tmssbrk 0.10 MSS breaker switch delay (for opening and closing;
assumed the same value for all MSS) (sec.)
Tdelay1 0.50 Definite time delay for large switching threshold (sec.)
Tdelay2 60.00 Definite time delay for small switching threshold (sec.)
Tout 300.0 Discharge time for mechanically switched capacitors (sec.)
Notes:
d) The default values listed above need to be modified to reflect the parameters and
settings of individual installations.
e) n2, name2, kv2 are the identifiers of the bus from which the voltage input signal is
taken. These items should be omitted if the voltage input signal is taken from the bus
at which the unit is connected. When n2, name2, kv2 are specified, it is assumed
that Xc1, Xc2, and Xc3 are zero.
g) The deadband control, slow-susceptance regulator, and non-linear slope are all
intended for the same purpose, i.e., maintaining the SVC at a low steady state output
when the system voltage is within a given bandwidth. Only one of the three
controllers should be used. The model does not allow for the use of more than one of
these controllers.
h) The nonlinear slope is piece-wise linear represented by three linear sections defined
by Vup, Vlow, Xc1, Xc2 and Xc3.
j) Up to eight Mechanically Switched Shunts (MSS) are allowed. The MSS can be
capacitive or reactive.
k) The model allows for automated MSS switching based on SVC Var output. Two
thresholds are implemented with different time delays for switching (Blcs, Blis,
Tdelay1) and (Bscs, Bsis, Tdelay2).
l) The shunts (if any) associated with an svsmo1 model must specify the SVD bus
where svsmo1 is connected. Below is an example of a shunt table which contains
three “standard” shunts connected at buses 3, 13 and 43 (the first three rows), and
two sets of eight shunts, each associated with SVDs of Type 5; these shunts are
connected to buses 43 and 413. The first set of eight shunts is associated with an
SVD connected to bus 13; the second set with an SVD connected to bus 413. The
column labeled STSW indicates whether the shunt is available for operation. If the
value is zero, the corresponding shunt will not be used; conversely, if the value is any
positive number, the shunt is available for operation. This is different than the status
of the device (a shunt with status of zero can be connected in the course of the
dynamic simulation by the svsmo1’s switching logic, i.e., its status reset to 1).
m) The time constants Tb1 and Tb2 may be zero.
n) Bmax and Bmin may be changed via an epcl program using the variables
svd[k].bmaxsig and svd[k].bminsig, respectively, e.g.,
@isvc = rec_index(1, 6, @busnum, -1, $id, 0, -1)
svd[@isvc].bmaxsig = svd[@isvc].bmaxsig + 0.1
svd[@isvc].bminsig = svd[@isvc].bminsig – 0.1
o) During INIT the susceptance of the svd associated with svsmo1 is set to zero. The
original value of svd[].b becomes the initial value of the svsmo1 output, Bsvc.
p) If the status of the svd associated with svsmo1 is set to zero, then the status of
svsmo1 and its output are set to zero.
q) Vrefmin and Vrefmax are set in the svd table (VRFMIN and VRFMAX). If
Vrefmin=Vrefmax=0 and Kps=Kis=0, then the limits, Vrefmin and Vrefmax, are
neglected.
t) Use svd[].vsig to access the input Vsig from a user-defined model (epcmod), e.g,
for @i = 0 to casepar[0].nsvd-1
if ( (svd[@i].ibus = @intnum) and (svd[@i].id = $id) and (svd[@i].type = 5) )
svd[@i].vsig = @step
endif
next
Output Channels:
Record
Level Name Description
1 Bsvc Susceptance, p.u.
2 Qsvc Reactive power output, MVAr
2 pio1 Kpv, Kiv PI controller output, p.u.
2 pio2 Kps, Kis PI controller output, p.u.
2 vref Reference voltage, p.u.
2 vr Measured voltage, p.u.
Block Diagram:
Isvc
SVC over-
and under-
voltage X
tripping
function
No
Release SVC
No
Yes
Nonlinear Droop:
Voltage
Xc1
Vup
Xc2
SVC
Current
Vlow
Xc3
Model Name: svsmo2
Parameters:
EPCL Default
Variable Data Description
UVSBmax 0.20 Max. capacitive limit during undervoltage strategy
UV1 0.5 Under voltage setpoint 1 (p.u.)
UV2 0.3 Under voltage setpoint 2 (p.u.)
UVT 0.5 Under voltage trip setting time (sec.)
OV1 1.3 Over voltage setpoint 1 (p.u.)
OV2 1.5 Over voltage setpoint 2 (p.u.)
UVtm1 1.0 Under voltage trip time 1 (sec.)
Uvtm2 7.0 Under voltage trip time 2 (sec.)
OVtm1 1.0 Over voltage trip time 1 (sec.)
Ovtm2 0.25 Over voltage trip time 2 (sec.)
flag1 0. 0 - no MSS switching; 1 - MSS switching enabled
flag2 0. 0 - linear slope; 1 - non-linear slope (piecewise)
Xc1 0.02 Slope (nominal linear slope or first section of piecewise
linear slope) (p.u./p.u.)
Xc2 0.0 Slope of second section of piecewise linear slope (p.u./p.u.)
Xc3 0.0 Slope of third section of piecewise linear slope (p.u./p.u.)
Vup 1.1 Upper voltage break-point for non-linear slope (p.u.)
Vlow 0.0 Lower voltage break-point for non-linear slope (p.u.)
Tc1 0.0 Voltage measurement lead time constant (sec.)
Tb1 0.01 Voltage measurement lag time constant (sec.)
Tc2 0.0 Lead time constant for transient gain reduction (sec.)
Tb2 0.0 Lag time constant for transient gain reduction (sec.)
Kpv 1.0 Voltage regulator proportional gain (p.u./p.u.)
Kiv 25.0 Voltage regulator integral gain (p.u./p.u. sec.)
Vemax 0.5 Max. allowed voltage error (p.u.)
Vemin -0.5 Min. allowed voltage error (p.u.)
T2 0.01 Firing delay time constant (sec.)
Bshrt 2.20 Short-term max. capacitive rating of the SVC (p.u.)
Tshrt 3.0 Short-term rating definite time delay (sec.)
Kps 0.0 Proportional gain of slow-suceptance regulator (p.u./p.u.)
Kis 0.00001 Integral gain of slow-susceptance regulator (p.u./p.u. sec.)
Vrmax 0.0 Max. allowed PI controller output of slow-susceptance
regulator (p.u.)
Vrmin 0.0 Min. allowed PI controller output of slow-susceptance
regulator (p.u.)
Vdbd1 0.0 Steady-state voltage deadband; SVC is inactive between
Vref+Vdbd1 to Vref-Vdbd1 (p.u.)
Vdbd2 0.0 Inner voltage deadband (p.u.). When Vdbd1 is exceeded
SVC must come back within Vdbd2, for Tdbd seconds, in
order to be locked again (p.u.)
Tdbd 0.0 Definite time deadband delay (sec.)
PLLdelay 0.15 PLL delay in recovering if voltage remains below UV1 for
more than UVtm1 (sec.)
eps 0.5 Small delta added to the susceptance bandwidth of the slow-
susceptance regulator in order to ensure its limits are not
exactly identical to the MSS switching point (MVAr)
Blcs 40.0 Large threshold for switching MSS on the capacitive side
(MVAr)
Bscs 20.0 Small threshold for switching MSS on the capacitive side
(MVAr)
Blis -40.0 Large threshold for switching MSS on the inductive side
Bsis -20.0 Small threshold for switching MSS on the inductive side
(MVAr)
Tmssbrk 0.10 MSS breaker switch delay (for opening and closing;
assumed the same value for all MSS) (sec.)
Tdelay1 0.50 Definite time delay for large switching threshold (sec.)
Tdelay2 60.00 Definite time delay for small switching threshold (sec.)
Tout 300.0 Discharge time for mechanically switched capacitors (sec.)
dbe 0.01 Voltage error deadband (p.u.)
dbb 0.0 Susceptance deadband (p.u.) (See Note h)
PrintB 0 If PrintB > 0, all possible unique values for the combination
of TSCs and TSRs are printed in the log file
Notes:
d) Up to eight steps are allowed, i.e., in the svd table, N1+N2+… N10 <= 8. If this
number is exceeded, the program issues an error message and uses the first eight non-
zero steps.
f) Svsmo2 model is very similar to svsmo1, the main difference is the Look-up Table
used to compute the output of the model. Other differences are the voltage and
susceptance deadbands dbe and dbb.
h) During initialization, svsmo2 computes the all the combinations of svd steps that
result in unique susceptance values. These values may be printed in the log file using
the parameter PrintB.
B2
B1
dbb dbb
Susceptance
Command (pio1)
B1 B2
B1 + (B2 – B1)/2
If Bsvc is at the maximum or minimum allowed susceptance value, then only the
midpoint between Bsvc and the next allowable susceptance value are used to
determine if a switching action is needed.
k) n2, name2, kv2 are the identifiers of the bus from which the voltage input signal is
taken. These items should be omitted if the voltage input signal is taken from the bus
at which the unit is connected.
m) The deadband control, slow-susceptance regulator, and non-linear slope are all
intended for the same purpose, i.e., maintaining the SVC at a low steady state output
when the system voltage is within a given bandwidth. Only one of the three
controllers should be used. The model does not allow for the use of more than one of
these controllers.
n) The nonlinear slope is piece-wise linear represented by three linear sections defined
by Vup, Vlow, Xs1, Xs2 and Xs3.
p) Up to eight Mechanically Switched Shunts (MSS) are allowed. The MSS can be
capacitive or reactive.
q) The model allows for automated MSS switching based on SVC Var output. Two
thresholds are implemented with different time delays for switching (Blcs, Blis,
Tdelay1) and (Bscs, Bsis, Tdelay2).
r) The shunts (if any) associated with an svsmo2 model must specify the SVD bus
where svsmo2 is connected. Below is an example of a shunt table which contains
four shunts, each associated with an SVD of Type 7 connected to bus 7. The column
labeled STSW indicates whether the shunt is available for operation. If the value is
zero, the corresponding shunt will not be used; conversely, if the value is any positive
number, the shunt is available for operation. This is different than the status of the
device (a shunt with status of zero can be connected in the course of the dynamic
simulation by the svsmo2’s switching logic, i.e., its status reset to 1).
s) The continuous maximum capacitive rating in p.u. (Bmax), and the continuous
minimum inductive rating in p.u. (Bmin) of the SVC are computed by the model
based on the possible combinations of TSCs and TSRs. Bmax and Bmin are
reported in the log file.
t) During INIT the susceptance of the svd associated with svsmo2 is set to zero. The
original value of svd[].b becomes the initial value of the svsmo2 output, Bsvc.
u) If the status of the svd associated with svsmo2 is set to zero, then the status of
svsmo2 and its output are set to zero.
v) Vrefmin and Vrefmax are set in the svd table (VRFMIN and VRFMAX). If
Vrefmin=Vrefmax=0 and Kps=Kis=0, then the limits, Vrefmin and Vrefmax, are
neglected.
Output Channels:
Record
Level Name Description
Look-up table
Vr Linear or
Non-Linear finds B closest to Bcommand
Slope Logic
Isvc
SVC over-
and under-
voltage X
tripping
function
if ( flag2 = 0 )
Xc = Xc1
else
if ( Vr >= Vup )
Xc = Xc1
else if ( (Vr < Vup) and (Vr > Vlow) )
Xc = Xc2
else
Xc = Xc3
end
end
y = Xc*Isvcv
Deadband Control Logic:
No
Release SVC
No
Yes
Nonlinear Droop:
Voltage
Xc1
Vup
Xc2
SVC
Current
Vlow
Xc3
Model Name: svsmo3
Parameters:
EPCL Default
Variable Data Description
modbase 100.0 Model base (MVA)
Xc0 0.01 Constant linear droop (p.u.)
Tc1 0.0 Voltage measurement lead time constant (sec.)
Tb1 0.10 Voltage measurement lag time constant (sec.)
Kp 0.0 Voltage regulator proportional gain (p.u./p.u.)
Ki 25.0 Voltage regulator integral gain (p.u./p.u. sec.)
vemax 0.50 Voltage error maximum limit (p.u.)
vemin -0.50 Voltage error minimum limit (p.u.)
To 0.005 Firing sequence control delay (sec.)
Imax1 1.00 Max. continuous current rating (in pu on model MVA base)
dbd 0.0 Voltage control deadband (p.u.)
Kdbd 10.00 Ratio of outer to inner deadband
Tdbd 0.10 Deadband time (sec.)
Kpr 0.0 Proportional gain for slow-reset control (p.u./p.u.)
Kir 0.001 Integral gain for slow-reset control (p.u./p.u. sec.)
Idbd 0.20 Deadband range for slow-reset control (p.u.)
Vrmax 0.10 Maximum limit of slow-reset control (p.u.)
Vrmin -0.10 Minimum limit of slow-reset control (p.u.)
Ishrt 1.40 Max. short-term current rating as a multiple of continuous
rating (p.u.)
UV1 0.50 Voltage at which the STATCOM performance limit starts to
be reduced linearly (p.u.)
UV2 0.20 Voltage below which the STATCOM is blocked (p.u.)
OV1 1.10 Voltage above which the STATCOM limit linearly drops
(p.u.)
OV2 1.20 Voltage above which the STATCOM blocks its output
(p.u.)
Vtrip 1.30 Voltage above which the STATCOM trips after Tdelay2
seconds (p.u.)
Tdelay1 1.00 Short-term rating delay (sec.)
Tdelay2 0.08 Trip time for V > Vtrip (sec.)
ecap 0.0 Enable (ecap=1) or disable (ecap=0) MSS switching
Iupr 0.50 Upper threshold for switching MSSs (p.u.)
Ilwr -0.50 Lower threshold for switching MSSs (p.u.)
TdelLC 60.0 Time delay for switching in a shunt (sec.)
Tout 300.0 Time cap. bank should be out before switching back in (sec.)
sdelay 0.02 Delay (sec.)
I2t 0.0 I2t limit (pu. p.u. sec.)
Reset 0.0 Reset rate for I2t limit (p.u. p.u.)
hyst 0.0 Hysteresis (p.u.)
flag1 0.0 = 1 slow reset is on; = 0 slow reset is off.
flag2 0.0 = 1 non-linear droop is on; = 0 non-linear droop is off
Xc1 0.01 Non-linear droop slope 1 (p.u./p.u.)
Xc2 1.00 Non-linear droop slope 2 (p.u./p.u.)
Xc3 0.01 Non-linear droop slope 3 (p.u./p.u.)
V1 1.025 Non-linear droop upper voltage (p.u.)
V2 0.975 Non-linear droop lower voltage (p.u.)
Tc2 0.0 Lead time constant (sec.)
Tb2 0.0 Lag time constant (sec.)
Tmssbrk 0.0 MSS breaker switch delay (for opening and closing;
assumed the same value for all MSS) (sec.)
Notes:
d) n2, name2, kv2 are the identifiers of the bus from which the voltage input signal is
taken. These items should be omitted if the voltage input signal is taken from the bus
at which the unit is connected.
f) The deadband control, slow-reset control, and non-linear droop slope are all intended
for the same purpose. Only one of the three controllers should be used. The model
does not allow for the use of more than one of these controllers.
g) The nonlinear slope is piece-wise linear represented by three linear sections defined
by V1, V2, Xc1, Xc2 and Xc3.
h) Up to eight Mechanically Switched Shunts (MSS) are allowed. The MSS can be
capacitive or reactive.
i) The model allows for automated MSS switching based on STATCOM current output.
Iupr and Ilwr define the thresholds for switching, with a time delay for switching of
TdelLC .
j) The shunts (if any) associated with an svsmo3 model must specify the SVD bus
where svsmo3 is connected.
k) If I2t is equal to zero and the svsmo3 output (It) is greater than Imax1 for Tdelay1
seconds, It is limited to its maximum continuous current rating.
l) The model allows for automated MSS switching based on the current output, It. The
current It is compared against the thresholds Ilwr and Iupr; switching occurs if a
threshold is violated for more than TdelLC seconds.
m) During INIT the susceptance of the svd associated with svsmo3 is set to zero. The
original value of svd[].b is used to compute the initial value of the svsmo3 output.
n) If the status of the svd associated with svsmo3 is set to zero, then the status of
svsmo3 and its output are set to zero.
o) Vrefmin and Vrefmax are set in the svd table (VRFMIN and VRFMAX). These
limits must be specified in the svd table; the model does not compute them.
Record
Level Name Description
Vrmax
Kir flag1 = 1
Kpr +
- s pio2 Vsched
+
S3 0 + +
Vrmin flag1 = 0
flag1 = 1 Idbd
(close)
flag1 = 0 Vrefmin
I2t Limit
(open) -Idbd
Vrefmax
Vsig vref
dbd > 0 : open Vemax Imax
dbd = 0 : close + Qstc
Vbus 1 + sTc1 Vr + err 1 + sTc2 Ki pio1 1 (MVAr)
Kp+
1 + sTb1 - 1 + sTb2 s 1 + sTo It (p.u.)
S0 S5 S1 S2
- Vemin -Imax
dbd
Logic
0
flag2
1
Xc1 if Vr >= V1
Xc = Xc2 if V2 < Vr < V1
Xc3 if Vr <= V2
STATCOM
over- and
under-voltage
tripping
function
0 1
Imax1
| It | 1
1
+ + s hyst
- - S4
0
Imax1 0 I2t
2
I t Limit Imax
Vr
V1
Deadband (dbd)
Nonlinear Droop
Logic Diagram
Model Name: tcsc
Invocation: tcsc [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>} <ck>
<sec>:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The sign convention for this model is positive reactance in ohms for capacitive
compensation and negative reactance in ohms for inductive compensation
b) A detailed description of the TCSC model can be found in the IEEE paper "A
Thyristor Controlled Series Compensation Model for Power System Stability
Analysis" by J.J. Paserba et.al, (paper 94 SM 476-2 PWRD). This paper also provides
typical data for the tcsc model.
d) The Xmax and Xmin limits are calculated based on the TCSC current, voltage and its
ratings and limits. A detailed description of these limits is given in the reference IEEE
paper. Note that the value of ILtran should be less than or equal to VCtran.
e) The tcsc will bypass if line current goes above ILtran * ILrated amps. The tcsc will
remain bypassed for a mininum of tdelay seconds. If, after Tdelay seconds, the line
furrent falls below ILtran * ILrated *Irecov amps, the bypass is removed.
f) The tcsc will block if line current fauls below Iltmin * ILrated amps. When blocked,
Xmax, Xmin and Xtcs are set equal to Xc. The tcsc will remain blocked for a
mininum of ILtdelay seconds. If, after ILtdelay seconds, the line furrent goes above
ILtrecov * ILrated amps, the block is removed.
h) By default, this model will represent a multi-module TCSC with operation between
Xbypass and Xc. To represent a single-module TCSC with no operation in this
region, set the flag sngmod to 1. If this flag is set to 1, the control flag sngdir is used
to indicate how the TCSC should operate when the desired value of Xc is between
Xbypass and Xc. A value of 1 indicates to operate at Xc, and a value of -1 indicates
to operate at Xbypass.
i) There are two inputs to the TCSC model. The first is the user-input variable xaux,
which is part of the TCSC model input structure. The user can change this value
through standard edit tables, in-run epcls and through user-written dynamic models
such as epcmod. This input variable is intended to allow the user to put step-changes
of reactive order into the TCSC model. The second input into the TCSC is from the
Xmodulation signal. This input is intended for continuous dynamic control of the
TCSC through user-written epcl models. It is accessed using the
model[@indx].sigval[0] variable. The index of the tcsc model (@indx) can be
obtained using the model_index function. Note that both inputs to the TCSC model
(Xaux and Xmodulation) are in ohms.
Output Channels:
Record
Level Name Description
Block Diagram:
Xaux Xmax Xfixed
Xref Xmin
Xlimit in pu on Xc
ILrated
* VCtran
Xmaxo Iline
1.0 pu ILTran
Iline in pu of ILrated
Xbypass
Xmino ILTran
ILrated
* VLtran
ILTmin Iline
Parameters:
EPCL Default
Name Values Description
Notes:
a) This model can be used to represent a wide range of excitation systems whose DC
power source is a controlled rectifier fed from a transformer at the main generator
terminals.
b) The voltage regulator may have proportional, integral, and derivative elements. Any
of the gains Kvp, Kvi, and Kvd may be zero.
c) Tg must be greater than zero. If Tr is zero, the transducer block is bypassed. If Tvd
is zero, the derivative block is not used.
e) The field current limiter is characterized by the gains, Kcl and Klr. The maximum
field current limit, Ilr, should normally be set to the maximum allowable continuous
field current and the gain, Kcl, should normally be set to 1.0.
f) If flag is omitted from the input data, it is set to 1. If Xe is also omitted, Xe is set to
0.
Record
Level Name Description
Block Diagram:
Constant Source
Voltage
Generator
Terminal Voltage
llr 1 0
+
Kcl Klr
Vsig ¯ Ladlfd 0
Kvp
Vcomp
Model Name: tgov1
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
c) T2 may be zero (to represent a non-reheat turbine set T2 = 0 and T3 to about 0.5 sec).
Output Channels:
Record
Level Name Description
1 pm Turbine power, MW
Block Diagram:
1 1 1 sT2
R 1 sT1 1 sT3
w
Model Name: tgov3
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
b) T3 must be greater than zero. T5 must be greater than zero if fast valving is used.
All other time constants may be zero.
c) The gains K1-K3 and describe the division of power output among turbine stages.
Normally, K1 + K2 + K3 = 1.0.
d) Fast valving is initiated at time "genbc[k].glimv". This variable must be set by the
user or an EPCL program for fast valving to be initiated. The times Ta, Tb, and Tc
are all with respect to the initiation time.
e) The value Prmax is a limit on the pressure in the reheater. Normally, this value should
be about 1.10 p.u.
f) A piece-wise linear characteristic for intercept valve flow vs. position is built in. This
characteristic can be modified by entering up to six points in the input data following
Prmax, in the following sequence:
The value of pgv1 should be 0.0, and the value of highest pgv point entered should be
1.0.
Output Channels:
Record
Level Name Description
Block Diagram
+ +
Pmech
+ +
K1 K2 K3
Pref Prmax
uo Pmax
- + Gv +
K (1 sT2) 1 1 1 1 1
(1 sT1) T3 s 1 sT 4 T5s
X 1 sT6
Vcomp
- -
S1
S0 S2 S3 S4
uc Pmin
Intercept
valve
position
Tc
.8
Tb
.3
1. Ta
0
IV Position Time
T1 T1+Tb T1+Tc
T1+Ta
Model Name: tiocrs
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Tiocrs is a “generic" model of Time Inverse Relay inverse time line overcurrent relay.
The model is similar to locti but instead of using a piece-wise linear curve, an
equation as described in IEEE, IEC, SEL and other standards is used. The relay
characteristic is as shown below.
b) Tiocrs can be used for lines (secdd) and transformers. For a 3-winding transformer
the winding to be monitored is specified by the terminal bus and the internal bus.
Separate relays can be used, if desired, to monitor more than one winding. If the
parameter t3trip = 0, the relay only trips the winding it is monitoring (tran.st = 2, 3, or
4, for secondary, tertiary, or primary, respectively). If t3trip = 1, the entire
transformer is tripped (tran.st = 0).
c) The relay picks up and starts its timer when the branch current exceeds <pickup>.
θ = ∫ (1/TimeToClose) dt
Issue Trip signal when θ = 1
When the function reaches 1.0 then the relay operates and the trip signal is issued.
Time to close contact will vary based upon the curve mentioned below
θ = ∫ -( (1-I2)/Treset ) dt
where I is branch current
f) If Mode is 0, the relay will not trip the branch or transformer but only issue a warning
that the branch would have tripped. If mode is 1, the relay will trip the branch if the
current exceeds the time-current characteristics.
g) Time dial multiplier setting allows selection of a multiple of the base curve shape
(where the time dial multiplier = 1) with the curve (time current) settings. Unlike the
electromechanical time dial equivalent, operating times are directly proportional to
the time multiplier (tdm).
h) The “From” end ([<n>] {<name> <kv>} <id> ) is monitored by the model.
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Tlin1 operates the circuit breaker(s) on a line to disconnect loads supplied by the line
in response to under-voltage or under-frequency at its "from" end, <nf>. The line
may have any number of tap buses provided that connections to the tap buses are
purely radial. Any combination of loads, generators, shunts, and SVDs may be
connected at tap buses and at buses connected radially to tap buses.
If the line is a path to another source of supply, the location of the "far end" circuit
breaker is indicated by the bus identifier, <nfar> in the argument list.
If the line is radial so that the "from" end is the only point of supply, the bus at the far
end of the radial system segment must be specified as the "far" end of the line <nfar>.
If the system is forked downstream of the "from" bus, any one of the several "far"
ends may be used for <nfar>.
Bus <nt> must be the first bus on the line towards the far end as shown, and bus
<nfar> must be at the location of the far end circuit breaker.
c) When tlin1 trips the line it also trips generators, loads, and dynamic models
connected to buses that are radially connected to intermediate tap buses. along the
line
d) The Mode Flag must be set to indicate the nature of the line and of the tripping to be
executed, as follows:
f) If the branch does not exist, output channels are assigned by tlin1 but no signals are
recorded in them.
g) The signal (Sig1) in the first output channel indicates the condition of the relay as
follows:
g) If Sbus is absent from the data record the voltage or frequency is monitored at bus
<nf>.
h) The frequency used by this model (output channel frel) is set to 60 Hz when the
voltage drops below the voltage threshold dypar.v_f_inh. The default value for this
threshold is 0.0 p.u and it is set in javaini.p.
Output Channels:
Record
Level Name Description
1 Sig1 Signal
1 Inp Input signal
2 frel Frequency (Hz)
Block Diagram:
Time
t1
v1 Input
nf nt nfar
Model Name: uclp2
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) if factor = 0, or kalloc = 0, they are assigned the value of (Pgen of this unit)/(total
Pgen of agc controlled units) if kmw = 0, it is assigned the value of Pmax in MW of
the unit if vumax = 0, it is assigned the value of 1.1 pu if vamax = 0, it is assigned the
value of Pmax in MW of the unit if vamin = 0, it is assigned the value of Pmin in
MW of the unit if Tz = 0, it is assigned to be 999. if cz = 0, it is assigned to be 999.
b) The UCLP2 model has to be used in pair with the AGC2 model. One AGC2 model
has control over selected generators in an area. AGC2 and UCLP2, used in pair,
controls 1) Speed of an isolated system; 2) Tie flows of interconnected systems; 3)
Generation allocations among the controlled units.
c) "areanum" in the AGC2 data list needs to be equal to the agc controlled area number.
There can be more than one AGC2 model, but each area can have only one AGC2
model.
d) The agc controlled units are selected by giving the units a zone number in gens table,
which is equal to "zonenum" in the AGC2 data list. Each of these units has to be
equiped with an UCLP2 model.
e) The AGC2 model has to be put at the bus of the first agc controlled unit in the gens
table. That is, the bus number of this unit is smaller than any other agc controlled
units in the controlled area.
f) The section numbers for tie lines (secdd's) associated with the agc controlled area
must start with 1.
g) Tc and cz are parameters used in rate limit. The rate of change of the unit's real power
output is checked by (s/1+sTz). If the rate of change in real power is greater than cz
or less of -cz, then any change of this unit's real power required by agc is ignored.
That is, the reference value is frozen. If users want to ignore rate limit, Tz and cz can
be given zero's. The program will replace them with large values during initialization.
Output Channels:
Record
Level Name Description
1 prqu Scheduled MW for the controlled unit, from the power requirement
control
1 palc allocated MW for the controlled unit, from generation allocation
logic
1 pref Output reference for the governor of the controlled unit, output of
AGC
1 puls Pulse, p.u., input to the digital integration of the controlled unit
1 perr Error signal in p.u. at the summation junction in unit control
1 purf Unit reference power in MW, sum of prqu and palc
1 z Measured rate of change in unit generation, for applying rate limits
Block Diagram:
Pulsing logic
Area Control Unit 1 Pulse (in every 4 seconds)
(agc2)
Power Requirement Output from AGC
Control Signal Input to turbine governor
Digitization
control
Algebraic approx.
Prqu
in every second Vsmax Purf Perr
Prqs Digital
Integration Turbine Governor
Kis Control
Kps +
s
Factor + +
+ 1/Kmw
+ Governor,
Kiu Generator
ace
Vsmin +
Pnet -
in MW Palc Pref
Pgen
Vumax Pgen
-
Net
+ Gain +
+ Vumin
To 2nd Unit Vamax
..
Pnsched
in MW
bias
. Vamin
To last unit Algebraic approx.
Freqset
+
+ in every second Pgen
- +
Pgen of
1 totgen + 2nd unit
Frequency in Hz +
Kalloc
1 + tfS ..
.
Pgen of
Unit Control last unit
(uclp2)
Allocation logic
Unit 1
Model Name: uel1
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The UEL characteristics (center and radius) are in per unit of the generator MVA
base.
b) If Tu2 is zero, the block with Tu1 and Tu2 is bypassed.
c) If Tu4 is zero, the block with Tu3 and Tu4 is bypassed.
d) The limits, Vulmin and Vuelmin, should be set to zero for excitation systems where
Vuel is an input into an adder.
e) The “fix bad data” option will do the following:
a. If 0 < Tu2 < 4*delt, then set Tu2 = 4*delt
b. If 0 < Tu4 < 4*delt, then set Tu4 = 4*delt
c. If Vulmax < Vulmin, swap values
d. If Vuelmax < Vuelmin, swap values
Output Channels:
Record
Level Name Description
Block Diagram:
Vurmax
VUR
| KUR VT |
Vulmax Vuelmax
Vucmax
-
VT VUerr KUI 1+ s TU1 1+ s TU3
| KUC VT – j IT | KUL +
VUC + s 1+ s TU2 1+ s TU4
IT - Vuel
S0
S1 S2
Vulmin Vuelmin
VUF
Vf KUF
Model Name: uel2c
Parameters:
EPCL Default
Variable Data Description
Notes:
a) When the uel2c model is not limiting, the error signal, Vuerr, is negative. If this
condition is not true when the model is initialized, a warning message is printed.
b) The UEL limit look-up table must contain at least two points, (p1, q1) and (p2, q2),
and must be defined in the fourth quadrant.
c) The uel2c limiting characteristic can be defined by up to nine straight line segments
(see figure below).
d) The uel2c limiting characteristic beyond each endpoint is a straight line which is a
continuation of the last segments. If only the two points (p1, q1) and (p2, q2) are
defined, then a single straight line is used.
e) If Tu1 and Tu2 are zero, the limits vuelmin2 and vuelmax2 are still enforced.
f) If Tu3 and Tu4 are zero, the limits vuelmin1 and vuelmax1 are still enforced
g) Tadj must be greater than zero if SW1 is not zero; otherwise, SW1 is set to 1 and an
error message is printed.
h) The input signal Vfb is for use with the exciter model st7c (not yet available). Vfb is
set to zero by uel2c; Kfb and Tul are not used.
i) The “fix bad data” option will do the following:
a. If 0 < Tuv < 4*delt, then set Tuv = 4*delt
b. If 0 < Tuq < 4*delt, then set Tuq = 4*delt
c. If 0 < Tup < 4*delt, then set Tup = 4*delt
d. If 0 < Tadj < 4*delt, then set Tadj = 4*delt
e. If 0 < Tu2 < 4*delt, then set Tu2 = 4*delt
f. If 0 < Tu4 < 4*delt, then set Tu4 = 4*delt
g. If Vulmax < Vulmin, swap values
h. If Vuelmax1 < Vuelmin1, swap values
i. If Vuelmax2 < Vuelmin2, swap values
Output Channels:
Record
Level Name Description
1 Qtf
Qg P
1+ s Tuq
S2
+
+
Kfb
Vfb
Vuf 1+ s Tul
Vf KUF
S4
Vuimax
Vt Vtf V o l t a g e u F2 _
1 k2 +
bias F2 = (u) Vuerr
1+ s TUV KUI
logic P KUL +
S0
s +
+ S6
-k1
Vuimin
F1 = (u) 1
P P
1+ s TQref Qref
S3
F1
Q’
1 P’ UEL
Pg P P limit
1+ s TUP look-up
S1
table
SW1
1 0
Kfix
1 Vuelmax2 Vuelmax1
Kadj
1+ s Tadj
1 Vuel
S5 1+ s TU1 1+ s TU3
0.1 1+ s TU2 1+ s TU4
S7 S8
Vuelmin2 Vuelmin1
Overexcited
vars out +
P’
[pu]
Unserexcited
vars in -
(p5, q5)
(p4, q4)
(p3, q3)
(p1, q1) (p2, q2)
Where Vt, Pg, and Qg are the terminal voltage, real power, and reactive power of the
generator the uel2c model is associated with; Xq is the Q-axis synchronous reactance of
the generator.
[1] IEEE Std 421.5 – 2016. IEEE Recommended Practice for Excitation System Models for Power System
Stability Studies.
Model Name: upfc
Invocation: upfc [<n>] {<name> <kv>} [<n>] {<name> <kv>} <id> <ck>:
Note: <id> should be consistent with the upfc
equivalent generator id. <ck> should be consistent with
the upfc equivalent transformer circuit id.
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model represents an UPFC or similar device consisting of coupled series and
shunt ac/dc converters. The device is modeled in the load flow by a transformer with
variable tap ratio and phase shift and by a generator at the from-bus, which supplies
the reactive power of both the shunt and series converters. The transformer and
generator must have the same id (e.g. UP). For more details of the principles for the
UPFC load flow modeling in PSLF, refer to section 3.10.1 of the PSLF help manual.
The UPFC dynamic model simulates only the core part of the UPFC dynamics.
Basically, it simulates the series voltage injection and shunt Mvar injection into the
network using current injections at from- and to- buses of the UPFC. Specifically, 1)
for simulation of the UPFC equivalent transformer with complex tap (tap ratio and
phase shift), the initial values of tap ratio and phase shift are included in the network
simulation. Changes in the complex value are simulated by current injections at from-
and to- buses of the UPFC. This is done to avoid the need to rebuild and refactorize
the network matrix every time these values are changed. 2) the UPFC equivalent
generator is replaced by an additional current injection that is added at the from-bus
end.
b) The UPFC dynamic model does not include any particular controls (regulations) of
the device. The controls must be implemented in a user written epcmod model. This
epcmod epcl must reside in the current working directory, or in the directory specified
by the epcmod path in PARM:PATH. An example epcmod model, upfc.p, is included
in \upslfXX\samples (windows) or /usr/pslfXX/samples (UNIX) directory. Manual
page is provided for this epcl (use F1 to see the manual page while the epcl file name
is highlighted from "spec"). In this example epcmod model, the control variables,
gcd[0].vsm, gcd[0].vsa and gcd[0].qshunt, are updated at every time step. These
variables are recognizable by the UPFC C code model.
c) If you want to run this example case, copy the above files to a local working directory
and run the case there. Call rundyn_upfc.p from "epcl",which will run the dynamic
simulation automatically.
The epcmod model implementing UPFC controls can access and/or change all
variables in gcd structure. It can also access and/or change the following variables
from the C code UPFC dynamic model:
d) Presently, only one UPFC device can be simulated in one case. Therefore, only the
first entry in gcd data structure (i.e., gcd[0]) is valid.
Record
Level Name Description
Block Diagram:
VI I VD D VJ J
T
ZT
R
I inj Iinj J
I
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This relay sheds load equal to the fraction, sv, of the ORIGINAL LOAD of the
designated bus. For example, if the original load is 100 MW and sv1, sv2, and sv3 are
0.2, 0.3, and 0.5 respectively, the three stages result in after-trip loads as follows:
b) With “action” set to 0, this model behaves the same as the LSDT3 model, i.e. the trip
of stage two sheds the stage one and the stage two load, if stage one has not already
tripped. The trip of stage three sheds the load of stages one, two, and three that has
not already been tripped, and so on for each subsequent stage.
c) With “action” set to 1, each stage is independent of all other stages, i.e. each stage
trips only its own fraction of the load.
d) With “mode” set equal to 1, the timer in each stage picks up when the measured
voltage falls below its pick-up setting. The timer in each stage can have two reset
criteria. The timer in each stage will reset if the voltage goes above the reset voltage
for a minimum of reset time.
e) With “mode” set equal to 0, the timer in each stage picks up when the difference
between the initial voltage and the measured voltage is greater then its pick-up
setting. The timer in each stage can have two reset criteria. The timer in each stage
will reset if the voltage goes above the initial voltage minus the reset voltage for a
minimum of reset time.
f) The filter time constant may be set to approximately 0.05 seconds to avoid false
operations of the relay due to noise in the voltage signal.
g) To measure the voltage at a bus other than the load terminals, the bus identification
([<mon_i>] {<name> <kv>} ) must be entered, either in the DYD file as given in the
"invocation" above or in the "edds" table.
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Vfmetr computes the ratio of per unit bus voltage divided by per unit bus frequency.
b) A message is printed in the event log file when Vhtol1 or Vhtol2 is exceeded for
longer than the specified time (Tlim1 or Tlim2).
Output Channels:
Record
Level Name Description
1 vphz Bus voltage magnitude, p.u./ Bus frequency, p.u. (Channel files
are assigned by vfmgen)
Block Diagram:
Model Name: vcr
Parameters:
EPCL Default
Variable Data Description
General Description:
Notes:
b) The compensating impedance components rc1 to rc3 and xc1 to xc3 should be
specified in per units on system (network) MVA base.
c) Since this model is being used to controller a voltage looking out into the network,
the controller should always be a reset controller (i.e. ki can not equal zero).
Output Channels:
Record
Level Name Description
Block Diagram:
in
i2 + + + +
i1
+ +
the generator associated + + this bus is specified by the
with the model is parameter "gbus"
connected to this bus
rc3=jxc3
rc1+jxc1 rc2+jxc2
+ ¯ ¯ +
V1 ¯ ¯ V2
vrset1 vrset2
Model Name: vfmetr
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Vfmetr computes the ratio of per unit bus voltage divided by per unit bus frequency.
b) The bus frequency is calculated by numerical differentiation of the bus voltage angle.
d) A message is printed in the event log file when Vhtol1 or Vhtol2 is exceeded for
longer than the specified time (Tlim1 or Tlim2).
e) The plots below show vphz, the volts-per-hertz ratio, vppu/fbpu, and the cumulative
time where vphz exceeds Vhtol1. In this case Vhtol1 is 1.05 p.u.
f) The “fix bad data” option will do the following:
a. If Tv < 4*delt, then set Tv = 4*delt
Output Channels:
Record
Level Name Description
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The VFT model simulates the dynamic performance of a VFT by adjusting the angle
of a phase shifting transformer. VFT control algorithms are contained in an
EPCMOD model. In mode 0, the EPCMOD directly specifies the phase shifting
transformer angle. In mode 1, the EPCMOD specifies the VFT drive torque, and the
phase shifting transformer angle is calculated.
b) A small test case with a VFT (vft-test.sav, vft-test.dyd) is included in the sample
EPCL programs subdirectory, as well as an EPCMOD (VFT-Control-Model.p)
representing the VFT control system.
Output Channels:
Record
Level Name Description
Block Diagram:
Pvft
Qvft
Vs Vr
Pvft
Ang_Cmd (mode 0)
Qvft
Drv_Trq (mode 1)
Spd
EPCMOD Model
Prerequisites: From, to a.c. and d.c. buses, d.c. line, and vsc converters
must exist in load flow data tables
Parameters:
EPCL Default
Variable Data Description
a) nr identifies the rectifier a.c. bus; ni identifies the inverter end a.c. bus.
c) One and only one voltage-source converter (vsc) may join each (a.c. bus)- (d.c. bus)
pair. Each d.c. bus may have only one vsc and one d.c. line connected to it.
d) Each d.c. bus, line, and vsc must be fully represented in the load flow working case.
e) In this model, the rectifier always regulates its d.c. voltage (kV) and the inverter
regulates its d.c. power (MW). The initial reference values are the solved values from
the load flow even if the load flow converters were regulating different quantities.
f) Figure 1 shows the d.c. line dynamic model, The values of R (ohms), L (mH), and
C(F) are obtained from the load flow dc line table. All 3 values must by greater
than zero. If C is too small, it may cause numerical stability problems, in which case
the numerical integration time step must be reduced (or the value of C increased). A
message is written if this condition is detected.
g) The solved values of d.c. voltages and currents (Udr, Udi, Idr = Idi) from the load
flow are used to initialize the model. From these values, the initial Pref and Udref are
determined. Also, the efficiencies of the converters (effr, effi) are determined by
taking the ratios of the initial a.c. and d.c. power as follows:
effr = Pdcr / Pacr
effi = Paci / Pdci
These values are used throughout the dynamic solution and are not a function if d.c.
current as they are in the load flow.
h) The d.c. current and voltage controller logic are shown in Figure 2. If it is necessary
to change the Pref or Udref during a run, they can be accessed in the record edit table
or using the epcl setmodpar function.
i) The volt/VAr controller logic is shown in Figure 3. The same logic is used for each
converter separately. Each controller can regulate either a.c. voltage at the converter
terminal bus, converter reactive power output, or power factor angle of the converter
as determined by the input parameters Refflag_r and Refflag_i. If it is necessary to
change the setpoints during a run, they can be accessed in the record edit table or
using the epcl setmodpar function.
k) The model interfaces with the a.c. network by injecting currents at each converter a.c.
bus based on the Qac_cmd of each converter volt/VAr controller and Pac values
computed as follows:
Paci = (Udi*Idi) * effi;
Pacr = (Udr*Idr) / effr;
Output Channels:
Record
Level Name Description
Rectifier Inverter
Udr C Udi
Converter 1 Converter 2
Idi
_
1 1 Udr
Idr
+ C s
s0
Udi
_
1 1 Idi
Udr
+ L s
s1
Rdc
Udref Idmax
Idmax
+
_
1 +
Udr Ki Idr
s
+
s2
Idmin
Idmin
Kp
Idi
Udmax
dPmax Pmax Idmax Udmax
+
_
1 +
Pref 1./effi ÷ Kiu
s
Udi
+
s3
dPmin Pmin Idmin Udmin
s14 Udi Udmin
Kpu
Pac 1
1 + Tp.s
s8 / s9
pfaref tan
Parameters:
EPCL Default
Variable Data Description
Notes:
a) If bus exist in area, zone or all then an output channel is assigned by vmeta.
Output Channels:
Record
Level Name Description
Block Diagram:
Vin Vmeasure
Gain = 1
Model Name: vmetr
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Tf may be zero.
b) If bus ibus does not exist an output channel is assigned by vmetr but no signal is
recorded in it.
Output Channels:
Record
Level Name Description
Block Diagram:
Bus Voltage
Voltage 1 (p.u.)
1 sTf
Model Name: Vphr1
Parameters:
EPCL Default
Variable Data Description
Notes:
a) vphr1 computes the ratio of per unit bus voltage divided by per unit bus frequency
for the generator.
b) The generator is tripped when Vhtol1 or Vhtol2 is exceeded for longer than the
specified time (Tlim1 or Tlim2), if the opmode flag is set to 1. If the opmode flag is
set to 0, a warning is issued.
d) The frequency used by this model (output channel frel) is set to 60 Hz when the
voltage drops below the voltage threshold dypar[].v_f_inh. The default value for this
threshold is 0.0 p.u and it is set in javaini.p.
Output Channels:
Record
Level Name Description
1 vphz Bus voltage magnitude, p.u./ Bus frequency, p.u. (Channel files
are assigned by vfmgen)
2 frel Frequency (Hz)
Block Diagram:
Model Name: vscdc
Inputs:
Note: "epclname" is the name of the epcl program implementing vscdc controls. This epcl
program must exist in the standard epcl directory. <table> is the assigned table number for
this epcl program. This must not be in conflict with the table numbers used by any other
models. The parameter names must be included in the record.
Parameters:
EPCL Default
Variable Data Description
p_table 0.0
accel 0.0 Solution acceleration factor
Notes:
b) VSCDC model injects current into network at both rectifier and inverter end. The
current injections are defined by the desired and limited P and Q at rectifier and
inverter. The P and Q are calculated in the epcl program which models the VSCDC
controls. This epcl program must reside in the "stdepcl" directory.
c) The dc system can be blocked by putting status of either rectifier or inverter generator
to 0. When dc is blocked, both converters are blocked and the power transfer becomes
zero.
Output Channels:
Record
Level Name Description
Note: additional output can come from variables v0-v9 in the epcl program which
implements dc controls, when the record level is > 1.
Model Name: vscdc1
Inputs:
Note: "epclname" is the name of the epcl program implementing vscdc1 controls. This epcl
program must exist in the standard epcl directory. <table> is the assigned table number for
this epcl program. This must not be in conflict with the table numbers used by any other
epcl models.
Parameters:
EPCL Default
Variable Data Description
Notes:
c) The dc system can be blocked by setting the status of either rectifier or inverter
generator to 0. Both converters are blocked and the power transfer becomes zero
d) The parameter <table> is the internal slot that holds the compiled epcl program.
This number must be between 0 and 20, and must be unique for each user-written
(epcl) model in a dynamic data (dyd) set. If the same epcl model is used several
times, the same table number should be used for each application. Note that when
running dynamics from an epcl program, PSLF will automatically use slot 0 for that
program. Running dynamics using two epcl programs (e.g. running from batch mode
and using an epcl to perform the dynamic run actions) will use slots 0 and 1.
Therefore, it is recommended that slots 2 through 20 be used for the table number of
user written models. The following example shows the use of epcl table slots.
e) Several index values may be needed in the user-written (epcl) model to access
program variables. Statements similar to the following should be included at the
beginning of the epcl model:
Input parameters
The only input parameters are the source resistance and reactance values. These
can be accessed in the epcl model as vscdc1[@mx].rsrc, etc. Other model
parameters must be local epcl variables, e.g. @vmax, @krect, or storage variables
(see below).
state variables
Up to 200 state variables, accessed using vscdc1[@mx].s0, s1,... through
vscdc1[@mx].s199. State variable derivatives are accessed using
vscdc1[@mx].ds0,... and integrator storage variables are accessed using
vscdc1[@mx].zs0,...
storage variables
Up to 300 variables, accessed using vscdc1[@mx].v0, vscdc1[@mx].v1,... The
values of these variables are retained between calls to the model. They are used
for values such as control outputs, timers, switch status and other information that
is needed on consecutive calls to the model. These variables are also available as
output channels.
local variables
All standard epcl local variables (@,$,# and *) can be used in the epcl models.
However, they should be used with caution. They should not be used to store any
information from one call to another if the same epcl model is used for more than
one system.
g) There are six dynamic modes with which the epcl program is called. These
correspond to the flow diagram in Figure 3.11.1. Each one is described below. Some
of these modes can be skipped in a particular epcl model.
INIT
The dynamic model is initialized in INIT mode. All state variables and other
variables are initialized. These variables must be calculated to produce zero
values for all derivatives in order to have a steady-state initialization. In the
INIT section, the type (name) and scaling of the output channels can also be
specified by setting values for channel_head[].type, channel_head[].cmin and
channel_head[].cmax. If these are omitted, default “type” will be “v1”, “v2”,
etc., and cmin and cmax will be –100 and 100, respectively.
The following variables are available for use during initialization:
vscdc1[@mx].er Terminal voltage components on network reference axes (p.u.)
vscdc1[@mx].ei for converter 1
vscdc1[@mx].er1 Terminal voltage components on network reference axes (p.u.)
vscdc1[@mx].ei1 for converter 2
vscdc1[@mx].pac Converter 1 P (MW) – generator convention
vscdc1[@mx].qac Converter 1 Q (MVAr) – generator convention
vscdc1[@mx].pac1 Converter 2 P (MW) – generator convention
vscdc1[@mx].qac1 Converter 2 Q (MVAr) – generator convention
model[@mx].mbase MVA base - value from dyd file, if present, else from LF
SORC
Network boundary source conditions are calculated here. If convertor 1 has non-
zero internal reactance (xsrc), the epcl model must calculate the following
variables:
vscdc1[@mx].angle Conv. 1 q-axis angle (rad) relative to network real axis
vscdc1[@mx].ed Conv. 1 d-axis component of voltage behind rsrc + j xsrc
vscdc1[@mx].eq Conv. 1 q-axis component of voltage behind rsrc + j xsrc
If the converter 2 has non-zero internal reactance (xsrc1), the epcl model must
calculate the following variables:
vscdc1[@mx].angle1 Conv. 2 q-axis angle (rad) relative to network real axis
vscdc1[@mx].ed1 Conv. 2 d-axis component of voltage behind rsrc1 + j xsrc1
vscdc1[@mx].eq1 Conv. 2 q-axis component of voltage behind rsrc1 + j xsrc1
If the converter 1 xsrc is input as zero, then the epcl model must calculate the
following variables:
vscdc1[@mx].pac Conv. 1 P (MW) – generator convention
vscdc1[@mx].qac Conv. 1 Q (MVAr) – generator convention
If the converter 2 xsrc1 is input as zero, then the epcl model must calculate the
following variables:
vscdc1[@mx].pac1 Conv. 2 P (MW) – generator convention
vscdc1[@mx].qac1 Conv. 2 Q (MVAr) – generator convention
These values, specified in the epcl model, will be converted into the proper
current injections by the vscdc1 library model.
NETW
If the values calculated in the SORC section depend directly on the voltage or
current at the terminal bus, then iterative solution with the network is necessary.
The NETW section is executed on each network iteration. The SORC variables
must be updated. The following variables from the network solution are
available via the vscdc1 model:
vscdc1[@mx].er Conv. 1 terminal voltage components on network ref. axes (p.u.)
vscdc1[@mx].ei
vscdc1[@mx].er1 Conv. 2 terminal voltage components on network ref. axes (p.u.)
vscdc1[@mx].ei1
If xsrc and xsrc1 are non-zero, then the following are also available:
vscdc1[@mx].itr Conv. 1 current components on network ref. axes
vscdc1[@mx].iti (p.u. on model mbase)
vscdc1[@mx].itr1 Conv. 2 current components on network ref. axes
vscdc1[@mx].iti1 (p.u. on model mbase)
ALGE
ALGE is called immediately after the network solution is completed. Since
RATE is called immediately after this, ALGE can generally be empty, unless it
needs to calculate a genbc variable that is needed by another model. The same
variables from the network solution listed above under NETW are available for
use by the model.
RATE
All state variable derivatives are calculated in RATE. Values calculated by other
models and stored in genbc variables can be used in these calculations, as well as
the network variables listed above.
OUTP
Values of output channel variables, v0 through vnn (nn <= 99) are set in OUTP.
If these values have been set in another mode, they do not need to be reset in
OUTP.
h) Output statements can be written to the screen using logterm and to the dynamics log
file using logdy.
i) When a network switching event, e.g. tripping the “generators” modeled by this
device, is initiated from a dynamic model, the flag dypar[0].new_fact must be set to
1. This will cause the network Y matrix to be rebuilt with the specified change.
This type of action should be performed in ALGE mode.
j) When adding a new user-written model, the data should be put in a .dyd file using a
standard text editor. The rsrc, xsrc, rsrc1, xsrc1 parameters must be listed with their
names and values in the .dyd file. The data can then be edited and copied through
normal PSLF edit table functions.
k) For more information regarding epcl dynamic models, refer to application notes
apn022 and apn022II on writing epcl dynamic models.
Output Channels:
Record
Level Name* Description
1 v0 Model variable v0
1 v1 Model variable v1
2 v2 Model variable v2
3 v3 Model variable v3
4 v4 Model variable v4
.
.
.
99 v99 Model variable v99
vscdc1.p implements
vscdc1 controls
rectifier inverter
ac bus ac bus
VSCDC1 VSCDC1
C code C code
model model
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The valve travels over a range of 1.0 per unit from full closed to full opened. The
valve is at a position greater than zero at zero power and, normally, less than 1.0
when power is 1.0 p.u. Gmax and Gmin are operating limits.
Output Channels:
Record
Level Name Description
1 pm Turbine power, MW
1 gerr Turbine gate position, p.u. error
1 gout Turbine gate position, p.u. PI output
Block Diagram:
Model Name: wndtge
Parameters:
EPCL Default
Variable Data Description
usize 1.5 WTG unit size (1.5 for DFAG, 2.5 for FC)
spdw1 0.0 Initial wind speed, m/s
Tp 0.30 Pitch control constant, sec.
Tpc 0.05 Power control time constant, sec.
Kpp 150. Pitch control proportional gain
Kip 25. Pitch control integral gain
Kptrq 3.0 Torque control proportional gain
Kitrq 0.6 Torque control integral gain
Kpc 3.0 Pitch compensation proportional gain
Kic 30. Pitch compensation integral gain
PImax 27. Maximum blade pitch, deg
PImin 0. Minimum blade pitch, deg
PIrat 10. Blade pitch rate limit, deg/sec.
PWmax 1.12 Maximum power order, p.u. (see Note c)
PWmin 0.04 Minimum power order, p.u. (see Notes c and h)
PWrat 0.45 Power order rate limit, p.u./sec
H 4.94 Rotor inertia constant, p.u. (on turbine MW base)
nmass 1 = 1 for 1-mass model ; = 2 for 2-mass model
Hg note g Generator rotor inertia constant, p.u. (on turb. MW base)
Ktg note g Shaft stiffness (p.u. torque / rad.)
Dtg note g Shaft damping (p.u. torque / p.u. speed)
Wbase note g Base mechanical speed (rad./sec.)
Tw 1.00 Rate limit washout time constant, sec.
Apcflg 0 Active power control enable flag
Tpav 0.15 Filter time constant on Pavail, sec.
Pa 1.00 Active power point in frequency response curve, p.u.
Pbc 0.95 Active power point in frequency response curve, p.u.
Pd 0.40 Active power point in frequency response curve, p.u.
Fa 0.96 Frequency value for Pa frequency response curve, p.u.
Fb 0.996 Frequency value for Pbc frequency response curve, p.u.
Fc 1.004 Frequency value for Pbc frequency response curve, p.u.
Fd 1.04 Frequency value for Pd frequency response curve, p.u.
Pmax 1.00 Maximum wind plant power, p.u.
Pmin 0.20 Minimum wind plant power, p.u.
Kwi 0 Gain for simple WindINERTIA model (see note l)
dbwi 0 Deadband, p.u.
Tlpwi 0 Low pass filter time constant, sec
Twowi 0 Washout time constant, sec
urlwi 0 Up rate limit
drlwi 0 Down rate limit
Pmxwi 0 Maximum output, p.u.
Pmnwi 0 Minimum output, p.u.
wfflg 0 WindFREE reactive power function flag (1=enabled)
Td1 0.15 Time delay in APC output, sec.
Tpset 5 Filter time constant on Pset, sec.
Notes:
Output Channels:
Record
Level Name Description
From
Pdbr
+
+ From
Pelec getwg
ewtgfc
(elimt) (pelec)
Wind
Speed
Trip
(glimv) Wind Pmech Under Signal
Rotor
Power Speed
Model
Model Trip To
s6 s9 getwg
Blade rotor (glimt )
Pitch
d /dt Anti-windup on
max & max Pitch Limits
+
1 cmd + 1
Kpp+ Kip/s - 0.75P2elec+ 1.59Pelec+ 0.63
1+ sT p err ref 1 + 60s
s0 + s1
s5
Pitch Control
min & d /dt min Torque Control
Anti-windup on
Power Limits P & d P /dt
wmax max
K ptrq + Kitrq / s 1
X
1+ sTpc
s2 s4
1.
pstl Power Response
Pmax Rate Limit
WTG Terminal Active Power 0 PsetAPC
Bus Frequency Control 1 1‐sTd1/2
(optional) apcflg 1+sTd1/2
+
plim
fbus Pmin +
+ perr
Auxiliary sTw
Signal 1 + sTw
(psig) + s10
WindINERTIA
Control
dpwi +
(optional) + wsho
Pord
To extwge
or ewtgfc
(vsig)
1
1+sTpav
WTG Terminal 1.
Bus Frequency pavf s11
Pmax
+ 0
fbu Frequency
pset 1 psetf 1
s Response pstl
1+sTpset
+ Curve
Pmin
Auxiliary To gewtg apcflg
Signal Trip Signal
(glimt) Release
(psig) Pmax
If (fbus < fb) fflg 1 if fflg set
OR (fbus > fc)
1.2
Point Point B
A (Fb,Pbc) Point C
1 (F P ) (Fc,Pbc)
0.8
Active Power Output (pu)
0.6
Point D
0.4
(Fd,Pd)
0.2
0
0.95 0.96 0.97 0.98 0.99 1 1.01 1.02 1.03 1.04 1.05 1.06 1.07
Frequency (pu)
+
ferrwi dfdbwi fltdfwi dpwi
fbus 1 sTwowi
1 + sTlpwi
Kwi
1 + sTwowi
+ - dbwi
+
s12 s13
Auxiliary
Signal Frequency Pmnwi
(psig) Reference
Rate limits:
urlwi = up rate limit
drlwi = down rate limit
Prerequisites: gewtg and exwtge models for each WTG ahead of this
model in the dynamic models table
Parameters:
EPCL Default
Variable Data Description
Flag 0 0 for zone, 1 for future use
wndfzn 0.0 Wind power plant zone number
vbmax 1.1 Max volt limit on reference voltage
vbmin 0.94 Min volt limit on reference voltage
tr 0.12 Delay time constant (sec)
tv 0.15 Controller time constant (sec)
kpv 2.10 Controller proportional gain
kiv 0.75 Controller integral gain
qmax 0.43 Total max Q command (pu on total MVA base of on-line WTGs)
qmin -0.43 Total min Q command (pu on total MVA base of on-line WTGs)
ratlim 9999. Q rate limit on integral path
qbupsp 0.0 Reference Q for switching shunt L off or shunt C on (MVAr)
qbdwsp 0.0 Reference Q for switching shunt C off or shunt L on (MVAr)
dband 0.0 Deadband for Verr
mscrtl 0.0 Threshold (MVArs) for switching C or L
ncap 0.0 Number of caps available (max. is 5)
cbus[5]_ 0.0 Bus numbers of the buses to which the caps are is connected
cid[5] 0.0 Bus ids of the buses to which the caps are is connected
nind 0.0 Number of reactors available (max. is 5)
lbus[5] 0.0 Bus numbers of the buses to which the reactors are is connected
lid[5] 0.0 Bus ids of the buses to which the reactors are is connected
stopit 0.0 Stop integrating when Qbase(t=0)/Qbase(t) > stopit
rcomp 0.0 Compensating R (pu-system base)
xcomp 0.0 Compensating X (pu-system base)
bcomp 0.0 Compensating shunt B (pu-system base)
Notes:
a) The generators controlled by this wndvar, and only those generators, must be in zone
wndfzn. The total Q order from wndvar is divided equally among these generators.
b) The bus specified by nb is the wind power plant interconnection bus at which the voltage is
measured. The regulated voltage at the far end of an equivalent pi-section line with
parameters, Rcomp, Xcomp, Bcomp. The effective current in this equivalent line is the
current in the line (secdd) with circuit id between buses nb and nt. If nt is omitted, the
voltage at bus nb is regulated.
d) The per unit base for Qmax, Qmin, and Qtotal is the total MVA rating of the on-line
generators in the wind power plant. Qtotal, modified by each Qbias, becomes the Q order
for each WTG. This has the effect of distributing the Q orders in proportion to the MVA
rating of each WTG.
e) Q orders are sent to the electrical controller (exwtge) of each WTG in the wind power plant
in genbc[k].vref (pu on the generator’s MVA base).
f) The voltage reference of the wndvar model can be changed from either an epcl program
using the model[i].setpoint1 variable, where i is the model index for the wndvar model, or
by changing the input parameter vmod.
g) The power factor regulation model requires bus nt to be specified, and the parameters
Rcomp, Xcomp, and Bcomp.
Record
Level Name Description
Block Diagram
Vhs
N WTGs on-line
Voltage Regulation Mode anti-windup
Vref + KiV
on Qmax/min
N Qi
Regulation s s2 (to N WTGs)
- Mode
Vhs max -V deadband Qmax= Bma+ N*Qimax
Vhs Selection + Qwtg net
Vhs ref error 1 - sTr/2 Kpv Qtotal + 1 1 - sTr/2
Ihs [A B] 1 + sTr/2 1 + sTv N 1 + sTr/2
+ +
Vhs min s0 s1
- Qshunt s3
Line Drop Compensation Qmin= Bmin+ N*Qimin
High Side Voltage Limiter
Kppf +
Qerr Kipf/s
+ QB up
- anti-windup
(MVAr)
Pc Qc reset
Y
QB down
Vhs (MVAr)
Ihs [A B] - Qerr2
If Qerr2 < 0
then
out X2
If X2 <
-MSC/Rtol
out = Qerr1 1 then
Line Drop else s disconnect
Compensation + reset s5 C or Switched
reset L or C?
integrator connect L
this->setpoint1
reset
(set at initialization)
Y
Vref or
Power Factor Regulation Mode + PFref
vmod
+ Rate lim
(inprat)
Ref. signal computation
Parameters:
EPCL Default
Variable Data Description
Notes:
a) n2, name2, and kv2 are the identifiers of the bus from which the bus frequency signal
is taken. If the bus frequency signal is taken from the bus at which the stabilizer is
located (bus n1) this second set of bus identifiers should be ommitted.
b) Parameters j through Vslow specify a general purpose stabilizer with 3 lead-lag phase
advance blocks that is compatible with the WSCC stabilizer model.
d) Parameters sw1 through Vk are for a voltage boost stabilizer signal. It is activated
either by manually setting sw1 to a non-zero value or by another model setting
sigval[0] to a non-zero value.
e) Tq must be greater than zero. Tqs, Tqv, Tq1, Tq2, Tq3, Tpq1, Tpq2, Tpq3 may be
zero.
f) If Vslow is greater than zero, the minimum output limit is (-Vslow). If Vslow is less
than or equal to zero, the minimum output limit is -Vsmax.
g) Vcutoff may be zero to disable the stabilizer cutout logic. This logic is active if
Vcutoff is greater than zero.
Output Channels:
Record
Level Name Description
Block Diagram:
Model Name: vwscc
Parameters:
EPCL Default
Variable Data Description
Notes:
b) N2, name2, kv2 are the identifiers of the bus from which the voltage input signal is
taken. If the voltage input signal is taken from the bus at which the unit is connected
these items should be omitted.
c) All per unit quantities are expressed with respect to SYSTEM MVA BASE.
d) This model requires that the SVD be represented in the load flow case by a
GENERATOR with any desired value of MBASE, with zero MW loading, and with
var limits corresponding to bpmax, bpmin, and the scheduled input signal voltage.
DO NOT enter an SVD in the load flow SVD tables when vwscc is to be used.
e) Vwscc can accept an auxiliary input signal from a stabilizing unit represented by a
model such as ieeest.
Output Channels:
Record
Level Name Description
Block Diagram:
Bmax
Vemax
Fast
Vbus 1 sTc A sTs 2 1 sTs 4 1
e sTd1 Ksvs Over Bsvs
1 sTs1 B sTs 3 1 sTs 5 1 sTs 6
S0 S1 S2 Ride S3
-Vemax
Bmin
Xc Vref Vscs
(from Stabilizer)
X
Model Name: wt1g
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model is for use in conjunction of wt1t and wt1p to represent a Type-1 wind
turbine generator.
d) The MVA base for the model parameters and outputs is the value entered on the
dynamic data file record, if present. Otherwise, the value in the load flow data
(gens[kgen].mbase) is used.
e) This model initializes itself to match the terminal power of the generator to the power
of the generator in the load flow case. The slip and reactive power consumption of
the machine are determined as needed to match the specified power. The reactive
power consumed by the generator will not normally match the reactive power
assigned to it in the load flow. The difference between the actual and load flow
values of reactive power is accommodated by a shunt capacitor or reactor at the
machine terminals whose admittance is determined by the model in the initialization.
f) Tripping the generator leaves the capacitor (reactor) connected to the system; that is,
the capacitor is on the system side of the machine's switch.
g) The output channel, It, includes only the generator current and not the capacitor
current. Qg is the net reactive power of the generator and capacitor.
h) The rotor transient time constant must be non-zero. For representing a "two-cage"
machine, the sub-transient time constant must also be non-zero.
j) The saturation factors, Se1 and Se2, may be zero if no saturation is to be represented.
k) Ra+jLpp overwrites the load flow values of Rsubtransient and Xsubtransient when
INIT command is executed.
l) The acceleration factor, Acc, may be omitted in most cases. If the message "Failed to
initialize wt1g" appears for a particular generator, it may be necessary to enter a value
for Acc. If the convergence of the starting iteration shows a sequence of slip values
that approach a final value slowly but smoothly Acc can be made greater than unity.
If the convergence of slip values towards a final result is erratic or oscillatory Acc
should be set to a value less than unity. If Acc is given a negative value the progress
of the initialization iteration for the generator is displayed at the terminal screen. If
Acc is positive or zero the display is suppressed. Setting Acc to zero has the same
effect as setting it to 1.
o) The generic Wind Turbine Generator Models (WT1, WT2, WT3, and WT4) were not
developed with the intent of being accurate for the study of frequency excursions.
Furthermore, the generic models were not designed to reproduce the behavior of
advanced power management features such as programmed inertia and "spinning
reserve" by spilling wind.
Record
Level Name Description
Block Diagram:
ψ dr 2 ω o SLIP
+ - ψ qr 2
ωo Rr2 1.
- L lr 2 + L lr 2
ψ dr 1 ω o SLIP
- ψ +
+ ω o R r1 qr 1
1. E " d ψ" q
L m " sat
- L lr1 + L lr1 + ωo
ψ mq
+ iqs
L m " sat
-
Se K sat 1. S e ( ψ m ) 1.
ψ 2 md ψ 2 mq L m " sat
K sat / L m 1. / L lr1 1. / L lr 2
ψm
ψ md - ids
L m " sat
+
ψ qr1 ω o SLIP
+ ω o R r1 + ψ dr1 +
1.
Lm " sat
- L + L lr1
lr1 + E " q ψ" d
Lm Ls Ll
ψ qr 2 ω o SLIP
L m ' 1. / ( 1. / L m 1. / L lr1 ) L' L l
+ + ψ L m " 1. / ( 1. / L m 1. / L lr1 1. / L lr 2 ) L" L l
ω o Rr2 dr 2 1.
T' o L lr1 L m / ( ω o R r1 L m ' ) ( L lr1 L m ) / ( ω o R r1 )
- L lr 2 + L lr 2
T" o L lr 2 L m ' / ( ω o R r 2 L m " ) ( L lr 2 L m ' ) / (ω o R r 2 )
Model Name: wt1p
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Wt1g, wt1t, and wt1p are “generic”, i.e., non-vendor specific models, for
representing Type-1 wind turbines (conventional directly connected induction
generator wind turbines).
b) Tpe, T1, and T2 may be zero.
c) To mitigate sustained increase in power output for a sustained drop in
frequency, Pimax should be set to the rated power on the machine MVA base.
Typically, Pimax = 0.9 on the machine MVA base at rated power output. For
instance if the generator is rated at 111 MVA and it is dispatched at 100 MW, Pimax
should be 0.9 (100/111); mwcap needs to be set accordingly. This baseline behavior
is consistent with the assumption that the wind turbine is operating at rated power
output, and wind speed remains constant.
d) The “fix bad data” option will do the following:
a. Set Tpe, T1, and T2 to a minimum of 4*delt.
Output Channels:
Record
Level Name Description
Block Diagram:
wref
speed
Kw pimax
From
Turbine
Model
Ki 1 1
Kp + pmech
s 1 + sT1 1 + sT2
To
s2 s3 Governor
s1 Model
pgen 1
Kdroop pimin
1 + sTpe
From
Generator
s0
Model
pref
Model Name: wt1t
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Wt1g, wt1t, and wt1p are “generic”, i.e., non-vendor specific models, for
representing Type-1 wind turbines (conventional directly connected induction
generator wind turbines).
b) If Htfrac is <= 0 or >=1, the one-mass model will be used. Otherwise, a two-mass
model will be used with the shaft stiffness calculated by the model to produce the
specified torsional resonant frequency, with the turbine Ht = Htfrac * H, and the
generator Hg = (1.-Htfrac)*H.
c) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used.
d) The “fix bad data” option will do the following:
a. Set H to a minimum of 4*delt.
Output Channels:
Record
Level Name Description
1 spd Generator speed, p.u. ()
2 wtur Turbine speed, p.u. in two-mass model (t)
Block Diagram:
From
Generator
Model
P gen
+
From Pmech T acc
. 1 1
Governor . s
2H
Model + s0
+ To
Generator
Model and
Governor
Model
Ht = Htfrac H
Hg = H - Ht
Hg
K = 2 (2 Freq1 ) H t
2
t
- +
From Pmech Tmech t
.
1 1
t
Governor . 2Ht s
Model + +
- s0
+
tg tg 1 tg
Dshaft s
K
- s1
+
From Pgen
. Telec 1 1 g
Generator . 2Hg g
- s
Model +
+ s2 +
g
Parameters:
EPCL Default
Variable Data Description
Notes:
Output Channels:
Record
Level Name Description
Block Diagram:
From
Pgen
Kp
Generator
1 + sTp
Model
Rmax
s1
-
Rext
Kpp + Kip / s
+ s0
To
Speed Rmin Generator
From Kw Model
Turbine 1 + sTw
Model
s2 P vs. slip curve
Model Name: wt2g
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model is for use in conjunction of wt2t, wt2e, and wt1p to represent a Type-2
wind turbine generator.
b) This model, wt2g, corresponds to the electrical component of model genwri; the
mechanical system is modeled in wt2t.
c) Tpo must be non-zero.
d) All reactances must be specified. Lp must be less than ls, and ll must be less than lp.
e) S1 and s12 are defined in Figure 3.10.2, and must be non-zero.
f) The initial electrical speed of the rotor, spdrot, must be specified.
g) The initial external rotor resistance is calculated to give the desired rotor speed and
power and is stored in genbc[k].efd. The excitation system model wt2e is used to
regulate this resistance.
h) The difference between the load flow Qgen value and the initial Q consumed by the
generator is supplied by a shunt capacitor that is included in the model.
i) The generic Wind Turbine Generator Models (WT1, WT2, WT3, and WT4) were not
developed with the intent of being accurate for the study of frequency excursions.
Furthermore, the generic models were not designed to reproduce the behavior of
advanced power management features such as programmed inertia and "spinning
reserve" by spilling wind.
j) The “fix bad data” option will do the following:
a. Set Lp to a maximum of 0.5 * Ls.
b. Set Ll to a maximum of 0.8 * Lp.
Output Channels:
Record
Level Name Description
d' fd
q' fq
eq s d' L' i d R a i q
e d s q' L' i q R a i d
'2 '2
' d q
S e f sat ( ' )
S d S e 'd
S q S e 'q
Model Name: wndtrb
Parameters:
EPCL Default
Variable Data Description
Notes:
a) This model is an approximate representation for a pitch controlled wind turbine, such
as the Vestas V80. Users should see Application Note 03-2 “Stability Modeling of
Vestas V80 Wind Turbine-Generator” for more information on this model.
b) Per unit parameters are on base of turbine MW capability. If no value is entered for
mwcap, the generator MVA base is used.
c) The speed reference is stored in genbc[k].pref and can be stepped in the edic table.
d) The wind power (pu on mwcap base) is stored in genbc[k].glimv and can be stepped
in the edic table.
e) If initial wind power, Pwo, is less than Pmech, it will be set equal to Pmech.
Output Channels:
Record
Level Name Description
Block Diagram:
w ref Pwind
BPRmax 90
– Kpch
+ Pmech
wr Kp (1+sT1) 1 1
cos X
1+sT2 s 1 + sTa
s1 s2 s0
BPRmax 0
Model Name: wt2p
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Wt2g, wt2e, wt2t, and wt2p are “generic”, i.e., non-vendor specific models, for
representing Type-2 wind turbines.
b) Tpe, T1, and T2 may be zero.
c) The “fix bad data” option will do the following:
a. Set Tpe, T1, and T2 to a minimum of 4*delt.
Output Channels:
Record
Level Name Description
wref
speed
Kw pimax
From
Turbine
Model
Ki 1 1
Kp + pmech
s 1 + sT1 1 + sT2
To
s2 s3 Governor
s1 Model
pgen 1
Kdroop pimin
1 + sTpe
From
Generator
s0
Model
pref
Model Name: wt1p_b
Parameters:
EPCL Default
Variable Data Description
Notes:
Output Channels:
Record
Level Name Description
Block Diagram:
1 rmax Pmech
Pmin 1 1 (pm)
SW
s 1 + sTo
Po
0 rmin s1 s2
Vt 1 Vtf T
T = f(Vtf)
1 + sT r
s0
t1
t2
t3
t4
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Wt2g, wt2e, wt2t, and wt2p are “generic”, i.e., non-vendor specific models, for
representing Type-2 wind turbines.
b) If Htfrac is <= 0 or >=1, the one-mass model will be used. Otherwise, a two-mass
model will be used with the shaft stiffness calculated by the model to produce the
specified torsional resonant frequency, with the turbine Ht = Htfrac * H, and the
generator Hg = (1.-Htfrac)*H.
c) Per unit parameters are on base of turbine MW capability. If no value is entered for
"mwcap", the generator MVA base is used
d) The “fix bad data” option will do the following:
a. Set H to a minimum of 4*delt.
Output Channels:
Record
Level Name Description
From
Generator
Model
P gen
+
From Pmech T acc
. 1 1
Governor . s
2H
Model + s0
+ To
Generator
Model and
Governor
Model
Ht = Htfrac H
Hg = H - Ht
Hg
K = 2 (2 Freq1 ) H t
2
t
- +
From Pmech Tmech t
.
1 1
t
Governor . 2Ht s
Model + +
- s0
+
tg tg 1 tg
Dshaft s
K
- s1
+
From Pgen
. Telec 1 1 g
Generator . 2Hg g
- s
Model +
+ s2 +
g
Parameters:
EPCL Default
Variable Data Description
varflg 0.0 0 = Constant Q cntl; 1 = Use Wind Plant reactive power cntrl;
-1 = Constant power factor control
vltflg 1.00 1 = Use closed loop terminal voltage control
0 = Bypass closed loop terminal voltage control
Tsp 60.0 Speed reference lag (sec)
Kptrq 3.00 Torque control proportional gain (p.u. P)
Kitrq 0.60 Torque control integral gain (p.u. P / sec)
Tpc 0.05 Power control lag (sec)
Pmax 1.12 Maximum power order (p.u.)
Pmin 0.04 Minimum power order (p.u.)
Pwrat 0.45 Power order rate limit (p.u./sec)
Ipmax 1.12 Maximum reactive current order, (p.u. of rated current)
Wpmin 0.69 Shaft speed at Pmin (p.u.)
Wp20 0.78 Shaft speed at 20% rated power (p.u.)
Wp40 0.98 Shaft speed at 40% rated power (p.u.)
Wp60 1.12 Shaft speed at 60% rated power (p.u.)
Pwp100 0.74 Minimum power for operating at wp100 speed (p.u.)
Wp100 1.20 Shaft speed at rated power (p.u.)
Kqi 0.10 Reactive control gain (p.u. V/p.u. Q sec)
Kqv 40.0 Terminal voltage control gain, (p.u. V/p.u. V)
Qmax 0.436 Maximum reactive power limit (p.u.)
Qmin -0.436 Minimum reactive power limit (p.u.)
Vmax 1.10 Maximum voltage limit (p.u.)
Vmin 0.90 Minimum voltage limit (p.u.)
Xiqmax 1.45 Terminal voltage regulator maximum limit (p.u.)
Xiqmin 0.50 Terminal voltage regulator minimum limit (p.u.)
Tp 0.05 Power factor control filter time constant (sec)
Xc 0.00 Compensating reactance for voltage control (p.u.)
Tr 0.02 Voltage transducer time constant (sec)
Fn 1.00 Fraction of WTG in Wind Plant that are on-line
Kiv 5.00 Integral gain (p.u. Q/p.u. V sec)
Kpv 18.0 Proportional gain (p.u. Q/p.u. V )
Tv 0.05 Proportional path time constant (sec)
Tc 0.15 Communication lag (sec)
Notes:
a) The Q order can come from: 1) a constant Qref set to match initial Q output of generator
(varflg = 0); 2) the Wind Plant Reactive Power Control Emulation part of this model (varflg =
1; 3) the Power Factor Regulator included in this model (varflg = -1). ); The Wind Plant
Reactive Power Control Emulation represents the effect of a centralized controller (e.g.
WindVAr System, Wind Farm Management System) by an equivalent control on each wind
turbine-generator model;
b) For the Wind Plant Reactive Power Control Emulation control, voltage at a remote bus (e.g.
point of interconnection) can be regulated by entering the bus identification as the third
(mon_i) bus ([<mon_i>] {<namei> <kvi>}) on the input record. If this bus identification is
not entered, the generator terminal bus voltage is regulated. The voltage reference, Vrfq, for
the WindVar emulator is stored in genbc[k].vref when varflg = 1.
c) Voltage at a remote point can be regulated by entering a non-zero value for Xc and a branch
identification using the third and fourth (mon_i, mon_j) buses on the input record together
with a circuit ID and section number ([<mon_i>] {<namei> <kvi>} [<mon_j>] {<namej>
<kvj>} <ck> <sec>). The regulated voltage will then be the voltage at the mon_i bus minus
jXc times the current in the identified branch. Usually, this branch will be the wind farm
substation transformer.
e) The time constant Tc reflects the delays associated with cycle time, communication (SCADA)
delay to the individual WTGs, and additional filtering in the WTG control.
g) The default Wind Plant Reactive Power Control Emulation gains, Kpv and Kiv, are
appropriate when the system short circuit capacity beyond the point of interconnection of the
wind farm is 5 or more times the MW capacity of the wind farm. For weaker systems, these
values should be reduced, e.g. for SCC = 2., Kpv = 13 and Kiv = 2 are recommended.
h) XIqmax and XIqmin should be set to the generator Xeq times the lagging and leading reactive
current short-time limits, respectively.
i) Parameters and power signals for the active power (torque) control are per unit of the specified
MWcap; parameters and reactive power signals for the reactive power control are per unit of
the generator MVA base.
j) For modeling an aggregation of several (N) WTGs, MWcap must equal N times the MW
rating of a single WTG.
k) The Wind Plant reactive power control would, in reality, be a single controller sending reactive
power commands to each of the WTGs in the Wind Plant. For simulation purposes, the same
effect is obtained by representing this device as part of each WTG’s controls. This remains
true whether the Wind Plant is represented by individual unit models, a single aggregate
model, or several aggregate models.
l) If a condition where not all of the WTGs are on-line is to be simulated, the following changes
must be made in the data:
a) Change MVAb of the WT3G model to the total MVA rating of the on-line WTGs
b) Change the MWcap of the WT3E model to the total MW capability of the on-line WTGs
c) Set parameter Fn in the WT3E model to the ratio of the total MVA rating of the on-line
WTGs to the total MVA rating of the entire Wind Plant. (This assumes that the actual
Wind Plant reactive power control recognizes how many WTGs are on-line and adjusts
it’s signals to the WTGs to produce the desired total plant reactive power. )
m) Pmax may need to be set to a value larger than 1. to permit transient overshoot of the power
order.
n) A typical curve of turbine speed setpoint vs. power output is shown below. The input to the
model for this curve is shown in the table below. This data is used to initialize the speed
setpoint.
1.2
1.0
0.8
Power (p.u.)
0.6
0.4
0.2
0.0
0.60 0.70 0.80 0.90 1.00 1.10 1.20 1.30
Turbine Speed Setpoint (p.u.)
Output Channels:
Record
Level Name Description
PFAref
tan
varfl
g
1
Qmax
Pgen -1
1 Qord
x
1+ sTp
Power Factor Qcmd
Regulator s6 0 Qmin
Qref
Qgen Vterm
XI Qmax vltflg
Vmax
Qcmd Vref 1 Eq cmd
Kqi / s Kqv / s
T
+ +
s1 o
s0 0 Generator /
Vmin XI Converter
Qmin Mode
l
(shaft speed)
Anti-windup on
Power Limits Pmax & dPmax /dt
Ipmax
Pgen ref +
err Pord
1 1 . Ip cmd
f ( Pgen ) Kptrq + K /s X 1+ sT pc .
1 + sTsp itrq To
Generator /
s7 s8 s9 Converter
Pmin & -dPmax/dt Model
To Pitch Vterm
To Pitch
Control Model Control Model
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Parameters and power signals are per unit on the MWcap specified for the wt3e
model.
b) Pset should normally be 1.0 unless it is controlled by a separate active power control
model, e.g. to provide governing response. It must always be greater than or equal to
the initial power output of the WTG.
Output Channels:
Record
Level Name Description
Block Diagram:
Anti-windup on PImax
Pitch Limits
rate limit (PIrate) Blade
From err cmd Pitch
1
Turbine +
Kpp + Kip / s
1+ sTPI
Model + s1 + To
s0
Pitch Control
+ PImin
Turbine
Model
ref
From Anti-windup on
Converter Pitch Limits
Control
Model K pc+ K ic / s
Pord
+ s2
Pitch
Compensation
Pset
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Parameters and power signals are per unit on the MWcap specified for the wt3e
model.
b) Initial wind speed (Vw) is used only if WTG is at rated power output and if Vw is
greater than rated wind speed. Otherwise this value is ignored, and wind speed is
initialized to give initial generator power output.
c) For operation above rated wind speed, the initial blade pitch in degrees is calculated
from the following formula:
0.75
Theta 2
1. Vw2
d) The formula for assumes that blade pitch is 0.0 at rated wind speed and Theta2 at
twice rated wind speed. Only positive values of pitch angle are assumed.
e) If Htfrac is <= 0 or >=1, the one-mass model will be used. Otherwise, a two-mass
model will be used with the shaft stiffness calculated by the model to produce the
specified torsional resonant frequency, with the turbine Ht = Htfrac * H, and the
generator Hg = (1.-Htfrac)*H.
f) The aerodynamic gain factor, Kaero, is based on the following simplification of the
turbine Cp curves:
P K aero
The default value of 0.007 for Kaero was determined by analysis of one set of Cp
curves for a 1.5 MW GE WTG. It is probably a reasonable value for other turbines if
specific data are not available.
Output Channels:
Record
Level Name Description
Block Diagram:
Blade
Pitch
Pmech
X Kaero
From +
Pitch Control +
Model
Pmo
From
Generator
Model
P gen
+
Pmech T acc
. 1 1
. s
2H
+ s0
+
To
Pitch Control
Model
and
Converter
Control
D
Model
Hg = H - Ht
2 Hg
K = 2 (2 Freq1 ) H t
H
t
Pmech
- +
Tmech t
.
1 1
t
. 2Ht s
+ +
- +
tg tg 1 tg
Dshaft s
K
-
+
Pgen
. Telec 1 1 g
. 2Hg g
- s
+
+ +
g
Parameters:
EPCL Default
Variable Data Description
a) This model is similar to ewtgfc, except that wt4e does not include a dynamic breaking
resistor.
b) The Q order can either come from a separate model via the genbc[k].vref signal (varflg = -
1) or from the WindCONTROL emulation part of this model (varflg = 1). The
WindCONTROL emulation represents the effect of a centralized WindCONTROL (aka
Wind Farm Management System) control by an equivalent control on each wind turbine-
generator model.
c) For the WindCONTROL emulator, voltage at a remote bus (e.g. system interface) can be
regulated by entering the bus identification as the second bus ([<nr>] {<namer> <kvr>}) on
the input record. Alternatively, generator terminal bus voltage can be regulated by omitting
the second bus identification. The voltage reference, Vrfq, for the WindCONTROL
emulator is stored in genbc[k].vref when varflg = 1.
d) Any of the time constants may be zero.
e) The time constant Tc reflects the delays associated with cycle time, communication
(SCADA) delay to the individual WTGs, and additional filtering in the WTG control.
f) Kqi can be tuned to obtain faster or slower response from the WindCONTROL. The time
constant of the Q control loop is approximately equal to the equivalent reactance looking
out from the generator terminals (= dV/dQ) divided by Kqi. The default value (0.1)
assumes a desired time constant of 0.5 sec. and an equivalent reactance of 0.05 p.u. (on
gen. MW base). This is appropriate for a single WTG connected to a stiff system and is
currently the recommended setting.
For constant Q regulation (varflg = pfaflg = 0), the value of Kqi should be set to a very
small number, e.g. 0.001) since this control is a slow reset.
Rapid power factor angle regulation (varflg = 0, pfaflg = 1) is currently used for European
units when WindCONTROL is not employed. Kqi may need to be set to a larger value for
these units.
g) The default WindCONTROL gains, Kpv and Kiv, are appropriate when the system short
circuit capacity beyond the point of interconnection of the wind farm is 5 or more times the
MW capacity of the wind farm. For weaker systems, these values should be reduced, e.g.
for SCC = 2., Kpv = 13 and Kiv = 2 are recommended.
h) The “fix bad data” option will do the following: If non-zero, set Tr, Tc, Tv, Tpwr to a
minimum of 4*delt
i) If imaxtd is absent in the model input data, it is set to its default value.
j) If viqlim is absent in the model input data, it is set to its default value.
k) A detailed description of the limit function is provided in Application Note 08-2.
l) The “fix bad data” option will do the following:
a. If 0< Tr < 4*delt, then set Tr = 4*delt
b. If 0< Tc < 4*delt, then set Tc = 4*delt
c. If 0< Tv < 4*delt, then set Tv = 4*delt
d. If 0< Tpwr < 4*delt, then set Tpwr = 4*delt
Output Channels:
Record
Level Name Description
Vrfq
(vref)
Qmax
Kiv/s
Vreg + + Qord
1 s4 1
1/fN
1+ sTr - + Qwv 1+ sTc
Kpv
s3 s5
1+ sTv Qmin varflg
WindCONTROL s2
Emulator
1
Qmax Qcmd
PFAref Qref
tan (vref) 0 -1 Qmin
(vref)
0
Pelec 1 1
x Qord
1+ sTp (vref)
s6
pfaflg
Qgen
Vmax Iqmx
- IQcmd
Qcmd Vref
Kqi / s Kvi / s
+ s0 + - s1 (efd)
Vterm Vmin Iqmn to Wind
Generator
Model
P,Q Priority Flag wt4g
Converter Current Limit
Ipmx IPcmd
Pord Porx .
.
(vsig)
(ladifd)
from Wind
to Wind
Turbine Model
Generator Model
wt4t Vterm wt4g
P,Q Priority Flag
(pqflag)
0 1
Vt
Iqmn Iqmx Iqmx Iqmn
Iqmxv
-1 -1
Iqmxv
Iqhl Minimum
Minimum Minimum
IPcmd
ImaxTD ImaxTD2 - IPcmd2
IQcmd
ImaxTD2 - IQcmd2
Iphl
Minimum Minimum
Ipmx Ipmx
Parameters:
EPCL Default
Variable Data Description
Lvplsw 1.0 Connect (1) / disconnect (0) Low Volt. Power Logic switch
Rrpwr 10.0 LVPL ramp rate limit, p.u.
Brkpt 0.9 LVPL characteristic breakpoint, p.u.
Zerox 0.4 LVPL characteristic zero crossing, p.u.
Lvpl1 1.22 LVPL breakpoint, p.u.
Volim 1.2 Voltage limit used in the high voltage reactive current
management function, p.u. See Note f.
Lvpnt1 0.8 High voltage point for low voltage active current
management function, p.u. See Note g.
Lvpnt0 0.4 Low voltage point for low voltage active current
management function, p.u. See Note g.
Iolim -1.3 Current limit in the high voltage reactive current
management function, p.u.
Khv 0.70 Acceleration factor used in the high voltage reactive
current management function.
Td 0.02 Time constant, sec.
Tfltr 0.02 Voltage measurement time constant, sec.
Notes:
a) The generator variables are in per unit on the generator MVA base. It is
recommended that the MVA base be specified in the dyd file by the entry mva=value
after the record level.
b) The generator/converter is a simplified representation of rather complex and very fast
controls. The state variables, s0 and s1, provide a proxy for the collective action of
the current and torque regulators.
c) The active and reactive current commands from the converter control model, wt4e,
are transferred via the variables genbc[k].efd and genbc[k].ladifd, respectively.
d) For modeling an aggregation of several (N) WTGs, the generator MVA base must
equal N times the MVA rating of a single WTG.
e) If Lvplsw is set to 0 the Low Voltage Power Logic is not used and the LVPL and
Rrpwr limits are not applied.
f) The 'High Voltage Reactive Current Management" block limits the reactive current
injected into the network equations such that the terminal voltage of the machine does
not exceed Volim of nominal, as long as the converter is within current limits.
g) The "Low Voltage Active Current Management" block is designed to capture the
characteristic of active power under very low voltage scenarios. This function is
designed to reduce active current in a linear fashion.
h) The model does not include Low/High voltage protection. This voltage protection
function should be implemented using the lhvrt model.
i) The generic Wind Turbine Generator Models (WT1, WT2, WT3, and WT4) were not
developed with the intent of being accurate for the study of frequency excursions.
Furthermore, the generic models were not designed to reproduce the behavior of
advanced power management features such as programmed inertia and "spinning
reserve" by spilling wind.
j) With the exception of Lvplsw, if the model parameters are not included in the
dynamics file, the model sets them to their default values.
Output Channels:
Record
Level Name Description
1 vt Terminal voltage, pu
1 pg Electrical power, MW
1 qg Reactive power, MVAr
2 ipcd Active current command (Ipcmd), p.u.
2 iqcd Reactive current command (Iqcmd), p.u.
2 ip Active current (Pgen/Vt), p.u.
2 iq Reactive current (Qgen/Vt), p.u.
2 iplv Final active current command after LVPL, p.u.
Block Diagram:
Vterm Vt >Volim
Vt <= Volim
0
+
Khv
-
0
Volim 1
Isorc
Vterm
IPIv
Gain
X
1
Vterm
Lvpnt0 Lvpnt1 V
Parameters:
EPCL Default
Variable Data Description
Notes:
Output Channels:
Record
Level Name Description
Pelec - Kip
+ Pord
1 piin piou
Kpp +
From Wind
1 + sTpw + s -
Generator Model s0
- s1
To wt4e
(vsig)
wt4g
(pelec) dPmn
sKf
1 + sTf
s2
Model Name: wt3g
Parameters:
EPCL Default
Variable Data Description
Notes:
a) The generator reactance and generator variables are in per unit on the generator MVA
base. It is recommended that the MVA base be specified in the dyd file by the entry
mva=value after the record level.
b) The generator/converter is a simplified representation of rather complex and very fast
controls. The state variables, s0 and s1, provide a proxy for the collective action of
the current and torque regulators.
c) The flux and active current commands from the converter control model, wt3e, are
transferred via the variables genbc[k].efd and genbc[k].ladifd, respectively.
d) For modeling an aggregation of several (N) WTGs, the generator MVA base must
equal N times the MVA rating of a single WTG.
e) If Lvplsw is set to 0 the Low Voltage Power Logic is not used and the LVPL and
Rrpwr limits are not applied.
f) The 'High Voltage Reactive Current Management" block limits the reactive current
injected into the network equations such that the terminal voltage of the machine does
not exceeds Volim of nominal, as long as the converter is within current limits.
g) The "Low Voltage Active Current Management" block is designed to capture the
characteristic of active power under very low voltage scenarios. This function is
designed to reduce active current in a linear fashion.
h) The model does not include Low/High voltage protection. This voltage protection
function should be implemented using the lhvrt model.
i) The model does not include Low/High frequency protection. This voltage protection
function should be implemented using the lhfrt model.
j) The generic Wind Turbine Generator Models (WT1, WT2, WT3, and WT4) were not
developed with the intent of being accurate for the study of frequency excursions.
Furthermore, the generic models were not designed to reproduce the behavior of
advanced power management features such as programmed inertia and "spinning
reserve" by spilling wind.
k) With the exception of Lpp, if the model parameters are not included in the dynamics
file, the model sets them to their default values.
Output Channels:
Record
Level Name Description
1 vt Terminal voltage, pu
1 pg Electrical power, MW
1 qg Reactive power, MVAr
2 ipcd Active current command (I”pcmd), p.u.
2 eqcd Flux command (E”qcmd), p.u.
2 ip Active current (Pgen/Vt), p.u.
2 Iq Reactive current (Qgen/Vt), p.u.
2 iplv Final active current command after LVPL, p.u.
Block Diagram:
I sorc
E q "cmd 1 -1 I Qlv
High Voltage
( efd ) 1 + Td s X" Reactive Current
From s0 Management
exwtge
LVPL& rrpwr
Low Voltage
I Pcmd 1 I Plv Active Current
( ladifd) 1 + Td s Management
From s1
exwtge
LVPL
Vterm
Lvpl1
Lvplsw = 0
LVPL V
1
Lvplsw = 1 1+ Tfltr s j X"
V s2
zerox brkpt
0
+
Khv
-
0
Volim 1
Isorc
Vterm
IPIv
Gain
X
1
Vterm
Lvpnt0 Lvpnt1 V
Parameters:
EPCL Default
Variable Data Description
Notes:
a) If mvab is less than or equal to zero, then the base used by model regc_a is also used
in wtga_a.
b) The aerodynamic gain factor, Kaero, is based on the following simplification of the
turbine Cp curves*:
P K aero
Record
Level Name Description
Block Diagram:
Pmech
Ka
From + To
wtgp_a + wtgt_a
Pmo
Model Name: wtgp_a
Inputs:
Parameters:
EPCL Default
Variable Data Description
mvab 0.0 MVA base (See Note a)
kiw 25.0 Pitch controller integral gain, pu/pu/sec
kpw 150.0 Pitch controller proportional gain, pu/pu
kic 30.0 Pitch compensation integral gain, pu/pu/sec
kpc 3.0 Pitch compensation proportional gain, pu/pu
kcc 0.0 Proportional gain, pu/pu
tpi 0.30 Pitch time, sec
pimax 27.0 Maximum pitch angle limit, deg
pimin 0.0 Minimum pitch angle limit, deg
piratmx 10.0 Maximum pitch angle rate, deg/sec
piratmn -10.0 Minimum pitch angle rate, deg/sec
Notes:
a) If mvab is less than or equal to zero, then the base used by model regc_a is also used in
wtgp_a.
b) The “fix bad data” option will do the following:
a. If 0 < Tpi < 4*delt, then set Tpi = 4*delt
Output Channels
Record
Level Name Description
Block Diagram:
From
wtgt_a pimax
t pimax
1 pimax & piratmax
K iw
s
+ +
ref s0 pi1o 1
_ pimin + 1+ sTpi
From
wtgq_a + + + s2 To
Kpw pimin wtga_a
pimin
& piratmin
K cc pimax
1 pimax
K ic
s
Pord +
s1 pi2o
From + _ pimin
reec_a +
K pc pimin
Pref0
Model Name: wtgq_a
Inputs:
Parameters:
EPCL Default
Variable Data Description
mvab 0.0 MVA base (See Note a)
kip 0.60 Integral gain, pu/pu/sec
kpp 3.00 Proportional gain, pu/pu
tp 0.05 Power measurement lag time constant, sec
twref 60. Speed reference time constant, sec
temax 1.20 Maximum torque, pu (see Note b)
temin 0.08 Minimum torque, pu
p1 0.20 User defined point, pu
spd1 0.69 User defined point, pu
p2 0.40 User defined point, pu
spd2 0.78 User defined point, pu
p3 0.60 User defined point, pu
spd3 0.98 User defined point, pu
p4 0.74 User defined point, pu
spd4 1.20 User defined point, pu
tflag 1.0 Flag to specify PI controller input
Notes:
a) If mvab is less than or equal to zero, then the base used by model regc_a is also used in
wtgq_a.
b) State s2 is frozen upon voltage dip. Voltage dip flag is set in model reec_a.
c) The “fix bad data” option will do the following:
a. If 0 < Tp < 4*delt, then set Tp = 4*delt
b. If 0 < Twref < 4*delt, then set Twref = 4*delt
Output Channels
Record
Level Name Description
g
From wtgt_a
Pg
+
1 Pe 1 wref Tflag
f(Pe) _ Temax
1+ sTp 1+ sTwref
s0 s1 0
piin K ip Tref
K pp +
s Pref
_ D
1 s2 To reec_a
N
Temin
N D
Pref0 +
From repc_a
State 2 is frozen when in voltage dip condition (Voltage_dip = 1) (See model reec_a) and it is reset per parameter
s2reset (Note d).
f(Pe) denotes a linear piece‐wise function:
Model Name: wtgt_a
Parameters:
EPCL Default
Variable Data Description
Notes:
a) If mvab is less than or equal to zero, then the base used by model regc_a is used in
wtgt_a.
b) If kshaft = 0, then a single mass model is used; otherwise, a two-mass model is used.
c) For a single-mass model, the total inertia, H, is computed as ht + hg.
d) For a single-mass model the output variables, t and g, are equal, i.e., t = g .
e) For a two-mass model ht and hg must be greater than zero.
f) If the speed reference (wref) is computed by the torque controller model, wtgq_a,
then wo is set to wref; otherwise, the value for wo entered in the parameter list is used
( wo > 0).
g) If the initial speed wo is not equal to one when wtgt_a is used in conjunction with
models regc_a and reec_a to represent a Type 4 WTG, then the invocation of wtgt_a
needs to precede the invocation of reec_a in the dynamic data file and the sort option
needs to be turned off.
Output Channels:
Record
Level Name Description
1 spdt Turbine speed, p.u. (t)
1 spdg Generator speed, p.u. (g)
2 tmec Mechanical torque, p.u. (Tmech)
2 tele Electrical torque, p.u. (Telec)
Block Diagram:
_ +
Pmech Tmech 1 t
. 1
.
From + _ 2Ht s + To wtgp_a
wtga_a s0 +
1
Dshaft Kshaft
s
+ _ s2
Pgen . Telec 1 1 g
. _ 2Hg s + To wtgq_a
+ s1 + & reec_a
2-Mass Model
P gen
+
Pmech T acc
. 1 1
. 2H s
From + +
wtga_a s0 To wtgq_a,
reec_a &
wtgp
Dshaft
1-Mass Model
Model Name: zdcb
Invocation: zdcb [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>} <ck>
<sec>:
Note: <id> should be set to “1”; only one zpott per line is
permitted.
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Zdcb represents relays at both ends of a line with Directional Comparison Blocking, as
shown in the diagram below.
- Zone 1 locus is the same for both ends and trips each end individually if the Zone 1 trip
conditions are satisfied for that end.
- Both ends are tripped if the Zone 2 conditions at one end are satisfied and zone 3
conditions at the other end are not satisfied.
b) The line may have any number of tap buses provided that connections to the tap buses are
purely radial. Any combination of loads, generators, shunts, and SVDs may be connected at
tap buses and at buses connected radially to tap buses. The location of the "far end" circuit
breaker is indicated by the bus number, nfar, in the parameter list. Bus <nt> must be the
first bus on the line towards the far end, as shown below, and bus nfar must be at the
location of the far end circuit breaker.
c) If notrip > 0, tripping is not performed but “signals” are set and output messages are
written to indicate pickup times, etc.
d) If notrip = 0, when zpott trips the line, it also trips generators, loads, and dynamic models
connected to buses that are radially connected to intermediate tap buses. along the line.
e) For shape = 0, the impedance locus will be a circle, lens, or tomato shape based on the
input parameters, as follows:
wt = 0. or wl = rf + rr Circle with diameter = rf + rr
wt < rf + rr Lens (intersection of 2 circles)
wt > rf + rr Tomato (union of 2 circles)
f) For shape = 1, the impedance locus will be a rectangle with width = wt. wr is the distance
between the line through the origin and right side of the rectangle.:
g) The signals in the first 6 output channels indicate the condition of the relay for each zone as
follows:
h) The signals in the next 3 output channels indicate the status of the circuit breaker timer, as
follows:
i) Messages are written to the terminal window, term.log file, and the dynamic log file as
follows:
1) When apparent Z enters locus for zone <n>:
At t = <time> ZDCB into zone <n> for <branch id>
2) When apparent Z has remained in zone <n> for T<n> and trip signal is sent :
At t = <time> ZDCB oper zone <n> for <branch id>
3) When apparent Z leaves zone <n> before T<n> and zone is reset :
At t = <time> ZDCB left zone <n> for <branch id>
4) When Tcb has elapsed after Zone 1 trip signal is sent:
At t = <time> ZDCB Zone 1 CB trip for <branch id>
5) When Tcb has elapsed after a Zone 2 trip signal is sent:
At t = <time> ZDCB Zone 2 trip both ends for <branch id>
j) The following messages relate to the line opening process when notrip <= 0:
1) At t = <time> ZDCB opened <branch id>
means the line segment at the first bus end has been opened, but the remaining
segments (if any) may still be fed from the other end.
2) At t = <time> ZDCB opened <branch id>
Far end already open - trip radial islands
means that all segments of the line and radial connections to tap buses are being
tripped.
3) Failed to find far end of line in ZDCB at <branch id>
means that the program had trouble locating the far end of a multi-segment line. This
usually means that one or more of the tap buses has elements that loop back into the
system, which is not permissible.
Output Channels:
Record
Level Name Description
Diagrams:
Diagrams defining input data for relay zones.
if nfar > 0 if nfar < 0
X pu X pu
r3, x3 z3
z2
r2, x2
zr2
r1, x1 z1
3
2
1
R pu R pu
zr1
zr3
nf nt nfar
Directional Comparison Blocking Logic
F3 F2
F1 X
X
X
F5
F4
X X
Z2A T2f
Open A-B
Z3B T3t Branch, isolating
all the buses
tapped into the
Z2B T2t
line - must be
radial
Z3A T3f
Zone 1 logic will open both ends of A-B for fault F1.
Zone 2 logic will open both ends of A-B for faults F4 and F5.
Line will not trip for faults F2 and F3
Model Name: zlin1
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Zlin1 protects a line by operating the circuit breaker at its "from" end, <nf>. The line
may have any number of tap buses provided that connections to the tap buses are
purely radial. Any combination of loads, generators, shunts, and SVDs may be
connected at tap buses and at buses connected radially to tap buses. If a line is
protected by distance relays at both ends, zlin1 must be applied twice, once for each
end.
The location of the "far end" circuit breaker is indicated by the bus number, nfar, in
the parameter list. Bus <nt> must be the first bus on the line towards the far end, as
shown below, and bus nfar must be at the location of the far end circuit breaker.
Zlin1 trips only the circuit breaker at the "from" end. However, zlin1 checks whether
the "to" end of the line is already open. If so, it trips all intermediate line segments.
b) If notrip > 0, tripping is not performed but “signals” are set and output messages are
written to indicate pickup times, etc.
c) If notrip = 0, when zlin1 trips the line, it also trips generators, loads, and dynamic
models connected to buses that are radially connected to intermediate tap buses. along
the line.
d) Zlin1 calculates the apparent impedance as seen looking into the line at its "from"
end. The current seen by zlin1 is the total current flowing into the line at its from
terminal, including current flowing into charging capacitance and any line-connected
shunts.
e) If the nfar bus number is entered with a postive sign, the forward end of the circle
diameters are specified by their per unit values of r and x. If the nfar bus number is
entered with a negative sign, the forward end of the circle diameters are specified by
their angles in degrees with respect to the R axis and their per unit magnitudes of z.
This is illustrated by the figures below.
f) The circles may be offset from the origin by entering non-zero values for zr1, zr2,
and/or zr3. The value of zr must be entered as negative for reach behind the bus, i.e.
below the origin; positive for a value above the origin.
g) The signals in the first three output channels indicate the condition of the relay for
each zone as follows:
h) Signalx in the fourth output channel indicates the status of the circuit breaker timer,
as follows:
i) Messages are written to the terminal window, term.log file, and the dynamic log file
as follows:
1) When apparent Z enters circle for zone <n>:
At t = <time> ZLIN1 into z<n> for <branch id>
2) When apparent Z has remained in zone <n> for T<n> and trip signal is sent :
At t = <time> ZLIN1 oper z<n> for <branch id>
3) When apparent Z leaves zone <n> before T<n> and zone is reset :
At t = <time> ZLIN1 left z<n> for <branch id>
4) When Tcb<n> has elapsed after trip signal is sent:
At t = <time> ZLIN1 cb trip for <branch id>
j) The following messages relate to the line opening process when notrip <= 0:
1) At t = <time> ZLIN1 opened <branch id>
means the line segment at the from bus end has been opened, but the remaining
segments (if any) may still be fed from the other end.
2) At t = <time> ZLIN1 opened <branch id>
Far end already open - trip radial islands
means that all segments of the line and radial connections to tap buses are being
tripped.
3) Failed to find far end of line in ZLIN1 at <branch id>
means that the program had trouble locating the far end of a multi-segment line.
This usually means that one or more of the tap buses has elements that loop back
into the system. If this is the case, the ZLIN2 model must be used.
Output Channels:
Record
Level Name Description
Block Diagram:
if nfar > 0 if nfar < 0
X pu X pu
r3, x3 z3
z2
r2, x2
zr2
r1, x1 z1
3
2
1
R pu R pu
zr1
zr3
nf nt nfar
Model Name: zlin2
Parameters:
EPCL Default
Variable Data Description
Zlin2 is identical to zlin1 (see zlin1 description) except for the following differences:
a) Additional tap buses between <nt> and nfar must be listed in order as the input
parameters ntap[0], ntap[1], etc.
b) Connections to tap buses may loop back to other buses. (Zlin1 requires that
connections to tap buses be radial).
Output Channels:
Record
Level Name Description
Block Diagram:
if nfar > 0 if nfar < 0
X pu X pu
r3, x3 z3
z2
r2, x2
zr2
r1, x1 z1
3
2
1
R pu R pu
zr1
zr3
ntap[0] ntap[1]
nf nt nfar
Model Name: zlinw
Prerequisites: None
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Zlinw scans all (see g.) of the (type 0) lines in the system, whose "from" bus base kV is
between kVmin and kVmax, and assumes the following impedance relay characteristic for
the zones of protection:
If no values are input for dz1 and/or dz2, 0.85 and 1.25, respectively, are used.
b) If lines with series capacitors are to be included, scline must be set to a non-zero value. Any
line section with a reactance secdd[].zsecx less than 0.0 is assumed to be a series capacitor.
c) If trip is set to 0 (default value), no tripping of lines takes place, but messages are written
when a relay would have operated. If trip is non-zero, the line is tripped (at both ends) after a
delay of Tcb seconds. If Trc is non-zero, the line is reclosed after a delay of Trc seconds.
d) The apparent impedance (Zapp) is computed at both ends of each line. If Zapp of either end
enters the Zone 1 circle, tripping is initiated instantaneously. If Zapp at either end stays inside
the Zone 2 circle continuously for Td2 seconds, tripping is initiated. However for lines with
base kV above 220kV, tripping will be initiated instantaneously if the Zapps of both ends
enter Zone 2 (assumes communication channels for transfer trip).
e) The current seen by zlinw is the total current flowing into the line, including current flowing
into charging capacitance and any line-connected shunts.
f) The invocation of zlinw must include a bus number and an id. Any bus in the system can be
used. The id identifies this particular zlinw. More than one zlinw model can be included, e.g.
for different ranges of voltages with different characteristics.
g) Lines may be excluded from zlinw by setting the parameter secdd[].stn to –1 for those lines.
h) Messages are written to the terminal window, term.log file, and the dynamic log file as
follows: (First bus in <branch id> indicates the end of the line at which relay is acting.)
1) Zone 1 is instantaneous so this message is issued as soon as zone 1 is entered:
At t = <time> ZLINW INITIATED TRIPPING in Zone 1 for line: <branch id>
2) When apparent Z enters circle for zone 2:
At t = <time> ZLINW BEGAN TIMING in Zone 2 for line:<branch id>
2) When apparent Z has remained in zone 2 for Td2 and trip signal is sent :
At t = <time> ZLINW INITIATED TRIPPING in Zone 2 for line: <branch id>
3) When apparent Z leaves zone 2 before Td2 and zone is reset :
At t = <time> ZLINW RESET - for line: <branch id>
i) The following messages relate to the line opening process when trip != 0:
1) When Tcb has elapsed after trip signal is sent and line is opened:
At t = <time> ZLINW OPENED line: <branch id>
2) When Trc has elapsed after tripping and line is reclosed:
At t = <time> ZLINW RECLOSED line: <branch id>
Output Channels:
Record
Level Name Description
none
Block Diagram:
X
Zone 2
Zone 1
75°
R
Model Name: zmetr
Invocation: zmetr [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>} <ck>
<sec>:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) nf identifies the "from" end of the branch; nt identifies the "to" end. The branch
must be identified in zmetr with the metered end first, regardless of its direction
in the load flow line or transformer table.
b) Tf may be zero.
c) zmetr calculates the apparent impedance as seen looking into the line at its
"from" end
zapp = vfrom/ifrom
d) The current seen by zmetr is the total current flowing into the line at its from
terminal, including current flowing into charging capacitance and any line-
connected shunts.
e) If the direction flag, Df, is non-zero the impedance is measured at the from end
looking forward in the from-to (nf-nt) direction. If Df is zero impedance is
measured at the from end looking backwards with respect to the metered branch.
f) If the branch does not exist output channels are assigned by zmetr but no signals
are recorded in them.
Output Channels:
Record
Level Name Description
Block Diagram:
Voltage Apparent
Impedance (p.u.)
1
1 sTf
Current
Model Name: zmetra
Prerequisites:
Inputs:
Invocation: zmetra:
Parameters:
EPCL Default
Variable Data Description
Notes:
a) zmetra calculates the apparent impedance for all lines in the specified area, zone,
or entire system with base kV between the specified minimum kV and maximum
kB.
b) zmetra calculates the apparent impedance as seen looking into each line at its
"from" end and looking into each line at its “to” end.
d) The current seen by zmetr is the total current flowing into the line l, including
current flowing into charging capacitance and any line-connected shunts.
Output Channels:
Record
Level Name Description
These 4 channels are repeated for each line. Each channel will have the line identification of the
corresponding line.
Model Name: zonedef
Inputs: none
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Zonedef is a Data Management Model for input of zone definition data used by the
distrelay model. The computational portions of this model are included in the distrelay
model. Zonedef is only used for data input and editing. The model can be editing from the
edmd or edds tables.
b) Separate instances of zonedef must be present for each zone of protection that is to be
included in the distrelay model, up to 4 zones. The zone for each zonedef is indicated by
its model id.
c) The zonedef parameters define the shape and direction of a zone of protection with up to
three shapes that can be combined with logical operators AND, OR, and NOT. If only
shape 1 is used, the parameters from oper1 to the end can be omitted; if only ahapes 1 and
2 are used, the parameters from oper2 to the end can be omitted.
d) The input parameters for the zonedef reach include: Wt (Width total impedance), Rr
(reverse reach impedance), Operator (logical), ZoneAng / Maximum Torque Angle
(angle), ZoneDir (forward or reverse direction), and InternalAng (shape). The shape of
the zone can be specified in the shape parameter. There is a shape parameter input for each
zone. The options include the following:
1. Shape = 0 means circle, lens or tomato and this is further defined by the InterAng
parameter. InterAng is defined as the following: greater than 90˚ then it is a lens shape,
equal to 90˚ then it is a circle, less than 90˚ then it is a tomato shape
2. Shape = 1 means quadrilateral (rectangle). The Rb parameter specifies the intercepts of
the R axis for the sides of the quadrilateral shape.
3. Shape = 2 means Reactance Distance which is a horizontal line.
4. Shape = 3 means an Impedance Distance which is a unit circle centered at the origin.
e) Zone reach input values should be in primary Ohms. Wt is not a preferred protection term
so here is the equivalent protection terms:
Forward Reach = ZnF ~ Wt – Rr
Reverse Reach = ZnR ~ Rr
Diagrams:
Model Name: zpott
Parameters:
EPCL Default
Variable Data Description
Notes:
a) Zpott represents relays at both ends of a line with Permissive Overreaching Transfer Trip:
- Zone 1 locus is the same for both ends and trips each end individually if the Zone 1 trip
conditions are satisfied for that end.
- Both ends of the line are tripped if the Zone 2 trip conditions are satisfied for BOTH
ends.
b) The line may have any number of tap buses provided that connections to the tap buses are
purely radial. Any combination of loads, generators, shunts, and SVDs may be connected at
tap buses and at buses connected radially to tap buses. The location of the "far end" circuit
breaker is indicated by the bus number, nfar, in the parameter list. Bus <nt> must be the
first bus on the line towards the far end, as shown below,.
c) If notrip > 0, tripping is not performed but “signals” are set and output messages are
written to indicate pickup times, etc.
d) If notrip = 0, when zpott trips the line, it also trips generators, loads, and dynamic models
connected to buses that are radially connected to intermediate tap buses. along the line.
e) For shape = 0, the impedance locus will be a circle, lens, or tomato shape based on the
input parameters, as follows:
wt = 0. or wl = rf + rr Circle with diameter = rf + rr
wt < rf - rr Lens (intersection of 2 circles)
wt > rf - rr Tomato (union of 2 circles)
f) For shape = 1, the impedance locus will be a rectangle with width = wt. wr is the distance
between the line through the origin and right side of the rectangle.:
g) The signals in the first four output channels indicate the condition of the relay for each
zone as follows:
h) The signals in the other output channels indicate the status of the circuit breaker timers, as
follows:
j) The following messages relate to the line opening process when notrip <= 0:
1) At t = <time> ZPOTT opened <branch id>
means the line segment at the first bus end has been opened, but the remaining
segments (if any) may still be fed from the other end.
2) At t = <time> ZPOTT opened <branch id>
Far end already open - trip radial islands
means that all segments of the line and radial connections to tap buses are being
tripped.
3) Failed to find far end of line in ZPOTT at <branch id>
means that the program had trouble locating the far end of a multi-segment line. This
usually means that one or more of the tap buses has elements that loop back into the
system, which is not permissible.
Output Channels:
Record
Level Name Description
Diagrams:
Diagrams defining input data for relay zones.
Rectangle Circle
X pu X pu
rf
rf
wr
wt
R pu
R pu
rr rr
Lens Tomato
X pu
X pu
rf rf
wt R pu
rr R pu
rr wt
nf nt nfar
Permissive Overreaching Transfer Trip Logic
F1
F3 X F2
X X
F4
X
Z2A T2f
Open A-B Branch,
isolating all the buses
tapped into the line -
must be radial (zqlin1
Z2B T2t conditions)
Zone 1 logic will open both ends of A-B for fault F1.
Zone 2 logic will open both ends of A-B for fault F4.
Line will not trip for faults F2 and F3
PJL 2/2/09
Model Name: zqlin1
Parameters:
EPCL Default
Variable Data Description
a) Zqlin1 protects a line by operating the circuit breaker at its "from" end, <nf>. The line
may have any number of tap buses provided that connections to the tap buses are purely
radial. Any combination of loads, generators, shunts, and SVDs may be connected at tap
buses and at buses connected radially to tap buses. If a line is protected by distance relays
at both ends, zqlin1 must be applied twice, once for each end.
The location of the "far end" circuit breaker is indicated by the bus number, nfar, in the
parameter list. Bus <nt> must be the first bus on the line towards the far end, as shown
below, and bus nfar must be at the location of the far end circuit breaker.
Zqlin1 trips only the circuit breaker at the "from" end. However, zqlin1 checks whether
the "to" end of the line is already open. If so, it trips all intermediate line segments.
b) If notrip > 0, tripping is not performed but “signals” are set and output messages are
written to indicate pickup times, etc.
c) If notrip = 0, when zqlin1 trips the line, it also trips generators, loads, and dynamic models
connected to buses that are radially connected to intermediate tap buses along the line.
d) Zqlin1 calculates the apparent impedance as seen looking into the line at its "from" end.
The current seen by zqlin1 is the total current flowing into the line at its “from” terminal,
including current flowing into charging capacitance and any line-connected shunts.
e) For shape = 0, the impedance locus will be a circle, lens, or tomato shape based on the
input parameters, as follows:
NB: zqlin1 uses the opposite convention for Rr than zlin1 does.
f) For shape = 1, the impedance locus will be a rectangle with width = Wt. Wr is the
distance between the line through the origin and right side of the rectangle.
g) The signals in the first three output channels indicate the condition of the relay for each
zone as follows:
i) Messages are written to the terminal window, term.log file, and the dynamic log file as
follows:
1) When apparent Z enters locus for zone <n>:
At t = <time> ZQLIN1 into z<n> for <branch id>
2) When apparent Z has remained in zone <n> for T<n> and trip signal is sent :
At t = <time> ZQLIN1 oper z<n> for <branch id>
3) When apparent Z leaves zone <n> before T<n> and zone is reset :
At t = <time> ZQLIN1 left z<n> for <branch id>
4) When Tcb<n> has elapsed after trip signal is sent:
At t = <time> ZQLIN1 cb trip for <branch id>
j) The following messages relate to the line opening process when notrip <= 0:
1) At t = <time> ZQLIN1 opened <branch id>
means the line segment at the from bus end has been opened, but the remaining
segments (if any) may still be fed from the other end.
2) At t = <time> ZQLIN1 opened <branch id>
Far end already open - trip radial islands
means that all segments of the line and radial connections to tap buses are being
tripped.
3) Failed to find far end of line in ZQLIN1 at <branch id>
means that the program had trouble locating the far end of a multi-segment line. This
usually means that one or more of the tap buses has elements that loop back into the
system. If this is the case, the ZQLIN2 model must be used.
Output Channels:
Record
Level Name Description
rf
rf
wr
wt
R pu
R pu
rr rr
Lens Tomato
X pu
X pu
rf rf
wt R pu
rr R pu
rr wt
nf nt nfar
Model Name: zqlin2
Parameters:
EPCL Default
Variable Data Description
notrip 0.0 0: trip, >0: do not trip, <0: trip line, but do not trip isolated islands
nfar 0.0 Far end bus number
tcb 0.0 Circuit breaker operating time, sec.
shape1 0.0 Zone 1 shape (0 circle/lens/tomato; 1 rectangle).
ang1 0.0 Zone 1 angle, deg.
rf1 0.0 Zone 1 forward reach, p.u. Z
rr1 0.0 Zone 1 reverse reach, p.u. Z (positive is “behind” the bus)
wt1 0.0 Zone 1 total width, p.u. Z
wr1 0.0 Zone 1 right width, p.u. Z (for rectangle only)
T1 0.0 Zone 1 pickup time setting, sec.
shape2 0.0 Zone 2 shape (0 circle/lens/tomato; 1 rectangle).
ang2 0.0 Zone 2 angle, deg.
rf2 0.0 Zone 2 forward reach, p.u. Z
rr2 0.0 Zone 2 reverse reach, p.u. Z (positive is “behind” the bus)
wtl2 0.0 Zone 2 total width, p.u. Z
wr2 0.0 Zone 2 right width, p.u. Z (for rectangle only)
T2 0.0 Zone 2 pickup time setting, sec.
shape3 0.0 Zone 3 shape (0 circle/lens/tomato; 1 rectangle).
ang3 0.0 Zone 3 angle, deg.
rf3 0.0 Zone 3 forward reach, p.u. Z
rr3 0.0 Zone 3 reverse reach, p.u. Z (positive is “behind” the bus)
wtl3 0.0 Zone 3 total width, p.u. Z
wr3 0.0 Zone 3 right width, p.u. Z (for rectangle only)
T3 0.0 Zone 3 pickup time setting, sec.
ntap[7] 0.0 Up to 7 intermediate tap bus numbers
Notes:
Zqlin2 is identical to zqlin1 (see zqlin1 description) except for the following differences:
a) Additional tap buses between <nt> and nfar must be listed in order as the input
parameters ntap[0], ntap[1], etc.
b) Connections to tap buses may loop back to other buses. (Zqlin1 requires that
connections to tap buses be radial).
NB: zqlin2 uses the opposite convention for Rr than zlin2 does.
Output Channels:
Record
Level Name Description
Rectangle Circle
X pu X pu
rf
rf
wr
wt
R pu
R pu
rr rr
Lens Tomato
X pu
X pu
rf rf
wt R pu
rr R pu
rr wt
ntap[0] ntap[1]
nf nt nfar
Command: acca (from Other:econ:Area Total)
EPCL @return = acca()
Arguments: <none>
Function: Accumulate area and group totals
Prerequisites: Valid solved load flow and economic data in working case
The acca command accumulates the following area totals
total capacity sum of all generators pmax
load sum of all on-line loads within each area
commited capacity sum of all on-line generators
non-dispatchable gen. sum of all on-line non-dispatchable generators
net interchange sum of all tie line mw flow
required generation (area load + net int. + losses ) * (1 + reserve margin) +
MWreserve
dispatchable generation required - non-dispatchable generation
acca then accumulates the group totals as the sum of the areas within that group.
Command: actr (from Other:lina:AC two party transfer limit)
EPCL: @return = actr("<report>","<input>")
Arguments: <report> Name of file or printer to receive output
<input> Name of file specifying transaction and contingencies
Function: Single transaction transfer limit analysis function,
actr
Prerequisites: Valid solved load flow data in working case
Principles
The actr and dctr commands execute the actr function with complete a.c. solutions and d.c. analogy, respectively.
actr estimates the limitations imposed by the transmission network on a transfer of power across the system. The
transfer of power is implemented by increasing the output of one or more generators in one part of the system and
reducing output of generators in another. A typical transfer is an increase in generation by a "selling" utility and a
corresponding reduction in generation by a buyer. There are no restrictions on the number of generators involved in
the transaction, or on their locations.
actr implements a proposed transaction and monitors the lines and transformers in designated areas to estimate its
effects on transmission loadings. actr estimates the limiting magnitude of the proposed transaction as shown in Figure
actr -1.
A base case load flow solution is made and the flow in each monitored branch is recorded. A test case load flow is
then established by increasing and decreasing the output of appropriate generators to implement a transaction of small
magnitude. The test case is solved and the flows in monitored branches are compared with those from the base case to
determine the generation shift distribution factor, Dg, for each monitored branch. The maximum permissible transfer
with respect to each monitored branch is then calculated as
TMWlimit = TMWbase +(BMWrating – BMWbase) / Dg
where
TMW is total power transferred from primary to opposing area;
BMW is branch power flow.
The list of limiting transfer for the monitored branches is sorted in order of increasing transfer and written to the output
file.
ACTR makes this calculation for the system in the as-received condition and then again for each contingency specified
in the input file. Each contingency involves a new base load flow and a new test load flow. Each contingency may
involve changes in the statuses of up to ten lines and/or transformers.
Modeling and Assumptions
D.C. Analogy Solutions
When invoked with the dctr command DCTR uses power/angle (d.c. analogy) network solutions ignoring reactive
power flow and voltage variation. In this case distribution factors for both transmission lines and transformers are
obtained as
change in real power flow in MW / real power transferred in MW
All projections in the d.c. analogy mode are made on the basis that the limiting estimated real power flow is equal to
the rated MVA of the line or transformer.
A.C. Power Flow Solutions
When invoked with the actr command ACTR uses complete a.c. load flow solutions. In this case distribution factors
are obtained for transmission lines as
rated MVA * change in the line current in per unit / real power transferred in MW
and for transformers as
change in transformer loading in MVA / real power transferred in MW
The projections to limiting loading are then made on the basis of rated current for transmission lines and of rated MVA
for transformers. The rated current of each transmission line is obtained from the MVA rating contained in the
database as
rated current = ( rated MVA x 1e6 ) / ( 1.732 x (from bus base voltage) )
Accuracy of Projections
Both the d.c. analogy and the a.c. solution versions of the transfer analysis are approximations. The d.c. analogy
version completely ignores the distinction between rated current and rated MVA and can show a line as "not limiting"
with respect to real power, even though it could be severely overloaded by reactive power flow. The a.c. solution
version recognizes reactive power flow and uses line current as the rating basis for transmission lines but is,
nevertheless, an approximation because its projection to a transfer limit cannot recognize the generator VAR limits, tap
changer limits, and other nonlinear control actions that may come into effect as loadings are shifted. Further, the a.c.
analysis is still a linear projection even in the absence of control limits and hence it cannot account for the inherent
curvature of the voltage versus load and reactive power versus load characteristics of the a.c. transmission system.
Accordingly, critical transfer limits indicated by actr should be checked by explicit load flow solutions at the indicated
transfer levels.
Input File
The input file for actr must contain records as follows:
Base case record optional
Setting keyword record mandatory
setting records optional
Monitor area records at least 1
Monitor interface records optional
interface branch records optional
Radial branch monitor record optional
Shift keyword record mandatory
redispatch records at least 1
Contingency keyword record optional
status change records at least 1 and less than 11
Contingency keyword record optional
status change records
.
.
repeat for desired number of contingencies
End keyword record mandatory
The individual records are described below.
Base Case Record
base <"name">
This record instructs actr to retrieve the named powerflow file. If it is not present actr works on the case presently in
the powerflow file; if it is present the case in the named powerflow file completely overwrites the working case and
becomes the base case for actr.
Setting Keyword Record
setting
This record must be present and may be followed by zero or more of the following setting records.
rate <number>
This record instructs ACTR to use the specified rating. 1 < number < 4. If this record is absent ACTR uses rating 1.
Base Cont Description
tap <0 or 1> <0 or 1> tap ratio adjustment
phas <0 or 1> <0 or 1> phase shifter adjustment
svd <0 or 1> <0 or 1> static VAR device adjustment
bvl <number> <number> iterations before application of VAR
limits
area <0 or 1> <0 or 1> area interchange control
These records set the load flow solution control options. If present each of these records changes the control option in
the working case and the new option is used in all contingency base and test case solutions made by actr in its a.c.
solution mode. These option settings are not used by DCTR in its d.c. analogy mode.
maxrep <number>
This record instructs actr to report transfer limits for the first <number> limiting lines and/or transformers. If it is
absent the report for each system condition covers up to 50 branches.
minmw <value1>
maxmw <value2>
These records instruct actr not to report transfer limits outside the range value1 < limit < value2. The default values
are value1 = -999 and value2 = 9999. These records override the defaults if present.
cutoffpdf <value>
This record instruct ACTR not to report outage distribution factors (pdf) below <value>. The default value is =
0.These records override the defaults if present.
kvmin <value>
This record instructs ACTR not to report transfer limits below <value> kv level. In the case of transformers, if either
bus is below the kvmin then that record isn’t displayed. The default value is 0.0. This record overrides the default if
present.
Monitor Area Records
monitor area <number>
Each monitor area record instructs actr to monitor branches in the area specified by <number>.
Monitor Interface Records
monitor interface <name> <rating>
Each monitor interface record defines an interface and instructs actr to monitor the sum of the flows on the branches
of the interface. <name> is the interface name of from 1 to 32 characters. The name may not include blanks. <rating>
is the interface rating in megawatts. Each monitor interface record must be followed by at least one and a maximum of
100 interface branch records with the format
<from> <to> <ck>
where
<from> is the "from" bus of the branch
<to> is the "to" bus of the branch
<ck> is the circuit identifier of the branch
Direction is important; each branch of the interface must be defined so that its <from> <to> direction is the "forward"
direction across the interface.
Radial Branch Monitor Record
radial
This record instructs actr to monitor and estimate transfer limits for radial branches (such as load transformers and
generator step up transformers). Radial branches are monitored only if this record is present.
Shift Keyword Record, Re-dispatch Records
shift
This record must be present and must be followed by one or more of the following re-dispatch records which specify
the test shift of generation for the transfer limit projections.
hist <"name">
This record instructs actr to establish the load flow case with shifted generation by retrieving the named load flow
powerflow file. If present, this record must be the first of the records following the Shift Keyword Record.
gen <value> <busno> <name> <bkv> <"id">
This record instructs ACTR to change the real power output of the specified generator by <value> megawatts. The
generator is specified by <busno> and <id> if PSLF is in its "bus numbers" mode, and by <name> <bkv> and <id> if
PSLF is in "bus names" mode. <Number>, <name>, and <bkv> may be an ! if not used.
swing <value> <number>
This record instructs actr to change the real power output of the area swing generator of area <number> by <value>
megawatts.
area <value> <number>
zone <value> <number>
These records instruct actr to change the total generation in the specified area or zone by <value> megawatts. The
change is applied by changing the output of each in-service generator in the area or zone in proportion to its real
power output in the base case. Maximum power values in the generator data records are not recognized.
epcl <"name">
This record instructs actr to execute the named epcl program to implement a shift of generation. The epcl program
may alter the output of any generator or the value of any load but must not change the status of any transmission line
or transformer.
delta <value>
This record informs actr of the value of the test generation shift. If present, it should be the last of the records
following the Shift Keyword Record. If this record is absent, actr calculates the test generation shift as the sum of
positive generation adjustments specified on gen, area, zone, and swing records. This record MUST be present if an
epcl or hist case record ist present. <value> must be greater than zero.
End Keyword Record
end
This record must follow the last contingency status change record.
Contingency Keyword Records, Status Change Records
cont <"title">
Any number of contingencies may be specified. The stanza of records specifying each contingency starts with a
Contingency Keyword Record. The <title> of the contingency may contain up to 30 characters. Each Contingency
Keyword Record must be followed by at least one and not more than ten status change records.
line <from> <to> <"id> <st>
This record sets the status of the specified transmission line to <st> where <st> may be 0 for opened or 1 for closed.
<from> and <to> are the bus numbers specifying the line. (Bus names are not presently recognized in this record.)
tran <from> <to> <"id"> <st>
This record sets the status of the specified transformer to <st> where <st> is 0 for opened or 1 for closed. <from> and
<to> are the bus numbers specifying the transformer. (Names are not recognized at present in this record.)
gen <from> <0> <"id"> <st>
load <from> <0> <"id"> <st>
shunt <from> <0> <"id"> <st>
svd <from> <0> <"id"> <st>
This record sets the status of the specified element (gen, load, shunt or svd) to <st> where <st> is 0 for opened or 1 for
closed.
bus <number> ! ! !
This record opens all branches connected to the specified bus, sets the type of the bus to zero, and forces reordering of
the system. <number> is the number of the bus. (Names are not recognized in the present version of PSLF - the 3 !'s
must be present.)
Use of ACTR
The test transfer used in actr must be reasonably large in relation to the mismatch tolerance that load flow solutions of
the particular system can achieve. Typically, a 50 MW test transfer is suitable for systems involving lines at 230 KV
and above, while a 10 MW transfer may be more suitable for lower voltage systems. The test transfer should not cause
any generator to be loaded beyond its normal operating range by a large amount, but a test that loads generators above
rating by 10 to 15 percent is quite acceptable.
The sum of the generation adjustments that make up the test generation shift should normally be very close to zero, but
actr does not require this sum to be zero. Any difference between the sum of the generation shifts and zero is taken
up by the system swing bus which, by default, is a party in all "transactions". Note that the a.c. solution version of
actr will incur changes in system losses in its test solutions and that incremental losses will be made up by the system
swing if not taken care of by area swing buses.
The area interchange control option of the load flow solution may be used to hold areas that are not participants in the
proposed power transfer to their prescribed net interchange schedules. Note though that area interchange control must
not be allowed to override the test generation shift imposed by the Generation Re-dispatch records. Accordingly, the
area interchange control tolerance bands of areas containing re-dispatched generators should normally be set to a large
value (say 9999) in load flow cases that are to be used with actr, if area interchange control is to be used. The
following example file, aa.xfr, sets up a run of actr.
The transfer limit study considers a transaction in which a power is sold from the generator at bus 111 which is in area
2, to meet load in area 3. Generation in area 3 is to be reduced by reducing output on the area swing generator. The
amount of power sold is to be such that there is no overload in area 1 or 2. Overloads in other areas are not a concern
in this study, though they may exist. Radial branches in areas 1 and 2 are to be monitored in this run, though the
"radial" record will be left out more often than not since reports for radial branches are often a nuisance.
The epcl program test.p serves to set all area interchange tolerances to a large value
for @i = 0 to casepar[0].narea -1
area[@i].pnettol = 9999
next
The report from actr in its a.c. solution option is shown in Figure actr -2.The most limiting branch in the base case
was the line from bus 11 to bus 13. Its loading in the base case was 499.87 MW and 100.5 MVAR, which results in a
current of 1307.7 Amps. The 20 MW test transfer changes the flow in this branch to (510 +j 105) MVA and the
current to 1388.6 Amps. The line rating is 600 MVA, which corresponds to 1506 Amps. The 20 MW test transfer
therefore changes the line loading from (1308/1506)=.868 pu of rating to (1339/1506)=.889 pu of rating. The
allowable change in the line loading is from .868 pu to 1.0 pu of rating; this corresponds to a transfer of
20*(1.0 - .868)/(.889 - .868) = 126 MW.
The first line of the report for the "No Contingencies" case shows this limit, and subsequent lines show the
corresponding limiting transfers for other lines in order of increasing allowable power transfer.
Figure actr -2
Command: parm
EPCL: @return=parm("<argument>")
Prerequisites: None
parm displays the parameters used by PSLF in solving the network equations and in its display functions. Each of
these parameters can be changed by entering a new value in the parm display screen.
parm displays a screen of parameter values and waits for the user to make changes. Go from one value to another
with the arrow keys and type new values until the display shows the required values. Do not hit the CR key until you
are satisfied with all values shown on the display.
· To accept all values on the display, hit CR
· To reject new values and leave all parameters at their original values, hit ESC
All PSLF parameters are set to default values read in through the javaini.p. The solution, checking, fault and
annotation parameters are saved in history files and retrieved by getf. Hence, if no history file has been retrieved, they
have their default values until changed via parm. If a history file is retrieved with getf, all parameters take the values
that were in effect when the history file was saved with savf.
The PSLF parameters are as follows:
solve Control of load flow solution process
display Graphics, Screen, Edit, and Font options
check Select ratings and voltage limits for "exception" reports
fault Specify fault impedances and fault location for sc functions
dynam Controls dynamic simulation process
annot Select quantities to be displayed in reports and units used
select Specify subsystem to be reported on
path Specify directories to be used in file selections
sel_edit Specify subsytem to edit on
sel_tabr Presort tabr tables trate, flow and mism
save Saves changes to the javaini.p file See Chapter 6.3 for more
details.
vlv Voltage level parameters
print Printer parmeters
SOLUTION PARAMETERS
Full Newton solution max iterations (solpar[0].itnrmx)
Maximum number of iterations allowed in SOLN. This should normally be less than 20 to prevent unduly long
running time on difficult cases. It is often desirable to set it to a smaller value, for example, if you expect that a case
will either solve in a small number of iterations or require your attention.
Iterations before var limits (solpar[0].itnrvl)
Newton load flow solutions of the type used in SOLN do not tolerate bad reactive power mismatches very well, and
will often diverge in the early stages of solution of a base case or a severe change case if generators cannot meet their
voltage schedules. Accordingly, SOLN will execute this number of iterations without applying generator “var” limits
and only then will apply them.
This parameter should be zero if you are making a change case solution where the initial voltages and phase angles are
thought to be a reasonable approximation to the final result.
This parameter is usually set to 2, 3 or 4 when making a base case solution with no prior experience regarding the
behavior of the iteration with respect to “var” limits.
A solution ignoring generator “var” limits can be obtained by giving this parameter a value greater than the Full
Newton solution max iterations parameter.
Enable transformer TCUL action (solpar[0].tapadj)
This flag (parameter) enables/disables transformer adjustments.
If this checkbox is not selected (i.e. this parameter is 0), no transformer taps or phase shifters will be adjusted,
regardless of transformer type codes.
If this checkbox is selected (this parameter is 1), and if the solution is converged such that the largest voltage change
in the previous iteration was less than the Voltage change for tap adjustment parameter value, transformer taps and
phase shifts are adjusted in accordance with transformer type codes.
Switched shunt control options (solpar[0].swsadj)
This flag (parameter) enables/disables adjustment of switched shunts. If the option “Disable control” is selected (i.e.
parameter is zero), all switched shunts are held at fixed admittance equal to their initial values, regardless of the control
mode flags of individual switched shunts.
If the option “Enable all types” is selected (i.e. parameter is 1), switched shunts are adjusted in accordance with their
individual types to control voltage.
If the option “Disable types 3 & 4” is selected (i.e. parameter is 2), all switched shunts except type 3 and 4 will be
adjusted in accordance with their types to control voltage.
Enable phase shifter adjustment (solpar[0].psadj)
This flag (parameter) enables/disables adjustment of phase shifter angles to control real power flow. If this checkbox
is not selected (i.e. parameter is 0), no action is taken, regardless of transformer type codes.
If this checkbox is selected (i.e. parameter is 1), phase shifter angles are adjusted to control real power flow in
accordance with transformer type codes and control limits.
Phase shifter options (solpar[0].psopt)
This option can be used to specify whether the phase shifters are to be treated as discrete devices (i.e. capable of
changing their taps in discrete steps based upon its step size) or if they are to be treated as continuous devices (i.e.
capable of changing their taps continuously without considering the step size). The phase shifter taps would be adjusted
within the control tap limits in both the options.
Enable D.C. converter control (solpar[0].dccadj)
This flag (parameter) enables/disables adjustment of dc converter control variables.
Enable area interchange adjustment (solpar[0].aiadj)
This flag (parameter) enables/disables area adjustment. If this checkbox is selected (i.e. parameter is zero), no area
interchange adjustment is done.
If this checkbox is selected (i.e. parameter is 1), and if the solution is converged such that the largest real power
mismatch is less than the Mismatch threshold for Area Interchange Adjustment parameter value, the outputs of area
swing generators are adjusted to bring area net interchanges to their scheduled values. If there are more than one area
swing generators at a given area swing bus, their outputs would be adjusted in proportion to the prf values specified
for the generators.
There are two area interchange solution options available in PSLF, which are described in the Area interchange option
section below.
Area interchange option (solpar[0].aiopt)
Classical area interchange option: In this solution option, the net interchange is controlled by adjusting the outputs of
the area swing generators to bring the area net interchanges to their scheduled value. The net interchanges are
determined based upon Area designation of buses and not based upon area designation of devices on buses.
Area interchange with loads: In this solution option, the net interchange is controlled by adjusting the outputs of the
area swing generators to bring the area net interchanges to their scheduled value. If the load on terminal bus belongs to
a different area than the area of the terminal bus, the interchange will account for the load in the Load’s area rather
than the area of the terminal bus. The solution will be different from the Classical Area Interchange option if the case
has loads, which has different area than the area of its terminal bus.
Acceleration for var limits (solpar[0].acnrvl)
The Newton solutions in SOLN and SOLD use this parameter in applying “var” limits. When a load flow case solves
nicely without “var” limits but diverges with “var” limits applied, it may be advantageous to reduce this parameter
below its normal value of 0.8. The adjustment of this parameter has a relatively weak effect on the behavior of most
load flow cases, however, and adjustment of it should be viewed as a last resort measure.
This parameter should never be greater than unity.
Voltage change threshold for tap adjustment (solpar[0].vltap)
The Newton solutions, SOLN and SOLD, will adjust transformer taps and phase shifts, only if the largest change of
bus voltage magnitude in the last iteration was smaller than this value.
This value should normally be slightly smaller than the voltage change that a single step of transformer ratio would be
expected to produce.
Mismatch threshold for area interchange adjustment (solpar[0].aithr)
The Newton Solutions, SOLN and SOLD, will adjust area swing generator real power outputs only when the largest
real power mismatch in the last iteration is smaller than this value.
Jumper threshold impedance (solpar[0].zeps)
PSLF load flow solutions recognize that branches of very small or zero impedance should have the effect of making
the two buses that they join behave as one node in the network solution. The solution commands, SOLN, SOLD,
SOLG, check the impedance of each branch and, if it is less than this threshold value, treat the two buses involved as
one for solution purposes. Once the solution is completed the two buses are again recognized individually, and the
flow in the low impedance branch is deduced from the flow balance around its two end-point buses.
This parameter refers to branch series impedance in per unit on system MVA base.
A typical value for this parameter is 0.0005 pu In some load flow cases where the majority of branch impedances are
small, it may be desirable to set this parameter to a smaller value. Similarly if a case contains mainly high impedances
it may be advisable to use a higher value.
It is quite common to find load flow data sets created by older load flow programs in which a standard small default
branch impedance has been used to indicate that branches are switches or "jumpers". If this "small" impedance is very
small (0.0001 is quite common), a Jumper Threshold Impedance of 0.0005 will cause them to be treated as zero
impedance branches. However, if the data set has given trouble in an older program, the "small" impedance value may
have been raised as high as 0.001 pu. In such cases, it would be necessary to set the PSLF Jumper Threshold
Impedance to 0.001 pu to force PSLF to treat the "jumper" branches as zero impedance branches, and this may cause
some short lines whose true impedance is small to be treated, also, as jumpers.
Judicious adjustment of this Jumper Threshold Impedance is important. To avoid problems of interpretation,
adjustment of it should be preceded by an examination of branch impedances with edit. (edit, <line>; go to the
reactance column, and use F1 to select branches with reactance <= an appropriate value.)
Newton solution tolerance, MVA (solpar[0].tolnr)
The Newton solutions, SOLN and SOLD, consider a load flow case to be solved if the largest bus real power mismatch
and the largest bus reactive power mismatch are less than this tolerance.
Maximum number of var limit bounces (solpar[0].maxvarb)
Number of times a generator can operate outside it's “var” limit range before the generator MVARs are locked at
either the high or low limit based on the last limit it exceeded. The default value is 3.
Maximum number of tap limit bounce (solpar[0].maxtapb)
Number of times a transformer can operate outside it's tap range before the transformer tap is locked at either the high
or low tap limit based on the last tap limit it exceeded. The default value is 3.
Maximum voltage deviation for generator changes, pu (solpar[0].maxvdv)
This parameter will prevent generator(s) from adjusting the actual bus voltage if it's more than this parameter value
from the schedule bus voltage. The default voltage deviation is .15 per unit voltage.
This parameter is used to stop large voltage swings from one iteration to the next.
Tolerance for var limits, MVA (solpar[0].vlthr)
(not shown in the panel)
Regardless of the number of iterations that have been executed and regardless of the Iterations Before var Limits
parameter, SOLN and SOLD do not apply var limits at the bus until its reactive power mismatch is smaller than this
value. The value of this parameter can have a quite strong effect on the number of iterations needed to achieve a good
load flow solution. Its optimum value can best be determined by experimentation.
Minimum number of iterations (solpar[0].itmin)
(not shown in the panel)
PSLF load flow solutions will execute this number of iterations, regardless of whether the problem is solved with
respect to the mismatch tolerance. This parameter should normally be zero when PSLF is being operated in interactive
mode. It is advantageous to set it to 1, 2 or 3 when doing repetitive solutions with small variations from one to the
next where it is possible for the solution to appear to be solved, because a small variation does not push mismatch
outside the tolerance band, even though execution of iterations would cause measurable changes in voltages and phase
angles. A non-zero value of this parameter is particularly useful when PSLF is used in batch mode and the results of
each case cannot be examined as it is obtained.
Load model minimum voltage (not shown in the panel) (solpar[0].vlbrk)
PSLF will treat constant (P,Q) and constant current loads as having these characteristics as long as the bus voltage is
above this value. If the voltage falls below this value, PSLF reduces the load current progressively and smoothly to
give zero load current at zero bus voltage. This is currently only applicable to dynamics and not used in power flow.
Minimum VAR limit band width (solpar[0].vlband)
If the difference between the maximum and minimum var capacities at a bus (the sums of upper and lower var limits
of generators connected at the bus) is less than this value, the bus is treated as having a fixed var source equal to the
middle value of the small var range. This parameter should normally have a small value, approximately 0.5 Mvar.
The fixing of var delivery as specified by this parameter prevents small generators from attempting, futilely, to control
the voltage of a strong system. This situation arises, for example, when an equivalent or incomplete system model
places a small hydro or co-generation unit directly on a 115 kV or 69 kV bus.
Note that this value should be reduced to an appropriately smaller than normal value when studying details of a lower
voltage or weak part of a system where small generators can, indeed, exert significant control over the system voltage.
System Base MVA (casepar[0].sbase)
System base MVA for per unit calculations.
DC loss flag (solpar[0].dclossflag)
DC loss flag =0 ignore losses or =1 to include loss when doing a dc load flow.
Angle estimation before ac solution flag (solpar[0].angest)
If this flag is set to 1, angle estimation will be performed before ac solution to assist ac solution convergence. Angle
estimation will be provided for the buses with initial zero phase angles or for the pair of buses at the two terminals of a
closing line. For full discussion on angle estimation, refer to application note on angle estimation - apn021
HVDC solution tolerance (A) (solpar[0].tolhvdc)
Mismatch tolerance in amps for solution of HVDC networks. If the solution fails to converge to this tolerance within
50 iterations (solpar[0].itmxhvdc), a message is written showing the maximum mismatch. If this mismatch is
acceptable, the solution tolerance can be increased to avoid the message. Smaller mismatches may be achievable by
increasing the values of small dc line resistances. The dc solution generally converges within a few iterations, so
increasing solpar[0].itmxhvdc will not usually improve convergence. However, it can be increased by epcl, e.g. in the
javaini.p file, if necessary.
DISPLAY PARAMETERS
Save options on exit (dispar[0].auto_sav_flg)
= 0 Do not save automatically
= 1 Save to pslfwork.sav in the working folder on exit
= 2 Save after successful solve to solnwork.sav in the working folder
= 3 Save to solnwork.sav on successful solve and pslfwork.sav on exit (files are saved
in the working folder)
Use bus names in reading draw file? (dispar[0].nameflag)
Controls reading of bus identifiers:
nameflag = 0 Bus numbers are used – check box is not selected
nameflag = 1 Bus names are used – check box is selected
Edit log file options (dispar[0].editlogflg)
= 0 Does not write an edit log file. Radio button Don’t write is selected (default)
=1 Opens a file whose name is in the edit log file field and writes all subsequent edit
functions to it. Radio button labeled Write is selected
=2 Appends to the edit log. This file can be used to update multiple save cases with
the same changes by running it through the EPCL processor. Radio button Append
is selected
Note: Please note that an editlog file created by PSLF 16 versions does not work with PSLF 17 and later series.
Print solution output to terminal? (dispar[0].noprint)
=0 Will print the iteration log during a soln execution. Check box is selected
=1 Will skip printing the iteration log (used to speed up overall execution of soln)
Check box is not selected
Overload direction? (dispar[0].overload_dir)
=0 Radio button “from bus” is selected. Shows line as overloaded if overloaded at the
from bus end
=1 Radion button “either” is selected. Shows line as overloaded if overloaded at either
end
Bus name lengrh? (casepar[0].longname)
=0 Will print/display bus names in a 8 character format. Radio button 8 Characters is
selected
=1 Will print/display bus names in a 12 character format (default). Radio button 12
Characters is selected
CHECKING PARAMETERS
Color by: (dispar[0].color_flag_mode)
= 0 Nominal voltage
=1 Volt/load limits
This flag controls the use of color on one-line diagrams. When it is 0, color is used to distinguish between the
different nominal voltage levels on the system. Components at various voltage levels are shown in color as follows:
0- 99 kV blue
100-199 kV green
200-299 kV red
300-399 kV yellow
400-499 kV white
These colors may be altered by changing the pslf.vlv file. In this file each voltage may be assigned its own color.
When this flag is 1, color is used to identify overloaded lines/transformers, and buses whose voltages are outside of the
band specified by VH1 and VL1 as described below. Buses with voltage below VL1 are shown in red and buses with
voltage above VH1 are shown in yellow. Buses whose voltage is within this band are shown in color white.
Voltage checking : Upper per unit limit 1 (pu) (casepar[0].vcheck_h1)
Lower per unit limit 1 (pu) (casepar[0].vcheck_l1)
Upper per unit limit 2 (pu) (casepar[0].vcheck_h2)
Lower per unit limit 2 (pu) (casepar[0].vcheck_l2)
These four limits are used in checking bus voltages for high and low value. The bands defined by the two pairs of
limits are independent of one another. The first pair of limits VH1, VL1 is used by the voltage limit checking function
of the one-line diagram system; both pairs are used by the tabular voltage limit checking command, VOLT.
Use line rating number: (casepar[0].rating_no)
This entry selects one of the eight ratings, numbered 1 thru 8 of each component, to be used in limit checking in the
one-line diagram overload checking function and in the overload checking command, RATE.
For example, if a 345 kV line and a 69/230 kV transformer have ratings in MVA, as follows
Rating Rating Rating Rating
1 2 3 4 etc.
Line 600 650 675 700
Xfmr 60 80 90 95
Specifying rating 1 and a rating limit fraction of 0.8 will set the limiting line current at
(0.8x650E6)/(1.732x345E3)=870 Amps
and the transformer MVA limit at
0.8x80 = 64MVA
The transmission line will be shown as overloaded if its current exceeds 870 Amps, the transformer if its MVA load
exceeds 64.
Overload percentage (casepar[0].rating_pct)
This parameter defines the loading limit to be used for each component of the system as a percentage of one of its
ratings.
FAULT PARAMETERS
Faulted bus (fltpar[0].monbus[0])
Faulted bus for SCSF command.
Open conductor/fractional line fault
Check box to activate an open conductor or fractional line
fault. The following three controls will activate only if check
box is selected
Far end bus (fltpar[0].jfault)
Far end bus in case the fault is a line fault or an open conductor fault.as indicated in the check box
Fraction from faulted bus
In case user selects an open conductor or fractional line fault t this field needs to be populated with the fractional
location of the fault.
Circui ID
The circuit identifier of the line or open conductor fault. Needed to be filled in case it is an Open Conductor or
Fractional Line fault.
Monitored bus (fltpar[0].monbus[1-9])
Monitored buses for SCSF command.
Fault type (fltpar[0].typereq)
This list indicates the type of fault, whether it is two lines, one line, line-line-ground, three phase, line-line, lige-
ground or all.
The flag values are:
= 0 All
= 1 Line to ground
= 2 Line to line
= 3 Three phase
= 4 Line-Line-Ground
= 5 One line out
= 6 Two lines out
Simulate each branch out fault at near end (fltpar[0].br_outflg)
= 0 No – Check box is not selected
= 1 Yes – Check box is selected
This flag is used to report all branches with fault at near end or omit them.
Simulate each branch out fault at far end (fltpar[0].br_endflg)
= 0 No – Check box is not selected
= 1 Yes – Check box is selected
This flag is used to report all branches with fault at far end or omit them.
Current display (L-G) (fltpar[0].izeroflag)
= 0 show 3Io
= 1 show Ia
The selection controls display of current by SCSF in L-G fault cases.
Fault resistance (Ohms) (fltpar[0].rfault)
Fault reactance (Ohms) (fltpar[0].xfault)
Positive sequence impedance in ohms of the fault path in 3-phase faults
Grounding resistance (Ohms) (fltpar[0].rgrnd)
Grounding reactance (Ohms) (fltpar[0].xgrnd)
Impedance in ohms of fault path to ground in L-G faults
Save short circuit data (casepar[0].seqdata)
This parameter enables/disables the saving of short circuit data in a load flow history file.
· If it is zero, or the check box is not selected, only the load flow data is saved.
· If it is 1, or the check box is selected, the short circuit data is appended to the load flow case.
Current time (s) (dypar[0].time)
Current time is the value of the independent variable, time, in the currently active dynamic simulation. It is shown
mainly for information and can not be edited.
The dynamics initialization sets present time to - 2*delt.
Next pause time (s) (dypar[0].tpause)
The value of the independent variable, time, at which the simulation is next to pause for communication with the user.
Steps to file (dypar[0].nplot)
Steps to display (dypar[0].nscreen)
These parameters control the frequency with which dynamic simulation output channels are written to the plotted
output file and to the display screen. The simulation results are sent to the plot file and to the screen at intervals as
illustrated above for the case where
<steps to file> =3
<steps to display> =5
In this case printing channel output to file occurs every third step, at steps 0, 3, 6, 9, 12, 15, 18 and printing to the
display occurs every ninth plotting output at time steps 0, 15, 30, and so on.
If the simulation reaches a pause point at a step that is not a scheduled plot or print point it automatically writes the
channels to the plot file and screen to show conditions at tpause-, and resets the plotting and printing step counters
Monitor convergence (dypar[0].conv_mon)
The check box controls the display of the progress of network solution. The value of the parameter is set to zero when
the check box is not selected and one in case it is selected.
This parameter may be set to a number, greater than zero, to cause the progress of the network solutions to be
displayed on the terminal screen. Setting its value to n cause the convergence progress to be displayed for every n-th
network solution.
Number of channels to display (dypar[0].print_all_ch)
This parameter indicates the number of channels reported to the screen during a simulation.
Maximum solution iterations (dypar[0].itfymx)
The maximum number of iterations to be used in each network solution in the dynamic simulation. If the iteration
count reaches this value a warning message is sent to the terminal screen and to the solution log, the iterative solution
is stopped, and the dynamic simulation proceeds as if the network solution has converged.
Solution tolerance (MVA) (dypar[0].tolfy)
The tolerance on per unit voltage change used to determine when the network solutions of the dynamic simulation are
converged. The normal value of this tolerance is 0.00001 per unit.
Solution acceleration factor (dypar[0].accfy)
The acceleration factor applied to the voltage changes in the network solutions. This acceleration factor should
normally be 1.0, and should not be greater than 1.0. It may be advantageous to set it to a value as low as 0.3 in certain
difficult network conditions or when some special dynamic models are used. (The descriptions of such models suggest
values for this parameter).
Number of channels to file (dypar[0].nchan)
The number of channels to be sent to the output destinations in this simulation run. This parameter is set to the total
number of channels in use when the simulation is initialized.
Faulted bus (dypar[0].faultloc)
The identifier, name or number, of the bus at which a bus fault is to be applied.
Fault status (dypar[0].faulton)
The status of the bus fault; 0 = off, 1 = on.
Line fault status
When check box is selected, fields related to line fault below are activated.
Faulted line, from bus (dypar[0].fault_from)
The identifier, name or number, of the "from" end of a line on which a fault is located. CAUTION: The from_to bus
number must be in the same order as in the SECDD table.
Faulted line, to bus (dypar[0].fault_to)
The identifier, name or number, of the "to" end of the line on which a fault is located.
Faulted line, circuit Id (dypar[0].fault_ck)
The two character circuit identifier of the faulted line.
Faulted line, section (dypar[0].fault_sec)
The section number on which the line fault is located.
Fault position (pu) (dypar[0].fault_position)
The location of the line fault as a fraction of its distance down the faulted section, starting at the end identified by the
<Faulted line, from bus> parameter.
Time – fault on (s) (dypar[0].t_fault_on)
The time, in seconds from t = 0, at which the line fault is applied.
Time – clear fault at from bus (s) (dypar[0].t_from_clear)
The time, in seconds from t = 0, at which the faulted line is opened at the end identified by the <Faulted Line From
Bus> parameter.
Time – clear fault at to bus (s) (dypar[0].t_to_clear)
The time, in seconds from t = 0, at which the faulted line is opened at the end identified by the <Faulted line, to bus>
parameter.
Loads during fault (dypar[0].zload_flton)
If simulating either a bus or a line fault the user can chose to treat the loads as constant impedance loads (0) or as
recorded in the dynamics data (1).
Fault resistanc R (pu) (dypar[0].faultr)
The fault resistance in per unit of the base impedance for the base voltage of the bus or line at which it is located.
Fault reactance X (pu) (dypar[0].faultx)
The fault reactance in per unit of the base impedance for the base voltage of the bus or line at which it is located.
Reorder (normally 0) (dypar[0].order)
The status of executing the order command; 0 = off, 1 = on.
When the check box is selected the parameter is set to 1, otherwise it is 0.
Factorize(normally 1) (dypar[0].fact)
The status of refactorizing the admittance matrix; 0 = off, 1 = on.
When the check box is selected the parameter is set to 1, otherwise it is 0.
Compile in-run EPCL (dypar[0].comp_inrun)
This flag indicates whether or not to re-compile the in-run EPCL program after each pause time. Do not select the
check b ox (set the flag to 0) to not re-compile and therefore "remember" all EPCL variables from one time interval to
the next. Select the check box (set the parameter to 1) to initialize all variables to 0 at each time step.
ANNOTATION PARAMETERS
LF Scan/Draw 0 = MW/MVAR 1 = MW/% 2 = MVA/Amp 3 = R/X
4 = MVA/% 5 = amps/% 6 = rate mva/amps (dispar[0].br_annote)
Loadflow Scan/Draw (fltpar[0].typereq)
This flag controls the quantities shown for branches in the displays drawn by olgr and scan as follows:
Flag Quantities
0 MW/MVAR
1 MW/MVA as percentage of effective rating
2 MVA/Amps
3 R/X
4 MVA/MVA as percentage of effective rating
5 amps/MVA as percentage of effective rating
6 rating MVA/amps( from bus as reference )
The effective rating is a percentage of one of the eight designated ratings of the branch as specified by the Checking
Parameters panel.
R and X are shown in per unit on system MVA base for lines and in per unit on transformer MVA base for
transformers.
Short curcuit fault type (fltpar[0].typereq)
The type of fault to be applied and calculated by the scsf command
0 both 3-phase and L-G faults
1 L-G fault
3 3-phase
Short circuit current (A) (fltpar[0].i_flag)
The conditions for which currents are to be shown on graphic displays of short circuit results.
0 display current for both 3-phase fault and L-G fault
1 display current for L-G fault only
2 display current for L-L fault only (not implemented)
3 display current for 3-phase fault only
Short circuit I units (fltpar[0].i_units)
The units to be used in displaying fault currents in graphic displays
0 Amps/per unit
1 Amps/ohms
These options are not used when the Short circuit current flag is 0 (in that case the display shows amps/amps).
Ohms gives the impedance into which the current appears to be flowing. This impedance is given by:
(voltage at point where current is measured)
------------------------------------------------
current flowing into branch at measurement point
This impedance is the positive sequence value when three phase fault current is shown, the a-phase value when the a-
phase L-G fault current is shown, and the zero sequence value when 3Io is shown for an L-G fault.
Short circuit voltage (V) (fltpar[0].v_flag)
The conditions for which voltages are to be shown on graphic displays of short circuit results.
0 display voltages for both 3-phase fault and L-G
fault
1 display voltage for L-G fault only
2 display voltage for L-L fault only (not implemented)
3 display voltage for 3-phase fault only
Short circuit V units (fltpar[0].v_units)
The units in which voltages are to be shown in graphic displays of short circuit results.
0 kV
1 per unit
3 both kV and per unit
SELECTION PARAMETERS
EPCL names EPCL names
starting ending
Area selbeg[].arnum selend[].arnum
Zone selbeg[].zonum selend[].zonum
kV selbeg[].kv selend[].kv
Bus selbeg[].busid selend[].busid
The select panel lets you pre-set a selection profile that will be used in subsequent selective output operations. The
preset selection made through parm may be accepted without change (by just hitting <cr>, or altered, when the
selective output operation is executed. See Section 2.6.9.1 for details of output selections.
PATH PARAMETERS
The File Paths parameters let you specify the directory to be used by each command that retrieves or writes files. The
commands that recognize file path names are shown in the panel and a different path name may be specified for each.
The path names are initialized to a ‘.’ referring to the current working directory. The current working directory is
displayed on the first text box of the panel. You can change your current working directory in the PWD field or with
the EPCL function change_dir.
The example shown above instructs the getf command to open files from from the directory
D:\PSLF_WorkingDirectory for the windows operating system.
You may permanently set these paths using the set_paths() command in the javaini.p file.
@ret = set_paths("getf",”D:\PSLF_WorkingDirectory")
SEL_EDIT PARAMETERS
The select edit panel lets you pre-set a selection profile that will be used in subsequent edit operations. The preset
selection made through parm may be accepted without change (by just hitting <cr>, or altered, when the selective
output operation is executed). See Section 2.6.9.2 for details of output selections.
EPCL names starting EPCL names ending
area sel_editbeg[].arnum sel_editend[].arnum
zone sel_editbeg[].zonum sel_editend[].zonum
SEL_TABR PARAMETERS
Prior to executing tabr command the user can presort some of the tables. The TRATE table can sort the % rating field
either forward or backwards. The FLOW section applies to the flow table under tabr. The user can now specify the
line/transformer table be built as a double entry table (From - To and To - From). The mismatch table can sort the
Pmis, Qmis or magnitude prior to displaying this table. One can also choose to show, or not to show out of service
branches.
SAVE PARAMETERS
The save parameter allows the user to write all its current changes to javaini.p. See Chapter 6.3 for more details.
The user will be warned when trying to save the javaini.p file:
VOLTAGE LEVEL PARAMETERS
The vlv parameter panel displays 28 voltage levels and the corresponding color ID. The Color Panel column located to
the left of the Voltage column displays each color along with its corresponding color ID number. The color ID is used
in scan and olgr drawings for drawing the bus/branch when the “color by nominal voltage” flag (dispar[0].color_flag
mode) is set to 0.
This panel is set initially by reading the pslf.vlv file from the installation directory. After changing either the voltage
level or colors, then clicking OK, the program writes a new javaini.p and pslf.vlv in your startup directory.
CAUTION: The number of voltage levels should always be 28 but the values may be changed, such as, instead of 69
kV substitute 66 kV.
PRINTER PARAMETERS
The following printer parameters panel allows the user to select the number of rows, the number of columns, and the
size of the font for your output.
Command: date (from misc:Date)
EPCL: *return[0] = date("<file>") (see note below)
Arguments: <file> Name of report file
Function: Set working case date/time stamp
Prerequisites: None
date sets the date/time stamp in the working case to the present date and time. This date/time stamp remains
unchanged until either date is executed again, savf is executed to make a history file, or getf is executed to retrieve a
history file. savf sets the stamp to the present time. getf retrieves the date and time when the history file was made
and sets the working case date/time stamp to these values.
The stamp can be reset to the present by executing date after executing getf. This should only be done, however, if
you are sure that you will no longer need the stamp value from the powerflow file as a note regarding the identity of
the load flow case that is in the working case.
NOTE: The return value should be at least 25 characters.
Command: dchk Edit:dchk (Data Check)
Arguments: <none> Selector flag 0=off, 1=on, 2=on and remove previous
selections
Function: Check load flow data
Prerequisites: Valid load flow data in working case
dchk checks user selected load flow data categories for reasonable entries.
dchk displays the Data Check panel where by default all items are checked except the”fix data flag”.
The fix data flag should not be checked. The dchk results should be reviewed by the user before making changes to
their data.
The following data checks are made by dchk.
bus extnum > 0
extnum same bus number used more than once
basekv >= .1
vsched >= .5
vsched <= 1.5
vmin < vmax
line(secdd) ifrom >= 0
ito >= 0
0 <= st <= 2
0 <= nsec <= 10
non-consecutive section #'s on multi-section linen multi-section line
with no section 1 jumpers have charging of 0
transformer ifrom >= 0
ito >= 0
tbase != 0
vnomp != 0
vnoms != 0
vnomt != 0
tapp >= .5
tapfp >= .5
tapfs >= .5
tapft >= .5
tapp <= 1.5
tapfp <= 1.5
tapfs <= 1.5
tapft <= 1.5
tmax > tmin (for types 2, 12, and 22 only)
vtmax > vtmin (for types 2, 12, and 22 only)
stepp >= 0 (for type 4)
check for existing impedance tables
generator mbase != 0
prf != 0
qrf != 0
zgenx != 0
qmax > qmin
pmax > pmin
remote bus is 2 or more buses away (warning only)
igreg must regulate a bus, default to itself
SVD bmax > bmin
beffmax > beffmin
actual MVARs achievable combination of reactors/capacitors
branch inter branch must exist in secdd table
DC bus basekv >= 1.0
vsched >= 1.0
DC line r >= .001
DC converter nbridge >= 1
vac_base >= 1.0
vdc_base >= 1.0
tbase != 0
tapf_ac != 0
tapf_dc != 0
tap_ac != 0
tap_dc != 0
alpha_max > alpha_min
gamma_max > gamma_min
tmax > tmin
vtmax > vtmin
The execution of dchk produces an edit table that is displayed after the checks are made showing where action should
be taken. F8 is available to examine the records that had errors.
The execution of dchk produces an edit table that is displayed after the checks are made showing records where action
should be taken.
F8 is available to examine the records that had errors.
When completed, dchk calls the epcl program "dchk.p". This epcl can check additional items based on the user's
experience. This epcl program may reside in the usual search path, that is, current directory, home directory,
installation directory or the samples directory under the installation directory.
Command: dclf from Other:lina:DC Two Party Transfer Limit or
from solv: DC
EPCL: @return = dclf()
Arguments: <none>
Function: Solve network using “DC” solution
Prerequisites: Valid load flow data in working case
dclf solves the network by setting all bus voltages and transformer taps to 1.0, and adjusting the bus angles to meet the
megawatt injection at each bus. Branch resistances and charging capacitances are neglected.
All the reports and results are based on AC solutions, therefore commands such as scan, outt and mism will display
mismatches after executing dclf.
Following the execution of dclf, the branch P flows can be determined using the flowd EPCL function. This function
uses the same modeling assumptions as are used during the dclf solution. See sample EPCL program dcflow.p for an
example of using this function to create a table of branch flows.
A DC solution establishes reasonable bus angles to be used as a starting point for an AC solution.
If the "enable phase shifter adjustment" flag in parm:solve panel is set to 1; the phase shifters adjustment is considered
in a dc load flow solution. If it is set to zero, the adjustment is not considered.
The swing bus generation from a DC solution can be quite different with the phase shifter flag set to 1 or 0. It should
be set to whichever results provide a better solution of the swing bus generation.
A flag to include losses (DC loss flag) is located under parm:solve.
Command: dctr (from Other:lina:DC Two Party Transfer Limit)
EPCL: @return = dctr("<report>","<input>")
Arguments: <report> Name of file or printer to receive output
<input> Name of file specifying transaction and contingencies
Function: Single transaction transfer limit analysis function,
dctr
Prerequisites: Valid solved load flow data in working case
Principles
The dctr and dctr commands execute the function with complete a.c. solutions and d.c. analogy, respectively. dctr
estimates the limitations imposed by the transmission network on a transfer of power across the system. The transfer
of power is implemented by increasing the output of one or more generators in one part of the system and reducing
output of generators in another. A typical transfer is an increase in generation by a "selling" utility and a
corresponding reduction in generation by a buyer. There are no restrictions on the number of generators involved in
the transaction, or on their locations.
dctr implements a proposed transaction and monitors the lines and transformers in designated areas to estimate its
effects on transmission loadings. dctr estimates the limiting magnitude of the proposed transaction as shown in Figure
dctr -1.
R-1
A base case loadflow solution is made and the flow in each monitored branch is recorded. A test case load flow is
then established by increasing and decreasing the output of appropriate generators to implement a transaction of small
magnitude. The test case is solved and the flows in monitored branches are compared with those from the base case to
determine the generation shift distribution factor, Dg, for each monitored branch. The maximum permissible transfer
with respect to each monitored branch is then calculated as
BMWrating - BMWbase
TMWlimit = TMWbase + ------------------------
Dg
where
TMW is total power transferred from primary to opposing area;
BMW is branch power flow.
The list of limiting transfer for the monitored branches is sorted in order of increasing transfer and written to the output
file.
dctr makes this calculation for the system in the as-received condition and then again for each contingency specified
in the input file. Each contingency involves a new base load flow and a new test load flow. Each contingency may
involve changes in the statuses of up to ten lines and/or transformers.
Modeling and Assumptions
D.C. Analogy Solutions
When invoked with the dctr command dctr uses power/angle (d.c. analogy) network solutions ignoring reactive power
flow and voltage variation. In this case distribution factors for both transmission lines and transformers are obtained
as
change in real power flow in MW
---------------------------------------
real power transferred in MW
All projections in the d.c. analogy mode are made on the basis that the limiting estimated real power flow is equal to
the rated MVA of the line or transformer.
A.C. Power Flow Solutions
When invoked with the dctr command dctr uses complete a.c. load flow solutions. In this case distribution factors are
obtained for transmission lines as
rated MVA * change in the line current in per unit
---------------------------------------------------
real power transferred in MW
and for transformers as
change in transformer loading in MVA
------------------------------------
real power transferred in MW
The projections to limiting loading are then made on the basis of rated current for transmission lines and of rated MVA
for transformers. The rated current of each transmission line is obtained from the MVA rating contained in the
database as
rated MVA x 1e6
rated current = -------------------------------
1.732 x (from bus base voltage)
Accuracy of Projections
Both the d.c. analogy and the a.c. solution versions of the transfer analysis are approximations. The d.c. analogy
version completely ignores the distinction between rated current and rated MVA and can show a line as "not limiting"
with respect to real power, even though it could be severely overloaded by reactive power flow. The a.c. solution
version recognizes reactive power flow and uses line current as the rating basis for transmission lines but is,
nevertheless, an approximation because its projection to a transfer limit cannot recognize the generator VAR limits, tap
changer limits, and other nonlinear control actions that may come into effect as loadings are shifted. Further, the a.c.
analysis is still a linear projection even in the absence of control limits and hence it cannot account for the inherent
curvature of the voltage versus load and reactive power versus load characteristics of the a.c. transmission system.
Accordingly, critical transfer limits indicated by dctr should be checked by explicit load flow solutions at the indicated
transfer levels.
Input File
The input file for dctr must contain records as follows:
Base case record optional
Losses keyword record optional
Setting keyword record mandatory
setting records optional
Monitor area records at least 1
Monitor interface records optional
interface branch records optional
Radial branch monitor record optional
Shift keyword record mandatory
redispatch records at least 1
Contingency keyword record optional
status change records at least 1 and less than 11
Contingency keyword record optional
status change records
.
.
repeat for desired number of contingencies
End keyword record mandatory
The individual records are described below.
Base Case Record
base <"name">
This record instructs dctr to retrieve the named powerflow file. If it is not present dctr works on the case presently in
the powerflow file; if it is present the case in the named powerflow file completely overwrites the working case and
becomes the base case for dctr.
Losses keyword record
losses <area> <loss_factor>
<area> Number of area in which loads are to be increased
<loss_factor> Factor by which loads in the area are to be multiplied
Losses records may be used to specify adjustments of loads to account for transmission losses in dctr. (Losses records
are ignored by actr.) You can use either a single losses record with no arguments or a series of losses records with the
arguments present.
Use of a single losses record with no arguments causes dctr to increase all loads in each area by the same proportion
so that the losses in each area are taken up by the increase in load in that area. Use of a losses record with arguments
present causes dctr to increase all loads in the area specified by <area> by the factor <loss_factor>.A losses record
without arguments may be used only when no losses records with arguments are present.
Setting Keyword Record
setting
This record must be present and may be followed by zero or more of the following setting records.
rate <number>
This record instructs dctr to use the specified rating. 1 < number < 4. If this record is absent dctr uses rating 1.
tap <0 or 1> tap ratio adjustment
phas <0 or 1> phase shifter adjustment
svd <0 or 1> static VAR device adjustment
bvl <number> iterations before application of VAR limits
area <0 or 1> area interchange control
These records set the load flow solution control options. If present each of these records changes the control option in
the working case and the new option is used in all contingency base and test case solutions made by dctr in its d.c.
solution mode. These option settings are not used by dctr in its d.c. analogy mode.
maxrep <number>
This record instructs dctr to report transfer limits for the first <number> limiting lines and/or transformers. If it is
absent the report for each system condition covers up to 50 branches.
minmw <value1>
maxmw <value2>
These records instruct dctr not to report transfer limits outside the range value1 < limit < value2. The default values
are value1 = -999 and value2 = 9999. These records override the defaults if present.
cutoffpdf <value>
This record instruct dctr not to report outage distribution factors (pdf) below <value>. The default value is = 0.These
records override the defaults if present.
Xvmin <value>
This record instructs dctr not to report transfer limits below <value> kv level. In the case of transformers, if either bus
is below the kvmin then that record isn’t displayed. The default value is 0.0. This record overrides the default if
present.
Monitor Area Records
monitor area <number>
Each monitor area record instructs dctr to monitor branches in the area specified by <number>.
Monitor Interface Records
monitor interface <name> <rating>
Each monitor interface record defines an interface and instructs dctr to monitor the sum of the flows on the branches
of the interface. <name> is the interface name of from 1 to 32 characters. The name may not include blanks. <rating>
is the interface rating in megawatts. Each monitor interface record must be followed by at least one and a maximum of
100 interface branch records with the format
<from> <to> <ck>
where
<from> is the "from" bus of the branch
<to> is the "to" bus of the branch
<ck> is the circuit identifier of the branch
Direction is important; each branch of the interface must be defined so that its <from> <to> direction is the "forward"
direction across the interface.
Radial Branch Monitor Record
radial
This record instructs dctr to monitor and estimate transfer limits for radial branches (such as load transformers and
generator step up transformers). Radial branches are monitored only if this record is present.
Shift Keyword Record, Re-dispatch Records
shift
This record must be present and must be followed by one or more of the following re-dispatch records which specify
the test shift of generation for the transfer limit projections.
hist <"name">
This record instructs dctr to establish the load flow case with shifted generation by retrieving the named load flow
powerflow file. If present, this record must be the first of the records following the Shift Keyword Record.
gen <value> <busno> <name> <bkv> <"id">
This record instructs dctr to change the real power output of the specified generator by <value> megawatts. The
generator is specified by <busno> and <id> if PSLF is in its "bus numbers" mode, and by <name> <bkv> and <id> if
PSLF is in "bus names" mode. <Number>, <name>, and <bkv> may be an ! if not used.
swing <value> <number>
This record instructs dctr to change the real power output of the area swing generator of area <number> by <value>
megawatts.
dispatch <value>
This record specifies the dispatch mode for the generators that are defined in the area/zone records following the
dispatch record.
When value is 0, the MW generation output of generators defined in following area/zone records are dispatched by an
amount proportional to its Pgen.
When value is 1, the MW generation output of generators defined in following area/zone records are dispatched by an
amount proportional to its MBASE.
When value is 2, the MW generation output of generators defined in following area/zone records are dispatched by an
amount proportional to its Pmax.
When value is 3, the MW generation output of generators defined in following area/zone records are dispatched by an
amount proportional to its reserve.
By default, the value is 0.
area <value> <number>
zone <value> <number>
These records instruct dctr to change the total generation in the specified area or zone by <value> megawatts. The
change is applied by changing the output of each in-service generator in the area or zone in proportion to its real
power output in the base case. Maximum power values in the generator data records are not recognized.
epcl <"name">
This record instructs dctr to execute the named epcl program to implement a shift of generation. The epcl program
may alter the output of any generator or the value of any load but must not change the status of any transmission line
or transformer.
delta <value>
This record informs dctr of the value of the test generation shift. If present, it should be the last of the records
following the Shift Keyword Record. If this record is absent, dctr calculates the test generation shift as the sum of
positive generation adjustments specified on gen, area, zone, and swing records. This record must be present if an epcl
or case record is present. <value> must be greater than zero.
End Keyword Record
end
This record must follow the last contingency status change record.
Contingency Keyword Records, Status Change Records
cont <"title">
Any number of contingencies may be specified. The stanza of records specifying each contingency starts with a
Contingency Keyword Record. The <title> of the contingency may contain up to 30 characters. Each Contingency
Keyword Record must be followed by at least one and not more than ten status change records.
line <from> <to> <"id> <st>
This record sets the status of the specified transmission line to <st> where <st> may be 0 for opened or 1 for closed.
<from> and <to> are the bus numbers specifying the line. (Bus names are not presently recognized in this record.)
tran <from> <to> <"id"> <st>
This record sets the status of the specified transformer to <st> where <st> is 0 for opened or 1 for closed. <from> and
<to> are the bus numbers specifying the transformer. (Names are not recognized at present in this record.)
gen <from> <0> <"id"> <st>
load <from> <0> <"id"> <st>
shunt <from> <0> <"id"> <st>
svd <from> <0> <"id"> <st>
This record sets the status of the specified element (gen, load, shunt or svd) to <st> where <st> is 0 for opened or 1 for
closed.
bus <number> ! ! !
This record opens all branches connected to the specified bus, sets the type of the bus to zero, and forces reordering of
the system. <number> is the number of the bus. (Names are not recognized in the present version of PSLF - the 3 !'s
must be present.)
Use of DCTR
The test transfer used in dctr must be reasonably large in relation to the mismatch tolerance that load flow solutions of
the particular system can achieve. Typically, a 50 MW test transfer is suitable for systems involving lines at 230 KV
and above, while a 10 MW transfer may be more suitable for lower voltage systems. The test transfer should not cause
any generator to be loaded beyond its normal operating range by a large amount, but a test that loads generators above
rating by 10 to 15 percent is quite acceptable.
The sum of the generation adjustments that make up the test generation shift should normally be very close to zero, but
dctr does not require this sum to be zero. Any difference between the sum of the generation shifts and zero is taken
up by the system swing bus which, by default, is a party in all "transactions". Note that the a.c. solution version of
dctr will incur changes in system losses in its test solutions and that incremental losses will be made up by the system
swing if not taken care of by area swing buses.
The area interchange control option of the load flow solution may be used to hold areas that are not participants in the
proposed power transfer to their prescribed net interchange schedules. Note though that area interchange control must
not be allowed to override the test generation shift imposed by the Generation Re-dispatch records. Accordingly, the
area interchange control tolerance bands of areas containing re-dispatched generators should normally be set to a large
value (say 9999) in load flow cases that are to be used with dctr, if area interchange control is to be used. The
following example file, aa.xfr, sets up a run of dctr.
The transfer limit study considers a transaction in which a power is sold from the generator at bus 111 which is in area
2, to meet load in area 3. Generation in area 3 is to be reduced by reducing output on the area swing generator. The
amount of power sold is to be such that there is no overload in area 1 or 2. Overloads in other areas are not a concern
in this study, though they may exist. Radial branches in areas 1 and 2 are to be monitored in this run, though the
"radial" record will be left out more often than not since reports for radial branches are often a nuisance.
The epcl program test.p serves to set all area interchange tolerances to a large value
for @i = 0 to casepar[0].narea -1
area[@i].pnettol = 9999
next
The report from dctr in its d.c. solution option is shown in Figure dctr -2.The most limiting branch in the base case
was the transformer from bus 111 to bus 11. Its loading in the base case was 1000 MW , which results in a current of
2509.4 Amps. The 20 MW test transfer changes the flow in this branch to 1020 MW and the current to 2559.6 Amps.
The line rating is 1200 MVA, which corresponds to 3012 Amps. The 20 MW test transfer therefore changes the line
loading from (2509.4/3012)=.833 pu of rating to (2559.6/1506)=.85 pu of rating. The allowable change in the line
loading is from .833 pu to 1.0 pu of rating; this corresponds to a transfer of
20*(1.0 - .833)/(.85 - .833) = 200 MW.
The first line of the report for the "No Contingencies" case shows this limit, and subsequent lines show the
corresponding limiting transfers for other lines in order of increasing allowable power transfer.
Figure dctr -2
Command: dele (from edit:dele)
EPCL: @return = dele("<level>")
Arguments: <level> Deletion level
Function: Delete records from the data base
Prerequisites: Valid solved load flow data in working case
dele deletes one or more records from the data tables. It scans all data tables to remove records which have a member
whose value is less than or equal to the <level> argument. The members are designated by PSLF (see Table 1).
dele requests the delete level in its argument panel. If you need to abort or delete the delete operation, just hit the
<esc> or <delete> key to leave the argument panel. Hitting <CR> in the argument panel proceeds with the delete
operation!
DELE is intended to be used primarily in EPCL programs, where the F7 function of the data table editor is not
available. To use DELE in an EPCL program, flag all records to be deleted by setting their type or status to a negative
number, -3 is recommended, then invoke DELE with the sequence:
@return = dele("<level>")
in your EPCL program.
If the tables have extended records associated with them , they are also deleted.
Table 1
Description of variables to set for using DELE
Table name Member epcl variable name
bus bus type busd[].type
line line status secdd[].st
tran or tap transformer tran[].st
status
gens generator status gens[].st
load load status load[].st
shunt shunt status shunt[].st
svd svd status svd[].st
bface bface number bface[].itface
area area number area[].arnum
zone zone number zone[].zonum
itface itface number itface[].itnum
dcb dc bus type dcb[].type
dcl dc line status dcl[].st
dcc dcc status dcc[].st
ztab table number tztab[].ta
transact transaction status transact[].st
Command: difs (from rept:Differences)
EPCL: @ret=difs("<report>","<base>","<chng>","<tol>",
"<tol_flag>","<cat_no>","<cat_name>","<cat_var>",
"<both_direction>)"
Arguments: <report> Ouput report destination
<base> Base case for comparison
<chng> Change case to be compared against.
<tol> Tolerance value
<tol_fag> Tolerance flag
<cat_no> 0 : selected item
1 : one-line
2 : totals
<cat_name> Category name for category number =0 (bus, trans, gens,
loads, shunt, svd, dcc and area )
<cat_var> Category variable name corresponding to each category
name.
<both_direction> 0 : Difference in 1 direction (first case against second case)
1 : Difference in 2 directions (first case against second case
and vice versa)
Function: Reports difference report between two cases.
Prerequisites: Valid solved load flow data in working case or
the cases should be re-ordered
difs reports differences between a pair of load flow cases. The report may be a text listing or a one line diagram.
difs first requests destination input in the “Get Report Destination” panel.
difs requests its arguments through the following panel:
Two different load flow history files must be specified. difs cannot make a comparison against the current working
case. If you want to compare a saved case against the current working case, save the working case in a temporary
history file with the savf command in the standard way and then invoke difs.
Values of data and solution items in the two cases are compared and the difference is reported if it exceeds the
specified percentage of the base case or value. If a component exists in one case but not the other this fact is reported
in lieu of a difference of a value.
The report may be a listing of differences in values of a selected category of data or a one-line diagram showing
differences in voltages and flows. If one-line diagram reporting is chosen difs requests a report destination. The one-
line report destination may be the CRT, the plotter, or the laser printer. The one-line diagram file must be of the same
format as for the olgr command and should match the base load flow case. When using the one-line diagram option,
the two cases must have the same number of elements in their working tables.
The difference report will be generated for difference in one direction (i.e. comparison of first case against second
case) or in both the directions (i.e. comparison of first case against second case and then second case against first case)
based upon whether checkbox “Two Way Differences” is selected or not. If this box is selected, difference will be
reported in both directions or else it would be reported only in the first direction. This option is not applicable to one-
line diagram but is only applicable for differences for category of data.
If you want to compare two complete Node-Breaker network model cases in which every equipment/record is
identified by a unique EMS-ID field, the checkbox “Use EMS-ID’s” should be selected. If this checkbox is selected
the tool compares, and lists any differences based on the unique EMS-ID fields defined in each case. It is to be noted
that the equipment/records with missing or invalid EMS-ID fields are excluded from the differences report.
When the selected category option is chosen, difs presents this selection panel:
To select a data category move the cursor to the desired item and hit <CR>.
Note that difs reports on values of line, transformer, and generator MW and MVAR loadings regardless of whether the
load flow cases are solved. It is, therefore, advisable to check that the two cases are solved to acceptable mismatch
before using difs.
<cat_no> category number 0=selected item, 1=one-line, 2=totals )
<cat_name> category name for category number = 0 (bus, lines, trans, gens, loads, shunt, svd, dcc
and area )
one-line destination for category = 1
<cat_var> category variable name ( listed above in Difs_categories panel )
Examples in epcl mode
@return = difs("","base.sav","change.sav","1","0","0","lines","mw")
report all line flows that changed by more then 1 per cent from the base case to the screen.
@return = difs("","t3ps.sav","change.sav","1","0","1","print","t3ps.drw")
draw a one-line diagram to the printer.
@return = difs("","t3ps.sav","change.sav","0","1","0","lines","mw")
report all line flows to the screen.
Command: disp (from Other:econ:Dispatch)
EPCL: @return = disp("<file>")
Arguments: <file> Name of file to receive error/progress messages
Function: Economic dispatch with generator status as given
Prerequisites: Valid solved load flow and economic data in working
case
disp gives you direct entry to the economic dispatch calculation, bypassing the unit commitment process, and applying
load to all generators whose status is 1. disp loads the on-line generators in each economic dispatch group with the
objective of achieving uniform penalized incremental operating cost as defined in the description of the econ
command.
disp respects the minimum and maximum outputs specified in the generator data table. These limits may be within or
outside the range of generator power spanned by the incremental heat rate curve; the curve is extended above and
below its end points by linear projection at the end point slope if the power output falls outside these end points.
Command: drpl (from olgr)
drpr
drsc
EPCL: @return = drpl("<file>")
@return = drpr("<file>")
@return = drsc("<file>")
Arguments: <file> Plot output filename
<id> Bus identifier (optional in menu mode only)
Function: Draw system one-line diagram to a file (drpl) or to
a printer (drpr) or the screen (drsc)
Prerequisites: Valid load flow data in working case
Valid coordinate file in working case
drpl displays a system one-line diagram as specified to a drawing file while drpr results go to a printer and drsc goes to the screen. The drawing file, in most cases, will have been built with the olgr command.
drpl, drpr, and drsc uses color either to show the nominal voltage levels of parts of the system according to the pslf.vlv file (see chap 6) or to indicate overloads and under/over voltages. The use of color is selected by
the "Color by nominal voltage..." flag in the parm.check panel. In check mode,
white indicates not overloaded/voltage within
limits
red indicates overload/undervoltage
yellow indicates overvoltage
The checking limits are specified in the parm.check panel.
drpl, drpr, and drsc annote lines, transformers, and bus connected components with flows or impedances as selected by the first line of the parm.annot panel. The selection on this line should be
0 to show MW/Mvar flows
1 to show MW flow and MVA flow as a percentage of the effective rating specified in the parm.check panel
2 to show MVA/A flows
3 to show R/X in per unit on system MVA base.
4 to show MVA flow and MVA flow as a percentage of the effective rating specified in the parm.check panel
5 to show A/% Rating
6 to show Rated MVA/A
Command: drpl (from olgr)
drpr
drsc
EPCL: @return = drpl("<file>")
@return = drpr("<file>")
@return = drsc("<file>")
Arguments: <file> Plot output filename
<id> Bus identifier (optional in menu mode only)
Function: Draw system one-line diagram to a file (drpl) or to
a printer (drpr) or the screen (drsc)
Prerequisites: Valid load flow data in working case
Valid coordinate file in working case
drpl displays a system one-line diagram as specified to a drawing file while drpr
results go to a printer and drsc goes to the screen. The drawing file, in most cases, will have
been built with the olgr command.
drpl, drpr, and drsc uses color either to show the nominal voltage levels of parts of the
system according to the pslf.vlv file (see chap 6) or to indicate overloads and under/over voltages.
The use of color is selected by the "Color by nominal voltage..." flag in the parm.check panel.
In check mode,
white indicates not overloaded/voltage within
limits
red indicates overload/undervoltage
yellow indicates overvoltage
The checking limits are specified in the parm.check panel.
drpl, drpr, and drsc annote lines, transformers, and bus connected components with flows or
impedances as selected by the first line of the parm.annot panel. The selection on this line
should be
0 to show MW/Mvar flows
1 to show MW flow and MVA flow as a percentage of the effective rating specified in the
parm.check panel
2 to show MVA/A flows
3 to show R/X in per unit on system MVA base.
4 to show MVA flow and MVA flow as a percentage of the effective rating specified in
the parm.check panel
5 to show A/% Rating
6 to show Rated MVA/A
Command: drpl (from olgr)
drpr
drsc
EPCL: @return = drpl("<file>")
@return = drpr("<file>")
@return = drsc("<file>")
Arguments: <file> Plot output filename
<id> Bus identifier (optional in menu mode only)
Function: Draw system one-line diagram to a file (drpl) or to
a printer (drpr) or the screen (drsc)
Prerequisites: Valid load flow data in working case
Valid coordinate file in working case
drpl displays a system one-line diagram as specified to a drawing file while drpr results go to a printer and drsc goes to the screen. The drawing file, in most cases, will have been built with the olgr command.
drpl, drpr, and drsc uses color either to show the nominal voltage levels of parts of the system according to the pslf.vlv file (see chap 6) or to indicate overloads and under/over voltages. The use of color is selected by
the "Color by nominal voltage..." flag in the parm.check panel. In check mode,
white indicates not overloaded/voltage within
limits
red indicates overload/undervoltage
yellow indicates overvoltage
The checking limits are specified in the parm.check panel.
drpl, drpr, and drsc annote lines, transformers, and bus connected components with flows or impedances as selected by the first line of the parm.annot panel. The selection on this line should be
0 to show MW/MVAR flows
1 to show MW flow and MVA flow as a percentage of the effective rating specified in the parm.check panel
2 to show MVA/Amp flows
3 to show R/X in per unit on system MVA base.
4 to show MVA flow and MVA flow as a percentage of the effective rating specified in the parm.check panel
5 to show AMPS/% Rating
6 to show Rated MVA/AMPS
Command: dscn
EPCL:
Arguments: Report destination; identifier of from bus; model name
Function: Display model data parameters in block diagram form
Prerequisites: Load flow case in working tables and valid model data
dscn provides a quick way to edit model parameters; it displays a transfer function block diagram and values of the
model's parameters. dscn can display its "report" on the CRT screen or send it to the printer or plotter. The selection
of report destination is made through the drawdest argument panel when dscn is initiated.
After the destination is selected dscn asks for the bus and component identifiers needed to select a component or
components. This is done through the dscn panel.
For bus-connected equipments, such as generators, the "from" bus identifier and component identifier must be entered,
and the "to" bus identifier and section number may be left alone as shown above. For line connected equipments such
as relays both bus identifiers, circuit identifier, and section number must be entered. Section number is not needed to
select transformer connected equipments.
When an equipment location has been entered dscn shows the items of equipment at that location with the specified
identifier in the dmodel panel like this:
You can now examine and change parameters of these components. Move the cursor to the equipment of interest and
hit enter. The equipment block diagram is displayed like this:
The first sixteen parameters of the model are displayed with the block diagram. These can be changed by clicking the
name, typing in the new value, and hitting enter. All model parameters, including those beyond the sixteenth can be
examined and changed by clicking <EDIT> at the lower left of the block diagram display. Clicking edit brings up a
record-edit panel to show the complete parameter data record of the model.
You can scroll up and down this record panel by clicking the functions at the bottom of the panel. You can change
any parameter by clicking its name, typing the new value, and hitting <CR>.
Parameter value changes made in dscn are effective immediately; it is the user's responsibility to ensure that the new
value is meaningful in the context of the simulation. Essentially all parameters can be changed safely before INIT is
executed and changes made before INIT are subjected to the reasonable-value checks of INIT. Changes made after
execution of INIT are not checked for reasonableness or correctness in relation to the simulation process. (For
example, it is usually not valid to change a time constant during a simulation run, but it may be perfectly acceptable to
change the setting of a relay.)
Command: dsst
EPCL: @return=dsst()
Arguments:
Function: Terminates a dynamic simulation run
Prerequisites: Valid load flow data in working case
dsst makes an orderly termination of a dynamic simulation run by flushing the plot data file buffer and releasing data
space used by the dynamic simulation.
The function can also be invoked from the PSLF Screen by pressing dsst button as shown below.
Command: ecab (from tlc:Export Cable)
EPCL: @return = ecab("<file>")
Arguments: <file> Name of output file
Function: Writes underground cable properties data file for use
by the tlc command
Prerequisites: None
The ecab command writes out the complete description of the underground cable properties data for use by the tlc
command. The description is written to a file in the format required by the command rcab.
Command: ecom1 ( from econ:Commit1)
ecom2
ecom3
EPCL: @ret = ecom1(“file”)
@ret = ecom2(“file”)
@ret = ecom3(“file”)
Arguments: <file> Name of file to receive error and progress
messages
Function: Unit commitment and economic dispatch
Prerequisites: Valid solved load flow and economic data in
working case
The ecom1, ecom2, and ecom3 commands execute unit commitment and economic dispatch as described in the
description of the econ command. ecom1 and ecom2 can perform both commitment and dispatch; ecom3 performs
only unit commitment.
Each command first checks the economic dispatch data for consistency and issues error messages to the report
destination specified by the argument. A Continue Box is displayed after completion of the data checks and allows
you to abort the command. Continuing commences the unit commitment process, which also issues error and progress
messages to the report file. A Continue Box follows the commitment phase; in ecom1 and ecom2 you can either exit
to the econ panel (bypassing economic dispatch) or continue to execute economic dispatch. ecom3 always exits to the
econ panel on completion of its unit commitment phase.
Continuing from unit commitment in ecom1 and ecom2 executes the same equal incremental cost calculation as the
disp command.
Command: ecom1 ( from econ:Commit1)
ecom2
ecom3
EPCL: @ret = ecom1(“file”)
@ret = ecom2(“file”)
@ret = ecom3(“file”)
Arguments: <file> Name of file to receive error and progress
messages
Function: Unit commitment and economic dispatch
Prerequisites: Valid solved load flow and economic data in
working case
The ecom1, ecom2, and ecom3 commands execute unit commitment and economic dispatch as described in the
description of the econ command. ecom1 and ecom2 can perform both commitment and dispatch; ecom3 performs
only unit commitment.
Each command first checks the economic dispatch data for consistency and issues error messages to the report
destination specified by the argument. A Continue Box is displayed after completion of the data checks and allows
you to abort the command. Continuing commences the unit commitment process, which also issues error and progress
messages to the report file. A Continue Box follows the commitment phase; in ecom1 and ecom2 you can either exit
to the econ panel (bypassing economic dispatch) or continue to execute economic dispatch. ecom3 always exits to the
econ panel on completion of its unit commitment phase.
Continuing from unit commitment in ecom1 and ecom2 executes the same equal incremental cost calculation as the
disp command.
Command: ecom1 ( from econ:Commit1)
ecom2
ecom3
EPCL: @ret = ecom1(“file”)
@ret = ecom2(“file”)
@ret = ecom3(“file”)
Arguments: <file> Name of file to receive error and progress
messages
Function: Unit commitment and economic dispatch
Prerequisites: Valid solved load flow and economic data in
working case
The ecom1, ecom2, and ecom3 commands execute unit commitment and economic dispatch as described in the
description of the econ command. ecom1 and ecom2 can perform both commitment and dispatch; ecom3 performs
only unit commitment.
Each command first checks the economic dispatch data for consistency and issues error messages to the report
destination specified by the argument. A Continue Box is displayed after completion of the data checks and allows
you to abort the command. Continuing commences the unit commitment process, which also issues error and progress
messages to the report file. A Continue Box follows the commitment phase; in ecom1 and ecom2 you can either exit
to the econ panel (bypassing economic dispatch) or continue to execute economic dispatch. ecom3 always exits to the
econ panel on completion of its unit commitment phase.
Continuing from unit commitment in ecom1 and ecom2 executes the same equal incremental cost calculation as the
disp command.
Command: econ
Arguments:
Function: Thermal economic dispatch
Prerequisites: Valid solved load flow data in working case
General
The econ group of commands handles economic dispatch of generators based on fuel cost, incremental heat rates, and
penalty factors assigned by the user. The economic dispatch data is read from a data file and the result is a set of
values of the pgen entries in the generator table of the working case.
The economic dispatch commands are accessed from the econ panel which is entered from the main menu. The
commands available in the econ panel are:
acca Area Tot - Calculate totals of generators, load, and interchange for
each area
curv Curve Data - edit table that displays incremental curve data
disp Dispatch - Dispatch generators according to penalized incremental
operating cost
ecom1 Commit1 - Commit using full load true operating cost in $/MWhr
and dispatch generation
ecom2 Commit2 - Commit using minimum load incremental cost in
$/MWhr and dispatch generation
ecom3 Commit3 - Commit strictly according to incremental cost and
dispatch generation
edar Edit Area - displays area totals
gend GenerateData - displays economic generator data
Group Data - display group economic data
grpd
losf Loss Fact - calculate area loss factors
rede Read GE - Read epc format economic dispatch data file
redi Read PTI - Read economic dispatch file in format of the PTI
PSS/E program
redp Read PSAP - Read economic dispatch file in format of the "Psap"
program
wede Write GE - Write economic dispatch data file in epc format
The economic dispatch functions are designed primarily to assign the outputs of the generators in the load flow
working case, according to standard fuel cost economics, to supply the loads in the load flow working case. The
economic dispatch functions are operations on the load flow working case and a valid solved load flow case is
assumed, throughout the economic dispatch functions, to exist. (A dummy load flow case containing only buses,
generators, and area definitions can be used if a complete load flow case is not available.)
Economic dispatch data is not stored in the working case; rather, it is stored in a data file that can be read on entry to
the econ subsystem by the rede command and updated by the wede command. The economic dispatch data file
contains incremental heat rate, fuel cost, and related data for some, but not necessarily all, generating units in the load
flow working case. If economic dispatch data is not read from the economic dispatch data file for a unit its record in
the economic dispatch data tables contain default values and its dispatch status is set to "non-dispatchable". Dispatch
data may be entered or updated through the econ edit tables and then made a part of the economic dispatch data file by
rewriting that file with the wede command.
"Non-dispatchable" units are recognized by the dispatching commands for their contributions to the system's
generating capacity but are otherwise ignored; that is they appear to the dispatch commands as a reduction of the load
to be served.
Each unit is characterized by an incremental heat rate curve and a set of fuel cost and penalty factor parameters that
give a penalized effective fuel cost of:
<efc> = <fuel cost> * <fuel factor> + <om cost>
in money per unit of heat (e.g. $/MBtu or $/Joule) and a net penalty factor of:
<epf> = <performance factor> * <transmission penalty factor>
The objective of the economic dispatch calculation is to load the available units so that all units being dispatched as a
group have equal values of effective penalized incremental operating cost; that is such that:
<dh/dP> * <efc> * <epf> = <lambda>
where
<dh/dP> = incremental heat rate of a unit
<lambda> = marginal incremental cost of a group of units
The economic dispatch calculation always works with the generators that are on line and dispatchable in the load flow
working case; it never changes the status of a unit or sets it to a load outside its limits, gens.pmin and gens.pmax.
The economic dispatch calculation may be executed alone using existing unit statuses by the disp command, or it may
be preceded by a unit commitment operation by executing the ecom1, ecom2, or ecom3 command. ecom1, ecom2, or
ecom3 commence by setting the status of every dispatchable generator to zero. They then turn units on according to
their respective rules to provide the required running capacity without regard to incremental cost loading and, upon
completion of the commitment phase, they proceed to the economic dispatch calculation using the statuses just
established by the commitment.
Unit commitment functions operate on groups of generators. A group may include any set of generators that is
meaningful and is assigned load, net interchange, and reserve requirements to be met. The normal practice is to assign
dispatch groups to correspond to area control areas or companies. The area assignments found in load flow data bases
are often, but not always, related quite closely to the group assignments needed for unit commitment and economic
dispatch. In particular, it is quite common for the set of generators in a dispatch group to be the union of the sets of
generators in several load flow areas. For example, if three companies are represented by three separate areas in the
load flow case but operate under a "free flowing ties" pool dispatch agreement, the union of the three areas would be a
meaningful dispatch group. Because group assignments are often made readily as unions of area assignments the acca
command is provided as an econ function. acca allows you to assign complete areas to dispatch groups. Note,
however, that dispatch groups are not required to correspond to individual load flow areas or unions of load flow
areas; you can assign generators to groups arbitrarily through the econ:gend edit function and you can change the load
to be served and reserve requirements of dispatch groups arbitrarily through the econ:grpd edit function.
Each dispatch group may be assigned a net interchange and transmission loss as well as a load to be served. These
quantities may be changed arbitrarily through the econ:grpd edit function. As a convenience in the particular case in
which the dispatch group assignments correspond to unions of load flow area assignments with respect to transmission
losses and transmission net interchange boundaries, the losf function can be used to transfer loss and net interchange
information from the load flow working case to the dispatch data tables. Note again, though, that it is not necessary to
obtain dispatch group loss and net interchange data from the load flow working case; these quantities may be changed
arbitrarily through the econ:grpd edit functions.
Unit Commitment Rules
ECOM1 Command
The ecom1 command commits units in rank order where the rank is obtained by sorting the dispatchable units in each
area first by priority number and then within a common priority by true operating cost in a $/MWhr maximum output.
Non-dispatchable units with status of 1 and dispatchable units with priority of 0 are always placed on line.
Dispatchable units are then committed in rank order until the total on line capacity in the dispatch group is equal to or
greater than
(<load> + <net interchange> + <losses>) * (1+<res_pu>) + <res_MW>
ECOM2 Command
The ecom2 command is identical to the ecom1 command except that units are ranked within a priority level by
minimum load incremental operating cost in $/MWhr.
ECOM3 Command
The ecom3 command commits units to meet <load>+<net interchange> + <losses> but does not recognize a reserve
requirement. ecom3 selects units to be on-line by assigning generation at outputs corresponding to successive
estimates of group incremental cost.
The normal steps for doing economic dispatch are:
· Make sure that proper values of pmin and pmax have beenentered in the gens table of the working
case for each generator to be dispatched.
· Make sure that the area table of the working case is up to date with correct values for the scheduled
net interchange of each area.
· If you are going to use the loss factor calculated from the load flow case make sure that the case is
solved to sufficient accuracy.
· Read economic dispatch data with rede, redp or redi and edit it as necessary with grpd, gend,
curv, and edar.
· If appropriate, use losf and acca to match economic dispatch loadings to those of the load flow
case.
· Use ecom1, ecom2, or disp to execute generator commitment and dispatch calculations.
Several commands in the econ panel display edit tables in which only a selected set of columns can have values
changed by the user. Columns in which values may not be changed are identified by headings enclosed in square
brackets, [], and by names enclosed in square brackets in the following descriptions.
Economic Dispatch Data Tables
GRPD Table
grpd displays and allows you to edit certain data relating to dispatch groups. The economic dispatch calculation
dispatches generation within a dispatch group to equal incremental fuel cost. A dispatch group is a group of
interchange areas that are treated as one, with free flowing ties between them, for dispatch purposes.
Areas are assembled into dispatch groups in accordance with the group data records read by the rede or redp
command. (The group to which each area is assigned can be seen and edited via the econ:edar command.)
The grpd table displays:
Load The total load in the group. Constant current and constant
impedance components of load are evaluated at 1 p.u. voltage
Net int The net interchange of the group.
Loss MW The losses in the group as evaluated from the loadflow solution
currently in the working case by the losf command. This is used
to estimate the total generation needed to supply load, net
interchange, and losses.
Res pu The group reserve factor. The group must have a reserve at least
equal to this fraction of the actual generation, plus the required
fixed reserve.
Res M The fixed reserve required in the group.
[Nondis] The total output of non-dispatchable generation in the group. A
generator is non-dispatchable if no cost curve was read for it by
the rede, redp or redi command, or if its <Disp> flag is zero in
the gend table.
[Disp g] The total output of dispatchable generators in the group.
[Reqcap] The total generating capacity required in the group. This is equal
to
(Load + Net Int + Loss)*(1 + Res pu)+(Res MW)
[Comcap] The total generating capacity that is on-line in the group
[Totcap] The total generating capacity that is available to be committed in
the group.
[Cst$/hr] The total operating cost of the group in $/hour.
[Lambda] The incremental cost of the group in $/MW/hr. The incremental
cost of the group in $/MW/hr.
Only the <Load>, <Net int> <Loss MW>, <Res pu>, and <Res MW> entries of the grpd table can be changed. When
these values are changed the other entries of the table are not updated immediately. The effects of a proposed change
on required generation and capacity can be seen by changing data in grpd, leaving grpd and re-entering it.
GEND Table
gend displays and allows you to edit generator dispatch data. The gend table displays:
St The generator status.
[Ar] The area to which the bus at which the generator is connected is
assigned.
Disp The dispatch status of the generator
1 generator is dispatchable
0 generator output is fixed at Pgen and generator is non-dispatchable
Tp Generator type (2 characters), for information only.
Fu Fuel type (2 characters), for information only.
[Gr] The group in which the generator resides.
Pr Dispatch priority number. Units with Pr=0 are always on line. Units
with PR=1 are committed first, and units are then committed in order
of increasing value of Pr.
Pgen Generator real power output, MW.
Pmax Maximum dispatchable power output. This parameter is the value read
by REDE, REDP or REDI and is not the same parameter as gens.pmax
contained in the load flow generator data table.
Pmin Minimum dispatchable power output. The generator must run at this
output or above.
Fuel f Fuel factor.
O&M Operating and maintenance cost, $/MBtu.
Perf f Performance factor
Pen-f Transmission loss penalty factor.
[Mheat] Heat input at minimum load MBtu/hr.
Ht-rate Heat rate in MBtu per MW-hr at power output equal to the power at
the highest point on the incremental cost curve.
[FL$/MWhr] The actual cost of running the unit at power output equal to Pmax,
$/MWhr.
[ML$/MWhr] The actual cost of running the unit at power output equal to Pmin,
$/MWhr
[OP$/MWhr] The actual cost of running the unit at power output equal to Pgen,
$/MWhr.
[Pioc] The penalized incremental operating cost of the unit at output equal to
Pgen in $/MWhr. Pioc is the incremental heat rate of the unit times the
penalized fuel cost.
Pioc = (<fuel cost>*<fuel factor>+<om>)*<heat rate>*<perf-f>*<pen-
f>
[Rank] Rank of the unit in system-wide unit commitment list in which all
units, both dispatchable and non-dispatchable, are ordered in order of
increasing priority number and increasing full load actual cost in
$/MW-hr within each priority level.
Remark Text remark of up to 16 characters.
All items in the gend table except the identity of the generator (number, name, base kv, id), Ar, Gr, FL$/hr and
ML$/hr may be changed. These changes are acted on immediately upon exit from gend and are reflected in the grpd
table the next time grpd is executed.
EDAR Table
edar displays and allows you to change the assignment of areas to dispatch groups and the area reserve requirements.
It displays area totals for information only. The edar table displays:
Group The number of the dispatch group to which this area is assigned.
[Grp_nm] The name of the group.
[Load] Area load, MW.
[Net_int] Area net interchange, MW.
[Losses] Area losses, MW
Res_pu Area variable reserve in per unit of area generation.
Res_MW Area fixed reserve, MW.
[Nondis] Total output of non-dispatchable units in the area.
[Disp_g] The total output of dispatched units in the area.
[Reqcap] The total generator capacity required in the area.
(Load +Net int + Losses)*(1 + Res_pu) + Res_MW
[Comcap] The total capacity of units in the area that are on-line.
[Totcap] The total generating capacity available in the area including off-
line units.
CURV Table
curv displays and lets you edit generator incremental cost curves.
The MWn entries in this table are abcissa points on the curve of incremental heat rate versus power output of the
generator. The HRn entries are corresponding ordinate values. MW1, HR1, MW2, and HR2 must always be entered.
The remaining pairs of values may be entered as appropriate or left as zero if they are not to be used in the dispatch.
The value of MW1 should normally be less than or equal to the value of Pmin and the value of the last non-zero MWn
entry should be greater than or equal to the value of Pmax in the econ:gend table. This requirement is not mandatory,
however, and the incremental cost curves are projected linearly if necessary to reach Pmin or Pmax.
Command: econd (from tlc:Export Conductor)
EPCL: @return = econd("<file>")
Arguments: <file> Name of output file
Function: Writes conductor properties data file for use by the
tlc command
Prerequisites: None
The econd command writes out the complete description of the conductor properties data for use by the tlc command.
The description is written to a file in the format required by the command rcond.
Command: edit<table>
EPCL @return = editlf("<table>")
Arguments: <table> Name of data table to be edited
busd Bus Data
secdd Line / IMPD
line Line / COND
tran Transformer Data
tap Trans. Tap Data
gens Generator Data
motr Motor Data
load Load Data
shunt Shunt Device Data
svd Static VAR Device Data
gcd Power Electronic Devices
dcb DC Bus Data
dcl DC Line Data
dcc DC Convertor Data
area Area Data
zone Zone Data
owner Owner Data
iface Interface Data
bface Branch Interface Data
trans Transaction Data
tztab Impedance Correction Data
sel Select/Filter by Area/Zone
dele Delete Records in a Table
sort Permanently Sort a Table
Function: Examine and edit data tables
Prerequisites: Valid load flow data in working case
edit allows you to examine and modify most, but not all items of load flow data. edit is a full screen table-based
editor that organizes data in rows and columns. The simplest function of the editor allows you to display a table, to
move the cursor to any row and column on the screen, and to type a new value at the cursor location.
Click edit from the main menu will bring up a sub-panel.
The initial control is on busd (box is slightly darker). The arrow keys or mouse can move to another box and click or
carriage return to activate that table. Clicking on the blue edit box in the lower right corner will remove sub-panel and
return to the main menu.
In this discussion it is important to distinguish between the edit cursor and the mouse pointer. The edit cursor always
indicates its position by highlighting both the row and column in a table. The mouse pointer is always an arrow and it
can be anywhere. You can move the edit cursor to a desired table entry by moving the mouse cursor to that table entry
and clicking the left mouse button; the highlight will move immediately to indicate that the new table entry is selected.
In this description, "cursor" refers to the highlight indicating the edit cursor. A reference to moving the cursor means
the use of the mouse directly, or the arrow keys, etc., or the corresponding keys to move the edit cursor to a new entry
in the table. References to "keys" in this description mean the keyboard keys or the corresponding function targets
displayed along the bottom of the edit windows. A help page describing the entries of the table may be displayed by
hitting the F1 key when the table name is highlighted, such as, busd, secdd, line, etc.
The argument of the edit command specifies the table to be edited. For example, clicking on edit then gens. brings up
a table of generator data with the cursor in the upper left corner at row 0, column 0. The cursor can be moved at will.
Typing a new value changes the value of the data item displayed at that cursor location. Some columns of an edit
table have a range of values that may be entered.
Some columns of an edit table may be "protected". A protected column looks like all others until you move the cursor
to it, then a beep is heard and no change of the value is made when attempting to type a new value. The background
color of the protected field will remain blue, whereas, an unprotected field will be white.
You should regard all data changes made with edit as permanent. If you type an incorrect value, you should retype it
immediately so that you don't forget to "come back" and fix it up. If you decide that you prefer the previous value to
the one that you just typed, hit F12 key to show you the original value and here it can be re-entered. The last value
typed at a cursor location is stored when you leave the editor. If you type an improper value, such as alphabetic data in
a numeric field or an invalid character, the edit will ignore the entry and leave the value unchanged. Each value entry
is terminated by clicking CR or moving the cursor.
A shortcut method of performing many common edit features can be accomplished by clicking the right mouse button
on a selected row in the edit table. Prior to clicking the right mouse button, the user may mark rows for printing or
deleting. Shown below is the right mouse click panel
Moving down or up will highlight a feature to choose. The features include :
Edit record Same as Record Editor (F8) and will display associate
records to edit or scan
Scan Record Display the scan diagram
Column: (heading) For the column (heading) select all YYY. This is
equivalent to F1 and F4 on that element.
CAUTION: if the cell value is a real number, it may not
find any matches because of the precision issue.
Print Marked Rows Print all the previously marked rows (same as Row Print)
Print Marked Print all the previously marked records (same as Record
Print)
Records
Delete Marked Rows Delete all previously marked rows – a panel to confirm
action will allow the user to cancel or delete marked rows.
edit is controlled by function targets and/or keys as described in Table 1 (Editor Keys) and Table 2 (Editor
Functions).
Table 1
Editor Keys
Key Function
F1 Enter search target
F2 Column Total
F3 Brings up scan drawing
F4 Bring up the Fill Panel
F5 Repopulate Table (Refresh Table)
F6 Insert/Move rows
F7 Delete rows
F8 Invoke Record Editor
F9 Send data to printer, text file, or graph
F10 Drop down menu activator
F11 Sort on this column (low to high)
F12 Show the original cell value
Home Go to beginning of the record
End Go to end of record
Page up Go up one page
Page Down Go down one page
Arrow keys Move the cursor
Tab Move cursor to next cell
Shift Tab Moves cursor to previous cell
CNTL Home Move to top of the table
CNTL End Move to bottom of the table
SHIFT Page Up Mark rows upward for 1 page
SHIFT Page Down Mark rows downward for 1 page
ESC Leave the editor
Table 2
Editor Functions
Action Desired Key
Move cursor within screen Arrow keys
Go to extreme right or left of display Home/End
Scroll display up (for rows above) Arrow down
Scroll display down (for rows below) Arrow up
Move display up one page Page up
Move display down one page Page down
Go to top of table CNTL Home
Go to end of table CNTL End
Specify a search relation F1 then type value
Search down column Cursor to column then F2
Search up column Cursor to column then F3
Display only rows satisfying relation Cursor to column then F4
Insert row Cursor to row then F6
Delete rows F7 then cursor as directed
Examine a Record in Detail Cursor to row then F8
Print rows F9 then cursor as directed
Fill column with value F4; enter value; <CR>
Replicate rows Cursor to row then F6
Refresh Table After Filtering F5
Move/Add a Record by Copying Cursor to row then F6
Show the sum of column values Cursor to column, then F10
Sort the table according to this column Cursor to column, then F11
Display manual page for this table Hit F1 button when edit table
is highlighted, such as, busd,
secdd, or gens
The up arrow, down arrow, left arrow, right arrow, page up, page down, home, and end keys are self explanatory,
and never cause any change of data. Keys F1, F10, F11, are "safe" in that they do not change data, but they can move
you far from your "place" in the table.
Keys F4, F6, F7, F8 are dangerous; they modify the tables and the modifications are saved in the current database.
Key F1 select button does not prevent you from changing data values; it just lets you work on a selected group of
records without being diverted by others. For example, you could use F1 select only records relating to a single area,
and then do extensive editing on that area. When you hit escape, the entire table, both the records selected by F1 select
and those hidden by F1 select, are saved in their correct positions in the working tables with the last entered data in
effect. Key F1 discard selects rows of the table that satisfy the specified relation.
An example: When in the TP column, hit F1 and selected the discard option This brought up the following panels:
Entered a 2 in the find panel, clicked OK and the Discard Records panel is displayed. By clicking OK, all the records
that don’t match type 2 will be deleted out of memory and gone permanently. The results are shows below.
Relational search and select (F1)
The F1 key allows you to specify a relation for subsequent use in response to the SrchDn SrchUp, Select, Discard
buttons. F1 produces a box with the prompt Find: Your response to the prompt must be of the form
<relation><value>.
<relation> May be one of
nothing Synonymous with equal
= Equal to
> Greater than
< Less than
<= Less than or equal to
!= Not equal to
<value> is a value of the same type as the data at the cursor location. If the cursor identifies a value with a decimal
point, value is a real number. If the cursor identifies a value with no decimal point, <value> is an integer and any
digits to the right of a decimal point in <value> are ignored. If the cursor identifies character data, <value> is
interpreted as a character string.
When working in a character column the find function will search either for an entry that matches the string entered in
response to F1 exactly, or for an entry that contains the string as a substring.
If the string entered in response to F1 does not end with a *, it will be found only if an entry in the column matches it
exactly.
If the string entered in response to F1 ends with an *, it will be found if an entry in the column contains that string, less
the *, anywhere within the entry.
For example, if you type ES, and the column contains ESSEX, the ESSEX entry will not be found; but if you type ES*
the ESSEX entry will be found. If the desired string is not found, the find function will give you another chance by
setting both the search string and the column strings (internally) to lower case and search again.
Up to 20 searches are remembered, so upon subsequent F1's in any table you may hit the up or down arrow to cycle
through the list of previous searches. Then proceed with the normal use of the F1 SrchDn SrchUp, Select, Discard
buttons
Sum Column Values (F2)
Highlight or select a column and then do a Right mouse click or F2 to display the algebraic sum of all entries in the
column selected. Also clicking heading – for example – clicking GLOAD heading will give you the following:
Scan a Bus (F3)
The F3 or SCAN button brings up the a graphical representation of the bus currently highlighted as shown below:
Fill a Column (F4)
Hitting the fill button on the bottom toolbar fills the, column in which the cursor is located with the value specified by
the fill panel shown below.
· Click Fill
· Type the desired value
· Click either Fill All, Fill Up, or Fill Dn
· OR type the number of rows to fill partial column
· OR Fill Marked Rows
Refresh/Repopulate Table (F5)
After the user has filtered the table using the F1/F4 or Find/Select options, the user can refresh the table by selecting
the F4 key or selecting refresh from the bottom menu. This will repopulate the table as seen before the filtering.
Add New Record(s) with the Record Editor (F6)
To add a record to a table, move the cursor to the appropriate row and click F6. Click "Insert above", "Insert
below", Replicate One Line, or Replicate > One Line as needed.
When a bus is to be added to the power system model its record must be added to the <bus> data table BEFORE data
records referring to that bus are added to the <line> or other records.
To add a row with the same contents as the present row move the cursor to the appropriate row and hit F6 , then click
"Replicate one line" or "Replicate > one line" as needed.
Clicking "Replicate one line" adds a single copy of the current record adjacent to that record and leaves you in the
table editor.
It is normally advisable to alter one of the two resulting identical records immediately, either by direct entry of new
values in the table editor, or through the record editor.
Move/Add a Record by Copying (F6)
Records which have been deleted using the F7 Delete command, are copied into buffer space and "remembered" by
edit. These records may then be put-down one or more times above or below any row in the same table. For example,
you could use F7 to "pick-up" 4 rows from the “busd” table, hit <ESC>.
Pick up another case using getf.
Edit the “busd” table, and use Insert "Put copy below" to copy the contents of the F7 buffer into the current case in
memory.
The results below show the 4 lines copied below the shaded line from the previous busd table.
It is important to save all changes made to a table before attempting the F7/F6 combination. To insure the contents of
the table are saved, escape out of the table and re-enter before clicking F7. If you are moving buses in the busd table,
DO NOT escape out of the table after F7. Put the contents of the buffer down with F6 THEN escape. Otherwise the
buses are deleted with F7 and every component identified at that bus will appear with a zero bus number.
Delete Records (F7)
To delete records from a table, move the cursor to the first record you want to delete, and click F7.
A delete panel appears and Delete Lines is selected. Next a selected number of records can be deleted by typing in
the Number of Rows to delete in the panel or a range of records can be deleted by using the shortcut below.
To delete a range of records, highlight the rows with the mouse and keeping the mouse on the selected rows -
right mouse click, which brings up the panel above and select Delete Marked Rows. Next confirm “Delete Marked
Rows”? Click OK.
Here are the results of deleting buses 11, 12, 13, and 14.
It is important to save all changes made to a table before attempting the F7/F6 combination. To insure the contents of
the table are saved, escape out of the table and re-enter before clicking F7. If you are moving buses in the busd table,
DO NOT escape out of the table after F7. Put the contents of the buffer down with F6 then escape. Otherwise the
buses are deleted with F7 and every component identified at that bus will appear with a zero bus number.
Modify Record Data (F8)
Clicking F8 invokes the data record editor.
If there are other records associated with this table they are listed and made available for editing. When busd is
selected, the record editor displays the entire contents of a record, regardless of the size of its window.
Please note that starting with PSLF V21.0_06 the date fields will show up as 8 characters, In the edit table the year
field will display as four digits, e.g. 2039 etc. On the record editor the date field will show up as an eight character
string, e.g. 20391231. In case one wants to change a date via EPCL one should use the datarec EPCL function – e.g.
@ret=datarec(1,3,54006,"1","date_out", "20390101"). Note that the date is passed as an eight character string.
If the record is too long to be shown completely within the window the page up, page down, home, and end clicks
can be used to move within the record. Page_Up moves the record editor to the previous record and Page_Down
moves it to the next record. Enter new values as usual; Backspace will delete the character just entered. At any point,
scan can be selected from either the F8 panel or the toolbar the bottom of the main menu.
Write out Table Rows or Complete Records (F9)
To write a report listing the contents of the table, position the cursor at the first record of interest and click F9.
In the resulting selection box click "Row print" to reproduce rows of the table as they appear on the edit window, or
"Record print" to report complete records as they are shown by the record editor.
A box appears requiring you to specify the report destination and the number of records to be reported (Figure edit-
13). Fill in the "File Name" entry in this box with the name of the file that is to receive the report. Entering "print"
or making no entry sends the report to the printer. Click the "Append" entry to append output to a file otherwise do
not check the append here to start writing at the beginning of the destination file and overwrite the prior contents. Put
either 0 or the number of records to be reported in the "Number of rows" entry. A non-zero entry produces a report
of the stated number of records starting at the current record.
Selecting the “EEPC output” option will write the table to an ascii file. Rows may be marked by hitting CNTL_A to
mark all rows or click the starting row then hold down the shift key and move the scroll bar up or down to mark the
desired rows then hit F9. The ascii file written will contain the selected rows written as one record, therefore it can be
imported easily into a spreadsheet program.
Sort or Index a Table Display (F11)
You can sort the display of a table, or replace the values in a numeric column with index values by clicking F11.
Clicking F11 displays a box to sort ascending, sort descending, sort by Mag ascending, sort by Mag descending,
sort time stamp ascending, sort time stamp descending, or index ascending, index descending. The above
functions use the column containing the cursor as their key variable. You may sort by time stamp to display the order
in which the data has been changed.
Permanently sorting (SORT command) the bus names can be done for the busd table but not directly in other tables,
such as, gens or load. Here’s a way to sort names in the gens table.
· After the save case is in memory, click EDIT:gens
· Move the cursor to the NAME column and sort in ascending order (this is a temporary sort).
· Move to a column that isn’t used for normal load flow data, such as, QTAB. Click SORT and index ascending
which will start numbering the column from 0 to the number of items in the table.
· Go to the SORT command, then click GENS and move down to the row called QTAB and enter a 1, then hit OK.
· Best to return to EDIT:GENS to check the names are sorted alphabetically and also fill the column labeled QTAB
with the original value and resave the case.
Replicating an element, such as a transformer or generator that has a bus reference inside the record, will put a zero
entry for that bus. Unfortunately a zero entry which is an internal index 0 number translate to the first bus in the
system. This needs to be fixed fbut until it is, the work around is to execute the Record Editor (F8) and manually
change those entities to valid numbers.
These sorting and indexing operations change the display of the table but their results are not saved in the data table
when you leave the editor. They are, therefore, useful for examining data, but not for changing it. To sort a table
permanently, use the SORT command of PSLF.
Using the Edit Log File
The editor will keep a log file containing all changes made to data if the edit log feature is turned on. This parameter,
dispar[0].edlogflg, may be set in the parm:display panel or in the javaini.p file. The name of the edit log file is
located in the variable dispar[0].edlogfile. If the flag is 0 no log file is written. If it is 1 the file is opened and all
subsequent edit functions are written to it. If the flag is 2 the changes are appended onto the end of the log file. The
file is written in EPCL language therefore the same data changes can be made on several different cases by running the
log file through the EPCL language processor.
Command: eepc (from exim:Export EPC)
EPCL: @return = eepc( "<file>","<page>","<tie>",
A "1" in the selective output displays the following panel which allows area, zone, bus or kv selections to reduce the
amount of exported data. When area is specified, a bus is selected if it falls in any of five area ranges. When
combinations of area, zone, bus and kv are specified, a bus is selected by logic AND operation of the combinations.
When the selective output is 1, a substation record is written to output file if it has at least one bus that satisfies the
selection criteria. When the selective output is 1, an area/zone record is written to output file if it has at least one bus
that satisfies the selection criteria. When the selective output is 1, an owner record is written to output file if it has at
least one bus, load, generator, shunt, svd, branch, or transformer that satisfies the selection criteria.
When the selective output is 1, the function can write data to epc file using area/zone of elements or area/zone of buses
that the elements are connected, or both. When the use area/zone of bus is selected, an element is written to epc file if
its bus is assigned to the selected area/zone. when the use area/zone of element is selected, as element is written to epc
file if it is assigned to the selected area/zone.
The page format flag when set to 1, outputs column headings at the top of each page. This is used for documenting a
case. If you are sending the file to another user do not use this option.
If the tie line flag is set to 1, eepc exports all the branches and transformers that are tie lines. This is only important
when the selective output flag is on. When a case is exported with the selection flag on the far-end buses will not be
exported, therefore importing the same case will ignore those tie line records.
The date value is in the form mmyy. For example, July 1999 is 0799 and August 2005 is 0805. Any year value from 00
to 49 is considered 2000 to 2049 and 50 to 99 is considered 1950 to 1999. If the in-service date is less than or equal to
the date value and the retirement date is greater than or equal to the date value, that record is exported.
When the selective output is 1 and data value is not zero, a bus is written to the output file if it satisfies both
conditions.
eepc defaults the version number to the current PSLF version number.
The table selection flag displays bring up the save in panel:
Enter the filename of the file to be exported test.epc and hit save and the table select dialog panel will be displayed.
You can suppress the output of the entire table, such as the bus table by entering a zero adjacent to the table name. In
epcl mode if the fifth argument (select tables) is set to "1" then the sixth argument contains a string of zeroes and ones
to determine which tables to export. The order is from bus, branch, transformer, ... plant, block, balancing authority.
@ret = eepc("base98.epc","0","1","0","1","11100")
outfile = base98.epc
no heading
export tie lines
no exporting by date
yes select table exporting export bus, branch, transformer but don't export generator or load tables and all the other
tables will be exported
Note: In PSLF version 17, the user can export an epc file with either 12 character bus names (default) or 8 character
bus names. This feature has been provided so that if any user wishes to export a case from version 17 and wants to
import it back in previous PSLF versions which support only 8-character bus names, it could be easily done. If the
casepar[0].longname flag is set to 1, the epc file would be written with 12 character bus names and if the
casepar[0].longname flag is set to 0, the output epc file would contain only 8 character bus names.
Command: eexa (from exim:Export Extn)
EPCL: @return=savexa("<file>")
Arguments: <file> Name of output file
Function: Writes an extended record data text file
Prerequisites: Extended records defined in PSLF
The User Defined Records and Extended Records may be saved in a text file for later user by PSLF. The command
eexa writes the extended record data to a text file. At the same time, it writes an EPCL program to read in this file.
For example, if a user has a User Defined record names "relay" she may save it using the command eexa with the
name "ext.exa". The name of the EPCL program to read the file will be named "read_ext.p". This indicates it is used to
"read_" the "ext.exa" file.
If the contents of the "pslfexr" directory needs to change, the user should use a text editor to change to extension file
(<file>.exa) along with the EPCL (read_<file>.p) to reflect the change.
When the extended records are part of the standard PSLF database, the bus identifier is written to the .exa text file.
The bus names flag located in parm:display controls the reading of bus identifiers when rexa is executed.
If:
bus names flag = 0 bus numbers are used
bus names flag = 1 bus names are used
see Chapter 2 - Section 2.9 "Extended Tables, Records, and Members" for more information on Extended Records.
Command: efax (from Other:lina:Calculate Distribution Factor)
EPCL: @return = efax("<report>","<input>")
Arguments: <report> Name of file or printer to receive output
<input> Name of file specifying transaction and contingencies
Function: Calculates branch outage distribution factors and scans
system for overloads.
Prerequisites: Valid solved load flow in working case
efax calculates the branch outage distribution factors for all branches in a designated set of areas, writes these factors
to a file for further use by post-processing programs, and scans all branches in the designated areas for overloads. efax
requires a solved load flow case as it's starting point; this case can either be in the working tables before efax is
invoked, or it
can be picked up from a history file by efax.
In discussing efax we refer to "outaged" branches and "influenced" branches. The branch outage distribution factors
calculated by efax are defined by
Change in MW flow on influenced branch,k-l
OTDF{(i,j)(k,l)} = ------------------------------------------
Pre-outage MW flow on outaged branch,i-j
The branch outage distribution factors are calculated using the "DC analogy" model of the power system in which
each branch is modeled approximately by
P{i,j} = ( phase angle(i) - phase angle(j) )
------------------------------------------
branch reactance {i,j}
efax checks for overloads on all influenced branches using the approximation to the flow with the outage in effect
using the approximation
P{k,l}with outage of branch i-j = P{k,l}pre-outage + OTDF{(k,l)(i,j)} * P{i,j}pre-outage
The pre-outage flows are taken from a DC analogy load flow solution that is made automatically by EFAX when it is
invoked.
THE EFAX CONTROL FILE
efax is controlled by a file containing records in the order given below. This file should have the name extension
".efx".
Base case record (optional)
Losses keyword records (optional)
Setting records (mandatory)
Monitor area records (at least 1)
End keyword record (mandatory)
The content and significance of the records are as follows:
Base case record
base <"name">
This records instructs efax to retrieve the named history file. If it is not present efax works on the case presently in the
working tables; if it is present the case in the named history file completely overwrites the working tables and becomes
the base case for efax. In either case efax destroys the load flow solution in the working tables. Accordingly, if the
working tables contain a valuable new load flow case just before efax is to be used, this case should be saved in a
history file with savf before efax is invoked.
Losses Records
losses <area> <loss_factor>
<area> Number of an area in which branches are to be outage and
monitored
<loss_factor> Factor by which loads in the area are to be multiplied ( default = 1.0
)
The losses records specify how the absence of resistive transmission losses in the DC analogy network model is to be
handled. Because resistance is neglected in the DC analogy model the loads must be increased artificially to bring the
total load into balance with the generation. You can use either a single losses record with no arguments or a series of
losses records with the arguments present.
Use of a single losses record with no arguments causes efax to increase all loads in every area by the same proportion
so that the losses in the area are taken up by the increase in load in that area.
Use of a losses record with its arguments present causes efax to increase all loads in the specified area by the factor
specified in the record.
You either have a losses record without arguments OR a losses record with arguments but not both.
Setting Records
You can set the control flags to be used by efax by including this sequence of records in the control file
setting
rate <rat>
phas <fp>
minfac <mf>
<rat> is the number of the rating to be used in checking for overloads in the base case and with branch outages in
effect. <rat> must be 1 thru 8.
Setting <fp> to 1 instructs efax to treat phase shifting transformers whose type code is 4 or 14 as regulating elements
when calculating distribution factors. When <fp> is 1 there is no change in flow on the regulating phase shifters and
the distribution factors for all other branches reflect this. Setting <fp> to 0 instructs efax to treat phase angle regulators
as locked so that the flow through them changes in response to outages and the distribution factors for other branches
reflect this.
<mf> is the minimum value of distribution factor to be reported in the results file. A value of about 0.05 for <mf>
greatly reduces the volume of the results file by eliminating records for branches that are not significantly affected by
each outage.
The setting record must be present if any of the three following records is to be present. Setting records are needed
only when it is necessary to change the default settings, <rat> = 1, <fp> = 0, <mp> = .01.
Monitor Area Records
monitor area <number> <starting kv> <ending kv>
Each Monitor Area record instructs efax to examining every branch in area <number>. At least one such record is
required, and you can examine up to ten areas <starting kv>. Within the area include all buses whose base kv is
greater than or equal to the starting kv value (default = 0 ) and less than or equal to <ending kv> ( default value = 999
).
Examining a large part of the system with efax is permissible and practical for smaller system models. With large
system models, however, such broad examination generates a huge file of distribution factors and is a time consuming
task.
THE EFAX RESULTS FILE
efax places its results in a file containing stanzas as follows:
Citation of Monitored Areas
Listing of Overloads in the Base Case
Listing of OTDFs for branch outage 1
Listing of OTDFs for branch outage 2
.
.
Listing of OTDFs for branch outage n
In the following the set of record entries of the form
<i> <"n"> <kv> is the identifier of the "from" or "to" bus of a branch and <"id"> is the branch identifier.
Base Case Overload Stanza
Each overloaded branch in the base case creates a record in the base case overloads stanza in the format
<i> <"ni"> <kvi> <j> <"nj"> <kvj> <"id"> <mw> <rating> <pct>
<mw> is the base case loading on the branch in MW
<rating> is the rating in MW
<pct> is the percentage loading
The stanza of base case overload records is terminated by a record containing 99999 in its first 5 columns.
OTDF Stanzas
The first record of each OTDF stanza specified the outage branch in the following format
<i> <"ni"> <kvi> <j> <"nj"> <kvj> <"id"> <mw>
<mw> is the base case loading on the branch in MW
This record is followed by a record for each influenced branch whose OTDF for the outage branch is greater than <mf>
in magnitude. Each such record has the format
<k> <"nk"> <kvk> <l> <"nl"> <kvl> <"id"> <otdf> <bmw> <dmw>
<mw> [<pct> ***]
<otdf> is the value of the outage distribution factor
<bmw> is the loading on this influeneced branch in the base case, in MW
<dwm> is the change in loading on this influenced branch caused by the outage,
in per unit
<mw> is the loading on this influenced branch with the outage in effect, in MW
<pct> is the percentage by which the branch is overloaded when the outage is in
effect.
The <mw> <pct> entries are present only if the branch is overloaded when the outage is in effect and only of the
branch is not overloaded in the base case.
Each OTDF stanza is terminated by a record with 00000 in its first five columns.
Figures efax-1 and efax -2 show a small illustrative segment of a power system and the results file produced by using
efax to monitor this subsystem. The defaults settings were used and area 5 was monitored. The generator step-up
transformer 1-101 is overloaded in the base case and is reported ahead of the 9999 record even though it is not in the
monitored area.
Figure efax-1
Figure efax-2
Command: epcl @return = epcl("<file>")
EPCL:
Prerequisites: None
The epcl command initiates the epcl power system simulation language. epcl presents the list of programs in the
directory specified by the epcl file path and allows you to select one. If a selection is made, the selected epcl program
is executed immediately. If no selection is made the epcl panel goes into its command mode and displays the prompt:
PSLF:EPCL:
To return to PSLF from the epcl shell, use the epcl command "end".
Sometimes it makes sense to run an epcl program before and/or after a command everytime it is executed. If a
directory named "epclcom" exists in any of the PSLF search paths and a file is in it called <command_name>_pre.p,
the epcl file is run BEFORE the command is executed. If <command_name>_pst.p exists, the file is executed AFTER
the command. <command_name> may be any commands that you see in the PSLF menus. This function is available
through menu mode only.
The epcl language and the epcl panel; are described in Chapter 5.
Command: epole (from tlc:Export Pole)
EPCL: @return = epole("<file>")
Arguments: <file> Name of output file
Function: Writes Pole data file for use by the tlc command
Prerequisites: None
The epole command writes out the complete description of the Pole data for use by the tlc command. The description
is written to a file in the format required by the command rpole.
Command: epti (from exim:Export PTI)
EPCL: epti.p
Prerequisites: Valid load flow case in working case
Export PTI executes epti.p located in upslfxx\stdepcl. epti.p exports load flow data in memory in the PTI PSS®E
Load Flow Raw Data File format (version 23, 24, 25, 26, 27, 28, 29, 30, 31 and 32). epti recognizes the status of all
components. The shunt power entries in each bus data record are the totals for components that are in-service at the
bus.
Records are placed in the file for all generators, lines and transformers, with the status entry having the appropriate
value. Information on out-of-service shunts and static var devices does not go into the PTI-format file.
Individual svd and shunt components are lost in epti because the PTI file format does not allow component id's for
those devices.
The page format flag when set to 1, outputs column headings at the top of each page. This is used for documenting a
case. If you are sending the file to another user do not use this option.
If the tie line flag is set to 1, epti exports all the branches and transformers that are tie lines. This is only important
when the selective output flag is on. When a case is exported with the selection flag on the far-end, buses will not be
exported; therefore importing the same case will ignore those tie line records.
The date value is in the form mmyy. For example, July 1999 is 0799 and August 2005 is 0805. Any year value from
00 to 49 is considered 2000 to 2049 and 50 to 99 is considered 1950 to 1999. If the in service date is less than or equal
to the date value, and the retirement date is greater than or equal to the date value, that record is exported.
epti defaults the version number to 30 .
Notes for PSS®E-32.0 V32 Import/Export:
1.) ADJM and STAT fields for switched shunts are ignored during import. ADJM defaults to "1" and STAT field
defaults to "1" during export.
2.) Number of zones were increased from 2,000 to 9,999 going from V31 to V32. Currently, both PSLF 60K and 80K
versions support up to 5,000 zones. If the program sees more than 5,000 from the input data, import is terminated and
message will be printed to the user. This limit may be increased in future PSLF releases.
3.) PTI’s asymmetric active power flow control mode (COD1 = COD2 = COD3 =5) for transformers is currently not
supported by PSLF. These transformers are treated as “fixed tap” type during import. Hence, the winding connection
angles CNXA1, CNXA2, and CNXA3 are set to 0.00 degrees during export.
Command: eqiv (from misc:Equiv Network) or Other:misc:Equiv
Network
EPCL: @return = eqiv("<report>","<bzmax>",
“<genmin>",<shmin>", "<bound>")
Arguments: <report> Name of file or printer to receive output
<bzmax> Maximum equivalent branch Z (p.u.)
<genmin> Minimum equivalent generator MVA
<shmin> Minimum equivalent shunt Y (p.u.)
<bound> Code for equivalent boundary currents
0 to use gens/loads according to boundary bus type
1 to use loads according to boundary bus type
2 to use gens according to boundary bus type
3 to use gens changing gens r and x
Function: Replaces part of the working system with its electrical
network positive sequence equivalent for normal usage,
and zero and negative sequence equivalents if the working
case has sequence data for short circuit calculations.
Prerequisites: Valid solved load flow data in working case with the
“type” of all buses to be removed set to -1
or
eqiv first brings up the Get Report Destination panel where the type of output is selected.
eqiv constructs an electrical equivalent of a part of the network in the working case by shifting load and generation at
selected buses to the buses at the boundary of the region being equivalenced and creating equivalent lines between
these boundary buses.
The bus voltages in the working case must be a solution of that system such that the mismatch at all boundary buses
are acceptably close to zero.
The subsystem to be equivalenced is defined by setting the type code, busd[].type, of all buses in the interior of the
subsystem to -1. eqiv deletes all buses whose type is -1 and adds resulting equivalent lines, shunts, and generators to
the system. Eqiv does not find buses to be "equivalenced"; this can be done by relational operations in edit or by an
EPCL program.
eqiv requires you to enter at the keyboard:
Boundary source flag whose value is 0, 1, 2 or 3
Maximum equivalent line impedance, in per unit
Minimum equivalent generator output, in MW
Minimum equivalent shunt admittance, in per unit
User-defined specific area number for equivalent components, such as equivalent generators, loads, lines, and
shunts. When this textbox is left at default value 0, the components share the same area number as the boundary
buses to which they are connected.
User-defined specific zone number for equivalent components, such as equivalent generators, loads, lines, and
shunts. When this textbox is left at default value 0, the components share the same zone number as the boundary
buses which they are connected with.
Code for the boundary currents:
0 Instructs eqiv to place an equivalent generator or equivalent load at each boundary bus in
accordance with the type of the bus. A generator is used if the bus type is 0, 2, or -2 and a
load is used if the bus type is 1. When an equivalent generator is placed at a type 2 bus, the
type is changed to -2 to give the bus effectively unlimited reactive power capability, and the
equivalent generator VAR limits are set equal to its VAR output.
1 Forces eqiv to place an equivalent load at each boundary bus, regardless of the bus type
2 Forces eqiv to place an equivalent generator at each boundary bus, regardless of the bus type
3 Forces eqiv to place an equivalent generator at each boundary bus, with sub-transient
resistance and reactance
4 An equivalent generator is placed at each boundary bus when actual real power is injected to
the boundary bus; an equivalent load is placed when actual real power is withdrawn.
Equivalent lines with impedance above the maximum, equivalent generators or loads with MW value below the
minimum, and shunts with magnitude below the minimum, are discarded.
The default values are:
Boundary source flag 0
Maximum line impedance 5.0 pu
Minimum generator output 2 MW
Minimum shunt admittance 0.001 pu
User-defined specific area number for equivalent components 0
User-defined specific zone number for equivalent components 0
When eqiv finishes, the working case contains the original unequivalenced part of the system as well as the
equivalent. The original data for the equivalenced part of the system has been removed. The equivalent appears as
new lines, generators, loads, and shunts, all of which have the identifier "eq" ("be" in the case of shunts).
CAUTION:
1) Tie lines from the equivalent area to the external system should not be jumpers.
Command: event
The event table can also be invoked from the user interface by selecting “evnt” option under Dynamics menu as shown
below
Table: event
EDER TABLE DESCRIPTION
HEADING DESCRIPTION
TIME Time in seconds when event occurred
MODEL Name of the model (if any) which triggered the event
DEV_TYPE Type of device
EVENT_DESCRIPTION Description of events in detail
FBUS “from” Bus of the device connected to the model
TBUS “to” Bus of the device connected to the model
ID 2 character identifier
CK 2 character circuit name
Command: exim
EPCL:
Arguments: <none>
Function: Initiates import/export panel
Prerequisites: None
exim initiates import/export subsystem of PSLF and provides access to reading or writing EPC's and other load flow
formats in an ASCII text file. EPC, IEEE common format, WSCC, Philadelphia Electric and PTI formats may be read
directly into PSLF.
exim raises a submenu giving access to the Import EPC, Import CMF, Import PECO, Import PTI, Import Extn, Import
WSCC, Export EPC, Export CMF, Export PECO, Export PTI, and Export Extn.
Command: flow (from tabr:Flow)
EPCL: @return = flow()
Arguments:
Function: Lists branch flows in an edit table
Prerequisites: Valid solved load flow data in working case
The flow command shows the branch flows of a solved load flow in an edit table like this(only partial table shown):
The branches are shown in this table initially in from bus-to bus order. You can examine this table via the search,
select and sort capabilities of the table editor, but no data in the working case tables can be changed through this edit
table.
The rating column of this table contains the current rating of each transmission line corresponding to the line's first
MVA rating in the line data table, or the first MVA rating of each transformer. The %rate column of this table
contains either the
· line current flow as a percentage of rated current
or
· transformer MVA flow as a percentage of rated MVA
Command: getf
savf
EPCL: @return=savf("<file>")
@return=getf("<file>")
= -1 for failure
Arguments: <file> Name of history file
Function: Store and retrieve history files
getf restores a load flow case stored as a history file to the working tables. savf records the complete contents of the
working tables in the history file in a compact form that can be retrieved very quickly. History files can be read only
by the PSLF command getf. getf reads a history file and returns the working tables to their condition when savf was
used to create the file. A history file should be saved with a file suffix of ".sav".
savf has no effect on the working tables, but destroys all prior contents of the history file into which it writes. getf
leaves the history file unchanged, but destroys all prior contents of the working files.
History files may be created with savf until the disc is full. Obsolete history files should be deleted from the disc from
time to time. On UNIX systems, savf reports on the size of the history file (before compression). It checks the
filesystem for available space, warning the user when there is not enough space to save the file.
Both getf and savf display the select panel upon execution. At this point, a list of history files is displayed with the
*.sav extension.
savf displays a Save File panel prompting for a .sav file name. If the file already exists, a "yes" or “no” Save File
panel appears which allows the writing to take place. Clicking on "no" causes savf to terminate without writing
anything.
When savf is called from epcl, the history file should be saved with a file suffix of ".wrk". This eliminates the
confirmation box and the epcl program executes without stopping.
savf sets the time stamp in the working case before writing the history file and writes the time stamp into the history
file. getf retrieves the time stamp from the history file. Hence when getf has been completed the time stamp in the
working case has the value it had when the history file was made. The time stamp in the working case can be set to
the present time with the <date> command.
SAVF AND GETF ARE UNFORGIVING. THEY DESTROY THE PRIOR CONTENTS OF THEIR
DESIGNATED DESTINATIONS. THEY MUST BE USED WITH CARE.
EXTENDED RECORD DATA
The data in the new and extended records may also be written in on your computer for later use. When the PSLF
database is saved with the savf command, the program automatically prompts you to save your extended records. A
save file dialog is displayed after the load flow data (.sav file) is saved. The file name for the extended records should
have the same prefix as your history file and a suffix of ".exs".
When your load flow data is retrieved with the getf command, an open file dialog is displayed with the name of the
corresponding extended records file highlighted. Click on the name to read in the data.
The reading and writing of the extended records may be bypassed by hitting ESC at the open/save file dialog. You
must be sure that the pslfexr directory is set up correctly before saving a binary file. The directory must not be changed
once the binary file is created.
To read and write the extended records in EPCL use the following commands:
@ret = getexs(<file_name.exs>)
@ret = savexs(<file_name.exs>)
Command: getm Command mode and epcl only
EPCL: @return = getm( "<file>","<area>")
Arguments: <file> Name of history file
<area> Unique area number to store temporary results
Function: Merge part of case in history file into Working Case
Prerequisites: <file> must be valid history file and working case must
contain a full or partial load flow data
getm is a special version of getf for use in merging two system models. A typical use of getm is to replace one model
of a given area of the system with the model of that area from another system model. The steps in this operation for
system case A in which the model of area K is invalid and system case B in which area K is modeled correctly might
be as follows:
· Pick up the case A history file with getf
· Use an epcl program or the editor to set up the type of each bus in area K to -1 and the status of every other
component in area K to -1
· Use the dele command to delete area K from the working case
· Use getm to merge area K from the history file of case B into case A in the working case.
getm reads selectively from a load flow history file into the Working Case. getm accepts a list of areas to be read;
enter a sequence of up to 20 area numbers such as:
a1, a2, -a3, a4, -a5
This sets areas a1, a2 through a3 inclusive, and a4 through a5 inclusive to be read and all other areas to be ignored.
Then
· Bus data and d.c. bus records are read only for buses assigned to a "read" area in the history file being read by
getm.
· Line, transformer, d.c. line, and d.c. converter records are read only for lines and transformers having either a
"from" bus or a "to" bus in a "read" area in the history file being read by getm.
· Generator, load, shunt, and svd records are read only for devices whose bus location is in a "read" area in the
history file being read by getm.
· Area records are read only for the "read" areas.
· All zone and transformer impedance adjustment records are read from the history file by getm.
All records read by getm are appended to the end of the corresponding tables in the working file. This means that
some records, particularly zone and transformer impedance adjustment records are likely to be duplicated in the
working case after execution of getm. Duplications must be eliminated by deleting redundant records with the editor.
Note that getm reads component records and appends them to the working case REGARDLESS of whether a record
for the component is already present in the working case. getm will not overflow the working case; it simply stops
reading records of each type when the corresponding table is full.
The working case left after completion of getm is not ordered for solution. The ordr command must be used before
any solution command is executed.
getm does not read short circuit data that may be in the history file being read and resets the "short circuit" data flag in
the working case to prevent saving of short circuit data remaining in the working case.
Command: getmz Command mode and epcl only
EPCL: @return = getmz ("<file>","<zone>")
Arguments: <file> Name of history file
<zone Unique zone number to store temporary results
Function: Merge part of case in history file into Working Case
Prerequisites: <file> must be valid history file and working case must
contain a full or partial load flow data
getmz is a special version of getf for use in merging two system models. A typical use of getm is to replace one
model of a given zone the system with the model of that zone from another system model. The steps in this operation
for system case A in which the model of zone K is invalid and system case B in which area K is modeled correctly
might be as follows:
· Pick up the case A history file with getf
· Use an epcl program or the editor to set up the type of each bus in zone K to -1 and the status of every other
component in zone K to -1
· Use the dele command to delete zone K from the working case
· Use getmz to merge zone K from the history file of case B into case A in the working case.
getmz reads selectively from a load flow history file into the Working Case. getmz accepts a list of zones to be read;
enter a sequence of up to 20 zone numbers such as:
z1, z2, -z3, z4, -z5
This sets areas z1, z2 through z3 inclusive, and az through z5 inclusive to be read and all other zones to be ignored.
Then
· Bus data and d.c. bus records are read only for buses assigned to a "read" zone in the history file being read by
getmz.
· Line, transformer, d.c. line, and d.c. converter records are read only for lines and transformers having either a
"from" bus or a "to" bus in a "read" zone in the history file being read by getm.
· Generator, load, shunt, and svd records are read only for devices whose bus location is in a "read" zone in the
history file being read by getmz.
· Zone records are read only for the "read" zones.
All transformer impedance adjustment records are read from the history file by getmz.
All records read by getmz are appended to the end of the corresponding tables in the working file. This means that
some records, particularly transformer impedance adjustment records are likely to be duplicated in the working case
after execution of getmz. Duplications must be cleaned up by deleting redundant records with the editor.
Note that getmz reads component records and appends them to the working case REGARDLESS of whether a record
for the component is already present in the working case. getmz will not overflow the working case; it simply stops
reading records of each type when the corresponding table is full.
The working case left after completion of getmz is not ordered for solution. The ordr command must be used before
any solution command is executed.
getmz does not read short circuit data that may be in the history file being read and resets the "short circuit" data flag
in the working case to prevent
saving of short circuit data remaining in the working case.
Command: grst (from tabr:GenResults)
Arguments:
The grst command shows the generator results of a solved load flow case in tabular form. The limits for both the
MWs and MVARs are checked as well as the schedule voltage.
keyword P-LIMITS Q-LIMITS V-LIMITS
above MW > PMAX MVAR > QMAX Vpu > Vschedule
below MW < PMIN MVAR < QMIN Vpu < Vschedule
(blank) within range within range at Vschedule
You can examine this table via the search, select and sort capabilities of the table editor, but no data in the working
case tables can be changed through this edit table.
The F8 key may be used to invoke the record editor to alter generator data or select the scan diagram option.
Command: init
EPCL: @return=init("<cfile>","<init>","<fix>","<toff>","<in-
run epcl>", “<violcri>”, “<loadnet>”)
Arguments: <cfile> Name of channel file to receive simulation output channels
("print" is not recognized)
<init.> Name of channel file to receive initial condition report or “print”
to send report to printer
<fix> 0 to warn of suspect data; 1 to fix up suspect values
<toff> 0: do not turn off unused models; 1: turn off unused models
< in-run Name of the in-run EPCL program (default is blank)
epcl >
< violcri> Name of violation criteria file (default is blank)
< loadnet> Flag to net generators for which no dynamics models are found
(default is 0 to disable this option)
Function: Initializes a dynamic simulation run
Prerequisites: Successful completion of RDYD command or valid dynamic
simulation data in working tables
INIT initiates a dynamic simulation process with the system in steady state in the condition specified by the solved
load flow case in the working tables.
INIT requires that the working case contain a solved load flow case with
· the generator MVA base gens[*].mbase specified correctly for each unit
· the loads represented by a proper mix of constant MVA, constant current, and constant admittance
components.
You can ensure that such a solution exists by executing the SOLV command after picking up dynamic simulation data
with the RDYD or GETD command. (This requires the SOLN statement in an EPCL program or an exit from
dynamic simulation, solution, and return to PSDS.)
INIT requests the name of a plot data file in the Channel file name......: field. If a name is given it initializes it with
the channel description header. If no name is given the simulation run is made without sending the recording channels
to the plot data file. BEWARE: INIT destroys all prior contents of an existing plot data file.
The Report file name : field should be filled in with name of file to receive initial condition report. The report is sent
to the display in any case.
The In-run EPCL program field is used to enter the file name of an EPCL program to be executed at each time step
during the dynamic simulation.
The Violations input file field is used to enter the file name containing the violation criteria. Please refer to
application note 141 for additional information on violation input file and violation criterias.
Unsteady rate tolerance (dypar[0].rate_tol)
This value is used by the INIT command as the threshold for detection of non-zero initial rates of change of state
variables. A value of 0.001 gives a quite stringent check for a steady state initial condition; a value of 0.1 would give a
fairly "loose" check that would reveal only serious initialization errors. If the magnitude of the state is greater than
0.01, the derivative is checked against the tolerance multiplied by the magnitude of the state (i.e. effectively the
magnitude of the derivative is checked relative to the magnitude of the state itself). Thus if the magnitude of any given
state is greater than 0.01 but less than 1.0, that can cause effective threshold to be lower.
Step width (s) (dypar[0].delt)
The integration step width of the main numerical process of the dynamic simulation. This is normally 0.0042 sec for
60Hz systems or 0.005 sec (1/4 period) for 50Hz systems. The step may need to be smaller when some special models
are used; requirements for a small step width are stated in the model descriptions where applicable.
Reference bus number (dypar[0].angle_ref_gen)
The identifier, name or number, of the bus at which the reference machine is located. The reference machine is the
first generator connected to the reference bus. If a valid bus identifier is entered, the rotor angles recorded in the
output channels are the angles of the machines relative to the position of the rotor of the reference machine. If the
reference bus identifier is zero or blank or the reference bus is not in the working case, the output channels record
absolute rotor angles. Note that the variable dypar[0].angle_ref_gen used in EPCLs is an internal number, the index of
the generator in the gens table. Thus, for example in case one wants to identify generator at external bus number 100
as the reference generator the correct statement in an EPCL would be:
To set absolute rotor angles via EPCL:
dypar[0].angle_ref_gen = -1
Base frequency (Hz) (dypar[0].omegao/6.283185)
The nominal frequency of the power system being simulated.
Progress plot at bus number (dypar[0].prog_plotbus)
The external number of a bus to be tracked during a simulation run. The text field is activated only if one selects the
Progress plot on check box. If this entry is 0 or blank no progress plot is made and a minimal progress report in text
form is displayed. This entry should normally identify a bus at which a generator is connected and is in service. Note
that the variable dypar[0]. prog_plotbus used in EPCLs is an internal number. Thus for example in case one wants to
identify bus number 3 as the progress plot bus the correct statement in an EPCL would be
.
Maximum time for progress plot (s) (dypar[0].prog_tmax)
The maximum abscissa value, time value for the progress plot. This value cannot be changed. It should be somewhat
longer than the anticipated duration of simulation.
Before attempting to initialize the simulation INIT checks the model parameter values for reasonableness and for
unacceptable values such as zero time constants that would cause division by zero. (Some time constants are allowed
to be zero because special logic is used). If the <fix data flag> argument is non-zero suspect or unacceptable values
are replaced by values that are acceptable to the model, though not necessarily correct in relation to the real
equipment. Each replacement action generates a message, as shown below, in the initial condition report file:
101 [NORTH-G1] 16.00 1 genrou tppdo=0.0100 is below allowable minimum, set to 0.05
111 [WEST---G1] 16.00 1 genrou tppqo=0.0100 is below allowable minimum, set to 0.05
311 [EAST---G1] 16.00 1 gensal tppqo=0.0100 is below allowable minimum, set to 0.05
311 [EAST---G1] 16.00 1 exac1 ta =0.0123 is below allowable minimum, set to 0.05
311 [EAST---G1] 16.00 1 hygov rtemp=0.0365 is below allowable minimum, set to 0.10
311 [EAST---G1] 16.00 1 hygov tf =0.0050 is below allowable minimum, set to 0.05
If the Fix bad data check box is not selected (flag is zero) the message is produced without the "set to value" phrase
and the suspect value is left unchanged.
If the Turn off the unused models check box is selected (flag is one), unused models are turned off and the message
“Turning off models for generators that are off-line” is printed, as well as the number of generators turned off. The
default value of “toff” is one.
If the Net generators with no models check box is selected (flag is one), generators which does not have any
corresponding dynamic models would be load netted. The default value is 0 to disable this feature.
INIT attempts to initialize all equipment models in the steady state and it can normally achieve this if the load flow
case is properly solved and there are no limits in effect in the system. It is quite possible, however, for the load flow
case to present generator terminal conditions that cannot be met within the limits on variables in the excitation systems
and turbine governors. When INIT encounters a limit it respects it and allows the initialization to proceed not in the
steady state.
The initial condition values of generator loading and field voltage are summarized in a report like this:
This report is sent to the file specified by the second argument, or to the screen if no other destination is given. Only
the first five lines of this report are shown when this report is sent to the display.
After completing its initialization, INIT calculates the time derivative, ds/dt, of every state variable. All of these values
should be zero, or close to zero within numerical precision tolerances, in a normal initialization. State variables whose
initial condition derivatives are not adequately close to zero are reported by INIT and are a sure indication of trouble in
the dynamic simulation setup. The threshold for reporting non-zero derivatives is specified by dypar.rate_tol. When a
derivative is non-zero, INIT reports the values of all states of the model that are not in steady state, together
with their derivatives.
INIT must not be executed once a simulation has been advanced with the RUN command or if the working tables do
not contain a solved load flow case.
INIT performs the following data checks
- check that each load flow generator has a dynamic generator model
- all generator models have a non-zero mva base
- all generator models have a non-zero source impedance entered
If any of these errors are detected INIT is aborted and the data must be corrected before proceeding.
Command: isld (from misc:Island)
EPCL: @return = isld( "<file>")
Arguments: <file> Name of file or printer to receive output
Function: Find and display islands
Prerequisites: Valid load flow data in working case
The isld command searches the system to ensure that a path exists from every bus to a swing (type 0) bus. After the
search is completed the following information is printed for each island:
· Island number
· Swing (type 0) bus identifier
· Number of buses in the island
· Bus identifier for each bus within the island up to a maximum of 30 buses
The power system may have multiple islands provided that a swing (type 0) bus is located in each island.
Command: isol (from misc:Isolate)
EPCL: @return = isol( "<report>")
Arguments: <report> Name of file or printer to receive output
The isol command first requests the report destination in the Get Report Destination panel.
The isol command disconnects all branches and other equipment connected to selected buses, thereby isolating the
buses. The bus types remain unchanged. The isolated buses do not take part in the network solutions. The buses to be
isolated by isol may be selected either by setting their <type> to 4 in the busd table (via edit,bus or an epcl program)
or by specifying their numbers to isol.
isol invites you to enter a list of numbers of buses to be isolated. If a list is entered the buses whose numbers are listed
and all other buses whose <type> is 4 are isolated. If no list is entered only buses whose <type> is 4 are isolated.
The list of buses to be isolated may contain individual bus numbers, and pairs of bus numbers specifying an inclusive
range of bus numbers. For example, the list:
7 13 19 -25 31 34 -40
requests isolation of buses 7, 13, 19, 31, and buses 19 through 25 inclusive, and buses 34 through 40 inclusive.
Command: lina
EPCL:
Arguments:
Function: Initiates linear analysis
Prerequisites: None
Analysis subsystem of PSLF and provides access to dc analogy load flow, transfer limit analysis, and distribution
factor calculations. These functions are described individually under their own headings.
Command: losf (from econ:Loss Factor)
EPCL: @return = losf()
Arguments: <none>
Function: Unit commitment and economic dispatch
Prerequisites: Valid solved load flow and economic data in working case
losf will calculate group losses based on the load flow data in the working case. This command should be executed
after the economic dispatch data reader(rede, redp or redi) and before the commitment (ecom1, ecom2, or ecom3)
and/or dispatch(disp) command. The command acca which accumulates area and group totals should be executed
before the command losf.
A typical economic dispatch setup would be
Description pslf command
get the base case getf name
solve the network soln
read economic dispatch data rede name
accumulate area/group totals acca
calculate losses losf (optional)
commit and dispatch generators ecom1 or ecom2 or ecom3
display results edit:grpd or edit:gend
resolve the network soln
Command: loss (from rept:Loss)
EPCL: @return = loss("<report>","<append>","<select>")
Arguments: <report> Name of file or printer to receive output
<append> append flag=1 append output or =0 to open and create a new
report
<select> select flag =1 use selected output =0 output all results
Function: Gives summary of totals of generation, load, and losses
Prerequisites: Valid solved load flow data in working case
loss gives a summary of the levels of generation, load, and losses in selected areas or zones. loss is controlled by the
standard subsystem selection panel but and recognizes only area or zone selections. If both area and zone selections
are present the area selection is used and the zone selection is ignored.
loss lists generation, load, interchange, loss and other sub-totals for each of the areas or zones selected, totals these
area and zone sub-totals, and prints a summary of the totals. This provides a convenient way to get the losses in a
sub-system consisting of a group of areas or zones.
MANUAL
Clicking the manual button at the bottom of the PSLF main menu will bring up the Table of Contents of the PSLF
User’s Manual.
Command: misc
EPCL:
Arguments:
Function: Initiates miscellaneous PSLF commands
Prerequisites: See individual commands
When PSLF is in menu mode, a set of less-frequently used commands are selected through the misc selection of the
main menu. Selecting misc raises a sub-menu giving access to the Islands, Isolate, Equiv Network, Scale Load
Gen, Date, User Sort, Read Dyn WSCC, Read Dyn PTI, and Write Dyn PTI.
misc is also available from the Other pull-down menu from the main toolbar.
Command: mism (from tabr:Mismatch)
Arguments:
The mism command shows the real and imaginary parts of bus mismatches in tabular form. The buses are shown in
the order that they exist in the working case bus data table. You can examine the mism table via the search, select and
sort capabilities of the table editor, but no data in the working case tables can be changed through this edit table.
Use the edit bus command to alter the bus data.
Command: mmil from epcl only
EPCL: @return = mmil("<basis>","<area>","<file>")
Arguments: <basis> Base or change case flag
<area> Area number of monitored area
<file> Name of file to receive output, or "print" to send output
to default printer
Function: Calculates and reports area-by-area accumulations of
MW-mile values
Prerequisites: Valid load flow data in working case
mmil calculates the product of MW flow and an assigned distance for every transmission line in the system.
Individual line MW-mile values are totaled on an area-by-area basis and reported in tabular form.
mmil can be executed only from an epcl program. It is invoked by:
mmil (<basis>, <area>, <file>)
When <basis> is zero mmil calculates and "remembers" the signed value of MW- miles for each line and accumulates
positive and negative values separately for each area. The area-by-area report produced when <basis> is zero shows
the summations of positive values, the summation of negative values, and the summation of absolute values for each
area, as shown below:
The Vector Absolute and Magnitude Absolute parts of this report are identical. The <basis> = 0 mode of mmil is
normally used to establish base case values of MW-miles so that change cases can be used to estimate incremental
transmission utilization.
When mmil is subsequently run with <basis> set to a one the flow and MW-mile values for each line are calculated in
the same way as when <basis> is zero, and then incremental values are obtained as follows:
MWM = magnitude absolute increment = (/new flow/-/old flow/)*(assigned miles)
MWV = vector absolute increment = (/new flow-old flow/)*(assigned miles)*sign (MWM)
The incremental value of MWM is positive only if the absolute value of the flow on the line is increased. MWM
cannot be positive if the loading on the line is decreased and it is insensitive to a change in direction of flow. The
incremental value of MWV is forced to take the same sign as MWM and hence is positive only if the absolute value of
flow is increased. The magnitude of MWV is greater than that of MWM if the flow on a line is reversed.
If <area> is greater than zero mmil reports the absolute or incremental MW- miles on each line in the designated area
in a report like this:
If <basis> is zero the "delta flow" entries are zero and the base case MW-miles are reported for each line. If <basis>
is greater than zero the "delta flow" entries show the change in flow from the base case values and the MW-mile
values are incremental values as defined above. If <area> is zero the report of individual line MW-miles is omitted.
mmil does not use the true line length from the load flow working case; rather it uses the "assigned miles" values as
specified in the mileage data file and read by the rmil command. Each line may have an assigned mileage with
respect to up to four areas.
The flow used in the product for each line is that evaluated at the "from" end of the line as specified in the distance
assignment file that was read by the rmil command. The from bus for each assignment can be either end of the line.
That is line 736 to 1011, which is 100 miles long could have a 57 mile assignment to Area A with flow evaluated at
the 736 end and a 43 mile assignment to Area B using the flow evaluated at the 1011 end.
The MW-distance product for a line may be assigned to any area, not only to the areas of its terminal buses.
When <basis> is zero mmil starts a new output file, destroying the entire contents of the file specified by <file>.
When <basis> is one mmil appends its output reports to the file <file>, leaving any prior contents intact. Specifying
<file>=<print> sends all output directly to the default printer.
Example
A system to be evaluated has four areas with names and numbers as follows:
Area Number Area Name
1 aa11
2 aa22
3 aa33
15 aa15
The mileage assignment file for input to the rmil command is:
Note, for example, that a part of the MW-miles on line 11-12 is assigned to Area 1 and the balance is assigned to Area
2. Line 19-20 is treated similarly. The following epcl program may be used to make a simple transmission utilization
study
$case = "mil.sav"
$mfile = "mil.out"
@return = getf($case)
@return = soln ()
@return = rmil ("mil.dat")
@return = mmil (0., 1, $mfile)
gens[6].pgen = gens[6].pgen - 10.
gens[4].pgen = gens[4].pgen + 5.
gens[5].pgen = gens[5].pgen + 5.
@return = soln ()
@return = mmil (1., 1, $mfile)
gens[ 6].pgen = gens[ 6].pgen - 10.
gens[15].pgen = gens[15].pgen + 10.
@return = soln ()
@return = mmil (1., 1, $mfile)
gens[ 6].pgen = gens[ 6].pgen - 10.
gens[16].pgen = gens[16].pgen + 5.
gens[17].pgen = gens[17].pgen + 5.
@return = soln ()
@return = mmil (1., 1, $mfile)
end
The first solution, rmil and mmil commands establish a base case. The next soln and mmil commands evaluate the
MW-mile effect of shifting generation from generator 6 to generators 4, 5, and so on.
The resulting report is show on the next page; in each of the three change cases the negative MW-mile increments
exceed the positive, indicating that the re-dispatches move generation generally closer to load and hence reduce overall
utilization of transmission.
Command: olgr
EPCL: @return = olgr("<file>")
Arguments: <file> Name of one-line diagram coordinate file
Function: Draw/modify/switch a one-line diagram subsystem
Prerequisites:
The olgr command initiates the one-line diagram subsystem. In this subsystem, one-line diagrams can be constructed,
modified, annotated with load flow results and used to direct data edit editing. Shown below is the olgr layout divided into
4 areas.
1) Pull down menus are: File, Edit, Colors, Gedi, Draw, Tables, Commands, View, and Help.
2) Feature buttons are Redraw, Equip, Units, Rating, Solve, Switch, OneLine, and Scan.
3) Drawing buttons are MarkArea, MoveArea, CopyArea, CopyObj, DelObj, RotSym, Grid, Snap. When in the
Switch mode these drawing buttons disappear.
4) Drawing area with scroll bars on the right and bottom side as needed. The upper left corner of the drawing area
initially is 0,0 and lower right corner is specified in parm:display under the olgr window height and width . The units
are in pixels (roughly 80 pixels/inch). The x,y coordinate values are always visible in the upper right corner and
change constantly with the mouse movement.
Figure olgr-1
Pull down menu section
File contains the following options with shortcut keys:
New Draw Removes the drawing in memory to start a fresh drawing
Open Draw Shift-O Open a drawing file version 14 and above (see section
Format of Coordinate Data File)
Append Draw Shift-A Open a drawing file (version 14 and above) and add it to
the current one.
Save Draw Shift-S Save a drawing file
Open Case Shift-O Retrieve a history file (same as getf )
Save Case Shift-S Save a history file (same as savf )
Page Setup Bring up a panel to select portrait or landscape, margins,
and paper size
Export EPS Shift-E Write the drawing to a file in EPS format with the
filename ending in .eps
Export PNG CTRL- Write the drawing to a file in PNG format with the
Shift-P filename ending in .png
Export JPEG CTRL- Write the drawing to a file in PNG format with the
Shift-J filename ending in .jpg
Print Preview Ctrl-V Allow the drawing to be viewed prior to printing
Print Cntrl-P Print the entire drawing directly to the printer
Exit Escape Exit olgr - if drawing was modified use Save Draw to
write new drawing file, PSLF will automatically save the
drawing into gediwork.drw
Edit contains the following options with shortcut keys:
Settings F5 MinMax – choose xmin, xmax, ymin, ymax
Fonts – select Fix Symbol Length, Character Height,
Character Line Width, Title Font Size (Printing)
Zoom – select zoom factor
Draw – select flags for ArrowOn, FixedFont, FitToPage
(For Output Only), Scan Level
Clear all Remove all objects from the drawing area
Colors contains the following options with shortcut keys:
Pen Color Choose from a color palette for shapes and text
Background Color Change the drawing area background color
Background Default Change background color to the default 235,235,235
Background Black Change background color to black
If an epcl is called through the GUI, then the orientation of a draw (Portrait/Landscape) will be based on the user setup on
the GUI side.
If PSLF started in a batch mode (No GUI is up), then the user must call the following, in order to set orientation and color
of a draw from epcls.
printpar[0].grflg = 0 for portrait orientation.
printpar[0].grflg = 1 for landscape orientation.
printpar[0].pscolorflag = 0 for black&white.
printpar[0].pscolorflag = 1 for color.
Under Gedi contains the following options:
Mark Text Shift-T Click on the MarkText from Gedi pulldown menu Then move
to the drawing area and click and hold the left mouse button,
Unmark Text and draw a rectangle around the Text you wish to Mark/Edit.
Release the left mouse button and move anywhere inside the
area of the rectangle ( turns yellow ), and click the right mouse
button again and drag to the new location and release the button
to get a selection box with the following options. Click
UnmarkText turns option off.
Mark Area Ctrl-M Click MarkArea from the Gedi pulldown menu.. Then move
to the drawing area and click and hold the left mouse button,
and draw a rectangle around the area you wish to Mark/Edit.
Release the left mouse button and move anywhere inside the
area of the rectangle ( turns yellow ), and click the right mouse
button again and drag to the new location and release the button
to get a selection box with the following options.
Move Area Shift-M Click MoveArea from the Gedi pulldown menu. Then move to
the drawing area and click and hold the left mouse button, and
draw a rectangle around the area you wish to move. Release
the left mouse button and move anywhere inside the area of the
rectangle ( turns yellow ), and click and hold the left mouse
button again and drag to the new location and release the button
when in the right location. May have to reconnect some
branches/lines that crossed the MoveArea box.
Copy Area Shift-C Click CopyArea from the Gedi pulldown menu. Then move to
the drawing area and click and hold the left mouse button and
draw a rectangle around the area you wish to copy. Release the
left mouse button and move anywhere inside the area of the
rectangle ( turns yellow ), and click and hold the left mouse
button again and drag to a new location and release the button
when in the right location. May have to reconnect some
branches/lines that crossed the CopyArea box.
Copy Object Cntrl-C Click CopyObject from the Gedi pulldown menu. Then move
to the drawing area and click the left mouse button after the
desired object is highlighted (turns yellow ) to get the red
rectangle around that object. Release the left mouse button and
move anywhere inside the area of the rectangle ( turns yellow )
and click and hold the left mouse button again and drag to the
new location and release the button when in the right location.
Must click the CopyObj button again to copy another object.
Delete Object Shift-D Click Delete Object.from the Gedi pulldown menu. Deleting
an object is accomplished by highlighting any object in the
drawing area (changes to color yellow as the mouse moves over
the object ) . Once the selected object is highlighted, clicking
the left mouse button will change the objects color to red, then
click the Delete Object. Hitting the delete key on the keyboard
will also perform this operation.
Rotate Symbol Ctrl-R Click the Rotate Symbol from the Gedi pulldown menu.
Objects, such as, buses or bus connected devices( generator,
load, shunt or svd ) can be rotated 90 degrees at a time. First
highlight ( turns to yellow ) an object, then left mouse click to
change the color to red. Then click the Rotate Symbol to
rotate 90 degrees. Repeated clicking will rotate the object
another 90 degrees each time.
Grid Ctrl-G Clicking the Grid from the Gedi pulldown menu will turn the
grid lines on. These grid lines are for the aid of drawing and
will not appear on the printed output. The light gray lines are
located every 10 pixels in both the x and y direction and major
grid lines (slightly darker gray) are drawn every 100 pixels.
Snap Ctrl-N Clicking Snap from the Gedi pulldown menu will ensure all
objects are located on the grid lines. Always best to turn the
Grid when using this feature. When the Snap option is on, all
x and y coordinates are rounded to 10 pixels. If the Snap
feature is turned off, then the objects are drawn exactly where
the mouse click occurs. When the Snap option is on, a red
message in the lower left corner will appear.
Under Draw contains the following options:
Bus Place buses in drawing area
Branch Place branches in drawing area
Text Place text in drawing area
Place shapes in drawing area
Shapes
Element Place symbols for DC converters, Generators, Loads, Shunts,
Svd, and `Transformers in the drawing area
Symbols Place symbols in drawing area
Under Draw:Bus will display the tool bar at the bottom of the drawing area
These are the attributes of buses
Enter Bus Number - this box is used to type the bus number or after the first bus is entered then
click from the list of adjacent buses to enter that number
Add All Elements - If checked will automatically add load, generators and shunts to that bus if
they exist in the data base. After the bus number and attributes are valid then click in the drawing
area to locate that bus.
BusRad ( default is 5 ) is the bus width in pixels
BusLen ( default is 60 ) is the bus length in pixels
BusAngle (default is 0 ) 0 or 180 = horizontal bus and 90 or 270 = vertical bus (location of
annotation is the only difference between 0 and 180 )
SymRad ( default is 10 ) is the symbol width in pixels
SymLen (default is 60 ) is the symbol length in pixels
SymAngle (default is 0)
AnnotOn - If checked then bus annotation is displayed, such as, voltage and angle.
Brush Size ( default is 1) 1 thinnest to 8 thickest width of the line when drawing the bus
SigDigits (default is 0 ) range from 0 to 4 . Number of decimal places for branch and transformer
flows
SymbolColor will bring up four choices Black, White, Bus Color, or Choose. The last one allows
the user to select any color from the color palette.
Adjacent Buses with a number in the Enter Bus Number box - Clicking this button will display
all the adjacent buses to that bus. NOTE: Highlighting the bus and clicking the button will not
display the list of adjacent buses.
Bus Table - Clicking this button will bring up the entire bus table. This is helpful to get a bus
number or name using the sorting capability
ArrowOn - If checked, then arrows are used to show direction. If unchecked, signs are used to
note load, generator, or branch flows
Once a bus exists in the drawing area, then right mouse clicking on that bus will bring up a pop-up menu.
AdjBus will display the list of adjacent buses. Clicking a bus will fill in the Enter Bus Number
box
Element will show if any generator, load, shunt, svd, dc rectifier or dc inverter that exist on that
bus. Clicking on that element will draw that symbol at the bus
Branch will display a panel of all branches connected to the bus. Clicking a branch will display a
panel where to place the flow annotation (from, to, both or none). A black box at the bus notes
the start of this branch. Move the mouse to a new location and left mouse click to draw the next
segment. Continue until the “to” bus is reached, then double click on the same point to end
drawing this branch
AddAnnot will add the annotation for the selected bus. Highlight number, name, kV, Volt (per
unit voltage) or angle in degrees and click left mouse button. Then move to the desired position
and left mouse click to display the current value
Properties - Display the current properties of this bus, such as, radius, length, brush size,
sigdigits and annotation flag. Changing the values and clicking apply will update that bus
which will be colored yellow immediately. When finished with that bus, click the cancel box.
Changing existing annotation requires moving the mouse pointer over the value until it changes to yellow, then left mouse
click to change the color to red. Holding the left mouse button down and moving the value to a new location, release the
left mouse button and click anywhere outside. The values will change the color back to the original.
Changing the starting and ending points or moving the location of any bus
1) move the mouse pointer over a selected bus.
2) after the bus color changes to yellow, then left mouse click
3) the bus color turns to red and has hit points at each end of the bus
4) click and hold the left mouse button on a hit point will increase/decrease the bus length
5) click and hold the left mouse button on the bus, but not a hit point, will move the entire bus to a new location.
Releasing the left mouse button and click anywhere outside the bus to change the bus back to original color
Under Draw:Branch will display the tool bar at the bottom of the drawing area
Enter branch information.
Bus Number From: enter from bus number
Bus Number To: enter to bus number
These are the attributes for text
Text enter text message to appear on the drawing
FontName choose from the popup menu (Monospaced, Dialog, Dialoginput, Serif or SansSerif)
FontStyle choose from the popup menu (Plain, Bold or Italic)
FontSize choose from the popup menu (6 to 100)
FontAngle chose from the popup menu (0 to 360 in 15 degree increments)
Changing existing text requires moving the mouse pointer over the first character in the text string until it changes to
yellow, then left mouse click to change the color to red. Holding the left mouse button down and moving the text to a new
location, release the left mouse button, and click anywhere outside the text will change the color back to the original.
Under Draw :Shape the following options may be drawn: ellipse, rectangle, line terminated with an arrow, line and
dashed line.
Ellipse, rectangle and arrow-line are drawn by first clicking the desired object, such as, rectangle icon, etc. Then move to
the starting position in the drawing area and hit and hold left mouse button down. Moving the mouse will draw the object
continually once the size is right; then release the button to finish that object. The last two icons, solid and dashed line will
draw continuous segments with each left mouse click. Then move to another part of the drawing and click the left mouse
button. This process is repeated until all desired sections are drawn. Hit the right mouse button to terminate that object.
Changing existing shapes requires moving the mouse pointer over the shape until it changes to yellow, then left mouse
click to change the color to red. Holding the left mouse button down and moving the shape to a new location, release the
left mouse button, and click anywhere outside the shape to change the color back to the original. Clicking one of the four
corner hit points will change the shape in the same location.
Under Draw:Elements, the following elements may be drawn from the data in memory: DC Convertor, Generator, Load,
Shunt, Svd, Transformer. When an element is selected the following panel appears showing the element type selected in
the symType: box.. Here DC Convertor was selected and this panel appears at the bottom of the display.
To draw an element, enter the following information into this panel:
Bus Number From: enter from bus number
Bus Number To: enter to bus number
ID: enter bus number ID
SymRad ( default is 10 ) is the symbol width in pixels
SymLen (default is 60 ) is the symbol length in pixels
SymAngle (default is 0)
AnnotOn - If checked then bus annotation is displayed, such as, voltage and angle.
SymbolColor will bring up four choices Black, White, Bus Color, or Choose. The last one
allows the user to select any color from the color palette.
SymType: dcconv
Brush Size ( default is 1) 1 thinnest to 8 thickest width of the line when drawing the bus
SigDigits (default is 0 ) range from 0 to 4 . Number of decimal places for branch and transformer
flows
Under Draw:Symbols contains the following options
gen Draw a generator symbol
shunt Draw a shunt device to ground
svd Draw a svd device symbol
load Draw a load symbol
dcconverter Draw a DC converter symbol
trans Draw a transformer symbol
capac Draw a capacitor
SymRad ( default is 10 ) is the symbol width in pixels
SymLen ( default is 60 ) is the bus width in pixels
SymAngle (default is 0 ) 0 or 180 = horizontal bus and 90 or 270 = vertical bus (location of
annotation is the only difference between 0 and 180 )
Symbol type type of symbol (gen, shunt, load, dcconv, trans)
Brush Size ( default is 1) 1 thinnest to 10 thickest width of the line when drawing the bus
Changing existing symbols requires moving the mouse pointer over the symbol until it changes to yellow, then left mouse
click to change the color to red. Holding the left mouse button down and moving the symbol to a new location, release the
left mouse button, and click anywhere outside the symbol will change the color back to the original. Clicking one of the
four corner hit points will change the symbol radius or length in the same location.
Under Tables contains the following options
Bus Coordinates display edit table to view/modify bus drawing values
Branch Coordinates display edit table to view/modify branch drawing values
Symbol Coordinates display edit table to view/modify symbol drawing
values
Line Coordinates display edit table to view/modify line drawing values
Shape Coordinates display edit table to view/modify shape drawing values
Text Coordinates display edit table to view/modify text drawing values
For a complete definition of all the variables in the above tables see Format of the coordinate data file section. Shown below is
an example of the bus coordinate table.
Under Commands contains the following options
SolveNoPanel F1 Executes solve with the current solution parameters
Solve F2 Execute solve but brings up the solution panel
Scan F3 Execute Scan command
Epcl CNTL-E Executes epcl command
Title Brings up the title panel
Parm CNTL-T Access to the PARM sub panels
Display
Check
VLV
Edit Network Access to all edit tables
Under View contains the following options
Zoom In Zoom in the drawing according to the zoom factor
Zoom Out Zoom out the drawing according to the zoom factor
Zoom Undo Undo last Zoom
Zoom Center Zoom center the drawing according to the zoom factor
Under Help contain the following option
Olgr Help pages for the Command OLGR
Feature Buttons
Redraw
Redraws the drawing and recalculate the annotation values
Equip
Print in the message window all the elements, such as, generators, loads, shunts and svds connected to the buses on the
diagram
Units
Change units that are displayed for lines, transformers and symbols flows. Units available are MW/MVAR, MW/% rate,
MVA/amps, R/X, MVA/% rate, amps/%rate, rate mva/amps. The current selection of units will have an asterisk in front of
it. The last two items on the pull-down menu determine the colors of the buses and branches. If Colorlimit is selected,
then all buses within the voltage range will be white or black depending on the background color. Buses above the voltage
range will be colored yellow and below will be shown in red. Voltage range is set under PARM:CHECK using the first
rating only. Lines above their rating will be shown in red and all others will be colored in white and black depending on
the background color. The rating number and overload percentage for lines/transformers is also set in parm:check or
under the Rating button to change the rating number only. The rating for transformers is based on the MVA rating,
whereas, for lines the rating is based on amps. When the Color - kV flag is set then the bus/line color is based on kV of
the element as defined in the pslf.vlv file and changeable under the PARM:VLV panel.
Rating
Rating number of line/transformer from 1 through 8. The current rating being used for calculating overloads will be
displayed with an asterisk in front of it.
Solve
Solve the network with no solve panel being displayed. The current solution parameters, such as, area interchange, taps,
phase shifters and svd flag will be used. If not sure what the current settings are or want to modify the setting, then use
Commands and Solve.
Switch
Clicking the Gedi/Switch button will toggle between drawing mode and using the diagram for switching operations. When
in Gedi mode (drawing), a message in the lower left corner of the drawing area shows Switch Off. When in the switch
mode, the message area at the bottom disappears so more of the drawing area is displayed and the button at the top toggles
to Gedi.
OneLine
Clicking OneLine button will bring back the previous diagram
Scan
Clicking Scan button will display a panel to enter up to 5 bus numbers or names
Drawing Buttons
The drawing buttons will move, copy, and delete objects already on the drawing. Some other features are rotating
symbols, display a grid, and snap to the grid lines. Changing objects can be accomplished by two methods (1) highlight an
object ( turns yellow ), then click the left mouse button to highlight (get a red box around) the object, then hit and hold a
hot spot with the left mouse button to increase or decrease the size. (2) highlight any object ( turns yellow ) except a bus,
then right mouse click to get a Change Dialog panel to change any object related attribute.
MarkArea
Click on the MarkArea button. Then move to the drawing area and click and hold the left mouse button, and draw a
rectangle around the area you wish to Mark/Edit. Release the left mouse button and move anywhere inside the area of the
rectangle ( turns yellow ), and click the right mouse button again and drag to the new location and release the button to get
a selection box with the following options.
MoveArea
Click on the MoveArea button. Then move to the drawing area and click and hold the left mouse button, and draw a
rectangle around the area you wish to move. Release the left mouse button and move anywhere inside the area of the
rectangle ( turns yellow ), and click and hold the left mouse button again and drag to the new location and release the
button when in the right location. May have to reconnect some branches/lines that crossed the MoveArea box.
CopyArea
Click on the CopyArea button. Then move to the drawing area and click and hold the left mouse button and draw a
rectangle around the area you wish to copy. Release the left mouse button and move anywhere inside the area of the
rectangle ( turns yellow ), and click and hold the left mouse button again and drag to a new location and release the button
when in the right location. May have to reconnect some branches/lines that crossed the CopyArea box.
CopyObj
Click the CopyObj (Copy Object) button. Then move to the drawing area and click the left mouse button after the desired
object is highlighted (turns yellow ) to get the red rectangle around that object. Release the left mouse button and move
anywhere inside the area of the rectangle ( turns yellow ) and click and hold the left mouse button again and drag to the
new location and release the button when in the right location. Must click the CopyObj button again to copy another
object.
DelObj
Click the DelObj (DeleteObject) button. Deleting an object is accomplished by highlighting any object in the drawing area
(changes to color yellow as the mouse moves over the object ) . Once the selected object is highlighted, clicking the left
mouse button will change the objects color to red, then click the DelObj box to delete object. Hitting the delete key on the
keyboard will also perform this operation.
RotSym
Click the RotSym (Rotate Symbol) button. Objects, such as, buses or bus connected devices( generator, load, shunt or svd
) can be rotated 90 degrees at a time. First highlight ( turns to yellow ) an object, then left mouse click to change the color
to red. Then click the RotSym button to rotate 90 degrees. Repeated clicking will rotate the object another 90 degrees each
time.
Grid
Clicking the Grid button will toggle the grid lines on or off. These grid lines are for the aid of drawing and will not appear
on the printed output. The light gray lines are located every 10 pixels in both the x and y direction and major grid lines
(slightly darker gray) are drawn every 100 pixels.
Snap
Clicking the Snap button will ensure all objects are located on the grid lines. Always best to turn the Grid when using this
feature. When the Snap option is on, all x and y coordinates are rounded to 10 pixels. If the Snap feature is turned off,
then the objects are drawn exactly where the mouse click occurs. When the Snap option is on, a red message in the lower
left corner will appear.
Coordinate Box
Continually shows the x and y coordinates where the mouse pointer is located. Leaving the drawing area will display the
last value and not update the coordinates until the mouse pointer returns inside the drawing area. Shown below is the
coordinate box with the x value followed by the y value in pixels.
Drawing Area
The OLGR Drawing File
A drawing in the olgr subsystem is described by a drawing file that specifies the geometry, colors, annotation, and overall
size of the image on the screen or printed page. To appear on an olgr drawing, an entity like a bus, transmission line, or
generator, must BOTH exist in the working case AND be described by a record in the drawing file.
Drawing files have the name suffix ".drw".
A drawing file could, in concept, be constructed outside PSLF with a basic text editor but, in practice, drawing files are
constructed on, with the mouse, via the olgr command.
Drawing Size
A drawing occupies a logical space defined by the "drawing" coordinates in Figure olgr -1. The values of xmin, xmax,
ymin, ymax may be thought of as the corner coordinates of a "logical" sheet of paper. They are not related to the
dimensions of your display screen, laser printer or plotter.
The selection of drawing dimensions depends primarily on the number of buses that you want to pack onto a page. As a
general guide, you can put up to about 30 buses comfortably on a drawing whose physical size, as produced by a 300 dot
per inch laser printer, is 10.2x7.2 inches. The same drawing would look nice, but its text would be hard to read on a screen
display with 1280x1024 resolution. If you want to put more than about 30 buses on a single drawing, you can do so, but
you must recognize that you will need a plotter with physical dimensions bigger than the basic 8.5x11 inches to produce a
good quality copy of the whole drawing.
The olgr commands let you use your display screen, printer, or plotter to display either the complete or partial drawing. In
both cases the item you select (complete drawing) occupies the complete field of your display screen, printer, or plotter.
The display screen, printer, or plotter is, therefore, a zooming window through which you can view and manipulate the
drawing. This viewing window can be zoomed "out" to show the whole drawing or "in" to show a part. The part is
defined by the window coordinates of Figure olgr-1.
The drawing corner coordinates are recorded in the drawing file and can be changed under the MinMax button. The
drawing coordinates should be regarded as "hard" limits and should be changed only with careful consideration as to how
the drawing is to be extended.
Drawing Objects
A drawing may contain objects as follows:
Buses Buses in the working case (bus table)
Branches Transmission lines or transformers in the working case (line or tran tables)
Symbols Generators, loads, shunts, SVDs, or d.c. converters in the working case (gen,
load, shunt, svd, dcc tables)
Shapes Ellipse or rectangles
Lines Lines having no relation to the working case (do not confuse these with
transmission lines)
Text Blocks of text having no relation to the working case or calculated values
from epcl
A drawing is constructed with the olgr command by adding drawing objects to the drawing, moving them around, and
changing their attributes (such as color or line thickness). The addition of each object to the drawing with olgr adds a
record to the table describing the drawing. A drawing is saved by writing this table out to a drawing file with the Save
Draw under the File button. The tables describing the drawing can be examined and altered through the Tables button.
Calculated Values
A drawing may contain up to 20 groups of calculated values. Each group of calculated values consists of up to 100 entries
that are "passed" to the drawing by an EPCL program. The EPCL program passes a value to the drawing by executing an
EPCL pass() statement.
This facility allows you to show on a drawing, any numerical value that you can calculate with an EPCL program, such as
the summation of flows on a group of transmission lines, or total load and generation in an area. Each calculated value is
defined by a record (keyword TEXT in the drawing file that specifies the calculated value group of which it is a member,
the EPCL program that calculates the values in that group, and the attributes of the text that displays the value.
Format of Coordinate Data File
The Coordinate data file contains records as follows:
PSLF DRAWING FILE V14.0
KeyWords
XMIN
XMAX
YMIN
YMAX
BACKGROUND
FONTSIZE
START
Bus Records - Each bus record describes a bus
Branch Records Each branch record describes a transmission line or trans.
Symbol Records Each symbol record describes a gen, tx, load, cap, or shunt
Shape Records Each record describes a shape, such as, ellipse or rectangle
Line Records Each record describes a drawing line, not associated with any element of
the working case
Text Records Each text record describes a string of text or epcl program to be shown on
the diagram
END last record in the drawing file
Bus Records
BUS busno bname bkv locX locY brush color angle len rad numX numY nameX nameY
voltX voltY kvX kvY angX angY anno secfile
busno bus number integer
bname bus name (enclosed in double quotes) 12 chars
bkv bus voltage float
locX location of X coordinate in pixels integer
locY location of Y coordinate in pixels integer
brush width of line(1 thinest to 10 thickest) integer
color color [r=0,g=0,b=0] number from 0 (black) to 255 (white) character
angle angle in degrees 0,90,180 or 270 (0 for horizontal ) integer
len length of bus in pixels integer
rad width of bus in pixels integer
numX X location in pixels for the bus number or null to not print integer
numY Y location in pixels for the bus number or null to not print integer
nameX X location in pixels for the bus name or null to not print integer
nameY Y location in pixels for the bus name or null to not print integer
voltX X location in pixels for the bus per unit voltage or null to not integer
print
voltY Y location in pixels for the bus per unit voltage or null to not integer
print
kvX X location in pixels for the bus kV or null to not print integer
kvY Y location in pixels for the bus kV or null to not print integer
angX X location in pixels for the bus angle or null to not print integer
angY Y location in pixels for the bus angle or null to not print integer
anno annotation flag =a annotate bus, =n do not annotate char
secfile secondary drawing file name(enclosed in double quotes) char
Example:
BUS 3 "WEST" 345.00 500 390 1 [r=0,g=0,b=0] 0 90 5 595 405 595 388
Branch Records
BRANCH fbusno fname fkv tbusno tname tkv ck sec brush color annot digits numPts pnt1x
pnt2y pntNx pntNy
fbusno "from" bus number of this branch section integer
fname “from” bus name (enclosed in double quotes) 12 chars
fkv “from” bus voltage in kV float
tbusno "to" bus number of this branch section integer
tname “to” bus name (enclosed in double quotes) 12 chars
tkv “to” bus voltage in kV float
ck Circuit identifier(enclosed in double quotes) 2 chars
“&&” branches connected between these two buses
sec Section number ( always = 1 ) integer
brush width of line(1 thinnest to 10 thickest) integer
color color [r=0,g=0,b=0] number from 0 (black) to 255 (white) character
anno Annotation flag; either: character
"f" for annotation at the 'from' end only,
"t" for annotation at the 'to' end only,
"b" for annotation at both ends, or
"n" for no annotation
digits number of decimal places for the branch or trans. flow (0 to 4 ) integer
numPts number of points integer
pnt1x x coordinate in pixels of first point on branch integer
pnt1y y coordinate in pixels of first point on branch integer
.
.
pntNx x coordinate in pixels of N point on branch (max of 10) integer
pntNx y coordinate in pixels of N point on branch (max of 10) integer
Example:
BRANCH 21 "SOUTH-01 " 230.00 23 "SOUTH-03 " 230.00 "1 " 1 1 [r=0,g=0,b=0] n 1
2 170 220 170 400
Symbol Records(GEN,LOAD,SHUNT,TRAN,CAPAC,DCCONV)
GEN fbusno fname fkv id locX locY brush color angle len rad annot digits tbusno tname tkv
fbusno "from" bus number where the symbol is attached integer
fname bus name (enclosed in double quotes) 12 chars
fkv bus voltage float
id Identifier of equipment item (enclosed in double quotes) 2 chars
locX location of X coordinate in pixels integer
locY location of Y coordinate in pixels integer
brush width of line(1 thinest to 10 thickest) integer
color color [r=0,g=0,b=0] number from 0 (black) to 255 (white) chars
angle angle in degrees 0, 90, 180 270 (0 for horizontal ) integer
len stalk length in pixels integer
rad radius in pixels integer
annot annotation f=from, t=to, b=both or n=neither end char
digits number of decimal places for the branch or trans. flow (0-4) integer
tbusno "to" bus number where the symbol is attached integer
tname “to” bus name (enclosed in double quotes) 12 chars
tkv bus voltage float
Example:
GEN 231 "SOUTH-G1 " 16.0 “1” 530 980 1 [r=0,g=0,b=0] 90 392 500 a 1
Line Records (LINE,DASHED)
LINE locX locY locX2 locY2 brushSize color
locX location of X1 coordinate in pixels integer
locY location of Y1 coordinate in pixels integer
locX2 location of X2 coordinate in pixels integer
locY2 location of Y2 coordinate in pixels integer
brushSize width of line (1 thinnest to 10 thickest) integer
color color [r=0,g=0,b=0] number from 0 (black) to 255 (white) char
Example:
Shape Records (ELLIPSE, OPENRECT)
Ellipse locX locY height width brushSize color
locX location of X coordinate in pixels integer
locY location of Y coordinate in pixels integer
Width Width relative to X coordinate in pixels integer
Height Height relative to Y coordinate in pixels integer
brushSize width of line (1 thinnest to 10 thickest) integer
color color [r=0,g=0,b=0] number from 0 (black) to 255 (white) char
Example: ELLIPSE 799 107 22 24 1 [r=0,g=0,b=0]
Text Records
TEXT text locX locY angle fontName fontSize fontStyle color
text Text up to 32 characters in double quotes or an epcl name character
followed by a pass variable number enclosed in double quotes
locX location of X coordinate in pixels integer
locY location of Y coordinate in pixels integer
angle angle in degrees (0 –360) (0 for horizontal ) float
fontName font name(Monospaced, Dialog, DialogInput, Serif, SansSerif chars
fontSize font size ( from 6 to 100 ) integer
fontStyle font style (Plain, Bold or Italic) integer
color color [r=0,g=0,b=0] number from 0 (black) to 255 (white) character
Example:
TEXT "To NY" 10 950 Monospaced 20 0 -91 [r=0,g=0,b=0] or
TEXT "t3ties.p 1" 104 355 90 Monospaced 14 0 [r=0,g=0,b=0]
Example of Coordinate Data File
Drawing File Rules
1. Character size and symbol sizes are given in the same units (pixels) as used in the header records to specify the
extremities of the diagram.
2. Buses must be horizontal or vertical. Branches can be horizontal, vertical, or anywhere between 20 to 70 degrees.
3. A branch may have 2, to 10 points as convenient. Only the coordinates for the points that are used should be entered in
the record.
4. Lines and text may be used for any convenient purpose, such as identifying control areas, zones, or ownership
boundaries, noting the conditions represented by the diagram, or amplifying individual component descriptions.
Creating drawing output through epcl program
When a large volume of drawings must be created from a contingency processor or other application, it is best to use an
epcl program. Shown below are examples of an epcl programs to output. drawings
To output results directly to a printer use the epcl function called drpr
$draw = “test.drw”
@ret = olgr( $draw ) /* reads drawing coordinate file */
@ret = drpr()
To output results to a postscript file use the epcl function called drpl which has one argument that is the output filename.
$output = “test.ps”
$draw = “test.drw”
@ret = olgr( $draw ) /* reads drawing coordinate file */
@ret = drpl($output)
Command: ordr (from solv:Optimal Order)
EPCL: @return=ordr()
Arguments:
ordr determines the ordering of rows and columns in system matrices constructed by PSLF. Arranging rows and
columns in the order selected by ordr makes it possible to limit the computer memory needed to store very large
matrices to a manageable level.
The validity of the current ordering tables is cancelled by:
· adding or deleting a bus from the data base.
· changing the type of a bus to or from zero.
· a branch switching or re-routing that isolates a bus or reconnects a previously isolated bus to the system.
· any switching of a branch whose impedance is less than the Jumper Threshold Impedance. (The current value
of this threshold is displayed by the command parm:solve).
· changing a generator remote regulation assignment.
These changes are normally made via the edit command and accordingly, care should be taken at each exit from edit
to determine whether it is necessary to re-execute ordr.
NOTE: It is not necessary to execute ORDR after changing the value or status of a load, shunt, or generator,
nor after changing the setting or status of a transformer tap.
ordr responds to interrupt. ordr can be stopped by hitting the interrupt button at the bottom right in the main menu.
Command: outt (from rept:StdOutput)
EPCL: @return = outt("<report>","<sort>")
Arguments: <report> Name of file or printer to receive output
<sort> sort code (epcl default: "10000ffff")
Function: Load flow output in 112 column format
Prerequisites: Valid solved load flow data in working case
outt is the main tabular output function of PSLF. It reports conditions at a specified set of buses, with the buses being
grouped by the area to which they belong. Within the group belonging to each area, buses appear in the order in which
they appear in the bus table of the working case.
outt requires the user to respond to the following panel.
The output from outt is sorted according to this panel. The default sort operation is to sort by area numbers in the
forward direction and then by bus numbers in each area in the forward direction.
The field "use rating number" determines which of the four ratings contained in the working case for each branch will
be used for determining percentage loading. outt checks the flow on each line or transformer whose applicable rating
is non-zero and displays the loading as a percentage of this rating in the PCT column. Line percentage loading is
determined by comparing actual line current with rated line current. Rated line current is determined from the rating,
which is in MVA, and the base voltage of the line's terminal buses. Transformer percentage loading is determined by
comparing transformer MVA flow directly with the rating. If the select output flag is 0 (off) outt reports on all areas
and all buses in each area. If the flag is 1 (on) outt reports on the areas specified by the parm:Select panel. The system
is scanned for buses in each area in turn. A new page is started for each area. Buses appear in the report for each area
in the order in which they appear in the bus table.
To escape outt hit cancel in the continuation box.
If output is directed to a file or printer it is prefaced by the complete case title, comment block, and component count.
The case time stamp shown in the outt report is the value most recently set in the working case by an execution of
getf, savf, or date. If you want to show the present time in the outt report, execute <date> just before executing <
outt >.
Transformer ratios are shown in the TAP and STP columns in terms of actual open circuit voltage ratio and number of
TCUL steps from nominal position. For example, the transformers connecting buses 26, SOUTHE 230, and 3710,
SESUB 34:
· have their TCUL taps on the 230 KV side
· are at the -7 step position, giving a tapped voltage of (1.0 * (-7 * .00625))*230 = 219.9375 KV
· have their fixed taps at the nominal position on both sides.
If the fixed taps are not in nominal position this is shown in the open circuit voltage ratio in the TAP column, while
the STP column continues to show the TCUL step position.
Command: outx (from rept:WideOutput)
EPCL: @return = outx("<report>","<sort>")
Arguments: <report> Name of file or printer to receive output
<sort> sort code (epcl default: "10000ffff")
Function: Load flow output in 125 column format
Prerequisites: Valid solved load flow data in working case
outx presents load flow output in a similar format as outt. Its operation of selecting buses and areas is the same as
outt.
Command: phsf (from tabr:PhaseShift)
Arguments:
The phsf command shows the phase shifter results of a solved load flow case in edit table form. The table shows both
the limits and the results for the angles and MWs.
You can examine this table via the search, select and sort capabilities of the table editor, but no data in the working
case tables can be changed through this edit table.
The F8 key may be used to invoke the record editor to alter phase shifter data or select the scan diagram option.
Command: plot
EPCL:
Arguments:
The plot command will transfer control to the dynamic simulation "plot" program and execute the command getp to
pick up the current channel file. At this point all commands in the "plot" program are available for execution (see
PLOT program manual). After completion of all plotting activity, use the RETURN command to transfer control back
to PSLF with the channel file open for updating.
Command: plsc
Arguments: none
@return = tarea( )
Arguments: <report> Name of file or printer to receive output
<append> append flag=1 append output or =0 to open and create a new
report
<select> select flag =1 use selected output =0 output all results
The area command displays the Get Report Destination panel where the user selects the output destination.
The area command displays the totals for each area of:
· Maximum area generating capability (sum of all generators including out of service units)
· Area generation MW and MVAR (sum of all on-line units)
· Constant power load MW and MVAR
· Constant current load MW and MVAR
· Constant impedance load MW and MVAR
· Shunt load MW and MVAR
· Static VAR device MW and MVAR
· Net interchange MW and MVAR flow (positive for flow leaving area)
· Area losses MW and MVAR
· Area slack output bus MW and MVAR
Totals for some of the categories are displayed after the final area results. The area interchange summary displays the
total MW and MVAR flow between each interconnected pair of areas. (Use the command rtiea to display individual
line flows).
Command: rate (from rept:OverloadRept)
EPCL: @return=rate("<report>","<append>","<select>")
Arguments: <report> Name of file or printer to receive output
<append> append flag=1 append output or =0 to open and create a new
report
<select> select flag =1 use selected output =0 output all results
Prerequisites: Valid solved load flow data in working case and set rating
percentage and rating number to check against in command
parm under the CHECK panel
This rate command compares the flow on every line and transformer in the selected subsystem with a specified rating.
The specified rating is:
(overload
percentage)
specified rating = ----------------------- * rating[rating
number]
100
where the overload percentage and rating number are specified in the parm:check panel. Rating number may be 1
through 8.
The rating is taken from the appropriate columns of the line or transformer data table for each branch.
A line is reported as exceeding the specified rating if its current, in Amps, exceeds
(specified rating)
------------------------
1.732 *(from bus basekv)
A transformer is reported as exceeding its specified rating if its MVA flow exceeds (specified rating).
The mw, mvar and mva reported are measured at the "from" bus end of the line. The percent loading is measured at
the highest loading, that is, either at the "from" bus side or "to" bus side. The flag labeled F or T notes the side with the
higher loading.
Command: rcab (from tlc:Import Cable)
Arguments: <file> Name of input file
Prerequisites: None
Cable Properties
It is not practical to specify the characteristics of some transmission lines by the positions of their conductors.
Underground cables are the most common case. tlc allows such transmission lines to be specified by their positive
sequence and zero sequence electrical properties, rather than by their civil engineering configuration. Lines specified
in these terms are referred to in this manual as cables, though it must be noted that this method of specification may be
used for transmission lines of any construction where impedance, rather than geometry, is the more convenient
description.
Each cable type used in a TLC system model must have it's electrical properties specified in the cable properties table.
The most convenient way to load the cable properties table is to read the data from a cable properties file, each record
of which defines one type of cable and contains:
<name> <R1> <X1> <R0> <X0> <B1> <B0> <Rn> <Xn>
where
name is the name assigned to the type of conductor ( 1 to 8 characters
)
<R1>+j<X1> is the positive sequence impedance of the cable in ohms per
mile
<R0>+j<X0> is the zero sequence impedance of the cable in ohms per mile
<B1> is the positive sequence charging susceptance of the cable in
micromhos per mile
<B0> is the zero sequence charging susceptance of the cable in
micromhos per mile
<Rn>+j<Xn> is the impedance of the cable sheath to zero sequence current in
ohms per mile
A cable properties file named epc.cab is provided with PSLF in the samples directory. This file contains the properties
of a limited number of cables; the following records are typical:
--Name-- -R1- -X1- -R0- -X0- -B1- -B0- -Rn- -Xn-
CABLE1 .01 .02 .02 .06 2.00 1.00 .08 .24
CABLE2 .02 .035 .05 .10 1.75 0.91 .09 .38
Resistance entries in these records may be zero for convenience, but no reactance or capacitance entry should have a
zero value.
Each entry in the cable properties table specifies the properties of a set of five wires; these are normally three phase
wires, abc, (whether in one "triplex" cable or three "single" cables), the cable neutral wires treated as one, n, and the
cable sheath, m. A cable type should be specified as if it is a three-phase cable, even if only one phase will be used.
This can be done for single-phase cables by specifying the positive and zero sequence impedances that would apply for
a set of three of the cables laid as a three phase bundle. TLC deduces the required phase self and mutual impedances
of the cable from the stated zero and positive sequence impedances and recognizes that unused phases are absent when
doing this.
Command: rcmf (from exim:Import CMF)
EPCL: @return=rcmf("<file>","<flag>")
Arguments: <file> Name of file to read input from
<flag> New case flag 1=base case, 0=append data
Function: Reads an IEEE common format (1965) load flow data
file
rcmf reads a load flow data file in the IEEE Common Format for Exchange of Solved Load Flows. The IEEE
Common Format file must be in its 132 column record format.
rcmf is reached from the Import CMF sub-menu, or from the PSLF command line prompt.
rcmf creates a single generator for each bus data record containing a bus type entry of 2, a load for each bus record
containing a non-zero entry for either load real power or load reactive power, and a bus-connected shunt for each bus
record containing a non-zero entry for shunt conductance or susceptance. All components created by rcmf are in-
service and all adjusting transformers have their status set to the appropriate value greater than 1 to place them in
"automatic" mode.
rcmf uses a default template file , \upslfXX\default.tem to specify the filtering of bus names as they are taken from the
input file.
Command: rcond (from tlc:Import Conductor)
Arguments: <file> Name of input file
Prerequisites: None
Conductor Properties
Each conductor type used in tlc must have it's electrical properties specified in the conductor properties table. The
most convenient way to load the conductor properties table is to read the data from a conductor properties file, each
record of which defines one type of conductor and contains:
<name> <gm> <rohm> <l1> <c1> <A1> <A2> <A3> <A4>
<name> is the name assigned to the type of conductor ( 1 to 8 characters )
<gm> is the diameter of the conductor in inches
<rohm> is the resistance of the conductor at 60Hz, 25degC, in ohms per mile.
<l1> is the resistance of the conductor at 60Hz, 75degC, in ohms per mile.
<c1> is the electrical geometric mean radius of the conductor in feet
<A1>-<A4> cp four ampacities to be assigned to the conductor for four different ambient conditions
A conductor properties file named epc.con is provided with PSLF in the samples directory. This file contains the
properties of a large number of Copper, ACSR, Alumoweld, and other conductors; the following records are typical:
name gm rohm L1 C1 Amp1 Amp2 amp3 amp4
37#5AW 1.27300 0.23270 0.47880 0.00688 0 0 0 0
37#6AW 1.13400 0.29350 0.55460 0.00612 0 0 0 0
37#7AW 1.01000 0.37020 0.65240 0.00547 0 0 0 0
37#8AW 0.89900 0.46670 0.76790 0.00487 0 0 0 0
37#9AW 0.80100 0.58860 0.91440 0.00434 0 0 0 0
37#10AW 0.71300 0.74090 1.09300 0.00386 0 0 0 0
19#5AW 0.91000 0.45070 0.75850 0.00493 0 0 0 0
19#6AW 0.81000 0.56830 0.88860 0.00439 0 0 0 0
19#7AW 0.72100 0.71710 1.06400 0.00390 0 0 0 0
19#8AW 0.64200 0.90380 1.28000 0.00348 0 0 0 0
19#9AW 0.57200 1.14000 0.15540 0.00310 0 0 0 0
19#10AW 0.50900 1.43700 1.89600 0.00276 0 0 0 0
You can add to this file or create your own, either outside of PSLF with a general purpose text editor via the PSLF
conductor properties table with the editing facilities of PSLF.
Command: rdws (from misc:Read Dyn WSCC)
Arguments: <file> Name of WSCC stability data file
<report> Name of file to receive report of warnings and
messages
<dyd> Name of file to receive dynamics records (e.g. name
wsctemp.dyd )
rdws reads dynamic simulation model assignments and model data from the WSCC Stability Program Data File
specified by the <data file> argument. rdws translates the WSCC data file into an equivalent EPC data file for RDYD
and then gives the user the opportunity to execute RDYD immediately. The ".dyd" file is named <wsctemp.dyd>; it
can be read immediately or can be modified with a text editor prior to being read in a subsequent execution of RDYD.
rdws makes changes in the working load flow case as necessary to accommodate the WSCC data. For example, loads
may be added to the working case to accommodate WSCC load netting data, and generators may be added to
accommodate the WSCC treatment of cross-compound units. Generator MVA bases read from the input file replace
those already in the case. The working case should, therefore, be saved into a history file from which it was obtained
ONLY if the original history file is no longer needed.
rdws correctly interprets only WSCC V.11 data. The first record in the input file MUST contain the text "VERSION
11".
rdws requires that WSCC data in the file follow the rules describing such files in the WSCC Stability Program Users
Manual and the GE-WSCC Rule Book. Categories of data must appear in the order specified in the WSCC manual. If
a TITLE record is present, it must be followed by exactly three title text records and no "END" record. All other
categories of data must be terminated by an "END" record.
The WSCC data file may contain blank records and "CC" comment records.
Command: rdyd
EPCL: @return=rdyd("<file>","<report>",<aflag>,<sflag>,<rflag>)
Return Values: @return = −1 The installation is not licensed for PSDS
@return = −2 Attempt to read DYD file after a setup is initialized
@return = −3 User cancelled operation or there is an invalid file
@return = −4 Report destination file name cannot have a ‘*’
@return = −5 Cannot open a file
@return = −6 There is an internal model address conflict
Arguments: <file> Name of dynamic model data file
<report> Name of file to receive model error report.
<aflag> Flag to control new case or appending operation (1=start new setup,
0=append to existing setup)
<sflag> Flag to control sorting of models (1=yes,0=no)
<rflag> Flag to control reading of generator mva bases (1=yes,0=no)
Function: Reads a dynamic simulation model data file in GE format
If rdyd is run interactively, a “pick panel” is displayed as shown below for the user to select the dynamic data file. The file
extension “dyd” is usually used for this file. The pick panel starts in the directory specified by the “rdyd” path in the path
parameters or in the working directory if no “rdyd” path is specified.
If rdyd is run interactively, the following panel is displayed for user selection of report filename and options.
RDYD Options
Report file or "print" ( <report>)
The specified file is used to write messages about errors encountered while reading the dynamic model data. If this field is left
blank, the errors are written to "rdydtemp.log" in the working directory. If “print” (quotation marks required) is specified, the
error report is sent to the terminal window and to the “term.log” file.
Start new setup (<aflag>)
If this item is checked (<aflag> = 1), rdyd resets the models table to its empty condition before reading. If it is unchecked
(<aflag> = 0), the table is not reset and new entries are appended to the model table as records are read from the input file.
Sort models (<sflag>)
If this item is unchecked (<sflag> = 0), the models are stored in memory in the same order as they appear in the dynamic data
file. The stored model sequence is as displayed in the edds edit table. If this item is checked (<sflag> = 1), the models are
sorted by model type and bus number. A temporary file named “epctemp.dyd” is created during this process. The models are
sorted according to the following general procedure:
1. load models: sort by name (see table below), then by bus number, then by id
2. most other models: sort by bus number, then by types (see table below), then by id
3. cross-compound turbine governor models: sort by bus number, then by id. These are last to ensure that both of their
generators precede them.
The following table shows the criteria for sorting within various types of models:
Sort Model type Type Model User- Other examples
order Code names written
Models
1 Motor l m……. motorw
2 System-wide l w……. wlwscc
Load
3 Area-wide l a……. alwscc
Load
4 Zone-wide l z……. zlwscc
Load
5 Bus Load l b……. blwscc
6 Other Load l cmpld, secld1, etc.
7 Generator g any epcgen genrou, gensal,
(and SVD) stcon1 motor1, stcon, vwscc,
svcwsc, etc.
8 Exciter x any epcexc exac1, exst2, etc.
9 Turbine t any exc.CC epctrb ggov1, hygov, ieeeg1,
etc..
10 Other d,u,c, epcmod, epcdc, cdc6, dcbtb1,
r,m,s dc2t, dcmt, stcon, ltc1, lcfb1,
tcsc, pss2a, vmetr, ooslen,
agc2, etc.
11 CC turbine t crcmgv crcmgv, ieeeg1 (if
ieeeg1 con-nected to 2
generators)
This order ensures that during initialization, models that need a value computed by another model are executed later in the
sequence. For example, during initialization, excitation system models need the generator field voltage, which is computed by
the generator models, so they must be executed after the generator models. Similarly, turbine-generator models need the shaft
mechanical power, which is computed by the generator model. The load models are sequenced so that area load models will
override the system-wide model, zone models override area models, and individual bus models override zone models. NOTE:
The sequencing of models of any one type is arbitrary and not necessarily in the original order.
If “Sort models” is turned off, the user must ensure that models are entered in the correct sequence.
Read generator mva bases (<rflag>)
If “Read generator MVA bases” is unchecked (<rflag> = 0), any “mva=” and “mwcap=” entries in the dynamic data file will be
ignored. The generator MVA bases from the load flow “gens” table will be used for the generator MVA bases and for the
turbine MW capacities.
If “Read generator MVA bases” is checked (<rflag> = 1), any “mva=” and “mwcap=” entries in the dynamic data file will be
read and used. For any “mwcap=” that is omitted, the turbine MW case will be set to the generator MVA base. For any “mva=”
that is omitted, the load flow generator MVA base will be used.
Dynamic Data File Format
General
a) Filename – The dynamic data file may have any name. The file type (extension) “dyd” is normally used for this file.
b) Data groups - The data records are grouped by type. Each group of records is preceded by a keyword record identifying its
type, as described below. Keywords must start in the first column of the line.
c) Comment lines - A complete line is skipped by entering a pound sign (#) as the first character on the line. If the second
character is also a pound sign, this line is transferred to the comment file. The comment file is opened with the name of the
input file (minus the ".dyd") and a ".com" as a suffix ( <file>.com ). These comments are transferred to the dynamic data
output file upon subsequent calls to wdyd.
d) Record structure – Except for the “netting” records, each data record includes a model identifier and list of data for the
model. The model identifier is separated from the data by a colon (:) There must be at least one space before and after the
colon.
e) Continuation lines - Data records may be continued by placing a “/” character at the end of the "incomplete" line. Any
number of continuations may be used in a record.
f) Free-format records - The dynamic data file contains data items in free-format records. Data items in each record are
separated from one another by one or more spaces. Multiple spaces may be used to line up columns and otherwise to
improve the appearance of the file.
g) Character strings – Character (alphanumeric) items must be enclosed in quotation (“) marks.
h) Version compatibility – PSLF can read dynamic data files written by older or newer versions. Data items added in later
versions of the program are always added at the end of records. Older versions will ignore new data items written by new
versions. Newer versions will default missing data to be consistent with older versions.
The dynamic data file consists of:
- Comment records ( any record with a # in the first column)
- Keyword records ( netting, lodrep, models, list of ... )
The keyword must start in the first column of the record.
- Netting records
- Model data records
- Out-of-service model records
The keyword record netting must immediately precede the netting records.
The keyword record list of ... must follow the last model data record and must, in turn, be followed by the out-of-service model
records.
The keyword records lodrep and models may be placed anywhere in the file; they have no effect on the interpretation of the
file. These two keyword records are useful as markers to assist in the searching of the file with conventional text editors.
Netting Records
Netting records may be used to instruct the program to treat generation as negative load. Each netting record except the last
contains five bus identifications of the form
<n> <"name"> <bkv>
where: <n> = bus number
<"name"> = bus name
<bkv> = bus base voltage
Either <n> or <"name"> and <bkv> must be present. The ! character may be used in place of <n>, <"name">, or <bkv>
provided that sufficient identification of the bus remains.
The last netting record may contain fewer than five bus identifications.
Model Data Records
The input data file for rdyd must contain one record for each model to be used in the simulation. Each record has the form:
<mod> <n1> <na1> <kv1> <i1> <n2> <na2> <kv2> <i2> <s> : [r] [mva=n] <params>
or (for turbine-governor models):
<mod> <n1> <na1> <kv1> <i1> <n2> <na2> <kv2> <i2> <s> : [r] [mwcap=n] <params>
where
<mod> Model name as given in the model description in Section 3.10.2
<n1> External bus number of primary bus to which this model applies
<na1> Name of bus <n1>, in quotes
<kv1> Base voltage of bus <n1>
<i1> Identifier of component (e.g. generator) to which model pertains, in quotes
<n2> External bus number of secondary bus to which this model pertains
<na2> Name of bus <n2>, in quotes
<kv2> Base voltage of bus <n2>
<i2> Identifier of secondary component, or of line or transformer, to which the
model applies, in quotes
<s> Section number of branch section to which the model applies
[r] Optional record level for this model. This entry must have the form #n,
where n is a single digit from 1 to 9.
[mva=n] Optional generator mva. This entry is allowed for generator models only.
This entry must have the form mva=n, where, n is the generator mva
represented by this unit. No spaces are allowed in this option. This entry is
read only if <rflag> or Read generator mva bases...: has a value of 1.
[mwcap=n] Optional turbine MW capability. This entry is allowed for turbine-governor
models only. This entry must have the form mwcap=n, where n is the base
MW value to be used for certain of the turbine-governor parameters. No
spaces are allowed in this option. This entry is read only if <rflag> or Read
generator mva bases...: has a value of 1.
<params> Values of the model parameters in the order given in Section 3.10.2. Each
value may be preceded by a parameter name which is informational only.
May contain the word def to read the model defaults from the
<install_dir>models\* files. For user written models, the parameter “epcl
name” should not exceed 16 characters in length. If it exceeds 16 characters
in length, PSLF would not be able to execute it.
The entries, including the colon, must be separated by spaces. If the record is too long for one line it may be "continued" to the
next by placing a / at the end of the incomplete line.
If values are not entered for <i1>, <i2> and <s> or they are skipped with a ! <i1> and <i2> are defaulted to "1 " and <s> is
defaulted to 1.
The <mod>, :, and <params> entries are mandatory. Either <n1> or <na1> plus <kv1> must be present. Either <n2> or
<na2> plus <kv2> must be present. The RDYD command uses <n1>, <n2> if the names_flag of the display parameters panel is
zero; in this case the bus names and base voltages are ignored. If the names_flag is 1 the numbers are ignored and the bus
names and base voltages are used.
The list of entries ahead of the colon may be terminated after the last required entry. An entry that is ahead of a required entry,
but which is not required, may be skipped by putting a ! in its place.
Examples :
· For an exac1 model on machine H at bus 361, with bus numbers in use
exac1 362 ! ! "H" : <params>
· For the same model on the same machine with bus names in use
exac1 ! "BIGCC" 22. "H" : <params>
· For a gentpf model for machine 1 on bus 712
gentpf 712 : <params>
· For an imetr model on circuit 2, section 3, between buses 714 and 719
imetr 714 ! ! ! 719 ! ! "2" 3 : <params>
When rdyd reads a record for a rotating machine model (type = “g”) the d-axis characteristic reactance and stator resistance
values in this record are used as the generator characteristic impedance and replace the values of gens[].zgenr, gens[].zgenx in
the working case. The characteristic reactance value may be L'd or L"d depending on the machine model and the values of rotor
time constants; see Section 3.10. Do not overwrite a load flow history file with savf after using rdyd if you want to preserve the
original values of the generator characteristic impedances.
Out of Service Model Records
In rdyd, all models in the file are considered in service unless they appear in the section preceded by the keyword “list of out of
service models”. This section lists only the identification of the model with a zero following the colon. The data for these
models are still present in the model data section of the file. The model status can be turned on by removing the record from the
“out of service” section or by changing the “0” after the colon to a “1”. Examples of out of service records are as follows:
list of out of service models
genrou 37 "SALEM-G2" 22.00 "1 " : 0
exac3 37 "SALEM-G2" 22.00 "1 " : 0
tgov1 37 "SALEM-G2" 22.00 "1 " : 0
ieeest 37 "SALEM-G2" 22.00 "1 " : 0
genrou 41 "C.CLIF-2" 22.00 "1 " : 0
exdc1 41 "C.CLIF-2" 22.00 "1 " : 0
When rdyd is completed, it displays the number of models read from the file, the number of models in the model table, and the
number of out of service models.
Other Features
Parameter Default Values
For those models that have default values, the word def can be used in place of the parameters <params>. This allows rdyd to
use the defaults from the models/* files when the model is read. def may be directly after the colon, mvabase, mwcap or the
record level (separated from these by a space).
For example:
gentpf 712 : #9 mva=100. def
Model parameter default values are defined in the model edit table definition files in the folder “upslfxx\models”. The format of
these files are described in Chapter 6. The default values in these files may be changed by the user.
notread.dyd
If a line in the .dyd file has an error which doesn't allow the model to be added to the model table, the line is written to a file
called "notread.dyd". This file can then be edited to fix the errors and read back in with the append flag (<aflag>) on. Therefore
you get a "second chance" at reading in the model data. These errors can occur for the following reasons:
· Prerequisite models may not exist at the time of reading due to improper sequence.
· The model component may not exist in the load flow tables.
· The model name may not exist in the list of available models.
In-run EPCL Program (~jjla.p)
A line may be added to the .dyd file with a model name of "epcl". This creates an epcl file called "~jjla.p" which is used by init
and run as an in-run epcl program. The code that is put into the epcl program is the text after the required colon ":". A slash ( / )
at the end of the line may be used to indicate there are more lines of code to follow. The identifier before the colon is used as a
substitute for the following keys:
%f is the internal "from" bus number
%i is the id
%t is the internal "to" bus number
%c is the ck
%s is the section
%r is replaced with the rec_index of the specified component; secdd, gens, load etc...
For example:
epcl 3 "NORTH-03" 230.00 "1 ": logterm("The internal bus number is %f<")
When rdyd is executed this line would create a ~jjla.p file with the line
logterm("The internal bus number is %f<")
Therefore, at every time step we would see the "The internal bus number is" and the internal number for bus 3 would be
displayed.
Program: rdyp
EPCL: @return=rdyp()
Command: rede (from econ:Read GE)
Arguments: <file> Name of economic dispatch data file
rede reads economic dispatch data from a file whose format is given below. The file selection panel of rede lists files whose
name suffix is <.ede>.
The econ:Skel Data command may be used to generate standard default economic dispatch data for the power system in the
working case. To do this simply select the econ:Skel Data button. This default economic dispatch data may be cleaned up and
then written to a file with wede for future use.
The economic dispatch data file contains comments and five sets of records as follows:
Group data records
Generator data records
Incremental heat rate data records
End record
Any number of comment records may be used and placed anywhere. Column 1 of every comment record must contain a #.
Group Data Records
Group data records must be preceded by a record containing the word group in columns 1 through 5. The remainder of the
record may contain any useful text.
Each group data record must contain:
<gnum> <gname> <margin> <fixed> <area1> <area2>...<arean>
where
<gnum> A dispatch group number. Dispatch groups must be numbered
consecutively starting at 1.
<gname> A group name consisting of 8 or fewer characters enclosed in double
quotes.
<margin> Reserve margin. Variable reserve as fraction of actual generator
output in the group, p.u.
<fixed> Fixed reserve, MW.
<area1> A list of up to 20 numbers specifying the areas that comprise the
dispatch group. A single area is assigned to the group by entering
an area number with positive sign following another positive
number or <CR>. A set of consecutively numbered areas is
assigned to the group by entering the first area number with positive
sign followed by the last area number with negative sign. For
example, the list 4, 7, 9, -14, 18 assigns areas 4, 7, 18, and areas 9
through 14 inclusive to a group.
The group data record section is ended by the header of the generator data records.
Generator Data Records
Generator data records must be preceded by a record with the word gen in columns 1 through 3. The remainder of the record
may contain any useful text.
Each generator data record must contain:
<busno> <bname> <kv> <id> : <type> <fuel> <pp> <fc> <ff> <om> <perf> <penf> <hr> <dmax> <dmin> <dst> <remark>
where
<busno> Bus identifier and unit identifier of the generating
<bname> unit. Only those entries needed to specify the unit
<kv> need to be entered. An entry may be skipped by entering
<id> an !. The list of identifier entries is terminated by a :, which must be
present. The default value of<id> is "1 ".
The <bname> entry is enclosed in double quotes.
<type> One or two character unit type codes, used for information purposes
only, such as:
s for steam turbine
g for gas turbine
j for area-derivative turbine
h for hydro turbine
<fuel> One or two character fuel codes, used for information purposes only,
such as:
c for coal
g for natural gas
o for oil
<pp> Commitment priority number from 0 to 9. Units with priority
number 0 are always on-line then units are committed in order of
increasing priority number. (That is units with high priority number
are used last.)
<fc> Fuel cost in suitable units such as dollars per million Btu or dollars
per megajoule. The same units must be used for all generators.
<ff> Fuel factor.
<om> Operating and maintenance cost, $/MBtu
<perf> Unit performance factor.
<penf> Transmission loss penalty factor.
<hr> Total heat rate of the unit at full load
<dmax> Maximum dispatchable power output in MW. <dmax> overrides
gens[].pmax for economic dispatch purposes.
<dmin> Minimum dispatchable power output in MW. <dmin> overrides
gens[].pmin for economic dispatch purposes
<dst> Dispatch status; 1 for unit to be dispatched according to incremental
cost, 0 for unit to be held at fixed output. Note: REDE sets dispatch
status to zero, regardless of this entry, if no incremental heat rate
curve is entered for the generator.
<remark> Remark of up to 16 characters. The remark must be enclosed in
double quotation marks, e.g. "podunk unit2".
The generator data record section is ended by the header of the incremental heat rate records.
Incremental Heat Rate Data Records
Incremental heat rate data records must be preceded by a record with the word curve in columns 1 through 5. The remainder of
the record may contain any useful text.
Each incremental heat rate record must contain:
<busno> <bname> <kv> <id> : <p1> <hr1> <p2> <hr2> ...... <p11> <hr11>
where
<busno> Bus identifier and unit identifier of the generating unit.
<bname> Only those entries needed to specify the unit need
<kv> to be entered. An entry may be skipped by entering an !.
<id> The list of identifier entries is terminated by a :, which
must be present. The default value of <id> is "1 ".
The <bname> entry is enclosed in double quotes.
<p1>-<p11> Values of power output with ascending values. At least
two entries must be present. Others may be absent.
Power is stated in MW.
<hr1>-<hr11> Values of incremental heat rate at outputs of p1 through
p5 in units corresponding to the units used for fuel cost
in the generator data records. A value must be present
for each <pn> value that is present. <hr> entries must
have ascending values.
The incremental heat rate records are ended by a record containing the word end in columns 1 through 3.
Command: redi (from econ:Read PTI)
Arguments: <file> Name of economic dispatch data file
redi reads economic dispatch data from a file in the format of the PTI PSS/E program.
The file selection panel of redi lists files whose name suffix is <.edi>.
Command: redp (from econ:Read PSAP)
EPCL: @return = redp("<file>")
Arguments: <file> Name of economic dispatch data file
Function: Reads economic dispatch data from file in "PSAP" format
Prerequisites: Valid solved load flow and economic data in working case
redp reads economic dispatch data from a file in the Philadelphia Electric economic dispatch data file. redp reads
data categories 1, 15, 16, 17, 18, and the data blocks must be in the above order.
The file selection panel of redp lists files whose name suffix is <.edp>.
When redp encounters data for a generator having no gens[] record in the working case, but whose terminal bus is
present in the busd[] table, R redp creates a new gens[] record as required and places it at the end of the gens[]table.
Accordingly, it is advisable to save an updated copy of the load flow case with savf if updated economic dispatch data
is subsequently written out with the wede command.
Command: repc (from exim:Import EPC)
EPCL: @return = repc("<file>","<flag>")
Arguments: <file> Name of file to read input from
<flag> new case flag 1=base case, 0=append data
Function: Reads load flow data from file into working case
Prerequisites: None
1. GENERAL
The EPC load flow data file contains data items in free-format records. Data items in each record are separated from one
another by blanks; a string of several blanks is equivalent to a single blank, hence multiple blanks may be used to line up
columns and otherwise to improve the appearance of the file.
The data records are grouped by type. Each group of records is preceded by a keyword record identifying its type.
Data records may be continued by placing a / character at the end of the "incomplete" line. Any number of continuations
may be used in a record.
A file may contain comment records anywhere. Comment records are ignored when the file is read by the REPC
command. Each comment record must have a # as its first character, and may contain any text after the # character. The #
character may not be preceded by blanks.
The complete <number><name><kv> identifier of the bus must be used in each bus data record. In branch section,
transformer, generator, load, shunt, and controlled shunt data records the bus number, name, base voltage, circuit identifier,
and section entries may be replaced by the ! character if they are not to be used or if the default value is acceptable. Bus
name and base voltage are not needed in these records if the bus numbers are being used to identify the system locations
and vice versa. If dispar[0].nameflag is set to 0, external bus number would be used as bus identifier to uniquely identify
buses and if dispar[0].nameflag is set to 1, bus name and base voltage will be used as bus identifier to uniquely identify
buses. Please make sure that each bus has unique bus identifier. If there are any duplication found, only the first record will
be read. The 2-character identifier defaults to "1 " if a ! is used in its place. The branch section number defaults to 1 if a ! is
used in its place. The records where the use of the ! character is used are identified by a : character after the last entry in
which a ! is allowed.
The last record of each file must be a keyword record containing the keyword "end".
The casepar[0].longname parameter will be set to 1 by PSLF when an epc file is imported.
2. RECORD GROUPS
The load flow data file contains groups of records, each proceeded by an identifying keyword record as follows:
Record Group Described in Keywords
Section
Title 3 title
Comments 4 comments
Solution Parameters 5 solution parameters
Bus Data 6 bus data
Branch Section Data 7 branch data
Transformer Data 8 transformer data
Generator Data 9 generator data
Load Data 10 load data
Shunt Data 11 shunt data
Controlled Shunt Data 12 svd data
Area Data 13 area data
Zone Data 14 zone data
Interface data 15 interface data
Interface branch data 16 interface branch data
DC Bus Data 17 dc bus data
DC Line Data 18 dc line data
DC Converter Data 19 dc converter data
VS DC Converter Data 20 vs converter data
Transformer Impedance Adjustment Data 21 z table data
UPFC Data 22 gcd data
Transaction Data 23 transaction data
Owner Data 24 owner data
Induction motor Data 25 motor data
Line Data 26 line data
Generator Reactive Capability Curves 27 qtable data
These groups of records may appear in any order, except that the Bus Data group must precede all groups appearing after it
in the above table, and DC Bus Group must precede DC groups. Any group of records may be omitted.
3. TITLE
The title of the case. The title consists of any number of lines of text with a maximum length of 80 characters. The last
record of the title must contain ! in its first column. The first five, or fewer, title lines preceding the ! record are read into
the case title. Title lines beyond the fifth are skipped and ignored.
4. COMMENTS
Comments describing the case. The comments consists of any number of lines of text with a maximum length of 80
characters. The last record of the comments must contain ! its first column. The first fifteen, or fewer, comment lines
preceding the ! record are read into the case comments table. Comment lines beyond the fifteenth are skipped and ignored.
5. SOLUTION PARAMETERS
Records containing the load flow solution control flags. Each record must contain one of the following keyword/value
pairs.
tap <1 or 0> TCUL adjustment flag
phas <1 or 0> Phase shifter adjustment flag
area <1 or 0> Area interchange control flag
svd <1 or 0> Control shunt adjustment flag
dctap <1 or 0> DC converter control flag
gcd <1 or 0> GCD control flag
jump <value> Jumper threshold impedance, pu
toler <value> Newton solution tolerance, MVA
sbase <value> System base, MVA
These records may appear in any order. The last record of this group must be followed by a record with a ! in its first
column.
6. BUS DATA
A record for each bus in the load flow, containing:
<number> <"name"> <kV> : <ty> <vs> <vt> <an> <ar> <z> <vma> <vmi> <d_in> <d_out> <projid> <level>
<owner> <stisol> <latitude> <longitude> <islnum>
where
Name Description Units
<number> Bus number (integer from 1 to 9999999)
<"name"> Alphanumeric string containing 1 to 12 characters and at least
one non-numeric character within quotation marks
<kV> Base voltage (kV)
<ty> Bus type {0,1,2,-2}
0 = swing bus (voltage magnitude and phase fixed)
1 = load bus (unconstrained voltage angle and
magnitude)
2 = generator bus (voltage control [terminal or remote]
within generator limits)
-2 = generator bus with unlimited reactive power limits
<vs> Scheduled voltage (pu)
<vt> Bus voltage magnitude (pu)
<an> Bus voltage phase angle (degrees)
<ar> Bus area
<z> Bus zone
<vma> Voltage checking limit (pu)
<vmi> Voltage checking limit (pu)
<d_in> In service date (yymmdd)
<d_out> Retirement date (yymmdd)
<proj id> Project Identifier ( information only )
<level> Level number ( information only )
<owner> Bus owner
<stisol> Isolation status (future use)
<latitude> Latitude coordinate (information only)
<longitude> Longitude coordinate (information only)
<islnum> Island number (future use)
7. BRANCH SECTION DATA
A record for each branch section in the load flow, containing:
<f bus> <"f name"> <f bkv> <t bus> <"t name"> <t bkv> <"ck"> <sec> <"long id">: /
<st> <r> <x> <b> <r1> <r2> <r3> <r4> <al> <l> <ar> <z> <gi> <tf> <tt> /
<d_in> <d_out> <proj id> <nst> <type> <r5> <r6> <r7> <r8> /
<o1> <p1> <o2> <p2> <o3> <p3> <o4> <p4> <o5> <p5> <o6> <p6> <o7> <p7> <o8> <p8> <ohms>
where
Name Description Units
<f bus> From bus number
<"f name"> From bus name enclosed in quotation marks
<f bkv> From bus base voltage (kV)
<t bus> To bus number
<"t name"> To bus name enclosed in quotation marks
<t bkv> To bus base voltage (kV)
<"ck"> Two character circuit identifier enclosed in quotation marks
<sec> Section number (1-9 in ascending order beginning at "from" end)
<"long id"> Long Identifier (up to 32 characters) enclosed in quotation marks
<st> Branch status 1=in service; 0=out of service
<r> Branch section resistance (pu)
<x> Branch section reactance (pu)
<b> Branch section susceptance (pu)
<r1> First Branch Rating (MVA)
<r2> Second Branch Rating (MVA)
<r3> Third Branch Rating (MVA)
<r4> Fourth Branch Rating (MVA)
<al> Loss factor (0.0 - 1.0) used to assign losses.
1.0 = 100% loss assigned to "from" end of branch
0.0 = 100% loss assigned to "to" end of branch
<l> Branch length ( information only )
<ar> Branch area number
<z> Branch Zone number
<gi> Transformer magnetizing (line terminated transformers)
<tf> Transformer "from" bus tap (line terminated transformers)
<tt> Transformer "to" bus tap (line terminated transformers)
<d_in> In service date (yymmdd)
<d_out> Retirement date (yymmdd)
<proj id> Project Identifier ( information only )
<nst> Normal branch status 1=in service; 0=out of service
<type> Type of line 0=normal line
<r5> Fifth Branch Rating (MVA)
<r6> Sixth Branch Rating (MVA)
<r7> Seventh Branch Rating (MVA)
<r8> Eighth Branch Rating (MVA)
<o1> Branch owner 1
<p1> Branch owner 1 participation factor (0.0 - 1.0)
<o2> Branch owner 2
<p2> Branch owner 2 participation factor (0.0 - 1.0)
<o3> Branch owner 3
<p3> Branch owner 3 participation factor (0.0 - 1.0)
<o4> Branch owner 4
<p4> Branch owner 4 participation factor (0.0 - 1.0)
<o5> Branch owner 5
<p5>
Branch owner 5 participation factor (0.0 - 1.0)
<o6> Branch owner 6
<p6> Branch owner 6 participation factor (0.0 - 1.0)
<o7> Branch owner 7
<p7> Branch owner 7 participation factor (0.0 - 1.0)
<o8> Branch owner 8
<p8> Branch owner 8 participation factor (0.0 - 1.0)
<ohms> Ohmic data flag
1 if impedances in ohms
0 if in per unit
8. TRANSFORMER DATA
A record for each transformer in the load flow, containing:
<f bus> <"f name"> <f bkv> <t bus> <"t name"> <t bkv> <"ck"> <"long id">:
<st> <type> <kreg bus> <"kreg name"> <kreg bkv> <zt> <iint bus> <"iint name"> /
<iint bkv> <tert bus> <"tert name"> <tert bkv> <area> <zone> <tbase> <zpsr> /
<zpsx> <zptr> <zptx> <ztsr> <ztsx> <vnomp> <vnoms> <vnomt> <anglp> <gmag> /
<bmag> <r1> <r2> <r3> <r4> <aloss> <tmax> <tmin> <vtmax> <vtmin> <stepp> <tapp> <tapfp> <tapfs>
<tapft> <date_in> <date_out> <projid> <stn> /
<r5> <r6> <r7> <r8> <o1> <p1> <o2> <p2> <o3> <p3> <o4> <p4> <o5> <p5> /
<o6> <p6> <o7> <p7> <o8> <p8> <ohms> <tbasept> <tbasets> <angls> <anglt> /
<rs1> <rs2> <rs3> <rt1> <rt2> <rt3> <alosss> <alosst> <rxunits> <gbunits> / <tunits> <rcomp> <xcomp>
where
Name Description
<f bus> From bus number
<"f name"> From bus name enclosed in quotation marks
<f bkv> From bus base voltage (kV)
<t bus> To bus number
<"t name"> To bus name enclosed in quotation marks
<t bkv> To bus base voltage (kV)
<"ck"> Two character circuit identifier enclosed in
quotation marks
<"long id"> Long Identifier (up to 32 characters) enclosed in
quotation marks
<st> Transformer status 1=in service; 0=out of service
3-winding only: 2=secondary open, 3=tertiary
open,
4=primary open
<type> Control type {1,11,2,12,4,14}
1 or 11= None
2 or 12= Controls a voltage by adjusting TCUL
ratio
4 or 14= Controls real power flow by adjusting
ps angle
<kreg bus> Number of bus whose voltage is controlled by
this transformer if type is not a 1.
<"kreg name"> Regulating bus name enclosed in quotation marks
<kreg bkv> Regulating bus base voltage
<iztabl> Transformer impedance table number
<iint bus> 3-winding point bus number
<"iint name"> 3-winding point bus name enclosed in quotation
marks
<iint bkv> 3-winding point bus base voltage
<tert bus> Tertiary winding bus number
<"tert name"> Tertiary winding bus name enclosed in quotation
marks
<tert bkv> Tertiary winding bus base voltage
<area> Area assignment
<zone> Owner Zone
<tbase> Transformer Base (primary to secondary) (MVA)
<zpsr> Resistance primary to secondary (pu on tbase)
<zpsx> Reactance primary to secondary (pu on tbase)
<zptr> Resistance primary to tertiary (pu on tbasept)
<zptx> Reactance primary to tertiary (pu on tbasept)
<ztsr> Resistance tertiary to secondary (pu on tbasets)
<ztsx> Reactance tertiary to secondary (pu on tbasets)
<vnomp> Primary winding nominal voltage (kV)
<vnoms> Secondary winding nominal voltage (kV)
<vnomt> Tertiary winding nominal voltage (kV)
<anglp> Primary winding phase angle (degrees)
<gmag> Magnetizing conductance (pu on tbase)
<bmag> Magnetizing susceptance (pu on tbase)
<r1> First Transformer Rating (MVA)
<r2> Second Transformer Rating (MVA)
<r3> Third Transformer Rating (MVA)
<r4> Fourth Transformer Rating (MVA)
<aloss> Loss factor (0.0 - 1.0) used to assign losses.
1.0 = 100% loss assigned to "from" side of
transformer
<tmax> Maximum TCUL ratio if type 2 (pu) (degrees)
Maximum phase angle if type 4
<tmin> Minimum TCUL ratio if type 2 (pu) (degrees)
Minimum phase angle if type 4
<vtmax> Upper limit of controlled voltage band if type 2 (pu)
Upper limit of controlled MW flow (MW)
band if type 4
<vtmin> Lower limit of controlled voltage band if type 2 (pu)
Lower limit of controlled MW flow (MW)
band if type 4
<stepp> Ratio step of TCUL unit if type is 2 (pu)
Angle step of TCUL unit if type is 4 (degrees)
<tapp> TCUL tap position (primary winding) (pu)
<tapfp> Primary winding fixed tap position (pu)
<tapfs> Secondary winding fixed tap position (pu)
<tapft> Tertiary winding fixed tap position (pu)
<date_in> In service date (yymmdd)
<date_out> Retirement date (yymmdd)
<projid> Project Identifier ( information only )
<stn> Normal transformer status
1 = in service
0 = out of service
<r5> Fifth Branch Rating (MVA)
<r6> Sixth Branch Rating (MVA)
<r7> Seventh Branch Rating (MVA)
<r8> Eighth Branch Rating (MVA)
<o1> Transformer owner 1
<p1> Transformer owner 1 participation factor (0.0 -
1.0)
<o2> Transformer owner 2
<p2> Transformer owner 2 participation factor (0.0 -
1.0)
<o3>
Transformer owner 3
<p3> Transformer owner 3 participation factor (0.0 -
1.0)
<o4> Transformer owner 4
<p4> Transformer owner 4 participation factor (0.0 -
1.0)
<o5> Transformer owner 5
<p5> Transformer owner 5 participation factor (0.0 -
1.0)
<o6> Transformer owner 6
<p6> Transformer owner 6 participation factor (0.0 -
1.0)
<o7> Transformer owner 7
<p7> Transformer owner 7 participation factor (0.0 -
1.0)
<o8> Transformer owner 8
<p8> Transformer owner 8 participation factor (0.0 -
1.0)
<ohms> Ohmic data flag 1 if impedances in ohms 0 if in
per unit
<tbasept> Transformer Base (primary to tertiary) (MVA)
<tbasets> Transformer Base (tertiary to secondary) (MVA)
<angls> Secondary winding phase angle (degrees)
<anglt> Tertiary winding phase angle (degrees)
<rs1> Secondary rating 1 (MVA)
<rs2> Secondary rating 2 (MVA)
<rs3> Secondary rating 3 (MVA)
<rt1> Tertiary rating 1 (MVA)
<rt2> Tertiary rating 1 (MVA)
<rt3> Tertiary rating 1 (MVA)
<alosss> Secondary Loss factor (0.0 - 1.0)
<alosst> Tertiary Loss factor (0.0 - 1.0)
<rxunits> R, X units (future use)
<gbunits> G, B units (future use)
<tunits> Tap units (future use)
<rcomp> Compensating resistance (future use) (pu)
<xcomp> Compensating reactance (future use) (pu)
9. GENERATOR DATA
A record for each generator in the load flow, containing:
<bus> <"name"> <bkv> <"id"> <"long id"> : <st> <igreg bus> <"igreg name"> /
<igreg bkv> <prf> <qrf> <ar> <z> <pgen> <pmax> <pmin> <qgen> <qmax> <qmin> /
<mbase> <rcomp> <xcomp> <zgenr> <zgenx> <h bus> <"h name"> <h bkv> <t bus> /
<"t name"> <t bkv> <d_in> <d_out> <projid> <snt> <rtr> <xtr> <gtap> /
<o1> <p1> <o2> <p2> <o3> <p3> <o4> <p4> <o5> <p5> <o6> <p6> <o7> <p7> <o8> <p8> <gov_flag> <agc_flag>
<dispatch_flag> <baseload_flag> <air_temp> / <turbine_type> <qtab> <pmax2> <sdmon> <cont_mode> <pf>
where
Name Description Units
<bus> Generator terminal bus
<"name"> Generator terminal bus name enclosed in
quotation marks
<bkv> Generator terminal bus base voltage (kV)
<"id"> 2 character generator identifier enclosed in
quotation marks
<"long id"> Long Identifier (up to 32 characters) enclosed
in quotation marks
<st> Generator status
1 = in service
0 = out of service
<igreg bus> Number of bus whose voltage is controlled by
this generator
<"igreg name"> Regulating bus name enclosed in quotation
marks
<igreg bkv> Regulating bus base voltage
<prf> Real power regulating assignment factor (0.0 -
1.0)
<qrf> Reactive power regulating assignment factor
(0.0 - 1.0)
<ar> Area assignment
<z> Zone assignment
<pgen> Actual real power output (MW)
<pmax> Maximum real power output (MW)
<pmin> Minimum real power output (MW)
<qgen> Actual reactive power output (MVAr)
<qmax> Maximum reactive power output (MVAr)
<qmin> Minimum reactive power output (MVAr)
<mbase> Generator base (MVA)
<rcomp> Compensating resistance (pu)
<xcomp> Compensating reactance (pu)
<zgenr> Generator characteristic resistance (pu)
<zgenx> Generator characteristic reactance (pu)
<h bus> Number of high voltage bus of step up
transformer
<"h name"> High voltage bus name enclosed in quotation
marks
<h bkv> High voltage bus base kv
<t bus> Number of generator terminal bus
<"t name"> Generator terminal bus name enclosed in
quotation marks
<t bkv> Generator terminal bus base voltage
<d_in> In service date (yymmdd)
<d_out> Retirement date (yymmdd)
<projid> Project Identifier ( information only )
<stn> Normal generator status
1 = in service
0 = out of service
<rtr> Resistance of generator stepup transformer (pu)
<xtr> Reactance of generator stepup transformer (pu)
<gtap> Tap ratio of generator stepup transformer (pu)
<o1> Generator owner 1
<p1> Generator owner 1 participation factor (0.0 -
1.0)
<o2> Generator owner 2
<p2> Generator owner 2 participation factor (0.0 -
1.0)
<o3> Generator owner 3
<p3> Generator owner 3 participation factor (0.0 -
1.0)
<o4> Generator owner 4
<p4> Generator owner 4 participation factor (0.0 -
1.0)
<o5> Generator owner 5
<p5 Generator owner 5 participation factor (0.0 -
1.0)
<o6> Generator owner 6
<p6> Generator owner 6 participation factor (0.0 -
1.0)
<o7> Generator owner 7
<p7> Generator owner 7 participation factor (0.0 -
1.0)
<o8> Generator owner 8
<p8> Generator owner 8 participation factor (0.0 -
1.0)
<gov_flag> = 0 no governor control
= 1 under governor control
<agc_flag> = 0 no agc control
= 1 agc control
<dispatch_flag> = 0 not dispatchable
= 1 dispatchable under manual load
<baseload_flag> = 0 not at maximum output
= 1 at maximum output
<air_temp> ambient air temperature in degrees C (def
=15)
<turbine_type> = 1 non-reheat steam
= 2 reheat steam
= 3 steam cross-compound
= 4 steam in combined cycle (separate shaft)
= 5 hydro
= 6 diesel non turbo charged
= 7 diesel turbo charged
= 11 industrial GT (single shaft)
= 12 aero derivative GT
= 13 single shaft combined cycle
= 21 wind turbine
<qtab> Reactive limits selection:
= 0, use qmax, qmin
= 1, use Q table if present
<pmax2> Maximum real power output #2 (MW)
<sdmon> Internal PSLF variable (0 or 1)
<cont_mode> Voltage control mode (MW)
= 0 regulate <igreg> within Qmin, Qmax (or
Qtable)
= 1 constant Q = Qgen
= 2 regulate igreg within Q limits per <pf>
= 3 constant Q per <pf>
= -1 regulate term. bus within Qmin, Qmax (or
Qtable)
= -2 regulate term. bus within Qlimits per <pf>
<pf> Power factor limit (for cont_model = 2, -2, 3)
10. LOAD DATA
A record for each load in the load flow, containing:
<bus> <"name"> <bkv> <"id"> <"long id"> : <st> <p> <q> <ip> <iq> <g> <b> /
<ar> <z> <d_in> <d_out> <proj id> <nst> <owner> <sdmon> <nonconf> <thrbus> <thrflag>
where
Name Description Units
<bus> Load terminal bus
<"name"> Load terminal bus name enclosed in quotation marks
<bkv> Load terminal bus base voltage (kV)
<"id"> Two character load identifier enclosed in quotation
marks
<"long id"> Long Identifier (up to 32 characters) enclosed in
quotation marks
<st> Load status
1 = in service
0 = out of service
<p> Constant real power (MW)
<q> Constant reactive power (MVAR)
<ip> Constant current real power (MW)
<iq> Constant current reactive power (MVAR)
<g> Constant admittance real power (MW)
<b> Constant admittance reactive power (MVAR)
<a> Load area number
<z> Load Zone number
<d_in> In service date (yymmdd)
<d_out> Retirement date (yymmdd)
<proj id> Project Identifier ( information only )
<nst> Normal load status 1=in service; 0=out of service
<owner> Load owner
<sdmon> Internal PSLF variable (0 or 1)
<nonconf> Non-conforming load (0 or 1)
<thrbus> Throw over bus
<thrflag> Throw over flag (0 or 1)
11. SHUNT DATA
A record for each fixed shunt element in the load flow, containing:
<fbus> <"fname"> <fbkv> <"id"> <tbus> <"tname"> <tbkv> <"ck"> <sec> /
<"long id"> : <st> <ar> <z> <g> <b> <d_in> <d_out> <proj id> <nst> /
<o1> <p1> <o2> <p2> <o3> <p3> <o4> <p4> /
<svd bus> <"sname"> <skv> <”idsvd”> <stsvd>
where
Name Description Units
<fbus> From shunt terminal bus
<"fname"> From shunt terminal bus name enclosed in quotation
marks
<fbkv> From shunt terminal bus base voltage (kV)
<"id"> Two character shunt identifier enclosed in quotation
marks
<tbus> To shunt terminal bus
<"tname"> To shunt terminal bus name enclosed in quotation marks
<tbkv> To shunt terminal bus base voltage (kV)
<"ck"> Two character shunt circuit enclosed in quotation marks
<sec> Section number (1-9 in ascending order beginning at
"from" end)
<"long id"> Long Identifier (up to 32 characters) enclosed in
quotation marks
<st> Shunt status
1 = in service
0 = out of service
<g> Actual shunt conductance (MW)
<b> Actual shunt susceptance (MVAR)
<a> Shunt area number
<z> Shunt Zone number
<d_in> In service date (yymmdd)
<d_out> Retirement date (yymmdd)
<proj id> Project Identifier (information only )
<nst> Normal shunt status 1 = in service, 0 = out of service
<o1> Shunt owner 1
<p1> Shunt owner 1 participation factor (0.0 - 1.0)
<o2> Shunt owner 2
<p2> Shunt owner 2 participation factor (0.0 - 1.0)
<o3> Shunt owner 3
<p3> Shunt owner 3 participation factor (0.0 - 1.0)
<o4> Shunt owner 4
<p4> Shunt owner 4 participation factor (0.0 - 1.0)
<svd bus> Bus number of SVD controlling this shunt, if any
<"sname"> SVD bus name in quotation marks
<skv> SVD bus base voltage
<”idsvd”> Two-character SVD identifier in quotation marks
<stsvd> <= 0 to disable control of this shunt by SVD
<sdmon> Internal spare flag ( 0 or 1 )
12. CONTROLLED SHUNT DATA
A record for each controlled shunt (SVD-Static VAR device) in the load flow, containing:
<bus> <"name"> <bkv> <"id"> <"long id"> : <st> <ty> /
<kreg bus> <"kreg name"> <kreg bkv> <ar> <z> <g> <b> <bmin> <bmax> / <vband> <befmin> <befmax> <d_in>
<d_out> <proj id> <nst> /
<o1> <p1> <o2> <p2> <o3> <p3> <o4> <p4> /
For type 1, 2, 3, or 4:
<n1> <b1> <n2> <b2> ... <n10> <b10> <vrefmin> <vrefmax>
For type 5, or 6:
<xc> <bminsh> <bmaxsh> <stsb> <bminsb> <bmaxsb> <vrefmin> <vrefmax> <dvdb>
For type 7:
<n1> <b1> <n2> <b2> ... <n10> <b10> /
<xs> <bminsh> <bmaxsh> <stsb> <bminsb> <bmaxsb> <vrefmin> <vrefmax> <dvdb>
where
Name Description Units
<bus> SVD terminal bus
<"name"> SVD terminal bus name enclosed in quotation marks
<bkv> SVD terminal bus base voltage (kV)
<"id"> Two character SVD identifier enclosed in quotation
marks
<"long id"> Long Identifier (up to 32 characters) enclosed in
quotation marks
<st> SVD status
1 = in service
0 = out of service
<ty> Device type
0 = Locked (Susceptance is held constant)
1 = Control with switched stepwise control and
continuous element
2 = Continuous control between total maximum
and minimum susceptance
3 = Bang-bang control with switched shunt
elements
4 = Stepwise control with switched shunt
elements
5 = Continuous control with remote shunt
switching (WECC TCR-based model)
6 = Continuous control with current limits with
remote shunt switching (WECC Statcom
model)
7 = Continuous control with setting to nearest
discrete step (WECC TSC/TSR model)
<kreg bus> Bus number whose bus voltage is regulated by this
SVD (not used if Xc is not 0.)
<"kreg name"> Regulated bus name enclosed in quotation marks
<kreg bkv> Regulated bus base voltage
<ar> SVD area number
<z> SVD zone number
<g> Constant shunt G of device (pu)
<b> Present value of shunt B (pu)
<bmin> Minimum susceptance of continuous element (pu)
(Not used for Types 6 and 7)
<bmax> Maximum susceptance of continuous element (pu)
(Max. current for Type 6) (not used for Type 7)
<vband> Wdith of voltage control band around regulated bus (pu)
Vsched (types 3 & 4 only)
If <= 0., Vrefmin, Vrefmax range is used
<befmin> Minimum total susceptance (computed internally) (pu)
<befmax> Maximum total susceptance (computed internally) (pu)
<d_in> In service date (yymmdd)
<d_out> Retirement date (yymmdd)
<proj id> Project Identifier ( information only )
<nst> Normal SVD status
1 = in service
0 = out of service
<o1> SVD owner 1
<p1> SVD owner 1 participation factor (0.0 - 1.0)
<o2> SVD owner 2
<p2> SVD owner 2 participation factor (0.0 - 1.0)
<o3> SVD owner 3
<p3> SVD owner 3 participation factor (0.0 - 1.0)
<o4> SVD owner 4
<p4> SVD owner 4 participation factor (0.0 - 1.0)
The following are input only for Type 1, 2, 3, 4, and 7 SVD
<ni> Number of equal admittance steps in i-th stage, (i
<=10) (not used for Types 5 and 6)
<bi> Susceptance of each switched element in i-th stage
(not used for Types 5 and 6)
The following are input only for Type 5, 6, and 7 SVD
<xc> Compensating (slope) reactance, p.u. (pu)
<bminsh> Range within which remote shunts are not switched (I (pu)
<bmaxsh>
range for Type 6) (pu)
<stsb> Type 5, 7 : On/off status of slow B control
Type 6: On/off status of I reset or deadband control
<bminsb> Type 5, 7: B range for slow B control (pu)
<bmaxsb>
(not used for type 6; I = 0. assumed) (pu)
<vrefmin> Type 5, 7: V range for slow B control (pu)
<vrefmax>
Type 6: V range for I reset or deadband control (pu)
Types 3,4: Vrange, if Vband <= 0.
<dvdb> p.u. change in voltage / p.u. change in B (approx. = (pu)
short circuit impedance at SVD bus) (only needed if
slow B / I reset control is used, i.e. non-zero stsb)
<sdmon> PSLF internal variable (0 or 1)
Note: Per unit B values (and I for type 6) are on system MVA base.
13. AREA DATA
A record for each area in the load flow, containing:
<arnum> <"arnam"> <swing> <pnetdes> <pnettol <pnet> <qnet>
where
Name Description Units
<arnum> Area number (0 - 999)
<"arnam"> Area name up to 32 characters enclosed in quotation marks
<swing> Bus number at which area swing generator is located
<pnetdes> Scheduled real power net interchange (MW)
<pnettol> Real power net interchange tolerance (MW)
<pnet> Actual real power net interchange (MW)
<qnet> Actual reactive power net interchange (MVAR)
14. ZONE DATA
A record for each zone in the load flow, containing:
<zonum><"zonam"> <pznet> <qznet>
where
Name Description Units
<zonum> Zone number (0 - 999)
<"zonam"> Zone name up to 32 characters enclosed in quotation
marks
<pznet> Actual real power interchange (MW)
<qznet> Actual reactive power interchange (MVAR)
15. INTERFACE DATA
A record for each interface in the load flow, containing:
<ifno> <"name"> <pnet> <qnet> <r1> <r2> <r3> <r4> <r5> <r6> <r7> <r8>
where
Name Description Units
<ifno> Interface number
<"name">
Interface name up to 32 characters enclosed in quotation marks
<pnet> Actual real power flow across interface (MW)
<qnet> Actual reactive power flow across interface (MVAR)
<r1> First Interface Rating (MVA)
<r2> Second Interface Rating (MVA)
<r3> Third Interface Rating (MVA)
<r4> Fourth Interface Rating (MVA)
<r5> Fifth Interface Rating (MVA)
<r6> Sixth Interface Rating (MVA)
<r7> Seventh Interface Rating (MVA)
<r8> Eighth Interface Rating (MVA)
16. INTERFACE BRANCH DATA
A record for each membership of a branch in an interface, containing:
<f bus> <"f name"> <f bkv> <t bus> <"t name"> <t bkv> <"ck"> : <ifn> <pf>
where
Name Description Units
<f bus> From bus number
<"f name"> From bus name enclosed in quotation marks
<f bkv> From bus base voltage (kV)
<t bus> To bus number
<"t name"> To bus name enclosed in quotation marks
<t bkv> To bus base voltage (kV)
<"ck"> Two character circuit identifier enclosed in quotation marks
<ifn> Number of interface of which this branch is a member
<pf> Fraction of the flow on this branch that is to be counted as part of the interface
flow
17. DC BUS DATA
A record for each DC bus in the load flow, containing:
<dc bus> <"busnam"> <basekv> : <ty> <ar> <z> <vsch> <vdc> <d_in> <d_out> /
<proj id> <owner>
where
Name Description Units
<dc bus> DC bus number
<"busnam"> DC bus name enclosed in quotation marks
<basekv> DC bus base voltage (kV)
<ty> DC bus type
1 = rectifier
2 = inverter
<ar> Area assignment
<z> Owner Zone
<vsch> Scheduled DC voltage (kV)
<vdc> Actual DC voltage (kV)
<d_in> In service date (yymmdd)
<d_out> Retirement date (yymmdd)
<proj id> Project Identifier ( information only )
<owner> DC bus owner
18. DC LINE DATA
A record for each DC line in the load flow, containing:
<f bus> <"f name"> <f bkv> <t bus> <"t name"> <t bkv> <"ck"> <"long id"> : /
<st> <ar> <z> <r> <l> <c> <r1> <r2> <r3> <r4> <len> <aloss> <d_in> <d_out> /
<proj id> <nst> <r5> <r6> <r7> <r8> <o1> <p1> <o2> <p2> /
<o3> <p3> <o4> <p4> <o5> <p5> <o6> <p6> <o7> <p7> <o8> <p8>
where
Name Description Units
<f bus> "From" DC bus number
<"f name"> "From" DC bus name enclosed in quotation marks
<f bkv> "From" DC bus base voltage (kV)
<t bus> "To" DC bus number
<"t name"> "To" DC bus name enclosed in quotation marks
<t bkv> "To" DC bus base voltage (kV)
<"ck"> Two character DC line identifier enclosed in quotation marks
<"long id"> Long Identifier (up to 32 characters) enclosed in quotation
marks
<st> DC line status
1 = in service
0 = out of service
<ar> Area assignment
<z> Zone assignment
<r> DC line resistance (ohms)
<l> DC line inductance (henries)
<c> DC line capacitance (microF)
<r1> First Branch Rating (MVA)
<r2> Second Branch Rating (MVA)
<r3> Third Branch Rating (MVA)
<r4> Fourth Branch Rating (MVA)
<len> Line length (any units)
<aloss> Loss factor (0.0 - 1.0) used to assign losses
1.0 = 100% loss assigned to "from" end of line
0.0 = 100% loss assigned to "to" end of line
<d_in> In service date (yymmdd)
<d_out> Retirement date (yymmdd)
<proj id> Project Identifier ( information only )
<nst> Normal DC line status 1=in service; 0=out of service
<r5> Fifth Branch Rating (MVA)
<r6> Sixth Branch Rating (MVA)
<r7> Seventh Branch Rating (MVA)
<r8> Eighth Branch Rating (MVA)
<o1> DC line owner 1
<p1> DC line owner 1 participation factor (0.0 - 1.0)
<o2> DC line owner 2
<p2> DC line owner 2 participation factor (0.0 - 1.0)
<o3> DC line owner 3
<p3> DC line owner 3 participation factor (0.0 - 1.0)
<o4> DC line owner 4
<p4> DC line owner 4 participation factor (0.0 - 1.0)
<o5> DC line owner 5
<p5> DC line owner 5 participation factor (0.0 - 1.0)
<o6> DC line owner 6
<p6> DC line owner 6 participation factor (0.0 - 1.0)
<o7> DC line owner 7
<p7> DC line owner 7 participation factor (0.0 - 1.0)
<o8> DC line owner 8
<p8> DC line owner 8 participation factor (0.0 - 1.0)
19. DC CONVERTER DATA
A record for each DC converter in the load flow, containing:
<ac bus> <"ac name"> <ac bkv> <dc bus> <"dc name"> <dc bkv> <"id"> /
<"long id"> : <st> <ty> <md> <nbridge> <t_kreg> <r bus> <"r name"> <r bkv> /
<ar> <z> <d_in> <d_out> <idc> <vdc> <pac> <qac> <p_sched> <i_sched> /
<v_sched> <i_margin> <rcomp> <vmin_pctl> <vmin_comm> <vac_base> <vdc_base> /
<alpa> <alpa_min> <alpa_max> <gama> <gama_min> <gama_max> <vdiode> <xcomm>/
<rtran> <xtran> <tran_base> <tapf_ac> <tapf_dc> <tap_ac> <tap_dc> <tmin> /
<tmax> <tstep> <vtmax> <vtmin> <aloss> <i_rate> <xsmooth> <proj id> <nst> /
<o1> <p1> <o2> <p2> <o3> <p3> <o4> <p4> <o5> <p5> <o6> <p6> <o7> <p7> <o8> <p8>
where
Name Description Units
<ac bus> AC bus number
<"ac name"> AC bus name enclosed in quotation marks
<ac bkv> AC bus base voltage (kV)
<dc bus> DC bus number
<"dc name"> DC bus name enclosed in quotation marks
<dc bkv> DC bus base voltage (kV)
<"id"> DC converter identifier enclosed in quotation
marks
<"long id"> Long Identifier (up to 32 characters) enclosed in
quotation marks
<st> Converter status
1 = in service
0 = out of service
<ty> Converter type {1 - 2}
1 = rectifier
2 = inverter
<md> Control mode {0 - 5}
0 = Current and voltage not specified -
converter follows available dc voltage
and current
1 = Converter controls its own dc current,
only
2 = Converter controls its own dc power,
only
3 = Converter controls its own dc voltage,
only
4 = Converter controls its own dc current
and its own dc voltage
5 = Converter controls its own dc power and
its own dc voltage
<nbridge> Number of bridges in series
<t_kreg> Converter transformer control flag {0,1,-1}
0 = transformer taps locked
1 = use built-in tap control logic
-1 = use logic in upslfxx\stdepcl\mttap.p
<r bus> Number of DC bus whose voltage is controlled
by this transformer
<"r name"> Regulated DC bus name enclosed in quotations
marks
<r bkv> Regulated DC bus base voltage (kV)
<ar> Area assignment
<z> Zone assignment
<d_in> In service date (yymmdd)
<d_out> Retirement date (yymmdd)
<idc> Converter DC current (Amps)
<vdc> Converter DC voltage (kV)
<pac> AC real power at ac bus side of converter (MW)
transformer
<qac> AC reactive power at ac bus side of converter (MVAr)
transformer
<p_sched> Scheduled converter ac power (MW)
<i_sched> Scheduled converter dc current (Amps)
<v_sched> Scheduled converter dc voltage (kV)
<i_margin> Current margin (Amps)
<recomp> Compounding resistance for voltage control (ohms)
<vmin_pctl> DC voltage at which this converter abandons (pu)
power control
<vmin_comm> Minimum ac bus voltage at which this converter (pu)
will operate
<vac_base> Base voltage of converter transformer ac side (kV)
winding
<vdc_base> Base voltage of converter transformer dc side (kV)
winding
<alpa> Rectifier firing delay angle (degrees)
<alpa_min> Minimum rectifier firing angle (degrees)
<alpa_max> Maximum rectifier firing angle (degrees)
<gama> Inverter firing delay angle (degrees)
<gama_min> Minimum inverter firing angle (degrees)
<gama_max> Maximum inverter firing angle (degrees)
<vdiode> Converter forward voltage drop (kV)
<xcom> Effective computing inductance seen by converter (ohms)
<rtran> Converter transformer resistance (pu)
<xtran> Converter transformer reactance (pu)
<tran_base> Converter transformer base (MVA)
<tapf_ac> Fixed tap position on converter transformer ac (pu)
winding
<tapf_dc> Fixed tap position on converter transformer dc (pu)
winding
<tap_ac> TCUL tap position on converter transformer ac (pu)
winding
<tap_dc> TCUL tap position on converter transformer dc (pu)
winding
<tmin> Minimum TCUL position (pu)
<tmax> Maximum TCUL position (pu)
<tstep> TCUL step size (pu)
<vtmax> Maximum voltage for converter transformer (pu)
voltage control
<vtmin> Minimum voltage for converter transformer (pu)
voltage control
<aloss> Loss factor (0.0 - 1.0) used to assign losses.
1.0 = 100% loss assigned to from bus
0.0 = 100% loss assigned to "to" bus
<i_rate> Converter DC current rating (Amps)
<xsmooth> Smoothing reactor inductance (Henries)
<proj id> Project Identifier ( information only )
<nst> Normal DC converter status
1 = in service
0 = out of service
<o1> DC converter owner 1
<p1> DC converter owner 1 participation factor (0.0 -
1.0)
<o2> DC converter owner 2
<p2> DC converter owner 2 participation factor (0.0 -
1.0)
<o3> DC converter owner 3
<p3> DC converter owner 3 participation factor (0.0 -
1.0)
<o4> DC converter owner 4
<p4> DC converter owner 4 participation factor (0.0 -
1.0)
<o5> DC converter owner 5
<p5> DC converter owner 5 participation factor (0.0 -
1.0)
<o6> DC converter owner 6
<p6> DC converter owner 6 participation factor (0.0 -
1.0)
<o7> DC converter owner 7
<p7> DC converter owner 7 participation factor (0.0 -
1.0)
<o8> DC converter owner 8
<p8> DC converter owner 8 participation factor (0.0 -
1.0)
20. VOLTAGE SOURCE DC CONVERTER DATA
A record for each VS converter in the load flow, containing:
<ac bus> <"ac name"> <ac bkv> <dc bus> <"dc name"> <dc bkv> <"id"> /
<"long id"> : <st> <reg bus> <"reg name"> <reg bkv> <ar> <z> <dc_mode> / <ac_mode> <dcset> <acset>
<aloss> <bloss> <minloss> <smax> <imax> /
<qmax> <qmin> <qrf> <pwf> <d_in> <d_out> <proj id> <nst> /
<o1> <p1> <o2> <p2> <o3> <p3> <o4> <p4> <o5> <p5> <o6> <p6> <o7> <p7> /
<o8> <p8> <type> <dcsys> <qmx> <qmn> <pdc> <idc> <pac> <qac>
where
Name Description Units
<ac bus> AC bus number
<"ac name"> AC bus name enclosed in quotes
<ac bkv> AC bus base voltage (kV)
<dc bus> DC bus number
<"dc name"> DC bus name enclosed in quotes
<dc bkv> DC bus base voltage (kV)
<"id"> DC converter identifier enclosed in quotes
<"long id"> Long ID (up to 32 characters) enclosed in quotes
<st> Converter status
1 = in service
0 = out of service
<reg bus> Regulated AC bus number
<"reg name"> Regulated AC bus name enclosed in quotes
<reg bkv> Regulated AC bus base voltage (kV)
<ar> Area assignment
<z> Zone assignment
<dc_mode> Converter DC mode {1 - 2}
1 = Regulating DC voltage
2 = Regulating DC power
<ac_mode> Converter AC mode {1 - 2}
1 = Regulating AC Voltage (to bus
Vsched)
2 = Regulating AC power factor
<dcset> Converter DC setpoint
DC voltage (dc_mode =1)
DC power (dc_mode =2) (MW)
Positive for inverter; negative for
rectifier
<acset> Converter AC setpoint
Power factor (ac_mode = 2)
<aloss> Converter loss factor (kWloss = aloss + bloss * (kW)
Idc)
<bloss> Converter loss factor (kW/amp)
<minloss> Minimum converter losses (kW)
<smax> Converter MVA rating (MVA)
<imax> Converter AC current rating (amps)
<qmax> Max. reactive power (> 0 : Q into network) (MVAr)
<qmin> Min. reactive power (> 0 : Q into network) (MVAr)
<qrf> Reactive power regulating assignment factor (0.0
- 1.0)
<pwf> P weighting factor when in limit (0 to 1)
0 : reduce P; 1 : reduce Q
<d_in> In service date (yymmdd)
<d_out> Retirement date (yymmdd)
<proj id> Project Identifier ( information only )
<nst> Normal VS converter status
1 = in service
0 = out of service
<o1> VS converter owner 1
<p1> VS converter owner 1 participation factor (0.0 -
1.0)
<o2> VS converter owner 2
<p2> VS converter owner 2 participation factor (0.0 -
1.0)
<o3> VS converter owner 3
<p3> VS converter owner 3 participation factor (0.0 -
1.0)
<o4> VS converter owner 4
<p4> VS converter owner 4 participation factor (0.0 -
1.0)
<o5> VS converter owner 5
<p5> VS converter owner 5 participation factor (0.0 -
1.0)
<o6> VS converter owner 6
<p6> VS converter owner 6 participation factor (0.0 -
1.0)
<o7> VS converter owner 7
<p7> VS converter owner 7 participation factor (0.0 -
1.0)
<o8> VS converter owner 8
<p8> VS converter owner 8 participation factor (0.0 -
1.0)
The following are computed during solution and written by EEPC. They can be omitted from epc file:
<type> 1 : rectifier; 2 : inverter
<dcsys> Converter’s dc system number
<qmx> Limited value of Qmax (MVAr)
<qmn> Limited value of Qmin (MVAr)
<pdc> Converter DC power (MW)
<idc> Converter DC current (Amps)
<pac> Converter AC real power (MW)
<qac> Converter AC reactive power (MVAr)
21. TRANSFORMER IMPEDANCE ADJUSTMENT DATA
A record for each transformer adjustment table in the load flow, containing:
<no> <ta> <t0> <f0> <t1> <f1> ... <t10> <f10>
where
Name Description Units
<no> Impedance adjustment table number
<ta> Independent variable flag
0 = TCUL ratio
1 = phase shift angle
<ti> i-th independent variable value (0-10)
<fi> i-th independent adjustment factor (0-10)
Note:
PSLF expects a total of 11 tap positions and their associated adjustment factors.
For Phase Shifter (ta = 1), the tap positions should start from -X° to +X°. If there isn't enough data for all the 11 positions
the last few positions and adjustment factors can be '0.00' each.
For TCUL (ta = 0), the tap positions should range from smaller tap position to larger tap position in increasing order. If
there isn't enough data for all the 11 positions the last few positions and adjustment factors can be '0.00' each.
22. GCD (Unified Power Flow Controller) Data
A record for each GCD (UPFC) in the load flow, containing:
<f bus> <"f name"> <f bkv> <t bus> <"t name"> <t bkv> <"ck"> <sec> <"long id"> : <st> <type> <pset>
<ptol> <viset> <vjset> <vtol> <vsmax> <ismax> <ishmax> / <pdcmax> <yth> <r> <x> <b> <svbase> <svabase>
<pvbase> <pvabase> <accel> / <aloss> <ar> <z> <pline> <qline> <vim> <vjm> <vsm> <vsa> <qs> /
<pdc> <qshunt> <ishunt> <vmr> <vmi> <vmm> <vma> <cmr> <cmi> <psang> <angmax> <vtap> <vtmax> <vtmin>
<itran> <igen> <alim> <tlim> /
<d_in> <d_out> <proj id> <nst> <o1> <p1> <o2> <p2> <o3> <p3> <o4> <p4>
where
Name Description Units
<f bus> GCD from bus number
<"f name"> GCD from bus name enclosed in quotation marks
<f bkv> GCD from bus base voltage (kV)
<t bus> GCD to bus number
<"t name"> GCD to bus name enclosed in quotation marks
<t bkv> GCD to bus base voltage (kV)
<"ck"> GCD circuit identifier enclosed in quotation marks
<sec> Section number (1-9 in ascending order beginning at "from"
end)
<"long id"> Long Identifier (up to 8 characters) enclosed in quotation
marks
<st> GCD status
1 = in service
0 = out of service
<type> type {no used}
<pset> series MW set point (MW)
<ptol> MW tolerance
<viset> from bus voltage set point (pu)
<vjset> if vtol>0, if>0.5, desired voltage at to-bus(pu)
if<0.5, desired difference between from-bus and to-bus
voltage if vtol<0, desired reactive power into line(MVar)
<vtol> if >0, solution tolerance for to-bus(line side) voltage (vj) if
<0, solution tolerance for reactive power flow into line
(MVar)
<vsmax> series injection voltage max, (pu)
<ismax> max series current, (MVA)
<ishmax> shunt current max (MVA at 1 pu V)
<pdcmax> max dc converter power (MW)
<yth> estimated driving point MVA at to bus (pu)
<r> Series resistance (pu)
<x> Series reactance (pu)
<b> Static shunt susceptance (pu)
<svbase> series voltage base (kV)
<svabase> series MVA base
<pvbase> shunt voltage base (kV)
<pvabase> shunt MVA base
<accel> acceleration factor
<aloss> Loss factor (0.0 - 1.0) used to assign losses
<ar> Area assignment
<z> Zone assignment
<pline> MW solution (MW)
<qline> MVar solution (MVAr)
<vim> from bus voltage solution (pu)
<vjm> to bus voltage solution, (pu)
<vsm> series voltage injection solution, mag. (pu)
<vsa> series voltage injeciton solution, angle (deg)
<qs> solution of MVar injeciton caused by series voltage (MVAr)
injection,
<pdc> dc power solution (MW)
<qshunt> shunt MVar injection (MVAr)
<ishunt> solution of shunt current (MVA)
<vmr> internal voltage solution, real part (pu)
<vmi> internal voltage solution, imaginary part (pu)
<vmm> internal voltage solution, mag. (pu)
<vma> internal voltage solution, angle (deg)
<cmr> series current solution, real part
<cmi> series current solution, imaginary
<psang> phase shifter angle solution
<angmax> phase shifter calculated angle max
<vtap> phase shifter tap solution
<vtmax> phase shifter calculated tap max
<vtmin> phase shifter calculated tap min
<itran> index of transformer used as GCD series component
<igen> index of generator used as GCD shunt component
<alim> flag for phase shift limits holding Pdc
<tlim> flag for tap limits holding Pdc
<d_in> In service date (yymmdd)
<d_out> Retirement date (yymmdd)
<proj id> Project Identifier ( information only )
<nst> Normal GCD status
1 = in service
0 = out of service
<o1> GCD owner 1
<p1> GCD owner 1 participation factor (0.0 - 1.0)
<o2> GCD owner 2
<p2> GCD owner 2 participation factor (0.0 - 1.0)
<o3> GCD owner 3
<p3> GCD owner 3 participation factor (0.0 - 1.0)
<o4> GCD owner 4
<p4> GCD owner 4 participation factor (0.0 - 1.0)
23. TRANSACTION DATA
A record for each transaction schedule in the load flow, containing:
<fr no> <"fr id"> <"ftype"> <to no> <"to id"> <"ttype"> : <st> <sch_mw> /
<sch_mvar> <flag> [<nst> <proj id>] <"name">
The items within the square brackets are for information only and do not appear in the Transaction Data table.
Name Description Units
<fr no> from transaction number
<"fr id"> from transaction 2 character id enclosed in quotation marks
<"ftype"> From transaction type
a = area
z = zone
o = owner
g = gen
l = load up to 4 characters enclosed in quotation
marks
<to tr> to transaction number
<"to id"> to transaction 2 character id enclosed in quotation marks
<"ttype"> To transaction type
a = area
z = zone
o = owner
g = gen
l = load up to 4 characters enclosed in quotation
marks
<sch_mw> Scheduled real power net interchange (MW)
<sch_mvar> Scheduled reactive power net interchange (MVAR)
<"flag"> flag up to 4 characters enclosed in quotation marks
<st> Transaction status
1 = in service
0 = out of service
<nst> Normal transaction status (information only)
1 = in service
0 = out of service
<proj id> Project Identifier ( information only )
<"name"> Transaction name up to 32 characters enclosed in quotation
marks
24. OWNER DATA
A record for each owner in the load flow, containing:
<owner no> <"oname"> <"s name"> <net_mw> <net_mvar> <sch_mw> <sch_mvar> <ar>
where
Name Description Units
<owner no> Owner number
<"oname"> Owner name up to 32 characters enclosed in quotation
mark
<"s name"> Owner short name up to 4 characters enclosed in quotation
marks
<net_mw> Actual real power net interchange (MW)
<net_mvar> Actual reactive power net interchange (MVAr)
<sch_mw> Schedule real power net interchange (MW)
<sch_mvar> Schedule reactive power net interchange (MVAr)
<ar> Area number
25. MOTOR DATA
A record for each motor in the load flow, containing:
<bus> <"name"> <bkv> <"id"> <"long id"> : <st> <ar> <z> <owner> <flag> <type> /
<mbase> <p> <q> <pf> <ls> <tp0> <lp> <tpp0> <lpp> <ra> <h> <rt> <lt> <bcap> /
<zppr> <zppx> <alt0> <alt1> <blt1> <alt2> <blt2> <d_in> <d_out> <proj id> <nst>
where
Name Description Units
<bus> Motor terminal bus
<"name"> Motor terminal bus name enclosed in quotation marks
<bkv> Motor terminal bus base voltage (kV)
<"id"> 2 character motor identifier enclosed in quotation marks
<"long id"> Long Identifier (up to 32 characters) enclosed in quotation
marks
<st> Motor status
1 = in service
0 = out of service
<ar> Area assignment
<z> Zone assignment
<owner> Motor owner
<flag>
<"type"> Type of motor up to 8 characters enclosed in quotation marks
<mbase> Motor base (MVA)
<p> Scheduled or actual real power consumed at terminals (MW)
<q> Scheduled or actual reactive power consumed at terminals (MVAr)
<pf> Motor power factor
<ls> Synchronous reactance (pu)
<tp0> Transient open circuit time constant (seconds)
<lp> Transient reactance (pu)
<tpp0>
Subtransient open circuit time constant (seconds)
<lpp> Subtransient reactance (pu)
<ra>
<h> Motor inertia,
<rt> Transformer resistance (pu)
<lt> Transformer reactance (pu)
<bcap> Shunt capacitor admittance (pu)
<zppr>
<zppx>
<alt0> Load parameter
<alt1> Load parameter
<blt1> Load parameter
<alt2> Load parameter
<blt2> Load parameter
<d_in> In service date (yymmdd)
<d_out> Retirement date (yymmdd)
<proj id> Project Identifier ( information only )
<nst> Normal motor status
1 = in service
0 = out of service
26. LINE DATA
A record for each “line” in the load flow, containing:
<f bus> <"f name"> <f bkv> <t bus> <"t name"> <t bkv> <"ck"> <sec> <"long id">: /
<st> <"p name"> <len> <ws1> <cond1> <ws2> <cond2> <ws3> <cond3> <ws4> /
<cond4> <ws5> <cond5> <ar> <z> <ncb> <rating> <d_in> <d_out> <projid> <nst> /
<o1> <p1> <o2> <p2> <o3> <p3> <o4> <p4> <o5> <p5> <o6> <p6> <o7> <p7> /
<o8> <p8> <r> <x> <b> <r0> <x0> <b0> <a0> <a1> <a2> <a3> <a4> <al>
where
Name Description Units
<f bus> From bus number
<"f name"> From bus name enclosed in quotation marks
<f bkv> From bus base voltage (kV)
<t bus> To bus number
<"t name"> To bus name enclosed in quotation marks
<t bkv> To bus base voltage (kV)
<"ck"> Two character circuit identifier enclosed in quotation marks
<sec> Section number (1-9 in ascending order beginning at "from"
end)
<"long id"> Long Identifier (up to 8 characters) enclosed in quotation
marks
<st> Line status
1 = in service
0 = out of service
<"p name"> Name of pole type on which this line section is mounted(up
to 8 characters) enclosed in quotation marks
<len> Length of the line section in miles.
<wsa> Wire station at which a-phase wire is mounted on the pole.
Zero if the wire is absent.
<conda> type-name of a-phase conductor.
(Enter NONE if conductor is absent)
<wsb> Wire station for b-phase
<condb> Conductor type for b-phase
<wsc> Wire station for c-phase
<condc> Conductor type for c-phase
<wsn> Wire station for neutral
<condn> Conductor type for neutral
<wsm> Wire station for service wire
<condm> Conductor type for service wire
<ar> Area number
<z> Zone number
<ncb> Number of conductors per bundle
<rating> Line Rating (Amps)
<d_in> In service date (yymmdd)
<d_out> Retirement date (yymmdd)
<proj id> Project Identifier ( information only )
<nst> Normal line status
1 = in service
0 = out of service
<p1> Line owner 1 participation factor (0.0 - 1.0)
<o2> Line owner 2
<p2> Line owner 2 participation factor (0.0 - 1.0)
<o3> Line owner 3
<p3> Line owner 3 participation factor (0.0 - 1.0)
<o4> Line owner 4
<p4> Line owner 4 participation factor (0.0 - 1.0)
<o5> Line owner 5
<p5> Line owner 5 participation factor (0.0 - 1.0)
<o6> Line owner 6
<p6> Line owner 6 participation factor (0.0 - 1.0)
<o7> Line owner 7
<p7> Line owner 7 participation factor (0.0 - 1.0)
<o8> Line owner 8
<p8> Line owner 8 participation factor (0.0 - 1.0)
<r> Line section resistance (pu)
<x> Line section reactance (pu)
<b> Line section susceptance (pu)
<r0> Line section zero sequence resistance (pu)
<x0> Line section zero sequence reactance (pu)
<b0> Line section zero sequence susceptance (pu)
<a0> Ampacity for a-phase
<a1> Ampacity for b-phase
<a2> Ampacity for c-phase
<a3> Ampacity for n-phase
<a4> Ampacity for service wire
<al> Loss factor (0.0 - 1.0) used to assign losses.
1.0 = 100% loss assigned to "from" end of line
0.0 = 100% loss assigned to "to" end of line
27. Q TABLE DATA
A record for each qtable in the load flow, containing:
<bus> <"name"> <bkv> <"id">: / <p0> <qmx0> <qmn0> <p0> <qmx0> <qmn0> /
<p1> <qmx1> <qmn1> <p2> <qmx2> <qmn2> <p3> <qmx3> <qmn3> <p4> <qmx4> <qmn4> /
<p5> <qmx5> <qmn5> <p6> <qmx6> <qmn6> <p7> <qmx7> <qmn7> <p8> <qmx8> <qmn8> /
<p9> <qmx9> <qmn9> <p10> <qmx10> <qmn10> <p11> <qmx11> <qmn11> /
<p12> <qmx12> <qmn12> <p13> <qmx13> <qmn13> <p14> <qmx14> <qmn14> /
<p15> <qmx15> <qmn15> <p16> <qmx16> <qmn16> <p17> <qmx17> <qmn17> /
<p18> <qmx18> <qmn18> <p19> <qmx19> <qmn19>
where
Name Description Units
<bus> Generator bus number
<"name"> Generator bus name enclosed in quotation marks
<bkv> Generator bus base voltage (kV)
<"id"> Generator id enclosed in quotation marks
<p0> First Pgen value (MW)
<qmx0> First Qmax value (MVAr)
<qmn0> First Pgen value (MVAr)
<p1> Second Pgen value (MW)
<qmx1> Second Qmax value (MVAr)
<qmn1> Second Pgen value (MVAr)
etc.
Note : P values must be in ascending sequence.
Command: rept
EPCL:
Arguments:
Function: Initiates reporting functions
Prerequisites: Valid load flow data in working case
When PSLF is in menu mode, reporting commands are selected through the "rept" selection of the main menu.
Selecting rept raises a submenu giving access to the TieLineArea, TieLineZone, Area, Zone, WideOutput,
VoltLimitRept, Overload Rept, StdOutput, Loss, Summary, Diffs, and Title reporting commands.
Command: rexa (from exim:Import Extn)
EPCL: @return=getexa("<file>", "<flag>")
Arguments: <file> Name of file to read input from
<flag> New case flag 1=base case, 0=append data
Function: Reads an extended record data text file
The User Defined Records and Extended Records may be saved in a text file for later user by PSLF. The command
rexa reads a extended records text file <file> by running an EPCL program with the name read_<file>.p. This EPCL
program must be created through a standard text editor or by saving the extended records with the eexa command.
When the extended records are part of the standard PSLF database, the bus identifier is part of the .exa text file. The
bus names flag located in PARM DIS controls the reading of bus identifiers.
If:
bus names flag = 0 bus numbers are used
bus names flag = 1 bus names are used
see Chapter 2 Section 2.9 "Extended Tables, Records, and Members" for more information on Extended Records.
Command: rmil from epcl only
EPCL: @return = rmil"<file>")
Arguments: <file> Name of distance assignment file
EPCL: @return = rpole("<file>")
Arguments: <file> Name of input file
Function: Reads Pole geometry data file for use by the tlc
command
Prerequisites: None
Poles
The positions of the wires of a line are specified by reference to the geometry of the poles on which the wires are
mounted.
Each pole type used in a tlc must be specified in the pole table by:
a pole type name
the x and y coordinates of each of ten wire stations, relative to the center line base of the
pole
The wire stations on each pole are locations at which wires of a transmission line section may be
mounted. Only one wire station may be located at any position. As a practical matter, no wire station
should be within less than about 0.5 feet of any other.
The format of each line of the Pole file is as follows:
<name> <x0> <y0> ... <x9> <y9>
where:
<name> Pole Name (8 characters)
<x[0]> x coordinate of the first wire station relative to the center line base of the
pole
<y[0]> y coordinate of the first wire station relative to the center line base of the
pole
<x[9]> x and y coordinates of the second through tenth
<y[9]> wire stations
A Pole data file named epc.pol is provided with PSLF in the samples directory.
Command: rpti (from exim:Import PTI)
EPCL: rpti.p
Prerequisites: A complete PTI load flow data file
Import PTI executes the epcl program rpti.p located in \upslfxx\stepcl.
The following panel results, asking the version number if known and if the user would like to have engineering checks
performed:
rpti imports load flow data from a file in the PTI PSS®E. Load Flow Raw Data File format (versions 23 through 32).
rpti treats generator step-up transformers specified on PTI generator data records, as outlined in Section 3.5.5, as
follows:
If the transformer ratio is 1 or zero and its impedance is zero, the generator is placed on the bus specified in the record
and no other special action is taken.
When the new case flag is equal to 0, rpti will append or modify existing data. In this mode, a complete record MUST
be entered.
After reading multi-section lines information, the intermediate buses are deleted and the branches are connected as true
multi-sections, that is, the section numbers are modified. Bus elements that were connected to the now deleted
intermediate buses are moved to the from bus.
Notes for PSS®E-32.0 V32 Import/Export:
1.) ADJM and STAT fields for switched shunts are ignored during import. ADJM defaults to "1" and STAT field
defaults to "1" during export.
2.) Number of zones were increased from 2,000 to 9,999 going from V31 to V32. Currently, both PSLF 60K and 80K
versions support up to 5,000 zones. If the program sees more than 5,000 from the input data, import is terminated and
message will be printed to the user. This limit may be increased in future PSLF releases.
3.) PTI’s asymmetric active power flow control mode (COD1 = COD2 = COD3 =5) for transformers is currently not
supported by PSLF. These transformers are treated as “fixed tap” type during import. Hence, the winding connection
angles CNXA1, CNXA2, and CNXA3 are set to 0.00 degrees during export.
Command: rscp (from scsc:Read SeqPTI)
EPCL: @return=rscp("<file>")
Arguments: <file> Name of short circuit sequence data file
or from the ShortCircuit pull-down menu:
rscp reads a PTI short circuit sequence data file. Prior to reading the data file all the sequence data is initialized as
follows:
generator zero sequence data r and x set to 999
generator positive sequence data r and x set to zgenr and zgenx
generator negative sequence data r and x set to zgenr and zgenx
load zero sequence data r and x set to 0
load positive sequence data ( ( Pload / v ) + Iload ) / v + Gload
load negative sequence data mw and mvar set to load positive sequence
shunt zero sequence data g and b set to 0
line zero sequence data r and x set to 999
transformer zero sequence data r and x set equal to positive sequence
transformer winding defaulted to a delta winding unless it's connected to a generator bus then assumed to be a wye
winding
Format of Short Circuit Data File
The Short Circuit data file contains records as follows:
Generator Positive Sequence Impedance records terminated by a 0
Generator Negative Sequence Impedance records terminated by a 0
Generator Zero Sequence Impedance records terminated by a 0
Shunt Negative Sequence Admittance records terminated by a 0
Shunt Zero Sequence Admittance records terminated by a 0
Branch Zero Sequence Self Impedance records terminated by a 0
Branch Zero Sequence Mutual Impedance records terminated by a 0
Transformer winding type records terminated by a 0
Generator Positive Sequence Impedance Records
i id r1 x1
Name Description Type
i bus number of bus at which generator is connected integer
id generator identifier 2 chars
r1 positive sequence resistance in per unit on generator MVA base float
x1 positive sequence reactance in per unit on generator MVA base float
Generator Negative Sequence Impedance Records
i id r2 x2
Name Description Type
i bus number of bus at which generator is connected integer
id generator identifier 2 chars
R2 negative sequence resistance in per unit on generator MVA base float
X2 negative sequence reactance in per unit on generator MVA base float
Generator Zero Sequence Impedance Records
I id r0 x0
Name Description Type
i bus number of bus at which generator is connected integer
id generator identifier 2 chars
R0 Zero sequence resistance in per unit on generator MVA base float
X0 zero sequence reactance in per unit on generator MVA base float
Shunt Negative Sequence Admittance Records
i id g2 b2
Name Description Type
bus number of bus at which shunt is connected integer
i
id shunt identifier 2 chars
G2 shunt negative sequence conductance in per unit on system float
MVA base
B2 shunt negative sequence susceptance in per unit on system float
MVA base
Shunt Zero Sequence Admittance Records
i id g0 b0
Name Description Type
i bus number of bus at which shunt is connected integer
id shunt identifier 2 chars
g0 shunt zero sequence conductance in per unit on system MVA float
base
b0 shunt zero sequence susceptance in per unit on system MVA float
base
Branch Zero Sequence Self Impedance Records
i j id r0 x0 b0 gi0 bi0 gj0 bj0 sec
Name Description Type
i bus number of bus at which shunt is connected integer
j bus number of "to" bus integer
id circuit identifier 2 chars
r0 section zero sequence self resistance float
x0 section zero sequence self reactance float
b0 section zero sequence self charging capacitance admittance float
gi0 zero sequence conductance of shunt at section "from" end float
bi0 zero sequence susceptance of shunt at section "from" end float
gj0 zero sequence conductance of shunt at section "to" end float
bj0 zero sequence susceptance of shunt at section "to" end float
sec Section number integer
Branch Zero Sequence Mutual Impedance Records
i j id1 k l id2 r0 x0 sec1 sec2
Name Description Type
i bus number of "from" end of circuit 1 integer
j bus number of "to" end of circuit 1 integer
Id1 identifier of circuit 1 2 chars
kbus number of "from" end of circuit 2 integer
lbus number of "to" end of circuit 2 integer
Id2 identifier of circuit 2 2 char
r0 mutual resistance between specified sections in circuits 1 float
and 2
x0 mutual reactance between specified sections in circuits 1 and float
2
Sec1 section number of section in circuit 1 integer
Sec2 section number of section in circuit 2 integer integer
Transformer Winding Type Records
Name Description Type
i bus number of “from” bus integer
j bus number of “to” bus integer
id shunt identifier 2 chars
typei type of winding connected to "from" bus 1 char
typej type of winding connected to "to" bus 1 char
The transformer winding type character may be given the following values:
1 or g for a grounded wye winding
0 or u for a ungrounded wye or delta winding
d for a delta winding
y for a ungrounded wye winding
Command: rseq (from scsc:Read SeqGE)
EPCL: @return=rseq("<file>", "<flag>")
Arguments: <file> Name of short circuit sequence data file
<flag> 1 to flush working case and build a new case, 0 to
modify the present working case
Function: Reads short circuit data from file in GE short circuit
format
or from the Short Circuit pull-down menu:
THE PSLF SHORT CIRCUIT DATA EXPORT/IMPORT FILE
PSLF Version 17.0_06 - April 2010
0. CONDITIONS OF DISCLOSURE
The PSLF program system is the unpublished proprietary work of General Electric International, Inc. (GEII) it includes
valuable trade secrets of GEII and its unauthorized distribution would cause severe harm to GEII. GEII is the only
party authorized to distribute these programs and their reference manuals to other parties. This program system is the
property of GEII and may be used only by the parties that have been licensed to use it. With the exception stated
below, the license to use these GEII programs prohibits the distribution by the licensee of these programs or copies of
them or their reference manuals to any party.
This description of the PSLF Short Circuit Data Export/Import file is exempt from the restriction on distribution by
Licensees of the PSLF Programs and may be reproduced and distributed by licenses to parties that are not licensees of
the PSLF programs to facilitate the exchange of short circuit data between licensees and other parties.
Any distribution of this description by a licensee of the PSLF programs must be made subject to the condition that the
recipient of the distribution will use it solely for the purposes of exchanging load flow data with licensees of the PSLF
program and that the recipient will not make any further distribution of it.
1. GENERAL
The PSLF short circuit data export/import commands use ASCII data files whose name suffix is ".seq". These files are
intended for the exchange of data between computer programs. The arrangement of data in the records of these files is
intended to be efficient and convenient for the PSLF program. Users of PSLF will normally create new data records
and ".seq" files through the data editing facilities of PSLF and export the new data with the PSLF command, WSEQ.
It is not intended that data will be typed through simple text editors into files of this ".seq" format (other than small
data patches).
The short circuit data file contains data items in free-format records. Data items in each record are separated from one
another by blanks; a string of several blanks is equivalent to a single blank, hence multiple blanks may be used to line
up columns and otherwise to improve the appearance of the file.
Data records may be continued by placing a “/” character at the end of the "incomplete" line. Any number of
continuations may be used in a record.
A file may contain comment records anywhere. Comment records are ignored when the file is read by the RSEQ
command. Each comment record must have a # as its first character, and may contain any text after the # character.
The # character may not be preceded by blanks.
2. DATA FILE STRUCTURE
rseq reads short circuit data from the external data file specified by the <file> argument.
rseq can use the data read from the file to override values that are already in a working case or to create a new
working case. This choice is made by clicking the New case/Modify case flag in an option box after the input file has
been selected. When "New case" is selected the working case is flushed and the data in the file is the complete
definition of the new working case. When "Modify case" is selected the data from the file either overrides the
contents of records that are already in the working case or populates new records that are added to the working case as
they are defined in the data file.
The input data file for rseq must contain one record for each system component whose data is to be updated. Each
record has the form:
<type> <n1> <na1> <kv1> <i1> <n2> <na2> <kv2> <i2> <s> : <params>
where
<type> Component type (bus, gen, load, shunt, svd, line, or transformer)
<n1> External bus number of bus at which this component is connected
<na1> Name of bus <n1>, in quotes
<kv1> Base voltage of bus <n1>
<i1> Identifier of component to which model pertains, in quotes
<n2> External bus number of to bus for shunt, line, or transformer
<na2> Name of bus <n2>, in quotes
<kv2> Base voltage of bus <n2>
<i2> Circuit identifier for shunt, line, or transformer
<s> Section number for line
<n3> External bus number corresponding to tertiary bus at which this 3 winding
transformer is connected (only for 3 winding transformers)
<na3> Name of bus <n3>, in quotes (only for 3 winding transformers)
<kv3> Base voltage of bus <n3> (only for 3 winding transformers)
<n4> External bus number corresponding to midpoint bus of the three winding
transformer (only for 3 winding transformers)
<na4> Name of bus <n4>, in quotes (only for 3 winding transformers)
<kv4> Base voltage of bus <n4> (only for 3 winding transformers)
<params> Values of the component sequence impedance parameters in the order
given below
The entries, including the colon, must be separated by spaces. If the record is too long for one line it may be
"continued" to the next by placing a / at the end of the incomplete line.
If values are not entered for them or they are skipped with a !, <i1> and <i2> are defaulted to "1 " and <s> is defaulted
to 1.
The <type>, :, and <params> entries are mandatory in all records. In bus records the <n1>, <na1>, and <kv1> entries
are mandatory. The complete bus identifier <n1> <na1> <kv1> is read from each bus record regardless of the value of
the names_flag in the display parameters panel.
In other records either <n1> or <na1> plus <kv1> must be present. If the second bus identifier is pertinent, either
<n2> or <na2> plus <kv2> must be present. The RSEQ command uses <n1>, <n2> if the names_flag of the display
parameters panel is zero; in this case the bus names and base voltages are ignored. If the names_flag is 1 the numbers
are ignored and the bus names and base voltages are used.
Mutual coupling impedance records require two complete sets of identifiers (<n1> thru <s> :), one for each of the two
circuits involved in the coupling.
The list of entries ahead of the colon may be terminated after the last required entry. An entry that is ahead of a
required entry, but which is not required, may be skipped by putting an ! in its place.
Examples:
· For machine H at bus 361, with numbers in use
gen 362 ! ! "H" : <params>
· For the same machine with names in use
gen ! "BIGCC" 22. "H" : <params>
· For circuit 2, section 3, between buses 714 and 719
line 714 ! ! ! 719 ! ! "2" 3 : <params>
· For the 525/230 kV transformer between buses PODUNK500 and PODUNK 230, with names in use
tran ! "PODUNK" 500. "1 " ! "PODUNK" 230. : <params>
· For the mutual coupling between transmission line 76-93, circuit 2, section 3 and transmission line 76-95,
circuit 1, section 1
mutual 76 ! ! ! 93 ! ! "2" 3 : 76 ! ! ! 95 ! ! "1" 1 : <params>
The contents of the <params> list depends on the type of component, as follows
Component Record Parameters
Type
bus bus vm va area zone
generator gen status mbase r0 x0 r1 x1 r2 x2
load load status g0 b0 g1 b1 g2 b2
shunt shunt status g0 b0 g1 b1
svd svd status g0 b0 g1 b1
line line status length r0 x0 bc0 r1 x1 bc1 gf0 bf0 gt0 bt0 gf1 bf1 gt1 bt1
transformer tran status cp cs ct tbase rps0 xps0 rpt0 xpt0 rts0 xts0 rps1 xps1 rpt1 xpt1 rts1 xts1
vbasep vbases vbaset tp ts tt ap zgpr zgpx zgsr zgsx zgtr zgtx
mutual coupling mutual rm0 xm0 gm0 bm0 dija dijb dkla dklb
where
vm, va = Magnitude and angle of bus voltage, per unit and degrees
area, zone = Area, zone Numbers to which the bus is assigned
r0 +j x0 = Zero sequence impedance
r1 +j x1 = Positive sequence impedance
r2 +j x2 = Negative sequence impedance
bc0, bc1 = Zero and postive sequence line changing admittance
status = Component status 1 = in-service and 0 = out-of-service
length = Length of line section
tbase = Transformer MVA base, used as basis for its impedances
mbase = Generator MVA base, used as basis for its impedances
vbp,vbs,vbt = Transformer winding base voltages in Kv
= Zero sequence primary-secondary impedance
rps0 +j
xps0
rpt0 +j xpt0 = Zero sequence primary-tertiary impedance
rts0 +j xts0 = Zero sequence secondary-tertiary impedance
rps1 +j = Positive sequence primary-secondary impedance
xps1
rpt1 +j xpt1 = Positive sequence primary-tertiary impedance
rst1 +j xst1 = Positive sequence secondary-tertiary impedance
cp, cs, ct = Primary, secondary, tertiary grounding codes
tp, ts, tt = Primary, secondary, tertiary per unit tap ratios
ap = Primary-to-secondary phase shift in degrees
zgpr+j zgpx = Grounding impedance of primary winding
zgsr+j zgsx = Grounding impedance of secondary winding
zgtr+j zgtx = Grounding impedance of tertiary winding
gf0 +j bf0 = From end zero sequence shunt admittance
gt0 +j bt0 = To end zero sequence shunt admittance
gf1 +j bf1 = From end positive sequence shunt admittance
gt1 +j bt1 = To end positive sequence shunt admittance
rm0 +j xm0 = Zero sequence (inductive) coupling impedance
gm0 +j = Zero sequence (capacitive) coupling admittance
bm0
dija = Distance from bus i to start of coupled region
dijb = Distance from bus i to end of coupled region
dkla = Distance from bus k to start of coupled region
dklb = Distance from bus k to end of coupled region
Generator and transformer impedances are in per unit on the component MVA bases mbase and tbase respectively.
All other impedances and admittances are in per unit on system MVA base.
For PSLF versions prior to V16.0:
The transformer grounding codes must be
1 for a grounded wye winding
2 for an ungrounded wye or delta winding
For PSLF version V16.0 and later:
Transformer connection codes are modeled by defining all possible winding types that a transformer can have, no
matter which are primary, secondary, or tertiary. Zg denotes the ground impedance of grounded wye for type 1 and
ground impedance of the Zigzag (earthing) transformer for types 4, 5, 6, and 7.
1. Grounded wye winding (solidly grounded when Zg = 0)
2. Delta winding
3. Ungrounded wye winding
4. Zigzag winding (earthing transformer)
5. Grounded wye winding with earthing transformer
6. Delta winding with earthing transformer
7. Ungrounded wye winding with earthing transformer
Example 1: a two winding transformer with primary winding of grounded wye (type 1) and secondary winding of delta
winding with earthing transformer (type 6).
Example 2: A three winding transformer with primary winding of ungrounded wye winding with earthing transformer
(type 7), secondary winding of zigzag (type 4), and tertiary winding of delta (type 2).
The per unit transformer tap ratios are the ratios of the tapped voltages of the transformer windings to the base voltages
of the buses to which they are connected. That is, if a transformer with a nameplate primary winding voltage of
525KV, operated at its "-2.5percent" tap is connected to a bus whose base voltage is 500KV, the value of its per unit
tap ratio is with respect to its winding base voltage is 0.975, while its tap ratio with respect to the bus base voltage is
tp = 0.975 * 525 / 500 = 1.02375
Transformer impedances must be stated with respect to the transformer MVA base tbase for the condition with all
windings at the tap corresponding to winding nominal voltage.
The distances dija, etc describe the region in which the two line sections share common right of way and have a mutual
coupling in the zero sequence; they are defined in the following figure. These distances and the line length parameter
must be stated in the same unit (eg kilometers or miles).
Command: rtiea (from rept:TieLineArea)
@return = rtiea("<report>","<append>","<select>")
Arguments: <report> Name of file or printer to receive output
<append> append flag =1 append output or
=0 to open and create a new report
<select> select flag =1 use selected output
=0 output all results
rtiea displays the Get Report Destination panel where the user selects the destination for their output.
rtiea displays the flows on lines and transformers that are inter-area ties. The flow on each individual line is shown
with recognition of the loss assignment variable, aloss. If aloss is 1.0 the flow is shown as metered at the "to" bus; if
aloss is 0.0 the flow is shown as if metered at the "from" bus. A fractional value of aloss is equivalent to a metering
point part way along the line from the "from" bus.
ttiea prints the total MW and MVAR flows from each area to each of its adjacent areas.
Command: rtiez (from rept:TieLineZone)
@return = ttiez()
Arguments: <report> Name of file or printer to receive output
<append> append flag=1 append output or
=0 to open and create a new report
<select> select flag =1 use selected output
=0 output all results
Function: Display tie line flows between connecting zones
Prerequisites: Valid solved load flow data in working case
rtiez displays the flows on lines and transformers that are inter-zone ties. The flow on each individual line is shown
with recognition of the loss assignment variable, aloss. If aloss is 1.0 the flow is shown as metered at the "to" bus; if
aloss is 0.0 the flow is shown as if metered at the "from" bus. A fractional value of aloss is equivalent to a metering
point part way along the line from the "from" bus.
ttiez prints the total MW and MVAR flows from each zone to each of its adjacent zones.
Selecting the Send to Screen produces the following results from rept:Tie Line Zone.
Command: run
EPCL: @return=run()
= -1
= -2
for divergence
case not initialized
= -3 error with in-run epcl
= -4 terminated by user
= -5 terminated due to non-
convergence
Function: Advances the dynamic simulation to the specified
next pause time
Arguments:
Prerequisites: Valid load flow data in working case as initialized by
init or as left by a prior run command
run is the main element of the dynamic simulation process. It executes numerical integration steps, advancing the
simulation until the next pause time, tpause, is reached. When executed in menu mode run presents the dynamics
parameters panel and is then controlled by the settings in the panel.
The dynamics parameters should be reviewed and set up each time run is executed. The left column of the parameters
display specifies the duration, plotting resolution, and control of the simulation. The right column specifies fault
location and impedance.
SIMULATION CONTROL PARAMETERS
Current time (s) (dypar[0].time)
Current time is the value of the independent variable, time, in the currently active dynamic simulation. It is shown
mainly for information and can not be edited.
The dynamics initialization sets present time to - 2*delt.
Next pause time (s) (dypar[0].tpause)
The value of the independent variable, time, at which the simulation is next to pause for communication with the user.
Steps to file (dypar[0].nplot)
Steps to display (dypar[0].nscreen)
These parameters control the frequency with which dynamic simulation output channels are written to the plotted
output file and to the display screen. The simulation results are sent to the plot file and to the screen at intervals as
illustrated above for the case where
<steps to file> =3
<steps to display> =5
In this case printing channel output to file occurs every third step, at steps 0, 3, 6, 9, 12, 15, 18 and printing to the
display occurs every fifteenth plotting output at time steps 0, 15, 30, and so on.
If the simulation reaches a pause point at a step that is not a scheduled plot or print point it automatically writes the
channels to the plot file and screen to show conditions at tpause-, and resets the plotting and printing step counters
Convergence monitor (dypar[0].conv_mon)
The check box controls the display of the progress of network solution. The value of the parameter is set to zero when
the check box is not selected and one in case it is selected.
This parameter may be set to a number, greater than zero, to cause the progress of the network solutions to be
displayed on the terminal screen. Setting its value to n cause the convergence progress to be displayed for every n-th
network solution.
Number of channels to display (dypar[0].print_all_ch)
This parameter indicates the number of channels reported to the screen during a simulation.
Maximum solution iterations (dypar[0].itfymx)
The maximum number of iterations to be used in each network solution in the dynamic simulation. If the iteration
count reaches this value a warning message is sent to the terminal screen and to the solution log, the iterative solution
is stopped, and the dynamic simulation proceeds as if the network solution has converged.
Solution tolerance (MVA) (dypar[0].tolfy)
The tolerance on per unit voltage change used to determine when the network solutions of the dynamic simulation are
converged. The normal value of this tolerance is 0.00001 per unit.
Solution acceleration factor (dypar[0].accfy)
The acceleration factor applied to the voltage changes in the network solutions. This acceleration factor should
normally be 1.0, and should not be greater than 1.0. It may be advantageous to set it to a value as low as 0.3 in certain
difficult network conditions or when some special dynamic models are used. (The descriptions of such models suggest
values for this parameter).
Number of channels to file (dypar[0].nchan)
The number of channels to be sent to the output destinations in this simulation run. This parameter is set to the total
number of channels in use when the simulation is initialized.
Faulted bus (dypar[0].faultloc)
The identifier, name or number, of the bus at which a bus fault is to be applied.
Fault status (dypar[0].faulton)
The status of the bus fault; 0 = off, 1 = on, 2 = on – same load representation.
Line fault status
When check box is selected, fields related to line fault below are activated.
Faulted line, from bus (dypar[0].fault_from)
The identifier, name or number, of the "from" end of a line on which a fault is located. CAUTION: The from_to bus
number must be in the same order as in the SECDD table.
Faulted line, to bus (dypar[0].fault_to)
The identifier, name or number, of the "to" end of the line on which a fault is located.
Faulted line, circuit Id (dypar[0].fault_ck)
The two character circuit identifier of the faulted line.
Faulted line, section (dypar[0].fault_sec)
The section number on which the line fault is located.
Fault position (pu) (dypar[0].fault_position)
The location of the line fault as a fraction of its distance down the faulted section, starting at the end identified by the
<Faulted line, from bus> parameter.
Time – fault on (s) (dypar[0].t_fault_on)
The time, in seconds from t = 0, at which the line fault is applied.
Time – clear fault at from bus (s) (dypar[0].t_from_clear)
The time, in seconds from t = 0, at which the faulted line is opened at the end identified by the <Faulted Line From
Bus> parameter.
Time – clear fault at to bus (s) (dypar[0].t_to_clear)
The time, in seconds from t = 0, at which the faulted line is opened at the end identified by the <Faulted line, to bus>
parameter.
Loads during fault (dypar[0].zload_flton)
If simulating either a bus or a line fault the user can chose to treat the loads as constant impedance loads (0) or as
recorded in the dynamics data (1).
Fault resistanc R (pu) (dypar[0].faultr)
The fault resistance in per unit of the base impedance for the base voltage of the bus or line at which it is located.
Fault reactance X (pu) (dypar[0].faultx)
The fault reactance in per unit of the base impedance for the base voltage of the bus or line at which it is located.
Reorder (normally 0) (dypar[0].order)
The status of executing the order command; 0 = off, 1 = on.
When the check box is selected the parameter is set to 1, otherwise it is 0.
Factorize(normally 1) (dypar[0].fact)
The status of refactorizing the admittance matrix; 0 = off, 1 = on.
When the check box is selected the parameter is set to 1, otherwise it is 0.
Compile in-run EPCL (dypar[0].comp_inrun)
This flag indicates whether or not to re-compile the in-run EPCL program after each pause time. Do not select the
check b ox (set the flag to 0) to not re-compile and therefore "remember" all EPCL variables from one time interval to
the next. Select the check box (set the parameter to 1) to initialize all variables to 0 at each time step.
NOTE: Please be aware that any changes made during the execution of a dynamic simulation to the parameters
listed above may last for the PSLF session.
Command: rvolt (from rept:VoltLimitRept)
EPCL: @return =
rvolt("<report>","<append>","<select>")
Arguments: <report> Name of file or printer to receive output
<append> append flag=1 append output or
=0 to open and create a new report
<select> select flag =1 use selected output
=0 output all results
Function: Display bus voltage violations
Prerequisites: Valid solved load flow data in working case and set
voltage ratings in command parm:check panel
The rvolt command gives a summary of the buses whose voltages are outside the limits specified in the parm:check
panel. rvolt checks bus voltages against both sets of limits specified in parm:check.
The rvolt command first brings up the Get Report Destination panel where the user selects the output format.
When selecting Send to Screen from the rvolt panel, the following results are produced.
Command: rwsc (from exim:Import WSCC)
Arguments: <file> Name of file to read input from
<flag> New case flag 1=base case, 0=append data
rwsc reads a load flow data file in the WSCC format. The WSCC power flow manual should be consulted for the
details of the data file.
The following steps may be useful for solving the load flow case.
· execute rwsc to read in WSCC data base
· order the network with the command ORDR
· execute the command DCLF to get a valid set of angles ( angles were initialized to zero by the reader )
execute the load flow solution command SOLV with the maximum iterations set to 20 and iterations before var limits
set to 4 and all options set to zero ( TCUL,Phase shifter, area interchange and svd ) and solution method set to 1 (Full
Newton-Raphson).
rwsc appends data to an existing case if the new case flag is set to 0.
Command: rzone (from rept:Zone)
EPCL: @return = rzone("<report>","<append>","<select>")
@return = tzone()
Arguments: <report> Name of file or printer to receive output
<append> append flag=1 append output or
=0 to open and create a new report
<select> select flag =1 use selected output
=0 output all results
Function: Display zone totals and zone interchange summary
The rzone/tzone command displays the totals for each zone of:
· Maximum area generating capability (sum of all generators including out of service units)
· Zone generation MW and MVAR (sum of all on-line units)
· Constant power load MW and MVAR
· Constant current load MW and MVAR
· Constant impedance load MW and MVAR
· Shunt load MW and MVAR
· Static VAR device MW and MVAR
· Net interchange MW and MVAR flow (positive for flow leaving zone)
· Zone losses MW and MVAR
Totals for some of the categories are displayed after the final zone results. The area interchange summary displays the
total MW and MVAR flow between each interconnected pair of zones. (Use the command TIES to display individual
line flows.)
When rzone/tzone is selected from the rept/tabr panel, the following panel is displayed where the report results can be
directed.
Selecting Send to Screen produces the following results:
Command: savf
getf
EPCL: @return=savf("<file>")
@return=getf("<file>")
= -1 for failure
Arguments: <file> Name of history file
getf restores a load flow case stored as a history file to the working tables. savf records the complete contents of the
working tables in the history file in a compact form that can be retrieved very quickly. History files can be read only
by the PSLF command getf. getf reads a history file and returns the working tables to their condition when savf was
used to create the file. A history file should be saved with a file suffix of ".sav".
savf has no effect on the working tables, but destroys all prior contents of the history file into which it writes. getf
leaves the history file unchanged, but destroys all prior contents of the working files.
History files may be created with savf until the disc is full. Obsolete history files should be deleted from the disc from
time to time. On UNIX systems, savf reports on the size of the history file (before compression). It checks the
filesystem for available space, warning the user when there is not enough space to save the file.
Both getf and savf display the select panel upon execution. At this point, a list of history files is displayed with the
*.sav extension.
savf displays a Save File panel prompting for a .sav file name. If the file already exists, a "yes" or “no” Save File
panel appears which allows the writing to take place. Clicking on "no" causes savf to terminate without writing
anything.
When savf is called from epcl, the history file should be saved with a file suffix of ".wrk". This eliminates the
confirmation box and the epcl program executes without stopping.
savf sets the time stamp in the working case before writing the history file and writes the time stamp into the history
file. getf retrieves the time stamp from the history file. Hence when getf has been completed the time stamp in the
working case has the value it had when the history file was made. The time stamp in the working case can be set to
the present time with the <date> command.
SAVF AND GETF ARE UNFORGIVING. THEY DESTROY THE PRIOR CONTENTS OF THEIR
DESIGNATED DESTINATIONS. THEY MUST BE USED WITH CARE.
EXTENDED RECORD DATA
The data in the new and extended records may also be written in on your computer for later use. When the PSLF
database is saved with the savf command, the program automatically prompts you to save your extended records. A
red select panel is displayed after the load flow data (.sav file) is saved. The file name for the extended records should
have the same prefix as your history file and a suffix of ".exs".
When your load flow data is retrieved with the getf command, a red select panel is displayed with the name of the
corresponding extended records file highlighted. Click on the name to read in the data.
The reading and writing of the extended records may be bypassed by hitting ESC at the red select panels. You must be
sure that the pslfexr directory is set up correctly before saving a binary file. The directory must not be changed once
the binary file is created.
To read and write the extended records in EPCL use the following commands:
@ret = getexs(<file_name.exs>)
@ret = savexs(<file_name.exs>)
Command: scal (from misc:Scale Load Gen)
EPCL: @return=scal("<file>","<from>","<to>","<flag>","<pl>","<ql>","<pg>","<qg>","<opts>")
Arguments: <file> Name of file or printer to receive output
<from> From number
<to> To number
<flag> a=area, z=zone, b=bus, o=owner or y=balancing authority
Selecting Scale Load Gen brings up the Get report Destination input panel. Here, the user selects the destination of their report
output, which is either to the screen, to a file, to a printer, or appended to another file.
scal operates on all loads and/or generators in an area, bus, zone, owner or balancing authority that are in-service (status >0). scal
does nothing to loads and generators whose status is zero. scal won’t change the non-conforming (fixed) loads and would only
change conforming loads as per users specification to scale the total area/zone/bus/owner/balancing authority load.
When entered from menu mode, scal displays a panel of 10 rows allowing you to specify up to 10 scalings.
In each row enter
· Start#
This is the starting value for either the area, bus, zone, owner or balancing authority to which the scaling is to apply.
· Ending#
This is the ending value for either the area, bus, zone, owner or balancing authority to which the scaling is to apply. Enter 0 for
this value if the scaling is to be applied to a single area, bus or zone.
· A/B/Z
This flag indicates whether the scaling in the row applies to an area (a), a zone (z), bus (b), owner (o), or balancing authority
(y). This flag may be entered in either upper or lower case. The area/zone/balancing authority numbers refer to the load table
area/zone/ba entries and not the bus table area/zone/ba entries.
· -P-Load-- f
A value and a flag (f) for the scaling of real load (MW). The numerical value may be either :
a desired value of total real load, if the flag is 'v'
a factor by which the total real load is to be multiplied, if the flag is 'r'
an increment to be added to the total real load if the flag is 'i'
· -Q-Load-- f
A value and a flag (f) for the scaling of reactive load (MVAR). The numerical value may be either :
a desired value of total reactive load, if the flag is 'v'
a factor by which the total reactive load is to be multiplied, if the flag is 'r'
an increment to be added to the total reactive load if the flag is 'i'
desired value of load power factor for conforming loads if the flag is 'p'
a flag of 's' to retain the same power factor of conforming loads after scaling the real load ( numerical value MUST be set
to 1.0 ).
· --P-Gen-- f
A value and flag for the scaling of generation real power. Values and flags have the same meaning as for real load. No upper
or lower limits are recognized in scaling generator real power.
· --Q-Gen-- f
A value and flag for the scaling of generation reactive power. Values and flags have the same meaning as for real load; the
power factor flag is not recognized.
< opts >: The following 5 options/flags are also available to the user. When specifying this argument in EPCL command scal(),
the opt argument is to be specified as continuous string of 5 numbers where each number represent the flags in the order
mentioned below
Ignore negative loads
If this flag is enabled, loads whose net value (summation of constant power, constant current and constant admittance) is negative
in the selected area/zone/bus/owner/balancing authority won’t be scaled.
This feature can be used to ignore generators which are modeled as negative loads in the load table for some reason by users.
Ignore negative generators
If this flag is enabled, generators having negative dispatch (negative active generation) won’t be scaled.
This feature can be used to ignore motors or pumps which are modeled as negative generators.
Base load generators
If this option is enabled, generators having baseload flag of 1 won’t be scaled for any desired increase in generation and generators
having baseload flag of 2 won’t be scaled for either desired increase or decrease of total generation in the selected
area/zone/bus/owner/balancing authority.
Enforce generator limits
If this flag is enabled, maximum (pmax) and minimum (pmin) active power limits of generators will be enforced during scaling.
Generators won’t be scaled outside of their active power limits. When this flag is enabled, the user can specify either of the 4
generator scaling methods to scale generators as mentioned below in the Generator Scaling Method. If this flag is not enabled, all
the generators in the selected area, zone, bus, owner or balancing authority will be scaled uniformly and their limits won’t be
checked during scaling.
Generator Scaling Method
The following 4 different options are available to scale generators (only) when active power limits are enforced
· Uniform Scaling (0): Every generator in the selected area/zone/bus/owner/balancing authority would be scaled in the same
ratio. If during scaling any generator hits it power limits, their generation would be locked at the limiting value. If there are
generators which hits the active power limits during scaling, it is highly likely that the desired target generation level might
not be achieved. Under such conditions user might want to consider the next three scale options mentioned below. Uniform
scaling is primarily for academic purposes and should not be used as generators would most likely hit their limits based
upon uniform scaling and total generation would not be scaled to the desired value in such situations.
· Weighted (MW margin- up/down range) (1): Every generator in the selected area/zone/bus/owner/balancing authority will
be scaled based upon its MW margin with respect to its limits to satisfy the requested desired generation level. Generators
having larger MW margin will pick up or back down more generation than generators having smaller MW margin.
· Weighted (MVA base) (2): Every generator in the selected area/zone/bus/owner/balancing authority will pick up or back
down generation based upon the proportion of the generators MVA. In this method, generators having large MVA base will
pick up or back down more generation as compared to generators having relatively smaller MVA base. Generators having 0
MVA won’t be scaled.
· Weighted (Pgen) (3): This is similar to the above option of Weighted MVA, but instead of the MVA, generators active
generation is used as the weighting factor. In this method, generators having relatively large dispatch would pick up or back
down more generation when compared to generators having relatively smaller dispatch. Generators having 0 MW
generation won’t be scaled.
Note: This scaling affects only the generator reactive power variable. If you want generators to remain at the reactive power
outputs set by SCAL, you must set the generator reactive power limits manually with EDIT after completing SCAL or you can set
the cont_mode parameter of the generator to 1.
Entering a blank for the flag for a scaling in the SCAL table causes SCAL to bypass that scaling.
If SCAL detects any invalid flag or an invalid power factor in any row of its table, or in the command mode entry, it terminates
immediately.
After the entire panel information is entered a carriage return will execute the SCAL function whereas hitting the escape key will
exit this command and perform no scaling.
If an area/zone/bus/owner/balancing authority being scaled has conforming and non-conforming loads, only conforming loads will
be scaled such that the total area/zone/bus/owner/balancing authority load is scaled to the desired value. For example, in the below
mentioned case, area 1 has a total load of 1200 Mw and 576 Mvars comprised of 1 non-conforming load and 1 conforming load.
When the total load in Area 1 is scaled to 1.1 times the original load using the same power factor, only the conforming loads in
area 1 are scaled such that the total load (made up of conforming and non-conforming loads) in Area1 is scaled to 1320 Mw as
shown below.
As seen above, the new total load of area 1 is 1.1 times the original total load. The non-conforming loads in Area 1 are not scaled.
The power factor being reported on the screen is the power factor of the total area load, which might be different from the old
power factor because the non-conforming loads were not scaled.
Following table contains the results of scaling Area 1’s active load by few methods and scaling Area 1’s reactive load using same
power factor
Scaling Value Conforming NonConf Total pf
Method mw mvar mw mvar mw mvar
ratio = 1.1 NEW 1120 537.6 200 96 1320 633.6 0.902
OLD 1000 480 200 96 1200 576 0.902
value = 1320 NEW 1120 537.6 200 96 1320 633.6 0.902
OLD 1000 480 200 96 1200 576 0.902
value = 1500 NEW 1300 624 200 96 1500 720 0.902
OLD 1000 480 200 96 1200 576 0.902
Increment = 300 NEW 1300 624 200 96 1500 720 0.902
OLD 1000 480 200 96 1200 576 0.902
Scale Panel Examples
Reviewing the previous panel selection the first row choices
1 0 a 1.07 r 0.9 p 280 v would:
· Increase the total real power in the area 1 by seven percent
· Set all conforming load reactive powers in the area 1 to achieve a power factor of 0.9, lagging
· Set the total real power generation in the area 1 to 280 MW
and the second row choices are
4 7 a 1.03 r 1.0 s 100 i would:
· Increase the total real power load in the areas 4-7 by three percent
· change the conforming reactive loads to maintain the same power factor
· increase the generation in areas 4-7 by 100 MW
Scale EPCL Examples
@ret = scal("","2","6","a","1.03r","1.03r")
scale area 2-6 total loads both the real and reactive portions of loads by 1.03 pu. Only conforming loads in area 2-6 would be
scaled.
@ret = scal("","2","6","a","1.03r","1.03r",””,””,”10000”)
scale area 2-6 loads both the real and reactive portions of loads by 1.03 pu. Only conforming loads in area 2-6 would be scaled.
Negative loads in Area 2-6 won’t be scaled.
@ret = scal("","47","0","a","500v","100v")
scale area 47 load to 500 mw and 100 mvar proportional to existing load. Only conforming loads in Area 47 will be scaled.
@ret = scal("","47","0","a","500v","100v",””,””,”10000”)
scale area 47 load to 500 mw and 100 mvar proportional to existing load. Only conforming loads in Area 47 will be scaled.
Negative loads in area 47 will be ignored and won’t be scaled.
@ret = scal("","47","0","a","100i","","100i","")
scale area 47 by an additional 100 mw for conforming load and generation
@ret = scal("","47","0","a","100i","","100i","",”01000”)
scale area 47 by an additional 100 mw for conforming load and generation. Negative generation (generators having negative
dispatch) in Area 47 won’t be scaled.
@ret = scal("","47","0","a","100i","","100i","",”11000”)
scale area 47 by an additional 100 mw for conforming load and generation. Negative loads and negative generation in Area 47 will
be ignored and won’t be scaled.
@ret = scal("","47","0","a","100i","","100i","",”11100”)
scale area 47 by an additional 100 mw for conforming load and generation. Negative loads and negative generation in Area 47 will
be ignored and won’t be scaled. In addition, generators having base load flag of 1 or 2 won’t be scaled.
@ret = scal("","47","0","a","100i","","100i","",”11110”)
scale area 47 by an additional 100 mw for conforming load and generation. Negative loads and negative generation in Area 47 will
be ignored and won’t be scaled. In addition, generators having base load flag of 1 or 2 won’t be scaled. Also active power limits of
generators will be enforced during scaling. Uniform scaling method is chosen for generator scaling.
@ret = scal("","47","0","a","100i","","100i","",”11111”)
scale area 47 by an additional 100 mw for conforming load and generation. Negative loads and negative generation in Area 47 will
be ignored and won’t be scaled. In addition, generators having base load flag of 1 or 2 won’t be scaled. Also active power limits of
generators will be enforced during scaling. Reserve margin based scaling method is chosen for generator scaling.
@ret = scal("","47","0","a","100i","","100i","",”11112”)
scale area 47 by an additional 100 mw for conforming load and generation. Negative loads and negative generation in Area 47 will
be ignored and won’t be scaled. In addition, generators having base load flag of 1 or 2 won’t be scaled. Also active power limits of
generators will be enforced during scaling. Generator MVA based weighted method is chosen for generator scaling.
@ret = scal("","47","0","a","","","1.05r","",”01012”)
scale area 47 generation by 1.05 pu. Negative generation in Area 47 will be ignored and won’t be scaled. In addition, base load flag
of generators are not considered and hence base loaded generators would be scaled. Active power limits of generators would be
enforced during scaling. Generator MVA based weighted method is chosen for generator scaling.
Other Notes:
a) When scaling reactive loads using same power factor, once the loads are scaled, under some situations, the net power factor
of all loads after scaling might not be equal to the net old load power factor. This could be due to the following reasons
· presence of loads having no active component
· presence of loads having no reactive component
· presence of reactive loads in 4th quadrant (reactive loads is scaled up negatively)
· presence of active load in 2nd and 3rd quadrant (reactive loads would be scaled down)
It is recommended that users check power factor of individual load than checking power factor of total scaled net load under
such circumstances.
b) When scaling reactive loads with a given power factor, reactive loads having 0 or -1 power factor will be ignored and
won’t be scaled. Active portions of load having power factor of -1 will be scaled and won’t be scaled if power factor is 0.
Command: scan
Arguments: <bus id> Identifier of primary bus
<dest> report destination (scrn,print or filename)
scan asks for the identifier of a focus bus and produces a display with focus bus at the top. The focus bus may be
selected from the olgr/commands/edit network/bus (busd) edit table and entered in this panel and hitting OK or
enter. Thereafter the visited buses are remembered and the user can revisit them.
In this display:
· All loads, generators, shunts, static VAR devices, and d.c. converters located at the focus bus are shown above
the bus
· All buses connected to the focus bus (secondary buses) are shown below the focus bus with the connecting
branches running vertically
· All other branches connected to the secondary buses are shown running down and to the right from the
secondary buses. The transformer symbol located on horizontal branches contains two attributes, value and a
symbol, such as, NUM< or >NUM. The NUM is the top ratio in per unit or phase angle in degrees, and is
ALWAYS located closest to the top side bus. The symbol, < or >, points to the “from” bus.
· All buses connected to the secondary buses are identified at the ends of the corresponding branches
Scan annotates its diagram with one of the combinations of variables that can be selected by setting the annotation flag
through the parm.dis or parm.annot panels. These annotation options are:
Annotation Flag Quantities Displayed
0 MW/MVAR
1 MW/(MVA as percentage of branch rating)
2 MVA/Amps
3 R/X (in per unit on system base for lines, in per unit on
transformer base for transformers)
4 MVA/(MVA as % of branch rating)
5 amps/MVA as percentage of effective rating
6 rating MVA/amps( from bus as reference )
The effective rating of the branch is a percentage of one of its eight designated ratings, as specified by the parm:check
display or under the rating button.
The focus bus is displayed along with a marker on each system component. You can now select one of these
components by clicking the left mouse button on its marker or select a menu item. To leave scan click FILE:exit on
the menu bar, the X in the upper right corner of the window or escape key.
Arguments: List series capacitors and line flows
Function:
The scap command shows the series capacitor results of a solved load flow case in tabular form. The determination of
a line being a series capacitor is both the resistance and susceptance equal zero and the reactance value is negative.
Displayed in the edit table are the line reactance in pu, MW flow, MVAR flow, MVA, amps, % rating, rating in amps,
Af area of the from bus, At area of the to bus, Ar area assignment, Zf zone of the from bus, Zt zone of the to bus, Zo
zone assignment, MW losses and MVAR losses.
You can examine this table via the search, select and sort capabilities of the table editor, but no data in the working
case tables can be changed through this edit table.
The F8 key may be used to invoke the record editor to alter branch data or select the scan diagram option.
Command: scsc
EPCL: @return=scsc()
Arguments:
or the Short Circuit pull down menu.
The scsc command handles the setup of fault analysis simulations from a load flow working case. scsc starts up the
fault analysis shell and then either:
· leaves fault analysis data unchanged if the "Save Short Circuit Data in History File" is set, indicating that fault
analysis data has already been established
or
· initializes fault analysis data with default values if the "Save Short Circuit Data in History File" is not set.
The "Save Short Circuit Data in History File" is accessible through the Fault Parameters panel in the parm:fault
command.
When initializing fault analysis data, scsc sets up a positive sequence model as follows:
- All line and transformer positive sequence impedances are left unchanged
- All loads are converted to equivalent constant shunt admittance, yl1
- All fixed shunts and static VAR devices are treated as fixed shunt admittances, ys1, equal to the present shunt
admittance values.
- Generators are set up as Thevenin equivalents of constant voltage behind the generator source impedance zg1
(zgenr +j zgenx)
- D.C. converters are blocked.
When initializing fault analysis data, scsc applies the following assumptions to set up negative and zero sequence data:
For transmission lines:
Z2 = Z1 b2 = b1
Z0 = 3Z1 b0 = b1/2
For transformers:
Z0 = Z2 = Z1
For generators:
zg2 = zg1 zg0 = 0+j999
For loads:
yl2 = yl1 yl0 = 0
For shunts:
ys2 = ys1 ys0 = 0
Except for its treatment of all transformers as having grounded wye/grounded wye connections, the default data set up
by SCSC is often a reasonable approximate fault analysis model in cases where detailed data are not available. The
uniform grounded wye/grounded wye transformer modeling is unlikely to be adequate in all cases, however, and
transformer connections should be reviewed carefully before the default data is used, even as an approximation.
Where transformers are of wye-delta or other connections, the winding type codes should be changed from 1 to the
actual winding type, as described below, before any fault calculations are made with the scsf command. The
transformer winding type codes are accessible through the "tran" panel of the SCSC:edit command.
Modeling of Transformer Connection
Transformer connection modes are comprehensively modeled by defining all possible winding types that a transformer
can have, no matter which are primary, secondary, or even tertiary in the case of three winding transformer. This
provides greater flexibility, user convenience, and more complete coverage than does modeling transformer connection
by trying to enumerate all possible winding combinations. Zg denotes the ground impedance of grounded wye for type
1 and ground impedance of the Zigzag (earthing) transformer for types 4, 5, 6, and 7.
1. Grounded wye winding (solidly grounded when Zg = 0)
2. Delta winding
3. Ungrounded wye winding
4. Zigzag winding (earthing transformer)
5. Grounded wye winding with earthing transformer
6. Delta winding with earthing transformer
7. Ungrounded wye winding with earthing transformer
Example 1: a two winding transformer with primary winding of grounded wye (type 1) and secondary winding of delta
winding with earthing transformer (type 6).
Example 2: A three winding transformer with primary winding of ungrounded wye winding with earthing transformer
(type 7), secondary winding of zigzag (type 4), and tertiary winding of delta (type 2).
Access to reading short circuit data in GE format (rseq) or PTI format (rscp), editing short circuit data (edit) or
writing short circuit data in GE format (wseq) or PTI format (wscp) is accomplished through the scsc panel shown
below:
Command: scsf (from scsc:ScCalculation)
EPCL: @return=scsf("<file>","<fault_i>","<fault
type>","<fault_j>","<ck>", "<fraction>","<mon1>",...,
"<mon9>")
Arguments: <file> Name of file or printer to receive output
<fault_i> Faulted bus external number
<fault_type> Fault type defined as below
<fault_j> The far end bus external number, left blank except for open
conductor or fractional line faults
<ck> Circuit id of the open transmission line, left blank except for
open conductor or fractional line faults
<fraction> A float number in [0,1] that indicates where the fault location is
from <fault_i> on the line from <fault_i> to <fault_j> with ID
<ck>, measured by fraction of the total line distance.
<mon0>…
<mon9>
Bus numbers to monitor, up to 9 entries
Function: Performs all short circuit and open conductor fault calculations,
including the 6 fault types defined as follows.
1. Single line ground fault, with or without ground
impedance
2. Double line fault, with or without fault impedance
3. Three phase fault, with or without fault impedance
4. Double line ground fault, with or without fault and
ground impedance
5. Single phase open conductor fault
6. Double phase open conductor fault
Selecting the scsc command will bring up the Get Report Destination panel where the user selects the output format for
the report.
Fault Locations
scsf calculates all the short circuit and open conductor conditions on the system in the working case. The system model
must have been set up by the scsc, rseq/rscp, and edit commands to contain a proper representation of the positive,
negative, and zero sequence networks.
Example Fault Calculation
For the example system shown in Figure scsf-1 and the fault data shown below, scsf applies a 3-phase fault at bus 3 with
all branches in service.
If the “Branch out cases” flag were set to 1, cases would also be run with each of the branches connected to bus 3 (3A,
3B, 3C, 3D) opened one at a time.
If the “Branch end cases” flag were set to 1, cases would be run for faults at the far end of each branch connected to bus 3
with the branch disconnected from the far end bus.
A branch that is out of service in the working case is not considered at all in scsf; it is not present in the all-branches-in
case and the branch end calculation is not made for it.
The specification of faulted bus, monitored buses, and fault impedances is handled through the parm:fault panel as shown
below.
The parm:fault panel is displayed automatically by scsf when it needs to know a faulted bus identifier.
EPCL:
Arguments:
Function: Select area or zone prior to bringing up edit table
Prerequisites: Valid load flow data in working case
sel command can be used to set the area or zone prior to bringing up an edit table.
The example below show area 4 being selected and the Selection switch at the bottom must be set to 1 to invoke sel.
<CR> invokes sel and then selecting the busd table will display only area 4 bus information.
Command: sele (from epcl only)
EPCL: @return = sele("<flag>")
Arguments: <flag> Selector flag 0=off, 1=on, 2=on and remove previous
selections
Function: Enable or Disable the selective report option
Prerequisites: Valid solved load flow data in working case
sele command can be used to turn the selector on or off in an epcl program. The epcl program may also add or modify
the current selections by altering the selbeg and selend tables. The epcl variable names are listed below:
Category Start End
bus selbeg[n].extnum selend[n].extnum
Area selbeg[n].arnum selend[n].arnum
Area zone selbeg[n].zonum selend[n].zonum
Kv selbeg[n].kv selend[n].kv
where n = 0 to 4.
An example of setting up a new selection for reporting area 15 through 24 and area 47
@ret = sele(2) /* turn selector on */
selbeg[0].arnum = 15
selend[0].arnum = 24
selbeg[1].arnum = 47
Command: sepc
EPCL:
Arguments: <none>
Prerequisites: None
The command sepc initiates the EPCL language processing panel. sepc presents the list of epcl programs in the
directory c:\upslfXX\samples (Windows) or /usr/pslfXX/samples (UNIX) and allows you to make a selection. If a
selection is made, the selected epcl program is executed immediately. If no selection is made the EPCL shell goes into
its command mode and displays the prompt:
PSLF:EPCL:
To return to PSLF from the EPCL shell, use the EPCL command "end".
The EPCL language and the EPCL shell are described in Chapter 5
Command: skel (From econ:Default Data)
EPCL:
Arguments:
The Default Data command will write an economic data file as shown below using default data for fuel cost,
incremental heat rate, etc. This file can be used as a template to substitute the actual data for the default data.
Command: soln (from solv)
EPCL: @return=soln("<fs>")
soln is the principal load flow solution command of PSLF. It executes a Newton Raphson iteration in which the
Jacobian matrix recognizes all terms of the electric network equations and of the operating constraints such as
adjustment of generator reactive power output to control voltage at a remote bus.
The convergence of the Newton Raphson method is rapid when the initial estimate of bus voltages is reasonably good,
but the method can diverge badly when started with poor voltage estimates. For this reason, soln can be used routinely
for "change cases" where the new system condition differs from the original by changes such as a line outages or
incremental re-dispatches of generation, but may not be useful when a large change in system conditions is being
made.
It is a usually desirable to make a "temporary" history file before starting soln on a case that is expected not to be
straightforward, so that you can return to the condition before invoking soln if it diverges.
soln is controlled by a set of Solution Parameters. These are:
· Maximum number of iterations
· Iterations before VAR limits
· Tolerance for VAR limits
· Acceleration for VAR limits
· Jumper threshold impedance
· Minimum VAR limit band
Each of these parameters is given a default value when PSLF is started up, and can have its value changed via the
command parm:solv.
Automatic control actions of soln are turned off and on by setting the following control flags to 0 and 1, respectively:
TCUL adjustment flag
Phase shifter adjustment flag
Controlled shunt adjustment flag
dc Converter control flag
Area interchange control flag
In addition to these control flags, soln responds to the interrupt. soln can be stopped at the end of the iteration
currently in progress by hitting the interrupt button at the bottom left in the main menu.
soln treats branches whose series impedance is less than "Jumper threshold impedance" as perfect zero-impedance
branches. This treatment is used only within the solution iteration process and does not affect the identity of any
branch or bus with respect to connections to other buses, appearance in data tables or output reports, or the ability to
be switched. Branches with small series impedances are not, of themselves, a problem in load flow solutions; a small
impedance branch is a problem when it is connected to a bus at which all other connected branches have a relatively
much larger impedance. Hence a small impedance value such as (0.0001 +j 0.0006) could be no problem when it is
within a tight urban part of the network, but could have a serious detrimental effect on convergence if it appears in a
rural section of the interconnected system where other impedances are larger.
The value of "Jumper threshold tolerance" should be set to a value just above the highest impedance found among the
branches that are thought to be having a detrimental effect on convergence. It should be remembered that branches
whose impedances are below the threshold have no effect on convergence; branches with impedances just above the
threshold have the potential to create difficulties.
soln ignores VAR limits at generators and controlled VAR devices until the number of completed iterations equals the
"Iterations before VAR limits" and the real power mismatch at the bus to which the generator is connected is less than
the "Tolerance for VAR limits".
soln can be invoked from the main PSLF command prompt, from the main PSLF menu, and from the menu of the
switch mode of the olgr graphics subsystem.
When invoked from the command line or the main menu, soln normally displays convergence information in tabular
form. During each iteration, soln prints dots at intervals to indicate progress. On completing each iteration soln
displays:
· The number of the bus with the largest real power mismatch
· The largest real power mismatch in per unit
· The number of the bus with largest reactive power mismatch
· The largest reactive power mismatch in per unit
· The number of the bus receiving the largest voltage amplitude change
· The largest voltage amplitude change in per unit
· The number of the bus receiving the largest voltage angle change
· The largest voltage angle change in degrees.
If the angle estimation flag is set to 1, soln will run for minimum of 6 iterations.
Command: solv
EPCL: @return=soln("<fs>")
This panel sets up the choice of soln to make the solution, and provides a convenient way to set up the more frequently
used parameters controlling solutions. When solv is selected this panel shows the current values of several solution
control parameters, and is preset with soln selected. Hitting <CR> immediately invokes soln with the control
parameters as displayed.
When you wish to, you can change parameters and selections before hitting <CR> to start the solution. The
parameters and selections shown are:
*Max iterations 25
The solution will stop after this number of iterations regardless of whether it is
converged to the specified tolerance
*Iterations before VAR 0
limits
VAR limits will not be applied until this number of iterations have been
completed
*Solve
If this is not selected, no solution will be executed.
*Flat start
Reset the voltage magnitude equal to 1.0 and the angle to 0.0.
*TCUL tap ratio adjustment
*Automatic SVD control
*Automatic phase shifter
adjustment
*Activate user EPCL programs
*Area interchange control
Each of these flags enables the corresponding solution option when selected
and disables it when they are not selected
Optimal Order
If optimal ordering is selected it is executed before the solution command.
Full , DC
This flag indicates which solution command is to be executed.
The items marked by * are placed in the working case and will appear in this panel next time solv is selected for that
case. The items not marked with * are reset to their default values, as shown above in (), each time solv is selected.
Refer to parm:solve manual page for detailed explanation of the control functions activated by the control flags.
Command: sort (from edit:sort)
EPCL: @ret=sort(“<table>”,”<order>”,”<direction>”,”<exflag>”)
@ret=
sortext("<table>","<order>","<direction>", »<exflag>")
note: sortext is used for extended records
Arguments: <table> able name (busd., secdd., tran.
<order> precedence order
<direction> f or b for forward or backwards direction
<exflag> i bus index or e external bus number
The sort command sets up a sorting criterion for a table and then sorts the table according to that criterion. The sort
operation is specified in a panel like this, by entries in the first 3 columns:
The first column indicates the precedence of the member named in the Member column. If precedence is zero, the
member is not examined in the sort. If precedence is greater than zero for a member the table will be sorted with the
member as the key. The table is sorted by examining the members as keys in the order of precedence from 1 to 5. Not
more than five entries in the precedence column may be non-zero and each non-zero value must be 1, 2, 3, 4 or 5.
The D column must contain an f or b indicating whether the table is to be sorted in forward or backward order with
respect to the corresponding member. The "Forward" order gives ascending numerical values and a-z alphabetic
ordering.
The * column must contain "i", "e", or "a" to indicate whether the corresponding key member is to be interpreted as an
internal bus number, an external number, or an alphanumeric character string. If the flag is "i" the key member is
interpreted as a simple number. If the flag is "e" the sort key is the external bus number of the bus whose position in
the busd table is given by the key member. If the flag is "a", the key member is interpreted as an alphanumeric string
on the basis of the ASCII collating sequence.
To use the SORT command place the appropriate precedence, D, and * entries in the sort panel and hit <delete>, (not
<cr>), to initiate the sort.
Each table may be sorted independently, but, the bus data table should be sorted first since it establishes the
correspondence of external and internal bus number that is used throughout PSLF.
If the tables have extended records associated with them, they are also sorted.
Some useful sorting sequences are given in the following examples:
Example A
To put tables in system wide alphabetic order
Sort "bus"
1 f a busnam
Sort "line"
1 f i ifrom
2 f i ito (Note - the precedence of this sort is essential)
3 f a ck
4 f i nsec (Note - the forward order here is essential)
Sort "tran"
1 f i ifrom
2 f i ito
3 f a ck
Sort "gen"
1 f i ibgen
2 f a id
and so on.
Example B
To put tables in numeric order, system wide
Sort "bus"
1 f i extnum
Sort "line"
1 f e ifrom
2 f e ito
3 f a ck (Note - the precedence of this sort is essential)
4 f i nsec (Note - the forward order here is essential)
Sort "tran"
1 f e ifrom
2 f e ito
3 f a ck
Sort "gen"
1 f e ibgen
2 f a id
and so on.
Example C
To put tables in numeric order, area by area
Sort "bus"
1 f i area
2 f i extnum
Then proceed as in Example B for lines, and so on.
Sort is available in command/epcl mode with the following input
@return = sort("<table>","<order>","<direction>")
<table> keyword either busd., secdd., tran., gens., shunt., svd., bface.,area.,
zone., iface.,dcb., dcl.,dcc.,ped. or tztab.
<order> continuous string of numbers starting at the top of the column
and proceeding down until the last non-zero number is entered.
<direction> either f for forward or b for backwards for each number entered
sorts the bus table in the following order (1) area number (2) base voltage (3) name. The zeros in the time stamp,
external bus number and bus type are required. Check each table in menu mode to get the correct order for the number
input.
Command: summ (from rept:Summary)
Arguments: <report> Name of file or printer to receive output
<append> append flag=1 append output or =0 to open and
create a new report
The summ command displays the following values for the working case:
· minimum and maximum voltages along with the bus location
· system swing bus output in MWs and MVARs
· total number of system components, that is, buses, lines, loads etc.
· total MWs and MVARs for generation, load, losses, shunt and svd
· the bus location of the five worst mismatches
· 5 lines of the title and up to 15 lines of comments
· load flow parameters jumper threshold, solution tolerance and system base MVA
· the lines with the five worst overloads.
When summ is selected from the rept panel, the following panel is displayed where the report results can be directed.
Selecting Send to Screen produces the following results:
Command: tabr
EPCL:
Arguments:
Selecting tabr raises a submenu giving access to the Mismatch (mism), TieLineArea (ttiea), Area (tarea), Owner
(towner), Binterface (bint), GenResults (grst), SeriesCap (scap), Flow (flow), TieLineZone (ttiez), Zone (tzone),
Losses (vlos), PhaseShift (pshf), and Tgcd (tgcd) commands.
Command: tarea (from tabr:Area)
@return = rarea("<report>","append>","<select>")
Arguments: <report> Name of file or printer to receive output
<append> append flag=1 append output or =0 to open and create a new
report
<select> select flag =1 use selected output =0 output all results
The area command displays the totals for each area of:
· Maximum area generating capability (sum of all generators including out of service units)
· Area generation MW and MVAR (sum of all on-line units)
· Constant power load MW and MVAR
· Constant current load MW and MVAR
· Constant impedance load MW and MVAR
· Shunt load MW and MVAR
· Static VAR device MW and MVAR
· Net interchange MW and MVAR flow (positive for flow leaving area)
· Area losses MW and MVAR
· Area slack output bus MW and MVAR
Totals for some of the categories are displayed after the final area results. The area interchange summary displays the
total MW and MVAR flow between each interconnected pair of areas. (Use the command tarea to display individual
line flows).
Command: tgcd (from tabr:tgcd)
EPCL:
Arguments:
The tgcd command will display the gated control devices results such as MW and MVAR through the series element.
(see Chapter 3.10)
Command: titl (from rept:Title)
Arguments: <file> Name of file or printer to receive output
The titl command initiates the Get Report Destination panel where the user selects the destination for the output.
titl allows the user to edit the five lines of title and 15 lines of comments that describe the load flow case. If a file
name argument is given the title, comment, and a summary of the load flow case size are written to the file. (The
previous contents of the file are overwritten). If no argument is given the same description of the case is displayed on
the terminal screen. The title and comment editor displays, and allows you to edit, the title of the load flow case and
the comments that provide additional descriptions. The title contains five lines; the first two lines of the title are used as
the page heading in most reports from PSLF. The last three title lines are used only in more comprehensive reports.
This editor is always in "insert" mode; what you type is inserted into the line containing the cursor and the line is
extended to the right. Insertions that would extend a line beyond 78 characters in length are not accepted. The editor
responds to the following keys:
Key Function
arrow move cursor one space left, right, up or down
Tab move the cursor 8 spaces to the right
Delete delete the character at the current cursor location
Backspace delete the character to the left of the cursor
Enter advance the cursor to the start of the next line
Esc leave the editor
cntl/c copies line by highlighting the line
cntl/v puts down the line highlighted
Command: tlc
Arguments: <file>
tlc calculates the R, X and B values for each transmission line in the line data table. These values are calculated based
on data in the line, cond, pole and cabl tables. Once tlc has been executed, the line and it's R, X and B values may be
transferred into the secdd table using the standard epcl file lntosec.p . These lines are then included in the Load Flow
solution, and are treated the same as those in the secdd table.
Table Contents of Table
Pole Pole configuration data
Cond Conductor property data
Cabl Cable property data
Line Transmission line section data
tlc works with models of transmission lines. Each transmission line must be modeled by:
· A bus at each end; the ends of the line are referred to as the from and to ends
· At least one line section; a line can have many sections.
Each line section consists of from one to five wires three of which may be phase wires, and two of which are
"grounded" wires. The phase wires and phases are always labeled a, b, and c. The neutral wire and the other wire are
always labeled n and m.
The wires of each line section are supported on a pole. Each pole has ten wire stations at which wires can be mounted.
Before you can set up a transmission line data base you need to prepare a conductor properties file describing the
conductors, ACSR, Stranded Copper, and so on, used for the phase and other wires of the transmission lines. You also
need a pole geometry file defining the geometry of the poles on which the transmission lines are mounted. You may,
in addition, require a cable properties file describing the impedance characteristics of the various types of cable used in
your system.
You can set up a transmission line database by:
either:
adding each system component through the data table and data record editors of PSLF
or:
creating a text data file outside of PSLF using any text editor that you find convenient, following the rules
given in this manual for the rcab, rcond, and rpole commands (located in the tlc panels).
Working through the table and record editors of PSLF is the best way to go if you are starting from scratch and all data
must be transcribed by hand at least one time. Setting up data in a text file is most useful when the data is to be taken
from some other existing data file, from another program, or when the new system model is being built up by
combining pieces of other data bases that have already been set up in PSLF.
The PSLF package includes a fairly comprehensive conductor properties file, epc.con, a very basic pole geometry file,
epc.pol, and a very basic cable properties file, epc.cab - all of which are located in the PSLF samples directory. We
suggest that you use these three files as a starting point for your own reference files. The line data is saved to a file
with the PSLF load flow data by use of the commands savf and eepc.
The components required for the tlc command are described here:
Phase and Grounded Wires
The basic element of the transmission line model of tlc is a wire. Each transmission line section consists of up to five
wires. The key characteristics of the line model are the size and resistivity of the wires and their positions relative to
the ground.
Each wire of each line is identified by a single character; a, b, and c for the three phase wires and n, m for the two
grounded wires. For distribution lines n is used as the identifier of the neutral wire and m identifies a grounded
"messenger" or "services support" wire. For transmission lines the n and m wires are normally either shield wires or
are absent.
The length of each line is a critical parameter. Lengths may be specified in any convenient unit (kilometers, miles,
etc), but the same unit of length must be used consistently throughout the entire TLC data base.
Poles
The positions of the wires of a line are specified by reference to the geometry of the poles on which the wires are
mounted.
Each pole type used in a TLC must be specified in the pole table by:
a pole type name
the x and y coordinates of each of ten wire stations, relative to the center line base of the pole as shown
in figure tlc.1
Figure tlc.1
Wire Stations and Coordinates Defining a Pole
The wire stations on each pole are locations at which wires of a transmission line section may be mounted. Only one
wire station may be located at any position. As a practical matter, no wire station should be within less than about 0.5
feet of any other.
Conductor and Cable Properties
Conductor Properties
Each conductor type used in tlc must have it's electrical properties specified in the conductor properties table. The
most convenient way to load the conductor properties table is to read the data from a conductor properties file, each
record of which defines one type of conductor and contains:
<name> <gm> <rohm> <l1> <c1> <A1> <A2> <A3> <A4>
where
<name> is the name assigned to the type of conductor ( 1 to 8 characters )
<gm> is the diameter of the conductor in inches
<rohm> is the resistance of the conductor at 60Hz, 25degC, in ohms per mile.
<l1> is the resistance of the conductor at 60Hz, 75degC, in ohms per mile.
<c1> is the electrical geometric mean radius of the conductor in feet
<A1>-<A4> four ampacities to be assigned to the conductor for four different
ambient conditions (not used)
A "standard" conductor properties file named epc.con is provided with PSLF. This file contains the properties of a
large number of Copper, ACSR, Alumoweld, and other conductors; the following records are typical:
You can add to this file or create your own, either outside of PSLF with a general purpose text editor via the PSLF
conductor properties table with the editing facilities of PSLF.
Cable Properties
It is not practical to specify the characteristics of some transmission lines by the positions of their conductors.
Underground cables are the most common case. TLC allows such transmission lines to be specified by their positive
sequence and zero sequence electrical properties, rather than by their civil engineering configuration. Lines specified
in these terms are referred to in this manual as cables, though it must be noted that this method of specification may be
used for transmission lines of any construction where impedance, rather than geometry, is the more convenient
description.
Each cable type used in a TLC system model must have it's electrical properties specified in the cable properties table.
The most convenient way to load the cable properties table is to read the data from a cable properties file, each record
of which defines one type of cable and contains:
<name> <R1> <X1> <R0> <X0> <B1> <B0> <Rn> <Xn>
where
<name> is the name assigned to the type of conductor ( 1 to 8 characters )
<R1>+j<X1> is the positive sequence impedance of the cable in ohms per mile
<R0>+j<X0> is the zero sequence impedance of the cable in ohms per mile
<B1> is the positive sequence charging susceptance of the cable in
micromhos per mile
<B0> is the zero sequence charging susceptance of the cable in micromhos
per mile
<Rn>+j<Xn> is the impedance of the cable sheath to zero sequence current in ohms
per mile
A "standard" cable properties file named epc.cab is provided with PSLF. This file contains the properties of a limited
number of cables; the following records are typical:
--Name-- -R1- -X1- -R0- -X0- -B1- -B0- -Rn- -Xn-
Resistance entries in these records may be zero for convenience, but no reactance or capacitance entry should have a
zero value.
Each entry in the cable properties table specifies the properties of a set of five wires; these are normally three phase
wires, abc, (whether in one "triplex" cable or three "single" cables), the cable neutral wires treated as one, n, and the
cable sheath, m. A cable type should be specified as if it is a three-phase cable, even if only one phase will be used.
This can be done for single-phase cables by specifying the positive and zero sequence impedances that would apply for
a set of three of the cables laid as a three phase bundle. tlc deduces the required phase self and mutual impedances of
the cable from the stated zero and positive sequence impedances and recognizes that unused phases are absent when
doing this.
Transmission Lines
Overhead Lines
An overhead transmission line is described by entries in the line table with reference to the pole and conductor
properties tables.
The model of each overhead transmission line section is made by placing conductors at the desired wire stations on a
selected type of pole. Conductor types and pole type cannot be changed along the length of a section; a separate line
section is required for each combination of pole and conductor types along a line. Each of the five wires may be
present or absent as required to represent the as-built line. For example, a single-phase lateral line would normally
have one of the three-phase wires, the neutral, and the messenger present, with two phases missing.
A representative overhead line section model is illustrated by figure tlc.2. The a, b, and c phase conductors are
MERLIN, the neutral is a smaller conductor, OSPREY, and the messenger wire is 3/8EHSC cable. All three types of
conductor are defined in the standard conductor properties file epc.con which must be placed in the conductor
properties table with the rcon command. The five wires are mounted at wire stations 1, 4, 7, 8, and 9 on type A1-126P
poles. The other five wire stations on each pole are unused. This line could be transposed in another section by
keeping the same data but changing the:
a phase mounting to wire station 7
b phase mounting to wire station 1
c phase mounting to wire station 4
When a wire is absent, as in a single or two phase line, the wire station for the absent phase must be entered as zero
and the conductor type must be set to NONE. The following example describes a lateral line with only the a-phase
present.
Figure tlc.2
Definition of 3-phase line section in line table
Cables
A transmission line constructed from cable is described by entries in the line table with reference to the cable
properties table.
The model of each run of cable is made up by specifying a cable type in the pole type field of the line record and
setting the wire station for each wire that is present in the cable run to a negative number. A zero wire station entry
indicates that the wire is absent. The following example describes a run of single-phase cable:
This record describes a single-phase run of URD cable and its concentric neutral. Note that no entries are needed for
wire type; the properties of the aluminum insulated conductor and copper neutral are reflected in the "nett" zero and
positive sequence impedances contained in the cable properties table.
Other Parameters
The ambient conditions are set up in the ratpar record. The default values are located in the ini.p initialization file and
may be changed there. Which of the 4 possible rating set-ups is used is determined by the line[].rating value.
The resispar record is used to calculate the resistance and reactance. The default values are located in the ini.p
initialization file and may be changed there.
Command: towner (from tabr:Owner)
Arguments:
The towner command displays the totals for each owner of:
· Maximum owner generating capability (sum of all generators including out of service units)
· Owner generation MW and MVAR (sum of all on-line units)
· Constant power load MW and MVAR
· Constant current load MW and MVAR
· Constant impedance load MW and MVAR
· Shunt load MW and MVAR
· Static VAR device MW and MVAR
· Net interchange MW and MVAR flow (positive for flow leaving owner)
· Owner losses MW and MVAR
Command: ttiea (from tabr:TieLineArea)
@return = rtiea("<report>","<append>","<select>")
Arguments: <report> Name of file or printer to receive output
<append> append flag =1 append output or
=0 to open and create a new report
<select> select flag =1 use selected output
=0 output all results
rtiea displays the Get Report Destination panel where the user selects the destination for their output.
rtiea displays the flows on lines and transformers that are inter-area ties. The flow on each individual line is shown
with recognition of the loss assignment variable, aloss. If aloss is 1.0 the flow is shown as metered at the "to" bus; if
aloss is 0.0 the flow is shown as if metered at the "from" bus. A fractional value of aloss is equivalent to a metering
point part way along the line from the "from" bus.
ttiea prints the total MW and MVAR flows from each area to each of its adjacent areas.
Command: ttiez (from tabr:)
@return = ttiez()
Arguments: <report> Name of file or printer to receive output
<append> append flag=1 append output or
=0 to open and create a new report
<select> select flag =1 use selected output
=0 output all results
Function: Display tie line flows between connecting zones
Prerequisites: Valid solved load flow data in working case
rtiez displays the flows on lines and transformers that are inter-zone ties. The flow on each individual line is shown
with recognition of the loss assignment variable, aloss. If aloss is 1.0 the flow is shown as metered at the "to" bus; if
aloss is 0.0 the flow is shown as if metered at the "from" bus. A fractional value of aloss is equivalent to a metering
point part way along the line from the "from" bus.
rtiez prints the total MW and MVAR flows from each zone to each of its adjacent zone.
Selecting the Send to Screen produces the following results from rept:Tie Line Zone.
Command: tzone (from tabr:Zone)
EPCL: @return = rzone("<report>","<append>","<select>")
@return = tzone()
Arguments: <report> Name of file or printer to receive output
<append> append flag=1 append output or
=0 to open and create a new report
<select> select flag =1 use selected output
=0 output all results
Function: Display zone totals and zone interchange summary
The rzone/tzone command displays the totals for each zone of:
· Maximum area generating capability (sum of all generators including out of service units)
· Zone generation MW and MVAR (sum of all on-line units)
· Constant power load MW and MVAR
· Constant current load MW and MVAR
· Constant impedance load MW and MVAR
· Shunt load MW and MVAR
· Static VAR device MW and MVAR
· Net interchange MW and MVAR flow (positive for flow leaving zone)
· Zone losses MW and MVAR
Totals for some of the categories are displayed after the final zone results. The area interchange summary displays the
total MW and MVAR flow between each interconnected pair of zones. (Use the command TIES to display individual
line flows.)
When rzone/tzone is selected from the rept/tabr panel, the following panel is displayed where the report results can be
directed.
Selecting Send to Screen produces the following results:
Command: uedt
EPCL: @return=edituser("<table>")
Arguments: <table> Name of table
The example shown below.shows the uedt dialog through which one can access the user edit tables defined (in the
uepslf folder). The example can be found under the SSTOOLS folder.
Command: usrt (from misc:User Sort)
EPCL: @return=sortext("<table>")
Arguments: <table> Name of table
Allows sorting of a user-defined table.
This table follows all the characteristics of the standard PSLF edit tables, such as, busd, secdd, etc.
Command: vlos (from tabr:Losses)
EPCL: @return = vlos()
Arguments:
Function: Display megawatt and megavar losses at voltage
levels in specified areas
Prerequisites: Valid solved load flow data in working case
vlos displays losses in selected areas, categorized by voltage level. vlos always displays the parm:Select panel when
it is invoked; you may select an area or group of areas.
vlos then reports the losses by voltage level for these areas as shown below.
The default voltage levels are in the pslf.vlv file located in the installation directory. All bus base voltages from your
working case that are not listed in this file appear in the first row of the edit table label zero. The user may replace any
desired voltage level in that file or make a copy in the local directory. The file contains up to 30 levels in ascending
order with the last value being 9999 (see section 6.4 for more details). The default voltage levels are listed below:
Voltage level Voltage level Voltage level
11.0 69.0 330.0
13.2 100.0 345.0
13.8 115.0 400.0
14.4 132.0 440.0
24.9 138.0 480.0
25.0 150.0 500.0
33.0 161.0 525.0
34.0 220.0 735.0
34.5 230.0 765.0
46.0 240.0 9999.0
Click parm:VLV to read about Select Edit Parameters.
Command: wdyd
EPCL: @return=wdyd("<file>",”<parflag>”,”<loadst>”,”<sflg>”,”<lid>”,”<sel>”)
Arguments: <file> Name of file or printer to receive output
<parflag> Output parameter names flag
The wdyd command writes out the complete description of the non-network part of a dynamic simulation setup in the
form of a PSDS dynamic model data file. This file contains one record per model in the format described for the rdyd
command. The file written by wdyd can be read directly by the rdyd command when referenced to a load flow case
whose bus numbers or names and component identifiers correspond to those in the file.
wdyd writes a record for each model in the setup regardless of the component and model status flags.
After all the model records are written, wdyd writes a list of out of service models with their status. When the file is
read in by rdyd these records will be used to update the status of the model.
After the list of out of service models, any comments that were read in with the rdyd command are written. If the
comment file exits, it is the name of the output file as a prefix (minus the ".dyd") and a ".com" as a suffix ( <file>.com
).
wdyd is intended for use when dynamic simulation data from one simulation setup is to be transferred to another
setup. It transfers all the parameter data relating to the models but no information on their operating conditions.
Correspondingly, the use of wdyd presumes that a new initialization step will be undertaken after the data has been
read into a new setup with rdyd.
When the Output parameter names ? : or parameter name flag is set to 1, wdyd writes the names of the models
parameters preceding each parameter value. rdyd discards this name; it is for information only.
After executing an init command all the load models are status "off". wdyd gives the option to turn on all the load
models < loadst = 1 > or leave the status off < loadst = 0 > by setting the All load models in service ? : flag. If wdyd
is executed before init command, all models retain their present status.
If Arrange by area and sort by type ? : flag is set to 0, the models are written in the same order as they appear in the
edds table. Otherwise they are written out in order by area and by model type within each area. The exception to this is
that the load models are always written out first.
The turbine MW capability (mwcap) for turbine-governor models is written only if it differs from the generator MVA
base.
If lid flag is set to 1, the models are written based upon long identifier of the power system device (asset) instead of the
traditional bus identifiers. The only exception would be models tied to power system device, which does not have any
valid long identifier or the ones having blank long identifiers.
If the sel flag is set to 1, only those models which are selected in the edds table (by setting the “sel” field to 1) would
be exported.
Setting the model status to less than –3 prior to executing wdyd will not write that peculiar model to the output file.
The model status that is equal to –3 should be set back to its original value following the execution of wdyd.
Note: the length of an epcl file name of a user defined model, should not exceed 15 characters, e.g.,
smes1 7 "BUS-7 " 230.00 "1 " : #2 mva=100.0 "epclname.p" 3.0 "rcomm" 0.0 /
epcexc 1 "GEN " 24.00 "1 " : #9 "epclname.p" 4.0 "ka" 50.0 "ta" 0.05 "vmax" 7.00 "vmin" 0.0 "tr" 0.02
If the epcl file name exceeds 15 characters, PSLF will not be able to execute the epcl and wdyd() will produce an
incorrect output dyd file.
Command: wdyp (from misc:Read Dyn PTI)
EPCL: @return = wdyp("<file>")
Arguments: <file> Name of file or printer to receive output
Function: Write out a PTI formatted dynamics data file
Prerequisites: Valid load flow data in working case
wdyp write out dynamics model data to a file or printer in PTI format. This file may subsequently be read in the rdyp
command. The following types of model data will be written:
g generators
x exciters
t tubine/governors
s stabilizers
and the following types of models will not be written:
m meters
r relays
dc dc
l loads
v svds
b boilers
Command: wede (from econ:Write GE)
EPCL: @return = wede("<file>")
Arguments: <file> Name of economic dispatch data file
Function: Writes economic dispatch data file in EPC format
Prerequisites: Valid solved load flow and economic data in working
case
wede writes the economic dispatch data to a file in the format required by the rede command. This file should be
given a name with the suffix of <.ede>.
See REDE for file details.
Command: wscp (from scsc:Write SeqPTI)
EPCL: @return=wscp("<file>")
Arguments: <file>
Name of file or printer to receive output
Function: Exports sequence data in PTI short circuit data file
format for subsequent use by the rscp command
Prerequisites: Complete fault analysis set up in working case
The wscp command writes out the complete description of the positive, negative, and zero sequence networks as set up
in the working case for fault analysis. The description is written to a file in the format required by the command rscp;
this file can be read directly by rscp when referenced to a load flow working case whose bus numbers and component
identifiers correspond to those in the file.
wscp writes a record for each system component in the working case regardless of its status.
A error message will be displayed to the terminal that a three-winding transformer is in the data base. A future version
will correct this situation.
CAUTION exported data is invalid - three-winding transformer present
Command: wseq (from scsc:Write SeqGE)
EPCL: @return=wseq("<file>")
Arguments: <file>
Name of file or printer to receive output
Function: Exports sequence data in EPC short circuit data file
format for subsequent re-use by the rseq command
Prerequisites: Complete fault analysis set up in working case
The wseq command writes out the complete description of the positive, negative, and zero sequence networks as set up
in the working case for fault analysis. The description is written to a file in the format required by the command rseq;
this file can be loaded directly by rseq when referenced to a load flow working case whose bus numbers or bus names
and component identifiers correspond to those in the file.
wseq writes a record for each system component in the working case including its status.
To enter values in standard PSLF selective output panel, check the Selective Output field.
Command: edds
Arguments:
Function: Edit Dynamic Simulation model assignments and
data
Prerequisites: Valid load flow and Dynamic Simulation data in
working case
edds gives access to the dynamic model assignment table. It allows you to change model assignments
and to edit the parameter values used by individual models.
After a base model assignment has been made, normally with the rdyd command, edds may be invoked
to produce a table like this:
This table allows you to use the normal editing functions to review model assignments and data. The
most basic step is to use F8 to examine model parameter values.
Table: edds
EDDS TABLE DESCRIPTION
HEADING MEMBER
FROM see Note 1 Model Bus number (integer from 1 to 9999999)
FNAME see Note 1 Model Bus name, an alphanumeric string
containing 1 to 12 characters and at least one
non-numeric character within quotation marks
FKV see Note 1 Model bus kV
TO see Note 2 Model “to” bus number
TNAME see Note 2 Model “to” bus name
TKV see Note 2 Model “to” bus kV
ID model[ ].id 2 character model ID
CK model[ ].ck 2 character circuit name
SE model[ ].sec Model section number
MODEL see Note 3 Model name
T see Note 4 Model type (g, x, t, s, d, r, l, m, v, b)
g for generator models
x for excitation models
t for turbine governor models
l for load models
d for d.c. transmission models
m for meter models
r for relay models
s for stabilizer
v for svd
b for boilers
ST model[ ].st Model status
AREA see Note 5 Area number
ZONE see Note 6 Zone number
RLEVEL model[ ].rec-level Record Level (0 – 9)
MFROM see Note 7 Monitor “from” bus number
MFNAME see Note 7 Monitor “from” bus name
MFKV See Note 7 Monitor “from” bus kV
MTO see Note 8 Monitor “to” bus number
MTNAME see Note 8 Monitor “to” bus name
MTKV see Note 8 Monitor “to” bus KV
MCK model[ ].mon_ck Monitor circuit identifier
MSE model[ ].mon_sec Monitor “from” section number
Note 1: to reference the model from bus identifier :
model “from” bus number FROM @bus = model[ ].bus
busd[@bus].extnum
model “from” bus name FNAME busd[@bus].busnam
model “from” bus base kv FKV busd[@bus].basekv
Note 2: to reference the model to bus identifier:
model “to” bus number TO @tbus = model[ ].to
Busd[@tbus].extnum
model “to” bus name TNAME busd[@tbus[ ].busnam
model “to” bus base kv TKV busd[@tbus].basekv
Note 3: to reference the model name
model name MODEL @k=model[ ].mod_lib_no
modlib[@k].name
Note 4: to reference the model type
model type T @k=model[ ].mod_lib_no
modlib[@k].type
Note 5: to reference area number
model bus area AREA @bus=model[ ].bus
busd[@bus].area
Note 6: to reference zone number
model zone number ZONE @bus=model[ ].bus
busd[@bus].zone
Note 7: to reference monitor from bus
model monitor from bus @bus=model[ ].mon_I
busd[@bus].extnum
busd[@bus].busnam
busd[@bus].basekv
Note 8: to reference monitor to bus
model monitor to bus @tbus=model[ ].mon_j
busd[@tbus].extnum
busd[@tbus].busnam
busd[@tbus].basekv
The status column, titled ST, contains the status of each model. A model can be de-activated by setting
the model status to zero. Note that the model status shown by edds is not the same as the status of the
system component to which it applies. For example, setting the status of an excitation system model to
zero leaves the generator to which it is assigned with constant excitation but does not take the generator
out of service.
It is permissible to assign more than one model to a system component provided that only one is in
service. The exdc4 and exst1 models could both be assigned to a generator, for example. Performance
before an upgrade could then be examined by turning on exdc4, and post-upgrade performance could be
shown by turning exdc4 off and exst1 on.
All turbine-governor models could be turned off by moving the cursor to the T solumn and using Find
Button (F1 key) and enter t in the find box, click the select button, then OK. Now move the cursor to
the next column ST and click the Fill Button, enter 0, and fill all to turn off all the turbine-governor
models. This process can be repeated for other types, such as exciters, stabilizers, etc.
Here click the Fill All and the ST column is filled with 0.
Model assignments may be deleted with the F7 key. New model assignments may be added with the F6
key. When a model assignment is added with F6, edds goes directly to the record editor (F8) so that the
models' parameters can be entered.
Command: edic
edic gives access to the generator internal and boundary conditions in a dynamic simulation.
The edic table can be searched and selections can be made with the Find (F1) and Fill buttons. The recEd (F8)
button can be used to examine the record for a given generator. The insert (F6) and delete (F7) buttons must not be
used.
The entries Vref and Pref are the reference value settings of the voltage regulators and turbine governors. These values
are initialized by the init command and, therefore, may be changed at will to reproduce operator control actions.
Where excitation system and turbine governor models are not active the Efd and Pmech values may be changed.
Where the models are active such changes are meaningless because these values are updated by the models.
Table: edic
EDIC TABLE DESCRIPTION
HEADING MEMBER
BUS-NO See Note 1 “from” Bus Number (integer from 1 to 9999999)
NAME See Note 1 “from” Bus Name, an alphanumeric string
containing 1 to 12 characters and at least one non-
numeric character within quotation marks
KV See Note 1 From Bus kV
ID model[ ].id 2 character model identifier
ST model[ ].st Model MVA base
MBASE model[ ].mbase model MW cap
MBASER model MVA
MWCAP model[ ].mbase model MW cap
PMAX gens[ ].pmax generator maximum MW
PGEN gens[ ].pgen generator MW
QGEN gens[ ].qgen generator MVAR
V-ACT actual bus voltage
EFD genbc[ ].rfd generator field voltage
VREF genbc[ ].vref generator voltage reference in p.u.
PMECH genbc[ ].pmech generator mechanical power in p.u.
2GENR gens[ ].2genr generator resistance in p.u. on generator MVA
base
ZGENX gens[ ].zgenx generator reactance in p.u. on generator MVA
base
ELIMV genbc[ ].elimv
ELIMT genbc[ ].elimt
GLIMV genbc[ ].glimv
GLIMT genbc[ ].glimt
Note 1: to reference the "from" bus identifier in epcl use the following:
from bus number BUS-NO @fr = model[].bus
busd[@fr].extnum
from bus name NAME busd[@fr].busnam
from bus base kv KV busd[@fr].basekv
Command: eder
eder displays files with the suffix ".rep" in its select panel; only ".rep" files made by init are valid input to eder. eder
does not modify the ".rep" file.
Table: eder
EDER TABLE DESCRIPTION
HEADING DESCRIPTION
TYPE Type 1-4
SEVE Severity 1 (least) – 9 (most)
Typical Origin or Meaning
Type Severity
1 6 or 7 Parameter value below minimum allowable value
2 2 Parameter value is suspect in relation to value of another parameter
3 9 An upper limit parameter is below its corresponding lower limit
parameter
4 1 More than one model of a given type is invoked at a single bus
FROM “from” Bus Number (integer from 1 to 9999999)
FNAME “from” Bus Name, an alphanumeric string containing 1 to 12 characters
and at least one non-numeric character within quotation marks
FKV From Bus kV
ID 2 character circuit identifier
TO “to” Bus Number
TNAME “to” bus name
TKV “to” bus kV
CK 2 character circuit name
SE Section number
AREA Area number
MODNAME Model Name
PAR1 Parameter 1
VAL1 Value 1 – Original Value
PAR2 Parameter 2
VAL2 Value 2 – Possible Value to Correct Message
ERROR Description
Command: edmd
Arguments: <model_name> See the list below for valid names, such as agc2,
alwscc
Function: Examine and edit dynamic models
Prerequisites: None
edmd is the command for editing the parameters for all dynamic models of one type. The edmd panel shows the
models which are available to PSLF.
To display a manual page, use the arrow keys to place the cursor on a model name. Then click on F1. The description
and block diagram are displayed for that model.
Once a .sav case is read in, and a .rdyd file is read and solved, clicking on exac1 brings up the exac1 model data
parameters shown in tabular form.
Most of the normal editing functions are available at this point. You can hit the F8 key to edit the parameters in record
form, or click a field to change its value. The F6 and F7 keys are not available; models may be inserted, deleted and
replicated in the edds table only. The Mbase column is the generator mbase; it can be changed in the standard
edit:gens table. The MbaseR column is the model machine base. This may be changed for generator models (type 'g')
only. Upon exiting edmd, the MbaseR values for the corresponding models (types 'x', 'p' etc...) are updated.
For most turbine-governor models, the MbaseR column is replaced with a Mwcap column. This MW capability value
may be changed.
Table: edmd
EDMD TABLE DESCRIPTION
HEADING MEMBER
NO. busd[@bus] Sequence Number
--BUS-- bus[@bus] Bus Number (integer from 1 to 9999999)
--NAME-- .busnam Bus name, an alphanumeric string containing 1
to 12 characters and at least one non-numeric
character within quotation marks
--KV-- busd[@bus] Base kV voltage
ID model[ ].id 2 character model identifier
ST model[ ].st Model Status 1 = in service, 0 = out of service
AREA busd[@bus].area* Bus Area number (from 0 to 999)
ZONE busd[@bus].zone* Bus Zone number (from 0 to 999)
Mbase Machine MVA base
MbaseR Rotor MVA base used for cross compound
generators
Parameters vary according to model. Check individual models to get the exact list
* @k = model [ ].k
* @bus = model[@k].bus
Command: bint (from tabr:Binterface)
Arguments:
bint displays all the branch interface information, such as, MW, MVAR, MVA, branch rating and interface number.
The branch interface data is set up in edit:bface.
CAUTION: Make sure there are no jumpers (branches less than or equal to jumper threshold) adjacant to the buses
making up any of the interfaces
.
This will cause the F10 total MW's of any interface to be different than the column labeled I-PNET.
Table: area
AREA TABLE DESCRIPTION
HEADING MEMBER
AREA .arnum Area number (integer from 0 to 999)
NAME .arname Alphanumeric string containing 1 to 32
characters and at least one non- numeric
character within quotation marks
SWNG See note 1 Bus number at which area swing generator is
located
NAME See note 1 Bus name at which area swing generator is
located
KV see Note 1 Bus kv at which area swing generator is
located
PNET-SCH .pnetdes Scheduled real power net interchange (MW)
TOL .pnettol Real power net interchange tolerance (MW)
PNET .pnet Actual real power net interchange
QNET .qnet Actual reactive power net interchange
SWNG_MW .swingmw Area swing MW generation (Total)
SWNG_MV .swingmv Area swing MVAR generation (Total)
SWNG_MVA .swingmva Area swing MVA generation (Total)
SWNG_PMAX .swingpmax Area swing PMAX generation (Total)
For a complete listing of this table see Table 5.2 – Area Data
Note 1: to reference the area swing bus identifier in epcl use the following:
Area swing bus number SWNG @aa = area[].iswng
busd[@aa].extnum
Area swing bus name NAME busd[@aa].busnam
Area swing bus base kv KV busd[@aa].basekv
Table: bface
BRANCH INTERFACE TABLE DESCRIPTION
HEADING MEMBER
FROM see Note 1 From bus number ( from 1 to 9999999)
FNAME see Note 1 Alphanumeric string containing 1 to 12 characters and at least
one non- numeric character within quotation marks
FKV see Note 1 From bus base voltage (kV)
TO see Note 2 To bus number ( from 1 to 9999999)
TNAME see Note 2 Alphanumeric string containing 1 to 12 characters and at least
one non- numeric character within quotation marks
TKV see Note 2 To bus base voltage (kV)
CK .ck Two character circuit identifier enclosed in quotation marks
IFACE .itface External number of the interface
PFAC .pf Participation factor (p.u.)
MW Branch MW
MVAR Branch MVAR
For a complete listing of this table see Table 5.2 - Branch Interface Data
Note 1: to reference the "from" bus identifier in epcl use the following:
from bus number FROM @bf = bface[].from
busd[@bf].extnum
from bus name FNAME busd[@bf].busnam
from bus base kv FKV busd[@bf].basekv
Note 2: to reference the "to" bus identifier in epcl use the following:
to bus number TO @bt = bface[].to
busd[@bt].extnum
to bus name TNAME busd[@bt].busnam
to bus base kv TKV busd[@bt].basekv
Table: busd
BUS TABLE DESCRIPTION
HEADING MEMBER
BUS-NO .extnum Bus number (integer from 1 to 9999999)
NAME .busnam Bus name, an alphanumeric string containing 1 to 12
characters and at least one non-numeric character
within quotation marks
KV .basekv Base kV
TP .type Bus type {0,1,2,-2}
0 = swing bus (voltage magnitude and phase fixed)
1 = load bus (unconstrained voltage angle and
magnitude)
2 = generator bus (voltage control [terminal or
remote] within generator limits)
-2 = generator bus with unlimited reactive power
limits
VSCHED .vsched Scheduled voltage (Pu)
V-PU volt[].vm Bus voltage magnitude (Pu)
DEG volt[].va Bus voltage phase angle (degrees)
ISLAND . islnum Island to which the bus belongs (from 0 to 999). This
is updated by running the island command.
AREA .area Bus area ( from 0 to 999 )
ZONE .zone Bus zone ( from 0 to 999 )
VMAX .vmax Voltage checking limit (Pu)
(informational only )
VMIN .vmin Voltage checking limit (Pu)
(informational only )
YI .date_in In service date year yyyy
MI In service date month mm
DI In service date day dd
YO .date_out Retirement date year yyyy
MO Retirement date month mm
DO Retirement date day dd
OWN .nown Owner Number
For more information on Buses read Chapter 3 section 3.1.
For a complete listing of this table see Table 5.2 – Bus Data
Table: dcb
DC BUS TABLE DESCRIPTION
HEADING MEMBER
BUS-NO .extnum DC Bus number (integer from 1 to 9999999)
NAME .busnam Bus name, an alphanumeric string containing 1 to 12
characters and at least one non-numeric character within
quotation marks
KV .basekv DC base kV voltage
VDC vdc Actual dc voltage (pu)
SYS .dcsys DC system number
AREA .area Bus area ( from 0 to 999 )
ZONE .zone Bus zone ( from 0 to 999 )
For more information on DC Buses read Chapter 3 - Section 3.9.
For a complete listing of this table see Table 5.2 - DC Bus Data
Table: dcc
DC CONVERTER TABLE DESCRIPTION
HEADING MEMBER
FROM see Note 1 From AC bus number ( from 1 to 9999999)
FNAME see Note 1 Alphanumeric string containing 1 to 12 characters
and at least one non- numeric character within
quotation marks
FKV see Note 1 From DC bus base voltage (kV)
TO see Note 2 To DC bus number ( from 1 to 9999999)
TNAME see Note 2 Alphanumeric string containing 1 to 12 characters
and at least one non- numeric character within
quotation marks
TKV see Note 2 To DC bus base voltage (kV)
ID .id Two character circuit identifier enclosed in
quotation marks
SYS .dcsys DC system number
ST .st DC conv. status 1=in service; 0=out of service
TP .type Converter type 1=rectifier; 2=inverter
MD .mode Converter control mode
PSCHED .p_sched Scheduled converter dc power ( MW )
ISCH .i_sched Scheduled converter dc current ( amps )
VSCHE .v_sched Scheduled converter dc voltage ( kV )
PAC .pac AC real power at ac bus side of conv. tx
QAC .qac AC reactive power at ac bus side of conv. tx
IDC .idc Converter dc current ( amps )
VDC .vdc Converter dc voltage ( kV )
ALPHA .alpha Rectifier firing delay angle ( degrees )
GAMMA .gamma Inverter firing margin angle ( degrees )
ALMIN .alpha_min Minimum rectifier firing delay angle ( degrees )
GAMIN .gamma_min Minimum inverter firing margin angle ( degrees )
AREA .area Converter area number ( from 0 to 999 )
ZONE .zone Converter Zone number ( from 0 to 999 )
Note 1: to reference the "from" AC bus identifier in epcl use the following:
from bus number FROM @acfr = dcc[].acbus
busd[@acfr].extnum
from bus name FNAME busd[@acfr].busnam
from bus base kv FKV- busd[@acfr].basekv
Note 2: to: reference the "to" DC bus identifier in epcl use the following:
to bus number TO @dcfr = dcc[].dcbus
dcb[@dcfr].extnum
to bus name TO dcb[@dcfr].busnam
to bus base kv TKV- dcb[@dcfr].basekv
For more information on DC Converters read Chapter 3 - Section 3.9.3
For a complete listing of this table see Table 5.2 - DC Converter Data
Table: dcl
DC LINE TABLE DESCRIPTION
HEADING MEMBER
FROM see Note 1 From DC bus number ( from 1 to 9999999)
FNAME see Note 1 Alphanumeric string containing 1 to 12 characters
and at least one non- numeric character within
quotation marks
FKV see Note 1 From DC bus base voltage (kV)
TO see Note 2 To DC bus number ( from 1 to 9999999)
TNAME see Note 2 Alphanumeric string containing 1 to 12 characters
and at least one non- numeric character within
quotation marks
TKV- see Note 2 To DC bus base voltage (kV)
CK .ck Two character circuit identifier enclosed in
quotation marks
ST .st DC line status 1=in service; 0=out of service
R-OHM .r DC line resistance (Ohms)
RATE1- .rate[0] First DC current rating (amps)
RATE2- .rate[1] Second DC current rating (amps)
RATE3- .rate[2] Third DC current rating (amps)
RATE4- .rate[3] Fourth DC current rating (amps)
ALOSS .aloss Loss factor (0.0 - 1.0) used to assign losses.
1.0 = 100% loss assigned to "from" end of branch
0.0 = 0% loss assigned to "to" end of branch
LENGTH .length Branch length ( informational only )
AREA .area Branch area number ( from 0 to 999 )
ZONE .zone Branch Zone number ( from 0 to 999 )
YI .date_in In service date year yyyy
MI In service date month mm
DI In service date day dd
YO .date_out Retirement date year yyyy
MO Retirement date month mm
DO Retirement date day dd
OWN .nown[0] Owner Number
For more information on DC Lines read Chapter 3 - Section 3.9.1
For a complete listing of this table see Table 5.2 - DC Line Data
Note 1: to reference the "from" DC bus identifier in epcl use the following:
from bus number FROM @fr = dcl[].ifrom
cdcb[@fr].extnum
from bus name FNAME cdcb[@fr].busnam
from bus base kv FKV
cdcb[@fr].basekv
Note 2: to reference the "to" DC bus identifier in epcl use the following:
to bus number TO @to = dcl[].ito
cdcb[@to].extnum
to bus name TNAME cdcb[@to].busnam
to bus base kv TKV- cdcb[@to].basekv
Table: gcd
EPCL gcd
POWER ELECTRONIC DEVICE TABLE DESCRIPTION
HEADING MEMBER
FROM see Note 1 Bus number (integer from 1 to 9999999)
FNAME see Note 1 Bus name, an alphanumeric string containing 1 to
12 characters and at least one non-numeric
character within quotation marks
FKV see Note 1 Base kV voltage
TO see Note 1 Bus number (integer from 1 to 9999999)
TNAME see Note 1 Bus name, an alphanumeric string containing 1 to
12 characters and at least one non-numeric
character within quotation marks
TKV see Note 1 Base kV voltage
CK .ck Two character circuit identifier enclosed in
quotation marks
ST .st Status 1=in service; 0=out of service
PSET .pset Desired real power flow, into to-bus and before the
impedance of the UPFC series transformer (MW)
PTOL .ptol Solution toleration for pset (MW)
VISET .viset Desired voltage at from-bus (pu)
VJSET .vjset If vtol>0,
if>0.5, desired voltage at to-bus(pu)
if<0.5, desired difference between from-bus
& to-bus voltage(pu)
If vtol<0,
desired reactive power flow into to-bus
and before the impedance of the UPFC
series transformer (MVAR)
VTOL .vtol If >0,
solution tolerance for to-bus voltage(pu)
must be >= 0.0005 pu
If <0,
solution tolerance for reactive flow(MVAR)
must be >= 1 MVAR
VSMAX .vsmax Maximum series voltage(pu)
ISMAX .ismax Maximum current in series converter(MVA)
Not used for now. Can be left zero
ISHMAX .ishmax Maximum current in shunt converter(MVA at 1pu
voltage)
PdcMax .pdcmax Maximum dc power flow between converters(MW)
YTH .yth Approximate short circuit MVA at line-end of
UPFC
ALOSS .aloss Loss factor (0.0 - 1.0) used to assign losses
1.0 = 100% loss assigned to "from" end
0.0 = 100% loss assigned to "to" end
PLINE .pline Solution of real power flow into to-bus and before
the impedance of the UPFC series transformer
(MW)
QLINE .qline Solution of reactive power flow into to-bus and
before the impedance of the UPFC series
transformer (MVAR)
VIM .vim Solution of from-bus voltage(pu)
VJM .vjm Solution of to-bus voltage(pu)
AREA .area Area ( from 0 to 999 )
ZONE .zone Zone ( from 0 to 999 )
YI .date_in In service date year yyyy
MI In service date month mm
DI In service date day dd
YO .date_out Retirement date year yyyy
MO Retirement date month mm
DO Retirement date day dd
OWN .nown[0] Owner Number
For a complete listing of this table see Table 5.2 - Power Electronic
Note 1: to reference the "from" bus identifier in epcl use the following:
from bus number -FROM @fr = gcd[].i
busd[@fr].extnum
from bus name ---FR--- busd[@fr].busnam
from bus base kv -BKV- busd[@fr].basekv
Note 2: to reference the "to" bus identifier in epcl use the following:
to bus number ---TO @to = gcd[].j
busd[@to].extnum
to bus name ---TO--- busd[@to].busnam
to bus base kv -BKV- busd[@to].basekv
Note 3: Limit - at present stage, the program is limited to one UPFC device per load flow case. Only the first entry in
gcd edit table(gcd[0]...) is valid. Development of including multiple UPFC devices in one load flow case
may be considered in the future.
Note 4: In PSLF load flow solution, an UPFC is modeled by a transformer with variable tap and phase shift and a
shunt generator. Refer to section \<chap3 3.10.1> for detailed discussion of the UPFC load flow modeling.
UPFC is able to control up to 3 variables. Particularly, these 3 variables can be real power flow through UPFC,
UPFC to-bus voltage/or reactive power flow through UPFC, and UPFC from-bus voltage.
The UPFC control is activated if the "activate gcd control" flag is "1". It is not activated if the flag is "0". This
flag is accessible from the "solv" panel, or from epcl(solpar[0].gcdflg). When the UPFC control is activated,
all phase shifters in the current working case are activated, no matter the flag"Automatic phase shifter
adjustment" is "0" or "1".
The UPFC internal control algorithms are implemented in 4 epcl programs - SOLV_INIT.p, SOLV_ADJ.p,
SOLV_UPDT.p and SOLV_END.p. These epcl programs are located in "/PSLFDIR/SAMPLES" directory and
are called for automatically at each solution iteration if "Activate gcd control" flag is "1". These epcl programs
are treated as part of the PSLF program and should not be modified by users.
A log file (UPFC.log) is created in the current working directory if the UPFC control flag is activated.
Note 5: In F8 edit table, parameters listed up to "ZONE" are input parameters. Users should provide data for these
entries. Parameters after ZONE are solution output. They are updated by the program. Users do not need to
provide any data for these entries.
Note 6: "yth" can be provided a value which approximates short circuit MVA at to-bus of UPFC. This value is used
during the convergence process of the UPFC load flow solution. It does not affect solution end result. "yth"
can be used as a handle to speed up or imporve the UPFC load flow solution convergence, whenever it is
found that UPFC affects solution convergence negatively.
Note 7: In general, it was found that control of real power flow, from-bus voltage and to-bus voltage behave well.
However, in some cases, control of the reactive power flow may not as well. It might happen that the reactive
power does not converge to its set point in some cases. When facing this problem, firstly try varying "yth"
gradually to improve convergence. Secondly, try using to-bus voltage control and varying the voltage control
set point to gradually lead the reactive power flow to a desired value. Then switch to reactive power control.
Note 8: Pline and Qline are real and reactive power flow into the to-bus of UPFC and before the internal impedance
of the UPFC series transformer. Refer to Figure 3.10.4, in section 3.10.1 of the PSLF help manual for the
exact position from where the real power flow and reactive power flow start. In "scan" or "olgr", an UPFC is
represented by a transformer and a generator. Pline and Qline should be flows labled at from bus end of the
UPFC transformer.
Note 9: In F8 edit table, listed variable "qshunt" is the reactive power contribution from the UPFC shunt converter. It
is not the reactive power output of the UPFC equivalent generator. "qs" is the reactive power contribution
from the UPFC series converter. The reactive power output of the UPFC equivalent generator is the sum of
"qshunt" and "qs".
Note 10: A step-by-step guide for including an UPFC in a load flow data base and obtain a load flow solution
including the UPFC control.
1. Data For one UPFC device, 3 records in 3 edit tables need to be prepared.
a) "gcd" edit table record It is limited to one UPFC device in one load flow case. Therefore, in "gcd" edit
table, only the first record is valid and useful. Records after the first entry can be used for documentation
purpose only and should have "0" status if exist. Users only need to provide data for entries up to "ZONE"
for the first gcd record, as discussed in Note 5.
b) "tran" (transformer) edit table record Data needed for this record should be as follows:
From bus - UPFC from-bus number
To bus - Unit id UPFC to-bus number
- same id as UPFC model [UP]
Status - 1
Tap control type - 4
Reg bus - UPFC to-bus number
Base MVA - Series converter rating(or system MVA
base)
R from-to, X from-to - Series R & X of UPFC (p.u. on
transformer MVA base, X must not be zero)
From Base voltage - Base kV of the UPFC from-bus
To Base voltage - Base kV of the UPFC to-bus
TCUL tap - 1.
From fixed tap - 1.
To fixed tap - 1.
Also make sure of the following:
Tert. fixed tap - 1.
owner[1-8] - correct owner numbers (0 if none)
parti. factor[1-8] - correct participation numbers
The rest of the transformer data, including tap control data, need not be
entered. They will be supplied automatically by the program.
c) "gens"(generator) table record Data needed for this record should be as follows:
Bus no - UPFC from-bus number
Unit Id - same id as UPFC model [UP]
Status - 1
Reg bus - UPFC from-bus number
Base MVA - Shunt converter rating(or system base)
Q alloc factor - 1.
Also make sure of the following:
owner[1-8] - correct owner numbers (0 if none)
parti. factor[1-8] - correct participation numbers
High side bus - generator bus no.
Low side bus - 0
G tap - 1
R TR - 0
X TR - 0
The rest of the generator data, including VAR limits, need not be entered.
They will be supplied automatically by the UPFC model.
2. step-by-step guide to obtain an UPFC load flow solution
a) If you are solving a load flow case right after you added an UPFC in your data base, solve the case first
without activating the gcd control (leave the "Activate gcd control" flag to be zero). You need to provide
estimates for entries "max TCUL ratio", "min TCUL ratio","Max cont voltage" and "Min cont voltage" for the
UPFC transformer.
b) Select real power set point and voltage control set points for UPFC close to the relevant solution values in
the solved case. Activate gcd control by changing the flag to "1" in the solution panel. Solve the case again.
c) Change power set point and/or voltage set points gradually and solve the case repetitively to reach the
power flow and voltage levels of your choice.
d) After the load flow with UPFC control activated is solved, save the load flow case.
3. Useful techniques to help convergence
a) Make changes (e.g., set points) gradually (in steps);
b) If you do want to make a large change in one step, solve with gcd flag off first, then solve with the flag on;
c) Use "yth" as discussed in notes 6 and 7.
Note 11: An example save case, upfc.sav, with an upfc included can be found in c:\upslfXX\samples (for window) or
/usr/pslfXX/samples (for UNIX) directory.
Table: gens
GENERATOR TABLE DESCRIPTION
HEADING MEMBER
BUS-NO see Note 1 Bus number (integer from 1 to 9999999)
NAME1 see Note 1 Bus name, an alphanumeric string containing 1 to 12
characters and at least one non-numeric character within
quotation marks
KV1 see Note 1 Base kV voltage
ID .id 2 character generator identifier enclosed in quotation
ST .st Generator status 1=in service; 0=out of service
BL .baseload flag Baseload flag, = 0 not at max. output, =1 at max. output,
= 2 at limits, cannot increase or decrease the output in
response to frequency events
CM .cont_mode Voltage control mode (see Note 5)
QTAB .qtab Q table selector: = 1, use qtable if it exists
PGEN .pgen Actual real power output (Mw)
QGEN .qgen Actual reactive power output (MVAr)
QMAX .qmax Maximum reactive power output (MVAr)
QMIN .qmin Minimum reactive power output (MVAr)
PF .pf Power factor limit (cont_mode = 2, -2, 3)
QMX .qmx Actual max. Q (from qtable or qmax) (MVAr)
QMN .qmn Actual min. Q (from qtable or qmin) (MVAr)
IREG see Note 2 Number of bus whose voltage is controlled by this
generator
NAME2 see Note 2 Regulating bus name enclosed in quotation marks
KV2 see Note 2 Regulating bus base voltage
QRF .qrf Reactive power regulating assignment factor(0.0 - 1.0)
VSCHED see Note 3 Generator scheduled voltage (p.u.)
V-ACT see Note 4 Generator actual voltage (p.u.)
AR .area Area ( from 0 to 999 )
ZON .zone Zone ( from 0 to 999 )
PRF .prf Real power regulating assignment factor (0.0 - 1.0)
MBASE .mbase Generator base (MVA)
PMAX .pmax Maximum real power output (MW)
PMAX2 .pmax2 Alternate maximum real power output (MW)
PMIN .pmin Minimum real power output (MW)
YI .date_in In service date year yyyy
MI In service date month mm
DI In service date day dd
YO .date_out Retirement date year yyyy
MO Retirement date month mm
DO Retirement date day dd
OWN .nown[0] Owner Number
For more information on Generators read Chapter 3 - Section 3.5.
For a complete listing of this table see Table 5.2 - Generator Data.
Note 1: to reference the generator bus identifier in epcl use the following :
generator bus number BUS-NO @gbus = gens[].ibgen
busd[@gbus].extnum
generator bus name RNAME busd[@gbus].busnam
generator bus base kv RKV busd[@gbus].basekv
Note 2: to reference the generator regulating bus identifier in epcl use the following:
generator regulating bus number IREG @ireg = gens[].igreg
busd[@ireg].extnum
generator regulating bus name RNAME busd[@ireg].busnam
Note 3: to reference the generator scheduled voltage identifier in epcl use the following
generator scheduled voltage VSCHED busd[@ireg].vsched
Note 4: to reference the generator actual voltage identifier in epcl use the following
generator actual voltage V-ACT volt[@ireg].vm
Note 5: Generator cont_mode values
0 (default) Voltage at regulated bus is held constant within Q limits of generator specifed by Qmin,
Qmax or Q table
1 Q is held at its initial Qgen value
2 Voltage at regulated bus is held constant within Q limits of generator specified by pf input
parameter
3 Q is held constant at the value specified by pf input parameter (negative Q if pf is negative)
-1 Voltage at terminal bus is held constant within Q limits of generator specifed by Qmin,
Qmax or Q table
-2 Voltage at terminal bus is held constant within Q limits of generator specified by pf input
parameter
Table: itface
INTERFACE TABLE DESCRIPTION
HEADING MEMBER
NUM .itnum Interface number
NAME .name Alphanumeric string containing 1 to 32 characters
and at least one non- numeric character within
quotation marks
PNET .pnet Net Mw across interface
QNET .qnet Net Mvar across interface
-MVA1 .rate[0] First interface Rating (MVA)
MVA2 .rate[1] Second interface Rating (MVA)
MVA3 .rate[2] Third interface Rating (MVA)
MVA4 .rate[3] Fourth interface Rating (MVA)
For a complete listing of this table see Table 5.2 - Interface Data.
Table: line
LINE GEOMETRY TABLE DESCRIPTION
HEADING MEMBER
FROM see Note 1 From bus number ( from 1 to 9999999)
FNAME see Note 1 Alphanumeric string containing 1 to 12 characters
and at least one non- numeric character within
quotation marks
FKV- see Note 1 From bus base voltage (kV)
TO see Note 2 To bus number ( from 1 to 99999)
TNAME see Note 2 Alphanumeric string containing 1 to 12 characters
and at least one non- numeric character within
quotation marks
TKV see Note 2 To bus base voltage (kV)
CK .ck Two character circuit identifier enclosed in
quotation marks
ST .st Status 0= out of service, 1= in service
LNGTH .length Line length
SEC .sec Section number (1-9 in ascending order beginning
at "from" end)
POLE .pole Pole name ( 8 characters )
WSA .wsa[0] Wire station for "a" phase
CONDA .cond[0] Conductor Name for "a" phase ( 16 characters )
WSB .wsa[1] Wire station for "b" phase
CONDB .cond[1] Conductor Name for "b" phase ( 16 characters )
WSC .wsa[2] Wire station for "c" phase
CONDC .cond[2] Conductor Name for "c" phase ( 16 characters )
WSN .wsa[3] Wire station for "n" phase
CONDN .cond[3] Conductor Name for "n" phase ( 16 characters )
WSM .wsa[4] Wire station for "m" phase
CONDM .cond[4] Conductor Name for "m" phase ( 16 characters )
AREA .area Area number ( from 0 to 999 )
ZONE .zone Zone number ( from 0 to 999 )
IC .impc Impedance Check
R .r Resistance - output from "tlc" command (Pu)
X .x Reactance - output from "tlc" command (Pu)
B .b Susceptance - output from "tlc" command (Pu)
Note 1: to reference the "from" bus identifier in epcl use the following:
from bus number @fr = line[].ifrom
FROM busd[@fr].extnum
from bus name FNAME busd[@fr].busnam
from bus base kv FKV cbusd[@fr].basekv
Note 2: to reference the "to" bus identifier in epcl use the following:
to bus number @to = line[].ito
TO busd[@to].extnum
to bus name TNAME busd[@to].busnam
to bus base kv TKV busd[@to].basekv
Table: load
LOAD TABLE DESCRIPTION
HEADING MEMBER
BUS-NO see Note 1 Bus number (integer from 1 to 9999999)
NAME see Note 1 Bus name, an alphanumeric string containing 1 to 12
characters and at least one non-numeric character
within quotation marks
KV see Note 1 Base kV voltage
ID .id 2 character identifier enclosed in quotation
ST .st Load Status 1=in service; 0=out of service
PLOAD .p Constant real power (MW)
QLOAD .q Constant reactive power (MVAR)
IPLOD ip Constant current real power (MW)
IQLOD .iq Constant current reactive power (MVAR)
GLOAD .g Constant admittance real power (MW)
BLOAD .b Constant admittance reactive power (MVAR)
NONCONF .nonconf Load type
1=non conforming (fixed), 0=conforming (scalable)
AREA .area Load area number ( from 0 to 999 )
ZONE .zone Load zone number ( from 0 to 999 )
PMOTR .pm
QMOTR .qm
YI .date_in In service date year yyyy
MI In service date month mm
DI In service date day dd
YO .date_out Retirement date year yyyy
MO Retirement date month mm
DO Retirement date day dd
OWN .nown Owner Number
For more information on Loads read Chapter 3 – Section 3.6
For a complete listing of this table see Table 5.2 - Load Data
Note 1: to reference the load bus identifier in epcl use the following:
load bus number BUS-NO @lbus = load[].lbus
busd[@lbus].extnum
load bus name NAME busd[@lbus].busnam
load bus base kv KV busd[@lbus].basekv
Table: motr
MOTOR TABLE DESCRIPTION
HEADING MEMBER
BUS-NO see Note 1 Bus number (integer from 1 to 9999999)
NAME see Note 1 Bus name, an alphanumeric string containing 1 to
12 characters and at least one non-numeric
character within quotation marks
KV see Note 1 Base kV voltage
ID .id 2 character identifier enclosed in quotation
ST .st Status 1=in service; 0=out of service
MBASE .mbase Motor base (MVA)
PELEC .pelec Sched or actual real power consumed at terminals
(MW)
QELEC .qelec Sched or actual reac. power consumed at terminals
(MVAR)
PF .pf Power Factor
ZPPR .zppr Subtransient Resistance
ZPPX .zppx Subtransient Reactance
AREA .area Area ( from 0 to 999 )
ZONE .zone Zone ( from 0 to 999 )
YI .date_in In service date year yyyy
MI In service date month mm
DI In service date day dd
YO .date_out Retirement date year yyyy
MO Retirement date month mm
DO Retirement date day dd
OWN .nown[0] Owner Number
For a complete listing of this table see Table 5.2 - Motor Data
Note 1: to reference the motor bus identifier in epcl use the following:
motor bus number BUS-NO @mbus = motr[].ibus
busd[@mbus].extnum
motor bus name --NAME-- busd[@mbus].busnam
motor bus base kv --KV-- busd[@mbus].basekv
Table: owner
OWNER TABLE DESCRIPTION
HEADING MEMBER
OWNER .nown Owner number ( from 0 to 199)
NAME .name Alphanumeric string containing 1 to 32 characters and
at least one non- numeric character within quotation
marks
ABBR .sname Short abbreviation (4 characters)
PNETINTR .net_inter_mw Actual real power net interchange (MW)
QNETINTR .net_inter_mvar Actual reactive power net interchange (MVAR)
PNETSCHD .net_sched_mw Scheduled real power net interchange (MW)
QNETSCHD .net_sched_mvar Scheduled reactive power net interchange (MVAR)
AREA .areano Area number
For a complete listing of this table see Table 5.2 - Owner Data
Table: secdd
SECDD - BRANCH TABLE DESCRIPTION
HEADING MEMBER
FROM see Note 1 Bus number (integer from 1 to 9999999)
FNAME see Note 1 Bus name, an alphanumeric string containing 1 to 12
characters and at least one non-numeric character within
quotation marks
FKV see Note 1 Base kV voltage
TO see Note 2 Bus number (integer from 1 to 9999999)
TNAME see Note 2 Bus name, an alphanumeric string containing 1 to 12
characters and at least one non-numeric character within
quotation marks
TKV see Note 2 Base kV voltage
CK .ck Two character circuit identifier enclosed in quotation
marks
SE .nsec Section number (1-9 in ascending order beginning at
"from" end)
ST .st Branch status 1=in service; 0=out of service;2 = bypass
(R---PU .zsecr Branch section positive sequence resistance (Pu or Ohms)
X-PU) .zsecx Branch section positive sequence reactance (Pu or Ohms)
B-PU .bsec Branch section positive sequence susceptance(Pu or
Ohms)
MVA1 .rate[0] First Branch Rating (MVA)
MVA2 .rate[1] Second Branch Rating (MVA)
MVA3 .rate[2] Third Branch Rating (MVA)
MVA4 .rate[3] Fourth Branch Rating (MVA)
ALOSS .aloss Loss factor (0.0 - 1.0) used to assign losses.
1.0 = 100% loss assigned to "from" end of
branch
0.0 = 100% loss assigned to "to" end of branch
LENGTH .lngsec Branch length ( informational only )
TP .type Branch type=0 ( informational only )
AREA .area Branch area number ( from 0 to 999 )
ZONE .zone Branch zone number ( from 0 to 999 )
AF Area number of the “from” bus
AT Area number of the “to” bus
YI .date_in In service date year yyyy
MI In service date month mm
DI In service date day dd
YO .date_out Retirement date year yyyy
MO Retirement date month mm
DO Retirement date day dd
OWN .nown[0] Owner Number
For more information on Lines read Chapter 3 - Section 3.2.
For a complete listing of this table see Table 5.2 - Secdd Data.
Note 1: to reference the "from" bus identifier in epcl use the following:
from bus number FROM @fr = secdd[].ifrom
busd[@fr].extnum
from bus name FNAME busd[@fr].busnam
from bus base kv FKV busd[@fr].basekv
Note 2: to reference the "to" bus identifier in epcl use the following:
to bus number TO @to = secdd[].ito
cbusd[@to].extnum
to bus name TNAME busd[@to].busnam
to bus base kv TKV busd[@to].basekv
Table: shunt
SHUNT TABLE DESCRIPTION
HEADING MEMBER
FROM see Note 1 Bus number (integer from 1 to 9999999)
FNAME see Note 1 Bus name, an alphanumeric string containing 1 to 12
characters and at least one non-numeric character within
quotation marks
FKV see Note 1 Base kV voltage
TO see Note 2 Bus number (integer from 1 to 9999999)
TNAME see Note 2 Bus name, an alphanumeric string containing 1 to 12
characters and at least one non-numeric character within
quotation marks
TKV see Note 2 Base kV voltage
ID .id 2 character svd identifier enclosed in quotation
ST .st Svd status 1=in service; 0=out of service
CK .ck Two character circuit identifier enclosed in quotation
marks
SE .nsecsh Section number (1-9 in ascending order beginning at
"from" end)
ST .st Shunt status 1=in service; 0=out of service
G-PU- .g Actual shunt conductance (pu)
B-PU- .b Actual shunt susceptance (pu)
SVD see Note 3 Bus number of SVD controlling this shunt, if any
SNAME see Note 3 Bus name of SVD
SKV see Note 3 Bus base kV of SVD
SID .idsvd 2 character identifier of SVD
STSW .stsw Switching control status: >= 1 – control by SVD is active
AREA .area Shunt area assignment ( from 0 to 999 )
ZONE .zone Shunt zone assignment ( from 0 to 999 )
YI .date_in In service date year yyyy
MI In service date month mm
DI In service date day dd
YO .date_out Retirement date year yyyy
MO Retirement date month mm
DO Retirement date day dd
OWN .nown[0] Owner Number
For more information on Shunts read Chapter 3 - Section 3.7.
For a complete listing of this table see Table 5.2 - Shunt Data.
Note 1: to reference the shunt "from" bus identifier in epcl use the following:
Shunt bus number FROM @fr = shunt[].ifrom
busd[@fr].extnum
Shunt bus name FNAME busd[@fr].busnam
Shunt bus base kv FKV busd[@fr].basekv
Note 2: to reference the shunt "to" bus identifier in epcl use the following:
Shunt bus number TO @to = shunt[].ito]
busd[@to].extnum
Shunt bus name TNAME busd[@to].busnam
Shunt bus base kv TKV busd[@to].basekv
Note 3: to reference the shunt’s controlling "SVD" bus identifier in epcl use the following:
SVD bus number SVD @svd = shunt[].isvd
busd[@svd].extnum
SVD bus name SNAME busd[@svd].busman
SVD bus base kv SKV busd[@svd].basekv
Table: svd
SVD TABLE DESCRIPTION
HEADING MEMBER
BUS-NO see Note 1 Bus number (integer from 1 to 9999999)
NAME see Note 1 Bus name, an alphanumeric string containing 1 to
12 characters and at least one non-numeric
character within quotation marks
KV see Note 1 Base kV voltage
ID .id 2 character svd identifier enclosed in quotation
ST .st Svd status 1=in service; 0=out of service
TYP .type Device type:
<=0 = locked
1 = continuous & step
2 = continuous
3 = all or nothing with deadband
4 = step with deadband
5 = WECC SVD
6 = WECC STATCOM
7 = WECC TSC/TSR
REG-BUS see Note 2 Number of bus whose voltage is regulated by this
SVD
RNAME see Note 2 Regulated bus name
RKV see Note 2 Regulated bus base kV
AREA .area Area assignment ( from 0 to 999 )
ZONE .zone Zone assignment ( from 0 to 999 )
VSCH see Note 3 Regulated bus scheduled voltage (pu)
VACT see Note 4 Regulated bus actual voltage (pu)
VBAND .vband Width/2 of voltage deadband (types 3 & 4)
BACT .b Actual shunt susceptance (pu on system base)
BMIN .bmin Minimum B of continuous element (pu)
BMAX .bmax Maximum B of continuous element (pu)
Maximum I for Type 6 (pu)
XC .xc Compensating (slope) reactance (pu) (types 5, 6, 7)
BMINSH .bminsh Minimum B for switching shunts (pu) (types 5, 6,
7)
BMAXSH .bmaxsh Maximum B for switching shunts (pu) (types 5, 6,
7)
STSB .stsb Slow reset control on/off status (types 5, 6, 7)
BMINSB .bminsb Minimum B for slow reset (pu) (type 5, 7)
BMAXSB .bmaxsb Maximum B for slow reset (pu) (type 5, 7)
VRFMIN .vrefmin Minimum Vref for slow reset (pu) (types 5, 6, 7)
Minimum Vref for types 3 & 4 if VBAND <= 0
VRFMAX .vrefmax Maximum Vref for slow reset (pu) (types 5, 6, 7)
Maximum Vref for types 3 & 4 if VBAND <= 0
dVdB .dvdb System dV/dB for slow reset (pu) (types 5, 6, 7)
Ni .nstep[i] Number of steps in shunt group i (i = 1 to 10)
(types 1-4, 7)
BSTPi .bstep[i] B (pu) step size of each shunt in group iI ) (types 1-
4, 7)
YI .date_in In service date year yyyy
MI In service date month mm
DI In service date day dd
YO .date_out Retirement date year yyyy
MO Retirement date month mm
DO Retirement date day dd
OWN .nown[0] Owner Number
For more information on svds read Chapter 3 section 3.8
For a complete listing of this table see Table 5.2 – SVD Data
Note 1: to reference the svd bus identifier in epcl use the following:
Svd bus number BUS-NO @vbus = svd[].ibus
busd[svd[@vbus].ibus].extnum
Svd bus name BNAME busd[svd[@vbus].ibus].busnam
Svd bus base kv KV busd[svd[@vbus].ibus].basekv
Note 2: to reference the svd regulating bus identifier in epcl use the following:
Svd regulating bus REG-BUS @reg = svd[].kreg
number
busd[@reg].extnum
Svd regulating bus name RNAME busd[@reg].busnam
Svd regulating bus base RKV busd[@reg].basekv
kv
Note 3: to reference the generator scheduled voltage identifier in epcl use the following:
Svd scheduled voltage VSCH busd[@reg].vsched
Note 4: to reference the generator actual voltage identifier in epcl use the following:
Svd actual voltage VACT volt[@reg].vm
Table: tap
TAP TABLE DESCRIPTION
HEADING MEMBER
FROM see Note 1 From bus number ( from 1 to 9999999)
FNAME see Note 1 Alphanumeric string containing 1 to 12 characters and at
least one non- numeric character within quotation marks
FKV see Note 1 From bus base voltage (kV)
TO see Note 2 To bus number ( from 1 to 9999999)
TNAME see Note 2 Alphanumeric string containing 1 to 12 characters and at
least one non- numeric character within quotation marks
TKV see Note 2 To bus base voltage (kV)
CK .ck Two character circuit identifier enclosed in quotation
marks
ST .st Transformer status 1=in service; 0=out of service
T .type T- Control type {1,11,2,12,3,13,4,14}
1 or 11 = None
2 or 12 = Controls a voltage by adjusting TCUL ratio
3 or 13 = Controls reactive power flow by adjusting
TCUL ratio !! presently not used
4 or 14 = Controls real power flow by adjusting ps
angle
TCULTAP .tapp TCUL tap position (primary winding) (Pu)
ANGLP .anglp Primary winding phase angle (degrees)
REG see NOTE 3 Number of bus whose voltage is controlled by this
transformer if type is not a 1.
RNAME see Note 3 Regulated bus name enclosed in quotation marks
RKV see Note 3 Regulated bus base voltage
VACT see Note 4 Actual bus voltage of regulated bus (Pu)
VMAX .vtmax Upper limit of controlled voltage band if type 2
Upper limit of controlled MVAR flow band if type 3
Upper limit of controlled MW flow band if type 4
VMIN .vtmin Lower limit of controlled voltage band if type 2
Lower limit of controlled MVAR flow band if type 3
Lower limit of controlled MW flow band if type 4
STEPP .stepp Ratio step of TCUL unit if type is 2 or 3
Angle step of TCUL unit if type is 4 (degrees)
TMAX .tmax Maximum TCUL ratio if type 2 or 3 (Pu)
Maximum phase angle if type 4 (degrees)
TMIN .tmin Minimum TCUL ratio if type 2 or 3 (Pu)
Minimum phase angle if type 4 (degrees)
TAPFP .tapfp Primary winding fixed tap position (Pu)
TAPFS .tapfs Secondary winding fixed tap position (Pu)
AREA .area Transformer area number ( from 0 to 999 )
ZONE .zone Transformer zone number ( from 0 to 999 )
For more information on Transformers read Chapter 3 - Section 3.3.
For a complete listing of this table see Table 5.2 - Transformer Data
Note 1: to reference the "from" bus identifier in epcl use the following:
from bus number FROM @fr = tran[].ifrom
busd[@fr].extnum
from bus name FNAME busd[@fr].busnam
from bus base kv FKV busd[@fr].basekv
Note 2: to reference the "to" bus identifier in epcl use the following:
to bus number TO @to = tran[].ito
busd[@to].extnum
to bus name TNAME busd[@to].busnam
to bus base kv TKV busd[@to].basekv
Note 3: to reference the "reg" bus identifier in epcl use the following:
reg bus number REG @reg = tran[].kreg
busd[@reg].extnum
reg bus name RNAME busd[@reg].busnam
reg bus base kv RKV busd[@reg].basekv
Note 4: to reference the actual bus voltage of the regulated bus in epcl use the following:
actual bus voltage VACT volt[@reg].vm
Table: tran
TRAN TABLE DESCRIPTION
HEADING MEMBER
FROM see Note 1 From bus number ( from 1 to 9999999)
FNAME see Note 1 Alphanumeric string containing 1 to 12 characters and at
least one non- numeric character within quotation marks
FKV- see Note 1 From bus base voltage (kV)
TO see Note 2 To bus number ( from 1 to 9999999)
TNAME see Note 2 Alphanumeric string containing 1 to 12 characters and at
least one non- numeric character within quotation marks
TKV see Note 2 To bus base voltage (kV)
CK .ck Two character circuit identifier enclosed in quotation
marks
S .st Transformer status 1=in service; 0=out of service
3-winding only: 2=secondary open; 3=tertiary open;
4=primary open
MVA .tbase Transformer base (MVA)
VNOMF .vnomp Primary winding nominal voltage (kV)
VNOMT .vnoms Secondary winding nominal voltage (kV)
(--R .zpsr Resistance primary to secondary (Pu on tbase or Ohms)
X--) .zpsx Reactance primary to secondary (Pu on tbase or Ohms)
BMAG .bmag Magnetizing susceptance (Pu on tbase)
TZ .iztabl Transformer impedance table number
MVA1 .rate[0] First branch rating (MVA)
MVA2 .rate[1] Second branch rating (MVA)
MVA3 .rate[2] Third branch rating (MVA)
MVA4 .rate[3] Fourth branch rating (MVA)
ALOSS .aloss Loss factor (0.0 - 1.0) used to assign losses.
1.0 = 100% loss assigned to "from" end of branch
0.0 = 100% loss assigned to "to" end of branch
TERT see Note 3 Tertiary winding bus number ( from 1 to 9999999 )
TERNAME see Note 3 Is an alphanumeric string containing 1 to 8 characters
and at least one non- numeric character within quotation
marks
TERKV see Note 3 Tertiary winding bus base voltage (kV)
AREA .area Transformer area number ( from 0 to 999 )
AF see Note 4 Area number of "from" bus ( from 0 to 999 )
AT see Note 5 Area number of "to" bus ( from 0 to 999 )
ZONE .zone Transformer zone number ( from 0 to 999 )
ZF see Note 6 Zone number of "from" bus ( from 0 to 999 )
ZT see Note 7 Zone number of "to" bus ( from 0 to 999 )
YI .date_in In service date year yyyy
MI In service date month mm
DI In service date day dd
YO .date_out Retirement date year yyyy
MO Retirement date month mm
DO Retirement date day dd
OWN .nown[0] Owner Number
For more information on Transformers read Chapter 3 - Section 3.3.
For a complete listing of this table see Table 5.2 - Transformer Data.
Note 1: to reference the "from" bus identifier in epcl use the following:
from bus number FROM @fr = tran[].ifrom
busd[@fr].extnum
from bus name FNAME busd[@fr].busnam
from bus base kv FKV busd[@fr].basekv
Note 2: to reference the "to" bus identifier in epcl use the following:
to bus number TO @to = tran[].ito
busd[@to].extnum
to bus name TNAME busd[@to].busnam
to bus base kv TKV busd[@to].basekv
Note 3: to reference the "tert" bus identifier in epcl use the following:
tert bus number TERT @tt = tran[].itert
busd[@tt].extnum
tert bus name TNAME busd[@tt].busnam
tert bus base kv TERKV busd[@tt].basekv
Note 4: to reference the "from" bus area in epcl use the following:
"from" bus area AF busd[@fr].area
Note 5: to reference the "to" bus area in epcl use the following:
"to" bus area AT busd[@to].area
Note 6: to reference the "from" bus zone in epcl use the following:
"from" bus zone ZF cbusd[@fr].zone
Note 7: to reference the "to" bus zone in epcl use the following:
"to" bus zone ZT busd[@to].zone
*from the tran0 table ( eg. tran0[].zpsr, tran0[].zpsx or tran0[].typep )
Table: transact
TRANSACT TABLE DESCRIPTION
HEADING MEMBER
FROM .from From number
FNAME - N/A Alphanumeric string containing 1 to 12 characters and
at least one non-numeric character within quotation
marks
F_ID .fid From ID
F_TP .ftype From type of transaction (a = area, z = zone, o =
owner,
l = load, g = generator )
TO .to To number
TNAME N/A Alphanumeric string containing 1 to 12 characters and
at least one non-numeric character within quotation
marks
T_ID .tid To ID
T_TP .ttype To type of transaction (a = area, z = zone, o = owner,
l = load, g = generator)
ST .st Status
SCH_MW- .sched_mw Scheduled MW
SCHMVR .sched_mvar Scheduled MVAR
FLAG .flag Schedule Flag 1-4 chars
NAME .name Transaction Name 1-32 chars
For a complete listing of this table see Table 5.2 - Transaction Data
Table: tztab
IMPEDANCE TABLE DESCRIPTION
HEADING MEMBER
NO .extnum Table number
TA .ta 0 = tcul ratio , 1 = phase shift angle
T-1 .t[0] Independent variable value, Tap p.u. or degrees
F1 .f[0] Impedance adjustment factor, p.u.
.
.
.
.
.
--T11-- .t[10] Independent variable value, Tap p.u. or degrees
--f11- .f[10] Impedance adjustment factor, p.u
For more information on Z Tables read Chapter 3 - Section 3.3.
For a complete listing of this table see Table 5.2 - Transformer Impedance.
Table: bus0
BUS TABLE DESCRIPTION
HEADING MEMBER
BUS-NO .extnum Bus number (integer from 1 to 9999999)
NAME .busnam Bus name, an alphanumeric string containing 1 to 12
characters and at least one non-numeric character
within quotation marks
KV .basekv Base kV voltage
TP .type Bus type {0,1,2,-2}
0 = swing bus (voltage magnitude and phase fixed)
1 = load bus (unconstrained voltage angle and
magnitude)
2 = generator bus (voltage control [terminal or
remote] within generator limits)
-2 = generator bus with unlimited reactive power
limits
VSCHED .vsched Scheduled voltage (Pu)
V-PU volt[].vm Bus voltage magnitude (Pu)
DEG volt[].va Bus voltage phase angle (degrees)
AREA .area Bus area ( from 0 to 999 )
ZONE .zone Bus zone ( from 0 to 999 )
Table: gens0
EPCL: @ret = editec(“curv”)
Arguments: <none>
Function: Displays/edit generator incremental cost curves
Prerequisites: Valid solved load flow and economic data in working
case
The MWn entries in this table are abcissa points on the curve of incremental heat rate versus power output of the
generator. The HRn entries are corresponding ordinate values. MW1, HR1, MW2, and HR2 must always be entered.
The remaining pairs of values may be entered as appropriate or left as zero if they are not to be used in the dispatch.
The value of MW1 should normally be less than or equal to the value of Pmin and the value of the last non-zero MWn
entry should be greater than or equal to the value of Pmax in the econ:gend table. This requirement is not mandatory,
however, and the incremental cost curves are projected linearly if necessary to reach Pmin or Pmax.
The column headings are AR for area number, GP for group number, PR for priority number, DP for dispatchable (1=
dispatchable and 0 = non-dispatchable, MWn for megawatts (n is the point number from 1 to 11) and HRn for the heat
rate in Mbtu/Mw-hr.
Command: edar (from econ:Area Total)
EPCL: @return = editec("edar")
Arguments: <none>
Function: Display economic area data
Prerequisites: Valid solved load flow and economic data in working
case
edar displays and allows you to change the assignment of areas to dispatch groups and the area reserve requirements.
It displays area totals for information only. The edar table displays:
Group The number of the dispatch group to which this area is signed.
Grp_nm The name of the group
Load Area load, MW
Net_int Area net interchange, MW
Losses Area losses, MW
Res_pu Area variable reserve in per unit of area generation.
Res_MW Area fixed reserve, MW.
Nondis Total output of non-dispatchable units in the area.
Disp_g The total output of dispatched units in the area
Reqcap The total generator capacity required in the area.
(Load + Net int + Losses)*(1 + Res_pu) + Res_MW
Comcap The total capacity of units in the area that are on-line.
Totcap The total generating capacity available in the area including off-line
units
Below is the other half of the edit table
Command: gend (from Other:econ:Edit Gen)
EPCL: @return = editec("gend")
Arguments: <none>
Function: Display generator dispatch data
Prerequisites: Valid solved load flow and economic data in working
case
gend displays and allows you to edit generator dispatch data. The gend table displays:
St The generator status
AR The area to which the bus at which the generator is connected is assigned.
Disp The dispatch status of the generator.1=dispatchable,0=non-dispatchable
Tp Generator type (2 characters), for information only.
Fu Fuel type (2 characters), for information only
Gr The group in which the generator resides
Pr Dispatch priority number.Units with Pr=0 are always on line. PR=1 are
committed first, and units are then committed in order of increasing value of Pr.
Pgen Generator real power output, MW.
Pmax Maximum dispatchable power output. This parameter is the value read by
REDE, REDP or REDI and is not the same parameter as gens.pmax contained
in the load flow generator data table
Pmin Minimum dispatchable power output. The generator must run at this output or
above.
$/MBtu Fuel cost in dollars per million Btu
Fuel -f Fuel factor.
O&M Operating and maintenance cost, $/MBtu
Perf-f Performance factor.
Pen-f Transmission loss penalty factor.
Mheat Heat input at minimum load MBtu/hr.
Ht-rat Heat rate in MBtu per MW-hr at power output equal to the power at the highest
point on the incremental cost curve.
FL$/MWhr The actual cost of running the unit at power output equal to Pmax, $/MWhr.
ML$/MWhr The actual cost of running the unit at power output equal to Pmin, $/MWhr.
OP$/MWhr The actual cost of running the unit at power output equal to Pgen, $/MWhr.
Pioc The penalized incremental operating cost of the unit at output equal to Pgen in
$/MWhr. Pioc is the incremental heat rate of the unit times the penalized fuel
cost. Pioc = (<fuel cost>*<fuel factor>+<om>)*<heat rate>*<perf-f>*<pen-f>
Rank Rank of the unit in system-wide unit commitment list in which all units,
both dispatchable and non-dispatchable, are ordered in order of increasing
priority number and increasing full load actual cost in $/MW-hr within
each priority level.
Remark Text remark of up to 16 characters
All items in the gend table except the identity of the generator (number,name, base kv, id), Ar, Gr, FL$/hr and ML$/hr
may be changed. These changes are acted on immediately upon exit from gend and are reflected in the grpd table the
next time grpd is executed. Example of the table is shown below
Command: grpd (from Other:econ:Edit Group)
EPCL: @return = editec("grpd")
Arguments: <none>
Function: Display dispatch group data
Prerequisites: Valid solved load flow and economic data in working
case
grpd displays and allows you to edit certain data relating to dispatch groups. The economic dispatch calculation
dispatches generation within a dispatch group to equal incremental fuel cost. A dispatch group is a group of
interchange areas that are treated as one, with free flowing ties between them, for dispatch purposes.
Areas are assembled into dispatch groups in accordance with the group data records read by the rede or redp
command. (The group to which each area is assigned can be seen and edited via the econ:edar command.) The grpd
table displays:
Load The total load in the group. Constant current and constant impedance
components of load are evaluated at 1 p.u. voltage.
Net_int The net interchange of the group
Loss_MW The losses in the group as evaluated from the loadflow solution
currently in the working case by the LOSF command. This is used to
estimate the total generation needed to supply load, net interchange, and
losses.
Res_pu The group reserve factor. The group must have a reserve at least equal
to this fraction of the actual generation, plus the required fixed reserve.
Res_MW The fixed reserve required in the group.
Nondis The total output of non-dispatchable generation in the group. A
generator is non-dispatchable if no cost curve was read for it by the
rede, redp or redi command, or if its <Disp> flag is zero in the gend
table.
Disp_g The total output of dispatchable generators in the group
Reqcap The total generating capacity required in the group. This is equal to
(Load + Net Int + Loss)*(1 + Res pu)+(Res MW)
Comcap The total generating capacity that is on-line in the group.
Totcap The total generating capacity that is available to be committed in the
group.
Cst$/hr The total operating cost of the group in $/hour
Lambda p The incremental cost of the group in $/MW/hr.
Only the <Load>, <Net int> <Loss MW>, <Res pu>, and <Res MW> entries of the grpd table can be changed. When
these values are changed the other entries of the table are not updated immediately. The effects of a proposed change
on required generation and capacity can be seen by changing data in grpd, leaving grpd, and re-entering it. Below is
an example of the edit table divided into two sections because of the table width.
Table: cabl
CABLE PROPERTY TABLE DESCRIPTION
HEADING MEMBER
--NAME-- .name Pole Name (16 characters)
---r1---- .r1 <r1> + j<x1> is the positive sequence impedance of
---x1---- .x1 the cable (ohms/mile)
---r0---- .r0 <r0> + j<x0> is the zero sequence impedance of the
---x0---- .x0 cable (ohms/mile)
---b1---- .b1 Positive sequence charging susceptance of the cable
(microhms/mile)
---b0---- .b0 Zero sequence charging susceptance of the cable
(microhms/mile)
---rn---- .rn <rn> + j<xn> is the impedance of the cable sheath
---xn---- .xn to zero sequence current (ohms/mile)
Table: cond
CONDUCTOR PROPERTY TABLE DESCRIPTION
HEADING MEMBER
--NAME-- .name Conductor Name (16 characters)
---gm---- .gm Diameter of the conductor (inches)
--rohm--- .rohm Resistance of the conductor at 60Hz, 25degC
(ohms/mile)
---l1---- .l1 Resistance of the conductor at 60Hz, 75degC
(ohms/mile)
---c1---- .c1 Electrical geometric mean radius of the conductor
(feet)
-amp_1--- .ampacity[0] Ampacity assigned to the conductor for the first
ambient condition (not used)
-amp_2--- .ampacity[1] Ampacity assigned to the conductor for the second
ambient condition (not used)
-amp_3--- .ampacity[2] Ampacity assigned to the conductor for the third
ambient condition (not used)
-amp_4--- .ampacity[3] Ampacity assigned to the conductor for the fourth
ambient condition (not used)
Table: pole
POLE GEOMETRY TABLE DESCRIPTION
HEADING MEMBER
--NAME-- .name Pole Name (8 characters)
--x1--- .x[0] x coordinate of the first wire station relative to the
center line base of the pole
--y1--- .y[0] y coordinate of the first wire station relative to the
center line base of the pole
--x2--- .x[1] x and y coordinates of the second through tenth wire
stations
--y2--- .y[1]
. .
. .
--x10-- .x[9]
--y10-- .y[9]
For a complete listing of this table see Table 5.2 - Pole Data
GE
Energy
AGENDA
PSLF FUNDAMENTALS & STEADY-STATE ANALYSIS
4.5 Day Class - 32 Training Hours
Students will create a small power system case from scratch and will run a mini study on this sample study system using the
GE PSLF Program while learning the basics of the program.
Course Outline:
Section 1: Introduction and Setup of the PSLF Program
Overview of the PSLF Program
Definition of PSLF Directories
PSLF Initilization
PSLF Parameters
Section 2: PSLF Documentation
Using the PSLF Manuals
Section 3: Database Management
Loading and Saving PSLF Cases
Using Case Titles and Comments
Using PSLF Edit Table Features
Section 4: Introduction to Load Flow Analysis
Load Flow Study Types
Establishing Steady-State Criteria
Equipment Modeling Importance
Case, Scenario and Contingency Development
Sample Study Flow Charts
Section 5: PSLF Equipment Modeling
Review of the Per Unit System
Bus Definitions
Transmission Line Modeling
Two-Winding Transformer Modeling
Machine Modeling
Load Modeling
Fixed & Controllable Shunt Modeling
Area, Zone & Owner Definitions
Section 6: Advance Equipment Modeling
Power Plant Modeling
- Review of Different Power Plant Types
- Modeling Power Plant Auxiliaries
- Modeling Reactive Capability Curves
- Realistic Voltage Regulation and Power Plant Constraints
Wind Farm Modeling
- Modeling Wind Farms for Steady-State Analysis
Defining Interfaces
Transformer Modeling
- Three-Winding Transformers
- LTC/TCUL Transformers
- PAR Transformers
Dynamic Reactive Power Source Modeling
- Synchronous Generators
- Static VAr Systems
- STATCOMs
Load Modeling
- Voltage Dependent Models
- Motor Modeling
Section 7: Using One-Line Graphics
Using the SCAN Window
Developing One-Line Diagram
GEDI vs SWITCH
Section 8: Solving a Load Flow
What is a Load Flow Solution
Different Methods of Solution
Cover Various Solution Options
When Do I Order a Load Flow
Data Checking
Importing New Data
Tracking Solution Problems
Section 9: Output Reports and Other Features
Review of PSLF Table Results
Review of PSLF Output Reports
Use of Various Other Features in PSLF
Section 10: Program Automation
Developing EPCL Programs
Section 11: Contingency Analysis
Developing Contingencies
Various Methods of Contingency Solutions
Review of the PSLF SSTOOLs Program
GE
Energy
AGENDA
MECHANICS OF RUNNING PSLF DYNAMICS /
DYNAMIC SIMULATION APPLICATIONS USING PSLF
5-Day Class – 35 Training Hours
Dynamics Class – Part 1
In the first part of the course the students become familiar with the basic PSLF functions required for performing transient
stability simulations. Fundamental concepts associated with power system stability are reviewed and the plotting capabilities
of PSLF are explained. Topics include:
Overview of PSLF Dynamics - Program Structure and Functions, Panels
Review of Fundamental Concepts in Power System Stability Analysis
Getting Simulation Cases Off the Ground
Plotting Dynamic Simulation Results
Hands on applications - Students work with sample systems that illustrate pertinent concepts
Dynamics Class – Part 2
The second part of the course is designed to provide the students with an understanding of the dynamic characteristics of
generators, excitation systems, turbine/governors, and loads, from the perspective of transient stability simulations. The main
characteristics of electromechanical oscillations are also discussed. Topics include:
Generator, Excitation Systems, and Turbine/Governor Models
Static and Dynamic Load Models
Electromechanical Oscillations
Hands on applications - Students perform simulations highlighting the dynamic characteristics of different models.
Dynamics Class – Part 3
The third part of the course is focused on two key aspects associated with the use of PSLF in bulk power system studies: a)
application of EPCLs and b) initialization of dynamic simulations. The use of EPCLs to represent simple transient events is
explained and their application to the execution of batch simulations is illustrated. Examples related to the proper initialization
of dynamic simulations and tips for debugging bad data are discussed. Topics include:
EPCLs to Automate Simulations
EPCL Access to Dynamic Variables
Batch Runs – Use of DYTOOLS
Data Checking and Debugging
Initializing Simulations
Hands on application - Students work on a mini stability study and data debugging of sample systems
Dynamics Class – Part 4
The fourth part of the course complements the concepts and applications covered in Parts 1-3. Topics include: How to write a
dynamic model using EPCL, description of wind turbine models and practical implications of numerical methods in power
system simulations. Topics include:
Overview of User-Written Models Using EPCL
Wind Generation Modeling
Introduction to Numerical Aspects of Dynamic Simulations
Hands on application – Students work on examples related to each topic
GE
Energy
AGENDA
EPCL PROGRAMMING
3-Day Class – 21 Training Hours
This class will start at the basics of EPCL and move through advanced EPCL techniques.
· Basic Structure
· Variable Definition
· Input/Output
· Links to PSLF
· Programming Techniques
· Lots of Hands On Examples
· Build Edit Tables
· Explanation of all EPCL Functions such as rec_index, next_index, azcalc, tiescalc, etc.
GE
Energy
Prerequisites for all classes:
Must have Power Systems Analysis background
Recommended B.S. in EE or equivalent experience
Knowledge of a text editor (Textpad is recommended and used in class) Evaluation copy can be
downloaded from http://www.textpad.com/
Must be familiar with windows environment (WNT/2000/XP/Vista) using windows explorer, creating
icons, creating shortcuts and copy/move/delete files
If you do not have the Power System Analysis Background or stability background, GE-PSEC offers both
courses through its PSEC Courses. Contact Celeste.Furchak@ge.com for more information.
Prerequisites for Mechanics of Running PSLF Dynamics & Dynamic Simulation
Applications Course:
Some stability background and network analysis
Familiarity with generator/exciter/governor modeling
Course Locations:
Spring and Fall 2015 classes will be held at Training to YOU, 2200 North Central Avenue, Suite 405, Phoenix,
AZ 85004.
Classes run from 8:00 am to 5:00 pm unless otherwise posted. All classes include both lecture and hands-on.
Training Schedule for 2016 PSLF Classes
All registrations must be done on-line with payment by credit card. Once on-line registration is completed,
complete CC_InfoFrm and send to secure fax # 518-935-9010. We take MC/VISA/AMEX.
PSLF Fundamentals / Steady State Analysis & Applications Using PSLF- This 4-day class is scheduled to be held
March 14-17, 2016 at Phoenix, AZ. The cost is $3,100 USD per student. A minimum of 10 students is required,
with a limit of 16 students. Please read the agenda for further information.
EPCL Programming - This 3-day class is scheduled to be held April 26-28, 2016 at Phoenix, AZ. The cost is
$2,400 USD per student. This class covers all of the EPCL functions and while focused on PSLF may be applied to
MAPS. Please read the agenda for further information.
Mechanics of Running Dynamics Simulation / Dynamics Simulation Applications using PSLF - This 4 1/2-day
class is scheduled to be held March 28- April 1 noon, 2016 at Phoenix, AZ. The cost is $3,500 USD per student. A
minimum of 10 students is required, with a limit of 16 students. Please read the agenda for further information.
Engineering Analysis for Dynamic Stability - This 4-day class is scheduled to be held August 16-19, 2015 at
Phoenix, AZ. The cost is $3,100 USD per student. A minimum of 10 students is required, with a limit of 16
students. Please read the agenda for further information.
PSLF Fundamentals / Steady State Analysis & Applications Using PSLF- This 3-day class is scheduled to be held
September 20-22, 2016 at Phoenix, AZ. The cost is $2,100 USD per student. A minimum of 10 students is
required, with a limit of 16 students.
Introduction to the Analysis and Debugging of Dynamic Data in PSLF- This 4-day class is scheduled to be held
September 12-15, 2016 at Phoenix, AZ. The cost is $3,100 USD per student. A minimum of 10 students is
required, with a limit of 16 students. Please read the agenda for further information.
EPCL Programming - This 3-day class is scheduled to be held October 11-13, 2016 at Phoenix, AZ. The cost is
$2,400 USD per student. This class covers all of the EPCL functions and while focused on PSLF may be applied to
MAPS. Please read the agenda for further information.
Mechanics of Running Dynamics Simulation / Dynamics Simulation Applications using PSLF - This 4 1/2-day
class is scheduled to be held October 31 – November 4 noon, 2016 at Phoenix, AZ. The cost is $3,500 USD per
student. A minimum of 10 students is required, with a limit of 16 students. Please read the agenda for further
information.
***NOTE: We evaluate class attendance about a month prior to the class so we recommend all registrants get
their registrations in at least a month prior to the start of the class to avoid future class cancellations.
Customized PSLF Training Available
Create your own Customized PSLF Training Course tailored to meet your specific needs.
You provide the course outline and we’ll design the course that best suits your needs.
Examples include:
· Local HVDC Installation:
· Power Plant Equipment and Modeling:
· User Defined Models:
· Advanced Power Flow Data Analysis
· Generator Testing & Model Validation
· Model System Protection Correctly
Contact pslf.registration@ge.com or Devin Van Zandt for more information on customized courses.
If you are interested in an East Coast class for any of the above classes, please let us know. If we have enough
interest from our East Coast customers in a specific class, we may consider holding an East Coast class.
Training Terms and Conditions
Seminar Terms and Conditions
Once you register on-line, complete the CCInfoFrm and fax it to the secure FAX# below. Once this form is
received, the credit card information will be processed and you will be registered for the class and sent an email
confirmation.
If you have any questions, please contact:
Devin VanZandt
General Electric International, Inc.
1 River Road, Bldg. #53-315
Schenectady, New York 12345
Phone 518.385.9066
CC Fax # for Registrations 518/935-9010
pslf.registration@ge.com
GE
Energy
AGENDA
ENGINEERING ANALYSIS FOR DYNAMIC STABILITY
4 Day Class – 28 Training Hours
This class is intended for engineers who want to strengthen their knowledge background in the preparation of power system
models for use in studies of the dynamics of the interconnected, transmission. The focus of the class is the characteristics of
generating station and transmission control equipment rather than on planning criteria, methodologies, and techniques. The
premise is that the planning and limit setting methods used in the industry can only be valid if they are executed with correct
representations of the equipment that makes up the power system.
The class presumes that its participants are familiar with and know how to run a “load flow/stability” program but does not
require knowledge of any particular program. Much, but not all, of the discussion will be presented in terms of the GE
PSLF/PSDS program.
This is not a class on program operation; no program operating instruction or exercises will be undertaken. The PSLF program
will be used as convenient to illustrate engineering points.
The following list of subjects is an approximate anticipation of the class schedule. The actual schedule and emphasis placed
on some subjects will vary in accordance with the interests and concerns of the participants.
1. Describing Things by Differential Equations
· A rocket trajectory
· Water in a penstock
· A governor
· Flux in a generator
· An excitation system
2. Numerical Issues
· Numerical Integration
· Numerical Stability
· Iterative Solutions (of networks)
· Convergence of iterations
3. Generator Modeling
· Physical characteristics of generators
· Generator parameters and sources of data
· Relationship of parameters to construction and type
· Apparent and true time constants
4. Excitation System Modeling
· The principal types
· Modeling of key components
· The IEEE Models
· Common pitfalls in the excitation system models
5. Tuning Excitation Systems/Governors/Stabilizers
· Very brief theory
· More on detecting bad data (finding needles in haystacks)
· Illustrative case studies
6. Motor Modeling Synchronous motors
· Induction motors
· Induction motor performance
· Induction motor parameters and sources of data
· Use of capacitors in relation to motors
7. DC Transmission, Inverter, FACTS Modeling
· Thyristor based devices
· DC transmission
· Controlled rectifier loads
· Gate Turn-off and transistor based devices
· Adjustable speed drives
· Controllable transmission system devices (FACTS)
· The data needed for modeling
8. Modeling Other Components and Effects
· Stabilizers/Relays/Induction motors/Governors
· Shaft torsional effects
· Self Excitation effects
9. Building a Practical Dynamic Simulation Model
· Getting an initial data base (its a haystack)
· Getting going when data does not exist
· Valid and invalid initial conditions
· Notable problems (there are thorns in those haystacks)
· Finding the problems (needles in the haystack)
10. Interpreting the Results
· Recognizing valid and invalid dynamic results
· Transient stability
· Asymptotic stability
· Failure to maintain voltage
11. Testing to get Dynamics Data
· Caveats, realities of power plants, and limitations
· Component / system tests
· Test condition / normal service tests
· Test techniques
Table: brkr
BRKR - BREAKER TABLE DESCRIPTION
HEADING MEMBER
FROM see Note 1 Bus number (integer from 1 to 9999999)
FNAME see Note 1 Bus name, an alphanumeric string containing 1 to 12
characters and at least one non-numeric character within
quotation marks
FKV see Note 1 Base kV voltage
TO see Note 2 Bus number (integer from 1 to 9999999)
TNAME see Note 2 Bus name, an alphanumeric string containing 1 to 12
characters and at least one non-numeric character within
quotation marks
TKV see Note 2 Base kV voltage
ST .st Breaker status 1=in service; 0=out of service
TYP .typ Breaker type (0 automatic, 1 manual)
ID .id Breaker Identifier
LID .lid Long Id (EMS ID)
Note 1: to reference the "from" bus identifier in epcl use the following:
from bus number FROM @fr = brkr[].ifrom
busd[@fr].extnum
from bus name FNAME busd[@fr].busnam
from bus base kv FKV busd[@fr].basekv
Note 2: to reference the "to" bus identifier in epcl use the following:
to bus number TO @to = brkr[].ito
cbusd[@to].extnum
to bus name TNAME busd[@to].busnam
to bus base kv TKV busd[@to].basekv
Table: qtable
GENERATOR REACTIVE CAPABILITY TABLE DESCRIPTION
HEADING MEMBER
BUS-NO see Note 1 Bus number of generator bus
NAME1 see Note 1 Bus name, an alphanumeric string containing 1 to 12
characters and at least one non-numeric character within
quotation marks
KV1 see Note 1 Base kV voltage
ID .genid 2 character generator identifier enclosed in quotation
P1 .p[0] Generator power output (MW)
Qmx1 .qmx[0] Generator maximum reactive power (MVAr)
Qmn1 .qmn[0] Generator minimum reactive power (MVAr)
P2 .p[1] Generator power output (MW)
Qmx2 .qmx[1] Generator maximum reactive power (MVAr)
Qmn2 .qmn[1] Generator minimum reactive power (MVAr)
… …
P20 .p[19] Generator power output (MW)
Qmx20 .qmx[19] Generator maximum reactive power (MVAr)
Qmn20 .qmn[19] Generator minimum reactive power (MVAr)
For more information on Generators read Chapter 3 - Section 3.5.4.
For a complete listing of this table see Table 5.2 - Qtable Data.
Note 1: to reference the generator bus identifier in epcl use the following :
generator bus number BUS-NO @gbus = qtable[].ibgen
busd[@gbus].extnum
generator bus name RNAME busd[@gbus].busnam
generator bus base kv RKV busd[@gbus].basekv
Note 2: P values must be in ascending sequence.
Table: subst
HEADING MEMBER
ST-NO .extnum Substation number (integer from 1 to 9999999)
NAME name Substation name, an alphanumeric string
containing 1 to 32 characters and at least one non-
numeric character within quotation marks
LAT .latitude Substation geographical coordinate (latitude)
LONG .longitude Substation geographical coordinate (longitude)
RDC .rdc Substation ground resistance
Table: vsc
HEADING MEMBER
ACBUS see Note 1 AC bus number ( from 1 to 9999999)
ACNAME see Note 1 Alphanumeric string containing 1 to 12 characters
and at least one non- numeric character within
quotation marks
ACKV see Note 1 AC bus base voltage (kV)
DCBUS see Note 2 DC bus number ( from 1 to 9999999)
DCNAME see Note 2 Alphanumeric string containing 1 to 12 characters
and at least one non- numeric character within
quotation marks
DCKV see Note 2 DC bus base voltage (kV)
ID .id Two character circuit identifier enclosed in
quotation marks
SYS .dcsys DC system number
ST .st VS conv. status 1=in service; 0=out of service
TP .type Converter type 1=rectifier; 2=inverter
DCMD .dcmode DC control mode
ACMD .acmode AC control mode
DCSET .dcset
ACSET .acset
PAC .pac AC real power at ac bus side of converter
QAC .qac AC reactive power at ac bus side of converter
IDC .idc Converter DC current ( amps )
VDC .vdc Converter DC voltage ( kV )
AREA .area Converter area number ( from 0 to 999 )
ZONE .zone Converter Zone number ( from 0 to 999 )
LONG_ID .lid Long Id
Note 1: to reference the "from" AC bus identifier in epcl use the following:
AC bus number ACBUS @acbus = vsc[@i].acbus
busd[@acbus].extnum
AC bus name ACNAME busd[@acbus].busnam
AC bus base kv ACKV- busd[@acbus].basekv
Note 2: to: reference the "to" DC bus identifier in epcl use the following:
DC bus number DCBUS @dcbus = vsc[@i].dcbus
vsc[@dcbus].extnum
DC bus name DCNAME vsc[@dcbus].busnam
DC bus base kv DCKV- vsc[@dcbus].basekv
For a complete listing of this table see Table 5.2 - VS Converter Data
Function flowcalcd()
Form: <ret> = flowcalcd(<rating>)
Arguments: <rating> rating to be used in calculating per unit loading
(Valid entries are 1-8)
<ret> return value
The flowcalcd() command calculates the flow on every branch of the system and places
these results in the flox[] table. The flows are calculated using the “dc” load flow
modeling assumptions. The qualities calculated are:
flox[*].p branch real power flow, MW
flox[*].q not calculated
flox[*].mva branch MVA flow ( = p flow)
flox[*].amps not calculated
flox[*].rate rated current (for lines) Amps rated MVA (for transformer)
flox[*].pul branch per unit loading
flox[*].from from bus external number
flox[*].to to bus external number
flox[*].flag 0 for line, 1 for transformer
flox[*].ck branch circuit identifier
flox[*].mwloss branch real power loss, MW (if dcloss flag set to 1)
flox[*].mvloss not calculated
flox[*].from, flox[*].to, and flox[*].ck identify the branch and are the means by which a
branch is found in the flox[] table. flox[*].flag identifies the branch as a line or
transformer. The flox[] table contains an entry for each branch in each direction. The
flows are calculated at the "from" bus of each entry with a positive value for p indicating
flow towards the "to" bus.
The flox[] table is sorted according to flox[*].from and flox[*].to. While it is often
convenient to work through the table in this order, it is equally often necessary to find a
specific branch in the table. This is best done with the flow_index() function, as in the
following example.
Example:
/* find “dc” flows of all transformers in area 8 */
@ret = flowcalcd(1)
for @k = 0 to casepar[0].nbrel-1
if(busd[@from].area = 8)
.
. /* report value of flox[@k].p */
.
endif
Function flowd()
Form: <ret> = flowd (<flag>, <from>, <to>, <ck>, <type>)
Arguments: <flag> 0 if <from>, <to> are bus index numbers
1 if <from>, <to> are external numbers
<from> branch from bus
<to> branch to bus
<ck> Two character branch circuit identifier
<type> 1 to return MW flow also in ret[0].number[0]
4 to return Amp flow also in ret[0].number[5]
6 to return MVAR loss also in ret[0].number[7]
<ret> return value
Note: The effective branch table must be created before flowd is used (executing flowcalcd()
creates this table).
The flowd() function should only be used after solution of the network using the “dc” load flow
method. Is similar to flow() but uses the modeling assumptions used in the “dc” load flow
(branch R = B = 0., all Vs = 1.) The flowd() function returns the flow or loss at the from bus
end of the designated branch as specified by the <type> argument. If <flag> is non-zero
<from> and <to> are external bus numbers; if <flag> is zero <from> and <to> are bus indexes.
flowd() is useful when the flows or losses are needed for a limited number of branches, but is
not efficient if the flows are needed for a large number of branches. If flows throughout the
system are needed, it is much better to use the EPCL flowcalcd() function which evaluates all
branch flows very efficiently, and then to use the flow_index() function to find the required flow
entry in the flox[] table.
Caution: Check the status of the branch/transformer prior to calling this function.
Example:
/* calculate “dc” flow for every line in area 8 */
@area = 8
for @i=0 to casepar[0].nbrsec-1
if (secdd[@i].area = @area)
@from = secdd[@i].ifrom
@to = secdd[@i].ito
$ck = secdd[@i].ck
@mwflow = flow(0, @from, @to, $ck, 1)
logterm("from",busd[@from].extnum:5:0)
logterm("to",busd[@to].extnum:5:0)
logterm("ck",$ck:2:0,"mw flow=",@mwflow:7:3,"<")
Function ifcalc()
Form: <ret> = ifcalc()
Arguments:
ifcalc() executes calculations of flows on bface and iface total flows. ifcalc() should be
called after calling soln or buildeff(0) or buildeff(1).
Function name_index()
Form: <ret> = name_index(<type>,<name>,<caseFlag>)
Arguments: <type> number of table
7 for area
8 for zone
15 for interface
16 for owner
23 for substation
24 for ba
25 for block
26 for plant
27 for injection group
45 for voltage group
49 for data maintainer
<name> Name of an element in the table specified by type
<caseFlag> caseFlag is 0 if name is case sensitive; caseFlag is 1 is
name not case sensitive
<ret> return value
The name_index() functions returns the index of the record that describes a designated
component of the power system. name_index() returns -1 if the system component specified
by the arguments does not exist.
Example:
/*Example to return the index of data maintainer
“WECC”*/
@table = 49 /* 49 = data maintainer */
@k = name_index( @table,”WECC”, 0)
if( @k < 0)
/* Report an error and act accordingly */
endif
/* Use the value of @k for further processing */
Function readraw ()
Form: @ret = readraw(“file”,multisection)
Arguments: file Raw file name in double quotes, no default.
multisection When multisection is 1, mutli-section lines in raw
file are represented by PSLF multi-section line
model, buses along the multi-section are deleted,
elements at the buses are moved to the from bus.
when multisection is 0, multi-section lines in raw
files are ignored. All sections of the multi-section
lines are treated as regular branch. By default, the
multisection is 0.
readraw() is used to read PSSE raw files in versions 33 and above. The function returns 0 on
success and non-zero value on failure.
Example 1:
@ret = readraw("t3ps.raw") /* sample system */
Function renumrec ()
The function is used to renumber a bus, re-route a branch or move a load/generator/shunt/svd from one bus to another
bus. Note that all strings are enclosed in double quotes.
Form: <ret> =renumrec(<flag>,<type>,<element identifier>,<newbus> )
Arguments:
<flag> flag is an integer. If flag is 1, element identifier is specified by external
numbers. If flag is 2, element identifier is specified by bus names
when the names flag of 2 is selected , eight/twelve character bus name and
the basekv is specified within double quotes
<type> type is number or the valid name of table in double quotes (e.g. “secdd”).
The type option determines the format of element identifiers.
type =0 or When type is 0, the function is used to renumber a bus.
“busd ”
<element identifier> = <ibus>
ibus is bus number or combination of bus name and bus basekv (e.g. “GEN
13.8”). When the flag of 2 is selected, the eight/twelve character name and
the basekv are specified within double quotes. When the flag is 1, the ibus
is external bus number.
<newbus> is the new bus number, can not be combination of bus name and
bus basekv.
Return codes:
0 success
1 insufficient input
2 bus number not found when using combination of bus name and
basekv
3 negative bus number
4 bus not found
5 new bus number is not available
Example:
@ret = renumrec(1,0,100, 110)
@ret = renumrec(2,0,”GEN 13.8”, 110)
Both functions renumber the bus 100 or GEN 13.8KV to 110.
type =1 or When type is 1, the function is used to re-route a branch and move the
“secdd” branch from ibus which is defined in the function to the new bus. If the
branch is a multi-section line, all sections are moved together.
< element identifier > = (<ibus> <jbus> <id> <scd>)
ibus and jbus are from bus and to bus of the branch section. When the
names flag is selected, the eight/twelve character name and the basekv is
specified within double quotes.
id is the circuit id, “1 ” by default.
Return codes:
0 success
1 insufficient input
2 branch bus out of range
3 branch bus does not exist
4 branch does not exist
Example;
@ret = renumrec(1,1,100, 200, “1 “, 110)
The function reroute the branch from bus 100 to bus 110, the new branch is
from bus 110 to 200.
type =2 or When type is 2, the function is used to re-route a two winding or three
“tran ” winding transformer and move the transformer from ibus which is defined
in the function to the new bus.
< element identifier > =(<ibus> <jbus> <id> <kbus>)
ibus and jubs are from bus and to bus of the transformer, kbus is the
tertiary bus of a three winding transformer, -1 for a two winding
transformer. When the names flag is selected, the eight/twelve character
name and the basekv is specified within double quotes.
id is the circuit id, “1 ” by default .
Return codes:
0 success
1 insufficient input
2 transformer bus out of range
3 transformer bus does not exist
4 transformer does not exist
Example;
@ret = renumrec(1,2,100, 200, “1 “, -1,110)
The function reroute the two winding transformer from bus 100 to bus 110,
the new transformer is from bus 110 to 200.
type =3 or When type is 3, the function is used to move a generator from ibus to the
“gens ” new bus. The generator id remains the same if there are no duplicate ids at
the new bus, otherwise a new id is assigned to the generator. Other tables
refer to the generator are updated correspondingly.
< element identifier > =(<ibus> <id>)
ibus is generator bus number or combination of bus name and bus basekv
(e.g. “GEN 13.8”). When the names flag is selected , the eight/twelve
character name and the basekv is specified within double quotes.
id is the generator id, “1 ” by default .
Return codes:
0 success
1 insufficient input
2 generator bus out of range
3 generator bus does not exist
4 generator does not exist
Example;
@ret = renumrec(1,3,100, “1 “,110)
The api moves generator from bus 100 to 110.
type =4 or When type is 4, the function is used to move a load from ibus to the new
“load ” bus. The load id remains the same if there are no duplicate ids at the new
bus, otherwise a new id is assigned to the load.
< element identifier > =(<ibus> <id>)
ibus is load bus number or combination of bus name and bus basekv (e.g.
“GEN 13.8”). When the names flag is selected , the eight/twelve character
name and the basekv is specified within double quotes.
id is the load id, “1 ” by default .
Return codes:
0 success
1 insufficient input
2 load bus out of range
3 load bus does not exist
4 load does not exist
Example:
@ret = renumrec(1,4,100, “1 “,110)
The api moves load from bus 100 to 110.
type =5 or When type is 5, the function is used to move a bus shunt from ibus to the
“shunt” new bus. The shunt id remains the same if there are no duplicate ids at the
new bus, otherwise a new id is assigned to the shunt.
< element identifier > =(<ibus> <id>)
ibus is shunt bus number or combination of bus name and bus basekv (e.g.
“GEN 13.8”), and the eight/twelve character name and the basekv is to
specified within double quotes.
id is the shunt id, “1 ” by default .
Return codes:
0 success
1 insufficient input
2 bus shunt bus out of range
3 bus shunt bus does not exist
4 shunt does not exist
Example:
@ret = renumrec(1,5,100, “1 “,110)
The api moves shunt from bus 100 to 110.
type =6 or When type is 6, the function is used to move a svd from ibus to the new
“svd ” bus. The svd id remains the same if there are no duplicate ids at the new
bus, otherwise a new id is assigned to the svd.
< element identifier > =<ibus> <id>
<ibus> is svd bus number or combination of bus name and bus basekv
(e.g. “GEN 13.8”). When the names flag is selected, the eight/twelve
character name and the basekv is specified within double quotes.
id is the svd id, “1 ” by default .
Return codes:
0 success
1 insufficient input
2 svd bus out of range
3 svd bus does not exist
4 svd does not exsit
Function sstools()
Form: @ret = sstools(mode, ”casefile”)
Arguments: mode run mode of sstools
When mode is 100, the function reads and processes the file
specified by casefile. When sstdyt.mode is 0, the steady
state contingency analysis tool (SSTOOLS) is executed;
when sstdyt.mode is 1, the dynamic contingency analysis
tool (DYTOOLS) is executed. The sstdyt.mode is 0 by
default.
Other modes are currently disabled.
casefile The name of cases file.
ret Return code of the function.
0: no error
The function is used to run all cases defined in case file with either SSTOOLS or DYTOOLS.
Example 1:
/*epcl to run steady state contingency analysis tool (SSTOOLS)*/
sstdyt[0].mode=0
@ret = sstools(100,”t3ps.cases”)
Example 2:
/*epcl to run dynamic contingency analysis tool (DYTOOLS)*/
sstdyt[0].mode=1
@ret = sstools(100,”t3ps.cases”)
Function tictoc()
Form: <ret> = tictoc(<flag>)
Arguments: <flag> 0 to start the stop watch timer
1 to stop the stoop watch timer
<ret> 0 : when invoked with flag set to 0
Elapsed time in seconds when flag is set to 1.
tictoc() function is a stop watch function to return the elapsed processor time in seconds.
The stop watch timer can be started by calling the function with argument 0. The timer can be
stopped by calling the function with argument 1. If the timer is stopped before it has been
started, the function will return the elapsed time since the instance of PSLF was started.
Example 1:
@ret = tictoc(0) /* start the stop
watch timer */
@ret = soln()
@time = tictoc(1) /* stop the stop
watch timer */
logterm("Elapsed time to solve this
case is ",@time,"<")
PSLF commands available as EPCL functions
acca()
actr( "report", "input" )
bint()
com1( "report" )
com2( "report" )
com3( "report" )
data()
date( "report" )
dchk()
dclf()
dctr( "report", "input" )
dele( "level" )
difs("report","base","chng","tol","tolflg","catno","catname","catvar")
disp( "report" )
drpl("file")
drpr()
dsst()
dswtch( "s", "level", "time", "sign", "brkr", "mem" )
ecab("file")
ecmf( "report", "page", "tie", "date", "ver" )
econd( "file" )
editdy("name") name=edds, edic, eder, edmd
editec("name") name=grpd, gend, curv, area
editlf("name") name=busd., secdd., tran., tap., gens., load., shunt., svd., bface., area., zone.,
iface., dcb., dcl.,dcc., ped.
editsc("name") name=busd0, secdd0, tran0, mut0, gens0, load0, shunt.0 svd0
edituser( "name" )
eepc( "report", "page", "tie", "date", "ver" )
eexa( "file" )
efax( "report", "infile" )
epcl("file")
epco( "report", "page", "tie", "date", "ver" )
epole("file")
epti( "report", "page", "tie", "date", "ver" )
eqiv( "report", "bzmax", "genmin", "shmin", "bound")
ewsc( "report", "page", "tie", "date", "ver" )
exec()
exitpslf()
flowcalc( "rateno" )
getexa( "file", "append" )
getexs( "file" )
getf( "file" )
getm( "file", "area" )
getmz( "file", "zone" )
grst()
help()
init( "chanfile", "report", "fix" )
isld( "report" )
isol( "report" )
iswtch( "s", "level", "time", "sign", "brkr", "mem" )
lflow()
losf()
loss( "report", "append", "select" )
mmil( "basis", "area", "report" )
olgr( "dfile" )
ordr()
outt( "report", "sort" )
outx( "report", "sort" )
parm( "option" ) option= sol, dis, check, fault, dynam, annot, select, path, colors, sort
plot( "keyword", "file") keyword=display, file, printer
rarea( "report", "append", "select")
rate( "report", "append", "select" )
rcab( "file" )
rcmf( "report", "flag", "filter" )
rcond( "file" )
rdws( "file", "report", "dyd" )
rdyd( "file", "report", "aflag", "sflag", "rflag" )
rdyp( "file" )
rede( "file" )
redi( "file" )
redp( "file" )
repc( "file", "flag" )
rexa( "file", "flag" )
rmil( "file" )
rpco( "file", "flag", "filter" )
rpol( "file" )
rpti( "file", "flag" )
rscp( "file" )
rseq( "file", "flag" )
rtiea( "report", "append", "select")
rtiez( "report", "append", "select")
run()
rvolt( "report", "append", "select")
rwsc( "file", "flag" )
rzone( "report", "append", "select")
savexa( "file" )
savexs( "file" )
savf( "file" )
scal( "report", "from", "to", "flag", "pl", "ql", "pg", "qg" )
scan( "bus id", "report" )
scap()
scsc()
scsf( "file", "fault", "mon1...8")
sel_plot( "channo", "cmin", "cmax" )
sele( "flag" )
soln( "fs" ) set "fs" = 2 for Decoupled solution
sort( "table", "order", "direction" )
sortext()
stmem( "et" )
summ( "report", "append" )
tarea()
tflow()
titl( "report" )
tlc()
tmism()
tgcd()
towner()
tphsf()
trate()
ttiea()
ttiez()
tzone()
uedt( "table" )
vlos()
wdyd( "file" )
wdyp( "file" )
wede( "file" )
wscp( "file" )
wseq( "file" )
Model Name: wlwscc
alwscc
blwscc
zlwscc
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
If p4 or q4 is non-zero
P = Po (p1v2 + p2v + p3 + p4 (1 + lpd f))
Q = Qo (q1v2 + q2v + q3 + q4 (1 + lqd f))
Po and Qo are the total load at the bus at nominal voltage and frequency. p1 through
q4 are fractions of the total nominal load having constant impedance, constant
current, and constant power characteristics.
p1 + p2 + p3 + p4 = 1
q1 + q2 + q3 + q4 = 1
b) The blwscc model implements the load characteristic for the specified load identified
by bus number and id in the invocation.
The wlwscc model implements the load characteristics for all loads at all buses.
The alwscc model implements the load characteristic for all loads at all buses in a
designated area.
The zlwscc model implements the load characteristic for all loads at all buses in a
designated zone.
The invocation of alwscc and zlwscc should use the first bus that has load in the area
or zone being addressed but this bus identifier is used as a check only; the area or
zone must be identified by number in the first parameter.
In blwscc this parameter is the time constant of a filter to smooth the frequency
signal. This parameter should normally be zero because frequency is filtered in the
network solution and this filtering is normally adequate. A non-zero filter time
constant may be used in blwscc either to approximate a delayed load response, or to
accommodate a troublesome network solution.
In alwscc and zlwscc the first parameter must be the number of the area or zone,
respectively, to which the model is assigned.
d) Each execution of one of these models for a bus overrides the effects of prior
executions at the same bus. You can, therefore, use wlwscc to set a load
characteristic for the whole system, then alwscc or zlwscc to override the system-
wide characteristic for selected areas or zones, then blwscc to apply specific
characteristics to a few individual buses. These models must be called in the order:
wlwscc
alwscc and/or zlwscc
blwscc
e) The load characteristics implemented by alwscc, blwscc, wlwscc, zlwscc override the
load characteristic implied by the constant MVA, constant current, and constant
impedance entries in the load data table. The initialization of alwscc, blwscc, zlwscc
changes the entries in the load table to match the initial condition load given by p1
through q4 to the initial condition load given by the load flow.
Therefore, the load flow data should not be saved into the initial condition load flow's
.sav file after the init command has been executed. Instead, the initialized network
condition should be saved in a separate .sav file with the savn command.
f) These models have special behavior that must be recognized in the management of
dynamic simulation jobs. These models handle the voltage dependence part of the
load characteristic by modifying the load parameters in the load flow data base; that is
THESE MODELS MODIFY THE load[] DATA TABLE. This modification is made
in the INIT command. The load flow working case should be saved over the original
load flow history file that was used to initialize the dynamic simulation only with
great care. IF IN DOUBT - DO NOT USE SAVF AFTER USING INIT. When the
frequency dependence terms of the load model are unused (lpd, lpq = 0 or p4,q4 = 0)
it is not necessary to execute these load models in the dynamic simulation after
completion of the INIT command. INIT recognizes this and turns off all of these load
models that do not use their frequency dependence terms. (The model status flags are
set to 0 in the EDDS table.) This causes the WDYD command to list these models as
"out-of-service". Therefore if WDYD is executed after INIT it may be necessary to
edit the resulting ".dyd" file to take references to these models out of the "out-of-
service models" list that appears at the end of the ".dyd" file.
Output Channels:
Record
Level Name Description
none
Block Diagram:
Inputs:
Parameters:
EPCL Default
Variable Data Description
Notes:
If p4 or q4 is non-zero
P = Po (p1v2 + p2v + p3 + p4 (1 + lpd f))
Q = Qo (q1v2 + q2v + q3 + q4 (1 + lqd f))
Po and Qo are the total load at the bus at nominal voltage and frequency. p1 through
q4 are fractions of the total nominal load having constant impedance, constant
current, and constant power characteristics.
p1 + p2 + p3 + p4 = 1
q1 + q2 + q3 + q4 = 1
b) The blwscc model implements the load characteristic for the specified load identified
by bus number and id in the invocation.
The wlwscc model implements the load characteristics for all loads at all buses.
The alwscc model implements the load characteristic for all loads at all buses in a
designated area.
The zlwscc model implements the load characteristic for all loads at all buses in a
designated zone.
The invocation of alwscc and zlwscc should use the first bus that has load in the area
or zone being addressed but this bus identifier is used as a check only; the area or
zone must be identified by number in the first parameter.
In blwscc this parameter is the time constant of a filter to smooth the frequency
signal. This parameter should normally be zero because frequency is filtered in the
network solution and this filtering is normally adequate. A non-zero filter time
constant may be used in blwscc either to approximate a delayed load response, or to
accommodate a troublesome network solution.
In alwscc and zlwscc the first parameter must be the number of the area or zone,
respectively, to which the model is assigned.
d) Each execution of one of these models for a bus overrides the effects of prior
executions at the same bus. You can, therefore, use wlwscc to set a load
characteristic for the whole system, then alwscc or zlwscc to override the system-
wide characteristic for selected areas or zones, then blwscc to apply specific
characteristics to a few individual buses. These models must be called in the order:
wlwscc
alwscc and/or zlwscc
blwscc
e) The load characteristics implemented by alwscc, blwscc, wlwscc, zlwscc override the
load characteristic implied by the constant MVA, constant current, and constant
impedance entries in the load data table. The initialization of alwscc, blwscc, zlwscc
changes the entries in the load table to match the initial condition load given by p1
through q4 to the initial condition load given by the load flow.
Therefore, the load flow data should not be saved into the initial condition load flow's
.sav file after the init command has been executed. Instead, the initialized network
condition should be saved in a separate .sav file with the savn command.
f) These models have special behavior that must be recognized in the management of
dynamic simulation jobs. These models handle the voltage dependence part of the
load characteristic by modifying the load parameters in the load flow data base; that is
THESE MODELS MODIFY THE load[] DATA TABLE. This modification is made
in the INIT command. The load flow working case should be saved over the original
load flow history file that was used to initialize the dynamic simulation only with
great care. IF IN DOUBT - DO NOT USE SAVF AFTER USING INIT. When the
frequency dependence terms of the load model are unused (lpd, lpq = 0 or p4,q4 = 0)
it is not necessary to execute these load models in the dynamic simulation after
completion of the INIT command. INIT recognizes this and turns off all of these load
models that do not use their frequency dependence terms. (The model status flags are
set to 0 in the EDDS table.) This causes the WDYD command to list these models as
"out-of-service". Therefore if WDYD is executed after INIT it may be necessary to
edit the resulting ".dyd" file to take references to these models out of the "out-of-
service models" list that appears at the end of the ".dyd" file.
Output Channels:
Record
Level Name Description
none
Block Diagram:
Bus Frequency Effective Load
zlwscc
alwscc
Bus Voltage blwscc P+jQ
wlwscc
Model Name: shaft5
Description
Prerequisites:
Inputs:
Parameters:
EPCL Default
Variable Data Description
hex 0.0
hg 0.0
ht1 0.0
ht2 0.0
ht3 0.0
dex 0.0
dt1 0.0
dt2 0.0
dt3 0.0
kex 0.0
kgt1 0.0
kt12 0.0
kt23 0.0
pf1 0.0
pf2 0.0
Notes:
Output Channels:
Record
Level Name Description
none
Block Diagram:
EPCL:
Arguments: none
The Date format file is available upon request. Please contact pslf-support@ge.com to obtain the current data format.
THE PSLF DYNAMIC SIMULATION DATA EXPORT/IMPORT FILE
PSLF Version 21.0_07 – May 2019
0. CONDITIONS OF DISCLOSURE
The PSLF program system is the unpublished proprietary work of General Electric International, Inc. (GEII) it includes valuable trade
secrets of GEII and its unauthorized distribution would cause severe harm to GEII. GEII is the only party authorized to distribute these
programs and their reference manuals to other parties. This program system is the property of GEII and it may be used only by the
parties that have been licensed to do so by GEII.
Non-users working with PSLF Licensees may obtain copies of the Dynamic Simulation Data Export/Import document by contacting
GEII (pslf.sales@ge.com) and signing a Non-Disclosure Agreement with GEII.
1. GENERAL
The PSLF dynamic simulation data export/import commands use ASCII data files whose name suffix is ".dyd". These files are
intended for the exchange of data between computer programs, not for interfacing with human beings. The arrangement of data in the
records of these files is intended to be efficient and convenient for the PSLF program and not necessarily for people. Users of PSLF
will normally create new data records and ".epc" files through the data editing facilities of PSLF and export the new data with the
PSLF command, WDYD. It is not intended that data will be typed through simple text editors into files of this ".dyd" format (other
than small data patches in 'emergency" situations). Users of load flow programs other than PSLF may need to use translation
programs to handle ".dyd" data files of any significant size.
The dynamic data file contains data items in free-format records. Data items in each record are separated from one another by blanks;
a string of several blanks is equivalent to a single blank, hence multiple blanks may be used to line up columns and otherwise to
improve the appearance of the file.
Data records may be continued by placing a / character at the end of the "incomplete" line. Any number of continuations may be
used in a record.
A file may contain comment records anywhere. Comment records are ignored when the file is read by the RDYD command. Each
comment record must have a # as its first character, and may contain any text after the # character. The # character may not be
preceded by blanks.
Blank lines are not permitted within the file.
2. DATA FILE STRUCTURE
The dynamic simulation data file consists of:
The keyword record netting must immediately precede the netting records.
The keyword record list of ... must follow the last model data record and must, in turn, be followed by the out-of-service model
records.
The keyword records lodrep and models may be placed anywhere in the file; they have no effect on the interpretation of the file by
the program. These two keyword records are useful as markers to assist in the searching of the file with conventional text editors.
For files written out by the WDYD command, comments are inserted at the end of the file with templates for each of the models used
in the file. The template shows the names and sequence of parameters for the model.
3. MODEL DATA RECORDS
The dynamic simulation data file must contain one record for each model to be used in the simulation. Each record has the form:
<mod> <n1> <na1> <kv1> <i1> <n2> <na2> <kv2> <i2> <s> : [r] [mva=n] <params>
or (for turbine-governor models):
<mod> <n1> <na1> <kv1> <i1> <n2> <na2> <kv2> <i2> <s> : [r] [mwcap=n] <params>
where
<mod> Model name as given in the model description
<n1> External bus number of primary bus to which this model applies
<na1> Name of bus <n1>, in quotes
<kv1> Base voltage of bus <n1>
<i1> Identifier of component, e.g. generator, to which model pertains, in
quotes
<n2> External bus number of secondary bus, e.g. “to” bus for branch-
connected models) to which this model pertains
<na2> Name of bus <n2>, in quotes
<kv2> Base voltage of bus <n2>
<i2> Identifier of secondary component, or of line or transformer, to
which the model applies, in quotes
<s> Section number of branch section to which the model applies
[r] Optional record level for this model. This entry must have the form
#n, where n is a single digit from 1 to 9.
[mva=n] Optional generator MVA base. This entry is allowed for generator
models only. This entry must have the form mva=n, where, n is the
generator mva represented by this unit. No spaces are allowed in this
option. This entry is read only if <rflag> or Read generator mva
bases...: has a value of 1. (If omitted, generator MVA base from
load flow is used.)
[mwcap=n] Optional turbine MW capability. This entry is allowed for turbine-
governor models only. This entry must have the form mwcap=n,
where n is the base MW value to be used for certain of the turbine-
governor parameters. No spaces are allowed in this option. This
entry is read only if <rflag> or Read generator mva bases...: has a
value of 1 (If omitted, generator MVA base is used.)
<params> Values of the model parameters in the order given in the model
description. Each value may be preceded by a parameter name (in
quotes) which is informational only.
Note: There is provision for a third and fourth bus description in the invocation after the section number. These are used by a few
models to specify monitored buses. If needed, these are described on the model’s data sheet.
The entries, including the colon, must be separated by spaces. If the record is too long for one line it may be "continued" to the next
by placing a / at the end of the incomplete line.
The entries ahead of and including the colon are referred to hereafter as the invocation. The invocation for each model record must
be exactly as specified for the model on it's data sheet. No defaults are permitted in the invocation. Note that the invocation entries
<n2> through <s> are not always requried; the invocation is, therefore, of variable length.
The <params> entries must be a complete list of values of the model's parameters in the exact order specified on the model's data
sheet. In some cases, default values for will be supplied for some parameters at the end of the list if they are omitted.
The [r] entry may be omitted.
The [mva=n] entry is optional for models generator-type models and must not be present for other models.
4. OUT-OF-SERVICE MODEL RECORDS
A model whose data record is included in the file may be declared to be unused by including a corresponding out-of-service model
record in the file. This allows the file to contain model data records describing different alternative pieces of equipment that can be
used in a given place in the power system. For example, a data file for a study of two alternative types of excitation might include
two different model data records having different model names, identical unit identification up to the :, and different parameter lists.
One of these would be indicated to be active by the absence of an out-of-service model record while the other would be indicated to
be inactive by an out-of-service model record.
Each out-of-service model record contains the invocation items (up to the colon) for a single model.
5. NETTING RECORDS
Netting records may be used to instruct the program to treat generators as negative load. Each netting record except the last must
contain five entries of the form
<n> <"name"> <bkv>
where <n> = bus number
<"name"> = bus name
<bkv> = bus base voltage
Either <n> or <"name"> and <bkv> must be present. The ! character may be used in place of <n>, <"name">, of <bkv> provided
that sufficient identification of the bus remains.
The last netting record may contain less than five entries.
All on-line generators at the specified bus will be converted to negative load. Any specified load model covering this bus will be
applied to this load.
Command: ecmf (from exim:Export CMF)
EPCL: @return = ecmf( "<file>", "<page>","<tie>","<date>",
"<ver>")
Arguments: <file> Name of file or printer to receive output
<page> Flag to indicate whether to format the page
<tie> Export tie lines flag
<date> Export by in-service date and retirement date
<ver> Version number default to 0
Function: Exports load flow data in IEEE (1966) Common Format
Prerequisites: Valid load flow data in working case
Export CMF exports the load flow case in the working tables in IEEE Common Format Export CMF is reached from
the Export CMF sub-menu.
Several assumptions are made in manipulating a load flow case to IEEE format. Most of these assumptions are fairly
clear; for example:
· Line connected shunt devices are transferred to the adjacent bus and their admittances are added to the
collected admittance of bus-connected shunts at that bus.
· The load values entered in each bus data record give the total of all load that is connected at that bus
and in service. Constant current load, if present in the PSLF load flow case, is included by treating it as
constant MVA load equal to the MVA consumed by the constant current load at the present bus voltage;
the load flow case must be solved for this treatment of constant current load to be meaningful.
· The shunt admittance values entered in each bus data record include the total of all shunts that are
connected at the bus and in service.
Other assumptions must be considered with care:
· Line section numbers are ignored by Export CMF. Hence, the IEEE export file will contain a line
record for each section of a multi-section line as if the line sections are in parallel, rather than in series.
· Shunts on a section line are transferred to the terminal buses regardless of the position of the section
within the line.
· To avoid uncertain results, shunts on lines should have identifiers restricted to
f if connected at a lines "from" end
t if connected at a lines "to" end
· Transformers are reduced to their equivalent in IEEE format; if the secondary winding fixed tap is not at
nominal value, the Transformer impedance value placed in the IEEE file is not identical to the value in
the PSLF working table.
Because the level of modeling detail covered by the IEEE Common Format is less comprehensive than that of PSLF, a
significant amount of data can be lost when an IEEE file is made. If a load flow model is imported originally from an
IEEE Common Format file and is not changed within PSLF, Export CMF should reproduce the original file exactly
except with respect to bus names. If the model came originally from other sources, a "round trip" of export by Export
CMF and re-import with Read CMF cannot be expected to give a final model that is the same as the original.
A "round trip" made with Read CMF followed by Export CMF will usually change the Bus Name field of the IEEE
Common Format data, because Read CMF builds its bus name from the first 12 characters of the IEEE bus name plus
the base voltage field of the IEEE data. When this PSLF name is returned to IEEE format, the bus base voltage will
appear both in the last 4 columns of the bus name and in the base voltage field.
The page format flag when set to 1, outputs column headings at the top of each page. This is used for documenting a
case. If you are sending the file to another user do not use this option.
If the tie line flag is set to 1, Export CMF exports all the branches and transformers that are tie lines. This is only
important when the selective output flag is on. When a case is exported with the selection flag on the far-end buses will
not be exported, therefore importing the same case will ignore those tie line records.
The date value is in the form mmyy. For example, July 1999 is 0799 and August 2005 is 0805. Any year value from 00
to 49 is considered 2000 to 2049 and 50 to 99 is considered 1950 to 1999. If the in-service date is less than or equal to
the date value and the retirement date is greater than or equal to the date value, that record is exported.
The version number is always 0 is included only to be compatible with the other load flow format commands.
Command: epco (from exim:Export PECO)
EPCL: @return = epco( "<file>",
"<page>","<tie>", "<date>", "<ver>" )
Arguments: <file> Name of file or printer to receive output
<page> Flag to indicate whether to format the page
<tie> Export tie lines flag
<date> Export by inservice date and retirement date
<ver> Version number 23 (older) or 24 (new)
Function: Exports load flow data in 'PECO' format
Prerequisites: Valid load flow data in working case
epco exports the load flow case in the working tables in epco format.
epco recognizes the status of all components; the load and shunt power entries in each bus data record are the totals for
components that are in-service at the bus. Constant current load, if present in the PSLF load flow case, is included by
treating it as constant MVA load equal to the MVA consumed by the constant current load at the present bus voltage;
the load flow case must be solved for this treatment of constant current load to be meaningful.
Records are placed in the file for all generators, lines and transformers, with the status entry having the appropriate
value. Information on out-of-service loads and shunts does not go into the epco -format file.
Because the epco file format does not distinguish between individual load and shunt components, the identities of
individual loads and of their constant MVA, constant current, and constant admittance components and of bus-
connected shunts are lost in epco.
epco places a record in the file for each branch running between a given pair of buses, with each record appearing in
the file in the same position as it appears in the PSLF line or transformer table. Because the epco file format requires
records for parallel branches between a given pair of buses to be adjacent to one another in the data file, the user of
PSLF must ensure that
these records are adjacent in the PSLF data tables before executing epco.
epco combines the sections of each multi-section branch into a single equivalent branch and places a record for this
branch in the epco file. The identity and details of the individual branch sections are lost.
epco blanks all circuit id's to allow the Philadelphia Electric reader to process the incoming circuits more efficiently.
epco places the real part of shunt load in columns 73-80.
The page format flag when set to 1, outputs column headings at the top of each page. This is used for documenting a
case. If you are sending the file to another user do not use this option.
If the tie line flag is set to 1, epco exports all the branches and transformers that are tie lines. This is only important
when the selective output flag is on. When a case is exported with the selection flag on the far-end buses will not be
exported, therefore importing the same case will ignore those tie line records.
The date value is in the form mmyy. For example, July 1999 is 0799 and August 2005 is 0805. Any year value from 00
to 49 is considered 2000 to 2049 and 50 to 99 is considered 1950 to 1999. If the inservice date is less than or equal to
the date value and the retirement date is greater than or equal to the date value, that record is exported.
The version number is always 0 is included only to be compatible with the other load flow format commands.
Command: rpco (from exim:Import PECO)
EPCL: @return=rpco("<file>","<flag>","<filter>")
Arguments: <file> Name of file to read input from
<flag> New case flag 1=base case, 0=append data
rpco imports load flow data from a "Card Deck Image" file made by the Philadelphia Electric or PSAP load flow
programs. This file must contain, in the following order:
· Two heading records (usually "1" in one record and text in the second)
· A record containing 4 (the PECO/PSAP code for branch data)
· All branch data records
· A record containing 9999
· A record containing 5 (the PECO/PSAP code for bus data)
· All bus data records
· A record containing 9999
· A record containing 15 (the PECO/PSAP code for net interchange data)
· Net interchange data records
· A record containing 9999
rpco uses the PSLF string filter to extract bus names and base voltage values from the PECO/PSAP bus names. A
standard template file for the string filter named psap.tem is supplied with PSLF and resides in the \upslfXX directory
for windows and /usr/pslfXX directory for UNIX. rpco invites you to specify the name of your own template file; if
you enter a null file specification (by hitting <CR>) rpco uses <installation dir>default.tem.
Relational search and select (F1)
The F1 key allows you to specify a relation for subsequent use in response to the F2, F3, F4, keys(when the FIND: box
is active). F1 produces a box with the prompt Find:
Your response to the Find: prompt must be of the form <relation><value>.
<relation> May be one of
nothing Synonymous with equal
= Equal to
> Greater than
< Less than
<= Less than or equal to
<value> is a value of the same type as the data at the cursor location. If the cursor identifies a value with a decimal
point, value is a real number. If the cursor identifies a value with no decimal point, <value> is an integer and any
digits to the right of a decimal point in <value> are ignored. If the cursor identifies character data, <value> is
interpreted as a character string.
When working in a character column the find function will search either for an entry that matches the string entered in
response to F1 exactly, or for an entry that contains the string as a substring.
If the string entered in response to F1 does not end with a *, it will be found only if an entry in the column matches it
exactly.
If the string entered in response to F1 begins and ends with an *, it will be found if an entry in the column contains
that string, less the *, anywhere within the entry.
For example, if you type ES, and the column contains ESSEX, the ESSEX entry will not be found; but if you type ES*
the ESSEX entry will be found. If the desired string is not found, the find function will give you another chance by
setting both the search string and the column strings (internally) to lower case and search again.
Up to 20 searches are remembered, so upon subsequent F1's in any table you may hit the up or down arrow to cycle
through the list of previous searches.
The cell color will change to orange for all the valid occurrence of the search and control will move to the first valid
record. Subsequent searches can be done with the srchDn button/F2, srchUp button/F3 or select/F4. The clear
button will return all the orange colored cells to white. The red discard button is extremely dangerous and should be
use carefully. If you’re in the secdd table and would like to eliminate all out of service branches(eliminate means
remove from memory therefore it is desirable to save into a unique filename when this operation is completed)
1) first click the status under the secdd table
2) enter a 1 in the Find: box
3) click the discard button and click OK for the Discard Records? question
all the branches with a status on 1 are retained and all others are discard
The only difference between OK and Mark is which record is the active. Clicking Mark will mark the valid records
and leave control at the current record whereas OK moves to the first valid record. Cancel returns to the edit table
with no changes.
Sum Column Values ColTot or (F2)
Clicking F2 causes the editor to display the algebraic sum of all entries in the column .
The PGEN column is clicked anywhere under the column headings in any row to give the results below
The user may click any number of other columns to get additional column totals.
Another way to get column totals is to left mouse click the column heading to display the pull-down shown below and
select the last item called Column Total
Scan or F3
Hitting the Scan button or F3 will display a scan diagram of the current row
Fill a Column (F4)
Hitting the fill button on the bottom toolbar fills the, column in which the cursor is located with the value specified by
the fill panel shown below.
· Click Fill
· Type the desired value
· Click either Fill All, Fill Up, or Fill Dn
· OR type the number of rows to fill partial column
· OR Fill Marked Rows
Refresh Table or F5
Hitting the Refresh button or F5 will repopulate a table with all the data. To be used after a table has been filtered by
the user and they wish to view all data within an Edit table.
Insert a New Record with the Record Editor or F6
To add a record to a table, move the cursor to the appropriate row and click Insert (F6). Click "Insert above" or
"Insert below" as needed.
Use RecEd ( record editor) which displays the new record in its initial "empty" condition.
If you leave the record editor now the table contains the new record, in the desired position, and empty.
While it is sometimes advantageous to bypass filling in the record like this, it is normally much better to fill it in on the
initial execution of the record editor.
This way, the complete record is ready as soon as you return to the table
When a bus is to be added to the power system model its record must be added to the <bus> data table BEFORE data
records referring to that bus are added to the <line> or other records. When adding a record after the select (F1-select)
operation has been performed, use the down arrow to insert BELOW the present record.
Add a Record by Replication (F6)
To add a row with the same contents as the present row move the cursor to the appropriate row and hit F6. Then click
"Replicate one line" or "Replicate > one line" as needed.
Clicking "Replicate one line" adds a single copy of the current record adjacent to that record and leaves you in the
table editor.
It is normally advisable to alter one of the two resulting identical records immediately, either by direct entry of new
values in the table editor, or through the record editor.
Clicking "Replicate > one line" brings up a box in which you specify the number of new lines required.
This number of copies of the current record are then added adjacent to the current record and you are left in the table
editor.
Move/Add a Record by Copying (F6)
Records which have been deleted using the F7 Delete command, are copied into buffer space and "remembered" by
edit. These records may then be put-down one or more times above or below any row in the same table. For example,
you could use F7 to "pick-up" 4 rows from the secdd table, hit <ESC> .
Pick up another case using GETF, edit the secdd table, and use F6 "Put copy below" to copy the contents of the F7
buffer into the current case in memory.
It is important to save all changes made to a table before attempting the F7/F6 combination. To insure the contents of
the table are saved, escape out of the table and re-enter before clicking F7. If you are moving buses in the busd table,
DO NOT escape out of the table after F7. Put the contents of the buffer down with F6 THEN escape. Otherwise the
buses are deleted with F7 and every component identified at that bus will appear with a zero bus number.
Delete Records (F7)
To delete records from a table, move the cursor to the first record you want to delete, and click Delete Button or F7.
Click the delete lines section
A second panel is displayed to determine which items to delete or pick up. There are three possiblies 1) prior to hitting
Delete Button or F7 mark the rows to delete then just hit Delete Marked Rows and carriage return 2) enter a number
in Number of Rows: and it deletes from the present cursor position that many rows or 3) hit Click-> goto Last Row-
>OK after the last row is clicked MUST click OK to delete the records
RecED or F8
Clicking RecED button or F8 invokes the data record editor. Example from the bus table is shown below
If there are other records associated with this table they are listed and made available for editing(after clicking gens,
load shunt or svd and the screen blinks it means that element doesn’t exist on that bus). At the bottom of this list there
is an option to go directly to SCAN. When any option but SCAN is selected, the record editor displays the entire
contents of a record, regardless of the size of its window. If the record is too long to be shown completely within the
window the scroll bars can be used to move within the record. Page_Up moves the record editor to the previous record
and Page_Down moves it to the next record. Whenever the entire field is highlighted in blue typing a value will
overwrite the previous value. Left mouse click within a number/character will turn off the highlighting and change an
individual number or character using the backspace/delete/arrow keys and retyping a new number/character
The F5 function key is disabled when F8 is used.
Write out Table Rows or Complete Records using Print Button or (F9)
To write a report listing the contents of the table, position the cursor at the first record of interest and click Print or
F9.
The choices are Row Print, Record Print, EEPC output, Graph(not available yet) or Cancel. Row Print to
reproduce rows of the table as they appear on the edit window, or "Record print" to report complete records as they
are shown by the record editor. EEPC output will format the record so the command REPC can import that data. This
is handy to transmit a limited amount of data to another PSLF user. Graph function isn’t completed yet. After
selecting the type of format another panel is display for the output
A box appears requiring you to specify the report destination and the number of records entry. Check either 1) Print to
Printer will send the results directly to the printer or 2) Print to File will cause the output to be directed to File Name:
which must be entered if the Append box is checked the output is appended if unchecked it starts at the beginning of
the file. Three ways to identify the amount of output 1) enter a number in the Num of Rows: followed by a carriage
return and that number from the present cursor location will be sent to the output device 2) prior to hitting the Print
button mark the rows of interest then hit Print Marked Rows Or 3) hit Click->goto Last Row->OK this will mark
from the current cursor location to the row that is clicked then hit OK (can use page down or move to the end of the
table CNTL-END quickly
Graph a Table (F9)
Not available yet
Access Drop Down Menus or (F10)
Clicking F10 will allow the user to access drop down menus.
Sort or Index a Table Display (F11)
You can sort the display of a table, or replace the values in a numeric column with index values by clicking Sort
button or F11. Clicking F11 displays a box to Sort forward, Sort backward, Sort by mag forward, Sort by mag
backward, Sort by time stamp forward, Sort by time stamp backward, or Index forward, Index backward. The
above functions use the column containing the cursor as their key variable. You may sort by time stamp to display the
order in which the data has been changed.
These sorting and indexing operations change the display of the table but their results are not saved in the data table
when you leave the editor. They are, therefore, useful for examining data, but not for changing it. To sort a table
permanently use the SORT command of PSLF.
Command: prec
EPCL:
Arguments:
Prepared by:
Miaolei Shao
Nicholas W. Miller
Juan J. Sanchez-Gasca
Jason MacDowell
Version 4.6
This report was prepared by General Electric International, Inc. (GEII) as an account
of work sponsored by GE’s Wind Energy business. Neither Wind Energy nor GEII, nor
any person acting on behalf of either:
1. Makes any warranty or representation, expressed or implied, with respect to the
use of any information contained in this report, or that the use of any information,
apparatus, method, or process disclosed in the report may not infringe privately
owned rights.
2. Assumes any liabilities with respect to the use of or for damage resulting from the
use of any information, apparatus, method, or process disclosed in this report.
ii
Foreword
Miaolei Shao
GE Energy Management
Building 53-311K, One River Road
Schenectady, New York 12345
Phone: (518) 385-7537
E-mail: miaolei.shao@ge.com
Nicholas N. Miller
GE Energy Management
Building 53-300Q, One River Road
Schenectady, New York 12345
Phone: (518) 385-9865
E-mail: nicholas.miller@ge.com
iii
Summary of Changes in Version 4.6
Added low pass filter and time delay in APC output
Updated non-windup limits in Fig. 4-7 and Fig. 5-2
Updated to resolve the WindINERTIATM and APC Co-ordination issue
Summary of Changes in Version 4.5
Updated current limits in LVPL and both electrical control models
Updated DFAG and full converter reactive power control figures, added new data to table
Updated DFAG and full converter electrical control figures, added text describing input test signal
Updated WindFREE description in DFAG and full converter sections
Updated APC frequency response figure and high frequency tripping discussion
Updated all benchmark simulations
Summary of Changes in Version 4.4
Addition of text and data recommendations for modeling 1.6 MW DFAG machine
Addition of Q droop function to full converter control model
Addition of Xc (compensating impedance) to full converter control model
Summary of Changes in Version 4.3
Clarification on reactive capability; voltage regulation recommended settings
Clarification of turbine control modeling recommendations
Clarification of fault ride-through modeling recommendations
Clarification on 2.5 MW full converter mechanical model
Addition of Q droop function to electrical control model for DFAG
Addition of WindINERTIATM function to turbine control model
Summary of Changes in Version 4.2
Revised generator/converter model source current calculation, interface with network solution
Moved low voltage power logic from electrical control to generator/converter model
Updated text, figures, and data as appropriate to reflect the above changes
Reran all DFAG and full converter test simulations for Sections 6, 7 and 8.
Summary of Changes in Version 4.1
Simplified PLL in generator model, added low voltage active current regulation and reactive current
limits to prevent excessive voltage to generator model
Modified converter current limiter in control model, and XIQmax/XIQmin limits
Removed LVRT voltage support function from control model
Updated official names – i.e., WindVAR became WindCONTROL
Updated example simulations in Sections 6 and 7. Added comparison to Windtrap.
Summary of Changes in Version 4.0
Added full converter model block diagrams, discussion, simulation results, etc
Moved generator voltage protection discussion to generator model section
Folded “Other Technical Issues” section into other parts of the report
Modified PLL in generator model.
Modified turbine control to include Active Power Control.
Added figure showing details of improved pitch compensation in turbine model
Summary of Changes in Versions 3.4, 3.4a, 3.4b
Corrections regarding Kqi and Kvi in Section 4.2.2 and Table 4-5 (version 3.4b)
Adjustment of values of per unit Qmax and unit transformer MVA and impedance for 1.5 MW WTG
(version 3.4a)
Phase-locked loop added to converter/generator model (version 3.4)
WindVar emulator model changed to be closer to real control logic (version 3.4)
Phase angle regulation option added to electrical control (version 3.4)
iv
Generator protection tripping model description updated and moved to Section 4.4 (version 3.4)
Recommended parameter values updated based on latest validation testing (version 3.4)
Revision History
Version 1.0 – December 4, 2002 Version 4.0 – September 22, 2006
Version 2.0 – March 14, 2003 Version 4.1 – March 2008
Version 3.0 – October 27, 2003 Version 4.2 – June 24, 2008
Version 3.1 – December 22, 2003 Version 4.3 – April 8, 2009
Version 3.2 – May 4, 2004 Version 4.4 – September 9, 2009
Version 3.3 – June 7, 2004 Version 4.5 – April 16, 2010
Version 3.4 – December 21, 2004
v
Table of Contents
1 INTRODUCTION ..................................................................................................................... 1.1
vi
8.1 1.5 MW DFAG COMPARISON TO WINDTRAP ...................................................................... 8.1
8.2 2.5 MW FULL CONVERTER COMPARISON TO WINDTRAP ..................................................... 8.4
8.3 WINDINERTIA MODEL COMPARISON TO FIELD MEASUREMENTS ........................................ 8.6
9 CONCLUSIONS ...................................................................................................................... 9.1
vii
Table of Figures
Figure 2-1. GE Doubly Fed Asynchronous WTG Major Components. ................................2.1
Figure 2-2. GE Full Converter WTG Major Components. ..................................................2.3
Figure 2-3. GE WTG Dynamic Model Connectivity. ...........................................................2.5
Figure 3-1. Simplified Wind Plant Power Flow Model. .......................................................3.2
Figure 4-1. DFAG Generator/Converter Model. .................................................................4.2
Figure 4-2 GE 1.5 and 1.6 MW ZVRT Model Settings and Equipment Specification. ........4.4
Figure 4-3 GE 1.5 and 1.6 MW LVRT II Model Settings and Equipment Specification. .....4.5
Figure 4-4. Overall DFAG Reactive Power and Electrical Control Model. ..........................4.6
Figure 4-5. Reactive Power Control Model. ........................................................................4.7
Figure 4-6. Q Droop Function Model. .................................................................................4.9
Figure 4-7. DFAG Electrical Control Model. ....................................................................4.10
Figure 4-8. Wind Turbine Model Block Diagram. .............................................................4.15
Figure 4-9. Pitch Control and Pitch Compensation Block Diagram...................................4.16
Figure 4-10. Two-Mass Rotor Model. ................................................................................4.19
Figure 4-11. Wind Power Cp Curves. ................................................................................4.21
Figure 4-12. Active Power Control Emulator. ...................................................................4.23
Figure 4-13. Example Frequency Response Curve. ...........................................................4.24
Figure 4-14. Simplified WindINERTIA Control Model.....................................................4.27
Figure 5-1. Full Converter WTG Generator/Converter Model. ..........................................5.1
Figure 5-2. Full Converter WTG Electrical Control Model. ................................................5.4
Figure 5-3. Converter Current Limit Model. ......................................................................5.5
Figure 6-1. Primary DFAG Test System..............................................................................6.1
Figure 6-2. Series of Bus Faults with Various Fault Impedances. ........................................6.4
Figure 6-3. 3-phase Fault to Ground, Cleared by Tripping 230 kV Line. ............................6.5
Figure 6-4. Q Droop Response to Capacitor Switching........................................................6.7
Figure 6-5. Active Power Control Response to Loss of Load. ..............................................6.9
Figure 6-6. Response to Wind Speed Profile without Zero Power Operation. ...................6.11
Figure 6-7. Response to Wind Speed Profile with Zero Power Operation..........................6.12
Figure 6-8. Response to Frequency Signal with WindINERTIA. .......................................6.14
Figure 7-1. Series of Bus Faults with Various Fault Impedances. ........................................7.3
Figure 7-2. 3-phase Fault to Ground, Cleared by Tripping 230 kV Line. ............................7.4
Figure 7-3. Increasing Wind Speed Results in Zero-Power Operation. ...............................7.6
Figure 7-4. Response to Wind Speed Profile with Zero Power Operation............................7.7
Figure 7-5. Voltage Regulation in Continuous Zero-Power Operation. ...............................7.8
Figure 7-6. Step Reduction in Converter Current Limit with P Priority. ..........................7.10
Figure 7-7. Low Voltage Power Logic Response to Fault on POI Bus................................7.12
Figure 8-1. Test System for PSLF and Windtrap Comparison. ...........................................8.1
Figure 8-2. 1.5 MW DFAG PSLF and Windtrap Terminal Voltage Response. ....................8.2
Figure 8-3. 1.5 MW DFAG PSLF and Windtrap Real Power Response. .............................8.3
Figure 8-4. 1.5 MW DFAG PSLF and Windtrap Reactive Power Response. .......................8.3
Figure 8-5. 2.5 MW Full Converter PSLF and Windtrap Terminal Voltage Response. .......8.4
Figure 8-6. 2.5 MW Full Converter PSLF and Windtrap Real Power Response. ................8.5
Figure 8-7. 2.5 MW Full Converter PSLF and Windtrap Reactive Power Response. ..........8.5
Figure 8-8. Frequency Test Signal. ......................................................................................8.6
Figure 8-9. WindINERTIA Model Performance and Field Measurements. .........................8.7
viii
Table of Tables
Table 3-1. Individual WTG Power Flow Data. ....................................................................3.2
Table 4-1. Typical Fault Ride Through Voltage Thresholds and Durations. .......................4.4
Table 4-2. DFAG Generator/Converter Parameters............................................................4.5
Table 4-3. Reactive Power Control Parameters (on Generator MVA Base). .......................4.8
Table 4-4. Q Droop Function Parameters............................................................................4.9
Table 4-5. DFAG Electrical Control Parameters. ..............................................................4.10
Table 4-6. Open Loop Reactive Power Control Logic........................................................4.12
Table 4-7. Open Loop Reactive Power Control Parameters. .............................................4.12
Table 4-8. DFAG WTG Turbine Control Parameters (on Turbine MW Base). .................4.18
Table 4-9. DFAG WTG Rotor Mechanical Model Parameters (on Turbine MW Base). ....4.19
Table 4-10. DFAG WTG Wind Power Coefficients. ..........................................................4.20
Table 4-11. Cp Coefficients αi,j ..........................................................................................4.22
Table 4-12. Active Power Control and Rate Limit Function Parameters. ..........................4.25
Table 4-13. WindINERTIA Control Parameters. ..............................................................4.27
Table 5-1. Full Converter Generator/Converter Parameters. ..............................................5.1
Table 5-2. Full Converter WTG Electrical Model. ..............................................................5.5
Table 5-3. Full Converter WTG WindCONTROL Emulator Parameters. ..........................5.5
Table 5-4. Full Converter WTG Turbine Control Parameters (on Turbine MW Base). ......5.6
Table 5-5. Full Converter WTG Rotor Model Parameters (on Turbine MW Base). ............5.7
Table 5-6. Full Converter WTG Wind Power Coefficients. .................................................5.7
Table 6-1. DFAG Generator Model (gewtg) Data for Simulations. ....................................6.15
Table 6-2. DFAG Electrical Control Model (exwtge) Data for Simulations. ......................6.16
Table 6-3. DFAG Turbine Control Model (wndtge) Data for Simulations. ........................6.17
Table 7-1. Full Converter WTG Generator Model Data for Simulations. .........................7.13
Table 7-2. Full Converter WTG Electrical Control Model Data for Simulations...............7.14
Table 7-3. Full Converter WTG Turbine Control Model Data for Simulations. ................7.15
ix
1 Introduction
GE Energy has an ongoing effort dedicated to the development of models of GE
wind turbine generators (WTG) suitable for use in system impact studies. This report
documents the present recommendations for dynamic modeling of wind plants with
either doubly fed asynchronous WTGs (GE 1.5, 1.6 and 3.6 MW) or WTGs with a full
converter (GE Multi-Megawatt 2.5 MW). This report includes recommended model
structure and data, as well as the assumptions, capabilities and limitations of the
resulting model.
The model provided is as detailed as is appropriate for bulk power system studies.
It is valuable to put the model limitations in the context of what analysis is required.
Most important, this model is for positive sequence phasor time-domain simulations –
e.g. PSLF or PSS/e. Second, this assumes that the analysis is mainly focused on how
the WTGs react to grid disturbances, e.g. faults, on the transmission system. Third, the
model provides for calculation of the effect of wind speed fluctuation on the electrical
output of the WTG. Details of the device dynamics have been substantially simplified.
Specifically, the very fast dynamics associated with the control of the generator
converter have been modeled as algebraic (i.e. instantaneous) approximations of their
response. Representation of the turbine mechanical controls has been simplified as
well. The model is not intended for use in short circuit studies or electromagnetic
transient studies.
The models, as implemented in GE’s PSLF dynamic simulation program, have been
validated against more detailed design models. Selected validation comparisons are
documented in Section 8. Additional PSLF simulation examples showing doubly-fed
asynchronous generator (DFAG) and full converter WTG performance are included in
Sections 6 and 7.
These models were developed specifically for the latest GE WTGs. The model is
applicable, with care, to other recent vintage GE WTGs and other WTGs, as long as the
basic principles of power conversion and control are the same. However, this model is
not designed for, nor intended to be used as, a general purpose WTG model. There are
substantial variations between models and manufacturers.
Please contact GE for advice on modeling any GE WTGs not currently included in
this document. In addition, updated versions of this document may be available on the
GE Wind and PSLF software websites.
P net
Q net
3 AC Windings
fnet Collector
System
P stator (e.g.
34.5kV
bus)
frotor
P rotor
P rotor P conv
F rotor F network
Wind Turbine
Wound-Rotor Converter
Induction Generator
Figure 2-1. GE Doubly Fed Asynchronous WTG Major Components.
The fundamental frequency electrical dynamic performance of the DFAG is
completely dominated by the converter. Conventional aspects of generator
performance related to internal angle, excitation voltage, and synchronism are largely
irrelevant. In practice, the electrical behavior of the generator and converter is that of
a current-regulated voltage-source inverter. Like other voltage-source inverters (e.g., a
BESS or a STATCOM), the WTG converter synthesizes an internal voltage behind a
Permanent
frotor
Magnet
P rotor
Rotor
Trip Signal
Ip (P)
Command
Electrical Generator/
Control Converter
Model Model Pgen , Qgen
E" or IQ (Q)
Command
Power
Order
Pelec
Wind
Wind Profile Speed Turbine &
Model Turbine Control
(User-written) Model Fterm
Project Substation
Collector
Equivalent
Impedance Q gen
Substation and Charging Unit
Vreg bus Transformer Capacitance Transformer Vterm
Isorc
Eq"cmd 1 -1 High Voltage
(efd) 1+ 0.02s X" Reactive Current
From s0 Management
exwtge
LVPL & rrpwr
Low Voltage
IPcmd 1 IPlv Active Current
(ladifd) 1+ 0.02s Management
From s1
exwtge
LVPL
Vterm
1.22
LVPL V
1
jX"
1+ 0.02s
V s2
zerox brkpt
(0.50) (0.90)
Low Voltage Power Logic
Table 4-2 includes recommended settings for the DFAG generator/converter model.
The maximum allowed ramp rate limit, rrpwr, is 10. The LVPL breakpoint, brkpt, must
be greater than 0.5, less than 1.0, and greater than the zero-crossing, zerox.
140
Voltage at Point of Interconnection
120
100
(Percent)
80
PSLF
60
40
GE ZVRT
20
0
-1.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0
200 ms
Time (seconds)
Figure 4-2 GE 1.5 and 1.6 MW ZVRT Model Settings and Equipment Specification.
120
100
PSLF LVRT II
(Percent)
80
60
40
GE LVRT II
20
0
-1.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0
Time (seconds)
Figure 4-3 GE 1.5 and 1.6 MW LVRT II Model Settings and Equipment Specification.
Vrfq
WindCONTROL
Vreg
Emulator
Vterm
From
Wind Turbine Pord
Model
Figure 4-4. Overall DFAG Reactive Power and Electrical Control Model.
WindCONTROL Vrfq
Emulator (vref)
Vermx Qmax
Kiv/s
Vreg + +
1 s4 1
1/fN Qord
1+ sTr - + Qwv 1+ sTc
Kpv
s3 - Vermn 1+ sTv Qmin s5
Vqd s2
From Q Droop
Function
If yes, freeze
2 integrators
< Vfrz?
PFAref Qref
(vref) tan (vref) Qord from separate model
0
Pelec 1 1 (vref)
1+ sTpwr
x
s6 0 -1 Qmax
pfaflg Open
1
Qord Loop Qcmd
Control
varflg Qmin
The PI gains, Kpv and Kiv, are field adjustable to meet performance objectives and
may be adjusted in the model, if necessary. When GE wind plants are commissioned,
the value of these parameters are field tuned to provide good voltage performance for
systemic response to variations in wind power due to wind fluctuations. The field
tuned values are typically on the order of 2.0 and 1.0, respectively. This gives a roughly
10 second response time. Experience has been very good with these values. The
values given in the table above are rough upper limits, based on GE simulation and
experience. They should be suitable for systems with a short circuit capacity of 5 or
more times the wind plant MW rating. These higher gains will give better voltage
response to grid voltages disturbances. However, higher gains result in increased risk
of instability – much the way AVR gains can destabilize conventional synchronous
machines. As a system weakens, the effective close-loop response gets faster. Thus,
selection of higher gains for system performance must be accompanied by analysis
that assures stable operation under all credible operating conditions – especially the
minimum short circuit strength condition.
Delivery of reactive power is given priority over active power by the controls. For
the 1.6 MW machine only, sustained high reactive power output at low terminal
voltages may result in a few percent drop in active power output. This is not modeled.
The Q Droop function, shown in Figure 4-6, is a relatively slow-acting function that
reduces the effective voltage reference (Vrfq-Vqd) as reactive power changes. This
improves coordination between multiple integral controllers regulating the same point
Q Input 1 Vqd
Kqd
1+ sTlpqd
s7
Pord IPmax
(vsig)
. IPcmd
.
(ladifd)
From
Wind Turbine
Model Vterm
Anti-windup on
Power Limits P & d P /dt
wmax max
K ptrq + Kitrq / s 1
X
1+ sTpc
s2 s4
1.
pstl Power Response
Pmax Rate Limit
WTG Terminal Active Power 0 PsetAPC
Bus Frequency Control 1 1‐sTd1/2
(optional) apcflg 1+sTd1/2
+
plim
fbus Pmin +
+ perr
Auxiliary sTw
Signal 1 + sTw
(psig) + s10
WindINERTIA
Control
dpwi +
(optional) + wsho
Pord
To extwge
or ewtgfc
(vsig)
Kpc
+
pinp
+ * +
Kic
s
pstl Non-
windup limit
Pitch
Compensation
* The Pitch Control and Pitch Compensation integrators are non-windup integrators as a function of the pitch, i.e.,
the inputs of these integrators are set to zero when the pitch is in limits (Pimax or Pimin) and the integrator input
tends to force the pitch command further against its limit. The outputs of these integrators are not limited.
The turbine control model sends a power order to the electrical control, requesting
that the converter deliver this power to the grid. The electrical control, as described in
Section 4.2, may or may not be successful in implementing this power order. The
control of turbine speed is quite complex. For modeling purposes, this is approximated
by closed loop control with a speed reference that is proportional to electric power
output. For power levels above rated, the rotor speed will be controlled primarily by
the pitch control, with the speed being allowed to rise above the reference transiently.
The actual control does not use a speed reference or a feedback of power.
In this model, the blade position actuators are rate limited and there is a time
constant associated with the translation of blade angle to mechanical output. The
pitch control does not differentiate between shaft acceleration due to increase in wind
speed or due to system faults. In either case, the response is appropriate and relatively
slow compared to the electrical control.
Tmech = Pmech
+
Tmech 1 1 base 1 s6 + 0
2H s s
+ s6 s7
+ - -
Dtg Ktg Tshaft
- + +
Telec 1 1 Telec = Pelec + Pdbr
1 base
2Hg s s
- s8 s9
s8 + 0
-
spd0
+
Generator Speed
+
Table 4-9. DFAG WTG Rotor Mechanical Model Parameters (on Turbine MW Base).
GE 1.5 MW GE 1.6 MW GE 3.6 MW
Variable Name PSLF Parameter 60 Hz 50 Hz 60 Hz 50 Hz 60 Hz 50 Hz
One-Mass Model
H h 4.94 5.29 4.63 4.96 5.23 5.74
Two-Mass Model (Not Recommended)
H h 4.33 4.33 4.06 4.06 4.32 4.32
Hg hg 0.62 0.96 0.58 0.90 0.91 1.42
Ktg ktg 1.11 1.39 1.04 1.30 3.16 3.95
Dtg dtg 1.5 2.3 1.5 2.3 1.5 2.3
base* wbase 125.66 157.08 125.66 157.08 125.66 157.08
* nominal generator speed
The coefficients i,j are given in Table 4-11. The curve fit is a good approximation
for values of 3 < < 15, which are suitable for stability simulations for all blade
configurations and models. These curves should not be used for energy production or
other economic evaluation. Values of outside this range represent very high and low
wind speeds, respectively, that are outside the continuous rating of the machine.
θ=1o
0.4
θ=3o
θ=5o
0.3
θ=7o
Cp
θ=9o
0.2
θ=11o
o
θ=13
o
θ=15
0.1
0
0 2 4 6 8 10 12 14 16 18 20
λ
Initialization of the wind power model recognizes two distinct states: 1) initial
electrical power (from the load flow) is less than rated, or 2) initial electrical power
equal to rated. In either case, Pmech = Pelec is known from the load flow and ref is
set at the corresponding value (1.2 pu if P > 0.46 pu). Then, using the Cp curve fit
equation, the wind speed vw required to produce Pmech with = min is determined.
(Notice from Figure 4-11, that two values of will generally satisfy the required Cp for a
given The wind speed vw, corresponding to the higher is used.) If Pmech is less than
rated, this value of wind speed is used as the initial value. If Pmech is equal to rated and
the user-input value of wind speed, spdw1, is greater than the = min value, then is
increased to produce rated P at the specified value of wind speed. If Pmech is equal to
rated and the user-input value of wind speed is zero, the initial wind speed, spdw1, is
14 m/s.
Large negative values of Cp are not allowed. The minimum is set to –0.05.
1
1+sTpav
WTG Terminal 1.
Bus Frequency pavf s11
Pmax
+ 0
fbu Frequency
pset 1 psetf 1
s Response pstl
1+sTpset
+ Curve
Pmin
Auxiliary To gewtg apcflg
Signal Trip Signal
(glimt) Release
(psig) Pmax
If (fbus < fb) fflg 1 if fflg set
OR (fbus > fc)
Point Point B
A (Fb,Pbc) Point C
1 (F P ) (Fc,Pbc)
0.8
Active Power Output (pu)
0.6
Point D
0.4
(Fd,Pd)
0.2
0
0.95 0.96 0.97 0.98 0.99 1 1.01 1.02 1.03 1.04 1.05 1.06 1.07
Frequency (pu)
The two primary inputs to the frequency response curve are available power
(determined from wind speed, a Cp curve and the constant Kb) and WTG terminal bus
frequency. At nominal frequency, the filtered version of the available power is
multiplied by the factor, Pbc, to generate a power set point, pset. This set point is
compared to specified limits, Pmin and Pmax. The minimum power is nominally 0.20 pu
of maximum plant output. The maximum power represents an operator specified
plant output limit. For example, this may represent a limit that would be imposed on a
given wind plant after the loss of a local transmission line, or under light load
conditions.
In response to frequency excursions, the filtered available power is multiplied by
the appropriate interpolated factor to generate a power set point. No operator limit is
imposed for frequency excursions. The plant is still limited to the maximum power
rating of the WTGs and to the available power from a given wind speed. If the
frequency exceeds Fd for 1 second, the wind model is tripped.
Under all frequency conditions, the maximum power set point, PsetAPC, is an input to
both the pitch compensation (described in Section 4.3.1) and the power response rate
limit function. This rate limit is implemented by applying the maximum power set point
(PsetAPC) to the power order (pinp) from the turbine control, calculating the difference
between the original power order and the limited power order, processing that error
through a washout filter, and adding the output of the washout to the limited power
order to generate the final power order (Pord) for the converter control (extwge) model.
Table 4-12. Active Power Control and Rate Limit Function Parameters.
Variable Name PSLF Parameter Recommended Value
Tw (sec) tw 1.0
apcflg apcflg 0
Tpav (sec) tpav 0.15
Tpset (sec) tpset 5
Td1 (sec) td1 0.15
Pa (pu) pa 1.0
Pbc (pu) pbc 0.95
Pd (pu) pd 0.40
Fa (pu) fa 0.96
Fb (pu) fb 0.996
Fc (pu) fc 1.004
Fd (pu) fd 1.04
Pmax (pu) pmax 1.0
Pmin (pu) pmin 0.2
+
ferrwi dfdbwi fltdfwi dpwi
fbus 1 sTwowi
1 + sTlpwi
Kwi
1 + sTwowi
+ - dbwi
+
s12 s13
Auxiliary
Signal Frequency Pmnwi
(psig) Reference
Rate limits:
urlwi = up rate limit
drlwi = down rate limit
Isorc
IQcmd 1
-1 High Voltage
(efd) 1+ 0.02s
Reactive Current
From s0 Management
ewtgfc
LVPL & rrpwr
Low Voltage
IPcmd 1 IPlv Active Current
(ladifd) 1+ 0.02s Management
From s1
ewtgfc
LVPL
Vterm
1.22
LVPL V
1
1+ 0.02s
V s2
zerox brkpt
(0.40) (0.90)
Low Voltage Power Logic
Ipmx
Pord Porx . IPcmd
.
(vsig) (ladifd)
from Wind to Wind
Turbine Model Generator Model
Vterm
+ 1
Pelec Pdbr
-
from Wind + (elimt)
Generator
Pdlt - 0 to Wind
Model Turbine Model
Eerr
+
Kdbr 1/s
0 - Edbr s7
EBST
Dynamic Braking Resistor
0 1
Minimum Minimum
IPcmd
ImaxTD ImaxTD2 - IPcmd2
IQcmd
ImaxTD2 - IQcmd2
Iphl
Minimum Minimum
Ipmx Ipmx
Table 5-4. Full Converter WTG Turbine Control Parameters (on Turbine MW Base).
Variable Name PSLF Parameter Recommended Value
Pwmin (pu) pwmin 0.
Kptrq kptrq 0.3
Kitrq kitrq 0.1
Several test disturbances were applied to this system. However, the results of only
one are described here. This disturbance conted of a 150 msec, 3-phase bus fault
through an impedance at the POI (bus 2).
The PSLF 1.5 MW DFAG model, as described in this document, and the Windtrap
1.5 MW WTG model with the most recent GE controller (WCNTRLFLAG = 33) were used
for this comparison.
Cross plots of PSLF (blue line) and Windtrap (pink line) simulation results are shown
in Figure 8-2 through Figure 8-4. The first figure shows terminal voltage (pu), the
second shows real power output from the WTG (MW), and the third shows reactive
power output (MVAr).
1.00
Terminal Voltage (pu)
0.50
0.00
0 0.5 1 1.5 2
Time (Seconds)
Figure 8-2. 1.5 MW DFAG PSLF and Windtrap Terminal Voltage Response.
2.0
Single WTG Real Power (MW)
1.0
0.0
-1.0
0 0.5 1 1.5 2
Time (Seconds)
Figure 8-3. 1.5 MW DFAG PSLF and Windtrap Real Power Response.
3.0
Windtrap
PSLF
2.0
Single WTG Reactive Power (MVAr)
1.0
0.0
-1.0
0 0.5 1 1.5 2
Time (Seconds)
Figure 8-4. 1.5 MW DFAG PSLF and Windtrap Reactive Power Response.
Windtrap
PSLF
1.00
Terminal Voltage (pu)
0.50
0.00
0 0.5 1 1.5 2
Time (Seconds)
Figure 8-5. 2.5 MW Full Converter PSLF and Windtrap Terminal Voltage Response.
Windtrap
PSLF
3.0
Single WTG Real Power (MW)
2.0
1.0
0.0
0 0.5 1 1.5 2
Time (Seconds)
Figure 8-6. 2.5 MW Full Converter PSLF and Windtrap Real Power Response.
3.0
Windtrap
PSLF
2.0
Single WTG Reactive Power (MVAr)
1.0
0.0
-1.0
0 0.5 1 1.5 2
Time (Seconds)
Figure 8-7. 2.5 MW Full Converter PSLF and Windtrap Reactive Power Response.
1500
1200
Power (kW)
900
600
0
0 10 20 30 40 50 60 70 80 90
Time (Seconds)
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: