Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge h2 csp #31

Merged
merged 501 commits into from
May 21, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
501 commits
Select commit Hold shift + click to select a range
4d5d070
fix some battery inputs for pysam v2.2.4
dguittet Oct 19, 2021
11246a4
fix om_expense outputs
dguittet Oct 19, 2021
1c59ccd
More clustering updates: Limiting price outliers, updating collection…
jannamartinek Oct 20, 2021
48d4008
fix warning with log_name
dguittet Oct 20, 2021
9cb02e0
remove construction financing and add depreciation and debt
dguittet Oct 20, 2021
a128ea1
fix test results
dguittet Oct 20, 2021
f0096b1
Changing default inputs for storage incentive and time weighting factor
jannamartinek Oct 20, 2021
604d760
Adding initial charge state heursitics to clustering
jannamartinek Oct 20, 2021
b2a3d6c
Adding separate wind resource data streams for solar/wind technologie…
jannamartinek Oct 20, 2021
8c1500d
Integrating clustering into hybrid simulations
jannamartinek Oct 22, 2021
e9c8bf0
Updating CSP performance models to use price from site
jannamartinek Oct 22, 2021
69edc6c
Cleaning up unused functions in clustering
jannamartinek Oct 22, 2021
6c75c6a
Updating default battery initial state in clustering
jannamartinek Oct 22, 2021
5f90789
Reverting back to single performance/financial simulation for pv/wind
jannamartinek Oct 22, 2021
c84cca3
Reverting back to single performance/financial simulation for grid
jannamartinek Oct 23, 2021
c8a55d6
added cbc solver
qualand Oct 25, 2021
8c0c774
updated annual energy to kwh
qualand Oct 25, 2021
0e799a9
update to get_cp_htf
qualand Oct 25, 2021
6fa9ca2
Updating 'daylight' hours in clustering to use a clearsky DNI cutoff …
jannamartinek Oct 25, 2021
42059de
Merge branch 'WB_CSP_dispatch_design' into clustering
jannamartinek Oct 25, 2021
3948f21
Removing clustering file output for debugging
jannamartinek Oct 26, 2021
460be01
Merge branch 'WB_CSP_dispatch_design' of https://github.com/NREL/HOPP…
qualand Oct 26, 2021
dee7449
update csp dispatch cost parameters
qualand Oct 28, 2021
9bd1de6
csv cache
jlcox119 Oct 28, 2021
014063f
clean up result files
jlcox119 Oct 28, 2021
f244f75
clean up more result files
jlcox119 Oct 28, 2021
ed80edc
Updated hybrid_outputs function to include save to file option
qualand Oct 28, 2021
32078a5
Merge branch 'WB_CSP_dispatch_design' of https://github.com/NREL/HOPP…
qualand Oct 28, 2021
1bb1035
Fixing minor bug in price profile used for csp
jannamartinek Oct 29, 2021
3ce0b8d
Adding optional user-defined timeout limit for cbc solver
jannamartinek Oct 29, 2021
2e73a96
Fixing bug in user-defined clustering weights
jannamartinek Oct 29, 2021
60f1024
set up ssc to run once at the beginning of simulation to get cycle ef…
qualand Oct 29, 2021
bcfd4f6
added back hybrid_outputs and rename updated function to hybrid_simul…
qualand Oct 29, 2021
0d9cd9a
Merge branch 'WB_CSP_dispatch_design' of https://github.com/NREL/HOPP…
qualand Oct 29, 2021
32b549b
added a solver_options input to dispatch options
qualand Oct 29, 2021
10c6d80
Merge branch 'WB_CSP_dispatch_design' of https://github.com/NREL/HOPP…
jannamartinek Oct 29, 2021
f9ab40f
fixed poor default value for solver operations which causes test to fail
qualand Oct 29, 2021
2c869f4
Merge branch 'WB_CSP_dispatch_design' of https://github.com/NREL/HOPP…
jannamartinek Oct 30, 2021
ce8d4b5
update .gitignore
dguittet Oct 30, 2021
dd3542a
fix battery financials for new version
dguittet Oct 30, 2021
ecf0ad1
add battery replacement output
dguittet Oct 31, 2021
6c6f578
fixing test_tower_with_dispatch_model test
qualand Nov 1, 2021
dbad8e9
remove taxes from grid_dispatch.py
dguittet Nov 1, 2021
2b78a27
fix test results
dguittet Nov 1, 2021
243d424
fix test results
dguittet Nov 1, 2021
3aa3382
adding fix to allow simulate to be called multiple times
qualand Nov 1, 2021
e51c5a5
adding cbc solver for windows systems
qualand Nov 1, 2021
c9ced89
adding is_dispatch_targets boolean to trough defaults
qualand Nov 2, 2021
52267ac
Update ci.yml
dguittet Nov 2, 2021
df4755c
fix test results
dguittet Nov 2, 2021
55754dd
Merge branch 'update_pysam' of https://github.com/NREL/HOPP into upda…
dguittet Nov 2, 2021
1cf0f89
Remove tower outputs from optimization problem output
jlcox119 Nov 2, 2021
4235d08
fix test results
dguittet Nov 2, 2021
96af1e6
fix test results
dguittet Nov 2, 2021
9d0de6c
Updating csp initial states for simulations using clustering
jannamartinek Nov 4, 2021
8a790d5
Adding initial charge state for battery with clustering
jannamartinek Nov 5, 2021
36c2ecb
modify solar PTC, add location from paper
dguittet Nov 6, 2021
cc60d61
weight hybrid financials by production or cost ratio or evenly; add t…
dguittet Nov 6, 2021
e3d4388
update tests
dguittet Nov 6, 2021
0ece88e
fix tests
dguittet Nov 6, 2021
f60714d
add pv_charging_only to dispatch options for ITC qualification
dguittet Nov 7, 2021
4299574
fix battery financial simulation to not run if 0 battery
dguittet Nov 10, 2021
3342cc5
fix test results
dguittet Nov 10, 2021
6e52874
use power_sources for system_capacity_kw property
dguittet Nov 17, 2021
82a2144
rename solar files in Docs to pv
dguittet Nov 26, 2021
533d8c0
add battery.rst
dguittet Nov 29, 2021
04515f8
updated dispatch models to not pass cost of generation through ports
qualand Nov 29, 2021
e320030
Update ci.yml
dguittet Nov 30, 2021
940d9cc
Merge branch 'master' into update_pysam
dguittet Nov 30, 2021
f47fe50
Update alt_dev docs
jlcox119 Nov 30, 2021
3c674b2
Initialize new branch with basic running simulation
Matthew-Boyd Dec 3, 2021
7b43f86
Updating default weights for clustering for CSP, CSP-PV and CSP-PV-Ba…
jannamartinek Dec 3, 2021
8133db8
Scaling heliostat size and startup/tracking power to capacity
jannamartinek Dec 10, 2021
7f79c58
Adding optional tube size scaling with capacity in csp tower model
jannamartinek Dec 13, 2021
219e329
Add capacity credit calculations for each submodel
Matthew-Boyd Dec 14, 2021
f3d2c26
Add capacity payment calculation for entire hybrid system
Matthew-Boyd Dec 14, 2021
8c93829
Merge branch 'add_capacity_credit' into csp_pv_hybrid_cs
Matthew-Boyd Dec 14, 2021
cd9d340
Merge branch 'WB_CSP_dispatch_design' into csp_pv_hybrid_cs
qualand Dec 14, 2021
a5f123d
update caching and output
jlcox119 Dec 14, 2021
81346f5
Merge branch 'update_pysam' into csp_pv_hybrid_cs
qualand Dec 15, 2021
c185041
adding tes tank heater and tank height scale
qualand Dec 15, 2021
ae18972
updated capacity credit to work for both trough and tower
qualand Dec 15, 2021
925b93d
fixed tests
qualand Dec 16, 2021
3a30a5f
added sim option to calculate capacity credit with and without availa…
qualand Dec 16, 2021
397924a
added capacity hour array to site info class
qualand Dec 16, 2021
fbc63f8
updates to CSP PV case study
qualand Dec 16, 2021
f7f7feb
Merge branch 'WB_CSP_dispatch_design' into csp_pv_hybrid_cs
qualand Dec 20, 2021
50c57f0
update driver exception handling
jlcox119 Dec 20, 2021
59c29f0
Remove cache_file references
jlcox119 Dec 20, 2021
a887ba2
Add gurobi option for dispatch solver
jlcox119 Dec 20, 2021
f70dc8b
jupyter stubs
jlcox119 Dec 20, 2021
fb25c47
Update run_alt.py
jlcox119 Dec 20, 2021
e5bd2b0
updates to capacity payment script
qualand Dec 20, 2021
a3889d1
Merge branch 'csp_pv_hybrid_cs' into WB_CSP_dispatch_design
qualand Dec 20, 2021
199b133
fixed capacity credit calculation
qualand Dec 20, 2021
c4bac36
Merge branch 'csp_pv_hybrid_cs' into WB_CSP_dispatch_design
qualand Dec 20, 2021
4b19f25
Update simple_CSP_PV_simulate.py
qualand Dec 21, 2021
e1b7b16
fixing boolean for using storage in capacity credit calculation
jannamartinek Dec 21, 2021
c09f31c
Add opt_problem options
jlcox119 Dec 21, 2021
5169a93
bug fixes
jlcox119 Dec 21, 2021
10c5c9b
capacity credit based on gross power
qualand Dec 21, 2021
c9d0027
Merge branch 'csp_pv_hybrid_cs' of https://github.com/NREL/HOPP into …
qualand Dec 21, 2021
cfd55fe
updated bool for capacity credit
qualand Dec 21, 2021
fff75b1
Merge branch 'csp_pv_hybrid_cs' into WB_CSP_dispatch_design
qualand Dec 21, 2021
3859cfb
Update simple_CSP_PV_simulate.py
qualand Dec 21, 2021
3103f52
fixed hybrid simulation output function to include hybrid outputs
qualand Dec 22, 2021
6b045f9
server changes to case study sript
Dec 22, 2021
7942950
Add candidate to cache entry
jlcox119 Dec 22, 2021
223abbd
Merge branch 'csp_pv_hybrid_cs' of https://github.com/NREL/HOPP into …
Dec 22, 2021
3b092ff
Added BCR breakdown printout
Dec 28, 2021
354dbb7
updated grid capacity credit to use interconnect limit for capacity p…
qualand Dec 29, 2021
64a9680
Minor updates to capacity credit calculations
jannamartinek Jan 5, 2022
e88cb97
added tower receiver cost scale based on thermal rating
qualand Jan 5, 2022
8ce9f22
added tes_capacity property
qualand Jan 5, 2022
e2f6413
fixed bug with calculation of capacity-based O&M
qualand Jan 5, 2022
7977d44
added 2030 SETO targets
qualand Jan 5, 2022
4aa4e75
Merge branch 'csp_pv_hybrid_cs' of https://github.com/NREL/HOPP into …
jannamartinek Jan 5, 2022
b7b10b1
More capacity payment updates to fix CSP vs hybrid inconsistencies
jannamartinek Jan 10, 2022
e8dafe1
Fixing bugs in battery financials created by last commit
jannamartinek Jan 10, 2022
53c4b1c
updated simulate script, capacity payment amount, and SETO targets fo…
Jan 13, 2022
9ef211f
Merge branch 'csp_pv_hybrid_cs' of https://github.com/NREL/HOPP into …
Jan 13, 2022
feae8c0
updated tests
qualand Jan 13, 2022
b391abb
updated financial parameters and SETO targets
qualand Jan 14, 2022
aab4be3
fixing battery replacement cost inputs
qualand Jan 21, 2022
47ca0fa
Merge branch 'csp_pv_hybrid_cs' into WB_CSP_dispatch_design
qualand Jan 21, 2022
62612d9
setting battery power based on cycle power
qualand Jan 21, 2022
00fedb9
reformulation of grid dispatch model
qualand Jan 25, 2022
09aaeca
added desired schedule option to dispatch model
qualand Jan 25, 2022
f8a7df8
fixed battery dispatch maximum power
qualand Jan 25, 2022
44cec93
Merge branch 'csp_pv_hybrid_cs' into WB_CSP_dispatch_design
qualand Jan 25, 2022
c7906b9
post analysis updates
jlcox119 Jan 25, 2022
1230ce3
updating dispatch default solver to cbc
qualand Jan 26, 2022
4bbc8a0
adding a dispatch test for setting a desired schedule for the system
qualand Jan 26, 2022
525e740
updating grid dispatch model
qualand Jan 26, 2022
2be01bb
adding csp, pv, battery dispatch plotting tool
qualand Jan 26, 2022
7a34eb7
adding tower and trough to RTD
qualand Jan 26, 2022
80429da
fixed tests
qualand Jan 27, 2022
f080b33
Update parallel optimize convention
jlcox119 Feb 1, 2022
79b303e
updated csp dispatch model
qualand Feb 2, 2022
3f7fc9a
started xpress solver for HOPP
qualand Feb 2, 2022
268bb8d
Merge branch 'csp_pv_hybrid_cs' into WB_CSP_dispatch_design
qualand Feb 2, 2022
57aa836
fixing tests
qualand Feb 2, 2022
604c7d3
Update locations.py
jlcox119 Feb 3, 2022
4591de0
updates to battery dispatch
qualand Feb 3, 2022
903ed7c
Xpress solver is working with HOPP
qualand Feb 3, 2022
e5361e7
Merge branch 'csp_pv_hybrid_cs' into WB_CSP_dispatch_design
qualand Feb 3, 2022
adb8c8d
fixed CSP-only and hybrid model to align
qualand Feb 4, 2022
2cf5ffb
Merge branch 'csp_pv_hybrid_cs' into WB_CSP_dispatch_design
qualand Feb 4, 2022
2e74013
Update hybrid_dispatch_builder_solver.py
jlcox119 Feb 10, 2022
721841d
added Xpress persistent solver interface
qualand Feb 11, 2022
f662fec
fixed CSP curtailment issue
qualand Feb 11, 2022
0eb8496
minor changes to CSP-PV example script
qualand Feb 11, 2022
753c264
removed tower receiver cost per kWt
qualand Feb 11, 2022
ed0652e
updated write_cache to allow partial functions
qualand Feb 14, 2022
8871f04
updated solar resource to allow for relative humidity
qualand Feb 14, 2022
031919f
Commented out dispatchable power constraint
qualand Feb 14, 2022
1c79295
added minimize operating cost objective
qualand Feb 14, 2022
82cb60f
added some outputs for desired schedule analysis
qualand Feb 14, 2022
63d45c9
fixing LCOE reporting units
qualand Feb 15, 2022
1f6a388
added desired schedule to result of optimization problem
qualand Feb 16, 2022
ead016f
adding a method to set CSP dispatch objective costs
qualand Feb 16, 2022
101d098
fixed missed load calculation
qualand Feb 16, 2022
8a65743
added missed load and schedule curtailment to outputs
qualand Feb 16, 2022
bff8819
fixed annual costs outputs
qualand Feb 17, 2022
deae12b
update desired schedule dispatch
qualand Feb 17, 2022
b48d20e
making lifecycle cost mutable
qualand Feb 17, 2022
ecb8f97
updated dispatch plotting to test desired schedule
qualand Feb 17, 2022
01247c6
Patching trough model dispatch
qualand Feb 22, 2022
5ab26f6
updated daotk ssc library
qualand Feb 23, 2022
352165e
Reporting missed load and schedule curtailed as percentage
qualand Feb 28, 2022
2d7ab87
Updated code documentation
qualand Mar 4, 2022
144bd82
updated tests
qualand Mar 9, 2022
e5b4f49
Delete mindtpy_test.py
qualand Mar 10, 2022
5a676ff
fixed path for default electricity prices file
qualand Mar 10, 2022
af13db0
Updated electricity test prices path for tests
qualand Mar 10, 2022
c0a9f26
Update test_hybrid.py
qualand Mar 10, 2022
01851bd
update release notes
qualand Mar 10, 2022
2be110e
update to plotting tool and CSP-PV example
qualand Mar 10, 2022
22bdf6e
Update version.py
qualand Mar 11, 2022
baee724
added CBC solver to package data
qualand Mar 11, 2022
00cb4a9
Fixing calculations with clustering to work with recent commits, and …
jannamartinek Mar 15, 2022
be6d916
Update csp_pv_battery_plot.py
qualand Mar 24, 2022
7969b44
update requirements-dev.txt
dguittet Apr 7, 2022
2687c22
update requirements-dev.txt
dguittet Apr 7, 2022
25a872e
dlib comment out from requirements.txt
dguittet Apr 7, 2022
130799e
update requirements-dev.txt
dguittet Apr 7, 2022
faa6d32
update requirements-dev.txt
dguittet Apr 7, 2022
0c38822
fix indenting
dguittet Apr 7, 2022
d22eee5
fixing documentation warnings
qualand Apr 7, 2022
5598b8f
Merge branch 'merge_H2' into merge_H2_csp
dguittet Apr 8, 2022
749b5ff
Merge branch 'merge_H2_csp' of https://github.com/NREL/HOPP into merg…
dguittet Apr 8, 2022
b8f3222
adding launch.json to gitignore list
qualand Apr 8, 2022
939f1c6
added site info documentation
qualand Apr 11, 2022
a226950
added site info attributes to docstring
qualand Apr 11, 2022
d38f43a
updated calc_capacity_credit_percent to use class attrs
qualand Apr 11, 2022
5e968d6
Merge branch 'merge_H2' into merge_H2_csp
dguittet Apr 13, 2022
90cccfc
updated hybrid_simulation
qualand Apr 14, 2022
da7a745
added no_solar to site to skip solar resource download
qualand Apr 14, 2022
0e03fb2
Merge branch 'merge_H2_csp' of https://github.com/NREL/HOPP into merg…
qualand Apr 14, 2022
9949df3
added nominalized grid pricing files
qualand Apr 15, 2022
2dca451
updated default grid prices to singleowner default
qualand Apr 15, 2022
49cabad
updated hybrid simulation
qualand Apr 15, 2022
1b90ce2
updated battery dispatch costs
qualand Apr 15, 2022
4c14519
updated dispatch tests
qualand Apr 15, 2022
9fc376c
clean up of dispatch builder and solver
qualand Apr 15, 2022
20f894c
Update test_csp.py
qualand Apr 18, 2022
da27e57
cleaning up system model set up
qualand Apr 18, 2022
250acac
cleaned up hybrid simulation
qualand Apr 19, 2022
8f1a0f8
Merge changes from merge_H2
dguittet May 4, 2022
e004deb
Merge branch 'merge_H2' into merge_H2_csp
dguittet May 4, 2022
fc0f64c
Merge branch 'merge_H2' into merge_H2_csp
dguittet May 4, 2022
3b9da69
Add clustering tests and fix small clustering bug
Matthew-Boyd May 5, 2022
70d0685
Update test_hybrid.py
qualand May 11, 2022
efca2a8
updating CSP tests to used fixed weather file
qualand May 11, 2022
c293e76
updated hybrid tests
qualand May 11, 2022
d0be56a
removed duplicate simulate function in power source
qualand May 12, 2022
adf34d0
Update test_hybrid.py
qualand May 12, 2022
bdb5c2b
Fix wind resource parameter test
Matthew-Boyd May 12, 2022
3ea54d9
renamed daggett_ca weather file
qualand May 12, 2022
c861d39
Update solar_resource.py
qualand May 12, 2022
ea4e1b4
Updated H2 tests
qualand May 12, 2022
39932c4
Fix wind file reader
Matthew-Boyd May 13, 2022
31345d5
Merge branch 'merge_H2_csp' of https://github.com/NREL/HOPP into merg…
Matthew-Boyd May 13, 2022
4617f11
Add more clustering weights and divisions tests
Matthew-Boyd May 13, 2022
5c36bb6
Fix equivalency warning
Matthew-Boyd May 13, 2022
1022657
Make test_annual_array_from_cluster_exemplars more robust
Matthew-Boyd May 13, 2022
4fee82f
Add clustering tests that compare to true values
Matthew-Boyd May 15, 2022
23221ea
Add pysam-stubs to requirements file
Matthew-Boyd May 16, 2022
1f47ff0
Merge branch merge_H2
Matthew-Boyd May 19, 2022
98f1086
Merge branch 'merge_H2' into merge_H2_csp
Matthew-Boyd May 19, 2022
f20930e
fix test_run_hopp_calc for modified solar resource file
dguittet May 19, 2022
c3ca97b
Merge branch 'merge_H2_csp' of https://github.com/NREL/HOPP into merg…
dguittet May 19, 2022
0387607
moved hopp_for_h2_test_results.csv
qualand May 19, 2022
8871042
Merge branch 'merge_H2_csp' of https://github.com/NREL/HOPP into merg…
qualand May 19, 2022
4a7243a
Adding back flicker mismatch tests
qualand May 19, 2022
07f55ee
Revert "Adding back flicker mismatch tests"
qualand May 20, 2022
f7e80ed
adding data file for clustering tests
qualand May 20, 2022
288456a
Revert "fix test_run_hopp_calc for modified solar resource file"
qualand May 20, 2022
3b5ee7d
Update test_clustering.py
qualand May 20, 2022
22d798c
Merge branch 'merge_H2' into merge_H2_csp
qualand May 20, 2022
8ce4c9e
turn on test_single_turbine
dguittet May 20, 2022
afcbbc0
Merge branch 'merge_H2_csp' of https://github.com/NREL/HOPP into merg…
dguittet May 20, 2022
b510a5e
turn on test_single_turbine_multiple_angles
dguittet May 20, 2022
82af38b
test_flicker_mismatch
dguittet May 20, 2022
d6a74dd
skip flicker tests if win
dguittet May 20, 2022
0e663c1
Merge branch 'merge_H2_csp' of https://github.com/NREL/HOPP into merg…
dguittet May 20, 2022
2116e69
add reason to skipif
dguittet May 20, 2022
0059d15
Merge branch 'merge_H2_csp' of https://github.com/NREL/HOPP into merg…
dguittet May 20, 2022
08d51f2
update test_flicker_mismatch
dguittet May 20, 2022
65772e5
Merge remote-tracking branch 'origin/merge_H2' into merge_H2_csp
dguittet May 21, 2022
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
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
sudo apt-get update && sudo apt-get install -y libglpk-dev glpk-utils
sudo apt-get update && sudo apt-get install -y libglpk-dev glpk-utils coinor-cbc
python -m pip install --upgrade pip
pip install shapely==1.7.1
pip install -r requirements.txt
Expand Down
49 changes: 31 additions & 18 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,40 @@ __pycache__/
*$py.class

