Template: Model setup
Last updated: 1 July 2024
Country:
ALL
Software required:
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
Check out our best practices guide on file management.
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.
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.
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:
Find | Replace | Notes | Example |
---|---|---|---|
BUS=999 | BUS=xxx | Where xxx is your slack bus number in PSS®E. | BUS=5000 |
GEN=999#1 | GEN=xxx#yy | Where xxx is your slack bus number in PSS®E and yy is the ID of the generator. | GEN=5000#1 |
GEN=91003#S1 | GEN=xxx#yy | Where 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#1 | LINE=aaaa->bbbb#cc | Where 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 Variable | Notes |
---|---|
psse_ss_set_infsource_sysnormal and psse_ss_set_infsource_1pu | Check 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_out | Add 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_scenario | For 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_targets | This 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_outputs | This 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 Variable | Notes |
---|---|
psse_ds_configure_plant_for_scenario | For 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_targets | This 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_command | This 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_command | This 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_command | This 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_command | This 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_energy | This 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_control | This 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_control | This 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_control | This 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_channels | This 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 Variable | Notes |
---|---|
pscad_set_infsource | No changes required typically. |
pscad_import_from_psse_ss | In 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_out | Not currently used in any templates, can set the entire cell to blank |
pscad_configure_plant_for_scenario | Not currently used in any templates, can set the entire cell to blank |
pscad_set_plant_targets | Change 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_control | Add 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_control | Configure 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_control | Configure 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_channels | This 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=
andVAL=
for alias Scenario Variables.
- Added instructions to not specify
- 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.