Dear Prof.Ray,

I have observed result struct of load2disp whre I found some surprising
 results on the buses where renewable generator and load both are
 available. I kept renewable generation flexible in model so that it should
obey the line flow limits. I have used zero cost for renewable energy as
per my study requirement. I obsereved that there is negative dispatch of
renewable energy and dispatchable  load is greater than actual connected
load. Please find herewith attched Excel file of result of two number of
such buses, bus No. 96 and 164. Where  bus no 96 has both renewable
generator with 67.97 MW and connected load is 113.57+J 20.33. These are
some results when solution is not converged successfully. In some cases I
got perfect convergence. I really don't understand why this happens. I
really do appreciate your help. Thank you for your time.


Thanks and regards

Mirish Thakur.

On Wed, Dec 2, 2015 at 6:19 PM, Mirish Thakur <mirishtha...@gmail.com>
wrote:

> 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 <r...@cornell.edu> 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 <mirishtha...@gmail.com> 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 <r...@cornell.edu> 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 <mirishtha...@gmail.com>
>>> 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
>>>
>>>
>>>
>>
>>
>

Attachment: res.xlsx
Description: MS-Excel 2007 spreadsheet

Reply via email to