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
>>
>>
>>
>
>

Reply via email to