PSLF User's Manual

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2187

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  

MODELS BY TYPE   Models are accessed here by type  

MAIN MENU COMMANDS   Commands on the main menu  

ALL COMMANDS AND FUNCTIONS   Alphabetic list of all commands and functions  

EDIT TABLES   Edit Table Descriptions  

EPCL FUNCTIONS   EPCL Function Descriptions  

FAQS   Frequently Asked Questions  

Table 5.2   Dictionary of PSLF Variables  


       
Chapter 1 Commands Reference Manual  
  1.1 Introduction to PSLF  
  1.2 PSLF Activities  
  1.3 PSLF Maximum Capacities  
  1.4 Running the PSLF Program Interactively  
  1.5 Definition & Initialization Files for the PSLF Program  
  1.5.1 Panel Definition Files  
  1.5.2 PSLF Initialization File  
  1.5.3 Font Color File  
  1.5.4 Voltage Levels File  
  1.5.5 Voltage Levels Color File  
  1.5.6 Editor Control Files  
  Figure 1.1 Definition of PSLF Edit Tables  
  1.6 Setting Up the Working Directory  
       

Chapter 2 Basic Concepts  


  2.1 Working Case and History Files  
  2.2 PSLF Commands  
  2.3 Importing Data, External Data Files  
  2.4 Exporting Data  
  2.5 Equipment Based Model Organization  
  2.6 Program Operation  
  2.6.1 The Main Menu  
  2.6.2 Selecting From Menus  
  2.6.3 Getting Help  
  2.6.4 Executing a Command  
  2.6.5 Continue and Text Entry Boxes  
  2.6.6 Selection Panels  
  2.6.7 File Paths  
  2.6.8 Specifying Report Destinations  
  2.6.9.1 Selective Reporting  
  2.6.9.2 Selective Editing  
  2.6.10 Window Management  
  2.6.11 User Defined Messages  
  2.6.12 Command Mode  
  2.6.13 Batch Mode  
  2.7 Tables, Records, and Members  
  2.7.1 General Table Structure  
  2.8 Data Editors  
  2.8.1 The Table and Record Editors  
  2.8.2 The Table Editor  
  2.8.3 The Record Editor  
  2.8.4 Associated Records  
  2.9 Extended Tables, Records, and Members  
  2.9.1 Extended Record Definition Files  
  2.9.2 Extended Record Use in EPCL  
  2.10 Extended Record Data Editors  
  2.10.1 The Extended (Build-Your-Own) Table Editors  
  2.10.2 The Extended Record Editor  
       
Chapter 3 The Power System Model  
  3.0 Component Identifiers, Memberships, and Status  
  3.0.1 Component Identifiers  
  3.0.2 Component Memberships  
  3.0.3 Component Status  
  3.1 Buses  
  3.2 Transmission Lines  
  3.2.1 Transmission Line Sections  
  3.2.2 Transformer-Terminated Line Sections  
  3.2.3 Transmission Line Losses  
  3.3 Two Winding Transformers  
  3.3.1 Transformer Types  
  3.3.2 3The PSLF Transformer Model  
  3.3.3 3Transformer Impedance Adjustment Function  
  3.4 Three Winding Transformers  
  3.4.1 System Connections  
  3.4.2 Three Winding Model  
  3.5 Generators  
  3.5.1 Basic Data  
  3.5.2 Reactive Power Limits  
  3.5.3 Reactive Capability Curves  
  3.5.4 Additional Generator Data  
  3.5.5 Generator Step-Up Transformers  
  3.6 Loads  
  3.7 Fixed Shunts  
  3.8 Controlled Shunts  
  3.9 DC Transmission  
  3.9.1 DC System Components  
  3.9.2 DC Converter Data  
  3.9.3 DC Converter Control  
  3.9.4 Four-Terminal DC  
  3.9.5 Multi-Terminal DC  
  3.9.6 Customized DC Controls  
  3.9.6.1 Customized DC Controls for Load Flow Simulation  
  3.9.6.2 Customized DC Controls for Dynamic Simulation  
  3.10 Power Electronic Devices  
  3.10.1 UPFC (Unified Power Flow Controller)  
  3.11 Injection Groups and Injection Group Elements  
  3.11.1 Injection Group  
  3.11.2 Injection Group Elements  
  3.12 Interface and Interface Elements Objects  
  3.12.1 Interface  
  3.12.2 Interface Elements Object  
  3.13 DataMaintainer Object  
  3.14 Dynamic Simulation Modeling  
  3.14.1 General Points  
  3.14.2 The Dynamic Simulation Model Library  
  3.14.2.1             Standard Data Conventions  
  3.14.2.2             Deadbands  
  3.14.2.3             Non-linear (Gate) Characteristics  
  3.14.2.4             Base Load Flag  
  3.14.3 Compatibility With Other Programs  
  3.14.3.1             WECC Stability Program  
  3.14.3.2             PSS/E Dynamic Simulation Program  
  Table 3.1 Correspondence Between WSCC models and PSDS Models  
  Table 3.2 Summary of PSDS Dynamic Models Listed Alphabetically  
  Table 3.3 Summary of PSDS Dynamic Models Listed by Type  
       
  MODELS Models are accessed here  
       
Chapter 4 Commands Reference  
  4.1 Introduction  
  COMMANDS Commands are accessed here  
  Table 4.2 List of Commands Grouped by Function  
       
 
Chapter 5 Programming in EPCL
  5.1 The Main Idea  
  5.2 EPCL Language Definition  
  5.2.1 Notation  
  5.2.2 Definitions  
  5.3 The Connection to PSLF  
  5.4 Constants and Variables in EPCL Programs  
  5.5 Assignment Statements & Expressions  
  5.5.1 Assignment Expressions  
  5.5.2 Relational Expressions  
  5.5.3 Logical Expressons  
  5.5.4 String Expressions  
  5.5.5 Assignment & Variable Manipulation  
  5.5.5.1 Assignment  
  5.5.5.2 Array Dimensioning  
  5.5.6 Define Statements  
  5.6 Program Structure  
  5.6.1 for next (Looping)  
  5.6.2 if else (Conditionals)  
  5.6.3 goto label (Switch case)  
  5.6.4 Subroutine  
  5.6.5 Program Termination  
  5.7 Input and Output Statements  
  5.7.1 Keyboard - Terminal Operations  
  5.7.2 Open Input File  
  5.7.3 Open Output File  
  5.7.4 Input  
  5.7.5 Output  
  5.7.6 Printing Special Characters  
  5.7.7 Close File  
  5.8 Intrinsic Functions  
  5.8.1 Real Number              - sin, cos etc...  
  5.8.2 Real Number and strings  - atof, strlen etc...  
  5.9 EPCL Subroutines  
  5.10 PSLF Interface Functions  
  5.10.1 General  
  5.10.2 External Bus Numbers and Bus Indexes  
  5.10.3 Automatic Execution of an EPCL Program Through a PSLF Command  
  5.10.4 Function descriptions  
    add_del_injele()    
    add_del_injgrp()    
    adjareazone()    
    adjbuses()  
 
adjsubst()
    azcalc()    
    beep()    
    bix()    
    buildeff()    
    busident()    
    change_dir()    
    create_op_dyd()    
    createsubsystem()    
    datachange()    
    datarec()    
    date()    
    deleterec()    
    dspost()    
    dynautodebug()    
    editcol()    
    epcl()    
    flow()    
    flow_index()    
    flowcalc()    
    getmodpar()    
getpslfver()
    inherit_idm    
    ins()    
    irand()    
    isolnoswgislds()    
    lid_index()    
    loadtrip()    
    mappaths_op_pl()    
    model_index()    
    next_flow()    
    next_index()    
    number()    
    openeditlog()    
    panel()    
    pass()    
    pick()    
    readwsmmapping()    
    rec_index()    
    redisp()    
    rvdcc()    
    rwcrf()    
    setbix()    
    setdatein()    
    set_paths()    
    setup_wsm_sim()    
    shunt_index()    
    sortarray()    
    substbix()    
    substbuslist()    
    tiescalc()    
    trangen_op_pl()    
    validate_op_pl()    
    vdcc_soln()    
    wgmd()    
    wwcrf()    
  5.11 Direct Access to PSLF Commands    
  5.12 EPCL Programming Hints  
  5.12.1 The Most Basic Things  
  5.13 Interactive EPCL Execution  
  5.13.1 EPCL Shell Commands  
  5.14 Sample EPCL Programs  
  5.15 Standard EPCL Programs  
  5.16 EPCL Warning and Error Messages  
  Table 5.1 Limitations and Rules  
  Table 5.2 Dictionary of PSLF Variables  
  LOAD FLOW LOAD FLOW DATA RECORDS  
  ECONOMIC ECONOMIC DISPATCH DATA RECORDS  
  DYNAMIC DYNAMIC SIMULATION DATA RECORDS  
  SHORT CIRCUIT SHORT CIRCUIT RECORDS  
  ONE-LINE ONE-LINE DIAGRAM DATA RECORDS  
  TRANSMISSION TRANSMISSION LINE CONSTANT  
  MISC. MISCELLANEOUS RECORDS  
       

Chapter 6 Customizing PSLF  


  6.1 Toolbars  
  6.2 PSLF Message Window Formatting  
  6.2.1 Hide/Show Messages  
  6.2.2 Clear Messages  
  6.2.3 Clear Error Logs  
  6.2.4 Print Messages  
  6.2.5 Message Window Color Formatting  
  6.2.6 Message Window Font Size  
  6.2.7 Message Rotating Buffer Size  
  6.3 PSLF Window, Toolbar, Panel Formatting  
  6.3.1 Toolbar and Subtoolbar Customization  
  6.3.2 Panel Customization  
  6.3.3 PSLF Font Size  
       
Chapter 7 PSLF Manual  
  7.1 Introduction  
  7.1.1 Setting up the Manual in Your Browser  
  7.1.2 Hyperlinks  
  7.1.3 Using the Manual from PSLF or PLOT  
  7.2 Customizing the LOGO in PSLF  
       
 
Chapter 8 PSLF Examples
  8.1 Introduction  
  8.2 Starting From an Ascii File in GE Format  
  8.3 Starting From History Files and Solving Load Flows  
 
  8.4 Modifying Data
  8.4.1 AC Branch Data  
  8.4.2 Transformer Data  
  8.5 Creating a One-Line Diagram  
  8.6 Graphics Output SCAN/SWCH  
  8.7 Linking and SAV and DRW Files  

     

FAQS Frequently Asked Questions  


  Operating System  
  Installation  
  GEConcorda.Worksmart.net  
  Support  
  Load Flow  
  Short Circuit  
  Dynamics  
  DataBase  
  EPCL  
  Solve  
  Graphics  
  Extended Records  
  Print  
  Manual  
  Plot  
  Contingency Processor  
  Miscellaneous  
       

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  
          
 
 

    PSLF RELEASE NOTES


September 16, 2019 Report for PSLF V21.0.7.1

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.
 

Version number change


Please note the version numbering change. This change brings us in line with the generic numbering
scheme and shall be followed moving forward.

Working with High DPI Monitors


In case you have a high-resolution monitor, please refer to the last section in the PSLF 21.0.7.1
Installation.pdf document available under the installation in a subfolder labeled “install”.

Support for EPCL Based SSTOOLS and DYTOOLS, DYTOOLS-HD


With the availability of in-built options under the Contingencies menu and via the EPCL function (sstools())
made available support of the EPCL programs under the Samples folders SSTOOLSV6, DYTOOLS and
DYTOOLS-HD will be discontinued. The programs will be distributed and available as current practice;
however, we encourage users to utilize the more robust option. The document titled “SSTools-Thermal and
Voltage Analysis Manual”, that also includes aspects of DYTOOLS, is now available under the installation
pdf folder.

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
 

New Dynamic Models


uel1 1.      Under excitation limiter model for synchronous machine excitation
systems
uel2c 2.      Under excitation limiter model for synchronous machine excitation
systems
 

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.

Working with High DPI Monitors


In case you have a high-resolution monitor, please refer to the last section in the PSLF 21.0_07
Installation.pdf document available under the installation in a subfolder labeled “install”.

Support for EPCL Based SSTOOLS and DYTOOLS, DYTOOLS-HD


With the availability of in-built options under the Contingencies menu and via the EPCL function (sstools())
made available support of the EPCL programs under the Samples folders SSTOOLSV6, DYTOOLS and
DYTOOLS-HD will be discontinued. The programs will be distributed and available as current practice;
however, we encourage users to utilize the more robust option. The document titled “SSTools-Thermal and
Voltage Analysis Manual”, that also includes aspects of DYTOOLS, is now available under the installation
pdf folder.

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.
 

New Dynamic Models


vhvdc1 3.      Two terminal voltage source converter based high-voltage d.c.
transmission model has been added as a Beta version

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.

Working with High DPI Monitors


In case you have a high resolution monitor, please refer to the last section in the PSLF 21.0_06
Installation.pdf document available under the installation in a subfolder labeled “install”.

Support for EPCL Based SSTOOLS and DYTOOLS, DYTOOLS-HD


With the availability of in-built options under the Contingencies menu and via the EPCL function (sstools())
made available support of the EPCL programs under the Samples folders SSTOOLSV6, DYTOOLS and
DYTOOLS-HD will be discontinued. The programs will be distributed and available as current practice but we
encourage users to utilize the more robust option. The document titled “SSTools-Thermal and Voltage
Analysis Manual”, that also includes aspects of DYTOOLS, is now available under the installation pdf folder.

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.

New Dynamic Models


gp3 9.      Generic generator protection model

 
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.

KNOWN ISSUE WITH INSTALLATION OF PSLF V21.0_05


Please note that PSLF Versions starting with PSLF V21.0_00 and including the current version require the
installation of Microsoft run time components. In case after installation, PSLF fails to launch please navigate
to the installation folder (usually C:\upslf21). We have placed the Microsoft redistributable package
executable named “vcredist_x86.exe” that you can execute before trying to launch PSLF again.

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.
 

New Dynamic Models


chvdc2 LCC HVDC simple planning model

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.

KNOWN ISSUE WITH INSTALLATION OF PSLF V21.0_04


Please note that PSLF Versions starting with PSLF V21.0_00 and including the current version require the
installation of Microsoft run time components. In case after installation, PSLF fails to launch please navigate
to the installation folder (usually C:\upslf21). We have placed the Microsoft redistributable package
executable named “vcredist_x86.exe” that you can execute before trying to launch PSLF again.

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.

KNOWN ISSUE WITH INSTALLATION OF PSLF V21.0_03


Please note that PSLF Versions starting with PSLF V21.0_00 and including the current version require the
installation of Microsoft run time components. In case after installation, PSLF fails to launch please navigate
to the installation folder (usually C:\upslf21). We have placed the Microsoft redistributable package
executable named “vcredist_x86.exe” that you can execute before trying to launch PSLF again.

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

Revisions to Dynamic Models


cmpldw Updated the logic by which motors reconnect to address the issue seen with
NERC benchmarking effort
Lhvrt Some additional unwanted channels were reported to the CHF file from the model
in some cases. This has been corrected.
   
   

New Dynamic Models


lhsrt Generator over speed protection relay model
lnrelscan Line relay scanning model
lofscan Loss of field scanning model
oosscan Out of step line scanning model
uvls1 Enables user to define time under voltage load shedding relay with option for
independent action of stages
vphr1 Generator Volt/Hz protection relay model
zmetra Apparent impedance recorder for all lines in a system, area or zone
emac1t Modified IEEE (1992/2005) type AC1A excitation system (AEP)

 
 

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
 

Revisions to Dynamic Models


esst4b The application of limits Vmmax/Vmmin was incorrect. This has been corrected.
reec_c Computation of ip and iq commands, when in limit and the model in charging
mode, was incorrect.  This has been fixed.
cmpldw, New global parameters (dypar.cmp_pmin, dypar.cmp_pqmin, dypar.cmp_vmin)
cmpldwg, that specify minimum values of Pload, P/Q ratio of load, and bus voltage below
cmpldw2 which composite load models will not be used.  These can be set by user in
javaini.p (defaults are zero).
   

New Dynamic Models


_cmpldw2 cmpldw2 data management model for odularized composite load model for a
group of loads (area, zone, load/climate zone)
 

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
 

Fixes to Dynamic Models


ldtrpmon The output channels from ldtrpmon models were not recorded properly which
made it difficult to plot them in few cases. This has been rectified.
epcmod Restored the enhanced limit of 50 for the number of tables for EPCL models
exac8b The model was misbehaving when tvd was 0. This has been rectified.

New EPCL Functions


add_del_injgrp Function to add or delete injection group
add_del_injele Function to add or delete an element to a given injection group

New Dynamic Models


cmpldw2 Modularized version of WECC composite load model (cmpldw, cmpldwg)
_cmp_stat Data management model for static load component of cmpldw2
_cmp_elec Data management model for electronic load component of cmpldw2
_cmp_mot3 Data management model for 3-phase motor component of cmpldw2
_cmp_1pac Data management model for 1-phase A/C performance model of cmpldw2
_cmp_dist Data management model for distribution equivalent of cmpldw2
_cmp_dgpv Data management model for PV distributed generation model of cmpldw2
_cmpldw Cmpldw data management model for a group (area, zone, owner, climate zone)
emac1t        Modified IEEE (1992/2005) type AC1A excitation system (AEP)
Deleted Dynamic Models
cmpldwx Preliminary modularized version of WECC composite load model (cmpldw,
cmpldwg)
_cmp_tran Data management model for static load component of cmpldwx
_cmpldwx Cmpldwx data management model for a group (area, zone, owner, climate zone)

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
 
 
 

PSLF MODELS LIST


 
 
_clod _cmp_1pac _cmp_der_a _cmp_dgpv _cmp_dist _cmp_elec _cmp_mot3 _cmp_stat  
_cmpldw _cmpldw2 agc2 alwscc ameta ametr apfl blindef  
blwscc boel ccbt1 ccomp ccomp4 ccst3 cdc6 chvdc2  
clod cmp_der_a cmpld cmpldw cmpldw2 cmpldwg colatr colatr2  
crcmgv dc2t dcbtb1 dcmt degov1 der_a diffrlyg diffrlys  
distrel emac1t epcdc epcexc epcgen epcgn1 epcgn2 epcgn3  
epcmd1 epcmd2 epcmd3 epcmod epctrb esac1a esac2a esac3a
esac4a esac5a esac6a esac7b esac8b esdc1a esdc2a esdc3a
esdc4b esst1a esst2a esst3a esst4b esst5b esst6b esst7b
estor2 ewtgfc ewtgfx ex21br exac1 exac1a exac1m exac2
exac3 exac3a exac4 exac6a exac8b exbbc exdc1 exdc2
exdc2a exdc4 exeli exeli2 exivo exoel expic1 exst1
exst2 exst2a exst3 exst3a exst4b exuel exwtg1 exwtge
fmeta fmetb fmetr focdt g2wscc gast gegt1 gencc
gencls genind genoostrip genrou gensal gensdo gentpf gentpj
genwri gewtg gewtgx ggov1 ggov2 ggov3 gp1 gp2
gp3(BETA) gpwscc gthev h6b h6bd h6e hvdcau hyg3
hygov4 hygov8 hygov hygovr hypid hyst1 ieeeg1 ieeeg3
ieeest ieeet1 ifmaz ifmon imetr lcfb1 ld1pac ldelec
ldtrpmon lhfrt lhfrta lhsrt lhvrt lhvrta lm2500 lm6000
lnrelscan locti lofscan lsdt1 lsdt2 lsdt3 lsdt3a lsdt7
lsdt8 lsdt9 lsmon ltc1 mexs monds mondsa monit
motor1 motorc motorld motorw motorx msc1 mslr1 msr1
mss1 mss2 oel1 ooslen ooslnq oosmho oosscan pfpb
pfqrg pidgov plefd plnow plref pltp pmetr pss1a
pss2a pss2b pss3b psssb psssh psssvc pv1e pv1g
pvd1 rect reec_a reec_b reec_c regc_a reloden repc_a
repc_b rexs scgap scmov scrx secld1 secld2 secld3
sexs smes1 socdt socti spfl stag1 stcon stcon1
svcwsc svsmo1 svsmo2 svsmo3 tcsc texs tgov1 tgov3
tiocrs tlin1 uclp2 uel1 uel2c upfc uvls1 vfmgen
vcr vfmetr vft vhvdc1(Beta) vmeta vmetr vphr1 vscdc
vscdc1 w2301 wlwscc wndtge wndvar wsccst vwscc wt1g
wt1p wt1t wt2e wt2g wndtrb wt2p wt1p_b wt2t
wt3e wt3p wt3t wt4e wt4g wt4t wt3g wtga_a
wtgp_a wtgq_a wtgt_a zdcb zlin1 zlin2 zlinw zmetr
zmetra zonedef zpott zqlin1 zqlin2      
 
PSLF MODELS LIST BY TYPE
 

    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            

    PRIME MOVER MODELS


               
ccbt1 ccst3 crcmgv degov1 g2wscc gast gegt1 ggov1
ggov2 ggov3 gpwscc h6b h6bd h6e hyg3 hygov4
hygov8 hygov hygovr hypid hyst1 ieeeg1 ieeeg3 lcfb1
lm2500 lm6000 pidgov stag1 tgov1 tgov3 w2301 wndtge
wndtrb              
               

    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          

    RELAY AND PROTECTION MODELS


blindef boel colatr colatr2 diffrlyg  diffrlys  distrel  exoel
exuel focdt genoostrip gp1 gp2 gp3(BETA) lhfrt lhfrta
lhsrt lhvrt lhvrta lnrelscan lofscan locti lsdt1 lsdt2
lsdt3 lsdt3a lsdt7 lsdt8 lsdt9 oel1 ooslen ooslnq
oosmho oosscan reloden socdt socti tiocrs tlin1 uvls1
vphr1 zdcb zlin1 zlin2 zlinw zonedef zpott zqlin1
zqlin2              
               

    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            

    USER WRITTEN MODELS


               
epcexc epcgen epcgn1 epcgn2 epcgn3 epcmd1 epcmd2 epcmd3
epcmod epctrb            

    WIND TURBINE GENERATOR MODELS


               
ewtgfc ewtgfx exwtg1 extwge genwri gewtg gewtgx reec_a
regc_a   repc_a repc_b wndtge wndtrb wndvar wt1g
wt1p wt1p_b wt1t wt2e wt2g wt2p wt2t wt3e
wt3g wt3p wt3t wt4e wt4g wt4t wtga_a wtgp_a
wtgq_a wtgt_a            

    SOLAR PHOTOVOLTAIC MODELS


               
_cmp_der_a cmp_der_a der_a ewtgfc gewtg pv1e pv1g pvd1
reec_a reec_b regc_a repc_a  repc_b      
               

    AGC/POWER PLANT CONTROL MODELS


               
agc2 pfpb uclp2 vcr        
               

    PLAY IN DATA MODELS


               
gthev plefd plnow plref pltp      
 

    ENERGY STORAGE MODELS


               
estor2 reec_c          
 
 
 
 
PSLF MAIN MENU COMMANDS
 
 
Main Menu Commands
 
 
acca actr annot check colors date dchk
dclf dctr dele difs dis disp drpl
drpr drsc dscn dsst dynam ecab ecom1
ecom2 ecom3 econ econd edit eepc eexa
efax epcl epole epti eqiv event exim
fault flow getf getm getmz grst init
isld isol lina losf loss manual misc
mism mmil olgr ordr outt outx parm
path phsf plot plsc rarea rate rcab
rcmf rcond rdws rdyd rdyp rede redi
redp repc rept rexa rmil rpli rpole
rpti rscp rseq rtiea rtiez run rvolt
rwsc rzone save savf scal scan scap
scsc scsf sel sele sel_edit sel_tabr select
sepc skel sol soln solv sort summ
tabr tarea tgcd titl tlc towner ttiea
ttiez tzone uedt usrt vlos vlv wdyd
wdyp wede wscp wseq      
 
PSLF COMMANDS AND FUNCTIONS
 
 
Main Menu Commands
 
dchk (data checking)
dscn (dynamic scan)
dsst (terminate a dynamic simulation run)
econ (economic dispatch)
  acca disp ecom1 ecom2 ecom3 losf
  rede redi redp skel wede  
edds (edit dynamic data)
edic (edit dynamic initial conditions)
eder (edit dynamic error file)
edmd (edit dynamic models)
edit (modify load flow data)
  dele sel   (See EDIT Tables Below)
epcl (user written EPCL program)
  (See EPCL Only Commands Below)
event (Dynamics events as recorded)
exim (load flow import/export data)
  eepc eexa epti rcmf repc rexa
  rpti rwsc        
getf (retrieve load flow save case)
init (dynamics initialization)
lina (linear analysis)
  actr dclf dctr efax    
manual (on-line manual)
misc (miscellaneous)
  date eqiv isld isol rdws rdyp
  scal usrt wdyp      
olgr (graphics one-line diagrams)
  drpl drpr drsc      
parm (parameters)
  annot check colors dis dynam fault
  path sel_edit sel_tabr select sol save
  vlv          
plot (plot results)
rept (formatted reports)
  difs loss outt outx rarea rate
  rtiea rtiez rvolt rzone summ  
rdyd (read dynamics data)
run (run in dynamics mode)
savf (save load flow/short circuit results)
scan (graphical bus topology)
scsc (short circuit)
  rscp rseq scsf wscp wseq  
sepc (standard epcl library)
solv (solve load flow)
  dclf ordr soln      
sort (sort edit tables)
tabr (table results)
  bint tgcd grst flow mism phsf
  scap tarea towner ttiea ttiez tzone
  vlos          
titl (display title)
tlc (transmission line constants)
  ecab econd epole rcab rcond rpole
uedt (user edit tables)
wdyd (write dynamics data)
 
 
 
EDIT Tables
 
load flow            
  area bface busd dcb dcc dcl
  gcd gens itface line load motr
  owner secdd shunt svd tap tran
  trans tztab zone      
dynamics            
  edds eder edic edmd event  
short circuit            
  bus0 gens0 load0 seccp0 secdd0 shunt0
  svd0 tran0        
economic            
dispatch
  curv edar gend grpd    
transmission            
line constant
(TLC)
  cabl cond line pole    
 
 
 
EPCL Only Commands
 
getm getmz mmil rmil rpli
sele        
 
 
 
PSLF Training Commands
 
fd_ssaa_ag dy_dsa_ag epcl_ag schd
sss_ag vs_ag    
 
 
 
 
 
PSLF EDIT TABLES
 
 
 
area bface bint brkr bus0 busd cabl
dcb dcc dcl edar edds eder edic
edmd gcd gend gens gens0 grpd itface
line load load0 motr owner pole qtable
seccp0 secdd secdd0 shunt shunt0 subst svd
svd0 tap tran tran0 trans tztab   vsc
zone            
 
 
 
 
Chapter 5
 
Programming in EPCL
 
 
 
 
5.1      The Main Idea
 
Quick Links to Your Favorite Sections
 
Printing Special Characters chap5 5.7.6
Intrinsic Functions   (sin,cos etc..) chap5 5.8
Interface Functions (azcalc, rec_index etc...) chap5 5.10
Sample EPCL Programs chap5 5.14
Standard EPCL Programs chap5 5.15
EPCL Warning & Error Messages chap5 5.16
Limitations and Rules Table 5.1
Dictionary of PSLF Variables Accessible from EPCL Table 5.2
LOAD FLOW DATA RECORDS LOAD FLOW
ECONOMIC DISPATCH DATA RECORDS ECONOMIC
DYNAMIC SIMULATION DATA RECORDS DYNAMIC
SHORT CIRCUIT RECORDS SHORT_CIRCUIT
ONE-LINE DIAGRAM DATA RECORDS ONE-LINE
TRANSMISSION LINE CONSTANT RECORDS TRANSMISSION
MISCELLANEOUS RECORDS MISCELLANEOUS
 
 
EPCL is a programming language.  It can be used to do calculations having no relation to PSLF, but it is designed
primarily to work in conjunction with PSLF. EPCL differs from ordinary programming languages in that it has direct
access to the data tables and processing functions of PSLF.  One could write a complete major function like a load
flow solution in EPCL but it's not intended for that. Rather, EPCL is intended to handle the many themes and
variations of data manipulations and report production that one may need to execute power system studies, given that
PSLF is a very efficient way of organizing the data base and executing the fundamental processes of power system
simulation.
 
The EPCL command subsystem of PSLF compiles and executes programs written in the EPCL language. Like
programs in other languages, EPCL programs are created outside of PSLF with a text editor and, like other programs,
may include comments, blank lines, and indentations for readability.  Files containing EPCL programs must have the
name suffix ".p".
 
EPCL programs can be quite large, but not of unlimited size.  The principal limitations on the size of EPCL programs
are listed in Table 5.1.
 
An extremely simple EPCL program is the single statement:
 
logterm("Hello World<")
 
This writes Hello World on your terminal screen and advances the cursor to the next line (the < is the new-line
character of EPCL).
 
A slightly more complicated program is:
 
  logterm("Type frequency (Hz), time constant (sec):")
  @ret = interm(@f, @tc)
  @w = @f * 6.2832       /* get radians per sec */
  @step = .025/@f         /* get a nice time step */
   
  @t = 0                          /* initialize time */
   
  for @k = 0 to 99
    @v = exp(-@t/@tc) * sin(@w * @t)  
    logterm(@t:8:3,">", @v:8:3,"<")  
    @t = @t + @step  
    next  
  end    
 
This little program calculates the value of a damped sine wave at 100 intervals and displays the results in a prescribed
format.  It has some of the key properties of a programming language:
 
·        it uses variables (names @f, @tc, @w, and so on) and constants (6.2832, 0.025)
·         
·        it reads data from an external source (the interm statement)
·         
·         
·        it evaluates expressions (@w = @f * 6.2832)
·         
·         
·        it executes looping logic (for/next statements)
·         
·         
·        it writes formatted output (@t:8:3 means the value of @t to 8 digits with 3 digits after the decimal
point) .
 
 
5.2      EPCL Language Definition
 
 
5.2.1   Notation
 
 
The following notation is used throughout the description of EPCL:
 
a)      Items which are optional in statements, commands, and functions are enclosed in square brackets (i.e. []).
 
b)      Items that represent a class or a general category, such as identifier, line number, file name, are enclosed  in
pointed brackets (i.e. <>).
 
c)      Items that may be enumerated, that is there are a fixed number of choices or alternatives in the category, are
enclosed in curly braces (i.e.  {}).  Alternation is always denoted with a vertical bar (i.e. |) between possible
alternatives.  For example, a category (denoted <category>) which would take on the possible values a, b, c,
or any possible value in a category called <d>, would be expressed as:
 
<category>={a | b | c | <d>}.
 
This statement means that an item would fit into <category> if and only if it is a, b, c, or a member of category
<d>.
 
5.2.2   Definitions
 
Category/Symbol Definition/Meaning
   
<cr> Carriage return
   
<file name> A legal file name:  file names consist of up to100 characters
(unix is case sensitive) with path specifiers being separated
by back slashes (slashes for unix).
   
<line number> A line number:  line numbers are integers which are created
by the EPCL processor when a program is loaded; when
lines are added or removed, the line numbers are shifted
automatically to reflect the change. The numbers are the
same as you would see in any text editor. Line numbers
serve as tags when referencing program lines.
   
<identifier> {<EPCL @ identifier> | <EPCL $ identifier> | <EPCL #
identifier> | <EPCL * identifier> | <PSLF identifier> }
   
<EPCL @ identifier> An EPCL real (numeric) variable name.
   
<EPCL $ identifier> An EPCL string variable name.
   
<EPCL # identifier> An EPCL real (numeric) array name.
   
<EPCL* identifier> An EPCL string array name.
   
The names of EPCL variables may include up to fifteen printable characters (excluding the
arithmetic operators).  The first character must be @, $, #, or * to indicate the type of  variable or
array.
   
<PSLF identifier> A PSLF variable name in the form
<table name>[<record index>].<member name>
  where <table name> and <member name> are the names
identifying a PSLF variable, and <record index> is the
position of the record of interest in the PSLF data table of
interest.  For example, the reactance of the transmission line
in record 37 of the line section table can be referred to as
the PSLF variable secdd[37].zse.  The names of the PSLF
data tables and their contents are listed in Table 5.2.
   
<subscript> {<integer> | <EPCL @ identifier> }
   
<constant> { <numeric constant> | <string literal> }
   
<numeric constant> A real number.
   
<string literal> A character string enclosed in double quotes.
   
<label> A label is a user defined logical tag associated with a
position in an EPCL program.  Labels may consist of up to
fifteen printable characters.
   
<rexpr> A relational expression.
   
<lexpr> A logical expression.
   
<mexpr> A mathematical expression.
   
<fn> A function name.
   
<relational op> { <  |  >  |  =  | <=  |  >=  |  != | <>}
  Last two operators mean not equal
   
<logical op> { and | or }
   
<math op> { +  |  -  |  *  |  /  }
   
<page format> { "<"  |  ">"   |  "?"  | "^" }
   
  Inclusion of "<" in an EPCL output statement produces a
new line and carriage return.
   
  Inclusion of ">" in an EPCL output statement moves the
writing position 8 spaces to the right.
   
  Inclusion of "?" in an EPCL output statement causes the
next line to begin a new page.
   
  Inclusion of "^" in an EPCL output statement produces a
double quotation mark.
 
 
5.3      The Connection to PSLF
 
 
The simple program above could be written in almost any language (Basic, Fortran, C, for example).  It does not need
to know anything about PSLF or any data from PSLF; it can be compiled and executed in isolation.  Now consider the
simple program:
 
 
  @kmin = -1
  @vmin = 9999.
  for @k = 0 to casepar[0].nbus-1
    if (vo lt[@k].vm < @vmin)  
    @vmin = volt[@k].vm  
    @kmin = @k  
  endif    
next      
logterm("Minimum voltage, index are ",@vmin," and ",@kmin,"<")
end      
 
 
This program is very different in style from the one in the preceding section because, in addition to using its own
variables, @vmin, @kmin, @k, it also refers to and uses data in the PSLF working case.  It uses the bus voltages,
referring to them by the name volt[@k].vm, and the number of buses, referring to it by casepar[0].nbus.  The
variables volt[@k].vm and casepar[0].nbus are references to members of records in the tables in the PSLF working
case.
 
This little program, then, searches the bus voltage table of the PSLF working case, finds the smallest bus voltage, and
prints its value.
 
 
5.4      Constants and Variables in EPCL Programs
 
We must now define the types of constants and variables that an EPCL program can use.  A constant in an EPCL
program can be either
 
·        a real number constant, such as
 
6.2832 or 1.0 or 752e6
 
or
 
·        a character string constant, such as
 
"Hello World"
"STATE_ST"
 
A character constant must be enclosed in double quotes, may include imbedded blanks, and may have from 1 to 14
characters including imbedded blanks (but excluding the enclosing quotation marks).
 
An EPCL program may refer to the following types of variables:
 
·        Scalar real number variables.  Their names must have the form @<name>, where <name> is a variable
name of 1 to 14 characters
 
e.g.  @t, @value
 
 
·        Real number array variables.  Their names and references must have the form
 
#<name>[<subscript1>][<subscript2>]
 
where <name> is an array name of 1 to 14 characters and the subscripts are real number constants or scalar real
number variables.  The second subscript is omitted in references to one-dimensional arrays.
 
e.g. #value[37]
  #value[@k][10]
  #t[1431]
  #t[@index]
 
·        Scalar character variables.  Their names must have the form
 
 
$<name>
 
where <name> is a variable name of 1 to 14 characters
 
e.g. $homebus
  $target
   
   
 
 
·        Character array variables.  Their names must have the form
 
·        <name>[<subscript1>][<subscript2>]
 
where <name> is an array name of 1 to 14 characters and the
subscripts are real number constants or scalar real number variables.
 
 
e.g. *buses[47]
  *buses[@index]
  *place_names[@where][2]
   
 
 
·        PSLF variables.  PSLF variables are referred to by names of the form
 
<name>[<subscript>].<member>
 
where
 
<name> is the name of a PSLF data table
   
<subscript> is a scalar real number constant or a  scalar real number
variable
   
<member> is the name of a member of the records comprising the
PSLF data table
e.g. busd[17].basekv
  busd[@k].busnam
  gens[@i].qmax
  casepar[0].nbus
 
The names of the PSLF tables that can be referred to by EPCL programs, and of their members, are listed in the PSLF
variable dictionary which appears at the end of this chapter as Table 5.2.
 
Scalar variables are declared in EPCL programs by being used in a statement.  It is the programmer's responsibility to
ensure that such variables are initialized by being the left hand side of an assignment statement or the argument of an
interm or input statement.
 
Array variables must be declared in a "dim" statement before being used.  The dim statement has the form
 
dim <t><name>[<size1>][<size2>]
 
where:
 
<t> is either # or *
   
<name> is the array name
   
<size1> is the number of elements in each column of the array
   
<size2> is the number of elements in each row of the array. This
argument must be present for two- dimensional arrays and
absent for all one- dimensional arrays
 
The array sizes declared in the dim statements in a program define the lower and upper limits on subscripts used to
address the arrays.  When an array is declared with a size of n, the allowable range of subscripts for addressing its
elements is
 
0   <= <subscript>  <  n
 
when a multi-dimensional array is declared with size [n][k], the range of subscripts for allowable addressing its
elements is
 
array [0  <=  <sub1>  <  n][0 <=  <sub2>  <  k]
 
If the array is a (*) array, the second subscript is taken as the length of the string in the array.  Otherwise the standard
32 character length is used.
 
Multiple arrays may be declared in a single dim statement.  It is strongly recommended that all dim statements be
collected at the front of the EPCL program.
 
e.g.  dim #newload[1000], *newname[1000]
 
 
5.5      Assignment Statements and Expressions
 
 
The most basic statement in an EPCL program is an assignment statement of the
form
 
<variable>  =  <expression>
 
where
 
<variable> is a variable of one of the types defined in Section 5.2
   
<expression> is an expression of variables, constants, and operators
whose result has the same type (real number, or character)
as <variable> (An expression involving logical operators
evaluates to a real value of 1 if true or of 0 if false)
 
 
Accordingly, if <variable> is a scalar real number variable or a real number array variable, <expression> must
evaluate to a real number, where true and false evaluate to real number values of 1 and 0 respectively.  If <variable>
is a scalar character variable or a character array variable, <expression> must involve only character constants and
character variables.
 
 
5.5.1   Assignment Expressions
 
EPCL evaluates arithmetic expressions according to standard rules of operator precedence and use of parentheses. 
Where precedence or parentheses do not define the order of execution the terms of an expression are evaluated in left-
to-right order.  The operator precedence order is:  first (* and /) then (+ and -).
 
 
5.5.2   Relational Expressions
 
Relational expressions take on the form
 
{<PSLF identifier> | <identifier> | <constant>} <relational op>
{<PSLF identifier> | <identifier> | <constant>}
 
 
The <relational op> is used to compare two values.
 
In addition, a numeric variable may be considered a boolean variable, any non-zero value is considered "true", and a
zero value is "false".
 
 
5.5.3   Logical Expressions
 
<rexpr> <logical op> <rexpr>
 
The <logical op> is used to connect two values.
 
e.g.  @value | < @total
 
 
5.5.4   String Expressions
 
EPCL $ variables and * array elements may be concatenated by the + operator.  The result may be assigned to a $
variable or * array element. If the result is a $ variable and the sum of the lengths of the component strings is greater
than 32, the concatenated string is truncated to 32 characters.
 
e.g. $name1 = "abc"
  $name2 = "def"
  $combine = $name1 + $name2
  then $combine = "abcdef"
 
 
5.5.5   Assignment and Variable Manipulation
 
 
5.5.5.1  Assignment
 
 
<identifier>={<mexpr> | <fn> | <identifier> | <constant>}
 
 
5.5.5.2  Array Dimensioning
 
dim <EPCL # identifier>[<number of elements1>][<number of elements2>]
 
Before an EPCL # array can be used in a program, it must first be dimensioned using the dim statement.    If one set of
brackets appear after the identifier, it is called a "single" dimensional array.  If two sets of brackets appear after the
identifier it is called a "double" dimensional array in which case the number of elements in the array is the product of
the 2 sizes.  Multiple arrays may be dimensioned in the same dim statement by separating the array identifiers and
sizes with comments.  In the case of the dim statement the item enclosed in brackets must be supplied.  For example,
to dimension two arrays, one called #test and the other called #numbers, to one thousand elements each, the required
dim statement would be:
 
dim #test[1000], #numbers[1000]
 
The subscripts for EPCL # arrays go from 0 to 1 minus the dimensioned size; the above arrays would have subscripts
from 0 to 999.
 
 
5.5.6   Define Statements
 
 
define  <text>  <text>
 
The define statement is used to perform macro-substitutions of one piece of text for another throughout the EPCL file.
The substitution is done at EPCL compile time, therefore care must be taken when using a variable or an expression
involving variables in the define statement. The <text> is substituted, NOT the value of the variable. For example, if
you wish to use the word MAXBUS for the value 8000 then you would declare the following define statement:
 
define MAXBUS 8000
 
If you wish to use the word var_name for the string abcdef, then you would declare the following define statement:
 
define var_name "abcdef"
 
 
5.6      Program Structure
 
EPCL programs are made up of sequences of assignment statements that are executed under the control of "if-endif"
(conditional), "goto-label" (branch), "switch-case" (conditional) and "for-next" (looping) statements. Their
practical use is best illustrated by example.
 
 
5.6.1   for-next (Looping)
 
 
for <EPCL @ identifier>=<mexpr> to <mexpr> [step <mexpr>]
         *
         *
         *
[quitfor]
         *
         *
         *
next
 
 
Quitfor statements immediately exit the innermost for loop.  Any number of quitfor statements may exist in any for
loop.
 
 
The looping construct of EPCL programs normally uses a scalar real number variable as its index, as in this example:
 
for  @k = 0 to 49
  #num[@k] = 100 + 5 * @k
  next
 
 
Here, the variable @k is used first with the value of zero and #num[0] is set to 100.  @k is then incremented, setting
#num[1] to 105, #num[2] to 110, and so on until #num[49] is set to 345.  The program then proceeds to the statement
immediately following the "next" statement.
 
 
5.6.2   if-else (Conditionals)
 
 
if (<lexpr>)
                *
                *
                *
[elseif]       
                *
                *
                *
[else]
                *
                *
                *
endif
 
 
If statements may be nested to any depth.  Only one else phrase may be associated with each if statement.
 
The conditional construct is usually used in connection with relational expressions like this:
if (busd[79].area = 15)
  @buses15 = @buses15 +1
else  
  @buses_ext = @buses_ext +1
  endif
 
This code would include bus 79 in the count of buses in area 15 if it is in that area, or otherwise in the count of other
buses.
 
The second part of the above construct is not required.  If the count of other buses is not needed, the code could be
shortened to
 
if (busd[79].area = 15)
  buses15 = @buses15 + 1
  @
  endif
 
Relational expressions may be combined by using a logical operator to connect two or more conditions. The logical
operators are "and" and "or".
 
if ((busd[79].area = 15) and (volt[79].vm > .95))
  @buses15 = @buses15 + 1
  endif
 
This code would include bus 79 in the count of buses in area 15 if it is in that area AND its voltage is greater than .95.
 
More than one condition may be tested with the "elseif" optional construct.  For example:
 
if (busd[79].area = 15)
  @buses15 = @buses15 + 1
   
Elseif (busd[79].area = 16)
  @buses16 = @buses16 + 1
else  
  @buses_ext = @buses_ext + 1
  endif
 
The conditional construct is often used within the looping construct like this:
 
for @k = 0 to casepar[0].nbus -1
  (code to be executed for all buses)
    if (busd[@k].area = 15)
  (code to be executed only for buses in area 15)
    endif
next  
 
The example above is fine in instances where something needs to be done for every value of the loop index.  The kind
of code outlined above would begood, for example, to set the value of bus voltage in all areas except area 15 to 1.0
and in area 15 to 1.03.  The detailed code be:
 
for @k = 0 to casepar[0].nbus -1
  volt[@k].va = 0.
  if (busd[@k].area = 15)
    volt[@k].vm = 1.0
    else
    volt[@k].vm = 1.03
    endif
next  
 
It is often necessary or advantageous to jump out of a loop. For example, if you search a list of records for the first
containing a given value, it is a waste of time to cycle through the loop after the desired record has been found.  The
correct way to jump out of a loop is to use the "quitfor"
statement, as in this example that searches for the first bus in area 17:
 
for @k = 0 to casepar[0].nbus -1
  if (busd[@k].area = 17)
    quitfor
    endif
next  
 
This code would increment @k until the first bus in area 17 is found and then jump out of the loop to the first
statement after the "next".  The value of @k would then indicate the index in the busd[] table of the first bus in area
17.
 
It may be advantageous to stay in a loop but skip a section of code.  The way to do this is to use the "continue"
statement.  This statement will increment the loop index and skip to the top of the loop.
 
For example:
 
for @k = 0 to casepar[0].nbus-1
  if (busd[@k].area = 17)
    continue
    endif
  .
  .(code to be executed if area not equal to 17)
  .
  next
 
This code would increment @k and execute the code after the if statement until the area is equal to 17 then it would
increment @k and skip the code after the "continue" statement.
 
 
5.6.3   The switch case construct and the goto label
 
switch(<lexpr>)
  case(<constant>):
                                  *
                                  *
                                  break
  .                             
                                  .
  case(<constant>):
                                  *
                                  *
                                  break
    default:
                                  *
                                  *
   
                                  break       
endcase
 
A "switch" statement is used to choose one set of program statements from several options.  A "switch" statement
has the form:
 
 
switch (var)
  case arg1:
        .     (code section 1)
        .
    break
  case arg2:
        .      (code section 2)
        .
    break
  .
  .
    break
  case argn:
        .     (code section n)
        .
    break
  default:
        .       (default code section)
    .
    Break
endcase
 
 
var may be any EPCL or PSLF program variable.  arg1 ... argn may be either a number or single character (not an
EPCL @ variable). If var or arg is a character it must be enclosed in double quotation marks.  The "switch"
statement works in the following way:
 
var is compared to arg1, if they are equal, code section 1 is executed.  The "break" statement takes execution of the
program to the code following the endcase statement.  If var does not equal arg1, var is be compared to arg2,  and
so on to argn.  If none of these arg's, are equal to var, the code following the optional "default" statement will be
executed.
 
The last program control construct of importance is the "goto-label" pair.  A label statement has the form:
 
label <labelname>
 
where <labelname> is any name of up to 14 characters, the first of which is alphabetic.  The goto statement has the
form:
 
goto <labelname>
 
and transfers control to the statement immediately following the named label statement.  The goto construct should be
used sparingly, but is often useful where one needs to return to a place in the program ahead of one's present location.
CAUTION - do not use a goto inside a subroutine.
 
Labels may be anywhere in relation to the goto(s) referencing them. Labels can occur anywhere.
 
goto <label>
                *
                *
                *
label <label>
 
A good example is code to read data until some key value is entered, and then proceed.  You might want to enter a
sequence of values of bus number and voltage, continuing until you use a number of -1 to signal the end of the
sequence.  You could do this as follows:
 
 
label readit
logterm("Type bus no and voltage: ")
@ret = interm(@busno, @voltage)
if (@busno >= 0)
   
  @k = bix(@busno)
  volt[@k].vm = @voltage
  volt[@k].vr = @voltage
  volt[@k].vi = 0
  goto readit
  endif
 
 
This code accepts entries from the keyboard and uses them as long as the first item is not negative; if the first item is
negative it goes on to the statement immediately after the endif.
 
NOTE: The normal assignment as shown in the above discussion does not hold for the date_in and date_out fields for
appropriate records (e.g. busd, gens etc.) To edit date changes it is recommended to use the EPCL function datarec. A
sample statement is shown below:
 
@iret=datarec(1,3,54006,"1","date_out", "20390101")
 
 
5.6.4   Subroutine
 
 
gosub <label>
                *
                *
                *
subroutine <label>
                *
                *
                *
return
 
 
Subroutine definitions may be anywhere in relation to the gosub(s) calling them; however, subroutine definitions
cannot be nested inside any other type of program block.  Subroutine calls may be nested to 30 levels deep.CAUTION
- do not use goto inside the subroutine program.
 
 
5.6.5   Program Termination
 
 
end
 
 
5.7      Input and Output Statements
 
 
5.7.1   Keyboard - Terminal Operations
 
The terminal output statement has the form
 
logterm(<identifier>:<chars>:<places>,...)
 
 
and may have many items separated by commas, where
 
<identifier> is the name of an EPCL @, $, #, or * variable or of a PSLF
data table variable
 
e.g.  @a, busd[@k].area
 
 
<identifier> is the value of a real number or character constant
<chars> is the total number of characters to be used to display
<identifier>
<places> is the number of digits to be placed to the right of the
decimal point when displaying a real number (<places>
is ignored when displaying a character variable or
character constant)
 
The code
 
@a = 2.376512
@b = 3.
logterm(@a, "   ", @b)
 
 
would display
 
2.376512   3.000000
 
The code
 
@a = -2.5941712
@b = 4.
logterm(@a:6:2, "   ", @b:4:0)
 
would display
 
-2.59      4.
 
The spacing of quantities on the output line and the use of successive lines is controlled by special character constants
as follows:
 
? begins a new page (form feed)
>  tabs output to the next tab mark
<  begins a new line
^ outputs double quotation marks
 
thus
 
@a = 1.832164
@b = 16.51364
logterm("Number", @a:5:2)
 
 
logterm("Value", @b:7:3)
 
would write
 
Number 1.83Value 16.513
 
and
 
 
@a = 1.832164
@b = 16.51364
logterm("Number ", @a:5:2, "<")
logterm("Value ", @b:7:3, "<")
logterm("End<")
 
would write
 
 
Number 1.83
Value 16.513
End
 
and
 
 
@a = 1.832164
@b = 16.51364
logterm("Number ", @a:5:2, ">")
logterm("Value ", @b:7:3", ">")
logterm("End<")
 
would write
 
 
Number 1.83     Value 16.513    End
 
Input from the terminal keyboard is handled by the interm() statement whose form is
 
 
@ret = interm(<variable1>, <variable2>, ...)
 
where variable identifies an EPCL @, $, #, or * variable or a member of a PSLF data table.  For example:
 
 
@ret = interm(@a, @b, $c, #value[17], busd[5].area)
 
This statement reads values of some or all of the five variables from the keyboard.  The keyboard entry must follow
these rules:
 
·        Items must be separated by blanks or commas
 
·        Character variables must be enclosed in double quotation marks
 
·        A carriage return terminates the keyboard entry and leaves variables for which values have not been
typed unchanged.
 
A valid keyboard line for the above statement would be
 
 
3.62   1.3712   "Fred"   4.   73<CR>
 
An entry at the keyboard, in a subsequent execution of this statement, might be
 
 
4.925  7.613   "Jack"<CR>
 
This would leave the values of #value[17] and busd[5].area unchanged.
 
Note that the format control entries, <chars> and <places>, that are used in the logterm() statement are not used in
interm() statements.
 
The return values for the interm() statement are as follows:
 
 
@err    =        interm (...   )
@err > = 0   indicates success,
     @err is the number of items read from the terminal
 
 
5.7.2   Open Input File
 
 
@return = setinput(<filename>)
@return = setinputb(<filename>)
 
The setinput statement opens a text file for reading. The setinputb statement opens a binary file for reading.  The
<filename> argument should be an EPCL string variable whose value is the name of the file.
 
For example, to read from a file named test.in use
 
 
$file = "test.in"
@return = setinput($file)
 
If the file does not exist the function fails.  If the file exists but is not open it is opened with the file pointer at the first
record.  If the file is already open it is left open and the file pointer is repositioned at the first record.
 
The return values for the setinput() statement are as follows:
 
@err = setinput (<filename>
 
 
@err =   -1 if the file could not be opened, in which case input is taken from the
keyboard
  0 if the file is already opened, in which case the reading pointer is
returned to the beginning of the file if the file was opened successfully
 
 
5.7.3   Open Output File
 
 
@return = openlog(<filename>)
@return = setlog(<filename>)
 
@return = openlogb(<filename>)
@return = setlogb(<filename>)
 
The openlog and setlog statements open a text file for writing and/or reading. The openlogb and setlogb statements
open a binary file for writing and/or reading. The <filename> argument should be an EPCL string variable whose
value is the name of the file.
 
openlog and openlogb open the file with the pointer at its first record if the file is not already open, and repositions the
file pointer to the first record if it is already open.  Writing operations following openlog or openlogb will overwrite
any existing contents of the file.
 
setlog and setlogb will open the file with the pointer behind the last record and will append all future records.
 
The return values for the openlog() statement are as follows:
 
@err = openlog (<filename>)
 
 
@err =   -1   if the file could not be opened, in which case output is directed to
the terminal
  0   if the file was opened successfully, in which case the writing
pointer is set to the beginning of the file
 
 
 
The return values for the setlog() statement are as follows:
 
@err = setlog (<filename>)
 
 
@err =   -1   if the file could not be opened, in which case output is directed to
the terminal
  0   if the file was opened successfully, in which case the writing
pointer is set to the end of the file
 
 
5.7.4   Input
 
@return = input($filename, <arg1>[, <arg2>,..., <argn>]) Reads input from a text
file
@return = inbin($filename, <arg1>[, <arg2>,..., <argn>]) Reads input from a binary
file
@return = inline($filename, <arg1>) Reads one line of text as
is
@return = interm(<arg1>[, <arg2>,..., <argn>]) Reads input from the
terminal
@return = inbuf(<string>,<arg1>[<arg2>,..., <argn>]) Reads input from the
buffer
 
For all of the above except inline, <arg>'s may consist of EPCL @, #, $, or * identifiers, and PSLF identifiers. For
inline <arg1> must be either a $ or a * variable. <arg>'s are separated by commas. On a line of input, values are
separated by spaces or tabs.  EPCL $ variable values must appear within double quotes if they contain embedded
blanks.  In EPCL, # or * - type variables can be read as a range with the EPCL functions input, interm or inbuf by
using between the range. 
 
Example:        @return=inbuf(*inp[],#rng[0…9])
 
The return values for the input() statement are as follows:
 
@err = input (...   )
 
 
@err =   -2   if the file is not open
  -1   if at the end of file
  >= 0   indicates success, @err is the number of items read from the file
 
The return values for the inline() statement are as follows:
 
@err = inline (...   )
 
 
@err =   -2   if the file is not open
  -1   if at the end of file
  >= 0   indicates success, @err is the number of items read from the
file
 
Note: Both input and inline statements will read one line up to 511 characters long (see Table 5.2). Use of multiple
input or inline statements to read lines greater than 511 characters may lead to incorrect reads.
 
5.7.5   Output
 
logprint($filename, <arg1>[, <arg2>,..., <argn>]) Write output to a text
file
logbin($filename, <arg1>[, <arg2>,..., <argn>]) Writes output to a
binary file
logterm(<arg1>[, <arg2>,..., <argn>]) Writes output to the
terminal
logbuf(<string>, <arg1:chars>:<places>[<arg2>...<argn>]) Writes output to the
buffer
logdy(<arg1:chars>:<places>[<arg2>...<argn>]) Writes output to the
dynamics log file
 
logterm writes output to the terminal screen. logdy writes output to the dynamics log file which is opened by the PSLF
dsin() command. The logprint and logbin statements write output to the text or binary file identified by the $filename
argument. The $filename must be an EPCL string variable whose value is the name of the file, and the file must have
been opened with a setlog, openlog, setlogb, or openlogb statement.
 
<arg>'s may consist of EPCL @, #, $, or * identifiers, PSLF identifiers, numeric constants, or string constants. <arg>'s
are separated by commas. Output of variables and numeric constants may be formatted (for text files) by following the
<arg> with a format specifier of the form:
 
<arg>:<width>[:<places>]
 
where <width> is an integer reflecting the maximum allowable field width and <places> is an integer reflecting the
number of places after the decimal point.  When applied to numbers, format specifiers cause the value to be right-
justified in the field.  When applied to strings, the value is left-justified in the field.  The <places> specifier has no
meaning for string values.
 
Note: There is a limit of 511 characters on the length of <string> that can be written to via the logbuf command. In
addition each <arg> is recommended to be at most 255 characters in length.
 
 
5.7.6   Printing Special Characters
 
Special characters ", <newline>, <tab>, and <pagefeed> may be included in the output stream by placing characters in
the output list as follows:
 
To write a <newline> put a < in the argument
   
To write a <tab> put a > in the argument
   
To write a " put a ^ in the argument
   
To write a <pagefeed> put a ? in the argument
 
Special characters (all but |) may be output by preceding them with the tilde character. The tilde character may be
thought of as a filter in a log statement. Do not filter a string twice; you may log with a special character and then
perform a system call, but you should not use two log statements consecutively if they have special characters in them.
 
logterm("Enter filename ~?")
 
 
5.7.7   Close File
 
 
@return = close (<filename>)
 
The close statement closes a file that has been opened with openlog or setlog.  All files opened by an EPCL program
are closed automatically when the program terminates.
 
 
5.8      Intrinsic Functions
 
 
All of these functions have return values.
 
5.8.1   Real number expressions in EPCL functions may use the following intrinsic functions:
 
Function Invocation Value Returned
   
sin(@x) sin x (x is in radians)
cos(@x) cos x (x is in radians)
tan(@x) tan x (x is in radians)
sec(@x) sec x (x in radians)
csc(@x) csc x (x in radians)
cot(@x) cot x (x in radians)
arcsin(@x) sin-1 x (return value in radians)
arccos(@x) cos-1 x (return value in radians)
arctan(@x) tan-1 x (return value in radians)
sinh(@x) sinh x (x in radians)
cosh(@x) cosh x (x in radians)
tanh(@x) tanh x (x in radians)
sech(@x) sech x (x in radians)
csch(@x) csch x (x in radians)
coth(@x) coth x (x in radians)
asinh(@x) sinh-1 x (return value in radians)
acosh(@x) cosh-1 x (return value in radians)
acsch(@x) csch-1 x (return value in radians)
atanh(@x) tanh-1 x (return value in radians)
acoth(@x) coth-1 x (return value in radians)
sqrt(@x) square root of x
hypot(@x, @y) square root of (x**2 + y**2)
exp(@x) e**x
ln(@x) natural log of x
log(@x) log to base 10 of x
abs(@x) |x|
round(@x,@p) round off x to p places (negative=left of decimal point,
positive=right of decimal point and zero=round to
whole number)
pow(base, exp) returns base raised to the exp power
mod(@x, @y) returns the remainder of @x/@y
fact(@x) returns the factorial of x
idiv(@x, @y) integer division of x/y
@z = idiv(9/2) would return 4
bnot(@x) returns bitwise not of x
band(@x, @y)
returns bitwise and of x and y
bor(@x, @y) returns bitwise or of x and y
bxor(@x, @y) returns bitwise exclusive or of x and y
ceil(@x) rounds x upward, returning the smallest integral value
that is not less than x
floor(@x) rounds x downward, returning the largest integral value
that is not greater than x
sgn(@x) returns sign of x (-1 if x is negative, 1 if x is positive or
0 if x is zero)
iif(@x=@y, @a, @b) conditional expression; returns @a if @x = @y,
otherwise this returns @b
min(@x1,@x2,@xn) returns min of values in this list where n can be
 
maximum of 20
min(@x1,@x2,@xn) returns max of values in this list where n can be
 
maximum of 20
   
 
The arguments of these functions must be either EPCL @, or # variables, or PSLF variables that are real numbers.
 
e.g.     @mva     = hypot(@flop, @floq
  @current = hypot(flox[7].p, flox[7].q)/volt[15].vm
  @phase   = arctan(@q/@p)
 
e.g.     @mva     = iif(gens[2].mbase=100.0, gens[2].pgen*1.5, gens[2].mbase)
 
@max     = max( 1, 2, 3)
@max     = max( 1,2, 3, 4 )
 
@min     = min( 1, 2, 3)
@min     = min( 1,2, 3, 4 )
   
   
 
 
5.8.2   Combinations of real number and string expressions in EPCL functions may use the following intrinsic
functions:
 
Function Invocation Value Returned
   
atof(string) convert string to a floating point number
to convert a number to a string use logbuf
@month = 11
@day = 5
@year = 2001
e.g. logbuf($name,@month:2:0,"/",@day:2:0,"/",@year:4:0)
   
atof3(string,@x,@y) start at character @x of string and use @y number of
characters for atof
   
strlen(string) returns the length of string
   
system(string) passes string to the command processor of the
operating system
   
findstr(str1,str2) returns the index of the first character of str1 that
matches str2 or a -1 if not found
   
format(thing,@x,@y)
returns a formatted string, which is thing (string or
number) formatted @x characters wide with @y
decimal places
   
getstr(string,@x,@y) returns a sub-string of string starting at position @x
with @y characters wide
   
ascii(@x) returns the string equivalent of @x
   
decimal(string) returns the decimal equivalent of string
   
toupper(string) returns string converted to upper-case
   
tolower(string) returns string converted to lower-case
   
istrue($string) returns 1 if the input string has value true, or t or y or
yes or connected or closed. Otherwise the function
would return false
 
The arguments of these functions must be either EPCL @, #, $, *, or PSLF variables.
 
The functions atof and atof3 return the real number value of string.  String may contain only +, -, ., and the ten digits.
The function system returns 0 if the command was successfully executed, non-zero otherwise.
 
The functions getstr, ascii, toupper and tolower all return either $, * or PSLF string variables.
 
The function format returns the formatted string. The function may be embedded in other statements such as, logterm
and logprint. It is useful when you want the formatting numbers to be variables.
 
 
e.g.     @width = 6
  @decimals = 3
  @thing = 12.34567
   
  logterm("This number is formatted,format(@thing,@width,@decimals),"<")
 
 
5.9      EPCL Subroutines
 
An EPCL program can call subroutines as illustrated by the following example
 
 
  dim #count[100]
  @k = 0
  @area = 0
  gosub startup
  gosub count
  gosub print
  end
   
  subroutine startup
    for @k = 0 to 99
      #count[@k]=0
    next  
    return  
   
  subroutine count
    for  @k = 0 to casepar[0].nbus -1
      @area = busd[@k].area
      #count[@area] = #count[@area] +1
    next  
    return  
       
  subroutine print
    for @k = 0 to 99
      logterm("Area", @k:4:0, "has", #count[@k]:6:0,
"buses<")
    next  
  return    
 
 
Subroutines are a convenient way to separate blocks of code in an EPCL program. They facilitate the reuse of EPCL
code in new programs and they improve the readability of the code of larger EPCL programs.
 
All EPCL subroutines called by an EPCL main program must be contained in the same program file (".p" file) as the
main program.  All EPCL scalar(@, $) and array (#, *) variables appearing in the file are global with respect to the
main program and all subroutines in the file.  EPCL array(#, *) variables must be declared in dim statements in the
main program and dim statements must not appear in subroutines. All scalar(@, $) variables used in subroutines must
be initialized in the main program.
 
A common pitfall in languages where all data is global is to forget that scalar indexes, such as @k in the above
example, that are used very locally in subroutines are really global variables and that changing a variable in one
subroutine does change it in all other subroutines and the main program.  Be careful, name variables that are intended
to have global significance differently from variables that are intended to be reusable local loop indices and
intermediate results.
 
EPCL subroutines can call other subroutines up to 50 levels deep, but an EPCL subroutine must NEVER call itself.
 
 
5.10    PSLF Interface Functions
 
5.10.1   General
 
The EPCL subsystem provides a number of functions that allow an EPCL program to perform operations that users
can do from their keyboard through the PSLF data editor and menus.
 
A function is invoked by an assignment statement of the following form:
 
<return value>=<function name>([arg1],[arg2] ... [arg3])
 
Note: ALL of these functions have return values EXCEPT editcol() and edit().
 
 
5.10.2   External Bus Numbers and Bus Indices
 
PSLF Interface Functions must recognize the distinction between bus index and bus number.  All data stored in the
PSLF working case refers to buses by the indices of the buses.  For example, the generator record contains the member
gens[].ibgen which is the bus index of the bus at which the generator is connected.  The bus index is the position of
the record describing the bus in the busd[] table.  If gens[17].ibgen is 491, then the generator described by the 18th
record in the gens[] table is connected to the bus described by the 492nd record in the busd[] table.
 
Human users of PSLF normally do not find it convenient to work with bus indices because these are always
consecutive from 0 to <number of buses-1> while load flow work normally identifies buses by non-consecutive
numbers or by <name> + <base voltage>.  To permit use of "human" numbers and/or names, PSLF stores an external
number, a name, and a base voltage as attributes of each bus.  All displays of bus identity by PSLF intended for
human users are in terms of these three bus attributes.  Note that the external bus number is a special form of bus name
and does not specify where references to a bus can be found in the PSLF data tables.
 
In the example above, then, the external bus number, busd[491].extnum, of the bus at which the generator is located
might be 7305.  Then
 
·        A person sees the generator connected at bus 7305 and finds, on looking at the gens table, that this
generator is the 18th in the system
 
·        PSLF knows that the 18th generator is connected to the 492nd bus.
 
PSLF allows external bus numbers of any size.
 
When a human reference to a bus is presented to PSLF in the form of an external number or <name> + <base
voltage>, it must be translated into the corresponding bus index.
 
There are three standard ways to do this:
 
·        When an external bus number is presented, the corresponding bus index can be looked up by calling
the translation function bix() as follows
 
@bus_index = bix(@external_no)
 
When an a <name> + <base voltage> is presented, the corresponding bus index can be obtained by calling the
translation function number() as follows
 
@bus_index = number(<identifier>)
 
where
 
 
<identifier> is the <name> + <base voltage> enclosed in double quotation marks
 
·        Some of the EPCL functions described below can translate external numbers to bus indexes
themselves and can be presented with external numbers when an "external number" flag is set.
 
 
5.10.3   Automatic Execution of an EPCL Program Through a PSLF Command
 
Sometimes it makes sense to run an EPCL program before and/or after a command everytime it is executed. If a sub-
directory named "EPCLcom" exists in any of the PSLF search paths and a file is in it called <command_name>_pre.p,
this 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 command displayed in the PSLF menus. This function is
available through menu mode only.
 
For example:
 
To check for unequal taps in parallel transformers AFTER every solution do the following:
 
1.     Outside of PSLF create a subdirectory called EPCLcom.
 
 
mkdir EPCLcom
cd EPCLcom
 
2.     Use an editor to create a file called solv_pst.p
 
For UNIX Users:
 
vi solv_pst.p
 
 
      NT/WINDOWS users:
 
      Open Textpad
      File
      Save As     solv_pst.p
 
3.     Make it contain the following EPCL code:
 
 
  for @i = 0 to casepar[0].ntran-1
    @type = tran[@i].type
    @rem =  mod( @type, 10 )
    if( @rem <> 2 )      /* must be a tcul */
      Continue
    Endif
    @from = tran[@i].ifrom
    @extfr = busd[@from].extnum
    @to   = tran[@i].ito
    @index = @I
  label nextone
    @index = next_index( 2, @extfr, "**", @index )
    if( @index < 0 )
      continue
    endif
    if( tran[@index].ito = @to )
    if( tran[@i].tapp <> tran[@index].tapp )
  logterm("Unequal tap ratio from ",busd[@from].extnum:6:0)
  logterm(" to ",busd[@to].extnum:6:0)
  logterm(" changing from ",tran[@index].tapp," to ",tran[@i].tapp,"<")
    tran[@index].tapp = tran[@i].tapp
      endif
    endif
    goto nextone
  next  
  end  
 
 
4.     Save and exit the editor.
 
5.     Go back to your working directory.
 
6.     Execute the solv command from the PSLF menu, the file solv_pst.p is run automatically.
 
 
5.10.4   Function Descriptions
 
Each function description is a sub-section of this section 5.10.4, and, for convenience in reference, is started on a new
page.
 
 
Function Descriptons
   
add_del_injele Used to add or delete an element in an injection group
 
add_del_injgrp Used to add or delete an injection group
 
adjareazone Returns the number of adjacent areas or zones to the
one passed to it
 
adjbuses returns the number of adjacent buses connected to
<bus> and stores the actual external bus numbers into
the EPCL return value array.
adjsubst Returns the number of substations and buses without
any substation assignment that are adjacent to a give
substation
   
azcalc() and azcalc() executes calculations of totals that can be
azget() 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().
   
beep() Call this function to generate the beep tone from your
program
   
bix() If you have an external bus number, the corresponding
bus index can be looked up by calling the translation
function bix() as follows
   
buildeff() 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
   
busident() 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 6 characters wide.
  Bus name 12 characters wide.
  Basekv 6 characters wide, 2 decimals.
     
  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 the busident parameters ( busident
parameters).
   
change_dir() 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.
   
create_op_dyd Used to create a DYD file for the operations case by
linking the planning SAV and DYD with the operations
powerflow based on specified mapping
 
createsubsystem To carve out and create 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
 
datachange() The function is used to modeify the data of an existing
element in the working case
datarec() The function is used to add a new element to the
working case
 
   
date() This function allows you to time and date stamp reports
being constructed by EPCL programs.
   
deleterec() This function is used to delete an existing element from
the working case
 
dynautodebug This function can be used to help debug the dynamic
simulation
 
dspost() This function can be used to change load flow data for
post transient conditions.
   
editcol() and edit() Once every column in the edit table has been described,
you may use the edit() command to display the data.
   
EPCL() 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
   
flow() 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_index() 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.
   
flowcalc() The flowcalc() command calculates the flow on every
branch of the system and places these results in the
flox[] table.
 
flowcalcd() 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.
 
flowd() The flowd() function is the same as flow() but
calculates flows using the “dc” load flow modeling
assumptions.
   
getmodpar() and The getmodpar() function returns the value of the
setmodpar() 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.
   
getpslfver A function to return the PSLF major or minor version
 
ifcalc Executes calculations of flows on bface and iface total
flows
   
ins(), del(), rep() 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>.
 
irand This EPCL function would return a random number
between 0 and 32767.

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.
 
 

1.5.1   Panel Definition Files


 
These files define the PSLF program’s panels.  These files must not be moved or changed in order for the PSLF program
to work correctly.
 
File: option.dat
   
Function: Defines Main Dialog Option Panels
 
File: parm.dat
   
Function: Defines The PSLF Program Parameter Panels
 
 
1.5.2        PSLF Initialization File
 
File: javaini.p
   
Function: Defines The PSLF Program Initialization Setup
 
The javaini.p file is read by the EPCL language processor.  PSLF looks for javaini.p each time the program is started up. 
The parameter values from the file replace the internal default values built into PSLF.  Therefore, javaini.p allows the
user to set up the PSLF program to suit their own preferences with respect to the load flow solution, limit checking,
dynamics, and path parameters, as well as setting up the display, window and font parameters.
 
When modifying javaini.p, the file 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 javaini.p in the C:\upslfxx\ directory.  The user should have a
basic understanding of the EPCL program language before modifying this 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

      Toolbar, Subtoolbar and Panel Color Schemes


      OLGR/SCAN Settings

      Main Menu, Edit Table and OLGR Window Sizes


      OLGR GEDI/SWITCH Settings

      Printing Preferences


 
PSLF will look for the file font-color in the current working directory.  If this file does not exist, it will be created with
default settings.  Upon exiting the PSLF program, any setting changes will be overwrite the existing font-color file in the
working directory.
 
 
 
1.5.4        Voltage Levels File
 
File: pslf.vlv
   
Function: Defines Voltage Level Bands
 
Several PSLF reporting commands use pslf.vlv to define voltage levels present in the power system.  pslf.vlv contains up
to 30 records, each of the form:
 
<voltage level> <color index>
 
<voltage level> A nominal system voltage level in kV that will be
recognized by PSLF in reporting losses by voltage level,
coloring system diagrams, and other reporting functions.
   
<color index> The color number 0-15 (Defined in File vlv.color)
 
PSLF looks for the file pslf.vlv each time it is started up. pslf.vlv may be edited to alter the recognized voltage levels.  It
may contain up to 30 records terminated by a record containing 9999 and the voltage values must be in ascending order.
 

 
 
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.
 
 

2.6      Program Operation


 
2.6.1   The Main Menu
 
Once the user has modified any files they deem necessary (see Chapter 1) and the program is started, the PSLF Main Menu
Window will appear.  The Main Menu Window is shown below:
 

 
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.
 

2.6.7   File Paths


 
PSLF reads and writes many files of various types during a typical session of use and it is not always convenient to keep
all of these files in the current working directory.  For example, the standard epcl programs that are used frequently with
PSLF are normally kept in the directory c:\upslfXX\samples for windows and /usr/pslfXX/samples. While users could copy
some or all of these epcl programs into their own working directory and access them there, this leads to unnecessary
proliferation of copies of the epcl files, and to possible confusion as to whether an obsolete version is being used. 
Similarly, users may want to retrieve all of their load flow history files from a "community" directory /home/basecases, but
to write new history files into their own working directory.
 
PSLF allows you to handle this by specifying default file paths to be used in retrieving and writing files.  The file paths are
specified through the file paths panel of the parameter management command, parm which is an option under File. 
 
 
 
The file paths panel looks like this:
 

 
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

(Bmin, Bmax) is used, thus abandoning the Slow B control.


c.        If the required B is less than Bminsb, the same actions are performed in the opposite direction.
                                i.       The scheduled voltage is adjusted upward using the following logic:

      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

element (Bmin, Bmax) is used, thus abandoning the Slow B control.     


.
d.      If the solution oscillates beyond the range of Bminsb and Bmaxsb more than once, the Slow B control is
abandoned (full Bmin to Bmax range is used).
e.        An automatic acceleration or deceleration of the Vsched changes is included to improve convergence.
 
2.      Slow B Logic: (Bminsb = Bmaxsb) After solution converges to 10 times the mismatch tolerance and no further shunt
switching actions occur:
In this case, B is set to Bmaxsb (= Bminsb) as long as the voltage is within the range of Vrefmin to Vrefmax;
otherwise, the voltage reference is set to the limit value that was violated and Slow B control is abandoned (full Bmin
to Bmax range is used).
 
Type 6 Controlled Shunts
 
A Type 6 SVD is nearly the same as the Type 5 except that all limits are considered to be current limits rather than
susceptance limits. This is for representation of STATCOM systems incorporating a continuous element with voltage-
source converter.  This model includes the features of the WECC SVSMO3 STATCOM model. In this model, the “slow
B” control is used to emulate either slow current reset or deadband control of a STATCOM.
 
The following data must be specified for each Type 6 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> 6
<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 susceptance, p.u.
<bmin> not used
<bmax> maximum reactive current 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 B” control status:  1 = active; 0 = inactive
<bminsb> not used. (Current reset or deadband target is assumed to be
0.)
<bmaxsb> not used
<vrefmin> Current reset or deadband minimum voltage, p.u.
<vrefmax> Current reset or deadband maximum voltage, p.u.
<dvdb> p.u. change in V / p.u. change in I (should be approx. equal
to the 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 6 SVDs are active if the SVD adjustment flag is non-zero in the load flow solution.  If SVD adjustment is 0, Type 6
SVDs are held at their input value of reactive current.
 
Control with <type> = 6 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 + Xc*Isvd.  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 Type 6 SVD
regulates the specified voltage using the range Beffmin to Beffmax, determined internally by the program as follows:
 
Beffmin = –“Bmax”/V + 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”/V + 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
where “ “ indicate quantities are actually currents; V is voltage at SVD terminal.
 
3.      Shunt switching: After convergence to 10 times the mismatch tolerance, one of the following occurs:
a.  If the required reactive current (B*V) is within the range of “Bminsh” to “Bmaxsh”, the switched shunts are kept
at their initial status and the solution continues to convergence to determine the final value of the continuous
element.
 
b.      If the required reactive current (B*V) 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 reactive current (B*V) is within the “Bmin” to “Bmax” range of the continuous element or
until one of the limits is reached.
 
c. 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 <type> = 6 with “Slow B” control ACTIVE
 
If the “slow B” control is active, it will attempt to hold the current of the continuous element at zero, 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 current of the continuous element is held at zero as long as the voltage is
within the range of Vrefmin to Vrefmax; otherwise, the voltage reference is set to the limit value that was violated and
“Slow B” control is abandoned (full “Bmin” to “Bmax” range is used). This represents slow current reset control with I =
0.  target.  It also can represent deadband control assuming the starting current level is 0.
 
Type 7 Controlled Shunts
 
A Type 7 SVD is nearly the same as the Type 5 except that the “continuous” element (Bmin to Bmax) is replaced by
several switched shunts, which can be combined in any combination to come as close as possible to the required B.  This
is for representation of systems employing Thyristor-switched capacitors and reactors with no continuous element. This
model includes the features of the WECC SVSMO2 TSC/TSR model.
 
The following data must be specified for each Type 7 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> 7
<kreg> Regulated bus of SVD (If Xc is non-zero, kreg is ignored
and the terminal bus is regulated.)
<g> constant real per unit admittance associated with this SVD
<b> user-specified, or most recently computed susceptance,
p.u.
<nstepi> number of equal admittance steps in i-th switched element
<bstepi> susceptance of each switched element in i-th stage
<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 B control status: 1 = active; 0 = inactive
<bminsb> Slow B minimum B, p.u.
<bmaxsb> Slow B maximum B, p.u.
<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
 
A Type 7 SVD may use up to 10 stages of Thyristor-switched admittance elements. Unused stages must have the values
of nstep set to zero. Each stage may have any number of steps. However, for compatibility with the dynamic SVSMO2
model, the total number of discrete elements should be limited to 8.
 
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).
c.        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 Type 7 SVD
regulates the specified voltage using the range Beffmin to Beffmax, determined internally by the program as follows:
 
Beffmin =  sum of B of all Thyristor-switched inductive elements
+ 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 =  sum of B of all Thyristor-switched capacitive elements
+ 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 Thyristor-switched B.
 
b.      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
range of the Thryristor-switched shunts or until one of the limits is reached.
 
4.      After convergence to twice the mismatch tolerance and after all discrete switched devices have stopped switching, the
B is set to the combination of Thyristor-switched shunts that is closest to the required B.  This B value is added to the
Y matrix and no further changes are made.
 
5.      Slow B control can be specified for the Type 7 SVD as described for the Type 5 SVD.
 
 
3.9            DC Transmission
 
3.9.1   DC System Components
 
PSLF models d.c. transmission lines, d.c. buses, and d.c. converters as individual entities.  As in the a.c. system, the
master component in a d.c. station is a d.c. bus and the data record for the d.c. bus specifies the identifier of the d.c. bus
(external number and name), its d.c. base voltage,  and its area and zone assignments.  The d.c. bus does not have any
attributes related to d.c. lines or converters that may be connected to it.
 
A d.c. line may be connected between any two d.c. buses; a d.c. converter may be connected between any a.c. bus and
any d.c. bus.  Because d.c. system components are handled individually in PSLF, a two or multi-terminal d.c. system
must be set up by specifying the required number of converters, lines and buses and maintaining proper coordination
between the control modes and set points of the converters.
 
The d.c. line model is straightforward; only its "from bus", "to bus", and resistance (in ohms) need to be specified for
load flow purposes.  A d.c. line must have a non-zero R value. If the input value is less than 0.02 ohms, the program will
use 0.02 ohms.
 
The d.c. converter model represents the basic equipment configuration shown in Figures 3.9.1, 3.9.2 and 3.9.3.  Each set
of converter bridges is energized by the a.c. bus through converter transformers and is connected on the d.c. side from
ground to a d.c. bus.  The a.c. and d.c. buses must be specified by normal a.c. and d.c. bus data records with appropriate
a.c. and d.c. base voltages. The converter transformer must not be included in the a.c. system model as an a.c.
component; it is treated as a special transformer by PSLF and is specified solely by the d.c. converter data record.
 
The program automatically determines which dc buses, lines and converters are in the same system and assigns a system
number.  This system number is displayed in the edit tables for the dc components for information purposes; it should not
be modified by the user.
 
3.9.2   DC Converter Data
 
DC converter station data must be set in accordance with the following:
 
Converter Type
 
The converter type, <dcc.type>, must be
 
1 for a rectifier
2 for an inverter
 
 
Converter Status
 
The converter status, <dcc.st>, must be consistent with that of all other converters in the same d.c. transmission system.
 
 
Converter Mode
 
The converter control mode, <dcc.mode>, must be set as follows:
 
0 current and voltage not specified - converter follows available d.c.
voltage and current
1 converter controls its own d.c. current, only
2 converter controls its own d.c. power, only
3 converter controls its own d.c. voltage, only
4 converter controls its own d.c. current and its own d.c. voltage
5 converter controls its own d.c. power and its own d.c. voltage
 
It must be noted that these modes describe the way in which the operation of the d.c. system is specified for load flow
studies and not the way in which the d.c. converter controls are built.  In particular, modes 4 and 5 imply that the set
points delivered to the controllers at the rectifier and inverter stations are coordinated by some external agency so as to
achieve the specified values of two variables at one converter.  (The coordinating agency may be two shift operators in
telephone contact, or a supervisory control computer, for example).
 
Converter Setpoints
 
Setpoint values of d.c. current, d.c. power, and d.c. voltage may be specified for each converter.  The converter model
selects the appropriate setpoint based on the converter control mode. All converter setpoints must have positive values.  A
positive power or current setting at an inverter results in a negative injection of real power to the a.c. system. Setpoints
may be left unspecified if they are not required under the control mode that is in effect.  At least one voltage setpoint
must be specified and used in each d.c. system. 
 
Converter Transformer Control Flag
 
The converter transformer control flag, <dcc.tran_kreg>, must be set to:
 
0 to lock the transformer taps in this converter, regardless of the
adjustment option of the solution command
1 use built-in tap adjustment logic, if adjustment option is turned on
in the solution command (See section 3.9.3)
-1 use logic in upslfxx\stdepcl\mtTAP.p, if adjustment option is
turned on in the solution command (see Section 3.9.6)
 

 
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

RELAY AND PROTECTIONS MODELS


blindef Blinder definition for WECC Distance Relay Model
boel OEL model for Basler Voltage Regulators excluding brushless exciters
colatr Colstrip acceleration trend relay
colatr2 Colstrip acceleration trend relay (2016 revised)
diffrlyg General Line/Transformer Differential Relay
diffrlys General Line/Transformer Differential Relay
distrel WECC Distance Relay
exoel OEL model for GE EX2100 Voltage Regulators excluding brushless
exciters
exuel UEL model for GE EX2100 Voltage Regulators
focdt Generator field over-current relay with definite time characteristic
gp1 Generic Generator Protection System
gp2 Generic Generator Protection System
lhfrt Low/High Frequency Ride Through generator protection
lhfrta Global Low/High Frequency Ride Through generator protection
lhvrt Low/High Frequency Ride Through generator protection
lhvrta Global Low/High Frequency Ride Through generator protection
lnrelscan Line relay scanning model
lofscan Loss of field scanning model
locti Branch 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
lstd8 Rate of change load-shedding meter
lsdt9 Definite time under voltage load shedding relay acting at a bus, with 9
stages
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
ooscan Out-of-step line scanning model
reloden Load encroachment definition for WECC Distance and Overcurrent Relay
Models
socdt Generator stator over-current relay with definite time characteristic
socti Generator stator over-current relay with inverse time characteristic
tiocrs Time inverse overcurrent relay
tlin1 Under-voltage or under-frequency relay tripping line circuit
breaker(s).
uvls1 Definite time under voltage load shedding relay with option for
independent action of stages
vphr1 Volts per Hertz relay model for generator
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.
  Outputs apparent impedance and timer status.
zlinw Default impedance distance relay. Applies to branches within specified
voltage range.
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-linear tap buses.

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.

USER WRITTEN MODELS


epcexc User written model
epcgen User written dynamic mdoel for a device connected directly to the
network, e.g. generator, motor, stacon
epcgn1 User written dynamic model for a device connected directly to the
network, e.g. generator, motor, statcon
epcgn2 User written dynamic model for a device connected directly to the
network, e.g. generator, motor, statcon
epcgn3 User written dynamic model for a device connected directly to the
network, e.g. generator, motor, statcon
epcmd1 User written model
epcmd2 User written model
epcmd3 User written model
epcmod User written model
epctrb User written model

                                                    WIND TURBINE MODELS


ewtgfc Electrical control for full-converter wind turbine generator
ewtgfx
exwtg1 Excitation system model for wound-rotor induction wind-turbine
generator
exwtge Excitation (converter) control model for GE wind-turbine generators
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
reec_a Renewable energy electrical control model
regc_a Generator/converter model
repc_a Power Plant Controller
repc_b Power Plant Controller
wndtge Wind turbine and turbine control model for GE 1.5 and 3.6 MW wind
turbines
wndtrb Wind turbine control model
wndvar  
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  
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
 
           SOLAR PHOTOVOTAIC MODELS
der_a Distributed energy resource model
ewtgfc  
gewtg Generator/converter model for GE 1.5 and 3.6 MW wind turbines
pvle PV Converter Control Model
pvlg PV Converter Model
pvd1 Distributed PV system model
reec_b Renewable energy electrical control model
regc_a Generator/converter model
repc_a Power Plant Controller
repc_b Power Plant Controller
 
             AGC/POWER PLANT CONTROL MODELS
agc2 Automatic generation control (used with uclp2)
pfpb Simple Power-Frequency control
uclp2 Unit Control Loop ( used with AGC2 )
vcr Remote voltage Controller
             PLAY IN DATA MODELS
 
gthev Thevenin source of defined voltage amplitude and
frequency
plefd Plays in generator field voltage
plnow Delivers played-in signals to dynamic simulation
models
plref Play-in of voltage regulator and governor reference
settings
pltp Plays in turbine power
 
  ENERGY STORAGE MODELS
   
estor2 Generic energy storage device
reec_c Electrical control mode for battery energy storage
system
 
Chapter 4
 
PSLF Commands
 
 
 
4.1     Introduction
 
This chapter describes the commands of PSLF.  Each section of this chapter describes one command using the
following headings:
 
·         Command:
·         EPCL:
·         Arguments:
·         Function:
·         Prerequisites:
 
The EPCL: entry gives the form of the command line that must be used to invoke the command when PSLF is
operated in its command or EPCL mode.  The command line always takes the form:
 
@return = <name>(<argument>  <argument>.)
 
where
 
<name> is the name of the command
<argument> is an argument whose significance is given in the following
section of this chapter that describes command
 
 
When it is invoked from a menu the command will request values for some or all of its arguments by displaying panels
with descriptions of the required arguments.  The significance of arguments is the same when specified via the
command line, and via a menu-mode panel.
 
The Function and Prerequisite entries give a brief statement of what the command does and what must be in the
working case for it to operate correctly.
 
The remainder of each section of this chapter gives a detailed description of the command.  Input file formats,
assumptions made in processing data, and some instructions on the use of the command are given here.  The command
descriptions given in this chapter are not intended to cover the engineering aspects of the commands.  The engineering
application of PSLF commands is discussed elsewhere in this manual and in the PSLF application notes.
 
The commands of PSLF are summarized in Table 4.1.
 
 
Table 4.1
 
Summary of PSLF Commands
 
Command Submenu Arguments Function
       
acca econ   Accumulate area/group totals for econ
actr lina <report> Transfer limit estimation, a.c.solutions
    <input>  
bint tabr   Display branch interface flows
date misc <file> Set working case date/time stamp
dchk     Check load flow data
dclf lina   DC analogy load flow
dctr lina <report> Transfer limit estimation, dc analogy
    <input>  
dele edit <level> Delete records from data tables
difs rept <report> Find and report differences between load
    <base> flow cases
    <chng>  
    <tol>  
    <cat_no>  
    <cat_name>  
    <cat_var>  
disp econ <file> Economic dispatch
ecom1 econ <file> Unit commitment and economic dispatch
ecom2 econ    
ecom3 econ
edds   <table> Edit dynamic simulation models and data
eder   <file> Display dynamic simulation error report
edic     Edit dynamic simulation generator internal
and boundary conditions
edit   <table> Examine and edit data tables
uedt   <table> Edit the user-built edit tables
edmd   <model> Examine and edit dynamic model data
eepc exim <file> Export EPC load flow data
efax lina <file> Calculate distribution factor
end     Work in PSLF subsystem is complete
epcl     Initiate epcl power system simulation
language shell
epti exim <file> Export PTI load flow data
eqiv misc   Build network equivalent
exim     Export/import load flow data
flow tabr <file> List line/transformer loadings
getf   <file> Retrieve history files for load flow
getm (cmod only) <file> Merge part of case in history file into
working case
grst tabr   List generators outside var limits and
voltages not on schedule in an edit table
help     On-line manual
init   <file> Initialize a dynamic simulation run
isld misc   Find and display island
isol misc   Isolate a bus
lina     Linearized network analysis subsystem
losf econ   Calculate losses for economic dispatch
loss rept   Summarize totals of generation, load, and
losses
misc     Initiate miscellaneous PSLF commands
mism tabr   Display table of bus mismatches
mmil (epcl only) <basis> Calculate and report transmission line MW-
mile values
    <file>  
olgr   <file> Draw/modify/switch from one-line diagram
ordr solv   Build optimal ordering table for use in
system solutions
outt rept <file> Load flow output in 112 column format
outx rept <file> Load flow output in 125 column format
parm   <option> Display/edit of system solution parameters,
display parameters, etc
phsf tabr   Display phase shifter results in an edit table
plot     Plot dynamics results
rarea rept <file> Display area total load, generation etc.
rate rept <file> List lines and transformers whose flow
exceeds specified percentage of rating
rdws misc <file> Read WSCC dynamic simulation model data
rdyd   <file> Read EPC dynamic simulation model data
rdyp misc <file> Read PTI dynamic simulation data
rede econ <file> Read EPC economic dispatch data
redi econ <file> Read PTI economic dispatch data
redp econ <file> Read PSAP economic dispatch data
repc exim <file> Read EPC load flow data
rmil (epcl only) <file> Read distance assignment data for MW-mile
calculations
rpti exim <file> Read  PTI format load flow data
rscp scsc <file> Read PTI short circuit data
rseq scsc <file> Read EPC short circuit data
rtiea rept <report> Display area tie line flows
rtiez rept <report> Display zone tie line flows
run     Advance the dynamic simulation to the
specified next pause time
rvolt rept <file> List buses with voltages outside checking
limits
    <flag>  
rzone rept <file> Display zone total load, generation,etc
savf   <file> Write load flow history files
scal misc <report> Scale load and generation
    <from>  
    <to>  
    <flag>  
    <pl>  
    <ql>  
    <pg>  
    <qg>  
scan   <bus id> Standard-format graphic display of
conditions of selected bus in vicinity
    <dest>  
dscn   <model> display dynamic block diagram
scap tabr   List series capacitors and line flows
scsc     Enter Short Circuit Subsystem
scsf   <file> Three phase and single phase short circuit
calculation
sele     Setup selector parameters
sepc     Initiate epcl power system simulation
language shell using files
from\upslfXX\samples
soln   <fs> Load flow solution Full N.R
solv     Load flow solution
Full Newton and Decoupled Solution
sort   <table> Sort data tables
    <order>  
    <direction>  
summ     Case Summary
tabr     Display table of results
tarea tabr   Display area total load, generation etc
tgcd tabr   Displays the gated control device results
titl     Examine or edit case title and comments
towner tabr   Display owner totals
ttiea tabr   Display area tie line flows
ttiez tabr   Display zone tie line flows
tzone tabr   Display zone total load, generation, etc.
usrt misc   Sort user tables
vlos tabr   Display MW and MVAR losses for each
voltage level
wdyd   <file> Write EPC dynamic simulation data
wdyp misc <file> Write PTI dynamic simulation data
wede econ <file> Export EPC economic dispatch data
wscp scsc <file> Export PTI short circuit data
wseq scsc <file> Export EPC short circuit data
 
 
Table 4.2
 
Commands Grouped by Function
 
 
Export/Input ASCII data
 
repc Read EPC load flow data file
rpti Read a PTI format load flow data file
rwsc Read a WSCC Format load flow data file
eepc Exports load flow data in EPC format
epti Exports load flow data in PTI format
 
 
Data Base
 
date Set working case date/time stamp
dele Delete records from data tables
edit Examine and edit data tables
uedt Edit the user-built edit tables
eqiv Build network equivalent
getf Retrieve history files for load flow
getm Merge part of case in history file into working case
isol Isolate a bus
parm Display/edit of all parameters
savf Write load flow history files
scal Scale load and generation
sort Sort data tables
 
 
Solution
 
ordr Build optimal ordering table for use in system solutions
soln Load flow solution Full N.R.
solv Load flow solution
Full Newton & Decoupled Solution
 
 
Custom Programs
 
epcl Initiates epcl language shell
sepc Initiates epcl language shell from c:\upslfXX\samples (windows) or
/usr/pslfXX/samples (UNIX)
 
 
Linear Analysis
 
actr Transfer limit estimation, a.c.solutions
dclf DC analogy load flow
dctr Transfer limit estimation, dc analogy
efax Calculate distribution factor
 
 
Reports
 
difs Find and report differences between load flow cases
isld Find and display island
outt Load flow output in 112 column format
outx Load flow output in 125 column format
rarea Display area total load, generation, etc.
rate overload report
rzone Display zone totals and zone interchange summary
rtiea Display area tie line flows
rtiez Display zone tie line flows
rvolt List buses with voltages outside checking limits
rzone Display zone total load, generation, etc.
summ Case Summary
 
 
Table Results
 
bint Display branch interface flows
flow List line/transformer loadings
tgcd Displays the gated control device results
grst List generators outside var limits and voltages not on schedule in an
edit table
loss Summarize totals of generation, load, and losses
mism Display table of bus mismatches
phsf Display phase shifter results in an edit table
scap List series capacitors and line flows
tarea Display area total load, generation, etc.
titl Examine or edit case title and comments
towner Display owner totals
ttiea Display area tie line flows
ttiez Display zone tie line flows
tzone Display zone total load, generation, etc.
vlos Display MW and MVAR losses for each voltage level
 
 
Graphics
 
olgr Draw/modify/switch from one-line diagram
scan Standard-format graphic display of conditions of selected bus in
vicinity
 
 
Economic Dispatch
 
acca Accumulate area/group totals for econ
ecom1 Unit commitment and economic dispatch
ecom2 Unit commitment and economic dispatch
ecom3 Unit commitment and economic dispatch
disp Economic dispatch
econ Economic dispatch and unit commitment shell
losf Calculate losses for economic dispatch
rede Read economic dispatch data from file in EPC format
redi Read economic dispatch data from file in PTI format
redp Read economic dispatch data from file in PSAP format
wede Export economic dispatch in EPC format
 
 
Short Circuit
 
rscp Read short circuit data from file in PTI short circuit format
rseq Read short circuit data from file in EPC short circuit format
scsc Enter Short Circuit Subsystem
scsf Three phase and single phase short circuit calculation
wscp Export sequence data in PTI short circuit data file format
wseq Export sequence data in EPC short circuit data file format
 
 
MW-Mile Calculations
 
rmil Read distance assignment data for MW-mile calculations
mmil Calculate and report transmission line MW-mile values
 
 
Dynamic Simulation
 
edds Edit dynamic simulation models and data
eder Display dynamic simulation error report
edic Edit dynamic simulation generator internal and boundary
conditions
edmd Examine and edit dynamic model data
init Initialize a dynamic simulation run
plot Plot dynamics results
rdyd Read dynamic simulation model data
rdyp Read PTI dynamics data
run Advance the dynamic simulation to the specified next pause
time
wdyd Write dynamic simulation data file in EPC format
wdyp Write dynamic simulation data file in PTI format
 
 
Miscellaneous
 
misc Initiate miscellaneous PSLF commands
 
 
Function add_del_injele ()
   
Form: <ret> =
add_del_injele<flag>,<injgrpname>,<object>,<prfcalcopt>,
<prf>)
     
Arguments: <flag> Flag for addition or deletion
0 add
1 delete
     
  <
injgrpname
Name of the injection group to add or delete the element
> from
     
  <object> Object to be added as an element to the injection group.
The object could be bus or load or generator or another
injection group.
This field takes in the string representation of the object
which can be based upon the primary key, secondary key
or tertiary key.
e.g.
"load 2 '1'"
"load 'NORTH-02 230.0' '1'"
 
"gen 101 'h1'"
"gen 'NORTH-02 230.0' 'h1'"
     
  <
prfcalcopt
Participation option
>  
 
  <prf> Participation value of the element
     
  <ret> 0 on success and negative value on failure
 
add_del_injele() is used to add or delete an element in 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")
 
@ret =
add_del_injgrp(@flag,"InjGroup1", "load
2 '1'", 0, 1.0)
     
if( @ret < 0 )
 
  logterm("Cannot add injection element
in the group<")
 
endif
 
 
Function add_del_injgrp()
   
Form: <ret> = add_del_injgrp<flag>,<injgrpname>)

     
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>)

  <ret> = azget(<varno>, <flag>, <number>)

     
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> ,

               <modname>,<parameter name>)

  <ret> =  setmodpar (<flag>, <from>, <to>, <id>, <sec>,

               <modname>,<parameter name>, <value>)

     
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>)

  <ret> = del(<tabname>, <pos>, <num>)

  <ret> = rep(<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> )

     

Output: @ret Random number


Arguments: <seed> 0 : seed generator with system clock
> 0 : seed generator with <seed>
< 0 : Don’t seed. Continue with previous seed.
     
     
 
 
The irand command would return a random number between 0 and 32767.
 
Example 1: Seed random generator with system clock and get random number.
@seed   = 0
@return = irand(@seed)
logterm(“Random number = “,@return,”<”)
 
Example 2: Seed random generator with new user defined seed and get random number
@seed = 20
@return = irand(@seed)
logterm(“Random number = “,@return,”<”)
 
 
Example 3: Use previous seed and get random number.
@seed = -1
@return = irand(@seed)
logterm(“Random number = “,@return,”<”)
 
 
Example 4: Seed random generator once at the beginning and then obtain random numbers 20 times
@seed = 5
@return = irand(@seed) 
 
for @i  = 0 to 20
      @return = irand( -1 )
      logterm(“Random number = “,@return,”<”)
next
 
 
 
Command isolnoswgislds()
   
Function This epcl function would isolate all the buses in the islands which
don’t have a swing bus.
Epcl @ret = isolnoswgislds()         
 
   
Arguments: @ret variable returns the total number of buses isolated by the
function in those islands which did not have any swing bus.
ret[0].number[0] contains the total load MW’s dropped.
ret[0].number[1] contains the total load MVAR’s dropped.
ret[0].number[2] contains the total generation MW’s dropped.
ret[0].number[3] contains the total generation MVAR’s dropped.
   
 
 
The isolnoswgislds function searches the system and isolates all the buses in those islands, which don’t have a swing
bus. It returns the total number of buses, which it isolated.
 
If any bus is isolated, the optimal ordering flag would be set to 1 and the case would be re-ordered when soln() is
invoked.
 
 
The command can also be invoked from the PSLF screen by running function “Connectivity” located under LoadFlow-
>utils Loadflow Utilities as shown below.
  Function lid_index()
     
  Form: <ret> = lid_index(<type>,<longid>,<caseflag>)

       

  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>)

  <ret> = tiesget(<num>, <flag>, <from number>, <to number>, <varno>)

     
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.
 
 

8.7  Linking SAV and DRW Files


 
Beginning with PSLF Version 18.1_00 a new feature has been added to the OLGR utility.
 

 
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
 
 
 
 
 

Step2   go to gedi:edit:edbr and change the circuit ID from 1 to &&.


 
 
How do I change the colors for PLOT/SCAN?
We are getting rid of the color yellow for plots/scan one line diagram.  Version 13.1 Plot will change yellow to black. 
For the Scan/One line diagrams you can modify pslf.vlv right now in the installation directory by changing the second
column number from 3 (yellow) to 5 (magenta) in two places.
 
 
How do I Calculate branch outage distribution factors?
The PSLF functions "actr" and "dctr" are commonly used for calculating generation shifting power transfer limit inbase
case and contingency cases. When your objectiveis to calculate branch outage distribution factors in base case, you can
do the following. In the input file, still provide a small amount of generation shift (e.g., 1 MW), and relax "minmw",
"maxmw" and "maxrep" to have large magnitudes, e.g., -99999999, 999999999 and 999999. The outage distribution
factors are listed under the title "Odf" in the output file.
 
 
If I’m missing the border in Scan/Swch Diagrams, how do I get it?
If you are missing the border around a diagram when using SCAN/SWCH, using TextPad you can edit line 6 of the
.eps file and change the following line to correct the problem:
 
590      25        translate
change to
586      25        translate
 

My bus connected shunt disappears in Gedi – what’s wrong?


When your bus connected shunt disappears after drawing it in command gedi – make sure the ID is a correct value in
gedi:edit:edsy – if blank then enter correct value and resave the drawing file.
 
 
How do I convert drawings to pdf?
1.      Make sure the type in c:\upslfXXX\print.ini or c:\upslfXXX\javapslf.ini installation directory is set to 3 (which
will use encapsulated postscript).
2.      from olgr use drpr to create a drawing on the printer and will also create a file called dump.eps that an be
used as input into ADOBE to get a PDF or from olgr use drpl and name the file dump.eps or any filename
with a suffix .eps, then send that file to ADOBE.
3.      from scan, select print to print the result and at the same time a file called dump.eps will be created that can
be sent to ADOBE to create a PDF.
 
 
Why can’t I navigate to some parts of a Version 14.1 olgr drawing?
To increase the footprint size of the drawing area (i.e. active area that the drawing scroll bar has control over) you will
need to adjust the olgr settings. While in olgr look at the pulldown menus (File, Edit, Colors, Draw...) and click on
'Edit', then click on 'Settings'. The popup options box has a 'MinMax' tab at the top and you should be defaulted on
this. Increase the drawing area size by adjusting Xmin, Xmax, Ymin, Ymax. Please note the following: Decreasing
Xmin (negative values allowed) adds more area to the left of the drawing. Increasing Xmax adds more area to the right
of the drawing. Decreasing Ymin (negative values allowed) adds more area to the top of the drawing. Increasing Ymax
adds more area to the bottom of the drawing.
 
Answer to your comment: To navigate to the bottom or extreme right would require increasing Xmax, and Ymax.
 
 
What does it mean when I get a message like:  “branch from 4175 to 4176 closes jumpered loop” mean?
when OLGR opens a draw file. This message is written to the main PSLF window and term.log.
 
The message is indicating specific branches which form a loop and have zero impedance. You can see all branches that
have zero impedance by sorting the X-PU) column in the secdd edit table. Generally if the load flow case is solving
OK there is no real concern.
 
Known issues:
1)If a zero impedance branch is opened as part of a contingency the load flow must be re-ordered before solving and if
closed again another reordering is needed before the next solution. PSLF will solve but the solution is incorrect if not it
is re-ordered first. Some users elect to use a very small impedances (0.001) on such branches to avoid the need for
future re-ordering with almost no loss in the load flow accuracy.
 
2) Zero impedance branches have been the cause of failed convergence on certain cases especially at buses with
generation or back-to-back DC. The solution again was to replace 0.0 with 0.001.
 
3) Any time zero impedance branches are modified to become 0.001 impedance branches, re-ordering is required
before attempting to solve a case.
 
 
 
 
Extended Records
 
 
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?
If you pick up a save case and immediately go to Tabr:Mism and see extremely large mismatches, an epcl called
ohms.p will correct this situation.  After TABR execute the epcl ohms.p (a copy is on GEConcorda.Worksmart.net) to
fix the problem.  Recheck Tabr:Mism to see the mismatches are small then resave the case.  Only have to do this once
per save case.
 
 
 
 
 
 
Print
 
 
How do I pass reports from the Edit Tables to Excel or Other Applications w/o pagebreaks
Once you’ve picked up a .sav case, change the report rows/columns parameters as follows:
PARM
     PRINTER
            Edit/Report Rows        = 1000
            Edit/Report Columns   = 400
Then create your report using F9 in any edit table doing a row print to a file.
 
Users beware when using ftp to transfer .sav or .gif files from one machine to another.  These files must be transferred
in “binary” mode.
 
ftp 3.72.146.184   (machine name or address)
    userlogin:    user1
    password:    passwd
bin       (200 Type set to I mode which is binary)
get t3ps.sav
quit
 
 
How do I Rotate PSLF .eps files?
Change the following in the .eps file:
 
comments out these lines
            % 25 767 translate
            % -90 rotate
 
And add these lines
            590 25 translate
            90 rotate
 
Change bounding box record to:
            20 10 600 770
 
To thicken the lines, change Courier to Courier-Bold and change setlinewidth from 0.10 to 0.50.
 
/Courier-Bold findfont 1 scalefont setfont
0.50 setlinewidth
 
 
How do I print to  11x17 paper?
To print a 11x17 drawing from PSLF
 
output a typical drawing from PSLF into a file (in this example the orientation is landscape)
using a text editor, modify the dump.ps file. Only the BoundingBox and translate records are changed and a new
record is added 1.4 1.4 scale prior to newpath record.
 
original file called dump.ps
 
% ! PS-Adobe-3.0 EPSF-3.0
%%BoundingBox:  14 59 596 777
25 767 translate
newpath
 
modified lines and added the scale record
 
% ! PS-Adobe-3.0 EPSF-3.0
%%BoundingBox:  0   0   775 1010
0 1010 translate
-90 rotate
1.4 1.4   scale
newpath
 
After modifying records, save into the same file.
 
In WORD, "Insert Picture From File".  Then setup a printer than can handle 11x17.  Next, go to File, Page Setup,
Paper Size 11x17.  Also modify margins to .17 for top, bottom, left, and right.
Under File, click "print" and the drawing should appear on 11x17 paper.
 
 
How do I Export images from PSLF in *.eps and import to Word 2000 for reporting?
There is a way to export images from Scan/OLGr (parts of or complete one-line diagrams) to encapsulated postscript
files (*.eps) and import them directly into Word 2000 or higher. 
 
If you have Word 2002 or later, there is no need to take further action.
 
If you have Word 2000 and CANNOT import *.eps files directly into Word (Microsoft released a Converter Pack after
the release of Word 2000).  The link below is a Microsoft website with a link to a downloadable upgrade after which
you may be able to import images from *.eps files into Word 2000.
 
http://www.microsoft.com/office/ork/2003/tools/BoxA07.htm
 
Follow the procedure described on the website.  If you are unsure of some or all of these steps, please contact the IT
staff in your company.
 
 
How do I Export portions of one line diagrams from PSLF into *.eps?
To export only a portion of a one-line diagram into *.eps format to import into Word:
 
Click on MarkArea button, move to the drawing area and click and hold the left mouse button and draw a rectangle
around the area you wish to select..  Release the left mouse button and move anywhere inside the area of the rectangle
(turns yellow) and click the right mouse button.  This should bring up a menu.  Select the Export EPS option and name
it conveniently.  You should now be able to import the image into Word 2000 or higher.
 
 
 
 
 
Manual
 
 
How can I print the PSLF Manual 4 sheets to a page?
For printing models or large sections of the PSLF manual, it is very handy to use Adobe Acrobat either 4 or 6 pages to
a sheet and also back-to-back. 
 
To do this, go to c:\upslfXXX\pdf and open the toc.pdf file in Adobe Acrobat and go to File/Print/Properties.  Select
Pages per sheet (either 4 or 6) and click Print on Both Sides for back to back printing. Printing is very legible at 4 to
a page and saves a lot of printing/paper/binder space.
 
 
 
 
Plot
 
 
How do I get multiple plots per page?
Multiple plots per page is accomplished by setting the parameter under PARM:MODE.  Plots per sheet to 2 or 3. 
Under VIEW under the __p__ column change the values to someuniquenumber (s) with up to six channels per
number.  Then execute PLOT:PRNT (printer) and for the lot numbers enter number space second number space and
last number for three plots or only two numbers for 2 plots per sheet.
 

 
 
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 2.  Input Menu of PSS/E Dynamic Data Reader, rdyp.p.


 
 
This will be followed by a panel as shown below, wherein the user can change the output file names.
 
 
Figure 3.  Input Menu of PSS/E Dynamic Data Reader, rdyp.p.
 
The MS/DOS command window will display the following message:
 
As the program processes the dyr file, notification messages (such as missing generators etc.) may appear on the
interface as shown in Figure 4.
 
   Could not locate generator at BUS       0 ID 1 for PTI model msu1
   Could not locate generator at BUS       0 ID 2 for PTI model msu1
   Could not locate generator at BUS       3 ID 5.0000 for PTI model cdc6
   Could not locate generator at BUS       1 ID 5.0000 for PTI model cdc6a
   Could not locate generator at BUS       2 ID 5.0000 for PTI model cdc6a
   Could not locate generator at BUS      -1 ID 0 for PTI model relang
   Could not locate generator at BUS       0 ID 0 for PTI model sysang
   Could not locate generator at BUS      10 ID 1.8000 for PTI model vscan
   Could not locate generator at BUS       6 ID 1.8000 for PTI model relay1
 
   Total number of PTI models                2744
   number of IEEEVC data conversions       61
 
Figure 4.  Dynamic Data Conversion Messages
 
This message indicates that 2744 PSS/E models were read from the raw dynamics data file.  Sixty-one (61) of these
models were IEEEVC models, which use a compensating reactance and resistance to allow a generator to regulate a
voltage beyond the regulated bus.  In PSLF, the compensating impedance is included in the generator model itself. 
The parameters rcomp and xcomp represent the compensating resistance and reactance, respectively.
 
In addition, the HVDC terminal and auxiliary models (cdc6, cdc6a, and msu1),  PSS/E- specific models (relang,
sysang), and metering models (relay1, vscan)  did not convert automatically.  The models relang and sysang can be
ignored, since they are specific to the structure of PSS/E.  The metering models can be easily replaced by the addition
of vmetr, ametr, or other appropriate PSLF meter models.  The hvdc models can be converted manually to an
appropriate PSLF hvdc model (cdc6, epcdc) or an existing PSLF representation of a given hvdc system can be read in
and appended to the converted data.  These additions should be made later in the conversion process.
 
Figure 5 shows an example message that appears in the MS/DOS window when the program begins reading the
intermediate file (default name: ptitemp.dyd).  This message indicates that 2673 models were included in the
temporary file, ptitemp.dyd, and that 2622 models were read into the PSLF dynamics data table.  The difference is
accounted for by the one instance of stabilizer model st2cut which was not converted and 51 dynamic bus load models
which were assigned to busses without loads.  The latter is not a problem, since there is no reason to have a dynamic
model for a non-existent load.  The st2cut model is also not a problem in this case, since it is associated with a
machine far from the study area.
 
This may not always be the case, however, and a manual conversion of this st2cut model to an appropriate PSLF
model would be necessary.  Note that most of the st2cut models did in fact convert (230 out of 231 converted to wsscst
models).  This is an example of a particular combination of data that causes a model to be left for manual conversion.
 
Reading dynamic simulation data from file [ptitemp.dyd]
Starting new model assignment table
The sort option is on
Unknown model name [st2cut      ] or error reading model data at line 487
No load in area    40: assigning first bus in system
Can't find component [blwscc] at bus   24362 FT CREEK  34.50 with id [  ]
Mod. error [blwscc   24362 "FT CREEK"  34.50 "1 " : #9 0.0 0 1 0 0 1
Can't find component [blwscc] at bus   27085 ALTAMONT   9.11 with id [  ]
Mod. error [blwscc   27085 "ALTAMONT"   9.11 "1 " : #9 0.0 0 0 0 0 1
Can't find component [blwscc] at bus   27142 FAYETTE+   9.11 with id [  ]
Mod. error [blwscc   27142 "FAYETTE+"   9.11 "1 " : #9 0.0 0 0 0 0 1
Can't find component [blwscc] at bus   27143 FLOWD3-6   9.11 with id [  ]
Mod. error [blwscc   27143 "FLOWD3-6"   9.11 "1 " : #9 0.0 0 0 0 0 1
Can't find component [blwscc] at bus   27144 FLOWDPTR   9.11 with id [  ]
Mod. error [blwscc   27144 "FLOWDPTR"   9.11 "1 " : #9 0.0 0 0 0 0 1
 
 (etc)
2673 models read from file
2622 models in the model table
0 models out of service
 
Figure 5.  Dynamic Data Reader Messages
 
 
When the final output *.dyd file is being created, a message of the following nature would appear, indicating the all
models in the model table (2622) were written to the dynamic data file:
 
Writing dynamic simulation data to file [test1.dyd]
2622 models written
   0 models out of service
 
However, if a bus is assigned to an area that is not defined then all models associated with that bus would not be
written to the dynamic data file, and the message would be as follows:
 
Writing dynamic simulation data to file [test1.dyd]
2615 models written
   0 models out of service
 
Check that the number of models written to the dynamics data file is equal to the number of models in the model table
before proceeding to the next step.
 
Add Generation Netting, Unconverted Models, and Any New Models
 
Netting generation with load in the dynamic data file allows the user to eliminate the need for dynamic models of
small and/or remote generators without modifying the base case load flow data.  Generation netting can be
accomplished by inserting the edited version of the PSS/E .gnet file (as described above) into the new PSLF dynamic
data file. Specifically, the word  “netting” should be inserted just above the first appearance of “lodrep”, and the edited
.gnet file should be inserted between “netting” and “lodrep”.
 
For systems with dc models that did not convert (e.g., WSCC system models should include models of both the
Intermountain and Pacific Intertie HVDC systems), two options are available for entering data.  Either the data may be
entered manually or an existing dc model may be read in and appended to the existing dynamic data file.  In the latter
situation, click on the rdyd,command under the psds command and select the existing (without dc models)  dynamic
data file.  In the next menu, the “start new setup” flag should be set to 1.  Repeat the process, by clicking on rdyd,
selecting the dc dynamic data file and setting the “start new setup” flag to 0 to append the dc data to the original file.
 
In a similar manner, any new models may be added to the dynamics data file by either manual addition or appending
another file.  For example, the standard epcl program, bmeter.p, will create a dynamics data file of meter models
which can then be appended to the base dynamics data file (Appendix C).  Write the final set of dynamic data out to a
file using the wdyd command.
 
 
 
Run PSLF No-Bump Test Simulation
 
The final step in the dynamic data conversion process is to test the dynamic data by performing a no-bump test
simulation.  A manual simulation may be begun by reading in the load flow data (getf), reading in the dynamic data 
(rdyd), and performing an initialization (init).  After clicking on the init command, a menu will appear that allows the
user to set a “Fix bad data”  flag.  If this flag is set to 1, then the value of various parameters in each model will be
compared to typical values and corrected if necessary. After an initialization, a message similar to the one shown in
Figure 6 will appear in the MS/DOS command window.
 
 
  There are   128 models with data check warnings or actions
 
  Factors have  14379 nonzero elements
  Iter   0   Dvr    -0.99726 at bus   34223 VIEJO    230.00  Dvi    -0.71315 a
  Iter   1   Dvr     0.00002 at bus   42495 GARCANPP   4.20  Dvi  0.00006 at b
  Stopped after   2 iterations
  Largest voltage changes are        0.0000212,         0.0000629
  at buses               42495 GARCANPP   4.2,    42495 GARCANPP   4.2
    No    Name      Kv    id    Model
  There are   326 models with unsteady initial conditions
  Time = -0.0083[vt      2003 A 1 ][ang     2003 A 1 ][efd     2003 A 1 ][it
  Time = -0.0083           1.000000          55.516632           2.289071
   2625 models initialized
  Dynamics channel file is [pslf.chf]
 
Figure 6.  Dynamic Simulation Initialization Messages
 
 
This message indicates that 128 models had parameters with suspect values.  A listing of those parameters and the
corrected values will appear in the pslf.rep file.  A portion of that listing is shown in Figure 7.  The rest of the message
in Figure 6 indicates that an acceptable initialization was achieved after 2 iterations and that 326 models had unsteady
initial conditions.  A full 10-second no-bump simulation will allow the user to identify whether or not the initialization
is adequate.
 
A 10-second simulation can be performed by clicking on the run (“run simulation“) command.  A menu will appear
that allows the user to specify the length of the simulation (Maximum time) as well as various other plotting and fault
application parameters. However, for a no-bump run, the user need only set the maximum time and click on the <CR>.
 
After the run has been completed, the user must check the output to ensure  that flat lines result. This can be
accomplished by using the plot command  (“plot dynamics results”) under the psds command.  The PLOT program
automatically starts and the desired binary output file can be selected using the getp (“read binary channel file”)
command.  Clicking on the view (“plot selection”) command brings up an edit table showing all of the output
channels, as well as their initial values, minimum and maximum values, and spread.  Sort the spread column from
largest to smallest value by clicking on F11 and then selecting the “sort backward” option.  It is recommended that the
spread for each type of variable (angle, pg, vbus) be sorted separately, since 0.2MW spread on pg may be insignificant
while 0.2pu spread on bus voltage is not.  The largest value will indicate whether or not this is an acceptable data set. 
In the example case, the largest spread for a pg variable (generated power) was 0.36MW, the largest spread for a
voltage was 0.002 pu, and the largest spread value for an angle was 0.03 deg.  These spread values are not significant
and the data set can now be used for a transient stability or other type of study.  If the spread is large and/or there is a
noticeable swing to particular plotted variables, then the user needs to go back and look at the dynamic data of the
most unsteady models.
 
 
  2 2 2114 [KYRENE 1] 12.50 1 0 [ ] 000.00 1 1 2 genrou tpqo 0.3900 5*tppqo 0.4
  tpqo = 0.3900 is not > 5*tppqo, set to 0.4100
  2 2 2115 [KYRENE 2] 12.50 1 0 [ ] 000.00 1 1 2 genrou tpqo 0.4500 5*tppqo 0.4
  tpqo = 0.4500 is not > 5*tppqo, set to 0.4550
  1 7 2149 [NAVAJO 1] 26.00 1 0 [ ] 000.00 1 1 2 exac4 ta 0.0000 ta 0.0167 :
  ta = 0.0000 is below allowable minimum, set to 0.0167
  1 7 2149 [NAVAJO 1] 26.00 1 0 [ ] 000.00 1 1 2 wsccst tqs 0.0040 tqs 0.0125 :
  tqs = 0.0040 is below allowable minimum, set to 0.0125
 
Figure 7.  Data Correction Messages from pslf.rep File
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Appendix A
 
On-line Documentation of Dynamic Data Conversion Program, rdyp.p
 
Program: rdyp
   
Function Reads a PTI formatted dynamic simulation model data file
   
Author: Kara Clark GE PSEC
   
Date: April 1, 1998
 
 
RDYP reads dynamic simulation model assignments and model data from the PTI formatted external data file specified
by the <data file> argument. The input data file for RDYP will have the following form: 
 
<bus number>  <'model name'> <id> <data parameters>  /
 
Model data may continue for multiple records with the last data parameter followed by a slash character.
 
The following table lists the translation from PTI to EPC
 
 
Table A.1: Translation between PTI and GE models
 
Type PTI GE
     
  model name model name
generator GENROA genrou
GENROE genrou
GENSAA gensaa
GENSAE gensal
GENDCO genrou
GENROU genrou
GENSAL gensal
GENCLS gencls
   
     
  BBSEX1 exbbc
  BBSXXZ exst1
excitation ESAC1A esac1a
  ESAC2A esac2a
  ESAC3A esac3a
  ESAC5A esac5a
  ESDC1A esdc1a
  ESDC2A esdc2a
  ESST1A esst1a
  ESST2A esst2a
  ESST3A esst3a
  EXAC3A exac3a
  EXBAS rexs
  EXDC2 esdc2a
  EXPIC1 expic1
  IEET1A esac1a
  IEET1S texs
  I3ET1A esdc1a
  IEEET2 esac5a
  IEEET3 exst2
  IEEET4 exdc4
  IEEET5 exdc4
  IEEEX1 esdc1a
  IEEEX2 exdc2
  IEEEX3 exst2
  IEEEX4 esdc3a
  IEET1A esac1a
  IEET1S texs
  IEEX2A esac1a
  OEX12T exst1
excitation OEX3 rexs
  SCRX scrx
  SEXS sexs
  ESAC4A esac4a
  ESAC6A esac6a
  ESAC8B esac8b
  ESST4B esst4b
  REXSYS rexs
  OEX3T rexs
  EXST4B exst4b
  IEEET1 esdc1a
  EX2000 esac7b
  URST5B esst5b
  URST5T esst5b
  EXAC1 esac1a
  EXAC1A exac1a
  EXAC3 exac3
  EXAC4 esac4a
  EXST2 exst2
  EXST2A esst2a
  EXST3 exst3
  IVOEX exivo
  EXELI exeli
  CELIN exeli2
  REXSY1 rexs
  EXST1 esst1a
  EXAC2 exac2
  EMAC1T emac1t
  URST4B exst4b
  AC7B esac7b
  AC8B esac8b
  DC3A esdc3a
  DC4B esdc4b
  ST6B esst6b
excitation USAC6AU esac6a
  ESURRY exac1m
Excitation limiters MAXEX1 oel2
MAXEX2 oel2
   
motor  CIMTR1 genind
CIMTR2 motor1
CIMTR3 genind
CIMTR4 motor1
Load shedding LDSHBL lsdt1
LDSHZN lsdt1
LDSHAR lsdt1
Load conversion IEELCA alwscc
IEELCB blwscc
IEELCZ zlwscc
IEELBL blwscc
     
  CLODBL _clod
Load models CLODAR _clod
  CLODZN _clod
  CLODOW _clod
  CLODAL _clod
  IEEEST ieeest
  IEE2ST wsccst
stabilizer OSTAB2 ieeest
  OSTAB5 ieeest
  OSTB2T ieeest
  OSTB5T ieeest
  PSS2A pss2a
  PTIST1 pss2a
  PTIST3 pss2a
  STAB1 ieeest
  STAB3 wsccst
  STAB4 wsccst
  ST2CUT psssb
  PSS1A pss1a
  PSS2B pss2b
  ST5B esst5b
  STBSVC pss1a
     
     
  CRCMGV crcmgv
  GAST2A ggov1
governor  IEESGO ieeeg1
  HYGOV2 hygov
  IEEEG1 ieeeg1
  IEEEG2 ieeeg1
  TGOV1 tgov1
  TGOV2 tgov1
  TGOV3 tgov3
  WESGOV gpwscc
  WPIDHY pidgov
  WEHGOV hyg3
  GASTWD ggov1
governor  HYGOV4 hygov4
  ETSIG2 ieeeg1
  DEGOV1 degov1
  UGGOV1 ggov1
  URGS3T gast
  IEEEG3 ieeeg3
  HYGOV hygov
  WSHYDD g2wscc
  GAST gast
  PIDGOV pidgov
  TGOV5 ieeeg1
  GGOV1 ggov1
  WSIEG1 ieeeg1
  CSVGN1 vwscc
  CSVGN3 vwscc
Static var devices CSVGN4 vwscc
  CSVGN5 vwscc
  CSTATC stcon
  CSTATT stcon
     
  S88001 wt2g
Renewable models V82BAE wt1g
  VWCORE wt3g
  REGCA1 regc_a
  REECA1 reec_a
  REECB1 reec_b
  REPCA1 repc_a
  REPCTA1 repc_a
  GEWTG1 gewtg
  GEWTE1 exwtge
  GEWTT wndtge
  GEDFA gewtg
  C93GEN wt4g
  CIMTSS wt1g
  G8XDFG wt3g
  SMK203 wt4g
  GEWTGX gewtg
  WT3G wt3g
  WT3E wt3e
  WT3T wt3t
  WT3P wt3p
  WT3G1 wt3g
  WT2G1 wt2g
  WT1G1 wt1g
  GEWTG1 gewtg
Renewable models GEWTG2 gewtg
     
  Exwtge/ ewtgfc/
wndtge (depending
on flag)
GEWTE1  
     
  exwtge/ ewtgfc/
wndtge (depending
GEWTE2 on flag)
     
  GEWTT wndtge
  GEWTT1 wndtge
  GEWTP wndtge
  GEWTP1 wndtge
  GEWTP2 wndtge
  WT3G2 wt3g
  W4G2U wt4g
  WT4G1 wt4g
     
Compensator models
Included in generator
IEEEVC model
  VTGTPA lhvrt
Protection system
models FRQTPA lhfrt
     
This program also generates an output file that lists how many instances of each PSS/E model were converted and to
which GE model (if any).  This output file can be used to identify particular models that were not converted.
 
An example of the results generated by this program are shown in Figure A-1.  As expected, the dc and dc related
models (cdc6, cdc6a, msu1), as well as the PSS/E-specific models (relang, sysang, vscan, relay1) did not convert. 
Note also that one st2cut model did not convert and 51 bus load models were not converted.  This is consistent with
the results of the conversion described in the body of this document.
 
In addition, note that the PTI IEEEG2 model converts to the IEEEG1 model in PSLF. Therefore, the total number of
PSLF IEEEG1 models was 348 (232 PTI IEEEG1 models and 116 PTI IEEEG2 models).
 
            PTI model   number      GE model        number
 
            GENROU      356         genrou          356
            EXAC1       90          exac1           90
            IEEEX1      231         exdc1           231
            IEEEG1      232         ieeeg1          348
            GENCLS      296         gencls          296
            EXST2       27          exst2           27
            ST2CUT      231         wsccst          230
            EXST3       20          exst3           20
            EXAC4       31          exac4           31
            GENSAL      249         gensal          249
            IEEEVC      61
            EXST1       120         exst1           120
            IEEEX4      34          exdc4           34
            IEEEG3      47          ieeeg3          47
            CSVGN5      8           vwscc           8
            IEEEG2      116         ieeeg1
            EXAC2       17          exac2           17
            EXAC3       2           exac3           2
            EXDC2       5           exdc2a          5
            MSU1        2
            CDC6        1
            CDC6A       2
            RELANG      1
            SYSANG      1
            IEELCB      539         blwscc          488
            IEELCZ      3           zlwscc          3
            IEELCA      20          alwscc          20
            VSCAN       1
            RELAY1      1
            pti models 2744         ge no_models 2622
 
Figure A-1.  Example of Model Counting Program Output.
 
 
Appendix B
 
On-line Documentation of Meter Model Creation Program, bmeter.p
 
 
Program: bmeter
   
Function Build a dyd file for PSLF meter models, such as, fmetr, imetr, vmetr
and zmetr
   
Author: Kara Clark GE PSEC
   
Date: April 1, 1998
 
 
BMETER will write a new dyd file with only new meter models for an area,zone or all buses from the case presently
in memory. After entering the choices for the first meter model, that is , fmetr, imetr, vmetr or zmetr the menu is
repeated and additional meter models may be chosen. All the output will be appended to the same dyd file. Entering
ESC in the panel or typing 'exit' for the model name will terminate this epcl program. This new dyd file should be
concatenated to an existing dynamics file to form a complete set of dynamics models.
 
 
 
 
 
Subject: Calculation of Line Outage Distribution Factors
   
Function EFAX
   
Author: Kim Wirgau
   
Date: July, 2000
 
 
Suppose you wish to compute the line outage distribution factors.
How can you find the values?  The 6-bus example in the reference,
 
A.J. Wood, B.F. Wollenberg, POWER GENERATION, OPERATION, AND CONTROL,
John Wiley & Sons, 1984.
 
* Data on pages 123-124
* Solved AC powerflow on page 104
* Solved DC powerflow on page 112
* Entire computed "Line Outage Distribution Factors" on page 426
* Sample of full AC powerflow for line 3-5 out on page 417
 
 
EXAMPLE:
 
You need a solved powerflow and an epcl file:
(a) 6bustest.exf - data file [see Appendix 1]
(b) 6bustest.sav - solved AC powerflow data set
 
1.      Solve the powerflow and save it
 
2.      Click on "lina...........linearized analysis" in the Main Menu
 
3.      Click on "efax..........Calculate distribution factor"
 
4.      You will get an argument panel where you specify where you want the output (fill in FILE)
 
5.      At this point you have to have to indicate your data file by highlighting it and press enter (see below)
 
 
INPUT DATAFILE
 
Read the manual in PSLF for an explanation.  The one tricky part is the impact of losses.  When you put in a
multiplying factor, the loads increase by that percentage so the flows go up. 
 
The rest of it is straight forward.
 
The one thing to keep in mind is that it is a "dc powerflow".
 
Appendix II gives a results comparison between the results given in a book
and what the program gives.
 
Appendix II gives the input data for the 6-bus test system.
 
 
APPENDIX I
 
Data File
 
base "!6bustest.sav"
#
losses 1 1.0
#
setting
rate 1
phas 0
minfac 0.001
monitor area 1
end
 
 
 
APPENDIX II
 
Results from the Wood, Wollenberg's Book -- Program
 
Line Outage Distribution Factor
 
 
 
Outage line 3-5
     
  Book Program
     
DF line 1-2 -0.14 0.1369
DF line 1-4 -0.04 0.0403
DF line 1-5 0.18 -0.1772
DF line 2-3 -0.40 0.3995
DF line 2-4 0.19 -0.1933
DF line 2-5 0.27 -0.2685
DF line 2-6 -0.20 0.1992
DF line 3-5 ----- -----
DF line 3-6 0.60 -0.6005
DF line 4-5 0.15 -0.1530
DF line 5-6 -0.40 0.4013
 
 
Actual AC Flows Compared to Calculated Flows
     
  Book Program
Flow line 1-2 26.8 23.0    (-16.5%)
Flow line 1-4 43.2 40.9    (-5.6%)
Flow line 1-5 38.5 36.1    (-6.6%)
Flow line 2-3 -5.1 -4.9    (-4.1%)
Flow line 2-4 37.3 35.8    (-4.2%)
Flow line 2-5 20.9 20.8    (-0.5%)
Flow line 2-6 22.9 21.4    (-7.0%)
Flow line 3-5 ----- -----
Flow line 3-6 54.9 55.1    (0.4%)
Flow line 4-5 7.6 6.6     (-15.2%)
Flow line 5-6 -5.7 -6.5    (14.0%)
 
 
APPENDIX III
 
6-Bus Test System Input Data
 
100 MVA Base with base voltage 230kV
 
BUS DATA
Bus     Type    Vsche  Pgen    Pload   Qload
Bus 1   Swing   1.050
Bus 2   Gen     1.050   50.     0.0     0.0
Bus 3   Gen     1.070   60.     0.0     0.0
Bus 4   Load                    70.     70.
Bus 5   Load                    70.     70.
Bus 6   Load                    70.     70.
 
 
LINE DATA
From    To      Rpu     Xpu     Bchg
1       2       0.10    0.20    0.04
1       4       0.05    0.20    0.04
1       5       0.08    0.30    0.06
2       3       0.05    0.25    0.06
2       4       0.05    0.10    0.02
2       5       0.10    0.30    0.04
2       6       0.07    0.20    0.50
3       5       0.12    0.26    0.05
3       6       0.02    0.10    0.02
4       5       0.20    0.40    0.08
5       6       0.10    0.30    0.06
 
Note the value is total line charging susceptance
 
 
 
Subject: Angle Estimation before AC Solution
   
Function:  
   
Wenchun Zhu
Author:
   
January, 2002
Date:
 
 
The convergence of the Newton Raphson method is rapid when the initial estimates of voltages and angles are
reasonably good. But the method can diverge quickly when the initial estimates are poor. Angle estimation algorithm
can be used to improve initial bus angle estimates before ac solution and therefore assists the convergence of the ac
solution.
 
 
Activate angle estimation
 
Angle estimation algorithm is activated by setting the “Angle estimation before ac solution flag” to 1 in SOL:PARM
panel or in epcl (solpar[0].angest). To de-activate the algorithm, set the flag back to 0.
 
With the flag set to 1, angle estimation can be requested in two fashions:
1)       In line-closing type of applications, angle estimation is always performed automatically for the pair of buses at
the two terminals of the line to be closed for up to 100 pair of buses in one application.
2)       Angle estimation can be requested by zero bus angles for any buses of non-zero bus type for up to 5000 buses
in one application.
 
 
View angle estimates before ac solution
 
If the maximum solution iteration is set to -1 in solv panel, only angle estimation will be performed. Ac solution will
not be executed. Angle estimates can be viewed in busd table.
 
 
Applications of angle estimation
 
Line-closing simulation
 
Ac solution may be difficult to converge for a line-closing simulation if the angle spread between the two buses
of the line is large before the line is closed and/or the line impedance is small. This is because the large angle
spread and/or small line impedance can create large real power mismatches at the two buses when the line is
closed. This large local mismatch can lead to divergence of the ac solution.
 
Angle estimation is performed automatically for line-closing type of simulations as long as the angle estimation
flag is set to 1. The application is not limited to single line closing. For any pair of buses which did not have any
in-service lines directly connecting them, if now one or more lines connecting them are to be closed, angle
estimates will be provided for these two buses before ac solution. Internally in the program, angle estimation
algorithm also detects small line impedance. If the reactive part (x) of the line impedance is positive and smaller
than 0.02, it will be increased by 0.02 pu temporarily during angle estimation and the first few iterations of the ac
solution. Once the ac solution converges to certain range, the impedance will be automatically re-set back to the
original value. For negative x, if x is greater than –0.005 pu, -0.005 will be added to x temporarily and the
original value will be restored if the ac solution converges into certain range.
 
If the closing lines are connecting together two islands, all bus angles in the smaller island will be estimated as
well as the two buses at the two terminals of the closing lines. Also, any type 0 buses in the smaller island are
changed to type 1 for a non-generator bus or 2 for a generator bus.
 
New additions of buses
 
For new buses added to a case, if the bus angles are left 0.0, angle estimation will provide angle estimates for
these buses.
 
Merging two cases
 
Merging two load flow cases is needed when the representation of certain areas or zones in one case needs to be
replaced by the representation in another case. The epcl program merge.p was written for purposes such as this.
However, after running merge.p, the bus angles in the merged-in areas or zones might be far off what they should
be and cause divergence of the ac solution of the new case. Angle estimation can be used in such applications.
After merging two cases and properly ordering the case, put bus angles of all buses in the merged-in areas or
zones to zero. This will request angle estimation for all buses in the merged-in areas or zones before ac solution.
Angle estimation does not guarantee ac solution convergence in such applications, but it certainly improves the
chance by a significant margin.
 
Other applications
 
Angle estimation can be used in any occasion where bus angles are not considered reasonable initial estimates.
For example, angle estimation can be used between the ac solution iterations when a load flow case is solved in
manual mode. Apply angle estimation at the buses with worst real power mismatches after any ac solution
iteration. Then carry on another ac solution iteration. This improves initial angle estimates before the ac solution
iterations.
 
 
 
 
Subject: Writing EPCL Dynamic Models Using EPCMOD for
Dynamic Simulations in PSLF
   
Function:  
   
Wenchun Zhu, John Undrill, John Burns, Rob D'Aquila
Author:
   
February, 2002
Date:
 
 
1.  Introduction
 
PSLF has a built-in programming language, EPCL. Using this built-in language, users can implement customized
functions to accomplish a range of tasks. Typical examples include running multiple cases over-night, processing data
in batch mode, etc. The structure of this built-in language is so closely coupled with the PSLF core, that proper
applications of the epcl programs can be powerful.
 
As programming in any computer languages, when writing an epcl program, users need to follow the epcl grammars
(for example, 1 plus 1 is written as “1+1” in epcl). Other than following the defined grammars, the programming style
is free in general - following users’ logical thinking to accomplish a task.
 
EPCL dynamic model is another example of epcl applications. However, in this particular application, the
programming style is not free – the flow of the epcl program must fall into pre-defined blocks. Also, there is an
interface between the EPCL dynamic models and the core of the PSLF program. This interface is the PSLF C code
model - epcmod. This is why the user written epcl dynamic models are also called epcmod models.
 
So, what is the style of an epcmod model? The answer to this question roots from the nature of dynamic simulations.
 
 
2.  The step-by-step characteristic of dynamic simulation
 
A dynamic simulation is an integration of two parts – simulation of dynamic models and simulation of the electrical
network. The dynamic models(e.g., generator models, exciter models, etc.) are simulated using differential equations.
The electrical network is simulated using algebraic equations ignoring the electrical network transients which are
relatively fast.
 
The differential equations simulating the dynamic models are solved using numerical methods. Therefore, dynamic
simulation results are discrete in terms of time. The solutions always go from previous time step to next time step. The
first time step solution is based on the initial condition which was converted from load flow solution.
 
Within each time step, the network solution and the dynamic model solution exchange updated boundary information.
The network solution provides updated boundary voltages and the dynamic models provide updated boundary current
injections.
 
Figure 2.1 shows a diagram of the interaction between the electrical network and the dynamic models during dynamic
simulation.
 
 
 
Figure 2.1 Interaction between the network and the dynamic models
 during dynamic simulation
 
 
Figure 2.2 shows a computation flow chart for dynamic simulation. For a single dynamic simulation, the initialization
is conducted only once. From there on, simulations are carried out step by step. Within each time step, there are 5 sub-
steps or modes of computations. Relevant to majority of dynamic models, 4 modes are involved, i.e., SORC, ALGE,
RATE, and OUTP. Computations conducted in each of these modes and in the stage of initialization are explained in
the follows.
 
INIT
The dynamic model is initialized in INIT mode.  All state variables and output variables are initialized. Users
should also define reasonable values for channel_head[].type, channel_head[].cmin and channel_head[].cmax.
Users’ definitions of these items will overwrite the defaults defined in PSLF core. Note that only these 3 items of
channel_head can be defined by users in INIT. All the other items of channel_head are defined by PSLF core and
are identical to the relevant items in model structure. For example, channel_head[].id is the same as model[].id. If
one or several items in channel_head other than type, cmin and cmax are desired to be defined in INIT, the effect
can be achieved by changing the counterpart item in model structure, e.g., model[].id. Definitions of the items in
channel_head other than type, cmin and cmax are no longer acceptable and if such a definition appears in INIT, it
will mess up the headings of the output variables associated with this epcmod model, which can be viewed in view
edit table in Plot program.
 
SORC
Dynamic model network boundary source conditions are calculated here. If a model is not directly connected to the
network, this mode of computations can be ignored. A generator model is connected directly to the network, while
an excitation system model or a governor model is not directly connected to the network. They are behind a
generator model.
ALGE
All secondary variables (variables calculated using state variables) are calculated in ALGE.  For example, internal
signals and outputs of excitation systems, governors and other models are calculated here.  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 variables (v0 through v9) are set in OUTP.  If these values are set in ALGE, they do not need to
be re-set in OUTP.
 
Note that the computation sequence within each time step is always SORC-NTWK-ALGE-RATE-OUTP, which is
hard coded in the PSLF core.
 
In the above, the fundamental principle of dynamic simulation in PSLF is explained. Simulations of all standard
dynamic models in the PSLF dynamic model library follow this principle.  Consequently, the implementation of the
EPCL dynamic models need to follow the same principal. By now, it shouldn’t be a surprise to a you when you see the
key words SORC, RATE, etc. in an epcmod model.
 
 
Figure 2.2   Flow chart of a dynamic simulation
 
 
3.  The structure of an epcmod model
 
In an epcmod model, implementations are carried out in 5 blocks of codes – INIT, SORC, ALGE, RATE and OUTP.
Users do not need to worry about which block goes before which other blocks. PSLF calls the blocks according to
their key words.
 
The 5-block structure in an epcmod model is implemented using the epcl function of multiple choices – “switch-case-
break”. Note that all blocks are not needed, depending on your particular application. In the follows, the “switch-case-
break” structure in an epcmod model is outlined.
 
switch(@mode)
 
case RATE

break  
 
case ALGE

break
 
case SORC

break
 
case OUTP
            …
break
 
case INIT
            …
break
 
endcase
 
end
 
 
There are different types of variables that can be used in an epcmod model. These are explained in the follows.
 
Input parameters
Up to 100 input variables.  Accessed using epcmod[@mx].name, where name is the parameter name specified in
the dyd file.
 
State parameters
Up to 100 state variables.  State variables are accessed using epcmod[@mx].s0, through epcmod[@mx].s99.  State
variable derivatives are accessed using epcmod[@mx].ds0 through epcmod[@mx].ds99.  State storage variables are
accessed using model[@mx].zs0 through epcmod[@mx].zs99.
 
Storage variables
Up to 100 storage variables, accessed using epcmod[@mx].v0, through epcmod[@mx].v99.  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 needs to be remembered from time step to time step. Variables v0 through v9 are
available as output channels.  The number of channels output from an epcmod model is determined by the record
level. If the record level is 0, no channel will go to the channel file. If the record level is 1, v0 and v1 will go to the
channel file. If the record level is 99, v0 through v99 will go to the channel file.
 
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 which needs to be remembered from time step to time
step.
 
 
4.  First example of epcmod model – sexs.p
 
Dynamic models can be divided into two major categories – network control devices and generator and control
devices. For example, generator models, excitation system models, and governor models belong to the category of
generator and control devices. Static compensation models, TCSC models belong to the category of network control
devices. The implementation techniques for these two categories of models are slightly different.
 
Two examples of epcmod models are discussed in the following. These two epcls are included in the samples
directory. The first example is an excitation system model. The second example is a network control device.
 
The excitation model in the first example is referred to as “sexs” and the epcl which implements the dynamic model is
called sexs.p. It is a simplified model representing the generic characteristics of an excitation system. The block
diagram of this model is shown in Figure 4.1. For the purpose of implementing the control blocks in sexs.p, the block
diagram in figure 4.1 is transformed into the block diagram shown in figure 4.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.
 

Before start of any “switch-case-break” blocks


 
At the beginning of sexs.p, comments are provided explaining the purpose of the model and variables used in the
program.
 
Note that inside an epcmod model, the parameters are always referred to in the format of epcmod[].name, where name
is a parameter’s name. Parameter names coded in the epcl program should be consistent with the parameter names
defined in the relevant dyd file.
 
The state variables and storage variables are referred to in the same fashion.
 
A number of local variables were defined after the comments and before the start of any “switch-case-break” blocks in
sexs.p. There are 5  “define” statements which define INIT, SORC, ALGE, RATE and OUTP to be constants 2,3,4,5
and 7. These defined constants will be used later as the switching variables in the “switch-case-break” blocks.
 
“@mode” is a local variable which will be used later as a selection variable for the “switch-case-break” blocks. It is
defined to be “dypar[0].mode”. This definition links the mode of computation in this particular epcmod model to the
mode in the PSLF core.
 
“@mx” is also a local variable. It is defined to be “dypar[0].cmi” which is current model index defined in PSLF core.
“@mx” is the index number pointing to this particular epcmod model in the “model” data structure. It indicates the
position of this epcmod model in the list of all the dynamic models in the current working case.
 
Variables INIT, SORC, ALGE, RATE, OUTP, @mode, @mx should always be defined before the start of any
“switch-case-break” blocks, and can always be defined in the fashion shown in this example.
 
Local variable “@k” is defined to be an epcmod storage variable v10. This storage variable is defined in the INIT
block. The if-endif statement around @k definition tells that @k is defined only after INIT block was run. The
definition of the storage variable v10 will be explained in the following.
 

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
 

Block diagram of 1st 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


 
This transfer function is equivalent to
 

 
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

viewed in plot after the dynamic simulation.

 
 
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.
 
 
 
 
 

Figure 2-2.  Stability Model Components and Interconnection.


 

Modeling for Loadflow


 
The modeling for load flow analysis is relatively simple, as shown in Figure 3-1.  A conventional generator is
connected to a (PV) bus.  For the Vestas V80, this is a 690V bus.  The generator terminal bus is connected to the
collector system bus through a suitably rated transformer.  A switched capacitor model (SVD) is connected to the
generator terminal bus to model the pf correction capacitiors.    In steady-state, the Vestas V80 system, which includes
the machine, mechanically-switched capacitors and transformer, is operated to maintain close to unity power factor on
the machine terminals (i.e. the low side of the transformer).  The machine is a wound-rotor induction machine with an
external, electronically-controlled field resistor.  Under load, the machine consumes reactive power equal to
approximately half of the MW output. 
 

Figure 3-1  Loadflow Modeling


 
For each V80 unit, four equal size mechanically-switched pf correction (PFC) capacitors are provided.  The PFCs are
sized to compensate the reactive power consumption of the machine over a range of power output.  At rated power, all
four capacitors are on, and the system runs at about unity power factor.  For the 1800 kW V80 machine, the PFCs total
900 kVAr.   In PSLF, the PFC should be modeled as the first block of a static VAr device (SVD) model.
 
In the loadflow, the generator bus should be initialized to the desired active power.  For most stability analysis, the
machine will be loaded to the rated MW.  For the V80 machine, this is 1.8 MW.  The machine MVA rating is 1.85
MVA (This datum is from a customer communication.  We have also seen this model listed as having a rating of 1.981
MVA).
 

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.
 

Modeling for Stability Analysis


 
This section will present the engineering assumptions, detailed structure and data for each of the component models.  
The individual device model datasheets are included in the appendices.  On the datasheets, data provided by the
manufacturer is highlighted; other data are engineering estimates provided by PSEC.
 

1.1            Generator Model (genwri)


 
The Vestas 80 generator is, from a system simulation perspective, a conventional- technology wound rotor induction
(WRI) machine with an external field resistor.  Modeling of this type machine is well understood by the industry.  For
typical WRI generators, the external resistor does not change rapidly (except during startup), and so standard induction
machine models do not provide for the ability to adjust this external resistance. 
 
The difference for the machine model provided here, genwri, is that the external resistance can be modified, by the
‘exciter’ model exwtg1.  Changing the resistor value changes the field time constant of the machine.  Therefore, as the
resistance value is changed by the external controller, the machine model dynamically adjusts the time constant.  The
internal resistance of the machine is determined from the open-circuit transient time constant parameter, T’o.  The
range of possible values for the external resistance is specified in data for the exwtg1 model.  
 
Near rated power, the wind-turbine generator runs at 104% of nominal (synchronous) speed.  For power levels
significantly below nominal, the reference speed is probably reduced.  No information was available regarding this,
and this behavior is not included in the model.  The initial speed, is an input parameter for genwri.
 
The rotor mechanical model of the machine is approximated as a single rotational inertia, representing the total inertia
of the machine, gearbox and turbine.  This is the same approximation that is used for conventional thermal and hydro
generation.   However, the relatively low shaft torsional frequency typical of wind systems make this approximation
somewhat less valid here.  Further investigation of this approximation is warranted.  
 
The specific parameters for the V80 machine are included in the datasheet of Appendix A.
 

Field Resistor Control Model (exwtg1)


 
As noted above, in most industrial applications of WRI machines, the external resistor is mechanically controlled (e.g.
with a switch or a rheostat).  For the V80, the resistor is electronically controlled (with a PWM IGBT circuit).  The
controller for the resistor on the V80 machine is the “Optislip”(TM?) system.  The function of this control is to
“provide a much more steady power output from the wind turbine”.
 
For this model development, the available information was limited to documentation of the available resistance range
and this qualitative statement of function.  Beyond this, the model presented here is the educated engineering
estimation of the GE project team.
 
The power electronics controlling the resistor should allow for very fast, smooth control of the effective resistance. 
The model represents this control as a smooth, continuously varying external resistance.  The block diagram and data
for the controller is included in the datasheet in Appendix B.  The controller responds to both machine speed and
electric power.  The controller acts quickly to variations in both these quantities to moderate the resultant changes in
electric power output.
 
The controller does not include protective functions based on high current.  For most fault events, it is believed that the
field controller will tend to drive the external resistor to either minimum or bypass.   For available data, minimum
external field resistance is close to protective bypass, and so the extra complexity of explicitly modeling of this
function is not believed to be warranted.
 

Wind Turbine Model (wndtrb)


The wind turbine model provides a simple representation of a complex electro-mechanical system.  The block diagram
for the model is included with the datasheet in Appendix C.  In simple terms, the function of the wind turbine is to
extract as much power from the available wind as possible without exceeding the rating of the equipment.  There is a
moderately complex relationship between wind velocity and available wind power.  Rather than model this
relationship, the model directly accepts the available wind power as an input. 
The practical implication of turbine control is that when the available wind power (P wind) is above the equipment
rating, the blade pitch is increased to reduce the mechanical power (P m ) delivered to the shaft down to the equipment
rating (1.0 p.u.).  When the available wind power is less than rated, the blade pitch is reduced to the minimum to
maximize the mechanical power. 
The turbine controller modifies the blade pitch in response to shaft speed changes.  The speed controller does not
differentiate between shaft acceleration due to increase in wind speed or due to system faults.   In either case, the
turbine control senses the shaft speed to return the machine towards initial speed (104% for the V80 machine). 
Feedback of electrical power ensures that the mechanical power will return to the maximum possible after the
transient.  It has been assumed in this model that the blade position actuators are rate limited and that there is short
time constant associated with the translation of blade angle to mechanical output.  
A simple cosine approximation is used for the relationship between blade pitch angle and mechanical power for a
specified wind power.  In practice this relationship is considerably more complex.  However this simplification should
give reasonable results for typical wind speeds.  The upper limit on blade pitch is set at 10 degrees, which is a value
that would give zero power output at typical wind speeds.  This is less than the actual maximum pitch angle.
The model provided does not include high and low wind cut-out for the turbine.  In situations where system
performance questions hinge on this behavior, the user can simply trip the machine.
 

Generator and PFC Protection Model (gpwtg.p)


Protection of the machine is specified for over-voltage and under-voltage and over-frequency and under-frequency. 
This functionality is achieved with a PSLF user-written (epcmod) generator protection model, gpwtg.p.  This model
provides for four levels of high and low voltage tripping and one level of high and low frequency tripping.  For each
level, a time duration is specified.  If the voltage or frequency level is violated for longer than the corresponding time
duration, tripping takes place. 
Normally, both the generator and the PFC capacitors are tripped together.  However, tripping of only the PFC
capacitors for a given level may be specified by setting the time duration value to the negative of the actual value.  
 The thresholds and times given in Table 4-1 are believed to be the correct values for the standard design of the Vestas
V80.  The manufacturer should be consulted for other designs.
Table 4-1 GPWTG Data
Parameter Suggested Value
vhi1 thi1 1.1 60.
vhi2 thi2 1.11 -0.08*
 vhi3 thi3 1.135 0.20
vhi4 thi4 1.2 0.08
vlo1 tlo1 0.94 60.
vlo2 tlo2 0.85 0.4
vlo3 tlo3 0.75 0.08
vlo4 tlo4 0 0
fhi tfhi 62 0.2
flo tflo 57 0.2
* PFC tripping only
 
To use this model, the file gpwtg.p must be in the user’s working directory.  The user invokes this function (in the .dyd
file) as shown in the following sample:
epcmod 2171 "WTG-20  "  0.69 "1 " : #11 "gpwtg.p" <N>  /
             "vhi1" 1.1000 "vhi2" 1.1100 "vhi3" 1.1350 "vhi4" 1.2000  /
             "vlo1" 0.9400 "vlo2" 0.8500 "vlo3" 0.7500 "vlo4" 0.0000  /
             "thi1" 60.000 "thi2" -0.080 "thi3" 0.2000 "thi4" 0.0800  /
             "tlo1" 60.000 "tlo2" 0.4000 "tlo3" 0.0800 "tlo4" 0.0800  /
             "fhi"  62.000 "flo"  57.000 "tfhi" 0.2000 "tflo" 0.2000
[<N> must be replaced by an epcl table number that is not used by any other epcmod model that is
in use.]
The following variables are output for this model:
vgp       measured voltage (p.u.)
fgp       measured frequency (Hz.)
tvh1      time when voltage went above high limit 1 (sec.)
tvh2      time when voltage went above high limit 2 (sec.)
tvh3      time when voltage went above high limit 3 (sec.)
tvh4      time when voltage went above high limit 4 (sec.)
tvl1       time when voltage went below low limit 1 (sec.)
tvl2       time when voltage went below low limit 2 (sec.)
tvl3       time when voltage went below low limit 3 (sec.)
tvl4       time when voltage went below low limit 4 (sec.)
tfh        time when frequency went above high limit (sec.)
tfl         time when frequency went below low limit (sec.)
 
Variables tvh1 to tfl are –1 when condition is not satisfied or when unit is tripped.
 
The following rules should be observed when using this model:
1.      A single generator must be on the bus specified in the data record and specified “id” must correspond to the
generator’s id.
2.      PFC capacitors, if present, must be modeled by an “svd” on the same bus.
3.      No other svd’s should be on the same bus.
4.      The PFC capacitors must be in the first block (block 0) of the svd; any capacitors in other blocks will not be
switched by the gpwtg model.
 

Wind Speed (windgust.p)


For power system simulations involving grid disturbances, it is a reasonable approximation to assume that wind speed
remains uniform for the 5 to 30 seconds simulation time typical of such cases.  However, with wind generation, the
impact of wind power fluctuations on the output of the machines is also of interest.  In order to provide the capability
to include wind fluctuations as study contingencies, the turbine model (wndtrb) accepts available wind power as an
input.  Wind power fluctuations are relatively complex and stochastic in nature.  From the perspective of the power
system, the concern is primarily response to a sudden surge or sag in power.  The model can easily accept a step up or
down in Pwind. Unfortunately, use of a step input is highly pessimistic.  A somewhat more realistic gust can be
approximated by a 1-cos shape.  An EPCL model has been provided for this function.  The user inputs the start time
(tstart), amplitude (wgmag), and time-width (wgwidth) of the gust.  Times are in seconds and the amplitude is p.u.
wind power.  The user invokes this function (in the .dyd file) as shown in the following sample:
 
epcmod    2171 "WTG-20  "  0.69 "1 " : #9 "windgust.p"  4.0  "tstart" 1.  "wgmag" 0.2 "wgwidth" 4.0 
 

Sample Results and Application Notes


 
This section includes PSLF time simulations illustrating the performance of the new model and data under grid
disturbances.   The study system is relatively simple and selected to show representative performance. 
 

1.1            Response to Fault and Line Trip


For this case, one of two transmission lines connecting the wind farm to the host grid is faulted and tripped.  The fault
is 8 cycles duration, at the remote end of the line with moderate fault impedance.  Both ends of the line are tripped
simultaneously.
Figure 5-1 shows the response of variables related to the active power output of the machine.   The response of the
field resistor is the most important dynamic aspect of the control responses.  Figure 5-2 shows the response of
variables related to the reactive power output of the machine.  
Figure 5-1.  Response of WTG active power quantities to a system fault.
Figure 5-2.  Response of WTG reactive power quantities to a system fault.
 

Response to Severe Disturbance


Figure 5-3 shows the response of the system to a closer in fault with no fault impedance. The protective functions trip
WTG on low voltage.
Figure 5-3.  Response of WTG to a system fault which trips unit.
 

Response to Wind Gust


Figure 5-4 and 5-5 show active and reactive power quantities for the machine.  In this simulation the available wind
power (P wind) is subject to a severe wind gust of amplitude 0.5 p.u., which peaks one second after starting.  This
represents a severe (and possibly unrealistic) wind gust.  The case illustrates the dynamic relationship between the
wind turbine in operation at rated power subject to a wind fluctuation.  The field control acts quickly to substantially
reduce the electrical impact of the wind gust on the power system.  It is worth noting that the amplitude of the electric
power swing is a small fraction of the mechanical power swing.  The turbine control also responds to this gust, but
because it is a mechanical system, the speed of response is significantly slower.  Consequently for this relatively short
duration wind perturbation, the turbine response is less important.

Figure 5-4.  Response of WTG Active Power Quantities to a wind gust.


Figure 5-5.  Response of WTG Reactive Power Quantities to a wind gust.
 
 

Existing Model Performance Comparison


 
The field and turbine control models significantly alter the dynamic performance of the wind turbine compared to a
conventional induction generator model.  Use of a conventional induction (IM) motor model without field control or a
turbine model results in a very conservative (i.e. pessimistic) assessment of the WTG impact on the power system.
 
The figures 5-6 and 5-7 show a comparison between the proposed WTG model and a conventional induction machine. 
The conventional machine has identical parameters to the WTG WRI machine, but without the field and turbine
controls. 
 
The figure 5-6 shows the response to a fault.  The power swing is more severe and the voltage recovery is poorer
without the WTG model.  The figure 5-7 shows the response to a wind gust.  The impact on the power system is shown
in terms of electric power and terminal voltage.  Both variables show more severe impact on the power system. 
 
In the absence of field control model and wind turbine model, a conventional induction generator model could be used,
with pessimistic and largely unrealistic results.

Figure 5-6.  Comparative Response of WTG (red) Active Power


with conventional IM (green)
Figure 5-7.  Comparative Response of WTG (Red) Terminal Voltage
with conventional IM (Green)
 
 

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. 
 

  Applicability to other model WTGs


The model presented in this report was developed specifically for the Vestas V80.  Use of the model for other WTGs
may be acceptable, as long as the relative parameters and basic principals of control are the same.  Just as with
equivalencing, changing the MVA and MW bases for the device models will allow for other machines to be
represented.   As models change, e.g. larger rating, parameters such as the machine inertia are likely to change.  These
parameters, at least, should be reconfirmed.
In the broader sense, this model is not designed for or intended to be used as a general purpose WTG.  There are
substantial variations between models and manufacturers.  Use of this model for doubly fed machines is not
recommended.
 

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
 

A.   GENWRI (Wound-rotor Induction Machine) Data Sheet

B.    EXWTG1 (Field Resistor Control) Data Sheet

C.   WNDTRB (Wind Turbine) Data Sheet


 

Model Name: genwri    


       
Description   Wound-rotor induction generator  model (with
 
variable external rotor resistance)
       
Prerequisites:   Generator present in load flow working case  
       
Inputs:   Network boundary variables, External rotor
 
resistance, Turbine Power
   
Output Channels:
 
  Record    
Level Name Description
       
  1 spd Shaft speed, pu
  1 slip Slip frequency, Hz
  1 vt Terminal voltage, pu
  1 pg Electrical power, MW
  1 qnet Net reactive power, MVAr
  1 qgen Generator reactive power, MVAr
  1 qcap Shunt cap reactive power, MVAr
  1 r2ex External rotor resistance, pu
  1 pm Mechanical power, pu
       
 
Invocation: genwri [<n>] {<name> <kv>} <id> :
 
 
Parameters: (Highlighted quantities were provided by or derived from mfr data)
 
    EPCL  
Name Variable Description
       
6.45 L ls Synchronous reactance
0.28 L’ lp Transient reactance
0.1167 Ll ll Stator leakage reactance
0.0045 Ra Ra Armature (stator) resistance
4.21 T’o tpo Open-circuit transient time constant
3.03 H h Inertia constant, sec
3 D d Damping factor, pu
0.03 Se(1.0) s1 Saturation factor at 1 pu flux
0.29 Se(1.2) s12 Saturation factor at 1.2 pu flux
1.04 wro spdrot Initial electrical rotor speed, pu of system frequency
0. acc acc Accelerating factor for initialization iterations
0. Rcomp rcomp Compounding resistance for voltage control, pu
0. Xcomp xcomp Compounding reactance for voltage control, pu

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.
 

 
 
 
 
 
 
 

Compatibility in EPCL Programs


 
·         The EPCL programs found under the “samples” “stdepcl” folders in the PSLF installation directory will now write
12 character bus names (to output files) instead of 8.
·         The users do not have to change any of their old EPCL programs unless:
1.      The bus names are being written to output files using a 8 character hard coded format, e.g. busd[].busnam:8. The
user has to change it to either busd[].busnam or busd[].busnam:12.
·         If the bus name and kV were used as the bus identifier instead of external numbers, the EPCL program would not
have to change unless the bus name or kV is to change.
·         Function rec_index has been enhanced in version 17 for the transformer table. In addition to specifying the “from
bus”, “to bus” and “ckt id” for transformers, the user can now also specify the tertiary bus (for three winding
transformers). This will help to identify a three winding transformer appropriately in case where there are
parallel three winding transformers with the same “from bus”, “to bus” and “ckt Id”, but with different tertiary
buses (a bad modeling practice). For two winding transformers or other tables, this argument could be –1 (if
bus identifier is external or internal bus number) or “     0.0” (if bus identifier is bus name and base voltage
separated by space and enclosed in double quotes) or may not be specified. If this argument is not specified for
3 winding transformers, rec_index() would function as it did in the past and use “from bus” , “to bus” and “ckt
id” to determine the transformer record in tran table. If rec_index is used in user written EPCL programs they
may be updated for Three Winding Transformers, if the user so desires.
 
 
Special need for reverting to an earlier PSLF version
 
Please see apn084.
 
 
casepar[0].longname Flag  ( Parm  ->  Display Parameters -> bus name )
 
A special flag has been provided to help users output a case (*.epc) and reports in 8-character bus name format.  This
flag could be accessed in EPCL programs through the variable “casepar[0].longname” or through PSLF Interface found
under Parm-> Display Parameters -> “bus name 8-characters=0, 12-characters=1”. If this flag is set to 0, output would
be in 8 character bus name format. If the flag were set to 1, output would be default 12-character bus name format. The
output includes *.epc files, output reports and scan view.
 
 
 It is highly advisable not to change this flag to 0, unless the user specifically wants to view the outputs or reports in 8
characters bus name format.
 

 
 
 
 
 

This flag will be reset to 1 whenever,


1.      A *.sav file is read in version 17
2.      A *.epc file is read in version 17
 
 
 
Subject: Modeling of GE Solar Photovoltaic Plants for Grid
Studies (Version 1.1)
   
Function:  
   
Author: Kara Clark, Nicholas W. Miller, Reigh Walling
   
Date: April 16, 2010
 
 
                                                         
GE Solar Modeling-v-1.pdf is posted in the \upslf17\pdf directory.
 
 
Subject: Create/Read Incremental Change file
   
Function: EPCLs Case_Dif_Inc_Create.p and Case_DIF_Inc_Read.p
   
Author: Surendra R. Puchalapalli
   
Date: September 29, 2010
 
 
                                                         
Create Incremental (change) File
 
The epcl based program “Case_Dif_Inc_Create.p” determines the differences between two power flow (*.sav) cases
and creates an EPC format file. This incremental/change file can later be read by “Case_Dif_Inc_Read.p” epcl
program to apply recorded changes to the case in PSLF memory. Please note that this program will not modify the
base or change cases but will just record the changes between the two cases in to an incremental file.
 
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 with in PSLF main panel. This will bring up the file chooser menu,
from where you can browse to the epcl “Case_Dif_Inc_Create.p”. Select the epcl program and click on Open.
 

 
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.
 

Read Incremental (change) File


 
The epcl program “Case_Dif_Inc_Read.p” reads the incremental *.upd file and updates the case in the memory. This
program can also be used to read in standard EPC format file and works as an append EPC feature.
 
The following are the steps to use this program:
 
1. Click on the ‘epcl’ command button from with in PSLF main panel. This will bring up the file chooser menu,
from where you can browse to the epcl “Case_Dif_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. 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 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:

                                                                                    (Kundur 10.3c)


 

                                                                                     (Kundur 10.27)


 

                                                                             (Kundur 10.28)


 

                                                             (Kundur 10.30a)


 
where:
Vd0 = ideal no-load DC voltage
            ELL = line-to-line voltage on secondary side of converter transformer
            I TRMS = current in secondary side of converter transformer
            I d = DC current
            MVA t = converter transformer MVA rating
            ELN = line-to-neutral voltage on secondary side of converter transformer
            Vd = DC voltage
            B = number of bridges
            T = transformer tap ratio
            a = firing angle (deg)
            Xc = commutating reactance or converter transformer impedance (ohms)
 
Other basic equations include:

                                                                                                           (1)


 

                                                                                                           (2)


 

                                                                                                               (3)


where:
            Ztbase = converter transformer impedance base (ohms)
 
Equation (Kundur 10.3a) can now be rearranged such that:

                                                                                                            (4)


 
Equations (Kundur 10.27) and (1) can be substituted into Equation (Kundur 10.28) to give:
 

                                     (5)


 
Equation (4) can be substituted into Equation (5):
 

                                                        (6)


 
Equations (4) and (6) can be substituted into Equation (2):
 

                                                                      (7)


 
Equation (7) can be substituted into a rearranged version of Equation (3):
 

                                                                                  (8)


 
Equation (8) can be substituted into Equation (Kundur 10.30a):
 

                      (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  
 

Primary Simulation Results


Three primary simulations were run on the example system to illustrate HVDC response to various faults:
1. 3-phase, 4-cycle fault to ground at the rectifier 345 kV AC bus
2. 3-phase, 4-cycle fault to ground at the inverter 345 kV AC bus
3. Trip of one pole
The simulation results are shown in Figure 3, Figure 4 and Figure 5.  Only one HVDC pole’s response is shown.  In all
figures, rectifier variables are shown in the left column, and inverter variables are shown in the right column. The top
plots show converter real and reactive power.  The second pair of plots shows AC and DC bus voltage.  The third pair
of plots shows DC current.  The bottom plots show converter firing angles alpha and gamma.
A complete set of files are provided for simulation of these cases with the PSLF automated dynamic simulation
processor, DYTOOLS, as shown in Table 3.  The files can be found in the subfolder “\samples\HVDC Modeling”
located under PSLF installation directory (For example C:\uspflXXX\samples\HVDC Modeling folder if PSLF XXX is
installed under folder C:\upslfXXX).
 
 
Table 3.  Files for DYTOOLS.
Description File Name
Power flow saved case dc-example-2pole.sav
Dynamic data file dc-example-2pole.dyd
Runs file HVDC-Test.runs
Rectifier fault epcl file Re-4Cy-3PG-B20.p
Inverter fault epcl file In-4Cy-3PG-B30.p
Pole trip epcl file pole-2-out.p
 
Figure 3 shows the HVDC response to a 3-phase, 4-cycle fault to ground at the rectifier AC bus.  The rectifier AC bus
voltage dropped below the instantaneous block threshold of 0.2 pu (vblock) when the fault occurs at 0.1 second. 
Therefore, both the rectifier and inverter were blocked.  The converter will remain blocked for a minimum block time
of 0.02 seconds (tblock).  During the block, the rectifier and inverter AC active powers, AC reactive powers, DC
current, and DC voltages were zero, and the firing angles alpha and gamma were 90 degrees.  After four cycles, the
fault was removed and the rectifier AC bus voltage recovered above the unblock threshold of 0.3 pu (vunbl).  Both the
rectifier and inverter were therefore unblocked.  The post-fault recovery is governed by the rectifier VDCOL (voltage
dependent current order limit).  During the fault, this function quickly limits the current order, as specified by the
VDCOL breakpoints, due to the fast down time constant (e.g., 17 msec).  It slows the return of the current order to
nominal with a longer up time constant (e.g., 80 msec).
Figure 4 shows the HVDC response to a 3-phase, 4-cycle fault to ground at the inverter AC bus.  The inverter DC bus
voltage dropped below the instantaneous bypass voltage of 0.2 pu (vbypas) when the fault occurs at 0.1 second.  As a
result, the inverter was bypassed.  The converters will remain bypassed for a minimum bypass time of 0.02 second
(tbypas). During the bypass, the inverter AC active and reactive powers, and DC voltage were zero.  The rectifier is
still attempting to transfer some active power, and consumes significant reactive power.  After four cycles, the fault
was removed and inverter AC bus voltage recovered above the unbypass threshold of 0.3 pu (vunby).  Therefore, the
inverter was unbypassed.  Again, the speed of the post-fault recovery is governed by the VDCOL up time constant.
Figure 5 shows the response of one HVDC pole to the trip of the other.  The trip of one pole causes a corresponding
voltage rise on both the rectifier and inverter AC buses.  This results in an increase in the firing angles alpha and
gamma, and hence the increased consumption of reactive power on the remaining pole.  The firing angles alpha and
gamma gradually decrease as the AC bus voltage decreases.  (Note that for power flow outages, rec_index can be used
to change a converter’s status.  However, for this dynamic simulation both converter modes, i.e., dcc[@recindex].mode
and dcc[@invindex].mode, were set to zero to trip the pole.) 
 
Figure 3.  Response to 3-phase, 4-cycle Fault to Ground at Rectifier 345 kV AC Bus.
 
 
 
Figure 4.  Response to 3-phase, 4-cycle Fault to Ground at Inverter 345 kV AC Bus.
 
 
 
 
Figure 5.  Response to Trip of One HVDC Pole.
 
 
 

Auxiliary Simulation Results


Two additional simulations illustrate the performance of the delayed block, delayed bypass and sudden voltage change
functions.  The input data for these functions were selected solely to illustrate performance and are shown in Table 4. 
The additional fault scenarios were:
1. 3-phase, 30-cycle depressed voltage at the rectifier 345 kV AC bus
2. 3-phase, 30-cycle depressed voltage at the inverter 345 kV AC bus
The simulation results are shown in Figure 6  and Figure 7.  The plot format in both figures is the same as described
above.
 
Table 4.  Data for Illustrative Simulations of the Delayed Block, Delayed Bypass and Sudden Voltage Change
Functions.
Name Input Parameter Description Value
vdeblk Rectifier AC voltage for delayed block, pu 0.6
Rectifier pickup time for delayed block,
tdeblk 0.2
sec
Rectifier minimum block time for delayed
treblk 0.2
block, sec
vacbyp Inverter AC voltage for delayed bypass, pu 0.6
Inverter pickup time for delayed bypass,
tdebyp 0.2
sec
Inverter minimum bypass time for delayed
tinbyp 0.2
bypass, sec
Sudden inverter AC voltage change for
vchange 0.2
instantaneous bypass, pu
Sudden voltage change detector time
tvchange 0.03
constant, sec
 
Figure 6 shows the response of the delayed block function to a 3-phase, 30-cycle low voltage at the rectifier AC bus. 
The rectifier AC bus voltage dropped below the delayed block threshold of 0.6 pu (vdeblk) when the fault occurs at
1 second.  After the specified pickup time of 0.2 seconds (tdeblk), both the rectifier and inverter were blocked.  The
converters will remain blocked for a minimum delayed block time of 0.2 seconds (treblk).  This timer is restarted every
0.2 seconds (treblk) after the block, if the rectifier AC bus voltage is still below the delayed block threshold of 0.6 pu
(vdeblk).  At 1.5 seconds, the fault was removed and the rectifier AC bus voltage recovered above the delayed block
threshold of 0.6 pu (vdeblk).  Both the rectifier and inverter were subsequently unblocked at 1.6 second, which was
0.2 seconds (treblk) after the last minimum block timer restart. 
Figure 7 shows the response of the sudden inverter AC voltage change and delayed bypass functions to a 3-phase, 30-
cycle low voltage at the inverter AC bus.  With the fault application at 1 second, the inverter AC voltage changed by
more than 0.2 pu (vchange).  Therefore, an instantaneous bypass was applied to the inverter, and it was bypassed for
the minimum bypass time of 0.02 seconds (tbypas).  This emulates a commutation failure. 
Simultaneously at 1 second, the delayed bypass logic detected the inverter AC bus voltage dropping below the delayed
bypass threshold of 0.6 pu (vacby).  After the specified pickup time of 0.2 seconds (tdebyp), the inverter was bypassed
again.  The inverter will remain bypassed for a minimum delayed bypass time of 0.2 seconds (tinbyp).  This timer is
restarted every 0.2 seconds (tinbyp) after the bypass, if the inverter AC bus voltage is below the delayed bypass
threshold of 0.6 pu (vacby).  At 1.5 seconds, the fault was removed and the inverter AC bus voltage recovered above
the delayed bypass threshold of 0.6 pu (vacby).  The inverter was subsequently unbypassed at 1.6 seconds, which was
0.2 seconds after the last minimum bypass timer restart.
 
Figure 6.  Response to 3-phase, 30-cycle Depressed Voltage at Rectifier 345 kV AC Bus.
 
Figure 7.  Response to 3-phase, 30-cycle Depressed Voltage at Inverter 345 kV AC Bus.
 
 
Subject: Transient Limit Criteria Violations
   
Function:  
   
Author: Brian Thomas
 
   
March, 2014
Date: August, 2016
August, 2017
October, 2017
 
 
 

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.
 

The Criteria File Format


In order to modify the Criteria file, the user must understand the file format.  The format is described in the following
sections. 
 
 
 
 
Any line starting with # or // will be treated as comment and not read.
 
The following tables describe the parameters for the criteria violation checks
starttimeflag <FLAG>

0 = Start violation checks at time defined by the user.


FLAG: 1 = Start violation checks automatically when fault is cleared after
post fault delay.

 
starttime <TIME>

Designates the time (seconds) at which the violations should be


TIME: checked. This field will be read and used, if “starttimeflag” is set
to 0.

 
postfaultdelay <TIME>

Designates the time delay (seconds) after fault is cleared at which


PSLF should start checking for violations, when “starttimeflag” is
0.
 
TIME: Designates the time delay (seconds) after starttime at which PSLF
should start checking for violations, when “starttimeflag” is 1.
 
It is recommended that the user set this to 2 or few stepsize.

 
initvalflag <FLAG>

0 = Use initial values at the time defined by the user.


FLAG: 1 = To enabled program to automatically calculate initial values
based upon pre-fault conditions.

 
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>

0 = Check for all buses regardless of whether they are disconnected


or not.
1 = Check for only those buses are which are not disconnected. This
will depend on whether stisol field in busd record gets set or not.
FLAG: If the user is using DYTOOLS, the isol2 flag can be enabled to
automatically calculate this field for bus records. If the user is
manually running the simulation from the user interface, either
connectivity or island command can be called to set the stisol flag
for buses.

 
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>

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
Based on the Group Input, the Designated Starting Point Number of
FROM: the Group.  If From and To are identical, only Voltage violations
within that One Area/Zone/Bus will be checked.

Based on the Grouping Input, the Designated Ending Point Number of


TO: the Group.  If From and To are identical, only voltage violations
within that One Area/Zone/Bus will be checked.

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

ADVANCED FILTER For future use


FLAG

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

Value to use for startifbelow criteria. If this option is enabled,


STARTIFBELOW VALUE PSLF would start to check the channel for violations after the
channel value falls below this 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

Value to use for stopifbelow criteria. If this option is enabled,


STOPIFBELOW VALUE PSLF would stop to check the channel for violations, if the channel
value falls below this 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

Value to use for startifabove criteria. If this option is enabled,


STARTIFABOVE VALUE PSLF would start to check the channel for violations after the
channel value exceeds this 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

Value to use for stopifabove criteria. If this option is enabled,


STOPIFABOVE VALUE PSLF would stop to check the channel for violations, if the channel
value exceeds this 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>

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

Based on the Grouping Input, the Designated Starting Point Number of


FROM: the Group.  If From and To are identical, only voltage violations
within that One Area/Zone/Bus will be checked.

Based on the Grouping Input, the Designated Ending Point Number of


TO: the Group.  If From and To are Identical, only Voltage violations
within that One Area/Zone/Bus will be checked.

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

ADVANCED FILTER For future use


FLAG

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

Value to use for startifbelow criteria. If this option is enabled,


STARTIFBELOW VALUE PSLF would start to check the channel for violations after the
channel value falls below this 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

Value to use for stopifbelow criteria. If this option is enabled,


STOPIFBELOW VALUE PSLF would stop to check the channel for violations, if the channel
value falls below this 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

Value to use for startifabove criteria. If this option is enabled,


STARTIFABOVE VALUE PSLF would start to check the channel for violations after the
channel value exceeds this 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

Value to use for stopifabove criteria. If this option is enabled,


STOPIFABOVE VALUE PSLF would stop to check the channel for violations, if the channel
value exceeds this 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

Based on the Grouping Input, the Designated Starting Point Number of


FROM: the Group.  If From and To are identical, only voltage violations
within that One Area/Zone/Bus will be checked.

Based on the Grouping Input, the Designated Ending Point Number of


TO: the Group.  If From and To are identical, only voltage violations
within that One Area/Zone/Bus will be checked.

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

ADVANCED FILTER For future use


FLAG

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

Value to use for startifbelow criteria. If this option is enabled,


STARTIFBELOW VALUE PSLF would start to check the channel for violations after the
channel value falls below this 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

Value to use for stopifbelow criteria. If this option is enabled,


STOPIFBELOW VALUE PSLF would stop to check the channel for violations, if the channel
value falls below this 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

Value to use for startifabove criteria. If this option is enabled,


STARTIFABOVE VALUE PSLF would start to check the channel for violations after the
channel value exceeds this 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

Value to use for stopifabove criteria. If this option is enabled,


STOPIFABOVE VALUE PSLF would stop to check the channel for violations, if the channel
value exceeds this 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>

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

Based on the Grouping Input, the Designated Starting Point Number of


FROM: the Group.  If From and To are identical, only voltage violations
within that One Area/Zone/Bus will be checked.

Based on the Grouping Input, the Designated Ending Point Number of


TO: the Group.  If From and To are identical, only voltage violations
within that One Area/Zone/Bus will be checked.

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

ADVANCED FILTER For future use


FLAG

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

Value to use for startifbelow criteria. If this option is enabled,


STARTIFBELOW VALUE PSLF would start to check the channel for violations after the
channel value falls below this 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

Value to use for stopifbelow criteria. If this option is enabled,


STOPIFBELOW VALUE PSLF would stop to check the channel for violations, if the channel
value falls below this 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

Value to use for startifabove criteria. If this option is enabled,


STARTIFABOVE VALUE PSLF would start to check the channel for violations after the
channel value exceeds this 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

Value to use for stopifabove criteria. If this option is enabled,


STOPIFABOVE VALUE PSLF would stop to check the channel for violations, if the channel
value exceeds this 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>

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

Based on the Grouping Input, the Designated Starting Point Number of


FROM: the Group.  If From and To are identical, only frequency violations
within that One Area/Zone/Bus will be checked.

Based on the Grouping Input, the Designated Ending Point Number of


TO: the Group.  If From and To are identical, only frequency violations
within that One Area/Zone/Bus will be checked.

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

ADVANCED FILTER For future use


FLAG

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

Value to use for startifbelow criteria. If this option is enabled,


STARTIFBELOW VALUE PSLF would start to check the channel for violations after the
channel value falls below this 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

Value to use for stopifbelow criteria. If this option is enabled,


STOPIFBELOW VALUE PSLF would stop to check the channel for violations, if the channel
value falls below this 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

Value to use for startifabove criteria. If this option is enabled,


STARTIFABOVE VALUE PSLF would start to check the channel for violations after the
channel value exceeds this 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

Value to use for stopifabove criteria. If this option is enabled,


STOPIFABOVE VALUE PSLF would stop to check the channel for violations, if the channel
value exceeds this 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>

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

Based on the Grouping Input, the Designated Starting Point Number of


FROM: the Group.  If From and To are identical, only frequency violations
within that One Area/Zone/Bus will be checked.

Based on the Grouping Input, the Designated Ending Point Number of


TO: the Group.  If From and To are identical, only frequency violations
within that One Area/Zone/Bus will be checked.

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

ADVANCED FILTER For future use


FLAG

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

Value to use for startifbelow criteria. If this option is enabled,


STARTIFBELOW VALUE PSLF would start to check the channel for violations after the
channel value falls below this 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

Value to use for stopifbelow criteria. If this option is enabled,


STOPIFBELOW VALUE PSLF would stop to check the channel for violations, if the channel
value falls below this 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

Value to use for startifabove criteria. If this option is enabled,


STARTIFABOVE VALUE PSLF would start to check the channel for violations after the
channel value exceeds this 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

Value to use for stopifabove criteria. If this option is enabled,


STOPIFABOVE VALUE PSLF would stop to check the channel for violations, if the channel
value exceeds this 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>

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

Based on the Grouping Input, the Designated Starting Point Number of


FROM: the Group.  If From and To are identical, only frequency violations
within that One Area/Zone/Bus will be checked.

Based on the Grouping Input, the Designated Ending Point Number of


TO: the Group.  If From and To are identical, only frequency violations
within that One Area/Zone/Bus will be checked.

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

ADVANCED FILTER For future use


FLAG

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

Value to use for startifbelow criteria. If this option is enabled,


STARTIFBELOW VALUE PSLF would start to check the channel for violations after the
channel value falls below this 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

Value to use for stopifbelow criteria. If this option is enabled,


STOPIFBELOW VALUE PSLF would stop to check the channel for violations, if the channel
value falls below this 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

Value to use for startifabove criteria. If this option is enabled,


STARTIFABOVE VALUE PSLF would start to check the channel for violations after the
channel value exceeds this 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

Value to use for stopifabove criteria. If this option is enabled,


STOPIFABOVE VALUE PSLF would stop to check the channel for violations, if the channel
value exceeds this 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>

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

Based on the Grouping Input, the Designated Starting Point Number of


FROM: the Group.  If From and To are identical, only frequency violations
within that One Area/Zone/Bus will be checked.

Based on the Grouping Input, the Designated Ending Point Number of


TO: the Group.  If From and To are identical, only frequency violations
within that One Area/Zone/Bus will be checked.

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

ADVANCED FILTER For future use


FLAG

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

Value to use for startifbelow criteria. If this option is enabled,


STARTIFBELOW VALUE PSLF would start to check the channel for violations after the
channel value falls below this 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

Value to use for stopifbelow criteria. If this option is enabled,


STOPIFBELOW VALUE PSLF would stop to check the channel for violations, if the channel
value falls below this 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

Value to use for startifabove criteria. If this option is enabled,


STARTIFABOVE VALUE PSLF would start to check the channel for violations after the
channel value exceeds this 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

Value to use for stopifabove criteria. If this option is enabled,


STOPIFABOVE VALUE PSLF would stop to check the channel for violations, if the channel
value exceeds this 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.
 

Specifying criteria by contingency category


User can also specify violation criteria in the *.dycr file based upon contingency categories. Violation criteria can be
grouped by contingency category, by specifying keyword category followed by the contingency category name as shown
below.
 
 
 
 

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.
 

Substation Estimation Tool


 
Operations model like WSM or other EMS models generally have substation information. However planning models generally don’t have substation information
for each bus. The first step is to determine substations in the planning case.
 
The substation estimation tool is an advanced tool which can estimate
·          Substations for all the buses
·          Substations for only those buses which don’t have any substations designation
 
The substation estimation tool is located under Load flow utilities. PSLF can estimate substation information for each bus based upon
·          Latitude and longitude of buses
·          Impedance characteristics of line
 

 
 
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.

Determining substation weights and generate list of contingencies


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.
 

 
 

Analyzing the contingencies based upon CIP 014-1 criteria


 
Subject: Power Plant Model Validation Tool
   
Function:  
   
Author: Brian Thomas
 
   
September 2017
Date:  
 

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

List of equipment terminals, where the generators to be validated


eqtermlist: are located. The equipment terminals can be bus number or long ids
of the terminal nodes. The equipment terminals can be separated by
commas.

List of point of interconnection (poi) terminals where the PMU’s are


poilist located for the given subsystem. The poi can be bus number or long
ids of the terminal nodes. The poi terminals can be separated by
commas.

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

yes : to perform model calibration


modcal: no : to skip model calibration
This feature for model calibration will be described in the future

Name of input file defining the list of parameters to be calibrated


paramfile
This feature for model calibration will be described in the future

                               
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.

Running power plant model validation (PPMV) tool in PSLF


The steps to launch the power plant model validation tool (PPMV is described below.
Define the model validation subsystems in the mdvlist
Load the power flow case for the entire interconnection or just the power plant data
Load the dynamics data file (dyd file)
Launch the power plant model validation (PPMV) tool and select the mdvlst file as shown below. This will launch the
PPMV tool. PSLF would process each power plant defined in the mdvlst file and perform model validation.
 

Results of power plant model validation (PPMV) tool


 
PSLF would generate the result file (which will have ppmv file extensions) for each sub system which was
validated.  The result file can be loaded in PSLF for visualization using the PPMV plot function as shown below.
 
 
PSLF will show the list of all the results (for each subsystem) in the dialog. The user can then select the one they
want to compare as shown below.
 

 
Once the user selects a given subsystem, PSLF would automatically generate the PLOT showing the results of the
model validation as shown below.
 

EPCL access to power plant model validation (PPMV) tool


 
The power plant model validation tool can also be launched from an EPCL instead of running it from the graphical
user interface (GUI). The EPCL command to launch the tool is modvmodc(). The EPCL function requires three input
arguments as described below.
 
<savfile>         name of the power flow binary file
<dyd file>       name of the dynamics data file
<mdvlstfile>   name of the mdvlst file containing subsystem definition
 
 
The following shows an example
 
 
dim *savfile[1][300]
dim *dydfile[1][300]
dim *subsysfile[1][300]
 
/* Define input files power flow case, dynamics file, subsystem definition */
 
*savfile[0] = "12hs4a.sav"
*dydfile[0] = "12hs41.dyd"
*subsysfile[0] = "powerplantdata.mdvlst"
 
@ret = modvmodc(*savfile[0], *dydfile[0], *subsysfile[0])
 
logterm("return variable ",@ret,"<")
 
Subject: Modeling voltage dependent Reactive Limits for wind
turbines/solar generators in power flow studies
using GE PSLF / Wind reactive power compliance tool
for Grid code
   
Function:  
   
Author: Brian Thomas, Sebastian Achilles
 
   
October 2017
Date:  
 

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.
 

Modeling voltage dependent reactive capability curves (VDCC) in PSLF


 

Defining voltage dependent reactive capability curves (VDCC) data


 
The voltage dependent reactive capability curve can be applied to aggregate wind farm or each turbine in the wind
farm.
 
·          Voltage dependent capability curve data only needs to be defined once for a given type/class of wind turbine or
solar generator
·          Voltage dependent capability curve data doesn't need to be defined separately for wind/solar farms of different
sizes, if they are made up of the same type/class of generators
·          There are no problems storing voltage dependent capability curves for hundreds of wind turbines in each wind
farm or for all the wind farms modeled in a traditional planning case
 
The VDCC data is defined in the WCRF file as shown below.
 

 
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.

Modeling voltage dependent reactive capability curves (VDCC) in power flow


 
The VDCC can be processed in the power flow by calling the EPCL function vdcc_soln(). The function is defined in
the EPCL functions library.
 
An example is shown below.
 

Wind reactive power compliance tool


 
In some parts of the world, the local grid codes require that the wind/solar generators meet the reactive power
requirement at the point of the interconnection (POI).
 
The following questions might need to be answered depending upon grid code in different countries.
·          Can the wind plant meet the minimum POI reactive requirements?
·          What should be the size of capacitors or reactors required at the station to meet the grid code steady state
requirement?
·          Is the protection setting of the wind turbine generator captured when determining the range of the reactive
limits for various voltage conditions at the POI.
 
To help answer the above question, a new tool was developed which could assist PSLF users to help this type of study.
The new tool “vq_compliance.p” developed by the authors is located under the “Wind Compliance Tool” folder within
the “Samples” folder in the PSLF installation directory. The “vq_compliance.p” EPCL  can automate this type of study
and determine the maximum and minimum reactive limits for different voltage conditions at the point of
interconnection.
 
If there are shunt or reactor banks for plant level reactive compensation, the tool can also account for these when
determining the max/min reactive capability of the wind farm. To include shunt/reactor banks in the reactive power
capability determination, the shunt/reactor banks can be defined as part of the SHUNTVDCC record as shown in the
example below.
 
 
The input to the tool can be entered in the section defined as data input in the EPCL.
The main inputs to the tool are
·          Name of the power flow file
·          Name of the file containing the VDCC and the references to the generators.
·          Point of interconnection
·          Maximum Point of interconnection voltage
·          Minimum Point of interconnection voltage
·          Number of steps the simulation should take between the maximum and minimum point of interconnection
voltage
·          Any trip settings for  over or under voltage trips
 
The tool will generate a CSV file which can be easily plotted using Matlab or Python or other tools. A sample Matlab
plotting function “plot_vq_compliance_output.m” is already included to help user PLOT the output in Maltab.
 
The following example shows the output from a normal simulation.

 
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.
 

Quick Overview of Power Flow Solution Process


 
Power flow solution is an iterative process (excluding DC power flow solution) where the bus voltages are computed
starting from some initial conditions, such that all boundary conditions (injections, reactive limits, controller limits
such as tap range, etc.) and Kirchhoff’s laws are satisfied. A power flow solution terminates if it converges within the
solution tolerance within a specified number of iterations.
A swing bus is required in each electrical island in the system for solving the case. If a swing bus is not defined in an
island, that island would not be accounted in the solution.
Various control adjustment options such as LTC, SVD, Area Interchange, Phase shifter, HVDC tap adjustment can be
enabled in the solution. If these options are enabled, PSLF would also enforce them in the solution space.
 
 
Newton Raphson Power Flow Solution Option
 
In the traditional Newton Raphson power flow solution, the power flow Jacobian matrix is re-built at each iteration to
compute the update to the bus voltages. This solution method is the most widely used solution method in PSLF. It has
very rapid convergence, but is also less tolerant to bad data. All control adjustment options are available with this
solution method.
This solution method can be selected from the solution panel as shown below.
 

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.

 
 

Fast Decoupled Power Flow Option


 
The Fast-Decoupled power-flow solution in PSLF is based on the traditional fast-decoupled method, where:
·         The voltage angle is updated based on active power mismatch equations; and
·         The voltage magnitude is updated based on reactive power mismatch equations.
The Fast-Decoupled method is more tolerant of bad initial voltage profiles and suspect data. The Fast-Decoupled
method has good initial convergence and is typically better when starting from flat-start conditions in comparison to
the traditional Newton-Raphson power-flow solution. All control adjustment options are available with this method.
 
The fast-decoupled method can be enabled by selecting the option from the solution panel as shown below.
 
 
Fast decoupled power flow solution can also be invoked from an EPCL by calling the soln2() command. The example
below illustrates how to call this function via EPCL.
 

 
 

Fixed Slope Method


 
The fixed slope method is currently available with both full Newton-Raphson solution options. In the fixed slope
method, an inner loop is introduced in the power-flow solution. In the inner loop, the Jacobian matrix is built only
once. The inner loop is terminated when either of the following conditions are met:
·         The solution converges to the maximum number of inner loop iterations, or
·         The solution tolerance is met.
The reactive limits are checked in the outer loop, and the Jacobian is rebuilt in the outer loop. This method has good
convergence properties, and in some literature, this solution technique is referred to as the “Dishonest-Newton
method”.
NOTE: Using this method may make the solution converges very rapidly, and as a result. SVD adjustment may not
have an adequate chance to fully function. For this reason, it is recommended that this method not be used when the
SVD adjustment is enabled.
This option can be enabled by activating the inner loop and then setting the max iteration for the inner loop from the
solution parameter window ( Parm à Solve ) as shown below:
 
 

 
 

Auto AC Solver (Robust Power Flow solution)


 
Although a single solution technique is often adequate to solve a case, sometimes a combination of techniques might
be required to solve a difficult case. A new solution technique called Auto AC solver (Robust solver) has been added
in PSLF based upon author’s own experience. This solution method uses a combination of different techniques and
other algorithms to attempt to solve a case.
All control adjustment options are available with this method. This method takes a bit longer than other methods to
solve a case, but has better chance of success. A flat-start option is not directly available with this method, but the user
can set the voltage conditions for flat start and then invoke the solution (although this is not recommended).
The Auto AC solver method can be enabled by selecting the option from the solution panel as shown below.
 

 
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.
 

 
 

Distributed Slack Bus Option


 
Traditional power-flow algorithms require that each electrical island have a swing bus for reasons related to numerical
computation. The bus voltage magnitude and the angle of the swing bus are considered as inputs to the power-flow
solution, and are held constant. Any power mismatch due to a change in generation or load (e.g. contingency or
dispatch or load changes) is typically absorbed by the swing bus, when the change is not distributed before the power-
flow solution is called. If a large mismatch is picked up by the system swing bus (for instance, due to large
contingencies), solving the case may be more difficult.
In real power systems, any system imbalance tends to be picked up by generators which respond to inertial or
frequency changes in the entire electrical island or in a larger part of the electrical island closer to the disturbance. It is
desirable to have several buses throughout the system (distributed) which act like swing buses and pick up any
imbalance, rather than one single bus picking up the imbalance to emulate operational practices. This method is
referred to as distributed slack-bus option. In real time operations, the concept of distributed slack is widely used, and
this option has been introduced in PSLF version 21.
The distributed slack bus option is available with the following power-flow solution methods:
·         Full Newton-Raphson Method
·         Full Newton-Raphson Method with new control option
·         Fast-Decoupled Method
To enable this option the following EPCL variables must be set.

Flags Description
Enforce base load flag
solpar[0].rdbl
1 : don’t redispatch base load generators
0 : redispatch base load generators

The difference of generation and load dropped would be re-dispatched


solpar[0].redtol only if either of these values exceeds this tolerance (MW). This
tolerance should be more than 0 to enable the Redispatch feature.

1: Inertial pickup (default)


solpar[0].redopt 2: Reserve margin based pickup

0: Generator dispatch based pickup(default)


solpar[0].redineropt 1: Generator pmax based pickup
2: Generator mva base based pickup
3: Generator prf (participation factor) based pickup
 
AGC and participation factor based pickup (only those generators who
agc_flag is set to true will participate)
4: Generator prf based pickup
5: Generator prf and Area prf based pickup
6: Generator prf and BA prf based pickup
 
Governor and participation factor based pickup (only those generators
who gov_flag is set to true will participate)
7: Generator prf based pickup
8: Generator prf and Area prf based pickup
9: Generator prf and BA prf based pickup

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.
 
 

DC Power Flow Solution Option


 
The DC power flow solution option in PSLF is based upon traditional DC solution where the reactive power is ignored
and only the bus voltage angle is updated. Only phase shifter control adjustment option is available with this solution
option.
 
The DC power flow solution can be selected from the solution panel as shown below.
 

 
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.
 
 

Guidelines for Solving Power Flow Cases


 
This section provides general guidelines for using various power flow solution options for different types of cases and
systems.
 

Solution techniques recommendations for different Interconnections based upon author’s


experience
 
Based upon personal experience developing different power-flow algorithms and working with power-flow cases for
various interconnections, the author recommends the following techniques:
 

Interconnection Power Flow Solution Methods

US Eastern Interconnection Auto AC solver


Fast Decoupled
Full Newton Raphson

US Western Interconnection Full Newton Raphson

US ERCOT Auto AC Solver


Full Newton Raphson
Fast Decoupled

 
·          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.

Interconnection Power Flow Solution Methods

US Eastern Interconnection Fast Decoupled

US Western Interconnection Fast Decoupled followed by AC solution or DC power flow


solution followed by AC Full Newton solution
US ERCOT Fast Decoupled

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.
 
 
 

Recommended solution technique when adding new projects


Sometimes, it is required to study the impact of new projects (such as a new transmission line or new transformer or
new HVDC line or new plant, etc.). In such cases, it becomes necessary to add the project in an existing
interconnection wide power flow case called base case and solve the case. Often, PSLF users find that it becomes very
difficult to solve cases after adding new projects (new buses, new lines, new generators etc.). One very powerful
feature available in such situations is the angle estimation feature described in detail in application note 021 in the
PSLF manual. This angle estimation option will estimate the initial angle of the bus giving a better chance of solving
the case. The angle estimation flag can be set from the solution parameter window (parmàsolve) as shown below.

 
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.

Power flow solution debugger


A new function was recently added to assist the users to identify buses which cause convergence issues. Generally,
such buses show up repeatedly in the solution iteration log and can point to localized issues.
 
The power flow solution debugger can help track such buses. To enable the option, the following EPCL variable
should be enabled.
solpar1[0].pfdebugger = 1
 

Recommended procedure for solving difficult power flow cases


 
1.      Solve with all controls/adjustments disabled
 
a.        Disable all solution control adjustments (SVD, LTC, Area Interchange, Phase shifter adjustments)
b.      Enable HVDC converter control as shown below

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

(pslf-support@ge.com) with the case


 
2.      Solve with LTC adjustment enabled
a.        Disable all solution control adjustments (SVD, LTC, Area Interchange, Phase shifter adjustments)
except LTC
b.      Enable HVDC converter control as shown in 1b.

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

(pslf-support@ge.com) with the case


 
3.      Solve with SVD adjustment enabled
a.        Disable all solution control adjustments (LTC, Area Interchange, Phase shifter adjustments) except
SVD
b.      Enable HVDC converter control as shown in 1b.

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

(pslf-support@ge.com) with the case


 
4.      Solve with SVD and LTC adjustment enabled
a.        Disable all solution control adjustments (Area Interchange, Phase shifter adjustments) except SVD and
LTC
b.      Enable HVDC converter control as shown in 1b.

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

(pslf-support@ge.com) with the case


 
5.      Solve with Phase shifter adjustment enabled
a.        Disable all solution control adjustments (LTC, Area Interchange, SVD) except phase shifter adjustment
b.      Enable HVDC converter control as shown in 1b.

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

(pslf-support@ge.com) with the case


 
6.      Solve with Area Interchange control enabled
Make sure that the summation of the net schedule (PNET-SCH) for all the areas sum up to 0 or less than
1.
 
a.        Disable all solution control adjustments (LTC, SVD, phase shifter adjustment) except Area Interchange
controls

b.      Enable HVDC converter control as shown in 1b.

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)

b.      Enable HVDC converter control as shown in 1b.

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.


 
Subject: NERC Case Quality Metrics and WECC SADD checks
   
Function: Program to generate the NERC case quality metrics for the power-
flow and dynamic data. Users also have the option to also perform
the WECC SADD checks using this tool
   
Shruti Rao
Author:
   
November, 2017
Date:
Updated: September, 2018
 

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).
 

Basic Overview of RAS


 
The user is expected to be familiar with how RAS works in steady state. User should refer to the vimeo video
(https://vimeo.com/album/3561877) to learn more on the subject.
RAS actions are taken if the RAS Criteria (SCR or CCR) is true. The RAS action with the smallest time delay is
executed first. The time delay in the RAS record is used as means to prioritize (rank) the actions which will occur first.
All the RAS actions which have criteria status of CHECK or TOPOLOGYCHECK or CHECK will be evaluated in
dynamics.
An important thing to keep in mind is that unlike steady state, some inputs to the RAS criteria blocks needs to have
time delays. Otherwise, any RAS criteria could evaluate to true, if the system conditions (such as flows, voltage,
frequency etc. exceed the threshold at any instant of time in the simulation. The time delay should be entered as time
delay for the CCR input. Currently CCR is the only block which has time delay for each of the input.
 

Simulating RAS in dynamic simulation during manual run


Steps to simulate RAS
The process of simulating RAS in a dynamic simulation via user interface or from an epcl script is as follows
1.      Load the power flow file
2.      Solve the power flow file, if case is not solved
3.      Load the dynamic data from dyd file or multiple dyd files
4.      Load the RAS file from the menu shown below
a.        If all the RAS is modeled in a single RAS file, use the Import RAS File menu option
b.      If different RAS schemes are modeled in multiple RAS files, use the Import RAS List menu option

 
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.

Summary of RAS Actions triggered during the simulation


Any RAS action triggered during the simulation viewed from the event record table in the user interface.
The same information can also be found from the *.event csv file generated by PSLF. The event file will have the
same name as the CHF file but with “_event.csv” suffix.

 
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)
 

Steps to simulate RAS in DYTOOLS


The process of simulating RAS in a dynamic simulation via the dynamics contingency processor (DYTOOLS) is
described below.
1.      Define the RAS input for each case in the *.cases file. This is no different than how RAS is defined in
SSTOOLS.

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

Summary of RAS Actions triggered for contingencies


 
The RAS actions taken for any contingency by the contingency processor can be viewed using any of the following 3
options
·          Master Event CSV file (case summary events summary file)
·          Summary (*.sum) file
·          Master Log Summary file ( case summary csv file )
Master Event CSV file

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

Description Complex load model (CLOD) for a group (climate zone,


area, zone, owner)

Prerequisites:

Inputs: Voltage at bus to which the composite load is connected

Invocation: _clod num “group name” <group type> : #r

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

Sample data record:


_clod -11 "DSW_RES" 0 : #4 /
"LMpct" 20. "SMpct" 30. "TXpct" 2.0 "DLpct" 10.0 "CPpct" 10. /
"Kp" 1.0 "Rbr" .0 "Xbr" 0.08 /
“Pmin” 50. “Pfmin” 0.5 “Vmin” 0.85

Schematic Diagram:

Low- side
bus

System bus Large


1 : Tap M Motor

Small
Rbr + jXbr M Motor

Discharge Static
Lighting Load Load

Transformer
Discharge
Static
Constant P
Exciting
Lighting Load
Current

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
Model Name: _cmp_1pac (cmp_1pac model is also described below)

Description Data management model for use with cmp_1pac


single-phase air conditioner submodel of the cmpldw2
composite load model

Invocation: _cmp_1pac <data ID number> :

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.

Sample data record:


_cmp_1pac -401 "CompPF" 0.98 /
"Vstall" 0.56 "Rstall" 0.1 "Xstall" 0.1 "Tstall" 0.03 /
"Frst" 0.2 "Vrst" 0.95 "Trst" 0.3 /
"fuvr" 0.1 "vtr1" 0.6 "ttr1" 0.02 "vtr2" 1 "ttr2" 9999 /
"Vc1off" 0.5 "Vc2off" 0.4 "Vc1on" 0.6 "Vc2on" 0.5 /
"Tth" 15 "Th1t" 0.7 "Th2t" 1.9 "tv" 0.025
Notes:

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.

cmp_1pac model description:

a) cmp_1pac is a component submodel of the cmpldw2 model. As such, it is not input


in the dynamic data (dyd) file but is created when a cmpldw2 model that uses it is
read from the dyd file (see cmpldw2 manual page).

b) The compressor motor model is divided into two parts:


Motor A – Those compressors that can’t restart soon after stalling
Motor B – Those compressors that can restart soon after stalling
The motors are represented by algebraic equations, as follows:
If V > 0.86:
P = Po * (1 + f )
Q = [Q’o + 6 * (V – 0.86) 2 ] * (1 - 3.3 * f )
If V < 0.86 and V > V’stall:
P = [Po + 12 * (0.86 – V) 3.2 ] * (1 + f )
Q = [Q’o + 11 * (0.86 – V) 2.5 ] * (1 - 3.3 * f )
If V < V’stall:
P = Gstall * V * V
Q = - Bstall * V * V
If V < Vstall for t > Tstall, motor stays in stalled state.
For “B” motor, if V > Vrst for t > Trst, the motor restarts.

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.)

Description Data management model for use with cmp_der_a


distributed energy resource submodel of the cmpldwg
composite load model

Invocation: _cmp_der_a <data ID number> :

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.

Sample data record:


_cmp_der_a -112 : "trv" 0.00416 . . . “vfth” 0.8

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.

cmp_der_a model description:

a) cmp_der_a is a component submodel of the cmpldwg model. As such, it is not


input in the dynamic data (dyd) file but is created when a cmpldwg model that uses
it is read from the dyd file (see cmpldwg manual page). At this time, only 1
cmp_der_a submodel or 1 dgpv submodel can be included in a particular cmpldwg
model.

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.)

Description Data management model for use with cmp_dgpv


photovoltaic distributed generation submodel of the
cmpldw2 composite load model

Invocation: _cmp_dgpv <data ID number> :

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

Sample data record:


_cmp_dgpv -901 : "Imax" 1.1 /
"Vt0" 0.5 "Vt1" 0.7 "Vt2" 1.1 "Vt3" 1.2 "Vrec" 0.5 /
"ft0" 58.0 "ft1" 59.0 "ft2" 61.0 "ft3" 62.0 "frec" 0.0

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:

a) cmp_dgpv is a component submodel of the cmpldw2 model. As such, it is not input


in the dynamic data (dyd) file but is created when a cmpldw2 model that uses it is
read from the dyd file (see cmpldw2 manual page).

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)

Description Data management model for use with cmp_dist


distribution equivalent submodel of the cmpldw2
composite load model

Invocation: _cmp_dist <data ID number> :

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

Sample data record:


_cmp_dist -20 : /
“Bss” 0.1 “Rfdr” 0.4 “Xfdr” 0.4 /
"Xxf" 0.08 "TfixHS" 1 "TfixLS" 1 "LTC" 0 /
"Tmin" 0.9 "Tmax" 1.1 "step" 0.00625 /
"Vmin" 1.025 "Vmax" 1.04 "Tdel" 30. "Ttap" 5.
Notes:

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.

cmp_dist model description:

a) cmp_dist is a component submodel of the cmpldw2 model. As such, it is not input


in the dynamic data (dyd) file but is created when a cmpldw2 model that uses it is
read from the dyd file (see cmpldw2 manual page).

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.

c) The transformer is modeled in cmp_dist by a normal PSLF transformer model with


the “low-side” substation bus as the “from” bus of the transformer. The series
resistance and shunt admittance values are set to zero. If the transformer reactance
(Xxf) is less than the jumper threshold, the transformer is omitted. In this case, the
“low-side” bus and “high-side” bus are the original load bus.

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)

Description Data management model for use cmp_elec electronic


load submodel of the cmpldw2 composite load model

Invocation: _cmp_elec <data ID number> :

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

Sample data record:


_cmp_elec -201 : "PFel" 1 "Vd1" 0.7 "Vd2" 0.5 "frcel" 0.8

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.

cmp_elec model description:

a) cmp_elec is a component submodel of the cmpldw2 model. As such, it is not input


in the dynamic data (dyd) file but is created when a cmpldw2 model that uses it is
read from the dyd file (see cmpldw2 manual page).

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.)

Description Data management model for use with cmp_mot3


three-phase motor submodel of the cmpldw2
composite load model

Invocation: _cmp_mot3 <data ID number> :

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.

Sample data record:


_cmp_mot3 -301 : /
0.7500 0.0400 1.8000 0.1200 0.1040 /
0.0950 0.0021 0.1000 0.0000 /
0.7000 0.0200 0.2000 1.0000 99999.0000 /
0.5000 0.0200 0.7000 0.7000 0.1000
Notes:

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.

cmp_mot3 model description:

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)

Description Data management model cmp_stat static load


submodel of the cmpldw2 composite load model

Invocation: _cmp_stat <data ID number> :

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

Sample data record:


_cmp_stat -101 : "Pfs" -0.998 /
"P1e" 2 "P1c" 0.618 "P2e" 1 "P2c" 0.382 "Pfreq" 0 /
"Q1e" 2 "Q1c" -0.5 "Q2e" 1 "Q2c" 1.5 "Qfreq" -1

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.

cmp_stat model description:

a) cmp_stat is a component submodel of the cmpldw2 model. As such, it is not input


in the dynamic data (dyd) file but is created when a cmpldw2 model that uses it is
read from the dyd file (see cmpldw2 manual page).

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 )

d) During initialization, Po and Qo are calculated as follows:


If (|PSs| < 0.8) PFs is set = 0.8 and a warning message is written.
Pinit = Pfrac * Pload
Qinit = Pinit * sqrt(PFs-2 – 1.)
Po = Pinit / (P1c * V P1e + P2c * V P2e + P3 )
Qo = Qinit / (Q1c * V Q1e + Q2c * V Q2e + Q3 )

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

Description WECC Composite load model for a group (load zone,


area, zone, owner).

Prerequisites:

Inputs: Voltage at bus to which the composite load is connected

Invocation: _cmpldw num “group name” <group type> : #r mva=-load factor

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.

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) 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.
f) 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.

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.

Sample data record:


_cmpldw -55 “NCI_RES” : #1 mva=-1.1 /
“Pmin” 50. “PQmin” 0.7 “Vmin” 0.85 "kVthresh" 40.0 /
"Bss" 0 "Rfdr" 0.04 "Xfdr" 0.04 "Fb" 0.75/
"Xxf" 0.08 "TfixHS" 1 "TfixLS" 1 "LTC" 0 "Tmin" 0.9 "Tmax" 1.1 "step" 0.00625 /
"Vmin" 1.025 "Vmax" 1.04 "Tdel" 30 "Ttap" 5 "Rcomp" 0 "Xcomp" 0 /
"Fma" 0.146246 "Fmb" 0.147222 "Fmc" 0.036521 "Fmd" 0.367004 "Fel" 0.106286 /
"PFel" 1 "Vd1" 0.7 "Vd2" 0.5 "Frcel" 0.8 /
"Pfs" -0.99771 "P1e" 2 "P1c" 0.557361 "P2e" 1 "P2c" 0.442639 "Pfreq" 0 /
"Q1e" 2 "Q1c" -0.5 "Q2e" 1 "Q2c" 1.5 "Qfreq" -1 /
"MtpA" 3 "MtpB" 3 "MtpC" 3 "MtpD" 1 /
"LfmA" 0.75 "RsA" 0.04 "LsA" 1.8 "LpA" 0.12 "LppA" 0.104 /
"TpoA" 0.095 "TppoA" 0.0021 "HA" 0.1 "etrqA" 0 /
"Vtr1A" 0.7 "Ttr1A" 0.02 "Ftr1A" 0.2 "Vrc1A" 1 "Trc1A" 99999 /
"Vtr2A" 0.5 "Ttr2A" 0.02 "Ftr2A" 0.7 "Vrc2A" 0.7 "Trc2A" 0.1 /
"LfmB" 0.75 "RsB" 0.03 "LsB" 1.8 "LpB" 0.19 "LppB" 0.14 /
"TpoB" 0.2 "TppoB" 0.0026 "HB" 0.5 "etrqB" 2 /
"Vtr1B" 0.6 "Ttr1B" 0.02 "Ftr1B" 0.2 "Vrc1B" 0.75 "Trc1B" 0.05 /
"Vtr2B" 0.5 "Ttr2B" 0.02 "Ftr2B" 0.3 "Vrc2B" 0.65 "Trc2B" 0.05 /
"LfmC" 0.75 "RsC" 0.03 "LsC" 1.8 "LpC" 0.19 "LppC" 0.14 /
"TpoC" 0.2 "TppoC" 0.0026 "HC" 0.1 "etrqc" 2 /
"Vtr1C" 0.65 "Ttr1C" 0.02 "Ftr1C" 0.2 "Vrc1C" 1 "Trc1C" 9999 /
"Vtr2C" 0.5 "Ttr2C" 0.02 "Ftr2C" 0.3 "Vrc2C" 0.65 "Trc2C" 0.1 /
"LfmD" 1 "CompPF" 0.98 /
"Vstall" 0.56 "Rstall" 0.1 "Xstall" 0.1 "Tstall" 0.03 /
"Frst" 0.2 "Vrst" 0.95 "Trst" 0.3 /
"fuvr" 0.1 "vtr1" 0.6 "ttr1" 0.02 "vtr2" 1 "ttr2" 9999 /
"Vc1off" 0.5 "Vc2off" 0.4 "Vc1on" 0.6 "Vc2on" 0.5 /
"Tth" 15 "Th1t" 0.7 "Th2t" 1.9 "tv" 0.025 /
“DGtype” 1 “pflgdg” 0 “Pgdg” 0.20 “Pfdg” 1.0 “Imax” 1.1 /
“Vt0” 0.5 “Vt1” 0.7 “Vt2” 1.1 “Vt3” 1.2 “Vrec” 0.5 /
“ft0” 58.0 “ft1” 59.0 “ft2” 61.0 “ft3” 62.0 “frec” 0.0

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
Schematic Diagram:

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
Model Name: _cmpldw2

Description WECC modular composite load model for a group (load


zone, area, zone, owner).

Prerequisites:

Inputs: Voltage at bus to which the composite load is connected

Invocation: _cmpldw2 num “group name” <group type> : #r mva=-load factor

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.

Sample data record:


_cmpldw2 -55 “NCI_RES” : #1 mva=-1.1 /
“Pmin” 50. “Pfmin” 0.7 “Vmin” 0.85/
cmp_dist -10 /
cmp_stat -2075 -1. /
cmp_dgpv -901 1. /
cmp_elec -30 0.1 /
cmp_mot3 -301 0.2 /
cmp_mot3 -302 0.2 /
cmp_mot3 -303 0.2 /
cmp_1pac -401 0.2

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
Schematic Diagram:

Load Bus

System Bus Low-side M Motor A


(230, 115, 69kV) Bus Feeder
1:T Equiv.
Rfdr +j Xfdr M Motor B
jXxf

Fb Bfdr M Motor C

Bss
(1-Fb) Bfdr M Motor D

UVLS

UFLS Electronic
DG
Static

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
Model Name: agc2

Description Automatic Generation Control (to be used in pair with


uclp2)

Prerequisites: Turbine-Governor model ahead of this model in the


dynamic model table, Unit Control Loop models (UCLP2)

Inputs: Shaft speed, Tie flow, Real power output of the controlled
generators Scheduled speed and tie flow

Invocation: agc2 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Fset 0.0 Desired frequency set point, Hz


Kps 0.0 Proportional gain in the power requirement control
Kis 0.0 Integral gain in power requirement control
Vsmax 0.0 Upper and lower limits in MW on
Vsmin 0.0 the output of the power requirement control
netgain 0.0 gain for the tie flow error signal
bias 0.0 gain for the speed error signal
Pnsched 0.0 Scheduled MW of tie flow
areanum 0.0 Area number of which AGC controls generations
zonenum 0.0 Zone number of which AGC controls generations
tf 0.0 Filter time constant for filtering total generation

Notes:

a) if Fset = 0, it is assigned the value of steady-state frequency. if pnsched = 0, it is


assigned the value of sum of the tie line flows at steady-state.

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

Description Load voltage/frequency dependence model

Prerequisites: Nominal voltage/frequency values of load


contained in load flow tables and initial
condition load flow solved

Inputs:

Invocation: [alwscc] [<n>] {<name> <kv>} <id>:


or [blwscc]
or [wlwscc]
or [zlwscc]

Parameters:

EPCL Default
Variable Data Description

area 0.0 Filter time constant in seconds (blwscc) or area number


(alwscc) or zone number (zlwscc) or flag number (wlwscc)
p1 0.0 Constant impedance fraction, p.u.
q1 1.0
p2 1.0 Constant current fraction, p.u.
q2 0.0
p3 0.0 Constant power fraction, p.u.
q3 0.0
p4 0.0 Frequency dependent power fraction, p.u.
q4 0.0
lpd 0.0 Real power frequency index, p.u
lqd 0.0 Reactive power frequency index, p.u.

Notes:

a) These models implement one of two load models as follows:

If p4 or q4 is non-zero

P = Po (p1v2 + p2v + p3 + p4 (1 + lpd (f-1)))


Q = Qo (q1v2 + q2v + q3 + q4 (1 + lpd (f-1)))

This matches the load characteristic of the WSCC LA load model.

If p4 and q4 are zero:

P = Po (p1v2 + p2v + p3) (1 + lpd (f-1))


Q = Qo (q1v2 + q2v + q3) (1 + lpd (f-1))

This matches the load characteristic of the WSCC LB load model.

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.

In all cases the load fractions must sum to unity

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.

d) The first parameter has a separate meaning for each model.

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:

Bus Frequency Effective Load


alwscc
blwscc
Bus Voltage wlwscc P+jQ
zlwscc
Model Name: ameta

Description Bus voltage angle recorder. Places all area,


zone or system voltage angles in output
channels.

Prerequisites: Bus must exist

Inputs: Angle of bus voltage

Invocation: ameta [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

flag 0.0 Flag 0=all, 1=area or 2=zone


num 0.0 Area or zone number

Notes:

a) If bus exists in area, zone or all, then an output channel is assigned by ameta.

Output Channels:

Record
Level Name Description

1 abus Bus voltage angle, degrees.


1 abul Bus voltage angle for load bus, degrees.
1 abug Bus voltage angle for generator bus, degrees.

Block Diagram:

Bus Voltage
Vin
Angle
Gain = 1
Model Name: ametr

Description Bus voltage angle recorder. Places bus voltage angle in


an output channel.

Prerequisites: Bus must exist

Inputs: Bus voltage angle

Invocation: ametr [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tf 0.0 Transducer or filter time constant, sec.


refa 0.0 If refa is not zero, the rotor angle of the reference generator is
subtracted from the bus voltage angle.

Notes:

a) Tf may be zero. If Tf is less than 5*delt, Tf is set to zero.

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

1 abus Bus angle, degrees


Block Diagram:

dypar.ref_angle
0.0

(refa ≠ 0 ) (refa = 0 )

1 180
volt[i].va abus
1 + sTf +
s0
Model Name: apfl

Description Pump/fan driven load model for induction motors

Prerequisites: Motor model ahead of this model in dynamic models


table

Inputs:

Invocation: apfl [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

a 0.0 speed squared coefficient


b 0.0 speed coefficient
d 0.0 speed to the e power coefficient
e 0.0 exponent
t1 0.0 optional lead time constant, sec.
t2 0.0 optional lag time constant, sec.

Notes:

a) The mechanical load power is calculated by:

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.

c) If T2 is zero, the lead-lag block is bypassed.

d) The “fix bad data” option will do the following:


a. If non-zero, set T2 to a minimum of delt.
b. Set T1 to a minimum of 0.
Output Channels:

Record
Level Name Description

1 pmld Load mechanical power, MW

Block Diagram:

Motor Speed Mechanical Power


[speed] w 1  sT1 To [pmech]
Tm(w)
1  sT 2 w DM1
Model Name: blindef

Description Blinder definition for WECC Distance Relay Model

Prerequisites: Branch must exist

Inputs: none

Invocation: blindef nf namef kvf id nt namet kvt ck :

Parameters:

EPCL Default
Variable Data Description

type1 0.0 Blinder 1 type (+/- 1 or +/- 2).


int1 0.0 Blinder 1 intercept, ohms
rot1 0.0 Blinder 1 rotation, deg.
type2 0.0 Blinder 2 type (+/- 1 or +/- 2).
int2 0.0 Blinder 2 intercept, ohms
rot2 0.0 Blinder 2 rotation, deg.
type3 0.0 Blinder 3 type (+/- 1 or +/- 2).
int3 0.0 Blinder 3 intercept, ohms
rot3 0.0 Blinder 3 rotation, deg.
type4 0.0 Blinder 4 type (+/- 1 or +/- 2).
int4 0.0 Blinder 4 ntercept, ohms
rot4 0.0 Blinder 4 rotation, deg.

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

Description Load voltage/frequency dependence model

Prerequisites: Nominal voltage/frequency values of load


contained in load flow tables and initial
condition load flow solved

Inputs:

Invocation: [blwscc] [<n>] {<name> <kv>} <id>:


or [alwscc]
or [wlwscc]
or [zlwscc]

Parameters:

EPCL Default
Variable Data Description

area 0.0 Filter time constant in seconds (blwscc) or area number


(alwscc) or zone number (zlwscc) or flag number (wlwscc)
p1 0.0 Constant impedance fraction, p.u.
q1 1.0
p2 1.0 Constant current fraction, p.u.
q2 0.0
p3 0.0 Constant power fraction, p.u.
q3 0.0
p4 0.0 Frequency dependent power fraction, p.u.
q4 0.0
lpd 0.0 Real power frequency index, p.u
lqd 0.0 Reactive power frequency index, p.u.

Notes:

a) These models implement one of two load models as follows:

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))

This matches the load characteristic of the WSCC LA load model.

If p4 and q4 are zero:

P = Po (p1v2 + p2v + p3) (1 + lpd f)


Q = Qo (q1v2 + q2v + q3) (1 + lqd f)

This matches the load characteristic of the WSCC LB load model.

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.

In all cases the load fractions must sum to unity

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 first parameter has a separate meaning for each model.

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


blwscc
alwscc
Bus Voltage wlwscc P+jQ
zlwscc
Model Name: Boel

Description OEL model for Basler Voltage Regulators


excluding brushless exciters

Prerequisites: Generator and excitation system models ahead


of this model in dynamic models table

Inputs: Generator field voltage and generator field


current

Invocation: boel [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

IFCONT 2.74 Low Current Level (pu)


IFMED 3.40 Medium Current Level (pu)
IFMAX 3.80 High Current Level (pu)
TD1 2.0 High Current Time (sec)
TD2 6.0 Medium Current Time (sec)
KI 0.3 OEL Integral Gain
KP 0.3 OEL Proportional Gain
VSIG 0.0 Input Signal (VSIGNAL) : 0 for Generator Field Current, 1
for Generator Field Voltage when apply to Brushless
Exciters
Droptime 50.0 Drop out time (sec) to reset timers after OEL becomes
inactive
ASIGN 1.0 If sign for summing junction to add VOEL in the excitation
system model is positive, set ASIGN to 1.0. If negative, set
ASIGN to -1.0.

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

1 VOEL OEL Output Signal


Block Diagram:

VSIGNAL
0
_

IFDC KI
KP+ VOEL
+ s
S0

VSIGNAL

IFMAX

IFMED

IFCONT

Td1 Td1 + Td2 Time


(sec)

Conditions for the OEL Model:


1. When VSIGNAL exceeds the value of IFCONT start the timer by setting DTIME to
current value of TIME in the simulation.
2. For (TIME – DTIME) < TD1, IFDC = IFMAX
3. For TD1 < (TIME – DTIME) < TD1 + TD2, IFDC = IFMED
4. For TD1 + TD2 < (TIME – DTIME), IFDC = IFCONT
5. If VOEL = 0 for 50 seconds reset DTIME to 999.
Model Name: ccbt1

Description Steam plant boiler / turbine and governor

Prerequisites: Generator model ahead of this model in the dynamic


models table

Inputs: Shaft speed and Turbine/boiler load reference

Invocation: ccbt1 [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default Description


Variab e Data

data 1.0 Type of data input =0 User Entries


=1 Boiler Follows Unit
=2 Coordinate Unit
=3 Turbine Follow Unit
rvalve 0.040 Governor Permanent droop, valve position feedback, p.u.
rpelec 0.000 Governor Permanent droop, electrical power feedback, p.u.
tpelec 0.000 Electrical Power Transducer time constant, sec.
tg 0.025 Governor time constant, sec.
kpgov 0.000 Governor control proportional gain, p.u.
kigov 40.00 Governor control integral gain, p.u.
vmax 1.000 Maximum governor control output, p.u.
vmin 0.000 Minimum governor control output, p.u.
ah 0.300 Turbine high pressure power fraction
trh 10.00 Reheater time constant, sec.
ref 1.000 Boiler or turbine controller reference
kp1 0.000 Turbine/pressure controller proportional gain
ki1 0.000 Turbine/pressure controller reset gain
max1 0.000 Turbine/pressure controller maximum output, p.u.
min1 0.000 Turbine/pressure controller minimum output, p.u.
rmax1 0.000 Turbine/pressure controller rate limit, p.u.
rmin1 0.000 Turbine/pressure controller rate limit, p.u.
kp2 1.000 Boiler/pressure controller proportional gain
ki2 0.025 Boiler/pressure controller reset gain
max2 1.050 Boiler/pressure controller maximum output, p.u.
min2 -0.200 Boiler/pressure controller minimum output, p.u.
rmax2 0.0025 Boiler/pressure controller rate limit, p.u.
rmin2 -0.0025 Boiler/pressure controller rate limit, p.u.
kp3 0.000 Boiler/load controller proportional gain
ki3 0.000 Boiler/load controller reset gain
max3 0.000 Boiler/load controller maximum output, p.u.
min3 0.000 Boiler/load controller minimum output, p.u.
rmax3 0.000 Boiler/load controller rate limit, pu
rmin3 0.000 Boiler/load controller rate limit, pu
kp4 5.000 Boiler/fuel controller proportional gain
ki4 2.500 Boiler/fuel controller reset gain
max4 1.000 Boiler/fuel controller maximum output, p.u.
min4 0.000 Boiler/fuel controller minimum output, p.u.
rmax4 1.000 Boiler/fuel controller rate limit, p.u.
rmin4 -1.000 Boiler/fuel controller rate limit, p.u.
kp5 0.000 Turbine/load controller proportional gain
ki5 0.000 Turbine/load controller reset gain
max5 0.000 Turbine/load controller maximum output, p.u.
min5 0.000 Turbine/load controller minimum output, p.u.
rmax5 0.000 Turbine/load controller rate limit, p.u.
rmin5 0.000 Turbine/load controller rate limit, p.u.
kp6 0.000 Load/turbine controller proportional gain
ki6 0.000 Load/turbine controller reset gain
max6 0.000 Load/turbine controller maximum output, p.u.
min6 0.000 Load/turbine controller minimum output, p.u.
rmax6 0.000 Load/turbine controller rate limit, p.u.
rmin6 0.000 Load/turbine controller rate limit, p.u.
kp7 0.000 Steam flow feedforward controller proportional gain
kd7 0.000 Steam flow feedforward controller reset gain
max7 0.000 Steam flow feedforward controller maximum output, p.u.
min7 0.000 Steam flow feedforward controller minimum output, p.u.
td7 0.000 Steam flow feedforward controller rate limit, p.u.
kplm 1.000 Low steam pressure limiter gain, p.u.
plmref 0.800 Low steam pressure limiter reference, p.u.
tf 2.000 Fuel system time constant, sec.
tw 5.000 Boiler steam generation time constant, sec.
td 100.000 Boiler drum time constant, sec.
kp 0.150 Superheater pressure drop factor, p.u./p.u.
kb 20.000 Frequency error gain, p.u./p.u.
dbd 0.000 Frequency dead-band, p.u.
flag 0.000 Control input flag
dref 0.000 Required change in MW load for load ramp, MW
t1 0.000 Starting time for the load ramp, sec.
t2 0.000 Finishing time for the load ramp, sec.
gv1 0.900 Break point for governor valve characteristic, p.u.
gvb1 0.900 Break point for governor value characteristic, p.u./p.u.
p0 0.500 Pressure reference at zero load, p.u.
h1 0.000 First break point for pressure reference characteristic, p.u.
p1 0.500 First break point for pressure reference characteristic, p.u.
h2 0.500 Second break point for pressure reference characteristic, p.u.
p2 1.000 Second break point for pressure reference characteristic, p.u.

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

gov The governor PI controller which controls the control valve.

1 Output to turbine-governor reference to control throttle pressure


2 Output to fuel flow demand reference to control throttle pressure
3 Output to fuel flow demand reference to control boiler output in response
to error between boiler demand and actual generator output. This
controller may be regarded as the "boiler master"
4 Output to fuel valve position to control fuel flow
5 Output to turbine-governor reference to "feed forward" the error between
boiler load reference and actual generator power to the turbine-governor
reference
6 Output to the boiler load reference to "feed forward" the control valve
position to the "boiler master" controller
7 Output to fuel flow demand reference to control throttle pressure as a
function of throttle steam flow.
"boiler follow" control can be implemented by setting the gains of controllers 1, 3, 5, 6
and 7 to zero to deactivate them. In this case the turbine valve position and resulting
steam flow are controlled only by the governor and the fuel flow is controlled only by
controller 2 in response to steam pressure.

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.

Parameter Boiler Follow Coordinated Turbine Follow

rvalve 0.040 0.0 0.0


rpelec 0.0 0.04 0.04
tpelec 0.0 0.1 0.1
tg 0.025 0.025 .025
kpgov 0.0 1.0 1.0
kigov 40.0 10.0 10.0
vmax 1.0 1.0 1.0
vmin 0.0 0.0 0.0
ah 0.3 0.3 0.3
trh 10.0 10.0 10.0
ref 1.0 1.0 1.0
kp1 0.0 0.1 1.0
ki1 0.0 0.001 0.5
max1 0.0 0.2 0.2
min1 0.0 -0.2 -0.2
rmax1 0.0 0.0025 0.0025
rmin1 0.0 -0.0025 -0.0025
kp2 1.0 1.0 0.0
ki2 0.025 0.01 0.0
max2 1.05 1.05 0.0
min2 -0.2 -.2 0.0
rmax2 0.0025 0.0025 0.0
rmin2 -0.0025 -0.0025 0.0
kp3 0.0 1.0 1.0
ki3 0.0 0.01 0.01
max3 0.0 1.0 1.0
min3 0.0 0.0 0.0
rmax3 0.0 0.0005 0.0005
rmin3 0.0 -0.0005 -0.0005
kp4 5.0 5.0 5.0
ki4 2.5 2.5 2.5
max4 1.0 1.0 1.0
min4 0.0 0.0 0.0
rmax4 1.0 1.0 1.0
rmin4 -1.0 -1.0 -1.0
kp5 0.0 0.025 0.0
ki5 0.0 0.005 0.0
max5 0.0 0.2 0.0
min5 0.0 -0.2 0.0
rmax5 0.0 0.0005 0.0
rmin5 0.0 -0.0005 0.0
kp6 0.0 0.0 0.0
ki6 0.0 0.1 0.0
max6 0.0 1.0 0.0
min6 0.0 -1.0 0.0
rmax6 0.0 1.0 0.0
rmin6 0.0 -1.0 0.0
kp7 0.0 0.0 0.0
kd7 0.0 40.0 0.0
max7 0.0 0.1 0.0
min7 0.0 -0.1 0.0
td7 0.0 10.0 0.0
kplm 1.0 1.0 1.0
plmref 0.8 0.8 0.8
tf 2.0 2.0 2.0
tw 5.0 5.0 5.0
td 100.0 100.0 100.0
kp 0.15 0.15 0.15
kb 20.0 20.0 20.0
dbd 0.0 0.0 0.0
flag 0.0 1.0 1.0
dref 0.0 0.0 0.0
t1 0.0 0.0 0.0
t2 0.0 0.0 0.0
gv1 0.9 1.0 1.0
gvb1 0.9 1.0 1.0
p0 0.5 0.4 0.4
h1 0.0 0.2 0.2
p1 0.5 0.4 0.4
h2 0.5 0.8 0.8
p2 1.0 1.0 1.0

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

flag = 0 genbc[].pref specifies the governor speed reference, Wref


flag = 1 genbc[].pref specifies the boiler load reference, Lref

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

flag = 0 ref specifies the boiler load reference, Lref


flag = 1 ref specifies the governor speed reference, wref

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

ref initial + droop * (dref/MVAbase)

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.

i) The time constant tplm is 50 seconds.

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

Description Cross and joint current compensation model

Prerequisites: The two generators influenced by this model must


be connected to the same bus.

Inputs: Generator voltages and currents

Invocation: ccomp [<na>] {<namea> <kva>} <ida> [<nb>] {<nameb>


<kvb>} <idb>:

Parameters:

EPCL Default
Variable Data Description

rc 0.0 Cross compensation resistance, p.u.


xc 0.0 Cross compensation reactance, p.u.
rt 0.0 Joint compensation resistance, p.u.
xt 0.0 Joint compensation reactance, p.u.
tf 0.0 Filtering time constant, sec.
flag 1.0 Mode flag - see notes b and c

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.)

b) Differential and collective compensation mode: When the parameter, flag, is


zero the current-compensated generator terminal voltages are calculated as

Vca = | Vt - (Rc + jXc)(Ia-Ib) - (Rt + jXt)(Ia+Ib) |


Vcb = | Vt + (Rc + jXc)(Ia-Ib) - (Rt + jXt)(Ia+Ib) |

Where: Ia is the terminal current of generator a


Ib is the terminal current of generator b

In this mode, the generator compensating impedances, (Rcomp+jXcomp), have


no effect and are ignored.

c) Differential and individual generator compensation mode: When the parameter,


flag, is nonzero, the current-compensated generator terminal voltages are
calculated as

Vca = | Vt - (Rc + jXc)(Ia-Ib) - (Rcompa + jXcompa)Ia |


Vcb = | Vt + (Rc + jXc)(Ia-Ib) - (Rcompb + jXcompb)Ib |

Where: Ia is the terminal current of generator a


Ib is the terminal current of generator b
Rcompa, Xcompa are the compensation impedance of generator a
Rcompb, Xcompb are the compensation impedance of generator b

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.

d) The cross-compensation reactance, Xc, must be negative to produce stable control


of the excitation of the two generators. With Xc set to a suitable negative value
the joint compensation impedance, Xt (or individual Xcomps), may be positive so
that the voltage on the 'grid' side of the outgoing transformer or transmission line
rises slightly as the reactive power output of the two generators increases.

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

1 vca Generator A compensated voltage, p.u.


1 vcb Generator B compensated voltage, p.u.

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

Description Cross current compensation model

Prerequisites: The generator to which the model is applied plus 1


to 3 “sister” units.

Inputs: Generator voltages and currents

Invocation: ccomp4 [<n1>] {<name1> <kv1>} <id1> [<n2>] {<name2>


<kv2>} <id2> (! [<n3>] {<name3> <kv3>} <id3> [<n4>]
{<name4> <kv4>} <id4>):

Parameters:

EPCL Default
Variable Data Description

K1 0.0 Unit 1 compensation, p.u. V / p.u. MVA1


K2 0.0 Unit 2 compensation, p.u. V / p.u. MVA1
K3 0.0 Unit 3 compensation, p.u. V / p.u. MVA1
K4 0.0 Unit 4 compensation, p.u. V / p.u. MVA1
Kc 1.0 Common gain, p.u..
Vmax 0.0 Maximum, p.u. V
Vmin 0.0 Minimum, p.u. V
Tf 0.0 Time constant, sec.

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.

f) Only the relevant compensation coefficients should be non-zero. For example, if


only two units are used with ccomp4, K3 and K4 should be zero.

Output Channels:

Record
Level Name Description

1 vcmp Compensated terminal voltage of Unit 1, p.u.

Block Diagram:

Iq1

Vmax
K1

Iq2 K2 + 
Kc
 1 + sTf 
 Vcomp1
Iq3 K3 + + S0
+
K4
Vmin Vt1

Iq4

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
Model Name: ccst3

Description Combined Cycle Plant Steam Turbine Model

Prerequisites Generator model ahead of this model in the dynamic


model table

Inputs: Shaft speed


Turbine load reference

Invocation: ccst3 [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

gt1 0.0 External bus number of first gas turbine, no default


gt2 0.0 External bus number of second gas turbine, no default
gt3 0.0 External bus number of third gas turbine, no default
kpp 1.0 Main pressure controller proportional gain
tp 0.1 Main pressure controller integral gain
kpg 10.0 Governor proportional gain
tg 20.0 Governor phase lead time constant, Kp/Ki
r 0.05 Governor droop, per unit on steam turbine MW base
tpelec 5.0 Steam turbine generator power transducer time constant, sec.
td 300. Boiler drum time constant, seconds
kp 0.1 Steam flow pressure loss coefficient, per unit
tv 0.5 Turbine control valve actuator time constant, second
ta 3. Steam turbine reheater model lead time constant, seconds
tb 10. Steam turbine reheater model lag time constant, seconds
qnl 0.2 Gas turbine heat/power curve zero power intercept, per unit
pref 0.8 Inlet pressure setpoint, per unit
qdf 0.0 Supplemental firing heat input, per unit

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.

Each generator should be modeled in the conventional manner by a generator, excitation


system, and related models. The gas turbine controller of each generator must be
represented by one of the gas turbine models such as ggov1. The gas turbines of the plant
are assumed to be identical, though not necessarily loaded equally.

The multiple boilers of the plant are assumed to be identical.

Supplemental firing is recognized and assumed to be in equal amount in each boiler.

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 dependence of steam production on the gas turbine power outputs

 the significant storage of energy in the boilers

 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.

b) Per unit parameters are on base of steam turbine MW capability. If no value is


entered for "mwcap", the generator MVA base is used.

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

Description Two terminal d.c. transmission

Prerequisites: From, to a.c. and d.c. buses, and d.c. branch


must exist in load flow data tables

Inputs: Voltage and current at rectifier and inverter a.c. buses

Invocation: cdc6 [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>}:

Parameters:

EPCL Default
Variable Data Description

dcbusr 0.0 Rectifier d.c. bus (external) number


dcbusi 0.0 Inverter d.c. bus (external) number
alp_min 0.0 Minimum rectifier firing angle, degrees
gam_min 0.0 Minimum inverter firing angle, degrees
tmeasv 0.0 D.C. voltage transducer time constant,sec.
tmeasi 0.0 D.C. current transducer time constant,sec.
vblock 0.0 Rectifier a.c. blocking voltage, p.u.
vunbl 0.0 Rectifier a.c. unblocking voltage, p.u.
tblock 0.0 Minimum blocking time, sec.
vbypass 0.0 Inverter d.c. voltage for bypassing, p.u.
vunby 0.0 Inverter a.c. unbypassing voltage, p.u.
tbypas 0.0 Minimum bypassing time, sec.
rsvolt 0.0 Minimum d.c. voltage following block, kV
rscur 0.0 Minimum d.c. current following block, amps
vramp 0.0 Restart voltage ramping rate, p.u./sec.
cramp 0.0 Restart current ramping rate, p.u./sec.
c0 0.0 Minimum d.c. current, amps
v1 0.0 VDCL curve point, d.c. voltage, kv
c1 0.0 VDCOL curve points, kV, amps
v2 0.0 VDCOL curve points, d.c. voltage, kv
c2 0.0 VDCOL curve points, d.c. current, amps
v3 0.0 VDCOL curve points, d.c. voltage, kv
c3 0.0 VDCOL curve points, d.c. current, amps
tcmode 0.0 Minimum time in forced current mode, sec.
vdeblk 0.0 Rectifier time delayed blocking voltage, p.u.
tdeblk 0.0 Rectifier blocking delay time, sec.
treblk 0.0 Rectifier unblocking delay time, sec.
vinblk 0.0 Inverter time delayed blocking voltage, p.u.
tcomb 0.0 Communication delay for inverter blocl, sec.
vacbyp 0.0 Inverter a.c. voltage for bypass, p.u.
tdebyp 0.0 Inverter time delayed bypass time, sec.
tinblk 0.0 Inverter unblocking delay time, sec.
tinbyp 0.0 Inverter unbypassing delay time, sec.
tvrdc 0.0 Rectifier d.c. voltage transducer time constant, sec.
imarg 0.0 dynamics current margin, amps
rcut 0.0 Backward inverter slope, ohms
alp_max 0.0 Maximum rectifier firing angle, degrees
gam_max 0.0 Maximum inverter firing angle, degrees
accel 0.0 Solution acceleration factor

Notes:

a) nf identifies the rectifier a.c. bus; nt identifies the inverter end a.c. bus.

b) <id> should be the component identifier of the rectifier.

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

1 pacr Rectifier a.c. real power, MW


1 qacr Rectifier a.c. reactive power, MVAR
1 paci Inverter d.c. real power, MW
1 qaci Inverter a.c. reactive power, MVAR
1 alpa Rectifier delay angle, degrees
1 gama Inverter firing angle, degrees
1 vdcr Rectifier d.c. voltage, kv
1 vdci Inverter d.c. voltage, kv
1 idc D.C. current, amps
1 vdrm Measured rectifier d.c. voltage, kv
1 vdim Measured inverter d.c. voltage, kv
1 idcm Measured d.c. current, amps
Block Diagram:

From AC From DC To DC To AC

pacr vdcr vdci paci


qacr idc qaci

alpha gamma
Model Name: chvdc2

Description Simple planning model of a Line Commuted HVDC


dynamic model

Prerequisites: From, to a.c. and d.c. buses, and d.c. branch must exist in
load flow data tables

Inputs: Voltage and current at rectifier and inverter a.c. buses

Invocation: chvdc2 [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet>


<kvt>}:

Parameters:

EPCL Default
Variable Data Description

dcbusr 0.0 Rectifier dc bus external number


dcbusi 0.0 Inverter dc bus external number
MW_base 0.0 Rated MW
Talpr 0.02 Time constant for current control for rectifier controls (sec.)
Kir 20.0 Integral gain for current control for rectifier controls
Kpr 10.0 Proportional gain for current control for rectifier controls
alpha_max_ram 30.0 Rec. Alpha Min Limiter (RAML) max alpha
Tram 0.10 RAML washout time constant (sec.)
Vram 0.85 RAML ac voltage setpoint (p.u.)
Ttram 1.0 RAML timer (sec.)
maxc 0.015 Max. limit in inverter controls ( p.u.)
minc -0.05 Min. limit in inverter controls (p.u.)
rmax 10.0 Max. rate limit
rmin -10.0 Min. rate limit
Tr 0.01 Measurement transducer time constant (sec.)
Talpi 0.02 Time constant for current control for inverter controls (sec.)
Kii 20.0 Integral gain for current control for inverter controls
Kpi 10.0 Proportional gain for current control for inverter controls
Kcos 0.07 proportional gain for alpha max calculation loop
Kref 3.0 gain for alpha max computation loop on Iref
Tref 0.01 time constant for alpha max calculation loop on Iref (sec.)
Kmax 0.15 proportional gain for alpha max calculation loop on Ierr
Tmax 0.01 time constant for alpha max computation loop on Ierr (sec.)
cosmin_i 0.956 constant
Imax1 0.1 VDCOL break point 1 (p.u.)
Imax2 1.0 VDCOL break point 2 (p.u.)
V1 0.25 VDCOL break point 1 (p.u.)
V2 1.15 VDCOL break point 2 (p.u.)
Tur 0.02 VDCOL Measurement transducer time constant for voltage rising
rectifier (sec.)
Tdr 0.01 VDCOL Measurement transducer time constant for voltage falling
rectifier (sec.)
Tui 0.03 VDCOL Measurement transducer time constant for voltage rising
inverter (sec.)
Tdi 0.01 VDCOL Measurement transducer time constant for voltage falling
inverter (sec.)
Flag 0.0 If Flag = 1 use AC-VDCOL, else use DC-VDCOL
Imax_lim 1.0 VDCOL output current order maximum limit (p.u)
Imin_lim 0.77 VDCOL output current order minimum limit (p.u)
max_err 0.5 VDCOL AC voltage input error maximum limit (p.u.)
min_err -0.5 VDCOL AC voltage input error minimum limit (p.u.)
Tvd 0.25 VDCOL integrator time constant (sec)
Vac_ref 0.96 VDCOL AC voltage reference (p.u.)
gamma_cf 15.0 If gamma < gamma_cf commutation failure occurs (gamma_cf > 0)
Tcf 0.04 Minimum time commutation failure is likely to last (sec)
Vac_ucf 0.90 Converter recovers to this value after commutation failure (p.u.)

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.

c) <id> should be the component identifier of the rectifier.

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.

e) To disable commutation failure computation set gamma_cf to zero.

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.

g) Tapi is the converter transformer tap ratio.

h) The “fix bad data” option will do the following


a) If 0 < Tr < delt then Tr = delt
b) If 0 < Tram < delt then Tram = delt
c) If 0 < Tui < delt then Tui = delt
d) If 0 < Tdi < delt then Tdi = delt
e) If 0 < Tur < delt then Tur = delt
f) If 0 < Tdr < delt then Tdr = delt
g) If 0 < Tref < delt then Tref = delt
h) If 0 < Tmax < delt then Tmax = delt
i) If maxc < minc, swap the values
j) If rmax < rmin, swap the values
k) If Imax_lim < Imin_lim, swap the values
l) If max_err < min_err, swap the values

Output Channels:

Record
Level Name Description

1 alph Rectifier firing angle (deg.)


1 beta Inverter firing angle (deg.)
1 gama Inverter extinction angle (deg.)
1 Idcr DC current rectifier side (A)
1 Idci DC current inverter side (A)
1 Vdcr DC voltage rectifier side (kV)
1 Vdci DC voltage inverter side (kV)
1 Pacr AC real power rectifier side (MW)
1 Qacr AC reactive pover rectifier side (MW)
1 Paci AC real power inverter side (MW)
1 Qaci AC reactive power inverter side (MW)
2 alpr  r (deg)
2 alpi  i (deg)
Block Diagrams:
Rectifier controls:
Alpha_mxr

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

if (Vac < Vram )


set flag = 1 an turn
on switch and start
1 timer
V ac r
1+ sT r End
s4 When Vac > Vram and timer >
Ttram, reset the time and set
flag = 0 and turn off switch

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

DC transmission line models:

R L L R
Vr Vi

Ir Ii

R/2 L/2 L/2 R/2


Vr Vi

Ir Ii
C
Model Name: clod

Description Complex Load Model (based on PSS/E CLODBL)

Prerequisites: Load in load flow solved case

Inputs: Voltage at bus to which the load is connected

Invocation: clod[<n>] {<name> <kv>} <id> : #r

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

Copyright 2016 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
Notes:

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:

Large motor Plm = LMpct * Pls / 100.


Small motor Psm = SMpct * Pls / 100.
Discharge lighting Pdl = DLpct * Pls / 100.
Constant P Load Pcp = CPpct * Pls / 100.
Static Load Pst = Pls – Plm – Psm – Pdl – Pcp
2
Pls = Pload – (I R loss in Rbr)

The transformer exciting current model does not include any active power, so TXpct
is not used in the allocation of MW.

c) The reactive power allocation among the load components is as follows:


Large motor Qlm as computed during model initialization
Small motor Qsm as computed during model initialization
Discharge lighting Qdl = 0. 4 * Pdl
Constant P Load 0.
Transformer exciting Qexc = TXpct * Pls / 100.
Static Load Qst = value required to match Qload at high-side bus

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:

Parameter Large Motor Small Motor


stator resistance (Ra) 0.0138 0.0369
leakage inductance (La) 0.0830 0.1318
mutual inductance (Lm) 3.00 2.396
1st rotor inductance (L1) 0.0530 0.0415
1st rotor resistance (R1) 0.0550 0.0645
2nd rotor inductance (L2) 0.0550 0.2210
2nd rotor resistance (R2) 0.0115 0.0489
rotor inertia constant (H) 1.0 0.6
mechanical damping (D) 1.0 1.0
The MVA bases for the large motor and small motor parameters are the initial P
values of each motor.

Copyright 2016 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
These parameters are converted to “stability” parameters for use in the motor model as
follows:

Parameter Large Motor Small Motor


stator resistance (Ra) 0.0138 0.0369
synchronous inductance (Ls) 3.083 2.528
transient inductance (L’) 0.135 0.173
subtransient inductance (L”) 0.110 0.166
transient time constant (T’do) 0.147 0.100
subtransient time constant (T”do) 0.0247 0.0142
rotor inertia constant (H) 1.0 0.6
mechanical torque exponent (Etrq) 1.0 1.0

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).

g) The static load model uses the following formulas:


Pst = Psto * V Kp
Qst = Qsto * V 2
Psto = (Pls – Plm – Psm – Pdl – Pcp) / (0.98)Kp
Qsto = Initial Qst / / (0.98)2

h) The discharge lighting load model is as follows:


For V >= 0.75 p.u.
Pdl = Idl0 * V
Qdl = Qdl0 * V4.5
where Idl0 = initial Pdl / 0.98; Qdl0 = initial Qdl / (0.98)4.5
For V <= 0.0 p.u.
Pdl = 0.0
Qdl = 0.0
Between V = 0.65 and V = 0.75, the values of Pdl and Qdl change linearly.

Copyright 2016 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
i) The transformer exciting current follows a saturation characteristic modeled as
follows:
flux = V / (1. + f) [f = p.u. frequency]
if ( flux <= 0.98 )
Iexc = flux * 0.01 / 0.98
else if ( flux <= 1.0 )
Iexc = 0.01 + (flux - 0.98) * (0.02 – 0.01) / (1.05 – 0.98)
else if ( flux <= 1.10 )
Iexc = 0.02 + (flux - 1.05) * (0.03 – 0.02) / (1.10 – 1.05)
else
Iexc = 0.03 + (flux - 1.10) * (0.04 – 0.03) / (1.13 – 1.10)
Qexc = Iexc * V * Iexcbase

where Iexcbase = (Initial Qexc) * (initial Pload) / ( 0.01 * 0.98 )

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.

l) The “fix bad data” option will do the following:


a. All input parameters are limited to a minimum value of 0, except Xbr is
limited to a minimum of 0.01.
b. TXpct is limited to a maximum of 5%
c. All other “pct” parameters are limited to a maximum of 100.

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 
       

Copyright 2016 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
  2  Vls  Voltage magnitude at substation low‐side bus, p.u. 
  2  Pst  Static load P, MW 
  2  Pcp  Constant power load P, MW 
  2  Pdl  Discharge lighting load P, MW 
  2  Plm  Large motor P, MW 
  2  Psm  Small motor P, MW 
     
  3  Qst  Static load Q, MVAr 
  3  Qdl  Discharge lighting load Q, MVAr 
  3  Qexc  Transformer exciting Q, MVAr 
  3  Qlm  Large motor Q, MVAr 
  4  spdl  Large motor speed, p.u. 
  4  Tmlm  Large motor mechanical torque, p.u. 
  4  Telm  Large motor electrical torque, p.u. 
  3  Qsm  Small motor Q, MVAr 
  4  spds  Small motor speed, p.u. 
  4  Tmsm  Small motor mechanical torque, p.u. 
  4  Tesm  Small motor electrical torque, p.u. 

Note: The MVA bases for the large motor and small motor torques are the initial P
values of each motors.

Sample data record:


clod 11 "LOAD-CMP" 230.00 "CM" : #4 /
"LMpct" 20. "SMpct" 30. "TXpct" 2.0 "DLpct" 10.0 "CPpct" 10. /
"Kp" 1.0 "Rbr" .0 "Xbr" 0.08

Schematic Diagram:
Low- side
bus

System bus Large


1 : Tap M Motor

Small
Rbr + jXbr M Motor

Discharge Static
Lighting Load Load

Transformer
Discharge
Static
Constant P
Exciting
Lighting Load
Current

Copyright 2016 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
Model Name: cmpld

Description Composite load

Prerequisites: Load representation in load flow solved case

Inputs: Voltage at bus to which the composite load is connected

Invocation: cmpld [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

f_Psec .05 Fraction of P load at tap-change transformer secondary, p.u.


f_Qsec .05 Fraction of Q load at tap-change transformer secondary, p.u.
f_p_sec .333333 Fraction of const. P load in Psec*, p.u.
f_q_sec .333333 Fraction of const. Q load in Qsec*, p.u.
f_pi_sec .333333 Fraction of const. current P in Psec, p.u.
f_qi_sec .333333 Fraction of const. current Q in Qsec, p.u.
f_pz_sec .333333 Fraction of const. impedance P in Psec, p.u.
f_qz_sec .333333 Fraction of const. impedance Q in Qsec, p.u.
f_p_far .333333 Fraction of const. P load in Pfar*, p.u.
f_q_far .333333 Fraction of const. Q load in Qfar*, p.u.
f_pi_far .333333 Fraction of const. current load in Pfar, p.u.
f_qi_far .333333 Fraction of const. current load in Qfar, p.u.
f_pz_far .333333 Fraction of const. impedance load in Pfar, p.u.
f_qz_far .333333 Fraction of const. impedance load in Qfar, p.u.
f_Pmtr0 0.15 P fraction of 1st motor in composite load, p.u.
f_Pmtr1 0.15 P fraction of 2nd motor in composite load, p.u.
mtrbase0 0.0 MVA base of 1st motor
mtrbase1 0.0 MVA base of 2nd motor
ls0 3.0 Synchronous reactance of 1st motor, p.u.
ls1 3.0 Synchronous reactance of 2nd motor, p.u.
lp0 0.21 Transient reactance of 1st motor, p.u.
lp1 0.21 Transient reactance of 2nd motor, p.u.
lpp0 0.15 Sub-transient reactance of 1st motor, p.u.
lpp1 0.15 Sub-transient reactance of 2nd motor, p.u.
ll0 0.1 Stator leakage reactance of 1st motor, p.u.
ll1 0.1 Stator leakage reactance of 2nd motor, p.u.
ra0 0.01 Stator resistance of 1st motor, p.u.
ra1 0.01 Stator resistance of 2nd motor, p.u.
tpo0 0.8 Transient rotor time constant of 1st motor, sec.
tpo1 0.8 Transient rotor time constant of 2nd motor, sec.
tppo0 0.03 Sub-transient rotor time constant of 1st motor, sec.
tppo1 0.03 Sub-transient rotor time constant of 2nd motor, sec.
h0 0.6 Inertia constant of 1st motor, sec.
h1 0.3 Inertia constant of 2nd motor, sec.
d0 3.0 Damping constant of 1st motor, p.u.
d1 3.0 Damping constant of 2nd motor, p.u.
se10 0.01 Saturation factor at 1.0 pu flux, 1st motor, p.u.
se11 0.01 Saturation factor at 1.0 pu flux, 2nd motor, p.u.
se20 0.02 Saturation factor at 1.2 pu flux, 1st motor, p.u.
se21 0.02 Saturation factor at 1.2 pu flux, 2nd motor, p.u.
sbase_4_z 0.0 MVA base for impedance in composite load
r4 0.005 Line resistance on sbase_4_z, p.u.
x4 0.05 Line reactance on sbase_4_z, p.u.
rtap 0.005 Transformer resistance on sbase_4_z, p.u.
xtap 0.05 Transformer reactance on sbase_4_z, p.u.
dv_up 0.02 Upper delta voltage dead band inhibiting tap movement, p.u.
dc_down 0.02 Lower delta voltage dead band inhibiting tap movement, p.u.
tapstep 0.00625 Tap movement step, p.u.
Tdelay 1.0 Tap movement delay, sec
tapmin 0.9 Minimum tap position, p.u.
tapmax 1.1 Maximum tap position, p.u.
vt0 0.0 Voltage threshold for undervolt trip of 1st motor, p.u.
vt1 0.0 Voltage threshold for undervolt trip of 2nd motor, p.u.
vt2 0.0 Voltage threshold for undervolt trip of polyn. load at far end
vt3 0.0 Voltage threshold for undervolt trip of polyn. load at xfmr
tv0 999. Time delay before undervolt trip of 1st motor, sec.
tv1 999. Time delay before undervolt trip of 2nd motor, sec.
tv2 999. Time delay before undervolt trip of polyn. load at far end,sec.
tv3 999. Time delay before undervolt trip of polyn. load at xfmr, sec.
ft0 0.0 Freq threshold for underfreq trip of 1st motor, Hz
ft1 0.0 Freq threshold for underfreq trip of 2nd motor, Hz
ft2 0.0 Freq threshold for underfreq trip of polyn. load at far end, Hz
ft3 0.0 Freq threshold for underfreq trip of polyn. load at xfmr, Hz
tf0 999. Time delay before underfreq trip of 1st motor, sec.
tf1 999. Time delay before underfreq trip of 2nd motor, sec.
tf2 999. Time delay before underfreq trip of polyn. load at far end,sec.
tf3 999. Time delay before underfreq trip of polyn. load at xfmr, sec.
acc 1.0 Acceleration factor used in motor initialization
acc1 0.5 Acceleration factor interacting with the network solution

* 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.

f_p_sec, f_pi_sec and f_pz_sec must add up to 1;


f_q_sec, f_qi_sec and f_qz_sec must add up to 1;
f_p_far, f_pi_far and f_pz_far must add up to 1;
f_q_far, f_qi_far and f_qz_far must add up to 1.

If the above do not add up to 1, an error message will be given.

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

discrete tap change


control
Pfar+jQfar
V4 V3 polynomial load
Vsec
r4 x 4
i4 rtap isec
xtap
polynomial load 1st motor 2nd motor
Psec+jQsec
Model Name: cmpldw

Description WECC Composite load model

Prerequisites: Load in load flow solved case

Inputs: Voltage at bus to which the composite load is connected

Invocation: cmpldw [<n>] {<name> <kv>} <id> : #r mva=<mvabase>

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

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
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.
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.

g) The static load model uses the following formulas:


P = Po * (P1c * V/Vo P1e + P2c * V/Vo P2e + P3 ) * (1 + Pf * f )
Q = Qo * (Q1c * V /Vo Q1e + Q2c * V /Vo Q2e + Q3 ) * (1 + Qf * f )
Po = Pload ( 1. – Fma – Fmb – Fmc - Fmd)
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
Qo = Po * tan ( acos(PFs) ) = Po * sqrt(PFs-2 – 1.)
P3 = 1. – P1c – P2c
Q3 = 1. – Q1c – Q2c

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.

i) Any of the four motors can be represented by an equivalent of a group of three-phase


motors or by an equivalent of a group of single-phase air conditioners:

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.

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
l) 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.

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.

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
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 load shed, MW 
  2  xton  Nominal total load tripped, MW 
  2  xtoi  Instantaneous total load tripped, MW 
  2  Pst  Static load P, MW 
  2  Pel  Electronic load P, MW 
  2  xeln  Nominal electronic load tripped, MW 
  2  xeli  Instantaneous electronic load tripped, MW 
For each motor in use: 
  2  Pmn  Motor n P, MW 
  2  xmnn  Nominal motor n load tripped, MW 
  2  xmni  Instantaneous motor n load tripped, MW 
       
  3  tap  transformer tap ratio 
  3  Qst  Static load Q, MVAr 
  3  Qel  Electronic load Q, MVAr 
For each motor in use: 
  3  Qmn  Motor Q, MVAr 
For each Type 3 motor in use: 
  4  spdn  Motor speed, p.u. 
  4  Tmn  Motor mechanical torque, p.u. 
  4  Ten  Motor electrical torque, p.u. 
  4  fuvn  Fraction of motor not tripped by UV relay 
  4  fshn  Fraction of motor not tripped by load shedding relays 
For each Type 1 motor in use: 
  4  fuvn  Fraction of motor not tripped by UV relay 
  4  fcnn  Fraction of motor not tripped by contactor 
  4  crAn  Current in non‐restarting part of load, p.u. 
  4  crBn  Current in restarting part of load, p.u. 
  4  fshn  Fraction of motor 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. 
 
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.

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
Sample data record:
cmpldw 1234 "XXXX" 115.00 "1" : #1 mva=-1.1 /
"Bss" 0 "Rfdr" 0.04 "Xfdr" 0.04 "Fb" 0.75/
"Xxf" 0.08 "TfixHS" 1 "TfixLS" 1 "LTC" 0 "Tmin" 0.9 "Tmax" 1.1 "step" 0.00625 /
"Vmin" 1.025 "Vmax" 1.04 "Tdel" 30 "Ttap" 5 "Rcomp" 0 "Xcomp" 0 /
"Fma" 0.146246 "Fmb" 0.147222 "Fmc" 0.036521 "Fmd" 0.367004 "Fel" 0.106286 /
"PFel" 1 "Vd1" 0.7 "Vd2" 0.5 "Frcel" 0.8 /
"Pfs" -0.99771 "P1e" 2 "P1c" 0.557361 "P2e" 1 "P2c" 0.442639 "Pfreq" 0 /
"Q1e" 2 "Q1c" -0.5 "Q2e" 1 "Q2c" 1.5 "Qfreq" -1 /
"MtpA" 3 "MtpB" 3 "MtpC" 3 "MtpD" 1 /
"LfmA" 0.75 "RsA" 0.04 "LsA" 1.8 "LpA" 0.12 "LppA" 0.104 /
"TpoA" 0.095 "TppoA" 0.0021 "HA" 0.1 "etrqA" 0 /
"Vtr1A" 0.7 "Ttr1A" 0.02 "Ftr1A" 0.2 "Vrc1A" 1 "Trc1A" 99999 /
"Vtr2A" 0.5 "Ttr2A" 0.02 "Ftr2A" 0.7 "Vrc2A" 0.7 "Trc2A" 0.1 /
"LfmB" 0.75 "RsB" 0.03 "LsB" 1.8 "LpB" 0.19 "LppB" 0.14 /
"TpoB" 0.2 "TppoB" 0.0026 "HB" 0.5 "etrqB" 2 /
"Vtr1B" 0.6 "Ttr1B" 0.02 "Ftr1B" 0.2 "Vrc1B" 0.75 "Trc1B" 0.05 /
"Vtr2B" 0.5 "Ttr2B" 0.02 "Ftr2B" 0.3 "Vrc2B" 0.65 "Trc2B" 0.05 /
"LfmC" 0.75 "RsC" 0.03 "LsC" 1.8 "LpC" 0.19 "LppC" 0.14 /
"TpoC" 0.2 "TppoC" 0.0026 "HC" 0.1 "etrqc" 2 /
"Vtr1C" 0.65 "Ttr1C" 0.02 "Ftr1C" 0.2 "Vrc1C" 1 "Trc1C" 9999 /
"Vtr2C" 0.5 "Ttr2C" 0.02 "Ftr2C" 0.3 "Vrc2C" 0.65 "Trc2C" 0.1 /
"LfmD" 1 "CompPF" 0.98 /
"Vstall" 0.56 "Rstall" 0.1 "Xstall" 0.1 "Tstall" 0.03 /
"Frst" 0.2 "Vrst" 0.95 "Trst" 0.3 /
"fuvr" 0.1 "vtr1" 0.6 "ttr1" 0.02 "vtr2" 1 "ttr2" 9999 /
"Vc1off" 0.5 "Vc2off" 0.4 "Vc1on" 0.6 "Vc2on" 0.5 /
"Tth" 15 "Th1t" 0.7 "Th2t" 1.9 "tv" 0.025

Schematic Diagram:

Load Bus

System Bus Low-side M Motor A


(230, 115, 69kV) Bus Feeder
1:T Equiv.
Rfdr +j Xfdr M Motor B
jXxf

Fb Bfdr M Motor C

Bss
(1-Fb) Bfdr M Motor D

UVLS

UFLS Electronic

Static

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
Model Name: cmpldw2

Description WECC Composite load model – modular version using


data management models for submodel data input.

Prerequisites: Load in load flow solved case

Inputs: Voltage at bus to which the composite load is connected

Invocation: cmpldw2 [<n>] {<name> <kv>} <id> : #r mva=<mvabase>

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.

d) The distribution equivalent submodel must be the first submodel listed. If no


distribution equivalent is to be represented, 0 can be entered for both the name and
distdatno. Note: the transformer, bus shunt, and/or feeder equivalent can be omitted
within the cmp_dist model, by setting their respective impedances (or shunt
susceptance) to 0.

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.

h) If a distributed generation (DG) model is specified, it will be initialized to the Pdg


and Qdg of the load if the DG status in the load data is turned on. More than one
DG model can be included with the split determined by the fractions entered. If no
DG model is included but the load has DG that is turned on, Pdg and Qdg will be
subtracted from the load, and the net value will be divided among the load
components.

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 

Sample data record:


cmpldw2 11 "LOAD-CMP" 230.00 "MC" : #4 mva=-1.0 /
cmp_dist -10 /
cmp_stat -2075 -1. /
cmp_dgpv -901 1. /
cmp_elec -30 0.1 /
cmp_mot3 -301 0.2 /
cmp_mot3 -302 0.2 /
cmp_mot3 -303 0.2 /
cmp_1pac -401 0.2
Notes:
1. Parameter names could have been inserted in quotes before each parameter value
but are not necessary and, in the case of this model, not very useful.
2. There is one “cmp_dgpv” model that supplies all of the Pdg and Qdg specified in
the power flow “load” record.
3. The static load “cmp_stat” consumes the remaining Pload, not consumed by the
other load components.

Corresponding sample data for data management models:


_cmp_dist -10 : /
"Bss" 0.15 "rfdr" 0.0400 "xfdr" 0.0400 /
0.1000 1.0000 1.0000 1.0 0.9000 1.1000 0.006250 /
1.0250 1.0400 30.0000 5.0000
_cmp_stat -2075 : /
0.800 2.0000 0.792000 1.0000 0.208000 0.0000 /
2.0000 -0.50000 1.0000 1.500000 -1.0000
_cmp_mot3 -301 : /
0.7500 0.0400 1.8000 0.1200 0.1040 /
0.0950 0.0021 0.1000 0.0000 /
0.7000 0.0200 0.2000 1.0000 99999.0000 /
0.5000 0.0200 0.7000 0.7000 0.1000
_cmp_mot3 -302 : /
0.7500 0.0300 1.8000 0.1900 0.1400 /
0.2000 0.0026 0.5000 2.0000 /
0.6000 0.0200 0.2000 0.7500 0.0500 /
0.5000 0.0200 0.3000 0.6500 0.0500
_cmp_mot3 -303 : /
0.7500 0.0300 1.8000 0.1900 0.1400 /
0.2000 0.0026 0.1000 2.0000 /
0.6500 0.0200 0.2000 1.0000 9999.0000 /
0.5000 0.0200 0.3000 0.6500 0.1000
_cmp_1pac -401 : /
1.0000 0.9800 /
0.5500 0.1000 0.1000 9999.0000 /
0.2000 0.9500 0.3000 /
0.1000 0.6000 0.0200 0.0000 9999.0000 /
0.5000 0.4000 0.6000 0.5000 /
15.0000 0.7000 1.9000 0.0250
_cmp_elec -30 : /
1.0000 0.7000 0.5000 1.0000
_cmp_dgpv -901 : "Imax" 1.1 /
"Vt0" 0.5 "Vt1" 0.7 "Vt2" 1.1 "Vt3" 1.2 "Vrec" 0.5 /
"ft0" 58.0 "ft1" 59.0 "ft2" 61.0 "ft3" 62.0 "frec" 0.0
See manual pages for the DM models for description of the parameters.

Schematic Diagram:

Load (far-end) Load


Bus Components

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

Description WECC Composite load model with distributed


generation (DG)

Prerequisites: Load in load flow solved case

Inputs: Voltage at bus to which the composite load is connected

Invocation: cmpldwg [<n>] {<name> <kv>} <id> : #r mva=<mvabase>

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.

For detailed DG model (der_a), the following parameters must be input:


DGtype 2.0 2 – der_a; 0 – none; 1 – DGPV
DGdatno <0 Data ID number for _cmp_der_a data mgmt. model to be used
DGmbase 0.0 MVA base of DG; if negative abs. value is a loading factor

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.

b) Internally, cmpldwg is identical to cmpldw, including the capability to represent


distributed generation (DG). However, the name has been changed to distinguish
this version from the older version of cmpldw without DG.

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.

h) The static load model uses the following formulas:


P = Po * (P1c * V/Vo P1e + P2c * V/Vo P2e + P3 ) * (1 + Pf * f )
Q = Qo * (Q1c * V /Vo Q1e + Q2c * V /Vo Q2e + Q3 ) * (1 + Qf * f )
Po = Pload ( 1. – Fma – Fmb – Fmc – Fmd – Fel)
Qo = Po * tan ( acos(PFs) ) = Po * sqrt(PFs-2 – 1.)
P3 = 1. – P1c – P2c
Q3 = 1. – Q1c – Q2c

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.

j) Any of the four motors can be represented by an equivalent of a group of three-phase


motors or by an equivalent of a group of single-phase air conditioners:

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)

t) Only one Type 1 DG model or one Type 2 DG model can be included.

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 load shed, MW
2 xton Nominal total load tripped, MW
2 xtoi Instantaneous total load tripped, MW
2 Pst Static load P, MW
2 Pel Electronic load P, MW
2 xeln Nominal electronic load tripped, MW
2 xeli Instantaneous electronic load tripped, MW
For each motor in use:
2 Pmn Motor n P, MW
2 xmnn Nominal motor n load tripped, MW
2 xmni Instantaneous motor n load tripped, MW

3 tap transformer tap ratio


3 Qst Static load Q, MVAr
3 Qel Electronic load Q, MVAr
For each motor in use:
3 Qmn Motor Q, MVAr
For each Type 3 motor in use:
4 spdn Motor speed, p.u.
4 Tmn Motor mechanical torque, p.u.
4 Ten Motor electrical torque, p.u.
4 fuvn Fraction of motor not tripped by UV relay
4 fshn Fraction of motor not tripped by load shedding relays
For each Type 1 motor in use:
4 fuvn Fraction of motor not tripped by UV relay
4 fcnn Fraction of motor not tripped by contactor
4 crAn Current in non-restarting part of load, p.u.
4 crBn Current in restarting part of load, p.u.
4 Fmn Fraction of motor 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.
For Type 1 distributed generation (DGPV):
1 Pdg DG active power generation, MW
1 Qdg DG reactive power generation, 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
For Type 2 distributed generation (cmp_der_a):
1 Pdg DG active power generation, MW
1 Qdg DG reactive power generation, MVAr
2 ipcm Active current command (ipcmd), p.u.
2 iqcm Reactive current command (iqcmd), p.u.
3 vmul Fraction not tripped by low or high voltage protection (vmult)
3 fmul Fraction not tripped by low or high frequency protection (fmult)

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.

Sample data record:


cmpldwg 1234 "XXXX" 115.00 "1" : #1 mva=-1.1 /
"Bss" 0 "Rfdr" 0.04 "Xfdr" 0.04 "Fb" 0.75/
"Xxf" 0.08 "TfixHS" 1 "TfixLS" 1 "LTC" 0 "Tmin" 0.9 "Tmax" 1.1 "step" 0.00625 /
"Vmin" 1.025 "Vmax" 1.04 "Tdel" 30 "Ttap" 5 "Rcomp" 0 "Xcomp" 0 /
"Fma" 0.146246 "Fmb" 0.147222 "Fmc" 0.036521 "Fmd" 0.367004 "Fel" 0.106286 /
"PFel" 1 "Vd1" 0.7 "Vd2" 0.5 "Frcel" 0.8 /
"Pfs" -0.99771 "P1e" 2 "P1c" 0.557361 "P2e" 1 "P2c" 0.442639 "Pfreq" 0 /
"Q1e" 2 "Q1c" -0.5 "Q2e" 1 "Q2c" 1.5 "Qfreq" -1 /
"MtpA" 3 "MtpB" 3 "MtpC" 3 "MtpD" 1 /
"LfmA" 0.75 "RsA" 0.04 "LsA" 1.8 "LpA" 0.12 "LppA" 0.104 /
"TpoA" 0.095 "TppoA" 0.0021 "HA" 0.1 "etrqA" 0 /
"Vtr1A" 0.7 "Ttr1A" 0.02 "Ftr1A" 0.2 "Vrc1A" 1 "Trc1A" 99999 /
"Vtr2A" 0.5 "Ttr2A" 0.02 "Ftr2A" 0.7 "Vrc2A" 0.7 "Trc2A" 0.1 /
"LfmB" 0.75 "RsB" 0.03 "LsB" 1.8 "LpB" 0.19 "LppB" 0.14 /
"TpoB" 0.2 "TppoB" 0.0026 "HB" 0.5 "etrqB" 2 /
"Vtr1B" 0.6 "Ttr1B" 0.02 "Ftr1B" 0.2 "Vrc1B" 0.75 "Trc1B" 0.05 /
"Vtr2B" 0.5 "Ttr2B" 0.02 "Ftr2B" 0.3 "Vrc2B" 0.65 "Trc2B" 0.05 /
"LfmC" 0.75 "RsC" 0.03 "LsC" 1.8 "LpC" 0.19 "LppC" 0.14 /
"TpoC" 0.2 "TppoC" 0.0026 "HC" 0.1 "etrqc" 2 /
"Vtr1C" 0.65 "Ttr1C" 0.02 "Ftr1C" 0.2 "Vrc1C" 1 "Trc1C" 9999 /
"Vtr2C" 0.5 "Ttr2C" 0.02 "Ftr2C" 0.3 "Vrc2C" 0.65 "Trc2C" 0.1 /
"LfmD" 1 "CompPF" 0.98 /
"Vstall" 0.56 "Rstall" 0.1 "Xstall" 0.1 "Tstall" 0.03 /
"Frst" 0.2 "Vrst" 0.95 "Trst" 0.3 /
"fuvr" 0.1 "vtr1" 0.6 "ttr1" 0.02 "vtr2" 1 "ttr2" 9999 /
"Vc1off" 0.5 "Vc2off" 0.4 "Vc1on" 0.6 "Vc2on" 0.5 /
"Tth" 15 "Th1t" 0.7 "Th2t" 1.9 "tv" 0.025 /
“DGtype” 2 “DGdatno” -112 “DGmbase” -0.9
OR
“DGtype” 1 “pflgdg” 0 “Pgdg” 0.20 “Pfdg” 1.0 “Imax” 1.1 /
“Vt0” 0.5 “Vt1” 0.7 “Vt2” 1.1 “Vt3” 1.2 “Vrec” 0.5 /
“ft0” 58.0 “ft1” 59.0 “ft2” 61.0 “ft3” 62.0 “frec” 0.0
Schematic Diagram:

Load Bus

System Bus Low-side M Motor A


(230, 115, 69kV) Bus Feeder
1:T Equiv.
Rfdr +j Xfdr Pnet M Motor B
Psys jXxf

Qsys Fb Bfdr Qnet M Motor C

Bss
(1-Fb) Bfdr M Motor D

UVLS

UFLS Pdg Electronic


DG
Qdg
Static

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

Description Colstrip Acceleration Trend Relay

Prerequisites: The referenced buses must exist in the load flow


working case

Inputs: Colstrip generator speeds and powers (either


accelerating or electrical).

Invocation: colatr [<n>] {<name> <kv>} <id>

Parameters:

EPCL Default
Variable Data Description

Tfp 0.07 Power transducer time constant, sec.


Twp 13.6 Power washout time constant, sec.
Tfw 0.07 Rotor speed transducer time constant, sec.
Tww 3.4 Rotor speed washout time constant, sec.
Twa 1.7 Rotor angle washout time constant, sec.
Wi 1200.0 Individual overspeed trip threshold, counts
Damp 0.0 Dynamic oscillation damping coeff., p.u.
Kp 0.0 Power gain, p.u.
Kw 0.0 Rotor speed gain, p.u.
Ka 0.0 Rotor angle gain, p.u.
Kpwr 0.0 Power input selection: 0 accelerating P, 1 internal elect. P
gbnum1 0.0 Colstrip unit 1 terminal bus number
tbnum1 0.0 Colstrip unit 1 aux. transfer bus number
Tdgen1 0.05 Colstrip unit 1 gen. trip time delay, sec.
Tdaux1 0.05 Colstrip unit 1 aux. trip time delay, sec.
Ftran1 0.8 Colstrip unit 1 aux. transfer fraction
Ttran1 0.2 Colstrip unit 1 aux. reconnect time, sec.
gbnum2 0.0 Colstrip unit 2 terminal bus number
tbnum2 0.0 Colstrip unit 2 aux. transfer bus number
Tdgen2 0.05 Colstrip unit 2 gen. trip time delay, sec.
Tdaux2 0.05 Colstrip unit 2 aux. trip time delay, sec.
Ftran2 0.8 Colstrip unit 2 aux. transfer fraction
Ttran2 0.2 Colstrip unit 2 aux. reconnect time, sec.
gbnum3 0.0 Colstrip unit 3 terminal bus number
tbnum3 0.0 Colstrip unit 3 aux. transfer bus number
Tdgen3 0.06667 Colstrip unit 3 gen. trip time delay, sec.
Tdaux3 0.06667 Colstrip unit 3 aux. trip time delay, sec.
Ftran3 0.8 Colstrip unit 3 aux. transfer fraction
Ttran3 0.2 Colstrip unit 3 aux. reconnect time, sec.
gbnum4 0.0 Colstrip unit 4 terminal bus number
tbnum4 0.0 Colstrip unit 4 aux. transfer bus number
Tdgen4 0.06667 Colstrip unit 4 gen. trip time delay, sec.
Tdaux4 0.06667 Colstrip unit 4 aux. trip time delay, sec.
Ftran4 0.8 Colstrip unit 4 aux. transfer fraction
Ttran4 0.2 Colstrip unit 4 aux. reconnect time, sec.
DCbnum 0.0 Miles City HVDC bus number
Tdmcdc 0.18333 Miles City HVDC trip time delay, se.c
R1bnum 0.0 Shunt reactor #1 bus number
R1Td 0.31667 Shunt reactor #1 connection time delay, sec.
R1B -0.1 Shunt reactor #1 susceptance (B) value, p.u.
R2bnum 0.0 Shunt reactor #2 bus number
R2Td 0.31667 Shunt reactor #2 connection time delay, sec.
R2B -0.22 Shunt reactor #2 susceptance (B) value, p.u.

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

0 initial state - no trip signal


1 relay has signaled trip
2 switching logic has received signal and started timing
3 first switching action completed
4 second switching action completed
5 third switching action completed
-1 all switching actions completed

(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:

Colstrip generator #i is tripped after time delay, Tdgeni


Colstrip gen. #i auxiliary load is tripped after Tdauxi
Fraction Tfraci of Colstrip gen. #i auxiliary load is
transferred to bus number tbnumi after Ttrani seconds
(Time delays can be set to large values to avoid action.
tbnumi can be input as 0 if no transfer is desired.)

For Miles City HVDC:

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

1 col1 Trip signal for Colstrip unit 1


1 col2 Trip signal for Colstrip unit 2
1 col3 Trip signal for Colstrip unit 3
1 col4 Trip signal for Colstrip unit 4
1 dc Trip signal for Miles City HVDC

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

Description Colstrip Acceleration Trend Relay (2016 revised


model)

Prerequisites: The referenced buses must exist in the load flow


working case

Inputs: Colstrip generator speeds and powers

Invocation: Colatr2 [<n>] {<name> <kv>} <id>

Parameters:

EPCL Default
Variable Data Description

u1busnum 0 Colstrip unit 1 terminal bus number


u1machid 0 Colstrip unit 1 generator ID (must be numeric)
u2busnum 0 Colstrip unit 2 terminal bus number
u2machid 0 Colstrip unit 2 generator ID (must be numeric)
u3busnum 0 Colstrip unit 3 terminal bus number
u3machid 0 Colstrip unit 3 generator ID (must be numeric)
u4busnum 0 Colstrip unit 4 terminal bus number
u4machid 0 Colstrip unit 4 generator ID (must be numeric)
u1delay 0.05 Colstrip unit 1 relay and CB tripping delay, sec.
u2delay 0.05 Colstrip unit 2 relay and CB tripping delay, sec.
u3delay 0.0667 Colstrip unit 3 relay and CB tripping delay, sec.
u4delay 0.0667 Colstrip unit 4 relay and CB tripping delay, sec.
auxdelay 0.1427 Aux. load partial trip delay (after gen. trip), sec.
u1vsu2 0 Unit 1 (0) vs unit 2 (1) preference switch selection  
u3vsu4 0 Unit 3 (0) vs unit 4 (1) preference switch selection  
smvslg 0 Small unit (0) vs large unit (1) preference switch selection  
lgvs2sm 0 Large unit (0) vs 2 small unit (1) preference switch selection  

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

Description Cross compound turbine governor model

Prerequisites: HP and LP generators in-service and models


present in the dynamic models table

Inputs: Generator shaft speeds

Invocation: crcmgv [<nh>] {<nameh>; <kvh>;} <idh>; <nl>;]


{<namel>; <kvl>;} <idl>;:

Parameters:

EPCL Default
Variable Data Description

Pmaxhp 1.0 Maximum HP value position, p.u.


Rhp 0.05 HP governor droop, p.u. (> 0.)
T1hp 0.1 HP governor time constant, sec.
T3hp 0.1 HP turbine time constant, sec.
T4hp 0.1 HP turbine time constant, sec.
T5hp 10.0 HP reheater time constant, sec.
Fhp 0.3 Fraction of HP power ahead of reheater, p.u.
Dhp 0.0 HP damping factor, p.u.
Pmaxlp 1.0 Maximum LP value position, p.u.
Rlp 0.05 LP governor droop, p.u. (> 0.)
T1lp 0.1 LP governor time constant, sec.
T3lp 0.1 LP turbine time constant, sec.
T4lp 0.1 LP turbine time constant, sec.
T5lp 10.0 LP reheater time constant, sec
Flp 0.7 Fraction of LP power ahead of reheater, p.u.
Dlp 0.0 LP damping factor, p.u.

Notes:

a) <nh>; <nameh>; <kvh>; <idh>; identify the high pressure generator.

b) <nl>; <namel>; <kvl>; <idl>; identify the low pressure generator.

c) Both generators must be present and in service.


d) Each generator must be represented in the load flow by data stated on its own MVA
base. The division of power between the two turbines is determined by the values of
MBASE of the two generators, not by the values of Fhp and Flp.

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.

a) The “fix bad data” option will do the following:


a. If non-zero, set each of the time constants to a minimum of 4*delt
b. Set Rhp and Rlp to a minimum of 0.01.

Output Channels:

Record
Level Name Description

1 ph High pressure turbine power, p.u.


1 pl Low pressure turbine power, p.u.

Block Diagram:
Reference Pmax

Speed
+ Pmech HP
HP 1/ R 1  sFT5 +

1  sT1 - (1 sT3) (1 sT 4) (1 sT5) -


S0 S1 S2 S3
Pmin = 0

High Pressure Unit


Det2

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

Low Pressure Unit


- Det2
Model Name: dc2t

Description Two terminal d.c. transmission, bridge only.


Controls are implemented using an epcl
program in the standard epcl directory.

Prerequisites: From, to a.c. and d.c. buses, and d.c. branch


must exist in load flow data tables.

Inputs: Voltage and current at rectifier and inverter a.c.


buses

Note: additional output can come from variables v0-v9 in the epcl program which
implements dc controls..

Invocation: dc2t [<n>]{<name> <kv>} <id> [<nt>] {<namet>


<kvt>} <ck> <sec>: rlevel <epcl name> <table>
"dcbusr" <value> "dcbusi" <value> "calpr" <value>
"cbeti" <value> "accel" <val
Note: <epcl name> is the name of the epcl program implementing 2-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. The parameter names must be
included in the record.

Parameters:

EPCL Default
Variable Data Description

p_table 0.0 EPCL table number


dcbusr 0.0 Rectifier d.c. bus number
dcbusi 0.0 Inverter d.c. bus number
calpr 0.0 Cos(alpha) for rectifier bridge control
cbeti 0.0 Cos(beta) for inverter bridge control
accel 0.0 Solution acceleration factor

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.

An epcl program implementing simple PI converter controls is provided in the


standard epcl directory. It is called "dc2_PI.p".

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

1 alpha Rectifier ignition delay angle in degrees


1 idcr rectifier d.c. current
1 vdcr Rectifier d.c. voltage
1 pacr Rectifier real power
1 qacr Rectifier reactive power
1 beta Inverter ignition advance angle
1 gamma Inverter extinction advance angle
1 idci Inverter d.c. current
1 vdci Inverter d.c. voltage
1 paci Inverter real power
1 qaci Inverter reactive power

Block Diagram:

variable input from


ac and dc systems

updated by epcl program


cos(alpha) cos(beta)
invbyp
dcblk dcblk

current injection current injection


into ac system R + sL into ac system

idc Inverter
Rectifier
Model Name: dcbtb1

Description Two terminal back-to-back d.c. system

Prerequisites: From, to a.c. and d.c. buses, and d.c. branch


must exist in load flow data tables

Inputs: Voltage and current at rectifier and inverter a.c. buses

Invocation: dcbtb1 [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet>


<kvt>}:

Parameters:

EPCL Default
Variable Data Description

acbusr 0.0 Rectifier a.c. bus (external) number


acbusi 0.0 Inverter a.c. bus (external) number
dcbusr 0.0 Rectifier d.c. bus (external) number
dcbusi 0.0 Inverter d.c. bus (external) number
alp_min 0.0 Minimum rectifier firing angle, degrees
gam_min 0.0 Minimum inverter extinction angle, degrees
imarg 0.0 D.C. current margin, amps
alp_max 0.0 Maximum rectifier firing angle, degrees
gam_max 0.0 Maximum inverter extinction angle, degrees
accel 0.0 Acceleration applied to dc current
scmvar 0.0 Short circuit MVA at rectifier
scmvai 0.0 Short circuit MVA at inverter
spare1
spare2
spare3
spare4
spare5
spare6
spare7

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.

b) <id> should be the component identifier of the rectifier.


c) Each d.c. bus, line, and converter must be fully represented in the load flow working
case.

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

modi, modr Description

0 Bypass
1 Current Control
2 Voltage Control
3 Minimum Gamma Control
4 Minimum Alpha Control

f) The value of the block flag (blck) indicates the following:

blck Description

0 Normal
1 Block

The value of the bypass flag (byps) indicates the following:

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

1 pacr Rectifier a.c. real power, MW


1 qacr Rectifier a.c. reactive power, MVAR
1 paci Inverter d.c. real power, MW
1 qaci Inverter a.c. reactive power, MVAR
1 alpa Rectifier delay angle, degrees
1 gama Inverter firing angle, degrees
1 vdci Inverter d.c. voltage, kv
1 vdcr Rectifier d.c. voltage, kv
1 idc D.C. current, amps
1 tapi Inverter converter transformer tap ratio, p.u./p.u.
1 tapr Rectifier converter transformer tap ratio, p.u./p.u.
1 modi Inverter mode of operation
1 modr Rectifier mode of operation
1 edoi Ideal no-load inverter d.c. voltage, kv
1 edor Ideal no-load rectifier d.c. voltage, kv
1 idoi Inverter d.c. current order, amps
1 idor Rectifier d.c. current order, amps
1 vdco Inverter voltage order, kV
1 amin Minimum rectifier delay angle, degrees
1 gmin Minimum inverter firing angle, degrees
1 blck D.C. system block flag
1 byps D.C. system bypass flag
Block Diagrams:

From ac From dc To dc To ac

pacr vdcr vdci paci


qacr idc qaci

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

Description Multi-terminal, monopolar d.c. transmission


and bridge model. Controls are implemented in
an epcl program.

Prerequisites: Multi-terminal, d.c. transmission system in load


flow; an epcl program for control
implementation.

Inputs: Voltage and current at rectifier and inverter a.c.


buses

Note: additional output can come from variables v0 - v9 in the epcl program which
implements dc controls.

Invocation: dcmt [<n>]{<name> <kv>} <id> : #rlevel <epcl


name> <table> ‘parameter name’ value ...

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

epcl name EPCL file name for control logic


p_table EPCL table number

Notes:

This is a multi-terminal d.c. transmission dynamic model. A


corresponding multi-terminal dc system must exist in load flow case. In
the following notes, the multi-terminal d.c. load flow and dynamic
models are explained.

LOAD FLOW Multi-terminal DC model:

a) Data for dc converters, buses, and lines are entered as in previous


versions with the following constraints:
1. Each converter must be connected to a dc bus, which is
connected to a single dc line.
2. Additional intermediate dc buses may be included which
are not directly connected to converters.
3. The network of dc lines may have arbitrary structure
except that loops are not permitted.
4. Each dc line must have non-zero R and L. (If input value
of R is less than 0.02 ohms, it will be set to 0.02 and a
message printed. If input value of L is 0.0, it will be set
equal to 500 mH.)

b) For a multi-terminal dc system solution, desired current (or


power) and voltage values are input as "i_sched" (or “p_sched”)
and "v_sched". Desired current values are always satisfied.
Desired dc voltage may not be achieved in the cases where ac
voltages are too low. The load flow model adjusts two variables
to achieve solutions of dc voltages: converter transformer taps
and converter control angles (alphas and gammas). Angles are
adjusted within their limits so that the scheduled voltage is
followed as closely as possible.

c) The "enable d.c. converter control" flag in the "solution


parameters" panel must be set to "1" to enable either control of
transformer taps by built-in logic or converter control by user
written (epcl) logic. Which logic is used depends on the setting
of the "transformer tap control" flag in the dcc table for each
converter, as follows:
1) If the "transformer tap control" flag is set to a negative value
for any converter, the epcl file “mtTAP.p”, if it is present in the
upslfxx\stdepcl directory, will be invoked at the beginning of
each time step. Logic may be included in this file for controlling
any or all of the dc converters. If more than one dc system is to
be controlled by user-written logic, the logic for all systems must
be included in a single mttap.p file.
2) If the "transformer tap control" flag is set to a positive value
for any converter, the standard tap control logic will be used for
that converter only. This logic adjusts the transformer taps
within their limits to drive the converter control angle (alpha or
gamma) as close as possible to its minimum values.
d) The dc network solution is iterative and normally converges in a few
iterations. The maximum number iterations is currently set at 50 and
the convergence tolerance to a mismatch of 1 amp. These values can
be changed in epcl by setting the parameters solpar.itmxhvdc and
solpar.tolhvdc, respectively, to the desired values. If convergence
to the specified tolerance is not achieved within the specified number
of iterations, a message is printed with the largest mismatch. If this
mismatch is too large, try increasing the values of the small dc line
resistances. (Note: With a minimum R value of 0.02, convergence to
less than 1 amp. has consistently been achieved in testing.)

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

DYNAMIC Multi-terminal DC model:

a) For dynamic simulations of a multi-terminal dc system, the multi-


terminal dc bridge and dc RL line equations are simulated in the
DCMT model. The dc controls are modeled in an epcl program,
written by the user and placed in the standard epcl directory
(upslfxx\stdepcl).

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.

d) No parameters are required by DCMT. Parameters for the controller


can be hard-coded in the epcl program or input following the table
number.

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.

f) Up to 90 states and 60 variables (v0...v59) can be used in the control


epcl program. The first 10 variables will be output for plotting.

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)

dc current & voltage,


ac current & voltage, etc

cosα1 R1 +sL1
ac bus R5 +sL5 R6+sL6 R4 +sL4 cosβ1

ac bus cosα2 R2 +sL2 ac bus

R7 +sL7
cosα3 R3 +sL3

ac bus

PSLF model DCMT


Model Name: degov1

Description Woodward diesel governor

Prerequisites: Generator model ahead of this model in dynamic


models table

Inputs: Shaft speed, generator electrical power

Invocation: Degov1 [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

T1 15.0 Electrical control time constant, sec.


T2 0.2 Electrical control time constant, sec.
T3 5.0 Electrical control time constant, sec.
K 20.0 Gain, p.u.
T4 5.0 Actuator time constant, sec.
T5 5.0 Actuator time constant, sec.
T6 0.25 Actuator time constant, sec.
Td 0.0 Delay, sec.
Tmax 1.0 Upper limit, p.u.
Tmin -0.05 Lower limit, p.u.
R 0.05 Steady state droop, p.u.
Te 0.5 Power transducer time constant, p.u.
Flagdr 1.0 Droop control flag (0: Throttle feedback; 1: Electric power
feedback)

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.

c) The “fix bad data” option will do the following:


a. If 0 < T1 < 4*delt, then T1 = 4*delt
b. If 0 < T2 < 4*delt, then T2 = 4*delt
c. If 0 < T5 < 4*delt, then T5 = 4*delt
d. If 0 < T6 < 4*delt, then T6 = 4*delt
e. If Tmax < Tmin, swap the values

Output Channels:

Record
Level Name Description

1 pm Turbine power, MW

Block Diagram:
Model Name: der_a

Description Distributed energy resource model

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables

Invocation: der_a [<n>] {<name> <kv>} <id>} : #<rl> {mva=<value>}

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:

a) This model is intended to be primarily used as an aggregate model of a large number of


distributed generators. The parameters vrfrac, vl0, vl1, vh0, vh1, tvl0, tvl1, tvh0, tvh1,
allow for the emulation of partial tripping of the aggregate DG model.

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.

c) The current limit is modeled as follows:

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.

j) If frqflg is zero, states 1, 5, and 6 are not computed.

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.

n) If frqflg = 1 and Tp = Tpord = 0, then Kig cannot be zero.

o) The “fix bad data” option will do the following:

a. If 0 < Trv < delt then Trv = delt


b. If 0 < Tp < delt then Tp = delt
c. If 0 < Tiq < delt then Tiq = delt
d. If 0 < Tg < delt then Tg = delt
e. If 0 < Te < delt then Te = delt
f. If 0 < Tpord < delt then Tpord = delt

Output Channels:

Record
Level Name Description

1 vt Terminal voltage, p.u.


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.
3 vmult Factor for emulation of partial tripping (vmult)
3 fmult Factor for frequency tripping (fmult)

Block Diagram:

iql1

iqh1
‫ܧ‬ௗ ൌ ܸ‫ݐ‬ௗ െ ܺ௘ ݅௤
‫ܧ‬௤ ൌ ܸ‫ݐ‬௤ ൅ ܺ௘ ݅ௗ
vmult

Vfrac
1
Vt_flt 1 vmult

0
vl0 vl1 vh1 vh0

vl0 vmin 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

flag 0.0 1: area, 2: zone, 3: owner


num 0.0 Area, zone, or owner number
kV1 0.0 base kV level 1
kV2 0.0 base kV level 2
kV3 0.0 base kV level 3
monitor 0.0 0: monitor only; 1: trip
Tcb 0.0 Circuit breaker time, cycles.
Tcc 0.0 Relay and communication time delay, cycles

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.

Output Channels: None

Sample dyd records:


diffrlyg : 1 22 230. 0. 0. 1. 3. 3.
6 cycle clearing delay for 230kV lines in area 22

diffrlyg : 1 22 500. 0. 0. 1. 2. 2.
4 cycle clearing delay for 500kV lines in area 22

diffrlyg : 3 74 500. 230 13.8 1. 3. 3.


6 cycle clearing delay for 3-winding transformers (500/230/13.8kV) for owner 74

diffrlyg : 2 482 230 13.8 13.8 1. 3. 3.


6 cycle clearing delay for 3-winding transformers (230/13.8 /13.8kV) in zone 482
Model Name: diffrlys
Description General Line/Transformer Differential Relay
Prerequisites: None

Inputs: None

Invocation: diffrlys [<nf>] {<namef> <kvf>} <id>


[<nt>] {<namet> <kvt>} <ck> <sec>
[<ni>] {<namei> <kvi>}
[<nj>] {<namej> <kvj>} :

Parameters:

EPCL Default
Variable Data Description

monitor 0.0 0: monitor only; 1: trip


Tcb 0.0 Circuit breaker time, cycles.
Tcc 0.0 Relay and communication time delay, cycles

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.

Output Channels: None

Sample dyd records:


diffrlys 22652 ! ! ! 22232 "1" 1 : 1. 2. 3.
5 cycle clearing delay for fault on the specified line

diffrlys 22112 ! ! ! 22396 ! ! "1" 1 22841 : 1. 3. 3.


6 cycle clearing delay for fault on the multi-segment line ending at bus 22841

diffrlys 22112 ! ! ! 22396 ! ! "1" 1 ! ! ! 22841 : 1. 3. 3.


6 cycle clearing delay for fault on the internal bus of the 3-winding transformer
connecting the specified buses.

diffrlys 22551 ! ! ! 22553 ! ! "1" 1 22567 ! ! 22324 : 1. 2. 3.


5 cycle clearing delay for fault on 3-terminal line with terminals 22551, 22567, and 22324
and tap bus 22553.

nf nt ni
Fb = nf Sb = nt Tb = ni
Ttb = nj
Model Name: distrel

Description WECC Distance Relay

Prerequisites: Branch must exist

Inputs: Voltage and current at "from" end of branch

Invocation: distrel [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>}


<ck> <sec> [<nf2>] {<namef2> <kvf2>} [<nt2>] {<namet2>
<kvt2>} <ck2> <sec2>:

Parameters:

EPCL Default
Variable Data Description

nfar 0.0 Far end bus number


T1 0.0 Zone 1 pickup time setting, cycles
T2 0.0 Zone 2 pickup time setting, cycles
T3 0.0 Zone 3 pickup time setting, cycles
T4 0.0 Zone 4 pickup time setting, cycles
notrip 0.0 0: trip, >0: do not trip
selfrec 0.0 1: self reclose, 0: do not self reclose
remrec 0.0 1: remote reclose, 0: do not remote reclose
Tself 0.0 Self-trip time for relay + communications + breaker, cycles
Trem 0.0 Remote trip time for relay + communications + breaker, cycles
Tselfrec 0.0 Self reclose time, cycles
Tremrec 0.0 Remote reclose time, cycles
Cur1 0.0 Zone 1 threshold line current, primary Amps
Cur2 0.0 Zone 2 threshold line current, primary Amps
Cur3 0.0 Zone 3 threshold line current, primary Amps
Cur4 0.0 Zone 4 threshold line current, primary Amps
taploop 0.0 =1 if any tap buses have non-radial connections
ntap[5] 0.0 Up to 5 intermediate tap bus numbers (required if taploop = 1)

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

i) Messages are written to the dynamic log file as follows:


1) When apparent Z enters locus for zone <n>:
At t = <time> DISTRELAY 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> DISTRELAY oper z<n> for <branch id>
3) When apparent Z leaves zone <n> before T<n> and zone is reset :
At t = <time> DISTRELAY left z<n> for <branch id>
4) When Tcb<n> has elapsed after trip signal is sent:
At t = <time> DISTRELAY cb trip for <branch id>

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

1 signal1 Zone 1 signal


1 signal2 Zone 2 signal
1 signal3 Zone 3 signal
1 signal3 Zone 4 signal
1 signalx Circuit breaker timer signal
1 rapp Apparent resistance, ohms
1 xapp Apparent reactance, ohms

Block Diagram:
Model Name: emac1t

Description Modified IEEE (1992/2005) type AC1A


excitation system (AEP)

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: emac1t [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


T4 0.0 TGR lag time constant, sec.
T3 0.0 TGR lead time constant, sec.
Ka 400.0 AVR gain (> 0.)
Ta 0.02 AVR time constant, sec. (> 0.)
Vamax 14.5 Maximum AVR output, p.u.
Vamin -14.5 Minimum AVR output, p.u.
Te 0.8 Exciter time constant, sec. (> 0.)
Kf 0.03 Rate feedback gain, p.u.
Tf 1.0 Rate feedback time constant, sec. (> 0.)
Kc 0.20 Rectifier regulation factor, p.u.
Kd 0.38 Exciter internal reactance, p.u.
Ke 1.0 Exciter field resistance constant, p.u.
E1 4.18 Field voltage value 1, p.u. (note d)
S(E1) 0.10 Saturation factor at E1 (note d)
E2 3.14 Field voltage value 2, p.u. (note d)
S(E2) 0.03 Saturation factor at E2 (note d)
Vrmax 6.03 Maximum exciter control signal, p.u.
Vrmin -5.43 Minimum exciter control signal, p.u.
T6 0.0 TGR lag time constant, sec.
T5 0.0 TGR lead time constant, sec.
T2 0.0 TGR lag time constant, sec.
T1 0.0 TGR lead time constant, sec.
Kfe 0.03 Rate feedback gain, p.u.
Tfe 1.0 Rate feedback time constant, sec. (> 0.)
spdmlt 0 If = 1, multiply output (Efd) by generator speed (note e)
Notes:

a) For modeling alternator-rectifier excitation system with non-controlled rectifiers and


feedback from exciter field current, e.g. Westinghouse Brushless system.

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.

f) The “fix bad data” option will do the following:


a. Set Ta, Te, Tf, and Tfe to a minimum of 4*delt.
b. If zero, set Tr, T2, T4, T6 to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.
e. If Vamax < Vamin, swap the values.

Output Channels:

Record
Level Name Description

1 if Generator field current (Ifd) , p.u.


2 vr Voltage regulator output (Vr), p.u.

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

K e+S e(V e) K c Ifd / Ve


sKf Vfe +
+

1+ sTf +

S4 Kd Ifd
[ la d I f d ]
Model Name: epcdc

Description Two terminal d.c. transmission

Prerequisites: From, to a.c. and d.c. buses, and d.c. branch must exist in load
flow data tables

Inputs: Voltage and current at rectifier and inverter a.c. buses

Invocation: epcdc [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>}:

Parameters:

EPCL Default
Variable Data Description

dcbusr 0.0 Rectifier dc bus external number


dcbusi 0.0 Inverter dc bus external number
alpmin 0.0 Minimum rectifier firing angle, degrees
gammin 0.0 Minimum inverter firing angle, degrees
tmeasv 0.0 D.C. voltage transducer time constant, sec.
tmeasi 0.0 D.C. current transducer time constant, sec.
trdown 0.0 Rectifier VDCOL downward time constant
trup 0.0 Rectifier VDCOL upward time constant
tidown 0.0 Inverter VDCOL downward time constant
tiup 0.0 Inverter VDCOL upward time constant
v1r 0.0 Rectifier VDCOL voltage break points, Kv
v2r 0.0 Rectifier VDCOL voltage break points, Kv
v3r 0.0 Rectifier VDCOL voltage break points, Kv
v4r 0.0 Rectifier VDCOL voltage break points, Kv
c1r 0.0 Rectifier VDCOL current break points. p.u.
c2r 0.0 Rectifier VDCOL current break points. p.u.
v1i 0.0 Inverter VDCOL voltage break points, Kv
v2i 0.0 Inverter VDCOL voltage break points, Kv
v3i 0.0 Inverter VDCOL voltage break points, Kv
v4i 0.0 Inverter VDCOL voltage break points, Kv
c1i 0.0 Inverter VDCOL current break points, p.u.
c2i 0.0 Inverter VDCOL current break points, p.u.
cmin 0.0 Minimum current order, amps
cmax 0.0 Maximum current order, amps
vblock 0.0 Rectifier ac voltage for inst. block,p.u.
vunbl 0.0 Rectifier ac voltage for unblock, p.u.
tblock 0.0 Rectifier minimum block time, sec.
vbypass 0.0 Inverter dc voltage for bypassing, p.u.
vunby 0.0 Inverter ac voltage for unbypass, p.u.
tbypas 0.0 Inverter minimum bypass time, sec.
tcmode 0.0 Minimum time in enforced current mode, sec.
vdeblk 0.0 Rectifier ac voltage for delayed block, p.u.
tdeblk 0.0 Rectifier pickup time for delayed block, sec.
treblk 0.0 Rect. min block time for delayed block, sec.
vacbyp 0.0 Inverter ac voltage for delayed bypass, p.u.
tdebyp 0.0 Inv pickup time for time delayed bypass, sec.
tinbyp 0.0 Inv min bypass time for delayed bypass, sec.
vchange 0.0 Sudden inv ac volt change for inst bypass, p.u.
tvchange 0.0 Sudden voltage change detector time constant, sec.
imarg 0.0 Current margin, amps
rcut 0.0 Apparent Res of volt rise controller, ohms
alp_max 0.0 Maximum rectifier firing angle, degrees
gam_max 0.0 Maximum inverter firing angle, degrees
accel 0.0 Solution acceleration factor
tpcmcu 0.0 Integration time constant of bpa PCMCU
spare1 0.0
spare2 0.0
spare3 0.0
spare4 0.0
spare5 0.0
spare6 0.0
spare7 0.0
imeas
vdcrm
vdcim
vclr
vcli

Notes:

a) nf identifies the rectifier a.c. bus; nt identifies the inverter end a.c. bus.

b) <id> should be the component identifier of the rectifier.

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.

j) A non-zero value is required for DC Current Rating in the dcc table


Output Channels:

Record
Level Name Description

1 pacr Rectifier a.c. real power, MW


1 qacr Rectifier a.c. reactive power, MVAR
1 paci Inverter d.c. real power, MW
1 qaci Inverter a.c. reactive power, MVAR
1 alpa Rectifier delay angle, degrees
1 gama Inverter firing angle, degrees
1 vdcr Rectifier d.c. voltage, kv
1 vdci Inverter d.c. voltage, kv
1 idc D.C. current, amps
1 vclr Rectifier current limit input voltage, Kv
1 vcli Inverter current limit input voltage, kv
1 daux Auxiliary input signal, Amps

Block Diagram:

From ac From dc To dc To ac

pacr vdcr vdci paci


qacr idc qaci

alpha gamma
Ibr
Iset V2 V4
C2

Iorder = Power/Current controller output

C1 Iset = Lesser of Iorder and Imax


V1 V3

Vdclim

>0 Teff = Tup


+
1 -
VdC 1 + sTeff

S0
<0 Teff = Tdown
VdClim

1
1 + sTvc bypass = true
Vaci +
Vchange
-
Model Name: epcmod epcmd1, epcmd2, epcmd3, epcexc,
epctrb

Description User-written dynamic model for control


devices (devices that do not connect directly to
the network, but control another device such as
a generator or shunt.)

Prerequisites: A device in the load flow working case to


which this model is connected.

Inputs: Depends on the nature of the model.


Invocation: epcmod [<n>]{<name> <kv>} <id> [<nt>] {<namet>
<kvt>} <ck> <sec>: #rlevel <epcl name> <table>
<p1 name> <p1 value> <p2 name> <p2 value>....
Note: For epcmd1, epcmd2, epcmd3, epcexc or
epctrb, use those names in place of epcmod in the
invocation.

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:

a) epcmod (or epcmd1 or epcmd2 or epcmd3 or epcexc or epctrb) is used to include


user-written dynamic models. User-written models are written in epcl, and can
represent most power system control functions. The name of the epcl model <epcl
name> MUST be specified after #rlevel. The name can be up to 48 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.

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:

Sort Model type Type Model User-written Other examples


order Code names 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, motor1,
(and SVD) stcon1 stcon, vwscc, svcwsc,
etc.
8 Exciter x any epcexc exac1, exst2, etc.
9 Turbine t any exc.CC epctrb ggov1, hygov, etc..
10 Other d,u,c, epcmod, epcdc, cdc6, dcbtb1,
r,m,s epcmd1, stcon, ltc1, lcfb1, pss2a,
epcmd2, vmetr, ooslen, agc2, etc.
dc2t, dcmt,
11 CC turbine t crcmgv ieeeg1, crcmgv
ieeeg1

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.

epcl program table number

batch epcl 0 - assigned automatically by PSLF


epcl to run dynamics 1 - assigned automatically by PSLF
epcl model excit.p 3 - assigned by user in dyd file
epcl model cap.p 4 - assigned by user in dyd file

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.

e) The following variables are available for use in user-written models:

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).

Note: For epcmd1 or epcmd2 or epcmd3, epcexc or epctrb, substitute “epcmd1” or


“epcmd2” or “epcexc” or “epctrb” for “epcmod” in the above parameter and variable
names.

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

1 um0 Model parameter v0


1 um1 Model parameter v1
2 um2 Model parameter v2
3 um3 Model parameter v3
4 um4 Model parameter v4
5 um5 Model parameter v5
6 um6 Model parameter v6
7 um7 Model parameter v7
8 um8 Model parameter v8
9 um9 Model parameter v9
… … …
99 u99 Model parameter v99

* Names of output channels can be changed to meaningful names (up to 4 characters) by


setting channel_head[i].type as described above under INIT.
Model Name: epcgen epcgn1, epcgn2, epcgn3

Description User-written dynamic model for a device


connected directly to the network, e.g.
generator, motor, statcon

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables, Field Voltage,


Turbine Power

Invocation: epcgen [<n>]{<name> <kv>} <id> ! ! ! ! ! [<nm>]


{<namem> <kvm>} : #rlevel <epcl name> <table>
“rsrc” <rsrc> “xsrc” <xsrc> <p0 name> <p0
value>....

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

b) epcgen (or epcgen1, epcgen2 or epcgn3) is used to include user-written dynamic


models for generators and other devices connected directly to the network. These
models follow most of the same rules and procedures as the epcmod user-written
model but permit easy interfacing with the network. If xsrc is non-zero, the model is
connected to the network as a voltage behind rsrc + jxsrc. If xsrc is zero, the model
is connected as a current injection without source impedance.

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.

epcl program table number

batch epcl 0 - assigned automatically by PSLF


epcl to run dynamics 1 - assigned automatically by PSLF
epcgen model epcgenrou.p 5 - assigned by user in dyd file
epcgen model epcvwscc.p 14 - assigned by user in dyd file
epcmod model sex.p 3 - assigned by user in dyd file

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:

@mx = dypar[0].cmi /* current model index */


@k = model[@mx].k /* genbc table index */
@kgen = genbc[@k].kgen /* gens table index */

g) The following variables are available for use in user-written models:

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

1 um0 Model parameter v0


1 um1 Model parameter v1
2 um2 Model parameter v2
3 um3 Model parameter v3
4 um4 Model parameter v4
5 um5 Model parameter v5
6 um6 Model parameter v6
7 um7 Model parameter v7
8 um8 Model parameter v8
9 um9 Model parameter v9
… … …
85 um85 Model parameter v85

* Names of output channels can be changed to meaningful names (up to 4 characters) by


setting channel_head[i].type as described above under INIT.
Model Name: esac1a

Description IEEE (1992/2005) type AC1A excitation


system

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esac1a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Tb 0.0 TGR lag time constant, sec.
Tc 0.0 TGR lead time constant, sec.
Ka 400.0 AVR gain (> 0.)
Ta 0.02 AVR time constant, sec. (> 0.)
Vamax 14.5 Maximum AVR output, p.u.
Vamin -14.5 Minimum AVR output, p.u.
Te 0.8 Exciter time constant, sec. (> 0.)
Kf 0.03 Rate feedback gain, p.u.
Tf 1.0 Rate feedback time constant, sec. (> 0.)
Kc 0.20 Rectifier regulation factor, p.u.
Kd 0.38 Exciter internal reactance, p.u.
Ke 1.0 Exciter field resistance constant, p.u.
E1 4.18 Field voltage value 1, p.u. (note d)
S(E1) 0.10 Saturation factor at E1 (note d)
E2 3.14 Field voltage value 2, p.u. (note d)
S(E2) 0.03 Saturation factor at E2 (note d)
Vrmax 6.03 Maximum exciter control signal, p.u.
Vrmin -5.43 Minimum exciter control signal, p.u.
spdmlt 0 If = 1, multiply output (Efd) by generator speed (note e)

Notes:

a) For modeling alternator-rectifier excitation system with non-controlled rectifiers and


feedback from exciter field current, e.g. Westinghouse Brushless system.
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) 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.

f) The “fix bad data” option will do the following:


a. Set Ta, Te, and Tf to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.
e. If Vamax < Vamin, swap the values.

Output Channels:

Record
Level Name Description

1 if Generator field current (Ifd) , p.u.


2 vr Voltage regulator output (Vr), p.u.

Block Diagram:
Model Name: esac2a

Description IEEE (1992/2005) type AC2A excitation


system

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esac2a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Tb 0.0 TGR lag time constant, sec.
Tc 0.0 TGR lead time constant, sec.
Ka 400.0 AVR gain (> 0.)
Ta 0.01 AVR time constant, sec. (> 0.)
Vamax 8.0 Maximum AVR output, p.u.
Vamin -8.0 Minimum AVR output, p.u.
Kb 25.0 Exciter field current controller gain, p.u. (> 0.)
Vrmax 105.0 Maximum exciter control signal, p.u.
Vrmin -95.0 Minimum exciter control signal, p.u.
Te 0.6 Exciter time constant, sec. (> 0.)
Vfemax 4.4 Exciter field current limit parameter, p.u. Efd
Kh 1.0 Exciter field current feedback gain, p.u.
Kf 0.03 Rate feedback gain, p.u.
Tf 1.0 Rate feedback time constant, sec. (> 0.)
Kc 0.28 Rectifier regulation factor, p.u.
Kd 0.35 Exciter internal reactance, p.u.
Ke 1.0 Exciter field resistance constant, p.u.
E1 4.4 Field voltage value 1, p.u. (note d)
S(E1) 0.037 Saturation factor at E1 (note d)
E2 3.3 Field voltage value 2, p.u. (note d)
S(E2) 0.012 Saturation factor at E2 (note d)
spdmlt 0 If = 1, multiply output (Efd) by generator speed (note f)

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.

h) The “fix bad data” option will do the following:


a. Set Ta, Te, and Tf to a minimum of 4*delt.
b. If Kh is non-zero, set Te to a minimum of Ke * Kh * Kb * 4*delt.
c. If non-zero, set Tr and Tb to a minimum of 4*delt
d. If Vfemax is non-zero, set it to a minimum of 3.
e. Set Ka and Kb to a minimum of 1.
f. If Vrmax < Vrmin, swap the values.
g. If Vamax < Vamin, swap the values.
Output Channels:

Record
Level Name Description

1 if Generator field current (Ifd) , p.u.


2 vr Voltage regulator output (Vr), p.u.

Block Diagram:

Vs VUEL VOEL [speed


Vref Vfemax - Kd Ifd
[vsig Vamax [vuel] [voel] ]
[vref] Vrmax K e + S e( V e ) 1
]
1 0 spdmlt
+ + HV LV
1 Vc 1 + sTc Ka Va Gate Vr 1 Ve
Gate Efd
  Kb  X
[ v c o m p ] 1 + sTr - 1 + sTb 1+ sTa + +
sTe [efd]
- - -
S0 S1 S2 S3 Fex
Vh Vrmin
Vamin 0
Vf F (I n )

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

Description IEEE (1992/2005) type AC3A excitation


system

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esac3a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Tb 0.0 TGR lag time constant, sec.
Tc 0.0 TGR lead time constant, sec.
Ka 45.62 AVR gain (> 0.)
Ta 0.013 AVR time constant, sec. (> 0.)
Vamax 1.0 Maximum AVR output, pu
Vamin -0.95 Minimum AVR output, pu
Te 1.17 Exciter time constant, sec. (> 0.)
Vemin 0.84 Minimum field voltage limit, pu
Kr 3.77 Field voltage self-excitation feedback gain, pu (> 0.)
Kf 0.143 Low level rate feedback gain, pu
Tf 1.0 Rate feedback time constant, sec. (> 0.)
Kn 0.05 High level rate feedback gain, pu
Efdn 2.36 Rate feedback gain break level, pu
Kc 0.104 Rectifier regulation factor, pu
Kd 0.499 Exciter internal reactance, pu
Ke 1.0 Exciter field resistance constant, pu
Vfemax 16 Exciter field current limit parameter, p.u. Efd
E1 6.24 Field voltage value 1, p.u. (note d)
S(E1) 1.143 Saturation factor at E1 (note d)
E2 4.68 Field voltage value 2, p.u. (note d)
S(E2) 0.1 Saturation factor at E2 (note d)
spdmlt 0 If = 1, multiply output (Efd) by generator speed (note f)

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.

g) The “fix bad data” option will do the following:


a. Set Ta, Te, and Tf to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. If Vfemax is non-zero, set it to a minimum of 3.
d. Set Ka and Kr to a minimum of 1.
e. If Vamax < Vamin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current (LadIfd) , p.u.


2 Vr Voltage regulator output, p.u.

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

Description IEEE (1992/2005) type AC4A excitation system

Prerequisites: Generator model ahead of this model in dynamic


models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esac4a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Vimax 10.0 Maximum error, p.u.
Vimin -10.0 Minimum error, p.u.
Tc 1.0 Lead time constant, sec.
Tb 10.0 Lag time constant, sec.
Ka 100.0 Gain, p.u. (> 0.)
Ta 0.02 Time constant, sec. (> 0.)
Vrmax 5.64 Maximum controller output, p.u.
Vrmin -4.53 Minimum controller output, p.u.
Kc 0.0 Excitation system regulation, p.u.

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.

a) Ka and Ta must be non-zero. If Tr or Tb is zero, the respective block is bypassed.

b) The “fix bad data” option will do the following:


a. Set Ta to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.
e. If Vimax < Vimin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.

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

Description IEEE (1992/2005) type AC5A excitation


system model with optional speed multiplier

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esac5a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Ka 400.0 Gain, p.u. (> 0.)
Ta 0.02 Time constant, sec. (> 0.)
Vrmax 7.3 Maximum controller output, p.u.
Vrmin -7.3 Minimum controller output, p.u.
Ke 1.0 Exciter field resistance line slope margin, p.u.
Te 0.8 Exciter time constant, sec. (> 0.)
Kf 0.03 Rate feedback gain
Tf1 1.0 Rate feedback lag time constant, sec. (> 0.)
Tf2 0.8 Rate feedback lag time constant, sec.
Tf3 0.0 Rate feedback lead time constant, sec.
E1 5.6 Field voltage value, 1 (note b)
Se(E1) 0.86 Saturation factor at E1 (note b)
E2 4.2 Field voltage value, 2 (note b)
Se(E2) 0.5 Saturation factor at E2 (note b)
spdmlt 0. If not 0, multiply output (Efd) by generator speed (note c)

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.

d) The “fix bad data” option will do the following:


a. Set Ta, Te, and Tf1 to a minimum of 4*delt.
b. If non-zero, set Tr and Tf2 to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 if Generator field current, p.u.


2 vr Voltage regulator output, p.u.

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

Description IEEE (1992/2005) type AC6A excitation


system with optional speed multiplier

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esac6a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.02 Filter time constant, sec.


Ka 536 Gain, p.u. (> 0.)
Ta 0.086 Time constant, sec.
Tk 0.18 Lag time constant, sec.
Tb 9.0 Time constant, sec.
Tc 3.0 Lead time constant, sec.
Vamax 75.0 Maximum controller element output, p.u.
Vamin -75.0 Minimum controller element output, p.u.
Vrmax 44.0 Maximum exciter control signal, p.u.
Vrmin -36.0 Minimum exciter control signal, p.u.
Te 1.0 Exciter time constant, sec. (> 0.)
Kh 92.0 Exciter field current limiter gain, p.u.
Tj 0.02 Field current limiter time constant, sec.
Th 0.08 Field current limiter time constant, sec. (> 0.)
Vfelim 19.0 Exciter field current limit reference, p.u.
Vhmax 75.0 Maximum field current limiter signal, p.u.
Kc 0.173 Rectifier regulation factor, p.u.
Kd 1.91 Exciter internal reactance, p.u.
Ke 1.6 Exciter field resistance constant, p.u. (note c)
E1 5.55 Field voltage value, 1 (note d)
S(E1) 0.044 Saturation factor at E1 (note d)
E2 7.4 Field voltage value, 2 (note d)
S(E2) 0.214 Saturation factor at E2 (note d)
spdmlt 0 If not 0, multiply output (Efd) by generator speed (note e)

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.

c) If Ke = 0., it is set during initialization to make Vr = 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.

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) The “fix bad data” option will do the following:


a. Set Ta, Te, and Th to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.
e. If Vamax < Vamin, swap the values.
Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.


2 vr Voltage regulator output, p.u.

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

Vref Vamin Vt Vrmin F(In)


0
[vref]
Vhmax Se
Vil In
+
1 + sTj Vh
Kh    Ke Kc Ifd / Ve
1 + sTh + + +
 +
S4
Vfe
0 Vfelim
Ifd
Kd
[ladifd]
Model Name: esac7b

Description IEEE (2005) type AC7B excitation system

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esac7b [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Kpr 4.24 Regulator proportional gain, p.u. (> 0. if Kir = 0.)
Kir 4.24 Regulator integral gain, p.u.
Kdr 0.0 Regulator derivative gain, p.u.
Tdr 0.0 Derivative gain washout time constant, sec.
Vrmax 5.79 Maximum regulator output, p.u.
Vrmin -5.79 Minimum regulator output, p.u.
Kpa 65.36 Amplifier proportional gain. (> 0. if Kia = 0.)
Kia 59.69 Amplifier integral gain, p.u.
Vamax 1.0 Maximum amplifier output, p.u.
Vamin -0.95 Minimum amplifier output, p.u.
Kp 4.96 Exciter field voltage source gain, p.u.
Kl 10.0 Exciter field voltage lower limit parameter, p.u.
Te 1.1 Exciter time constant, sec. (> 0.)
Vfemax 6.9 Exciter field current limit parameter, p.u. Efd (note e)
Vemin 0.0 Minimum exciter ouput voltage, p.u. Efd
Ke 1.0 Exciter field resistance constant, p.u.
Kc 0.18 Rectifier regulation factor, p.u.
Kd 0.02 Exciter internal reactance, p.u.
Kf1 0.212 Field voltage feedback gain, p.u.
Kf2 0.0 Exciter field current feedback gain, p.u.
Kf3 0.0 Rate feedback gain, p.u.
Tf 1.0 Rate feedback time constant, sec. (> 0.)
E1 6.3 Field voltage value 1, p.u. (note d)
S(E1) 0.44 Saturation factor at E1 (note d)
E2 3.02 Field voltage value 2, p.u. (note d)
S(E2) 0.075 Saturation factor at E2 (note d)
spdmlt 0 If not 0, multiply output (Efd) by generator speed (note f)

Notes:

a) For modeling alternator-rectifier excitation system with either stationary or rotating


rectifiers with PID voltage regulator.

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.

c) To disable the rate feedback, set Kf3 = 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.

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”.

h) If Kp is set to zero, the term KpVt (input to multiplier) defaults to one.

i) Kpr and Kir cannot both be equal to zero

j) Kpa and Kia cannot both be equal to zero.

k) The “fix bad data” option will do the following:


a. Set Te and Tf to a minimum of 4*delt.
b. If non-zero, set Tr and Tdr to a minimum of 4*delt
c. If Vfemax is non-zero, set it to a minimum of 3.
d. If Vrmax < Vrmin, swap the values.
e. If Vamax < Vamin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current (LadIfd) , p.u.


2 Vr Voltage regulator output, p.u.
Block Diagram:
Model Name: esac8b

Description IEEE (2005) type AC8B with added speed


multiplier.

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esac8b [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Voltage transducer time constant, sec.


Kpr 80.0 Voltage Regulator Proportional Gain (> 0. if Kir = 0.)
Kir 5.0 Voltage Regulator Integral Gain
Kdr 10.0 Voltage Regulator Derivative Gain
Tdr 0.1 Voltage Regulator Derivative Time Constant, sec.
Vrmax 35.0 Maximum controller output, p.u.
Vrmin 0.0 Minimum controller output, p.u.
Ka 1. Amplifier Gain, p.u.
Ta 0.0 Amplifier time constant, sec.
Te 1.2 Exciter field time constant, sec. (> 0.)
Vfemax 6.0 Exciter field current limit parameter, p.u. Efd (note d)
Vemin 0.0 Minimum exciter ouput voltage, p.u. Efd
Ke 1.0 Exciter field proportional constant
Kc 0.55 Rectifier regulation factor, p.u.
Kd 1.1 Exciter regulation factor, p.u.
E1 6.5 Field voltage value 1, p.u. (note c)
S(E1) 0.3 Saturation factor at E1 (note c)
E2 9.0 Field voltage value 2, p.u. (note c)
S(E2) 3.0 Saturation factor at E2 (note c)
vtmult 0. If not 0, multiply Vrmax and Vrmin by terminal voltage
spdmlt 0. If not 0, multiply output (Efd) by generator speed (note e)

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

g) The “fix bad data” option will do the following:


a. Set Te to a minimum of 4*delt.
b. If non-zero, set Ta, Tr and Tdr to a minimum of 4*delt
c. If Vrmax < Vrmin, swap the values.
d. If non-zero, set Vfemax to a minimum of 3.

Output Channels:

Record
Level Name Description

1 ifd Generator field current (LadIfd), p.u.


2 vr Voltage regulator output p.u.

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

Description IEEE (1992/2005) DC1A excitation system


model with optional speed multiplier

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esdc1a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Ka 40.0 Gain, p.u.
Ta 0.1 Time constant, sec. (> 0.)
Tb 0.0 Lag time constant, sec.
Tc 0.0 Lead time constant, sec.
Vrmax 1.0 Maximum controller output, p.u. (note d)
Vrmin -1.0 Minimum controller output, p.u.
Ke 0.1 Exciter field resistance line slope margin, p.u. (note c)
Te 0.5 Exciter time constant, sec. (> 0.)
Kf 0.05 Rate feedback gain
Tf 0.7 Rate feedback time constant, sec. (> 0.)
spdmlt 0.0 If = 1, multiply output (Efd) by generator speed (note f)
E1 2.8 Field voltage value, 1 (note e)
S(E1) 0.08 Saturation factor at E1 (note e)
E2 3.7 Field voltage value, 2 (note e)
S(E2) 0.33 Saturation factor at E2 (note e)
uelin 0 UEL input: if < 2, HV gate; if = 2, add to error signal
exclim 0 If not 0, apply lower limit of 0. to exciter output (note g)

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.

h) The “fix bad data” option will do the following:


a. Set Ta and Te, to a minimum of 4*delt.
b. If non-zero, set Tr, Tb and Tf1 to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 if Generator field current (Ifd), p.u.


2 vr Voltage regulator output (Vr), p.u.

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

Description IEEE (1992/2005) DC2A excitation system


model with optional speed multiplier

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esdc2a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Ka 300.0 Gain, p.u. (> 0.)
Ta 0.01 Time constant, sec. (> 0.)
Tb 0.0 Lag time constant, sec.
Tc 0.0 Lead time constant, sec.
Vrmax 4.95 Maximum controller output, p.u. (note d)
Vrmin -4.9 Minimum controller output, p.u.
Ke 1.0 Exciter field resistance line slope margin, p.u. (note c)
Te 1.33 Exciter time constant, sec. (> 0.)
Kf 0.1 Rate feedback gain
Tf 0.675 Rate feedback time constant, sec.
spdmlt 0.0 If = 1, multiply output (Efd) by generator speed (note f)
E1 3.05 Field voltage value, 1 (note e)
S(E1) 0.279 Saturation factor at E1 (note e)
E2 2.29 Field voltage value, 2 (note e)
S(E2) 0.117 Saturation factor at E2 (note e)
uelin 0 UEL input: if = 1, HV gate; if = 2, add to error signal
exclim 0 If not 0, apply lower limit of 0. to exciter output (note g)

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.

h) The “fix bad data” option will do the following:


a. Set Ta and Te, to a minimum of 4*delt.
b. If non-zero, set Tr, Tb and Tf to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 if Generator field current (Ifd), p.u.


2 vr Voltage regulator output (Vr), p.u.

Block Diagram:
Model Name: esdc3a

Description IEEE DC3A (1992/2005) excitation system


model with added speed multiplier

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esdc3a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Trh 20.0 Rheostat full range travel time, sec. (> 0.)
Kv 0.05 Voltage error threshold min/max control action, p.u. (> 0.)
Vrmax 5.0 Maximum control element output, p.u.
Vrmin 0.0 Minimum control element output, p.u.
Te 1.83 Exciter field time constant, sec. (> 0.)
Ke 1.0 Exciter field resistance line slope margin p.u. (note b)
E1 2.6 Field voltage value, 1 (note c)
S(E1) 0.1 Saturation factor at E1 (note c)
E2 3.45 Field voltage value, 2 (note c)
S(E2) 0.35 Saturation factor at E2 (note c)
spdmlt 0 If = 1, multiply output (Efd) by generator speed (note d)
exclim 0 If not 0, apply lower limit of 0. to exciter output (note e)

Notes:

a) Kv, Trh and Te must be greater than zero.

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.

f) The “fix bad data” option will do the following:


a. Set Te to a minimum of 4*delt.
b. Set Trh to a minimum of 0.0.
c. Set Kv to a minimum of 0.0.
d. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 if Generator field current, p.u.


2 vr Voltage regulator output (Vr), p.u.

Block Diagram:

Vref
[vref]
Vrmax
+ Kv
[vcomp] 1 Vc Verr VrmaxVrmin
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

Description IEEE (1992/2005) DC4B excitation system model


with optional speed multiplier

Prerequisites: Generator model ahead of this model in dynamic


models table

Inputs: Compounded generator terminal voltage, generator


field current, generator speed

Invocation: esdc4b [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Ka 1.0 Gain, p.u.
Ta 0.2 Time constant, sec. (> 0.)
Kp 80 Proportional gain
Ki 20 Integral gain
Kd 20 Derivative gain
Td 0.01 Derivative time constant, sec.
Vrmax 6.0 Maximum controller output, p.u. (note d)
Vrmin -2.7 Minimum controller output, p.u.
Ke 1.0 Exciter field resistance line slope margin, p.u. (note c)
Te 0.8 Exciter time constant, sec. (> 0.)
Kf 0.0 Rate feedback gain
Tf 0.0 Rate feedback time constant, sec.
E1 1.75 Field voltage value, 1 (note e)
S(E1) 0.08 Saturation factor at E1 (note e)
E2 2.33 Field voltage value, 2 (note e)
S(E2) 0.27 Saturation factor at E2 (note e)
Vemin 0. Exciter minimum output
OELin 0 OEL input: if < 2, LV gate; if = 2, subtract from error signal
UELin 0 UEL input: if < 2, HV gate; if = 2, add to error signal
spdmlt 0 If = 1, multiply output (Efd) by generator speed (note f)
Notes:

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.

g) The “fix bad data” option will do the following:


a. Set Ta and Te, to a minimum of 4*delt.
b. If non-zero, set Tr, Td and Tf to a minimum of 4*delt
c. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 if Generator field current (Ifd), p.u.


2 vr Voltage regulator output (Vr), p.u.
Block Diagram:

1 Ka 1
1  sTr 1  sTa sTe

sKf
1  sTf
Model Name: esst1a

Description IEEE (1992/2005) type ST1A excitation


system.

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esst1a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Voltage transducer time constant, sec.


Vimax 999. Maximum error, p.u.
Vimin -999. Minimum error, p.u.
Tc 1.0 Lead time constant, sec.
Tb 10.0 Lag time constant, sec.
Ka 190.0 Gain, p.u. (> 0.)
Ta .02 Time constant, sec.
Vrmax 7.8 Excitation voltage upper limit, p.u.
Vrmin -6.7 Excitation voltage lower limit, p.u.
Kc 0.05 Excitation system regulation factor, p.u.
Kf 0.0 Rate feedback gain
Tf 1.0 Rate feedback time constant, sec.
Tc1 0.0 Lead time constant, sec.
Tb1 0.0 Lag time constant, sec.
Vamax 999. Maximum control element output, p.u.
Vamin -999. Minimum control element output, p.u
Ilr 0.0 Maximum field current, p.u. (note b)
Klr 0.0 Gain on field current limit (note b)
UELin 0 = 2 – UEL input added to error signal
= 1 – UEL input HV gate with error signal
= -1 – UEL input HV gate with volt. reg. output
= 0 – ignore UEL signal
PSSin 0 = 0 – PSS input (Vs) added to error signal
 0 – PSS input (Vs) added to voltage regulator output

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.

d) The “fix bad data” option will do the following:


a. If non-zero, set Ta, Tr, Tb, Tb1 and Tf to a minimum of 4*delt
b. Set Ka to a minimum of 1.
c. If Vrmax < Vrmin, swap the values.
d. If Vamax < Vamin, swap the values.
e. If Vimax < Vimin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.


2 vr Voltage regulator output (Va), p.u.

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

Description IEEE (1992/2005) type ST2A excitation system


with added lead-lag block

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esst2a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Ka 120.0 Gain, p.u. (> 0.)
Ta 0.15 Time constant, sec. (> 0.)
Vrmax 1.0 Maximum controller output, p.u.
Vrmin -1.0 Minimum controller output, p.u.
Ke 1.0 Time constant feedback, p.u. (normally 1.)
Te 0.5 Transformer saturation control time constant, sec. (> 0.)
Kf 0.05 Rate feedback gain
Tf 0.7 Rate feedback time constant, sec.
Kp 4.88 Potential source gain, p.u.
Ki 8.0 Current source gain, p.u.
Kc 1.82 Rectifier loading factor, p.u.
Efdmax 99.0 Maximum field voltage
UELin 0 UEL input: if = 1, HV gate; if = 2, add to error signal
Tb 0.0 Time constant, sec. (note b)
Tc 0.0 Time constant, sec. (note b)

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.

d) The “fix bad data” option will do the following:


a. If Ta < 4*delt, then Ta = 4*delt
b. If Te < 4*delt, then Te = 4*delt.
c. If 0 < Tf < 4*delt, then Tf = 4*delt
d. If 0 < Tr < 4*delt, then Tr = 4*delt
e. If 0 < Tb < 4*delt, then Tb = 4*delt
f. If Ka < 1, then Ka = 1.
g. If Vrmax < Vrmin, swap the values

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.


2 vr Voltage regulator output (Vr), p.u.

Block Diagram:
Model Name: esst3a

Description IEEE (1992/2005) type ST3A excitation


system.

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, complex terminal
voltage and current

Invocation: esst3a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Voltage transducer time constant, sec.


Vimax 0.2 Maximum error, p.u.
Vimin -0.2 Minimum error, p.u.
Ka 200. AVR gain, p.u. (> 0.)
Ta 0.0 AVR time constant, sec.
Tb 6.67 AVR lag time constant, sec.
Tc 1.0 AVR lead time constant, sec.
Vrmax 10.0 Maximum AVR output, p.u.
Vrmin -10.0 Minimum AVR output, p.u.
Km 7.04 Inner loop forward gain, p.u. (> 0.)
Tm 1.0 Inner loop time constant, sec. (> 0.)
Vmmax 1.0 Maximum inner loop output, p.u.
Vmmin 0.0 Minimum inner loop output, p.u.
Kg 1.0 Inner loop feedback gain, p.u.
Kp 4.37 Potential source gain, p.u.
angp 20.0 Phase angle (p) of potential source, degrees
Ki 4.83 Current source gain, p.u.
Kc 1.1 Exciter regulation factor, p.u.
Xl 0.09 P-bar reactance, p.u.
Vbmax 8.63 Maximum excitation voltage, p.u.
Vgmax 6.53 Maximum inner loop feedback voltage, p.u.

Notes:

a) Ka, Km and Tm must be greater than zero. If Tr, Ta or Tb is zero, the


corresponding block are bypassed.

b) The “fix bad data” option will do the following:


a. Set Tm to a minimum of 4*delt * (1. + Kg * Km).
b. If non-zero, set Tr, Ta and Tb to a minimum of 4*delt
c. Set Ka and Km to a minimum of 1.
d. If Vrmax < Vrmin, swap the values
e. If Vimax < Vimin, swap the values
f. If Vmmax < Vmmin, swap the values

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.


2 vr Voltage regulator output, p.u.

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

Description IEEE (2005) type ST4B excitation system

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esst4b [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Voltage transducer time constant, sec


Kpr 10.75 AVR proportional Gain, pu
Kir 10.75 AVR Integral Gain, pu
Ta 0.02 AVR time constant, sec
Vrmax 1.0 Maximum AVR output, pu
Vrmin -0.87 Minimum AVR output, pu
Kpm 1.0 Prop. gain of inner loop regulator, pu
Kim 0.0 Integral gain of inner loop regulator, pu
Vmmax 99. Maximum inner loop regulator output, pu
Vmmin -99. Minimum inner loop regulator output, pu
Kg 0.0 Inner loop feedback gain, pu
Kp 9.3 Potential source gain, pu. (see Note d)
Angp 0.0 Phase angle (p) of potential source, degree
Ki 0.0 Current source gain, pu
Kc 0.113 Exciter regulation factor, pu
Xl 0.124 P-bar leakage reactance, pu
Vbmax 11.63 Maximum excitation voltage
Vgmax 999. Maximum inner loop feedback gain, p.u.

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.

c) Setting Ta or Tr to zero will bypass the corresponding block. If Ta is zero, a one


time step delay is included for this block.

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).

e) The “fix bad data” option will do the following:


a. If non-zero, set Tr and Ta to a minimum of 4*delt
b. If Vrmax < Vrmin, swap the values
c. If Vmmax < Vmmin, swap the values

Output Channels:

Record
Level Name Description

1 ifd Generator field current, pu


2 vr Voltage regulator output, pu
2 verr Error signal, Verr, p.u.

Block Diagram:

Vgmax

Kg

Vuel Vref Voel


[vuel] [vref] [voel]
Vrmax Vmmax
+ 
+
1 Vc Verr Kir Vr Efd
 Kpr + 1
 Kim LV
 •
1 + sTr Kpm +
[vcomp]  s 1 + sTa + s Vm
Gate
[efd]
S0
+ S1 S2 S3
Vrmin Vmmin Vbmax Vb
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: esst5b

Description IEEE (2005) type ST5B excitation system

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esst5b [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Kr 200 Regulator gain, p.u. (> 0.)
T1 0.004 Firing circuit time constant, sec.
Kc 0.004 Rectifier regulation factor, p.u.
Vrmax 5.0 Maximum regulator output, p.u.
Vrmin -4.0 Minimum regulator output, p.u.
Tc1 0.8 Regulator lead time constant, sec.
Tb1 6.0 Regulator lag time constant, sec.
Tc2 0.08 Regulator lead time constant, sec.
Tb2 0.01 Regulator lag time constant, sec.
Toc1 0.1 OEL lead time constant, sec.
Tob1 2.0 OEL lag time constant, sec.
Toc2 0.08 OEL lead time constant, sec.
Tob2 0.08 OEL lag time constant, sec.
Tuc1 2.0 UEL lead time constant, sec.
Tub1 10.0 UEL lag time constant, sec.
Tuc2 0.1 UEL lead time constant, sec.
Tub2 0.05 UEL lag time constant, sec.

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.

d) The “fix bad data” option will do the following:


a. If non-zero, set Tr, Tb1, Tb2, Tob1, Tob2, Tub1, and Tub2 to a minimum of
4*delt
b. If Kr is zero, set it to a minimum of 1.
c. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current (LadIfd), p.u.


1 Vr Voltage regulator output, p.u.

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

Description IEEE (2005) type ST6B excitation system

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esst6b [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.012 Filter time constant, sec.


Kpa 18. Regulator proportional gain, p.u. (> 0.)
Kia 45. Regulator integral gain, sec-1(> 0.)
Vamax 4.81 PI maximum output, p.u.
Vamin -3.85 PI minimum output, p.u.
Kff 1.0 Feedforward gain, p.u.
Km 1.0 Main gain, p.u.
Kg 1.0 Feedback gain p.u.
Tg 0.02 Feedback time constant, sec.
Vrmax 4.81 Maximum regulator output, p.u.
Vrmin -3.85 Minimum regulator output, p.u.
Vmult 1.0 If non-zero, multiply regulator output by terminal voltage
OELin 0.0 OEL input selector: 1 – before UEL, 2 – after UEL, 0 – no
OEL input
Ilr 4.164 Field current limiter setpoint, p.u.
Kcl 1.0577 Field current limiter conversion factor
Klr 17.33 Field current limiter gain, p.u.
Ts 0.0 Rectifier firing time constant, sec. (not in IEEE model)

Notes:

a) For modeling static systems such as Siemens THYRIPOL or ECS2100.

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.

d) The “fix bad data” option will do the following:


a. If non-zero, set Tr and Tg to a minimum of 4*delt
b. Kpa and Kia are set to a minimum of 1.
c. If Vrmax < Vrmin, swap the values.
d. If Vamax < Vamin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current (LadIfd) , p.u.


1 vr Voltage regulator output, p.u.

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

Description IEEE (2005) type ST7B excitation system

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: esst7b [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Kpa 40. Regulator proportional gain, p.u. (> 0.)
Kia 1. Feedback gain, p.u. (> 0.)
Tia 3.0 Feedback time constant, sec.
Tb 1.0 Lead-lag denominator time constant, sec.
Tc 1.0 Lead-lag numerator time constant, sec.
Tf 1.0 Input lead-lag denominator time constant, sec.
Tg 1.0 Input lead-lag numerator time constant, sec.
Kl 1.0 Low-value gate feedback gain, p.u.
Kh 1.0 High-value gate feedback gain, p.u.
Vrmax 5.0 Maximum field voltage output, p.u.
Vrmin -4.5 Minimum field voltage output, p.u.
Vmax 1.1 Maximum voltage reference signal, p.u.
Vmin 0.9 Minimum voltage reference signal, p.u.
UELin 0.0 UEL input selector: 1 – add to Vref, 2 – input HV gate,
3 – output HV gate, 0 – no UEL input
OELin 0.0 OEL input selector: 1 – add to Vref, 2 – input LV gate,
2 – output LV gate, 0 – no OEL input
Ts 0.0 Rectifier firing time constant, sec. (not in IEEE model)

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.

c) If Ts is zero, its block is replaced by a one time step delay.

d) The “fix bad data” option will do the following:


a. If non-zero, set Tr, Ts, Tf, Tb, and Tia to a minimum of 4*delt
b. Kpa is set to a minimum of 1.
c. If Vrmax < Vrmin, swap the values.
d. If Vmax < Vmin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current (LadIfd) , p.u.


1 Vr Voltage regulator output, p.u.

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

Description Generic energy storage device

Prerequisites: regc_a model ahead of this model in dynamic


models table

Inputs: Frequency, power, terminal voltage, regulated


voltage

Invocation: estor2 [<n>] {<name> <kv>} <id> [<n2>] {<name2>


<kv>} :

Parameters:

EPCL Default
Variable Data Description

Tf 0.15 Time constant, sec.


fdbd1 0.0 Deadband lower limit, p.u.
fdbd2 0.0 Deadband upper limit, p.u.
Tw 10.0 Washout time constant, p.u.
Tld 0.0 Lead time constant, sec.
Tlg 0.0 Lag time constant, sec.
K 1.0 Gain, p.u.
Pmax 1.0 Power limit, p.u.
Imax 1.0 Current limit, p.u.
T1 0.0 Lead time constant, sec.
T2 0.0 Lead time constant, sec.
T3 0.0 Lag time constant, sec.
T4 0.0 Lag time constant, sec.
Vmax 0.20 Upper limit, p.u.
Vmin -0.2 Lower limit, p.u.
Kv 10.0 Gain, p.u.
D 0.0 Droop, p.u.
eff_chr 0.0 Charging efficiency
eff_dis 0.0 Discharging efficiency
Emax 0.0 Maximum energy, MWs
Einit 0.0 Initial stored energy, MWs
Tsw 999.0 Time at which switch SW is closed, sec.
Notes:

a) If Tw is zero, its block is bypassed.


b) If Tlg is zero, its block is bypassed.
c) If T3 is zero, its block is bypassed.
d) If T4 is zero, its block is bypassed.
e) If n2, name2, kv2 are specified, then Vbus is the voltage at this bus; otherwise Vbus
is the terminal voltage (Vterm).
f) Po is computed during the model initialization and is equal to Vterm*Ir.
g) If E >= Emax, integrator s6 is frozen.
h) If E = 0, integrator s7 is frozen.
i) The computation of energy (E) is provided as an approximate means for computing
the energy demand in the course of a simulation. E is not used by the model.
j) The input psig into the power summing junction, can be accessed via the epcl
variable genbc[].psig.
k) The input vsig into the voltage summing junction, can be accessed via the epcl
variable genbc[].vsig.
l) The “fix bad data” option will do the following:
a. If Tf is non-zero, but less than 4*delt, then Tf is set to 4*delt.
b. If Tw is non-zero, but less than 4*delt, then Tw is set to 4*delt.
c. If Tlg is non-zero, but less than 4*delt, then Tlg is set to 4*delt.
d. If T3 is non-zero, but less than 4*delt, then T3 is set to 4*delt.
e. If T4 is non-zero, but less than 4*delt, then T4 is set to 4*delt.

Output Channels:

Record
Level Name Description

1 Ir Current command, p.u.


1 Ii Current command, p.u.
2 Pfin Power signal, p.u.
2 Psum Power signal, p.u.
2 Pout Power order, p.u.
2 Verr Voltage error, p.u.
3 E Energy MWs
Block Diagram:
psig
Po
fdbd1 fdbd2 + +
freq 1 sTw 1 + s Tld Pfin Psum
_ K
1 + sTf 1 + sTw 1 + s Tlg +
+
s0 s1 s2

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

Description Excitation (converter) control model for full converter


GE wind-turbine generators

Prerequisites: gewtg model ahead of this model in dynamic models


table

Inputs: Q order from separate WindCONTROL model, if used;


P order from wndtge model; Voltages at generator
terminals and at regulated bus

Invocation: ewtgfc [<n>] {<name> <kv>} <id> [<nr>] {<namer> <kvr>} ! !


[<mon_i>] {<namei> <kvi>}[<mon_j>] {<namej> <kvj> <ck> <sec>:

Parameters:

EPCL Default
Variable Data Description

varflg 1 1 = Qord from WindCONTROL emulation; -1 = Qord from vref


(i.e., separate model); 0 = constant
Kqi 0.1 Q control integral gain (see note f)
Kvi 120. V control integral gain
Vmax 1.1 Maximum V at regulated bus (pu)
Vmin 0.9 Minimum V at regulated bus (pu)
Qmax 0.40 Maximum Q command (pu)
Qmin -0.40 Minimum Q command (pu)
Tr 0.02 WindCONTROL voltage measurement lag, s.
Tc 0.15 Lag between WindCONTROL output and wind turbine, s.
Kpv 18.0 WindCONTROL regulator proportional gain (see note g)
Kiv 5.0 WindCONTROLregulator integral gain (see note g)
pfaflg 0 1 = regulate power factor angle; 0 = regulate Q
fn 1.0 fraction of WTGs in wind farm that are on-line
Tv 0.05 Time constant in proportional path of WindCONTROL emulator, s
Tpwr 0.05 Time constant in power measurement for PFA control (Tp), s
Iphl 1.24 Hard limit on real current, pu
Iqhl 1.25 Hard limit on reactive current, pu
Pqflag 0 0 = Q priority; 1 = P priority
Kdbr 10.0 Dynamic breaking resistor gain, pu
Ebst 0.2 Dynamic breaking resistor energy threshold, p.u. s
Xc 0.0 Compensating reactance for voltage control pu
Kqd 0.0 Gain on Q Droop function
Tlpqd 0.0 Time constant in Q Droop function
Xqd 0.0 Compensating reactance for Q Droop function
Vermn -0.1 Minimum limit on WindCONTROL regulated bus voltage error, pu
Vermx 0.1 Maximum limit on WindCONTROL regulated bus voltage error, pu
Vfrz 0.7 Voltage threshold to freeze integrators in WindCONTROL voltage
regulator, pu

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

1 porx P order from the turbine control (wndtge), pu


1 qord Q order from the WindCONTROL emulator or from a
separate model, pu
2 qcmd Q command after limits, pu
2 vref Local voltage reference, p.u.
2 vrfq WindCONTROL emulator reference voltage, pu
2 vreg WindCONTROL emulator regulated voltage, pu
2 qwv WindCONTROL emulator PI control output, pu
2 iqmx Maximum limit applied to the reactive current order, pu
2 iqmn Minimum limit applied to the reactive current order, pu
2 ipmx Maximum limit applied to the real current order, pu
2 iqxv Voltage dependent reactive current limit (Iqmxv), pu
2 Edbr Energy absorbed by the braking resistor, pu s
2 Eerr Energy error (Edbr-Ebst), pu s
2 Pdbr Dynamic breaking resistor power, pu
2 Pdlt Power order minus electrical power (Porx-Pelec), pu
2 vqd Q Droop function output, pu

Block Diagram:

Vref WindCONTROL
Vreg Emulation

Option for user-written model


Qcmd
Qref

PFAref Power
Factor
Regulator

Reactive Power Control IQcmd


(to generator model)
Electrical
Qgen
Controller IPcmd
(to generator model)
Vterm

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

P,Q Priority Flag


Converter Current Limit

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

Figure 3. Full Converter WTG Electrical Control Model


P,Q Priority Flag
(pqflag)

0 1

Iqmn Iqmx Vt Iqmx Iqmn

Q Priority Iqmxv P Priority


1.6
qma
x
Vt
-1 1.0 -1
Iqmxv
Iqhl Minimum

Minimum Minimum

IPcmd
ImaxTD ImaxTD2 - IPcmd2

IQcmd
ImaxTD2 - IQcmd2
Iphl

Minimum Minimum

Ipmx Ipmx

Figure 4. Converter Current Limit Model

Q Input 1 Vqd
Kqd
1+ sTlpqd
s8

Note: Q Input is a function of terminal bus,


monitored branch and Xqd selections.

Figure 5. Q Droop Function


 

Model Name: ewtgfx  

Please contact pslf‐support@ge.com for details on this GE proprietary model. 
Model Name: Ex21br

Description IEEE (2005) type AC7B excitation system with


OEL for EX2100BR

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: Ex21br [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Kpr 54.0 Regulator proportional gain, p.u. (> 0. if Kir = 0.)


Kir 54.0 Regulator integral gain, p.u.
Kdr 0.0 Regulator derivative gain, p.u.
Tdr 1.0 Derivative gain washout time constant, sec.
Vrmax 11.47 Maximum regulator output, p.u.
Vrmin 0.0 Minimum regulator output, p.u.
Kpa 3.37 Amplifier proportional gain. (> 0. if Kia = 0.)
Kia 1.42 Amplifier integral gain, p.u.
Vamax 1.0 Maximum amplifier output, p.u.
Vamin -1.0 Minimum amplifier output, p.u.
Kp 44.28 Exciter field voltage source gain, p.u.
Kl 10.0 Exciter field voltage lower limit parameter, p.u.
Te 2.38 Exciter time constant, sec. (> 0.)
Vfemax 99.0 Exciter field current limit parameter, p.u. Efd (note e)
Kd 1.098 Exciter internal reactance, p.u.
Ke 1.0 Exciter field resistance constant, p.u.
Te 2.38 Exciter time constant, sec. (> 0.)
Kc 0.46 Rectifier regulation factor, p.u.
Kf1 0.0 Field voltage feedback gain, p.u.
Kf2 1.0 Exciter field current feedback gain, p.u.
Kf3 0.0 Rate feedback gain, p.u.
Tf 1.0 Rate feedback time constant, sec. (> 0.)
E1 5.84 Field voltage value 1, p.u. (note d)
S(E1) 0.208 Saturation factor at E1 (note d)
E2 7.8 Field voltage value 2, p.u. (note d)
S(E2) 1.0 Saturation factor at E2 (note d)
Kagfl 0.337 Scale Factor for Exciter Field Current Air Gap to Full Load
Tifdlg 1.387 Generator Field Current Lag Time Constant
Kvfe 0.535 Gain for Generator Field Current to Exciter Field Current
Tifdt 1.0 OEL Inverse Integrator Time Constant (sec)
Ifdtmx 18.76 OEL Inverse Time Integrator Positive Limit
Kifdt 0.00426 OEL Inverse Time Leakage Gain
Ifdtrp 9.38 OEL Inverse Time Trip Active Level
Ifdlim 6.56 OEL Inverse Time Limit Active Level
Ifdrf1 1.25 OEL Reference 1
Ifdrf2 1.00 OEL Reference 2
Vfef1 2.60 Exciter OEL Reference 1
Ifdpu 1.02 OEL Inverse Time Integrator Pickup Level
Tifdlv 1.00 OEL SLD Timer Setpoint
Ifddol 1.10 OEL SLD Dropout Level
Ifdpul 1.40 OEL SLD Pickup Level
Vemin 0.0 Minimum exciter ouput voltage, p.u. Efd
UELin 1 UEL signal input port
PSSin 1 PSS signal input port

Notes:

a) For modeling alternator-rectifier excitation system with either stationary or rotating


rectifiers with PID voltage regulator.

b) Te, Tdr and Tf must be non-zero. Kpa and Kpr must not be zero if their
corresponding integral gains are zero.

c) To disable the rate feedback, set Kf3 = 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. 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”.

h) If Kp is set to zero, the term KpVt (input to multiplier) defaults to one.


Output Channels:

Record
Level Name Description

1 ifd Generator field current (LadIfd) , p.u.


2 Ve Exciter output, p.u.
3 Vfe Exciter Field Current, p.u.
4 Voel OEL output, pu
Block Diagram:
Model Name: exac1

Description IEEE type AC1 excitation system with added


speed multiplier and with VR limits modified to
agree with IEEE type AC1A.

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exac1 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Tb 1.0 Lead-lag denominator time constant, sec.
Tc 1.0 Lead-lag numerator time constant, sec.
Ka 200.0 Voltage regulator gain (> 0.)
Ta 0.1 Voltage regulator time constant, sec. (> 0.)
Vamax 7.5 Maximum control element output, p.u. (note d)
Vamin -7.5 Minimum control element output, p.u.
Te 1.0 Exciter time constant, sec. (> 0.)
Kf 0.03 Rate feedback gain, p.u.
Tf 1.0 Rate feedback time constant, sec (> 0.)
Kc 0.5 Rectifier regulation factor, p.u.
Kd 0.3 Exciter internal reactance, p.u.
Ke 1.0 Exciter field resistance constant, p.u. (note c)
E1 3.0 Field voltage value, 1 (note e)
S(E1) 0.03 Saturation factor at E1 (note e)
E2 4.0 Field voltage value, 2 (note e)
S(E2) 0.1 Saturation factor at E2 (note e)
Vrmax 7.5 Voltage regulator maximum output, p.u.
Vrmin -7.5 Voltage regulator minimum output, p.u.

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.

f) The “fix bad data” option will do the following:


a. Set Ta, Te, and Tf to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vamax < Vamin, swap the values.
e. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.

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

Description IEEE type AC1 excitation system with


modified rate feedback source and with added
speed multiplier.

Prerequisites: Generator Model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exac1a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Tb 0.0 Lag time constant, sec.
Tc 0.0 Lead time constant, sec.
Ka 200.0 Voltage regulator gain (>0.)
Ta 0.01 Time constant, sec. (> 0.)
Vrmax 14.0 Maximum control element output, p.u. (note e)
Vrmin -14.0 Minimum control element output, p.u.
Te 0.8 Exciter time constant, sec (> 0.)
Kf 0.03 Rate feedback gain, p.u.
Tf 1.0 Rate feedback time constant, sec. (>0.)
Kc 0.2 Exciter regulation factor, p.u.
Kd 0.38 Exciter internal reactance, p.u.
Ke 1.0 Exciter field resistance constant, p.u. (note d)
E1 3.0 Field voltage value, 1 (note f)
S(E1) 0.03 Saturation factor at E1 (note f)
E2 4.0 Field voltage value, 2 (note f)
S(E2) 0.1 Saturation factor at E2 (note f)

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.

g) The “fix bad data” option will do the following:


a. Set Ta, Te, and Tf to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.

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

Description Modified IEEE type AC1 excitation system

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exac1m [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Transducer time constant, sec.


Ta 0.0 Lead-lag numerator time constant, sec.
Tb 0.0 Lead-lag denominator time constant, sec.
Tc 0.0 Lead-lag numerator time constant, sec.
Td 0.0 Lead-lag denominator time constant, sec.
K1 0.0 Gain, p.u.
Te 0.0 Exciter time constant, sec. (>0)
Kf 0.0 Rate feedback gain, p.u.
Tf 0.0 Rate feedback time constant, sec. (>0)
Kc 0.0 Rectifier regulation factor, p.u.
Kd 0.0 Exciter internal reactance, p.u.
Ke 0.0 Exciter field resistance constant, p.u.
E1 0.0 Field voltage value, 1
Se1 0.0 Saturation factor at E1
E2 0.0 Field voltage value, 2
Ee2 0.0 Saturation factor at E2
Vrmax 0.0 Voltage regulator maximum output, p.u.
Vrmin 0.0 Voltage regulator minimum output, p.u.
T1 0.0 Time constant, p.u.
K2 0.0 Gain, p.u.

Notes:

a) To disable the rate feedback, set Kf = 0.


b) Saturation parameters are given by the IEEE saturation factor definition using the
open circuit magnetization of the exciter. E2 must > E1.

c) Iref is set by the model.

d) The “fix bad data” option will do the following:


a. If Te < 4*delt, then Te = 4*delt
b. If Tf < 4*delt, then Tf = 4*delt
c. If 0 < Tr < 4*delt, then Tr = 4*delt
d. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.


Block Diagram:

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

Description IEEE type AC2 excitation system with added


speed multiplier

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exac2 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Tb 0.0 Time constant, sec.
Tc 0.0 Time constant, sec.
Ka 300.0 Voltage regulator gain (> 0.)
Ta 0.01 Time constant, sec. (> 0.)
Vamax 8.0 Maximum control element output, p.u.
Vamin -8.0 Minimum control element output, p.u.
Kb 20.0 Exciter field current controller gain, p.u.
Vrmax 105.0 Maximum exciter control signal, p.u.
Vrmin -85.0 Minimum exciter control signal, p.u.
Te 0.3 Exciter time constant, sec. (> 0.)
Kl 10.0 Exciter field current limiter gain, p.u.
Kh 1.0 Exciter field current feedback gain, p.u.
Kf 0.03 Rate feedback gain, p.u.
Tf 1.2 Rate feedback time constant, sec. (>0.)
Kc 0.3 Rectifier regulation factor, p.u.
Kd 0.4 Exciter internal reactance, p.u.
Ke 1.0 Exciter field resistance constant, p.u.
Vlr 4.4 Maximum exciter field current, p.u.
E1 3.3 Field voltage value, 1 (note e)
S(E1) 0.01 Saturation factor at E1 (note c)
E2 4.4 Field voltage value, 2 (note c)
S(E2) 0.08 Saturation factor at E2 (note c)
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) 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.

e) The “fix bad data” option will do the following:


a. Set Ta, Te, and Tf to a minimum of 4*delt.
b. If Kh is non-zero, set Te to a minimum of Ke * Kh * Kb * 4*delt.
c. If non-zero, set Tr and Tb to a minimum of 4*delt
d. Set Ka and Kb to a minimum of 1.
e. Set Kl to a minimum of 0.1.
f. If Vrmax < Vrmin, swap the values.
g. If Vamax < Vamin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.

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

Description IEEE type AC3 excitation system with added


speed multiplier

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exac3 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Tb 0.0 Time constant, sec.
Tc 0.0 Time constant, sec.
Ka 70.0 Voltage regulator gain (> 0.)
Ta 0.013 Time constant, sec. (> 0.)
Vamax 1.0 Maximum control element output, pu
Vamin -0.95 Minimum control element output, pu
Te 3.2 Exciter time constant, sec. (>0.)
Klv 0.185 Minimum field voltage limiter gain,pu
Kr 6.77 Field voltage feedback gain, pu (> 0.)
Kf 0.143 Low level rate feedback gain, pu
Tf 1.0 Rate feedback time constant, sec. (> 0.)
Kn 0.05 High level rate feedback gain, pu
Efdn 1.63 Rate feedback gain break level, pu
Kc 0.148 Rectifier regulation factor, pu
Kd 0.95 Exciter internal reactance, pu
Ke 1.0 Exciter field resistance constant, pu
Vlv 0.47 Minimum excitation limit, pu
E1 4.5 Field voltage value, 1 (note c)
S(E1) 0.09 Saturation factor at E1 (note c)
E2 6.0 Field voltage value, 2 (note c)
S(E2) 0.88 Saturation factor at E2 (note c)
Ifmx 999. Optional upper limit on exciter (Te) integrator (note d)

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.

e) The “fix bad data” option will do the following:


a. Set Ta, Te, and Tf to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. Set Ka and Kr to a minimum of 1.
d. If Vamax < Vamin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.

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

Description IEEE type AC3A excitation system with added


speed multiplier; exciter limits calculated
differently

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exac3a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Tb 1.0 Time constant, sec.
Tc 1.0 Time constant, sec.
Ka 70.0 Voltage regulator gain (> 0.)
Ta 0.013 Time constant, sec. (> 0.)
Vamax 1.0 Maximum control element output, p.u.
Vamin -0.95 Minimum control element output, p.u.
Te 3.2 Exciter time constant, sec. (> 0.)
Klv 0.0 Not used
Kr 6.7 Field voltage feedback gain, p.u. (> 0.)
Kf 0.143 Low level rate feedback gain, p.u.
Tf 1.0 Rate feedback time constant, sec. (> 0.)
Kn 0.05 High level rate feedback gain, p.u.
Efdn 1.63 Rate feedback gain break level, p.u.
Kc 0.148 Rectifier regulation factor, p.u.
Kd 0.95 Exciter internal reactance, p.u.
Ke 1.0 Exciter field resistance constant, p.u.
Vlv 0.47 Minimum excitation limit, p.u.
E1 4.5 Field voltage value, 1 (note d)
S(E1) 0.11 Saturation factor at E1 (note d)
E2 5.96 Field voltage value, E2 (note d)
S(E2) 1.06 Saturation factor at E2 (note d)
Kl1 0.6 Field current limit parameter (note a)
Kfa 0.1 Field current limit parameter (note a)
Notes:

a) Exac3a is a variation of the exac3 model with an approximate representation of the


operation of a maximum field current limit. This approximation, which is
implemented by the parameters Kl1 and Kfa, recognizes that the maximum drive
voltage available to the field of the rotating exciter is reduced at low terminal voltage
of the main generator. It has the effect of placing a limit on the maximum field
voltage when the terminal voltage is low. The calculation of these limits, which is
shown in the block diagram below, is different from that of the IEEE AC3A model.
If Kl1 is omitted from the input data, it is set to 0.59. If Kfa is omitted, it is set equal
to Kf.

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.

e) The “fix bad data” option will do the following:


a. Set Ta, Te, and Tf to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. Set Ka and Kr to a minimum of 1.
d. If Vamax < Vamin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.

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)

Vfemax = ( Kl1Etx + Vs + Vref - Etx - Vf )


Kfa Kl1
Vfe
Se . In
Vemax = (Vfemax - Kd lfd) / (Se + Ke) +

Vemin = Vlv / Fex



+

+
Ke . Kc Ifd / Ve
+

Vf
Kd . LadIfd

Ve
Kn
s
Kf
1+ sTf Ve
Efdn
S4
Model Name: exac4

Description IEEE (1968/1980) type AC4 excitation system

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exac4 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Vimax 999.0 Maximum error, p.u.
Vimin -999.0 Minimum error, p.u.
Tc 1.0 Lead time constant, sec.
Tb 10.0 Lag time constant, sec.
Ka 100.0 Gain, p.u. (> 0.)
Ta 0.1 Time constant, sec. (> 0.)
Vrmax 5.0 Maximum controller output, p.u.
Vrmin 0.0 Minimum controller output, p.u.
Kc 0.0 Excitation system regulation, p.u.

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.

a) Ka and Ta must be non-zero. If Tr or Tb are zero, the respective blocks are


bypassed.

b) The “fix bad data” option will do the following:


a. Set Ta to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.
e. If Vimax < Vimin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.

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

Description IEEE (1992) type AC6A excitation system with


added speed multiplier

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exac6a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.02 Filter time constant, sec.


Ka 536 Gain, p.u. (> 0.)
Ta 0.086 Time constant, sec.
Tk 9.0 Lag time constant, sec.
Tb 0.18 Time constant, sec.
Tc 3.0 Lead time constant, sec.
Vamax 75.0 Maximum controller element output, p.u.
Vamin -75.0 Minimum controller element output, p.u.
Vrmax 44.0 Maximum exciter control signal, p.u.
Vrmin -36.0 Minimum exciter control signal, p.u.
Te 1.6 Exciter time constant, sec. (> 0.)
Kh 92.0 Exciter field current limiter gain, p.u.
Tj 0.02 Field current limiter time constant, sec.
Th 0.08 Field current limiter time constant, sec. (> 0.)
Vfelim 19.0 Exciter field current limit reference, p.u.
Vhmax 75.0 Maximum field current limiter signal, p.u.
Kc 0.173 Rectifier regulation factor, p.u.
Kd 1.91 Exciter internal reactance, p.u.
Ke 1.0 Exciter field resistance constant, p.u. (note c)
E1 5.55 Field voltage value, 1 (note d)
S(E1) 0.044 Saturation factor at E1 (note d)
E2 7.4 Field voltage value, 2 (note d)
S(E2) 0.214 Saturation factor at E2 (note d)

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.

c) If Ke = 0., it is set during initialization to make the output of Vr = 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.

e) The “fix bad data” option will do the following:


a. Set Ta, Te, and Th to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.
e. If Vamax < Vamin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.

Block Diagram:

Vs Speed
[speed]
[vsig] Vamax Vt Vrmax

[vcomp] + Ka (1 + sTk) 1 + sTc Va Vr Ve Efd


1 Vc 1
 
1 + sTr  1 + sTa 1 + sTb +  +

sTe
+   Fex
[efd]
S0 S1 S2
S3

Vref Vamin Vt Vrmin F(In)


0
[vref]
Vhmax Se
Vil In

1 + sTj +
Vh
Kh    Ke Kc Ifd / Ve
1 + sTh + + +
 +
S4
Vfe
0 Vfelim
Ifd
Kd
[ladifd]
Model Name: exac8b

Description IEEE (2005) type AC8B with added speed


multiplier and differences in several limits.

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exac8b [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.02 Voltage transducer time constant, sec.


Kvp 4.0 Voltage Regulator Proportional Gain (> 0. if Kvi = 0.)
Kvi 4.0 Voltage Regulator Integral Gain
Kvd 20.0 Voltage Regulator Derivative Gain
Tvd 0.05 Voltage Regulator Derivative Time Constant, sec.
Vimax 0.1 Voltage Regulator Input Limit, p.u.
Ta 0.02 Voltage Regulator time constant, sec.
Vrmax 10.0 Maximum controller output, p.u. (note e)
Vrmin -10.0 Minimum controller output, p.u. (note e)
Ke 1.0 Exciter field proportional constant
Te 0.2 Exciter field time constant, sec. (> 0.)
Kc 0.1 Rectifier regulation factor, p.u.
Kd 1.0 Exciter regulation factor, p.u.
E1 5.0 Field voltage value 1, p.u. (note c)
S(E1) 0.001 Saturation factor at E1 (note c)
E2 7.0 Field voltage value 2, p.u. (note c)
S(E2) 0.01 Saturation factor at E2 (note c)
limflg 0.0 Limit flag (note e)

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.

b) Te must be non-zero. If Tr or Ta are zero, the respective blocks are bypassed. If


Tvd is zero, the output of the block will be zero. Kvp must not be zero if Kvi 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 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.

f) The “fix bad data” option will do the following:


a. Set Te to a minimum of 4*delt.
b. If non-zero, set Ta, Tr and Tvd to a minimum of 4*delt
c. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.


1 vr Voltage regulator output p.u.
1 vfe Exciter field voltage p.u.
1 ife Exciter field current p.u.

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

Description Transformer fed static excitation system

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exbbc [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tf 0.0 Filter time constant, sec.


T1 6.0 Controller time constant, sec. (> 0.)
T2 1.0 Controller time constant, sec. (> 0.)
T3 0.05 Lead/lag time constant, sec.
T4 0.01 Lead/lag time constant, sec.
K 300.0 Steady state gain (> 0.)
Vrmin -5.0 Minimum control element output, p.u.
Vrmax 5.0 Maximum control element output, p.u.
Efmin -5.0 Minimum open circuit exciter voltage, p.u.
Efmax 5.0 Maximum open circuit exciter voltage, p.u.
Xe 0.05 Effective excitation transformer reactance, p.u.
sisig 0.0 Supplementary signal routing switch

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.

b) K, T1, T2 must be non-zero. If Tf or T4 is zero, the corresponding block is bypassed.

c) Xe models the regulation of the transformer/rectifier unit and must be zero or positive.

a) The “fix bad data” option will do the following:


a. Set T1 and T2 to a minimum of 4*delt.
b. If non-zero, set Tf and T4 to a minimum of 4*delt
c. Set K to a minimum of 1.
d. If Vrmax < Vrmin, swap the values
e. If efmax < efmin, swap the values

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

Description IEEE (1980) DC1 excitation system model with


added speed multiplier

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exdc1 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Ka 40.0 Gain, p.u.
Ta 0.1 Time constant, sec. (> 0.)
Tb 0.0 Lag time constant, sec.
Tc 0.0 Lead time constant, sec.
Vrmax 1.0 Maximum controller output, p.u. (note d)
Vrmin -1.0 Minimum controller output, p.u.
Ke 0.1 Exciter field resistance line slope margin, p.u. (note c)
Te 0.5 Exciter time constant, sec. (> 0.)
Kf 0.05 Rate feedback gain
Tf1 0.7 Rate feedback time constant, sec. (> 0.)
Tf2 0.0 Not used
E1 2.8 Field voltage value, 1 (note e)
S(E1) 0.08 Saturation factor at E1 (note e)
E2 3.7 Field voltage value, 2 (note e)
S(E2) 0.33 Saturation factor at E2 (note e)

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.

f) The “fix bad data” option will do the following:


a. Set Ta, Te, and Tf1 to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 if Generator field current, p.u.

Block Diagram:

Vref Vrmax Speed


Vsig
+
+ Vc
1 1  sTc Ka 1
1  sTr
 1  sTa
  X
Vcomp - 1  sTb + sTe Efd
- -
S0 S1 S2 S3

Vrmin Se + Ke

sKf
1  sTf
S4
Model Name: exdc2

Description IEEE (1968) type 2 excitation system model


with added speed multiplier, added lead-lag,
and voltage-dependent limits.

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exdc2 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.01 Filter time constant, sec.


Ka 420.0 Gain, p.u.
Ta 0.03 Time constant, sec. (> 0.)
Tb 1.0 Lag time constant, sec.
Tc 1.0 Lead time constant, sec.
Vrmax 10.0 Maximum controller output, p.u. (note d)
Vrmin -10.0 Minimum controller output, p.u.
Ke 1.0 Exciter field resistance line slope margin, p.u. (note c)
Te 0.3 Exciter time constant, sec. (> 0.)
Kf 0.1 Rate feedback gain
Tf1 0.8 Rate feedback time constant, sec. (> 0.)
Tf2 0.3 Feedback time constant, sec.
E1 3.4 Field voltage value, 1 (note e)
Se(E1) 1.07 Saturation factor at E1 (note e)
E2 4.6 Field voltage value, 2 (note e)
Se(E2 1.2 Saturation factor at E2 (note e)

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.

f) The “fix bad data” option will do the following:


a. Set Ta, Te, and Tf1 to a minimum of 4*delt.
b. If non-zero, set Tr, Tb and Tf2 to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 if Generator field current, p.u.

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

Description IEEE (1980) type DC2 excitation system model


with added speed multiplier

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exdc2a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.06 Filter time constant, sec.


Ka 40.0 Gain, p.u.
Ta 0.1 Time constant, sec. (> 0.)
Tb 0.0 Lag time constant, sec.
Tc 0.0 Lead time constant, sec.
Vrmax 1.0 Maximum controller output, p.u. (note d)
Vrmin -1.0 Minimum controller output, p.u.
Ke 0.0 Exciter field resistance line slope margin, p.u. (note c)
Te 0.5 Exciter time constant, sec. (> 0.)
Kf 0.03 Rate feedback gain
Tf 0.7 Rate feedback time constant, sec. (> 0.)
Tf2 0.0 Not used
E1 2.6 Field voltage value, 1 (note e)
S(E1) 0.1 Saturation factor at E1 (note e)
E2 3.5 Field voltage value, 2 (note e)
S(E2) 0.3 Saturation factor at E2 (note e)

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.

f) The “fix bad data” option will do the following:


a. Set Ta, Te, and Tf to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.

Output Channels:

Record Name
Level Description

1 if Generator field current, p.u.

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

Description IEEE (1968) type 4, DC3 (1980), and DC3A


(1992, 2005) excitation system model with
added speed multiplier

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exdc4 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Kr 0.0 Verr deadband (note a)


Trh 20.0 Rheostat full range travel time, sec. (> 0.)
Kv 0.05 Voltage error threshold min/max control action, p.u. (> 0.)
Vrmax 5.0 Maximum control element output, p.u.
Vrmin 0.0 Minimum control element output, p.u.
Te 1.83 Exciter field time constant, sec. (> 0.)
Ke 1.0 Exciter field resistance line slope margin p.u. (note c)
E1 2.6 Field voltage value, 1 (note d)
S(E1) 0.1 Saturation factor at E1 (note d)
E2 3.45 Field voltage value, 2 (note d)
S(E2) 0.35 Saturation factor at E2 (note d)

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.

b) Kv, Trh and Te must be greater than zero.

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.

e) The “fix bad data” option will do the following:


a. Set Kr to a minimum of 0.00.
b. Set Te to a minimum of 4*delt.
c. Set Trh to a minimum of 0.1.
d. Set Kv to a minimum of 0.05.
e. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 if Generator field current, p.u.


1 vr Voltage regulator output, p.u.
Block Diagram:

Vrmax

Verr 1
1
kr sTrh
-1
S0
V ref Vrmin
[vref]
Vrmax
Vc + Kv
[vcomp] Verr VrmaxVrmin >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

Description Static PI transformer fed excitation system

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exeli [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tfv 0.01 Voltage transducer time constant, sec.


Tfi 0.0 Current transducer time constant, sec.
Tnu 2.0 Controller reset time constant, sec. (> 0.)
Vpu 34.5 Voltage controller proportional gain (> 0.)
Vpi 12.45 Current controller gain (> 0.)
Vpnf 2.0 Controller follow up gain
Dpnf 0.0 Controller follow up dead band, p.u.
efmin -5.0 Minimum open circuit excitation voltage, p.u.
efmax 5.0 Maximum open circuit excitation voltage, p.u.
Xe 0.06 Excitation transformer effective reactance, p.u.
Tsw 3.0 Stabilizer parameters (> 0.)
Ks1 0.0 Stabilizer Gain 1
Ks2 0.0 Stabilizer Gain 2
Ts1 1.0 Stabilizer Phase Lag Time Constant (> 0.)
Ts2 1.0 Stabilizer Filter Time Constant (> 0.)
Smax 0.1 Stabilizer Limit Output

Notes:

a) This model represents an all-static excitation system. A PI voltage controller


establishes a desired field current set point for a proportional current controller. The
integrator of the PI controller has a follow-up input to match its signal to the present
field current. A power system stabilizer with power input is included in the model.
Xe represents the regulation of the transformer/rectifier unit and must be zero or
positive
b) Tnu, Vpi, Vpu, Tsw, Ts1, Ts2 must be non-zero. If Tfv or Tfi, the corresponding
blocks are bypassed.

c) The “fix bad data” option will do the following:


a. Set Tnu, Tsw, Ts1, and Ts2 to a minimum of 4*delt.
b. If non-zero, set Tfv and Tfi to a minimum of 4*delt
c. Set Vpi and Vpu to a minimum of 1.
d. Set Dpnf to a minimum of 0.
e. Set efmax to a minimum of 3.
f. If efmax < efmin, swap the values.

Output Channels:

Record
Level Name Description

1 if Generator field current, p.u.

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

Description VATECH (ELIN) excitation system model with


PSS.

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator power

Invocation: exeli2 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0059 Voltage transducer time constant, sec.


K1 18.00 Voltage regulator input gain.
Kiec 1.0017 Voltage regulator input limit
Kd1 0.0 Voltage controller derivative gain
Tb1 0.006 Voltage controller derivative washout time constant, sec.
PID1max 16.0 PID limit, p.u.
Ti1 1.0 Voltage controller proportional time constant, sec.
Iefmax2 9999. Voltage controller upper limit, p.u.
K2 0.887 Field current regulator gain, p.u.
Ketb 7.777 Converter gain, p.u.
Upmax 5.165 Field current upper limit, p.u.
Upmin -4.49 Field current lower limit, p.u.
Te 0.0021 Converter time constant, sec.
Xp 0.3948 Gain, p.u.
Te2 0.1 Exciter field time constant, sec.
Ke2 2.255 Exciter field proportional gain, p.u.
E1 1.0 Field voltage value, p.u.
SE1 0.10 Saturation factor at E1
E2 1.2 Field voltage value, p.u.
SE2 0.332 Saturation factor at E2
Tr4 0.006 Time constant, sec.
K3 0.5 Gain in exciter field current minimum limiter, p.u.
Ti3 0.1 Time const. in exciter field current minimum limiter, sec.
K4 0.5 Gain in exciter field current maximum limiter, p.u.
Ti4 0.1 Time const. in exciter field current maximum limiter, sec.
Iefmax 3.8 Input into exciter field current maximum limiter, p.u.
Iefmin 0.1332 Input into exciter field current minimum limiter, p.u.
Efdbas 2.19 Nominal full load Efd, p.u.
Ts1 0.02 Stabilizer lag time constant, sec.
Ts2 0.02 Stabilizer lag time constant, sec.
Ts3 4.22 Stabilizer rate time constant, sec.
Ts4 4.22 Stabilizer rate time constant, sec.
Ts5 4.22 Stabilizer rate time constant, sec.
Ts6 2.15 Stabilizer lag time constant, sec.
Ks1 0.50 Stabilizer gain, p.u.
Ks2 6.77 Stabilizer gain, p.u.
p_PSS 0.0 Used to select PSS function F(s)
a_PSS 0.4 Coefficient in PSS function F(s)
psslim 0.02 Stabilizer output limit, p.u.

Notes:

a) A voltage controller establishes a desired field current set point for a proportional
current controller.

b) The “fix bad data” option will do the following:

If 0 < Tr < 4*delt then Tr = 4*delt


If 0 < Ts1 < 4*delt then Ts1 = 4*delt
If 0 < Ts2 < 4*delt then Ts2 = 4*delt
If 0 <= Ts3 < 4*delt then Ts3 = 4*delt
If 0 <= Ts4 < 4*delt then Ts4 = 4*delt
If 0 <= Ts5 < 4*delt then Ts5 = 4*delt
If 0 < Ts6 < 4*delt then Ts6 = 4*delt
If 0 < Tb1 < 4*delt then Tb1 = 4*delt
If 0 < Te < 4*delt then Te = 4*delt
If 0 < Te2 < 4*delt then Te2 = 4*delt
If 0 < Tr4 < 4*delt then Tr4 = 4*delt
If upmax < upmin, swap the values
Output Channels:

Record
Level Name Description

1 if Generator field current, p.u.


2 Efdd Thyristor converter output, p.u.
2 ief Current, p.u.
3 iefr Current reference (iefref), p.u.
3 ifmx Exciter field current max. limiter output (ief max ref), p.u.
3 ifmn Exciter field current min. limiter output (ief min ref), p.u.
9 vref Voltage reference, p.u.
9 psso PSS output, p.u.

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

Description IVO excitation system

Prerequisites: Generator model ahead of this model in dynamics


model table

Inputs: Compounded generator terminal voltage

Invocation: exivo [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Voltage transducer time constant, sec.


K1 1.0 Gain, p.u.
A1 0.5 Lead coefficient, p.u.
A2 0.5 Lag coefficient, p.u.
T1 0.05 Lead time constant, sec.
T2 0.1 Lag time constant, sec.
Vmax1 5.0 Lead-lag max. limit, p.u.
Vmin1 -5.0 Lead-lag min. limit , p.u.
K3 3.0 Gain, p.u.
A3 0.5 Lead coefficient, p.u.
A4 0.5 Lag coefficient, p.u.
T3 0.1 Lead time constant, sec.
T4 0.1 Lag time constant, sec.
Vmax3 5.0 Lead-lag max. limit, p.u.
Vmin3 -5.0 Lead-lag min. limit , p.u.
K5 1.0 Gain, p.u.
A5 0.5 Lead coefficient, p.u.
A6 0.5 Lag coefficient, p.u.
T5 0.1 Lead time constant, sec.
T6 0.1 Lag time constant, sec.
Vmax5 5.0 Lead-lag max. limit, p.u.
Vmin5 -2.0 Lead-lag min. limit, p.u.
Notes:

a) If Tr or T2 or T4 or T6 is zero, the respective blocks are bypassed.

b) A1, A2, A3, A4, A5, and A6 must be non-zero.

c) The “fix bad data” option will do the following:


a. If non-zero, set Tr, T2, T4, and T6 to a minimum of 4*delt
b. If Vmax1 < Vmin1, swap the values.
c. If Vmax3 < Vmin3, swap the values.
d. If Vmax5 < Vmin5, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.

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

Description OEL model for GE EX2100 Voltage Regulators


excluding brushless exciters

Prerequisites: Generator and excitation system models ahead


of this model in dynamic models table

Inputs: Generator field current

Invocation: Exoel [<n>] {<name> <kv>} <id> :

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

1 VOEL OEL Output Signal


Block Diagram:
Model Name: expic1

Description: Proportional/Integral Regulator


Excitation System Model

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator terminal
voltage and current

Invocation: expic1 [<nf>] {<namef> <kvf>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.02 Voltage transducer time constant, sec.


Ka 3.15 PI controller gain
Ta1 1.0 PI controller time constant, sec.
Vr1 1.0 PI maximum limit, p.u
Vr2 -0.87 PI minimum limit, p.u.
Ta2 0.01 Voltage regulator time constant, sec.
Ta3 0.0 Lead time constant, sec.
Ta4 0.0 Lag time constant, sec.
Vrmax 1.0 Voltage regulator maximum limit p.u.
Vrmin -0.87 Voltage regulator minimum limit p.u.
Kf 0.0 Rate feedback gain
Tf1 0.0 Rate feedback time constant, sec
Tf2 0.0 Rate feedback lag time constant, sec.
Efdmax 8.0 Exciter maximum limit, p.u.
Efdmin -0.87 Exciter minimum limit, p.u.
Ke 0.0 Exciter constant
Te 0.0 Exciter time constant, sec.
E1 0.0 Field voltage value 1, p.u. (note f)
Se1 0.0 Saturation factor at E1 (note f)
E2 0.0 Field voltage value 2, p.u (note f)
Se2 0.0 Saturation factor at E2 (note f)
Kp 6.5 Potential source gain, p.u. (> 0.)
Ki 0.0 Current source gain, p.u.
Kc 0.08 Exciter regulation factor, p.u.
Notes:

a) This model can be used to represent excitation systems with a proportional-integral (PI)
voltage regulator controller.

b) Kp must not be zero.

c) If Te is zero, then Efd = Vfe.

d) If Tf1 and Tf2 are zero, then Vf = 0.0

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.

g) The “fix bad data” option will do the following:


a. If non-zero, set Tr, Ta2, Ta4, Tf1, Tf2, and Te to a minimum of 4*delt
b. Kp is set to a minimum of 1.
c. If Vr1 < Vr2, swap the values.
d. If Vrmax < Vrmin, swap the values.
e. If Efdmax < Efdmin, swap the values

Output Channels:

Record
Level Name Description

1 if Generator field current (LadIfd) p.u.


2 vfe Exciter field voltage p.u.
2 ife Exciter field current p.u.
2 vr Voltage regulator output p.u.

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

Vt Ve Fex Ifd LadIfd


Ve = Kp Vt + jKi It  Fex = f(IN) I N = Kc
It Ve

Fex = f(IN) :

if ( IN <= 0.0 ) then


Fex = 1.0
if ( IN <= 0.433 ) then
Fex = 1. - 0.577 * IN
if ( IN > 0.433 and IN < 0.75 ) then
Fex = sqrt (0.75 - IN * IN)
if ( IN >= 0.75 and IN < 1.0 ) then
Fex = 1.732*( 1.0 - IN )
if ( IN >= 1.0) then
Fex = 0.0
Model Name: exst1

Description IEEE (1980) type ST1 excitation system with


optional added blocks to approximate IEEE
(1992, 2005) ST1A model.

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exst1 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Vimax 0.1 Maximum error, p.u.
Vimin -.1 Minimum error, p.u.
Tc 1.0 Lead time constant, sec.
Tb 10.0 Lag time constant, sec.
Ka 200.0 Gain, p.u. (> 0.)
Ta .02 Time constant, sec.
Vrmax 5.0 Maximum controller output, p.u.
Vrmin -5.0 Minimum controller output, p.u.
Kc .05 Excitation system regulation factor, p.u.
Kf 0.0 Rate feedback gain
Tf 1.0 Rate feedback time constant, sec.
Tc1 1.0 Lead time constant, sec. (note b)
Tb1 1.0 Lag time constant, sec. (note b)
Vamax 5.0 Maximum control element output, p.u. (note b)
Vamin -5.0 Minimum control element output, p.u (note b)
Xe .04 Excitation xfmr effective reactance, p.u. (note b)
Ilr 2.8 Maximum field current, p.u. (note b)
Klr 5.0 Gain on field current limit (note b)

Notes:

a) This model can be used to represent a controlled-rectifier excitation system whose


a.c. power source is a simple power transformer fed from the generator terminals.
The voltage regulation of the excitation transformer and rectifier are approximated by
the parameters Xe and Kc.

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.

e) The “fix bad data” option will do the following:


a. If non-zero, set Tr, Tb, Tb1 and Tf to a minimum of delt/15
b. Set Ta to a minimum of delt/15
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.
e. If Vamax < Vamin, swap the values.
f. If Vimax < Vimin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.

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

Description IEEE (1980) type ST2 excitation system with


added lead-lag block

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exst2 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Ka 120.0 Gain, p.u. (> 0.)
Ta 0.15 Time constant, sec. (> 0.)
Vrmax 1.2 Maximum controller output, p.u.
Vrmin -1.2 Minimum controller output, p.u.
Ke 1.0 Exciter field resistance time constant, p.u.
Te 0.5 Exciter time constant, sec. (> 0.)
Kf 0.05 Rate feedback gain
Tf 0.7 Rate feedback time constant, sec.
Kp 1.19 Potential source gain, p.u.
Ki 0.0 Current source gain, p.u.
Kc 0.0 Exciter regulation factor, p.u.
Efdmax 99.0 Maximum field voltage
Tb 0.0 Time constant, sec. (note c)
Tc 0.0 Time constant, sec. (note c)

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.

e) The “fix bad data” option will do the following:


a. If Ta < 4*delt, then Ta = 4*delt
b. If Te < 4*delt, then Te = 4*delt.
c. If 0 < Tf < 4*delt, then Tf = 4*delt
d. If 0 < Tr < 4*delt, then Tr = 4*delt
e. If 0 < Tb < 4*delt, then Tb = 4*delt
f. If Ka < 1, then Ka = 1
g. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.


2 vr Voltage regulator output (Vr), p.u.

Block Diagram:

1 1  sTc Ka

1
 
1  sTr 1  sTb 1  sTa sTe

skf
1  sTf
Model Name: exst2a

Description IEEE (1992, 2005) type ST2A excitation


system with added lead-lag block

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exst2a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Ka 120.0 Gain, p.u. (> 0.)
Ta 0.15 Time constant, sec. (> 0.)
Vrmax 1.2 Maximum controller output, p.u.
Vrmin -1.2 Minimum controller output, p.u.
Ke 1.0 Exciter field resistance time constant, p.u.
Te 0.5 Exciter time constant, sec. (> 0.)
Kf 0.05 Rate feedback gain
Tf 0.7 Rate feedback time constant, sec.
Kp 1.19 Potential source gain, p.u.
Ki 0.0 Current source gain, p.u.
Kc 0.0 Exciter regulation factor, p.u.
Efdmax 99.0 Maximum field voltage
Tb 0.0 Time constant, sec. (note c)
Tc 0.0 Time constant, sec. (note c)

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) The “fix bad data” option will do the following:


a. Set Ta and Te to a minimum of 4*delt.
b. If non-zero, set Tr, Tf and Tb to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.

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

Description IEEE (1980) type ST3 excitation system with


added speed multiplier.

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exst3 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec


Vimax 0.2 Maximum error, pu
Vimin -0.2 Minimum error, pu
Kj 200.0 Gain, pu (> 0.)
Tc 1.0 Lead time constant, sec
Tb 10.0 Lag time constant, sec
Ka 7.24 Gain, pu (> 0.)
Ta 0.4 Time constant, sec (> 0.)
Vrmax 1.0 Maximum controller output, pu
Vrmin 0.0 Minimum controller output, pu
Kg 1.0 Excitation limiter gain, pu
Kp 5.1 Potential source gain, pu
Ki 0.0 Current source gain, pu
Efdmax 6.35 Maximum excitation output, pu
Kc 0.14 Exciter regulation factor, pu
Xl 0.0 P-bar leakage reactance, pu
Vgmax 6.25 Maximum excitation voltage
Angp 0.0 Phase angle of potential source, degrees

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.

d) The “fix bad data” option will do the following:


a. Set Ta to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. Set Ka and Kj to a minimum of 1.
d. If Vrmax < Vrmin, swap the values
e. If Vimax < Vimin, swap the values

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.

Block Diagram:

Vgmax

Speed
Kg

Vref Vimax Vrmax Efdmax


+
1 1  sTc - ka Efd
 kj  X X
Vcomp 1  sTr - 1  sTb + 1  sTa
+
S0 S2
S1
Vrmin
Vimin
Vsig

LadIfd
Vt Ve
KpVt  j(Ki  KpXl) It  X Fex Kc Ifd / Ve
It

jangp
Kp  Kpe
Model Name: exst3a

Description Modified IEEE (1980) type ST3 excitation


system. (Not IEEE (1992, 2005) ST3A)

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exst3a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Filter time constant, sec.


Vimax 0.2 Maximum error, p.u.
Vimin -0.2 Minimum error, p.u.
Kj 200.0 Gain, p.u. (> 0.)
Tc 1.0 Lead time constant, sec.
Tb 10.0 Lag time constant, sec.
Ka 7.24 Gain, p.u. (> 0.)
Ta 0.4 Time constant, sec. (> 0.)
Vrmax 1.0 Maximum controller output, p.u.
Vrmin 0.0 Minimum controller output, p.u.
Kg 1.0 Excitation limiter gain, p.u.
Kp 5.1 Potential source gain, p.u.
Ki 0.0 Current source gain, p.u.
Vbmax 6.35 Maximum excitation voltage, p.u.
Kc 0.14 Exciter regulation factor, p.u.
Xl 0.0 P-bar reactance, p.u.
Vgmax 6.25 Maximum excitation voltage
Angp 0.0 Phase angle of potential source, degrees

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.

c) The “fix bad data” option will do the following:


a. Set Ta to a minimum of 4*delt.
b. If non-zero, set Tr and Tb to a minimum of 4*delt
c. Set Ka and Kj to a minimum of 1.
d. If Vrmax < Vrmin, swap the values
e. If Vimax < Vimin, swap the values

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.

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

Description IEEE (2005) type ST4B excitation system


(without OEL & UEL inputs & Vgmax)

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: exst4b [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.02 Filter time constant, sec


Kpr 3.15 Proportional Gain, pu
Kir 3.15 Integral Gain, pu
Ta 0.01 Time constant, sec
Vrmax 1.0 Maximum control element output, pu
Vrmin -0.87 Minimum control element output, pu
Kpm 1.0 Prop. Gain of field voltage regulator, pu
Kim 0.0 Integral Gain of field voltage regulator, pu
Vmmax 1.0 Maximum field voltage regulator output, pu
Vmmin -0.87 Minimum field voltage regulator output, pu
Kg 0.00 Excitation limiter gain, pu
Kp 6.5 Potential source gain, pu
Angp 0.0 Phase angle of potential source, degree
Ki 0.0 Current source gain, pu
Kc 0.08 Exciter regulation factor, pu
Xl 0.0 P-bar leakage reactance, pu
Vbmax 8.0 Maximum excitation voltage

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.

c) Setting Ta or Tr to zero will bypass the corresponding block

d) The “fix bad data” option will do the following:


a. If non-zero, set Tr and Ta to a minimum of 4*delt
b. If Vrmax < Vrmin, swap the values
c. If Vmmax < Vmmin, swap the values

Output Channels:

Record
Level Name Description

1 ifd Generator field current, pu

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

Description UEL model for GE EX2100 Voltage Regulators

Prerequisites: Generator and excitation system models ahead


of this model in dynamic models table

Inputs: Generator terminal voltage, Power and Reactive


Power

Invocation: exuel [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

TUV 5.0 UEL Voltage Filter Time Constant (sec.)


VUBIAS 0.95 UEL Voltage Bias (pu)
TUP 5.0 UEL Real Power Filter Time Constant (sec.)
TSP 5.0 SCL Voltage Filter Time Constant (sec.)
VSBIAS 0.95 SCL Voltage Bias (pu)
KUL 0.8 UEL Proportional Gain
KUI 0.5 UEL Integral Gain
VULMAX 0.25 UEL Maximum Limit (pu)
VULMIN 0.0 UEL Minimum Limit (pu)
VULMAR 0.1 UEL Margin Adjust (pu on machine MVA Base)
PS0 0.95 SCL Power Point #1 (pu on machine MVA Base)
PS1 1.0 SCL Power Point #2 (pu on machine MVA Base)
QS0 -0.212 SCL Reactive Power Point #1(pu on machine MVA Base)
QS1 0.0 SCL Reactive Power Point #2 (pu on machine MVA Base)
P0 0.0 UEL Power Point #1 (pu on machine MVA Base)
P1 0.127 UEL Power Point #2 (pu on machine MVA Base)
P2 0.253 UEL Power Point #3(pu on machine MVA Base)
P3 0.380 UEL Power Point #4 (pu on machine MVA Base)
P4 0.507 UEL Power Point #5 (pu on machine MVA Base)
P5 0.633 UEL Power Point #6 (pu on machine MVA Base)
P6 0.697 UEL Power Point #7 (pu on machine MVA Base)
P7 0.760 UEL Power Point #8 (pu on machine MVA Base)
P8 0.823 UEL Power Point #9 (pu on machine MVA Base)
P9 0.887 UEL Power Point #10 (pu on machine MVA Base)
P10 1.000 UEL Power Point #11 (pu on machine MVA Base)
Q0 -0.496 UEL Reactive Power Point #1 (pu on machine MVA Base)
Q1 -0.532 UEL Reactive Power Point #2 (pu on machine MVA Base)
Q2 -0.556 UEL Reactive Power Point #3 (pu on machine MVA Base)
Q3 -0.564 UEL Reactive Power Point #4 (pu on machine MVA Base)
Q4 -0.552 UEL Reactive Power Point #5 (pu on machine MVA Base)
Q5 -0.517 UEL Reactive Power Point #6 (pu on machine MVA Base)
Q6 -0.49 UEL Reactive Power Point #7 (pu on machine MVA Base)
Q7 -0.456 UEL Reactive Power Point #8 (pu on machine MVA Base)
Q8 -0.414 UEL Reactive Power Point #9 (pu on machine MVA Base)
Q9 -0.365 UEL Reactive Power Point #10 (pu on machine MVA
Base)
Q10 -0.270 UEL Reactive Power Point #11 (pu on machine MVA
Base)
F1 2 UEL Terminal Voltage Exponent Applied to Real Power
F2 2 UEL Terminal Voltage Exponent Applied to Reactive
Power
F3 2 SCL Terminal Voltage Exponent Applied to Real Power
F4 2 SCL Terminal Voltage Exponent Applied to Reactive
Power

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

1 VUEL UEL Output Signal


Block Diagram:
Model Name: exwtg1

Description Rotor resistance control 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

Invocation: Exwtg1 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Ta 0.02 Time constant, sec. (> 0.)


Kdp 0.1 Power derivative gain
Tdp 1.0 Power derivative washout time constant, sec. (> 0.)
Kw -1.0 Speed regulator gain
Tw1 2.0 Speed regulator TGR num. time constant, sec.
Tw2 4.0 Speed regulator TGR den. time constant, sec.
Rmax 0.0977 Maximum external rotor resistance, p.u.
Rmin 0.0061 Minimum external rotor resistance, p.u.

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.

b) Ta and Tdp must be non-zero. Tw1 = Tw2 or Tw2 = 0. bypasses TGR.

c) The p.u. speed reference is stored in genbc[k].vref.

d) The “fix bad data” option will do the following:


a. Set Ta and Tdp to a minimum of 4*delt.
b. If non-zero, set Tw2 to a minimum of 4*delt

Output Channels:

Record
Level Name Description

1 Rext Gen. external rotor resistance, p.u.

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

Description Excitation (converter) control model for Double Fed


Asynchronous Generator (DFAG) GE wind-turbine
generators

Prerequisites: gewtg model ahead of this model in dynamic models


table

Inputs: Q order from separate WindCONTROL model, if used;


P order from wndtge model; Voltages at generator
terminals and at regulated bus

Invocation: exwtge [<n>] {<name> <kv>} <id> [<nr>] {<namer> <kvr>} ! !


[<mon_i>] {<namei> <kvi>}[<mon_j>] {<namej> <kvj> <ck> <sec>:

Parameters:

EPCL Default
Variable Data Description

varflg 1 1 = Qord from WindCONTROL emulation; -1 = Qord from vref (i.e.,


separate model); 0 = constant
Kqi 0.1 Q control integral gain (see note f)
Kvi 40. V control integral gain
Vmax 1.1 Maximum V at regulated bus (p.u.)
Vmin 0.9 Minimum V at regulated bus (p.u.)
Qmax 0.436 Maximum Q command (p.u.)
Qmin -0.436 Minimum Q command (p.u.)
XIqmax 1.45 Maximum Eq” (flux) command (p.u.)
XIqmin 0.50 Minimum Eq” (flux) command (p.u.)
Tr 0.02 WindCONTROL voltage measurement lag, sec.
Tc 0.15 Lag between WindCONTROL output and wind turbine, sec.
Kpv 18 WindCONTROL regulator proportional gain (see note g)
Kiv 5 WindCONTROLregulator integral gain (see note g)
Vl1 -9999. Open Loop Control: Low voltage limit, p.u.
Vh1 9999. Open Loop Control: High voltage limit, p.u.
Tl1 0 Open Loop Control: First low voltage time, sec.
Tl2 0 Open Loop Control: Second low voltage time, sec.
Th1 0 Open Loop Control: First high voltage time, sec.
Th2 0 Open Loop Control: Second high voltage time, sec.
Ql1 0 Open Loop Control: First low voltage Q command, p.u.
Ql2 0 Open Loop Control: Second low voltage Q command, p.u.
Ql3 0 Open Loop Control: Third low voltage Q command, p.u.
Qh1 0 Open Loop Control: First high voltage Q command, p.u.
Qh2 0 Open Loop Control: Second high voltage Q command, p.u.
Qh3 0 Open Loop Control: Third high voltage Q command, p.u.
pfaflg 0 1 = regulate power factor angle; 0 = regulate Q
fn 1.0 fraction of WTGs in wind farm that are on-line
Tv 0.05 Time constant in proportional path of WindCONTROL emulator, sec.
Tpwr 0.05 Time constant in power measurement for PFA control (Tp), sec.
Ipmax 1.1 Max. Ip command, p.u.
Xc 0.0 Compensating reactance for voltage control p.u.
Kqd 0.0 Gain on Q Droop function
Tlpqd 0.0 Time constant in Q Droop function
Xqd 0.0 Compensating reactance for Q Droop function
Vermn -0.1 Minimum limit on WindCONTROL regulated bus voltage error, pu.
Vermx 0.1 Maximum limit on WindCONTROL regulated bus voltage error, pu.
Vfrz 0.7 Voltage threshold to freeze integrators in WindCONTROL voltage
regulator, p.u.

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.

Open Loop Control Logic


Voltage Condition For time duration Open Loop Reactive
Power Command - qcmd
Vterm < Vl1 t < Tl1 Ql1
Tl1< t < Tl2 Ql2
t > Tl2 Ql3
Vterm > Vh1 t < Th1 Qh1
Th1< t < Th2 Qh2
t > Th2 Qh3

Output Channels:
Record
Level Name Description

1 porx P order from the turbine control (wndtge), p.u.


1 qord Q order from the WindCONTROL emulator or from a
separate model, p.u.
2 qcmd Q command after open loop control and limits, p.u.
2 vref Local voltage reference, p.u.
2 vrfq WindCONTROL emulator reference voltage, p.u.
2 vreg WindCONTROL emulator regulated voltage, p.u.
2 qwv WindCONTROL emulator PI control output, p.u.
2 vqd Q droop output, p.u.

Block Diagram:

Vrfq
WindCONTROL
Vreg
Emulator

From Qord Open Qcmd


separate Loop
WindCONTROL Control
model Logic Eq"cmd
Qref
PFAref
Power
Pelec Electrical To Generator
Factor
Control Model
Regulator
Reactive Power Control
Qgen IPcmd

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

Figure 2. Reactive Power Control Model

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

Note: Q Input is a function of terminal bus,


monitored branch and Xqd selections.

Figure 4. Q Droop Function


Model Name: fmeta

Description Bus frequency recorder. Places area, zone or all bus


frequencies in output channels

Prerequisites: Bus must exist

Inputs: Bus voltage angle or frequency

Invocation: fmeta [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

flag 0.0 Flag 0 = all, 1 = area, 2 = zone


num 0.0 Area or zone number
kvmin 0.0 Monitor buses with basekv greater than kvmin

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

1 fbus Bus frequency, Hz


1 fbul Bus frequency for load bus, Hz
1 fbug Bus frequency for generator bus, Hz

Block Diagram:
netw[i].f

+
1.0 o f

+ 2
Model Name: fmetb

Description System frequency recorder. Places area, zone or ba


frequencies in output channels

Prerequisites: Bus must exist

Inputs: Bus voltage angle or frequency

Invocation: fmetb [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

flag 0.0 Flag 0 = all, 1 = area, 2 = zone, 3 = ba


num 0.0 Area or zone or ba number

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

Description Bus frequency recorder. Places bus frequency in an


output channel

Prerequisites: Bus must exist

Inputs: Bus voltage angle or frequency

Invocation: fmetr [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tf 0.0 Transducer or filter time constant, sec.

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.

b) If Tf is less than 5*dypar.delt, the variable netw[i].f is used instead. netw[i].f is


automatically calculated for all buses using a time constant of dypar.tfreq, which has
a default value of 0.05 sec.

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

1 fbus Bus frequency, Hz


2 frel Bus frequency used by relay models, Hz.
Block Diagram:

netw[i].va_old 1.

+
+ 1 1 + o
volt[i].va fbus
to 1 + sTf 2
s0

netw[i].f
Model Name: focdt

Description Generator field over-current relay with definite


time characteristic

Prerequisites: The generator must be present in the working case,


and represented by a generator dynamic model

Inputs:

Invocation: focdt [<n>] {<name> <kv>} <id>:

Parameters:

EPCL Default
Variable Data Description

Pickup 2.0 Pickup current, p.u.


Tdelay 5.0 Definite time delay, sec.
Tcb 0.1 Circuit breaker time, sec.

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:

pickup 2.0 - 3.0 p.u.


tdelay 5.0 - 10.0 sec

a) Socdt is a similiar relay model of stator over-current protection.

Output Channels:

Record
Level Name Description
1 foc Generator field current, p.u.

Block Diagram:

Time
Sec

id

nf

Pickup Current
Model Name: g2wscc

Description Double derivative hydro governor and turbine.


(Represents WECC G2 governor plus turbine
model.)

Prerequisites: Generator model ahead of this model in the dynamic


models table

Inputs: Shaft speed, generator electrical power

Invocation: g2wscc [<n>] {<name> <kv>} <id> : #r [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

Pmax 1.0 Maximum gate opening, p.u. of mwcap


Pmin 0.0 Minimum gate opening, p.u. of mwcap
R 0.05 Steady state droop, p.u.
Td 0.0 Input filter time constant, sec.
Tf 0.1 Washout time constant, sec.
Tp 0.35 Gate servo time constant, sec.
Velop 0.09 Maximum gate opening velocity, p.u./sec.
Velcl -0.14 Maximum gate closing velocity, p.u./sec (< 0.)
K1 3.6 Single derivative gain, p.u.
K2 0.2 Double derivative gain, p.u.
Ki 1.0 Integral gain, p.u.
Kg 3.0 Gate servo gain, p.u.
Tturb 0.8 Turbine time constant, sec. (see note g)
Aturb -1.0 Turbine numerator multiplier (see note g)
Bturb 0.5 Turbine denominator multiplier (see note g)
Tt 0.02 Power feedback time constant, sec
db1 0.0 Intentional deadband width, Hz.
eps 0.0 Intentional db hysteresis, Hz.
db2 0.0 Unintentional deadband, MW
Gv1 0.0 Nonlinear gain point 1, p.u. gv
Pgv1 0.0 Nonlinear gain point 1, p.u. power
Gv2 0.0 Nonlinear gain point 2, p.u. gv
Pgv2 0.0 Nonlinear gain point 2, p.u. power
Gv3 0.0 Nonlinear gain point 3, p.u. gv
Pgv3 0.0 Nonlinear gain point 3, p.u. power
Gv4 0.0 Nonlinear gain point 4, p.u. gv
Pgv4 0.0 Nonlinear gain point 4, p.u. power
Gv5 0.0 Nonlinear gain point 5, p.u. gv
Pgv5 0.0 Nonlinear gain point 5, p.u. power
Gv6 0.0 Nonlinear gain point 6, p.u. gv
Pgv6 0.0 Nonlinear gain point 6, p.u. power

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.

c) If Tt is input as zero, feedback from CV instead of Pg is used.

d) The deadbands are implemented as described in section 3.11.2.

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.

b) The “fix bad data” option will do the following:


a. Set R to a minimum of 0.01.
b. If Pmax < Pmin, swap the values.
c. If Pmin and velop to a minimum of 0.
d. Set velcl to a maximum value of 0.
Output Channels:

Record
Level Name Description

1 gate Turbine gate position, (GV) p.u.


1 pm Turbine power, MW

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

Velop Pmax db2

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

Description Single shaft gas turbine

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Shaft speed

Invocation: gast [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

R 0.04 Permanent droop, p.u.


T1 0.5 Governor mechanism time constant, sec.
T2 0.5 Turbine power time constant, sec.
T3 3.0 Turbine exhaust temperature time constant, sec.
Lmax 1.0 Ambient temperature load limit
Kt 3.0 Temperature limiter gain
Vmax 1.0 Maximum turbine power, p.u. of mwcap
Vmin 0.0 Minimum turbine power, p.u. of mwcap
Dturb 0.0 Turbine damping coefficient, p.u. [NOT USED]
Fidle .18 Fuel flow at zero power output, p.u.
Rmax 1.0 Maximum fuel valve opening rate, p.u./sec.
Loadinc .05 Valve position change allowed at fast rate, p.u.
Tltr 10.0 Valve position averaging time constant, sec.
Ltrate 0.02 Maximum long term fuel valve opening rate, p.u./sec.
a 0.8 Turbine power time constant numerator scale factor
b 1.0 Turbine power time constant denominator scale factor
db1 0.0 Intentional deadband width, Hz.
eps 0.0 Intentional db hysteresis, Hz.
db2 0.0 Unintentional deadband, MW
Gv1 0.0 Nonlinear gain point 1, p.u. gv
Pgv1 0.0 Nonlinear gain point 1, p.u. power
Gv2 0.0 Nonlinear gain point 2, p.u. gv
Pgv2 0.0 Nonlinear gain point 2, p.u. power
Gv3 0.0 Nonlinear gain point 3, p.u. gv
Pgv3 0.0 Nonlinear gain point 3, p.u. power
GV4 0.0 Nonlinear gain point 4, p.u. gv
Pgv4 0.0 Nonlinear gain point 4, p.u. power
Gv5 0.0 Nonlinear gain point 5, p.u. gv
Pgv5 0.0 Nonlinear gain point 5, p.u. power
Gv6 0.0 Nonlinear gain point 6, p.u. gv
Pgv6 0.0 Nonlinear gain point 6, p.u. power
Ka 0.0 Governor gain
T4 0.0 Governor lead time constant, sec.
T5 0.0 Governor lag time constant, sec.

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.

g) The deadbands are implemented as described in section 3.11.2.

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.

i) If T5 is zero, the entire gain and lead-lag block is bypassed.


j) The “fix bad data” option will do the following:
a. Set R to a minimum of 0.01.
b. Set b to a minimum of 0.1.
c. If Vmax < Vmin, swap the values.
d. Set T1, T2, T3, T4, and Tltr to a minimum of 4 * delt.
e. If greater than zero, set T5 to a minimum of 4 * delt.

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

Ka(1  sT 4 ) 1 Pgv dbb


Low Value 1  asT2
Pref 1  sT5 Select sT1 1  bsT2 Gv Pmech
S4 Vmin S0 S1
Vmin Fldle
1
R
1
Kt
Fldle 1  sT3
Speed eps S2
dbo Lmax
Model Name: gegt1

Description General Electric Frame 6, 7, 9 Gas Turbine Model

Prerequisites: Generator model ahead of this model in the dynamic


models table

Inputs: Shaft speed, Turbine load reference

Invocation: gegt1 [<n>] {<name> <kv>} <id> : [mwcap=<ISO rating>]

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:

This model is a representation of a General Electric industrial (Frame 6, 7 or 9 turbine


with a GE Mark V or Mark VI turbine control computer.

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).

b) The speed/load reference setting of the control is specified by genbc[].pref. This


signal is interpreted as being either the governor speed/load reference and has a value
between 1.0 pu at no-load is typically between 1.03 and 1.05 at full-load.

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

Low Value Selector


1.0 1
x
fsra fsr 1 + sTf
sTa
Ka s4 wf
1 + sTacc
s11 fsrmin
aset Wfnl
1.0
fsrt
Kptemp

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

Guide Vane Opening

Cpr

Delta Speed from


Test Signal
Synthesis

+
True
Speed
+
Model Name: gencc

Description Generator represented by uniform inductance ratios


rotor modeling to match WSCC type F model; shaft
speed effects are neglected. Intended to model cross-
compound machines represented as one generator in
the load flow.

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables, Field Voltage, Turbine


Power

Invocation: gencc [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tpdo 7.0 D-axis transient rotor time constant


Tppdo 0.035 D-axis sub-transient rotor time constant
Tpqo 0.75 Q-axis transient rotor time constant
Tppqo 0.035 Q-axis sub-transient rotor time constant
H 3.0 Inertia constant, sec
D 0.0 Damping factor, p.u.
Ld 2.1 D-axis synchronous reactance
Lq 2.04 Q-axis synchronous reactance
Lpd 0.21 D-axis transient reactance
Lpq 0.4 Q-axis transient reactance
Lppd 0.18 D-axis sub-transient reactance
Lppq 0.18 Q-axis sub-transient reactance
Ll 0.12 Stator leakage reactance, pu
S1 0.05 Saturation factor at 1 p.u. flux
S12 0.4 Saturation factor at 1.2 p.u. flux
Ra 0.0 Stator resistance, p.u.
Rcomp 0.0 Compounding resistance for voltage control, p.u.
Xcomp -0.01 Compounding reactance for voltage control, p.u.
accel 0.5 Acceleration factor for network boundary iter.
Pf 0.5 Real power participation faction (0.01-1.)
Qf 0.5 Reactive power participation faction (0.01-1.)
Notes:

a) To represent a solid rotor machine:


 All rotor time constants must be non-zero
 Lpd, Lppd, Lpq, Lppq, Ll must be non-zero
 (Ra +j Lppd) overwrites the generator subtransient R, X from the load flow

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

c) To represent a salient pole machine without amortisseur circuits (keeping


compatibility with the WSCC program's method of handling of such machines)
 Set Tpdo to a non-zero value
 Set Tppdo = Tpqo = Tppqo = 0
 Set Lpd to the transient reactance
 Set Lppd = Lpd and Lpq = Lppq = Lq
 (Ra +j Lpd) 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.

e) It is not necessary for Lppq to be equal to Lppd.

f) D has the dimensions p.u. P/ p.u. speed.

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

1 ang Rotor angle, degrees


1 vt Terminal voltage, p.u.
2 efd Field voltage, p.u.
3 it Terminal current, p.u.
4 pg Electrical power, MW
5 spd Shaft speed, p.u.
6 qg Reactive power, MVAR

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

Description Synchronous machine represented by


"classical" modeling or Thevenin Voltage
Source to Play Back known voltage/frequency
signal

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables


Field Voltage
Turbine Power

Invocation: gencls [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

H 3.0 Inertia constant, sec.


D 0.0 Damping factor, p.u.
Ra 0.0 Stator resistance, p.u.
Lppd 0.2 Subtransient reactance, p.u.
rcomp(vbias) 0.0 Compensating resistance, p.u. (Voltage bias, p.u.)
xcomp (fbias) 0.0 Compensating reactance, p.u. (frequency bias, p.u.)
t0 ** Starting time for playback, sec.
file ** Name of playback file (< 12 characters)
tf0 ** Filtering time constant for playback channel 0
tf1 ** Filtering time constant for playback channel 1

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.

b1) D has the dimensions P(p.u.)/speed(p.u.)

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

maxsamples = maximum number of samples to be read from the file


time = time of sample, seconds
voltage = a0, magnitude of voltage at sample instant, per unit
frequency = a1, frequency of voltage at sample instant, per unit
a2,a3,a4 = Associated playback signals

Each sample must be described in a separate record. PSLF reads at most


(maxsamples) sample records from the file. The samples need not be equally
spaced in time. The samples must appear in the file in increasing time sequence.

Entries in the sample records may be separated by spaces or commas.

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:

y(t) = a * s(t) + (1-a)*y(t-h)

with a = h / tf when tf > h


a = 1. when tf <= h

where s(t) is the sample value, as interpolated


y(t) is the filtered signal value
tf is the filter time constant specified in the parameter list
h is the PSLF dynamic simulation time step

Output Channels:

Record
Level Name Description

1 ang Rotor angle, degrees


1 vt Terminal voltage, p.u.
2 efd Field voltage, p.u.
3 it Terminal current, p.u.
4 pg Electrical power, MW
5 spd Shaft speed, p.u.
6 qg Reactive power, MVAR
1* a0 Played back voltage
1* a1 Played back frequency
1* a2 Associated playback signal
1* a3 Associated playback signal
1* a4 Associated playback signal

* 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

Description "Two-cage" or "one-cage" induction generator

Prerequisites: Generator present in load flow working case

Inputs:

Invocation: genind [<n>] {<name> <kv>} <id> : [r] [mva=<value>]

Parameters:

EPCL Default
Variable Data Description

Ls 3.5 Synchronous reactance


Lp 0.19 Transient reactance
Ra 0.02 Stator resistance, p.u.
Tpo 1.83 Transient rotor time constant
H 0.9 Inertia constant, sec.
D 2.0 Damping factor, p.u.
Se1 0.01 Saturation factor at 1 p.u. flux
Se2 0.1 Saturation factor at 1.2 p.u. flux
Acc 0.5 Acceleration factor for initialization
Lpp 0.165 Sub-transient reactance, p.u.
Ll 0.12 Stator leakage reactance, p.u.
Tppo 0.02 Sub-transient rotor time constant, sec.
ndelt 10 Time step subdivision factor.
wdelt 0.8 Speed threshold for subdividing time step, p.u.

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.

b) This model simulates either a "one-cage" or a "two-cage" induction generator. A


“one-cage” model is used if Lpp is equal to Lp. Otherwise, it simulates a "two-cage"
induction generator. If Lpp or Tppo are 0., the model sets Lpp = Lp.
c) 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.

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.

g) The rotor transient time constant must be non-zero. If it simulates a "two-cage"


machine, the sub-transient time constant must also be non-zero.

h) Ls, Lp, Lpp, Ll must all be specified.

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.

m) In order to prevent network solution divergence, the model automatically uses a


smaller time step (dypar.delt / ndelt) whenever the per unit speed of the generator is
below the value, wdelt. If the default values do no produce satisfactory results, ndelt
and/or wdelt can be increased.
n) 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 generator
variables.

o) The “fix bad data” option will do the following:


a. Set Tpo to a minimum of 4*dypar.delt if wdelt is less than 1.0. If wdelt is
greater than 1.0, Tpo is limited to 4*dypar.delt/ndelt.
b. If Tppo not zero, limit it in the same way as Tpo,
c. Set Lp to a maximum of 0.4 * Ls.
d. Set Lpp to a maximum of Lp.
e. Set Ll to a maximum of 0.8 * Lpp.
f. Set wdelt to a minimum of 0.8.
g. Set ndelt to a minimum of 1.

Output Channels:

Record
Level Name Description

1 vt Terminal voltage, p.u.


1 pg Electrical power, MW
1 qg Reactive power, MVAR
2 It Terminal current, p.u.
2 spd Shaft speed, p.u.
2 pm Mechanical power, MW
2 tm Mechanical torque, p.u.
2 te Electrical torque, p.u.

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

Description Generator out-of-step tripping model

Prerequisites: None

Inputs: Angle of each generator

Invocation: genoostrip :

Parameters:

EPCL Default
Variable Data Description

delta_ang 180.0 Angle separation criterion (deg.)


trip 0.0 0 – monitor only – do not trip; non-zero – trip generator

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 event table also incudes:


“Pgen = nnnnnn MW”

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.)

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
Output Channels:

Record
Level Name Description

none

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
Model Name: genrou

Description Solid rotor generator represented by equal mutual


inductance rotor modeling

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables, Field Voltage, Turbine


Power

Invocation: genrou [<n>] {<name> <kv>} <id> : #<rl> {mva=<value>}

Parameters:

EPCL Default
Variable Data Description

Tpdo 7.0 D-axis transient rotor time constant


Tppdo 0.030 D-axis sub-transient rotor time constant
Tpqo 0.75 Q-axis transient rotor time constant
Tppqo 0.05 Q-axis sub-transient rotor time constant
H 3.0 Inertia constant, sec
D 0.0 Damping factor, pu
Ld 2.1 D-axis synchronous reactance
Lq 2.0 Q-axis synchronous reactance
Lpd 0.2 D-axis transient reactance
Lpq 0.5 Q-axis transient reactance
Lppd 0.18 D-axis sub-transient reactance
Ll 0.15 Stator leakage reactance, pu
S1 0.05 Saturation factor at 1 pu flux
S12 0.3 Saturation factor at 1.2 pu flux
Ra 0.0 Stator resistance, pu
Rcomp 0.0 Compounding resistance for voltage control, pu
Xcomp 0.0 Compounding reactance for voltage control, pu

Notes:

a) All rotor time constants must be non-zero.

b) All reactances must be specified. Lppq is taken to be equal to Lppd.

c) D has the dimensions P(p.u.) / speed (p.u.).

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.

Otherwise, the value in the load flow data (gens[kgen].mbase) is used.

Output Channels:

Record
Level Name Description

1 ang Rotor angle, degrees


1 vt Terminal voltage, p.u.
2 efd Field voltage, p.u.
3 it Terminal current, p.u.
4 pg Electrical power, MW
5 spd Shaft speed, p.u.
6 qg Reactive power, MVAR
Block Diagram:

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

X' d  X' ' d


X'd-Xl d-AXIS X''d
( X' d  Xl) * *2

id
 Xd-X'd 
Lad Ifd

"d
Se
" = sqrt("d2+"q2)
Xq  Xl
"q
Xd  Xl

 Xq-X'q 
iq

X' q  X' ' q


( X' q  Xl) * *2 X'q-Xl q-AXIS X''q

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

Description Salient pole generator represented by equal mutual


inductance rotor modeling

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables, Field Voltage, Turbine


Power

Invocation: gensal [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tpdo 7.0 D-axis transient rotor time constant


Tppdo 0.03 D-axis sub-transient rotor time constant
Tppqo 0.035 Q-axis sub-transient rotor time constant
H 3.0 Inertia constant, sec
D 0.0 Damping factor, pu
Ld 1.2 D-axis synchronous reactance
Lq 0.8 Q-axis synchronous reactance
Lpd 0.22 D-axis transient reactance
Lppd 0.20 D-axis sub-transient reactance
Ll 0.16 Stator leakage reactance, pu
S1 0.05 Saturation factor at 1 pu flux
S12 0.30 Saturation factor at 1.2 pu flux
Ra 0.0 Stator resistance, pu
Rcomp 0.0 Compounding resistance for voltage control, pu
Xcomp 0.0 Compounding reactance for voltage control, pu

Notes:

a) All rotor time constants must be non-zero.

b) All reactances must be specified. Lppq is taken to be equal to Lppd.

c) D has the dimensions P(p.u.) / speed(p.u.).

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

1 ang Rotor angle, degrees


1 vt Terminal voltage, pu
2 efd Field voltage, pu
3 it Terminal current, pu
4 pg Electrical power, MW
5 spd Shaft speed, pu
6 qg Reactive power, MVAR
Block Diagram:

L"d - Ll
L'd - Ll

Pfd Pkd P"d


1 1 L'd - L"d
Efd sT' do sT' ' do 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

Description Generator with stator d.c. current represented

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables, Field Voltage, Turbine


Power

Invocation: gensdo [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tpdo 7.0 D-axis transient rotor time constant


Tppdo 0.03 D-axis sub-transient rotor time constant
Tppqo 0.035 Q-axis sub-transient rotor time constant
H 3.0 Inertia constant, sec
D 0.0 Damping factor, pu
Ld 1.2 D-axis synchronous reactance
Lq 0.8 Q-axis synchronous reactance
Lpd 0.22 D-axis transient reactance
Lppd 0.20 D-axis sub-transient reactance
Ll 0.16 Stator leakage reactance, pu
S1 0.05 Saturation factor at 1 pu flux
S12 0.30 Saturation factor at 1.2 pu flux
Ra 0.0 Stator resistance, pu
Rcomp 0.0 Compounding resistance for voltage control, pu
Xcomp 0.0 Compounding reactance for voltage control, pu
Tdc 0.1 Stator DC time constant, sec

Notes:

a) All rotor time constants must be non-zero. Tdc may be zero.

b) All reactances must be specified. Lppq is taken to be equal to Lppd.

c) D has the dimensions P(p.u.) / speed(p.u.).

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

1 ang Rotor angle, degrees


1 vt Terminal voltage, pu
2 efd Field voltage, pu
3 it Terminal current, pu
4 pg Electrical power, MW
5 spd Shaft speed, pu
6 qg Reactive power, MVAR
Block Diagram:

L"d - Ll
L'd - Ll

Pfd Pkd P"d


1 1 L'd - L"d
Efd sT' do sT' ' do 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

Description Generator represented by uniform inductance ratios


rotor modeling to match WSCC type F model; shaft
speed effects are neglected

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables, Field Voltage, Turbine


Power

Invocation: gentpf [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tpdo 7.0 D-axis transient rotor time constant


Tppdo 0.035 D-axis sub-transient rotor time constant
Tpqo 0.75 Q-axis transient rotor time constant
Tppqo 0.035 Q-axis sub-transient rotor time constant
H 3.0 Inertia constant, sec
D 0.0 Damping factor, pu
Ld 2.1 D-axis synchronous reactance
Lq 2.04 Q-axis synchronous reactance
Lpd 0.21 D-axis transient reactance
Lpq 0.4 Q-axis transient reactance
Lppd 0.18 D-axis sub-transient reactance
Lppq 0.18 Q-axis sub-transient reactance
Ll 0.12 Stator leakage reactance, pu
S1 0.05 Saturation factor at 1 pu flux
S12 0.4 Saturation factor at 1.2 pu flux
Ra 0.0 Stator resistance, pu
Rcomp 0.0 Compounding resistance for voltage control, pu
Xcomp 0.0 Compounding reactance for voltage control, pu
accel 0.5 Acceleration factor for network boundary iter.

Notes:

a) To represent a solid rotor machine:


 All rotor time constants must be non-zero
 Lpd, Lppd, Lpq, Lppq, Ll must be non-zero
 (Ra +j Lppd) overwrites the generator subtransient R, X from the load flow

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

c) To represent a salient pole machine without amortisseur circuits (keeping


compatibility with the WSCC program's method of handling of such machines)
 Set Tpdo to a non-zero value
 Set Tppdo = Tpqo = Tppqo = 0
 Set Lpd to the transient reactance
 Set Lppd = Lpd and Lpq = Lppq = Lq
 (Ra +j Lpd) 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.

e) It is not necessary for Lppq to be equal to Lppd.

f) D has the dimensions p.u. P/ p.u. speed.

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

1 ang Rotor angle, degrees


1 vt Terminal voltage, p.u.
2 efd Field voltage, p.u.
3 it Terminal current, p.u.
4 pg Electrical power, MW
5 spd Shaft speed, p.u.
6 qg Reactive power, MVAR

Block Diagram:
Ld  L' d
Se
L ' d  L' ' d

" d
 
1 E’q 1 E”q
Se
Efd sT' do sT' ' do

Ld  L" d L’d - L”d


L' d  L' ' d id

Se  1.  fsat(ag)

Q  Axis similar except :

Lq
Se  1.  (ag)
Ld
Model Name: gentpj

Description Generator represented by uniform inductance ratios


rotor modeling to match WSCC type F model with
modified saturation model; shaft speed effects are
neglected

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables, Field Voltage, Turbine


Power

Invocation: gentpj [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tpdo 7.0 D-axis transient rotor time constant


Tppdo 0.035 D-axis sub-transient rotor time constant
Tpqo 0.75 Q-axis transient rotor time constant
Tppqo 0.035 Q-axis sub-transient rotor time constant
H 3.0 Inertia constant, sec
D 0.0 Damping factor, pu
Ld 2.1 D-axis synchronous reactance
Lq 2.04 Q-axis synchronous reactance
Lpd 0.21 D-axis transient reactance
Lpq 0.4 Q-axis transient reactance
Lppd 0.18 D-axis sub-transient reactance
Lppq 0.18 Q-axis sub-transient reactance
Ll 0.12 Stator leakage reactance, pu
S1 0.05 Saturation factor at 1 pu flux
S12 0.4 Saturation factor at 1.2 pu flux
Ra 0.0 Stator resistance, pu
Rcomp 0.0 Compounding resistance for voltage control, pu
Xcomp 0.0 Compounding reactance for voltage control, pu
accel 0.5 Acceleration factor for network boundary iter.
Kis 0.08 Current multiplier for saturation calculation

Notes:

a) To represent a solid rotor machine:


 All rotor time constants must be non-zero
 Lpd, Lppd, Lpq, Lppq, Ll must be non-zero
 (Ra +j Lppd) overwrites the generator subtransient R, X from the load flow

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

c) To represent a salient pole machine without amortisseur circuits (keeping


compatibility with the WSCC program's method of handling of such machines)
 Set Tpdo to a non-zero value
 Set Tppdo = Tpqo = Tppqo = 0
 Set Lpd to the transient reactance
 Set Lppd = Lpd and Lpq = Lppq = Lq
 (Ra +j Lpd) 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.

e) It is not necessary for Lppq to be equal to Lppd.

f) D has the dimensions p.u. P/ p.u. speed.

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

1 ang Rotor angle, degrees


1 vt Terminal voltage, p.u.
2 efd Field voltage, p.u.
3 it Terminal current, p.u.
4 pg Electrical power, MW
5 spd Shaft speed, p.u.
6 qg Reactive power, MVAR

Block Diagram:
Ld L' d
Se
L' d L' ' d

"d
1 E’q 1 E”q
Se
Efd sT ' do sT ' ' do

Ld L" d L’d - L”d


L' d L' ' d id

Se 1. fsat ( ag Kis It )

Q Axis similar except:

Lq
Se 1. fsat ( ag Kis It )
Ld
Model Name: genwri

Description Wound-rotor induction generator model (with variable


external rotor resistance)

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables, External rotor resistance,


Turbine Power

Invocation: genwri [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Value Description

ls 6.45 Synchronous reactance


lp 0.28 Transient reactance
ll 0.1167 Stator leakage reactance
ra 0.0045 Armature (stator) resistance
Tpo 4.21 Open-circuit transient time constant
H 3.03 Inertia constant, sec.
D 0 not used
s1 0.03 Saturation factor at 1 p.u. flux
s12 0.29 Saturation factor at 1.2 p.u. flux
spdrot 1.04 Initial electrical rotor speed, p.u. of system frequency
acc 0. Accelerating factor for initialization iterations

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

1 spd Generator speed, p.u.


1 slip Rotor slip, Hz.
1 vt Terminal voltage, p.u.
1 pg Real power output, MW
2 qnet Net reactive power output, MVAr
2 qgen Generator reactive power output, MVAr
2 qcap Capacitor reactive power output, MW
3 r2ex External rotor resistance, p.u.
3 pm Mechanical power, MW

Block Diagram:

Rotor mechanical model:

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

fq   ( fq  S q  (L  L' ) i q ) / To'  slip  fd

 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

Description Generator/converter model for GE wind turbines


- Doubly Fed Asynchronous Generator (DFAG)
and Full Converter (FC) Models

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables, generator active


current and flux commands from exwtge model
(DFAG) or active and reactive current
commands from ewtgfc model (FC).

Invocation: gewtg [<n>] {<name> <kv>} <id>} : #<rl> {mva=<value>}

Parameters:

EPCL Default
Variable Data Description

lpp 0.8 Generator effective reactance (X’’), p.u.


dVtrp1 -0.25 Delta voltage trip level, p.u.
dVtrp2 -0.50 Delta voltage trip level, p.u.
dVtrp3 -0.70 Delta voltage trip level, p.u.
dVtrp4 -0.85 Delta voltage trip level, p.u.
dVtrp5 0.10 Delta voltage trip level, p.u.
dVtrp6 0.15 Delta voltage trip level, p.u.
dTtrp1 1.9 Voltage trip time, sec.
dTtrp2 1.2 Voltage trip time, sec.
dTtrp3 0.70 Voltage trip time, sec.
dTtrp4 0.20 Voltage trip time, sec.
dTtrp5 1.00 Voltage trip time, sec.
dTtrp6 0.10 Voltage trip time, sec.
fcflg 0. Flag: 0 = DFAG; 1 = FC
rrpwr 10. LVPL ramp rate limit, p.u.
brkpt 0.9 LVPL characteristic breakpoint, p.u. (see Notes g and h)
zerox 0.5 LVPL characteristic zero crossing, p.u. (see Notes g and h)

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

1 vt Terminal voltage, p.u.


1 pg Electrical power, MW
1 qg Reactive power, MVAr
2 ipcd Active current command (Ipcmd), p.u.
2 iqcd Flux command (DFAG, E”q cmd) or reactive current
command (FC, 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:
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

Figure 1. DFAG Generator/Converter Model


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

Figure 2. Full Converter Generator/Converter Model


 

Model Name: gewtgx  

Please contact pslf‐support@ge.com for details on this GE proprietary model. 
Model Name: ggov1

Description General governor model

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Shaft speed

Invocation: ggov1 [<n>] {<name> <kv>} <id> : #r [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

r 0.04 Permanent droop, p.u.


rselect 1.0 Feedback signal for droop
= 1 selected electrical power
= 0 none (isochronous governor)
= -1 fuel valve stroke ( true stroke)
= -2 governor output ( requested stroke)
Tpelec 1.0 Electrical power transducer time constant, sec. (>0.)
maxerr 0.05 Maximum value for speed error signal
minerr -0.05 Minimum value for speed error signal
Kpgov 10.0 Governor proportional gain
Kigov 2.0 Governor integral gain
Kdgov 0.0 Governor derivative gain
Tdgov 1.0 Governor derivative controller time constant, sec.
vmax 1.0 Maximum valve position limit
vmin 0.15 Minimum valve position limit
Tact 0.5 Actuator time constant
Kturb 1.5 Turbine gain (>0.)
wfnl 0.2 No load fuel flow, p.u
Tb 0.1 Turbine lag time constant, sec. (>0.)
Tc 0.0 Turbine lead time constant, sec.
Flag 1.0 Switch for fuel source characteristic
= 0 for fuel flow independent of speed
= 1 fuel flow proportional to speed
Teng 0.0 Transport lag time constant for diesel engine
Tfload 3.0 Load Limiter time constant, sec. (>0.)
Kpload 2.0 Load limiter proportional gain for PI controller
Kiload 0.67 Load limiter integral gain for PI controller
Ldref 1.0 Load limiter reference value p.u.
Dm 0.0 Speed sensitivity coefficient, p.u.
ropen .10 Maximum valve opening rate, p.u./sec.
rclose -0.1 Minimum valve closing rate, p.u./sec.
Kimw 0.002 Power controller (reset) gain
Pmwset 80.0 Power controller setpoint, MW
aset 0.01 Acceleration limiter setpoint, p.u./sec.
Ka 10.0 Acceleration limiter Gain
Ta 0.1 Acceleration limiter time constant, sec. (>0.)
db 0.0 Speed governor dead band
Tsa 4.0 Temperature detection lead time constant, sec.
Tsb 5.0 Temperature detection lag time constant, sec.
rup 99.0 Maximum rate of load limit increase
rdown -99.0 Maximum rate of load limit decrease

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.

h) This model includes a simple representation of a supervisory load controller. This


controller is active if the parameter Kimw is non-zero. The load controller is a slow
acting reset loop that adjusts the speed/load reference of the turbine governor to hold the
electrical power output of the unit at its initial condition value. This value is stored in
the parameter Pmwset when the model is initialized, and can be changed thereafter.
The load controller must be adjusted to respond gently relative to the speed governor. A
typical value for Kimw is 0.01, corresponding to a reset time of 100 seconds.

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.

r) The “fix bad data” option will do the following:


a. Set Ta, Tpelec, Tfload, and Tb to a minimum of 4*delt.
b. If non-zero, set Tact, Tsb and Tdgov to a minimum of 4*delt
c. Set Kturb to a minimum of 0.1.
d. If Vmax < Vmin, swap the values.
e. If Vmax > 1., set to 1.
f. If Vmin < 0., set to 0.

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

Description General governor model with frequency-dependent


fuel flow limit

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Shaft speed

Invocation: ggov2 [<n>] {<name> <kv>} <id> : #n [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

r 0.05 Permanent droop, p.u.


rselect 1.0 Feedback signal for droop
= 1 selected electrical power
= 0 none (isochronous governor)
= -1 fuel valve stroke ( true stroke)
= -2 governor output ( requested stroke)
Tpelec 2.5 Electrical power transducer time constant, sec.
maxerr 1.0 Maximum value for speed error signal
minerr -1.0 Minimum value for speed error signal
Kpgov 4.0 Governor proportional gain
Kigov 0.45 Governor integral gain
Kdgov 0.0 Governor derivative gain
Tdgov 1.0 Governor derivative controller time constant
vmax 1.0 Maximum valve position limit
vmin 0.175 Minimum valve position limit
Tact 0.4 Actuator time constant
Kturb 1.9168 Turbine gain
wfnl 0.187 No load fuel flow, p.u
Tb 0.1 Turbine lag time constant
Tc 0.0 Turbine lead time constant
Flag 0 Switch for fuel source characteristic
= 0 for fuel flow independent of speed
= 1 fuel flow proportional to speed
Teng 0.0 Transport lag time constant for diesel engine
Tfload 3.0 Load Limiter time constant
Kpload 1.0 Load limiter proportional gain for PI controller
Kiload 1.0 Load limiter integral gain for PI controller
Ldref 1.0 Load limiter reference value p.u.
Dm 0.0 Speed sensitivity coefficient, p.u.
ropen 99.0 Maximum valve opening rate, p.u./sec.
rclose -99.0 Minimum valve closing rate, p.u./sec.
Kimw 0.0 Power controller (reset) gain
Pmwset 0.0 Power controller setpoint, MW
aset 10.0 Acceleration limiter setpoint, p.u./sec.
Ka 10.0 Acceleration limiter Gain
Ta 1.0 Acceleration limiter time constant, sec.
db 0.0 Speed governor dead band
Tsa 0.0 Temperature detection lead time constant, sec.
Tsb 50.0 Temperature detection lag time constant, sec.
rup 99.0 Maximum rate of load limit increase
rdown -99.0 Maximum rate of load limit decrease
Prate 0.017 Ramp rate for frequency-dependent power limit, p.u. P/sec.
Flim1 59 Frequency threshold 1, Hz.
Plim1 0.8325 Power limit 1, p.u.
Flim2 0. Frequency threshold 2, Hz.
Plim2 0. Power limit 2, p.u.
… 0.
… 0.
Flim10 0. Frequency threshold 10, Hz.
Plim10 0. Power limit 10, p.u.

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.

d) The frequency-dependent limit is defined by a set of up to 10 pairs of points relating


frequency (generator speed in Hz.) and power. The points must be monotonically
decreasing in both the magnitude of frequency and power. If fewer than 10 points are
needed to define the relationship, values of zero must be entered for the remaining
frequencies and power limits. The value of the last non-zero data pair are used as a lower
limit, that is, the last two values are not extrapolated to calculate lower power limits. If
there is only one set of frequency and power limit, those values will be used as a single
limit of power applied at that frequency and below.

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

Description General governor model with GE gas turbine


control features

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Shaft speed

Invocation: Ggov3 [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

r 0.04 Permanent droop, p.u.


rselect 1.0 Feedback signal for droop
= 1 selected electrical power
= 0 none (isochronous governor)
= -1 fuel valve stroke ( true stroke)
= -2 governor output ( requested stroke)
Tpelec 1.0 Electrical power transducer time constant, sec.
maxerr 0.1 Maximum value for speed error signal
minerr -0.1 Minimum value for speed error signal
Kpgov 10.0 Governor proportional gain
Kigov 1.0 Governor integral gain
Kdgov 0.0 Governor derivative gain
Tdgov 1.0 Governor derivative controller time constant
vmax 1.0 Maximum valve position limit
vmin 0.155 Minimum valve position limit
Tact 0.5 Actuator time constant
Kturb 1.6 Turbine gain
wfnl 0.18 No load fuel flow, p.u
Tb 0.2 Turbine lag time constant
Tc 0.0 Turbine lead time constant
Flag 1.0 Switch for fuel source characteristic
= 0 for fuel flow independent of speed
= 1 fuel flow proportional to speed
Teng 0.0 Transport lag time constant for diesel engine
Tfload 3.0 Load Limiter time constant
Kpload 3.0 Load limiter proportional gain for PI controller
Kiload 1.0 Load limiter integral gain for PI controller
Ldref 1.0 Load limiter reference value p.u.
Dm -2.0 Speed sensitivity coefficient, p.u.
ropen 3.3 Maximum valve opening rate, p.u./sec.
rclose -3.3 Minimum valve closing rate, p.u./sec.
Kimw 0.0 Power controller (reset) gain
Pmwset 0.0 Power controller setpoint, MW (see note j)
aset 0.01 Acceleration limiter setpoint, p.u./sec.
Ka 10.0 Acceleration limiter Gain
Ta 0.2 Acceleration limiter time constant, sec.
db 0.0 Speed governor dead band
Tsa 4.0 Temperature detection lead time constant, sec.
Tsb 5.0 Temperature detection lag time constant, sec.
rup 99.0 Maximum rate of load limit increase
rdown -99.0 Maximum rate of load limit decrease
Tbd 0.0 Fuel system lag time constant, sec.
Tcd 0.0 Fuel system lead time constant, sec.
ffa 0.0 Frequency filter low break speed, p.u..
ffb 0.0 Frequency filter high break speed, p.u..
ffc 0.0 Frequency filter gain
dnrate 0.0002 Fuel transient limiter rate
dnhi 0.1 Fuel transient limiter high speed limit.
dnlo -0.1 Fuel transient limiter low speed limit
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, pu
n2 0.00 Perceived speed deviation at 2nd break time, pu
n3 0.00 Perceived speed deviation at 3rd break time, pu
n4 0.00 Perceived speed deviation at 4th break time, pu
n5 0.00 Perceived speed deviation at 5th break time, pu

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.

h) This model includes a simple representation of a supervisory load controller. This


controller is active if the parameter Kimw is non-zero. The load controller is a slow
acting reset loop that adjusts the speed/load reference of the turbine governor to hold the
electrical power output of the unit at its initial condition value. This value is stored in
the parameter Pmwset when the model is initialized, and can be changed thereafter.
The load controller must be adjusted to respond gently relative to the speed governor. A
typical value for Kimw is 0.001, corresponding to a reset time of 1000 seconds.

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

1.1 r s7 govervor output


valve stroke
Pmwset 1.0 speed
rselect

+ 1 - electrical power
Pe 1 -1 - valve stroke
-2 - governor output
1+ sTpelec
0 - isochronous
s0 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.

Delta Speed from


Perceived
Test Signal
Speed
Synthesis

+ Filtered
Speed
True 
Speed
+ Perceived
Speed
Model Name: gp1

Description Generic Generator Protection Package

Prerequisites: Generator model ahead of this model in dynamic


models table

Inputs: Generator field current, terminal voltage and current,


and real power output

Invocation: gp1 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

vuv 0.85 under-voltage pickup settings, p.u.


tuv 1.00 under-voltage time setting, sec.

vov 1.15 over-voltage pickup setting, p.u.


tov 0.50 Over-voltage time setting, sec.

ifoc 1.00 field over-current current setting, p.u.


kfoc 10.00 field over-current time setting
afoc 1.08 field over-current minimum current setting
fof 1.04 over-frequency pickup setting, p.u.
tof 0.05 over-frequency time setting, sec.
fuf 0.95 under-frequency pickup setting, p.u.
tuf 0.05 under-frequency time setting, sec.
isoc 1.00 stator over-current minimum current setting
ksoc 0.10 stator over-current time setting
asoc 1.042 stator over-current minimum current setting
pmtr -0.01 reverse power pickup setting, p.u.
tmtr 2.0 reverse power time setting, sec.
ifdr 0.00 field current rating (see note i)

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.

b. Per unit parameters are on the base of generator MVA capability.

c. The model represents the following protection functions.

Relay Function Relay Type

under-voltage definite time


over-voltage definite time
field over-current inverse time
over-frequency definite time
under-frequency definite time
Stator over-current Inverse time with voltage restraint
reverse-power definite time

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.

f. The field over-current element has a straightforward inverse time characteristic.


The pickup setting is fixed at 1.05 per unit. The timing element starts when the
value of Ifd/Ifoc goes above 1.05. The time to operate after picking up is then
given by:
𝑘𝑓𝑜𝑐
𝑡=
𝑠2 − 𝑎𝑓𝑜𝑐
where

kfoc Defines the timing characteristic of the element


afoc Defines the field current asymptote of the characteristic indicated
by dashed lines in the figure below

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.

j. The reverse power protection would be disabled for motors.

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 tmr1 timer for under-voltage relay, seconds


1 tmr2 timer for over-voltage relay, seconds
1 tmr3 timer for over-excitation relay, seconds
1 tmr4 timer for over-frequency relay, seconds
1 tmr5 timer for under-frequency relay, seconds
1 tmr6 timer for over-current relay, seconds
1 tmr7 timer for reverse-power relay, seconds
2 frel Frequency used by the model (Hz)
Block Diagram:
Model Name: gp2

Description Generic Generator Protection System

Prerequisites: Generator model ahead of this model in dynamic


models table

Inputs: Generator field current, terminal voltage and current,


and real power output

Invocation: gp2 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

flag 1.0 (1) trip, (0) alarm only


vuv 0.85 under-voltage relay pickup setting, pu
tuv 1.0 under-voltage relay time setting, seconds
vov 1.15 over-voltage relay pickup setting, p.u.
tov 0.5 over-voltage relay time setting, seconds
ifoc 1.00 over-excitation relay pickup setting, p.u.
kfoc 1.04 over-excitation relay timer coefficient,
afoc 0.98 over-excitation relay timer coefficient,
fof 1.02 over-frequency relay pickup setting, p.u.
tof 2.0 over-frequency relay time setting, seconds
fuf 0.97 under-frequency relay pickup setting, p.u.
tuf 2.0 under-frequency relay time setting, seconds
isoc 1.0 over-current relay pickup setting, p.u.
ksoc 0.12 over-current relay timer coefficient,
asoc 1.042 over-current relay timer coefficient,
pmtr -0.001 reverse-power relay pickup setting, p.u.
tmtr 2.0 reverse-power relay time setting, seconds

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)

lfd pickup 1.05* pickup s2

pickup =isoc or ifoc* affl


Field Excitation a =asoc or afoc
Shunt System k =ksoc or kfoc

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

Description Generic Generator Protection System

Prerequisites: Generator model ahead of this model in dynamic models


table

Inputs: Generator field current, terminal voltage and current,


bus frequency, mechanical power and electrical power

Invocation: gp3 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

flag1 0 (1) trip, (0) alarm only


flag2 1 1 – monitor generator,
2 – monitor all generators in area,
3 – monitor all generators in zone,
4 – monitor all generators in the entire case.
vhz 1.1 V/Hz relay pickup setting, p.u.
tvhz 2.0 V/Hz -frequency relay time setting, seconds
vuv 0.89 under-voltage relay pickup setting, pu
tvuv 1.00 under-voltage relay time setting, seconds
vov 1.1 over-voltage relay pickup setting, p.u.
tvov 0.5 over-voltage relay time setting, seconds
pmtr -0.005 reverse-power relay pickup setting, p.u.
tpmtr 10.0 reverse-power relay time setting, seconds
xz1 1.0 Loss-of-field relay zone 1 pickup impedance, p.u.
xz2 0.0 Loss-of-field relay zone 2 pickup impedance, p.u.
xoff 0.0 Loss-of-field relay impedance offset, p.u.
tz1 0.05 Loss-of-field relay zone 1 time setting, seconds
tz2 0.5 Loss-of-field relay zone 1 time setting, seconds
ioc 1.05 Stator over-current relay pickup setting, p.u.
koc 0.0515 Time factor for stator over-current relay, seconds
boc 0.114 Timer coefficient for stator over-current relay, seconds
poc 0.02 Inverse-time exponent for stator over-current relay
troc 4.0 Reset time for stator over-current relay, seconds
fof 1.02 over-frequency relay pickup setting, p.u.
tof 1.0 over-frequency relay time setting, seconds
fuf 0.96 under-frequency relay pickup setting, p.u.
tuf 1.0 under-frequency relay time setting, seconds
delp 0.3 Delta power imbalance for power/load unbalance relay (Pmech-
Pelec), p.u.
tdelp 1.0 power/load unbalance time setting, seconds
ifoc 1.4 over-excitation relay pickup setting, p.u.
tfoc 0.5 over-excitation relay time setting, seconds

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 𝑇(𝐼𝑡)

f) Loss-of-field protection logic:


The relay alarms or trips the generator in Zone 1 if Rgen2 + (Xgen – Xoff + Xz1/2)2 <
(Xz1/2)2 for tz1 seconds. If the unit is in zone 1 for less than tz1 seconds, the timer is
reset.
The relay alarms or trips the generator in Zone 2 if Rgen2 + (Xgen – Xoff + Xz2/2)2 <
(Xz2/2)2 for tz2 seconds, then alarm (or trip) the unit. If the unit is in zone 2 for less
than tz2 seconds, the timer is reset.
g) If the model is instantiated on a single generator, the values for Xz1, Xz2 and Xzoff
are read from input data. If either Xz1 or Xz2 is entered as 0 OR if the model is used
on an area/zone/system level, the default values of Xz1 = 1 pu, Xz2 = Xd and Xoff = -
X’d/2 (Xd and X’d from the generator model).
h) Other than loss-of-field protection and voltage-restrained time over-current protection,
all other protection modules are simple definite-time trip functions.
Output Channels:

Record
Level Name Description

none

Block Diagram:

Xoff

Xz1
Xz2

Figure 1 R-X diagram for offset-mho relay characteristics of loss-of-field protection


Ioc
1.0

0.25
0
0.25 1.0 Vt (pu)

Voltage restraint function in inverse-time over-current relay

Figure 2 Voltage restraint function in inverse-time over-current relay


Model Name: gpwscc

Description PID governor and turbine. (Represents WECC


GP governor plus turbine model.)

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Shaft speed

Invocation: gpwscc [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

Pmax 1.0 Maximum gate opening, p.u. of mwcap


Pmin 0.0 Minimum gate opening, p.u. of mwcap
R 0.04 Steady state droop, p.u.
Td 0.1 Input filter time constant, sec.
Tf 0.1 Washout time constant, sec.
Tp 0.1 Gate servo time constant, sec.
Velop 0.1 Maximum gate opening velocity, p.u./sec
Velcl -0.1 Maximum gate closing velocity, p.u./sec. (< 0.)
Kp 1.0 Proportional gain, p.u.
Kd 0.01 Derivative gain, p.u.
Ki 0.04 Integral gain, p.u.
Kg 2.5 Gate servo gain, p.u.
Tturb 2.84 Turbine time constant, sec (see note g)
Aturb -1.0 Turbine numerator multiplier (see note g)
Bturb 0.5 Turbine denominator multiplier (see note g)
Tt 2.0 Power feedback time constant, sec
db1 0.0 Intentional dead-band width, Hz.
eps 0.0 0.0Intentional db hysteresis, Hz.
db2 0.0 Unintentional dead-band, MW
Gv1 0.0 Nonlinear gain point 1, p.u. gv
Pgv1 0.0 Nonlinear gain point 1, p.u. power
Gv2 0.0 Nonlinear gain point 2, p.u. gv
Pgv2 0.0 Nonlinear gain point 2, p.u. power
Gv3 0.0 Nonlinear gain point 3, p.u. gv
Pgv3 0.0 Nonlinear gain point 3, p.u. power
Gv4 0.0 Nonlinear gain point 4, p.u. gv
Pgv4 0.0 Nonlinear gain point 4, p.u. power
Gv5 0.0 Nonlinear gain point 5, p.u. gv
Pgv5 0.0 Nonlinear gain point 5, p.u. power
Gv6 0.0 Nonlinear gain point 6, p.u. gv
Pgv6 0.0 Nonlinear gain point 6, p.u. power

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).

c) If Tt is input as zero, feedback from CV instead of Pg is used.

d) The dead-bands are implemented as described in section 3.10.2.

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

1 gate Turbine gate position, (GV), p.u.


1 pm Turbine power, MW
Block Diagram:
Model Name: gthev

Description Thevenin source of defined voltage amplitude and


frequency

Prerequisites: The pldat and plhead tables must be in place before


the init command is executed
A generator must be present at bus <n> in the load
flow case

Inputs: Source voltage amplitude


Source frequency

Invocation: gthev [<n>] {<name> <kv>} <id> : #<n> mva=<mva>

Parameters:

EPCL Default
Variable Data Description

rth 0.0 Thevenin resistance, p.u. on generator mva base


xth 0.05 Thevenin reactance, p.u. on generator mva base
civ * (notes c,d) Channel number of playback amplitude signal
cif * (notes c,d) Channel number of playback frequency signal
vbias 0.0 Bias to match amplitude to simulation initialization
fbias 0.0 Bias to match frequency to simulation initialization

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.

g) In many cases the played in voltage is a measurement of a voltage at a point such as


generator terminals, rather than the internal (Thevenin) voltage of a source. In these
cases the practical approach is to apply the gthev model to a "pro-forma" generator with a
very large MVA base (say 10,000 MVA) and a very low Thevenin impedance (say 0.01
p.u.). The internal voltage drop in the Thevenin source can then be made negligible so
that the voltage at its source is equal, for practical purposes, to the played-in signal.

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

1 vthm Thevenin voltage amplitude, p.u.


1 vthf Thevenin voltage frequency, p.u.
1 vt Thermal voltage, p.u.
1 it Thermal current, p.u.
1 pg Thermal real power, MW
1 qg Terminal reactive power, MVAR

Block Diagram:
Model Name: h6b

Description Hydro turbine governor model

Prerequisites: H6bd data management model ahead of this


model in the input data file

Inputs: Shaft speed


Generator electrical power

Invocation:

Parameters:

EPCL Default
Variable Data Description

tw 2.00 Water inertia time constant, sec


ptp 0.02 User defined gate boot input, pu
ftp 0.005 Frequency deviation for transient boost to pick up, pu
ttp 1.00 Definite time delay for transient boost pick up, sec
tpw 30.0 Washout time constant for gate boost
vtp 0.002 Velocity limit on feedforward signal
kfp 0.00 Feedforward gain for speed-load reference
tff 1.00 Feedforward filter time constant
fbus Bus number of ‘family’ model (hyg6d).

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.

The externally provided signal, ptp, is fed forward to provide an open-loop


adjustment of gate opening upon command. The application of this feedforward
signal is initiated when frequency measured at the generator terminals deviates from
1.0 per unit by more than <ftp> per unit for longer than <ttp> seconds.

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

1 gate Turbine gate position, pu


1 pm Turbine power, MW
1 bld Turbine blade position, pu

Block Diagram:
Figure 1. Governor schematic diagram

Figure 2. Transfer function for calculation of turbine power


 

Model Name: h6bd  

 
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

 
 

blgate 0.0 Gate linkage backlash, pu


tbf 2.50 Kaplan turbine blade angle filter time constant, pu
tbs 0.50 Kaplan turbine blade angle servo time constant, pu
dbbld 0.0025 Blade intentional deadband, pu
blbld 0.003 Blade linkage backlash, pu
hdam 1.0 Operating head, pu
gv0 0.0 First abscissa 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.0 …………………………………….
agv0 0.0 Curve of wicket gate flow area
agv1 0.50 as function of gate servo position ..
agv2 0.62 ……………………………………
agv3 0.68 ……………………………………
agv4 0.73 ……………………………………
agv5 0.83 ……………………………………
agv6 0.91 ……………………………………
agv7 0.94 ……………………………………
agv8 0.955 ……………………………………
agv9 1.0 ……………………………………
bgv0 0.78 Curve of Kaplan turbine blade flow area
bgv1 0.78 as function of gate servo position ..
bgv2 0.78 ……………………………………
bgv3 0.79 ……………………………………
bgv4 0.81 ……………………………………
bgv5 0.88 ……………………………………
bgv6 0.96 ……………………………………
bgv7 0.995 ……………………………………

 
 

bgv8 1.0 ……………………………………


bgv9 1.0 ……………………………………
bgymin 0.75 Base value of blade flow area
deff 0.0 Off blade angle power decrease factor
 

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.

d) The parameter dturb has the dimensions power/speed.

e) Details of the deadband and backlash functions are shown in Figure 6.

f) The turbine is described by two curves as follows:

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:

(effective flow area) = agv(g) * (bgvmin + (1 – bgvmin) * bgv(g)),

where ‘g’ is gate servo stroke.

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:
 

 
 

Figure 1. Governor schematic diagram

Figure 2. Transfer function for calculation of turbine power

 
 

Figure 3. Turbine wicket gate flow curve (ag vs. gp)

Figure 4. Kaplan turbine blade flow curve (bg vs. gc)

 
 

Figure 5. Off-angle power adjustment

Figure 6. Deadband details

 
 

Figure 7. Spreadsheet for preparation of Kaplan turbine data

 
 

Figure 8. Spreadsheet for preparation of Francis turbine data

 
Model Name: h6e
Description Hydro Turbine with American Governor
Company controller

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Shaft speed


Generator electrical power

Invocation: h6e [<n>] {<name> <kv>} <id> : [mwcap=<value>]

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.

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
(c) Tpe, Tsp, Td, Tg must be greater than zero.

(d) Dturb has the dimensions power/speed

(e) Details of the deadband and backlash functions are shown in figure 3

(f) The turbine is described by two curves as follows:


pgv - - Turbine power in per unit of tbase versus gate servomotor stroke.
bgv - - Blade servo stroke versus gate servomotor stroke.

(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.

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
Figure 1: h6e - Governor configuration - speed control mode Rg > 0, Re = Fd = 0

Figure 2: h6e - Governor configuration - load control mode Rg = 0, Re > 0, Fd = 1

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
Figure 3: h6e - Turbine model

Figure 4: Turbine power-gate and blade-gate curves


Red - Power/gate (pgv/ggv), Blue - Blade/gate (bgv/ggv)

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
Figure 5: Curves for fixed-blade turbine (e.g. Francis)
Red - Power/gate (pgv-gv), Blue - Blade/gate (bgv-gv)

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
Figure 6: Curves for Kaplan turbine
Red - Power/gate (pgv-gv), Blue - Blade/gate (bgv-gv)

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
Figure 7: Variation of turbine efficiency with off-cam blade angle
Blue - Power with blade servo at programmed position, Red - Power deviation as blade servo
position deviates from programmed position

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
Model Name: hvdcau

Description Auxiliary HVDC controller

Prerequisites: Follows invocation to epcdc or cdc6 models

Inputs:

Invocation: hvdcau [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>}


<ck> ! [<mf>] {<nammf> <kvmf>} [<mt>] {<nammt> <kvmt>} <ck> :

Parameters:

EPCL Default
Variable Data Description

dcbusr 0.0 rectifier dc bus number


dcbusi 0.0 Inverter dc bus number
ic 0.0 input signal
Minin 0.0 minimum input signal, p.u.
Maxin 0.0 maximum input signal, p.u.
Kp 0.0 proportional gain, p.u.
Ki 0.0 integral(reset) gain, p.u.
Kd 0.0 derivative gain, p.u.
T1 0.0 derivative detector time constant, sec.
A 0.0 lead gain, p.u.
T2 0.0 Lead time constant, sec.
T3 0.0 Lag time constant, sec.
B 0.0 lead gain, p.u.
T4 0.0 Lead time constant, sec.
T5 0.0 Lag time constant, sec.
C 0.0 notch filter parameter
D 0.0 notch filter parameter
E 0.0 notch filter parameter
F 0.0 notch filter parameter
Minout 0.0 minimum stabilizer output, p.u.
Maxout 0.0 maximum stabilizer output, p.u.

Notes:

a) hvdcau is produces an auxiliary signal for application to the supplementary input


signal port of the HVDC controller for which hvdcau is invoked. The "from" and
"to" buses of the hvdcau invocation must be the same as for the epcdc or cdc6
model used to represent the DC pair to which its signal will be applied. The <id>
of the hvdcau invocation must be the same rectifier identifier as used in the epcdc
or cdc6 invocation.

b) The input signal is specified by ic as follows:

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.

d) An example of hvdcau invocation is as follows:


hvdcau 1111 "BUSNAME1" 345.00 "r " 2222 "BUSNAME2" 345.00 “i “ !
3333 "BUSNAME3" 345.00 4444 "BUSNAME4" 345.00 "ck" : #1
"dcbusr" 5.0 "dcbusi" 2.0000 "ic" 5.00 "minin " -9999.0 "maxin " 9999.90
"kp" 0.0 "ki" 0.0 "kd" 100.0 "t1" 5.0 "a" 1.0 "t2" 0.0 "t3" 0.25 "b" 1.0 "t4"
0.0 "t5" 0.25 "c" 1.0 "d" 100.0 "e" 2.0 "f" 50.0 "minout" -1.2 “maxout” 1.2

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.

e) The auxiliary signal fed into epcdc or cdc6 is ampo.

f) The parameters T1, T3, and T5 must be non-zero.

g) The “fix bad data” option will do the following:


a. If T1 is less than 4*delt, then set T1 equal to 4*delt
b. If T3 is less than 4*delt, then set T3 equal to 4*delt
c. If T5 is less than 4*delt, then set T5 equal to 4*delt

Output Channels:

Record
Level Name Description

1 aux hvdcau output, p.u.


2 ampo hvdc output in Amps, ampo = aux*base_current
Block Diagram:

Reference
Signal

Maxin Maxout

Input Ki Kp sK A sT2 B sT4 s2 + sC + D Aux.


Signal + s 1 sT1 1 sT3 1 sT5 s2 + sE + F Signal

s1 s0 s2 s3 s4 s5
Minin Minout
Model Name: hyg3

Description PID governor, double derivative governor and


turbine. (Represents WECC GP governor,
WECC G2 governor plus turbine model.)

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: shaft speed, electrical power

Invocation: hyg3 [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

Pmax 1.0 Maximum gate opening, p.u. of mwcap


Pmin 0.0 Minimum gate opening, p.u. of mwcap
Cflag 1.0 Governor control flag, 1:PID, -1:Double Derivative
Rgate 0.0 Steady-state droop, p.u., for governor output feedback
Relec 0.05 Steady-state droop, p.u., for electrical power feedback
Td 0.05 Input filter time constant, sec.
Tf 0.1 Washout time constant, sec.
Tp 0.05 Gate servo time constant, sec.
Velop 0.2 Maximum gate opening velocity, p.u./sec
Velcl -0.2 Maximum gate closing velocity, p.u./sec (< 0.)
K1 0.01 Derivative gain, p.u.
K2 2.5 Double derivative gain, p.u., if Cflag = -1
Ki 0.5 Integral gain, p.u.
Kg 2.0 Gate servo gain, p.u.
Tt 0.2 Power feedback time constant, sec.
db1 0.0 Intentional dead-band width, Hz.
eps 0.0 Intentional db hysteresis, Hz.
db2 0.0 Unintentional dead-band, MW
Tw 1.0 Water inertia time constant, sec.
At 1.2 Turbine gain, p.u.
Dturb 0.2 Turbine damping factor, p.u.
qnl 0.08 No-load turbine flow at nominal head, p.u.
H0 1.0 Turbine nominal head, p.u.
Gv1 0.0 Nonlinear gain point 1, p.u. gv
Pgv1 0.0 Nonlinear gain point 1, p.u. power
Gv2 0.0 Nonlinear gain point 2, p.u. gv
Pgv2 0.0 Nonlinear gain point 2, p.u. power
Gv3 0.0 Nonlinear gain point 3, p.u. gv
Pgv3 0.0 Nonlinear gain point 3, p.u. power
Gv4 0.0 Nonlinear gain point 4, p.u. gv
Pgv4 0.0 Nonlinear gain point 4, p.u. power
Gv5 0.0 Nonlinear gain point 5, p.u. gv
Pgv5 0.0 Nonlinear gain point 5, p.u. power
Gv6 0.0 Nonlinear gain point 6, p.u. gv
Pgv6 0.0 Nonlinear gain point 6, p.u. power

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) Tw and At must be greater than zero.

c) If Tw is less than 4*delt, Tw is set to 1.0.

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.

e) The dead-bands are implemented as described in section 3.10.2.

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

1 cv Governor output, p.u.


1 gv Turbine gate position, p.u.
1 pm Turbine power, MW
Block Diagram:

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

Velop Pmax db2

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

Description Hydro turbine and governor. Represents plants


with straight-forward penstock configurations
and hydraulic governors of traditional 'dashpot'
type.

Prerequisites: Generator model ahead of this model in the dynamic


models table

Inputs: Shaft speed

Invocation: hygov4 [<n>] {<name> <kv>} <id> : #r [mwcap=<value>]

Parameters:

EPCL Simple Francis Kaplan Description


Variable

Tg 0.5 * * Gate servo time constant, sec.


Tp 0.1 * * Pilot servo time constant, sec.
uo 0.2 * * Max gate opening velocity, p.u./sec.
uc 0.2 * * Max gate closing velocity, p.u./sec.
Pmax 1.0 * * Maximum gate opening, p.u. of mwcap
Pmin 0.0 * * Minimum gate opening, p.u. of mwcap
Rperm 0.05 * * Permanent droop (R), p.u.
rtemp 0.3 * * Temporary droop (r), p.u.
Tr 5.0 * * Dashpot time constant, sec.
Tw 1.0 * * Water inertia time constant, sec.
At 1.2 * * Turbine gain, p.u.
Dturb 0.5 1.1 1.1 Turbine damping factor, p.u.
hdam 1.0 * * Head available at dam, p.u. ****
qnl 0. 08 0 0 No-load flow at nominal head, p.u.
db1 0 * * Intentional deadband width, Hz.
eps 0 * * Intentional db hysteresis, Hz.
db2 0 * * Unintentional deadband, MW

GV0 0 0.1 0.1 Nonlinear gain point 0, p.u. gv


Pgv0 0 0. 0. Nonlinear gain point 0, p.u. power
GV1 0 0.4 0.4 Nonlinear gain point 1, p.u. gv
Pgv1 0 0.42 0.35 Nonlinear gain point 1, p.u. power
GV2 0 0.5 0.5 Nonlinear gain point 2, p.u. gv
Pgv2 0 0.56 0.468 Nonlinear gain point 2, p.u. power
GV3 0 0.7 0.7 Nonlinear gain point 3, p.u. gv
Pgv3 0 0.8 0.796 Nonlinear gain point 3, p.u. power
GV4 0 0.8 0.8 Nonlinear gain point 4, p.u. gv
Pgv4 0 0.9 0.917 Nonlinear gain point 4, p.u. power
GV5 0 0.9 0.9 Nonlinear gain point 5, p.u. gv
Pgv5 0 0.97 0.99 Nonlinear gain point 5, p.u. power
hdam 1.0 1.0 1.0 Head available at dam, p.u. ****

Bgv0 0 0 0.0 Kaplan blade servo point 0, p.u.


Bgv1 0 0 0.0 Kaplan blade servo point 1, p.u.
Bgv2 0 0 0.1 Kaplan blade servo point 2, p.u.
Bgv3 0 0 0.667 Kaplan blade servo point 3, p.u.
Bgv4 0 0 0.9 Kaplan blade servo point 4, p.u.
Bgv5 0 0 1.0 Kaplan blade servo point 5, p.u.

Bmax 0. 0. 1.1276 Maximum blade adjustment factor


tblade 100. 100. 100. Blade servo time constant, sec.

**** 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.

c) Tr, Tg, Tw must be greater than zero.

d) Dturb has the dimensions P(pu of mwcap) /speed(pu).

e) The deadbands are implemented as described in section 3.11.2.

f) The characteristics of the turbine can be represented by three different gate-head-


flow-power characteristics:

i. Simple General Purpose Model


a simple linear relationship given by At, qnl as shown in figure B

ii. Francis/Pelton Turbine Model


a nonlinear relationship between flow and gate opening as shown in figure C
and described by GV0, Pgv0, thru Pgv5

iii. Kaplan Turbine Model


j) a nonlinear relationship between flow, gate, and blade angle as shown in figure D
and described by GV0, Pgv0, thru Pgv5, and Bgv0 thru Bgv5. The Kaplan turbine
model is the same as for the hygov model. See hygov for a complete description

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.

g) If bmax is zero, then af = pgf.

h) The “fix bad data” option will do the following:


a. Set Tr, Tg, and Tw to a minimum of 4*delt.
b. If non-zero, set Tp to a minimum of 4*delt
c. Set Rperm (R) to a minimum of 0.01.
d. Set rtemp (r) to a minimum of Rperm.
e. Set At to a minimum of 0.5.
f. Set Pmax to a maximum of 1.0.
g. Set Pmin to a minimum of 0.0.
h. If Pmax < Pmin, swap the values
Output Channels:

Record
Level Name Description

1 gate Turbine gate position, p.u.


1 pm Turbine power, MW
2 bld Blade position, p.u.

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

Figure A hygov4 Transfer Function Model


b
Notes:

a=power at zero flow, normally


negative
Turbine Power, p.u.

slope=At
b=power at 1 per unit flow,
normally >1

At=turbine gain, normally >1

0.0

0 qnl gate opening, p.u. 1.0

Figure B Simple Hydro Turbine Model – i


(1,0,1.0)
1.0
(gv5,Pgv5)
(gv4,Pgv4)
Turbine Power, p.u.

(gv3,Pgv3)

(gv2,Pgv2)

(gv1,Pgv1)

0.0
(gv0,Pgv0)

0 gate opening, p.u. 1.0

Figure C Francis/Pelton Turbine Model – ii


(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)

0 gate opening, p.u. 1.0

Figure D Kaplan Turbine Model – iii


Figure E Kaplan Turbine Calculation Sheet
Model Name: hygov8

Description Hydro Governor Model for Up to 4 Units on


Common Penstock

Prerequisites: Generator models ahead of this model in dynamics


model table

Inputs: Generator rotor speed, generator electrical power

Invocation: hygov8 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

ibus1 Bus Number of Unit #1


ibus2 Bus Number of Unit #2, may be set to 0 to disable the portion
of model for this unit
ibus3 Bus Number of Unit #3, may be set to 0 to disable the portion
of model for this unit
ibus4 Bus Number of Unit #4, may be set to 0 to disable the portion
of model for this unit
id1 Machine ID (real variable) for Unit #1
id2 Machine ID (real variable) for Unit #2
id3 Machine ID (real variable) for Unit #3
id4 Machine ID (real variable) for Unit #4
turb1 Turbine MW rating for Unit #1
(Following Parameters are for Unit #1Governor)
rgate1 0.05 Steady State Droop for gate position feedback
rpe1 0.0 Steady State Droop for electrical power feedback
tt1 1.0 Power Feedback Filter Time Constant (sec)
tf1 0.1 Derivative Control Time Constant (sec)
kpgov1 2.0 Governor Proportional Gain, pu
kigov1 0.5 Governor Integral Gain, pu
kdgov1 0.3 Governor Derivative Gain, pu
tdgov1 0.1 Share Time Constant
td1 0.0 Speed error signal filter time constant (sec)
tp1 0.05 Pilot Valve Time Constant (sec)
vop1 0.16 Maximum gate opening velocity (pu/sec)
vcl1 -0.1 Maximum gate closing velocity (pu/sec)
EPCL Default
Variable Data Description

kg1 2.0 Distribution Valve Gain (pu)


ho 1.0 Plant Net Head (pu)
gmax1 1.0 Maximum Gate Position (pu)
gmin1 0.0 Minimum Gate Position (pu)
tw1 Water Starting Time (sec) of Unit 1 Flow for Entire Length
tw12 Water Starting Time (sec) of Unit 1 Flow Common Length of
Penstock Shared with Unit 2
tw13 Water Starting Time (sec) of Unit 1 Flow Common Length of
Penstock Shared with Unit 3
tw14 Water Starting Time (sec) of Unit 1 Flow Common Length of
Penstock Shared with Unit 4
turb2 Turbine MW rating for Unit #2
(Following Parameters are for Unit #2Governor)
rgate2 0.05 Steady State Droop for gate position feedback
rpe2 0.0 Steady State Droop for electrical power feedback
tt2 1.0 Power Feedback Filter Time Constant (sec)
tf2 0.1 Derivative Control Time Constant (sec)
kpgov2 2.0 Governor Proportional Gain, pu
kigov2 0.5 Governor Integral Gain, pu
kdgov2 0.3 Governor Derivative Gain, pu
tdgov2 0.1 Share Time Constant
td2 0.0 Speed error signal filter time constant (sec)
tp2 0.05 Pilot Valve Time Constant (sec)
vop2 0.16 Maximum gate opening velocity (pu/sec)
vcl2 -0.1 Maximum gate closing velocity (pu/sec)
kg2 2.0 Distribution Valve Gain (pu)
gmax2 1.0 Maximum Gate Position (pu)
gmin2 0.0 Minimum Gate Position (pu)
tw2 Water Starting Time (sec) of Unit 2 Flow for Entire Length
tw21 Water Starting Time (sec) of Unit 2 Flow Common Length of
Penstock Shared with Unit 1
tw23 Water Starting Time (sec) of Unit 2 Flow Common Length of
Penstock Shared with Unit 3
tw24 Water Starting Time (sec) of Unit 2 Flow Common Length of
Penstock Shared with Unit 4
turb3 Turbine MW rating for Unit #3
(Following Parameters are for Unit #3Governor)
rgate3 0.05 Steady State Droop for gate position feedback
rpe3 0.0 Steady State Droop for electrical power feedback
tt3 1.0 Power Feedback Filter Time Constant (sec)
tf3 0.1 Derivative Control Time Constant (sec)
kpgov3 Proportional Gain, pu
EPCL Default
Variable Data Description

kigov3 0.5 Governor Integral Gain, pu


kdgov3 0.3 Governor Derivative Gain, pu
tdgov3 0.1 Share Time Constant
td3 0.0 Speed error signal filter time constant (sec)
tp3 0.05 Pilot Valve Time Constant (sec)
vop3 0.16 Maximum gate opening velocity (pu/sec)
vcl3 -0.1 Maximum gate closing velocity (pu/sec)
kg3 2.0 Distribution Valve Gain (pu)
gmax3 1.0 Maximum Gate Position (pu)
gmin3 0.0 Minimum Gate Position (pu)
tw3 Water Starting Time (sec) of Unit 3 Flow for Entire Length
tw31 Water Starting Time (sec) of Unit 3 Flow Common Length of
Penstock Shared with Unit 1
tw32 Water Starting Time (sec) of Unit 3 Flow Common Length of
Penstock Shared with Unit 2
tw34 Water Starting Time (sec) of Unit 3 Flow Common Length of
Penstock Shared with Unit 4
turb4 Turbine MW rating for Unit #4
(Following Parameters are for Unit #4 Governor)
rgate4 0.05 Steady State Droop for gate position feedback
rpe4 0.0 Steady State Droop for electrical power feedback
tt4 1.0 Power Feedback Filter Time Constant (sec)
tf4 0.1 Derivative Control Time Constant (sec)
kpgov4 2.0 Governor Proportional Gain, pu
kigov4 0.5 Governor Integral Gain, pu
kdgov4 0.3 Governor Derivative Gain, pu
tdgov4 0.1 Share Time Constant
td4 0.0 Speed error signal filter time constant (sec)
tp4 0.05 Pilot Valve Time Constant (sec)
vop4 0.16 Maximum gate opening velocity (pu/sec)
vcl4 -0.1 Maximum gate closing velocity (pu/sec)
kg4 2.0 Distribution Valve Gain (pu)
gmax4 1.0 Maximum Gate Position (pu)
gmin4 0.0 Minimum Gate Position (pu)
tw4 Water Starting Time (sec) of Unit 4 Flow for Entire Length
tw41 Water Starting Time (sec) of Unit 4 Flow Common Length of
Penstock Shared with Unit 1
tw42 Water Starting Time (sec) of Unit 4 Flow Common Length of
Penstock Shared with Unit 2
tw43 Water Starting Time (sec) of Unit 4 Flow Common Length of
Penstock Shared with Unit 3
aturb1 1.3 Turbine Gain for Unit #1, pu
EPCL Default
Variable Data Description

qnl1 0.18 No Load Flow for Unit #1, pu


aturb2 1.3 Turbine Gain for Unit #2, pu
qnl2 0.18 No Load Flow for Unit #2, pu
aturb3 1.3 Turbine Gain for Unit #3, pu
qnl3 0.18 No Load Flow for Unit #3, pu
aturb4 1.3 Turbine Gain for Unit #4, pu
qnl4 0.18 No Load Flow for Unit #4, pu
dturb1 0.0 Turbine Damping Factor for Unit #1, pu
dturb2 0.0 Turbine Damping Factor for Unit #2, pu
dturb3 0.0 Turbine Damping Factor for Unit #3, pu
dturb4 0.0 Turbine Damping Factor for Unit #4, pu
db11 0.0 Intentional Dead-band width for Unit #1, pu
db12 0.0 Intentional Dead-band width for Unit #2, pu
db13 0.0 Intentional Dead-band width for Unit #3, pu
db14 0.0 Intentional Dead-band width for Unit #4, pu
Lookup Table for Non-Linear Gain on Unit #1
gv01 0.0 Non-linear Gain Point 1, p.u. gv
pgv01 0.0 Non-linear Gain Point 1, p.u. power
gv11 0.0 Non-linear Gain Point 2, p.u. gv
pgv11 0.0 Non-linear Gain Point 2, p.u. power
gv21 0.0 Non-linear Gain Point 3, p.u. gv
pgv21 0.0 Non-linear Gain Point 3, p.u. power
gv31 0.0 Non-linear Gain Point 4, p.u. gv
pgv31 0.0 Non-linear Gain Point 4, p.u. power
gv41 0.0 Non-linear Gain Point 5, p.u. gv
pgv41 0.0 Non-linear Gain Point 5, p.u. power
gv51 0.0 Non-linear Gain Point 6, p.u. gv
pgv51 0.0 Non-linear Gain Point 6, p.u. power
Lookup Table for Non-Linear Gain on Unit #2
gv02 0.0 Non-linear Gain Point 1, p.u. gv
pgv02 0.0 Non-linear Gain Point 1, p.u. power
gv12 0.0 Non-linear Gain Point 2, p.u. gv
pgv12 0.0 Non-linear Gain Point 2, p.u. power
gv22 0.0 Non-linear Gain Point 3, p.u. gv
pgv22 0.0 Non-linear Gain Point 3, p.u. power
gv32 0.0 Non-linear Gain Point 4, p.u. gv
pgv32 0.0 Non-linear Gain Point 4, p.u. power
gv42 0.0 Non-linear Gain Point 5, p.u. gv
pgv42 0.0 Non-linear Gain Point 5, p.u. power
gv52 0.0 Non-linear Gain Point 6, p.u. gv
EPCL Default
Variable Data Description

pgv52 0.0 Non-linear Gain Point 6, p.u. power


Lookup Table for Non-Linear Gain on Unit #3
gv03 0.0 Non-linear Gain Point 1, p.u. gv
pgv03 0.0 Non-linear Gain Point 1, p.u. power
gv13 0.0 Non-linear Gain Point 2, p.u. gv
pgv13 0.0 Non-linear Gain Point 2, p.u. power
gv23 0.0 Non-linear Gain Point 3, p.u. gv
pgv23 0.0 Non-linear Gain Point 3, p.u. power
gv33 0.0 Non-linear Gain Point 4, p.u. gv
pgv33 0.0 Non-linear Gain Point 4, p.u. power
gv43 0.0 Non-linear Gain Point 5, p.u. gv
pgv43 0.0 Non-linear Gain Point 5, p.u. power
gv53 0.0 Non-linear Gain Point 6, p.u. gv
pgv53 0.0 Non-linear Gain Point 6, p.u. power
Lookup Table for Non-Linear Gain on Unit #4
gv04 0.0 Non-linear Gain Point 1, p.u. gv
pgv04 0.0 Non-linear Gain Point 1, p.u. power
gv14 0.0 Non-linear Gain Point 2, p.u. gv
pgv14 0.0 Non-linear Gain Point 2, p.u. power
gv24 0.0 Non-linear Gain Point 3, p.u. gv
pgv24 0.0 Non-linear Gain Point 3, p.u. power
gv34 0.0 Non-linear Gain Point 4, p.u. gv
pgv34 0.0 Non-linear Gain Point 4, p.u. power
gv44 0.0 Non-linear Gain Point 5, p.u. gv
pgv44 0.0 Non-linear Gain Point 5, p.u. power
gv54 0.0 Non-linear Gain Point 6, p.u. gv
pgv54 0.0 Non-linear Gain Point 6, p.u. power

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:

∑ for the terms on the diagonal of the matrix and

∑ for the terms off the diagonal

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

1 Gv1 Gate Position Unit 1, p.u.


1 Pm1 Mechanical Power Unit 1, MW
1 Gv2 Gate Position Unit 2, p.u.
1 Pm2 Mechanical Power Unit 2, MW
1 Gv3 Gate Position Unit 3, p.u.
1 Pm3 Mechanical Power Unit 3, MW
1 Gv4 Gate Position Unit 4, p.u.
1 Pm4 Mechanical Power Unit 4, MW

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

gv1 gate position

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

Description Hydro turbine and governor. Represents plants


with straight-forward penstock configurations and
electro-hydraulic governors that mimic the
permanent/temporary droop characteristics of
traditional dashpot-type hydraulic governors.

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Shaft speed

Invocation: hygov [<n>] {<name> <kv>} <id> : #r [mwcap=<value>]

Parameters:

EPCL Simple Francis Kaplan Description


Variable

Rperm 0.04 * * Permanent droop (R), pu


rtemp 0.3 * * Temporary droop (r), pu
Tr 5.0 * * Washout time constant, s.
Tf 0.05 * * Filter time constant, s.
Tg 0.5 * * Gate servo time constant, s.
Velm 0.2 * * Maximum gate velocity, pu/s.
Gmax 1.0 * * Maximum gate opening, pu of mwcap
Gmin 0.0 * * Minimum gate opening, pu of mwcap
Tw 1.0 * * Water inertia time constant, s.
At 1.2 1.1 1.1 Turbine gain, pu
Dturb 0.5 * * Turbine damping factor, pu
qnl 0.08 0 0 No-load flow at nominal head, pu
ttrip 0 0 0 not used
tn 0 * * Lead time constant, s.
tnp 0 * * Lag time constant, s.
db1 0 * * Intentional deadband width, Hz.
eps 0 * * Intentional db hysteresis, Hz
db2 0 * * Unintentional deadband, MW

GV0 0 0.1 0.1 Nonlinear gain point 0, pu gv


Pgv0 0 0. 0. Nonlinear gain point 0, pu power
GV1 0 0.4 0.4 Nonlinear gain point 1, pu gv
Pgv1 0 0.42 0.35 Nonlinear gain point 1, pu power
GV2 0 0.5 0.5 Nonlinear gain point 2, pu gv
Pgv2 0 0.56 0.468 Nonlinear gain point 2, pu power
GV3 0 0.7 0.7 Nonlinear gain point 3, pu gv
Pgv3 0 0.8 0.796 Nonlinear gain point 3, pu power
GV4 0 0.8 0.8 Nonlinear gain point 4, pu gv
Pgv4 0 0.9 0.917 Nonlinear gain point 4, pu power
GV5 0 0.9 0.9 Nonlinear gain point 5, pu gv
Pgv5 0 0.97 0.99 Nonlinear gain point 5, pu power
hdam 1.0 1.0 1.0 Head available at dam, pu

Bgv0 0 0 0.0 Kaplan blade servo point 0, pu


Bgv1 0 0 0.0 Kplan blade servo point 1, pu
Bgv2 0 0 0.1 .Kaplan blade servo point 2, pu
Bgv3 0 0 .667 Kaplan blade servo point 3, pu
Bgv4 0 0 0.9 Kaplan blade servo point 4, pu
Bgv5 0 0 1.0 Kaplan blade servo point 5, pu

bmax 0 0. 1.1276 Maximum blade adjustment factor


tblade 100. 100. 100. Blade servo time constant, s.

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.

c) Tr, Tf, Tg, Tw must be greater than zero.

d) Dturb has the dimensions P(pu of mwcap) /speed(pu).

e) The deadbands are implemented as described in section 3.11.2.

f) The characteristics of the turbine can be represented by three different gate-head-


flow-power characteristics:

i. Simple General Purpose Model


a simple linear relationship given by At, qnl as shown in figure B

ii. Francis/Pelton Turbine Model


a nonlinear relationship between flow and gate opening as shown in figure C
and described by GV0, Pgv0, thru Pgv5

iii. Kaplan Turbine Model


a nonlinear relationship between flow, gate, and blade angle as shown in
figure D and described by GV0, Pgv0, thru Pgv5, and Bgv0 thru Bgv5
h) The simple turbine model is selected by omitting GV0 and all following parameters
from the parameter list. (Note - you can set GV0 and all following parameters to
zero, except hdam which should be set to 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.

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.

The curves specified by GV-Pgv-Bgv must be coordinated as shown in Figure D;


the curve of turbine power versus gate opening when blade angle is constant at its
minimum value must be smooth and monotonic. An Excel spread sheet, Kaplan.xls,
is provided in the samples directory (\upslf17\samples\Kaplan.xls) to assist in
preparation of the GV-Pgv-Bgv data.

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

g) The “fix bad data” option will do the following:


a. Set Tr, Tg, Tw, and Tf to a minimum of 4*delt.
b. If non-zero, set Tnp to a minimum of 4*delt
c. Set Rperm (R) to a minimum of 0.01.
d. Set rtemp (r) to a minimum of Rperm.
e. Set At to a minimum of 0.5.
f. Set Gmin to a minimum of 0.0.
g. If Gmax < Gmin, swap the values

Output Channels:

Record
Level Name Description

1 gate Turbine gate position, pu


1 pm Turbine power, MW
2 bld Blade position, pu

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.

Figure A Hygov Transfer Function Model

b
Notes:

a=power at zero flow, normally


negative
Turbine Power, p.u.

slope=At
b=power at 1 per unit flow,
normally >1

At=turbine gain, normally >1

0.0

0 qnl gate opening, p.u. 1.0

Figure B Simple Hydro Turbine Model – i


(1,0,1.0)
1.0
(gv5,Pgv5)
(gv4,Pgv4)

Turbine Power, p.u.


(gv3,Pgv3)

(gv2,Pgv2)

(gv1,Pgv1)

0.0
(gv0,Pgv0)

0 gate opening, p.u. 1.0

Figure C Francis/Pelton Turbine Model – ii

(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)

0 gate opening, p.u. 1.0

Figure D Kaplan Turbine Model – iii


Figure E Kaplan Turbine Calculation Sheet
Model Name: hygovr

Description Fourth order lead-lag governor and hydro


turbine.

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: shaft speed, electrical power

Invocation: hygovr [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

Pmax 1.0 Maximum gate opening, p.u. of mwcap


Pmin 0.0 Minimum gate opening, p.u. of mwcap
R 0.05 Steady-state droop, p.u.
Td 0.05 Input filter time constant, sec.
T1 1.5 Lead time constant 1, sec.
T2 0.1 Lag time constant 1, sec.
T3 1.5 Lead time constant 2, sec.
T4 0.1 Lag time constant 2, sec.
T5 0.0 Lead time constant 3, sec.
T6 0.05 Lag time constant 3, sec.
T7 0.0 Lead time constant 4, sec.
T8 0.05 Lag time constant 4, sec.
Tp 0.05 Gate servo time constant, sec.
Velop 0.2 Maximum gate opening velocity, p.u./sec
Velcl -0.2 Maximum gate closing velocity, p.u./sec (< 0.)
Ki 0.5 Integral gain, p.u.
Kg 2.0 Gate servo gain, p.u.
gmax 1.05 Maximum governor output, p.u.
gmin -0.05 Minimum governor output, p.u.
Tt 0.0 Power feedback time constant, sec.
db1 0.0 Intentional dead-band width, Hz.
eps 0.0 Intentional db hysteresis, Hz.
db2 0.0 Unintentional dead-band, MW
Tw 1.0 Water inertia time constant, sec.
At 1.2 Turbine gain, p.u.
Dturb 0.2 Turbine damping factor, p.u.
qnl 0.08 No-load turbine flow at nominal head, p.u.
H0 1.0 Turbine nominal head, p.u.
Gv1 -1.0 Nonlinear gain point 1, p.u. gv
Pgv1 0.0 Nonlinear gain point 1, p.u. power
Gv2 0.0 Nonlinear gain point 2, p.u. gv
Pgv2 0.0 Nonlinear gain point 2, p.u. power
Gv3 0.0 Nonlinear gain point 3, p.u. gv
Pgv3 0.0 Nonlinear gain point 3, p.u. power
Gv4 0.0 Nonlinear gain point 4, p.u. gv
Pgv4 0.0 Nonlinear gain point 4, p.u. power
Gv5 0.0 Nonlinear gain point 5, p.u. gv
Pgv5 0.0 Nonlinear gain point 5, p.u. power
Gv6 0.0 Nonlinear gain point 6, p.u. gv
Pgv6 0.0 Nonlinear gain point 6, p.u. power

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) Tw, must be greater than zero.

c) If Tt is input as zero, feedback from CV instead of Pg is used (If Tt is less than


4*delt, Tt is set to zero).

d) The dead-bands are implemented as described in section 3.10.2.

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

1 cv Governor output, p.u.


1 gv Turbine gate position, p.u.
1 pm Turbine power, MW
Block Diagram:

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

Description 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.

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Shaft speed

Invocation: hygov [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Simple Francis Kaplan Description


Variable

relec 0.04 * * Governing droop using electrical power,


p.u.
tpelec 1.0 * * Power transducer time constant, sec.
kp 1.0 * * Proportional gain
ki 0.1 * * Integral gain
kd 0.0 * * Derivitive gain
td 1.0 * * Derivative element time constant, sec.
tg 0.5 * * Gate servo time constant, sec.
velm 0.2 * * Maximum gate velocity, p.u./sec.
gmax 1.0 * * Maximum gate opening, p.u. of mwcap
gmin 0.0 * * Minimum gate opening, p.u. of mwcap
tw 1.0 * * Water inertia time constant, sec.
at 1.2 1.1 1.1 Turbine gain, p.u.
dturb 0.5 * * Turbine damping factor, p.u.
qnl 0.08 * * No-load flow at nominal head, p.u.
gsp 1.00 * * Speed input gain (nominally 1.0)
db1 0 * * Intentional deadband width, Hz.
eps 0 * * Intentional db hysteresis, Hz
db2 0 * * Unintentional deadband, MW

GV0 0 0 0 Nonlinear gain point 0, p.u. gv


Pgv0 0 -0.1 -0.1 Nonlinear gain point 0, p.u. power
GV1 0 0.4 0.4 Nonlinear gain point 1, p.u. gv
Pgv1 0 0.42 0.35 Nonlinear gain point 1, p.u. power
GV2 0 0.5 0.5 Nonlinear gain point 2, p.u. gv
Pgv2 0 0.56 0.468 Nonlinear gain point 2, p.u. power
GV3 0 0.7 0.7 Nonlinear gain point 3, p.u. gv
Pgv3 0 0.8 0.796 Nonlinear gain point 3, p.u. power
GV4 0 0.8 0.8 Nonlinear gain point 4, p.u. gv
Pgv4 0 0.9 0.917 Nonlinear gain point 4, p.u. power
GV5 0 0.9 0.9 Nonlinear gain point 5, p.u. gv
Pgv5 0 0.97 0.99 Nonlinear gain point 5, p.u. power
hdam 1.0 1.0 1.0 Head available at dam, p.u.

Bgv0 0 0 0.0 Kaplan blade servo point 0, p.u.


Bgv1 0 0 0.0 Kaplan blade servo point 1, p.u
Bgv2 0 0 0.1 Kaplan blade servo point 2, p.u.
Bgv3 0 0 0.667 Kaplan blade servo point 3, p.u
Bgv4 0 0 0.9 Kaplan blade servo point 4, p.u.
Bgv5 0 0 1.0 Kaplan blade servo point 5, p.u.

bmax 0 0. 1.1276 Maximum blade adjustment factor


tblade 100. 100. 100. Blade servo time constant, sec.
rgate 0. 100. 100. Governing droop using gate position, p.u.

Notes:

a) Per unit parameters are on base of turbine rated-head 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.

c) Td, Tg, Tw must be greater than zero.

d) Dturb has the dimensions delta P/delta speed in per unit.

e) The deadbands are implemented as described in section 3.10.2.

f) The characteristics of the turbine can be represented by three different gate-head-


flow-power characteristics:

i. Simple General Purpose Model


a simple linear relationship given by At, qnl as shown in figure B

ii. Francis/Pelton Turbine Model


a nonlinear relationship between flow and gate opening as shown in figure C
and described by GV0, Pgv0 thru Pgv5

iii. Kaplan Turbine Model


a nonlinear relationship between flow, gate, and blade angle as shown in
figure D and described by GV0, Pgv0 thru Pgv5, and Bgv0 thru Bgv5

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.

The curves specified by GV-Pgv-Bgv must be coordinated as shown in Figure D;


the curve of turbine power versus gate opening when blade angle is constant at its
minimum value must be smooth and monotonic. An Excel spread sheet, Kaplan.xls,
is provided in the samples directory (\upslf17\samples\Kaplan.xls) to assist in
preparation of the GV-Pgv-Bgv data.

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

1 gate Turbine gate position, p.u.


1 pm Turbine power, MW
1 blade Blade serve stroke, p.u.

Block Diagram:
Figure A Hypid Transfer Function Model

Figure B Simple Hydro Turbine Model


Figure C Francis/Pelton Turbine 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)

0 gate opening, p.u. 1.0

Figure D Kaplan Turbine Model


Figure E Kaplan Turbine Calculation Sheet
Model Name: hyst1

Description Hydro turbine with Woodward Electro-


hydraulic PID Governor, Penstock, Surge Tank,
and Inlet Tunnel

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Generator power/speed reference

Invocation: hyst1 [<n>] {<name><kv>}<id>:

Parameters:

EPCL Default
Variable Data Description

Treg 0.0 Input time constant of governor, sec.


Rperm 0.0 Governor droop, per unit
Kp 0.0 Governor proportional gain
Ki 0.0 Governor Integral gain
Kd 0.0 Governor Derivative gain
Ta 0.0 Governor High Frequency Cutoff Time Constant
Tb 0.0 Gate servo time constant
Velmax 0.0 Max gate opening velocity, p.u./sec.
Velmin 0.0 Max gate closing velocity, p.u./sec.
Gmax 0.0 Max gate opening, p.u.
Gmin 0.0 Min gate opening, p.u.
Pmax 0.0 not used
Pmin 0.0 not used
D 0.0 Turbine Damping Coefficient
Twp 0.0 Penstock Water Time Constant, sec.
Twt 0.0 Tunnel Water Time Constant, sec.
flos 0.0 Tunnel Loss Coefficient, p.u.
As1 0.0 Area constant of Upper Surge Tank, sec.
As2 0.0 Area constant of Lower Surge Tank, sec.
h2 0.0 Level of surge tank size change, per unit

Notes:

a) The turbine damping coefficient, D, is the value of D(turbine power)/D(speed).


b) Twp is the inertia time constant of the penstock, LpVp/(gH)

Lp penstock length
Vp velocity in penstock at rated flow
g gravity
H nominal total head (headwater elevation - tailwater elevation)

c) Twt is the inertia time constant of the tunnel, LtVt/(gH) where

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

h2 = (elevation of level change) - (tailwater elevation)


---------------------------------------------------
(headwater elevation) - (tailwater elevation)

e) The surge tank cross sections are specified by As1 and As2 which are time
constants, in seconds, given by

As = aH/Q

where

a surge tank water surface area


H nominal total head
Q rated flow

f) The tunnel friction loss coefficient, flos, is given by

flos (head loss at rated flow)/(nominal total head)

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

Description IEEE steam turbine/governor model (with


deadband and nonlinear valve gain added)

Prerequisites: One or two generator models ahead of this


model in the dynamic models table

Inputs: Shaft speed

Invocation: ieeeg1 [<nh>] {<nameh> <kvh>} <idh> [<nl>]


{<namel> <kvl>} <idl> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

K 25.0 Governor gain (reciprocal of droop), p.u.


T1 0.0 Governor lag time constant, sec.
T2 0.0 Governor lead time constant, sec.
T3 0.1 Valve positioner time constant, sec.
Uo 1.0 Maximum valve opening velocity, p.u./sec.
Uc -10.0 Maximum valve closing velocity, p.u./sec (< 0.)
Pmax 1.0 Maximum valve opening, p.u. of mwcap.
Pmin 0.0 Minimum valve opening, p.u. of mwcap
T4 0.3 Inlet piping/steam bowl time constant, sec.
K1 0.3 Fraction of hp shaft power after first boiler pass
K2 0.0 Fraction of lp shaft power after first boiler pass
T5 4.0 Time constant of second boiler pass, sec
K3 0.2 Fraction of hp shaft power after second boiler pass
K4 0.0 Fraction of lp shaft power after second boiler pass
T6 0.3 Time constant of third boiler pass, sec.
K5 0.5 Fraction of hp shaft power after third boiler pass
K6 0.0 Fraction of lp shaft power after third boiler pass
T7 0.0 Time constant of fourth boiler pass, sec
K7 0.0 Fraction of hp shaft power after fourth boiler pass
K8 0.0 Fraction of lp shaft power after fourth boiler pass
db1 0.0 Intentional deadband width, Hz.
eps 0.0 Intentional db hysteresis, Hz.
db2 0.0 Unintentional deadband, MW
GV1 0.0 Nonlinear gain point 1, p.u. gv
Pgv1 0.0 Nonlinear gain point 1, p.u. power
GV2 0.0 Nonlinear gain point 2, p.u. gv
Pgv2 0.0 Nonlinear gain point 2, p.u. power
GV3 0.0 Nonlinear gain point 3, p.u. gv
Pgv3 0.0 Nonlinear gain point 3, p.u. power
GV4 0.0 Nonlinear gain point 4, p.u. gv
Pgv4 0.0 Nonlinear gain point 4, p.u. power
GV5 0.0 Nonlinear gain point 5, p.u. gv
Pgv5 0.0 Nonlinear gain point 5, p.u. power
GV6 0.0 Nonlinear gain point 6, p.u. gv
Pgv6 0.0 Nonlinear gain point 6, p.u. power

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.

h) The deadbands are implemented as described in section 3.12.2.2

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

1 ph High pressure turbine shaft power, MW.


1 pl Low pressure turbine shaft power, MW

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

Description IEEE hydro turbine/governor model.


Represents plants with straightforward penstock
configurations and hydraulic-dashpot
governors. (Optional deadband and nonlinear
gain added.)

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Shaft speed

Invocation: ieeeg3 [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

Tg 0.5 Gate servo time constant, sec.


Tp 0.03 Pilot servo valve time constant, sec.
Uo 0.1 Maximum gate opening velocity, p.u./sec.
Uc -0.1 Maximum gate closing velocity, p.u./sec. (< 0.)
Pmax 1.0 Maximum gate opening, p.u. of mwcap
Pmin 0.0 Minimum gate opening, p.u. of mwcap
Rperm 0.05 Permanent droop, p.u.
Rtemp 0.5 Temporary droop, p.u.
Tr 12.0 Dashpot time constant, sec.
Tw 2.0 Water inertia time constant, sec.
Kturb 1.0 Turbine gain, p.u.
Aturb -1.0 Turbine numerator multiplier
Bturb 0.5 Turbine denominator multiplier
Spare 0.0 Unused parameter
db1 0.0 Intentional deadband width, Hz.
eps 0.0 Intentional db hysteresis, Hz.
db2 0.0 Unintentional deadband, MW
Gv1 0.0 Nonlinear gain point 1, p.u. gv
Pgv1 0.0 Nonlinear gain point 1, p.u. power
Gv2 0.0 Nonlinear gain point 2, p.u. gv
Pgv2 0.0 Nonlinear gain point 2, p.u. power
Gv3 0.0 Nonlinear gain point 3, p.u. gv
Pgv3 0.0 Nonlinear gain point 3, p.u. power
Gv4 0.0 Nonlinear gain point 4, p.u. gv
Pgv4 0.0 Nonlinear gain point 4, p.u. power
Gv5 0.0 Nonlinear gain point 5, p.u. gv
Pgv5 0.0 Nonlinear gain point 5, p.u. power
Gv6 0.0 Nonlinear gain point 6, p.u. gv
Pgv6 0.0 Nonlinear gain point 6, p.u. power

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.

c) This turbine governor model is a reasonable approximation to the performance of


simple hydro plants for small motions of the gates about a given load, but it
represents the variation of water inertia effect with load only if the values of the
turbine parameters are properly adjusted by the user as load is varied. For idealized
turbine model, set Kturb = 1., Aturb = -1., Bturb = 0.5.

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.

e) The deadbands are implemented as described in section 3.11.2.2.

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

1 gate Turbine gate position, p.u.


1 pm Turbine power, MW

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

Description Power system stabilizer

Prerequisites: Generator model ahead of this model in dynamic models


table

Inputs: Generator shaft speed


Frequency of generator terminal or system bus voltage
Generator electric power or accelerating power
Voltage amplitude of generator terminal bus or system
bus
Current amplitude in generator step-up transformer
branch

Invocation: ieeest [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

j 0.0 Input signal code


k 0.0 Remote signal bus number
A1 0.0 Notch filter parameters
A2 0.0 Notch filter parameters
A3 0.0 Notch filter parameters
A4 0.0 Notch filter parameters
A5 0.0 Notch filter parameters
A6 0.0 Notch filter parameters
T1 0.0 Lead/lag time constant, sec.
T2 0.0 Lead/lag time constant, sec.
T3 0.0 Lead/lag time constant, sec.
T4 0.0 Lead/lag time constant, sec.
T5 0.0 Washout numerator time constant, sec.
T6 0.0 Washout denominator time constant, sec.
Ks 0.0 Stabilizer gain
Lsmax 0.0 Maximum stabilizer output, p.u.
Lsmin 0.0 Minimum stabilizer output, p.u.
Vcu 0.0 Stabilizer input cutoff threshold, p.u.
Vcl 0.0 Stabilizer input cutoff threshold, p.u.
Tdelay 0.0 Time delay, sec.

Notes:

a) T2, T4, T5, T6 must be greater than zero.

b) T1, T3 and Tdelay may be zero.

c) Set T1 = T2 and/or T3 = T4 to obtain null effect from a lead/lag block.

d) Ks may be positive or negative depending on the input signal that is active. Ks


should normally be:

positive for shaft speed or frequency input


negative for electrical power input

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:

1 for shaft speed deviation


2 for frequency deviation of bus voltage
3 for generator electrical power
4 for generator accelerating power
5 for amplitude of bus voltage
6 not used
7 for amplitude of branch current

f) A1 through A6 may be zero. Set all A values to zero to ignore filter.


g) Tdelay should not exceed ten time steps.

Output Channels:

Record
Level Name Description

1 vs Stabilizer output signal, p.u.

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

if ( Vcu && ( Vct > Vcu ) )


V s = 0 .0
if ( Vcl && ( Vct < Vcl ) )
V s = 0 .0
else
Vs = Vllout

Vct = Compensating
voltage
( genbc[k].vcomp )
Model Name: ieeet1

Description IEEE (1968) type 1 excitation system model


with added speed multiplier. (Superceded by
DC1 and DC1A models.)

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator shaft speed

Invocation: ieeet1 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Transducer time constant, sec.


Ka 50.0 Voltage regulator gain (> 0.)
Ta 0.02 Voltage regulator time constant, sec. (> 0.)
Vrmax 1.0 Maximum control element output, p.u. (note c)
Vrmin -1.0 Minimum control element output, p.u
Ke -0.06 Exciter field resistance line slope margin, p.u. (note b)
Te 0.6 Exciter field time constant, sec (> 0.)
Kf 0.09 Rate feedback gain, p.u.
Tf 1.46 Rate feedback time constant, sec. (> 0.)
Spare 0.0 Required entry of zero
E1 2.8 Field voltage value, 1 (note d)
SE1 0.04 Saturation factor at E1 (note d)
E2 3.73 Field voltage value, 2 (note d)
SE2 0.33 Saturation factor at E2 (note d)

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.

e) The “fix bad data” option will do the following:


a. Set Ta, Te, and Tf to a minimum of 4*delt.
b. If non-zero, set Tr to a minimum of 4*delt
c. Set Ka to a minimum of 1.
d. If Vrmax < Vrmin, swap the values.

Output Channels:

Record
Level Name Description

1 er Voltage error, p.u.


1 vc Control element output, p.u.

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

Description Records MW and MVAR flow on an interface between


zones and/or areas

Prerequisites: Branches must exist in load flow case

Inputs: Voltage and current at "from" end of each branch

Invocation: ifmaz ! ! ! ! :

Parameters:

EPCL Default
Variable Data Description

AZ 0.0 Area/zone flag; 0 for areas, 1 for zone


Tf 0.0 Transducer or filter time constant, sec.
zf 0.0 Number of "from" area or zone
zt 0.0 Number of "to" area or zone

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.

b) Tf should normally be zero.

Output Channels:

Record
Level Name Description

1 pif Real power flow, MW


1 qif Reactive power flow, MVAR
Model Name: ifmon

Description Records MW and MVAR flow on all interfaces defined


in the load flow interface table

Prerequisites: The interface must be defined in the interface branch


and interface tables of the load flow case

Inputs: Real and reactive power flow on the branches of the


interface

Invocation: ifmon ! ! ! ! :

Parameters:

EPCL Default
Variable Data Description

Ifno ifno Interface number (not used)

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

1 pif Real power flow, MW


1 qif Reactive power flow, MVAR
Model Name: imetr

Description Branch current recorder. Places branch power and


current flow in output channels.

Prerequisites: Branch must exist

Inputs: Voltage and current at "from" end of branch

Invocation: imetr [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>} <ck>
<sec>:

Parameters:

EPCL Default
Variable Data Description

Tf 0.0 Transducer or filter time constant, sec

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

1 pbr Real power flow, MW.


1 qbr Reactive power flow, MVAR
1 ibr Current, p.u.
1 pul Branch loading, p.u. of rating
2 amps Branch current, AMPS

Block Diagram:

Voltage
1 MW, MVAR
1  sTf
Current
Current
Model Name: lcfb1

Description Turbine Load Controller model

Prerequisites: Turbine governor or plant model ahead of this model


in the dynamic models table

Inputs: Generator electrical power and frequency

Invocation: lcfb1 [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description Note

type 0.0 Flag indicating type of turbine governor reference i)


db 0.0 Controller dead band, p.u.
emax 0.02 Maximum control error, p.u. h)
fb 0.0 Frequency bias gain, p.u./p.u.
Kp 0.0 Proportional gain
Ki 0.0 Integral gain
fbf 0.0 Frequency bias flag - 1 to enable, 0 to disable d)
pbf 0.0 Power controller flag - 1 to enable, 0 to disable e)
Tpelec 0.0 Power transducer time constant, sec.
lrmax 0.0 Maximum turbine speed/load reference bias, p.u. g)
Pmwset 0.0 Power controller setpoint, MW c)
Kdrp 1.0 Gain j)

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.

b) Per unit parameters are on base of turbine MW capability.

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

emax = (max rate, pu.sec)*(droop of governor in pu)/(ki of Lcfb1)

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 references are generally as follows:

speed reference (1 + [initial power or valve position]*[droop])


load reference (0 + [initial power or valve position])

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:

For speed reference governors type = 0


For load reference governors type = 1
Lcfb1 checks the model name of the governor model to which it is applied against
the above list of load-reference governors. It issues an error message from the INIT
command if the parameter, type, is inappropriate for these models. Note that lcfb1
can be used with governors other than those listed above; it's data check assumes that
all governors other than the load-reference ones listed above use speed references.

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).

Speed References Load References


Governor Governor

hygov ieeeg1
ggov1 gast
tgov1 hyst1
gegt1 pidgov
ieeeg3 tgov3
hygov4 w2301
g2wscc
gpwscc
hyg3

Output Channels:

Record
Level Name Description

1 lcfb Controller output (Pref), p.u.


1 piou Integrator output
Block Diagram:

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

Description Performance-based model of single-phase air


conditioner load

Prerequisites: Load present in load flow working case as an


ordinary load with non-zero constant-P component

Inputs:

Invocation: ld1pac [<n>] {<name> <kv>} <id> : [n] [mva=<value>]

Parameters:

EPCL Default
Variable Data Description

Pul 1.0 Fraction of constant-power load to be represented


by this model (between 1.0 and 0.0)
Tv 0.02 Voltage filter time constant, sec.
Tf 0.05 Frequency filter time constant, sec.
CompPF 0.97 Compressor power factor
Vstall 0.70 Compressor stall voltage
Rstall 0.124 Compressor stall resistance, p.u.
Xstall 0.114 Compressor stall reactance, p.u.
Tstall 0.033 Compressor stall time delay, sec. (see note k.)
LFadj 0.3 Vstall adjustment proportional to loading factor
Kp1 0.0 Real power coefficient for running state 1, p.u.P/p.u.V
Np1 1.0 Real power exponent for running state 1
Kq1 6.0 Reactive power coefficient for running state 1, p.u.Q/p.u.V
Nq1 2.0 Reactive power exponent for running state 1
Kp2 12.0 Real power coefficient for running state 2, p.u.P/p.u.V
Np2 3.2 Real power exponent for running state 2
Kq2 11.0 Reactive power coefficient for running state 2, p.u.Q/p.u.V
Nq2 2.5 Reactive power exponent for running state 2
Vbrk 0.86 Compressor motor “breakdown” voltage, p.u.
Frst 0.2 Fraction of motors that are capable of restarting
Vrst 0.9 Voltage at which motors can restart, p.u.
Trst 0.4 Time delay before motors can restart, sec.
CmpKpf 1.0 Real power frequency sensitivity, p.u.P/p.u.f
CmpKqf -3.3 Reactive power frequency sensitivity, p.u.Q/p.u.f
Vc1off 0.45 Voltage 1 at which contactors open, p.u.
Vc2off 0.35 Voltage 2 at which contactors open, p.u.
Vc1on 0.50 Voltage 1 at which contactors close, p.u.
Vc2on 0.40 Voltage 2 at which contactors close, p.u.
Tth 10.0 Compressor motor heating time constant, sec.
Th1t 1.3 Temperature at which comp. motors begin tripping, p.u. of rated
Th2t 4.3 Temperature at which all motors are tripped, p.u. of rated
fuvr 0.0 Fraction of compressor motors with undervoltage relays
uvtr1 0.8 First undervoltage pickup level, p.u.
ttr1 0.2 First definite time for U/V trip, sec.
uvtr2 0.9 Second undervoltage pickup level, p.u.
ttr2 5.0 Second definite time for U/V trip, sec.

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

load.pm = ld1pac.pul * load.p


load.p = load.p - load.pm

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.

f) If “mva=<value>” is a negative value, it’s absolute value is interpreted as a “loading


factor”. The MVA base is calculated as the initial electrical power consumption of
the motor divided by the absolute value of this loading factor. This value should
normally be less than or equal to 1. If mva=0. is entered, the loading factor defaults
to 1.0.

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.

j) The “fix bad data” option will do the following:


a. If not zero, set Tv, Tf, and Tth to a minimum of 4*delt.
b. Set Frst to a minimum of 0.
c. Set CompPF to a minimum of 0.01.
k) Experimental Voltage-dependent stall time (VDST) is used if the input value of Tstall
is set to a negative value. This represents the following “Proposed AC Stall
threshold” derived from testing:

Current AC Stall threshold

Proposed AC Stall threshold

A single curve is coded into the model as follows:

Tstall (cycles) Vstall (p.u..)


3 0.46
6 0.53
9 0.55
12 0.565
15 0.57

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:

timer = timer + delt / (Tstall / fo )

(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

1 vt Terminal voltage, p.u.


1 freq Frequency, p.u.
1 pac A/C real power, MW
1 qac A/C reactive power, MVAr (includes capacitor, if any)
1 iac A/C current, p.u. (includes capacitor, if any)
2 fuvr Fraction of motors not tripped by undervoltage relay
2 fcon Fraction of motors not tripped by contactor
2 curA “A” motor current, p.u.
2 curB “B” motor current, p.u.
99 tmpA Temperature of motor A, p.u. of rated
99 fthA Fraction of A motor not tripped by termal protection
99 tmpB Temperature of motor B, p.u. of rated
99 fthB Fraction of B motor not tripped by termal protection
99 uvrA First U/V relay time after pick-up, sec.
99 uvrB Second U/V relay time after pick-up, sec.

Block Diagram:
Model Name: ldelec

Description Electronic load model

Prerequisites: Load present in load flow working case as an


ordinary load with non-zero constant-P component

Inputs:

Invocation: ldelec [<n>] {<name> <kv>} <id> : [n]

Parameters:

EPCL Default
Variable Data Description

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

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

1 vt Terminal voltage, p.u.


1 pel Real power, MW
1 qel Reactive power, MVAr
1 vmin Lowest value of voltage at load bus, p.u. (or Vd2,
whichever if greater)

Block Diagram/Equations:
if( Vt < Vmin ) Vmin = Vt
if( Vmin < Vd2 ) Vmin = Vd2

if( Vt < Vd2 )


Pel = 0.
Qel = 0.
else if( Vt < Vd1 )
if( Vt <= Vmin )
Pel = Po * load[k].shed * (Vt - Vd2) / (Vd1 - Vd2)
Qel = Pel * QPratio
else
Pel = Po * load[k].shed *
( (Vmin - Vd2) + frcel * (Vt - Vmin) )
/ (Vd1 - Vd2)
Qel = Pel * QPratio
endif
else
if( Vmin >= Vd1 )
Pel = Po * load[k].shed
Qel = Pel * QPratio
else
Pel = Po * load[k].shed *
( (Vmin - Vd2) + frcel * (Vd1 - Vmin) )
/ (Vd1 - Vd2);
Qel = Pel * QPratio
endif
endif
Model Name: ldtrpmon

Description Load trip monitor

Prerequisites: None

Inputs: Tripping values from composite load models

Invocation: ldtrpmon [<n>] {<name> <kv>} :

Parameters:

EPCL Default
Variable Data Description

flag none 1=area, 2=zone, 3=owner, 4=balancing area


num none Number of area, zone, owner, or balancing area
plotno 0.0 Plot selection number

Notes:

a) Ldtrpmon is intended to monitor the amount of load tripped by CMPLDW and


CMPLDWG internal protective devices and load shedding relays during a run.
Output channels for plotting are written for the selected area, zone, owner, or
balancing area.

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.

c) Terms used in the channel descriptions have the following meaning:


“Instantaneous” – (Initial MW value) minus (present MW value)
“Nominal” – (Fraction tripped) times (initial MW value)
“Tripped”- tripped by internal protective devices in the load models
“Shed” – tripped by external load shedding relay models
Note: For instantaneous values, “tripped” and “shed” amounts can’t be
distinguished from each other. Instantaneous values also include the MW loss
due to motor stalling and voltage changes, whereas nominal values do not.

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

Description Low/High Frequency Ride Through generator


protection

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Monitored bus frequency

Invocation: lhfrt [<n>] {<name> <kv>} <id>} [<nr>] {<namer>


<kvr>}: #<rl>

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:

a) The Delta frequency trip levels (dftrp) are computed as follows:

dftrp = | Monitored Frequency in p.u. |*fref - fref.

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:

lhfrt 12345 "GENBUS" 13.80 "1 ": #9


lhfrt 12345 "GENBUS" 13.80 "1 " 1000 “OTHERBUS” 13.80 : #9

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

1 tmr1 Timer 1, sec.


2 tmr2 Timer 2, sec.
3 tmr3 Timer 3, sec.
4 tmr4 Timer 4, sec.
5 tmr5 Timer 5, sec.
6 tmr6 Timer 6, sec.
7 tmr7 Timer 7, sec.
8 tmr8 Timer 8, sec.
9 tmr9 Timer 9, sec.
9 tm10 Timer 10, sec.
9 frel Frequency used by the model (Hz)
Model Name: lhfrta

Description Global Low/High Frequency Ride Through


generator protection

Prerequisites:

Inputs: Generator terminal bus frequency

Invocation: lhfrta [<n>] {<name> <kv>} <id>} [<nr>] {<namer>


<kvr>}: #<rl>

Parameters:

EPCL Default
Variable Data Description

flag 0 – whole system, 1 – area, 2 - zone


num Area or zone number (0 if flag is 0)
alarm If greater than zero, no tripping action is enforced; a
message is printed when a trip level is exceeded.
fref 60.0 Delta frequency is computed with respect to fref (See Note b)
dftrp1 0.0 Delta frequency trip level (See Note b)
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.
Notes:

a) All generators in the specified area or zone are monitored unless:


i. Generator is off-line.
ii. The stn “normal status” of the generator is set to -1 in the gens table.
iii. A specific lhfrt model for the generator is present.

b) The Delta frequency trip levels (dftrp) are computed as follows:

dftrp = | Monitored Frequency in p.u. |*fref - fref.

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):

lhfrta : "flag" 1 "num" 40 "alarm" 1 /


"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

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.

i) The “fix bad data” option will do the following:


 If fref is less than or equal to zero, set fref to 60.0
Model Name: lhsrt

Description Low/High speed generator protection

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Generator speed in p.u.

Invocation: lhsrt [<n>] {<name> <kv>} <id>}: #<rl>

Parameters:

EPCL Default
Variable Data Description

sref 1.0 Delta speed is computed with respect to sref


dstrp1 0.0 Delta speed trip level, p.u.
dstrp2 0.0 Delta speed trip level, p.u.
dstrp3 0.0 Delta speed trip level, p.u.
dstrp4 0.0 Delta speed trip level, p.u.
dstrp5 0.0 Delta speed trip level, p.u.
dstrp6 0.0 Delta speed trip level, p.u.
dstrp7 0.0 Delta speed trip level, p.u.
dstrp8 0.0 Delta speed trip level, p.u.
dstrp9 0.0 Delta speed trip level, p.u.
dstrp10 0.0 Delta speed trip level, p.u.
dttrp1 0.0 Trip time for dstrp1, sec.
dttrp2 0.0 Trip time for dstrp2, sec.
dttrp3 0.0 Trip time for dstrp3, sec.
dttrp4 0.0 Trip time for dstrp4, sec.
dttrp5 0.0 Trip time for dstrp5, sec.
dttrp6 0.0 Trip time for dstrp6, sec.
dttrp7 0.0 Trip time for dstrp7, sec.
dttrp8 0.0 Trip time for dstrp8, sec.
dttrp9 0.0 Trip time for dstrp9, sec.
dttrp10 0.0 Trip time for dstrp10, sec.
alarm 0.0 If greater than zero, no tripping action is enforced; a
message is printed when a trip level is exceeded.
Notes:

a) The Delta speed trip levels, Ds, are computed as follows:


Ds = Generator speed - sref.

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)

lhsrt 12345 "ABCDE " 13.50 "1 " : #9 /


"sref " 1.00 /
"dstrp1" -0.00250 "dstrp2" -0.0035 "dstrp3" 0.0025 "dstrp4" 0.0035 "dstrp5" 0.0 /
"dstrp6" 0.0 "dstrp7" 0.0 "dstrp8" 0.0 "dstrp9" 0.0 "dstrp10" 0.0 /
"dttrp1" 6.0 "dttrp2" 1.0 "dttrp3" 5.0 "dttrp4" 0.5 "dttrp5" 0.0 /
"dttrp6" 0.0 "dttrp7" 0.0 "dttrp8" 0.0 "dttrp9" 0.0 "dttrp10" 0.0 /
"alarm" 0.0

d) The “fix bad data” option does the following:


 If sref is less than or equal to zero, then sref is set to 1.0

Output Channels:

Record
Level Name Description

1 tmr1 Timer 1, sec.


2 tmr2 Timer 2, sec.
3 tmr3 Timer 3, sec.
4 tmr4 Timer 4, sec.
5 tmr5 Timer 5, sec.
6 tmr6 Timer 6, sec.
7 tmr7 Timer 7, sec.
8 tmr8 Timer 8, sec.
9 tmr9 Timer 9, sec.
9 tm10 Timer 10, sec.
Model Name: lhvrt

Description Low/High Voltage Ride Through generator


protection

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Monitored bus voltage

Invocation: lhvrt [<n>] {<name> <kv>} <id>} [<nr>] {<namer>


<kvr>}: #<rl>

Parameters:

EPCL Default
Variable Data Description

vref 1.0 Delta voltage is computed with respect to vref


dvtrp1 0.0 Delta voltage trip level, p.u.
dvtrp2 0.0 Delta voltage trip level, p.u.
dvtrp3 0.0 Delta voltage trip level, p.u.
dvtrp4 0.0 Delta voltage trip level, p.u.
dvtrp5 0.0 Delta voltage trip level, p.u.
dvtrp6 0.0 Delta voltage trip level, p.u.
dvtrp7 0.0 Delta voltage trip level, p.u.
dvtrp8 0.0 Delta voltage trip level, p.u.
dvtrp9 0.0 Delta voltage trip level, p.u.
dvtrp10 0.0 Delta voltage trip level, p.u.
dttrp1 0.0 Voltage trip time, sec. (See Note g)
dttrp2 0.0 Voltage trip time, sec.
dttrp3 0.0 Voltage trip time, sec.
dttrp4 0.0 Voltage trip time, sec.
dttrp5 0.0 Voltage trip time, sec.
dttrp6 0.0 Voltage trip time, sec.
dttrp7 0.0 Voltage trip time, sec.
dttrp8 0.0 Voltage trip time, sec.
dttrp9 0.0 Voltage trip time, sec.
dttrp10 0.0 Voltage 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:

a) The Delta voltage trip levels (Dv) are computed as follows:


Dv = | Monitored voltage | - vref.
The default monitored bus used to compute Dv is the generator terminal bus. If there
is a to-bus specified in the dyd file, then the to-bus is used to compute Dv.
b) The model should not be used with models that already include voltage protection,
e.g., gewtg.
c) The data should be entered sequentially, e.g., dvtrp1 and dttrp1 with value zero,
followed by non-zero entries is not allowed.
d) Examples of Zero Voltage Ride Through (ZVRT) and Low Voltage Ride Through
(LVRT) settings are shown below. Actual values for a specific wind turbine
generator or other generator should be obtained from the manufacturer.

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]

e) A sample invocation for the LVRT model is as follows:

lhvrt 5 "WTG TERM" .575 "1 " : #8 /


"vref" 1.00 /
"dvtrp1" -0.10 "dvtrp2" -0.50 "dvtrp3" -0.85 "dvtrp4" 0.10 "dvtrp5" 0.15 /
"dvtrp6" 0.30 "dvtrp7" 0.30 "dvtrp8" 0.00 "dvtrp9" 0.00 "dvtrp10" 0.00 /
"dttrp1" 3.00 "dttrp2" 1.30 "dttrp3" 0.02 "dttrp4" 1.00 "dttrp5" 0.10 /
"dttrp6" 0.02 "dttrp7" 0.02 "dttrp8" 0.00 "dttrp9" 0.00 "dttrp10" 0.00
f) For each of the ten [dvtrp, dttrp] pairs of input data the model executes the following
statements:
if( [ (dvtrp > 0) and (Dv > dvtrp) ] or [ (dvtrp < 0) and (Dv < dvtrp) ] )
then
if( Time_to_trip = 99999) Time_to_trip = time + dttrp
if( time >= Time_to_trip ) then trip generator
else
Reset Time_to_trip = 99999

Where Dv = | Monitored voltage | - vref.

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 “fix bad data” option will do the following:


 If vref is less than or equal to zero, set vref to 1.0

Output Channels:

Record
Level Name Description

1 tmr1 Timer 1, sec.


2 tmr2 Timer 2, sec.
3 tmr3 Timer 3, sec.
4 tmr4 Timer 4, sec.
5 tmr5 Timer 5, sec.
6 tmr6 Timer 6, sec.
7 tmr7 Timer 7, sec.
8 tmr8 Timer 8, sec.
9 tmr9 Timer 9, sec.
9 tm10 Timer 10, sec.
Model Name: lhvrta

Description Global “Low/High Voltage Ride Through”


generator protection for all generators in an
Area, Zone, or system.

Prerequisites:

Inputs: Generator terminal bus voltage

Invocation: lhvrta [<n>] {<name> <kv>} <id>}: #<rl>

Parameters:

EPCL Default
Variable Data Description

flag 0 0 – whole system, 1 – area, 2 - zone


num 0 Area or zone number (0 if flag is 0)
alarm 0.0 If greater than zero, no tripping action is enforced; a
message is printed when a trip level is exceeded.
vref 1.0 Delta voltage is computed with respect to vref
dvtrp1 0.0 Delta voltage trip level, p.u.
dvtrp2 0.0 Delta voltage trip level, p.u.
dvtrp3 0.0 Delta voltage trip level, p.u.
dvtrp4 0.0 Delta voltage trip level, p.u.
dvtrp5 0.0 Delta voltage trip level, p.u.
dvtrp6 0.0 Delta voltage trip level, p.u.
dvtrp7 0.0 Delta voltage trip level, p.u.
dvtrp8 0.0 Delta voltage trip level, p.u.
dvtrp9 0.0 Delta voltage trip level, p.u.
dvtrp10 0.0 Delta voltage trip level, p.u.
dttrp1 0.0 Voltage trip time, sec.
dttrp2 0.0 Voltage trip time, sec.
dttrp3 0.0 Voltage trip time, sec.
dttrp4 0.0 Voltage trip time, sec.
dttrp5 0.0 Voltage trip time, sec.
dttrp6 0.0 Voltage trip time, sec.
dttrp7 0.0 Voltage trip time, sec.
dttrp8 0.0 Voltage trip time, sec.
dttrp9 0.0 Voltage trip time, sec.
dttrp10 0.0 Voltage trip time, sec.
Notes:

a) All generators in the specified area or zone are monitored unless:


i. Generator is off-line.
ii. The stn “normal status” of the generator is set to -1 in the gens table.
iii. A specific lhvrt model for the generator is present.

b) The Delta voltage trip levels (Dv) are computed as follows:


Dv = | Terminal bus voltage | - vref.

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:

lhvrta : "flag" 1 "num" 40 "alarm" 1 /


"vref" 1.00 /
"dvtrp1" -0.10 "dvtrp2" -0.50 "dvtrp3" -0.85 "dvtrp4" 0.10 "dvtrp5" 0.15 /
"dvtrp6" 0.30 "dvtrp7" 0.30 "dvtrp8" 0.00 "dvtrp9" 0.00 "dvtrp10" 0.00 /
"dttrp1" 3.00 "dttrp2" 1.30 "dttrp3" 0.02 "dttrp4" 1.00 "dttrp5" 0.10 /
"dttrp6" 0.02 "dttrp7" 0.02 "dttrp8" 0.00 "dttrp9" 0.00 "dttrp10" 0.00
g) The “fix bad data” option will do the following:
 If vref is less than or equal to zero, set vref to 1.0
Model Name: lm2500

Description LM2500 Aero-derivative gas turbine governor


Prerequisites: Generator model ahead of this model in the
dynamic models table

Inputs: Shaft speed and electrical power

Invocation: Lm2500 [<n>] {<name> <kv>} <id> : [mwcap=<value>]

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:

a) This model represents the LM2500 aero-derivative gas turbine engine. It is a


simplified version of the detailed model that has been provided by GE aircraft engine
and it is intended

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:

Block Diagram Not Completed

GE PSLF
General Electric International, Inc - Proprietary Information
Model Name: lm6000

Description LM6000 Aero-derivative gas turbine governor

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Shaft speed and electrical power

Invocation: lm6000 [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

droop 0.04 Permanent droop, p.u


tplec 2.0 Electrical power transducer time constant, sec
minflow 2400. Minimum fuel flow
fuel = 0 for natural gas, = 1 for liquid fuel
hpsref 10700 HP turbine maximum speed reference
hphiref 10711 HP turbine high maximum speed reference
decref -4000 HP turbine maximum deceleration rate
accref 1000 HP turbine maximum acceleration rate
t48ref 1600 Temperature 48 maximum reference
t3ref 1010 Compressor discharge temperature maximum reference
ps3ref 440 Compressor discharge pressure maximum reference
gaslead 0.17 Lead time constant for gas dynamics
gaslag 0.40 Lag time constant for gas dynamics
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
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 8923.0 Lookup table for ps3 vs. n25
n252ps3 10075.0 Lookup table for ps3 vs. n25
n253ps3 10180.0 Lookup table for ps3 vs. n25
n254ps3 10223.0 Lookup table for ps3 vs. n25
ps31 202.2 Lookup table for ps3 vs. n25
ps32 386.4 Lookup table for ps3 vs. n25
ps33 415.8 Lookup table for ps3 vs. n25
ps34 423.6 Lookup table for ps3 vs. n25

Notes:

a) This model represents the LM6000 aero-derivative gas turbine engine. It is a


simplified version of the detailed model that has been provided by GE aircraft engine
and it is intented

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:

Block Diagram Not Completed


Model Name: lnrelscan

Description Line relay scanning model

Prerequisites: None

Inputs: Voltage and current at ends of each branch

Invocation: lnrelscan :

Parameters:

EPCL Default
Variable Data Description

flag 0.0 System/area/zone flag, 0-entire system, 1-area, 2-zone


num 0.0 Area or zone number
kVmin 50.0 Minimum kV level to scan
CenterA 0.46 Center of Impedance Circle A (fraction of line Z)
CenterB 0.75 Center of Impedance Circle B (fraction of line Z)
CenterC 1.10 Center of Impedance Circle C (fraction of line Z)

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

Description Branch overcurrent relay with inverse time


characteristic

Prerequisites: The branch must be present in the working case

Inputs:

Invocation: locti [<n>] {<name> <kv>} <id> [<nt>] {<namet>


<kvt>} <ck> <sec>:

Parameters:

EPCL Default
Variable Data Description

Mode 0.0 0 (alarm) 1 (trip) (Note g


Pickup 0.0 Pickup current, p.u (system base).
tdm 1.0 Time dial multiplier (Note h)
tcb 0.0 Circuit breaker time, sec.
m1 0.0 Multiple of pick up
t1 0.0 Time to trip, sec.
m2 0.0 Multiple of pick up
t2 0.0 Time to trip, sec.
m3 0.0 Multiple of pick up
t3 0.0 Time to trip, sec.
m4 0.0 Multiple of pick up
t4 0.0 Time to trip, sec.
m5 0.0 Multiple of pick up (saturation current)
t5 0.0 Time to trip, sec.
Treset 0.0 Zero current reset time (Note e)
t3trip 0.0 For 3 winding xfmr: 0 = trip only monitored winding,
1 = trip whole transformer (Note b)

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/time to close contact) dt


Issue Trip signal when θ = 1

e) Two methods of resetting operation are available to the user


a. Instantaneous reset: In this method, the relay would reset instantaneously
when the current drops below the pickup value. The method can be
invoked by setting Treset to 0
b. Timed reset: The relay won’t reset instantaneously when the current drops
below pickup value. Rather it resets at a rate proportional to the square of
deviation of current with respect to the pickup value. If the current is zero,
it would take Treset seconds to completely reset the relay. The relay
would begin to reset when the current drops below the pickup value. If the
current drops to 0, it would take Treset seconds to reset. If the current
exceeds the pickup value while the relay is resetting, the relay would
begin integrating from its current reset condition.

θ = ∫ -( (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

1 tm Timer travel, fraction of time to operate


2 ibr Branch current measured by the device, p.u. on system base

Block Diagram:
Time (sec)
Model Name: lofscan

Description Loss-of-field scanning model

Prerequisites: None

Inputs: Voltage and current at terminals of each


generator

Invocation: lofscan :

Parameters:

EPCL Default
Variable Data Description

flag 0.0 System/area/zone flag, 0-entire system, 1-area, 2-zone


num 0.0 Area or zone number

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

Description Definite time under frequency load shedding


relay acting at a bus

Prerequisites: The referenced bus and load must exist in the


load flow working case

Inputs: Frequency of voltage at the bus

Invocation: lsdt1 [<n>] {<name> <kv>} <id>:

Parameters:

EPCL Default
Variable Data Description

F1 0.0 First stage pick-up value, hz


T1 0.0 First stage time delay, sec.
Tcb1 0.0 First stage breaker delay, sec.
sf1 0.0 First stage shedding fraction, p.u.
F2 0.0 Second stage pick-up value, hz
T2 0.0 Second stage time delay, sec.
Tcb2 0.0 Second stage breaker delay, sec.
sf2 0.0 Second stage shedding fraction, p.u.
F3 0.0 Third stage pick-up value, p.u.
T3 0.0 Third stage time delay, sec.
Tcb3 0.0 Third stage breaker delay, sec.
sf3 0.0 Third stage shedding fraction, p.u.
Treset 0.0 Reset time, sec.
Tfilter 0.0 Input transducer time constant, sec.

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:

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) 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 sh Load at bus to be retained, p.u..


2 frel Frequency (Hz)

Block Diagram:
Model Name: lsdt2

Description Definite time under voltage load shedding relay


acting at a bus

Prerequisites: The referenced bus and load must exist in the


load flow working case

Inputs: Voltage at a bus (either load terminal or


monitored bus)

Invocation: lsdt2 [<n>] {<name> <kv>} <id> !!!!! [<mon_i>]


{<name> <kv>}:

Parameters:

EPCL Default
Variable Data Description

Mode 0 0 = deviation from initial condition voltage


1 = absolute voltage
V1 0.0 First stage pick-up value, p.u.
T1 0.0 First stage time delay, sec.
Tcb1 0.0 First stage breaker delay, sec.
sv1 0.0 First stage shedding fraction, p.u.
V2 0.0 Second stage pick-up value, p.u.
T2 0.0 Second stage time delay, sec.
Tcb2 0.0 Second stage breaker delay, sec.
sv2 0.0 Second stage shedding fraction, p.u.
V3 0.0 Third stage pick-up value, p.u.
T3 0.0 Third stage time delay, sec.
Tcb3 0.0 Third stage breaker delay, sec.
sv3 0.0 Third stage shedding fraction, p.u.
Treset 0.0 Not used
Tfilter 0.0 Input transducer time constant, sec.
V4 0.0 Fourth stage pick-up value, p.u.
T4 0.0 Fourth stage time delay, sec.
Tcb4 0.0 Fourth stage breaker delay, sec.
sv4 0.0 Fourth stage shedding fraction, p.u.
V5 0.0 Fifth stage pick-up value, p.u.
T5 0.0 Fifth stage time delay, sec.
Tcb5 0.0 Fifth stage breaker delay, sec.
sv5 0.0 Fifth stage shedding fraction, p.u.
V6 0.0 Sixth stage pick-up value, p.u.
T6 0.0 Sixth stage time delay, sec.
Tcb6 0.0 Sixth stage breaker delay, sec.
sv6 0.0 Sixth stage shedding fraction, p.u.

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:

After 1st stage trip: 95 MW


After 1st and 2nd stage trip: 85 MW
After 1st, 2nd and 3rd stage trip: 75 MW
After 1st, 2nd, 3rd and 4th stage trip: 55 MW
After 1st, 2nd, 3rd, 4th and 5th stage trip: 30 MW
After 1st, 2nd, 3rd, 4th, 5th and 6th stage 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 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

1 shv Load at bus to be retained, p.u.

Block Diagram:
Model Name: lsdt3

Description Definite time under voltage load shedding relay


acting at a bus

Prerequisites: The referenced bus and load must exist in the


load flow working case

Inputs: Voltage at a bus (either load terminal or


monitored bus)

Invocation: Lsdt3 [<n>] {<name> <kv>} <id> !!!!! [<mon_i>]


{<name> <kv>}:

Parameters:

EPCL Default
Variable Data Description

Mode 0 0 = deviation from initial condition voltage


1 = absolute voltage
V1 0.0 First stage pick-up value, p.u.
T1 0.0 First stage time delay, sec.
Tcb1 0.0 First stage breaker delay, sec.
sv1 0.0 First stage shedding fraction, p.u.
V2 0.0 Second stage pick-up value, p.u.
T2 0.0 Second stage time delay, sec.
Tcb2 0.0 Second stage breaker delay, sec.
sv2 0.0 Second stage shedding fraction, p.u.
V3 0.0 Third stage pick-up value, p.u.
T3 0.0 Third stage time delay, sec.
Tcb3 0.0 Third stage breaker delay, sec.
sv3 0.0 Third stage shedding fraction, p.u.
Tfilter 0.0 Input transducer time constant, sec.
vreset_1a 1.0 First stage first reset voltage, p.u.
treset_1a 0.0 First stage first reset time delay, sec.
vreset_1b 1.0 First stage second reset voltage, p.u.
treset_1b 0.0 First stage second reset time delay, sec.
vreset_2a 1.0 Second stage first reset voltage, p.u.
treset_2a 0.0 Second stage first reset time delay, sec.
vreset_2b 1.0 Second stage second reset voltage, p.u.
treset_2b 0.0 Second stage second reset time delay, sec.
vreset_3a 1.0 Third stage first reset voltage, p.u.
treset_3a 0.0 Third stage first reset time delay, sec.
vreset_3b 1.0 Third stage second reset voltage, p.u.
treset_3b 0.0 Third stage second reset time delay, sec.

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:

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 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

1 shv Load at bus to be retained, p.u.

Block Diagram:
Model Name: lsdt3a

Description Definite time under voltage load shedding relay


acting at a bus

Prerequisites: The referenced bus and load must exist in the


load flow working case

Inputs: Voltage at a bus (either load terminal or


monitored bus)

Invocation: Lsdt3 [<n>] {<name> <kv>} <id> !!!!! [<mon_i>]


{<name> <kv>}:

Parameters:

EPCL Default
Variable Data Description

Mode 0 0 = deviation from initial condition voltage


1 = absolute voltage
V1pickup 0.0 First stage pick-up value, p.u.
V1 0.0 First stage set-point value, p.u.
T1 0.0 First stage time delay, sec.
Tcb1 0.0 First stage breaker delay, sec.
sv1 0.0 First stage shedding fraction, p.u.
V2pickup 0.0 Second stage pick-up value, p.u.
V2 0.0 Second stage set-point value, p.u.
T2 0.0 Second stage time delay, sec.
Tcb2 0.0 Second stage breaker delay, sec.
sv2 0.0 Second stage shedding fraction, p.u.
V3pickup 0.0 Third stage pick-up value, p.u.
V3 0.0 Third stage set-point value, p.u.
T3 0.0 Third stage time delay, sec.
Tcb3 0.0 Third stage breaker delay, sec.
sv3 0.0 Third stage shedding fraction, p.u.
Tfilter 0.0 Input transducer time constant, sec.
vreset_1a 1.0 First stage first reset voltage, p.u.
treset_1a 0.0 First stage first reset time delay, sec.
vreset_1b 1.0 First stage second reset voltage, p.u.
treset_1b 0.0 First stage second reset time delay, sec.
vreset_2a 1.0 Second stage first reset voltage, p.u.
treset_2a 0.0 Second stage first reset time delay, sec.
vreset_2b 1.0 Second stage second reset voltage, 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
treset_2b 0.0 Second stage second reset time delay, sec.
vreset_3a 1.0 Third stage first reset voltage, p.u.
treset_3a 0.0 Third stage first reset time delay, sec.
vreset_3b 1.0 Third stage second reset voltage, p.u.
treset_3b 0.0 Third stage second reset time delay, sec.

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:

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 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

1 shv Load at bus to be retained, 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
Block Diagram:

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
Model Name: lsdt7

Description Definite time under frequency load shedding


relay acting at a bus

Prerequisites: The referenced bus and load must exist in the


load flow working case

Inputs: Frequency of voltage at the bus

Invocation: lsdt7 [<n>] {<name> <kv>} <id>:

Parameters:

EPCL Default
Variable Data Description

f1 0.0 First stage pick-up value, hz


T1 0.0 First stage time delay, sec.
Tcb1 0.0 First stage breaker delay, sec.
sf1 0.0 First stage shedding fraction, p.u.
df1 0.0 First stage df/dt setting, Hz/sec
f2 0.0 Second stage pick-up value, hz
T2 0.0 Second stage time delay, sec.
Tcb2 0.0 Second stage breaker delay, sec.
sf2 0.0 Second stage shedding fraction, p.u.
df2 0.0 Second stage df/dt setting, Hz/sec
f3 0.0 Third stage pick-up value, p.u.
T3 0.0 Third stage time delay, sec.
Tcb3 0.0 Third stage breaker delay, sec.
sf3 0.0 Third stage shedding fraction, p.u.
df3 0.0 Third stage df/dt setting, Hz/sec
Treset 0.0 Reset time, sec.
Tfilter 0.0 Input transducer time constant, sec.

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

1 sh Load at bus to be retained, p.u..


2 frel Frequency used by this model (Hz)

Block Diagram:

Definite Shed, (p.u.)


frel
Time
Characteristic

GE PSLF
General Electric International, Inc - Proprietary Information
GE PSLF
General Electric International, Inc - Proprietary Information
Model Name: lsdt8

Description Definite time under frequency load shedding


relay acting at a bus

Prerequisites: The referenced bus and load must exist in the


load flow working case

Inputs: Frequency of voltage at the bus

Invocation: lsdt8 [<n>] {<name> <kv>} <id>:

Parameters:

EPCL Default
Variable Data Description

f1 0.0 First stage pick-up value, hz


T1 0.0 First stage time delay, sec.
Tcb1 0.0 First stage breaker delay, sec.
sf1 0.0 First stage shedding fraction, p.u.
df1 0.0 First stage df/dt setting, Hz/sec
f2 0.0 Second stage pick-up value, hz
T2 0.0 Second stage time delay, sec.
Tcb2 0.0 Second stage breaker delay, sec.
sf2 0.0 Second stage shedding fraction, p.u.
df2 0.0 Second stage df/dt setting, Hz/sec
f3 0.0 Third stage pick-up value, p.u.
T3 0.0 Third stage time delay, sec.
Tcb3 0.0 Third stage breaker delay, sec.
sf3 0.0 Third stage shedding fraction, p.u.
df3 0.0 Third stage df/dt setting, Hz/sec
Treset 0.0 Reset time, sec.
Tfilter 0.0 Input transducer time constant, sec.

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:

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 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

1 sh Load at bus to be retained, p.u..


2 frel Frequency (Hz)

Block Diagram:
Model Name: lsdt9

Description Definite-time under-frequency load shedding


relay acting at a bus, with up to 9 stages

Prerequisites: The referenced bus and load must exist in the


load flow working case

Inputs: Frequency of voltage at the bus

Invocation: lsdt9 [<n>] {<name> <kv>} <id>:

Parameters:

EPCL Default
Variable Data Description

Tfilter 0.0 Input transducer time constant, sec.


Treset 0.0 Reset time, sec.
fp1 0.0 First stage pick-up value, hz
Tp1 0.0 First stage time delay, sec.
Tcb1 0.0 First stage breaker delay, sec.
sf1 0.0 First stage shedding fraction, p.u.
fp2 0.0 Second stage pick-up value, hz
Tp2 0.0 Second stage time delay, sec.
Tcb2 0.0 Second stage breaker delay, sec.
sf2 0.0 Second stage shedding fraction, p.u.
fp3 0.0 Third stage pick-up value, p.u.
Tp3 0.0 Third stage time delay, sec.
Tcb3 0.0 Third stage breaker delay, sec.
sf3 0.0 Third stage shedding fraction, p.u.
fp4 0.0 Fourth stage pick-up value, p.u.
Tp4 0.0 Fourth stage time delay, sec.
Tcb4 0.0 Fourth stage breaker delay, sec.
sf4 0.0 Fourth stage shedding fraction, p.u.
fp5 0.0 Fifth stage pick-up value, p.u.
Tp5 0.0 Fifth stage time delay, sec.
Tcb5 0.0 Fifth stage breaker delay, sec.
sf5 0.0 Fifth stage shedding fraction, p.u.
fp6 0.0 Sixth stage pick-up value, p.u.
Tp6 0.0 Sixth stage time delay, sec.
Tcb6 0.0 Sixth stage breaker delay, sec.
sf6 0.0 Sixth stage shedding fraction, p.u.
fp7 0.0 Seventh stage pick-up value, p.u.
Tp7 0.0 Seventh stage time delay, sec.
Tcb7 0.0 Seventh stage breaker delay, sec.
sf7 0.0 Seventh stage shedding fraction, p.u.
fp8 0.0 Eighth stage pick-up value, p.u.
Tp8 0.0 Eighth stage time delay, sec.
Tcb8 0.0 Eighth stage breaker delay, sec.
sf8 0.0 Eighth stage shedding fraction, p.u.
fp9 0.0 Ninth stage pick-up value, p.u.
Tp9 0.0 Ninth stage time delay, sec.
Tcb9 0.0 Ninth stage breaker delay, sec.
sf9 0.0 Ninth stage shedding fraction, p.u.

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:

after first stage trip 80 MW


after first and second stage trip 50 MW
after three stages trip 0 MW

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

1 sh Load at bus to be retained, p.u..


2 frel Frequency (Hz)

Block Diagram:
Model Name: lsmon

Description Load shedding monitor

Prerequisites: None

Inputs: load[].pshed values from load models

Invocation: lsmon [<n>] {<name> <kv>} :

Parameters:

EPCL Default
Variable Data Description

Plotno 0.0 Plot selection number

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.

d) Lsmon must be invoked ONLY ONCE in each simulation setup.

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

1 lsmo Pshed System Total system MW shed


1 lsmo Pshed [Area 1 Name MW shed in first area
1 lsmo Pshed [Area 2 Name] MW shed in second area
1 … … … …
1 lsmo Pshed [Area n Name] MW shed in last area
Model Name: ltc1

Description Transformer Load Tap Changer model with


optional saturation

Prerequisites: Type 2 transformer must exist

Inputs: Voltage at regulated bus

Invocation: ltc1 [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet>


<kvt>} <ck> <sec>:

Parameters:

EPCL Default
Variable Data Description

Tdelay 0.0 Time delay to initiate tap motion, sec.


Tmotion 0.0 Tap motion time, sec.
Noprint 0.0 set to 1 to suppress printing to log file
S1 0.0 Saturation factor at V = 1.0 p.u.
S12 0.0 Saturation factor at V = 1.2 p.u.

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.

b) When the regulated voltage is out of its regulating range (tran[].vmin to


tran[]vmax), a tap motion timer is started. If the voltage remains out of range for
more than Tdelay seconds, a tap motion will be initiated. If the voltage returns
within limits before Tdelay seconds, the timer is reset. The tap will take tmotion
seconds to move to the next tap position. If the voltage is still out of range,
another tap step will be initiated.

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

1 vfrm Voltage at from bus, p.u.


1 vto Voltage at to bus, p.u.
1 tapp LTC tap position, p.u.
Model Name: mexs

Description Manual excitation control with field circuit


resistance

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Generator field current

Invocation: mexs [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Ka 0.0 Gain (> 0.)


Ta 0.0 Time constant, sec. (> 0.)
Rex 0.0 Effective Output Resistance

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.

b) Ka and Ta must be greater than zero.

c) Rex represents the effective output resistance seen by the excitation system.

Output Channels:

Record
Level Name Description

1 ifd Generator field current, p.u.

Block Diagram:
Vref

Vcomp Ka Efd

1  sTa
S0

Vsig
Rex

LadIfd
Model Name: monds

Please contact pslf-support@ge.com for details


Model Name: mondsa

Please contact pslf-support@ge.com for details


Model Name: monit

Description Dynamic simulation solution monitor (EPC specified


model)

Prerequisites: Area definition records in load flow working case

Inputs: Network solution convergence monitor, bus voltages

Invocation: monit [<n>] {<name> <kv>} :

Parameters:

EPCL Default
Variable Data Description

Plotno 0.0 Page number to which output channels are to be assigned

Notes:

a) Monit is intended to monitor the general quality of a simulation run while it is in


progress, and to indicate likely trouble spots.
The first four output channels of monit track the quality of the network solutions in
the dynamic simulation. In a normal simulation run the largest voltage and angle
changes should be below 0.0001 p.u. and 0.001 radians, respectively, but a few
occurrences of changes above these values is not unusual or an indication of failure of
the run. Consistent values of large voltage and angle change, however, are a sure
indication of trouble.

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.

c) Monit must be invoked ONLY ONCE in each simulation setup.


d) The parameter, pltn, of monit should be used to assign the model's outputs to a
convenient plotting page. This should normally be a number that is not a bus number.
Pltn may be zero.

e) It is usually most convenient to make monit the first model invoked in the simulation
setup.

Output Channels:

Record
Level Name Description

1 numi Number of iterations


1 bmdr Bus with largest voltage magnitude change in network solution
1 vmdr Largest voltage magnitude change
1 bmdi Bus with largest angle change in network solution
1 vmdi Largest angle change
1 nblv Number of bus with lowest voltage in first area
1 vblv Lowest bus voltage value in first area (Repeat for all areas)

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

Description "Two-cage" or "one-cage" induction machine

Prerequisites: Induction machine represented in load flow working


case as a generator

Inputs:

Invocation: motor1 [<n>] {<name> <kv>} <id> : [r] [mva=<value>]

Parameters:

EPCL Default
Variable Data Description

Ls 3.5 Synchronous reactance


Lp 0.19 Transient reactance
Ra 0.02 Stator resistance, p.u.
Tpo 1.83 Transient rotor time constant
H 0.9 Inertia constant, sec.
D 2.0 Damping factor, p.u.
Se1 0.01 Saturation factor at 1 p.u. flux
Se2 0.1 Saturation factor at 1.2 p.u. flux
VT 0.85 Voltage threshold for tripping (default = 0), p.u.
TV 0.05 Voltage trip pickup time (default = 999), sec.
FT 0.1 Frequency threshold for tripping (default = 0), Hz
TF 99.0 Frequency trip pickup time (default = 999), sec.
Vr 1.0 Voltage at which reconnection is permitted (default = 1.2), p.u.
Tvr 99.0 Time delay for reconnection (default = 999), sec.
Acc 0.5 Acceleration factor for initialization
Lpp 0.165 Sub-transient reactance, p.u.
Ll 0.12 Stator leakage reactance, p.u.
Tppo 0.02 Sub-transient rotor time constant, sec.
ndelt 10 Time step subdivision factor.
wdelt 0.8 Speed threshold for subdividing time step, p.u.

Notes:

a) This model simulates either a "one-cage" or a "two-cage" induction machine, either a


motor or a generator. A “one-cage” model is used if Lpp is equal to Lp.. Otherwise,
it simulates a "two-cage" induction machine. If Lpp or Tppo are 0., the model sets
Lpp = Lp.

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).

f) The rotor transient time constant must be non-zero. If it simulates a "two-cage"


machine, the sub-transient time constant must also be non-zero.

g) Ls, Lp, Lpp, Ll must all be specified.

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.

k) The parameters Vt and Tv define under-voltage tripping logic. A timer is started if


the terminal voltage falls below Vt per unit and continues to run until voltage rises
above Vt. If voltage has not risen above Vt when the timer reaches Tv the motor is
tripped immediately.

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.

r) The “fix bad data” option will do the following:


a. Set Tpo to a minimum of 4*dypar.delt if wdelt is less than 1.0. If wdelt is
greater than 1.0, Tpo is limited to 4*dypar.delt/ndelt.
b. If Tppo not zero, limit it in the same way as Tpo,
c. Set Lp to a maximum of 0.4 * Ls.
d. Set Lpp to a maximum of Lp.
e. Set Ll to a maximum of 0.8 * Lpp.
f. Set wdelt to a minimum of 0.8.
g. Set ndelt to a minimum of 1.

s) Note that the output channels for power, reactive power, and torque variables use
motor convention.

Output Channels:

Record
Level Name Description

1 vt Terminal voltage, p.u.


1 pg Electrical power, MW
1 qg Reactive power, MVAR
2 It Terminal current, p.u.
2 spd Shaft speed, p.u.
2 pm Mechanical power, MW
2 tm Mechanical torque, p.u.
2 te Electrical torque, p.u.
Block Diagram:

ψ 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

Description Phasor model of single-phase A/C compressor


motor..

Prerequisites: Load present in load flow working case as an


ordinary load with non-zero constant-P
component

Inputs:

Invocation: motorc [<n>] {<name> <kv>} <id> : [n] [mva=<value>]

Notes:

Motorc is an experimental model for an aggregation of single-phase air conditioner


comprossor motors. It was implemented at the request of WECC for experimental use by
their Load Modeling Work Group. It is not supported by GE for other use at this time.
For more information on the model, please contact the WECC office.
Model Name: motorld

Description Aggregation of induction motors for part or all of a


bus load

Prerequisites: Load present in load flow working case as an


ordinary load with non-zero constant-P component

Inputs:

Invocation: motorld [<n>] {<name> <kv>} <id> : [r] [mva=<value>]

Parameters:

EPCL Defaul
t
Variable Data Description

pul 1.0 Fraction of constant-power load to be represented


by this motor model (between 1.0 and 0.0)
Ls 3.5 Synchronous reactance
Lp 0.19 Transient reactance
Lpp 0.165 Subtransient reactance, p.u.
Ll 0.12 Stator leakage reactance, p.u.
Ra 0.02 Stator resistance, p.u.
Tpo 1.83 Transient rotor time constant
Tppo 0.02 Sub-transient rotor time constant, sec.
H 0.9 Inertia constant, sec.
Dt 2.0 Mechanical torque speed exponent, p.u.
Se1 0.01 Saturation factor at 1 p.u. flux
Se2 0.1 Saturation factor at 1.2 p.u. flux
acc 0.5 Acceleration factor for initialization
ndelt 10 Time step subdivision factor.
wdelt 0.8 Speed threshold for subdividing time step, p.u.
Contactor Parameters
Vc1off 0.0 Contactor voltage at which motors start tripping, p.u.
Vc2off 0.0 Contactor voltage at which all motors are tripped, p.u.
Vc1on 0.0 Contactor voltage at which all motors are reconnected, p.u.
Vc2on 0.0 Contactor voltage at which motors start reconnecting, p.u.
Tc 0.0 Voltage sensing time constant for contactor, sec.
fr_with_c 0.0 Fraction of motors with contactors
Control Trip Parameters
Vct0 0.0 Vo - voltage below which tripping may occur, per unit
Vct1 0.0 V1 - voltage breakpoint on fast trip line, per unit
Vct2 0.0 V2 - voltage breakpoint on slow trip line, per unit
Tct1a 0.0 T1a - fast trip time for V < V1, sec.
Tct1b 0.0 T1b - fast trip time for V = V0, sec.
Tct2a 0.0 T2a - slow trip time for V < V1, sec.
Tc2b 0.0 T2b - slow trip time for V < V0, sec.
fr_with_ct 0.0 Fraction of motors with control trip

Notes:

a) This model simulates either a "one-cage" or a "two-cage" induction motor, either a


single motor or an aggregation of similar motors. A “one-cage” model is used if Lpp
is equal to Lp. Otherwise, it simulates a "two-cage" induction machine. If Lpp or
Tppo are 0., the model sets Lpp = Lp.

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

load.pm = motorw.pul * load.p


load.p = load.p - load.pm

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:

load.qm = (motor reactive load)


load.q = load.q - load.qm

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.

d) If “mva=<value>” is a negative value, its absolute value is interpreted as a “loading


factor”. The MVA base is calculated as the initial electrical power consumption of
the motor divided by the absolute value of this loading factor. This value should
normally be less than 1.

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).

j) The rotor transient time constant must be non-zero. If it simulates a "two-cage"


machine, the sub-transient time constant must also be non-zero.

k) Ls, Lp, Lpp, Ll must all be specified.

l) Dt has the dimensions of delta torque (p.u.) / delta speed (p.u.). The acceleration
equation used in the model is:

d dt = (Telec – Tmech) / 2H

where: Tmech = Tmech0 * Dt

Tmech0 is the value of mechanical torque at nominal (1 p.u.) motor speed,


not the initial value of mechanical torque.

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.

q) The “fix bad data” option will do the following:


a. Set Tpo to a minimum of 4*dypar.delt if wdelt is less than 1.0. If wdelt is
greater than 1.0, Tpo is limited to 4*dypar.delt/ndelt.
b. If Tppo not zero, limit it in the same way as Tpo
c. Set Lp to a maximum of 0.4 * Ls
d. Set Lpp to a maximum of Lp
e. Set Ll to a maximum of 0.8 * Lpp
f. Set H to a minimum value of 0.01
g. Set pul to a minimum of 0 and a maximum of 1.0
h. Set wdelt to a minimum of 0.8
i. Set ndelt to a minimum of 1

r) Note that the output channels for power, reactive power, and torque variables use
motor convention.

Output Channels:

Record
Level Name Description

1 vt Terminal voltage, p.u.


1 pg Electrical power, MW
1 qg Reactive power, MVAR
2 It Terminal current, p.u.
2 spd Shaft speed, p.u.
2 pm Mechanical power, MW
2 tm Mechanical torque, p.u.
2 te Electrical torque, p.u.
3 frcn Fraction of motors not tripped by contactor
3 frct Fraction of motors not tripped by controller
3 frsh Fraction of motors not tripped by load shedding relays
3 fron Overall fraction of motors not tripped
Block Diagram:

ω 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

Description "Two-cage" or "one-cage" induction machine for


part of a bus load.

Prerequisites: Load present in load flow working case as an


ordinary load with non-zero constant-P
component

Inputs:

Invocation: motorw [<n>] {<name> <kv>} <id> : [n] [mva=<value>]

Parameters:

EPCL Default
Variable Data Description

Pul 0.3 Fraction of constant-power load to be represented


by this motor model (between 1.0 and 0.0)
Ls 3.2 Synchronous reactance
Lp 0.15 Transient reactance
Ra 0.0 Stator resistance, p.u.
Tpo 1.0 Transient rotor time constant
H 0.4 Inertia constant, sec.
D 2.0 Damping factor, p.u.
Vt 0.7 Voltage threshold for tripping (default = 0), p.u.
Tv 0.1 Voltage trip pickup time (default = 999), sec.
Tbkr 0.08 Circuit breaker operating time (default = 999), sec.
Acc 0.5 Acceleration factor for initialization
Lpp 0.15 Sub-transient reactance, p.u.
Tppo 0.02 Sub-transient rotor time constant, sec.
ndelt 10 Time step subdivision factor.
wdelt 0.8 Speed threshold for subdividing time step, p.u.

Notes:

a) This model is used to represent a fraction of an ordinary load as "induction motor


load". It allows load that is treated as ordinary constant power in load flow work to
be represented by an induction motor in dynamic simulation. MOTORW is similar to
MOTOR1 in allowing either a “one-cage” or “two-cage” model of the induction
machine. If Lpp is set equal to Lp, only one cage is represented and the Tppo
parameter is not used. If Lpp or Tppo are 0., the model sets Lpp = Lp. MOTORW,
unlike MOTOR1, does not model magnetic saturation. This model is intended for
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. MOTOR1 should be used for the specific treatment of individual
motors.

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

load.pm = motorw.pul * load.p


load.p = load.p - load.pm

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:

load.qm = (motor reactive load)


load.q = load.q - load.qm

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.

e) Ls, Lp, Lpp must all be specified.


f) D has the dimensions delta P/ delta speed. The initial value of Pmech or the value
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.

g) The parameters Vt and Tv define under-voltage tripping logic. A timer is started if


the terminal voltage falls below Vt per unit and continues to run until voltage rises
above Vt. If voltage has not risen above Vt when the timer reaches Tv the motor is
tripped immediately.

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.

j) If “mva=<value>” a negative value, it’s absolute value is interpreted as a “loading


factor”. The MVA base is calculated as the initial electrical power consumption of
the motor divided by the absolute value of this loading factor. This value should
normally be less than 1.

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

1 vt Terminal voltage, p.u.


1 pmot Electrical power, MW
1 qmot Reactive power, MVAR
2 it Terminal current, p.u.
2 spd Shaft speed, p.u.
2 pm Motor mechanical power, MW
2 tm Motor mechanical torque, p.u.
2 te Motor electrical torque, p.u.
Block Diagram:
Model Name: motorx

Description "Two-cage" or "one-cage" induction machine for


part of a bus load.

Prerequisites: Load present in load flow working case as an


ordinary load with non-zero constant-P
component

Inputs:

Invocation: motorx [<n>] {<name> <kv>} <id> : [n] [mva=<value>]

Parameters:

EPCL Default
Variable Data Description

Pul 0.3 Fraction of constant-power load to be represented


by this motor model (between 1.0 and 0.0)
Rs 0.013 Stator winding resistance, p.u.
Xs 0.20 Stator winding reactance, p.u.
Xm 2.5 Magnetizing reactance, p.u.
R1 0.007 Rotor resistance, p.u.
X1 0.17 Rotor leakage reactance, p.u.
R2 0.07 Rotor resistance, p.u. (0 for single cage motor)
X2 0.13 Rotor leakage reactance, p.u. (0 for single cage motor)
H 0.45 Inertia constant, sec.
D 2.0 Damping factor, p.u.
Vt 0.7 Voltage threshold for tripping, p.u.
Tv 0.1 Voltage trip pickup time, sec.
Tbkr 0.08 Circuit breaker operating time, sec.
Acc 0.5 Acceleration factor for initialization
ndelt 10 Time step subdivision factor.
wdelt 0.8 Speed threshold for subdividing time step, p.u.
pfact 1.25 See Note l.

Notes:

a) This model is used to represent a fraction of an ordinary load as "induction motor


load". It allows load that is treated as ordinary constant power in load flow work to
be represented by an induction motor in dynamic simulation.
b) Motorx allows either a “one-cage” or “two-cage” model of the induction machine. If
R2 and X2 are set equal to zero, only one cage is represented.

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

load.pm = motorx.pul * load.p


load.p = load.p - load.pm

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:

load.qm = (motor reactive load)


load.q = load.q - load.qm

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.

g) The inertia time constant H must be non-zero.

h) Rs, Xs, Xm, R1, X1 must all be specified.


i) D has the dimensions delta P/ delta speed. The initial value of Pmech or the value
coming from a 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.

j) The parameters Vt and Tv define under-voltage tripping logic. A timer is started if


the terminal voltage falls below Vt per unit and continues to run until voltage rises
above Vt. If voltage has not risen above Vt when the timer reaches Tv the motor is
tripped immediately.

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.

m) If “mva=<value>” a negative value, it’s absolute value is interpreted as a “loading


factor”. The MVA base is calculated as the initial electrical power consumption of
the motor divided by the absolute value of this loading factor. This value should
normally be less than 1.

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

1 vt Terminal voltage, p.u.


1 pmot Electrical power, MW
1 qmot Reactive power, MVAR
2 it Terminal current, p.u.
2 spd Shaft speed, p.u.
2 pm Motor mechanical power, MW
2 tm Motor mechanical torque, p.u.
2 te Motor electrical torque, p.u.

Equivalent Circuit Diagram:


Model Name: msc1

Description Mechanically Switched Capacitor

Prerequisites: Shunt cap must exist in power flow

Inputs: Bus voltage

Invocation: msc1 [<nf>] {<namef> <kvf>} <id> ! ! ! ! !


[<mon_i>] {<namei> <kvi>} : #<r1>

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:

a) Msc1 represents a simple mechanically switched capacitor (MSC).

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:

If Vbus > Vmax for Tout seconds then


Switch out the shunt capacitor
If Vbus < Vmin for Tin seconds and the capacitor has been disconnected
for at least Tlck seconds, then
Switch in the shunt capacitor
d) There can be more than one msc1 model on a bus. Their associated shunts must have
different identifiers.

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:

msc1 1 "BUS1 " 230.00 "1 " : #2 "tin1" 1.00 …etc

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:

msc1 1 "BUS1 " 230.00 "1 " ! ! ! ! ! 3 ! ! : #2 "tin1" 1.00 …etc

In this case, msc1 is connected to bus 1 and the monitored voltage is the voltage of
bus 3.

f) The “fix bad data” option will do the following:


a. If Vmax1 < Vmin1, swap the values.
b. If Vmax2 < Vmin2, swap the values.

Output Channels:

Record
Level Name Description

1 Q Reactive Power in MVAr


2 B Susceptance in p.u. on the system base
2 st Capacitor status
Model Name: mslr1

Description Mechanically Switched Line Reactor

Prerequisites: Shunt reactor must exist in power flow

Inputs: Bus voltage

Invocation: mslr1 [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet>


<kvt>} <ck> <sec> [<mon_i>] {<namei> <kvi>} : #<r1>

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:

a) Mslr1 represents a simple mechanically switched line reactor (MSR).

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.

e) The “fix bad data” option will do the following:


a. If Vmax1 < Vmin1, swap the values.
b. If Vmax2 < Vmin2, swap the values.

Output Channels:

Record
Level Name Description

1 Q Reactive Power in MVAr


2 B Susceptance in p.u. on the system base
2 st Reactor status

GE PSLF
General Electric International, Inc - Proprietary Information
Model Name: msr1

Description Mechanically Switched Bus Shunt Reactor

Prerequisites: Shunt reactor must exist in power flow

Inputs: Bus voltage

Invocation: msr1 [<nf>] {<namef> <kvf>} <id> ! ! ! ! !


[<mon_i>] {<namei> <kvi>} : #<r1>

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:

a) Msr1 represents a simple mechanically switched line reactor (MSR).

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:

Msc\r1 1 "BUS1 " 230.00 "1 " : #2 "tin1" 1.00 …etc

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:

msr1 1 "BUS1 " 230.00 "1 " ! ! ! ! ! 3 ! ! : #2 "tin1" 1.00 …etc

In this case, msr1 is connected to bus 1 and the monitored voltage is the voltage of
bus 3.

f) The “fix bad data” option will do the following:


a. If Vmax1 < Vmin1, swap the values.
b. If Vmax2 < Vmin2, swap the values.

Output Channels:

Record
Level Name Description

1 Q Reactive Power in MVAr


2 B Susceptance in p.u. on the system base
2 st Reactor status

GE PSLF
General Electric International, Inc - Proprietary Information
Model Name: mss1

Description Mechanically Switched Shunt

Prerequisites: Shunt element(s) must exist in power flow

Inputs: Bus voltage

Invocation: mss1 [<n>] {<name> <kv>} <id> :

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:

mss1 3 "MSS1 " 230.00 "sh" :

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:

mss1 3 "MSS1 " 230.00 "sh" ! ! ! ! ! 2 ! ! :

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]

g) The “fix bad data” option will do the following:


a. If Vhigh1 < Vlow1, swap the values.
b. If Vhigh2 < Vlow2, swap the values.

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

Description Mechanically Switched Shunt

Prerequisites: Shunt element(s) must exist in power flow

Inputs: Bus voltage

Invocation: mss2 [<n>] {<name> <kv>} <id> :

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:

mss2 3 "MSS2 " 230.00 "sh" :

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:

mss2 3 "MSS2 " 230.00 "sh" ! ! ! ! ! 2 ! ! :

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]

h) The “fix bad data” option will do the following:


a. If Vhigh1 < Vlow1, swap the values.
b. If Vhigh2 < Vlow2, swap the values.
Output Channels:

Record
Level Name Description

1 Q Reactive power in MVAr


2 B Susceptance in p.u. on the system base
Model Name: oel1

Description Over excitation limiter for synchronous machine


excitation systems

Prerequisites: Generator model ahead of this model in dynamic


models table

Inputs: Generator field current

Invocation: oel1 [<n>] {<name> <kv>} <id> :

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.

b) oel1 includes three separate elements:

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:

Vfdflag = 0 Field Current


Vfdflag = 1 Field Voltage

The default value of Vfdflag is 0.

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>

If ( Runback < 0) The voltage regulator reference is biased by the output,elimv, of


oel1. This output is set immediately to Runback per unit. The
value of the voltage regulator reference is frozen at its biased value.
The original value of the voltage regulator reference is lost. Signals
are set to
genbc[].elimt = 1
genbc[].elimv = Runback

If ( Runback = 0) The excitation system is instructed to apply an immediate


mandatory limit of Ifcont to the excitation system output voltage.
This limit is permanent. Signals are set to
genbc[].elimt = 2
genbc[].elimv = Ifcont

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

l) If Alarm is greater than zero, no limiting action is enforced. A message is printed to


the PSLF main panel and log file when the OEL is exceeded indicating the time and
unit associated with the OEL violation, e.g.:

“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

1 elmv Limiter output value signal, elimv


1 elmt Limiter output type signal, elimt

Block Diagram:

Generator

PT CT

Field
Winding Voltage Reference Voltage
Regulator Runback
Field Reference
Current
Transformer

Overexcitation
Limiter
Model Name: ooslen

Description Out-of-step relay with 3 zones, each of which may be


lens, tomato or circle.
Outputs apparent impedance and timer status.

Prerequisites: Branch (secdd or tran) must exist

Inputs: Voltage and current at "from" end of branch

Invocation: ooslen [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>}


<ck> <sec>:
Note: Multiple OOSLENs on the same line are permitted by
setting <id> to different values.

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:

signal = 0 not picked up (out of zone)


signal = 1 picked up, timeout not completed
signal = 2 picked up, timeout completed

i) Signalx in the fourth output channels indicates the condition of the circuit breader timer,
as follows:

signalx = 0 trip not initiated


signalx = 1 picked up, cb timer running
signalx = 2 circuit breaker tripped

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

1 signal1 Zone 1 timer signal


1 signal2 Zone 2 timer signal
1 signal3 Zone 3 timer signal
1 signalx Circuit breaker timer signal
1 rapp Apparent resistance, p.u.
1 xapp Apparent reactance, p.u.

Block Diagram:
"Lens" "Tomato"

X X

rf rf
alpha alpha
R R

wl
rr rr wl

nf nt nfar
Model Name: ooslnq

Description Out-of-step relay with 3 zones, each of which can be a


circle, lens, tomato, or rectangle
Outputs apparent impedance and timer status.

Prerequisites: Branch (secdd or tran) must exist

Inputs: Voltage and current at "from" end of branch

Invocation: ooslnq [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>}


<ck> <sec>:
Note: Multiple OOSLNQs on the same line are permitted by
setting <id> to different values.

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:

Wt = 0 or Wt = Rf + Rr Circle with diameter = Rf + Rr


Wt < Rf + Rr Lens (intersection of 2 circles)
Wt > Rf + Rr Tomato (union of 2 circles)

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:

signal = 0 not picked up (out of zone)


signal = 1 picked up, timeout not completed
signal = 2 picked up, timeout completed

l) Signalx in the fourth output channels indicates the condition of the circuit breader timer,
as follows:

signalx = 0 trip not initiated


signalx = 1 picked up, cb timer running
signalx = 2 circuit breaker tripped

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

1 signal1 Zone 1 timer signal


1 signal2 Zone 2 timer signal
1 signal3 Zone 3 timer signal
1 signalx Circuit breaker timer signal
1 rapp Apparent resistance, p.u.
1 xapp Apparent reactance, p.u.
Block Diagram:

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

Description Out-of-step mho relay with blinders


Outputs apparent impedance and timer status.

Prerequisites: Branch (secdd or tran) must exist

Inputs: Voltage and current at "from" end of branch

Invocation: oosmho [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>}


<ck> <sec>:
Note: Multiple OOSMHOs on the same line are permitted by
setting <id> to different values.

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.

f) Signa11indicates the condition of the relay timer:

signal1 = 0 not picked up (out of zone)


signal1 = 1 picked up, timeout not completed
signal1 = 2 picked up, timeout completed

g) Signalx indicates the condition of the circuit breaker timer, as follows:

signalx = 0 trip not initiated


signalx = 1 picked up, cb timer running
signalx = 2 circuit breaker tripped

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

1 signal1 Zone timer signal


1 signalx Circuit breaker timer signal
1 rapp Apparent resistance, p.u.
1 xapp Apparent reactance, p.u.

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
Block Diagram:

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

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
Model Name: oosscan

Description Out-of-step line scanning model

Prerequisites: None

Inputs: Voltage and current at ends of each branch

Invocation: oosscan :

Parameters:

EPCL Default
Variable Data Description

flag 0.0 System/area/zone flag, 0-entire system, 1-area, 2-zone


num 0.0 Area or zone number
trip 0 1 - trip; 0 – monitor only
kVmin 50.0 Minimum kV level to scan

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

Description Simple Power-Frequency control

Prerequisites: Generator model ahead of this model in dynamic


models table

Inputs: Generator real power output

Invocation: pfpb [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

gnum 0.0 number of units under control (maximum of 4)


b1 0.0 frequency bias gain for unit 1, p.u.
b2 0.0 frequency bias gain for unit 2, p.u.
b3 0.0 frequency bias gain for unit 3, p.u.
b4 0.0 frequency bias gain for unit 4, p.u.
ku1 0.0 controller gain for unit 1, p.u.
ku2 0.0 controller gain for unit 2, p.u.
ku3 0.0 controller gain for unit 3, p.u.
ku4 0.0 controller gain for unit 4, p.u.
k1 0.05 frequency control loop reset controller gain
fmax 1.0 maximum output of frequency controller, p.u.
fmin -1.0 minimum output of frequency controller, .p.u.
k2 0.05 power control loop reset controller gain
pmax 1.0 maximum output of power controller, p.u.
pmin -1.0 minimum output of power controller, p.u.
tf 2.0 frequency filter time constant, sec..
tp 5.0 power filter time constant, sec.
dbd 0.00025 deadband in frequency error, p.u.

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

1 prf1 governor reference of unit 1 (unit connected to model)


1 prf2 governor reference of unit 2
1 prf3 governor reference of unit 3
1 prf4 governor reference of unit 4

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

Description Reactive power regulator / Power factor angle

Prerequisites: Excitation system model applied at the generator to be


regulated

Inputs:

Invocation: pfqrg [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

J 0.0 Control mode 1 for reactive power


0 for power factor angle
Kp 0.0 Proportional gain
Ki 0.0 Reset gain
Max 0.0 Output limit
Ref 0.0 Reference value of reactive power or power factor angle

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.

f) The “fix bad data” option will do the following:


a. If Max <= 0.0, then Max = 0.02

Output Channels:

Record
Level Name Description

1 pfrg Controller output (vsig)


2 pf Power factor
2 pfa Power factor angle (in degrees)

Block Diagram:

Ki
Kp 
s
Model Name: pidgov

Description Hydro turbine and governor. Represents plants


with straight forward penstock configurations
and "three term" electro-hydraulic governors
(i.e. Woodard electronic)

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Shaft speed

Invocation: pidgov [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

Treg 0.0 Speed detector time constant, sec.


rperm 0.0 Permanent drop, p.u.
Kp 0.0 Proportional gain, p.u.
Ki 0.0 Reset gain, pu/sec.
Kd 0.0 Derivative gain, p.u.
Ta 0.0 Controller time constant, sec.
Tb 0.0 Gate servo time constant, sec.
Velmax 0.0 Maximum gate opening velocity, p.u./sec.
Velmin 0.0 Maximum gate closing velocity, p.u./sec.
Gmax 0.0 Maximum gate opening, p.u.
Gmin 0.0 Minimum gate opening, p.u.
Tw 0.0 Water inertia time constant, p.u.
Pmax 0.0 Maximum power, p.u. (not used)
Pmin 0.0 Minimum power, p.u. (not used)
Dturb 0.0 Turbine damping factor, p.u.
g0 0.0 Gate opening at speed no load, p.u.
g1 0.0 Intermediate gate opening, p.u.
p1 0.0 Power at gate opening g1, p.u.
g2 0.0 Intermediate gate opening, p.u.
p2 0.0 Power at gate opening, g2, p.u.
p3 0.0 Power at full opened gate, p.u.
atw 0.0 Factor multiplying tw, p.u.
Flag 0.0 Feedback signal type flag
Notes:

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.

b) Ta, Tb, Tw must be greater than zero.

c) Dturb has the dimensions delta P/ delta speed.

d) Treg may be zero.

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:

flag signal used for feedback


0 electrical power
1 gate position

Output Channels:

Record
Level Name Description

1 gate Turbine gate position, p.u.


1 pm Turbine power, MW

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

Description Plays in generator field voltage

Prerequisites: The pldat and plhead tables must have been


loaded prior to executing init command

Inputs: Signal values from <pldat> table

Invocation: plefd [<n>] {<name> <kv>} <:id> : #<rec>

Parameters:

EPCL Default
Variable Data Description

cif 0.0 Index of channel to be played in (in range 1 to nchan-1)


fbias 10.0 Bias to be applied to play-in channel in per unit

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.

b) This model is recognized by PSLF as an excitation system model. Accordingly no


other excitation system or power system stabilizer model should be assigned to the
generator.

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

1 efd Played in field voltage


1 Ifd Generator field current
Model Name: plnow

Description Delivers played-in signals to dynamic


simulation models.

Prerequisites: The pldat and plhead tables must be loaded


prior to execution of the init command

Inputs: Signal values from pldat table

Invocation: plnow [<n>] {<name> <kv>} <id> : #<rec>

Parameters:

EPCL Default
Variable Data Description

tz 0.0 Time offset for playback signals, sec.

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

<tz> = <tp> - <ts>

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

<delivered value> = <sample value> / (1+sTf)


Filtering is applied only to signals whose filter time constant, plhead[*].tf, is greater than
twice the simulation time step.

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.

g) If rec_level is zero, no played-in data is transferred to the channel output file. If


rec_level is nonzero, those played-in channels whose flag, plhead[*].plot is nonzero, and
only those, are transferred to output channels.

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

1 (Notes f,g) Played-in channel


Model Name: plref

Description Play-in of voltage regulator and governor reference


settings

Prerequisites: The pldat and plhead tables must have been loaded with
the rpli command

Generator present at bus <n> in the load flow case


Excitation system and turbine control models must be
present

Inputs: Reference setting values values from <pldat> table

Invocation: plref [<:n>] {<:name> <:kv>} <:id> :

Parameters:

EPCL Default
Variable Data Description

civt * (note b) Channel number of playback regulator reference signal


cisl * (note b) Channel number of playback speed/load reference
vbias 10.0 (note c) Bias to match recorded voltage reg ref to simulation initialization
fbias 10.0 (note c) Bias to match recorded governor ref to simulation initialization

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

1 vref Voltage regulator reference, per unit


1 nref Governor speed-load reference, per unit
Model Name: pltp

Description Plays in turbine power

Prerequisites: The pldat and plhead tables must have been


loaded prior to executing init command

Inputs: Signal values from <pldat> table

Invocation: pltp [<n>] {<name> <kv>} <:id> : #<rec>

Parameters:

EPCL Default
Variable Data Description

cit 0.0 Index of channel to be played in (in range 1 to nchan-1)


tbias 10.0 Bias to be applied to play-in channel in per unit

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.

b) This model is recognized by PSLF as a turbine control system model. Accordingly no


other turbine control model should be assigned to the generator.

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

1 pm Played in field voltage.


Model Name: pmetr

Description Plant total output recorder

Prerequisites: Branch must exist

Inputs: Voltage and current at "from" end of branch

Invocation: pmetr [<n>] {<name> <kv>} <id> :

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

pmetr 731 ! ! "t*" :

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

pmetr 896 ! ! "s*" :

Output Channels:

Record
Level Name Description

1 pp Sum of the plant generator real power, MW


1 qq Sum of the plant generator reactive power, MVAR
1 p1…20 Apparent voltage, p.u.
1 q1…20 First unit reactive power, MVAR

Block Diagram:

1 2 3 4 5
t1 t2 t3 t4 t5

P1 Q1 P2 Q2 P3 Q3 P4 Q4 P5 Q5
Bus 731

pmetr 731 | | "t*" :

1 2 1 2

sa sb

P1 Q1 P2 Q2
Bus 896

pmetr 896 | | "s*" :


Model Name: pss1a

Description: Single input power system stabilizer

Prerequisites: Generator model ahead of this model in dynamic models


table

Inputs: Generator shaft speed


Frequency of generator terminal or system bus voltage
Generator electrical power or accelerating power
Voltage of generator terminal bus or system bus
Current magnitude in a specified branch

Invocation: pss1a [<n>] {<name> <kv>} <id> :


If branch current is used as an input, then
pss1a [<n>] {<name> <kv>} <id> ! ! ! ! ! [<mon_i>]
{<namei> <kvi>}[<mon_j>] {<namej> <kvj> <ck> <sec> :

Parameters:

EPCL Default
Variable Data Description

j 0.0 Input signal code


k 0.0 Remote signal bus number
A1 0.0 Notch filter parameter
A2 0.0 Notch filter parameter
T1 0.0 Lead/lag time constant, sec.
T2 0.0 Lead/lag time constant, sec.
T3 0.0 Lead/lag time constant, sec.
T4 0.0 Lead/lag time constant, sec.
T5 0.0 Washout time constant, sec.
T6 0.0 Transducer time constant, sec.
Ks 0.0 Stabilizer gain
Vrmax 0.0 Maximum stabilizer output, p.u.
Vrmin 0.0 Minimum stabilizer output, p.u.
Vcu 0.0 Stabilizer input cutoff threshold, p.u.
Vcl 0.0 Stabilizer input cutoff threshold, p.u.

Notes:

a) If T2, or T4, or T6 is zero, the corresponding block is bypassed.


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 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:

1 for shaft speed deviation


2 for frequency deviation of bus voltage
3 for generator electrical power
4 for generator accelerating power
5 for magnitude of bus voltage
6 for magnitude of branch current

c) A1 and A2 may be zero.

d) The “fix bad data” option will do the following:


a. If 0 < T2 < 4*delt, then T2 = 4*delt
b. If 0 < T4 < 4*delt, then T4 = 4*delt
c. If 0 < T6 < 4*delt, then T6 = 4*delt
d. If T5 < 4*delt, then T5 = 4*delt
e. If Vrmax < Vrmin, swap the values
f. If Vcu < Vcl, swap the values

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

1 vs Stabilizer output signal, p.u.


Block Diagram:

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

if ( Vcu && ( Vct > Vcu ) )


Vs = 0.0
if ( Vcl && ( Vct < Vcl ) )
Vs = 0.0
else
V s = V ll o u t

Vct = Compensating
v o l ta g e
( genbc[k].vcomp )
Model Name: pss2a

Description Dual input Power system stabilizer (IEEE type PSS2A)

Prerequisites: Generator model ahead of this model in dynamic


models table

Inputs: Generator shaft speed


Frequency of generator terminal or system bus voltage
Generator electrical power or accelerating power
Voltage of generator terminal bus or system bus
Current magnitude in a specified branch

Invocation: psssa [<n>] {<name> <kv>} <id> :


If branch current is used as an input, then
pss2b [<n>] {<name> <kv>} <id> ! ! ! ! ! [<mon_i>]
{<namei> <kvi>}[<mon_j>] {<namej> <kvj> <ck> <sec> :

Parameters:

EPCL Default
Variable Data Description

J1 1.0 Input signal #1 code


K1 0.0 Input signal #1 remote bus number
J2 3.0 Input signal #2 code
K2 0.0 Input signal #2 remote bus number
Tw1 2.0 First washout on signal #1, sec.
Tw2 2.0 Second washout on signal #1, sec.
Tw3 2.0 First washout on signal #2, sec.
Tw4 0.0 Second washout on signal #2, sec.
T6 0.0 Time constant on signal #1, sec.
T7 2.0 Time constant on signal #2, sec.
Ks2 0.2 Gain on signal #2
Ks3 1.0 Gain on signal #2
Ks4 1.0 Gain on signal #2
T8 0.5 Lead of ramp tracking filter
T9 0.1 Lag of ramp tracking filter
n 1.0 Order of ramp tracking filter
m 5.0 Order of ramp tracking filter
Ks1 10.0 Stabilizer gain
T1 0.25 Lead/lag time constant, sec.
T2 0.04 Lead/lag time constant, sec.
T3 0.2 Lead/lag time constant, sec.
T4 0.03 Lead/lag time constant, sec.
Vstmax 0.1 Stabilizer output max limit, p.u.
Vstmin -0.1 Stabilizer output min limit, p.u.
a 1. Lead/lag num. Gain. (not in IEEE model)
Ta 0. Lead/lag time constant, sec. (not in IEEE model)
Tb 0. Lead/lag time constant, sec. (not in IEEE model)

Notes:

a) TW1 and TW3 must be greater than zero.

b) Setting TW2 or TW4 to zero will bypass the washout function.

c) Ta, Tb, a, T1, T2, T3, T4, T6, T7, T8, and T9 may be zero.

d) Set T9 = 0 or n = 0 to get a null effect from the ramp tracking filter.

e) The product of n*m cannot be greater than 10.

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).

The input signal code, j, is

1 for shaft speed


2 for frequency of bus voltage
3 for generator electrical power
4 for generator accelerating power
5 for magnitude of bus voltage
6 not used
7 for magnitude of branch current

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

Description IEEE (2005) type PSS2B dual-input power system


stabilizer

Prerequisites: Generator model ahead of this model in dynamic


models table

Inputs: Generator shaft speed


Frequency of generator terminal or system bus voltage
Generator electrical power or accelerating power
Voltage of generator terminal bus or system bus
Current magnitude in a specified branch

Invocation: pss2b [<n>] {<name> <kv>} <id> :


If branch current is used as an input, then
pss2b [<n>] {<name> <kv>} <id> ! ! ! ! ! [<mon_i>]
{<namei> <kvi>}[<mon_j>] {<namej> <kvj> <ck> <sec> :

Parameters:

EPCL Default
Variable Data Description

J1 1.0 Input signal #1 code


K1 0.0 Input signal #1 remote bus number
J2 3.0 Input signal #2 code
K2 0.0 Input signal #2 remote bus number
Vsi1max 999. Stabilizer output max limit, p.u.
Vsi1min -999. Stabilizer output min limit, p.u.
Tw1 2.0 First washout on signal #1, sec.
Tw2 2.0 Second washout on signal #1, sec.
Vsi2max 999. Stabilizer output max limit, p.u.
Vsi2min -999. Stabilizer output min limit, p.u.
Tw3 2.0 First washout on signal #2, sec.
Tw4 0.0 Second washout on signal #2, sec.
T6 0.0 Time constant on signal #1, sec.
T7 2.0 Time constant on signal #2, sec.
Ks2 0.2 Gain on signal #2
Ks3 1.0 Gain on signal #2 input before ramp-tracking filter
T8 0.5 Lead of ramp tracking filter
T9 0.1 Lag of ramp tracking filter
n 1.0 Order of ramp tracking filter
m 5.0 Denominator order of ramp tracking filter
Ks1 10.0 Stabilizer gain
T1 0.25 Lead/lag time constant, sec.
T2 0.04 Lead/lag time constant, sec.
T3 0.2 Lead/lag time constant, sec.
T4 0.03 Lead/lag time constant, sec.
T10 0.0 Lead/lag time constant, sec.
T11 0.0 Lead/lag time constant, sec.
Vstmax 0.1 Stabilizer output max limit, p.u.
Vstmin -0.1 Stabilizer output min limit, p.u.
a 1. Lead/lag num. gain. (not in IEEE model)
Ta 0. Lead/lag time constant, sec. (not in IEEE model)
Tb 0. Lead/lag time constant, sec. (not in IEEE model)
Ks4 1.0 Gain on signal #2 input after ramp-tracking filter (not in IEEE
model)

Notes:

a) TW1 and TW3 must be greater than zero.

b) Setting TW2 or TW4 to zero will bypass the washout function.

c) Ta, Tb, a, T1, T2, T3, T4, T6, T7, T8, and T9 may be zero.

d) Set T9 = 0 or n = 0 to get a null effect from the ramp tracking filter.

e) The product of n*m cannot be greater than 10.

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.

The input signal code, j, is

1 for shaft speed


2 for frequency of bus voltage
3 for generator electrical power
4 for generator accelerating power
5 for magnitude of bus voltage
6 not used
7 for magnitude of branch current

h) If value of Tb is zero or not specified, the non-IEEE block is bypassed (regardless of


the value of a).

i) The “fix bad data” option will do the following:


a. Set Tw1 and Tw3 to a minimum of 4*delt.
b. If non-zero, set Tw2, Tw4, T2, T4, T6, T7, T11, and Tb to a minimum of
4*delt.
c. If n*m > 0, set T9 to a minimum of 4*delt.
d. If n*m > 10, write an error message to the terminal report.
e. If Vstmax < Vstmin, swap the values.
f. If Vsi1max < Vsi1min, swap the values.
g. If Vsi2max < Vsi2min, swap the values.
.

Output Channels:

Record
Level Name Description

1 vs Stabilizer output signal, p.u.

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

Input 2 sTw3 sTw4 Ks 2 1  sT 3 1  sT 10 a  sTa Vst


1  sTw3 1  sTw4 1  sT 7 1  sT 4 1  sT 11 1  sTb

S3 S4 S5 S7 S8 S9
Vsi2min Vstmin
Model Name: pss3b

Description: IEEE (2005) type PSS3B dual-input power system


stabilizer

Prerequisites: Generator model ahead of this model in dynamic models


table

Inputs: Generator shaft speed


Frequency of generator terminal or system bus voltage
Generator electrical power or accelerating power
Voltage of generator terminal bus or system bus
Current magnitude in a specified branch

Invocation: pss3b [<n>] {<name> <kv>} <id> :


If branch current is used as an input, then
pss3b [<n>] {<name> <kv>} <id> ! ! ! ! ! [<mon_i>]
{<namei> <kvi>}[<mon_j>] {<namej> <kvj> <ck> <sec> :

Parameters:

EPCL Default
Variable Data Description

j1 0.0 Input signal # 1 code


k1 0.0 Remote signal # 1 bus number
j2 0.0 Input signal # 2 code
k2 0.0 Remote signal # 2 bus number
T1 0.0 Transducer time constant, sec.
T2 0.0 Transducer time constant, sec.
Tw1 0.0 Washout time constant, sec
Tw2 0.0 Washout time constant, sec
Tw3 0.0 Washout time constant, sec
Ks1 0.0 Gain on signal # 1
Ks2 0.0 Gain on signal # 2
A1 0.0 Notch filter parameter
A2 0.0 Notch filter parameter
A3 0.0 Notch filter parameter
A4 0.0 Notch filter parameter
A5 0.0 Notch filter parameter
A6 0.0 Notch filter parameter
A7 0.0 Notch filter parameter
A8 0.0 Notch filter parameter
Vstmax 0.0 Stabilizer output max limit, p.u.
Vstmin 0.0 Stabilizer output max limit, p.u.

Notes:

a) If T1, T2, or Tw3 is zero, the corresponding block is bypassed. Tw1 and Tw2 must
be non-zero.

b) If A4 is zero, then A2 must be zero. If A8 is zero, then A6 must be zero. If A4 and


A3 are zero, then A1 and A2 must be zero. If A8 and A7 are zero, then A5 and A6
must be 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:

1 for shaft speed deviation


2 for frequency deviation of bus voltage
3 for generator electrical power
4 for generator accelerating power
5 for magnitude of bus voltage
6 for magnitude of branch current

d) The “fix bad data” option will do the following:


a. If not zero, set T1, T2, and Tw3 to a minimum of 4*delt.
b. Set Tw1 and Tw2 to a minimum of 4*delt.
c. If Vstmax < Vstmin, swap the values.

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

1 vs Stabilizer output signal, p.u.


Block Diagram:

Input 1 1 sTw1
Ks1
1 + sT1 1 + sTw1
S0 S1

Input 2 1 sTw2
Ks2
1 + sT2 1 + sTw2
S2 S3

Vstmax

sTw3 1+ A1s + A2s2 1+ A5s + A6s2 Vs


1 + sTw3 1+ A3s + A4s2 1+ A7s + A8s2
S4
Vstmin
Model Name: psssb

Description Dual input Power system stabilizer (IEEE type PSS2A)


+Voltage Boost Signal Transient Stabilizer and Vcutoff

Prerequisites: Generator model ahead of this model in dynamic models


table

Inputs: Generator shaft speed


Frequency of generator terminal or system bus voltage
Generator electric power or accelerating power
Voltage of generator terminal bus or system bus
Current magnitude in a specified branch

Invocation: psssb [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

J1 1.0 Input signal #1 code


K1 0.0 Input signal #1 remote bus number
J2 3.0 Input signal #2 code
K2 0.0 Input signal #2 remote bus number
Tw1 2.0 First washout on signal #1, sec.
Tw2 2.0 Second washout on signal #1, sec.
Tw3 2.0 First washout on signal #2, sec.
Tw4 0.0 Second washout on signal #2, sec.
T6 0.0 Time constant on signal #1, sec.
T7 2.0 Time constant on signal #2, sec.
Ks2 0.2 Gain on signal #2
Ks3 1.0 Gain on signal #2
Ks4 1.0 Gain on signal #2
T8 0.5 Lead of ramp tracking filter
T9 0.1 Lag of ramp tracking filter
n 1.0 Order of ramp tracking filter
m 5.0 Order of ramp tracking filter
Ks1 15.0 Stabilizer gain
T1 0.2 Lead/lag time constants, sec.
T2 0.2 Lead/lag time constants, sec.
T3 0.2 Lead/lag time constants, sec.
T4 0.2 Lead/lag time constants, sec.
Vstmax 0.1 Stabilizer output max limit, p.u.
Vstmin -0.1 Stabilizer output min limit, p.u.
Sw1 0.0 Voltage boost signal transient stabilizer manual switch
Td1 0.0 Voltage boost signal transient stabilizer lag, sec.
Td2 0.0 Voltage boost signal transient stabilizer washout time constant, sec.
Vtl 0.0 Voltage boost signal transient stabilizer terminal voltage limit.
Vk 0.0 Voltage boost signal transient stabilizer boost signal magnitude, p.u.
Vcutoff 0.0 Voltage deviation level for stabilizer cutout, p.u.

Notes:

a) TW1 and TW3 must be greater than zero.

b) Setting TW2 or TW4 to zero will bypass the washout function.

c) T1, T2, T3, T4, T6, T7, T8, and T9 may be zero.

d) Set T9 = 0 or n = 0 to get a null effect from the ramp tracking filter.

e) The product of n*m cannot be greater than 10.

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.

The input signal code, j, is

1 for shaft speed


2 for frequency of bus voltage
3 for generator electrical power
4 for generator accelerating power
5 for magnitude of bus voltage
6 not used
7 for magnitude of branch current

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

1 vs Stabilizer output signal, p.u.


1 vb Voltage boost signal, p.u.

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

Description Model for Siemens “H infinity” power system stabilizer


with generator electrical power input

Prerequisites: Generator model ahead of this model in dynamic models


table

Inputs: Generator electric power

Invocation: psssh [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

K 1.0 Main gain


K0 0.012 Gain 0
K1 0.488 Gain 1
K2 0.064 Gain 2
K3 0.224 Gain 3
K4 0.100 Gain 4
Td 10.0 Input time constant, sec.
T1 0.076 Time constant 1, sec
T2 0.086 Time constant 2, sec
T3 1.068 Time constant 3, sec.
T4 1.913 Time constant 4, sec
Vsmax 0.1 Output maximum limit, p.u.
Vsmin -0.1 Output minimum limit, p.u.

Notes:

a) Td, T1, T2, and T3 must be greater than zero.

b) If T4 is zero, the output of the T4 block is set to zero.

c) The “fix bad data” option will do the following:


a. Set Td, T1, T2, and T3 to a minimum of 4*delt.
b. If non-zero, set T4 to a minimum of 4*delt
c. If Vsmax < Vsmin, swap the values.
Output Channels:

Record
Level Name Description

1 vs Stabilizer output signal, p.u.

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

Description: Single input power system stabilizer for SVSMO1 and


SVCALS models

Prerequisites: SVC model in dynamic models table

Inputs: Voltage magnitude of terminal bus or system bus, or


current magnitude (or power) in a specified branch, or
bus frequency

Invocation: psssvc [<n>] {<name> <kv>} <id> :


If branch current is used as an input, then
psssvc [<n>] {<name> <kv>} <id> ! ! ! ! ! [<mon_i>]
{<namei> <kvi>}[<mon_j>] {<namej> <kvj> <ck> <sec> :

Parameters:

EPCL Default
Variable Data Description

j 0.0 Input signal code


k 0.0 Remote signal bus number
T1 0.0 Lead/lag time constant, sec.
T2 0.0 Lead/lag time constant, sec.
T3 0.0 Lead/lag time constant, sec.
T4 0.0 Lead/lag time constant, sec.
Tw 0.0 Washout time constant, sec.
Tr 0.0 Transducer time constant, sec.
Ka 0.0 Stabilizer gain
Vmax 0.0 Maximum stabilizer output, p.u.
Vmin 0.0 Minimum stabilizer output, p.u.

Notes:

a) If T2, T4, or Tr is zero, the corresponding block is bypassed.

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.

d) The “fix bad data” option will do the following:

a. If not zero, set T2, T4, and Tr to a minimum of 4*delt.


b. Set Tw to a minimum of 4*delt.
c. If Vmax < Vmin, swap the values.

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

1 vs Stabilizer output signal, p.u.


2 pssi Stabilizer input signal, p.u.

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

Description PV converter control model

Prerequisites: pv1g model ahead of this model in dynamic models table

Inputs: Q order from separate solar plant reactive power control


emulator if used. P order from power flow initial
conditions or user-written model. Terminal voltage,
regulated bus voltage.

Invocation: pv1e [<n>] {<name> <kv>} <id> [<nr>] {<namer> <kvr>}:

Parameters:

EPCL Default
Variable Data Description

varflg 1 1 = Qord from PV plant Var controller emulator; -1 = Qord from


vref (i.e., separate model); 0 = constant
Kqi 0.1 Q control integral gain (see note f)
Kvi 40. V control integral gain
Vmax 1.1 Maximum V at regulated bus (p.u.)
Vmin 0.9 Minimum V at regulated bus (p.u.)
Qmax 0.43 Maximum Q command (p.u.)
Qmin -0.43 Minimum Q command (p.u.)
Tr 0.02 Voltage measurement lag, sec.
Tc 0.15 Lag time constant, sec.
Kpv 18.0 Regulator proportional gain (see note g)
Kiv 5.0 Regulator integral gain (see note g)
pfaflg 0 1 = regulate power factor angle; 0 = regulate Q
fn 1.0 Scaling gain
Tv 0.05 Time constant in proportional path, sec.
Tpwr 0.05 Time constant in power measurement for PFA control (Tp), sec.
Iphl 1.11 Hard limit on real current, p.u.
Iqhl 1.25 Hard limit on reactive current, p.u.
Pqflag 0 0 = Q priority; 1 = P priority
Xc 0.0 Compensating reactance for voltage control p.u.
Kqd 0.0 Gain on Q Droop function
Tlpqd 0.0 Time constant in Q Droop function
Xqd 0.0 Compensating reactance for Q Droop function
Vermn -0.1 Minimum limit on regulated bus voltage error, pu.
Vermx 0.1 Maximum limit on regulated bus voltage error, pu.
Vfrz 0.7 Voltage threshold to freeze integrators in PV plant Var controller
emulator voltage regulator, p.u.
Imaxtd 1.70 Maximum temperature dependent converter current, p.u.
Viqlim 1.60 Max. voltage dependent reactive current limit, p.u.

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

1 porx P order, p.u.


1 qord Q order from the PV plant Var control emulator or from a
separate model, p.u.
2 qcmd Q command after limits, p.u.
2 vref Local voltage reference, p.u.
2 vrfq PV plant Var control emulator reference voltage, p.u.
2 vreg PV plant Var control emulator regulated voltage, p.u.
2 qwv PV plant Var control emulator PI control output, p.u.
2 iqmx Maximum limit applied to the reactive current order, p.u.
2 iqmn Minimum limit applied to the reactive current order, p.u.
2 ipmx Maximum limit applied to the real current order, p.u.
2 iqxv Voltage dependent reactive current limit (Iqmxv), p.u.
2 vqd Q Droop function output, p.u.

Block Diagram:
P,Q Priority Flag
(pqflag)

0 1

Vt
Iqmn Iqmx Iqmx Iqmn

Iqmxv

Q Priority viqlim P Priority


qmax
Vt
1.0

-1 -1
Iqmxv

Iqhl Minimum

Minimum Minimum

IPcmd
ImaxTD ImaxTD2 - IPcmd2

IQcmd
ImaxTD2 - IQcmd2
Iphl

Minimum Minimum

Ipmx Ipmx

Converter Current Limit Model

Qinput Vqd
1
Kqd
1+ sTlpqd
s7

Q Droop Function
Model Name: pv1g

Description: PV converter model

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables, active and


reactive current commands from pv1e model.

Invocation: pv1g [<n>] {<name> <kv>} <id>} : #<rl> {mva=<value>}

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:

I Qcmd IQlv I sorc


-1 High Voltage
(efd) 1+ 0.02s Reactive Current
From s0 Management
pv1e
LVPL & rrpwr
Low Voltage
I Pcmd 1 IPlv Active Current
(ladifd) 1+ 0.02s Management
From s1
pv1e

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

Type 4 PV Converter Model


IQIv
X 
+
-
Iolim

Vterm Vt <= Volim Vt >Volim

0
+

 Khv

-
0

Volim 1

High Voltage Reactive Current Management

Isorc
Vterm

IPIv

Gain
X
1

Vterm

Lvpnt0 Lvpnt1 V

Low Voltage Active Current Management


Model Name: pvd1

Description Distributed PV system model

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables

Invocation: pvd1 [<n>] {<name> <kv>} <id>} : #<rl> {mva=<value>}

Parameters:

EPCL Default
Variable Data Description

pqflag 1.0 Priority to reactive current (0) or active current (1)


xc 0.0 Line drop compensation reactance, p.u.
qmx 0.328 Max. change in reactive power due to voltage droop response, p.u.
qmn -0.328 Min. change in reactive power due to voltage droop response, p.u.
v0 0.90 Lower limit of deadband for voltage droop response, p.u.
v1 1.10 Upper limit of deadband for voltage droop response, p.u.
dqdv 0.05 Voltage droop response characteristic
fdbd -0.05 Overfrequency deadband for governor response, p.u.
ddn 0.05 Down regulation droop gain, p.u.
imax 1.20 Apparent current limit, p.u.
vt0 0.88 Voltage tripping response curve point 0, p.u.
vt1 0.90 Voltage tripping response curve point 1, p.u.
vt2 1.10 Voltage tripping response curve point 2, p.u.
vt3 1.20 Voltage tripping response curve point 3, p.u.
vrflag 1.00 Factor to specify generation tripping on voltage level (see Note e)
ft0 59.5 Frequency tripping response curve point 0 (Hz)
ft1 59.7 Frequency tripping response curve point 1 (Hz)
ft2 60.3 Frequency tripping response curve point 2 (Hz)
ft3 60.5 Frequency tripping response curve point 3 (Hz)
frflag 0.00 Factor to specify generation tripping on frequency (see Note e)
tg 0.02 Inverter current lag time constant, sec.
tf 0.05 Frequency transducer time constant, sec.
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.7 Acceleration factor used in the high voltage reactive power logic,
p.u. See Instantaneous High Voltage Reactive Power Logic
Flowchart.

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.

c) If Tf is equal to zero, the associated block is bypassed.

d) Pext can be accessed via genbc[].vsig

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.

f) The “fix bad data” option will do the following:

a. If 0 < Tf < delt then Tf = 4.*delt


b. If Tg < 4*delt then Tg = 4.*delt
Output Channels:

Record
Level Name Description

1 vt Terminal voltage, p.u.


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.
3 ip Active terminal current, p.u.
3 iq Reactive terminal current, p.u.

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

Magnitude Vmi = |Vi|


Angle Vai = atan(Vx/Vy)
(both decelerated after 1st iteration) Nodal voltage: Not solved,
Vi = Vx + jVy next algebraic
on common reference iteration, “i”.
Vmi > Vtmax
(maximum instantaneous
terminal voltage)

Algebraic Network Solved:


True False Solution Solved q = 
q = q + accel*( Vmi - Vtmax) q = q

q = S0 (reactive current state variable)*Vmi - q

q< qmin (transient Time


maximum underexcited Algebraic Network Solution Advances
reactive power limit) …

False
True: q = qmin q=q

Translate q to iq, using decelerated Vi Nodal current


injection:
Ii =Ix + IVy
Translate ip, iq back to common reference on common reference
frame

Instantaneous High Voltage Reactive Power Logic Flowchart


Generator/converter model

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

p = S1 (active current state variable)*Vmi *mult

Time
Algebraic Network Solution Advances…

Translate p to ip, using decelerated Vi

Nodal current
Translate ip, iq back to common reference injection:
frame Ii =Ix + IVy
on common reference

Instantaneous Low Voltage Active Power Logic Flowchart


Frequency tripping logic

For low frequency tripping:

if (ft < fmin ) fmin = ft (fmin tracks the lowest frequency during a simulation)

if (fmin < ft0 ) fmin = ft0

if( ft < ft0 )

ffl = 0.0 (All generation is tripped below ft0)

else if( ft < ft1 )

if( ft ≤ fmin )

ffl = ( fmin - ft0 ) / ( ft1 - ft0)

else

ffl = (( fmin - ft0 ) + frflag * ( ft - fmin )) / ( ft1 - ft0 )

end if

else

if( fmin ≥ ft1 )

ffl = 1.0

else

ffl = (( fmin - ft0 ) + frflag * ( ft1 - fmin )) / ( ft1 - ft0 )

end if

end if
For high frequency tripping:

if( ft > fmax ) fmax = ft (Initially, fmax = ft or 0 )

if( fmax > ft3 ) fmax = ft3

if( ft > ft3 )

ffh = 0.0

else if( ft > ft2 )

if( ft ≥ fmax )

ffh = ( ft3 - fmax ) / ( ft3 - ft2)

else

ffh = (( ft3 - fmax) + frflag * ( fmax - ft)) / ( ft3 - ft2)

end if
else

if( fmax ≤ ft2 )

ffh = 1.0

else

ffh = (( ft3 - fmax ) + frflag * ( fmax - ft2 )) / ( ft3 - ft2 )


end if

end if

Voltage tripping logic


The same logic is used for the low and high voltage tripping (instead of frequency terms, voltage terms
are used, e.g., vmax vs. fmax, vt2 vs. ft2, etc. )
Model Name: rect

Description Rectifier-supplied load

Prerequisites: The referenced bus and load must exist in the


load flow working case

Inputs:

Invocation: rect [<nf>] {<namef> <kvf>} <id> :

Parameters:

EPCL Default
Variable Data Description

Vsec 0.0 Nominal and initial condition dc voltage


Vload 0.0
Rload 0.0 Load dc resistance, ohms
Lload 0.0 Load inductance, henries
Alp_min 0.0 Dynamics minimum alpha, degrees
Alp_max 0.0 Dynamics maximum alpha degrees
Tmeasv 0.0 Dc current transducer time const, sec.
Tmeasi 0.0 Dc voltage transducer time const, sec.
Kp 0.0 Controller proportional gain
Ki 0.0 Controller reset gain
Mode 0.0 Control mode 0 = voltage control
1 = current control
Cmin 0.0 Minimum current order, amps
Cmax 0.0 Maximum current order, amps
Xcomm 0.0
Setpoint 0.0 Controller set-point
Bcap 0.0 Pf correction cap at rectifier transformer ac bus
Accel 0.0 Acceleration applied to dc current

Output Channels:

Record
Level Name Description

1 pacr Rectifier a.c. real power, MW.


1 qacr Rectifier a.c. reactive power, MVAR
1 alpa Rectifier firing angle, degrees
1 vdcr D.C. voltage, volts
1 idc D.C. current, amps
1 daux
Model Name: reec_a

Description Renewable energy electrical control model

Prerequisites: regc_a model ahead of this model in dynamic models


table

Inputs:

Invocation: reec_a [<n>] {<name> <kv>} <id> :

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:

if (Vterm < Vdip or Vterm > Vup) then


Voltage_dip = 1
else
Voltage_dip = 0
end
c) VDL1 is a piecewise linear curve defined by the four pairs of numbers:
(vq1, iq1), (vq2, iq2), (vq3, iq3), (vq4, iq4).

d) VDL2 is a piecewise linear curve defined by the four pairs of numbers:


(vp1, ip1), (vp2, ip2), (vp3, ip3), (vp4, ip4).

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):

Table 1 – Reactive Power Control Options


Functionality Models Needed PfFlag Vflag Qflag RefFlag
Constant local PF control REEC_A 1 N/A 0 N/A
Constant local Q control REEC_A 0 N/A 0 *
Local V control REEC_A 0 0 1 *
Local coordinated V/Q control REEC_A 0 1 1 *
Plant level Q control REEC_A, REPC_ 0 N/A 0 0
Plant level V control REEC_A, REPC_ 0 N/A 0 1
Plant level Q control + local coordinated
REEC_A, REPC_ 0 1 1 0
V/Q control
Plant level V control + local coordinated
REEC_A, 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.

k) The “fix bad data” option will do the following:


a. If 0 < Trv < 4*delt, then set Trv = 4*delt
b. If 0 < Tp < 4*delt, then set Tp = 4*delt
c. If 0 < Tiq < 4*delt, then set Tiq = 4*delt
d. If 0 < Tpord < 4*delt, then set Tpord = 4*delt
e. If Qmax < Qmin, swap values.
f. If Vmax < Vmin, swap values.
g. If Pmax < Pmin, swap values.

Output Channels

Record
Level Name Description

1 iqcm Iq command, p.u. (Iqcmd)


1 ipcm Ip command, p.u. (Ipcmd)
2 pord Power order, p.u (Pord)
3 iqmx Maximum iq limit, p.u. (Iqmax)
3 iqmn Minimum iq limit, p.u. (Iqmin)
3 ipmx Maximum ip limit, p.u. (Ipmax)
4 iqij Current signal into output summing junction, p.u., (iqinj)
Block Diagram:
Vref0
iqh1
dbd1 dbd2
Vterm +
1 Vt_filt
_ Kqv
1+ sTrv
s0 Switch
iql1 SW*
if (Vterm < Vdip ) or 1 iqfrz
(Vterm > Vup) 0.0
Voltage_dip = 1 Freeze state if Voltage_dip = 1 0 2
else Voltage_dip iqinj
Voltage_dip = 0 Qmax Vmax Vmax Iqmax Iqmax
VFlag _ QFlag
end +
1 1 Iqcmd
K qi K vi
K qp + K vp +
PFAref + s + s + To
tan _
s2 0 s3 0 regc_a
PfFlag Qmin Vmin Iqmin
Vmin Iqmin
Pgen 1 1
Qgen Freeze state if
1+ sTp Vref1 Voltage_dip = 1
s1 0
+
+
N 1
Qref D 1+ sTiq
N
From D s4 VDL1
repc_a
0.01

Vt_filt PQflag Current


Limit
VDL2 0 – Q priority Logic
spd 1 – P priority
(speed)
From Freeze state if
wtgt PFlag Voltage_dip = 1
thld2
0.01
dPmax Pmax Ipmax
D
Pref from wtgq_a 1 Ipcmd
1 N N
or
1+sTpord D
To
Pref0 from repc_a 0
( See Note i ) s5 Pord regc_a
To 0
dPmin Pmin
wtgp_a

*
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

Description Renewable energy electrical control model

Prerequisites: regc_a model ahead of this model in dynamic models


table

Inputs:

Invocation: reec_b [<n>] {<name> <kv>} <id> :

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:

if (Vterm < Vdip or Vterm > Vup) then


Voltage_dip = 1
else
Voltage_dip = 0
end

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.

f) The “fix bad data” option will do the following:


a. If 0 < Trv < 4*delt, then set Trv = 4*delt
b. If 0 < Tp < 4*delt, then set Tp = 4*delt
c. If 0 < Tiq < 4*delt, then set Tiq = 4*delt
d. If 0 < Tpord < 4*delt, then set Tpord = 4*delt
e. If Qmax < Qmin, swap values.
f. If Vmax < Vmin, swap values.
g. If Pmax < Pmin, swap values.

Output Channels

Record
Level Name Description

1 iqcm Iq command, p.u. (Iqcmd)


1 ipcm Ip command, p.u. (Ipcmd)
2 pord Power order, p.u (Pord)
3 iqmx Maximum iq limit, p.u. (Iqmax)
3 iqmn Minimum iq limit, p.u. (Iqmin)
3 ipmx Maximum ip limit, p.u. (Ipmax)
Block Diagram:
Vref0
iqh1
dbd1 dbd2
Vterm +
1 Vt_filt verrx
_ Kqv
1+ sTrv
s0
if (Vterm < Vdip ) or
iql1
(Vterm > Vup)
Voltage_dip = 1 Freeze state if Voltage_dip = 1
else Voltage_dip
Voltage_dip = 0 Qmax Vmax Vmax Iqmax Iqmax
VFlag _ QFlag
end +
1 1 Iqcmd
K qi K vi
K qp + K vp +
PFAref + s + s + To
tan _
s2 0 s3 0 regc_a
PfFlag Qmin Vmin Iqmin
Vmin Iqmin
Pelec 1 1
Qgen Freeze state if
1+ sTp Voltage_dip = 1
s1 0
N 1
Qext D 1+ sTiq
N
From D
repc_a s4

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

Description Electrical control model for battery energy storage


system

Prerequisites: regc_ model ahead of this model in dynamic models


table

Inputs:

Invocation: reec_c [<n>] {<name> <kv>} <id> :

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:

if (Vterm < Vdip or Vterm > Vup) then


Voltage_dip = 1
else
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
Voltage_dip = 0
end
c) VDL1 is a piecewise linear curve defined by the four pairs of numbers:
(vq1, iq1), (vq2, iq2), (vq3, iq3), (vq4, iq4).

d) VDL2 is a piecewise linear curve defined by the four pairs of numbers:


(vp1, ip1), (vp2, ip2), (vp3, ip3), (vp4, ip4).

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.

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
k) 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_A 1 N/A 0 N/A
Constant local Q control REEC_A 0 N/A 0 *
Local V control REEC_A 0 0 1 *
Local coordinated V/Q control REEC_A 0 1 1 *
Plant level Q control REEC_A, REPC_ 0 N/A 0 0
Plant level V control REEC_A, REPC_ 0 N/A 0 1
Plant level Q control + local coordinated
REEC_A, REPC_ 0 1 1 0
V/Q control
Plant level V control + local coordinated
REEC_A, 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.

l) The “fix bad data” option will do the following:

a. If 0 < Trv < 4*delt, then set Trv = 4*delt


b. If 0 < Tp < 4*delt, then set Tp = 4*delt
c. If 0 < Tiq < 4*delt, then set Tiq = 4*delt
d. If 0 < Tpord < 4*delt, then set Tpord = 4*delt
e. If 0 < T < 4*delt, then set T = 4*delt
f. If Qmax < Qmin, swap values.
g. If Vmax < Vmin, swap values.
h. If Pmax < Pmin, swap values.

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

1 iqcm Iq command, p.u. (Iqcmd)


1 ipcm Ip command, p.u. (Ipcmd)
2 SOC State of charge
3 iqmx Maximum iq limit, p.u. (Iqmax)
3 iqmn Minimum iq limit, p.u. (Iqmin)
3 ipmx Maximum ip limit, p.u. (Ipmax)
3 ipmn Minimum ip limit, p.u. (Ipmin)

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

Current Limit Logic:

If (pqflag = 0) {Q priority}
Iqmax = min [ Output of VDL1, Imax ]

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
Iqmin = - Iqmax

Ipmax =min [ Output of VDL2, ]


Ipmin = -Ipmax
else {P priority}

Iqmax = min [ Output of VDL1, ]


Iqmin = - Iqmax
Ipmax =min [ Output of VDL2, Imax]
Ipmin = -Ipmax
end

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
Model Name: regc_a

Description: Generator/converter model

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables, active and


reactive current commands from reec_a model.

Invocation: regc_a [<n>] {<name> <kv>} <id>} : #<rl> {mva=<value>}

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.

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
fast controllers.

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.

e) The limits, rrpwr (rate limit) and LVPL, are independent.

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.

l) The generic/planning models used to represent generator/converters for renewable


power plants 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.
m) iqrmax is active throughout a simulation when the initial generator reactive power is
greater than zero (in this case, iqrmin is not used). iqrmin is active throughout a
simulation when the initial generator reactive power is less than zero (in this case,
iqrmax is not used).

n) If xe is larger than zero, then Iq is divided over xe.

o) The “fix bad data” option will do the following:

a. If Tg < 4*delt, then set Tg = 4*delt


b. If Tfltr < 4*delt, then set Tfltr = 4*delt
c. If lvpnt1 < lvpnt0, swap the values

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

Magnitude Vmi = |Vi|


Angle Vai = atan(Vx/Vy)
(both decelerated after 1st iteration) Nodal voltage: Not solved,
Vi = Vx + jVy next algebraic
on common reference iteration, “i”.
Vmi > Vtmax
(maximum instantaneous
terminal voltage)

Algebraic Network Solved:


True False Solution Solved q = 
q = q + accel*( Vmi - Vtmax) q = q

q = S0 (reactive current state variable)*Vmi - q

q< qmin (transient Time


maximum underexcited Algebraic Network Solution Advances
reactive power limit) …

False
True: q = qmin q=q

Translate q to iq, using decelerated Vi Nodal current


injection:
Ii =Ix + IVy
Translate ip, iq back to common reference on common reference
frame

Instantaneous High Voltage Reactive Power Logic Flowchart


Generator/converter model

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

p = S1 (active current state variable)*Vmi *mult

Time
Algebraic Network Solution Advances…

Translate p to ip, using decelerated Vi

Nodal current
Translate ip, iq back to common reference injection:
frame Ii =Ix + IVy
on common reference

Instantaneous Low Voltage Active Power Logic Flowchart


Model Name: reloden

Description Load encroachment definition for WECC Distance and


Overcurrent Relay Models

Prerequisites: Branch must exist

Inputs: none

Invocation: reloden nf namef kvf id nt namet kvt ck :

Parameters:

EPCL Default
Variable Data Description

func 0.0 Application: 1 use with distance relay only


2 use with overcurrent relay only
3 use with all relays on the line
freach 0.0 Forward load impedance, ohms
rreach 0.0 Reverse load impedance, ohms.
plaf 0.0 Positive forward load angle, deg.
plar 0.0 Positive reverse load angle, deg.
nlar 0.0 Negative reverse load angle, deg.
nlaf 0.0 Negative forward load angle, deg.
int3 0.0 Blinder 3 intercept, ohms

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

Description Power Plant Controller

Prerequisites: Other plant models ahead of this model

Inputs: Monitored voltage, frequency, branch I, P and Q flows


(which inputs are used depends on invocation)

Invocation: repc_a [<n>] {<name> <kv>} <id> [<nr>] {<namer> <kvr>} ! !


[<mon_i>] {<namei> <kvi>}[<mon_j>] {<namej> <kvj> <ck> :

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.

e) This model is for use with an individual WTG or PV model.


f) Vref and Qrefp can be accessed via genbc[].vref in genbc, i.e., Vref = genbc[@i].vref if
RefFlg = 1, and Qrefp = genbc[@i].vref if RefFlg = 0.
g) genbc[].glimt can be used to change the power reference, Plant_pref.
h) 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.
i) Freq is in per unit. If the “to bus” is specified (<nr>), then Freq is the frequency at this
bus, e.g., repc_a 7 "ABCD-BUS " 0.48 "1 " 3 ! !
j) If mvab is not specified (i.e. mvab = 0.0) then the base of the associated generator model
(regc_a) is used.
k) If puflag = 0 then Pbranch and Qbranch are in p.u. on system base, else Pbranch and
Qbranch are in p.u. on model base (mvab)
l) The reference frequency Freq_ref is model variable fref.
m) 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_a is a voltage quantity not reactive power.
Consequently qmax, qmin should be the voltage limits in p.u.
n) 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

1 qref Reactive power command (Qref), p.u.


1 prf0 Real power reference (Pref0), p.u.
2 vreg Regulated voltage (Vreg), p.u.
2 pbra Branch real power, (P branch), p.u. (See Note k)
2 qbra Branch reactive power, (Q branch), p.u. (See Note k)
2 ibra Branch current, (I branch), p.u. on system base
Block Diagram:
Model Name: repc_b

Description Power Plant Level Controller for controlling several


plants/devices

Prerequisites: Plant models ahead of this model in dynamic models table.

Inputs:

Invocation: repc_b [<n>] {<name> <kv>} <id> [<nr>] {<namer> <kvr>} ! !


[<mon_i>] {<namei> <kvi>}[<mon_j>] {<namej> <kvj> <ck> :

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

1 Wext Reactive power command, p.u. on system base


1 Pext Real power reference, p.u. on system base
2 vreg Regulated voltage (Vreg), p.u.
2 pbra Branch real power, (P branch), p.u. on system base
2 qbra Branch reactive power, (Q branch), p.u. on system base
2 ibra Branch current, (I branch), p.u. on system base
Block Diagram:

VcmpFlg Vref Vaux


I branch
1 +
| Vreg – (Rc + j Xc) Ibranch | +
1
Vreg 1+ sTfltr _ 
0
s0 qmax
RefFlg emax
+ dbd
1
Kc  0 K 1 + sTft Wext
Q branch + K p + si
1 + sTfv
Q aux 2 s2 s3
emin qmin
+
Q branch 1
 if Vreg < vfrz then
1+ sTfltr _
+ freeze state s2
s1
(ds2/dt = 0)
Q refp

_
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

Description General Purpose Rotating Excitation System


Model

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current, generator speed

Invocation: rexs [<nf>] {<namef> <kvf>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Voltage transducer time constant, sec


Kvp 2800.0 Voltage Regulator Proportional Gain
Kvi 0.0 Voltage Regulator Integral Gain
Vimax 0.1 Voltage Regulator Input Limit, p.u
Ta 0.01 Voltage Regulator time constant, sec.
Tb1 0.0 Lag time constant, sec.
Tc1 0.0 Lead time constant, sec.
Tb2 0.0 Lag time constant, sec.
Tc2 0.0 Lead time constant, sec.
Vrmax 47.0 Maximum controller output, p.u. (note j)
Vrmin -20.0 Minimum controller output, p.u. (note j)
Kf 0.05 Rate feedback gain
Tf 1.0 Rate feedback time constant, sec.
Tf1 0.0 Feedback lead time constant, sec
Tf2 0.0 Feedback lag time constant, sec.
Fbf 1.0 Rate feedback signal flag
Kip 1.0 Field Current Regulator Proportional Gain
Kii 0.0 Field Current Regulator Integral Gain
Tp 0.0 Field current Bridge time constant, sec.
Vfmax 47.0 Maximum Exciter Field Current, p.u. (note j)
Vfmin -20.0 Minimum Exciter Field Current, p.u. (note j)
Kh 0.0 Field voltage controller feedback gain
Ke 1.0 Exciter field proportional constant
Te 1.2 Exciter field time constant, sec. (> 0.)
Kc 0.05 Rectifier regulation factor, p.u.
Kd 2.0 Exciter regulation factor, p.u.
E1 3.0 Field voltage value, 1 (note l)
Se1 0.0001 Saturation factor at E1 (note l)
E2 4.0 Field voltage value, 2 (note l)
Se2 0.001 Saturation factor at E2 (note l)
Rcomp 0.0 (not used)
Xcomp 0.0 (not used)
Nvphz 0.0 (not used)
Kvphz 0.0 (not used)
Flimf 0.0 Limit type flag
Xc 0.0 Exciter compounding reactance, p.u
Vcmax 0.0 Maximum compounding voltage, p.u
Kefd 0.0 Field voltage feedback gain
Limflg 0.0 Limit flag

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.

b) The rotating exciter may be of either DC or Brushless AC type. To model a DC


exciter, set Kc = Kd = 0.

c) An AC exciter can be modeled either by setting Kc and Kd to non- zero values to


represent the armature reaction of the exciter and the regulation of the rotating
rectifier, respectively, or by specifying the saturation factors, Se1, Se2 to represent
the excitation-output-voltage curve of the exciter as loaded by the field resistance of
the main generator. It is preferable to use the first approach (Kd != 0) since the later
approach does not represent the effect of armature reaction in the exciter on its field
current and hence invalidates the model when field current is sensed by the voltage
regulator.

d) When this model is used to represent a separately-excited exciter, the value of Ke


should normally to close to unity. A shunt-excited DC exciter can be modeled by
setting Ke to the appropriate small negative value needed represent the relationship
between the exciter's air gap line and field resistance line. Note though, that this
model does not determine the value of Ke automatically when a shunt field DC
exciter is being represented.

e) The voltage regulator may be of proportional or proportional-plus-integral form.


Either Kvp or Kvi, but not both, may be zero.

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:

Fbf signal used for rate feedback


0 voltage regulator output voltage
(same as exciter field voltage)
1 exciter field current
2 output voltage of the exciter

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

Flimf = 1 the limits on regulator output are (Vrmax*Vterm),


(Vrmin*Vterm), (Vfmax*Vterm), and (Vfmin*Vterm).

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.

n) The “fix bad data” option will do the following:


a. Set Te to a minimum of 4*delt.
b. If non-zero, set Tr, Ta, Tb1, Tb2, Tf and Tf2 to a minimum of 4*delt
c. If Vrmax < Vrmin, swap the values.
d. If Vfmax < Vfmin, swap the values.

Output Channels:

Record
Level Name Description

1 if Generator field current p.u.


1 vr Voltage regulator output p.u.
1 vfe Exciter field voltage p.u.
1 ife Exciter field current p.u.

Block Diagram:
Model Name: scgap

Description Series Capacitor Gap

Prerequisites: Branch section must exist

Inputs: Current in capacitor

Invocation: scgap [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet>


<kvt>} <ck> <sec>:

Parameters:

EPCL Default
Variable Data Description

Iflash 0.0 Gap firing current, p.u.


Ireins 0.0 Reinsertion current, p.u.
Rdelay 0.0 Reinsertion delay, sec.
Nshots 0.0 Number of reinsertion attempts
Trmax 0.0 Time after which reinsertion will not be attempted, sec.

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:

gst = 0 capacitor is not bypassed


1 capacitor is bypassed, but Icap < Ireins
2 capacitor is bypassed, Icap > Ireins
8 permanently bypassed due to exceeding Nshots
9 permanently bypassed due to exceeding Trmax

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

1 st Status of capacitor branch section


(1-in service, 2-bypassed, 0-open)
1 icap Current magnitude in capacitor (p.u.)
1 Gst Gap status (see note e)
1 nfls number of times the gap has flashed over
Model Name: scmov

Description Metal Oxide Varistor (MOV) and bypass protection


for a series capacitor

Prerequisites: Series capacitor branch section must exist

Inputs: Current in capacitor protected by MOV

Invocation: scmov [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet>


<kvt>} <ck> <sec> :

Parameters:

EPCL Default
Variable Data Description

Icrated 0.0 Capacitor rated rms current in Amps.


Icappro 0.0 Capacitor protective level rms current, p.u. on Icrated base (see
Note c below)
Ithresh 0.98 Threshold value for MOV activation (see Note c below)
Daccel 0.10 Deceleration convergence coefficient
Enerlim 0.0 MOV energy limit in Mjoules. If MOV energy exceeds
Enerlim, the cap+mov are bypassed in Enerdly sec.
Enerdly 0.0 Bypass delay associated with Enerlim, sec.
Imovlim 0.0 MOV rms current limit, p.u. of Icrated. If MOV current exceeds
Imovlim, the cap+mov are bypassed in Imovdly seconds.
Imovdly 0.0 Bypass delay associated with Imovlim, sec.
Icaplim 0.0 Capacitor rms current limit, p.u. of Icrated. If the capacitor
current exceeds Icaplim for Icapdly seconds, the cap+mov are
bypassed.
Icapdly 0.0 Bypass delay associated with Icaplim, sec.
Operdly 0.0 Time delay associated with external bypass signal
model[@scmov].sigval[0].
Iinsert 0.0 Insertion current, p.u. of Icrated. If line current is less than
Iinsert for Tinsert sec, the capacitor is reinserted.
Tinsert 0.0 Insertion time, sec.
Notes:

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.

b) The scmov model is based on “A Linearized Model for MOV-Protected Seroes


Capacitors” by D.L. Goldsworthy, IEEE Transactions on Power Systems, Vol.
PWRS-2, No. 4, November 1987.

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:

Rpc = ( 0.0745 + 0.49*exp(-0.243*Ipux) - 35.0*exp(-5.0*Ipux) - 0.60*exp(-1.40*Ipux) ) * (-Xcap);


Xpc = ( 0.1010 - 0.005749*Ipux + 2.088*exp(-0.8566*Ipux) ) * (Xcap);
where: Ipux = Icap(Amps) / (Icappro*Icrated)

d) Icrated, Icappro, Ithresh, and daccel must be greater zero.

e) The cap+mov may be bypassed by any of 4 bypass options as illustrated in the


SCMOV Bypass Logic diagram below:
1) Enerlim – If the energy absorbed by the MOV exceeds this level, the cap+mov
are bypassed after a delay of Enerdly seconds. According to the Goldsworthy
paper, the computation of MOV energy by this model is reasonably accurate.
2) Imovlim – If the rms current through the MOV exceeds this level, the cap+mov
are bypassed after a delay of Imovdly seconds. Since the current in the MOV is
very non-sinusoidal and this limit is usually specified as a crest value of current,
the determination of an rms value of Imovlim is unclear.
3) Icaplim – If the rms current in the capacitor itself exceeds this level for a total of
Icapdly seconds, the CAP and MOV are bypassed. (This would normally only
occur for failure of the MOV)
4) model[@scmov].sigval[0] – If this signal is set to “1” by a user-written model,
the cap+mov will be bypassed after a delay of Operdly seconds.

If Icaplim, Imovlim, or Enerlim is zero, the associated bypass function is


disabled. Since bypassing is usually done with a triggered gap, followed by closing a
bypass switch, the bypass delay times will usually be very short.

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

1 ItoA Total bank current magnitude in Amps


1 IcaA Capacitor current magnitude in Amps
1 ImoA MOV current magnitude in Amps
1 Vcap Voltage across capacitor in p.u.
1 Ener MOV accumulated energy in MJoules
2 Itot Total bank current magnitude in p.u. of system base
2 Icap Capacitor current magnitude in p.u. of system base
2 Imov MOV current magnitude in p.u. of system base

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.

scmov schematic diagram:

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

WMOV > IMOV > ICAP >


Enerlim Imovlim Icaplim

Yes = 1 Yes = 1 Yes = 1


No = 0 No = 0 No = 0

Delay Delay Delay Delay


Enerdly Imovdly Icapdly Operdly

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

Description Simple excitation system model representing


generic characteristics of many excitation
systems; intended for use where negative field
current may be a problem

Prerequisites: Generator model ahead of this model in dynamic


models table

Inputs: Compounded generator terminal voltage

Invocation: scrx [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Value Description

TaTb 0.1 Ta /Tb - gain reduction ratio of lag-lead element


Tb 10.0 Denominator time constant of lag-lead block, sec.
K 200.0 Gain (> 0.)
Te 0.02 Time constant of gain block, sec. (> 0.)
Emin 0.0 Minimum field voltage output, p.u.
Emax 5.0 Maximum field voltage output, p.u.
Cswitch 0.0 Power source switch:
1 = fixed ac voltage
0 = generator terminal voltage
RcRfd 0.0 Rc/Rfd - ratio of field discharge resistance to field winding
resistance

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.

c) The “fix bad data” option will do the following:


a. Set Te to a minimum of 4*delt.
b. If non-zero, set Tb to a minimum of 4*delt
c. Set K to a minimum of 1.
d. If Emax < Emin, swap the values.
Output Channels:

Record
Level Name Description

1 if Generator field current, p.u.

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

[vsig] Ifd < 0


Vf

rc
rfd Ifd
[ladIfd]
Model Name: secld1

Description Secondary load model with continuous reset of


transformer tap ratio

Prerequisites: Normal voltage/frequency values of load


contained in working case and working case
solved

Inputs: Compounded generator terminal voltage

Invocation: secld1 [<n>] {<name> <kv>} <id>:

Parameters:

EPCL Default
Variable Data Description

Vband 0.0 Voltage control deadband, p.u.


T1 0.0 Tap adjustment time constant, sec.
Req 0.0 Effective resistance of transformer, p.u.
Xeq 0.0 Effective reactance of transformer, p.u.

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

1 vsec Secondary voltage, p.u.


1 tsld Tap position, p.u.
1 ppri Primary electrical power, MW
1 qpri Primary reactive power, MVAR

Block Diagram:

1
vinit
sT1 ¯ +

vsec

tsld

Ppri
+ j Qpri Gload
+ j Bload
Model Name: secld2
and
secld3

Description Secondary load model with continuous reset of


transformer tap ratio and 3-component
characteristic

Prerequisites: Normal voltage/frequency values of load


contained in working case and working case
solved

Inputs:

Invocation: secldx [<n>] {<name> <kv>} <id>: (x = 2 or 3)

Parameters:

EPCL Default
Variable Data Description

Req 0.0 Effective resistance of transformer, p.u.


Xeq 0.0 Effective reactance of transformer, p.u.
Vsmin 0.0 Minimum secondary voltage, p.u.
Vsmax 0.0 Maximum secondary voltage, p.u.
Td 0.0 Dead time before tap motion, sec.
Ts 0.0 Tap motion time constant, sec.
Pz 0.0 Load characteristic constants, p.u.
Qz 0.0 Load characteristic constants, p.u.
Pi 0.0 Load characteristic constants, p.u.
Qi 0.0 Load characteristic constants, p.u.
Pm 0.0 Load characteristic constants, p.u.
Qm 0.0 Load characteristic constants, p.u.

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

1 vsec Secondary voltage, p.u.


1 tsld Tap position, p.u.
1 ppri Primary electrical power, MW
1 qpri Primary reactive power, MVAR
1 vpri Primary voltage, p.u.

Block Diagram:
1
vinit
sT1 ¯ +

vsec

tsld
Ppri
Po = (pzv2 + piv + pm)
+j
Qo = (qzv2 + qi v + qm)
Qpri
Model Name: secld3
and
secld2

Description Secondary load model with continuous reset of


transformer tap ratio and 3-component
characteristic

Prerequisites: Normal voltage/frequency values of load


contained in working case and working case
solved

Inputs:

Invocation: secldx [<n>] {<name> <kv>} <id>: (x = 2 or 3)

Parameters:

EPCL Default
Variable Data Description

Req 0.0 Effective resistance of transformer, p.u.


Xeq 0.0 Effective reactance of transformer, p.u.
Vsmin 0.0 Minimum secondary voltage, p.u.
Vsmax 0.0 Maximum secondary voltage, p.u.
Td 0.0 Dead time before tap motion, sec.
Ts 0.0 Tap motion time constant, sec.
Pz 0.0 Load characteristic constants, p.u.
Qz 0.0 Load characteristic constants, p.u.
Pi 0.0 Load characteristic constants, p.u.
Qi 0.0 Load characteristic constants, p.u.
Pm 0.0 Load characteristic constants, p.u.
Qm 0.0 Load characteristic constants, p.u.

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

1 vsec Secondary voltage, p.u.


1 tsld Tap position, p.u.
1 ppri Primary electrical power, MW
1 qpri Primary reactive power, MVAR
1 vpri Primary voltage, p.u.

Block Diagram:
1
vinit
sT1 ¯ +

Vsec

tsld

Ppri Po = (pzv2 + pm)


+ j Qpri Qo = (qzv2 + qi v + qm)
Model Name: sexs

Description 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

Prerequisites: Generator model present and ahead of this


model in the models table

Inputs: Compounded generator terminal voltage

Invocation: sexs [<n>;] {<name>; <kv>;} <id>;

Parameters:

EPCL Default
Variable Data Description

TaTb 0.1 Ta/Tb - gain reduction ratio of lag-lead element


Tb 10.0 Denominator time constant of lag-lead block, sec.
K 100.0 Gain (> 0.)
Te 0.05 Time constant of gain block, sec. (> 0.)
Emin -5.0 Minimum field voltage output, p.u.
Emax 5.0 Maximum field voltage output, p.u.
Kc 0.08 PI controller gain (> 0. if Tc > 0.)
Tc 0.0 PI controller phase lead time constant, sec.
Efdmin -5.0 Field voltage clipping limit, p.u.
Efdmax 5.0 Field voltage clipping limit, p.u.
Tr 0.0 Voltage transducer time constant, sec.

Notes:

a) K and Te must be greater than zero. If Tr or Tb is zero, the corresponding block is


bypassed.

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

1 if Generator field current, p.u.

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

Description Controllable current injection model. Can be used


to model D-SMES ( Distributed Superconducting
Magnetic Energy Storage System) of
AmericanSuperconductor, etc.

Prerequisites: 1) modeled as a generator in load flow. 2) smes


shunt capacitor in shunt table 3) an epcl program
in "stdepcl" directory implementing controls

Inputs: Voltage of the smes controlled bus

Invocation: smes1 [<n>]{<name> <kv>} <id> : #rlevel <mva=>


"epclname" <table> "rcomm" <value> "xcomm" <value>
"cntrbus" <value> "capbus" <value> "kp_i" <value>
"ki_i" <value> "tdelay_Ipk" <value> "tdelay_p"
<value> "Vthr_Ipk" <value> "Imin" <value> "Imax"
<value> "ImPk" <value> "T_ImPk" <value> "T_Im_rmp"
<value> "V_hg_p" <value> "V_lw_p" <value> "pk_mw"
<value> "rate_p" <value> "tdisc" <value> "delay_c"
<value> "B_cap" <value> "V_cap_off" <value>
"vref_lw" <value> "vref_hg" <value> "accel"
<value>

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

p_table 0.0 EPCL table number


rcomm 0.0 Transformer resistance in p.u. on model mva base
xcomm 0.0 Transformer reactance in p.u. on model mva base
cntrbus 0.0 External bus number of controlled bus
capbus 0.0 External bus number of capacitor bus
kp_i 0.0 Voltage PI control proportional gain
ki_i 0.0 Voltage PI control integral gain
tdelay_Ipk 0.0 Delay time before "ImPk" apply again, sec.
tdelay_p 0.0 Delay time before magnet discharge again, sec.
Vthr_Ipk 0.0 Voltage threshold to activate peak current "ImPk"
Imin 0.0 Default minimum current
Imax 0.0 Default maximum current
ImPk 0.0 Peak maximum current, e.g., 2.3 times
T_ImPk 0.0 Time duration when max current is ImPk
T_Im_rmp 0.0 Maximum current ramp down time
V_hg_p 0.0 Voltage below which magnet discharges
V_lw_p 0.0 Voltage above which magnet can discharge
pk_mw 0.0 Peak MW of magnet discharge
rate_p 0.0 Magnet discharge rate, mw/second
tdisc 0.0 Magnet discharge time period, second
delay_c 0.0 Delay time before shunt capacitor switch in
B_cap 0.0 Admittance in p.u. of smes shunt capacitor
V_cap_off 0.0 Voltage above which smes capacitor switch off
vref_lw 0.0 Nominal low voltage threshold
vref_hg 0.0 Nominal high voltage threshold
accel 0.0 Solution acceleration factor

Notes:

a) SMES is modeled as a generator in load flow, which conveniently simulates its


continuous voltage control function.

b) SMES1 dynamic model simulates controlled current injection. In turn, it is able to


control voltage of a designated bus, real and reactive power injection, etc. The current
injection itself is simulated in the C code model smes1, while the controls of the
magnitude and phase of the current injection are implemented in an epcl program in
the "stdepcl" directory. The current magnitude and phase angle are interface variables
between the smes1 C code model and the epcl program. An example epcl program,
smes1.p, in the "stdepcl" directory simulates the D-SMES control schemes of the
AmericanSuperconductor. The parameter list of the smes1 C code model is tailored to
the smes1.p control implementation. However, smes1 C code model IS able to work
with other epcl programs implementing different control schemes.

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 PI controller output of current magnitude is limited by a max and a min


value. The default max and min values are "Imax" and "Imin".The maximum
value can be overwritten by the peak current algorithm. When voltage of the
controlled bus dips below "Vthr_Ipk", the maximum current becomes "ImPk"
instantly. The PI controller output of current magnitude also becomes "ImPk"
instantly. The maximum current stays as "ImPk" for "T_ImPk" seconds and
ramps down to 1.0 pu in "T_Im_rmp" seconds. The injection current magnitude
follows the PI controller after it was boosted up to "ImPk".

 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

1 pac MW injection into network


1 qac MVAR injection into network
1 vt terminal voltage, p.u.
1 imag current injection magnitude, p.u.
1 gama current injection phase angle, degrees

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

Description Generator stator over-current relay with definite


time characteristic

Prerequisites: The generator must be present in the working case,


and represented by a generator dynamic model

Inputs:

Invocation: socdt [<n>] {<name> <kv>} <id>:

Parameters:

EPCL Default
Variable Data Description

Pickup 0.0 Pickup current, p.u.


Tdelay 0.0 Definite time delay, sec.
instnt 0.0 Instantaneous operation current, p.u.
Tcb 0.0 Circuit breaker time, sec.

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:

Pickup 1.2 - 1.4 p.u.


Tdelay 0.1 - 0.5 sec
instnt 4.0 - 6.0 p.u.

c) Focdt is a similiar model of field over-current protection.


Output Channels:

Record
Level Name Description

1 soc Stator current, p.u.

Block Diagram:

Time
Sec

id

nf

Tdelay

Pickup Inst Current


Model Name: socti

Description Generator stator overcurrent relay with inverse


time characteristic

Prerequisites: The generator must be present in the working


case, and represented by a generator dynamic
model

Inputs:

Invocation: socti [<n>] {<name> <kv>} <id>:

Parameters:

EPCL Default
Variable Data Description

Pickup 0.0 Pickup current, p.u.


instnt 0.0 Instantaneous operation current, p.u.
Tcb 0.0 Circuit breaker time, sec.
m1 0.0 Multiple of pick up
t1 0.0 Time to trip, sec.
m2 0.0 Multiple of pick up
t2 0.0 Time to trip, sec.
m3 0.0 Multiple of pick up
t3 0.0 Time to trip, sec.
m4 0.0 Multiple of pick up
t4 0.0 Time to trip, sec.
m5 0.0 Multiple of pick up
t5 0.0 Time to trip, sec.
treset 0.0
vrf 0.0 Voltage restraint factor

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:

Pickup = 1.2 - 1.4 p.u.


Tdelay = 0.1 - 0.5 sec
instnt = 4.0 - 6.0 p.u.

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.

Starting point settings could be

pickup 2.0 p.u.


inst 5.0
tcb 0. 05
m1 1.5
t1 50.0
m2 1.6
t2 10.0
m3 1.8
t3 1.0
m4 2.5
t4 0.1
m5 4.8
t5 0.05
treset 30.0 sec
vrf 0.2-0.4

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

1 soc Timer travel, fraction of time to operate

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

Description Pump/fan driven load model for synchronous motors

Prerequisites: Generator model ahead of this model in the dynamic


models table

Inputs:

Invocation: spfl [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

a 0.0 speed squared coefficient


b 0.0 speed coefficient
d 0.0 speed to the e power coefficient
e 0.0 exponent
T1 0.0 optional lead time constant, sec.
T2 0.0 optional lag time constant, sec.

Notes:

a) The mechanical load power is calculated by:

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:

Motor Speed Mechanical Power


[speed] w 1  sT1 [pmech]
Tm(w) To * w
1  sT2
Model Name: stag1

Description Single Shaft Combined-Cycle Plant Model

Prerequisites: Generator model ahead of this model in the dynamic


model table

Inputs: Shaft speed Turbine load reference

Invocation: stag1 [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

rvalve 0.0 Governor Permanent droop, valve position feedback, p.u.


rpelec 0.04 Governor Permanent droop, electrical power feedback, p.u.
tpelec 5.0 Electrical Power Transducer time constant, sec.
kturb 1.5 Turbine gain, p.u.
tnturb 0.0 Turbine numerator time constant, sec.
tdturb 0.3 Turbine denominator time constant, sec.
ta 0.2 Fuel valve time constant, sec.
ropen 1.0 Maximum valve opening rate, sec.
rclose -999.0 Maximum valve closing rate, sec.
fidle 0.18 Full-speed no-load fuel flow, p.u.
fsrmin 0.15 Minimum allowable valve opening, p.u.
vb 1.0 Valve opening at valve breakpoint, p.u.
fb 1.0 Fuel flow at valve breakpoint, p.u.
kpgov 10.0 Governor proportional gain
kigov 2.0 Governor integral gain,
tlim 1.0 Load at exhaust temperature limit, p.u.
tnshld 1.0 Radiation shield numerator time constant, sec.
tdshld 4.0 Radiation shield denominator time constant, sec.
ttemp 1.5 Temperature transducer time constant, sec.
kpt 5.0 Temperature limit controller proportional gain
kit 1.0 Temperature limit controller integral gain
aclim 0.01 Acceleration limit, pu speed/sec.
tacc 0.2 Acceleration detector time constant, sec.
kpacc 5.0 Acceleration limit controller proportional gain
kiacc 10.0 Acceleration limit controller integral gain,
kpigv 5.0 IGV controller proportional gain
kiigv 1.25 IGV controller integral gain
tigv 1.0 IGV actuator time constant, sec.
tlimgv 0.95 IGV temperature limit, p.u.
afmin 0.8 Minimum air flow at minimum IGV position, p.u.
rrmax 0.000125 Maximum rate of change of speed reference, p.u./sec.
dba 0.0 Input dead band parameter, p.u.
eps 0.0 Input dead band parameter, p.u.
dbb 0.0 Valve actuator backlash parameter, p.u.
stfrac 0.33333 Per unit steam turbine output for 1.0 p.u. GT output, p.u.
kpp 10.0 Pressure controller proportional gain, p.u.
kip 1.0 Pressure controller integral gain, p.u.
vmax 1.0 Maximum output of pressure controller, p.u.
tw 2.0 Boiler steam generation time constant, sec.
td 10.0 Boiler drum time constant, sec.
kp 0.05 Superheater pressure drop factor, p.u./p.u.
tpv 0.2 Throttle valve time constant, sec.
tnrh 1.5 Lead time constant, sec.
tdrh 5.0 Reheater time constant, sec.
y0 0.1 Heat available for steam generation when GT running at
full-speed no-load, p.u.
x1 0.0 Steam turbine characteristic break point, p.u.
y1 0.1 Steam turbine characteristic break point, p.u.
x2 0..5 Steam turbine characteristic break point, p.u.
y2 0.55 Steam turbine characteristic break point, p.u.
p0 0.4 Pressure reference at noload, p.u.
h1 0.4 Pressure reference characteristic break point, p.u.
p1 0.4 Pressure reference characteristic break point, p.u.
h2 0.8 Pressure reference characteristic break point, p.u.
p2 1.0 Pressure reference characteristic break point, p..u

General Description:

This model is a representation of a Steam and Gas Turbine (STAG) single-shaft


combined cycle unit. That is, a gas turbine and steam turbine connected in tandem to
a single generator.

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

Description Static Synchronous Condenser

Prerequisites: Generator present in load flow working case.

Inputs: Machine terminal voltage or bus voltage

Invocation: stcon [<n>] {<name> <kv>} <id> { ! ! ! ! !


[<mon>] {<namemon> <kvmon>} }:

Parameters:

EPCL Default
Variable Data Description

R 0.0 Current droop, p.u.


Tf 0.0 Voltage transducer time constant, sec.
Kp 0.0 Proportional gain
Ki 0.0 Reset gain gain
Ta 0.0 Lead time constant, sec. ( unused )
Tb 0.0 Lag time constant, sec. ( unused )
Xt 0.0 Internal (transformer) ractance, pu on mbase
Vmin 0.0 Minimum inverter voltage, p.u.
Vmax 0.0 Maximum inverter voltage, p.u.
Kil 0.0 Current limiter gain
Imax 0.0 Current limit setting, p.u. on mbase
Kiq 0.0 Reactive controller gain
Qset 0.0 Reactive power output set-point, MVAR
Accel 0.0 Solution acceleration factor
Imxeps 0.0 A delta p.u. current used in umax and umin calculation
vthresh 0.0 Voltage threshold above which vmax and vmin limits
become active
Notes:

a) Stcon represents a "static synchronous condenser" consisting of GTO thyristor or


transistor based inverter whose DC voltage is maintained by a capacitor. The device
is modeled as a voltage source behind a reactance. The voltage source is controlled in
phase to maintain the required voltage on the capacitor by feeding incremental
amounts of real power to it, but to maintain the real power output of the device at zero
for all practical purposes. The voltage source is controlled in amplitude to regulate
either the reactive power output of the device or the voltage of the bus to which it is
connected.

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.

e) Any of the time constants Tf, Ta, Tb may be zero.

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

1 vter Stcon terminal bus voltage, p.u.


1 vcnt Stcon controlled bus voltage, p.u.
1 istc Terminal current, p.u. on generator base
1 qstc Reactive power output, MVAR
1 vint Stcon Internal Voltage, p.u.

Block Diagram:
qset
S5 +
xt Vt Kiq
qterm
iterm s ¯

V int  iterm, qterm


R Kp umax=S2
pterm=0 +
umax Vint
+ 1
¯ vmax
+ 1  sTf
umin
vctr + + Ki
vref vsig umin=S3
|iterm| 1 S4 s
S1
S0
1  sTf vmin
if qterm >=0
Imax
+
Kil if S4 > Imax
S4 ¯
s S3
+ Kil
S2
vmin s
+ Kil
vmax s ¯
if S4 < (Imax - Imxeps)
¯ and
if qterm < 0 vterm > vthresh
Imax
+
Kil if S4 > Imax
S4 ¯
s S2
+ Kil
S3
vmax s
+ Kil
vmin s ¯
if S4 < (Imax - Imxeps)
¯ and
vterm > vthresh
Model Name: stcon1

Description Core model of a Static Var Compensation Device

Prerequisites: Generator present in load flow working case; an epcl


program in standard epcl directory which models the
statcon controls.

Inputs: Generator shaft speed

Invocation: stcon1 [<n>] {<name> <kv>} <id> { ! ! ! ! ! [<mon>]


{<namemon> <kvmon>} ! ! ! <id> }: #rlevel <mva=>
"epclname" <table> "xint" <value> "accel" <value>

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

p_table 0.0 EPCL table number


Xint 0.0 Internal ractance, p.u. on mbase
Accel 0.0 Solution acceleration factor

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.

b) In load flow, this model is represented by a generator.

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.

g) An example of the invocation for stcon1 is shown below:

stcon1 12345 "BUSNAME1" 3.20 "1 " ! ! ! ! ! 67890 "BUSNAME2" 138.0 ! ! !


"1 " : #9 mva=100.0 "epcmod_file_name.p" 15.0 "xint" 99999.0000 "accel" 0.5

Output Channels:

Record
Level Name Description

1 vter Stcon terminal bus voltage, p.u.


1 vcnt Stcon controlled bus voltage, p.u.
1 istc Terminal current, p.u. on generator base
1 qstc Reactive power output, MVAR

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

V int  iterm, qterm


pterm=0

Vterminal
Vcontrolled EPCL Vint
Qterm/Iterm
Model Name: svcwsc

Description Static Var device (compatible with WSCC Vx/Wx


models and Chester SVC)

Prerequisites: Generator present in load flow working case

Inputs: Terminal voltage, bus voltage, etc.

Invocation: svcwsc [<n>] {<name> <kv>} <id> [<n2>] {<name2>


<kv>} :

Parameters:

EPCL Default
Variable Data Description

Ts1 0.0 Voltage transducer time constant, sec.


Vemax 0.0 Maximum error signal, p.u.
Vemin 0.0 Maximum error signal, p.u.
Ts2 0.0 Lead time constant, sec.
Ts3 0.0 Lag time constant, sec.
Ts4 0.0 Lead time constant, sec.
Ts5 0.0 Lag time constant, sec.
Ksvs 0.0 Gain, per unit b/per unit v
Ksd 0.0 Discontinuous control gain, p.u.
Bmax 0.0 Maximum admittance, p.u.
Bpmax 0.0 Maximum controlled admittance, p.u.
Bpmin 0.0 Minimum controlled admittance, p.u.
Bmin 0.0 Minimum admittance, p.u.
Ts6 0.0 Firing control time constant, sec.
Dv 0.0 Threshold for switched control, p.u.
V1max 0.0 Maximum limit on first lead/lag, p.u.
V1min 0.0 Minimum limit on first lead/lag, p.u.
V2max 0.0 Maximum limit on second lead/lag, p.u.
V2min 0.0 Minimum limit on second lead/lag, p.u.
Xc 0.0 Line drop compensating reactance, p.u.
Tc 0.0 Transducer lead time constant, sec.
Dv2 0.0 Threshold for added shunt switching, p.u.
Bshunt 0.0 Additional switched shunt admittance, p.u.
Tdelay 0.0 Time delay for switching added shunt, sec.
Bias 0.0 Constant "bias" shunt admittance, p.u.
J1 0.0 First stabilizer input signal code
K1 0.0 Stabilizer input source bus, from
K2 0.0 Stabilizer input source bus, to
J2 0.0 Second stabilizer input signal code
Ks1 0.0 Stabilizer gain
Ts7 0.0 Stabilizer time constant, sec.
Ts8 0.0 Stabilizer time constant, sec.
Ts9 0.0 Stabilizer time constant, sec.
Ts13 0.0 Stabilizer time constant, sec.
Ts14 0.0 Stabilizer time constant, sec.
Ks3 0.0 Stabilizer gain
Vscsmax 0.0 Maximum stabilizer output, p.u.
Ks2 0.0 Stabilizer gain
Ts10 0.0 Stabilizer time constant, sec.
Ts11 0.0 Stabilizer time constant, sec.
Ts12 0.0 Stabilizer time constant, sec.
b 1.0 = 0 integral control, = 1 proportional control
V1vcl 0.0 Voltage Clamp initiation voltage, pu
V2vcl 0.0 Voltage Clamp release voltage, pu
Tdvcl 0.0 Voltage Clamp release time, sec.

Notes:

a) Svcwsc represents a static var device consisting of thyristor controlled inductive or


capacative shunt elements. Svcwsc assumes that a combination of controlled
admittance and fixed admittance elements is present such that the nominal-frequency
admittance of the combination can be varied from Bpmin to Bpmax under
continuous control. The limits Bpmin and Bpmax must be within the limits Bmin
and Bmax.

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.

g) Any of the time constants Ts1 through Ts6 may be zero.

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

1 k1 -1 Accelerating power of generator at bus k1, pu


2 k1 k2 Power flow in branch from k1 to k2, pu
3 -1 -1 Frequency at the terminals of the SVC
3 k1 -1 Frequency at bus k1
4 k1 k2 Current in branch from k1 to k2, pu

J2 Input 2

4 Voltage at terminals of the svc, pu


5 Reactive power flowing into the SVC, pu
6 Current flowing into the svc, pu

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.

p) The “fix bad data” option will do the following:


a. If non-zero, set Ts1, Ts3, Ts5, Ts6, Ts7, Ts9, Ts10, Ts12, and Ts14 to a
minimum of 4*delt
b. If Vemax < Vemin, swap the values.
c. If V1max < V1min, swap the values.
d. If V2max < V2min, swap the values.
e. If Bmax < Bmin, swap the values.
f. If Bpmax < Bpmin, swap the values.
Output Channels:

Record
Level Name Description

1 bsvs Effective admittance, p.u.


1 busv Input voltage, p.u.
2 vscs Stabilizer output , p.u.

Block Diagram:

Voltage Clamp Logic

if Vbus < V1vcl, Kvc = 0.


if Vbus > V2vcl for Tdvcl sec., Kvc = 1.

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

Input1 Ks1 1  sTs8


Vscsmax
1  sTs7 1  sTs9 +
S4 S5 sTs13
Ks3 Vscs
1  sTs14
+
Input2 Ks2 1  sTs11 S8

1  sTs10 1  sTs12 Vscsmin


S6 S7
Model Name: svsmo1

Description Static Var System

Prerequisites: Type 5 svd in power flow must exist

Inputs: Bus voltage (Vbus), B SVC

Invocation: svsmo1 [<n>] {<name> <kv>} <id> [<n2>] {<name2>


<kv>} :

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:

a) Svsmo1 represents a static var system comprised of a thyristor-based SVC coupled


with coordinated mechanically switched shunts (MSS).

b) Additional documentation for the model is included in the Application Note


“Generic Static Var System Models for the WECC”.

c) Svsmo1 is used in conjunction with an SVD of Type 5.

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.

f) The PI controller, Kps & Kis, represents the slow-susceptance regulator.

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.

i) Vdbd1 and Vdbd2 must both be zero or positive.

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.

r) Kiv must be greater than zero.

s) The slow susceptance PI controller output, pio2, initializes to zero.

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

u) The “fix bad data” option will do the following:


a. If 0 < Tb1 < delt then Tb2 = delt
b. If 0 < Tb2 < delt then Tb2 = delt
c. If T2 < delt then T2 = delt

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:

Vrmax Over Voltage Strategy,


Under Voltage
BSVC (MVAr) Berr Kis Vsched Strategy
pio2
 Kps+  & Short-Term Rating
- s + +
+
Bref S3
Vrmin
Vrefmin
B Bref control Vrefmax
externally
logic
controllable
Vref Bmax
Vemax
+ Bsvc (p.u.)
Vbus 1 + sTc1 Vr Vcomp Verr 1 + sTc2 Kiv pio1 1
  Kpv+
1 + sTb1 + - 1 + sTb2 s 1 + sT2
S0
+ + S4 S1 S2
Vemin
Vsig Bmin
externally
Deadband
controllable
Control
(Optional)
Vr Linear or
Non-Linear
Slope Logic

Isvc
SVC over-
and under-
voltage X
tripping
function

MSS Switching MSS1


Logic based on ... ...
B MSS8

Bref Control Logic:

If ( B < Bsis ) Bref = Bsis + eps


If ( B > Bscs ) Bref = Bscs – eps
Otherwise Bref = B

Linear or Nonlinear Slope Logic:


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
Vcomp = Vr ( 1 + Xc*Isvcv )
Deadband Control Logic:

Yes (Lock SVC at


present VAr output)
(Vref - Vdbd1) < Vr < (Vref+Vdbd1)?

No

Release SVC

No

(Vref - Vdbd2) < Vr < (Vref+Vdbd2) for


more than Tdbd seconds?

Yes

Nonlinear Droop:

Voltage

Xc1
Vup

Xc2

SVC
Current

Vlow

Xc3
Model Name: svsmo2

Description Discretely Controlled SVC

Prerequisites: Type 7 svd in power flow must exist

Inputs: Bus voltage (Vbus), B SVC

Invocation: svsmo2 [<n>] {<name> <kv>} <id> [<n2>] {<name2>


<kv>} :

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:

a) Svsmo2 represents a thyristor switched capacitor/thyristor switched reactor


(TSC/TSR) static var system, coupled with coordinated mechanically switched
shunts (MSS).

b) Additional documentation for the model is included in the Application Note


“Generic Static Var System Models for the WECC”.
c) The capacitive and reactive elements (TSC/TSR) are specified in the svd table, for
example, the data shown below specifies eight switchable elements (N1+N2+…+N10
= 8), one of which is reactive (BSTP7) and the rest capacitive.

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.

e) The theoretical maximum number of combinations of N steps of TSCs and TSRs,


including the possibility of having all TCSs and TSRs off, is given by 2N+1-1.

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.

g) Svsmo2 is used in conjunction with an SVD of Type 7.

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.

i) If Bsvc is between two possible susceptance values (given by a combination of TSCs


and TSRs), say B1 and B2, switching will occur if pio1 is beyond the middle point
between Bsvc and B1 plus dbb, or beyond the middle point between Bsvc and B2
minus dbb.

j) Use svd[].vsig to access the input Vsig using an 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 = 7) )
svd[@i].vsig = @step
endif
next
Actual
Susceptance (B)

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.

l) The PI controller, Kps & Kis, represents the slow-susceptance regulator.

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.

o) Vdbd1 and Vdbd2 must both be zero or positive.

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.

w) The time constants Tb1 and Tb2 may be zero.

x) Kiv must be greater than zero.

y) The slow susceptance PI controller output, pio2, initializes to zero.

z) The “fix bad data” option will do the following:


a. If 0 < Tb1 < delt then Tb2 = delt
b. If 0 < Tb2 < delt then Tb2 = delt
c. If T2 < delt then T2 = delt

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:

Vrmax Over Voltage Strategy,


Under Voltage
BSVC (MVAr) Berr Kis Vsched Strategy
pio2
 Kps+  & Short-Term Rating
- s + +
+
Bref S3
Vrmin
Vrefmin
B Bref control Vrefmax
logic
Vref Bmax
Vemax Bsvc (p.u.)
+
Vbus 1 + sTc1 Vr Vcomp Verr -dbe 1 + sTc2 Kiv -dbb Look-up 1
  Kpv+
1 + sTb1 + - dbe 1 + sTb2 s pio1 dbb Table 1 + sT2
S0
+ + S4 S1 (Bcommand) S2
Vemin
Vsig Bmin

Look-up table
Vr Linear or
Non-Linear finds B closest to Bcommand
Slope Logic

Isvc
SVC over-
and under-
voltage X
tripping
function

MSS Switching MSS1


Logic based on ... ...
B MSS8

Bref Control Logic:

If ( B < Bsis ) Bref = Bsis + eps


If ( B > Bscs ) Bref = Bscs – eps
Otherwise Bref = B

Linear or Nonlinear Slope Logic:

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:

Yes (Lock SVC at


present VAr output)
(Vref - Vdbd1) < Vr < (Vref+Vdbd1)?

No

Release SVC

No

(Vref - Vdbd2) < Vr < (Vref+Vdbd2) for


more than Tdbd seconds?

Yes

Nonlinear Droop:

Voltage

Xc1
Vup

Xc2

SVC
Current

Vlow

Xc3
Model Name: svsmo3

Description Static Var System (STATCOM)

Prerequisites: Type 6 svd in power flow must exist

Inputs: Bus voltage, B SVC

Invocation: svsmo3 [<n>] {<name> <kv>} <id> [<n2>] {<name2>


<kv>} :

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:

a) Svsmo3 represents a STATCOM, i.e., a Voltage Source Converter (VSC) based


static var system, coupled with coordinated mechanically switched shunts (MSS).

b) Additional documentation for the model is included in the Application Note


“Generic Static Var System Models for the WECC”.

c) Svsmo3 is used in conjunction with an SVD of Type 6.

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.

e) The PI controller, Kpr & Kir, represents a slow-reset control.

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.

p) Ki must be greater than zero.

q) Use svd[].vsig to access the input Vsig using an 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 = 6) )
svd[@i].vsig = @step
endif
next

r) The “fix bad data” option will do the following:


a. If 0 < Tb1 < delt then Tb2 = delt
b. If 0 < Tb2 < delt then Tb2 = delt
c. If To < delt then To = delt
Output Channels:

Record
Level Name Description

1 Istc Output current (It), p.u.


1 Qstc SVS output, MVAr
2 pio1 Kp, Ki PI controller output, p.u.
2 pio2 Kpr, Kir PI controller output, p.u.
2 vref Reference voltage, p.u.
2 err Error signal, p.u.
Block Diagram:

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

dbd = 0 : open Xco


dbd > 0 : close

0
flag2
1
Xc1 if Vr >= V1
Xc = Xc2 if V2 < Vr < V1
Xc3 if Vr <= V2

STATCOM
over- and
under-voltage
tripping
function

MSS Switching MSS1


Logic based on ... ...
Q MSS8
Ishrt 1

0 1
Imax1
| It | 1
1
 
+ + s hyst
- - S4
0
Imax1 0 I2t

Imax1 Reset Imax1

2
I t Limit Imax

Vr

Set err = 0 and lock


Yes
(Vref - dbd) <= Vr <= (Vref + dbd)? STATCOM outout at its
present value
No

err = Vref – Vr – Xco It


Vr

Allow STATCOM to regulate voltage


Slope of Xc1

V1

(Vref – dbd/Kdbd) <= Vr <= (Vref + dbd/Kdbd) No


Slope of Xc2
for more than Tdbd seconds?
Yes
It
Set err = 0 and lock
STATCOM outout at its V2
present value
Slope of Xc3

Deadband (dbd)
Nonlinear Droop
Logic Diagram
Model Name: tcsc

Description Thyristor controlled series compensation model.

Prerequisites: Series capacitor must be modeled in secdd table as a single-


section line.

Inputs: Modulation signal from controller model.

Invocation: tcsc [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>} <ck>
<sec>:

Parameters:

EPCL Default
Variable Data Description

Kvrated 0.0 Rated rms line-to-line voltage in kV


Ilrated 0.0 Rated rms line current (TCSC through-current) in Amps
Xc 0.0 Nominal TCSC reactance in ohms
Xfixed 0.0 Fixed compensation in ohms
Ttcsc 0.0 Time constant associated with TCSC firing controls, seconds
Xbypass 0.0 TCSC reactance for bypass mode, in pu of Xc
Xmax0 0.0 Upper limit of TCSC reactance, in pu of Xc
Xmin0 0.0 Lower limit of TCSC reactance, in pu of Xc
VCtran 0.0 Max voltage for capacitive vernier region for transient overload, pu of
ILrated * Xc
VLtran 0.0 Max voltage for inductive vernier region for transient overload, pu of
ILrated * Xc
ILtran 0.0 Maximum transient line current, p.u. of ILrated (must be less than or
equal to Vctran)
ILttran 0.0 Maximum line current for full conduction operation for inductive region
transient overload, p.u. of ILrated
Tdelay 0.0 Protective bypass recovery delay, seconds
Irecov 0.0 Protective bypass recovery current - in p.u. of bypass current (Iltran)
Xthv 0.0 Solution acceleration factor (default = .4 )
Xaux 0.0 Auxiliary input signal in Ohms
ILTmin 0.0 Mininum thyristor firing current, in p.u. of Ilrated (Thyristors will block
below this current)
ILTdelay 0.0 Minimum current block recovery time delay, seconds
ILTrecov 0.0 Minimum current block recovery current, in p.u. of Ilrated
sngmod 0.0 Set to 1 to represent single module TCSC set to 0 to represent multi-
module TCSC
sngdir 0.0 Region to operate in for single module TCSC set to 1 to operate in
capacitive region set to 0 to operate in inductive region

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.

c) Tcsc represents both the capacitive-vernier and inductive-vernier capability of the


TCSC, as well as any fixed series compensation. This model requires the series
capacitor to be modeled as a single section line in the secdd data. It can be modeled
using the nominal TCSC reactance Xc in per unit, or any other value of X within its
steady-state capability. The model initializes the Xpu equal to secdd[].zsecx. From
Xpu and Xfixed, Xtcs is calculated. If Xtcs is outside the TCSC reactance limits,
error message are written to the standard output and the dynamic log file. The value
of Xref is set to the initial value of Xtcs.

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.

g) To model a TCSC without inductive-vernier capability, set Xmin0 equal to Xbypass

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

1 Pf TCSC MW flow - From to To bus


1 qf TCSC MVAR flow - From to To bus
1 pt TCSC MW flow - To to From bus
1 qt TCSC MVAR flow - To to From bus
1 imag TCSC line current in Amps
1 vfr Voltage at from bus, p.u.
1 vto Voltage at to bus, p.u.
1 xmod Modulation signal from controller, Ohms
1 xtcs TCSC compensation, Ohms
1 xtot TCSC + fixed compensation, Ohms
1 xpu TCSC + fixed compensation, p.u. on system MVA base, from bus base kV
1 xmax TCSC Xmax limit, Ohms
1 xmin TCSC Xmin limit, Ohms
1 xmvc Capacitive voltage limit, Ohms
1 mnvl Inductive voltage limit, Ohms
1 milt Inductive current limit, Ohms

Block Diagram:
Xaux Xmax Xfixed

Xmodulation + Xdesired Xtcs + Xtot Xpu


1 1
+ 1  sTt csc Zbase
+ +

Xref Xmin

TCSC Control Function

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

Reactance Limits Xmax and Xmin


Model Name: texs

Description General Purpose Transformer Fed Excitation


System Model

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Compounded generator terminal voltage,


generator field current

Invocation: texs [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Name Values Description

Tr 0.0 Voltage transducer time constant, sec.


Kvp 20. Voltage Regulator Proportional Gain
Kvi 20. Voltage Regulator Integral Gain
Kvd 0.0 Voltage Regulator Derivative Gain
Tvd 1.0 Voltage Regulator Derivative Time Constant, sec.
Vimax 0.1 Voltage Regulator Input Limit, p.u.
Kff 0.0 Feedforward Gain
Km 1.0 DC converter Gain
Vrmax 5. Maximum controller output, p.u.
Vrmin -5. Minimum controller output, p.u.
Kg 0. Field Current Regulator Feedback Gain
Tg 1. Field Current Feedback time constant, sec. (> 0.)
Kcl 1. Field Current Limit Setpoint Gain
Klr 1. Field Current Limiter Gain
Ilr 5. Field Current Limit Setpoint.
Xc .05 Excitation source reactance p.u.
flag 1.0 Excitation power source flag
1 = transformer at generator terminals
0 = separate constant AC voltage source

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.

d) The DC power element may be either a voltage controlled or a current controlled


rectifier. To represent a voltage controlled rectifier, set the field current feedback
gain, Kg, and the feedforward gain, Kff, to zero and the gain, Km, to 1.0. To
represent a current controlled rectifier, set the field current feedback gain, Kg, to the
appropriate value (most often 1.0), the field current feedback time constant, Tg, to a
nonzero value, and the gains, Kff and Km, to appropriate values.

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.

a) The “fix bad data” option will do the following:


a. Set Tg to a minimum of 4*delt.
b. If non-zero, set Tr and Tdv to a minimum of 4*delt
c. Set Km to a minimum of 0.01.
d. If Vrmax < Vrmin, swap the values.
Output Channels:

Record
Level Name Description

1 if Generator field current p.u.


1 vr Voltage regulator output p.u.

Block Diagram:

Constant Source
Voltage

Generator
Terminal Voltage

llr 1 0
+
Kcl Klr
Vsig ¯ Ladlfd 0
Kvp

Vimax Vrmax Kff Vrmax


+
Vref + + Kvi + + + +
LV
Km
s Gate Vr Ve Efd
¯ + ¯ +
S1 ¯
-Vimax Vrmin Vrmin
Xc
1 sKvd Kg
1  sTr 1  sTvd 1  sTg Ladlfd
S2
S0 S3

Vcomp
Model Name: tgov1

Description Basic steam turbine and governor

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Generator shaft speed

Invocation: tgov1 [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

R 0.05 Permanent droop, p.u.


T1 0.5 Steam bowl time constant, sec
Vmax 1.0 Maximum valve position, p.u. of mwcap
Vmin 0.0 Minimum valve position, p.u. of mwcap
T2 3.0 Numerator time constant of T2, T3 block, sec.
T3 10.0 Reheater time constant, sec.
Dt 0.0 Turbine damping coefficient, p.u.

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 and T3 must be greater than zero.

c) T2 may be zero (to represent a non-reheat turbine set T2 = 0 and T3 to about 0.5 sec).

d) Dt has the dimensions delta P/ delta speed in p.u.

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

Description Turbine/governor model with fast valving

Prerequisites: Generator models ahead of this model in the dynamic


models table

Inputs: Generator shaft speed Fast valving initiation signal

Invocation: tgov3 [<n>;] {<;name>; <kv>;} <id>; : [mwcap=<value>;]

Parameters:

EPCL Default
Variable Data Description

K 20.0 Governor gain, p.u. (reciprocal of droop)


T1 0.0 Governor lead time constant, sec.
T2 0.0 Governor lag time constant, sec.
T3 0.5 Valve positioner time constant, sec.
uo 0.1 Maximum valve opening velocity, p.u./sec.
uc -1.0 Maximum valve closing velocity, p.u./sec (<0)
Pmax 1.0 Maximum valve opening, p.u. of mwcap
Pmin 0.0 Minimum valve opening, p.u. of mwcap
T4 0.2 Inlet piping/steam bowl time constant, sec.
K1 0.2 Fraction of turbine power developed after first boiler pass
T5 0.5 Time constant of second boiler pass (i.e. reheater), sec.
K2 0.2 Fraction of turbine power developed after second boiler pass
T6 10.0 Time const. of crossover or third boiler pass, sec.
K3 0.6 Fraction of hp turbine power developed after crossover or third
boiler pass
Ta 0.97 Time to close intercept valve (IV), sec.
Tb 0.98 Time until IV starts to reopen, sec.
Tc 0.99 Time until IV is fully open, sec.
Prmax 1.0 Max. pressure in reheater, p.u.

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:

gv1 First valve position value - p.u.


pgv1 First flow value - p.u.
gv2 Second valve position value - p.u.
pgv2 Second flow value - p.u.
etc.

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

1 cvfl Control valve flow, p.u.


1 ivfl Intercept valve flow, p.u.
1 pm Turbine power, MW

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

Description Time inverse overcurrent relay standards model


for transmission lines and transformers

Prerequisites: The transmission line or transformer must be


present in the working case

Inputs:

Invocation: tiocrs [<n>] {<name> <kv>} <id> [<nt>] {<namet>


<kvt>} <ck> <sec>:

Parameters:

EPCL Default
Variable Data Description

Mode 0.0 0 = alarm, 1 = trip (Note f)


curvtype 0.0 Determines equation used to calculate the Time to close
value interpreted as (Note d)
1. IEEE C37.112-1996 standard
2. IEC 255-4 or British BS142
3. IAC Curves from GE
pickup 0.0 Current at which relay operates. Value should be specified
in Amps. (this value also specifies the current that
separates the trip and reset characteristics)
Tcb 0.0 Circuit breaker time, sec.
Tdm 1.0 Time dial multiplier (Note g)
Treset 0.0 Zero current reset time (Note e). Describes shape of Reset
Characteristic Curve for values below Threshold. Reset
time in Seconds
p 0.0 Describes shape of Trip Characteristic Curve for values
above Threshold. Only used for Curve Type = 1 and 2
(IEEE and IEC Curves)
a 0.0 Describes shape of Trip Characteristic Curve for values
above Threshold. Used for all Curve Types.
b 0.0 Describes shape of Trip Characteristic Curve for values
above Threshold. Only used for Curve Type = 1 and 3
(IEEE and IAC Curves)
c 0.0 Describes shape of Trip Characteristic Curve for values
above Threshold. Only used for Curve Type = 3 (IAC
Curves)
d 0.0 Describes shape of Trip Characteristic Curve for values
above Threshold. Only used for Curve Type = 3 (IAC
Curves)
e 0.0 Describes shape of Trip Characteristic Curve for values
above Threshold. Only used for Curve Type = 3 (IAC
Curves)
t3trip 0.0 For 3 winding xfmr: 0 = trip only monitored winding,
1 = trip whole transformer (Note b)
direct 0.0 Directional element
0 = no directional element
1=directional element. Direction will be based upon current
leaving the from end of the branch

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>.

d) A TimeToClose function is specified which varies as a function of the multiple above


the threshold current that the relay is presently experiencing. The various relay
models specify TimeToClose functions in different ways, but the time at which the
relay will close is determined by integrating the following function:

θ = ∫ (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

CurveType = 1 (IEEE C37.112-1996 Standard)


Using the parameters Threshold, Tdm, p, A, and B, the TimeToClose is calculated
using the following equation

ܶ݅݉݁ܶ‫ ݁ݏ݋݈ܥ݋‬ൌ ܶௗ௠ ൭‫ ܤ‬൅ ಺೎ೠೝೝ೐೙೟ ೛

ቀ ೛೔೎ೖೠ೛ ቁ ିଵ
CurveType = 2 (IEC 255-4 or British BS142 Standard)
Using the parameters Threshold, Tdm, p, and A the TimeToClose is calculated using
the following equation

ܶ݅݉݁ܶ‫ ݁ݏ݋݈ܥ݋‬ൌ ܶௗ௠ ൭ ಺೎ೠೝೝ೐೙೟ ೛

ቀ ೛೔೎ೖೠ೛ ቁ ିଵ

CurveType = 3 (IAC GE Curves)


Using the parameters Threshold, Tdm, A, B, C, D, and E the TimeToClose is
calculated using the following equation
஻ ஽ ா
ܶ݅݉݁ܶ‫ ݁ݏ݋݈ܥ݋‬ൌ ܶௗ௠ ൭‫ ܣ‬൅ ಺೎ೠೝೝ೐೙೟ ൅ ಺೎ೠೝೝ೐೙೟ మ ൅ ಺೎ೠೝೝ೐೙೟ య ൱
ቀ ೛೔೎ೖೠ೛ ି஼ቁ ቀ ೛೔೎ೖೠ೛ ି஼ቁ ቀ ೛೔೎ೖೠ೛ ି஼ቁ

e) Two methods of resetting operation are available to the user


a. Instantaneous reset: In this method, the relay would reset instantaneously
when the current drops below the pickup value. The method can be
invoked by setting Treset to 0
b. Timed reset: The relay will not reset instantaneously when the current
drops below pickup value. Rather, it resets at a rate proportional to the
square of deviation of current with respect to the pickup value. If the
current is zero, it would take Treset seconds to completely reset the relay.
The relay would begin to reset when the current drops below the pickup
value. If the current drops to 0, it would take Treset seconds to reset. If the
current exceeds the pickup value while the relay is resetting, the relay
would begin integrating the following function from its current reset
condition.

θ = ∫ -( (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

1 tm Timer travel, fraction of time to operate (sec)


2 ibr Branch current measured by the device (Amps)
Model Name: tlin1

Description Under-voltage or under-frequency relay tripping line


circuit breaker(s).

Prerequisites: Lines must exist

Inputs: Voltage or frequency "from" end of branch

Invocation: tlin1 [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet>


<kvt>} <ck> <sec>:

Parameters:

EPCL Default
Variable Data Description

Input 0.0 Input signal flag ( 0 = f , 1 = v )


Tf 0.0 Transducer or filter time constant, sec.
Flag 0.0 Mode flag
Nfar 0.0 Number of far end bus
V1 0.0 Relay pickup setting, p.u.
T1 0.0 Relay definite time setting, sec.
Tcb1 0.0 Circuit breaker operating time, sec.
Sbus 0.0 External number of bus at which frequency or voltage is
monitored
Signal1 0.0 Output signal

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:

0 line has breakers at <nf> and <nfar> trip at <nf> only


1 line has breakers at <nf. and <nfar> trip both ends
2 line supplies radial subsystem trip at <nf> only

e) Tf may be zero. V1 is the frequency setting in Hz if Input = 0. V1 is the voltage


setting in per unit if Input = 1.

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:

Signal = 0 not picked up, trip not initiated


Signal = 1 picked up, trip not initiated (T1 timer)
Signal = 2 picked up, trip initiated (Tcb timer)
Signal = 3 trip completed

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

Description Unit Control Loop (to be used in pair with


agc2)

Prerequisites: Turbine-Governor model ahead of this model in


the dynamic model table Automatic Generation
Control model (AGC2)

Inputs:

Invocation: uclp2 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Factor 0.0 Contribution factor of the controlled unit


Kmw 0.0 MW rating of the unit
Kiu 0.0 Integral gain in unit control
Vumax 0.0 Upper limit in p.u. on the output of the unit control
Vumin 0.0 Lower limit in p.u. on the output of the unit control
Kalloc 0.0 Allocation factor in the allocation logic
Vamax 0.0 Upper limit in MW on the allocation power
Vamin 0.0 Lower limit in MW on the allocation power
Tz 0.0 Time constant for sensoring rate of change in unit
generation
cz 0.0 Maximum limit on the rate of change in unit generation

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

Description IEEE UEL1 under excitation limiter model

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Generator terminal voltage, generator terminal,


signal proportional to exciter field current

Invocation: uel1 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Kuc 1.38 Center setting, p.u.


Kur 1.95 Radius setting, p.u.
Vurmax 5.8 Limit, p.u.
Vucmax 5.8 Limit, p.u.
Kuf 3.3 Excitation system stabilizer gain, p.u.
Kui 0.0 Integral gain, p.u.
Kul 100. Proportional gain, p.u.
Vulmax 18.0 PI control maximum output, p.u.
Vulmin -18.0 PI control minimum output, p.u.
Tu1 0.0 Lead time constant, sec.
Tu2 0.05 Lag time constant, sec.
Tu3 0.0 Lead time constant, sec.
Tu4 0.0 Lag time constant, sec.
Vuelmax 18.0 UEL maximum output, p.u.
Vuelmin -18.0 UEL minimum output, p.u.

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

1 vuel UEL output signal, p.u.


2 vuer Error signal, Vuerr, p.u.

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

Description IEEE UEL2C under excitation limiter model

Prerequisites: Generator model ahead of this model in


dynamic models table

Inputs: Generator terminal voltage, generator terminal,


signal proportional to exciter field current

Invocation: uel2c [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tup 5.0 Real power filter time constant, sec.


Tuq 0.0 Reactive power filter time constant, sec.
Tuv 5.0 Voltage filter time constant, sec.
Vbias 1.0 Voltage bias, p.u.
K1 2.0 Voltage exponent
K2 2.0 Voltage exponent
Kuf 0.0 Excitation system stabilizer gain, p.u.
Tqref 0.0 Reactive power reference time constant, sec.
Kfix 1.0 Fixed gain reduction factor, p.u.
Tadj 3.0 Adjustable gain reduction time constant, sec.
SW1 0.0 Switch for adjustable gain reduction ( 0. or 1. )
Kui 0.5 Integral gain, p.u./sec
Kul 0.8 Proportional gain, p.u.
Vuimax 0.25 PI control block maximum output, p.u.
Vuimin 0.0 PI control block minimum output, p.u.
Tu1 0.0 Lead time constant, sec.
Tu2 0.0 Lag time constant, sec.
Tu3 0.0 Lead time constant, sec.
Tu4 0.0 Lag time constant, sec.
Vuelmax1 0.25. Maximum limit, p.u.
Vuelmin1 0.0 Minimum limit, p.u.
Vuelmax2 99.0 Maximum limit, p.u.
Vuelmin2 -99.0 Minimum limit, p.u.
Kfb 0.0 Not used (See Note h)
Tul 0.0 Not used (See Note h)
n 5 Number of points used to define the UEL look-up table
p1 0.0 Point 1 real power, p.u.
q1 -0.31 Point 1 reactive power, p.u.
p2 0.30 Point 2 real power, p.u.
q2 -0.31 Point 2 reactive power, p.u.
p3 0.60 Point 3 real power, p.u.
q3 -0.28 Point 3 reactive power, p.u.
p4 0.90 Point 4 real power, p.u.
q4 -0.21 Point 4 reactive power, p.u.
p5 1.02 Point 5 real power, p.u.
q5 0.0 Point 5 reactive power, p.u.
p6 0.0 Point 6 real power, p.u.
q6 0.0 Point 6 reactive power, p.u.
p7 0.0 Point 7 real power, p.u.
q7 0.0 Point 7 reactive power, p.u.
p8 0.0 Point 8 real power, p.u.
q8 0.0 Point 8 reactive power, p.u.
p9 0.0 Point 9 real power, p.u.
q9 0.0 Point 9 reactive power, p.u.
p10 0.0 Point 10 real power, p.u.
q10 0.0 Point 10 reactive power, p.u.

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 vuel UEL output signal, p.u.


2 qref Reference Q, Qref, p.u.
2 vuer Error signal, Vuerr, p.u.
Block Diagram:

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

The voltage bias logic is as follows [1]:

if Vtf > 1.0 pu


u = Vtf
else
if Vtf > Vbias
u=1
else
u = VTF / Vbias
end if
end if
Q’
[pu]

Overexcited
vars out +

(p6, q6) (p7, q7)

P’
[pu]

Unserexcited
vars in -
(p5, q5)

(p4, q4)

(p3, q3)
(p1, q1) (p2, q2)

UEL limiting characteristic

Kadj is computed as follows [1]:

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

Description Power Flow Controller

Prerequisites: Generator and transformer present in load flow working


case First gcd record (gcd[0]) exists in load flow
working case

Inputs: gcd[0].vsm, gcd[0].vsa, gcd[0].qshunt

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

Note: there are no parameters associated with this model

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.

An example of UPFC dynamic simulation is provided. Example files are located in


\upslfXX\samples (windows) or /usr/pslfXX/SAMPLES (UNIX) directory

upfc.sav - load flow case of a simple system with UPFC


upfc.drw - draw file associated with UPFC.sav
upfc.dyd - dyd file associated with UPFC.sav
upfc.p - epcmod model which simulates an example control scheme of
UPFC. Manual page for this epcl can be viewed by using F1 key
while the file name is highlighted from "sepc". rundyn_upfc.p - epcl
file to run a dynamic simulation case

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:

vimag Voltage magnitude at FROM bus – p.u.


vjmag Voltage magnitude at TO bus – p.u.
viang Voltage angle(rad) at FROM bus – p.u.
vjang Voltage angle(rad) at TO bus – p.u.
alpha Equivalent transformer phase shift (rad)
vratio Equivalent transformer tap ratio (p.u.)

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.

e) Block diagrams are shown on the next two pages.


Output Channels:

Record
Level Name Description

1 Plin Real power flow through UPFC, MW


1 Qlin Reactive power flow through UPFC, MVAR
1 Vim From-bus voltage, p.u.
1 Vjm To-bus voltage, p.u.
1 Pdc DC power flow between converters, MW
1 Qs Series converter reactive power output, MVAR
1 Vrat Equiv. tran. tap ratio for series injection voltage, p.u.
1 Alph Equiv. tran. phase shift(deg) for series injection voltage
1 Vsmx Maximum series voltage injection, p.u.
1 Ihmx Maximum shunt current injection by shunt converter, MVA

Block Diagram:

VI I VD D VJ J

T

ZT
R

I inj Iinj J
I

UPFC C code model block diagram


epcmod model C code model, upfc
gcd[0].Pset 
+ gcd[0].vsm
P1 current injection
gcd[0].Pline at from-bus
-
gcd[0].vjset
 UPFC
+ gcd[0].vsa C code
P1 model
model[@mx].vjmarg
-
gcd[0].viset
+
gcd[0].qshunt  current injection
P1 at to-bus
model[@mx].vimarg
-

UPFC control implementation in the example epcmod model, and the


interaction with the C code mode
Model Name: uvls1

Description Definite time under voltage load shedding relay


with option for independent action of stages

Prerequisites: The referenced bus and load must exist in the


load flow working case

Inputs: Voltage at a bus (either load terminal or


monitored bus)

Invocation: uvls1 [<n>] {<name> <kv>} <id> !!!!!


[<mon_i>] {<name> <kv>} : #r

Parameters:

EPCL Default
Variable Data Description

Mode 1 0 = deviation from initial condition voltage


1 = absolute voltage
Action 0 0 = cumulative action of stages
1 = independent action of each stage
Tfilter 0.0 Input transducer time constant, sec.
V1 0.0 First stage pick-up value, p.u.
T1 0.0 First stage time delay, sec.
Tcb1 0.0 First stage breaker delay, sec.
sv1 0.0 First stage shedding fraction, p.u.
vreset_1a 2.0* First stage first reset voltage, p.u.
treset_1a 999. First stage first reset time delay, sec.
vreset_1b 2.0* First stage second reset voltage, p.u.
treset_1b 999. First stage second reset time delay, sec.
V2 0.0 Second stage pick-up value, p.u.
T2 0.0 Second stage time delay, sec.
Tcb2 0.0 Second stage breaker delay, sec.
sv2 0.0 Second stage shedding fraction, p.u.
vreset_2a 2.0* Second stage first reset voltage, p.u.
treset_2a 999. Second stage first reset time delay, sec.
vreset_2b 2.0* Second stage second reset voltage, p.u.
treset_2b 999. Second stage second reset time delay, sec.
V3 0.0 Third stage pick-up value, p.u.
T3 0.0 Third stage time delay, sec.
Tcb3 0.0 Third stage breaker delay, sec.
sv3 0.0 Third stage shedding fraction, p.u.
vreset_3a 2.0* Third stage first reset voltage, p.u.
treset_3a 999. Third stage first reset time delay, sec.
vreset_3b 2.0* Third stage second reset voltage, p.u.
treset_3b 999. Third stage second reset time delay, sec.
V4 0.0 Fourth stage pick-up value, p.u.
T4 0.0 Fourth stage time delay, sec.
Tcb4 0.0 Fourth stage breaker delay, sec.
sv4 0.0 Fourth stage shedding fraction, p.u.
vreset_4a 2.0* Fourth stage first reset voltage, p.u.
treset_4a 999. Fourth stage first reset time delay, sec.
vreset_4b 2.0* Fourth stage second reset voltage, p.u.
treset_4b 999. Fourth stage second reset time delay, sec.
V5 0.0 Fifth stage pick-up value, p.u.
T5 0.0 Fifth stage time delay, sec.
Tcb5 0.0 Fifth stage breaker delay, sec.
sv5 0.0 Fifth stage shedding fraction, p.u.
vreset_5a 2.0* Fifth stage first reset voltage, p.u.
treset_5a 999. Fifth stage first reset time delay, sec.
vreset_5b 2.0* Fifth stage second reset voltage, p.u.
treset_5b 999. Fifth stage second reset time delay, sec.
V6 0.0 Sixth stage pick-up value, p.u.
T6 0.0 Sixth stage time delay, sec.
Tcb6 0.0 Sixth stage breaker delay, sec.
sv6 0.0 Sixth stage shedding fraction, p.u.
vreset_6a 2.0* Sixth stage first reset voltage, p.u.
treset_6a 999. Sixth stage first reset time delay, sec.
vreset_6b 2.0* Sixth stage second reset voltage, p.u.
treset_6b 999. Sixth stage second reset time delay, sec.
V7 0.0 Seventh stage pick-up value, p.u.
T7 0.0 Seventh stage time delay, sec.
Tcb7 0.0 Seventh stage breaker delay, sec.
sv7 0.0 Seventh stage shedding fraction, p.u.
vreset_7a 2.0* Seventh stage first reset voltage, p.u.
treset_7a 999. Seventh stage first reset time delay, sec.
vreset_7b 2.0* Seventh stage second reset voltage, p.u.
treset_7b 999. Seventh stage second reset time delay, sec.
V8 0.0 Eighth stage pick-up value, p.u.
T8 0.0 Eighth stage time delay, sec.
Tcb8 0.0 Eighth stage breaker delay, sec.
sv8 0.0 Eighth stage shedding fraction, p.u.
vreset_8a 2.0* Eighth stage first reset voltage, p.u.
treset_8a 999. Eighth stage first reset time delay, sec.
vreset_8b 2.0* Eighth stage second reset voltage, p.u.
treset_8b 999. Eighth stage second reset time delay, sec.
V9 0.0 Ninth stage pick-up value, p.u.
T9 0.0 Ninth stage time delay, sec.
Tcb9 0.0 Ninth stage breaker delay, sec.
sv9 0.0 Ninth stage shedding fraction, p.u.
vreset_9a 2.0* Ninth stage first reset voltage, p.u.
treset_9a 999. Ninth stage first reset time delay, sec.
vreset_9b 2.0* Ninth stage second reset voltage, p.u.
treset_9b 999. Ninth stage second reset time delay, sec.
*Default is -1.0 if mode = 0.
Note: Input data can be omitted for stages that are not used.

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:

after first stage trip 80 MW


after first and second stage trip 50 MW
after three stages trip 0 MW

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

1 shv Load at bus to be retained, p.u.


Model Name: vfmgen

Description Volts-per-Hertz recorder for generators

Prerequisites: Monitored generators must exist

Inputs: Bus voltage and frequency

Invocation: vfmgen [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Flag 0.0 0: monitor all; 1=monitor area; 2= monitor zone


Num 0.0 Area or zone number
Vhtol1 1.18 Volt-per-Hz threshold p.u / p.u. (See Note b)
Tlim1 2.00 Time limit, sec. (See Note b)
Vhtol2 1.11 Volt-per-Hz threshold p.u / p.u. (See Note b)
Tlim2 45.0 Time limit, sec. (See Note b)
Mvatol 1000. Monitor generators with MVAbase >= Mvatol

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).

c) Vfmetr is for use in conjunction with a synchronous generator.

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

Description Remote Voltage Controller

Prerequisites: Generator model ahead of this model in the dynamic


models table (see note a)

Inputs: Generator terminal currents and voltage references

Invocation: vcr [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

gbus 0.0 Second bus of generators controlled by vcr


rc1 0.0 Resistive component of compensating impedance 1, p.u.
rc1 0.0 Resistive component of compensating impedance 1, p.u.
rc3 0.0 Resistive component of compensating impedance 1, p.u.
xc1 0.0 Reactive component of compensating impedance 1, p.u.
xc2 0.0 Reactive component of compensating impedance 1, p.u.
xc3 0.0 Reactive component of compensating impedance 1, p.u.
kp 0.0 Proportional gain of controller, p.u.
ki 0.1 Integral gain of controller, p.u.
vmax 0.1 Maximum output of controller, p.u.
vmin -0.02 Minimum output of controller, p.u.
rmax 0.1 Maximum input to controller, p.u.
rmin -0.1 Minimum input to controller, p.u.
vrset1 0.0 Voltage set point 1, p.u.
vrset2 0.0 Voltage set point 2, p.u.

General Description:

This is a representation of a remote voltage-controlling unit, as installed in some new


power plants. This model must be placed on a bus which is associated with a generator
model. The total terminal current of all generators connected to that bus are calculated
and thus the voltage at a point looking out into the network is calculated, using the
compensating impedances zc1, zc2 and zc3 (note: zc = rc + jxc). The proportional-
integral controller then generates a compensating signal vc1, based on the error between
the calculated voltage and the voltage set-point vrset1. The output of the controller vc1 is
then added to the voltage reference of the excitation systems off all generators connected
to the bus associated with this model. The same model can be used to control generators
on two separate buses by using the parameter 'gbus' to specify the second bus, and then
using all three sets of compensating impedance parameters.

Notes:

a) IMPORTANT NOTE: If vcr is used to control a second generator or group of


generators on the bus specified by the parameter gbus, then gbus should be a bus
number smaller than the bus number of the generator with which vcr is associated.

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

1 vc1 Compensating voltage 1, p.u.


1 vc2 Compensating voltage 2, p.u.

Block Diagram:

bus voltage = V1 bus voltage = V2

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

vmax rmax rmax vmax


¯ ¯
vc1 vc2
S0 vmin rmin + + rmin vmin S1

vrset1 vrset2
Model Name: vfmetr

Description Volts-per-Hertz recorder.

Prerequisites: Bus must exist

Inputs: Bus voltage and frequency

Invocation: vfmetr [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tv 0.02 Transducer or filter time constant, sec.


Tf 0.02 Transducer or filter time constant, sec.
Vhtol1 1.18 Volt-per-Hz threshold p.u / p.u. (See Notes d and e)
Tlim1 2.00 Time limit, sec. (See Notes d and e)
Vhtol2 1.11 Volt-per-Hz threshold p.u / p.u. (See Notes d and e)
Tlim2 45.0 Time limit, sec. (See Notes d and e)

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.

c) If Tv is zero, its block is bypassed, i.e., vbpu = bus voltage magnitude.

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

1 vphz Bus voltage magnitude, p.u./ Bus frequency, p.u.


2 tsm1 Cumulative time when vphz exceeds vhtol1, sec.
2 tsm2 Cumulative time when vphz exceeds vhtol2, sec.
3 vbpu Bus voltage magnitude, p.u.
3 fbpu Bus frequency, p.u.
3 fbhz Bus frequency, Hz
4 dfpu Bus frequency deviation from 1.0 p.u.
4 dfhz Bus frequency deviation from nominal frequency, Hz
Block Diagram:
Model Name: vft

Description Variable frequency transformer

Prerequisites: 1) Type 4 transformer in load flow


2) An EPCMOD model and corresponding
EPCL which implements VFT control

Inputs: Ang_Cmd or Drv_Trq from EPCMOD

Invocation: vft [<n>]{<name> <kv>} <id> [<nto>]{<nameto>


<kvto>} <ck> : #rlevel "mvab" <value> "h"
<value> "d" <value> "scmvas" <value> "scmvar"
<value> "mode" <value> "tolr" <value> "Ang_Cmd"
<value> "Drv_Trq" <value>

Parameters:

EPCL Default
Variable Data Description

mvab 100.0 VFT base (MVA)


h 25.0 Inertia constant (sec/p.u.-P)
d 0.0 Damping Factor (pu-T/p.u.-f)
scmvas 10000. From side short circuit (MVA)
scmvar 10000. To side short circuit (MVA)
mode 1.0 0: EPCL supplies Ang_Cmd1: EPCL supplies Drv_Trq
tolr 0.0 Tolerance for rebuilding Y-matrix (Typically set to 10)
Ang_Cmd 0.0 Angle command from EPCMOD (mode 0 only)
Drv_Trq 0.0 Drive Torque command from EPCMOD (mode 1 only)

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

1 Pvft VFT real power (p.u.)


1 Qvft VFT reactive power (p.u.)
1 Te VFT electrical torque (p.u.)
1 Spd VFT speed (p.u.)
1 Ang VFT rotor angle
1 Vs From-bus voltage (p.u.)
1 Vr To-bus voltage (p.u.)
1 Td Drive torque (p.u.)

Block Diagram:

F-Bus VFT Model T-Bus

Pvft
Qvft
Vs Vr

Pvft
Ang_Cmd (mode 0)
Qvft
Drv_Trq (mode 1)
Spd

EPCMOD Model

EPCL code implements


VFT control functions
Model Name: vhvdc1

Description Two terminal voltage source converter based high-


voltage d.c. transmission

Prerequisites: From, to a.c. and d.c. buses, d.c. line, and vsc converters
must exist in load flow data tables

Inputs: Voltage and current at rectifier and inverter a.c. buses

Invocation: vhvdc1 [<nr>] {<namer> <kvr>} <id> [<ni>] {<namei>


<kvi>}:

Parameters:
EPCL Default
Variable Data Description

dcbusr 0.0 Rectifier d.c. bus (external) number


dcbusi 0.0 Inverter d.c. bus (external) number
MWrate 0.0 MW rating
Kpi 0.0 prop. gain for dc current control, kA/kV
Kii 0.0 int. gain for dc current control, kA/kV/s
Kpu 0.0 prop. gain for dc voltage control, kV/kA
Kiu 0.0 int. gain for dc voltage control, kV/kA/s
Idmax 0.0 maximum dc current reference, kA
Idmin 0.0 minimum dc current reference, kA
Udmax 0.0 maximum dc voltage reference, kV
Udmin 0.0 minimum dc voltage reference, kV
Imax 0.0 maximum converter current, pu of rating
Pmax 0.0 maximum power, pu of rating
Pmin 0.0 minimum power, pu of rating
p1 0.0 P points for Pmax = f(Vac), pu
p2 0.0 P points for Pmax = f(Vac) , pu
p3 0.0 P points for Pmax = f(Vac) , pu
p4 0.0 P points for Pmax = f(Vac) , pu
v1 0.0 V points for Pmax = f(Vac) , pu
v2 0.0 V points for Pmax = f(Vac) , pu
v3 0.0 V points for Pmax = f(Vac) , pu
v4 0.0 V points for Pmax = f(Vac) , pu
v5 0.0 V points for Pmax = f(Vac) , pu
v6 0.0 V points for Pmax = f(Vac) , pu
Tr 0.0 Transducer time constant, sec
vblk_rec 0.0 Voltage below which rectifier blocks, pu
vblk_inv 0.0 Voltage below which inverter blocks, pu
pll_delay 0.0 Delay in PLL recover after blocking, sec
unblk 0.0 Voltage above which converter is unblocked, pu
Ipmax1 0.0 D-curve Q into the system, pu
Ipmax2 0.0 D-curve Q into the system, pu
Ipmax3 0.0 D-curve Q into the system, pu
Iqmax2 0.0 D-curve Q into the system, pu
Iqmax3 0.0 D-curve Q into the system, pu
Ipmin1 0.0 D-curve Q from the system, pu
Ipmin2 0.0 D-curve Q from the system, pu
Ipmin3 0.0 D-curve Q from the system, pu
Iqmin2 0.0 D-curve Q from the system, pu
Iqmin3 0.0 D-curve Q from the system, pu
Tp 0.0 transducer time constant, sec.
Tq 0.0 transducer time constant, sec.
dbd1r 0.0 deadband in voltage control for rectifier, pu
dbd1i 0.0 deadband in voltage control for inverter, pu
Refflag_r 0.0 Rect. Q control: 0: const. Q; 1: V; 2: pf
Refflag_i 0.0 Inv. Q control: 0: const. Q; 1: V; 2: pf
Kcr 0.0 Reactive droop rectifier, pu/MVAr
Kci 0.0 Reactive droop inverter, pu/MVAr
dbd2r 0.0 deadband in Q control for rectifier, MVAr
dbd2i 0.0 deadband in Q control for inverter, MVAr
Kpvr 0.0 prop. gain for voltage control rectifier, MVAr/pu
Kivr 0.0 int. gain for voltage control rectifier, MVAr/pu/sec
Kpqr 0.0 prop. gain for Q control for rectifier, MVAr/MVAr
Kiqr 0.0 int. gain for Q control for rectifier, MVAr/MVAr/sec
Kpvi 0.0 prop. gain for voltage control inverter, MVAr/pu
Kivi 0.0 int. gain for voltage control inverter, MVAr/pu/sec
Kpqi 0.0 prop. gain for Q control for inverter, MVAr/MVAr
Kiqi 0.0 int. gain for Q control for inverter, MVAr/MVAr/sec
dQmax 0.0 max. rate of change of Q, MVAr/sec
dQmin 0.0 max. rate of change of Q, MVAr/sec
dPmax 0.0 max. rate of change of Pref, MW/sec
dPmin 0.0 max. rate of change of Pref, MW/sec
xrec 0.0 internal X of rectifier for voltage-source interface
xinv 0.0 internal X of inverter for voltage-source interface
The following are not input parameters, but can be changed during the run by the user. They are
initialized to agree with the load flow vsc solved values.
Pref d.c. power setpoint (MW) at inverter
Udref d.c. voltage setpoint (kV) at rectifier
Qref_r Q setpoint (MVAr) at rectifier (Refflag_r = 0)
Qref_i Q setpoint (MVAr) at inverter (Refflag_i = 0)
Vref_r a.c. voltage setpoint (p.u.) at rectifier (Refflag_r = 1)
Vref_i a.c. voltage setpoint (p.u.) at inverter (Refflag_i = 1)
pfaref_r PF angle setpoint (radians) at rectier (Refflag_r = 2)
pfaref_i PF angle setpoint (radians) at inverter (Refflag_i = 2)
Notes:

a) nr identifies the rectifier a.c. bus; ni identifies the inverter end a.c. bus.

b) <id> should be the component identifier of the rectifier.

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.

j) Transducer time constants and deadbands may be set to zero.

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;

l) In the future, an option will be added to interface either or both converters as a


voltage-source behind a reactance. The input parameters xrec and xinv are provided
in anticipation of this. For now, the input values of these reactances are ignored.

Output Channels:

Record
Level Name Description

1 Prec Rectifier a.c. real power, MW


1 Qrec Rectifier a.c. reactive power, MVAR
1 Pinv Inverter d.c. real power, MW
1 Qinv Inverter a.c. reactive power, MVAR
1 Vacr Rectifier a.c. bus voltage, p.u.
1 Vaci Inverter a.c. bus voltage, p.u.
1 Udr Rectifier d.c. voltage, kv
1 Udi Inverter d.c. voltage, kv
1 Idr Rectifier d.c. current, amps
1 Idi Inverter d.c. current, amps
1 Qmxr Rectifier Qmax, p.u.
1 Qmnr Rectifier Qmin, p.u.
1 Qmxi Inverter Qmax, p.u.
1 Qmni Inverter Qmin, p.u.
Idr Idi Rdc L

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

Figure 1 – D.C. line dynamic model

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

Figure 2 – D.C. current and voltage controllers


1
Vac
1 + Tr.s Qmax
s4 (rec) / s5 (inv) Qmax
_
dbd1
+ 1 + 1
Vref Kiv Qac
s 1 + Tq.s
+ s12 / s13
s6 / s7
Kc Qmin
Qmin Qmax
Kpv 1 Qmax Qmax
Refflag _ dQmax
dbd2
0 + 1 +
Qrefo Kiq Qac_cmd
s
2 +
dQmin s10 / s11
Qmin Qmin
Qmin
Kpq

Pac 1
1 + Tp.s
s8 / s9
pfaref tan

Figure 3 – Volt/VAr Controller (same for each converter)


Model Name: vmeta

Description Bus voltage recorder. Places all area, zone or


system voltages in output channels.

Prerequisites: Bus must exist

Inputs: Magnitude of bus voltage

Invocation: vmeta [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

flag 0.0 Flag 0=all, 1=area or 2=zone


num 0.0 Area or zone number
kvmin 0.0 Monitor buses with basekv greater than kvmin

Notes:

a) If bus exist in area, zone or all then an output channel is assigned by vmeta.

Output Channels:

Record
Level Name Description

1 vbus Bus voltage. p.u.


1 vbul Bus voltage for load bus. p.u.
1 vbug Bus voltage for generator bus. p.u.

Block Diagram:

Vin Vmeasure
Gain = 1
Model Name: vmetr

Description Bus voltage recorder. Places bus voltage in an


output channel.

Prerequisites: Bus must exist

Inputs: Magnitude of bus voltage

Invocation: vmetr [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tf 0.0 Transducer or filter time constant, sec.

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

1 vbus Bus voltage. p.u.

Block Diagram:
Bus Voltage
Voltage 1 (p.u.)

1  sTf
Model Name: Vphr1

Description Volts-per-Hertz relay model for generator

Prerequisites: Monitored generators must exist

Inputs: Bus voltage and frequency

Invocation: vphr1 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Opmode 0.0 0: monitor only/ 1 trip


Vhtol1 1.18 Volt-per-Hz threshold p.u / p.u. (See Note b)
Tlim1 2.00 Time limit, sec. (See Note b)
Vhtol2 1.11 Volt-per-Hz threshold p.u / p.u. (See Note b)
Tlim2 45.0 Time limit, sec. (See Note b)
Tdcb 0 Breaker time delay (seconds)

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.

c) vphr1 is for use in conjunction with a synchronous generator.

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

Description voltage source converter two-terminal

Prerequisites: 1) modeled as two generators in load flow


2) an epcl program in "stdepcl" directory
implementing dc controls

Inputs:

Invocation: vscdc [<n>]{<name> <kv>} <id> [<nto>]{<nameto>


<kvto>} <idto> : #rlevel <mva=> "epclname" <table>
"accel" <value>

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:

a) VSCDC model simulates dynamics of a two-terminal dc system using voltage source


converters as its rectifier and inverter. In load flow solution, this two-terminal dc
system is modeled by two generators at rectifier and inverter ac buses. This type of dc
system has the capability of controlling ac bus voltages. The controlled buses can be
other than rectifier and inverter terminal ac buses. This ac voltage control capability
of the dc system can be modeled conveniently using generators in load flow. The
regulated buses in gens table represent converter controlled ac buses.

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

1 pac MW injection into network at rectifier


1 qac MVAR injection into network at rectifier
1 pac1 MW injection into network at inverter
1 qac1 MVAR injection into network at inverter
1 vt rectifier ac bus voltage, p.u.
1 vtc rectifier controlled ac bus voltage, p.u.
1 vt1 inverter ac bus voltage, p.u.
1 vtc1 inverter controlled ac bus voltage, p.u.

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

Description Two-terminal voltage source converter HVDC


system

Prerequisites: 1) modeled as two generators in load flow


2) an epcl program in "stdepcl" directory
implementing dc controls

Inputs:

Invocation: vscdc1 [<n>]{<name> <kv>} <id> [<nto>]{<nameto>


<kvto>} <idto> : #rlevel <mva=> "epclname" <table>
"rsrc" <value> "xsrc" <value> "rsrc1" <value> "xsrc1"
<value>

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

rsrc 0.0 First converter source resistance (p.u.)


xsrc 0.0 First converter source reactance (p.u.)
rsrc1 0.0 Second converter source resistance (p.u.)
xsrc1 0.0 Second converter source reactance (p.u.)

Notes:

a) The vscdc1 model simulates dynamics of a two-terminal dc system using voltage


source converters as its rectifier and inverter. In the load flow solution, this two-
terminal dc system is modeled by generators at the rectifier and inverter ac buses.
This type of dc system has the capability of controlling ac bus voltages. The
controlled buses can be other than rectifier and inverter terminal ac buses. This ac
voltage control capability of the dc system can be modeled conveniently using
generators in load flow. The regulated buses in the gens table represent converter-
controlled ac buses.
b) Each end of the vscdc1 model is similar to the epcgen model. If the source reactance
(xsrc or xsrc1) is zero, the user-written (epcl) model must calculate the real and
reactive power at the converter terminal bus. If xsrc or xsrc1 is non-zero, the user-
written (epcl) model must calculate the internal voltage components behind rsrc + j
xsrc (or rsrc1 + j xsrc1). This epcl program must reside in the "upslfxx/stdepcl"
directory.

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.

epcl program table number

batch epcl 0 - assigned automatically by PSLF


epcl to run dynamics 1 - assigned automatically by PSLF
vscdc1 model vscdcrou.p 5 - assigned by user in dyd file
vscdc1 model epcvwscc.p 14 - assigned by user in dyd file
epcmod model sex.p 3 - assigned by user in dyd file
vscdc1 model vscdc1.p 9 - assigned by user in dyd file

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:

@mx = dypar[0].cmi /* current model index */


@ibc1 = vscdc1[@mx].kfr /* conv 1 generator genbc index */
@ibc2 = vscdc1[@mx].kto /* conv 2 generator genbc index */
@kgen1 = genbc[@ibc1].kgen /* conv 1 generator gens table index */
@kgen2 = genbc[@ibc2].kgen /* conv 2 generator gens table index */
@igen1 = gens[@kgen1].ibgen /* conv 1 ac bus index */
@igen2 = gens[@kgen2].ibgen /* conv 2 ac bus index */

f) The following variables are available for use in user-written models:

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

* Names of output channels can be changed to meaningful names (up to 4 characters) by


setting channel_head[i].type as described above under INIT.
Block Diagram:

vscdc1.p implements
vscdc1 controls

rectifier inverter
ac bus ac bus

VSCDC1 VSCDC1
C code C code
model model

vscdc1 c code model


injects current to ac
network at both rec
and inv end.
Model Name: w2301

Description Woodward 2301 governor and basic turbine


model

Prerequisites: Generator model ahead of this model in the


dynamic models table

Inputs: Shaft speed

Invocation: w2301 [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

tp 0.0 Power transducer time constant


alpha 0.0 Droop Setting
beta 0.0 Reset Setting
rho 0.0 Compensation
gamma 0.0 Gain setting, p.u.
gain 0.0 Turbine gain
tv 0.0 Valve actuator time constant, sec.
velamx 0.0 Maximum valve velocity, psec.
gmax 0.0 Maximum valve opening, p.u.
gmin 0.0 Minimum Valve opening, p.u.
gnl 0.0 Valve opening at no load, p.u.
tturb 0.0 Turbine time constant, sec.
d 0.0 Turbine damping coefficient
kt 0.0 Turbine lead-lag ratio

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.

b) Dturb has the dimensions delta P/delta speed.

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

Description Wind turbine and turbine control model


for GE wind turbines – Double Fed
Asynchronous Generator (DFAG) and Full
Converter (FC) Models

Prerequisites: gewtg and exwtge (DFAG) or ewtgfc (FC)


models ahead of this model in dynamic models
table

Inputs: Wind speed, generator electrical power,


dynamic brake power

Invocation: wndtge [<n>] {<name> <kv>} <id> : [mwcap=<value>]

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:

a) Per unit parameters, including H, are on base of turbine MW capability. If no value


is entered for mwcap, the generator MVA base is used. For an aggregate model of
several wind turbines, mwcap should be the total rating.
b) The wind speed (m/s) is stored in genbc[k].glimv and can be stepped in the edic
table or varied by a user-written model.
c) The model will always attempt to initialize to the initial generator power from the
load flow, unless it exceeds PWmax or is less than PWmin. The wind speed
required to produce the initial power with the blade pitch at its minimum, PIimin, is
calculated. This will be used as the initial wind speed with two exceptions. If P is
near PWmax and the specified wind speed, SPDw1, is greater than required, then the
wind speed is set to SPDw1 and the blade pitch is adjusted. If P is at rated and
SPDw1 is zero, the initial wind speed is 14 m/s.
d) The usize parameter is used to select the appropriate built-in values to model the
different sizes of GE wind turbines.
e) The default parameter values correspond to the DFAG wind turbine control model.
Generally, the default values should be used, except for usize and H (4.18 for usize =
2.5) unless different information is supplied by the manufacturer.
f) The turbine-generator rotor speed is automatically initialized according to the turbine
control design. The speed will be 1.2 p.u. for power levels above 0.46 p.u., but will
decrease at lower power levels.
g) A two-mass torsional model can be represented by including these parameters and
changing the value of H to the turbine inertia constant. The two-mass model should
not be used for the full converter wind turbine generator (i.e., 2.5 MW).
h) The model includes high and low wind speed cut-out for the turbine. For both the
DFAG and FC machines, it is possible to inject or absorb reactive power (e.g.,
regulate voltage) at zero real power (see note k). Zero power may be the result of no
wind, excessive wind, or an operator directive to curtail output. All scenarios may be
simulated with this model. Pwmin should be 0 for FC machines, and for DFAG
machines equipped with the WindFREE function.
i) The active power control (APC) model and rate limiting function are shown in the
lower portions of the block diagram. The APC model, Figure 2, and its frequency
response curve, Figure 3, are a simple representation of the active power control
required by many European grid codes. If frequency exceeds Fd for 1 sec, the wind
turbine model is tripped.
j) When this model is used to represent DFAG machines, i.e., the 1.5 or 3.6 WTG, the
dynamic braking resistor power is automatically set to zero.
k) Both the DFAG and FC machines may include the WindFREE reactive power
function which provides voltage regulation capability at zero power. If wffflg=1,
WindFREE is enabled. If wfflg=0, WindFREE is disabled and low rotor speed
tripping is enforced when power drops to zero, i.e., if genbc[k].speed < 0.1, the
machine is tripped.
l) The WindINERTIA control provides controlled inertial response to drops in
frequency. A simplified model, as shown in Figure 4, of the actual control is included
in wndtge. With default data, the function is not active. To use this function, typical
data would be Kwi = 10., dbwi = 0.0025, Tlpwi = 1.0, Twowi = 5.5, urlwi = 0.1,
drlwi = -1.0, Pmxwi = 0.1, Pmnwi = 0.0. To coordinate this function with other
turbine controls, the proportional gain in the torque control, Kptrq, is reduced to 0.5,
the integral gain, Kitrq, is reduced to 0.05, and the subsequent time constant, Tpc, is
increased to 4 seconds, when this function is active (i.e., under-frequency event
simulated). There is no reset, so these parameter changes are permanent for any
given simulation.
m) See Application Note 08-2 for detailed model description.
n) The “fix bad data” option will do the following:
a. Set Tp, Tpc, Tw, Tpav, Tlpwi, Twowi, H to a minimum of 4*delt.
b. If Pwmin < 0. then set Pwmin = 0. p.u.

Output Channels:

Record
Level Name Description

1 spd Rotor speed, p.u.


1 pm Mechanical power, MW
2 ptch Blade pitch, deg.
2 pord Power order signal, p.u.
2 wspd Wind speed, m/s
Block Diagram:

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

Anti-windup on Pwmin& d P /dt min


Pitch Pitch Limits
Compensation
+ pinp
K pc+ K ic / s 
s3

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)

Figure 1. Overall Block Diagram of Wind Turbine Control Model.


Wind Wind 1. Active Power Control
Speed Power (optional)
(glimv) Model pavl

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)

Figure 2. Active Power Control Block Diagram.

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)

Figure 3. Example of Frequency Response Curve in Active Power


Control
WindINERTIA Control
WTG Terminal (optional)
Pmxwi
Bus Frequency

+
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

Figure 4. Simplified WindINERTIA Control Model.


Model Name: wndvar

Description Supervisory voltage/VAr control for a wind power plant


of GE wind turbines

Prerequisites: gewtg and exwtge models for each WTG ahead of this
model in the dynamic models table

Inputs: Bus voltage and line current

Invocation: wndvar [<nb>] {<nameb> <kvb>} <id> [<nt>] {<namet> <kvt>}


<id> :

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)

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
pfaflg 0.0 0: Voltage regulation mode; 1: power factor regulation mode
pfarm 0.0 If pfarm>0, pfarm will be used to compute pf (vs. Pbranch) (MW)
vmod 0.0 Used to modulate or step the voltage ref (pu)
wtmin 0.0 If number of WTGs on-line < wtmin, then disconnect Qshunt, i.e.,
Qshunt is set to 0)
inprat 0.2 Rate limit applied to reference signal
kppf 0.3 pf PI controller proportional gain
kipf 0.0001 pf PI controller integral gain

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.

c) Tr and Tv may be zero.

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.

h) Sample wndvar model invocation


wndvar 12345 "BUS NAME" 230.0 "1 " 54321 "BUS2NAME" 230.0 "1 " 1 : #1 "wndfzn" 1.00 etc.

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
Output Channels

Record
Level Name Description

1 vbus Interconnection bus voltage, p.u.


1 verr Voltage error, p.u.
1 vref Reference signal (after rate limit), p.u.
1 Qtot Qtot = Qnet + Qshu, p.u.
1 Qnet Q order to WTGs, p.u.
1 Qshu Sum of the shunt devices’ Q, p.u.

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)

on Vhs max/min - Qerr1


If Qerr1 > 0
then
X1
If X1 >
MSC/Rtol
out = Qerr1
out
1 then +
PFref else s disconnect
Qref
computation
+ reset s4 L or Switched +
reset L or C?
integrator connect C

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
 

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
Model Name: wsccst

Description WSCC Power System Stabilizer

Prerequisites: Generator model ahead of this model in dynamic


models table

Inputs: See note a, below

Invocation: wsccst [<n>] {<name> <kv>} <id> [<n2>] {<name2>


<kv2>}:

Parameters:

EPCL Default
Variable Data Description

j 0.0 Input signal code:


1 for shaft speed
2 for accelerating power
3 for bus frequency
Kqv 0.0 Voltage deviation gain
Tqv 0.0 Voltage transducer time constant, sec.
Kqs 0.0 Main input signal gain
Tqs 0.0 Main input signal transducer time constant, sec.
Tq 0.0 Stabilizer washout time constant, sec.
Tq1 0.0 Lag time constant, sec.
Tpq1 0.0 Lead time constant, sec.
Tq2 0.0 Lag time constant, sec.
Tpq2 0.0 Lead time constant, sec.
Tq3 0.0 Lag time constant, sec.
Tpq3 0.0 Lead time constant, sec.
Vsmax 0.0 Maximum output signal, p.u.
Vcutoff 0.0 Voltage deviation level for stabilizer cutout, p.u. (see note g)
Vslow 0.0 Minimum output signal, sec. (see note f)
T1 0.0 Not used (see note c)
T2 0.0 Not used
T3 0.0 Not used.
Kboost 0.0 Not used
Dw1 0.0 Not used
Dw2 0.0 Not used
Ddwt 0.0 Not used
Tdelay 0.0 Not used
T4 0.0 Not used
Sw1 0.0 Voltage boost signal transient stabilizer manual switch
Td1 0.0 Voltage boost signal transient stabilizer lag, sec.
Td2 0.0 Voltage boost signal transient stabilizer washout time
constant, sec.
Vtl 0.0 Voltage boost signal transient stabilizer terminal voltage
limit.
Vk 0.0 Voltage boost signal transient stabilizer boost signal
magnitude, p.u.

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.

c) Parameters T1 through T4 were for an input frequency signal boost transient


stabilizer trigger circuit which has now been diabled in the 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

1 vs Stabilizer output signal, p.u.

Block Diagram:
Model Name: vwscc

Description Static Var device (compatible with WSCC model)

Prerequisites: Generator present in load flow working case

Inputs: Machine terminal voltage or bus voltage

Invocation: vwscc [<n>] {<name> <kv>} <id> [<n2>] {<name2>


<kv2>}:

Parameters:

EPCL Default
Variable Data Description

Ts1 0.0 Voltage transducer time constant, sec.


Vemax 0.0 Maximum error signal, p.u.
Ts2 0.0 Lead time constant, sec.
Ts3 0.0 Lag time constant, sec.
a 0.0 Lead gain, must be 1.0
b 0.0 Lag gain, must be 1.0
Ts4 0.0 Lead time constant, sec.
Ts5 0.0 Lag time constant, sec.
Ksvs 0.0 Gain, per unit b/per unit v
Ksd 0.0 Discontinuous control gain, p.u.
bmax 0.0 Maximum admittance, p.u.
bpmax 0.0 Maximum admittance under continuous control, p.u.
bpmin 0.0 Minimum admittance under continuous control, p.u.
bmin 0.0 Minimum admittance, p.u.
Ts6 0.0 Firing control time constant, sec.
Dv 0.0 Error threshold for discontinuous control, p.u.
Xc 0.0 Line drop compensating reactance, p.u.
Tc 0.0 Transducer lead time constant, sec.
Td1 0.0 Controller delay, sec.

Notes:

a) Vwscc represents a static var devices consisting of thyristor controlled inductive or


capacative shunt elements. Vwscc assumes that a combination of controlled
admittance and fixed admittance elements is present such that the nominal-frequency
admittance of the combination can be varied from Bpmin to Bpmax under continuous
control. The limits Bpmin and Bpmax must be within the limits Bmin and Bmax.

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.

f) Any of the time constants, except Ts3, may be zero.

g) CAUTION - no load or load model should be connected at this bus

h) The “fix bad data option” will do the following:


a. If Ts3 is less than or equal to zero, set Ts3 to 2*delt
b. If non-zero, but less than 2*delt, set Ts1, Ts5, and Ts6 to 2*delt
c. If Vemax is less than 0.001, set Vemax to 0.001
d. If bmax < bmin, swap the values
e. If bpmax < bpmin, swap the values

Output Channels:

Record
Level Name Description

1 bsvs Effective admittance, p.u.


1 busv Input voltage, p.u.

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

Description Generator model for generic Type-1 wind turbines

Prerequisites: Generator present in load flow working case

Inputs: Speed from wt1t model, network boundary variables

Invocation: wt1g [<n>] {<name> <kv>} <id> : [r] [mva=<value>]

Parameters:

EPCL Default
Variable Data Description

Ls 3.93 Synchronous reactance, p.u.


Lp 0.1773 Transient reactance, p.u.
Ra 0.0 Stator resistance, p.u.
Tpo 0.846 Transient rotor time constant, sec.
Se1 0.030 Saturation factor at 1 p.u. flux
Se2 0.179 Saturation factor at 1.2 p.u. flux
Acc 0.5 Acceleration factor for initialization
Lpp 0.0 Sub-transient reactance, p.u.
Ll 0.10 Stator leakage reactance, p.u.
Tppo 0.0 Sub-transient rotor time constant, sec.
ndelt 10 Time step subdivision factor.
wdelt 0.80 Speed threshold for subdividing time step, p.u.

Notes:

a) This model is for use in conjunction of wt1t and wt1p to represent a Type-1 wind
turbine generator.

b) This model, wt1g, corresponds to the electrical component of an induction generator,


not unlike genind; the mechanical component is modeled in wt1t.
c) This model simulates either a "one-cage" or a "two-cage" induction generator. A
“one-cage” model is used if Lpp is equal to Lp. Otherwise, it simulates a "two-cage"
induction generator. If Lpp or Tppo are 0., the model sets Lpp = Lp.

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.

i) Ls, Lp, Lpp, Ll must all be specified.

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.

m) In order to prevent network solution divergence, the model automatically uses a


smaller time step (dypar.delt / ndelt) whenever the per unit speed of the generator is
below the value, wdelt. If the default values do no produce satisfactory results, ndelt
and/or wdelt can be increased.
n) 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 generator
variables.

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.

p) The “fix bad data” option will do the following:


a. Set Tpo to a minimum of 4*dypar.delt if wdelt is less than 1.0. If wdelt is
greater than 1.0, Tpo is limited to 4*dypar.delt/ndelt.
b. If Tppo not zero, limit it in the same way as Tpo,
c. Set Lp to a maximum of 0.4 * Ls.
d. Set Lpp to a maximum of Lp.
e. Set Ll to a maximum of 0.8 * Lpp.
f. Set wdelt to a minimum of 0.8.
g. Set ndelt to a minimum of 1.
Output Channels:

Record
Level Name Description

1 vt Terminal voltage, p.u.


1 pg Electrical power, MW
1 qg Reactive power, MVAR
2 it Terminal current, p.u.
2 te Electrical torque, p.u.

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

Description: Pseudo governor model for Type-1 wind


turbines (conventional directly connected
induction generator)

Prerequisites: wt1g and wt1t models ahead of this model in


dynamic models table

Inputs: Generator electrical power and turbine speed

Invocation: wt1p [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tpe 0.10 Time constant, sec.


Kdroop 0.015 Droop gain
Kp 0.10 PI proportional gain
Ki 66.667 PI integral gain
Pimax 1.00 PI output maximum limit, p.u.
Pimin 0.25 PI output minimum limit, p.u.
T1 0.10 Time constant, sec.
T2 0.10 Time constant, sec.
Kw 1.0 Speed gain, p.u.

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

1 pm Mechanical power, MW (Pmech)

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

Description: Wind turbine model for Type-1 wind turbines


(conventional directly connected induction
generator)

Prerequisites: wt1g model ahead of this model in dynamic


models table

Inputs: Generator electrical power, mechanical power

Invocation: wt1t [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

H 5.30 Total inertia constant, MW-sec/MVA


D 0.0 Damping factor, p.u. P / p.u. speed
Optional two-mass model:
Htfrac 0.92 Turbine inertia fraction (Ht / H)
Freq1 5.00 First shaft torsional resonant frequency, Hz
Dshaft 1.00 Shaft damping factor, p.u. P / p.u. speed

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

Type 1 WTG Turbine Model with One-mass 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

Type 1 WTG Turbine Two-mass Model


Model Name: wt2e

Description Rotor resistance control model for wound-rotor


induction wind-turbine generator wt2g

Prerequisites: wt2g model ahead of this model in dynamic models


table

Inputs: Generator speed, generator electrical power

Invocation: wt2e [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tw 0.05  Time constant, sec.


Kw 1.00  gain
Tp 0.05 P time constant, sec.
Kp 1.00 P gain
Kpp 0.01 Proportional gain
Kip 0.01 Integral gain
Rmax 0.0977 Maximum external rotor resistance, p.u.
Rmin 0.0061 Minimum externals rotor resistance, p.u.
Slip1 0.00 Slip point 1 in Power vs. Slip curve, p.u.
Slip2 0.0054 Slip point 2 in Power vs. Slip curve, p.u.
Slip3 0.0200 Slip point 3 in Power vs. Slip curve, p.u.
Slip4 0.0400 Slip point 4 in Power vs. Slip curve, p.u.
Slip5 0.100 Slip point 5 in Power vs. Slip curve, p.u.
Powr1 0.00 Power point 1 in Power vs. Slip curve, p.u.
Powr2 0.0217 Power point 2 in Power vs. Slip curve, p.u.
Powr3 0.8988 Power point 3 in Power vs. Slip curve, p.u.
Powr4 0.900 Power point 4 in Power vs. Slip curve, p.u.
Powr5 0.905 Power point 5 in Power vs. Slip curve, p.u.

Notes:

a) This model is intended to be an approximate representation for the rotor resistance


control of a Type 2 wind turbine-generator.

b) Tw and Tp may be zero.


c) The Power vs. Slip curve is formed by linearly interpolating the given points.

d) The “fix bad data” option will do the following:


a. If Tw > 0, set Tw to a minimum of 4*delt.
b. If Tp > 0, set Tp to a minimum of 4*delt.

Output Channels:

Record
Level Name Description

1 Rext External rotor resistance, p.u.

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

Description Generator model for generic Type-2 wind turbines

Prerequisites: Generator present in load flow working case

Inputs: Speed from wt2t model, external rotor resistance


from wt2e model, network boundary variables

Invocation: wt2g [<n>] {<name> <kv>} <id> : [r] [mva=<value>]

Parameters:

EPCL Default
Variable Data Description

Ls 6.966 Synchronous reactance, p.u.


Lp 0.301 Transient reactance, p.u.
Ll 0.126 Stator leakage reactance, p.u.
Ra 0.004 Stator resistance, p.u.
Tpo 4.230 Transient rotor time constant, sec.
Se1 0.030 Saturation factor at 1 p.u. flux
Se2 0.290 Saturation factor at 1.2 p.u. flux
Spdrot 1.040 Initial electrical rotor speed, p.u. of system frequency
Acc 0.0 Acceleration factor for initialization

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

1 spd Generator speed, p.u.


1 slip Rotor slip, Hz.
1 vt Terminal voltage, p.u.
2 pg Real power output, MW
2 qnet Net reactive power output, MVAr
2 qgen Generator reactive power output, MVAr
2 qcap Capacitor reactive power output, MW
3 r2ex External rotor resistance, p.u.
3 pm Mechanical power, MW
Electrical Equations:
(L  Ll) 2 R2Tpo is a constant which is equal to
R 2Tpo 
o (L  L ' ) T’o times the total rotor resistance
R2 is the internal rotor resistance
To'  R 2Tpo /(R 2ex  R 2) R2ex is the external rotor resistance
fd   ( fd  S d  (L  L' ) i d ) / To'  slip  fq

fq   ( fq  S q  (L  L' ) i q ) / To'  slip  fd

 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

Description Wind turbine control model

Prerequisites: Generator model ahead of this model in dynamic


models table

Inputs: Generator speed, wind power

Invocation: wndtrb [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

Ta 0.05 Actuator time constant, sec


Kp 100.0 Speed regulator gain
T1 0.2 Speed regulator TGR numerator time constant, sec
T2 0.5 Speed regulator TGR denominator time constant, sec
BPRMx 12.0 Blade pitch maximum rate, deg./sec.
Pwo 1.2 Initial wind power, pu

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

1 pm Mechanical power, p.u. (on turb. MW base)


1 Pwnd Wind power, p.u. (on turbine MW base)
1 Kpch Blade pitch factor, p.u.

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

Description: Pseudo governor model for Type-2 wind


turbines (directly connected induction generator
wind turbines with an external rotor resistance)

Prerequisites: wt2g and wt2t models ahead of this model in


dynamic models table

Inputs: Generator electrical power and turbine speed

Invocation: wt2p [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tpe 0.10 Time constant, sec.


Kdroop 0.015 Droop gain
Kp 20.0 PI proportional gain
Ki 1.00 PI integral gain
Pimax 1.00 PI output maximum limit, p.u.
Pimin 0.25 PI output minimum limit, p.u.
T1 0.10 Time constant, sec.
T2 0.10 Time constant, sec.
Kw 1.0 Speed gain, p.u.

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

1 pm Mechanical power, MW (Pmech)


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: wt1p_b

Description: Generic wind turbine pitch controller for WTGs


of Type 1 and 2

Prerequisites: wt1g or wt2g and wt1t or wt2t models ahead of


this model in dynamic models table

Inputs: Generator terminal voltage

Invocation: wt1p_b [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tr 0.0 Voltage transducer time constant, sec.


rmax 0.0 Rate limit for increasing power p.u./sec.
rmin 0.0 Rate limit for decreasing power p.u./sec.
To 0.0 Lag time constant, sec.
Pmin 0.0 Minimum poser setting, p.u.
Pset 0.0 If initial turbine mechanical power is greater than Pset
power is ramped (See Note b)
vt1 0.0 Voltage, p.u. (See Note b and block diagram)
t1 0.0 Time, sec.
vt2 0.0 Voltage, p.u.
t2 0.0 Time, sec.
vt3 0.0 Voltage, p.u.
t3 0.0 Time, sec.
vt4 0.0 Voltage, p.u.
t4 0.0 Time, sec.

Notes:

a) Wt1p_b is a “generic model”, i.e., non-vendor specific model. Wt1p_b is a simplified


model for emulating the general behavior of WTGs of Type 1 and 2 during electrical
disturbances.
b) If the filtered voltage, Vtf, is less than vt4, and Po is greater or equal to Pset, then
switch SW is set to position 1 for the duration of T seconds computed from the T vs.
Vtf function (see block diagram). Otherwise, SW is set to position 0.
c) Po is set to the initial turbine power during the initialization of the model.
d) The “fix bad data” option will do the following:
a. If 0 < Tr < 4*delt, then set Tr = 4*delt
b. If 0 < To < 4*delt, then set To = 4*delt

Output Channels:

Record
Level Name Description

1 pm Mechanical power, MW (Pmech)

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

vt1 vt2 vt3 vt4 Vtf


Model Name: wt2t

Description: Wind turbine model for Type-2 wind turbines


(directly connected induction generator wind
turbines with an external rotor resistance)

Prerequisites: wt2g model ahead of this model in dynamic


models table

Inputs: Generator electrical power, mechanical power

Invocation: wt2t [<n>] {<name> <kv>} <id> : [mwcap=<value>]

Parameters:

EPCL Default
Variable Data Description

H 3.46 Total inertia constant, MW-sec/MVA


D 0.0 Damping factor, p.u. P / p.u. speed
Optional two-mass model:
Htfrac 0.81 Turbine inertia fraction (Ht / H)
Freq1 1.50 First shaft torsional resonant frequency, Hz
Dshaft 0.30 Shaft damping factor, p.u. P / p.u. speed

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

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

Type 2 WTG Turbine Model with One-mass 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

Type 2 WTG Turbine Two-mass Model


Model Name: wt3e

Description: Excitation (converter) control model for Type-3 (doubly-


fed) wind turbines

Prerequisites: wt3g model ahead of this model in dynamic models table

Inputs: Generator active and reactive power; Voltages at


generator terminals and at regulated bus; Q order from a
separate reactive power control emulator, if used

Invocation: wt3e [<n>] {<name> <kv>} <id> ! ! ! ! ! [<mon_i>] {<namei>


<kvi>} [<mon_j>] {<namej> <kvj>} <ck> <sec> : [mwcap=<value>]

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.

d) Tr, Tc, or Tp 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) The following comments apply to GE type 3 wind turbines:


Kqi can be tuned to obtain faster or slower response from the WindVar. The loop 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 pu (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 = 0), the value of Kqi should be set to a very small number,
e.g. 0.0001) since this control is a slow reset.
Rapid power factor angle regulation (varflg = -1) is currently used for European units when
WindVar is not employed. Kqi may need to be set to a larger value for these units.

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.)

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.

Output Channels:

Record
Level Name Description

1 pord Power controller output, p.u. (Pord)


1 icmd Current command to generator, p.u. (Ip cmd)
1 ecmd Voltage (flux) command to generator, p.u.
(Eq cmd)
2 qord Reactive power order, p.u. (Qord)
2 vref Local voltage reference, p.u. (Vref)
2 vrfq Reactive power control emulator ref. voltage,
p.u. (Vrfq)
2 vreg Reactive power control emulator regulated
voltage, p.u. (Vc)
Block Diagram:

Wind Plant Reactive Power Control Emulation


Vrfq
Qmax
Kiv / s
+ +
Vc 1 1
 1/Fn 
1+ sTr Qwv 1+ sTc
Kpv +
s3 s5
1+ sTv Qmin
s2

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

Type 3 WTG Reactive Power Control Model


(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

Type 3 WTG Active Power (Torque) Control Model


Model Name: wt3p

Description: Pitch controller model for Type-3 (doubly-fed)


wind turbines

Prerequisites: wt3g, wt3e, wt3t, models ahead of this model


in dynamic models table

Inputs: Generator speed, Speed reference, Power order

Invocation: wt3p [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Kpp 150.0 Pitch control proportional gain, deg./ p.u. speed


Kip 25.0 Pitch control integral gain, deg./ (p.u. speed-sec.)
Kpc 3.0 Pitch compensator proportional gain, deg./ p.u. P
Kic 30.0 Pitch compensator integral gain, deg./ (p.u. P-sec.)
Pimax 27.0 Maximum pitch angle, deg.
Pimin 0.0 Minimum pitch angle, deg.
Pirat 10.0 Pitch rate limit, deg./sec.
Tpi 0.3 Blade response time constant, sec.
Pset 1.0 Power set point, p.u.

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

1 wref Speed reference, p.u. (ref)


1 pitc Blade pitch, deg. ()
1 spde Speed error, p.u. (err)

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

Type 3 WTG Pitch Control Model


Model Name: wt3t

Description: Wind turbine model for Type-3 (doubly-fed)


wind turbines

Prerequisites: wt3g and wt3e models ahead of this model in


dynamic models table

Inputs: Blade pitch, Generator electrical power

Invocation: wt3t [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Vw Initial wind speed, p.u. of rated wind speed


H 4.94 Total inertia constant, MW-sec/MVA
D 0.0 Damping factor, p.u. P / p.u. speed
Kaero 0.007 Aerodynamic gain factor
Theta2 21.98 Blade pitch at twice rated wind speed, deg.
Optional two-mass model:
Htfrac 0.875 Turbine inertia fraction (Ht / H)
Freq1 1.80 First shaft torsional resonant frequency, Hz
Dshaft 1.50 Shaft damping factor, p.u. P / p.u. speed

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.  Vw2

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

1 spd Generator speed, p.u. ()


1 pm Mechanical power, MW (Pmech)
2 wtur Turbine speed, p.u. in two-mass model (t)

Block Diagram:

Simplified Aerodynamic Model

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

Type 3 WTG Turbine Model with One-mass Model


Ht = Htfrac H

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

Type 3 WTG Turbine Two-mass Model


Model Name: wt4e

Description Excitation (converter) control model for full converter


wind-turbine generators (FC WTG)

Prerequisites: wt4g model ahead of this model in dynamic models table

Inputs: Q order from separate WindCONTROL model, if used;


P order from wt4t model; Voltages at generator terminals
and at regulated bus

Invocation: wt4e [<n>] {<name> <kv>} <id> [<nr>] {<namer> <kvr>}:

Parameters:

EPCL Default
Variable Data Description

varflg 1 1 = Qord from WindCONTROL emulation; -1 = Qord from vref


(i.e., separate model); 0 = Power factor control (pfaflg=1)
Kqi 0.1 Q control integral gain (see note f)
Kvi 120. V control integral gain
Vmax 1.1 Maximum V at regulated bus (p.u.)
Vmin 0.9 Minimum V at regulated bus (p.u.)
Qmax 0.40 Maximum Q command (p.u.)
Qmin -0.40 Minimum Q command (p.u.)
Tr 0.02 WindCONTROL voltage measurement lag, sec.
Tc 0.15 Lag between WindCONTROL output and wind turbine, sec.
Kpv 18.0 WindCONTROL regulator proportional gain (see note g)
Kiv 5.0 WindCONTROLregulator integral gain (see note g)
pfaflg 0 1 = regulate power factor angle; 0 = regulate Q
fn 1.0 fraction of WTGs in wind farm that are on-line
Tv 0.05 Time constant in proportional path of WindCONTROL emulator,
sec.
Tpwr 0.05 Time constant in power measurement for PFA control (Tp), sec.
Iphl 1.24 Hard limit on real current, p.u.
Iqhl 1.25 Hard limit on reactive current, p.u.
Pqflag 0 0 = Q priority ; 1 = P priority
Imaxtd 1.70 Maximum temperature dependent converter current, p.u. (Note i)
Viqlim 1.60 Max. voltage dependent reactive current limit, p.u. (Note j)
Notes:

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

1 porx P order from the turbine control (wndtge), p.u.


1 qord Q order from the WindCONTROL emulator or from a
separate model, p.u.
2 qcmd Q command after limits, p.u.
2 vref Local voltage reference, p.u.
2 vrfq WindCONTROL emulator reference voltage, p.u.
2 vreg WindCONTROL emulator regulated voltage, p.u.
2 qwv WindCONTROL emulator PI control output, p.u.
2 iqmx Maximum limit applied to the reactive current order, p.u.
2 iqmn Minimum limit applied to the reactive current order, p.u.
2 ipmx Maximum limit applied to the real current order, p.u.
2 iqxv Voltage dependent reactive current limit (Iqmxv), p.u.
Block Diagram:

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

Q Priority viqlim P Priority


qmax
Vt
1.0

-1 -1
Iqmxv

Iqhl Minimum

Minimum Minimum

IPcmd
ImaxTD ImaxTD2 - IPcmd2

IQcmd
ImaxTD2 - IQcmd2
Iphl

Minimum Minimum

Ipmx Ipmx

Converter Current Limit Model


Model Name: wt4g

Description: Generator/converter model for Type-4 (full


converter) wind turbines

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables, generator active


and reactive current commands from wt4e
model.

Invocation: wt4g [<n>] {<name> <kv>} <id>} : #<rl> {mva=<value>}

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:

Type 4 WTG Generator/Converter Model


IQIv
X 
+
-
Iolim

Vterm Vt >Volim
Vt <= Volim

0
+

 Khv

-
0

Volim 1

High Voltage Reactive Current Management

Isorc
Vterm

IPIv

Gain
X
1

Vterm

Lvpnt0 Lvpnt1 V

Low Voltage Active Current Management


Model Name: wt4t

Description: Simplified wind turbine model for Type-4 (Full


Converter) wind turbines

Prerequisites: wt4g and wt4e models ahead of this model in


dynamic models table

Inputs: Generator electrical power

Invocation: wt4t [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

Tpw 0.05 Voltage transducer time constant, sec.


Kpp 0.08 PI controller proportional gain, p.u.
Kip 0.10 PI controller integral gain, p.u.
Tf 0.08 Rate feedback time constant, sec.
Kf 0.00 Rate feedback gain, p.u.
dPmx 0.1 Maximum PI controller output, p.u.
dPmn -0.1 Minimum PI controller output, p.u.

Notes:

a) Wt4t is a very simplified turbine model for Type 4 WTGs.

Output Channels:

Record
Level Name Description

1 pord Power order, p.u.


2 piin PI controller input, p.u.
2 piou PI controller output, p.u.
Block Diagram:

Pref dPmx Pref

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

Description: Generator/converter model for Type-3 (doubly-


fed) wind turbines

Prerequisites: Generator present in load flow working case

Inputs: Network boundary variables, generator active


current and flux commands from wt3e model.

Invocation: wt3g [<n>] {<name> <kv>} <id>} : #<rl> {mva=<value>}

Parameters:

EPCL Default
Variable Data Description

Lpp 0.8 Generator effective reactance, p.u. on gen. MVA base


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.
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 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

Low Voltage Power Logic

Type 3 WTG Generator/Converter Model


IQIv
X 
+
-
Iolim

Vterm Vt <= Volim Vt >Volim

0
+

 Khv

-
0

Volim 1

High Voltage Reactive Current Management

Isorc
Vterm

IPIv

Gain
X
1

Vterm

Lvpnt0 Lvpnt1 V

Low Voltage Active Current Management


Model Name: wtga_a

Description: Simple aerodynamic model

Prerequisites: wtgt_a, reec_a and regc_a models ahead of


this model in dynamic models table

Inputs: Blade pitch angle

Invocation: wtga_a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

mvab 0.0 MVA base (See Note a)


Ka 0.007 Aerodynamic gain factor
Theta0 0.0 Initial blade pitch angle, deg. (

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 

where  is the pitch angle.


*
W. W. Price, J.J. Sanchez-Gasca, “Simplified Wind Turbine Generator Aerodynamic
Models for Transient Stability Studies” Proc. IEEE PES 2006 Power Systems Conference and
Exposition (PSCE), Oct. 29-Nov. 1, 2006, Atlanta, GA, pp. 986-992.
Output Channels:

Record
Level Name Description

1 pmmw Mechanical power, MW (Pmech)


2 pmpu Mechanical power, p.u. (Pmech)

Block Diagram:

Pmech
Ka
From + To
wtgp_a + wtgt_a

Pmo
Model Name: wtgp_a

Description WTG Pitch controller

Prerequisites: regc_a, reec_a, wtgq_a, wtgt_a, wtga_a ahead of this


model in dynamic models table

Inputs:

Invocation: wtgp_a [<n>] {<name> <kv>} <id> :

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

1 pitc Pitch angle, deg. ()


2 pi1o PI controller output, p.u.
2 pi2o PI controller output, p.u.

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

Description WTG Torque controller

Prerequisites: regc_a, reec_a ahead of this model in dynamic models


table

Inputs:

Invocation: wtgq_a [<n>] {<name> <kv>} <id> :

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

1 prMW Power reference in MW


1 prPU Power reference in pu (mvab base)
1 wref Speed reference in pu
2 wg Generator speed, pu
2 piin PI controller input, pu
2 tref PI controller output, pu
Block Diagram:

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

Description: Drive train model

Prerequisites: For a Type 3 WTG: regc_a, and wtgq_a ahead


of this model. For a type 4 WTG: : regc_a
ahead of this model in dynamic models table

Inputs: Generator electrical power, initial mechanical


torque

Invocation: wtgt_a [<n>] {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

mvab 0.0 MVA base (See Note a)


ht 4.134 Turbine inertia, MW-sec/MVA
hg 0.62 Generator inertia, MW-sec/MVA
dshaft 1.5 Damping coefficient p.u.
kshaft 0.0 Stiffness constant, p.u.
wo 1.0 Initial “speed”, p.u.

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

Description Distance relay with circle, lens, or quadrilateral


characteristics. With Directional Comparison Blocking
(DCB).

Prerequisites: Branch (secdd only) must exist

Inputs: Voltage and current at both ends of branch

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

notrip 0.0 0: trip, > 0: do not trip


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 for backward)
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.
shape2f 0.0 From end Zone 2 shape (0 circle/lens/tomato; 1 rectangle).
ang2f 0.0 From end Zone 2 angle, deg.
rf2f 0.0 From end Zone 2 forward reach, p.u. Z
rr2f 0.0 From end Zone 2 reverse reach, p.u. Z (positive backward)
wt2f 0.0 From end Zone 2 total width, p.u. Z
wr2f 0.0 From end Zone 2 right width, p.u. Z (for rectangle only)
T2f 0.0 From end Zone 2 pickup time setting, sec.
shape2t 0.0 To end Zone 2 shape (0 circle/lens/tomato; 1 rectangle).
ang2t 0.0 To end Zone 2 angle, deg.
rf2t 0.0 To end Zone 2 forward reach, p.u. Z
rr2t 0.0 To end Zone 2 reverse reach, p.u. Z (positive for backward)
wt2t 0.0 To end Zone 2 total width, p.u. Z
wr2t 0.0 To end Zone 2 right width, p.u. Z (for rectangle only)
T2t 0.0 To end Zone 2 pickup time setting, sec.
shape3f 0.0 From end Zone 2 shape (0 circle/lens/tomato; 1 rectangle).
ang3f 0.0 From end Zone 2 angle, deg.
rf3f 0.0 From end Zone 3 forward reach, p.u. Z
rr3f 0.0 From end Zone 3 reverse reach, p.u. Z (positive backward)
wt3f 0.0 From end Zone 3 total width, p.u. Z
wr3f 0.0 From end Zone 3 right width, p.u. Z (for rectangle only)
T3f 0.0 From end Zone 3 pickup time setting, sec.
shape3t 0.0 To end Zone 3 shape (0 circle/lens/tomato; 1 rectangle).
ang3t 0.0 To end Zone 3 angle, deg.
rf3t 0.0 To end Zone 3 forward reach, p.u. Z
rr3t 0.0 To end Zone 3 reverse reach, p.u. Z (positive for backward)
wt3t 0.0 To end Zone 3 total width, p.u. Z
wr3t 0.0 To end Zone 3 right width, p.u. Z (for rectangle only)
T3t 0.0 To end Zone 3 pickup time setting, sec.

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:

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) The signals in the next 3 output channels indicate 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

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

1 sg1f Zone 1 FROM end signal


1 sg1t Zone 1 TO end signal
1 sg2f Zone 2 FROM end signal
1 sg2t Zone 2 TO end signal
1 sg3f Zone 3 FROM end signal (must be 0 for zone 2 trip to occur)
1 sg3t Zone 3 TO end signal (must be 0 for zone 2 trip to occur)
1 sgxf Circuit breaker timer signal – Zone 1 FROM end
1 sgxt Circuit breaker timer signal – Zone 1 TO end
1 sgx2 Circuit breaker timer signal – Zone 2
1 rapf Apparent resistance, p.u – FROM end.
1 xapf Apparent reactance, p.u. – FROM end
1 rapt Apparent resistance, p.u – TO end.
1 xapt Apparent reactance, p.u. – TO end

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

Z3A Z2B A Z1B Z1A B Z2A Z3B

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

Description Basic impedance distance relay.


Places apparent impedance in output channels.

Prerequisites: Branch (secdd only) must exist

Inputs: Voltage and current at "from" end of branch

Invocation: zlin1 [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>}


<ck> <sec>:
Note: <id> should be set to “1”; only one zlin1 per line is
permitted.

Parameters:

EPCL Default
Variable Data Description

tf 0.0 Not used.


notrip 0.0 0: trip, >0: do not trip, <0: trip line, but do not trip isolated islands
nfar 0.0 |nfar| = no. of far end bus; set <0 to use angle, Z input (see note f)
r1ang1 0.0 Zone 1 resistance setting, p.u. or angle, deg.
x1z1 0.0 Zone 1 reactance setting, p.u. or impedance, p.u.
T1 0.0 Zone 1 pickup time setting, sec.
tcb1 0.0 Zone 1 circuit breaker operating time, sec.
r2ang2 0.0 Zone 2 resistance setting, p.u. or angle, deg.
x2z2 0.0 Zone 2 reactance setting, p.u. or impedance, p.u.
T2 0.0 Zone 2 pickup time setting, sec.
tcb2 0.0 Zone 2 circuit breaker operating time, sec.
r3ang3 0.0 Zone 3 resistance setting, p.u. or angle, deg.
x3z3 0.0 Zone 3 reactance setting, p.u. or impedance, p.u.
T3 0.0 Zone 3 pickup time setting, sec.
tcb3 0.0 Zone 3 circuit breaker operating time, sec.
zr1 0.0 Zone 1 reverse impedance, p.u.
zr2 0.0 Zone 2 reverse impedance, p.u.
zr3 0.0 Zone 3 reverse impedance, p.u.

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:

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 fourth 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

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

1 signal1 Zone 1 signal


1 signal2 Zone 2 signal
1 signal3 Zone 3 signal
1 signalx Circuit breaker timer signal
1 rapp Apparent resistance, p.u.
1 xapp Apparent reactance, p.u.

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

Description Basic impedance distance relay.


Line may have non-radial tap buses.
Outputs apparent impedance and timer status.

Prerequisites: Branch must exist

Inputs: Voltage and current at "from" end of branch

Invocation: zlin2 [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>}


<ck> <sec>:
Note: <id> should be set to “1”; only one zlin2 per line is
permitted.

Parameters:

EPCL Default
Variable Data Description

tf 0.0 Not used.


notrip 0.0 0 = trip, 1 = do not trip
nfar 0.0 Number of far end bus
r1ang1 0.0 Zone 1 resistance setting, p.u. or angle, deg.
x1z1 0.0 Zone 1 reactance setting, p.u. or impedance, p.u.
t1 0.0 Zone 1 pickup time setting, sec.
tcb1 0.0 Zone 1 circuit breaker operating time, sec.
r2ang2 0.0 Zone 2 resistance setting, p.u. or angle, deg.
x2z2 0.0 Zone 2 reactance setting, p.u. or impedance, p.u.
t2 0.0 Zone 2 pickup time setting, sec.
tcb2 0.0 Zone 2 circuit breaker operating time, sec.
r3ang3 0.0 Zone 3 resistance setting, p.u. or angle, deg.
x3z3 0.0 Zone 3 reactance setting, p.u. or impedance, p.u.
r3 0.0 Zone 3 resistance setting, p.u.
x3 0.0 Zone 3 reactance setting, p.u.
t3 0.0 Zone 3 pickup time setting, sec.
tcb3 0.0 Zone 3 circuit breaker operating time, sec.
ntap[7] 0.0 Up to 7 intermediate tap bus numbers
zr1 0.0 Zone 1 reverse impedance, p.u.
zr2 0.0 Zone 2 reverse impedance, p.u.
zr3 0.0 Zone 3 reverse impedance, p.u.
Notes:

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

1 signal1 Zone 1 signal


1 signal2 Zone 2 signal
1 signal3 Zone 3 signal
1 signalx Circuit breaker timer signal
1 rapp Apparent resistance, p.u.
1 xapp Apparent reactance, p.u.

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

Description Default impedance distance relay.


Applies to all branches within specified voltage
range, except those with stn = -1

Prerequisites: None

Inputs: Voltage and current at ends of each branch

Invocation: zlinw <n> {<name> <kv>} <id> :

Parameters:

EPCL Default
Variable Data Description

trip 0.0 = 0 - monitor only, do not trip; !=0, trip


scline 0.0 = 0 - do not include lines with series capacitors
Td2 0.0 Zone 2 time delay, sec.
Tcb 0.0 Breaker operation time delay, sec.
Trc 0.0 Reclosing time, sec.
dz1 0.85 Zone 1 circle diameter (p.u. of line X)
dz2 1.25 Zone 2 circle diameter (p.u. of line X)
kVmin 0.0 Minimum base kV of lines to be included
kVmax 9999. Maximum base kV of lines to be included

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:

Zone 1 circle diameter = dz1 * (line reactance)


Zone 2 circle diameter = dz2 * (line reactance)
Torque angle = 75 degrees

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

Description Apparent impedance recorder.places apparent impedance


in output channels.

Prerequisites: Branch must exist

Inputs: Voltage and current at "from" end of branch

Invocation: zmetr [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>} <ck>
<sec>:

Parameters:

EPCL Default
Variable Data Description

Tf 0.0 Transducer or filter time constant, sec.


Df 0.0 Direction flag

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

1 rbr Apparent resistance, p.u.


1 xbr Apparent reactance, p.u.
1 vbr Apparent voltage, p.u.

Block Diagram:

Voltage Apparent
Impedance (p.u.)
1
1  sTf

Current
Model Name: zmetra

Description Apparent impedance recorder for all lines in a system,


area or zone.

Prerequisites:

Inputs:

Invocation: zmetra:

Parameters:

EPCL Default
Variable Data Description

flag 0.0 0 – system, 1 – area, 2 - zone


num 0.0 Area or zone number
KV1 0.0 Minumum kV
KV2 9999. Maximum kV

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

1 rapf Apparent resistance, p.u.


1 xapf Apparent reactance, p.u.
1 rapt Apparent resistance, p.u.
1 xapt Apparent reactance, p.u.

These 4 channels are repeated for each line. Each channel will have the line identification of the
corresponding line.
Model Name: zonedef

Description Zone definition for WECC Distance Relay Model

Prerequisites: Branch must exist

Inputs: none

Invocation: zonedef nf namef kvf id nt namet kvt ck :


Note: id indicates the relay zone (1,2,3, or 4) represented
by this model. However, it should still be enclosed in
quotes similar to the ck in the invocation.

Parameters:

EPCL Default
Variable Data Description

ang1 0.0 Shape 1 angle, deg.


dir1 0.0 Shape 1 direction, 0 forward; 1 reverse
shape1 0.0 Shape 1 shape (0 circle/lens/tomato; 1 rectangle; 2 reactance; 3
impedance).
intang1 0.0 Shape 1 internal angle, deg. (> 90 lens; = 90 circle; > 90 tomato).
wt1 0.0 Shape 1 total impedance, ohms
rr1 0.0 Shape 1 reverse reach, ohms (positive is “behind” the bus if dir1 =
0)
rb1 0.0 Shape 1 resistive blinder along horizontal axis for rectangle only,
ohms
oper1 0.0 Operator between Shape 1 and Shape 2, (0 AND; 1 OR; 2 NOT).
< 0 – do not use shape 2 or 3
ang2 0.0 Shape 2 angle, deg.
dir2 0.0 Shape 2 direction, 0 forward; 1 reverse
shape2 0.0 Shape 2 shape (0 circle/lens/tomato; 1 rectangle; 2 reactance; 3
impedance).
intang2 0.0 Shape 2 internal angle, deg. (> 90 lens; = 90 circle; > 90 tomato).
wt2 0.0 Shape 2 total impedance, ohms
rr2 0.0 Shape 2 reverse reach, ohms (positive is “behind” the bus if dir2 =
0)
rb2 0.0 Shape 2 resistive blinder along horizontal axis for rectangle only,
ohms
oper2 0.0 Operator between Shapes 1/2 and Shape 3, (0 AND; 1 OR; 2 NOT).
< 0 – do not use shape 3
ang3 0.0 Shape 3 angle, deg.
dir3 0.0 Shape 3 direction, 0 forward; 1 reverse
shape3 0.0 Shape 3 shape (0 circle/lens/tomato; 1 rectangle; 2 reactance; 3
impedance).
intang3 0.0 Shape 3 internal angle, deg. (> 90 lens; = 90 circle; > 90 tomato).
wt3 0.0 Shape 3 total impedance, ohms
rr3 0.0 Shape 3 reverse reach, ohms (positive is “behind” the bus if dir3 =
0)
rb3 0.0 Shape 3 resistive blinder along horizontal axis for rectangle only,
ohms

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

Description Distance relay with circle, lens, or quadrilateral


characteristics. With Permissive Overreaching
Transfer Trip (POTT).

Prerequisites: Branch (secdd only) must exist

Inputs: Voltage and current at both ends of branch

Invocation: zpott [<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

notrip 0.0 0: trip, > 0: do not trip


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 for backward)
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.
shape2f 0.0 From end Zone 2 shape (0 circle/lens/tomato; 1 rectangle).
ang2f 0.0 From end Zone 2 angle, deg.
rf2f 0.0 From end Zone 2 forward reach, p.u. Z
rr2f 0.0 From end Zone 2 reverse reach, p.u. Z (positive backward)
wt2f 0.0 From end Zone 2 total width, p.u. Z
wr2f 0.0 From end Zone 2 right width, p.u. Z (for rectangle only)
T2f 0.0 From end Zone 2 pickup time setting, sec.
shape2t 0.0 To end Zone 2 shape (0 circle/lens/tomato; 1 rectangle).
ang2t 0.0 To end Zone 2 angle, deg.
rf2t 0.0 To end Zone 2 forward reach, p.u. Z
rr2t 0.0 To end Zone 2 reverse reach, p.u. Z (positive for backward)
wt2t 0.0 To end Zone 2 total width, p.u. Z
wr2t 0.0 To end Zone 2 right width, p.u. Z (for rectangle only)
T2t 0.0 To end Zone 2 pickup time setting, sec.

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:

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) The signals in the other output channels indicate the status of the circuit breaker timers, as
follows:

signal = 0 trip not initiated


signal = 1 trip initiated, cb timer running
signal = 2 circuit breaker tripped
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> ZPOTT 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> ZPOTT oper z<n> for <branch id>
3) When apparent Z leaves zone <n> before T<n> and zone is reset :
At t = <time> ZPOTT left z<n> for <branch id>
4) When Tcb<n> has elapsed after a Zone 1 trip signal is sent:
At t = <time> ZPOTT Zone 1 CB trip for <branch id>
5) When Tcb<n> has elapsed after a Zone 2 trip signal is sent:
At t = <time> ZPOTT Zone 2 CB trip both ends for <branch id>

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

1 sg1f Zone 1 FROM end signal


1 sg1t Zone 1 TO end signal
1 sg2f Zone 2 FROM end signal
1 sg2t Zone 2 TO end signal
1 sgxf Circuit breaker timer signal – Zone 1 FROM end
1 sgxt Circuit breaker timer signal – Zone 1 TO end
1 sgx2 Circuit breaker timer signal – Zone 2
1 rapf Apparent resistance, p.u – FROM end.
1 xapf Apparent reactance, p.u. – FROM end
1 rapt Apparent resistance, p.u – TO end.
1 xapt Apparent reactance, p.u. – TO end

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

Z2B A Z1B Z1A B Z2A

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

Description Basic distance relay with circle, lens, or rectangular


characteristic
Places apparent impedance in output channels.

Prerequisites: Branch (secdd only) must exist

Inputs: Voltage and current at "from" end of branch

Invocation: zqlin1 [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>}


<ck> <sec>:
Note: <id> should be set to “1”; only one zqlin1 per line is
permitted.

Parameters:

EPCL Default
Variable Data Description

notrip 0.0 0: trip, >0: do not trip


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)
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 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.
Notes:

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:

Wt <= 0 or Wt = Rf + Rr Circle with diameter = Rf + Rr


Wt < Rf + Rr Lens (intersection of 2 circles)
Wt > Rf + Rr Tomato (union of 2 circles)

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:

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 fourth 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

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

1 signal1 Zone 1 signal


1 signal2 Zone 2 signal
1 signal3 Zone 3 signal
1 signalx Circuit breaker timer signal
1 rapp Apparent resistance, p.u.
1 xapp Apparent reactance, p.u.
Block Diagram:
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: zqlin2

Description Basic distance relay with circle, lens, or rectangular


characteristic.
Line may have non-radial tap buses.
Outputs apparent impedance and timer status.

Prerequisites: Branch must exist

Inputs: Voltage and current at "from" end of branch

Invocation: zqlin2 [<nf>] {<namef> <kvf>} <id> [<nt>] {<namet> <kvt>}


<ck> <sec>:
Note: <id> should be set to “1”; only one zlin2 per line is
permitted.

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

1 signal1 Zone 1 signal


1 signal2 Zone 2 signal
1 signal3 Zone 3 signal
1 signalx Circuit breaker timer signal
1 rapp Apparent resistance, p.u.
1 xapp Apparent reactance, p.u.
Block Diagram:

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>")

    argument = solve, display, etc. (see list


below)
     
Arguments: <option> Panel to be displayed
     
Function:   Display/edit of program parameters
     

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.
 
 
 

DYNAMIC SIMULATION 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 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>",

    “<date>", "<table>", "<values>", “<version>”,


“<aflag>” )
     
Arguments: <file> Name of file or printer to receive output
  <page> Flag to indicate whether to format the page or record
  <tie>  Export tie lines flag (1=yes, 0=no)
  <date> Export by in-service date and retirement date
  <table>  Select table flag (1=yes, 0=no)
  <table
values>
20 values of 0 or 1 to export which tables
  <version> Major version number of PSLF for export (e.g. 18, 19)
The default version will be the version of the SAV
file in memory
 
  <aflag> When the selector is on, (please refer to the sele
command), aflag is used to export data by bus
area/zone or element area/zone. aflag is set to 0 to
export loads, generates, svds, shunts, branches and
transformers by element area/zone; or 1 to export
loads, generators, svds, shunts, branches and
transformers by their bus area/zone (1 by default).
When aflag is 2, loads, generators, svds, shunts,
branches and transformers are written to the epc files
if either its area/zone or the area/zone of its bus is
assigned to the selected area/zone.
 
Function:   To export load flow data in EPC format
     
Prerequisites:   Valid solved load flow data in working case
 
 
 
 
 
eepc exports the load flow case in the working tables in EPC format. (see repc for format details).
 
This exported file will contain dates, title records, comment records, solution parameters and component data. All
records beginning with a pound sign (#) are considered informational records and are ignored by repc. Informational
records may be inserted (using a standard text editor such as textpad) anywhere in the file as long as the first character
on the line is a #.
 
The exported file is divided into sections preceded by the key word. Listed below are the key words that indicate which
section is read in by repc.
 
title up to 5 title records
comment up to 15 comment records
solution 8 solution parameter records
datamaintainer data maintainer records
block block records
plant plant records
substation substation records
bus bus records
branch ac branch records
transformer transformer records
generator generator records
load load records
shunt shunt records
svd svd records
area data area records
zone zone records
interface data interface records
interface branches interface branch records
dc bus dc bus records
dc line dc line records
dc conv dc converter records
vsc vsc records
z tab impedance correction table records
gcd power electronic device record
transaction transaction records
owner owner records
motor induction motor records
line line records
qtable Q table records
ba Balancing authority
injection group Injection group records
injection group element Injection group element records
voltage control group voltage control group records
voltage control element voltage control group element records
interface element Interface element records
end end of records
 
After selecting eepc the following panel is shown.  The user may place column headings in the output file if a 1 is
placed after Page format file.  A z in the page format file option will export each record as a single line, therefore,
importing into a spreadsheet program can be accomplished quickly.
 
 

 
 
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:    

Arguments: <file> Name of epcl program to execute


Function:   Initiates epcl power system simulation language

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

    Note that epti executed via an epcl in an interactive


mode.
Arguments:    
     
Function:   Exports a PTI format load flow data file

     
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  

     

EPCL:   @return = editdy("event")


     
Arguments:   none
     

Function:   Display events which occurred during the course of 


dynamic simulation
     

Prerequisites:   Load flow and dynamic simulation data in working


case – dynamic simulation run must be completed
 
 
event displays the events which occurred during the dynamic simulation and allows you to sort, select, and classify the
messages with the select/sort/search functions of the table editor.  event provides a convenient way of examining the
relay actions and fault sequence but does not allow you to change it.  Data changes made with the table editor in
event table are ignored.
 
The “TIME” column indicates the time when a given event occurred.
 
The “MODEL” column indicates which model trigged the event action.
 
The “DEV_TYPE” column indicates the type of device which trigged the event action.
 
The “EVENT_DESCRIPTION” column describes the event in detail.
 
The “FBUS” column describes the “from” bus at which the model triggering the event is connected to.
 
The “TBUS” column indicates the “to” bus at which the model triggering the event is connected to.
 
The “ID” column indicates the id of the device at which the model triggering the event is connected to.
 
The “CK” column indicates the circuit id of the device at which the model triggering the event is connected to.
 
 

 
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>")

    @return = 0  for success

    = -1 for failure

     
Arguments: <file> Name of history file
     
Function:   Store and retrieve history files
     

Prerequisites:   Working case must contain valid data for SAVF. 


<file> must be a valid history file for GETF.
 
 

 
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)
     

EPCL:   @return = grst()

     
Arguments:    
     

Function:   List generators outside var limits and voltages not on


schedule in an edit table
     

Prerequisites:   Valid solved load flow data in working case


 

 
 
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>")

    @return is the number of islands found

     
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
     

Function:   Isolate a bus

     

Prerequisites:   Valid load flow data in working case


 
 

 
 
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)

     

EPCL:   @return = tmism()

     
Arguments:    
     

Function:   List bus mismatches in an edit table

     

Prerequisites:   Valid solved load flow data in working case


 
 

 
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

ID:  enter bus number ID


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
AnnotOn -  If checked then bus annotation is displayed, such as, voltage and angle.
 
 
Under Draw:Text will display the tool bar at the bottom of the drawing area
 
 

 
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:    
     

Function:   Builds optimal ordering table for use in system


solutions
     

Prerequisites:   Working tables must contain a valid network model


with at least one swing bus (type 0) in each island
 
 

 
 
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)

     

EPCL:   @return = phsf()

     
Arguments:    
     

Function:   Display phase shifter results in an edit table

     

Prerequisites:   Valid solved load flow data in working case


 
 

 
 
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:    
     

Function:   Link to the plotting program

     

Prerequisites:   Valid load flow and dynamic simulation data in


working case
 
 

 
 
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  

     

EPCL:   @return = plsc()

     
Arguments: none  
     

Function:   Applies scale factors and offsets to raw play-in data


     

Prerequisites:   Commands psds and rpli  have been executed


 
 
Notes:
 
a)      The plsc() function applies the scale factors and offsets contained in the play-in data table to the raw play-in data
 
b)      plsc() scales and offsets each play-in channel according to
 
<data> = ( <data> - <ofset> )/<scale>
 
 
The scaled data values replace the raw values.
 
 
 
 
Command: rarea (from rept:Area)
(from tabr:Area)
tarea
     

EPCL   @return = rarea("<report>","append>","<select>")

    @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

     

Function:   Display area totals and area interchange summary

     

Prerequisites:   Valid solved load flow data in working case


 
 

 
 
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

     

Function:   List lines or transformers which exceed the user specified


limits
     

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)

     

EPCL:   @return = rcab("<file>")

     
Arguments: <file> Name of input file
     

Function:   Reads underground cables properties data file for use


by the tlc command
     

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
     

Prerequisites:   <file> must be a complete IEEE common format 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)

     

EPCL:   @return = rcond("<file>")

     
Arguments: <file> Name of input file
     

Function:   Reads conductor properties data file for use by the


tlc command
     

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)

     

EPCL:   @return = rdws("<file>","<report>","<dyd>")

     
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 )
     

Function:   Reads a dynamic simulation model data file from


WSCC format data file
     

Prerequisites:   Valid load flow data in working case


 
 

 
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
     

Prerequisites:   Valid load flow data in working case


 
rdyd reads the dynamic data file, sets up the table of dynamic model references for the simulation, and assigns parameter values
for each model.  Interactively, it is executed by selecting “rdyd” from the “Dynamics” pull-down menu or the “rdyd” button on
the toolbar. Please note that the process will not move forward if the user has already initialized a simulation. One needs to load
a fresh power flow file to move forward.
 
 

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()

Function: Reads a PTI formatted dynamic simulation model data file


Return  Values: @return>=0 on successful completion
Prerequisites: Valid load flow data in working case
 
 
rdyp reads dynamic simulation model assignments and model data from the PTI formatted
external data file specified by the <data file> argument. The input data file for rdyp will
have the following form:
 
<bus number>  <'model name'> <id> <data parameters>  /
 
Model data may continue for multiple records with the last data parameter followed by a
slash character.
 
The following table lists the translation from PTI to EPC
 
Type PTI GE
     
  model name model name
generator GENROA genrou
GENROE genrou
GENSAA gensaa
GENSAE gensal
GENDCO genrou
GENROU genrou
GENSAL gensal
GENCLS gencls
   
     
  BBSEX1 exbbc
  BBSXXZ exst1
excitation ESAC1A esac1a
  ESAC2A esac2a
  ESAC3A esac3a
  ESAC5A esac5a
  ESDC1A esdc1a
  ESDC2A esdc2a
  ESST1A esst1a
  ESST2A esst2a
  ESST3A esst3a
  EXAC3A exac3a
  EXBAS rexs
  EXDC2 esdc2a
  EXPIC1 expic1
  IEET1A esac1a
  IEET1S texs
  I3ET1A esdc1a
  IEEET2 esac5a
  IEEET3 exst2
  IEEET4 exdc4
  IEEET5 exdc4
  IEEEX1 esdc1a
  IEEEX2 exdc2
  IEEEX3 exst2
  IEEEX4 esdc3a
  IEET1A esac1a
  IEET1S texs
  IEEX2A esac1a
  OEX12T exst1
excitation OEX3 rexs
  SCRX scrx
  SEXS sexs
  ESAC4A esac4a
  ESAC6A esac6a
  ESAC8B esac8b
  ESST4B esst4b
  REXSYS rexs
  OEX3T rexs
  EXST4B exst4b
  IEEET1 esdc1a
  EX2000 esac7b
  URST5B esst5b
  URST5T esst5b
  EXAC1 esac1a
  EXAC1A exac1a
  EXAC3 exac3
  EXAC4 esac4a
  EXST2 exst2
  EXST2A esst2a
  EXST3 exst3
  IVOEX exivo
  EXELI exeli
  CELIN exeli2
  REXSY1 rexs
  EXST1 esst1a
  EXAC2 exac2
  EMAC1T emac1t
  URST4B exst4b
  AC7B esac7b
  AC8B esac8b
  DC3A esdc3a
  DC4B esdc4b
  ST6B esst6b
excitation USAC6AU esac6a
  ESURRY exac1m
Excitation limiters MAXEX1 oel2
MAXEX2 oel2
   
motor  CIMTR1 genind
CIMTR2 motor1
CIMTR3 genind
CIMTR4 motor1
Load shedding LDSHBL lsdt1
LDSHZN lsdt1
LDSHAR lsdt1
Load conversion IEELCA alwscc
IEELCB blwscc
IEELCZ zlwscc
IEELBL blwscc
     
  CLODBL _clod
Load models CLODAR _clod
  CLODZN _clod
  CLODOW _clod
  CLODAL _clod
  IEEEST ieeest
  IEE2ST wsccst
stabilizer OSTAB2 ieeest
  OSTAB5 ieeest
  OSTB2T ieeest
  OSTB5T ieeest
  PSS2A pss2a
  PTIST1 pss2a
  PTIST3 pss2a
  STAB1 ieeest
  STAB3 wsccst
  STAB4 wsccst
  ST2CUT psssb
  PSS1A pss1a
  PSS2B pss2b
  ST5B esst5b
  STBSVC pss1a
     
     
  CRCMGV crcmgv
  GAST2A ggov1
governor  IEESGO ieeeg1
  HYGOV2 hygov
  IEEEG1 ieeeg1
  IEEEG2 ieeeg1
  TGOV1 tgov1
  TGOV2 tgov1
  TGOV3 tgov3
  WESGOV gpwscc
  WPIDHY pidgov
  WEHGOV hyg3
  GASTWD ggov1
governor  HYGOV4 hygov4
  ETSIG2 ieeeg1
  DEGOV1 degov1
  UGGOV1 ggov1
  URGS3T gast
  IEEEG3 ieeeg3
  HYGOV hygov
  WSHYDD g2wscc
  GAST gast
  PIDGOV pidgov
  TGOV5 ieeeg1
  GGOV1 ggov1
  WSIEG1 ieeeg1
  CSVGN1 vwscc
  CSVGN3 vwscc
Static var devices CSVGN4 vwscc
  CSVGN5 vwscc
  CSTATC stcon
  CSTATT stcon
     
  S88001 wt2g
Renewable models V82BAE wt1g
  VWCORE wt3g
  REGCA1 regc_a
  REECA1 reec_a
  REECB1 reec_b
  REPCA1 repc_a
  REPCTA1 repc_a
  GEWTG1 gewtg
  GEWTE1 exwtge
  GEWTT wndtge
  GEDFA gewtg
  C93GEN wt4g
  CIMTSS wt1g
  G8XDFG wt3g
  SMK203 wt4g
  GEWTGX gewtg
  WT3G wt3g
  WT3E wt3e
  WT3T wt3t
  WT3P wt3p
  WT3G1 wt3g
  WT2G1 wt2g
  WT1G1 wt1g
  GEWTG1 gewtg
Renewable models GEWTG2 gewtg
     
  Exwtge/ ewtgfc/
wndtge (depending
on flag)
GEWTE1  
     
  exwtge/ ewtgfc/
wndtge (depending
GEWTE2 on flag)
     
  GEWTT wndtge
  GEWTT1 wndtge
  GEWTP wndtge
  GEWTP1 wndtge
  GEWTP2 wndtge
  WT3G2 wt3g
  W4G2U wt4g
  WT4G1 wt4g
     
Compensator models
Included in generator
IEEEVC model
  VTGTPA lhvrt
Protection system
models FRQTPA lhfrt
     
     
 
 

 
 
 
 
 
Command: rede (from econ:Read GE)

     

EPCL:   @return = rede("<file>")

     
Arguments: <file> Name of economic dispatch data file
     

Function:   Reads economic dispatch data from file in  "EPC"


format
     

Prerequisites:   Valid solved load flow and economic data in working


case
 
 

 
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)

     

EPCL:   @return = redi("<file>")

     
Arguments: <file> Name of economic dispatch data file
     

Function:   Reads economic dispatch data from file in "PTI"


format 
     

Prerequisites:   Valid solved load flow and economic data in working


case
 
 

 
 
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

     

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
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
     

Function:   Read distance assignment data for MW-distance


calculations
     

Prerequisites:   Valid load flow data in working case


 
 
rmil reads transmission line distance assignment data from the named file into temporary storage.  This assignment
data is intended for use by the mmil command in calculating and accumulating MW-distance products for each area of
the transmission system.
 
Each transmission line may have an entry in the blocks for up to four areas. The from bus for each entry in each area
block must be the bus at which the line's flow is to be evaluated for the assignment to that area.
 
Entries may be included in the file for lines that are not present in the load flow case.  These entries are skipped by
rmil.  Entries for lines that are in the load flow case but out-of-service are read so that proper MW-distance
assignments will be made if the line is subsequently placed in service.
 
The distance assignment tables built up by rmil are held in temporary storage. They are not saved in a history file by
the savf command and they do not affect the <length> entries in the working data tables.  The "from" and "to" bus
base voltage values read by rmil override the bus base voltage values in the bus data table and therefore are saved in a
history file by savf.
 
The distance assignment tables built by rmil are destroyed when the scsc subsystem is entered.
 
Epc and texas are the two input formats available for rmil.
 
CAUTION: Solve the load flow network prior to executing rmil
 
EPC FORMAT
 
The EPC mw-mile 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 a file.
 
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.
 
 
THE RMIL CONTROL FILE
 
The data records are grouped by type.  Each group of records is preceded by a keyword record identifying its type. The
keywords recognized are "epc","area" and "end".
 
Heading record   (mandatory)
Area record (mandatory)
End record (mandatory)
 
 
The content and significance of the records are as follows:
 
 
Heading record
 
epc <comment>
 
 
<comment> Ignored
 
 
Area record
 
area <area number>  <"area name">
 
<area number> Number of area in which mw-mile is
calculated
<"area name"> Name of area in which mw-mile is
calculated
 
 
Enter a record for each branch to be considered for mw-mile calculations in this form:
 
<f bus> <f name> <f bkv> <t bus> <t name> <t bkv> <ck> : <length>
 
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  
<length> Length of line miles
 
 
End record
 
This must be the last record of each file.
 
 
An example input data file for rmil in EPC format contains the following records:
 
  epc rmil data file                               heading record
  area   23 "A31"                                area    record
   1 "NORTH-01" 230  2 "NORTH-02" 230 "1" : 36.4   branch  record
                          .
                          .                                     repeat for all
                          .                                     branches within area
   area   23 "A32"                                  next area record
   21 "SOUTH-01" 230  22 "NORTH-02" 230 "1" : 36.4  branch  record
                          .
                          .
                          .
   end                                              last record in file
 
 
TEXAS FORMAT
 
The distance assignment file contains a block of records of the following format for each area to which MW-distance
products are assigned.
 
a)       Heading record
 
Columns 1-5, "texas"
 
b)       Area record
 
Columns 1-4, Area Name 4 characters
 
c)       Line assignment records
 
Columns 1-4, From bus number, 1-4 digits
Columns 6-9, To bus number, 1-4 digits
Columns 10-15, Assigned length, F6.2 format
Columns 17-20, From bus base voltage, kv, F4.1
Columns 22-25, To bus base voltage, kv, F4.1
Columns 28, Circuit Identifier, 1 character
 
d)       Terminator record
 
Columns 1-4, 9999
 
The area name entered on the Area record must match the first 4 characters of the area name in the working case
exactly, and must be unique.
 
The format designator F6.2 means that the number may include a maximum of 6 digits and that, if a decimal point is
not included, the number is divided by 100. If it is included, the decimal point counts as one of the six digits.
 
 
 
Command: rpli  

     

EPCL:   @return = rpli("<file>",<nrec>,<ndec>,<scale>)


 
     
Arguments: <file> Name of file to be read
  <nrec> Number of records to be read

  <ndec Decimation factor

  <scale> Data scaling flag

     

Function:   Reads a file of data to be played in to a PSLF simulation

     

Prerequisites:   Command psds must have been executed


 
 
Notes:
 
 
a)       The rpli command allows arbitary external data to be read from a simply formatted ASCII file, stored in the PSLF
data structure, accessed by means of the EPCL language.  Data is read from the file and placed in internal array
storage of PSLF.  This data is used by the gthev, plefd, pltp, and plref models to  "play in" signals to dynamic
simulations.  The data can also be used for any other purpose that can be implemented by EPCL programming.
 
b)       The rpli command reads data into the data tables pldat and plhead.  The pldat table contains the data values.  The
plhead table contains channel headings, scale factors, offsets, and plotting limtes.
 
c)       The data file read by rpli must contain records as follows:
 
Record 1 nchan
Record 2 <head0>, <head1>, . . .,<headn-1>
Record 3 <scale0>,<scale1>,. . .,<scalen-1>
Record 4 <ofset0>,<ofset1>,. . .,<ofsetn-1>
Record 5 <tf0>,   <tf1>,   . . .,<tfn-1>
Record 6 <min0>,  <min1>,  . . .,<minn-1 >
Record 7 <max0>,  <max1>,  . . .,<maxn-1>
Record 8 <plot0>, <plot1>, . . .,<plotn-1>
Record 9 <data0>, <data1>, . . .,<datan-1>
.  
.  
Record n <data0>, <data1>,. . ., <datan-1>
   
 
d)            The delimiter between tokens in the file can be a comma, a space, a comma and any number of spaces, or simply
any number of spaces.  Comments may be placed to the right of the required data.  Records whose first character
is # are skipped.
 
e)           The maximum allowable record length is 396 characters.
 
f)            An example file would appear thus:
 
5          
kV kV Hz Afd Vfd // Channel names
1.0 13.8 60.0 275 165 // Scale factors
1.35 0.0 0.0 0.0 0.0 // Offsets
0.0 0.05 0.05 0.0 0.05 // Filter time constants
#          
0.0 13.0 59.5 0.0 0.0 // Minimum plotting scale
values
100.0 15.0 60.5 500.0 300.0 // Maximum plotting scale
values
0 1 1 1 1 // Plotting flags
#          
1.3500 14.00 60.000 408.1 362.0 // First record of data values
1.3700 13.97 60.001 407.3 366.1  
1.3900 13.91 60.002 408.4 364.8  
1.4100 13.98 60.000 407.5 364.9  
1.4300 14.04 59.997 408.8 365.3  
.          
.          
.          
23.3500 14.28    60.001 425.2 382.2 // Last record of data values
           
 
 
 
g)             The data stored by the rpli command can have any meaning that is of value to the user of PSLF.  One particular
use is to "play in" test recordings, either as input stimulii to simulations or for comparison with simulation output. 
This example file above is a recording over 25 seconds of the terminal voltage, terminal frequency, field current,
and field voltage of a generator during a test.  The scale factors of 13.8, 60.0, 138, 165 convert signals stated in
engineering units into per unit values.  The offset value assigned to channel zero shifts the time origin of the test
recording by 1.35 seconds to align its start with the zero time of the simulation.
 
h)           The argument <nrec> must be specified.  rpli reads records from the input file until <nrec> records have been
read or until the end of the file is reached.
 
i)        The argument <ndec> must be specified.  <ndec> must be greater than zero.  rpli reads every <ndec>-th record
from the the file.
 
j)        The argument <scale> must be specified.  If <scale> is zero data is read into the pldat[0].data storage and is left
unchanged.  If <scale> is nonzero data is read into the array and then scaled and offset by the scale and ofset
values in records 3 and 4 of the file.  The scaling rule is
 
            <scaled value> = (<unscaled value> - <ofset>)/<scale>
 
k)       The maximum and minimum values <min> and <max> are used by the dynamic model, plnow, as the upper and
lower plotting limits when the played-in data is forwarded to the channel output file.
 
l)   Each played in data channel is forwarded by the plnow model to the output channel file if, and only if the flag
<plot> for that channel is nonzero.
Command: rpole (from tlc:Import Pole)

     
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

    Note that rpti is executed via an epcl in an interactive


mode.
Arguments:    
     
Function:   Reads a PTI format load flow data file

     
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
     

Function:   Reads PTI short circuit sequence data from a file

     

Prerequisites:   must contain valid negative and zero sequence data in


the format given below
 
 

 
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
     

Prerequisites:   Valid load flow data in working case if flag is zero.


 
 

 
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)

  ttiea (from tabr:TieLineArea)

     

EPCL:   @return = ttiea()

    @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
     

Function:   Display tie line flows between connecting areas

     

Prerequisites:   Valid solved load flow data in working case


 
 

 
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)

  ttiez (from tabr:)

     

EPCL:   @return = rtiez("<report>","<append>","<select>")

    @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()

    @return = 0  for success

            = -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)
 
     

EPCL:   @return = rwsc("<file>","<flag>")

     
Arguments: <file> Name of file to read input from
  <flag> New case flag 1=base case, 0=append data
     
     
     

Function:   Reads a WSCC Format load flow data file

     

Prerequisites:   <file> must be a complete WSCC format data file


 
 

 
 
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)

  tzone (from tabr:)

     
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

     

Prerequisites:   Valid solved load flow data in working case


 
 

 
 
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>")

    @return = 0  for success

    = -1 for failure

     
Arguments: <file> Name of history file
     

Function:   Store and retrieve history files

     

Prerequisites:   Working case must contain valid data for SAVF. 


<file> must be a valid history file for GETF.
 
 

 
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

  <pl> mw load value and flag


  <ql> mvar load value and flag
  <pg> mw gen. value and flag
  <qg> mvar gen. value and flag
  <opts> Continuous string of numbers specifying the 5 options for scaling loads/gens as well as generation
scaling algorithms
 
Function:   Scales load and generation in one or more areas/zones/buses/owners/balancing authorities
     

Prerequisites:   Valid load flow data in working case


 
 

 
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  

     

EPCL:   @return = scan("<bus id>","<destination>")

     
Arguments: <bus id> Identifier of primary bus
  <dest> report destination (scrn,print or filename)

     

Function:   Display system connections in vicinity of primary bus

     

Prerequisites:   Valid load flow data in working case


 
 
scan provides a quick and easy way to look at a bus, switch a system element, or edit a data record through a graphic
display of bus connections.  scan can display its "report" on the CRT screen or send it to the printer or pen plotter. 
The selection of report destination is made through the argument panel.
 

 
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.
 

----- Menu Items -----


 
Pull down menus section ( File, Edit, Colors, Draw, Tables, Commands, View and Help ) are the same as olgr.
 
·         If you select a menu item, these are the available options:
 
Redraw
 
The redraw option redraws the diagram to the screen.
 
Equip
 
The equip option displays all equipment connected to any bus displayed on the screen.
 
Units
 
The units option displays a menu of line annotation (first five items) and color choices (last two items0 for the
diagram.  The choices are (1) MW/MVAR (@) MW/% rating (3) MVA/amps ($) R/X (5) MVA/% rating (6) AMPS/%
and (7) RATE MVA/AMPS (8) Color by limits or (9) Color by kV level.  The star indicates the choices currently
active.
 
Rating
 
The rating option displays the 8 ratings with a star in front of the rating number that is being compared.
 
Solve
 
The solv option displays the solution panel.  From here you can solve the load flow case as if you had invoked the soln
command from the main menu.  When the solution is completed the diagram is refreshed on the CRT screen.
 
Gedi/Switch
 
The gedi/switch option toggles between drawing modification (gedi) and switching options (switch).
 
OneLine
 
The OneLine option retrieves the last drawing coordinate file.  It then executes switch.
 
Scan
 
The scan option allows you to select a different bus for the focus bus.  You may select from the list or type in a new
bus in the blank box that adds that bus to the list.
 
 

----- Highlight Components -----


 
Each component can be highlighted in yellow by dragging the mouse over any part of a component; then left mouse
click to get a menu.
 
·         If selecting a bus the available options are:
 
EDIT
 
The edit option invokes the record editor for the data record describing the selected component.
 
SCAN
 
The scan option changes the display to scan on the bus selected.
 
MISM
 
The mism option displays the MW and MVAR mismatch.
 
ISOL
 
The isol option disconnects all branches and other equipment connected to the selected bus, thereby isolating the bus.
The bus type remains unchanged. The isolated bus does not take part in the network solutions.
 
LIST
 
The list option lists all components connected to a selected bus and make it the new focus bus.
 
DETAIL
 
The detail option shows the bus number, name, kV, p.u. voltage, and angle
 
·         All other components have these available options:
 
EDIT
 
The edit option invokes the record editor for the data record describing the selected component.
 
SWITCH
 
The switch option changes the status of the selected component from 1 (on) to 0 (off) or vice versa.
 
SWITCH & SOLVE
 
The switch & solve option changes the status of the selected component from 1 (on) to 0 (off) or vice versa. It then
attempts to solve the load flow case.
 
 
Command: scap (from tabr:SeriesCap)

     

EPCL:   @return = scap()

     
Arguments:   List series capacitors and line flows
     

Function:    

     

Prerequisites:   Valid solved load flow data in working case


 
 

 
 
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:    
     

Function:   Initialize Fault Analysis Subsystem

     

Prerequisites:   Valid load flow data in working case


 
 
The scsc command can be accessed from the PSLF main panel
 

 
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
     

Prerequisites:   Valid load flow data in working case


 
 

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.
 

Monitoring of Currents and Voltages


 
scsf always displays the voltages and currents at the faulted bus, bus 3, and all buses connected directly to it, buses A, B,
C, D.  scsf does not automatically monitor buses that are more than one branch remote from the faulted bus.  Instead, scsf
monitors, in addition to the adjacent buses, up to nine buses whose numbers are specified by the user.  For example, if
buses E and F are tap points on the line D5, it would be useful to monitor conditions at bus 5, but of no value to monitor
points E and F.  In this case bus 5 would be entered as a monitored bus in the parm:fault for faults at bus A.
 
scsf displays currents in the fault path and currents in branches connected to the monitored bus.  When the fault is at bus
A, currents are monitored at the locations shown by arrows in Figure scsf -1.  When the fault is at a branch end, scsf
shows the fault current that isflowing into the branch at the faulted bus, not the current (at the far end of the branch) in the
fault itself.  Note that the current flowing into the end-faulted branch will not be identical to the current in the fault if the
branch is a transformer, has a large charging capacitance, or has line-connected shunt reactors/capacitors.
 
 
Fault Impedance
 
scsf uses a fault impedance (rf + jxf) from faulted point on the system network to the fault merge point and a different
impedance (rg + jxg) from the fault merge point to ground.  The default value of both of these impedances is (0 + j0). 
The default values can be changed through the parm:fault panel.  These fault impedances are specified in ohms.
 
In short circuit work, the 3-phase fault impedance, (rf + jxf) is usually an estimate of arc impedance or is zero, presuming
that 3-phase faults usually involve conductor contact or a very fully developed flash-over.  The line-to-ground fault
impedance will frequently be the estimated grounding impedance of a tower footing, substation earth mat, or other path by
which fault current goes to far ground.
 
scsf can be used for applications other than short circuit calculation by using appropriate values for (rf + jxf).  For
example, the voltage dip produced by starting a motor can be calculated by setting the 3-phase fault impedance, (rf + jxf)
to the locked rotor impedance of the motor (in ohms).
 
The value of (rg + jxg) is usually the tower footing or station grounding resistance through which fault current must flow
to reach far ground.  This value can be as low as a very few ohms where grounding is good, but can be hundreds of ohms
in difficult grounding situations.  Where (rg +j xg) represents the impedance of a ground contact, xg is usually taken as
zero; xg could be given a non-zero value to represent a grounding reactor that is not otherwise represented in a
transformer or generator model.
 
 

Display of Fault Current


 
scsf allows you to select display of either Ia or 3Io in results for all faults.  The L-G fault is always applied to the "a"
phase.  Ia and 3Io are identical in the fault itself but are not identical at points in the network that are not directly in series
with the fault.  The L-L and L-L-G fault are always applied to the "bc" phase
 
The selection is made by setting the "Current Flag" in the parm.fault command. If Ia is selected, all current outputs show
Ia, and vice versa.  If you want to know both Ia and 3Io, you must run scsf twice.  The apparent impedances are a-phase
values when Ia is shown and zero sequence values when 3Io is shown.
 
 
SCSF Report
 
The scsf report contains a page for each fault calculation.  Figure scsf-2 is an annotated page of this output.  The scsf
report follows these rules:
 
·         The number of fault calculations performed is dependent on the fault type, branch out and branch end flags.
 
·         Current values are either 3Io or Ia, depending on the setting of the   "Current Flag" in the parm.fault panel
 
·         Voltages values are always for a-phase to neutral voltage, regardless of the current flag
 
·         3Io current values are always accurate.  Ia values and voltage values are accurate at locations separated from the
fault by delta-wye transformers, only if transformer phase shift is properly modeled.
 
·         Currents shown flowing "to" a bus are measured at the "far" end of the branch in which they flow.  For example,
current flowing "to" bus 3 in branch 3B of Figure scsf-1 is measured at bus B, and current flowing to bus 5 in
branch E5 is measured at bus E.
 
·         Currents at the two ends of a branch are "identical" only for lines without charging capacitance or line-connected
shunts.  Per unit values of current on the two sides of a transformer differ if the net per unit tap ratio is not unity. 
Amp current values differ in accordance with the real overall turns ratio of a transformer.
 
·         Apparent impedances are given as
 
Van/Ia if the Current display is chosen to be Ia
Vo/3Io if the Current display is chosen to be 3Io
 
Apparent impedances are shown in ohms.  Apparent impedances are calculated only for branches whose current exceeds
0.005 per unit.
 
 
Short Circuit Log File
 
Each execution of scsf writes a summary of its fault current results into a log file like this:
 
         Fault Current,                          Amps                1
 
At 23 CENTRAL 230.0                 9126.76  8147.81
At 23 CENTRAL 230.0 Branch open     ck 1 to 21 HAYWARDS 230.0 8546.37 7616.64
At 23 CENTRAL 230.0 Branch end fault ck 1 to 21 HAYWARDS 230.0 1364.93 857.46
At 23 CENTRAL 230.0 Branch open     ck 2 to 21 HAYWARDS 230.0 8546.37 7616.64
At 23 CENTRAL 230.0 Branch end fault ck 2 to 21 HAYWARDS 230.0 1364.93 857.46
At 23 CENTRAL 230.0 Branch open     ck 1 to 22 WILTON   230.0 7710.54 6999.48
At 23 CENTRAL 230.0 Branch end fault ck 1 to 22 WILTON   230.0 5251.07 4088.73
At 23 CENTRAL 230.0 Branch open     ck 1 to 24 WEST     230.0 9103.15 6450.83
At 23 CENTRAL 230.0 Branch end fault ck 1 to 24 WEST    230.0 5877.38 3905.44
At 23 CENTRAL 230.0 Branch open     ck 1 to 25 NORTHE   230.0 9177.79 7949.60
At 23 CENTRAL 230.0 Branch end fault ck 1 to 25 NORTHE   230.0 5847.55 4378.66
At 23 CENTRAL 230.0 Branch open     ck 1 to 26 SOUTHE   230.0 9100.34 7722.28
At 23 CENTRAL 230.0 Branch end fault ck 1 to 26 SOUTHE   230.0 5858.51 4323.35
At 23 CENTRAL 230.0 Branch open     ck 1 to 28 CENTRAL   11.0 4247.61 4726.40
At 23 CENTRAL 230.0 Branch end fault ck 1 to 28 CENTRAL   11.0 3000.83 3292.73
 
At 26 SOUTHE  230.0             6329.36  5509.39
At 26 SOUTHE  230.0 Branch open      ck 1 to 23 CENTRAL  230.0 2293.93 2228.67
At 26 SOUTHE  230.0 Branch end fault ck 1 to 23 CENTRAL  230.0 2022.52 1829.00
At 26 SOUTHE  230.0 Branch open     ck 1 to 3710 SESUB   34.0 6244.60 5336.38
At 26 SOUTHE  230.0 Branch end fault ck 1 to 3710 SESUB   34.0 3030.34 2791.12
At 26 SOUTHE  230.0 Branch open     ck 2 to 3710 SESUB   34.0 6254.02 5347.79
At 26 SOUTHE  230.0 Branch end fault ck 2 to 3710 SESUB   34.0 3037.48 2798.40
At 26 SOUTHE  230.0 Branch open     ck 1 to 3713 SESUB  115.0 6329.36 5514.34
At 26 SOUTHE  230.0 Branch end fault ck 1 to 3713 SESUB  115.0  968.04  943.97
 
 
Each fault applied by scsf is identified by its "home" bus and the bus at the other end of the branch involved in the fault. 
The 3-phase and single phase fault current for each event are logged as shown.
 
Each execution of scsf writes/appends (determined by the append flag) to the previous log file whose name is always
scsf.log.
 
In EPCL mode the scsf command form is
 
 
@ret = scsf("sc.out","3",”1”,””,”” ,””,"1","6")
or
@ret = scsf("sc.out","3",”5”,”2”,”1 ” ,””,"1","6")
 
for a fault at bus 3 and monitored buses 1 and 6 with the results being written to a file named sc.out. Other short circuit
options, such as, line end faults, line out faults and type of fault are set prior to the scsf command execution.
 
fltpar[0].typereq = 3    /*6 double phase open, 5 single phase open, 4 double line ground fault, 3 phase fault , 1=1
phase, 2=2phase and 0 = all */
fltpar[0].br_endflg = 0   /* no branch end faults, 1= branch end faults     */
fltpar[0].br_outflg = 0   /* no branch out faults, 1= branch outage faults   */
 
 
Command: sel (from edit:sel)

     
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>  
     

Function:   Initiates epcl power system simulation language shell

     

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:    
     

Function:   Create a skeleton economic data file

     

Prerequisites:   Valid solved loadflow


 
 

 
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>")

    @return = 0  for success

            = -1 for divergence


        = -2 for not converged within
              maximum iterations
        = <-2 no swing bus or HVDC
              error
     
Arguments: <fs> =1  Flat start selector
     
     

Function:   Initiates and sets parameters for soln, sold and


ordr commands
     

Prerequisites:   Valid load flow data in working case


 
 

 
 
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>")

    @return = 0  for success

            = -1 for divergence


        = -2 for not converged within
              maximum iterations
        = <-2 no swing bus or HVDC
              error
     
Arguments: <fs> = 1  Flat start selector
     

     

Function:   Initiates and sets parameters for soln, sold and


ordr commands
     

Prerequisites:   Valid load flow data in working case


 
 
When PSLF is in menu mode, the load flow solution commands are initiated through the solv selection of the main
menu.  The solv selection raises a selection and parameters panel like this:
 

 
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
     

Function:   Sort tables according to specified field precedence

     

Prerequisites:   Table to be sorted should contain at least one record


 
 

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
   

   

Example @return = sort("busd.","003201","ffffff")

 
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)

     

EPCL:   @return = summ("<report>","<append>")

     
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
     

Function:   Display case summary report

     

Prerequisites:   Valid solved load flow data in working case


 
 

 
 
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:    
     

Function:   Displays load flow results in edit tables

     

Prerequisites:   See individual commands


 
 
tabr is used to display load flow results in edit tables which allow the user  to search, sort, graph, or perform other edit
functions prior to display or hard copy output.
 

 
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)

  rarea (from rept:Area Summary)

     

EPCL   @return = tarea( )

    @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

     

Function:   Display area totals and area interchange summary

     

Prerequisites:   Valid solved load flow data in working case


 
 

 
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:    
     

Function:   Display gated control device results

     

Prerequisites:   Valid solved load flow data in working case

     
 
 

 
 
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)

     

EPCL:   @return = titl(“<file>”)

     
Arguments: <file> Name of file or printer to receive output
     

Function:   Gives summary of load flow case title and size. 


Allows title and comments to be changed.
     

Prerequisites:   Valid load flow data in working case.


 
 

 
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  

     

EPCL:   @return = tlc()

     
Arguments: <file>  
     

Function:   Calculate Transmission Line Constants

     

Prerequisites:   Data in line, cond, pole and cabl tables


 

 
 
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)
     

EPCL:   @return = towner()

     
Arguments:    
     

Function:   Display owner totals

     

Prerequisites:   Valid solved load flow data in working case


 
 

 
 
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)

  rtiea (from rept:TieLineArea)

     

EPCL:   @return = ttiea()

    @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
     

Function:   Display tie line flows between connecting areas

     

Prerequisites:   Valid solved load flow data in working case


 
 

 
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:)

  rtiez (from rept:TieLineZone)

     

EPCL:   @return = rtiez("<report>","<append>","<select>")

    @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)

  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

     

Prerequisites:   Valid solved load flow data in working case


 
 

 
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
     

Function:   Display a user written edit table

     

Prerequisites:   Valid solved load flow data in working case and if


using extended records then directory pslfexr under
the current working directory.
 
 

 
 
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
     

Function:   Sort a user written edit table

     

Prerequisites:   Valid solved load flow data in working case and if


using extended records then directory pslfexr under
the current working directory.
 
 

 
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

  <loadst> All load models in service flag


  <sflg> Arrange by area and sort by model type
  <lid> Use long id flag
  <sel> Select model flag for selective output
     
Function:   Writes a PSDS dynamics data input file in GE format for subsequent use by the
rdyd command
     
Prerequisites:   Complete dynamic simulation setup in working case
 
 

 
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  

     

EPCL:   @return = editdy("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  

     

EPCL:   @return = editdy("edic",”<name>”)

     

Arguments: <file> Name of error report file made by init

     

Function:   Edit dynamic simulation generator internal and boundary conditions

     

Prerequisites:   Load flow and dynamic simulation data in working case

 
 
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  

     

EPCL:   @return = editdy("eder")


     
Arguments:   Name of error report file made by init
     

Function:   Display dynamic simulation error report

     

Prerequisites:   Load flow and dynamic simulation data in working


case - case must have been initialized by init
 
 
eder displays the error report produced by the init command and allows you to sort, select, and classify the error
messages with the select/sort/search functions of the table editor.  eder must be given the name of the error report file
produced by the dynamic simulation initialization command, init.  This file contains records indicating likely data
errors in the dynamic simulation set up; eder provides a convenient way of examining the file but does not allow you
to change it.  Data changes made with the table editor in
eder are ignored.
 
The important items in the eder table are its first two columns, type and severity
 
The type; column indicates the type or origin of the error message and the severity; column indicates whether it must
be corrected in order for a valid simulation run to be made.
 
The normal meanings of type; and severity; are:
 
Increasing severity number indicates increasing likelihood of the error causing problems in the dynamic simulation. 
For example, a type 4 "Duplicate models" message with severity of 1 often indicates an intended condition that is not
an error at all, while a type 3 error with severity equal to 9 is an almost certain indication that simulations would be
invalid.  Accordingly, the first step in examining the eder table is often to sort it by decreasing severity with the F11
key.
 

 
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  

     

EPCL:   @return = editdy("model_name")

     

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)

     

EPCL:   @return = bint()

     
Arguments:    
     

Function:   List transformer flows in an edit table

     

Prerequisites:   Valid solved load flow data in working case


 
 

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
 

GENERATOR TABLE DESCRIPTION


 
HEADING MEMBER  
     
BUS 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 generator identifier enclosed in
quotation
ST .st Generator status 1=in service; 0=out of service
R1 .z1[r]  * Generator Positive Sequence resistance ( Pu )
X1 .z1[1]  * Generator Positive Sequence reactance ( Pu )
R2 .z2[r]  * Generator Negative Sequence resistance ( Pu )
X2 .z2[i]  * Generator Negative Sequence reactance ( Pu )
R0 .z0[r]  * Generator Zero Sequence resistance ( Pu )
X0 .z0[i]  * Generator Zero Sequence reactance ( Pu )
MBASE .mbase Generator base                 (MVA)
AREA .area Generator area number ( from 0 to 999 )
ZONE .zone Generator zone number ( from 0 to 999 )
 
 
* from the gensq table ( eg. gensq[].z1[r], gensq[].z1[i] or gensq[].r2[r] )
 
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 NAME busd[@gbus].busnam
generator bus base kv KV busd[@gbus].basekv
 
 
 
 
Table: load0
 
  LOAD ZERO SEQUENCE TABLE DESCRIPTION
 
HEADING MEMBER  
   
BUS 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
G1 .y1[r] *    Postive Sequence impedance         (MW)
B1 .y1[i] *    Postive Sequence impedance         (MVAR)
G2 .y2[r] *    Negative Sequence impedance        (MW)
B2 .y2[i] *    Negative Sequence impedance        (MVAR)
G0 .y0[r] Zero Sequence impedance            (MW)
B0 .y0[i] Zero Sequence impedance            (MVAR)
AREA .area Load area number ( from 0 to 999 )
ZONE .zone Zone number ( from 0 to 999 )
 
 
·         from the loadsq table ( eg. secdd0[].zsecr, secdd0[].zsecx or secdd0[].bsec )
 
For more information on Loads read Chapter 3 - Section 3.6.
 
For a complete listing of this table see Table 5.2 - Load Data and Loadsq 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: seccp0
 

  MUTUAL COUPLING TABLE DESCRIPTION


 
HEADING MEMBER  
     
FROM see Note 1 First Circuit 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 First Circuit from bus base voltage    (kV)
TO see Note 2 First Circuit 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 First Circuit to bus base voltage      (kV)
CK .ckij First Circuit Two character circuit identifier
enclosed in quotation marks
SE .nsecij First Circuit Section number (1-9 in ascending
order beginning at "from" end)
MFROM see Note 3 Second Circuit from bus number ( from 1 to
9999999)
MFNAME see Note 3 Alphanumeric string containing 1 to 12 characters
and at least one non- numeric character within
quotation marks
MFKV- see Note 3 Second Circuit from bus base voltage    (kV)
MTO see Note 4 Second Circuit to bus number ( from 1 to 9999999)
MTNAME see Note 4 Alphanumeric string containing 1 to 12 characters
and at least one non- numeric character within
quotation marks
MTKV see Note 4 Second Circuit to bus base voltage      (kV)
MCK .ckkl Second Circuit Two character circuit identifier
enclosed in quotation marks
MSE .nseckl Second Circuit Section number (1-9 in ascending
order beginning at "from" end)
(-Rm-PU .zmr Mutual Coupling resistance    (Pu)
Xm-PU) .zmx Mutual Coupling reactance     (Pu)
(-Gm-PU- .ymr Mutual Coupling Conductance   (Pu)
--Bm-PU) .ymi Mutual Coupling Susceptance   (Pu)
DIS-K- .dkla Distance from the "k" bus     (Pu)
DIS-L- .dklb Distance from the "l" bus     (Pu)
 
 
For more information on Mutual Coupling read command RSEQ
 
For a complete listing of this table see Table 5.2 - Seccp0 Data
 
 
Note 1: to reference the "from" bus identifier in epcl use the following:
 
from bus number FROM @fr = seccp0[].i
    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 = seccp0[].j
    busd[@to].extnum
to bus name TNAME busd[@to].busnam
to bus base kv TKV busd[@to].basekv
 
 
Note 3: to reference the "from" bus identifier in epcl use the following:
 
from bus number MFROM @fr = seccp0[].k
    busd[@fr].extnum
from bus name MFNAME busd[@fr].busnam
from bus base kv MFKV busd[@fr].basekv
 
 
Note 4: to reference the "to" bus identifier in epcl use the following:
 
to bus number MTO @to = seccp0[].l
    busd[@to].extnum
to bus name MTNAME busd[@to].busnam
to bus base kv MTKV busd[@to].basekv
 
 
 
 
Table: secdd0
 
  SECDD0 - BRANCH ZERO SEQUENCE 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 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
(-R1-PU- .zsecr Branch section positive sequence resistance (Pu or
Ohms)
X1-PU) .zsecx Branch section positive sequence reactance  (Pu or
Ohms)
B1-PU .bsec Branch section positive sequence susceptance(Pu or
Ohms)
(-R0-PU .zsecr * Branch section zero sequence resistance   (Pu or
Ohms)
X0-PU) .zsecx * Branch section zero sequence reactance   (Pu or
Ohms)
B0-PU- .bsec * Branch section zero sequence susceptance    (Pu or
Ohms)
AREA .area Shunt area  assignment ( from 0 to 999 )
ZONE .zone Shunt zone  assignment ( from 0 to 999 )
 
 
* from the secdd0 table ( eg. secdd0[].zsecr, secdd0[].zsecx or secdd0[].bsec )
 
For more information on Lines read Chapter 3 - Section 3.2.
 
For a complete listing of this table see Table 5.2 - Secdd0 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: shunt0
 
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
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
G1-PU- .g Actual Positive Sequence shunt conductance (pu)
B1-PU .b Actual Positive Sequence shunt susceptance (pu)
G0-PU .g * Actual Zero Sequence shunt conductance     (pu)
B0-PU .b * Actual Zero Sequence shunt susceptance     (pu)
AREA   .area Shunt area  assignment ( from 0 to 999 )
ZONE .zone Shunt zone  assignment ( from 0 to 999 )
 
 
* from the shunt0 table ( eg. shunt0[].g or shunt0[].b )
 
For more information on Shunts read Chapter 3 - Section 3.7.
 
For a complete listing of this table see Table 5.2 - Shunt0 Data.
 
Note 1: to reference the shunt "from" bus identifier in epcl use the following:
 
Shunt bus number   @fr = shunt[].ifrom
  FROM 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
 
 
 
 
Table: svd0
 
  SVD0 TABLE DESCRIPTION
 
HEADING MEMBER  
     
BUS see Note 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=step, 2=continuous, 3=all
or nothing, 4=step with a dead band
RBUS see Note 2 Number of bus whose voltage is controlled by this
svd
RNAME see Note 2 Regulating bus name enclosed in quotation marks
RKV see Note 2 Regulating bus base voltage
AREA .area Area  assignment ( from 0 to 999 )
ZONE .zone Zone  assignment ( from 0 to 999 )
BACT .b Actual Positive Sequence shunt susceptance (Pu)
B0ACT .b * Actual Zero Sequence shunt susceptance (Pu)
 
 
* from the svd0 table ( eg. svd0[].b )
 
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 @vbus = svd[].ibus
    busd[svd[@vbus].ibus].extnum
Svd bus name NAME 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 number RBUS @reg = svd[].kreg
    busd[@reg].extnum
Svd regulating bus name RNAME busd[@reg].busnam
Svd regulating bus base kv RKV busd[@reg].basekv
 
 
 
Table: tran0
 
  TRAN0 TABLE DESCRIPTION
 
HEADING MEMBER  
     
FROM- see Note 1 From bus number ( from 1 to 9999999)
FNAME see Note 1 Alphanumeric string containing 1 to 8 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 8 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
(R1 .zpsr Resistance primary to secondary  (Pu on tbase or Ohms)
X1) .zpsx Reactance  primary to secondary  (Pu on tbase or Ohms)
(R0 .zpsr * Resistance primary to secondary  (Pu on tbase or Ohms)
X0) .zpsx * Reactance  primary to secondary  (Pu on tbase or Ohms)
TP .typep * Primary   winding type  ( 1 = grounded, 2 = ungrounded )
TS  .types * Secondary winding type  ( 1 = grounded, 2 = ungrounded )
T-BASE .tbase Transformer base                   (MVA)
TAPP .tapp  
ANGLE .angl  
AREA   .area Transformer area number ( from 0 to 999 )
ZONE .zone Transformer zone number ( from 0 to 999 )
 
 
* from the tran0 table ( eg. tran0[].zpsr, tran0[].zpsx or tran0[].typep )
 
For more information on Transformers read Chapter 3 - Section 3.3.
 
For a complete listing of this table 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].busman
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 FROM @tt = tran[].itert
    busd[@tt].extnum
tert bus name FNAME busd[@tt].busnam
tert bus base kv FKV busd[@tt].basekv
 
 
 
 
Command: curv (from Other:econ:Edit Curve)

     
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
 

  SUBSTATION TABLE DESCRIPTION


 

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
 

  VOLTAGE SOURCE CONVERTER TABLE DESCRIPTION


 

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

Description Load voltage/frequency dependence model

Prerequisites: Nominal voltage/frequency values of load


contained in load flow tables and initial
condition load flow solved

Inputs:

Invocation: [wlwscc] [<n>] {<name> <kv>} <id>:


or [alwscc]
or [blwscc]
or [zlwscc]

Parameters:

EPCL Default
Variable Data Description

area 0.0 Filter time constant in seconds (blwscc) or area number


(alwscc) or zone number (zlwscc) or flag number (wlwscc)
p1 0.0 Constant impedance fraction, p.u.
q1 1.0
p2 1.0 Constant current fraction, p.u.
q2 0.0
p3 0.0 Constant power fraction, p.u.
q3 0.0
p4 0.0 Frequency dependent power fraction, p.u.
q4 0.0
lpd 0.0 Real power frequency index, p.u
lqd 0.0 Reactive power frequency index, p.u.

Notes:

a) These models implement one of two load models as follows:

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))

This matches the load characteristic of the WSCC LA load model.

If p4 and q4 are zero:

P = Po (p1v2 + p2v + p3) (1 + lpd f)


Q = Qo (q1v2 + q2v + q3) (1 + lqd f)

This matches the load characteristic of the WSCC LB load model.

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.

In all cases the load fractions must sum to unity

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 first parameter has a separate meaning for each model.

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


wlwscc
zlwscc
Bus Voltage alwscc P+jQ
blwscc
Model Name: zlwscc
alwscc
blwscc
wlwscc

Description Load voltage/frequency dependence model

Prerequisites: Nominal voltage/frequency values of load


contained in load flow tables and initial
condition load flow solved

Inputs:

Invocation: [zlwscc] [<n>] {<name> <kv>} <id>:


or [alwscc]
or [blwscc]
or [wlwscc]

Parameters:

EPCL Default
Variable Data Description

area 0.0 Filter time constant in seconds (blwscc) or area number


(alwscc) or zone number (zlwscc) or flag number (wlwscc)
p1 0.0 Constant impedance fraction, p.u.
q1 1.0
p2 1.0 Constant current fraction, p.u.
q2 0.0
p3 0.0 Constant power fraction, p.u.
q3 0.0
p4 0.0 Frequency dependent power fraction, p.u.
q4 0.0
lpd 0.0 Real power frequency index, p.u
lqd 0.0 Reactive power frequency index, p.u.

Notes:

a) These models implement one of two load models as follows:

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))

This matches the load characteristic of the WSCC LA load model.

If p4 and q4 are zero:

P = Po (p1v2 + p2v + p3) (1 + lpd f)


Q = Qo (q1v2 + q2v + q3) (1 + lqd f)

This matches the load characteristic of the WSCC LB load model.

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.

In all cases the load fractions must sum to unity

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 first parameter has a separate meaning for each model.

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:

Invocation: shaft5 [<n>] {<name> <kv>} <id> :

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:

a) Call GE for details.

Output Channels:

Record
Level Name Description

none
Block Diagram:

kex kgt1 Turbine1 kt12 Turbine2 kt23 Turbine3


Exciter Generator
ht1 ht2 ht3
hex hg
dt2 dt2 dt3
 
Command: end  

     
EPCL:    

     
Arguments:   none
     

Function:   Terminates a PSLF one-line diagram, short circuit,


EPCL command language processor or dynamic
simulation sub-system
     

Prerequisites:   Work in the PSLF sub-system is complete


 
 
END is used to terminate work, close output files, and leave one of the PSLF sub-systems.
 
HELP
 
Hitting the F1 function key when a button is highlighted displays the manual page for that topic.
 
THE PSLF LOAD FLOW DATA EXPORT/IMPORT FILE
 

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.

6.   SAMPLE DATA FILE


The following example dynamics data file illustrates the formats of the file and its various records:
#   dynamics data written Thu Oct 19 11:43:21 2006
#   from saved case filename [psec-sample.dyd]
#
#   title
# Example PSLF Dynamic Data File                 
#
netting
   800 "FRASR345" 345.00
#
lodrep
wlwscc   600 "PLTVLLEY" 345.00 "1 " : #9 "flag" 0.0 "p1" 0.0 "q1" 1.000000 "p2" 1.000000 "q2" 0.0 "p3" 0.0 "q3" 0.0 "p4" 0.0 "q4" 0.0 /
 "lpd" 0.0 "lqd" 0.0
blwscc    3100 "MASS 765" 765.00 "dc" : #9 "tf" 0.0 "p1" 0.0 "q1" 0.0 "p2" 1.000000 "q2" 1.000000 "p3" 0.0 "q3" 0.0 "p4" 0.0 "q4" 0.0 /
"lpd" 0.0 "lqd" 0.0
#
#   area 1 [CENTRAL HUDSON                  ]
#
models
genrou     400 "ROSETON " 345.00 "1 " : #9 mva=1220.0000 "tpdo" 4.0000 "tppdo" 0.0350  "tpqo" 0.5300 "tppqo" 0.0620 "h" 2.8000 /
"d" 3.0000 "ld" 1.7700 "lq" 1.6900 "lpd" 0.2484 "lpq" 0.4400 "lppd" 0.1940 "ll" 0.1390 "s1" 0.1052 "s12" 0.5551 "ra" 0.0000 /
"rcomp" 0.0000 "xcomp" 0.0000 "accel" 0.0000
exac3      400 "ROSETON " 345.00 "1 " : #9 "tr" 0.0 "tb" 0.0 "tc" 0.0 "ka"  72.6000 "ta" 0.017000 "vamax" 1.000000 "vamin" -0.950000 /
"te"   1.9450 "klv" 0.167000 "kr"   3.9400  "kf" 0.143000 "tf" 1.000000 "kn" 0.050000 "efdn"   1.7200 "kc" 0.171700 "kd" 0.567000 /
"ke" 1.000000 "vlv" 0.661000 "e1"   3.0187 "se1" 0.096800 "e2"   4.0250 "se2"   1.1950 "ifmx"  99.0000
ieeeg1     400 "ROSETON " 345.00 "1 " : #9 mwcap=1200.0000 "k"  20.0000 "t1" 0.150000 "t2" 0.0 "t3" 0.200000 "uo"  99.0000 "uc" -99.0000
/
"pmax"   1.0500 "pmin" 0.200000 "t4" 0.050000 "k1" 0.280000 "k2" 0.0 "t5"   5.1100 "k3" 0.280800 "k4" 0.0 "t6" 0.500000 "k5" 0.439200 /
"k6" 0.0 "t7" 0.0 "k7" 0.0 "k8" 0.0 "db1" 0.0 "eps" 0.0 "db2" 0.0 "gv1" 0.0 "pgv1" 0.0 "gv2" 0.0 "pgv2" 0.0 "gv3" 0.0 "pgv3" 0.0 "gv4"
0.0 /
 "pgv4" 0.0 "gv5" 0.0 "pgv5" 0.0 "gv6" 0.0 "pgv6" 0.0
#
#   area 2 [CON ED/LILCO                    ]
#
models
genrou     500 "NYC/LI " 345.00 "1 " : #9 mva=10000.0000 "tpdo" 4.0000 "tppdo" 0.0310 "tpqo" 0.4800 "tppqo" 0.0560 "h" 2.8500 "d" 3.0000
/
"ld" 1.8200 "lq" 1.7400 "lpd" 0.2900 "lpq" 0.5000 "lppd" 0.2250 "ll" 0.1650 "s1" 0.0970 "s12" 0.4682 "ra" 0.0000 "rcomp" 0.0000 /
"xcomp" 0.0000 "accel" 0.0000
ieeet1     500 "NYC/LI " 345.00 "1 " : #9 "tr" 0.0 "ka"  50.0000 "ta" 0.020000 "vrmax" 1.000000 "vrmin" -1.000000 "ke" 0.0 "te" 0.582000
/
"kf" 0.093000 "tf"   1.0200 "spare" 0.0 "e1"   2.8600 "se1" 0.041000 "e2"   3.8200 "se2" 0.322000
ieeeg1     500 "NYC/LI " 345.00 "1 " : #9 mwcap=10000.0000 "k"  20.0000 "t1" 0.0 "t2" 0.0 "t3" 0.150000 "uo" 99.0000 "uc" -99.0000 /
 "pmax" 0.930000 "pmin" 0.200000 "t4" 0.500000 "k1" 0.300000 /
 "k2" 0.0 "t5"   3.0000 "k3" 0.300300 "k4" 0.0 "t6" 0.0 "k5" 0.399700 "k6" 0.0 "t7" 0.0 "k7" 0.0 "k8" 0.0 /
 "db1" 0.0 "eps" 0.0 "db2" 0.0 "gv1" 0.0 "pgv1" 0.0 "gv2" 0.0 "pgv2" 0.0 "gv3" 0.0 "pgv3" 0.0 "gv4" 0.0 /
 "pgv4" 0.0 "gv5" 0.0 "pgv5" 0.0 "gv6" 0.0 "pgv6" 0.0
fmeta      600 "PLTVLLEY" 345.00 "1 " : #9 "flag 0all 1a 2z" 0.0 "num" 0.0 "tf" 0.050000
vmeta      600 "PLTVLLEY" 345.00 "1 " : #9 "flag 0all 1a 2z" 0.0 "num" 0.0
#
#   area 4 [NYPA                            ]
#
models
gensal    3100 "MASS 765" 765.00 "1 " : #9 mva=1970.0000 "tpdo" 5.0000 "tppdo" 0.0500 "tppqo" 0.0500 "h" 3.1000 "d" 3.0000 "ld" 0.9280 /
 "lq" 0.6250 "lpd" 0.3500 "lppd" 0.3150 "ll" 0.0928 "s1" 0.1452 "s12" 0.6533 "ra" 0.0000 "rcomp" 0.0000 "xcomp" 0.0000
gensal    3200 "GILB 345" 345.00 "1 " : #9 mva=556.0000  "tpdo" 9.0000 "tppdo" 0.1200 "tppqo" 0.3390 "h" 5.5800 "d" 3.0000 "ld" 0.9300 /
 "lq" 0.5500 "lpd" 0.3000 "lppd" 0.2000 "ll" 0.1300 "s1" 0.1642 "s12" 0.4322 "ra" 0.0000 "rcomp" 0.0000 "xcomp" 0.0000
gensal    3300 "NIAG 345" 345.00 "1 " : #9 mva=4770.0000 "tpdo" 7.0000 "tppdo" 0.0390 "tppqo" 0.0390 "h" 5.0900 "d" 3.0000 "ld" 0.9610 /
 "lq" 0.5870 "lpd" 0.2920 "lppd" 0.2250 "ll" 0.0960 "s1" 0.1000 "s12" 0.4150 "ra" 0.0000 "rcomp" 0.0000 "xcomp" 0.0000
genrou    3400 "PLAT 115" 115.00 "1 " : #9 mva=350.0000  "tpdo" 10.5000 "tppdo" 0.0220 "tpqo" 0.4630 "tppqo" 0.0450 "h" 5.9200 "d"
3.0000 /
"ld" 2.1160 "lq" 2.0170 "lpd" 0.3020 "lpq" 0.4570 "lppd" 0.2080 "ll" 0.1780 "s1" 0.0500 "s12" 0.2000 "ra" 0.0000 "rcomp" 0.0000 /
"xcomp" 0.0000 "accel" 0.0000
exdc1     3100 "MASS 765" 765.00 "1 " : #9 "tr" 0.0 "ka"  25.0000 "ta" 0.200000 "tb" 0.0 "tc" 0.0 "vrmax" 1.000000 "vrmin" -1.000000 /
"ke" 0.0 "te"   1.1644 "kf" 0.186300 "tf1" 1.000000 "tf2" 0.0 "e1"   1.4491 "se1" 0.159300 "e2"   1.9322 "se2" 0.621100
ieeet1    3200 "GILB 345" 345.00 "1 " : #9 "tr" 0.050000 "ka" 50.0000 "ta" 0.060000 "vrmax" 1.000000 "vrmin" -1.000000 "ke" 0.0 "te"
0.327000 /
"kf" 0.052000 "tf" 1.000000 "spare" 0.0  "e1"   2.5000 "se1" 0.096200 "e2"   3.6000 "se2" 0.308900
ieeet1    3300 "NIAG 345" 345.00 "1 " : #9 "tr" 0.060000 "ka" 23.1000 "ta" 0.200000 "vrmax" 1.000000 "vrmin" -1.000000 "ke" 0.0 "te"
0.500000 /
"kf" 0.087000 "tf" 0.350000 "spare" 0.0  "e1"   2.6000 "se1" 0.090000 "e2"   3.5000 "se2" 0.350000
exst1     3400 "PLAT 115" 115.00 "1 " : #9 "tr" 0.0 "vimax" 0.200000 "vimin" -0.200000 "tc" 0.745000 "tb" 10.0000 "ka"   200.00 "ta"
0.017000 /
"vrmax"   4.0500 "vrmin" 0.0 "kc" 0.129900  "kf" 0.0 "tf" 1.000000 "tc1" 0.0 "tb1" 0.0 "vamax"  99.0000 "vamin" -99.0000 "xe" 0.0 /
"ilr"  99.0000 "klr" 0.0
hygov     3100 "MASS 765" 765.00 "1 " : #9 mwcap=1970.0000 "rperm" 0.030000 "rtemp" 0.119000 "tr"   1.4860 "tf"   1.0500 "tg" 0.050000
/
 "velm" 0.111000 "gmax" 1.000000 "gmin" 0.0 "tw" 0.371400 "at"   2.0800 "dturb" 0.500000 "qnl" 0.352000 "ttrip" 0.0 "tn" 0.0 "tnp" 0.0 /
 "db1" 0.0 "eps" 0.0 "db2" 0.0 "gv0" 0.0 "pgv0" 0.0 "gv1" 0.0 "pgv1" 0.0 "gv2" 0.0 "pgv2" 0.0 "gv3" 0.0 "pgv3" 0.0 "gv4" 0.0 /
 "pgv4" 0.0 "gv5" 0.0 "pgv5" 0.0 "hdam" 1.000000 "bgv0" 0.0 "bgv1" 0.0 "bgv2" 0.0 "bgv3" 0.0 "bgv4" 0.0 "bgv5" 0.0 "bmax" 0.0 "tblade" 
99.0000
#
#   area 5 [NYSEG                           ]
#
models
genrou     800 "FRASR345" 345.00 "1 " : #9 mva=130.0000  "tpdo" 4.6100 "tppdo" 0.0500 "tpqo" 1.0000 "tppqo" 0.0500 "h" 3.8200 "d" 3.0000
"ld" 1.2300 /
 "lq" 1.1800 "lpd" 0.1200 "lpq" 0.3000 "lppd" 0.1000 "ll" 0.0870 "s1" 0.0464 "s12" 0.4387 "ra" 0.0000 "rcomp" 0.0000 "xcomp" 0.0000
"accel" 0.0000
genrou    1400 "MEYER230" 230.00 "1 " : #9 mva=230.0000  "tpdo" 3.9000 "tppdo" 0.0320 "tpqo" 1.0000 "tppqo" 0.0500 "h" 2.9100 "d" 3.0000
"ld" 1.5000 /
 "lq" 1.4200 "lpd" 0.2150 "lpq" 0.4500 "lppd" 0.1500 "ll" 0.1280 "s1" 0.1065 "s12" 0.5182 "ra" 0.0000 "rcomp" 0.0000 "xcomp" 0.0000
"accel" 0.0000
genrou    1500 "OAKDL230" 230.00 "1 " : #9 mva=290.0000  "tpdo" 5.9300 "tppdo" 0.0590 "tpqo" 1.5000 "tppqo" 0.2380 "h" 5.5500 "d" 3.0000
"ld" 1.3100 /
 "lq" 1.2900 "lpd" 0.1850 "lpq" 0.7470 "lppd" 0.1100 "ll" 0.0655 "s1" 0.1000 "s12" 0.8800 "ra" 0.0000 "rcomp" 0.0000 "xcomp" 0.0000
"accel" 0.0000
exdc4      800 "FRASR345" 345.00 "1 " : #9 "kr" 0.020000 "trh"  20.0000 "kv" 0.050000 "vrmax"   5.7000 "vrmin"  -5.0000 "te" 0.566000
"ke" 1.000000 /
 "e1"   3.3800 "se1" 0.068400 "e2"   4.5000  "se2" 0.266700
#
#   DATA OMITTED
#
#
list of out of service models
genrou     800 "FRASR345" 345.00 "1 " : 0
exdc4      800 "FRASR345" 345.00 "1 " : 0
ieeeg1     800 "FRASR345" 345.00 "1 " : 0
#
#  template for PSLF dynamic models
#
# gensal : tpdo tppdo tppqo h d ld lq lpd lppd ll s1 s12 ra rcomp xcomp
# genrou : tpdo tppdo tpqo tppqo h d ld lq lpd lpq lppd ll s1 s12 ra rcomp xcomp accel
# sexs : tatb tb k te emin emax kc   tc   efdmin efdmax tr
# exdc1 : tr ka ta tb tc vrmax vrmin ke te kf tf1 tf2 e1 se1 e2 se2
# exst1 : tr vimax vimin tc tb ka ta vrmax vrmin kc kf tf tc1 tb1 vamax vamin xe ilr klr
# exst3 : tr vimax vimin kj tc tb ka ta vrmax vrmin kg kp ki efdmax kc xl vgmax angp
# ieeet1 : tr ka ta vrmax vrmin ke te kf tf spare e1 se1 e2 se2
# exdc4 : kr trh kv vrmax vrmin te ke e1 se1 e2 se2
# exac3 : tr tb tc ka ta vamax vamin te klv kr kf tf kn efdn kc kd ke vlv e1 se1 e2 se2 ifmx
# hygov : rperm rtemp tr tf tg velm gmax gmin tw at dturb qnl ttrip tn tnp db1 eps db2 gv0 pgv0 gv1 pgv1 gv2 pgv2 gv3 pgv3 gv4 pgv4
gv5 pgv5 hdam bgv0 bgv1 bgv2 bgv3 bgv4 bgv5 bmax tblade
# tgov1 : r t1 vmax vmin t2 t3 dt
# ieeeg1 : k t1 t2 t3 uo uc pmax pmin t4 k1 k2 t5 k3 k4 t6 k5 k6 t7 k7 k8 db1 eps db2 gv1 pgv1 gv2 pgv2 gv3 pgv3 gv4 pgv4 gv5 pgv5 gv6
pgv6
# ieeest : j k a1 a2 a3 a4 a5 a6 t1 t2 t3 t4 t5 t6 ks lsmax lsmin vcu vcl tdelay
# vmeta : flag 0all 1a 2z num
# fmeta : flag 0all 1a 2z num tf
# wlwscc : flag p1 q1 p2 q2 p3 q3 p4 q4 lpd lqd
# blwscc : tf p1 q1 p2 q2 p3 q3 p4 q4 lpd lqd

7. THE PSDS DYNAMIC SIMULATION MODEL LIBRARY


 
7.1 Data Conventions
Dynamic simulation data for the PSDS program is organized by describing the parameters of dynamic models.  Each dynamic model
describes an item of equipment such as a generator, a turbine, or a load.
Each model is invoked by a model data record in the Dynamic Simulation Data File.  Each model requires location information and a
set of parameter values. These are specified in the following model description data sheets.
The models use standard data conventions as follows:
a)            All per unit parameters of generators, excitation systems, turbine-governors, and other items relating to a generator are stated in
per unit with respect to the base MVA of that individual generator. (Turbine-governor parameters are on the MWCAP base if it
is specified.)
b)           Saturation factors for generators and exciters are stated with reference to the open circuit magnetization curve of the equipment.
c)            Turbine-governor models produce turbine power as their output (pmech) and express the value of this signal in per unit of the
MVA base of the generator that the turbine drives.
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 when required.
All reactances of generators and motors are unsaturated values.  In  models that recognize change of reactance with saturation, the
saturated reactances are determined internally from the unsaturated reactances and the open circuit magnetization curve.
 
 
7.2   Dynamic Simulation Models
 
The members of the PSDS dynamic simulation model library as of the printing of this data exchange manual are:
 
           
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
epctrb User written model
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
PV converter control model
pv1e
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 )
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
vhvdc1 Two terminal voltage source converter based high-voltage d.c. transmission
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..
 
 
Models marked (obsolete) are retained in the library for compatibility with old releases of PSDS but should not be replaced wherever
possible with more up to date models.
 
 
7.3   Compatibility with Other Programs
 
Several of the PSDS dynamic simulation models correspond exactly with models available in the WSCC and PSS/E dynamic
simulation programs.  Direct correspondence between PSDS and PSS/E models is indicated by the PSDS and PSS/E model names
being the same.  The principal correspondences between PSDS and WSCC models are listed below.
 
Type of Model Description Model Name
    GE WSCC
MACHINE Detailed generator gentpf MF
  Classical generator gencls MC
  Induction Motor motorw MI
  Detailed Two Rotor Generator gencc MF
EXCITATION Amplidyne/Magamp controlled dc exdc1 FA
exciter
  Amplidyne/Magamp controlled dc exdc2a FB
exciter bus voltage regulator
supply
  Alternator exciter with non- exac1 FC
controlled rectifier
  Compound source static exciter exst2 FD
  DC exciter with motor-driven exdc4 FE
rheostat contactor
  Alternator exciter with non- exac2 FF
controlled rectifiers - high initial
response
  Alternator exciter with controlled exac4 FG
rectifiers
  Alternator exciter with non- exac3a FH
controlled rectifiers - output
dependent control
  Bus-fed static exciter exst1 FK
  Series current-potential exst3a FL
transformer or internal winding
exciter
  Compound Source Rectifier exst2a FM
  Simplified Rotating Rectifier exbas FN
  Static Excitation System sexs FO
  Alternator exciter with non- exac6a FP
controlled 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 Line relay scanning model lnrelscan  
  Under frequency relay lsdt1 UF
  Under voltage relay lsdt2 UV
  Under voltage 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 alwscc LA
dependence
    blwscc LB
    wlwscc  
    zlwscc  
 
 
7.4   Model Data Sheets
 
The model data sheets for PSDS follow in alphabetical order by model name.
PSLF MODELS LIST
 
_clod _cmp_1pac _cmp_der_a _cmp_dgpv _cmp_dist _cmp_elec _cmp_mot3 _cmp_stat  
_cmpldw _cmpldw2 agc2 alwscc ameta ametr apfl blindef  
blwscc boel ccbt1 ccomp ccomp4 ccst3 cdc6 chvdc2  
clod cmp_der_a cmpld cmpldw cmpldw2 cmpldwg colatr colatr2  
crcmgv dc2t dcbtb1 dcmt degov1 der_a diffrlyg diffrlys  

distrel emac1t epcdc epcexc epcgen epcgn1 epcgn2 epcgn3  

epcmd1 epcmd2 epcmd3 epcmod epctrb esac1a esac2a esac3a


esac4a esac5a esac6a esac7b esac8b esdc1a esdc2a esdc3a
esdc4b esst1a esst2a esst3a esst4b esst5b esst6b esst7b
estor2 ewtgfc ewtgfx ex21br exac1 exac1a exac1m exac2
exac3 exac3a exac4 exac6a exac8b exbbc exdc1 exdc2
exdc2a exdc4 exeli exeli2 exivo exoel expic1 exst1
exst2 exst2a exst3 exst3a exst4b exuel exwtg1 exwtge
fmeta fmetb fmetr focdt g2wscc gast gegt1 gencc
gencls genind genoostrip genrou gensal gensdo gentpf gentpj
genwri gewtg gewtgx ggov1 ggov2 ggov3 gp1 gp2
gp3(BETA) gpwscc gthev h6b h6bd h6e hvdcau hyg3
hygov4 hygov8 hygov hygovr hypid hyst1 ieeeg1 ieeeg3
ieeest ieeet1 ifmaz ifmon imetr lcfb1 ld1pac ldelec
ldtrpmon lhfrt lhfrta lhsrt lhvrt lhvrta lm2500 lm6000
lnrelscan locti lofscan lsdt1 lsdt2 lsdt3 lsdt3a lsdt7
lsdt8 lsdt9 lsmon ltc1 mexs monds mondsa monit
motor1 motorc motorld motorw motorx msc1 mslr1 msr1
mss1 mss2 oel1 ooslen ooslnq oosmho oosscan pfpb
pfqrg pidgov plefd plnow plref pltp pmetr pss1a
pss2a pss2b pss3b psssb psssh psssvc pv1e pv1g
pvd1 rect reec_a reec_b reec_c regc_a reloden repc_a
repc_b rexs scgap scmov scrx secld1 secld2 secld3
sexs smes1 socdt socti spfl stag1 stcon stcon1
svcwsc svsmo1 svsmo2 svsmo3 tcsc texs tgov1 tgov3
tiocrs tlin1 uclp2 upfc uvls1 vcr vfmetr vfmgen
vft vhvdc1 vmeta vmetr vphr1 vscdc vscdc1 vwscc
w2301 wlwscc wndtge wndvar wsccst wt1g wt1p wt1p_b
wt1t wt2e wt2g wndtrb wt2p wt2t wt3e wt3g
wt3p wt3t wt4e wt4g wt4t wtga_a wtgp_a wtgq_a
wtgt_a zdcb zlin1 zlin2 zlinw zmetr zmetra zonedef
zpott zqlin1 zqlin2          

 
 

 
 
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

  <filter> Name of string filter file

     

Function:   Reads a Philadelphia Electric (PECO) format load


flow data file
     

Prerequisites:   file> must be a complete PECO format data file


 
 

 
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:    
     

Function:   Displays list of records and sizes

     

Prerequisites:   PSLF must be in command mode


 
 
PREC is used to display the list of records available in the PSLF database. This includes those records native to PSLF
as well as those added by the user at PSLF startup. The user-added records are listed in the sub-directory "pslfexr".
These records appear at the end of the list. Therefore, use the PREC command to verify that the new records were
added correctly.
 
To see if the all of the new records were added correctly, do the following:
 
1.       At the input box in the lower left corner of the main menu, enter command mode of PSLF by hitting CMOD
from the menu.
 
2.       Type:        prec()  - hit <CR>
 
The user added records will appear at the bottom of the list.
HELP
 
Hitting the F1 function key when a button is highlighted displays the manual page for that topic.
 
Modeling of GE Wind
Turbine-Generators for
Grid Studies

Prepared by:
Miaolei Shao
Nicholas W. Miller
Juan J. Sanchez-Gasca
Jason MacDowell

Version 4.6

March 08, 2013

General Electric International, Inc.


One River Road
Schenectady, NY 12345
USA
Legal Notice

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

This document was prepared by GE Energy in Schenectady, NY. Technical and


commercial questions and any correspondence concerning this document should be
referred to:

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

2 MODEL OVERVIEW AND PHILOSOPHY ............................................................................. 2.1


2.1 DOUBLY-FED ASYNCHRONOUS GENERATOR (DFAG) FUNDAMENTALS ................................ 2.1
2.2 FULL CONVERTER WTG FUNDAMENTALS........................................................................... 2.3
2.3 OVERALL MODEL STRUCTURE ........................................................................................... 2.4
3 ANALYTICAL APPROACH .................................................................................................... 3.1
3.1 LOAD FLOW MODEL .......................................................................................................... 3.1
3.2 INITIAL CONDITIONS FOR DYNAMIC SIMULATION .................................................................. 3.3
4 DOUBLY FED ASYNCHRONOUS GENERATOR (DFAG) DYNAMIC MODELS ................ 4.1
4.1 GENERATOR/CONVERTER MODEL ..................................................................................... 4.1
4.1.1 Fault Ride Through .................................................................................................... 4.2
4.2 CONVERTER CONTROL MODEL .......................................................................................... 4.6
4.2.1 Reactive Power Control ............................................................................................. 4.6
4.2.2 Electrical Control ........................................................................................................ 4.9
4.2.3 Control Strategies .................................................................................................... 4.10
4.2.4 Open Loop Control Logic ......................................................................................... 4.11
4.3 WIND TURBINE AND TURBINE CONTROL MODEL ............................................................... 4.13
4.3.1 Turbine Control Model.............................................................................................. 4.15
4.3.2 Rotor Mechanical Model .......................................................................................... 4.18
4.3.3 Wind Power Model ................................................................................................... 4.20
4.3.4 Active Power Control Model & Rate Limit Function ................................................. 4.22
4.3.5 WindINERTIA Model ................................................................................................ 4.25
5 FULL CONVERTER WTG DYNAMIC MODELS.................................................................... 5.1
5.1 GENERATOR/CONVERTER MODEL ..................................................................................... 5.1
5.2 ELECTRICAL (CONVERTER) CONTROL MODEL .................................................................... 5.2
5.3 WIND TURBINE AND TURBINE CONTROL MODEL ................................................................. 5.6
6 DFAG WTG BENCHMARK SIMULATIONS .......................................................................... 6.1
6.1 TEST SYSTEM ................................................................................................................... 6.1
6.2 DFAG WTG BENCHMARK SIMULATION RESULTS ............................................................... 6.2
6.2.1 Fault Response with WindCONTROL Emulator ........................................................ 6.3
6.2.2 Q Droop Function Performance ................................................................................. 6.6
6.2.3 Active Power Control and Power Response Rate Limit Performance ....................... 6.8
6.2.4 Wind Speed Profile .................................................................................................. 6.10
6.2.5 Zero Power (WindFREE) Operation ........................................................................ 6.10
6.2.6 WindINERTIA Control Performance ........................................................................ 6.13
6.3 DFAG WTG BENCHMARK SIMULATION DYNAMIC DATA .................................................... 6.15
7 FULL CONVERTER WTG BENCHMARK SIMULATIONS ................................................... 7.1
7.1 TEST SYSTEM ................................................................................................................... 7.1
7.2 FULL CONVERTER WTG BENCHMARK SIMULATION RESULTS .............................................. 7.1
7.2.1 Fault Response with WindCONTROL Emulator ........................................................ 7.2
7.2.2 Zero-Power Operation................................................................................................ 7.5
7.2.3 Converter Current Limit Performance ........................................................................ 7.9
7.2.4 Low Voltage Power Logic Performance ................................................................... 7.11
7.2.5 Dynamic Braking Resistor Performance .................................................................. 7.11
7.3 FULL CONVERTER WTG BENCHMARK SIMULATION DYNAMIC DATA ................................... 7.13
8 PSLF MODEL VALIDATION .................................................................................................. 8.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.

GE Energy 1.1 GE WTG Modeling-v4.6, 3/8/13


2 Model Overview and Philosophy
2.1 Doubly-Fed Asynchronous Generator (DFAG) Fundamentals
A simple schematic of an individual GE 1.5, 1.6 or 3.6 MW wind turbine-generator
(WTG) is shown in Figure 2-1. The GE WTG generators are unusual from a system
simulation perspective. Physically, the machine is a relatively conventional wound
rotor induction (WRI) machine. However, the key distinction is that this machine is
equipped with a solid-state voltage-source converter AC excitation system. The AC
excitation is supplied through an ac-dc-ac converter. For the GE 3.6 MW machine, the
converter will be connected as shown or to a third winding on the main unit step-up
transformer. For the GE 1.5 and 1.6 MW machines, it is connected directly at the stator
winding voltage. Machines of this structure are termed ‘doubly-fed asynchronous
generators’ (DFAG), and have significantly different dynamic behavior than either
conventional synchronous or induction machines.
Modeling of any of the GE machines with conventional dynamic models for either
synchronous or induction machines will not give correct results.

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

GE Energy 2.1 GE WTG Modeling-v4.6, 3/8/13


transformer reactance, which results in the desired active and reactive current being
delivered to the device terminals.
In the case of the doubly-fed machines, the machine rotor and stator windings are
primary and secondary windings of the transformer. The rotation of the machine
means that the ac frequency on the rotor winding corresponds to the difference
between the stator frequency (50 or 60 Hz) and the rotor speed. This is the slip
frequency of the machine. In the vicinity of rated power, the DFAG machines will
normally operate at 120% speed, or -20% slip. Control of the excitation frequency
allows the rotor speed to be controlled over a wide range, ±30%. The rotation also
means that the active power is divided between the stator and rotor circuits, roughly in
proportion to the slip frequency. For rotor speeds above synchronous, the rotor active
power is injected into the network through the converter. The active power on the
rotor is converted to terminal frequency (50 or 60 Hz), as shown in Figure 2-1.
In addition to controlling the rotor speed, the reactive power output of the
generator can be controlled by varying the magnitude of the rotor currents. This gives
the doubly-fed machine the voltage regulation capability of a synchronous generator
but with greater speed of response.
For all GE machines, the control of active and reactive power is handled by fast,
high bandwidth regulators within the converter controls. The time responses of the
converter regulators are sub-cycle, and as such can be greatly simplified for simulation
of bulk power system dynamic performance.
Broadly stated, the objectives of the turbine control are to maximize power
production while maintaining the desired rotor speed and avoiding equipment
overloads. There are two controls (actuators) available to achieve these objectives:
blade pitch control and torque order to the electrical controls (the converter). The
turbine model includes all of the relevant mechanical states and the speed controls.
The implementation of the turbine model, while relatively complex, is still considerably
simpler than the actual equipment. Losses are not considered throughout the model,
since “fuel” efficiency is not presently a consideration. These simplifications are
examined in the detailed model discussion in Section 4.
The model presented in Section 4 describes the relevant dynamics of a single
doubly fed GE WTG. However, the primary objective of this model is to allow for
analysis of the performance of groups of WTGs and how they interact with the bulk
power system. Wind plants with GE WTGs normally include a wind farm management
system (WindCONTROL). Two components of this system are currently incorporated -
the Volt-Ampere-Reactive or Var control system and the Active Power Control (APC).
The Var control interacts with the individual WTGs through the electrical controls, the
APC is incorporated in the turbine model. Representation of all the individual machines
in a large wind plant is inappropriate for most grid stability studies. Hence, there is
provision within the model structure to allow a single equivalent WTG machine model
to represent multiple WTGs. The model implementation allows the user access to
parameters that might reasonably be customized to meet the particular requirements
of a system application. These parameters are discussed in more detail in Section 4.

GE Energy 2.2 GE WTG Modeling-v4.6, 3/8/13


2.2 Full Converter WTG Fundamentals
The GE Multi-Megawatt WTG product line uses full conversion technology. Unlike
the generators for the doubly fed asynchronous WTGs, the full converter machine is a
relatively conventional permanent magnet synchronous generator. The generator is
connected to the power grid through a full converter. This configuration decouples the
generator speed from the power system frequency and allows for a wide range of
variable speed operation. Figure 2-2 shows the configuration of the full converter
WTG.
Converter
Pnet= Pstator
f stator Q net
P stator

 AC Winding Q stator fnet

Wind Turbine f stator


net
Collector System
P stator
(e.g. 34.5kV bus)

Permanent
frotor
Magnet
P rotor
Rotor

Figure 2-2. GE Full Converter WTG Major Components.

Like the GE DFAG machines, the fundamental frequency electrical dynamic


performance of the GE Multi-Megawatt WTG is completely dominated by the converter.
For the full converter machines, the line-side of the converter corresponds to the
WTG terminals. The electrical behavior on the variable frequency machine side of the
converter is of no interest to the AC system. Further, operation (i.e., rotation) of the
turbine is not required for the converter to continue reactive operation on the line-side.
In the vicinity of rated power, the GE full converter machines will normally operate at a
speed selected to give optimum turbine performance. Control of the frequency
converter allows the rotor speed to be completely decoupled from the grid frequency,
and to be controlled over a wide range.
Similar to the DFAG WTGs, the control of active and reactive power is handled by
fast, high bandwidth regulators within the converter controls, and can be greatly
simplified for simulation of bulk power system dynamic performance.
The turbine control is also similar to that used for a DFAG WTG.
The model presented in Section 5 describes the relevant dynamics of a single full
converter WTG. As noted above in the DFAG discussion, the primary objective of this

GE Energy 2.3 GE WTG Modeling-v4.6, 3/8/13


model is to allow for analysis of the performance of groups of WTGs and how they
interact with the bulk power system. Hence, the Var control system and the APC are
both incorporated in the models. Representation of all the individual machines in a
large wind plant is inappropriate for most grid stability studies. Hence, there is
provision within the model structure to allow a single equivalent WTG machine model
to represent multiple WTGS. The model implementation allows the user access to
parameters that might reasonably be customized to meet the particular requirements
of a system application. These parameters are discussed in more detail in Section 5.
2.3 Overall Model Structure
From a load flow perspective, standard generator and transformer models are
required for initialization of the dynamic simulation program. These two devices are
represented by conventional load flow models. Details are presented in Section 3.
The dynamic models presented here are specific to GE WTGs. The implementation
is structured in a fashion that is similar to conventional generators. To construct a
complete WTG model, three device models are used, as shown in Figure 2-3:
 Generator/converter model
 Electrical control model
 Turbine and turbine control model
The generator/converter model injects real and reactive current into the network in
response to control commands, and represents low and high voltage protective
functions (e.g., low voltage ride through capability). The same generator/converter
model, with different data, is used to represent both DFAG WTGs (e.g., GE’s 1.5, 1.6 and
3.6 MW) and full converter WTGs (e.g., GE’s Multi-Megawatt 2.5 MW).
The electrical control model includes both closed and open loop reactive power
controls, and voltage regulation with either a simplified emulator of GE’s
WindCONTROL system or a separate, detailed model. This model sends real and
reactive commands to the generator/converter model. Different electrical control
models are used to represent DFAG WTGs and full converter WTGs
The turbine and turbine control model represents the mechanical controls,
including blade pitch control and power order (torque order in the actual equipment) to
the converter; under speed trip; rotor inertia equation; wind power as a function of
wind speed, blade pitch, rotor speed; and active power control. One model is used to
represent both DFAG and full converter WTGs. However, more functions (e.g., dynamic
braking resistor) are enabled for a full converter WTG than for a DFAG machine.
In addition, user-written models can be developed to represent wind gusts or other
profiles by varying input wind speed to the turbine model, or to represent additional
protective functions (e.g., over/under frequency).

GE Energy 2.4 GE WTG Modeling-v4.6, 3/8/13


Vreg bus
Vterm

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

Figure 2-3. GE WTG Dynamic Model Connectivity.

GE Energy 2.5 GE WTG Modeling-v4.6, 3/8/13


3 Analytical Approach
In practice, a wind plant has a local grid collecting the output from the machines
into a single point of interconnection to the grid. Since the wind plant is made up of
many identical machines, it is a reasonable approximation to parallel all the machines
into a single equivalent large machine behind a single equivalent reactance. This
approach is consistent with the models presented in this report. However, there are
limitations. Disturbances within the local collector grid cannot be analyzed, and there
is some potentially significant variation in the equivalent impedance for the connection
to each machine. A single machine equivalent requires the approximation that the
power output of all the machines will be the same at a given instant of time. For grid
system impact studies, simulations are typically performed with the initial wind of
sufficient speed to produce rated output on all machines. Under this condition, the
assumption that all machines are initially at the same (rated) output is not an
approximation. Otherwise, this assumption presumes that the geographic dispersion
is small enough that the wind over the plant is uniform. Simulations of bulk system
dynamics using a single machine equivalent is adequate for most planning studies.
Detailed modeling of the WTG collector system is possible. The inclusion of the
WindCONTROL in each WTG’s electrical control model provides an emulation of the
action of a single centralized control. An intermediate level of modeling detail can also
be used in which groups of WTGs, e.g. those on a single collector feeder, are
represented by a single equivalent model.
3.1 Load Flow Model
The modeling of a GE WTG or wind plant for load flow analysis is generally simple.
As noted above, wind plants normally consist of a large number of individual WTGs.
While the wind plant model may consist of a detailed representation of each WTG and
the collector system, a simpler model is appropriate for most bulk system studies.
Such a model is shown in Figure 3-1. This model consists of a single WTG and unit
transformer with MVA ratings equal to N times the individual device ratings, where N is
the number of WTGs in the wind plant (or those considered on-line for study purposes).
An equivalent impedance to reflect the aggregate impact of the collector system can
be included together with the substation step-up transformer(s). The total charging
capacitance of the collector system should also be included. The charging
capacitance can be significant since underground cables are often used for the
collector system.
The aggregate WTG is modeled as a conventional generator connected to a (PV)
bus. The generator real power output (Pgen), maximum reactive power output (Qmax),
and minimum reactive power output (Qmin) are input as N times the unit capabilities
shown in Table 3-1. The nominal voltage at the generator terminals depends on the
WTG size and system frequency. Typical unit transformer ratings and impedances are
also shown. Typical collector system voltages are at distribution levels - 12.5 kV or
34.5 kV are common in 60 Hz applications, 33 kV in 50 Hz applications. The substation

GE Energy 3.1 GE WTG Modeling-v4.6, 3/8/13


transformer would be suitably rated for the number of WTGs, with an impedance
typically around 10%.

Project Substation

Point of High Side Bus


Interconnection (collector, e.g. 34.5kV) Terminal Bus
(POI) Bus
P gen

Collector
Equivalent
Impedance Q gen
Substation and Charging Unit
Vreg bus Transformer Capacitance Transformer Vterm

Figure 3-1. Simplified Wind Plant Power Flow Model.

Table 3-1. Individual WTG Power Flow Data.


GE 1.5 MW GE 1.6 MW GE 3.6 MW GE 2.5 MW
Generator Rating 1.67 MVA 1.78 MVA 4 MVA 3 MVA
Pmax 1.5 MW 1.6 MW 3.6 MW 2.5 MW
Pmin 0.07 MW 0.075 MW 0.16 MW 0 MW
Qmax 0.726 MVAr* 0.775 MVAr* 2.08 MVAr 1.20 MVAr*
Qmin -0.726 MVAr* -0.775 MVAr* -1.55 MVAr -1.20 MVAr*
Terminal Voltage (60 Hz) 690 V** 690 V 4160 V 690 V
Terminal Voltage (50 Hz) 690 V 690 V 3300 V 690 V
Unit Transformer Rating 1.75 MVA 1.75 MVA 4 MVA 2.8 MVA
Unit Transformer Z 5.75% 5.75% 7% 6.0%
Unit Transformer X/R 7.5 7.5 7.5 7.5
*These values are for +/- 0.90 power factor machines. GE also offers +/-0.95 power factor
machines, which would be modeled with a reactive range of +/-0.493 MVAr, +/-0.526 MVAr and
+/-0.822 MVAr for the 1.5 MW, 1.6 MW and 2.5 MW machines, respectively. Project specific
values must be confirmed.
**Older 60 Hz machines have 575 V terminal voltages.

The WindCONTROL system is structured to measure the voltage at a particular bus,


often the point of interconnection (POI) with the transmission system, and regulate this
voltage by sending a reactive power command to all of the WTGs. Line drop
compensation may be used to regulate the voltage at a point some distance from the
voltage measurement bus. For load flow modeling of the WindCONTROL, the
aggregate WTG (or each WTG) should be set to regulate the remote bus at the desired
voltage regulation point. Depending upon the applicable grid requirements for voltage
and reactive power range, the substation transformer may be an automatic load-tap-

GE Energy 3.2 GE WTG Modeling-v4.6, 3/8/13


change (LTC) transformer. Operation of the LTC controls may be autonomous, or
coordinated with the WindCONTROL.
3.2 Initial Conditions for Dynamic Simulation
The load flow provides initial conditions for dynamic simulations. The conditions
outlined above are generally applicable to the dynamic model presented below. The
maximum and minimum active and reactive power limits must be respected in order
to achieve a successful initialization.
If the WTG electrical control or additional substation controls are customized to
meet a particular set of desired performance objectives, then the load flow must be
initialized in accordance with those customized rules. For example, if the active power
controls are set to curtail power to 95% of that available in the wind, then the real
power at the load flow generator must be set accordingly. Similarly, it is possible to
inject or absorb reactive power (e.g., regulate voltage) at zero real power with a full
converter WTG. Therefore, the real power at the generator in the power flow must be
zero for this type of simulation.
Inconsistencies between the power flow and the dynamic model will result in an
unacceptable initialization.

GE Energy 3.3 GE WTG Modeling-v4.6, 3/8/13


4 Doubly Fed Asynchronous Generator (DFAG) Dynamic
Models
This section presents the engineering assumptions, detailed structure, and data for
each of the component models necessary to represent a GE 1.5, 1.6 or 3.6 MW WTG.

4.1 Generator/Converter Model


This model (gewtg in PSLF) is the equivalent of the generator and field converter,
and provides the interface between the WTG and the network. Unlike a conventional
generator model, it contains no mechanical state variables for the machine rotor –
these are included in the turbine model. Further, unlike conventional generator
models, all of the flux dynamics have been eliminated to reflect the rapid response of
the converter to the higher level commands from the electrical controls. The net result
is an algebraic, controlled-current source that computes the required injected current
into the network in response to the flux and active current commands from the
electrical control model. This controlled-current source also incorporates the low
voltage power logic and the fast-acting converter controls that mitigate over-voltages
by reducing reactive current output.
The model is shown in Figure 4-1. It holds constant both the active power (X-axis)
component of current and the X-axis voltage (Y-axis flux) behind the generator
effective reactance, X”. The real and reactive command signals are developed in the
electrical control model described in Section 4.2. The low-pass filters on the incoming
command signals are simple approximations to the complex, fast electronic control
system. This small lag (0.02 seconds) provides a reasonable representation in the time
frame of interest. As with all positive sequence fundamental frequency analysis, sub-
cycle behavior is not meaningful.
The Low Voltage Power Logic (LVPL) reduces system stress during and immediately
following sustained faults by limiting the real current command with both a cap (upper
limit) and a ramp rate limit. Under normal operating conditions, the filtered terminal
voltage is above a user-specified breakpoint (brkpt) and there is no cap. When the
voltage falls below the breakpoint during a fault, a cap is calculated and applied.
When the voltage is below a user-specified zero-crossing point (zerox), the cap
becomes zero. The user-specified ramp rate limit (rrpwr) is key to the post-fault power
recovery. During this recovery period, the voltage will exceed the breakpoint and the
cap is removed. However, the real current command rate of increase will be restricted
by the ramp rate limit.
Comparison with more detailed models of the generator and controls has shown
that this is an accurate model of the combined behavior of the doubly-fed generator
and its rotor converter when the value of X” is set to 0.80 pu (on the generator MVA
rating) for all the DFAG WTGs. X” represents an effective equivalent reactance and is
not the actual subtransient reactance of the doubly-fed induction generator.
The actual converter controls include a phase-locked loop (PLL) to synchronize the
generator rotor currents with the stator currents. However, the PLL dynamics are

GE Energy 4.1 GE WTG Modeling-v4.6, 3/8/13


extremely fast relative to the PSLF time frame, and under normal grid operating
conditions result in effectively perfect tracking. Under transient conditions of severe
voltage depression and relatively high system impedance, delivery of active current
becomes limited. The control actions of the PLL and current regulator effectively result
in reduced active current delivery. This fast regulator and PLL action is captured in the
model by a low voltage active current management function. This is a linear reduction
of active current injection for terminal voltages below 0.8 pu. This effect is modeled
within the network solution (i.e. without state variables), which is consistent with the
overall algebraic modeling of current injection by the generator/converter model. The
reactive current delivery remains high under these transient conditions, providing
voltage support and short circuit strength.
The fast regulator and PLL dynamics of the converter will also act to limit excess
voltage on the terminals of the generator by suppressing reactive current injection
when the terminal voltage rises excessively. This effect is modeled by a high voltage
reactive current management function in the network solution, which drives reactive
current injection down to limit terminal voltage to 120%. Reactive current injection is
limited to the machine rating.

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

Figure 4-1. DFAG Generator/Converter Model.

4.1.1 Fault Ride Through


The generator model also includes over/under voltage protective functions. In
particular, the low voltage tripping can be set to meet so-called “low-voltage ride
through” (LVRT) or “zero-voltage ride through” (ZVRT) requirements. These
requirements are explicitly defined such that wind plants must not trip for events that
are less severe than the defined thresholds and time durations. Wind plants may

GE Energy 4.2 GE WTG Modeling-v4.6, 3/8/13


tolerate more severe events without tripping. Use of the model therefore does not
ensure that the plant will trip, only that it is allowed to do so. The thresholds and time
durations for this protection will vary significantly from one project to another as
equipment designs are modified to meet specific grid codes or interconnection
agreements. Recommendations for modeling the generator protection functions are
as follows:
 For feasibility and reliability impact studies of future wind projects: Do not
include the generator protection model or else set the trip levels consistent with
applicable grid codes for the project. An objective of the study should be to
establish the voltage and frequency excursions that may occur. These results
should then be reflected in the equipment specifications. The mechanism for
communicating this is the interconnect agreement. Prior to establishing the
interconnect agreement, the product capability should be understood via
communication with the GE representative.
 For facility studies for projects in the design phase: Use trip settings
consistent with performance commitments. The results of the study should
indicate acceptable settings for the actual protective devices to satisfy system
requirements while providing adequate protection for the WTG equipment.
 For studies involving in-service projects: Use the actual trip settings of the
protective equipment.
Table 4-1 gives seven trip levels and durations based on specifications for a 60 Hz,
1.5 or 1.6 MW unit with the two fault ride through options offered by GE at the time this
document was updated. The PSLF model provides six levels of voltage tripping. The
short term high voltage threshold can be ignored as sub-cycle behavior in stability
simulations is not meaningful. It is important to note that the low voltage thresholds
are a stepwise fit to a curve that defines the equipment minimum performance
specifications. Figure 4-2 shows this graphically for the ZVRT option; with the step-
wise curve representing the trip points in the table. Figure 4-3 shows the same
information for the LVRT II option. The step-wise curve is conservative, in that it is
always inside the specification. As noted above, low voltage ride through requirements
vary from application to application. The tripping thresholds and durations should be
chosen to appropriately represent the application under study.
Any other desired protective functions (e.g., over/under frequency) would need to
be implemented with additional protective device models.

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.

GE Energy 4.3 GE WTG Modeling-v4.6, 3/8/13


Table 4-1. Typical Fault Ride Through Voltage Thresholds and Durations.
Time (sec)
V (%) V (pu) ZVRT LVRT II
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
130
0.30 0.02 0.02
(DFAG)
120
0.20 0.02 0.02
(full converter)

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.

GE Energy 4.4 GE WTG Modeling-v4.6, 3/8/13


140
Voltage at Point of Interconnection

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.

Table 4-2. DFAG Generator/Converter Parameters.


Recommended Values
Parameter Name ZVRT LVRT II
lpp 0.8 0.8
dvtrp1 -0.25 -0.25
dvtrp2 -0.50 -0.50
dvtrp3 -0.70 -0.70
dvtrp4 -0.85 -0.85
dvtrp5 0.10 0.10
dvtrp6 0.15 0.15
dttrp1 1.9 1.7
dttrp2 1.2 1.1
dttrp3 0.7 0.7
dttrp4 0.2 0.02
dttrp5 1.0 1.0
dttrp6 0.1 0.1
fcflg 0 0
rrpwr 10. 10.
brkpt 0.9 0.9
zerox 0.5 0.5

GE Energy 4.5 GE WTG Modeling-v4.6, 3/8/13


4.2 Converter Control Model
This model (exwtge in PSLF) dictates the active and reactive power to be delivered
to the system based on inputs from the turbine model (Pord) and from the supervisory
VAr controller (Qord). Qord can either come from a separate model or from the
WindCONTROL voltage and reactive control emulator function included in the electrical
control model. Qord can also be held constant or determined by a power factor
regulator. The model consists of the following control functions:
WindCONTROL Emulator
Power Factor Regulator
Electrical (Volt/VAr) Control
Open Loop Control Logic (used only on some older systems)
The overall block diagram for the Reactive Power Control and the Electrical Control
is shown in Figure 4-4. These controls are described in more detail in the following
sections.

Vrfq
WindCONTROL
Vreg
Emulator

From Qord Open Qcmd


separate Loop
WindCONTROL Control
model Logic Eq"cmd
Qref
PFAref Power
Pelec Electrical To Generator
Factor
Control Model
Regulator
Reactive Power Control
Qgen IPcmd

Vterm
From
Wind Turbine Pord
Model

Figure 4-4. Overall DFAG Reactive Power and Electrical Control Model.

4.2.1 Reactive Power Control


A more detailed representation of the Reactive Power Control is shown in Figure
4-5.
The WindCONTROL emulator function represents a simplified equivalent of the
supervisory VAr controller portion of the entire wind farm management system

GE Energy 4.6 GE WTG Modeling-v4.6, 3/8/13


(WindCONTROL). The function monitors a specified bus voltage and compares it
against the reference voltage. Three regulated bus options are available: the WTG
terminal bus, a user-specified remote bus (e.g. point of interconnection), or a
synthesized point in the power system. The latter bus is synthesized from local voltage
and current measurements, and the compensating reactance, Xc. The regulator itself
is a PI controller. The time constant, Tc, reflects the delays associated with cycle time,
communication delay to the individual WTGs, and additional filtering in the WTG
controls. The voltage measurement lag is represented by the time constant Tr. Table
4-3 gives suggested settings for the WindCONTROL emulator model.
The parameter, fN, is the fraction of wind turbines in the wind plant that are on-line.
For example, if a case represents a condition with half of the wind turbines on-line, fN
should be set to 0.5. In this case the MVA base of the generator should also be set to
one-half of its full value, and the MW capability of the turbine should be set to one-half
of its full value. If a wind plant is represented by more than one WTG model, the fN
values of each should be set to the same value.
The other reactive power control method available is power factor control. It is
enabled by setting pfaflg to 1. The data associated with this mode are also shown in
Table 4-3. The appropriate flag and gain settings to represent various control
strategies are described in the next section.

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

Figure 4-5. Reactive Power Control Model.

GE Energy 4.7 GE WTG Modeling-v4.6, 3/8/13


Table 4-3. Reactive Power Control Parameters (on Generator MVA Base).
Recommended Value
Variable Name PSLF Parameter 1.5 MW 1.6 MW 3.6 MW
Tr (sec) tr 0.02 0.02 0.02
Tv(sec) tv 0.05 0.05 0.05
fN fn 1.0 1.0 1.0
Tc(sec) tc 0.15 0.15 0.15
Kpv** kpv 18. 18. 18.
Kiv** kiv 5. 5. 5.
Qmax (pu) qmax 0.436* 0.436* 0.52
Qmin (pu) qmin -0.436* -0.436* -0.39
Tpwr (sec) tpwr 0.05 0.05 0.05
Xc (pu) xc 0 0 0
Vermn (pu) vermn -0.1 -0.1 -0.1
Vermx (pu) vermx 0.1 0.1 0.1
Vfrz (pu) vfrz 0.7 0.7 0.7
*+/-0.296 pu on GE 1.5 and 1.6 MW machines with +/- 0.95 power
factor rating, and on some older GE WTGs.
**Subject to field tuning to meet system performance objectives, as
discussed below.

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

GE Energy 4.8 GE WTG Modeling-v4.6, 3/8/13


in the system. By default, the Q Droop function is disabled. It may be enabled by
setting the gain parameter, Kqd, to a non-zero value. Typical data is shown in Table
4-4. There are three options for the reactive power input to this function: reactive
power generated by the WTG, reactive power flow in a user-specified branch, or a
synthesized reactive power. The latter is the reactive power flow in the user-specified
branch plus a secondary term, Xqd*Im2, where Im is the magnitude of the current
flowing in that branch.

Q Input 1 Vqd
Kqd
1+ sTlpqd
s7

Figure 4-6. Q Droop Function Model.

Table 4-4. Q Droop Function Parameters.


Variable Name PSLF Parameter Recommended Value
Tlpqd (sec) tlpqd 5.0
Kqd kqd 0.04
Xqd (pu) xqd 0.0

4.2.2 Electrical Control


A more detailed representation of the Electrical Control is shown in Figure 4-7. The
electrical controller model is a simplified representation of the converter control
system.
The volt/var control monitors the generator reactive power, Qgen, and terminal
voltage, Vterm, to compute the voltage command Eq”cmd required to meet the Qcmd from
the Reactive Power Control. The Qcmd signal is compared to the reactive power
generated by the converter, and the resulting error is integrated with a gain of Kqi, to
generate a voltage reference, Vref. Thus, the reactive power command is implemented
via a slowly changing voltage reference. The subsequent voltage control block is
significantly faster. The voltage reference is compared to the actual terminal voltage,
and the resulting voltage error is multiplied by a gain and integrated to compute the
voltage command Eq”cmd. Thus, a drop in terminal voltage, e.g., in response to a system
fault, results in an immediate large voltage error and an increased reactive command.
The magnitude of the gain determines the effective time constant associated with the
voltage control loop. The voltage command, Eq”cmd, is limited to reflect hardware
constraints.
An auxiliary test signal can be injected into the terminal bus voltage regulator via
model[@index].sigval[0], as shown in Figure 4-7. A user-written dynamic model
(epcmod) is needed to generate the desired signal. The index of the wind generator
model (@index) can be obtained using the model_index function.

GE Energy 4.9 GE WTG Modeling-v4.6, 3/8/13


The real current command signal, IPcmd, is developed from the wind turbine model
power order and the terminal voltage.
Table 4-5 includes recommended settings for the electrical control model. All
settings are given in terms of rated MVA.
Qgen
Vterm
Vmax XIQmax
- -
Qcmd Vref
KQi / s KVi / s Eq"cmd
+ + s1
(efd)
Vmin
s0 + XIQmin
To Generator
Auxiliary Model
Test Signal
( model[@index].sigval[0] )

Pord IPmax
(vsig)
. IPcmd
.
(ladifd)
From
Wind Turbine
Model Vterm

Figure 4-7. DFAG Electrical Control Model.

Table 4-5. DFAG Electrical Control Parameters.


Variable Name PSLF Parameter Recommended Value
KQi kqi 0.1*
KVi kvi 40**
XIQmax xiqmax 1.45
XIQmin xiqmin 0.50
Vmax vmax 1.10
Vmin vmin 0.90
Ipmax ipmax 1.1
* North American WindCONTROL, see text for other configurations.
** Subject to field tuning

4.2.3 Control Strategies


A variety of control strategies can be represented, including voltage regulation of a
remote bus or constant power factor control, both with and without the supervisory
WindCONTROL. The various strategies can be implemented by setting the varflg,
pfaflg, and Kqi parameters as follows:

GE Energy 4.10 GE WTG Modeling-v4.6, 3/8/13


 Operation with WindCONTROL and with North American “volt/VAr” control
(varflg = 1, pfaflg = 0, Kqi = 0.1) This represents the normal configuration for
recent and future North American wind plants, using the WindCONTROL
emulator in the model to represent the wind farm management system.
 Operation without WindCONTROL and with North American “volt/VAr”
control (varflg = 0, pfaflg = 0, Kqi = 0.001) With the WindCONTROL turned off,
Kqi is reduced so there is a slow reset to desired reactive power and WTG
terminal voltage control is rapid. (This combination of flags and Kqi = 0.1 can be
used to emulate WindCONTROL at a fixed plant reactive power control.)
 Operation without WindCONTROL and with European fast power factor
control (varflg = 0, pfaflg = 1, Kqi = 0.5) This represents the common
configuration for European wind parks, where a set power factor angle is
rapidly regulated by the converter control. Closed loop voltage control is not
used on these systems, but is left in the model to approximately represent other
means that are used to limit voltage excursions that would otherwise cause
unit tripping.
 Operation with WindCONTROL and with European fast power factor control
(varflg = 1, pfaflg = 0, Kqi = 0.5) This represents the another configuration for
European wind parks when WindCONTROL is employed. Similar to the North
American model except the regulator gain is at the higher value. The power
factor control flag, pfaflg, is set to zero because the signal from the
WindCONTROL is a reactive power order, rather than power factor angle.

4.2.4 Open Loop Control Logic


This feature was used in some wind plants with GE WTGs before the
implementation of the local closed-loop terminal voltage control described above. The
open loop control logic is responsive to large variations in system voltage, and is
inactive whenever the terminal voltage is within its normal range. It is described by
Table 4-6. The functions in this table represent an optional open loop control that was
implemented to improve system performance for large voltage deviations resulting
from system events. The open loop control logic forces the reactive power to pre-
specified levels as voltage deviations persist. This feature has not been offered for
several years, and will not be offered for future projects with GE WTGs. However,
representative values from earlier projects for the open loop control parameters are
given in Table 4-7.

GE Energy 4.11 GE WTG Modeling-v4.6, 3/8/13


Table 4-6. Open Loop Reactive Power Control Logic.
Voltage Condition Time Duration Open Loop Reactive
Power Command
Vterm < VL1 t < TL1 QL1
TL1 < t < TL2 QL2
t > TL2 QL3
Vterm > VH1 t < TH1 QH1
TH1< t < TH2 QH2
t > TH2 QH3

Table 4-7. Open Loop Reactive Power Control Parameters.


Recommended Value
No Open Loop
Variable Name PSLF Parameter Open Loop Control**
Control
VL1 (pu) vl1 0.9 -9999.
VH1 (pu) vh1 1.1 9999.
TL1 (sec.) tl1 0.1 0.
TL2 (sec.) tl2 0.5 0.
TH1 (sec.) th1 0.1 0.
TH2 (sec.) th2 1.0 0.
QL1 (pu) ql1 0* 0.
QL2 (pu) ql2 0.45 0.
QL3 (pu) ql3 0* 0.
QH1 (pu) qh1 0* 0.
QH2 (pu) qh2 -0.245 0.
QH3 (pu) qh3 0* 0.
* The closed-loop Q command, Qord, is passed without modification by setting this to 0.
** Only for some projects before mid-2003, check with owner.

GE Energy 4.12 GE WTG Modeling-v4.6, 3/8/13


4.3 Wind Turbine and Turbine Control Model
The wind turbine model (wndtge in PSLF) provides a simplified representation of a
very complex electro-mechanical system. The block diagram for the model is shown in
Figure 4-8. In simple terms, the function of the wind turbine is to extract as much
power from the available wind as possible without exceeding the rating of the
equipment. The wind turbine model represents the relevant controls and mechanical
dynamics of the wind turbine. This model is used for both the DFAG and full converter
WTG models. However, some of the features (e.g., dynamic braking resistor) are not
applicable to the DFAG machines. The differences will be discussed in detail in the
following subsections, as well as in Section 5.3.
Details of the turbine control model (torque control, pitch control, pitch
compensation) are described in Section 4.3.1. The rotor mechanical model is described
in Section 4.3.2. The Wind Power Model is a moderately complex algebraic relationship
governing the mechanical shaft power that is dependent on wind velocity, rotor speed
and blade pitch. This model is described in Section 4.3.3. The details of the optional
controls are described in Section 4.3.4, Active Power Control emulator, and Section
4.3.5, WindINERTIA model.
The converters used in both the DFAG and full converter machines make it possible
to inject or absorb reactive power (e.g., regulate voltage) at zero real power. However,
the reactive capability of the DFAG model is reduced, from +/- 0.436pu to +/- 0.12pu,
while operating with the WindFREE control. Zero power may be the result of no wind,
excessive wind, or an operator directive to curtail output. All three of these zero power
scenarios may be simulated with this model by setting the wfflg parameter to 1.
For the first scenario (no wind), a user-written wind profile model is required to drive
a specific WTG’s wind speed below the low wind speed threshold. As the wind speed
drops, so does the machine speed, electrical power and mechanical power. Below the
low wind speed threshold, the decrease in mechanical power is implemented with a
pseudo drag term. Without the WindFREE control, a trip signal is generated when the
rotor speed falls below 0.10 pu. With this control feature, the generator model will still
respond to reactive power commands from the electrical control model (e.g.,
WindCONTROL emulator). The low wind speed threshold is set at 3 m/sec, and cannot
be changed by the user.
The second scenario (excessive wind) also requires a user-written wind profile
model. Once the wind speed exceeds the high wind speed threshold, the difference
between the wind speed and the threshold is integrated. If that value exceeds another
threshold and the WindFREE control is enabled, the machine goes into zero-power
operation (i.e., electrical power and rotor speed are zero). The integration represents
an inverse time function. The more excessive the wind speed, the earlier the unit
enters zero-power operation. All of the wind speed thresholds and timers are internal
to the model and cannot be changed by the user. The high wind speed threshold is
currently set at 25 m/sec and the inverse-time threshold at 8 m-sec/sec.

GE Energy 4.13 GE WTG Modeling-v4.6, 3/8/13


For the third scenario (curtailed output), the real power at the generator in the
power flow is zero. The WTG will initialize at zero wind speed, machine speed, electrical
and mechanical power. Again, the generator model will inject or absorb reactive
power in response to reactive power commands from the electrical control model.
The key limitation on zero-power operation is that once in that mode, the WTG
stays there. The model is neither applicable nor appropriate for simulating start-up
scenarios.

GE Energy 4.14 GE WTG Modeling-v4.6, 3/8/13


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

Anti-windup on Pwmin& d P /dt min


Pitch Pitch Limits
Compensation
+ pinp
K pc+ K ic / s 
s3

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)

Figure 4-8. Wind Turbine Model Block Diagram.

4.3.1 Turbine Control Model


The central part of Figure 4-8 is the model of the turbine controls. The practical
implication of the turbine control is that when the available wind power is above the

GE Energy 4.15 GE WTG Modeling-v4.6, 3/8/13


equipment rating, the blades are pitched to limit the mechanical power (Pmech)
delivered to the shaft to the equipment rating (1.0 pu). When the available wind power
is less than rated, the blades are set at minimum pitch to maximize the mechanical
power. The dynamics of the pitch control are moderately fast, and can have
significant impact on dynamic simulation results. A detailed diagram of that portion of
the model is shown in Figure 4-9.
rate limit PImax
Kpp (PIrate) Blade
err + Pitch
 cmd 1
    
+ * + 1 + sTPI
Kip + +
s PImin
ref Non-
windup limit
Pitch Control

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.

Figure 4-9. Pitch Control and Pitch Compensation Block Diagram.

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.

GE Energy 4.16 GE WTG Modeling-v4.6, 3/8/13


The model reference speed is normally 1.2 pu, but is reduced for power levels
below 46%. This behavior is represented in the model by using the following equation
for speed reference when the power is below 0.46 pu:
ref = -0.75P2 + 1.59P + 0.63
The speed reference slowly tracks changes in power with a low pass filter time
constant of 60 seconds. Note: In the actual controller, the speed reference is not
directly a function of power, but the overall effect on the speed/power relationship
is similar.
The turbine control acts to smooth out electrical power fluctuations due to
variations in shaft power. By allowing the machine speed to vary around reference
speed, the inertia of the machine functions as a buffer to mechanical power variations.
The model includes a low rotor speed tripping function. If the DFAG machine speed
falls below 0.10 pu, the WTG is tripped instantaneously.
The model also includes high and low wind speed cut-out for the turbine. For the
DFAG machine, this results in a generator trip. All of the wind speed thresholds and
timers are internal to the model and can not be changed by the user.
The high wind speed threshold is currently set at 25 m/sec. The difference between
the wind speed and the high wind speed threshold is integrated and if that value
exceeds another threshold (8 m-sec/sec), the unit is tripped. The integration represents
an inverse time function. The more excessive the wind speed, the faster the unit is
tripped.
The low wind speed threshold is set at 3 m/sec. For this function, the decrease in
rotor speed and power is approximated with a pseudo drag term. The unit is tripped,
via the low rotor speed tripping function described above, when the rotor speed falls
below 0.10 pu.
Once a WTG has tripped, it can not be started again. The model is neither
applicable nor appropriate for simulating start-up scenarios.
Parameter values for the DFAG wind turbine control model are shown in Table 4-8.
None of these values should be modified by the user unless advised to so by the
manufacturer.

GE Energy 4.17 GE WTG Modeling-v4.6, 3/8/13


Table 4-8. DFAG WTG Turbine Control Parameters (on Turbine MW Base).
Variable Name PSLF Parameter Recommended Value
Kpp kpp 150.
Kip kip 25.
Tp (sec) tp 0.30
max (deg) pimax 27.
min (deg) pimin 0.0
dθ/dt max (deg/sec) pirat 10.0
dθ/dt min (deg/sec) -pirat -10.0
Pwmax (pu) pwmax 1.12
Pwmin (pu) pwmin 0.04
dP/dt max (pu/sec)* pwrat 0.45
dP/dt min (pu/sec)* -pwrat -0.45
Kpc kpc 3.0
Kic kic 30.0
Kptrq kptrq 3.0
Kitrq kitrq 0.6
Tpc tpc 0.05
wfflg wfflg 0
*This pair of values needs to be set to +/- 2.0 when the 2-mass
mechanical model is used, as described in the next section.

4.3.2 Rotor Mechanical Model


The block labeled “Rotor Model” in the upper part of Figure 4-8 includes the rotor
inertia equation for the WTG rotor. This equation uses the mechanical power from the
wind power model and the electrical power from the generator/converter model to
compute the rotor speed. GE recommends using the simple single-mass equivalent.
However, a two-mass rotor model, with separate masses for the turbine and
generator, is available, as shown in Figure 4-10. Note that the power from the
dynamic braking resistor, Pdbr (also shown in Figure 4-8) is only used with full
converter WTGs as discussed in Section 5.3.
The data for the rotor mechanical model are given in Table 4-9. These parameters
result in torsional oscillation frequencies of approximately 1.8 Hz for the 1.5 and
1.6 MW machines, and 2.6 Hz for the 3.6 MW machine. The torsional damping
coefficient, Dtg, is set to approximate the damping provided by a damping function in
the controller. Increasing the power rate limits, dP/dt max (pu/sec), as noted above is
also required to approximate this damping function.

GE Energy 4.18 GE WTG Modeling-v4.6, 3/8/13



spd0
+
 rotor
Turbine Speed
+

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
+

Figure 4-10. Two-Mass Rotor Model.

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

GE Energy 4.19 GE WTG Modeling-v4.6, 3/8/13


4.3.3 Wind Power Model
For power system simulations involving grid disturbances, it is a reasonable
approximation to assume that wind speed remains uniform for the 5 to 30 seconds
typical of such cases. However, the mechanical power delivered to the shaft is a
complex function of wind speed, blade pitch angle and shaft speed. Further, with wind
generation, the impact of wind power fluctuations on the output of the machines is of
interest. The turbine model uses the wind power model to provide this mapping.
The function of the wind power model is to compute the wind turbine mechanical
power (shaft power) from the energy contained in the wind, using the following
formula:

P A r v 3w Cp ( , )
2
P is the mechanical power extracted from the wind,  is the air density in kg/m3, Ar is
the area swept by the rotor blades in m2, vw is the wind speed in m/sec, and Cp is the
power coefficient, which is a function of  and .  is the ratio of the rotor blade tip
speed and the wind speed (vtip/vw), and  is the blade pitch angle in degrees. The
relationship between blade tip speed and turbine rotor speed, , is a fixed constant, Kb.
Thus, the calculation of  becomes:
 = Kb (/vw)
For GE WTGs, the parameters given in Table 4-10 will result in Pmech in pu on the
unit’s MW base.
Table 4-10. DFAG WTG Wind Power Coefficients.
GE 1.5 MW GE 1.6 MW GE 3.6 MW
½ Ar 0.00159 0.00159 0.00145
Kb 56.6 56.6 69.5
Cp is a characteristic of the wind turbine and is usually provided as a set of curves
relating Cp to , with  as a parameter. Representative Cp curves for the GE wind
turbines are shown in Figure 4-11. Curve fitting was performed to obtain the
mathematical representation of the Cp curves used in the model:
4 4
Cp (, )    i, j i j
i0 j0

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.

GE Energy 4.20 GE WTG Modeling-v4.6, 3/8/13


0.5

θ=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
λ

Figure 4-11. Wind Power Cp Curves.

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.

GE Energy 4.21 GE WTG Modeling-v4.6, 3/8/13


Table 4-11. Cp Coefficients αi,j
i j ij
4 4 4.9686e-010
4 3 -7.1535e-008
4 2 1.6167e-006
4 1 -9.4839e-006
4 0 1.4787e-005
3 4 -8.9194e-008
3 3 5.9924e-006
3 2 -1.0479e-004
3 1 5.7051e-004
3 0 -8.6018e-004
2 4 2.7937e-006
2 3 -1.4855e-004
2 2 2.1495e-003
2 1 -1.0996e-002
2 0 1.5727e-002
1 4 -2.3895e-005
1 3 1.0683e-003
1 2 -1.3934e-002
1 1 6.0405e-002
1 0 -6.7606e-002
0 4 1.1524e-005
0 3 -1.3365e-004
0 2 -1.2406e-002
0 1 2.1808e-001
0 0 -4.1909e-001

4.3.4 Active Power Control Model & Rate Limit Function


The Active Power Control (APC) model and rate limiting function are shown in detail
in Figure 4-12. The APC model is a simple representation of the active power control
required by many European grid codes. This function is a portion of the wind farm
management system (WindCONTROL). The primary objectives of the APC are to:
 Enforce a maximum wind plant power output
 Provide a specified margin by generating less power than is available
 Enforce a plant power ramp rate limit
 Respond to system frequency excursions

GE Energy 4.22 GE WTG Modeling-v4.6, 3/8/13


By default, the APC model is disabled. It may be enabled by setting the data
parameter, apcflg, to 1.
Under normal operating conditions with near nominal system frequency, the
control is either enforcing a maximum plant output (i.e., Pmax) or providing a specified
margin by generating less power than is available from the wind (e.g., actual power
generated is 95% of the available power, or Pbc = 0.95).
In response to frequency excursions, the control switches into another mode and
calculates a plant power order as a function of system frequency. This path requests a
higher than usual power order for low frequency events, and lower than usual power
order for high frequency events. Thus, the wind plant will generate additional power in
response to the loss of other generating facilities or less power in response to the loss
of load.
An auxiliary frequency signal, normally zero, may be set by a user-written model to
test APC performance in response to other types of frequency deviations. Such
deviations could include frequency steps, ramps, or other functions defined by the host
utility’s interconnection requirements.
An example frequency response curve is shown in Figure 4-13. Points A through D
on this response curve may be set to meet specific performance objectives or
requirements of the host grid. The value of Pd should be greater than or equal to the
minimum power, which is discussed below. The value of Fb must be less than 1, and
that of Fc must be greater than 1. The value of Tpav may be increased to simulate fixed
power reference.

Wind Wind 1. Active Power Control


Speed Power (optional)
(glimv) Model pavl

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)

Figure 4-12. Active Power Control Emulator.

GE Energy 4.23 GE WTG Modeling-v4.6, 3/8/13


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)

Figure 4-13. Example Frequency Response Curve.

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.

GE Energy 4.24 GE WTG Modeling-v4.6, 3/8/13


The time constant of the washout filter determines the ramp rate limit imposed on
changes to the power order signal. This function is always in service and is not
disabled by setting apcflg to 0. Example data for both the APC and power response
rate limit functions are shown in Table 4-12.

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

4.3.5 WindINERTIA Model


System disturbances that include the loss of generation normally result in transient
depressions of system frequency. The rate of frequency decline, the depth of the
frequency excursion, and time required for system frequency to return to normal are
affected by the dynamic characteristics of generation connected to the grid. In the
first few seconds following the loss of a large generating plant, the frequency
dynamics of the system are dominated by the inertial response of the generation.
Conventional synchronous generation inherently contributes some stored inertial
energy to the grid, reducing the initial rate of frequency decline and allowing slower
governor actions to stabilize grid frequency.
Most modern MW-class wind generation does not exhibit this inertial response.
However, GE’s WindINERTIA™ feature provides an inertial response capability for wind
turbines, similar to that of conventional synchronous generators, for large under-
frequency grid events. Note that this control is asymmetric: it only responds to low
frequencies. High frequency controls are handled separately by the APC described
above. Fast supplemental controls, added to the fast power electronics and
mechanical controls of the WTG, take advantage of the inertia in the rotor. For these
large underfrequency events, this feature temporarily increases the power output of

GE Energy 4.25 GE WTG Modeling-v4.6, 3/8/13


the wind turbine in the range of 5% to 10% of the rated turbine power. The duration of
the power increase is on the order of several seconds. This benefits the grid by
allowing other non-wind power generation assets time to increase their power
production during under-frequency events.
The power delivery of the wind turbine-generator is limited not only by the
available wind, but by the physical limitations of the components of the WTG. Most
critical are aero-mechanical ratings and speed limits. A key point is that slowing the
turbine tends to reduce the aerodynamic lift, thereby reducing the delivered
mechanical shaft torque and exacerbating the speed decline caused by increased
generator electrical torque. This positive feedback tends to push the blade towards
aerodynamic stall, which must be avoided. The inertial control must provide margin
above stall, and is consequently limited when the initial rotor speed is low. The power
and energy of the inertial response declines below about 50% rated power, dropping
to zero at below about 20%. Inertial energy extracted by slowing the rotation of the
turbine must ultimately be recovered. After the initial increase in electrical power, it
must temporarily drop below the mechanical power to allow the energy to recover,
reaccelerating the rotor.
The control philosophy is to sense significant grid frequency depressions, as
observed at the terminals of the individual wind turbine generators, and to temporarily
increase power output. The simplified model of this function is shown in Figure 4-14.
Frequency error is simply the deviation from nominal, with an auxiliary frequency
signal, normally zero, available to implement specific test functions. A positive
frequency error means the frequency is low and extra power is needed. The deadband
suppresses response of the controller until the error exceeds a threshold. This limits
the WindINERTIA response to large events - those for which inertial response is
important to maintain grid stability, and for which seriously disruptive consequences,
like UFLS, may result. The continuous small perturbations in frequency that
characterize normal grid operation are not passed through to the controller. The
deadband output signal is further filtered, coordinated with the other turbine controls,
and limited. The coordination, as implemented in the turbine control model, consists of
modifications to several gains and time constants. Specifically, the proportional gain in
the torque control, Kptrq, is reduced to 0.5, the integral gain, Kitrq, is reduced to 0.05, and
the subsequent filter time constant, Tpc, is increased to 4.0 seconds, when the
WindINERTIA function is active (i.e., an under-frequency event is simulated). There is no
reset, so these parameter changes are permanent for any given simulation. The final
WindINERTIA command is added to the power order and implemented by the WTG
converter controls, ultimately resulting in additional power delivery.
By default, the WindINERTIA model is disabled. It may be enabled by setting the
gain parameter, Kwi, to a non-zero value. Example data for this function are shown in
Table 4-13.

GE Energy 4.26 GE WTG Modeling-v4.6, 3/8/13


WindINERTIA Control
WTG Terminal (optional)
Pmxwi
Bus Frequency

+
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

Figure 4-14. Simplified WindINERTIA Control Model.

Table 4-13. WindINERTIA Control Parameters.


Variable Name PSLF Parameter Recommended Value
Kwi kwi 10.
dbwi dbwi 0.0025
Tlpwi tlpwi 1.
Twowi twowi 5.5
urlwi urlwi 0.1
drlwi drlwi -1.0
Pmxwi pmxwi 0.1
Pmnwi pmnwi 0.0

GE Energy 4.27 GE WTG Modeling-v4.6, 3/8/13


5 Full Converter WTG Dynamic Models
This section presents the engineering assumptions, detailed structure, and data for
each of the component models necessary to represent a GE full converter WTG. Since
the grid performance of full converter WTGs, like the DFAG WTGs, is dominated by the
converter controls, the dynamic models described in Section 4 are the basis for the full
converter models. The modifications made to represent the full converter WTGs are
the focus of this section. Therefore, the common model features are not, in general,
discussed in this section.
5.1 Generator/Converter Model
This model (gewtg in PSLF with fcflg = 1) is the equivalent of the generator and the
full converter and provides the interface between the WTG and the network. The GE
DFAG WTG is represented by a flux and active current command. The GE full converter
WTG model differs in that it is represented by both reactive and active current
commands. The model is shown in Figure 5-1. Modified data parameters appropriate
for the full converter model are shown in Table 5-1.

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

Figure 5-1. Full Converter WTG Generator/Converter Model.

Table 5-1. Full Converter Generator/Converter Parameters.


PSLF Parameter Recommended Value
fcflg 1
brkpt 0.9
zerox 0.4

GE Energy 5.1 GE WTG Modeling-v4.6, 3/8/13


5.2 Electrical (Converter) Control Model
This model (ewtgfc in PSLF) dictates the active and reactive power to be delivered
to the system based on inputs from the turbine model (Pord) and from the supervisory
VAr controller (Qord). Figure 5-2 shows the electrical control as modified to represent
the full converter WTG. The reactive power control, shown in Figure 4-5, remains
unchanged. Therefore, the WindCONTROL emulator (Section 4.2.1) can be used.
The primary philosophical change to the model was to generate a reactive current
command rather than a flux command. Additional functions include a dynamic
braking resistor and converter current limit. The open loop control logic available in
the DFAG electrical control model for representing old 1.5 MW WTGs is not included in
the control model for the full converter WTGs.
The objective of the dynamic braking resistor (DBR) is to minimize the WTG
response to large system disturbances, such as extended periods of low voltage. This
is accomplished by absorbing energy in the braking resistor when the power order is
significantly greater than the electrical power delivered to the grid. In this model, the
power order is compared to the actual electrical power to determine the power
absorbed by the braking resistor, Pdbr. This power is integrated to determine the
resulting energy absorbed by the braking resistor, Edbr. As long as that energy level is
less than the threshold, EBST, no other action occurs. When the energy level exceeds
the threshold, the resulting error signal is greater than zero and the amount of power
absorbed by the dynamic braking resistor is reduced. This ensures that the energy
capability of the resistor is respected. The model does not include thermal reset, so
simulations with multiple events may result in limited DBR response.
An auxiliary test signal can be injected into the terminal bus voltage regulator via
model[@index].sigval[0], as shown in Figure 5-2. A user-written dynamic model
(epcmod) is needed to generate the desired signal. The index of the wind generator
model (@index) can be obtained using the model_index function.
The details of the converter current limit are shown in Figure 5-3. The objective of
this function is to prevent the combination of the real and reactive currents from
exceeding converter capability. Depending upon the value of a user-specified flag,
pqflag, either real or reactive power has priority. This flag is dependent upon the
equipment features selected, and is normally dictated by the host system grid code.
When real power has priority, the real current order, IPcmd, is limited to the
minimum of the maximum temperature dependent converter current, ImaxTD, and a
hard active current limit, Iphl. The calculation of the limit on the reactive current begins
by determining the minimum of a hard reactive current limit, Iqhl, and a voltage
dependent limit, Iqmxv. The voltage dependent limit will be equal to the steady-state
rating of the wind plant (as defined by the input parameter Qmax) at 1.0 pu voltage and
will linearly increase as voltage drops. The maximum voltage dependent reactive
current limit is 1.6 pu at zero voltage. The minimum of Iqhl and Iqmxv is compared to the
remaining converter current capability, SQRT(ImaxTD2 - IPcmd2). That minimum is the

GE Energy 5.2 GE WTG Modeling-v4.6, 3/8/13


maximum (capacitive) limit, Iqmx, applied to the reactive current order, IQcmd. The
minimum (inductive) reactive current, Iqmn, is the negative of the maximum. No
minimum is applied to the real current order.
When reactive power has priority, the calculation of the limit on the reactive
current begins by determining the minimum of a hard reactive current limit, Iqhl, and
the voltage dependent limit, Iqmxv, as described above. The minimum of Iqhl and Iqmxv is
compared to a maximum temperature dependent converter current, ImaxTD. That
minimum is the maximum limit, Iqmx, applied to the reactive current order, IQcmd. The
minimum reactive current, Iqmn, is the negative of this maximum limit. The remaining
converter current capability, SQRT(ImaxTD2 – IQcmd2), becomes the maximum, Ipmx,
applied to the real current order, IPcmd. No minimum is applied to the real current
order. Reactive power priority is recommended, which is equivalent to the default
value of 0 for pqflag.
The preliminary values for the additional data associated with the converter
current limit and dynamic braking resistor are shown in Table 5-2. The converter
current limit, ImaxTD, is a function of time and operation. However, it is constant in this
model (1.7 pu) and not user-specified.
The bulk of the remaining data is unchanged from that used for a DFAG WTG. Data
associated with the reactive power control model that should be modified to correctly
represent a full converter WTG are shown in Table 5-3.

GE Energy 5.3 GE WTG Modeling-v4.6, 3/8/13


Auxiliary Test Signal
Qgen ( model[@index].sigval[0] )
Vmax Iqmx
- + IQcmd
Qcmd + Vref
KQi / s KVi / s
+ (efd)
s0 - s1
to Wind
Vterm Vmin Iqmn
Generator Model

P,Q Priority Flag


Converter Current Limit

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

Figure 5-2. Full Converter WTG Electrical Control Model.

GE Energy 5.4 GE WTG Modeling-v4.6, 3/8/13


P,Q Priority Flag
(pqflag)

0 1

Iqmn Iqmx Vt Iqmx Iqmn

Q Priority Iqmxv P Priority


1.6
qmax
Vt
-1 1.0 -1
Iqmxv
Iqhl Minimum

Minimum Minimum

IPcmd
ImaxTD ImaxTD2 - IPcmd2

IQcmd
ImaxTD2 - IQcmd2
Iphl

Minimum Minimum

Ipmx Ipmx

Figure 5-3. Converter Current Limit Model.

Table 5-2. Full Converter WTG Electrical Model.


Variable Name PSLF Parameter Recommended Value
Iphl (pu) iphl 1.24
Iqhl (pu) iqhl 1.25
pqflag pqflag 0=Q priority
EBST (pu) ebst 0.2
Kdbr kdbr 10.
Table 5-3. Full Converter WTG WindCONTROL Emulator Parameters.
Variable Name PSLF Parameter Recommended Value
KVi kvi 120.
Qmax (pu) qmax 0.40
Qmin (pu) qmin -0.40

GE Energy 5.5 GE WTG Modeling-v4.6, 3/8/13


5.3 Wind Turbine and Turbine Control Model
Only minor modifications were made to represent the additional functions of the
full converter wind turbine. Therefore, the same model is used in PSLF (wndtge) for
both DFAG and full converter WTGs. The modifications included the following:
 Incorporation of the dynamic braking resistor power, and
 Implementation of the no-wind (i.e., zero power) var capability.
The block diagram for the turbine model is unchanged, and is shown in Figure 4-8.
The signal representing the dynamic braking resistor power, Pdbr, is now added to
the electrical power as an input to both the rotor model and the creation of the speed
reference. When this model is used to represent the DFAG WTG, the dynamic braking
resistor power is automatically set to zero.
The converters used in both the DFAG and full converter machines make it possible
to inject or absorb reactive power (e.g., regulate voltage) at zero real power. However,
the reactive capability of the DFAG model is reduced while operating with the
WindFREE control. With a full converter WTG, the full reactive capability is retained
with this feature. Zero power may be the result of no wind, excessive wind, or an
operator directive to curtail output. All three of these zero power scenarios may be
simulated with this model by setting the wfflg parameter to 1.
The key limitation on zero-power operation is that once in that mode, the WTG
stays there. The model is neither applicable nor appropriate for simulating start-up
scenarios.
Three turbine control parameters are different from those used to represent a
DFAG WTG. Those parameters and their recommended values are shown in Table 5-4.
The remaining turbine control parameters can be used for the full converter without
change. Note that they are on the MW rating base of the turbine. The turbine-
generator mechanical model parameters for the full converter WTG are given in Table
5-5. While two-mass parameters are provided for the 2.5 MW full-converter machine,
GE does not recommend the two-mass model. Such a two mass representation in
simulations is not technically valid, because the converter isolates the machine from
the power system. Therefore, a single mass model is recommended. The same Cp
curves are used for the full converter WTG together with the wind power coefficients
shown in Table 5-6.

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

GE Energy 5.6 GE WTG Modeling-v4.6, 3/8/13


Table 5-5. Full Converter WTG Rotor Model Parameters (on Turbine MW Base).
Variable Name PSLF Parameter Recommended Value
One-mass Model
H h 4.18
Two-mass Model (Not Recommended)
H h 3.36
Hg hg 0.82
Ktg ktg 3.86
Dtg dtg 1.5
base wbase 144

Table 5-6. Full Converter WTG Wind Power Coefficients.


Variable Name Recommended Value
½ Ar 0.00159
Kb 56.6

GE Energy 5.7 GE WTG Modeling-v4.6, 3/8/13


6 DFAG WTG Benchmark Simulations
The models described in this report have been implemented in GE’s PSLF load flow
and dynamic simulation software. The PSLF models have been validated by
comparison with more detailed simulation models and field measurements, as
described in Section 8. Representative results using the PSLF models are presented in
this section. Note that these simulations are not necessarily updated with each
version of this document. Therefore, the simulations may not always use the latest
model or data recommendations. They do, however, illustrate the general
performance characteristics of the DFAG wind plant model. The data used for these
simulations is shown in Section 6.3.
Upon request, GE will provide the PSLF benchmark simulation results to those who
wish to implement the models in other simulation programs. The results can be
supplied in ASCII format for cross-plotting in order to validate the model
implementation.
6.1 Test System
One line diagrams of the primary test system are shown in Figure 6-1. The top
diagram shows real and reactive power flow (MW, MVAr), and the bottom diagram
shows impedances (pu on 100 MVA). The test system represents an aggregate model
of a wind plant, suitable for analyzing the response of the wind plant to grid
disturbances. The many WTGs of the actual wind plant are combined into a single
WTG model, a single unit transformer, a single 34.5 kV feeder representing the collector
system, and a substation transformer to the system point of interconnection. For this
test system, the wind plant is rated 100.5 MW, representing the aggregation of 67
1.5 MW WTGs.

Figure 6-1. Primary DFAG Test System.

GE Energy 6.1 GE WTG Modeling-v4.6, 3/8/13


The dynamic data used for the benchmark simulations are listed in Section 6.3.
Note that the WindCONTROL emulator was on (varflg = 1) for all cases. The Q Droop
function was only on for the example showing its performance (Section 6.2.2).
Similarly, the Active Power Control and WindINERTIA functions were only on to illustrate
their performance in Sections 6.2.3 and 6.2.6, respectively.
6.2 DFAG WTG Benchmark Simulation Results
Plotted simulation results are provided for each example. Traces plotted together
generally share the same scaling, as shown on the y-axis. However, there are
exceptions. Scaling for a particular trace can be confirmed by checking the legend
below each plot. The same plot format was used for all simulations, and a brief
description follows.
From top to bottom, the left column shows the infinite bus voltage (dark blue line,
pu), WTG terminal voltage (red line, pu), and point of interconnection voltage (green
line, pu) in the first plot.
The second plot shows WTG real power generated (dark blue line, MW), reactive
power generated (red line, MVAr), and mechanical power (green line, MW).
The third plot shows variables associated with the active power control.
Specifically, it shows the total available power in the wind (Pavf, dark blue line, pu),
turbine power order from the torque control (Pinp, red line, pu), the output of the active
power control (Pstl, green line, pu), the power order after the active power control limit
is applied (Plim, light blue line, pu), the output of the washout in the power response
rate limit (Wsho, pink line, pu), and the final power order from the turbine to the
electrical control model (Pord, black line, pu).
The fourth and final plot in the left column shows the WTG terminal bus frequency
(dark blue line, Hz), and the flag from the active power control indicating a frequency
excursion (red line).
From top to bottom, the right column shows the WindCONTROL emulator voltage
reference (dark blue line, pu) and regulated voltage (red line, pu). In all cases, the
regulated bus was the point of interconnection.
The second plot shows the rotor speed (dark blue line, pu).
The third plot shows the blade pitch (dark blue line, deg) and wind speed (red line,
m/sec).
The fourth and final plot in the right column shows the real power current
command (Ipcmd, dark blue line, pu) and the reactive power voltage behind a
reactance command (E”qcmd, red line, pu).
Note that per unit values of real and reactive power are on the MVA base for
variables associated with the generator and electrical control models. Per unit values
of real and reactive power are on the MW base for variables associated with the
turbine model. Transfer variables between models (e.g., Pord from the turbine to the
electrical control) are on the MVA base of the receiving model.

GE Energy 6.2 GE WTG Modeling-v4.6, 3/8/13


6.2.1 Fault Response with WindCONTROL Emulator
Two simulations illustrate WTG response to grid disturbances. One disturbance is a
series of 3-phase bus faults with various fault impedances, the other is a 3-phase fault
to ground cleared by tripping one of the 230 kV lines from the POI bus to the Infinite
bus. The results are shown in Figure 6-2 and Figure 6-3, respectively.
In both examples, the reactive power output of the WTG is at or near its maximum
during the fault in an effort to regulate voltage. After each fault is removed, the
WindCONTROL emulator quickly restores the voltage at the POI bus to its initial value.

GE Energy 6.3 GE WTG Modeling-v4.6, 3/8/13


Figure 6-2. Series of Bus Faults with Various Fault Impedances.

GE Energy 6.4 GE WTG Modeling-v4.6, 3/8/13


Figure 6-3. 3-phase Fault to Ground, Cleared by Tripping 230 kV Line.

GE Energy 6.5 GE WTG Modeling-v4.6, 3/8/13


6.2.2 Q Droop Function Performance
The Q Droop function is presented in this section. This is the only case for which
that function was active, i.e., the gain parameter Kqd was non-zero. Figure 6-4 shows
the Q Droop response to a capacitor bank switching event.
Initially, the wind plant is regulating the POI voltage to approximately 1.03 pu. The
Q Droop function is using reactive power at the generator terminals as its input. At 1
second, a 30 MVAr capacitor is switched on. The reactive power output from the
generator decreases to maintain the regulated bus voltage. The output of the Q Droop
function, shown in the upper right plot as the green trace (Vqd), decreases with the
reactive power output. Therefore, the effective reference voltage decreases. This
results in a higher final POI bus voltage, shown in the upper right plot as the red trace
(Vreg), of about 1.035 pu.

GE Energy 6.6 GE WTG Modeling-v4.6, 3/8/13


Figure 6-4. Q Droop Response to Capacitor Switching.

GE Energy 6.7 GE WTG Modeling-v4.6, 3/8/13


6.2.3 Active Power Control and Power Response Rate Limit Performance
The Active Power Control (APC) and power response rate limit performance are
presented in this section. This is the only case for which the APC was active, i.e., the
input parameter apcflg was set to 1.
Figure 6-5 shows the APC’s response to a loss of load. Initially, the wind plant is
constrained to 0.95 pu of the power available in the wind. Therefore, the blade pitch is
non-zero.
At 1 second, 100 MW of load is tripped. As a result, system frequency increases.
Shortly thereafter, the frequency exceeds the first high frequency threshold (Fc =
1.004 pu or 60.24 Hz) in the APC’s frequency response curve. This defines a frequency
excursion event, and the frequency excursion flag is set to 1. The output of the APC
function, which is the upper limit imposed on the power order from the turbine, begins
to decrease (Pstl, left column, third plot, green line). The washout in the power
response rate limit (Wsho, pink line) transiently allows the higher power order from the
turbine control (Pinp, red line) through to the final power order (Pord, black line).
At about 8 seconds, the washout settles to near zero, and the final power order is
equal to the output of the APC. Between about 12 and 14 seconds, the frequency is
below the high frequency threshold for APC operation. However, this is only
temporary. The frequency rises a bit and the wind plant APC continues to operate.
Throughout the simulation, the large machine on the Infinite bus is attempting to
control frequency by reducing its output. By the end of the simulation, the frequency
has settled to about 60.3 Hz and the APC output to about 0.92 pu in accordance with
the frequency response curve characteristic.

GE Energy 6.8 GE WTG Modeling-v4.6, 3/8/13


Figure 6-5. Active Power Control Response to Loss of Load.

GE Energy 6.9 GE WTG Modeling-v4.6, 3/8/13


6.2.4 Wind Speed Profile
Wind plant response to a wind speed profile is shown in Figure 6-6. The initial wind
speed of about 8.5 m/sec results in a power output of about 50 MW, and a blade pitch
of 0 degrees.
Starting at 5 seconds, the wind speed increases over the next 40 seconds to a
maximum of 15 m/sec. The power output follows the wind speed up to the maximum
output of 100 MW. The blade pitch increases to shed the excess power available in the
wind. The reactive power output increases to maintain the POI voltage with the higher
power output.
At about 65 seconds, the wind speed starts to fall, with the power output following.
The reactive power also decreases to regulate POI voltage with the lower real power
output.
At about 105 seconds, the wind speed falls below the minimum wind speed
threshold, which is a non-user-specified value of 3 m/sec. The rotor speed continues
to fall until it reaches 0.1 pu, which is another non-user-specified threshold. At this
point, about 130 seconds, the WTG models are tripped. Real and reactive power
output go to zero, and the POI voltage is no longer regulated.

6.2.5 Zero Power (WindFREE) Operation


The above wind profile is used to test zero power operation, as shown in Figure 6-7.
This is the only case for which that function was active, i.e., the flag wfflg was non-zero.
Again, the initial wind speed of about 8.5 m/sec results in a power output of about
50 MW, and a blade pitch of 0 degrees.
The simulation is identical to that shown in Figure 6-6 until the WTGs trip at about
130 seconds. At this point, the real power output goes to zero, but the reactive power
output does not. The wind plant is still regulating the POI voltage. However, the
reactive power capability of the plant has been reduced, since the DFAG machine does
not use a full-sized converter. Thus, the POI voltage is not perfectly regulated. The
voltage performance is, however, better than that achieved without the WindFREE
capability.

GE Energy 6.10 GE WTG Modeling-v4.6, 3/8/13


Figure 6-6. Response to Wind Speed Profile without Zero Power Operation.

GE Energy 6.11 GE WTG Modeling-v4.6, 3/8/13


Figure 6-7. Response to Wind Speed Profile with Zero Power Operation.

GE Energy 6.12 GE WTG Modeling-v4.6, 3/8/13


6.2.6 WindINERTIA Control Performance
WindINERTIA control performance is presented in this section. This is the only case
for which that function was active, i.e., the gain parameter Kwi was non-zero.
The control was tested using the auxiliary signal shown in Figure 4-14. This test
signal is added to the constant bus frequency, and results in the frequency input to the
WindINERTIA control as shown in the bottom, left plot of Figure 6-8. This frequency
input signal falls below 59 Hz. The output of the WindINERTIA control is shown by the
pink trace in the third plot on the left side. The control output reaches 0.10 pu, and
lasts about 15 seconds. This results in an increase in wind plant power output of up to
10%, as shown in the second plot on the left side. There is little impact on rotor speed
because the WTGs are able to provide additional power by decreasing blade pitch. The
incremental energy delivered to the system is drawn from the energy available in the
wind rather than from the rotating inertia of the machine.
At lower wind speeds, the incremental energy delivered by WindINERTIA would
result in a drop in rotor speed, and a power back swing as the energy needed to
reaccelerate the rotor is recovered from the system.

GE Energy 6.13 GE WTG Modeling-v4.6, 3/8/13


Figure 6-8. Response to Frequency Signal with WindINERTIA.

GE Energy 6.14 GE WTG Modeling-v4.6, 3/8/13


6.3 DFAG WTG Benchmark Simulation Dynamic Data
The generator, electrical control and turbine control dynamic data used in the
benchmark simulations are shown in Table 6-1, Table 6-2, and Table 6-3, respectively.
Table 6-1. DFAG Generator Model (gewtg) Data for Simulations.
Model Parameter 1.5 MW WTG
MVA 111.
lpp 0.80
dvtrp1 -0.25
dvtrp2 -0.50
dvtrp3 -0.70
dvtrp4 -0.85
dvtrp5 0.10
dvtrp6 0.15
dttrp1 1.90
dttrp2 1.20
dttrp3 0.70
dttrp4 0.20
dttrp5 1.00
dttrp6 0.10
fcflg 0
rrpwr 10.0
brkpt 0.90
zerox 0.50

GE Energy 6.15 GE WTG Modeling-v4.6, 3/8/13


Table 6-2. DFAG Electrical Control Model (exwtge) Data for Simulations.
Model
Model Parameter 1.5 MW WTG 1.5 MW WTG
Parameter
varflg 1 ql1 0
kqi 0.10 ql2 0
kvi 40. ql3 0
vmax 1.10 qh1 0
vmin 0.90 qh2 0
qmax 0.436 qh3 0
qmin -0.436 pfaflg 0
xiqmax 1.45 fn 1.0
xiqmin 0.50 tv 0.05
tr 0.02 tpwr 0.05
tc 0.15 ipmax 1.22
kpv 18. xc 0
kiv 5. kqd 0 or 0.04*
vl1 -9999 tlpqd 5.0
vh1 9999 xqd 0.0
tl1 0 vermn -0.1
tl2 0 vermx 0.1
th1 0 vfrz 0.7
th2 0
* Different values for different simulations

GE Energy 6.16 GE WTG Modeling-v4.6, 3/8/13


Table 6-3. DFAG Turbine Control Model (wndtge) Data for Simulations.
Model Model
1.5 MW WTG 1.5 MW WTG
Parameter Parameter
mwcap 100.5 tw 1.0
usize 1.5 apcflg 0 or 1*
spdw1 14.0 tpav 0.15
tp 0.30 pa 1.0
tpc 0.05 pbc 0.95
kpp 150. pd 0.40
kip 25. fa 0.96
kptrq 3.0 fb 0.996
kitrq 0.60 fc 1.004
kpc 3.0 fd 1.04
kic 30. pmax 1.0
pimax 27. pmin 0.20
pimin 0. kwi 0 or 10.*
pirat 10. dbwi 0.0025
pwmax 1.12 tlpwi 1.
pwmin 0.04 twowi 5.5
pwrat 0.45 urlwi 0.1
h 4.94 drlwi -1.0
nmass 1 pmxwi 0.1
hg - pmnwi 0.0
ktg - wfflg 0 or 1*
dtg -
wbase -
* Different values for different simulations

GE Energy 6.17 GE WTG Modeling-v4.6, 3/8/13


7 Full Converter WTG Benchmark Simulations
The models described in this report have been implemented in GE’s PSLF load flow
and dynamic simulation software. The PSLF models have been validated by
comparison with more detailed simulation models, as described in Section 8.
Representative results using the PSLF models are presented in this section. These
simulations focus on the capabilities of this type of machine, rather than repeating the
tests performed for the DFAG benchmark simulations. Note that these simulations are
not necessarily updated with each version of this document. Therefore, the
simulations may not always use the latest model or data recommendations. They do,
however, illustrate the general performance characteristics of the full converter wind
plant model. The data used for these simulations is shown in Section 7.3.
Upon request, GE will provide the PSLF benchmark simulation results to those who
wish to implement the models in other simulation programs. The results can be
supplied in ASCII format for cross-plotting in order to validate the model
implementation.
7.1 Test System
The test system was similar to that used for the 1.5 MW DFAG simulations, which is
described in Section 6.1. The wind plant was rated at 100 MW, and consisted of 40
2.5 MW full converter WTGs. Minor modifications were made to the wind plant power
output and system voltage profile as necessary to test the various functions.
7.2 Full Converter WTG Benchmark Simulation Results
As noted above, the test simulations described in this section focus on the
capabilities of the full converter machine, rather than repeating the tests performed for
the DFAG benchmark simulations. Specifically, the following subsections will describe
simulation results illustrating the performance of the zero-power operation capability,
converter current limit, low voltage power logic, and dynamic braking resistor. A
variety of disturbances are represented – fault events, wind profiles, and control input
changes.
Plotted results are provided for each test simulation. Traces plotted together
generally share the same scaling, as shown on the y-axis. However, there are
exceptions. Scaling for a particular trace can be confirmed by checking the legend
below each plot. The same plot format was used for most simulations, and a brief
description follows.
From top to bottom, the left column shows the infinite bus voltage (dark blue line,
pu), WTG terminal voltage (red line, pu), and point of interconnection voltage (green
line, pu) in the first plot.
The second plot shows WTG real power generated (dark blue line, MW), reactive
power generated (red line, MVAr), and mechanical power (green line, MW).
The third plot shows the final power order from the turbine to the electrical control
model (Pord, dark blue line, pu).

GE Energy 7.1 GE WTG Modeling-v4.6, 3/8/13


The fourth and final plot in the left column shows variables associated with the
dynamic braking resistor. Specifically, this plot shows the difference between electrical
power and the power order (Pdlt, dark blue line, pu), the power absorbed by the
dynamic braking resistor (Pdbr, red line, pu), the energy absorbed by the dynamic
braking resistor (Edbr, green line, pu), and the difference between the energy absorbed
by the dynamic brake and the energy threshold (Eerr, light blue line, pu).
From top to bottom, the right column shows the WindCONTROL emulator voltage
reference (dark blue line, pu) and regulated voltage (red line, pu). In all cases, the
regulated bus was the point of interconnection.
The second plot shows the rotor speed (dark blue line, pu).
The third plot shows the blade pitch (dark blue line, deg) and wind speed (red line,
m/sec).
The fourth and final plot in the right column shows the real power (Ipcmd, dark blue
line, pu) and reactive power (Iqcmd, red line, pu) current commands from the electrical
control to the generator. Three converter current limits are also plotted: the maximum
real current (Ipmx, green line, pu), the maximum reactive current (Iqmx, light blue, pu),
the voltage dependent reactive current limit (Iqxv, pink line, pu). Finally, the real power
current command after the low voltage power logic (Iplv, black line, pu) is shown.
Note that per unit values of real and reactive power are on the MVA base for
variables associated with the generator and electrical control models. Per unit values
of real and reactive power are on the MW base for variables associated with the
turbine model. Transfer variables between models (e.g., Pord from the turbine to the
electrical control) are on the MVA base of the receiving model.
7.2.1 Fault Response with WindCONTROL Emulator
Two simulations illustrate WTG response to grid disturbances. One disturbance is a
series of 3-phase bus faults with various fault impedances, the other is a 3-phase fault
to ground cleared by tripping one of the 230 kV lines from the POI bus to the Infinite
bus. The results are shown in Figure 7-1 and Figure 7-2, respectively.
In both examples, the reactive power output of the WTG is at or near its maximum
during the fault in an effort to regulate voltage. After each fault is removed, the
WindCONTROL emulator quickly restores the voltage at the POI bus to its initial value.

GE Energy 7.2 GE WTG Modeling-v4.6, 3/8/13


Figure 7-1. Series of Bus Faults with Various Fault Impedances.

GE Energy 7.3 GE WTG Modeling-v4.6, 3/8/13


Figure 7-2. 3-phase Fault to Ground, Cleared by Tripping 230 kV Line.

GE Energy 7.4 GE WTG Modeling-v4.6, 3/8/13


7.2.2 Zero-Power Operation
Three scenarios involving zero-power operation of the full converter WTG are
illustrated in this section.
Figure 7-3 shows the WTG’s response to increasing wind speed. As wind speed
increases, the blade pitch increases in an effort to maintain the desired power output.
At about 19 seconds, the wind speed exceeds the high speed threshold, 25 m/sec, and
the inverse time tripping characteristic starts incrementing. At about 24 seconds, the
tripping threshold is reached and the turbine is tripped. The rotor speed, electrical and
mechanical power are all zero at this point. With WindFREE, however, the full
converter WTG continues to generate reactive power in order to regulate voltage at
the POI bus.
Figure 7-4 shows the WTG’s response to the same wind profile use in Section 6.2.5.
Starting at 5 seconds, the wind speed increases over the next 40 seconds to a
maximum of 15 m/sec. The power output follows the wind speed up to the maximum
output of 100 MW. The blade pitch increases to shed the excess power available in the
wind. The reactive power output increases to maintain the POI voltage with the higher
power output.
At about 65 seconds, the wind speed starts to fall, with the power output following.
The reactive power also decreases to regulate POI voltage with the lower real power
output.
At about 105 seconds, the wind speed falls below the minimum wind speed
threshold, which is a non-user-specified value of 3 m/sec. At about 120 seconds, the
electrical and mechanical power go to zero, but the reactive power output does not.
The wind plant is still regulating the POI voltage.
The final example of zero-power operation is shown in Figure 7-5. This simulation
used a modified test system with an initial wind plant power output of 0 MW. At 1
second, the POI bus voltage schedule is increased by 0.03 pu. While real power output
remains zero, reactive power is increased to regulate the POI bus voltage to the new
reference. At 5 seconds, the voltage schedule is decreased by 0.03 pu. Again, the WTG
regulates the voltage with zero real power output.

GE Energy 7.5 GE WTG Modeling-v4.6, 3/8/13


Figure 7-3. Increasing Wind Speed Results in Zero-Power Operation.

GE Energy 7.6 GE WTG Modeling-v4.6, 3/8/13


Figure 7-4. Response to Wind Speed Profile with Zero Power Operation.

GE Energy 7.7 GE WTG Modeling-v4.6, 3/8/13


Figure 7-5. Voltage Regulation in Continuous Zero-Power Operation.

GE Energy 7.8 GE WTG Modeling-v4.6, 3/8/13


7.2.3 Converter Current Limit Performance
The performance of the converter current limit function is illustrated in this section.
In general, the converter current capability will not be limiting except for severe system
disturbances. Therefore, an arbitrary step was applied to one of the hardwired current
limits, ImaxTD, as a test. This test can not be replicated with the public version of PSLF.
Realistic limits and the converter current limit function’s response to a system fault
were shown in Section 7.2.1.
Figure 7-6 shows WTG response to a reduction in the converter current limit, ImaxTD,
with real power or P priority. The WTG was initially operating at about 0.83 pu of
generator MVA base, equivalent to 1.0 pu on the turbine MW base. At 1 second, the
current limit was reduced from 1.7 pu to 0.65 pu. As a result the real power command
is reduced to 0.65 pu. Due to the P priority, the reactive power command is reduced to
zero. The converter current limit was returned to its initial value of 1.7 pu at 5 seconds.

GE Energy 7.9 GE WTG Modeling-v4.6, 3/8/13


Figure 7-6. Step Reduction in Converter Current Limit with P Priority.

GE Energy 7.10 GE WTG Modeling-v4.6, 3/8/13


7.2.4 Low Voltage Power Logic Performance
The performance of the low voltage power logic (LVPL) is illustrated in this section.
The rate of post-fault power recovery in the LVPL is governed by the value of the
generator input data parameter rrpwr. The recommended value for this parameter is
10. However, a value of 3 was used in this simulation for a clearer illustration of the
LVPL’s performance.
Figure 7-7 shows WTG response to a long, depressed voltage due to a fault on the
POI bus. The fault is applied at 1 second, reducing POI bus voltage to near 0 pu for the
next 0.5 seconds. The LVPL becomes active shortly after fault application when the
terminal bus voltage falls below 0.90 pu. As a result, the real power of the generator is
reduced the voltage dependent cap calculated by the LVPL. After the fault is removed,
the terminal voltage returns to its pre-fault level. However, the recovery of the real
power is ramp rate limited. The chosen rrpwr value results in a 0.2 second recovery
time. Thus the generated power reaches its pre-fault level at about 1.4 seconds.
7.2.5 Dynamic Braking Resistor Performance
The performance of the dynamic braking resistor is also illustrated by the test
simulation shown in Figure 7-7.
As described above, the fault induced voltage depression causes the low voltage
power logic to operate. This, in turn, results in a difference between the power order
and the electrical power delivered to the system which is dissipated in the dynamic
braking resistor. At about 1.3 seconds, the energy absorbed by the resistor exceeds
the specified threshold, EBST, of 0.2 pu. From that point forward, the rate at which
energy is absorbed into the braking resistor is reduced to minimize energy absorption
in excess of the capability.

GE Energy 7.11 GE WTG Modeling-v4.6, 3/8/13


Figure 7-7. Low Voltage Power Logic Response to Fault on POI Bus.

GE Energy 7.12 GE WTG Modeling-v4.6, 3/8/13


7.3 Full Converter WTG Benchmark Simulation Dynamic Data
The generator, electrical control and turbine control dynamic data used in the
benchmark simulations are shown in Table 7-1, Table 7-2, and Table 7-3, respectively.
Any data changes required to test specific functions were noted in the simulation
descriptions provided in Section 7.2.
Table 7-1. Full Converter WTG Generator Model Data for Simulations.
Model Parameter 2.5 MW WTG
MVA 120.
lpp 0.80
dvtrp1 -0.25
dvtrp2 -0.50
dvtrp3 -0.70
dvtrp4 -0.85
dvtrp5 0.10
dvtrp6 0.15
dttrp1 1.90
dttrp2 1.20
dttrp3 0.70
dttrp4 0.20
dttrp5 1.00
dttrp6 0.10
fcflg 1
rrpwr 10
brkpt 0.9
zerox 0.4

GE Energy 7.13 GE WTG Modeling-v4.6, 3/8/13


Table 7-2. Full Converter WTG Electrical Control Model Data for Simulations.
Model Parameter 2.5 MW WTG
varflg 1
kqi 0.10
kvi 120.
vmax 1.10
vmin 0.90
qmax 0.40
qmin -0.40
tr 0.02
tc 0.15
kpv 18.
kiv 5.
pfaflg 0
fn 1.0
tv 0.05
tpwr 0.05
iphl 1.24
iqhl 1.25
pqflag 0 or 1*
kdbr 10.
ebst 0.2
xc 0.0
kqd 0.0
tlpqd 5.0
xqd 0.0
vermn -0.1
vermx 0.1
vfrz 0.7
* Different values for different simulations

GE Energy 7.14 GE WTG Modeling-v4.6, 3/8/13


Table 7-3. Full Converter WTG Turbine Control Model Data for Simulations.
Model
Model Parameter 2.5 MW WTG 2.5 MW WTG
Parameter
mwcap 100. tw 1.0
usize 2.5 apcflg 0
spdw1 14.0 tpav 0.15
tp 0.30 pa 1.0
tpc 0.05 pbc 0.95
kpp 150. pd 0.40
kip 25. fa 0.96
kptrq 0.3 fb 0.996
kitrq 0.1 fc 1.004
kpc 3.0 fd 1.04
kic 30. pmax 1.0
pimax 27. pmin 0.2
pimin 0. kwi 0
pirat 10. dbwi 0.0025
pwmax 1.12 tlpwi 1.02
pwmin 0.0 twowi 5.5
pwrat 0.45 urlwi 0.1
h 4.18 drlwi -1.0
nmass 1 pmxwi 0.1
hg - pmnwi 0.
ktg - wfflg 1
dtg -
wbase -

GE Energy 7.15 GE WTG Modeling-v4.6, 3/8/13


8 PSLF Model Validation
Performance of both the PSLF fundamental frequency 1.5 MW DFAG and 2.5 MW
full converter WTG models is compared to that of the detailed cycle-by-cycle EMTP
type models incorporated in GE’s Windtrap program, and to field measurements.
8.1 1.5 MW DFAG Comparison to Windtrap
The performance of GE 1.5 MW WTGs as modeled in PSLF and Windtrap is
compared to provide validation of the PSLF model.
The study system, shown in Figure 8-1, was based on one developed for the WECC
generic WTG modeling project. A single machine equivalent of a 100 MW wind plant is
connected via appropriate transformers and a collector system to a 230 kV equivalent
system. Figure 8-1 shows the weak system with MW and MVAr flows in the upper
diagram and pu impedances in the lower diagram. The point of interconnection (POI) is
defined as bus 2.

Figure 8-1. Test System for PSLF and Windtrap Comparison.

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).

GE Energy 8.1 GE WTG Modeling-v4.6, 3/8/13


In all figures, the PSLF response matches the Windtrap response in the frequency
range of interest. Thus the PSLF model is an appropriate representation of the GE
1.5 MW WTG’s behavior for fundamental frequency analysis.
1.50
Windtrap
PSLF

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.

GE Energy 8.2 GE WTG Modeling-v4.6, 3/8/13


3.0
Windtrap
PSLF

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.

GE Energy 8.3 GE WTG Modeling-v4.6, 3/8/13


8.2 2.5 MW Full Converter Comparison to Windtrap
The performance of GE 2.5 MW full converter WTGs as modeled in PSLF and
Windtrap is compared to provide validation of the PSLF model. The test system was
similar to that used for the 1.5 MW DFAG comparison, which is described in Section 8.1.
The wind plant was rated at 100 MW, and consisted of 40 2.5 MW full converter WTGs.
Several test disturbances were applied to this system. However, the results of only
one are described here. This disturbance consisted of a 150 msec, 3-phase fault to
ground at the POI (bus 2).
The PSLF 2.5 MW model, as described in this document, and the Windtrap 2.5 MW
WTG model with the most recent GE controller (WCNTRLFLAG = 4) were used for this
comparison.
Cross plots of PSLF (blue line) and Windtrap (pink line) simulation results are shown
in Figure 8-5 through Figure 8-7. 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).
In all figures, the PSLF response matches the Windtrap response in the frequency
range of interest. Thus the PSLF model is an appropriate representation of the GE
2.5 MW WTG’s behavior for fundamental frequency analysis.
The low frequency oscillations in the Windtrap results are merely the result of
sampling aliasing.
1.50

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.

GE Energy 8.4 GE WTG Modeling-v4.6, 3/8/13


4.0

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.

GE Energy 8.5 GE WTG Modeling-v4.6, 3/8/13


8.3 WindINERTIA Model Comparison to Field Measurements
As noted in Section 4.3.5, an auxiliary signal can be used to inject any desired test
function into the WindINERTIA model. This is also true of the actual control. The test
frequency signal shown in Figure 8-8 was used to test both the WindINERTIA model
and the actual control in an operating WTG. At the wind turbine, this signal was
injected into the WindINERTIA function periodically under a wide variety of wind
conditions. Hence, a large amount of field results was acquired. These results were
aggregated by wind speed and averaged. Comparisons of model and field test results
for three different wind speeds (8 m/s, 10 m/s, 14 m/s) are shown in Figure 8-9. These
results indicate that the simple WindINERTIA model is an appropriate representation of
the actual, and very complicated, turbine and WindINERTIA control response.

Figure 8-8. Frequency Test Signal.

GE Energy 8.6 GE WTG Modeling-v4.6, 3/8/13


1800

1500

1200
Power (kW)

900

600

8 m/s Avg Meas 10 m/s Avg Meas 14 m/s Avg Meas


300
8 m/s PSLF 10 m/s PSLF 14 m/s PSLF

0
0 10 20 30 40 50 60 70 80 90
Time (Seconds)

Figure 8-9. WindINERTIA Model Performance and Field Measurements.

GE Energy 8.7 GE WTG Modeling-v4.6, 3/8/13


9 Conclusions
The wind turbine model presented in this report is based on presently available
design information, test data and extensive engineering judgment. The modeling of
wind turbine generators for bulk power system performance studies is still in a state of
rapid evolution, and is the focus of intense activity in many parts of the industry. More
important, the GE equipment is being continuously improved, to provide better
dynamic performance. These ongoing improvements necessitate continuing changes
and improvements to these models. This model is expected to give realistic and
correct results when used for bulk system performance studies. It is expected that as
experience and additional hard test data is obtained, these models will continue to
evolve, in terms of parameter values and structure.
This document is continuously being updated to reflect these changes. Those
using this document for modeling purposes are encouraged to verify that they are
using the most up-to-date version. This document is available through the GE Wind
and PSLF software websites.

GE Energy 9.1 GE WTG Modeling-v4.6, 3/8/13

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

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:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy