Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
994 changes: 0 additions & 994 deletions Base_Model_Python.py

This file was deleted.

Binary file removed Base_User_Interface.xlsx
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
1,590 changes: 1,590 additions & 0 deletions Direct Optimization Model/DO_EP_Optimal_Decarbonisation_Model_Python.py

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
'''
Created on 24th September 2021
Last Modified in March 2023

This script presents the mathematical optimisation formulation for an energy planning scenario in a specific geographical region or district.
Renewable energy and fossil-based sources make up the power generation in a specific geographical region or district.
Each period consists of its respective energy demand and CO2 emission limit.
EP-NETs, EC-NETs, CCS/CCSU and Carbon Trading may be utilised to achieve the CO2 emission limit for each period.
This energy planning mathematical formulation may be optimised subject to either a mininum cost or minimum emission objective function.
There is an addtional formulation to optimize for maximum profit which satisfies both emission targets and budget contraints, which proves the feasibility of data/model, and provides effective initial values.

@author: Gul, Purusothmn, Dr Michael Short, Prof Dr Dominic C.Y.F.
'''
import os

path = os.chdir(r'C:\Users\pc\Desktop\DECO2 v2023\Direct Optimization Model')

cwd = os.getcwd()

import DO_EP_Optimal_Decarbonisation_Model_Python
File renamed without changes.
6 changes: 6 additions & 0 deletions Direct Optimization Model/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# DECO2: Direct Optimisation Model

Direct Optimisation Model is developed as a standalone extension for DECO2 software.
Carbon trading model, having emission caps and prices as variables, is integrated into initial version of DECO2.
Resulting fomulation is MINLP, and it leads to greater decarbonisation and reduced cost (when compared to emissions and costs from initial DECO2 version and Indirect
Optimisation Model formulation).
Binary file not shown.
File renamed without changes.
Binary file not shown.
1,579 changes: 1,579 additions & 0 deletions Indirect Optimization Model/IDO_EP_Optimal_Decarbonisation_Model_Python.py

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
'''
Created on 24th September 2021
Last Modified in March 2023

This script presents the mathematical optimisation formulation for an energy planning scenario in a specific geographical region or district.
Renewable energy and fossil-based sources make up the power generation in a specific geographical region or district.
Each period consists of its respective energy demand and CO2 emission limit.
EP-NETs, EC-NETs, CCS/CCSU and Carbon Trading may be utilised to achieve the CO2 emission limit for each period.
This energy planning mathematical formulation may be optimised subject to either a mininum cost or minimum emission objective function.
There is an addtional formulation to optimize for maximum profit which satisfies both emission targets and budget contraints, which proves the feasibility of data/model, and provides effective initial values.

@author: Gul, Purusothmn, Dr Michael Short, Prof Dr Dominic C.Y.F.
'''
import os

path = os.chdir(r'C:\Users\pc\Desktop\DECO2 v2023\Indirect Optimization Model')

cwd = os.getcwd()

import IDO_EP_Optimal_Decarbonisation_Model_Python
661 changes: 661 additions & 0 deletions Indirect Optimization Model/LICENSE

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions Indirect Optimization Model/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# DECO2: Indirect Optimisation Model

