Skip to main content

Template: Model setup

Preview of template's gridmo Flow showing Nodes

Last updated: 1 July 2024

Country:

ALL

Software required:

PSS®E
PowerFactory
PSCAD™

Background

Engineers need to complete grid interconnection studies for different power systems software (e.g. PSS®E, PowerFactory and PSCAD™), OEM models, generating system types (e.g. solar farm, BESS or hybrid) and grid codes.

This template includes the minimum number of tests required to confirm that your generating system model has basic functionality and is correctly interfaced with the gridmo platform. This template requires the user to configure project settings, Global Variables and Scenario Variables.

Once this template has been configured, you may then add other templates to the project file which are relevant to specific grid codes.

Configuration

Step 1: Configure model folder and file structure

In your inputs folder, create a folder and file structure similar to the below for this project.

Inputs folder

└─── <project name>

└─── v1
├─── pscad
│ <your project's PSCAD™ files>
│ <any PSCAD™ libraries/dependencies>
│ <project nickname>.pswx
├─── psse
│ <any libraries (.dlls) required for your models>
│ <project nickname>.sav
│ <project nickname>.dyr
│ <project nickname>.sld
└─── dpf
<any libraries (.dlls) required for your models>
<project nickname>.pfd

Step 2 (PSCAD™ only): Add smiby into your PSCAD™ model

To use all Commands and features of the PSCAD™ Node, the smiby block needs to be added to your PSCAD™ model and be connected at the generating system's connection point.

Follow the video below to add smiby into your PSCAD™ model. We recommend using the following channels for smiby:

  • Channel 1 = Active power reference, Pref
  • Channel 2 = Reactive power reference, Qref
  • Channel 3 = Power factor reference, PFref
  • Channel 4 = Voltage reference, Vref
  • Channel 5 = Source energy reference, SEref

Step 3: Delete unused power systems software Nodes

By default, the template has Nodes for all gridmo supported power systems software (e.g. PSS®E, PowerFactory and PSCAD™). Depending on your specific project requirements, delete the power systems software Nodes which you don't need and the associated Global Variables.

note

The template is configured such that the PSCAD™ Node is initialized from the results of either a PSS®E or PowerFactory Node. The incoming edge may need to be updated based on whether the PSS®E or PowerFactory Node is used for initialization, or whether the PSCAD™ Node is set to calculate the Thevenin equivalent source voltage internally.

Step 4: Configure project settings and Global Variables

Using the WECC solar default values as a guide, configure the project settings and Global Variables to match your specific project requirements.

Step 5 (Optional): Configure Scenario Variables

If your project has multiple operational scenarios (e.g. a BESS project has two scenarios: charging and discharging), create Scenario Variables where appropriate.

tip

If you have more than once scenario (e.g. a BESS, or a hybrid plant, or a solar farm which uses Q-at-night mode etc) enter a description in scenario_desc such as (BESS discharging). We've found plots look better if the description is in brackets.

Detailed descriptions

The below tables can be a useful guide when configuring the Global Variables:

FindReplaceNotesExample
BUS=999BUS=xxxWhere xxx is your slack bus number in PSS®E.BUS=5000
GEN=999#1GEN=xxx#yyWhere xxx is your slack bus number in PSS®E and yy is the ID of the generator.GEN=5000#1
GEN=91003#S1GEN=xxx#yyWhere xxx is your generator's bus number in PSS®E and yy is the ID of that generator. (adding multiple if you have more than one, i.e. GEN=100#1, GEN=200#1 etc)GEN=100#1
LINE=1001->1000#1LINE=aaaa->bbbb#ccWhere aaaa->bbbb#cc is your dummy branch in your PSS®E model.

If you don't have a dummy branch, replace with LINE=zzzz->aaaa#ff, METERBUS=zzzz where zzzz->aaaa#ff is a branch or transformer from your generator to the point of connection bus point of connection bus number.
LINE=400->500#1

LINE=1400->1500#1, METERBUS=1500

PSS®E Static setup

Assuming you have completed the above find and replace steps, follow the following steps to fill in your generator details:

Global VariableNotes
psse_ss_set_infsource_sysnormal and psse_ss_set_infsource_1puCheck the definition of GEN= here matches your slack bus generator in your PSS®E model, using the format bus#id.
psse_ss_set_all_assets_outAdd extra commands to turn off all generators in your PSS®E model and any other reactive plant. See here for a link to the documentation, these commands are generally of style SET, xxxx, STATUS=OUT.
psse_ss_set_asset_statuses_for_scenarioFor most projects, this can be left blank.

For multi-scenario projects, here is where you set plant in or out of service (e.g. harmonic filter in service using SET, xxx, STATUS=IN for one scenario and SET, xxx, STATUS=OUT for the second scenario).
psse_ss_set_plant_targetsThis is where we specify POC P and Q targets for our generating system.

Check the GEN=91003#S1 is set to your generator's definition.

Check the ATLINE=1001->1000#1 has been changed to your dummy branch definition, with the first bus closest to your generating system terminals.
psse_ss_outputsThis is where we specify outputs to help initialise other power system software platforms.

Change the BUS=999 definition to your slack bus number in your PSS®E model.

If your generator uses voltage droop control, configure the OUTPUT, VAL=VDROOPTARGET command by changing ATBUS=1000 to your point of connection bus. Change the ATLINE=1001->1000#1 to your dummy branch. Configure the QBASE=, DROOP%=, DEADBAND=, QMIN= and QMAX= values based on your generator's droop settings.

If your generator supports power factor control, change the definition of OUTPUT, LINE=1001->1000#1, VAL=PF to your dummy branch.

