{"id":21344598,"url":"https://github.com/unsw-ceem/nempro","last_synced_at":"2025-03-16T03:21:55.472Z","repository":{"id":96430933,"uuid":"342094592","full_name":"UNSW-CEEM/NEMPRO","owner":"UNSW-CEEM","description":"NEMPRO: National Electricity Market Portfolio Revenue Optimiser","archived":false,"fork":false,"pushed_at":"2021-10-23T18:48:00.000Z","size":352,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-22T16:10:03.564Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UNSW-CEEM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-02-25T02:10:05.000Z","updated_at":"2023-08-29T01:31:10.000Z","dependencies_parsed_at":"2023-03-13T16:32:14.311Z","dependency_job_id":null,"html_url":"https://github.com/UNSW-CEEM/NEMPRO","commit_stats":{"total_commits":19,"total_committers":1,"mean_commits":19.0,"dds":0.0,"last_synced_commit":"04cc0a21a21fdadfee1bdeadb4540ddfab366399"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UNSW-CEEM%2FNEMPRO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UNSW-CEEM%2FNEMPRO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UNSW-CEEM%2FNEMPRO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UNSW-CEEM%2FNEMPRO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UNSW-CEEM","download_url":"https://codeload.github.com/UNSW-CEEM/NEMPRO/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243819313,"owners_count":20352868,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-22T01:20:24.714Z","updated_at":"2025-03-16T03:21:55.443Z","avatar_url":"https://github.com/UNSW-CEEM.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NEMPRO: National Electricity Market Portfolio Revenue Optimiser\n\n## Introduction\nNEMPRO is a behavoural model of particpants in the Australian National Electricity Market. The behavoural model assumes \nparticipants attempt to dispatch their generation portfolios in order maximise net revenue, revenue after operating \nexpense. A key part of this optimisation is modelling the impact of the portfolio's dispatch on spot market prices. \nAdditionally, constraints on portfolio dispatch such as minimum stable opperating levels, start up costs, minium up and \ndown times, ramp rates, and storage charging and discharging are also modelled. However, each market region is modelled \nseparately, i.e. the impact of portflio dispatch in one region on prices in another region is not modelled, and only \ndispatch in the energy spot market is modelled and optimised.\n\n## Development stage\nThe project is currently at the technology demonstration stage of development, and does not include detailed \ndocumentation and user support features that you would expect in production software.\n\n## Architecture\nThe functionality of NEMPRO is/will be devided into three core components: 1) a forecasting module that generates the \nbaseline prices forecasts and senstivity forecasts that estimate the impact of additional generation on prices, 2) a \nplanning module that uses the forecasts to optimse the dispatch plan of a given portfolio of generation assests, and 3) a \nbidding module that transaltes the dispatch plan into a set of bids. While working proto types of the forecasting and \nplanning modules have been developed, work on the bidding module hasn't started.\n\n## Implementation\nThe forecasting module has been implemented using the causalnex package (https://github.com/quantumblacklabs/causalnex). \nThe planning module is implmented using linear programming, the mip python package is used for model formulation \n(https://github.com/coin-or/python-mip), and either the open-source CBC solver or commercial Gurobi solver can be used. \nUnit commitment constraints have been implemented based of Knueven et al's (2020) paper On Mixed Integer Programming \nFormulations for Unit Commitment.\n\n## Examples\n\n### Battery arbitrage\nA simple example to demonstrate NEMPRO is the case of planning a dispatch schedule for a large battery. In the first \nchart below the dispatch plan for a 1000 MW battery with 4 h of storage is shown. The code for example is here:\nhttps://github.com/UNSW-CEEM/NEMPRO/blob/master/examples/battery_arbitrage_planning.py. The plan optimiser discharges\nat time of high price, and recharges at times of low price. However to minimise the impact of dispatch on price, and\nmaximise net revenue the optimiser does not always charge and discharge at full power, but spreads out charging and \ndischarging more evenly. The second chart shows the same example but for 3000 MW battery with 4 h of storage.\n\n|![Figure1](/examples/images/battery_arbitrage_planning_1000MW.png)|\n|:--:|\n|Dispatch plan for a 1000 MW battery with 4 h of storage|\n\n|![Figure2](/examples/images/battery_arbitrage_planning_3000MW.png)|\n|:--:|\n|Dispatch plan for a 3000 MW battery with 4 h of storage|\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funsw-ceem%2Fnempro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funsw-ceem%2Fnempro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funsw-ceem%2Fnempro/lists"}