Thank you for you interpretation Prof Ray. Actually I have found  a 
function called sgvm_add_shunts() in matpower -> extras ->syngrid, 
which looks like  it may do what I want, but I am not sure because there 
is not too much annotation in its source code and user's manual.





--------------------------------------------- 
"MATPOWER discussion forum"                                                     
                               <r...@cornell.edu&gt;;
2020??9??10??(??????) ????10:48
"MATPOWER-L"<matpowe...@list.cornell.edu&gt;;

Re: optimal power flow with unit commitment using mixed integer programming



 So runuopf() begins by running an OPF with all generators turned on, with 
active power dispatches limited by PMIN and PMAX. Any unit that is dispatched 
at PMIN (and would be dispatched lower if the limit were relaxed) is  said to 
have a binding PMIN limit and is therefore considered as a candidate for 
shutdown. It re-runs the OPF with each of these candidates shut down (one at a 
time) and continues the process with the one that produced the greatest 
decrease in objective function  ?? terminating when the objective is not 
decreased by shutting down any of the units dispatched at PMIN. 
 
 So on second thought, since your "shunt generators?? are always dispatched at 
PMIN (since PMIN = PMAX), they are always candidates for shutdown, so long as 
the nodal price of active power is positive. This means that runuopf()&nbsp;may 
 actually give you a decent approximation to the solution of the problem after 
all. The last condition (positive nodal price) is necessary to ensure that it 
is the PMIN limit that is binding, not the PMAX limit. The binding limit is the 
one that would alter  the solution if it were relaxed.
 
 
 However, runuopf()&nbsp;still requires that the problem be feasible with all 
generators turned on. It will not be able to shut down units to turn an 
infeasible problem into a feasible one ?? only to  decrease the cost of a 
feasible problem.
 
 
 &nbsp; Ray

Reply via email to