Dear Ray, at first, thank you very much for your reply to my question,
I know that there is no classic slack generator in OPF and I know that I could model my cost functions by using the polynomial form (I tried that also before). To make it clear what I‘m trying to do: I want to maximize reactive power output from all generators except by one which I called „slack generator“. The voltage for this generator is fixed at 1 p.u. It models the busbar at the substation. I want all (non "slack") generators to maximize their active power output at highest priority and then maximize their reactive power output. So i set the slope for my active power cost function higher then the slope for my reactive power cost function. For little cases it works well, but for bigger cases it doesn't work anymore. I also tried to fix the active power output from all (non "slack") generators to maximum by setting PMAX and PMIN in the gen matrix to the same maximum active power value. I tried to use IPOPT solver instead of MIPS solver. But as you said it seems that there are many local minima in the problem I’m trying to solve. What would be the right way to find the global minimum? As you said trying different starting points. But is there any possibility to setup the problem better so that finding the global minima is easier for the OPF? Thank you very much, Jens W. Von: [email protected] <[email protected]> Im Auftrag von Ray Zimmerman Gesendet: Donnerstag, 20. September 2018 18:45 An: MATPOWER discussion forum <[email protected]> Betreff: Re: maximize the reactive power output from all generator A few comments and questions … - The concept of a slack generator only applies to the power flow problem, where the output of all other generators is specified and the “slack generator” output takes on whatever value is need to satisfy the total power balance. In an OPF, there is no distinction among generators, as each is dispatched to minimize cost. - I assume the cost function you are defining is for the reactive power, but what are you using for the active power costs? In your case, there is no need to use a piece-wise linear gencost since your function is strictly linear. Simply use the polynomial form with the desired linear coefficient. Now to your questions … 1. If you have non-zero active power costs, then the marginal cost of reactive power (the slope) does matter, since it changes the weighting of the active vs. reactive power cost. If not, then it should not make a difference in the solution, except for a simply scaling the objective function value and nodal prices. 2. It’s not clear to me what solution you are attempting to find. Do you want to maximize total reactive power generated? Or maximize reactive power generated at all gens except one which you are calling the “slack generator”, which you want to minimize its reactive output? 3. I’m not quite sure without knowing the answer to some of my other questions. Especially in the absence of costs on active power, am not surprised if there are many local minima in the problem you are trying to solve, so different starting points may even result in different local solutions. Ray On Sep 19, 2018, at 8:24 AM, Weber, Jens <[email protected]<mailto:[email protected]>> wrote: Dear MATPOWER-Community, dear Mr. Zimmerman, I would like to maximize the reactive power output from all generators in the net, one time for maximum induktive reactive power and one time for maximum kapacitive reactive power. So I use the MATPOWER-OPF with a customized piecewise linear cost function which I define in the gen_cost matrix. For example if i would like to maximize the reactive power output from all non slack generators so that they behave like an inductivity I set the data points for my cost function for all non slack generators like this: (-100 | 1000), (0 | 0), (100 | -1000) My first question is: Does it make any difference in OPF-behavior if I change the slope oft the segments of the cost function or is it irrelevant? For example is there a difference with regard to stability or performance if I use this cost function instead of the one above: (-10 | 1000), (0 | 0), (10 | -1000) If there is any difference, how do i find the best slope for the segments of the cost function? My second question is: I can define an opposite cost function for the slack generator: (-100 | -1000), (0 | 0), (100 | 1000) Is it better to set this cost function also for the slack with regard to stability or performance or is it irrelevant? An other option would be to only set the cost function for the slack and set costs for all non slack generators to zero. Is it better with regard to stability or performance or is it irrelevant? My third question is: With a casefile with about 90 buses and about 10 generators it works great but with a casefile with about 2500 buses and about 300 generators it doesn’t work anymore. With the big casefile there are some generators where the reactive power output is not maximized, though there are no voltage violations or power flow limits. Whats the reason for this behavior and is there a possibility to make it work with a big casefile? Do you have any general tips for me or is there another method to improve stability or performance? Thank you very much! Best regards Jens W.
