Skip to content

Dynamic Models

A synchronous machine is specified with its excitation controller (EXC) and torque controller (TOR):

SYNC_MACH Name BUS_NAME FP FQ P Q Snom Pnom H D ibratio
XT/RL Xl Xd X'd X"d Xq X'q X"q m n Ra T'do T"do T'qo T"qo
EXC EXC_TYPE parameters_passed_to_EXC
TOR TOR_TYPE parameters_passed_to_TOR ;

For the complete mathematical model, per unit system, and detailed parameter descriptions, see the Synchronous Machine Model page.

RAMSES adds the exc_ prefix to the model name automatically, so both AC1A and exc_AC1A are accepted.

Uppercase short names (no prefix): CONSTANT, 1ST_ORDER, GENERIC1, GENERIC2.

Prefixed names (either form): kundur / exc_kundur, ENTSOE_simp, ST1A, SEXS, SEXS_IEEEST, GENERIC3 / exc_GENERIC3, GENERIC4 / exc_GENERIC4, AC1A, AC4A, IEEET5, ST1A_IEEEST, ST1A_PSS4B, ST1A_PSS2B, EXPIC1_PSS2B.

All names above are built into every RAMSES distribution (standalone executable and shared library used by PyRAMSES). Additional IEEE variants listed in the IEEE Exciter Models page (AC1A_MAXEX2, AC1A_RETRO*, AC8B*, DC3A, EXPIC1, SEXS_STAB3_lim, ST1A_lim, etc., and the EXHQSC* family) are not callable out of the box and require extending RAMSES through URAMSES.

For detailed documentation of each model, see the Model Reference section.

Uppercase short names (no prefix): CONSTANT, 1ST_ORDER, HYDRO_GENERIC1, THERMAL_GENERIC1.

Prefixed names (either form, tor_ is added automatically): ENTSOE_simp / tor_ENTSOE_simp, HYGOV / tor_HYGOV, GAST / tor_GAST, TGOV1 / tor_TGOV1 (internally tor_TGOV1D), DEGOV1 / tor_DEGOV1.

All names above are built into every RAMSES distribution. Additional governors listed in the Custom Governor Models page (tor_gasturbm, tor_govclasm, tor_govhydr, tor_govnuc) are not callable out of the box and require extending RAMSES through URAMSES.

For detailed documentation of each model, see the Model Reference section.

An injector is a component connected to a single AC bus:

INJEC INJ_TYPE NAME BUS_NAME FP FQ P Q parameters_passed_to_INJ ;

Uppercase short names take no prefix; the prefixed names accept either inj_ or no prefix (RAMSES adds it automatically).

Data-file nameEquivalentDescription
LOADGeneric exponential-recovery load
RESTLDRestorative load
INDMACH1, INDMACH2Single-cage / double-cage induction machines
SVC_GENERIC1Generic SVC model
THEVEQThévenin equivalent (infinite bus)
PQinj_PQConstant PQ load
IBGinj_IBGGeneric inverter-based generator
WT3inj_WT3Type 3 wind turbine
WT4inj_WT4Type 4 wind turbine
BESSinj_BESSBattery energy storage
GFOLinj_GFOLGrid-following converter
GFORinj_GFORGrid-forming converter
vfd_loadinj_vfd_loadVariable-frequency-drive load
VFAULTinj_VFAULTInternal voltage-fault injector (auto-added by RAMSES)

All injectors listed in the table above are compiled into every RAMSES build. Additional injector variants documented in the Injector Models page (inj_GFOR_v2, inj_INDM1, inj_norton, inj_PVG, inj_PV) are not callable out of the box and require extending RAMSES through URAMSES.

INJEC THEVEQ INJEC_NAME BUS_NAME FP FQ P Q MVA ;

A Thévenin equivalent imposes a constant-frequency voltage source and forces the synchronous reference frame.

