You should not have to modify opf.violation if the problem is feasible. One 
thing you might try is to turn on OPF soft limits (see toggle_softlims). If it 
converges then you can see which limits had to be violated in order to solve 
the problem.

From what I can tell, it appears you are using the dispatchable loads 
correctly, except it looks like you have a typo in the line that assignes PMIN. 
Also, if you are constraining the voltage at the dispatchable load to the 
voltage setpoint using opf.use_vg, just make sure that you specify 
gen(disploadbus, VG) in p.u.

  Ray


On Oct 15, 2020, at 12:46 PM, Davide Maglione 
<davide.maglion...@gmail.com<mailto:davide.maglion...@gmail.com>> wrote:

Yes you are assuming correctly, i am trying to optimize the cost only to 
maximize the dispatchable load absorption. So i have currently :

f(p) =  c1 *p

with p = Active power absorbed by the disp. Load. The Vm are constrained within 
the constraint values of the italian transmission network. I have not put 
constraints on Va. And the Pg and Qg (generators active and reactive power) are 
constrained within the production profiles i give them.
I am having issues primarly with the V values. MIPS doesn’t converge because Vm 
and also the dispatchable P exceeds the constraints.
The opf currently converges if i use “FMINCON” with an opf.violation set at 
9*10^(-1) but i am noticing the results.var.val.Vm patterns being strange when 
i activate the dispatchable load
mycase.gen(disploadbus,6)= V(disploadbus)/mycase.baseKVLL;
mycase.gen(disploadbus,7)= mygen.baseMVA;
mycase.gen(disploadbus,8) = 1 ;
mycase.gen(disploadbus,9) = 0 ;
mycase.gen(disploadbus i,10) =  - 40 ;

mycase.gencost(disploadbus,5) = c1;
 mycase.gencost(disploadbus ,6) = 0;



I am simulating a storage device that activates when there are contingencies in 
the network, in order to avoid wind power curtailment. But little variation of 
the P injected results in too high variations of Vm during the opf simulations. 
Am i using the dispatchable load feature correctly?

Thank you in advance for your kindness Ray, Best regards.

Davide
Da: Ray Daniel Zimmerman<mailto:r...@cornell.edu>
Inviato: martedì 13 ottobre 2020 16:06
A: MATPOWER-L<mailto:matpowe...@list.cornell.edu>
Oggetto: Re: Bus, Loads and Generators question

Yes, the P absorbed by the dispatchable load appears as a negative generation, 
so the cost is evaluated using a negative quantity.

I’m not sure what you mean by optimize Va, V, and P absorbed by the loads, but 
not other Pg and Qg. I assume you mean that they are all free variables, but 
the cost you are optimizing is simply to maximize the load served (and possibly 
some cost on voltage?). If so, then yes, you can set the other generator costs 
to zero. You could also simply set the costs to a positive constant that is 
small relative to the value of the load. That essentially says that there is no 
preference to use one generator over another.

It’s likely that the problem as defined is infeasible, but just to be sure, it 
could be useful to attempt another solver, like IPOPT.

    Ray



On Oct 12, 2020, at 1:13 PM, Davide Maglione 
<davide.maglion...@gmail.com<mailto:davide.maglion...@gmail.com>> wrote:


Thank you for the time spent in answering my questions.
I probably don’t need to add a new variable in my current scenario. I have done 
several tests with my network but i still have some issues.
The P absorbed by the dispatchable load is treated as negative in the equation 
of the costs, am i right? If i want to optimize Va,Vm and P absorbed by the 
dispatchable loads , but not the other Pg and Qg, is it enough to put 0s in the 
respective gencost matrix’s rows?
Unfortunatelly with the default options the program doesn’t converge, i have a 
numerical failure using MIPS. The P absorbed by the disp. Loads exceeds the 
constraints, and the Vm of the buses does it too, but i think that thanks to 
your help i am moving in the right direction.
Thank you again,

Davide

Da: Ray Daniel Zimmerman<mailto:r...@cornell.edu>
Inviato: venerdì 9 ottobre 2020 15:56
A: MATPOWER-L<mailto:matpowe...@list.cornell.edu>
Oggetto: Re: Bus, Loads and Generators question

The P absorbed by the dispatchable load is already an optimization variable, 
included in Pg, since dispatchable loads are modeled as negative generators. So 
you may not even need to add a variable. Furthermore, you can already impose 
costs on those variables via the gencost matrix.

If you simply want to maximize the power absorbed by the dispatchable loads, 
you just need to make sure that you use a large enough negative cost (on the 
negative injection). You may find 
load2disp()<https://matpower.org/docs/ref/matpower7.0/lib/load2disp.html> to be 
helpful.

If you do need a new variable, it is introduced through the A matrix in the 
user-defined linear constraints. You simply define linear constraints that 
include extra columns corresponding to the new variables. They are related to 
the existing variables through this constraint matrix whose existing columns 
correspond to Va, Vm, Pg, Qg, for the standard formulation. See equations (6.5) 
and (6.38), (6.39) in the manual.

   Ray




On Oct 8, 2020, at 11:09 AM, Davide Maglione 
<davide.maglion...@gmail.com<mailto:davide.maglion...@gmail.com>> wrote:

Hi Ray

Thank you for your kind and fast response!
I think your suggestion is right, i should lean toward the direct 
specification. I will try to be more clear about what i am trying to do.
I have only one specific case, but i have to see what happens in different 
periods of time. I would like to initialize dispatchable loads in specific 
times inside my loop, and during those times i am trying to optimize (maximize) 
the surplus energy absorbed, coming from the generators.
So what i have in mind, and i am sure it’s possible to do with your software, 
is to create a new variable (the P absorbed by the disp. Loads), add some 
constraints based on the maximum demand and voltage of the dispatchable Load’s 
bus and finally add the cost function (function of the P absorbed by the loads 
and the maximum surplus available in that time) to be minimized by the 
algorithm.

Am i on the right direction using the direct specification? When i add a new 
variable how can i refer it specifically to a variable in the mpc (for example 
the P absorbed by a load)?

Sincerely, thank you again for all your help,

Davide

Da: Ray Daniel Zimmerman<mailto:r...@cornell.edu>
Inviato: giovedì 8 ottobre 2020 16:02
A: MATPOWER-L<mailto:matpowe...@list.cornell.edu>
Oggetto: Re: Bus, Loads and Generators question

H


[https://ipmcdn.avast.com/images/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif]<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
Mail priva di virus. 
www.avast.com<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>


Reply via email to