IEEE-30 energy system data of multi-period market with intertemporal constraints
Description
This is the dataset that is used for the original article: "Locational marginal pricing in multi-period AC OPF environment"
The dataset consists of the following files
- Case1.zip
- Case2.zip
- Case3.zip
- case_modifications.py
- data_spec.py
- OPF_formulation.pdf
Multiperiod AC OPF is given in OPF_formulation.pdf. Modifications of traditional IEEE 30-node case are given in case_modifications.py
The case files incorporate input and output multiperiod AC OPF and LMP decomposition data in csv and pickle formats. Data structure of case files is given in data_spec.py.
For python users pickle files are given. Nevertheless, python environment is not required. Specification can be read as a text file. All necessary data are repeated in csv format.
Step 1 are to define LMPs of limited energy resources or storage resources that are formed by actual marginal resources from all time periods (first LMP definition in fig. 6 in the paper).
Step 2 are to define all other LMPs at price-taking nodes (second LMP definition in fig. 6 in the paper).
The following interrelation between Lagrange multipliers, LMP components, and price-bonding factors holds true:
assert np.max(np.abs(output_ramp.sensitivities.dot(output_ramp.offer_gen_data.price).tolist() -
output_ramp.ramping_gen_data.price)) < 1e-2
if output_pt_step1.components.shape[0]:
step1_pf_filter = (~output_pf.is_limited_energy) & (~output_pf.is_storage)
assert np.max(np.abs(output_pt_step1.components.node_price -
(output_pt_step1.components.f + output_pt_step1.components.tc_sum + output_pt_step1.components.vc_sum))) < 1e-2
assert (output_pt_step1.components.f - output_pt_step1.w_f.dot(output_pf.node_price[step1_pf_filter])).abs().max() < 1e-2
assert (output_pt_step1.components.tc_sum -
pd.concat(
(w.dot(output_pf.offer_price[step1_pf_filter]) for w in output_pt_step1.w_tc_list), axis=1
).sum(axis=1)).abs().max() < 1e-2
assert np.max(np.abs(output_pt_step2.components.node_price -
(output_pt_step2.components.f + output_pt_step2.components.tc_sum + output_pt_step2.components.vc_sum))) < 1e-2
assert (output_pt_step2.components.f - output_pt_step2.w_f.dot(output_pf.node_price)).abs().max() < 1e-2
assert (output_pt_step2.components.tc_sum -
pd.concat(
(w.dot(output_pf.offer_price) for w in output_pt_step2.w_tc_list), axis=1
).sum(axis=1)
).abs().max() < 1e-2
Files
Case 1.zip
Files
(1.5 MB)
| Name | Size | |
|---|---|---|
|
md5:993b28b6104fb4daa2d0150517a660a8
|
368.0 kB | Preview Download |
|
md5:cdfdb5b2085e81ef90a52b2a2fb7c85e
|
500.5 kB | Preview Download |
|
md5:aa2a712fa9bee5888231ef9e6f84c622
|
498.2 kB | Preview Download |
|
md5:f9095fff1793459b72330f68dc7daf61
|
5.0 kB | Download |
|
md5:401c0f0a87ce697103adafdc160d96d2
|
20.9 kB | Download |
|
md5:4f75aeba574f462fde94840688d949f0
|
106.0 kB | Preview Download |