Transient Stability Guide

InterPSS transient stability simulation is designed to simulate electromechanical transients due to a large disturbance (Dynamic Event) or a sequence of such events in electric power systems.

Create Transient Stability Simulation Project

If you are new to the InterPSS graphic One-line editor, please read the InterPSS Graphic Editor User Guide to get familar with the basic steps to create an InterPSS project.

Project Data

Under the Application Type and Network Type, Select Transmission and TranStability to define a transient stability simulation project.

    • BaseKVA : System base KVA for the Per Unit system, the default value is 100,000 Kva
    • BaseFreq : System base frequency, the default value is 50 Hz
    • Machine Data : Machine parameters, such as Xd, supplied by the manufacture could be saturated values directly from field measurement or adjusted to unsaturated values. Under Machine Data, you can select either Unsaturated or Saturated. You can find more details on the subject in the Transient Stability - Machine & Component Model document.
    • Include Adjustments/Controls : Include/exclude adjustment/control in loadflow calculation in the initialization process. Please see the InterPSS Loadflow User Guide for more details. The Loadflow adjustment/control, such as Transformer tap control, only applies to the initial condition. User would need to define a dynamic bus device or dynamic branch device (to be implemented and elaborated in the future) to study any dynamic behaviour of these adjustment/control devices.

Bus Data

First you need to enter Bus loadflow data for establishing a steady-state as the initial condition for transient stability simulation. To add a machine dynamic model, you need to select Generator Type = Swing, PQ, PV or RemoteControl. If you would like to define a custom dynamic model for the bus, select the Dynamic Bus Device Scripting check box (see more discussion on this subject beblow).

Machine Parameter

After a bus has been defined and Generator Type selected (i.e. Swing, PV, PQ or RemoteControl), you need to determine the machine model and define machine parameters for Transient Stability Simulation. You can find more details about InterPSS machine models at InterPSS Reference manual in Transient Stability - Machine & Component Model. To add machine controllers (Excitation system, governor system, PSS), select the Has Excitation Controller and/or Has Governor Controller check box; the PSS is enabled by selecting Has Stabilizer in the Exciter Info tab.

Excitation System Parameter

Various types of excitation system models are included in the InterPSS. To define an excitation system, select an excitation system model in the Type drop down list and enter the necessary parameters. For more detailed information on InterPSS excitation system implementation, please see InterPSS Reference Manual Transient Stability - Excitation System. A user can also select the CML Scripting Exciter to define a custom excitation system using InterPSS Controller Modeling Language (CML). Check the Has Stabilizer box if you want to add a Power System Stabilizer (PSS).

Governor Parameter

Similar to Excitation System, various types of governor models are also included in the InterPSS. To define a Governor system, you need to select an existing InterPSS governor system model from the Type drop down list and then enter necessary parameters. please see InterPSS Reference Manual Transient Stability - Governor System. You can also select the CML Scripting Governor to define a custom governor system by using InterPSS Controller Modeling Language (CML).

Stabilizer Parameter

Similar to the Excitation System, various types of Power System Stabilizer models, or simply referred as Stabilizer in InterPSS, are also included. To define a power system stabilizer, select an existing InterPSS PSS implementation from the Type drop down list and then enter necessary parameters. For more detailed information on the implementation of InterPSS PSS implementation, please see the InterPSS Reference Manual Transient Stability - Stabilizer System. You can also select the CML Scripting Stabilizer to define a custom PSS by using InterPSS Controller Modeling Language (CML).

Controller Modeling Language(CML)

When you select CML controller type, for example CML Scripting Exciter, you will be presented with an editor dialog box with some sample code. You can define your own custom controller model by writing CML scripts. After completing the editing, click the Save button to save your scripts. At this time, InterPSS will compile your scripts. If there is any error, you will be presented with error messages, as shown in the following diagram.

InterPSS Controller Modeling Language is designed to simplify controller modeling for transient stability simulation. One can write CML scripts to define a custom controller, including Exciter, Governor and Stabilizer. You can find more info about CML at the following links:

Dynamic Bus Device Scripting

If the standard InterPSS machine and controller models do not meet your simulation requirement, you can create a custom bus simulation mode by using Dynamic Bus Device scripting. In this approach, you can define a dynamic source or load, where source/load injection current into the network is a function of bus voltage and time

I = f(V, t)

