Thank you for your suggestion Prof Ray. Actually I am still learning about the
mechanism of uopf() and I dont really understand what binding Pmin limits
means. In the attached files, if the cases with and without shunt generators
have the same limits of voltage magnitude, the case with shunt generators will
have less cost using runuopf() and it seems that the shunt with -8Mvar Qg will
be shut down to avoid voltage magnitude violation. I dont know if this is the
correct result. And thank you for your invitation, but I am a newbie at
optimization. I really doubt if I could help in creating a convenient and
integrated interface like runpf() and runopf() to implement mixed integer
programming using other solvers. There is still quite a lot for me to learn.
"MATPOWER discussion forum"
<[email protected]>;
2020??9??9??(??????) ????9:57
"MATPOWER-L"<[email protected]>;
Re: optimal power flow with unit commitment using mixed integer programming
Unfortunately, I do not believe runuopf() will work for this problem, since it
uses heuristics to de-commit units one at a time based only on binding Pmin
limits, not on binding reactive power limits, which is what you would need. I
suppose you could modify uopf() to look at both, but in the end you still have
a very crude and inefficient heuristic for dealing with the binary decisions,
with no guarantees on the final optimality gap.
The proper way to solve this problem would be to create an interface in
MP-Opt-Model for a mixed-integer nonlinear programming solver. Knitro has these
capabilities, but they have not (yet) been implemented in MP-Opt-Model??s
Knitro interface. We have nlps_knitro(), but we need a minlps_knitro(). There
is also a suggestion in the issue tracker to include an interface for
Bonmin which also handles MINLP problems. Both would be very welcome and
useful additions.
Any chance you have time to work on this? I??d be happy to lend my support.
Ray