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] 
> <mailto:[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] 
>> <mailto:[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/msg04423.html>
>> https://www.mail-archive.com/matpower-l%40cornell.edu/msg00790.html 
>> <https://www.mail-archive.com/matpower-l%40cornell.edu/msg00790.html>
>> https://www.mail-archive.com/matpower-l%40cornell.edu/msg01203.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
> 
> 

Reply via email to