• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

blue-marble / gridpath / 16128888254
89%
main: 89%

Build:
Build:
LAST BUILD BRANCH: develop
DEFAULT BRANCH: main
Ran 07 Jul 2025 10:18PM UTC
Jobs 3
Files 746
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

07 Jul 2025 10:06PM UTC coverage: 88.949% (-0.08%) from 89.026%
16128888254

push

github

web-flow
New optional feature for Inertia reserve (#1275)

Implemented a new optional_features to model inertia reserves with all the documentation and test associated.

Inertia reserve is a grid service that units provide if they are generating and slows down the variation of the frequency when a disturbance happens on the grid, allowing more time for frequency reserves to activate.

The implementation for this optional feature follows the general structure of operational reserves in GridPath where requirements can depend on multiple factors and the sum of the inertia of projects must be greater than the requirement (with violation if allowed). There are 2 major differences between operational reserves and inertia:

	The requirement for inertia is in MWs instead of MW, which means that we must add a file in the requirement folder where the user will have to input the operating frequency of the system and the ROCOF.  The requirements that are specified by the user (% of the load, MW per timepoint ratio of project capacity/power) will then be multiplied by  (f_0 " " )/(2 *Rocof ).

	Instead of relying on headroom and footroom, Inertia relies on the nameplate capacity of units that are operating, the inertia of a project is equal to its nameplate capacity * an inertia constant that is technology/project specific if that project is generating. To implement this, an capacity_providing_inertia_rule with a default of 0 was added to projects and its definition changes based on the operational type. This inertia capacity is then multiplied by the inertia constant.

Additional changes were made to the dispatchable_load operational type to allow it to act like a synchronous condenser: The energy_requirement_factor allows a project to activate its capacity at a fraction of the energy that would normally be required. For example, when a synchronous condenser operates it consumes 1% to 3% of its nameplate capacity so while the online capacity is 100%, it power consumption ... (continued)

519 of 607 new or added lines in 32 files covered. (85.5%)

3 existing lines in 2 files now uncovered.

27310 of 30703 relevant lines covered (88.95%)

2.67 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
89.81
-0.75% gridpath/project/operations/operational_types/__init__.py
1
74.75
-0.51% gridpath/project/operations/operational_types/gen_always_on.py
1
90.91
-1.54% gridpath/project/operations/operational_types/gen_commit_bin.py
1
92.73
-1.61% gridpath/project/operations/operational_types/gen_commit_lin.py
1
97.83
-0.26% gridpath/project/operations/operational_types/gen_commit_unit_common.py
1
95.04
-0.65% gridpath/project/operations/operational_types/gen_hydro.py
1
87.88
-0.58% gridpath/project/operations/operational_types/gen_hydro_must_take.py
1
86.98
-0.39% gridpath/project/operations/operational_types/gen_hydro_water.py
1
80.9
-0.71% gridpath/project/operations/operational_types/gen_simple.py
1
84.78
-1.58% gridpath/project/operations/operational_types/gen_simple_no_load_balance_power.py
1
98.9
gridpath/project/operations/reserves/inertia_reserves.py
1
98.21
gridpath/project/operations/reserves/op_type_dependent/inertia_reserves.py
1
96.0
gridpath/system/reserves/balance/inertia_reserves.py
3
91.49
-2.96% gridpath/project/operations/operational_types/gen_var.py
3
85.45
-4.74% gridpath/project/operations/operational_types/gen_var_must_take.py
3
89.76
-2.11% gridpath/project/operations/operational_types/gen_var_stor_hyb.py
3
90.0
tests/geography/test_inertia_reserves_balancing_areas.py
6
82.35
tests/objective/system/reserve_violation_penalties/test_inertia_reserves.py
6
82.35
tests/project/operations/reserves/op_type_dependent/test_inertia_reserves.py
6
86.36
tests/project/operations/reserves/test_inertia_reserves.py
6
83.33
tests/system/reserves/aggregation/test_inertia_reserves.py
6
80.65
tests/system/reserves/balance/test_inertia_reserves.py
6
84.62
tests/system/reserves/requirement/test_inertia_reserves.py
27
73.27
gridpath/system/reserves/requirement/inertia_reserves.py

Uncovered Existing Lines

Lines Coverage ∆ File
1
53.58
-0.2% db/utilities/common_functions.py
2
96.61
-3.39% gridpath/system/policy/carbon_tax/aggregate_project_carbon_credits.py
Jobs
ID Job ID Ran Files Coverage
1 16128888254.1 07 Jul 2025 10:18PM UTC 746
88.95
GitHub Action Run
2 16128888254.2 07 Jul 2025 10:18PM UTC 746
88.94
GitHub Action Run
3 16128888254.3 07 Jul 2025 10:19PM UTC 746
88.86
GitHub Action Run
Source Files on build 16128888254
  • Tree
  • List 746
  • Changed 23
  • Source Changed 0
  • Coverage Changed 23
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 1a57d17b on github
  • Prev Build on develop (#16083140548)
  • Next Build on develop (#16149642957)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc