What’s New in Version 20
The following is a list of many of the most noticeable changes in Simulator Version 20, which builds on PowerWorld Corporation’s dedication to creating powerful, easy-to-use analysis software. Version 20 contains a number of major new features and hundreds of smaller enhancements to improve the performance and convenience of the package.
Installation and Simulator Executable
- 64-bit beta-quality version of the software is included as part of the standard installation
- Zip files for patches will no longer be available. The installation MSI file is used for both the full installation and patches.
Auxiliary Files and Display Auxiliary Files
- Option to Use Concise Variable Names and Headers is now set to true by default
- Multiple auxiliary files can be loaded simultaneously when loading using the File Load Auxiliary option or the Load Auxiliary File option on the local menu of case information displays
Auxiliary File SCRIPT and SimAuto
- New Script Commands and SimAuto Functions
- UIVisible SimAuto property will allow Simulator to be visible while running SimAuto. New pwrworld 20.0 type library contains this property.
- Changes to Existing Script Commands and SimAuto Functions
- Added optional parameter PostClosureLCDF to CalculateLODF script command. This option specifies if line closure sensitivities should be calculated relative to the post-closure flow (LCDF) or pre-closure flow (MLCDF) on the line being closed.
- Added optional parameter PostClosureLCDF to the CalculateLODFMatrix script command. This option specifies if line closure sensitivities should be calculated relative to the post-closure flow (LCDF) or pre-closure flow (MLCDF) on the line being closed.
- Added optional parameter SaveDependencies to CTGWriteResultsAndOptions to specify if all objects needed to define selected objects are also saved
- Added optional parameter SaveDependencies to CTGWriteAllOptions to specify if all objects needed to define selected objects are also saved
- Added AbortOnError parameter to CalculateTLR script command that indicates if the TLR calculation fails whether the auxiliary file containing the command should cease processing or continue
- Added parameter CloseNormallyClosedDisconnects to CloseWithBreakers script command that will close any disconnect that is normally closed but currently open when searching for breakers
- DiffFlowMode can also be specified as CHANGE
- For the OpenOneline script command wildcards are allowed in the filename when opening DDL files
- Added parameter OpenNormallyOpenDisconnects to OpenWithBreakers script command that will open any disconnect that is normally open but currently closed when searching for breakers
- Added Delimiter parameter to Renumber3WXFormerStarBuses script command
- Added Delimiter parameter to RenumberMSLineDummyBuses script command
- Added parameter UseRight to ReassignIDs script command that will use the last two characters of the specified field that contains the new IDs
- For the SetCurrentDirectory script command the FileDirectory can now be specified using special keywords starting with @. The & format that allows specification of a Model Expression or model field can also be used.
- @MODELFIELD<objecttype ‘key1’ ‘key2’ ‘key3’ variablename:digits:rod> can be used as special keyword to insert the value of a model field as parts of filenames and other text specified in script commands
- When using the LoadAXD script command and the oneline is not open, a new oneline will be created even if calling the script command from Simulator. Previously, this would only happen when calling from SimAuto or Retriever.
- Added new parameter MaxOption to the CTGCreateContingentInterfaces(filtername, MaxOption) script command that will allow specification of whether interfaces should be created for all violations or based on the highest overload of a branch, highest overload of a contingency, or union of the branch and contingency overloads.
- The OpenOneline script command will now open a oneline if called from Simulator. Previously, this would only work when calling from SimAuto or Retriever.
- When using the special syntax in a script command to force an Open or Save Dialog to appear, Simulator will now automatically set the initial directory of the Open or Save Dialog to whatever the presently CurrentDirectory is as managed by the script command SetCurrentDirectory().
- In the SetScheduledVoltageForABus script command, the objecttype BUS is no longer required when identifying the bus. Appropriate key fields can simply be used without the objecttype. If the bus cannot be found, the script command will not result in a fatal error that will prevent other script commands in the same aux file from processing.
- Modified the script command CalculateLODFMatrix() to add an optional sixth parameter for “FilterMonitorInterface”. The syntax for this parameter is the same as FilterMonitor which defines the which Branch objects to monitor. FilterMonitorInterface will instead define which Interfaces to monitor and calculate LODFs on.
- Modified RestoreState script command to take optional parameter that can be USER, LASTSUCCESSFUL, or BEFOREFAILED. USER will restore the user specified state stored by the script command StoreState. LASTSUCCESSFUL will restore the state from the last successful power flow solution. BEFOREFAILED will restore the state before a failed power flow solution. This will work with power flow solved through the GUI or using the SolvePowerFlow script command.
- Modified so that when creating a generator from an AUX file we default the EnforceMWLimit field to YES. Previously it was defaulted to NO.
- Added a new field for a Branch called MeteredBus. This shows the same information as MeteredEnd bus instead you enter the number of the bus which is metered. This make coordination of field when reading/writing from an AUX file or another database easier because the order in which key fields are listed doesn’t matter then. The existing field MeteredEnd will say FROM or TO, but this must be coordinated with the how the From/To bus of the branch are defined.
Aux Export Format Description
- Added more built-in formats for creating auxiliary files for various tools
Available Transfer Capability (ATC)
- Merit Order Close Ramping is now an injection group ramping option to simulate the transfer
- Added field Transfer Limiter Result to ATCScenario object type that allows access to the value that is shown in the Results table in the GUI
Case Information Displays
- Added support for filtering on DateTime fields
- Quick Filter dropdown on Case Information Toolbar provides direct access to options for more quickly building a quick filter without needing to open the dialog
- When copying the value of one field to another field, floating point values can be copied into integer fields. This is done by truncating the floating point field.
- Added the DataMaintainerInherit YES/NO field which is enterable for the following objects: Bus, Gen, Load, Shunt, LineShunt, Branch, 3WXFormer, DFACTS, DCTransmissionLine, MTDCRecord and VSCDCLine. Setting this value to NO will prevent these objects from inheriting their DataMaintainer from their terminal bus objects.
- Added the DataMaintainerInheritBlock YES/NO field for a Bus and Substation object. For a Bus, set to YES to block the inheritance of the Data Maintainer for other objects connected to this bus. For example, if this is YES, generators at this bus will not inherit the Data Maintainer from this bus. For a Substation, set to YES to block the inheritance of the Data Maintainer for the buses in this substation.
- Modified so that one can edit the intermediate bus numbers of MultiSectionLine objects while in Edit Mode directly on the fields shown the intermediate bus numbers on the MSLine case information display.
- Added ability to edit the Star Bus Number of a three-winding transformer while in edit mode. This has the effect of renumbering the star bus.
- Allow the number of generator cost curve bid points to be set to 0. When this is done, all of the curve points are deleted. If the cost model is PiecewiseLinear, it will be set to None.
- Added dc line status as a field that is available with the dc line case information display.
- Added Bus kV Actual, Bus Per Unit Magnitude, and Bus Angle (degrees) fields for Line Shunts for the bus at which the shunt is located.
- Added additional fields to 3WXformer objects for MW, Mvar, MVA, Amps, PercentMVA, and Percent (with variations of Pri, Sec, and Ter on each)
- Added new field to Island records to show the Number of Generators, Number of Loads, and Number of Switched Shunts in an island. This can be helpful in determining which islands are of any interest.
- Added two new functions to the Expression for looking for sub-strings inside other strings. These mimic the Microsoft Excel functions Find and Search. Find(Find_Text, Within_Text, [Start_Num]). Returns the integer position of the sub-string Find_Text looking inside the string Within_Text. You may optionally instruct us to start the search at character position Start_Num. If Start_Num is not specified, then we start at position 1. The search is case-sensitive. You may not use wildcard characters * or ?. Search(Find_Text, Within_Text, [Start_Num]). Returns the integer position of the sub-string Find_Text looking inside the string Within_Text. You may optionally instruct us to start the search at character position Start_Num. If Start_Num is not specified, then we start at position 1. The search is not case-sensitive. Also the Find_Text may include a ? to indicate any single character of an * to indicate any number of characters.
- Allow insert of a new Branch on the Transformer Controls table.
- Modified how Simulator determines the tap integer position for transformers. Previously Simulator would treat the 0 position as the tap in the middle of the TapMax/TapMin range. This has been changes so that the 0 position is always represented by 1.0000 on the TRANSFORMER BASE. Positive tap positions then move upwards from there and negative tap positions move downwards from there.
- Added the ability to edit the variable transformer tap ratio (or phase) by editing the Integer Tap Position directly instead of by editing the TapRatio or Phase.
- Added new fields for Branch objects to show the Maximum Integer Tap Position and Minimum Integer Tap Position. These are calculated from the the TapMax and TapMin values (just as the TapMaxxfbase and TapMinxfbase are calculated). Also added the ability to edit these fields which will modify the TapMax and TapMin field as appropriate.
- Added 2 new user-entered fields to a transformer for use in translating Simulator’s integer tap position into an integer that uses the EMS convention. One field is TapPosEMSNom which specifies the integer considered to be at the nominal tap (1.0000 on transformer base or 0 degrees for a phase shifter). The second field is the TapPosEMSStepSign which is either +1 or -1. TapPosEMSStepSign = +1 indicates that a positive TapPosEMS means an increasing tap ratio going up to TapMax. TapPosEMSStepSign = -1 indicates that a positive TapPosEMS means a decreasing tap ratio going down to TapMin. The translation is as follows: TapPosEMS=TapPosEMSNom+(TapPosEMSNom*TapPosEMSStepSign)
- Added a new field to show the integer tap position using the EMS convention. The tap or phase can then be edited using this field as well. The EMS convention uses the following conversion: TapPosEMS=TapPosEMSNom+(TapPos*TapPosEMSStepSign). When editing this field the Tap or Phase of the transformer will be edited as appropriate.Added a new field to show the integer max tap position using the EMS convention. If TapPosEMSStepSign = +1, then TapPosEMSMin = TapPosEMSNom + TapPosMin. If TapPosEMSStepSign = -1, then TapPosEMSMin = TapPosEMSNom – TapPosMax. Notice that when TapPosEMSStepSign = -1 then TapPosEMSMin is related to TapPosMax. When editing this field the respective TapMin or TapMax are edited as appropriate.
- Added a new field to show the integer min tap position using the EMS convention. If TapPosEMSStepSign = +1, then TapPosEMSMax = TapPosEMSNom + TapPosMax. If TapPosEMSStepSign = -1, then TapPosEMSMax = TapPosEMSNom – TapPosMin. Notice that when TapPosEMSStepSign = -1 then TapPosEMSMax is related to TapPosMin. When editing this field the respective TapMin or TapMax are edited as appropriate.
- Added a column to the Branch table of the Lines that Create Islands dialog to show a list of the buses islanded if the branch is open, as bus numbers separated by commas.
- Added support for filtering across objecttypes for the BalancingAuthority objects. This impacts the following objects: Bus, Gen, Load, Shunt, Branch, DCTransmissionLine, VSCDCLine, Zone, Area, SuperArea, Substation, SuperBus, Subnet, ReactiveCapability, 3WXFormer, MultiSectionLine objects.
- For a MultisectionLine object, added new fields BusInt, BusInt:1, BusInt:2 … BusInt:20 which list the intermediate buses of a multisection line. This permits the creation of multi-section lines with up to 21 intermediate buses (22 intermediate branches) without using the section.
- Added the ability to turn on hints on Case Info Displays that display column metrics for selected cells. Settings for these hints are on the Case Information Display tab of the Simulator Options dialog.
- Added fields for three-winding transformers to show MonitorPri, MonitorSec, MonitorTer, LimitSetPri, LimitSetSec, and LimitSetTer.
- Added new Interruptible field for loads. This is an information only field.
- Added a new generator field “UnitTypeCode” that shows the two character code for the UnitType. The field is the same as UnitType, just shorter.
- Added a field with generators called Number of Mvar Capability Curve Points.
- When using the Solve and Set as Reference option, a prompt will now appear asking if the user wants to continue with this operation.
- When using Integrated Topology Processing, monitor only the primary bus for each superbus option will now monitor the primary bus for each superbus, bus with the highest low voltage limit, and bus with the lowest high voltage limit.
- Added Dependency Explorer to analyze all of the objects being used by contingencies and remedial actions
- Added action to Close a specified Number of Elements in an Injection Group
- Added Injection Group action for Set To and Change By Best Fit Open
- Added Interface action for Set To and Change By Merit Order Open
- Added Interface action for Set To and Change By MW Effect Open
- Added Interface action for Set To and Change By Best Fit Open
- Added Substation actions for Set To and Change By in MW and Percent to adjust the online generators in the substation
- Added Phase Shifter actions for Set To and Change By in Degrees to adjust the phase shifter angle
- Added Script action that will allow specifying a list of script commands as a contingency action
- Power flow solution option Evaluate Power Flow Solution for Each Island will prevent a failed contingency solution if at least one island solves
- Contingency Processed field now has PARTIAL as an option if solving based on multiple islands and some of the islands converge and some do not
- Prevent new island without enough controllable generation option will not allow new islands to be considered viable during the contingency solution if they do not have enough controllable generation to meet the load and losses in the island
- Report Violations for Islands option allows monitoring islands during the contingency solution
- If a contingency has been processed, contingency records are highlighted based on the Solved field
- When choosing to save a case, a check is done to help ensure that a user does not save a post-contingency system state accidentally
- New options added in various tools to save objects used by other objects (dependencies) when saving contingency definitions and associated objects to file
- New option to save using Area/Zone filters for contingency options and limit monitoring settings related to area, bus, gen, and shunt objects
- Added Model Result Override object that allows overriding the result of Model Conditions and Model Expressions
- Remedial Actions and Remedial Action Elements have an Arming Criteria and Arming Status that determine if they are armed
- Added screening process that uses linear analysis to screen contingencies prior to running full AC analysis on contingencies that pass the screening
- Added Ignore Remedial Action Elements if Model Criteria is True in Contingency Reference State option
- Added options for saving contingency results to file instead of computer memory
- New contingency violation category of Unsolved indicates if the contingency solution did not converge
- Contingency records can be filtered by filters created for object type LimitViol. This is useful for finding contingencies that have violations of specific elements.
- Added ability for LimitViol and ViolationCTG object types to return EMS identifying information from the violated element
- Percent field for a voltage violation will now show a value that is based on the voltage limit
- New Source List field for LimitViol object type used to indicate the origin of the violation when comparing two lists of results
- Added fields to LimitViol and ViolationCTG object types for showing Reference State fields in the Comparison Case
- Violations have fields showing scaled results that determine the limit and percent for any of the possible limits for an object. This allows storing the limit violations against the most restrictive rating set and still show what the percentage would be against all limit sets.
- Include Remedial Action field allows exclusion of remedial actions for specified contingencies
- Calculation Method field with contingency records indicates how the contingency was solved
- Post Contingency Solution Auxiliary File can be specified with contingency options. This is loaded after the contingency is solved.
- New object type ContingencyActive allows access to fields associated with the currently active contingency
- CTG_Options object has Active Contingency field that provides the name of the active contingency
- Auto inserting contingencies can be done by Line Shunts
- Auto inserting contingencies can be done by Bus Groupings
- Bus Groupings determined by explicitly defined breakers and Implicit Breakers defined with buses that allow the user to indicate where breakers exist in the case without all actual breakers defined
- Custom Monitors have options for tripping an element if it meets a tripping filter or aborting the entire simulation
- Violation CTG Note object added to stores notes for contingency violations
- Added new field called Voltage Reduce Load MW to contingency results that returns the amount of total load MW that has been reduced because of the solution options for Minimum Voltage for Constant Power and Constant Current Load
- For contingency actions using Open with Breakers, the flow on the element being opened as well as the flow on the breakers being opened dynamically are included in the What Actually Occurred information
- Time delays are enforced when using the Iterated Linear Contingency process
- Added local menu to the list of Contingency Violation List (shows all violations for all contingencies) to Solve Selected Contingency and Contingency Show Dialog
- Interface Open actions will open generators and loads in addition to the ac branches in the interface
- Added a new field to a LimitViol named “SourceList” that will be useful when comparing two lists of contingencies results. This field will indicate which list of results this violation existed in. It will either show Both, Comparison, or Controlling.
- Added 7 new fields for a LimitViol object which give information about the violated end of the violated element. (BusNumViolEnd, BusNameViolEnd, NomkVViolEnd, AreaNameViolEnd, BANameViolEnd, ZoneNameViolEnd, SubNameViolEnd). These fields are then available in the ViolationCTG object as well with the field names LV_BusNumViolEnd, LV_BusNameViolEnd, LV_NomkVViolEnd, LV_AreaNameViolEnd, LV_BANameViolEnd, LV_ZoneNameViolEnd, LV_SubNameViolEnd.
- Added option with Contingency Violation Matrices to include unsolvable contingencies. When this is true the Solved field will be automatically added to the contingency matrix. Added optional parameter with CTGSaveViolationMatrices script command to IncludeUnsolvableCTGs for the same functionality.
- Modified so that the “Object” field of a ContingencyElement, RemedialActionElement, CTGElementBlockElement, PostPowerFlowActionsElement for any elements related to changing branch impedance, bypass, phase shift angle, or MW setpoint, the “Object” field could start with either “SERIESCAP” or with “PHASESHIFTER”. The Object field will now always start with the string “BRANCH” instead to make it consistent with the treatment of other objects.
- Modified so that the WhatOccurredDuringContingency objects have the ability to define CustomExpressions and CustomExpressionStrings.
- Added ability for the LimitViol and ViolationCTG object to return the EMS Topology related strings from the Violated Element such as EMSID and EMSType. Also, for the Branch objects returns the EMSLineID, EMSID2From, EMSID2To, EMSPSID, and EMSCBTyp.
- Added fields to a LimitViol and thus the ViolationCTG object for showing the Reference State fields in the Comparison Case. Also added fields for the difference between the Comparison and Controlling case for the reference state values.
- Modified the various Contingency fields showing the number of violations so that if the Solved field is equal to “RESERVE LIMITS”, then we now show the number of violations that were recorded anyway. Previously we showed the string “All make-up power at limits”. We will now assume the user can look at the Solved field to know this. The violations are still recorded when “RESERVE LIMITS” is listed, so showing the user this count is useful.
- When a contingency solution results in the change in MW injection (usually loss of generation) such that the generators in the island are unable to make-up for this change, then Simulator will return the string “RESERVE LIMITS” in the Violations columns for a particular contingency. This is done to indicate that the contingency result may not be reliable because all the additional make-up power has gone to the island slack bus. This has been modified so that if the island has ZERO generators which are set to (AGC=YES) and (PartFac > 0) then we do not bother returning the RESERVE LIMITS flag.
- Multi-section lines are now supported by Custom Monitors.
- Added Area, Zone and Balancing Authority fields to Contingency Elements and increased the numbers to include up to 8 of them instead of 4.
- Contingency Violation Matrices tables now allow access to the fields associated with the object type displayed in the row of the table.
- When running contingency analysis from the GUI and results already exist, the user will be prompted if all results should be cleared or only if the results for contingencies that are not skipped should be cleared. Added another optional parameter to CTGSolveAll script command called ClearAllResults that will accomplish the same prompting as what is done in the GUI. Script command is now CTGSolveAll(DoDistributed, ClearAllResults) with both parameters optional. ClearAllResults = YES by default.
- This tool has been renamed from being previously named Difference Flows
- Many improvements to include more fields in the comparison and make it clearer which fields are included
- Change Case is a new mode that will only show values that have changed
- Show Present|Base In Difference and Change option that will show the actual values instead of the difference or change when viewing in Difference or Change modes
- Color coding to better indicate differences
- Improvements when saving differences to auxiliary files for use in replicating the changes in other cases
- Pages for accessing differences by Type in addition to objects in New/Removed/Both sets of data
- Added support for showing differences on all transient stability model input data
- Additional fields for sequence resistance and reactance secondary and zero sequence neutral resistance and reactance
- EPC Format
- Version 21 supported for reading and writing
- Modified reading area records to set the area control to Off AGC if the absolute value of the difference between desired Pnet and actual Pnet defined with the area record is greater than 5 times the tolerance given with the area record
- When loading an EPC file, we now automatically use the advanced solution option to “Model Phase Shifters as Discrete Controls” as this represents how EPC files treat phase shifters.
- Modified how the “ta” field of a z table record is written out to an EPC file. If the first transformer used by the z table was FIXED then Simulator was always setting the “ta=0”. We now only set the z table based on the existing of a transformer which has a mode of Phase, LTC, or Mvar. Otherwise we base it on the average absolute value of taps specified in the impedance correction table.
- Added reading and writing of data maintainer with GE EPC files for most objects. DC buses, DC lines, and DC converters have not been completed yet. Data maintainer is supported in GE EPC version 21. There are now options to write in version 21.
- When reading in an EPC file we no longer ask for the version number because it doesn’t matter. We can read the file regardless and will read any data that is there.
- Modified writing switched shunts that are now set to AutoControl = NO so that they are written to the EPC file as FIXED control. This prevents them from being read back in on some other form of control and moving, when their autocontrol = no really meant they were at fixed output. This will lose whatever type of control the switched shunt may have been set to in Simulator, but prevents the VAR output from changing to something else when read in from the EPC file.
- Added support for reading the Balancing Authority information from the EPC file format
- Modified to read the DistMW, DistMvar and DistStatus fields from the EPC Version 19 files
- When reading an EPC file, if the Sum of Ownership participation for an object sums to a value which is not 1.000 then Simulator will automatically scale the values so they do sum to 100%. Log messages have been added when summations are not near 1.000 to help flag potential discrepancies in the input data. If the summation is greater than 3.00 or less than 0.50 then a log message is written. Also, if the summation is 0.000 then a log message is not written because Simulator will then simply default the ownership based on the terminal buses of the device.
- RAW Format
- When writing out RAW files to version 31 and later, now write out 8 decimal places for per unit voltages and 6 decimal places for voltage angles
- When loading an RAW file, we now automatically disable the advanced solution option to “Model Phase Shifters as Discrete Controls” as this represents how RAW files treat phase shifters.
- When loading RAW files, added option to specify a default switched shunt ID.
- hdbexport CSV Format
- POLE, DCCNV, VSC, DCND, and DCLN records in the hdbexport file can now be translated into multi-terminal dc lines and VSC dc lines within Simulator. This translation is optional. By default the user will be prompted when these records are found and asked if they want to do the translation. Options can then be set to never translate, always translate, or prompt to translate on subsequent loads of a CSV file.
- RASMOM loading is now supported
- The option to Close Breakers to Energize Switched Shunts is set to be used by default when loading hdbexport case file
- Added the ability to save known fields to a pattern file
- Store additional EMS identifying fields for various objects. These are found in the Topology folder in the list of available fields for each type of object.
- When reading an hdbexport CSV file, we have frequently encountered in-service branch that have a large angle difference and are radially connect to a superbus that has no load, generation or shunts connect to them. This should not happen, so to prevent large power flow mismatches we will automatically change the radially connect super bus voltage angles to be consistent. This is done at the start of a power flow solution.
- Several years ago, we modified reading the CB record so that if the TYPE field existed, then we would use that to determine whether a branch was a breaker, disconnect, etc. from this field. This was fine, but we then also modified so that we stored the “EMSCBTyp” string of the branch as this value. This was causing trouble when reading the RAS and Contingency records because the proper identifier for use in linking elements of RAS and Contingency records is to use the CBTyp.ID which had been lost by the changes made several years ago. The TYPE field will be used to determine what type of a device the CB is, however the field EMSCBTyp will now always be populated with CBTyp.ID.
- A file with a combination of records using a pattern file and using no pattern file can now be loaded without error. Appropriate warning messages are written to the log.
- When reading the hdbexport CSV file modified to interpret the VARMAN_UN field for a UN record to indicate whether to use the Capability Curve. If the value is TRUE, then the Capability Curve will not be used.
- When reading the Areva hdbexport case file, modified reading of CP (switched shunt) records so that the AVR_CP field toggles the Field AutoControl in Simulator to either YES or NO. Previously the AVR_CP determined whether the switched shunt was set to a Distcrete or Fixed mode.
- ABB Spider
- The option to Close Breakers to Energize Switched Shunts is set to be used by default when loading a file
- KML Format
- Added ability to open KML files by number, name_kv, or label
- GIC Format
- Added support for loading the GMD information used in PSS/E
- MatPower Format
- Added ability to write the *.M files used for input to the MatPower MATLAB function
- WebFG Definition
- This menu format can be loaded into the Oneline Viewer to create a custom menu
- Modified to initialize the generator field EnforceMWLimits for all the various file types. Previously this was only handled for RAW and EPC files, but it really needed to be handled for hdbexport CSV, MatPower, UCTE, Siemens, IPF etc. as well. Now after reading all non-PowerWorld file formats any generator that meets both of the following criteria will enforce be set to EnforceMWLimits = NO. 1. Generator is online (both CLOSED and attached to a connected bus) 2. Generator is more than 5 MWs outside of it’s limits: [MW < (MWMin – 0.5] OR [MW > (MWMax + 0.5)]. The thinking is that if the generator is clearly outside its limits then limit enforcement is not expected. The 0.5 MW tolerance is used to bias the decision to continue enforcing MW limits.
- 15 negative interface limits can be specified. These have been integrated into Contingency Analysis, ATC, and OPF tools.
- Status Branch field added to switched shunts that links a switched shunt to a particular branch. The status of the switched shunt is then affected by the status of the specified branch.
- SVCs can control any switched shunt except for other SVCs
- New object Bus Pair that will monitor the angle difference between two different buses
- Model Result Override object has been added. This allows overriding the result of a Model Condition, Model Filter, or Model Expression by ignoring the defined logic and specifying the result directly. These are useful with RAS modeling when real-time information is available to determine if an action is armed.
- Scaling using an injection group can now be done using Merit Order Close method
- Auto Control field added to switched shunts that determines if a shunt is allowed to be automatically controlled
- Added a new generator Unit Type of “SV (Static Var Compensator)” to be used when a generator is representing an SVC
- Added 9 new Unit Types based on updated DOE FORM EIA-860. New options are:
BA (Energy Storage, Battery)
CP (Energy Storage, Concentrated Solar Power)
FW (Energy Storage, Flywheel)
ES (Energy Storage, Other)
HA (Hydrokinetic, Axial Flow Turbine)
HB (Hydrokinetic, Wave Buoy)
HK (Hydrokinetic, Other)
BT (Turbines Used in a Bnary Cycle, including those used for geothermal applications)
WS (Wind Turbine, Offshore)
- Added additional generator unit type codes of W1, W2, W3, and W4. These are useful for those building WECC base cases to match the designation used there to distinguish between Type 1, 2, 3, and 4 wind turbines.
- Added Implicit Breaker field to buses to indicate that a breaker exists between the bus and all attached devices. This is used when identifying objects by Bus Grouping.
- Model Conditions can be defined for DC Converters
- Added new fields for an island showing Max/Min Generator MW/Mvar
- Equivalencing tool now has an option to Model Generation and Load as Current Injections
- When showing base case voltage violations for areas and zones, bus voltage violations can now be separated into low and high voltage violations
- Alpha and Gamma angle fields have been added for MTDC converters
- Switched shunt Auto Control can be set to FORCE which will ignore the global options for enabling switched shunts or SVCs as appropriate
- Modified to allow an owner percentage of zero (0). Previously we would completely remove this designation. Obviously we would not recommend doing this, but some users specify these percentages (likely accidentally) and wanted to be able to not completely lose the fact that the owner was a partial owner of the object.
- Added options to filter by “string contains”, “not string contains”, “string starts with”, and “not string starts with” for numeric fields.
Geographic Data View
- Supported with Supplemental Data
- High-Altitude Electromagnetic Pulse (HEMP or EMP) modeling
- Added the ability to show GIC transformer losses by substation.
- Added ability to show GICXFormer NeutralR on case info, and change LineShunt GIC R values.
- For GICs added DoShowDialog for lines from voltage input display.
- Added field to show GIC substation electric field direction.
- Added new fields for specifying DC GIC resistance for SwitchedShunt and LineShunt objects.
- Added a new field for an extra transformer neutral resistance
Integrated Topology Processing
- Open or Close with Breakers local menu options on case information displays and onelines have additional options for what should be switched including options to open or close disconnects based on their normal status
- Switched shunts are now included as connected objects indicating that a line is closed at one end when determining Derived Status
- The open and close with breaker algorithms will exclude switching breakers that connect switched shunts when looking for breakers for a transmission line
- OpenOrCloseBreakersAllow field added to branches that must be set to YES for a switching device to be allowed to switch in any of the algorithms that determine which breakers and other switching devices are needed to open or close a device
- Update Allow Open or Close Breakers tool added to update the OpenOrCloseBreakersAllow field for branches
- Only show the primary bus for each superbus option will now monitor the primary bus for each superbus, bus with the highest low voltage limit, and bus with the lowest high voltage limit.
- Option Do not monitor radial lines and buses is ignored if using Integrated Topology Processing
- Added options for monitoring Bus Pairs in base case and during contingencies
- Added a new field Limit Monitoring\Violated Using Normal Limits for bus, branch, interface, and bus pair objects. This field will show YES if the device is presently both monitored and violated according to all of the limit monitoring setting options and evaluated against normal limits.
- New translations have been added for Areva diagram import to render overview diagrams
- Oneline Viewer performance has been greatly improved along with the addition of history buttons and custom menus
- Paths defined in the Oneline Browsing Path will be searched in the order in which they are defined when looking for onelines and Areva DDL files to open
- Added Windows DPI Setting option to the Bus View Layout Options that is useful with higher resolution monitors to prevent scaling options with the bus view text
- Script command can be attached to a background object so that clicking on the object executes the script command
- Can now execute script commands through oneline links on the oneline instead of the power system. All that needs to be done is to prepend <ONELINE> before the script command to be executed.
- Background objects can be linked to data objects. If they are linked, the data dialogs for the linked object can be open while in run mode.
When inserting new Circuit Breaker objects to a oneline diagram the Shape is normally set the “Use Default”. This has been changed so that 1. For a branch with BranchDeviceType = Disconnect or Load Break Disconnect, then a Shape is set to “Switchgear”. 2. For a branch with BranchDeviceType = Ground Disconnect, the Shape is set to “Earthing Switch.
- Added various support throughout for rotating background objects. Also modified so that objects can be rotated about their center instead of always around the upper left corner.
- Added new dialog to show Objects Not on Oneline. This will display data objects that are not currently represented on the oneline. There is also an option to show objects that are NOT on the oneline that are connected to buses that ARE on the oneline.
- Modified contour dialog so that the enabling/disabling of the items to contour can consider Geographic Data Views.
- Added ability for showing dialogs for Generators, Loads, and Branches when right-clicking on the various background lines shown on Areva DDL oneline diagrams inside Simulator.
Optimal Power Flow
- Added OPF option to “Include only online devices in Injection Group calculation”. The default behavior has always been to exclude offline devices. This option will allow you to include them
Power Flow Solution
- Check Back Off Immediately option for generator Mvar limits is checked by default
- Added Evaluate Power Flow Solution for Each Island option that will cause the solution for a particular island to be abandoned if it is not converging but the solution for other islands will continue as long as at least one island converges
- When using the bus integer field “Priority” to influence the slack buses chosen, Simulator was using that integer even if the bus did not have any CLOSED generators. This meant that if the bus with the highest priority integer did not even have a closed generator then the island would end up being disconnected because no viable slack bus was chosen. This has been fixed so that any bus without any closed generation is ignored in the choice of a slack bus regardless of the Priority specified.
- The automatic choice of a system slack bus presently prefers generators with a maximum MW of less than 5000 MW. This is so that fake generators are not chosen as a system slack bus. This has been modified so that we also prefer generators which do not have a negative Minimum MW as well.
- Modified Simulator’s check for performing Angle Smoothing when closing in a series of branches. If more than 5 sets of series-connected branches are found at the same time, then we will no longer perform angle smoothing. This avoids situations where appending cases together results in a large number of new closed in branches at the same time. Using angle smoothing in these situations is not helpful.
- SVC type switched shunts which had a minimum and maximum control range of 0.0 and 0.0 were being treated as though the control range was infinite (limits ignored). This has been changed so that the SVC will instead leave the min/max values as 0.0 and just never move instead.
PV and QV Curve
- Merit Order Close Ramping is now an injection group ramping option to simulate the transfer
- Added new option with PV tool to Restore Initial State on Completion of Run. The default is NO because this is what we had been doing.
- Many new features that allow better management and analysis of scheduled outages
- LODF dialog now has an option to calculate line closure sensitivities for full topology cases considering breakers and load break disconnects
- LODF dialog now has an option to report line closure sensitivities relative to post-closure (LCDF) or pre-closure (MLCDF) flow on the line being closed
- Driving Point Impedances can be calculated for each bus in the case
- With the LODF and LODF matrix calculations, a value of 100,000,000% is returned if the line outage would cause a new island to be formed or a line closure would connect two different islands
- Added option with TLR sensitivity dialog to calculate sensitivities for disconnected buses that contain generators or loads by transferring the sensitivity to the in-service bus on the other side of an open breaker that will energize the bus
Time Step Simulation
- When changing the injection of an Injection Group and using Merit Order Dispatch, loads will now be included in the dispatch. Previously, any loads in the injection group were ignored. Loads will move towards either their minimum or maximum MW limit as appropriate. If both the minimum and maximum limits are 0, loads will only be allowed to decrease to 0 MW. Mvar load will be adjusted by keeping a constant power factor.
- Merit Order Close Ramping is now an option for scaling injection groups
- Transient Stability Options
- Changed the default time step from 0.5 cycle to 0.25 cycle
- Changed the default MVA convergence tolerance from 0.1 MVA to 0.01 MVA
- When Using PlayIn Models Set Initial Hz to First Value option added that will initialize models assuming that system is at the first frequency value in the PlayIn information rather than initializing at nominal frequency
- Added network equations solution option to Abort after number of failed solutions determines the number of times that the network boundary equations are allow to fail consecutively before the entire simulation is aborted
- Options added for specify Minimum Load P (MW), Minimum Load P/Q Ratio, and Minimum Initial per unit voltage under which loads are allowed to use complex load models
- Distribution equivalent model option for Min Nom kV for Transformer below which the transformer impedance will be treated as 0
- Frequency measurement options to Calculate Bus ROCOF (Rate of Change of Frequency)
- Island synchronization options that specify what happens to angles and frequency in the islands when a line is closed that connects two energized islands
- Transient Stability Solution
- For transient stability, modified induction machine generators so that they are not allowed to be the only type of generator in an isolated island. Previous a few type 2 wind turbines could get isolated in a small island giving very strange numerical results. Now that island will not be considered viable.
- Improved the network boundary convergence for handling current injection machine models
- Improved network boundary equation solution for loads which use the Distribution Equivalent.
- Transient Limit Monitor
- WECC 2016 voltage criteria monitoring is now built-in to Simulator
- Modified so that when showing the Transient Limit Monitor Dialog we automatically show the Limit Duration in Cycles if it is with 0.02 cycles of being at an integer multiple of a cycle up to 60 cycles. Thus at 1, 2, 3, 4, … 59, and 60 cycles. Also modified so that if we’re within 0.02 cycles of being at 0.5, 1.5 and 2.5 cycles the dialog will show the Limit Duration in cycles. Otherwise, it will automatically show the dialog in seconds instead. Internally within Simulator, we store this value as a floating point number of seconds, but this makes it convenient for viewing on the dialog.
- Transient Models
- When selecting models to assign to devices, alternate names of models as they are named in other software are shown as well as the names within Simulator
- OEL4C – Over Excitation Limiter
- UEL2_PTI – Under Excitation Limiter
- LDTRPMON measurement model
- Machine Models
- Load Characteristics
- Modified or added models to build up the pieces inside the CMPLDW model including: MOTOR_CMP, LD1PAC_CMP, LDELEC, IEEL, and MOTORX
- Removed the MOTORWCL model. The MOTORW model can now also be closed during a simulation so the need for MOTORWCL as a special separate model. Any old PWB or AUX files that defined MOTORWCL models will continue to read fine and we will automatically translate those into MOTORW models now.
- Added validation check to the LD1PAC, CMPLDW, and CMPLDWNF models to check if Vstall > Vbrk. This is considered a validation error that the user must correct to run the simulation.
- For CMPLDW and CMLD model, added check for power factor parameters PFs and PFel to not be zero. If zero then take the power factor from the attached load. If it is a model group it will set the values to default.
- Modified so that the State and Other Fields listed for the motors of the CMPLDW and CMPLDWNF models will show the name related to the type of motor (MtypA, MtypB, MtypC, and MtypD). Previously the string would show something like “[Type 3 Speed wr]; [Type 1 Bus Freq]”. It will now show either “Speed wr” or “Bus Freq” depending on what the model motor parameter types are for that load model.
- Added the ability with the CMPLDW and CPMLDWNF models to show the Static MW, Static Mvar, Electronic MW, and Electronic MVar as OtherFields for reporting.
- Add the field to show the tap ratio of the transformer which is part of the Distribution Equivalent for a Load. This field is available on under the Feeder Other fields.
- Line Relay
- Added support to have multiple ZLINW models.
- Added support for reading the system wide ZLINW line relay model
- Added ability to add more than on DISTRELAY model at each end of a branch
- Added a new parameter to Distrelay, Reclose if Fault persists.
- Added the ability to let the TICORS and TICRSRF to have multiple devices in each end.
- DC Line Model
- Switched shunts being controlled by SVSMOx models can have their own switched shunt transient models, i.e. MSC1, MSR1, etc., that are ignored when the SVSMOx model is inservice but will we allowed to operate when the SVSMOx model is out of service
- USRMDL from DYR read into Simulator models
- WTDTAU1/WTDTA1 (WTDAT1)
- WTARAU1/WTARA1 (WTARA1)
- WTTQAU1/WTTQA1 (WTTQA1)
- WTPTAU1/WTPTA1 (WTPTA1)
- REECAU1/REECA1 (REEC_A/REECA1)
- REECBU1 (REEC_B/REECB1)
- REGCAU1/REGCA1 (REGC_A)
- REPCAU1/REPCA1 (REPCA1)
- REPCTA1 (REPCTA1)
- UHSRG (UHSRG)
- UCBGT (UCBGT)
- UCCPSS (UCCPSS)
- GENTPJU1 (GENTPJ)
- HYGOVRU (HYGOVR1)
- Added field DistEquivMVABase to load objects to specify directly with the load the MVA Base upon which the distribution equivalent is based
DYD CMPLDW2 model read and written using Simulator CompLoad and LoadComponent structures
- Distribution equivalent models can be assigned to Owner, Zone, Area, and Load Model Group objects
- Added the ability with the CMPLDW and CPMLDWNF models to show the Static MW, Static Mvar, Electronic MW, and Electronic MVar as OtherFields for reporting.
- Added error check on Vac_ref in CHVDC2. If the initial AC voltage at either the rectifier or inverter is less than this value, then the value of Vac_ref is modified at initialization. This model doesn’t make any sense if the initial voltage is below Vac_ref.
- Added validation error message for the IEEEG1 model if the parameters K1+K2+K3+K4<=0. That input makes no sense.
- Modified the ATRRelay to add a new parameter for the model at the end called “GenNum”. The default value will be 1. Valuse of either 2, 3, or 4 will switch which generators are called “1, 2, 3 and 4”. Normally the unit to which the ATRRelay model is assigned is always considered “Gen 1”. By setting the GenNum parameter to 2, 3, or 4, the generator to which the ATRRelay is assigned is considered the be “GenNum” instead. The original “GenNum” generator will then become Gen 1.
- Added initial limit violation check on the ST6B exciter for the Ilr and Va limits.
- Modified the PIDGOV governor model to return an initial limit violation of the final point on the non-linear Gate versus Power lookup function (P3) was a power that was less than the initial mechanical power.
- Modified the PIDGOV, WPIDHY, IEEEG1, IEEEG3_GE, TGov3, WSIEG1, URGS3T, WSHYDD, WSHYGP, G2WSCC, GPWSCC, GAST_GE governor models so that when setting the option of “Handling of Initial Limit Violations” to “Modify Limits and Run”, Simulator will modify the final value of the nonlinear gain input curve if the initial output of the block is larger than the final value of the nonlinear gain.
- Transient Plots
- Value Type when plotting can now be Derivative which is the difference between the present point and the previous point divided by the time difference
- When choosing to auto-save an image of a plot to file AND choosing to NOT store results to RAM, the image will be saved to file and then memory will be cleared of the results needed for the plot
- Modified so that PlayIn signals values can be shown in the Case Information table when plotted with Time Results from RAM. Previously they could be plotted, but they would not show up when showing the values in the case information tables.
- Added ability to specify any TSContingency object’s variablename using a special string @CTGvariablename:digits:rod. This will be replaced with the value of that TSContingency field. The special string must start with @CTG and this then followed by the variablename and then optionally followed by syntax of :digits:rod to specify the number of digits and the number of decimal places to include. Example include the following
1. @CTGCategory would add the Category string
2. @CTGLoadMWIslanded:8:3 would add the LoadMWIslanded field with 8 digits and 3 decimal points
3. @CTGGenMWTripped:6:2 would add the GenMWTripped field with 6 digits and 3 decimal points
Previously this was limited to the values for @CTGMemo and @CTGName. This extends this syntax to all variablename of a TSContingency object.
- Added the load encroachment in the zones plot in DistRelays.
- When showing a hint or dialog showing information about a plot series on a transient stability plot, we previously would show the maximum and minimum Y value experienced by the plot series. We now also show the time (x-value) at which the maximum or minimum value are achieved.
- Modified the floating window that contains Plots for transient stability can be minimized and maximized.
- Modified captions of plot series when showing a value that represents the %, Dev, %Dev, or d/dx of the a particular value.
- Added a new Conversion of value to plot option for Derivative. This automatically calculated the digital derivative of the signal by taking differences between values and dividing by the time difference.
- Transient Stability File Format Support
- When reading a DYD file, we previously did checks to ensure the order in which dynamic models were read from the DYD. In older versions of other software, if a machine model was not the first model for a generator then subsequent models for that generator were ignored. Simulator had previously opened a dialog asking the user if they wanted to disable these models. This dialog has been removed so that models read from the DYD file are no longer disabled for this reason.
- Added ability to read another PSS/E DYR Helper file for reading BAT_PLMOD_REMOVE commands to disable various dynamic models.
- When reading the PIDGOV model from a DYD file, modified to ignore the MWCap value in the DYD file if it is different than the generator MVABase. The MWCap value is not used by PSLF or PSSE for this model and a value of MVABase is always assumed in those software tools. To be consistent with how the DYD format expresses the PIDGOV parameters, when reading a PIDGOV model Simulator will now always set the TRate value equal to the generator MVABase.
- Transient Stability Contingency Definitions
- Closing a generator through transient contingency action with options to specify Angle Difference, Voltage Setpoint, and Governor Setpoint to be used in initializing model states
- Added Open and Close Line Shunt contingency types
- Modified transient stability so that using the TSContingencyElement actions for changing the exciter setpoint or governor reference will do something even when used on a machine model that doesn’t have an associated exciter (or governor). When no exciter exists, changing the “exciter setpoint” will change the place holder floating point number that stores the assumed output of the exciter (or electrical model for renewable plants). When no governor exists, change the “governor setpoint” will change the place holder floating point that stores the mechanical power of the generator.
- Modified so that a TSContingency object can use a Calculated Field. It presently can only operate on the list of TSLimitViolation or the the TSResultEvent. As an example, this gives the user a way to get a count of the number of events that meet a filter on the TSContingency record
- Added Area, Zone, Owners and Balancing Authority fields to Transient contingency and elements.
- Transient Stability User Dialogs and Auxiliary File Support
- Show Dialog option is available from the local menu of the Transient Stability State Limit Violations table
- For dynamic model tables, added ability to show Custom String, Custom Float, Custom Integer, Custom Expression, Custom String Expression and Calculated fields of the object to which the dynamic model is assigned
- Added the ability to look at the Area, Zone, Balancing Authority, Substation, and Owner information with all the various transient stability dynamic models.
- Added Save Two Bus Equivalent button to the Terminal and State tab under Transient Stability on the Generator dialog.
- Added ability to see the present interface flow information when viewing the transient stability state information in the user interface.
- Added Gen MVABase field to SMIB eigenvalue display.
- Added ability on the transient stability dialog to show only state limit violations that are “modified” or those which are “not modified”. There are now three tabs to show either All, Modified, or Not Modified.
- Transient Stability Storage
- ROCOF (Hz) – Rate of Change of Frequency for a bus
- Weight Avg. Speed – Area and Zone
- GIC Mvar Losses – Area
- GIC EField Magnitude – Substation
- GIC EField Direction – Substation
- GIC Total Mvar Losses – Case Information
- GIC Maximum Transformer Ieffective (Amps) – Case Information
User Interface Dialogs
- Added Data View dialog that allows user customization of data dialogs
- Many dialogs for data objects have options to save the object to an auxiliary file
- Added normal status of branches to the branch dialogs
- Added buttons on the transformer tab of the branch dialogs to
“Edit Integer Tap Positions” and “EMS Edit Integer Tap Positions”. These buttons bring up a dialog on which which the user may edit the tap/phase, TapMax, TapMin and StepSize using the either the integer positions based around 1.0000 tap and 0.0000 phase, or using the integer positions using the EMS convention.
- Added a button to Edit Impedances and Taps on the Transformer Voltage and MVABase to the Run Model Branch Dialog. Added notes to make it more clear that the branch dialog shows values on the system MVA and Voltage bases.
- Increased the digits in the Generator dialog for generator voltage setpoint and generator regulated bus voltage from 4 decimals to 6 to ensure we show what input data truly is