As I've said before, I think the problem is that you have unrealistic expectations about the ability to operate a power system with strictly specified power factors on all generators. It is not reasonable to expect that an OPF with a constant power factor constraint on the generators will be feasible over any significant range of power factors.
-- Ray Zimmerman Senior Research Associate 211 Warren Hall, Cornell University, Ithaca, NY 14853 phone: (607) 255-9645 On Mar 17, 2011, at 2:43 PM, Carlos Gonzalez Almeida wrote: > Thank you. In your idea what changes should be carried out to do runmarket, > for the case pf set to 0.97 for example? > > Best Regards > Carlos > > On Thu, Mar 17, 2011 at 19:35, Ray Zimmerman <[email protected]> wrote: > Carlos, > > It appears that with such strict constraints on power factor it is no longer > able to keep the voltages within limits. Notice when you run the case you > sent with the PF set to 0.9, there are both upper and lower voltages limits > binding. > > -- > Ray Zimmerman > Senior Research Associate > 211 Warren Hall, Cornell University, Ithaca, NY 14853 > phone: (607) 255-9645 > > > > On Mar 17, 2011, at 12:35 PM, Carlos Gonzalez Almeida wrote: > >> Dear Prof. Zimmerman >> >> In the case provided in manual(t_auction_case), when I do runmarket (with >> the attached offers and bids) with power factors between 0.5 to 0.9 there is >> no problem but with the PF greater then 0.9 it doesn't work. If it is >> possible could you please see it what is the reason? Please see the attached >> file >> >> Best Wishes >> >> C. Gonzalez Almeida >> >> >> On Thu, Mar 17, 2011 at 10:47, Carlos Gonzalez Almeida >> <[email protected]> wrote: >> Thank you very much for your guidance. I solved the problem. >> >> Best Regards >> >> Carlos >> >> >> On Wed, Mar 16, 2011 at 23:28, Ray Zimmerman <[email protected]> wrote: >> No, it doesn't make sense to have bids without dispatchable loads. What >> would the bids correspond to if there are no dispatchable resources on the >> demand side of the market? >> >> Again, to me, specifying the power factor for everything doesn't make sense. >> But if you insist, then you'll have to do what I said before, create an A >> matrix with constant power factor constraints for the actual generators >> only, not including the dispatchable loads (which already have their own >> constant power factor constraints created automatically by MATPOWER). >> >> -- >> Ray Zimmerman >> Senior Research Associate >> 211 Warren Hall, Cornell University, Ithaca, NY 14853 >> phone: (607) 255-9645 >> >> >> >> On Mar 16, 2011, at 12:25 PM, Carlos Gonzalez Almeida wrote: >> >>> Yes. without converting loads to dispatchable loads is it possible to >>> insert bids? if yes how? >>> >>> my problem is this, with only offers I can do runmarket but with both >>> offers and bids I cannot do runmarket with specified PF. How can I do this? >>> >>> On Wed, Mar 16, 2011 at 17:21, Ray Zimmerman <[email protected]> wrote: >>> It doesn't matter what the power factor is, you cannot give two conflicting >>> power factor constraints for a dispatchable load. There is one that is >>> created automatically by MATPOWER from the Q/P ratio of the load >>> (QMIN/PMIN) and the other you are adding explicitly. If the one you specify >>> explicitly is different from the one automatically created by MATPOWER, >>> then you have made the problem infeasible and it will not work. If they are >>> the same then you have added redundant constraints that could potentially >>> cause numerical issues. >>> >>> So, for loads, set the power factor directly by setting the P and Q in the >>> bus matrix (or gen matrix if you are not using load2disp) and do not add >>> explicit power factor constraints via the A matrix. >>> >>> -- >>> Ray Zimmerman >>> Senior Research Associate >>> 211 Warren Hall, Cornell University, Ithaca, NY 14853 >>> phone: (607) 255-9645 >>> >>> >>> >>> On Mar 16, 2011, at 12:00 PM, Carlos Gonzalez Almeida wrote: >>> >>>> Thank you very much for your help. >>>> >>>> for any power factor(0.85,0.95,0.9, ....) I have this problem. The value >>>> of PF is not important for me. The important thing is that I cannot do >>>> runmarket with the specified power factor as I want. >>>> >>>> Best Regards >>>> >>>> Carlos >>>> >>>> On Wed, Mar 16, 2011 at 16:51, Ray Zimmerman <[email protected]> wrote: >>>> The problem here is that you've made the problem infeasible by adding >>>> conflicting constraints. Remember, dispatchable loads are implemented as >>>> generators (with PMAX = 0 and PMIN < 0). Each dispatchable load already >>>> has a constant power factor constraint, included automatically by >>>> MATPOWER, that keeps the Q/P ratio equal to the original ratio. This ratio >>>> is not zero for the loads in case9, but you have added another constraint >>>> to these "generators" trying to force the power factor to equal 1 (Q/P >>>> ratio = 0) and these constraints conflict. You need to modify A, l and u, >>>> to only include rows for the original generators, not the dispatchable >>>> loads. Check out the isload function to help you find which are the real >>>> gens. >>>> >>>> I still question why forcing the power factor to equal 1 for all >>>> generators except the reference gen is so important to you. Are any real >>>> power systems ever operated under such constraints? >>>> >>>> -- >>>> Ray Zimmerman >>>> Senior Research Associate >>>> 211 Warren Hall, Cornell University, Ithaca, NY 14853 >>>> phone: (607) 255-9645 >>>> >>>> >>>> >>>> On Mar 16, 2011, at 7:04 AM, Carlos Gonzalez Almeida wrote: >>>> >>>>> Dear Prof. Zimmerman >>>>> >>>>> I want to do runmarket with following offers and bids also with PF=1 for >>>>> generators and the following error is occurred. >>>>> Could you please help me? >>>>> >>>>> define_constants; >>>>> mpc0= loadcase('case9'); >>>>> mpc = load2disp(mpc0); >>>>> offers.P.qty = [200; 150; 180]; >>>>> offers.P.prc = [30; 40; 50]; >>>>> bids.P.qty = [70; 70; 70]; >>>>> bids.P.prc = [100; 90; 80]; >>>>> mkt.OPF = 'AC'; >>>>> nb = size(mpc.bus, 1); >>>>> ng = size(mpc.gen, 1); >>>>> pf = 1; >>>>> QPratio = sqrt(1/pf^2 -1); >>>>> mpc.A = sparse([1:ng 1:ng]', [2*nb+(1:ng) 2*nb+ng+(1:ng)]', >>>>> [QPratio*ones(ng,1); -ones(ng,1)], ng, 2*nb+2*ng); >>>>> mpc.A = mpc.A(2:end, :); >>>>> mpc.l = zeros(ng-1, 1); >>>>> mpc.u = mpc.l; >>>>> [r, co, cb] = runmarket(mpc, offers, bids, mkt); >>>>> >>>>> Results >>>>> >>>>> Warning: Matrix is singular to working precision. >>>>> > In mips at 422 >>>>> In mipsopf_solver at 145 >>>>> In opf_execute at 106 >>>>> In opf at 225 >>>>> In uopf at 154 >>>>> In smartmkt at 90 >>>>> In runmarket at 141 >>>>> Warning: Matrix is singular to working precision. >>>>> > In mips at 422 >>>>> In mipsopf_solver at 145 >>>>> In opf_execute at 106 >>>>> In opf at 225 >>>>> In uopf at 154 >>>>> In smartmkt at 90 >>>>> In runmarket at 141 >>>>> >>>>> SMARTMARKET: non-convergent UOPF??? Error using ==> mtimes >>>>> Inner matrix dimensions must agree. >>>>> >>>>> Error in ==> smartmkt at 170 >>>>> price = mkt.lim.P.max_offer * ones(ng, 1); >>>>> >>>>> Error in ==> runmarket at 141 >>>>> [co, cb, r, dispatch, success] = smartmkt(mpc, offers, bids, mkt, mpopt); >>>>> >>>>> Best Wishes >>>>> >>>>> Carlos >>>> >>>> >>>> >>>> >>>> Best Wishes >>>> >>>> C. Gonzalez Almeida >>> >>> >>> >>> >>> Best Wishes >>> >>> C. Gonzalez Almeida >> >> >> >> >> Best Wishes >> >> C. Gonzalez Almeida >> >> <pf_constraint_eg1.m> > > > > > Best Wishes > > C. Gonzalez Almeida