Indirect Optimisation Model is developed as a standalone extension for DECO2 software.
Carbon trading model, having emission caps as variables and emission rights prices as parameters, is integrated into initial version of DECO2.
Resulting fomulation is MINLP (however, non-linearity iss far less when compared to Direct Optimisation Model formulation), and it leads to greater decarbonisation than initial version of DECO2 and more cost (especially when emission rights pricess are less).
Binary file not shown.
247 changes: 247 additions & 0 deletions Indirect Optimization Model/environment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,247 @@
name: Pyomo_v1
channels:
- gurobi
- conda-forge
- defaults
dependencies:
- alabaster=0.7.12=py_0
- arrow=1.2.2=pyhd8ed1ab_0
- astroid=2.11.6=py38haa244fe_0
- atomicwrites=1.4.1=pyhd8ed1ab_0
- attrs=22.1.0=pyh71513ae_1
- autopep8=1.6.0=pyhd8ed1ab_1
- babel=2.10.3=pyhd8ed1ab_0
- backcall=0.2.0=pyh9f0ad1d_0
- backports=1.0=py_2
- backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0
- bcrypt=3.2.2=py38h294d835_0
- beautifulsoup4=4.11.1=pyha770c72_0
- binaryornot=0.4.4=py_1
- black=22.6.0=py38haa244fe_1
- bleach=5.0.1=pyhd8ed1ab_0
- brotlipy=0.7.0=py38h294d835_1004
- bzip2=1.0.8=h8ffe710_4
- ca-certificates=2022.6.15=h5b45459_0
- certifi=2022.6.15=py38haa244fe_0
- cffi=1.15.1=py38hd8c33c5_0
- chardet=5.0.0=py38haa244fe_0
- charset-normalizer=2.1.0=pyhd8ed1ab_0
- click=8.1.3=py38haa244fe_0
- cloudpickle=2.1.0=pyhd8ed1ab_0
- colorama=0.4.5=pyhd8ed1ab_0
- cookiecutter=2.1.1=pyh6c4a22f_0
- cryptography=37.0.4=py38hb7941b4_0
- debugpy=1.6.0=py38h885f38d_0
- decorator=5.1.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- diff-match-patch=20200713=pyh9f0ad1d_0
- dill=0.3.5.1=pyhd8ed1ab_0
- docutils=0.19=py38haa244fe_0
- entrypoints=0.4=pyhd8ed1ab_0
- flake8=4.0.1=pyhd8ed1ab_2
- gettext=0.19.8.1=ha2e2712_1008
- glib=2.72.1=h7755175_0
- glib-tools=2.72.1=h7755175_0
- glpk=5.0=h8ffe710_0
- gst-plugins-base=1.20.3=he07aa86_0
- gstreamer=1.20.3=hdff456e_0
- gurobi=9.5.1=py38_0
- icu=70.1=h0e60522_0
- idna=3.3=pyhd8ed1ab_0
- imagesize=1.4.1=pyhd8ed1ab_0
- importlib-metadata=4.11.4=py38haa244fe_0
- importlib_metadata=4.11.4=hd8ed1ab_0
- importlib_resources=5.9.0=pyhd8ed1ab_0
- inflection=0.5.1=pyh9f0ad1d_0
- intel-openmp=2022.1.0=h57928b3_3787
- intervaltree=3.0.2=py_0
- ipopt=3.14.9=h99cadeb_0
- ipykernel=6.15.1=pyh025b116_0
- ipython=7.33.0=py38haa244fe_0
- ipython_genutils=0.2.0=py_1
- isort=5.10.1=pyhd8ed1ab_0
- jedi=0.18.1=py38haa244fe_1
- jellyfish=0.9.0=py38h294d835_1
- jinja2=3.1.2=pyhd8ed1ab_1
- jinja2-time=0.2.0=pyhd8ed1ab_3
- jpeg=9e=h8ffe710_2
- jsonschema=4.9.1=pyhd8ed1ab_0
- jupyter_client=7.3.4=pyhd8ed1ab_0
- jupyter_core=4.11.1=py38haa244fe_0
- jupyterlab_pygments=0.2.2=pyhd8ed1ab_0
- keyring=23.7.0=py38haa244fe_0
- krb5=1.19.3=h1176d77_0
- lazy-object-proxy=1.7.1=py38h294d835_1
- libblas=3.9.0=15_win64_mkl
- libcblas=3.9.0=15_win64_mkl
- libclang=14.0.6=default_h77d9078_0
- libclang13=14.0.6=default_h77d9078_0
- libffi=3.4.2=h8ffe710_5
- libflang=5.0.0=h6538335_20180525
- libglib=2.72.1=h3be07f2_0
- libiconv=1.16=he774522_0
- liblapack=3.9.0=15_win64_mkl
- libogg=1.3.4=h8ffe710_1
- libpng=1.6.37=h1d00b33_3
- libsodium=1.0.18=h8d14728_1
- libspatialindex=1.9.3=h39d44d4_4
- libvorbis=1.3.7=h0e60522_0
- libwebp=1.2.3=h8ffe710_1
- libwebp-base=1.2.3=h8ffe710_2
- libzlib=1.2.12=h8ffe710_2
- llvm-meta=5.0.0=0
- lz4-c=1.9.3=h8ffe710_1
- m2w64-gcc-libgfortran=5.3.0=6
- m2w64-gcc-libs=5.3.0=7
- m2w64-gcc-libs-core=5.3.0=7
- m2w64-gmp=6.1.0=2
- m2w64-libwinpthread-git=5.0.0.4634.697f757=2
- markupsafe=2.1.1=py38h294d835_1
- matplotlib-inline=0.1.3=pyhd8ed1ab_0
- mccabe=0.6.1=py_1
- metis=5.1.0=h0e60522_1006
- mistune=0.8.4=py38h294d835_1005
- mkl=2022.1.0=h6a75c08_874
- msys2-conda-epoch=20160418=1
- mumps-seq=5.2.1=hb3f9cae_11
- mypy_extensions=0.4.3=py38haa244fe_5
- nbclient=0.6.6=pyhd8ed1ab_0
- nbconvert=6.5.0=pyhd8ed1ab_0
- nbconvert-core=6.5.0=pyhd8ed1ab_0
- nbconvert-pandoc=6.5.0=pyhd8ed1ab_0
- nbformat=5.4.0=pyhd8ed1ab_0
- nest-asyncio=1.5.5=pyhd8ed1ab_0
- numpy=1.23.1=py38h223ccf5_0
- numpydoc=1.4.0=pyhd8ed1ab_1
- openmp=5.0.0=vc14_1
- openssl=1.1.1q=h8ffe710_0
- packaging=21.3=pyhd8ed1ab_0
- pandas=1.4.3=py38hcc40339_0
- pandoc=2.19=h57928b3_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- paramiko=2.11.0=pyhd8ed1ab_0
- parso=0.8.3=pyhd8ed1ab_0
- pathspec=0.9.0=pyhd8ed1ab_0
- pcre=8.45=h0e60522_0
- pexpect=4.8.0=pyh9f0ad1d_2
- pickleshare=0.7.5=py_1003
- pip=22.2.2=pyhd8ed1ab_0
- pkgutil-resolve-name=1.3.10=pyhd8ed1ab_0
- platformdirs=2.5.2=pyhd8ed1ab_1
- pluggy=1.0.0=py38haa244fe_3
- ply=3.11=py_1
- prompt-toolkit=3.0.30=pyha770c72_0
- psutil=5.9.1=py38h294d835_0
- ptyprocess=0.7.0=pyhd3deb0d_0
- pycodestyle=2.8.0=pyhd8ed1ab_0
- pycparser=2.21=pyhd8ed1ab_0
- pydocstyle=6.1.1=pyhd8ed1ab_0
- pyflakes=2.4.0=pyhd8ed1ab_0
- pygments=2.12.0=pyhd8ed1ab_0
- pylint=2.14.5=pyhd8ed1ab_0
- pyls-spyder=0.4.0=pyhd8ed1ab_0
- pynacl=1.5.0=py38h31c79cd_1
- pyomo=6.4.1=py38h885f38d_0
- pyopenssl=22.0.0=pyhd8ed1ab_0
- pyparsing=3.0.9=pyhd8ed1ab_0
- pyqt=5.15.7=py38h75e37d8_0
- pyqt5-sip=12.11.0=py38h885f38d_0
- pyqtwebengine=5.15.7=py38h75e37d8_0
- pyrsistent=0.18.1=py38h294d835_1
- pysocks=1.7.1=py38haa244fe_5
- python=3.8.13=h9a09f29_0_cpython
- python-dateutil=2.8.2=pyhd8ed1ab_0
- python-fastjsonschema=2.16.1=pyhd8ed1ab_0
- python-lsp-black=1.2.1=pyhd8ed1ab_0
- python-lsp-jsonrpc=1.0.0=pyhd8ed1ab_0
- python-lsp-server=1.5.0=pyhd8ed1ab_0
- python-slugify=6.1.2=pyhd8ed1ab_0
- python_abi=3.8=2_cp38
- pytoolconfig=1.2.2=pyhd8ed1ab_0
- pytz=2022.1=pyhd8ed1ab_0
- pywin32=303=py38h294d835_0
- pywin32-ctypes=0.2.0=py38haa244fe_1005
- pyyaml=6.0=py38h294d835_4
- pyzmq=23.2.0=py38h09162b1_0
- qdarkstyle=3.0.3=pyhd8ed1ab_0
- qstylizer=0.2.1=pyhd8ed1ab_0
- qt-main=5.15.4=h467ea89_2
- qt-webengine=5.15.4=h7325c83_3
- qtawesome=1.1.1=pyhd8ed1ab_0
- qtconsole=5.3.1=pyhd8ed1ab_0
- qtconsole-base=5.3.1=pyha770c72_0
- qtpy=2.1.0=pyhd8ed1ab_0
- requests=2.28.1=pyhd8ed1ab_0
- rope=1.3.0=pyhd8ed1ab_0
- rtree=1.0.0=py38h8b54edf_1
- scipy=1.9.0=py38h91810f7_0
- setuptools=63.4.1=py38haa244fe_0
- sip=6.6.2=py38h885f38d_0
- six=1.16.0=pyh6c4a22f_0
- snowballstemmer=2.2.0=pyhd8ed1ab_0
- sortedcontainers=2.4.0=pyhd8ed1ab_0
- soupsieve=2.3.2.post1=pyhd8ed1ab_0
- sphinx=5.1.1=pyhd8ed1ab_1
- sphinxcontrib-applehelp=1.0.2=py_0
- sphinxcontrib-devhelp=1.0.2=py_0
- sphinxcontrib-htmlhelp=2.0.0=pyhd8ed1ab_0
- sphinxcontrib-jsmath=1.0.1=py_0
- sphinxcontrib-qthelp=1.0.3=py_0
- sphinxcontrib-serializinghtml=1.1.5=pyhd8ed1ab_2
- spyder=5.3.2=py38haa244fe_0
- spyder-kernels=2.3.2=py38haa244fe_0
- sqlite=3.39.2=h8ffe710_0
- tbb=2021.5.0=h2d74725_1
- text-unidecode=1.3=py_0
- textdistance=4.3.0=pyhd8ed1ab_0
- three-merge=0.1.1=pyh9f0ad1d_0
- tinycss2=1.1.1=pyhd8ed1ab_0
- tk=8.6.12=h8ffe710_0
- toml=0.10.2=pyhd8ed1ab_0
- tomli=2.0.1=pyhd8ed1ab_0
- tomlkit=0.11.1=pyha770c72_0
- tornado=6.2=py38h294d835_0
- traitlets=5.3.0=pyhd8ed1ab_0
- typing=3.10.0.0=pyhd8ed1ab_0
- typing-extensions=4.3.0=hd8ed1ab_0
- typing_extensions=4.3.0=pyha770c72_0
- ucrt=10.0.20348.0=h57928b3_0
- ujson=5.3.0=py38h885f38d_0
- unidecode=1.3.4=pyhd8ed1ab_0
- urllib3=1.26.11=pyhd8ed1ab_0
- vc=14.2=hb210afc_6
- vs2015_runtime=14.29.30037=h902a5da_6
- watchdog=2.1.9=py38haa244fe_0
- wcwidth=0.2.5=pyh9f0ad1d_2
- webencodings=0.5.1=py_1
- whatthepatch=1.0.2=pyhd8ed1ab_0
- wheel=0.37.1=pyhd8ed1ab_0
- win_inet_pton=1.1.0=py38haa244fe_4
- wrapt=1.14.1=py38h294d835_0
- xz=5.2.5=h62dcd97_1
- yaml=0.2.5=h8ffe710_2
- yapf=0.32.0=pyhd8ed1ab_0
- zeromq=4.3.4=h0e60522_1
- zipp=3.8.1=pyhd8ed1ab_0
- zlib=1.2.12=h8ffe710_2
- zstd=1.5.2=h6255e5f_2
- pip:
- cycler==0.10.0
- et-xmlfile==1.1.0
- gekko==1.0.0
- kiwisolver==1.3.1
- matplotlib==3.4.1
- mpmath==1.2.1
- networkx==2.5.1
- openpyxl==3.0.7
- pillow==8.2.0
- pint==0.17
- pymysql==1.0.2
- pyodbc==4.0.30
- pyro4==4.80
- pyscipopt==3.2.0
- serpent==1.30.2
- sympy==1.8
- xlrd==2.0.1
- xlsxwriter==1.4.5
prefix: C:\Users\LENOVO\anaconda3\envs\Pyomo_v1
Loading