ParameterDescriptionUnit
FP, FQFractions of bus injection (active, reactive)
P, QInitial powers (used if fractions are zero)pu
MVAApparent power base used for per-unit values of the Thévenin equivalentMVA

The FP, FQ, P, Q fields are power participation fractions and initial power values used during initialization. See Reference Frames & Initialization for detailed explanation.

IMPLOAD loadname BUS_NAME FP FQ P Q ;

Constant-impedance loads maintain the power factor at the initial voltage.

ParameterDescriptionUnit
FP, FQFractions of bus injection (active, reactive)
P, QInitial powers (used if fractions are zero)pu

The FP, FQ, P, Q fields are power participation fractions and initial power values used during initialization. See Reference Frames & Initialization for detailed explanation.

Two-port components connect two buses:

RAMSES adds the twop_ prefix to the model name automatically, so both HVDC_LCC and twop_HVDC_LCC are accepted.

Data-file nameEquivalentDescription
HVDC_LCCtwop_HVDC_LCCLine-commutated converter HVDC
HVDC_VSC_SCtwop_HVDC_VSC_SCSelf-commutating (grid-forming) VSC-HVDC
DCL_WCLtwop_DCL_WCLDC link with wind-converter link (offshore wind HVDC)

The three models above are built into every RAMSES distribution. Other two-port models documented in the Two-Port Models page (twop_HVDC_VSC and the Hydro-Québec family twop_CHENIER, twop_CSVGN5, twop_HQSVC, twop_DC_BHPM, twop_DC_CHAAUT, twop_DC_CHTFWX, twop_DC_LVCL_1) are not callable out of the box and require extending RAMSES through URAMSES.

For detailed documentation of each model, see the Model Reference section.

User-defined two-port models use a TWOP record:

TWOP MODEL_NAME TWOP_NAME BUS1 BUS2 IND FP1 FQ1 P1 Q1 FP2 FQ2 P2 Q2 DATA1 DATA2 ... ;

For details on each field, see User-Defined Models, TWOP Record.

DCTL CTRL_TYPE CTLNAME parameters ;

The following discrete-controller names are built into every RAMSES distribution (use them uppercase, with no dctl_ prefix):

ModelDescription
LTC, LTC2, LTCINVLoad tap changer controllers
OLTC2On-load tap changer
UVLSUnder-voltage load shedding
UVPROTUnder-voltage protection
PSTPhase-shifting transformer controller
RTReal-time synchronizer
MAISMulti-area islanding scheme
FRTFault ride-through
SIM_MINMAXVOLTVoltage stopping criteria
SIM_MINMAXSPEEDSpeed stopping criteria
VOLT_VARVoltage variability monitor
line_protLine overcurrent protection (dctl_line_prot also accepted)
DCTL LTC CTLNAME TRFONAME BUS_NAME DIR NMIN NMAX NBPOS TOL DELAY1 DELAY2 ;
FieldDescription
CTLNAMEName of the controller
TRFONAMEName of the controlled transformer
BUS_NAMEName of the controlled bus
DIRDirection of tap change
NMINMinimum tap ratio
NMAXMaximum tap ratio
NBPOSNumber of tap positions
TOLVoltage tolerance
DELAY1First delay (initial action)
DELAY2Subsequent delay (between steps)
DCTL RT CTLNAME ratio_to_rt ;

Setting ratio_to_rt = 1.0 synchronizes the simulation with real-time: the simulation is slowed down when it runs faster than real-time, but nothing is done when it is slower. Setting it to 2.0 means twice faster than real-time (if possible).

Voltage-based:

DCTL SIM_MINMAXVOLT CTRL_Name VMAX(pu) VMIN(pu) DEADTIME(s) Stop_Simulation(T/F) ;

Speed-based:

DCTL SIM_MINMAXSPEED CTRL_Name MAX_SPEED(pu) MIN_SPEED(pu) DEADTIME(s) Stop_Simulation(T/F) ;