The function could be a set of differential and/or static equations. Dynamic Bus Device gives you a generic way to script such a function. It could be used to model dynamic load including motors, SVC, FACTS or complex generation station dynamics. For more details, see InterPSS Extension Guide - How to Script Dynamic Bus Device .

Branch Data

Branch data required for transient stability simulation is the same as the Short Circuit analysis.

Branch data is prepared the same way as preparing branch data for Loadflow analysis and Short Circuit analysis.

Run Stability Simulation

After completing data entry of a transient stability simulation project, you can run simulation by select the Run/Transient Stability menu item or the Run TS button. The simulation progress bar will show the progress of a simulation run with a percentage Run DStab (14%).

Define Simulation Parameter

    • Simulation Method : Solution method for dynamic differential equation. Currently, only Modified Euler method is available. More choices will be available in the future.
    • Disable Dynamic Events : Transient stability simulation always starts from a steady-state condition. At t = 0.0, InterPSS goes through an initialization process. It is possible that a steady-state condition cannot be established because of entry error or incorrectly operating condition specification. By select this option, InterPSS will run the simulation by disabling all event. Normally you should see response curve of all state variable as straight lines. This function is designed to allow you to investigate situations where initial steady-state condition might be specified incorrectly.
    • Total Time(sec) : Total simulation time in sec.
    • Simu Step(sec) : Simulation time step. The step applies to all dynamic devices in the system. We recommend a simulation time step of 1/5 of the smallest time constant in the system.
    • Ref Machine : InterPSS allows to you to output machine angle relative or absolute value. When you choose relative value, you need to select a reference machine. InterPSS will recommend the machine with the largest inertia as the reference machine.
    • Absolute Machine Angle : Option for absolute or relative angle
    • Net Eqn Iterations (No Event) : InterPSS uses iterative method to solve the network equation because of generator injection current is a non-linear function of generator bus voltage. You can specify a number for the iteration when there is no dynamic event at the simulation step.
    • Net Eqn Iterations (With Event) : You can specify a number for the iteration when there is a dynamic event(s) at the simulation step. Normally you should give a large number than the No Event number, since with dynamic event, more iterations are needed to achieve the same accuracy.
    • Output state/variable Filter : Option for you to select a sub-set of state/variable to be output. See below for more details.
    • Output Result Scripting : Option for you to performance Output Result Scripting. See below for more details.
    • Static Load Model : You can model static load either as an impedance or a constant power source.
        • SwitchVolt(pu) : When using constant power load model, the load will be switched to constant impedance load when the bus voltage becomes lower than a switch voltage threshhold, SwitchVolt(pu). It will be switched back to constant power load model when the voltage becomes higher than the threshhold plus the Dead Zone to avoid constant switching.
        • DeadZone(pu) : Dead zone for load simulation model switching
    • Controller SetPoint Change : Some time you might want make a step change to the set point or reference point of a controller to verify if parameters of the controller have been entered correctly. When you select the Disable Dynamic Events checkbox, the Controller SetPoint Change area will be enabled to allow you to define a controller set point change event.
        • Machine : Select a machine where you want to make set point change
        • Controller : List of all controllers on the selected machine
        • SetPoint Value Change : Set point/reference point change value
        • Absulte or Delta : Specify if the change is absolute or delta - a change to the steady-state value, which is calculated during the initialization process.

Define Dynamic Event

    • Dynamic Event List : Dynamic event list. You can have multiple dynamic events defined with the limitation that you cannot have two simultaneous un-symmetric faults presented in the system at the same time.
    • Dynamic Event Type : Currently four types of dynamic events are implemented. For details see the Transient Stability - Dynamic Events reference document.
    • Start Time(sec): Event start time
    • Duration(sec) : Event duration, if not a permanent event
    • Permanent : For permanent event, it will last the total during of the simulation duration
    • Dynamic Event Details : different type of events have different input screen for event data. For example, for Bus Fault Event, enter the following data:
        • Fault Bus : select fault bus
        • 3P:Three phase to ground fault
        • L-G:Single phase to ground fault
        • L-L:Line to line fault
        • LL-G:Line to line and ground fault
        • L-G(r+jx):Line to ground fault impedance, applicable to 3P, L-G and LL-G
        • L-L(r+jx):Fault impedance between lines, applicable to L-L
    • AddEvent : Add a new dynamic event
    • SaveEvent : Save the current dynamic event
    • DeleteEvent : Delete the current dynamic event

For details on all types of Dynamic Event, see the Transient Stability - Dynamic Events reference document.

Define Initialization

