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: <%28607%29%20255-9645>(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
