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