Skip to main content

Best practices

The following are recommended best practices for using the gridmo software platform:

Variable names

As outlined in Terms and definitions - Variables, there are several types of variables. Although variable names can be any string which meets our User input requirements, we recommend that you use the following syntax to help distinguish between different types of variables:

  • Scenario Variables: s_variable_name
  • Global Variables: g_variable_name
  • Loop Variables: l_variable_name
  • Internode Variables: i_variable_name

Templates

Although Projects can be created from scratch, we recommend that you use our Template library whenever possible. Ideally, the library contains templates which meet your local modelling requirements. However, even if we don't currently have a template for your exact needs, the templates provide hints on potentially useful ways to structure Projects, loop through tests and name different variables.

Model management

We believe in inputs having a 'single source of truth' and then completing manipulation of the models inside the gridmo Project (e.g. initialisations different cases such as Qmin and Qmax). Therefore, if your generating system changes, you only need to update one model before rerunning your gridmo Project.

For example, consider you have a model of a generating system in PSS®E:

  • We recommend you have one .sav case file and one .dyr dynamics model data file.
  • We don't recommend you have multiple .sav case files (e.g. PmaxQmin.sav, PmaxQmax.sav) or multiple .dyr dynamics model data files (e.g. normal.dyr, QatNight.dyr).

File management

We recommend using the file management structure shown below for your gridmo inputs folder. The following hierarchy is followed: 'Project name -> Model version -> Model software -> Model files'.

Our templates commonly use the following combination of Global Variables when defining model file paths: $g_fpath_prefix\$g_psse_case_file. Referencing the file management structure below, if we were to specify the PSS®E case file location for Sunny Solar Farm, we would recommend using the following combination of Global Variables:

  • $g_fpath_prefix = sunny-solar-farm\v1.0.0
  • $g_psse_case_file = psse\solar.sav

Therefore, if your model version changes, you can very quickly update the file paths before rerunning your gridmo Project.

Inputs folder

├───<other projects>
|
├───sunny-solar-farm
│ ├───v1.0.0
│ │ │ gridmo_file.json
│ │ ├───pscad
│ │ | <solar library files>
│ │ | solar.psmx
│ │ | solar.pscx
│ │ | solar_wspace.pswx
│ │ | <lots of gridmo .cfg config files...>
│ │ └───psse
│ │ └───dlls
│ │ user-model.dll
│ │ solar.dyr
│ │ solar.sav
│ │ solar.sld
│ ├───v1.1.0
│ │ │ gridmo_file.json
│ │ ├───pscad
│ │ | <solar library files>
│ │ | solar.psmx
│ │ | solar.pscx
│ │ | solar_wspace.pswx
│ │ | <lots of gridmo .cfg config files...>
│ │ └───psse
│ │ └───dlls
│ │ user-model.dll
│ │ solar.dyr
│ │ solar.sav
│ │ solar.sld
└───windy-wind-farm
└───v1.0.0
│ gridmo_file.json
├───pscad
| <wind library files>
| wind.psmx
| wind.pscx
| wind_wspace.pswx
| <lots of gridmo .cfg config files...>
└───psse
└───dlls
user-model.dll
wind.dyr
wind.sav
wind.sld