log/
examples/HOPP_examples/
HOPP_examples/
HOPP-demos/
tests/analysis/results/
# needed for h2 test inputs: tests/analysis/results/
WB_case_study/
examples/H2 Analysis/results/reopt_precomputes/

tests/hybrid/REoptResultsNoExportAboveLoad.json

# Results
examples/analysis/results/*.csv
resource_files/wind
resource_files/solar

resource_files/grid/tunisia_est_grid_prices.csv
resource_files/solar/Hazoua
resource_files/solar/Beni_Miha

# clean up after merge
examples/Powerflow Analysis
examples/analysis/Engie
examples/As_Built_Analysis_Blue Creek.csv
examples/Blue_Creek_Analysis.py
examples/dudgeon_wind_extraction_validation.py
examples/powerflow_details.csv
examples/reopt_load.py
examples/data


.idea/*
.idea/workspace.xml
.vscode/

.vscode/
.vscode/*

# Distribution / packaging
.Python
Expand Down Expand Up @@ -109,22 +133,11 @@ ENV/
*.png
*.xlsx

# Results
examples/analysis/results/*.csv
resource_files/wind
resource_files/solar
*.pkl

.DS_Store
*.val
*.db
*.db-shm
*.gz
*.db-wal

examples/HOPP_examples/

examples/Powerflow Analysis
examples/analysis/Engie
examples/As_Built_Analysis_Blue Creek.csv
examples/Blue_Creek_Analysis.py
examples/dudgeon_wind_extraction_validation.py
examples/powerflow_details.csv
examples/reopt_load.py
examples/data
tests/hybrid/REoptResultsNoExportAboveLoad.json
74 changes: 74 additions & 0 deletions 2030_SETO_targets.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"cost_info": {
"wind_installed_cost_mw": 0,
"solar_installed_cost_mw": 585860,
"storage_installed_cost_mw": 200000,
"storage_installed_cost_mwh": 150000,
"wind_bos_cost_mw": 0,
"solar_bos_cost_mw": 0,
"storage_bos_cost_mw": 0,
"storage_bos_cost_mwh": 0
},
"csp_costs": {
"site_spec_cost": 10,
"cost_sf_fixed": 0,
"heliostat_spec_cost": 50,
"tower_fixed_cost": 1818300,
"tower_exp": 0.0113,
"rec_ref_cost": 62428300,
"rec_ref_area": 1571,
"rec_cost_exp": 0.7,
"tes_spec_cost": 10,
"plant_spec_cost": 700,
"bop_spec_cost": 0,
"fossil_spec_cost": 0,
"contingency_rate": 7,
"land_spec_cost": 10000,
"csp.pt.cost.plm.percent": 0,
"csp.pt.cost.plm.per_watt": 0,
"csp.pt.cost.plm.fixed": 0,
"csp.pt.cost.epc.per_acre": 0,
"csp.pt.cost.epc.percent": 13,
"csp.pt.cost.epc.per_watt": 0,
"csp.pt.cost.epc.fixed": 0,
"sales_tax_frac": 80,
"sales_tax_rate": 5,
"tower_rec_cost_per_kwt": 100
},
"SystemCosts": {
"om_capacity_escal": 3.0,
"om_fixed_escal": 0,
"om_production_escal": 0,
"pv": {
"om_capacity": [4.800000],
"om_fixed": [0.000000],
"om_production": [0.000000]
},
"tower": {
"om_capacity": [44.000000],
"om_fixed": [0.000000],
"om_production": [3.500000]
},
"trough": {
"om_capacity": [44.000000],
"om_fixed": [0.000000],
"om_production": [4.000000]
},
"battery": {
"en_batt": 1,
"om_capacity": [4.8],
"batt_replacement_option": 2,
"batt_bank_replacement": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0
],
"batt_replacement_schedule_percent": [0, 0, 0, 0, 0, 0, 0, 0, 0, 100,
0, 0, 0, 0, 0, 0, 0, 0, 0, 100,
0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
0, 0, 0, 0, 0
],
"om_batt_replacement_cost": [200]
}
}
}
28 changes: 27 additions & 1 deletion RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,29 @@
# Release Notes

## Version 0.1.0, ~
## Version 0.1.0.dev3, Mar. 11, 2022
* Include CBC package data for Windows

## Version 0.1.0.dev2, Mar. 11, 2022
* Add CBC open-source dispatch solver as default (faster than GLPK)
* Add Xpress and Gurobi AMPL commercial dispatch solvers
* Add clustering of simulation days with some tuning (use with caution)
* Remove taxes from grid dispatch model
* Add weighting of hybrid financials by production or cost ratio
* Update to csp dispatch cost parameters for absolute grid prices
* Add csv file output option to driver
* Add PV charging only and grid charging options for dispatch
* Add key parameter scaling when scaling CSP tower capacities
* Add capacity credit payment calculations based on dispatch
* Reformulate grid dispatch model
* Add desired schedule option to dispatch model to follow schedule at least cost
* Improve class documentation
* Fix general bugs and clean-up code

## Version 0.1.0.dev1, Oct. 11, 2021
* Updated requirements
* Added presolve to GLPK LP solver

## Version 0.1.0.dev, Oct. 10, 2021
* Battery dispatch and simulation with example in examples/simulate_hybrid_wbattery_dispatch.py
* Separate layout-related functions from optimization code into Layout classes
* Refactor Optimizer classes to use HybridSimulation with examples in examples/optimization/hybrid_npv.py and examples/optimization/hybrid_sizing_problem.py
Expand All @@ -9,6 +32,9 @@
* Rename "Solar" classes to "PV"
* Add ElectricityPrices class with some example input files in resource_files/grid
* Add storage costs to CostCalculator
* Add concentrating solar power (CSP) tower and trough configurations through pySSC wrapper
* Add dispatch optimization model for CSP models
* Add design evaluation methods to iterate on design variables through space sampling, single objective derivative-free optimization, and multi-objective optimization

## Version 0.0.5, Apr 30, 2021
* Update PySAM requirements
Expand Down
147 changes: 147 additions & 0 deletions alt_dev/Price Stats.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4dbcf4e7",
"metadata": {},
"outputs": [],
"source": [
"import ipywidgets as widgets\n",
"from ipywidgets import interact, Layout\n",
"import plotly.express as px\n",
"import pandas as pd\n",
"import numpy as np\n",
"import os\n",
"\n",
"# Plotting imports\n",
"import plotly.graph_objects as go\n",
"from plotly.subplots import make_subplots\n",
"\n",
"import plotly.io as pio\n",
"PAPER_LAYOUT=dict(font=dict(family=\"Computer Modern\", size=18),\n",
" margin=dict(t=40))\n",
"pio.templates[\"paper\"] = go.layout.Template(layout=PAPER_LAYOUT)\n",
"pio.templates.default = \"paper\"\n",
"\n",
"def chunks(lst, n):\n",
" for i in range(0, len(lst), n):\n",
" yield lst[i:i + n]\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "3998d12c",
"metadata": {},
"outputs": [],
"source": [
"path = '../resource_files/grid'\n",
"\n",
"options = os.listdir(path)\n",
"data = [pd.read_csv(os.path.join(path, file), header=None)[0] for file in options]\n",
"\n",
"def dayPlot(x):\n",
" idx = options.index(x)\n",
" xvals = np.arange(24)\n",
" y = data[idx]\n",
" s = None\n",
" \n",
" fig = go.Figure()\n",
" \n",
" for chunk in chunks(y, 24):\n",
" d = np.array(chunk, ndmin=2)\n",
" \n",
" if s is None:\n",
" s = d \n",
" else:\n",
" s = np.concatenate([s, d], axis=0)\n",
" \n",
" fig.add_trace(go.Scatter(x=xvals, y=chunk, line=dict(color='gray'), showlegend=False))\n",
" \n",
" fig.add_trace(go.Scatter(x=xvals, y=s.min(axis=0), line=dict(color='black', dash='dash'), showlegend=False))\n",
" fig.add_trace(go.Scatter(x=xvals, y=s.max(axis=0), line=dict(color='black', dash='dash'), showlegend=False))\n",
" fig.add_trace(go.Scatter(x=xvals, y=s.mean(axis=0), line=dict(color='black'), showlegend=False))\n",
" \n",
" fig.update_layout(title=x)\n",
" fig.show()\n",
" \n",
" for i in range(2):\n",
" print('hour', ''.join([f\"{i:7.0f}\" for i in xvals[i*12:12+i*12]]))\n",
" print(' max', ''.join([f\"{i:7.0f}\" for i in s[:,i*12:12+i*12].max(axis=0)]))\n",
" print('mean', ''.join([f\"{i:7.0f}\" for i in s[:,i*12:12+i*12].mean(axis=0)]))\n",
"# print('mode', ''.join([f\"{i:7.0f}\" for i in s[:,i*12:12+i*12].mode(axis=0)]))\n",
" print(' min', ''.join([f\"{i:7.0f}\" for i in s[:,i*12:12+i*12].min(axis=0)]))\n",
" print()\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "34ade27e",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f3a2047c82ae4733aff8ad6a6cddad5a",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(Dropdown(description='x', options=('pricing-data-2020-IronMtn-002.csv', 'test_prices.csv…"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<function __main__.dayPlot(x)>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"interact(dayPlot, x=options) #('test_prices.csv')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ca3ac299",
"metadata": {},
"outputs": [],
"source": [
"[np.isnan(d).sum() for d in data]"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Loading