-
Notifications
You must be signed in to change notification settings - Fork 145
Obj scale factor #657
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
Obj scale factor #657
Conversation
Outputs into a new column in capacity.csv.
These are not needed since there's only one zone.
Fix error on write_costs re: COMMIT_ZONE GenXProject#506
* add PR template * remove junk files * update changelog
Removed from the GenX: Introduction page in factor of the Multi-stage Capacity Expansion Planning with GenX page
`write_outputs` now returns the path where the results were saved after any changes by `choose_output_dir()` Change `mkdir` to `mkpath`, to avoid errors were a parent directory of the intended results folder is missing. Finally, update mga outputs_path folder to be the folder created by `choose_output_dir()`, not the original `outputs_path` Co-authored-by: Ruaridh Macdonald <rmacd@mit.edu>
Turn on MUST_RUN=1 for the small_hydro plants in the RealSystemExample cases. Having at least one resource flag is necessary; else the plant does not contribute to the power balance.
* Validate resources in generators_data.csv Checks that the information in generators_data.csv is at least self-consistent and valid. Right now, this just checks the values in the columns THERM, LDS, FLEX, HYDRO, VRE, STOR, and LDS. It makes sure that only one of the mutually-exclusive types is present, and that a resource which is LDS is either STOR or HYDRO. Also, I add the vector of resource-dictionaries (`GenXResource`s) to the inputs dictionary. Eventually, relevant data (such as one or more time-series) could be added to each of these resource dicts. * Update changelog * Add tests * Locally silence @error during tests This turns off some errors _during_testing_ that would usually be printed to the consolte. * Silence errors only locally * Logging is only a dependency for testing
These are causing the build to fail and we don't have any tests, so they were pretty pointless. Without this we can at least see if the builds succeed.
Fix heading formatting
Use add_to_expression! and some new functions, rather than `+=` and `-=` for JuMP expressions, to reduce memory usage and time during model generation. Co-authored-by: RuaridhMacd <rmacd@mit.edu>
…eding to generate (GenXProject#475) * Add ability for storage to contribute to capacity reserves * remove VREStor references from capres documentation * add VOM for virtual charge and discharge * fix documentation * remove unused variable * make CRM check consistent and remove unused variables * remove virtual charge/discharge if CRM not in use * fix non-working instance of add to expression * Revert "fix non-working instance of add to expression" This reverts commit 04cc9a8. * fix bug --------- Co-authored-by: wilson-ricks <wricks@princeton.edu>
The Retrofits feature is still under development, so it is being disabled. In order to re-enable the feature, remove the line from load_generators_data! which sends an error if a nonzero RETRO column is present. --------- Co-authored-by: Gabe Mantegna <30732358+gmantegna@users.noreply.github.com>
* Remove fill_with_zeros on scalar expression * Fix CRM bug with empty expression * createemptyexpression -> create_empty_expression * Simplify types in expression_manipulation.jl * We still need to compare the performance and compile time using this approach, but the memory usage and runtime appear the same for now
Add Test-example job to run example case nightly on both `main` and `develop` branches. --------- Co-authored-by: Jacob Schwartz <jacob@jaschwartz.net>
…rogramming.jl(GenXProject#530) The current stage value is currently modified in case_runners.jl and erroneously left set to the last stage.
Add VREStor module for modeling co-located VRE and storage, along with associated documentation and example case. --------- Co-authored-by: Aneesha Manocha <32530260+aneeshamanocha@users.noreply.github.com>
…oject#533) The VRE_STOR feature and this commit, together, fix a bug which would have affected anyone running a non-myopic multistage case with asymmetric storage. The bug would have resulted in a lower Fixed OM cost for those generators. The VRE_STOR patch made the bug visible by giving a hard `error` rather than running in silence; this allows those cases to run correctly.
'Load' is a confusing term for electrical demand since it's, well, 'overloaded' with the notion of transferring files into memory. 'Demand' is more accessible to non-specialists, and is also a better description of the quantity's role in GenX (an amount of energy desired by users), as demand may not always be fulfilled (if there is non-served energy or flexible demand). This PR changes 'load' to 'demand', other than keeping the common phrase 'value of lost load' and its abbreviation `Voll`. The changes are fully backward-compatible (and come with `@info` warnings to the user). Use of `Load` in input files is now deprecated, and support may be dropped in a future version.
Basic electrolyzer implementation: this feature implements a basic electrolyzer implementation, representing hydrogen production for external (exogenous) demand. Co-authored-by: Jacob Schwartz <jacob@jaschwartz.net> Co-authored-by: Gabe Mantegna <gabe.mantegna@princeton.edu>
The fuel module accounts for fuel consumption and fuel costs, and also models the relationship between fuel consumption and power output at different load via a piecewise linear-approximation. The CO2 module replaces emissions.jl, and allows us to track the CO2 emissions from power plants based on the fuel consumption, CO2 capture rate (during the startup and normal operation), and whether the feedstock is biomass. See documentation in co2.jl and fuel.jl for detailed descriptions. Co-Authored-By: Qingyu Xu <xuqingyu0610@gmail.com>
Co-authored-by: Luca Bonaldo <lb9239@princeton.edu>
Add an optional formulation for scheduled maintenance. Plants with this formulation active (so far, limited to thermal-commit plants, THERM=1) need to undergo a certain number of contiguous hours of maintenance every y >= 1 years. During this time they produce no power. This may be particularly useful in modeling fission plants, which need roughly 4 weeks of maintenance every 18 or 24 months. (Here, 18 would need to be rounded up to 24, as only maintenance cycles which are an integer number of years work with this formulation.)
Codecov ReportAttention: Patch coverage is
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## main #657 +/- ##
=====================================
Coverage 0.07% 0.07%
=====================================
Files 112 112
Lines 3953 3953
=====================================
Hits 3 3
Misses 3950 3950 ☔ View full report in Codecov by Sentry. |
|
Dear @Betristor thanks for raising the issue and the PR to fix. We are in the last legs of releasing GenX v0.4, in which we have tried to fix several similar bugs. I will request you to check this once v0.4 is out to see if the bug still persists, and if it does, we will request you to submit an updated PR to fix it. We expect this new version of GenX to be released (or at least, prereleased this week itself) |
…bw consistent with that in .zenodo.json (Alphabetic ordering by lastnames)
PR for GenX v0.4.0 release from Release/0.4.0
with sitename changed to GenX.jl
with GenX.jl
Changed deploydoc URL to GenX.jl
|
@sambuddhac Thanks, I encountered numerical issues during the solving process several times, and thus I hope this fix can help others avoid these numerical issues conveniently and efficiently. |
With Zenodo badge
Update README.md
|
Dear @Betristor , now is a good time to see if you still have the problem and if yes, accordingly revise your PR. We just did a prerelease of GenX v0.4.0. I would suggest you to do a fresh clone and run from the main. Please observe that this new version comes with a complete redressing of the input data. So, you would have to modify your test case. Here's a translator package from old to new data format: https://github.com/lbonaldo/GenX/tree/release/0.4.0_user_guide/split_generators_data |
|
@sambuddhac Hi, Sam, I updated my code with the latest development, but still it introduces too many changes. I shall close this PR, turn to a new branch and commit the changes. |
Sometimes the model will be built into an ill form if some objective terms are quite large or small. To alleviate this problem, we could add a scaling factor to scale the objective function during solving while leaving all other expressions untouched. In SmallNewEngland/OneZone_3VREBin case, an example ObjScale of 10 could help to change the objective range from [1e-4, 5e+02] to [1e-3, 5e+03].