MATPOWER / most

MOST – MATPOWER Optimal Scheduling Tool, for steady-state power systems scheduling problems.
https://matpower.org/
Other
31 stars 11 forks source link

Problems with wind simulation #4

Closed vladkz closed 6 years ago

vladkz commented 6 years ago

Dear Ray,

Thank you very much for your help! Now it's working.

For 100 MW wind I have the proper result:

========== PG ==========

Gen t = 1 t = 2 t = 3 t = 4 t = 5 t = 6 t = 7 t = 8 t = 9 t =10 t =11 t =12 t =13 t =14 t =15 t =16 t =17 t =18 t =19 t =20 t =21 t =22 t =23 t =24


1 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00 186.00

2 378.50 362.80 353.53 365.00 357.00 354.80 323.00 260.40 242.23 242.60 244.33 234.93 232.83 227.03 234.40 229.23 235.13 232.70 247.80 312.83 364.60 382.90 363.47 329.87

3 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00

4 -681.00 -671.00 -666.00 -681.00 -681.00 -676.00 -647.00 -587.00 -572.00 -576.00 -580.00 -574.00 -576.00 -572.00 -578.00 -569.00 -571.00 -562.00 -571.00 -631.00 -663.00 -663.00 -651.00 -641.00

5 44.50 50.20 54.47 58.00 66.00 63.20 66.00 68.60 71.77 75.40 77.67 81.07 85.17 86.97 85.60 81.77 77.87 71.30 65.20 60.17 40.40 22.10 29.53 53.13

But strange deal with the 300 MW wind generation. Everything is ok: load, wind but the value of the load for the first period is different -655.50. The rest is ok.

========== PG ==========

Gen t = 1 t = 2 t = 3 t = 4 t = 5 t = 6 t = 7 t = 8 t = 9 t =10 t =11 t =12 t =13 t =14 t =15 t =16 t =17 t =18 t =19 t =20 t =21 t =22 t =23 t =24


1 - - - - - - - - - - - - - - - - - - - - - - - -

2 450.00 448.40 430.60 435.00 411.00 414.40 377.00 309.20 284.70 277.80 275.00 258.80 248.50 239.10 249.20 251.70 265.40 276.10 303.40 378.50 450.00 450.00 450.00 409.60

3 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00

4 -655.50 -671.00 -666.00 -681.00 -681.00 -676.00 -647.00 -587.00 -572.00 -576.00 -580.00 -574.00 -576.00 -572.00 -578.00 -569.00 -571.00 -562.00 -571.00 -631.00 -643.20 -588.30 -610.60 -641.00

5 133.50 150.60 163.40 174.00 198.00 189.60 198.00 205.80 215.30 226.20 233.00 243.20 255.50 260.90 256.80 245.30 233.60 213.90 195.60 180.50 121.20 66.30 88.60 159.40

And also it's ok with the adding the storage case:

========== PG ==========

Gen t = 1 t = 2 t = 3 t = 4 t = 5 t = 6 t = 7 t = 8 t = 9 t =10 t =11 t =12 t =13 t =14 t =15 t =16 t =17 t =18 t =19 t =20 t =21 t =22 t =23 t =24


1 - - - - - - - - - - - - - - - - - - - - - - - -

2 450.00 448.40 432.80 432.80 412.70 412.70 377.00 309.20 284.70 277.80 275.00 268.78 268.78 268.78 268.78 268.78 268.78 268.78 290.52 398.70 450.00 450.00 450.00 422.25

3 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00 72.00

4 -681.00 -671.00 -666.00 -681.00 -681.00 -676.00 -647.00 -587.00 -572.00 -576.00 -580.00 -574.00 -576.00 -572.00 -578.00 -569.00 -571.00 -562.00 -571.00 -631.00 -663.00 -628.30 -637.95 -641.00

5 133.50 150.60 163.40 174.00 198.00 189.60 198.00 205.80 215.30 226.20 233.00 243.20 255.50 260.90 256.80 245.30 233.60 213.90 195.60 180.50 121.20 66.30 88.60 159.40

6 25.50 - -2.20 2.20 -1.70 1.70 - - - - - -9.98 -20.28 -29.68 -19.58 -17.08 -3.38 7.32 12.88 -20.20 19.80 40.00 27.35 -12.65

What is the reason for that? My files attached t.zip

rdzman commented 6 years ago

There are a lot of files in your attachment. What one do I run to duplicate your problem?

vladkz commented 6 years ago

Sorry, just didn't want to miss smth.

t_most_uc

rdzman commented 6 years ago

It appears that it is optimal to shut down generator 1. With generator 1 off, the total generation in period 1 is 655.5, so the load must be curtailed to that level. Apparently, the cost of avoiding a little load curtailment in period 1 by starting up generator 1 is too high to be worth it.

On another note, for future questions, it would be helpful if you could take a little time to strip things down to a minimal working example. There is a good description of how to do that here.

Feel free to close this issue, if you feel this answers the question.

vladkz commented 6 years ago

Thank you, Ray. I understand. But what kind of solution can be to get the proper result for 24 h period? To add one more startin period with the same load level and etc.?

rdzman commented 6 years ago

I don't know what you mean by the "proper result". Given the values you have provide for load curtailment (in the row corresponding to the dispatchable load in gencost) and the various costs of generation, it is optimal to to curtail the load. It may not be what you expected, but I believe it is optimal given the input parameters provided.

If you increase the value of the load from 100 to 1000, it does commit unit 1 and avoids the load curtailment.

vladkz commented 6 years ago

Speaking of the proper result, I mean that in reality we can not influence the value of the load. And from modeling I expected that the generation will be adjusted to the load values, and not to affect the load values.

vladkz commented 6 years ago

I took the load data from the real network. Just 24 hours. But the load has some "history" - the day before and etc. That's why I suppose that maybe it has sense to add one more period before. From the other side why the case with adding the storage has no such effect?

vladkz commented 6 years ago

At the same time, I would like to know how to completely avoid the effect on the load profile values.

rdzman commented 6 years ago

It sounds like you are saying that you never want to curtail load ... at any price. If so, there are two approaches. (1) Don't use a dispatchable load at all. Use a fixed load by specifying the load in the PD column of the bus matrix and eliminating it from the gen and gencost matrices (and the xGenData). (2) Use a very high value for the load, e.g. $10,000.

I recommend the second option simply because if you have some infeasibility it will still solve and you'll see extremely high prices, whereas with the first option the solver would simply not be able to find a solution. Other than that, they should be identical. Under normal circumstances, no load curtailment should happen and the solutions should be identical.

Regarding the case with storage, while I haven't looked at the details, presumably there is a solution which involves using energy from the storage to supply the shortfall in generation to meet the demand.

vladkz commented 6 years ago

Thank you! I've tried the second option and now seems that it's working as I wanted. But with the high price in mpc.gencost = [ 2 500 500 2 40 0; 2 400 400 2 30 0; 2 100 100 2 20 0; 2 0 0 2 10000 0; ]; the picture of the UC is completely different. It should be like this?

rdzman commented 6 years ago

If you make the load valuable enough that it is not economic to curtail it, then, yes, you should expect the pattern of committed units to change in order to meet that extra bit of demand that was previously being curtailed.