I often simulate a wind turbine as a negative load (a fixed P + Q injection),
or as a generator with zero cost. The Q capability would depend on the type of
turbine.
To remove a generator, you can either switch it off by setting it's GEN_STATUS
to 0 (which causes it to be removed internally) or remove the corresponding
rows in the data matrices after they are loaded.
gen(k, :) = [];
gencost(k, :) = [];
...
--
Ray Zimmerman
Senior Research Associate
211 Warren Hall, Cornell University, Ithaca, NY 14853
phone: (607) 255-9645
On Mar 18, 2011, at 2:13 PM, Carlos Gonzalez Almeida wrote:
> Thank you. But if you want to have Wind turbine how will you simulate it in
> MATPOWER?
>
> also, I want to have 5 generators instead of 6 generators in the case of
> ('t_auction_case'). Is there a command to remove one of the generators
> without changing the file, i.e. removing the correspond rows, gencost, offers
> and .....?
> Best Regards
>
> carlos
>
> On Fri, Mar 18, 2011 at 18:51, Ray Zimmerman <[email protected]> wrote:
> 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
>
>
>
>
> Best Wishes
>
> C. Gonzalez Almeida