If you want to no reactive power control (i.e. generators produce no reactive 
power), then the offer and bid quantities for reactive power must be zero.

-- 
Ray Zimmerman
Senior Research Associate
419A Warren Hall, Cornell University, Ithaca, NY 14853
phone: (607) 255-9645




On Feb 21, 2012, at 12:07 PM, Dailan Xu wrote:

> Dear Dr. Zimmerman,
> 
> According to replies to one of the posts: You have written that in the case 
> of without reactive power control I can set Qmax=Qmin. In my case that I have 
> reactive and active offers and bids, how can I do this? I also want to 
> compare the results with and without reactive power control. 
> 
> Best Regards
> 
> D. Xu
> 
> 
> 
> On Tue, Feb 21, 2012 at 16:40, Dailan Xu <[email protected]> wrote:
> Dear Prof. Zimmerman,
> 
> Thank you very much for your helpful comments.
> 
> Best Regards
> 
> Dailan
> 
> 
> 
> On Tue, Feb 21, 2012 at 14:42, Ray Zimmerman <[email protected]> wrote:
> Each dispatchable load has a fixed power factor (fixed Q/P ratio) that is 
> determined by PMIN and either QMIN (negative) or QMAX (positive). Only one of 
> QMIN and QMAX can be non-zero (in your data they are both non-zero). Let's 
> suppose that for dispatchable load k that QMIN is the non-zero one. In this 
> case, gen(k,QG) will always be negative and equal to gen(k,PG) * 
> gen(k,QMIN)/gen(k,PMIN). This means that this unit always absorbs both real 
> and reactive power, so it can have non-zero bids to buy both, but the offers 
> to sell must be zero quantity (since PMAX and QMAX are both zero). So you 
> must make sure that the bid quantities have the same ratio ... that is ...  
> sum(bid.Q.qty(k,:)/sum(bid.P.qty(k,:)) must equal gen(k,QMIN)/gen(k,PMIN).
> 
> -- 
> Ray Zimmerman
> Senior Research Associate
> 419A Warren Hall, Cornell University, Ithaca, NY 14853
> phone: (607) 255-9645
> 
> 
> 
> 
> On Feb 20, 2012, at 4:38 PM, Dailan Xu wrote:
> 
>> Dear Dr. Zimmerman,
>> 
>> I am so sorry I disturbed you again.
>> 
>> When I set Qmax=0 ,  I get the following error #1 and all the Q/P ratios are 
>> constant and consistent with the offers and bids and when I set it to 
>> non-zero I get error #2.
>> 
>> If you see the case study in 15 buses I have both generators and 
>> dispatchable loads i.e. buses {6 9 14 28 30 38 40 45 47 54 56 62 64 81 84}. 
>> 
>> If it is possible for you please see the files. 
>> 
>> Error #1: 
>> ??? Error using ==> off2case at 174
>> Qmax <= 0, reactive offer not allowed for gen 20
>> 
>> Error in ==> smartmkt at 74
>> [gen, genoffer] = off2case(mpc.gen, mpc.gencost, offers, bids, mkt.lim);
>> 
>> Error in ==> runmarket at 141
>> [co, cb, r, dispatch, success] = smartmkt(mpc, offers, bids, mkt, mpopt);
>> 
>> Error #2: 
>> 
>> ??? Error using ==> makeAvl at 73
>> makeAvl: either Qmin or Qmax must be equal to zero for each dispatchable 
>> load.
>> 
>> Error in ==> opf_setup at 168
>>   [Avl, lvl, uvl]  = makeAvl(baseMVA, gen);
>> 
>> Error in ==> opf at 219
>> om = opf_setup(mpc, mpopt);
>> 
>> Error in ==> uopf at 128
>> [results, success] = opf(mpc, mpopt);
>> 
>> Error in ==> smartmkt at 90
>> [r, success] = uopf(mpc2, mpopt);
>> 
>> Error in ==> runmarket at 141
>> [co, cb, r, dispatch, success] = smartmkt(mpc, offers, bids, mkt, mpopt);
>> 
>> Best Regards
>> 
>> Dailan
>> 
>> 
>> 
>> On Mon, Feb 20, 2012 at 22:10, Ray Zimmerman <[email protected]> wrote:
>> The error implies that there is a load that has a non-zero Q bid quantity 
>> and a non-zero Q offer quantity. One of them must be zero. I.e. A load is 
>> either always absorbing reactive power or always supplying it (remember 
>> constant Q/P ratio).
>> 
>>     Ray
>> 
>> On Feb 20, 2012, at 4:06 PM, Dailan Xu wrote:
>> 
>>> Dear Dr. Zimmerman,
>>> 
>>> I have done all of your recommendation. But I get the following error. I 
>>> have attached the files that I have changed.
>>> 
>>> ?? Error using ==> makeAvl at 73
>>> makeAvl: either Qmin or Qmax must be equal to zero for each dispatchable 
>>> load.
>>> 
>>> Error in ==> opf_setup at 168
>>>   [Avl, lvl, uvl]  = makeAvl(baseMVA, gen);
>>> 
>>> Error in ==> opf at 219
>>> om = opf_setup(mpc, mpopt);
>>> 
>>> Error in ==> uopf at 128
>>> [results, success] = opf(mpc, mpopt);
>>> 
>>> Error in ==> smartmkt at 90
>>> [r, success] = uopf(mpc2, mpopt);
>>> 
>>> Error in ==> runmarket at 141
>>> [co, cb, r, dispatch, success] = smartmkt(mpc, offers, bids, mkt, mpopt);
>>> 
>>> Best Regards
>>> 
>>> Dailan
>>> 
>>> 
>>> 
>>> On Mon, Feb 20, 2012 at 21:53, Ray Zimmerman <[email protected]> wrote:
>>> For the generators the reactive offer and bid quantities should be 
>>> consistent with the QMAX and QMIN (if negative) parameters for the 
>>> generator. For dispatchable loads, the ratio of P and Q is always constant 
>>> (defined by PMIN and QMIN or QMAX, whichever is non-zero). The P and Q bid 
>>> quantities must be consistent with (ratio must be the same) this ratio.
>>> 
>>> -- 
>>> Ray Zimmerman
>>> Senior Research Associate
>>> 419A Warren Hall, Cornell University, Ithaca, NY 14853
>>> phone: (607) 255-9645
>>> 
>>> 
>>> 
>>> 
>>> On Feb 20, 2012, at 3:44 PM, Dailan Xu wrote:
>>> 
>>>> Dear Dr. zimmerman,
>>>> 
>>>> Thank you so much. In my case, if you look at the file, I have 15 
>>>> Generators and 29 dispatcahble loads in which 15 genarators are in the 
>>>> same place with dispatchable loads. I don't know how can I adjust Qmax and 
>>>> Qmin as one of them should be zero. After setting I got the following 
>>>> errors:
>>>> 
>>>> ??? Error using ==> off2case at 174
>>>> Qmax <= 0, reactive offer not allowed for gen 17
>>>> 
>>>> Error in ==> smartmkt at 74
>>>> [gen, genoffer] = off2case(mpc.gen, mpc.gencost, offers, bids, mkt.lim);
>>>> 
>>>> Error in ==> runmarket at 141
>>>> [co, cb, r, dispatch, success] = smartmkt(mpc, offers, bids, mkt, mpopt);
>>>> 
>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>> After changing Qmax I got these errors
>>>> 
>>>> ??? Error using ==> makeAvl at 73
>>>> makeAvl: either Qmin or Qmax must be equal to zero for each dispatchable 
>>>> load.
>>>> 
>>>> Error in ==> opf_setup at 168
>>>>   [Avl, lvl, uvl]  = makeAvl(baseMVA, gen);
>>>> 
>>>> Error in ==> opf at 219
>>>> om = opf_setup(mpc, mpopt);
>>>> 
>>>> Error in ==> uopf at 128
>>>> [results, success] = opf(mpc, mpopt);
>>>> 
>>>> Error in ==> smartmkt at 90
>>>> [r, success] = uopf(mpc2, mpopt);
>>>> 
>>>> Error in ==> runmarket at 141
>>>> [co, cb, r, dispatch, success] = smartmkt(mpc, offers, bids, mkt, mpopt);
>>>>  
>>>> Best Regards
>>>> 
>>>> D. Xu
>>>> 
>>>> 
>>>> 
>>>> On Mon, Feb 20, 2012 at 21:13, Ray Zimmerman <[email protected]> wrote:
>>>> It's been a while since I looked at this code, but it appears that there 
>>>> is a requirement that reactive bids and offers must have ng rows, where ng 
>>>> is equal to the total number of generators and dispatchable loads together.
>>>> 
>>>> -- 
>>>> Ray Zimmerman
>>>> Senior Research Associate
>>>> 419A Warren Hall, Cornell University, Ithaca, NY 14853
>>>> phone: (607) 255-9645
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On Feb 20, 2012, at 1:28 PM, Dailan Xu wrote:
>>>> 
>>>>> By adding reactive offers I get the following error, as I have attached 
>>>>> the files.
>>>>> 
>>>>> Error using  - 
>>>>> Matrix dimensions must agree.
>>>>> 
>>>>> Error in auction (line 185)
>>>>>     clip = o.on .* (offers.prc - co.prc);
>>>>> 
>>>>> Error in smartmkt (line 156)
>>>>>         [co.Q, cb.Q] = auction(Qoffer, Qbid, mkt.auction_type, mkt.lim.Q, 
>>>>> gtee_prc);
>>>>> 
>>>>> Error in runmarket (line 141)
>>>>> [co, cb, r, dispatch, success] = smartmkt(mpc, offers, bids, mkt, mpopt);
>>>>> 
>>>>> Error in ANM_3 (line 75)
>>>>> [r,co,cb] = runmarket(mpc,offers,bids,mkt,mpoption);
>>>>> 
>>>>> Best Regards
>>>>> 
>>>>> Dailan
>>>>> 
>>>>> 
>>>>> 
>>>>> ---------- Forwarded message ----------
>>>>> From: Dailan Xu <[email protected]>
>>>>> Date: Mon, Feb 20, 2012 at 18:29
>>>>> Subject: Re: Reactive offers and bids
>>>>> To: Ray Zimmerman <[email protected]>
>>>>> 
>>>>> 
>>>>> Please look at this files. It is the simplified version of that I sent 
>>>>> you. I think the problem is this MATPOWER cannot solve reactive bids with 
>>>>> more than 1 block per bid.Please help me.
>>>>> 
>>>>> Reference to non-existent field 'Q'.
>>>>> 
>>>>> Error in smartmkt (line 139)
>>>>>         nQo = size(offers.Q.qty, 2);
>>>>> 
>>>>> Error in runmarket (line 141)
>>>>> [co, cb, r, dispatch, success] = smartmkt(mpc, offers, bids, mkt, mpopt);
>>>>> 
>>>>> 
>>>>> Best Regards
>>>>> 
>>>>> Dailan
>>>>> 
>>>>> 
>>>>> On Mon, Feb 20, 2012 at 18:01, Dailan Xu <[email protected]> wrote:
>>>>> Please don't write as a function. Please select all and push F9 and will 
>>>>> get the error. When I run it for only active offers and bids there is no 
>>>>> problem while by adding the reactive bids this problem is occurred.  
>>>>> Best Regards
>>>>> 
>>>>> D. Xu
>>>>> 
>>>>> 
>>>>> 
>>>>> On Mon, Feb 20, 2012 at 17:54, Ray Zimmerman <[email protected]> wrote:
>>>>> I cannot reproduce your error. Here is what I get ...
>>>>> 
>>>>> >> ANM_1
>>>>> 
>>>>> ans =
>>>>> 
>>>>>     44    21
>>>>> 
>>>>> 
>>>>> ans =
>>>>> 
>>>>>     44     8
>>>>> 
>>>>> 
>>>>> ans =
>>>>> 
>>>>>     29     2
>>>>> 
>>>>> 
>>>>> ans =
>>>>> 
>>>>>     29     2
>>>>> 
>>>>> 
>>>>> ans =
>>>>> 
>>>>>     44     2
>>>>> 
>>>>> 
>>>>> ans =
>>>>> 
>>>>>     44     2
>>>>> 
>>>>> 
>>>>> SMARTMARKET: non-convergent UOPFError using *
>>>>> Inner matrix dimensions must agree.
>>>>> 
>>>>> Error in smartmkt (line 174)
>>>>>     price       = mkt.lim.P.max_offer * ones(ng, 1);
>>>>> 
>>>>> Error in runmarket (line 141)
>>>>> [co, cb, r, dispatch, success] = smartmkt(mpc, offers, bids, mkt, mpopt);
>>>>> 
>>>>> Error in ANM_1 (line 260)
>>>>> [r, co, cb, f, dispatch, success, et] =
>>>>> runmarket(mpc,offers,bids,mkt,mpoption);
>>>>>  
>>>>> 174     price       = mkt.lim.P.max_offer * ones(ng, 1);
>>>>> 
>>>>> 
>>>>> 
>>>>> -- 
>>>>> Ray Zimmerman
>>>>> Senior Research Associate
>>>>> 419A Warren Hall, Cornell University, Ithaca, NY 14853
>>>>> phone: (607) 255-9645
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> On Feb 20, 2012, at 10:48 AM, Dailan Xu wrote:
>>>>> 
>>>>>> Dear Dr. Zimmerman,
>>>>>> 
>>>>>> I want to do runmarket with active and reactive offers and bids. I 
>>>>>> receive the following message:
>>>>>> 
>>>>>> How can I solve the problem? I have attached the case files. 
>>>>>> By the way, I do not want to distribute my case file because of this 
>>>>>> reason I only sent to your email.
>>>>>> 
>>>>>> Reference to non-existent field 'Q'.
>>>>>> 
>>>>>> Error in smartmkt (line 139)
>>>>>>         nQo = size(offers.Q.qty, 2);
>>>>>> 
>>>>>> Error in runmarket (line 141)
>>>>>> [co, cb, r, dispatch, success] = smartmkt(mpc, offers, bids, mkt, mpopt);
>>>>>> 
>>>>>> Best Regards
>>>>>> 
>>>>>> Dailan
>>>>>> 
>>>>>> 
>>>>>> <ANM_1.m><case84_newdispatch6_7.m>
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> <case84_newdispatch6_3.m><ANM_3.m>
>>>> 
>>>> 
>>> 
>>> 
>>> <case84_newdispatch6_8.m><ANM_3.m>
>> 
>> 
>> <case84_newdispatch6_8.m><ANM_3.m>
> 
> 
> 

Reply via email to