PSS®E Dynamic setup

Assuming you have completed the above find and replace steps, follow the following steps to fill in your generator details:

Global VariableNotes
psse_ds_configure_plant_for_scenarioFor most projects, this can be left blank.

For multi-scenario projects, here is where you can set dynamic properties prior to the start of the dynamic simulation (e.g. Q at night, wind speed etc).
psse_ds_set_plant_targetsThis is where we specify active and reactive power control for your generating system.

Change the first CONTROL command to how to set an active power target (the unit is per unit on registered active power base, so configure the VALSCALE= as required for your model).

Configure the second CONTROL command to switch your generator into your default reactive power control mode (fixed Q, power factor control, voltage droop etc).

Delete the third CONTROL command (as it usually isn't required for models that auto-initializefrom static cases)
psse_ds_p_commandThis is an alias command. An alias command in gridmo is a variable without the AT= and VAL= fields. Configure the CONTROL= command to control active power (this is identical to the first CONTROL command in the psse_ds_set_plant_targets above) (unit is per unit on rated power base).
psse_ds_pf_commandThis is an alias command. An alias command in gridmo is a variable without the AT= and VAL= fields. Configure the CONTROL= command to control power factor (unit is generator convention P/S).

Do not include an AT= or VAL= argument in this Variable, each gridmo template adds these arguments.
psse_ds_q_commandThis is an alias command. An alias command in gridmo is a variable without the AT= and VAL= fields. Configure the CONTROL= command to control reactive power (unit in gridmo templates is per unit in on rated active power base).

Do not include an AT= or VAL= argument in this Variable, each gridmo template adds these arguments.
psse_ds_vdroop_commandThis is an alias command. An alias command in gridmo is a variable without the AT= and VAL= fields. Configure the CONTROL= command to control voltage droop (unit in gridmo templates is per unit).

Do not include an AT= or VAL= argument in this Variable, each gridmo template adds these arguments.
psse_ds_change_source_energyThis is an alias command. An alias command in gridmo is a variable without the AT= and VAL= fields. Configure the CONTROL= command to control the source energy (e.g. wind speed, irradiance) (unit in gridmo templates is per unit).

Do not include an AT= or VAL= argument in this Variable, each gridmo template adds these arguments.

If your generating system does not require source energy (e.g. a BESS) comment out this line by adding // at the start - don't leave the line blank.
psse_ds_go_to_pf_controlThis is a CONTROL command at time=0 to switch your generating system into power factor control. Configure it for your generating system. If you do not support this mode, leave the cell blank.
psse_ds_go_to_q_controlThis is a CONTROL command at time=0 to switch your generating system into reactive control. Configure it for your generating system. If you do not support this mode, leave the cell blank.
psse_ds_go_to_vdroop_controlThis is a CONTROL command at time=0 to switch your generating system into voltage droop control. Configure it for your generating system. If you do not support this mode, leave the cell blank.
psse_ds_output_channelsThis is where the dynamic output channels are recorded. If your generating system supports fault ride-through modes, configure the OUTPUT, VAR= commands at the bottom of the cell to your generator's FRT flags.

PSCAD™ setup

Assuming you have completed the above find and replace steps, follow the following steps to fill in your generator details:

Global VariableNotes
pscad_set_infsourceNo changes required typically.
pscad_import_from_psse_ssIn this variable, we apply (using the Internode Variable format {{xxxxx}}) all OUTPUT commands from the PSS®E Static node. There can be generator specific questions here, reach out to gridmo support if you have any questions.
pscad_set_all_assets_outNot currently used in any templates, can set the entire cell to blank
pscad_configure_plant_for_scenarioNot currently used in any templates, can set the entire cell to blank
pscad_set_plant_targetsChange the SET, CNAME= command to set your generating system into the same default reactive power control mode as per psse_ds_set_plant_targets. Can also change to a SET, CIID= command if there No other changes required.
pscad_p_command

pscad_q_command

pscad_q_command

pscad_change_source_energy

pscad_vdroop_command
No changes required to these commands (we will set up the smiby output channels to use the default values to minimise changes.)
pscad_go_to_pf_controlAdd a SET, CNAME= or SET, CIID=command to set your generating system into power factor control. Configure it for your generating system. If you do not support this mode, leave the cell blank.
psse_ds_go_to_q_controlConfigure the SET, CNAME= or change to a SET, CIID=command to set your generating system into power factor control. Configure it for your generating system. If you do not support this mode, leave the cell blank.
psse_ds_go_to_vdroop_controlConfigure the SET, CNAME= or change to a SET, CIID=command to set your generating system into voltage droop control. Configure it for your generating system. If you do not support this mode, leave the cell blank.
pscad_output_channelsThis is where the dynamic output channels are recorded. If your generating system supports fault ride-through modes, configure the OUTPUT, TITLE=INV_LVRT_FLAG and OUTPUT, TITLE=INV_HVRT_FLAG commands to your generator's FRT flags.

Template revision history

  • 1 July 2024 (v1.4.15):
    • Updated variable order and descriptions to improve the project setup user experience.
  • 29 May 2024 (v1.4.14):
    • Added support for PowerFactory.
    • Removed some unnecessary duplication of subplot Commands to simplify plot outputs.
  • 7 May 2024 (v1.4.13):
    • Added instructions to not specify AT= and VAL= for alias Scenario Variables.
  • 20 Mar 2024 (v1.4.11):
    • Added a fault and analysis Node to check for correct FRT/PPC freeze flag performance.
  • 30 Jan 2024 (v1.4.9):
    • Redesigned template into new format (for model setup purposes).
  • 27 Jun 2023 (v1.3.1):
    • First release.