Dear Prof. Ray, Thanks a lot for clarifying my doubts. Actually I forgot to see that loads are modeled as negative generator, instead I was focusing on energy prices only. And in second one I didn't elaborate properly but I was thinking in the same way. Thank you very much for your time.
Regards Mirish Thakur On Wed, Dec 2, 2015 at 6:02 PM, Ray Zimmerman <[email protected]> wrote: > 1) It looks like you are setting up gencost correctly. The negative > objective function value results from the fact that the curtailable loads > are being modeled as negative generation, with negative costs (positive > benefits). So rather than simply minimizing generating cost, the OPF is now > minimizing the negative of the net benefits (i.e. maximizing the net > benefits). The objective function value is then the negative of the net > benefits, so we expect it to be a large negative number. > > 2) Yes. But to be precise, these curtailments and redispatches are not > given directly by res.gen(:, PG), but by the deviation of res.gen(:, PG) from > the corresponding nominal value, i.e. res.gen(:, PMAX) for renewables, > res.gen(:, > PMIN) for dispatchable loads, and the original dispatch reference point > for conventional generators. > > Ray > > > > On Dec 1, 2015, at 8:19 PM, Mirish Thakur <[email protected]> wrote: > > Dear Prof. Ray Zimmerman, > > > Thank you very much for your help. I have implemented your suggestion of > relaxing constraints over conventional power plants and got successful > convergence on both model. While doing so in 2# model I kept minimum > value of generation Pmin=0, and instead of using single slack generator > output to supply system losses I increased all conventional generators > output by 2% means Pmax=(Original Pmax)*1.02. So that losses will be > contributed by all generators. But I want to clarify some doubts. > > > 1) My *Objective Function Value = -243875269.94 $/hr* is highly negative > after convergence, that I don’t understand why it’s highly negative. After > *mpc=load2disp(mycase)* I checked mpc.gencost matrix. In my case > conventional generators variable cost function is linear e.g. [2 0 0 3 > 0 10.91 0] and renewable generators and cross border generators cost is > zero e.g. [2 0 0 3 0 0 0] and for dispatchable loads I set linear > cost function [2 0 0 3 0 5000 0]. Am I using correct values in > mpc.gencost matrix? Or I have to use for conventional power plants = [2 > 0 0 3 0 0 0] and for both renewables and dispatchable loads= [2 0 0 > 3 0 5000 0] ? Both approach gives negative objective function value. > > > 2) When I perform successfully *res=runopf(mpc) *all curtailments on > renewable / loads / redispatch of conventional power plants will be seen > in *res.gen(:,2)* column (second column of res.gen matrix) right? Thank > you very much for your time. > > > Regards > > Mirish Thakur > > On Mon, Nov 30, 2015 at 5:54 PM, Ray Zimmerman <[email protected]> wrote: > >> Hi Mirish, >> >> There is no way to see the load or renewable curtailment until you get a >> converging OPF. It is possible that you will also have to redispatch the >> conventional generators in order to get a feasible solution. I would >> suggest that you combine your option #2 with curtailable loads, relax the >> active power dispatch constraints on the conventional generators (to their >> normal limits) and assign piecewise linear costs to those generators with >> negative or zero marginal cost up to Pg and large positive marginal cost >> above Pg. This will attempt to minimize deviations from the original >> dispatch pattern, hopefully moving only those generators necessary to >> relieve the line overloads. >> >> Ray >> >> On Nov 29, 2015, at 7:31 PM, Mirish Thakur <[email protected]> >> wrote: >> >> Hello friends, >> >> >> I’m working on (1000 bus system) reactive power dispatch problem. I have >> modeled grid into matpower case file and I’m getting the results of >> *runpf*. But when I use *ACOPF* it fails to converge. >> >> I have modeled grid into two methods >> >> 1) I used all renewable energy sources generation, pump storage power >> plant and cross border energy transfer as negative load. And all >> conventional power plants as generators. Dispatch of conventional >> generators is equal to residual load so demand is equal to generation. >> Further I have increased limits of slack generator to supply system losses >> and kept rest of generators dispatch constant by *Pmax=Pmin=Pg*. Also >> *RATE_A* limits should be unchanged. (Necessary condition for project). >> >> >> 2) In other way all renewable energy sources generation, pump storage >> power plant and cross border energy transfer are modeled as generators and >> put next to all conventional power plants. And in *gencost *matrix I >> used zero variable cost for renewable generation. Slack generator and rest >> of the conditions are set as it is in first approach. >> >> >> My question is in both modeling I got *runpf* successfully converged but >> I’m not getting convergence for *ACOPF*. So, I checked branch limits on >> some branches which I found overloaded by analyzing results of *res= >> runpf (mymodel)*. To avoid such overloading I want to change >> distribution pattern of load which might be cause of overloading of >> branches. I tried *load2disp* function to get curtailment on load but >> every time I got failure in convergence in *runopf*. I went through >> below mentioned discussions- >> >> https://www.mail-archive.com/matpower-l%40cornell.edu/msg04423.html >> >> https://www.mail-archive.com/matpower-l%40cornell.edu/msg00790.html >> >> https://www.mail-archive.com/matpower-l%40cornell.edu/msg01203.html >> >> Is there any way to see curtailment on load or negative generation >> (renewable generation/ cross border transfer of energy) so that I can >> redistribute that load /negative generation on other bus bars so that I can >> avoid overloading of branches and get successful convergence? Many thanks. >> >> Regards >> >> Mirish Thakur >> >> KIT University >> >> >> > >
