klorel / pscopf Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
Functions writing output files should have a by default folder to create and to fill in with files, preferably inside the input folder to better link them.
Besides, if the specified output folder does not exist, it should be created.
Currently, when a simulation is launched several times, the results are added at the end of the existing output files, which breaks the primary key. The existing output files should be overwritten when the simulation is launched again.
In order not to duplicate information and display it more efficiently, the number of input files should be reduced by merging them according to their primary key. Same for output files.
For example, input files pscopf_init.txt and pscopf_units.txt should be merged. Same for output files market_commitment_schedule.txt and market_schedule.txt.
Production schedules are currently determined with a useless accuracy. An accuracy of 0.5MW should be more than enough, while enabling better performances.
The headline in the pscopf_ptdf.txt file is replaced by the slack location, which should either in another global parameters file, or as an argument in the code.
When the DMO is larger than the time horizon, the given unit commitment is entirely determined by the initial state given in input file pscopf_init.txt.
For example, if the unit is off at the beginning, it cannot be turned on. If it is on, the unit can be turned off at any time, but not turned on again, at further time or time horizons.
DP and DMO are currently in seconds, which requires a small calculation to grasp their real value. The use of minutes should make it easier.
The balancing constraint should prevent the use of the slack bus, this warning should not exist.
As electricity consomptions can be modified by the market (délestage), they should also be present in output files. In particular, this calls for adding a bus_id column in market_schedule.txt.
We should add consistency tests in pscopf_* files. For example, bus names in ptdf and units file etc.
The name of the variable can be confusing. Besides, the user should not have to define the name of the output ptdf matrix file since it must be standard for the rest of the process to work.
The input file pcopf_units.txt should have a second column describing the final state of each unit. This will enable a better counting of units' start, which have a cost. Besides, this should avoid using stopping binaries in the different optimization problems, as only starts have a cost.
A network consisting of only one node (or bus_id) makes the program crash. For testing mainly, it should be possible to simulate such network.
The role of the column is unclear at this time.
Currently, the market only works for 4h and 1h time horizons (échéance in French). It should also work, with the same algorithm, for other time horizons, including 30min and 15min time horizons, where productions schedules are being determined.
In the code, network is defined as the result of the functions :
network = PTDF.read_network(input_path)
network = PSCOPF.Data.pscopfdata2network(input_path)
However, those are two different objects, and therefore their name should indicate more accurately what they are.
This warning should only appear if there are such files in the output folder, not all the time.
To ensure optimization feasibility, load shedding should be added to the formulation of the market.
It seems irrelevant to have to define a slack bus if one wants to have it distributed, but it is mandatory today.
In order to more easily modify input data and display it in spreadsheet tools, .csv files may be more efficient (without performance losses) than the current format, which causes several problems especially because of the initial #.
The presence of limitables production groups in the input file pscopf_units.txt creates several issues :
It is irrelevant to consider several consumptions, or wind or pv power plants at each node. Consequently, input files should incorporate the fact that there can only be one consumption, or wind, or pv power plant at each node. Also, in output files, those productions should be characterized by a specific common name (for example, conso/wind/pv) and a bus_id (or node).
The notation currently used for numbers in input and output files is hard to read and harder to modify efficiently. Simple numbers would make it easier.
The function PSCOPF.generate_ech should only take as input the time of the beginning of the simulation, nothing more.
The name of the first of column of all input and output files should follow immediately after the #. Otherwise, Excel sees it as an additional column name.
Time_factor and Cone_effect are required in input files for uncertainties generation but their effect is not standard and cannot be found in the literature.
The PSCOPF is actually a small part of the tool that is developed here. A more appropriate name for the package is needed to avoid unnecessary confusion. For example, it could be DANSE, for Demand and supply balance And Network Synchronisation study Environment.
This condition should not be necessary.
bus_name and bus_num both characterize exactly a given bus. Same goes for branch_name, branch_num, and bus_from/bus_to.
I would only keep bus_num for buses, and bus_from/bus_to from branches.
It seems that generate_sequence should only take as inputs the result of PSCOPF.generate_ech and the the PSCOPF MODE.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.