InterPSS uses loadflow module to establish a steady-state condition for transient stability simulation. This panel allows you to define initialization related parameters, which are the same as InterPSS loadflow analysis. See InterPSS Loadflow User Guide for details.

Select Output Variable

InterPSS by default outputs all simulation states and variable to its internal database for simulation result display/output purpose. This however will sometime slow down the simulation, since it takes time to write the result to the database, especially for a large size system. When you select the Output state/variable Filter option on the Simulation panel, you have the choice to select a set of states and/or variables to be included in the output list. In this way, you can speed up the simulation process by saving less data into the database. When you select a machine, the output includes all machine states and its controller states, including Excitation system, Governor, PSS.

In the above case, machine states of machine on Bus 0004 and bus variables at Bus 0001 will be output to the database, and available to display after the simulation.

Plot Simulation Result

After completing a simulation, right-click a bus, you can have choice to plot any state variable associated with the bus.

You can also select Output->Plot Stability Curve to launch the Simulation Plotting Dialog.

The "P" button allows you to plot a selected state/variable. The "S" allows you to produce scripted output. See the following section for details.

Output Scripting

You can write scripts to output a set of variables in certain format. You can click the Scripting tab and write your scripts. Then click the S button to run your scripts.

The following are sample code for scripting the output,

public class OutDStabResult2TextDialog extends ScriptToolAdapter {

public void outDStabResult2TextDialog(

IOutputTextDialog textDialog, // out text dialog

List<String> nameList, // variable name list

List<Hashtable<String, String>> valueList // var value list ) {

// clear the text area


/* do not modify anything above this line */

// create a comma delimited names (Time, Machine Angle ...

String nameLine = "";

int cnt = 0;

for ( String str : nameList) {

nameLine += str;

if ( cnt++ < nameList.size()-1)

nameLine += ", ";


textDialog.appendText(nameLine + "\n");

// create comma delimited value lines

for ( Hashtable<String, String> table : valueList) {

String valueLine = "";

for ( int j = 0; j < nameList.size(); j++) {

String name = nameList.get(j);

valueLine += table.get(name);

if ( j < nameList.size()-1)

valueLine += ", ";


textDialog.appendText(valueLine + "\n");


/* do not modify anything below this line */

// show the text dialog box




Then you can save the output to a file by clicking the SaveAs button.

Result Output Scripting

Transient stability simulation results are time domain points. They are normally plotted as plots. InterPSS currently provides a plot routine which allows you to plot machine states, bus variables and dynamic bus device states. Although the plot routine provides a quite convenient way to display the results, you may want to do customization or use some existing tools, such as Microsoft Excel, to do the plotting. You can use InterPSS scripting to export the data points to a CSV file and then use any tool to customize the plotting.

InterPSS Data Storage Architecture

    • InterPSS simulation engine sends simulation result out as messages. It does not know who listens and processes the message. InterPSS has two output message categories: Simulation Step Message and Plot Step Message. Simulation Step Messages are sent out at each simulation step, while Plot Step Messages are sent out at plotting steps, which may be different than the simulation steps. InterPSS adjusts the plot step such that the total plotting points are approximate 500 points.
    • User can define a filter to filter out the messages. For example, you may be only interested in machines in certain area/zone or belong to certain owner.
    • You can plugin output message handler(s) to process the message. Currently, the default result output message handler is a database result handler, which listens to the messages and store them into InterPSS internal database.
    • After the simulation, one can use the Database access module to access the stored results and use the InterPSS Plot Routine to plot simulation curves. The plot routine also is a plugin. One can replace it with a custom implementation.

Scripting Simulation Output Results

When you run a Transient Stability simulation case, you can check the Output Results Scripting option to write custom scripts to customize the simulation result output to a file in CVS format.

@AnDStabOutputScripting (

filename = "c:/tmp/ipssout.csv",

varList = { "str.Angle(Mach@0001), 0001, mach.angle", // display str, bus id, variable

"str.Speed(Mach@0001), 0001, mach.speed",

"str.Speed(Mach@0001), 0001,",

"str.Efd(Mach@0001), 0001, exc.efd",

"str.PSS(Mach@0001), 0001, pss.vs",

"str.Voltage(Bus@0002), 0002, bus.vmag"}


In this case, you want to output machine.angle at Bus id:0004 under the header Angle(Mach@004). After the simulation, a CSV file will be created. Using Excel, you can process the results in the way you like. Using Microsoft Excel, you can load the CSV file and do further processing.