As described in Chapter 7 in the User’s Manual <http://www.pserc.cornell.edu/matpower/docs/MATPOWER-manual-6.0.pdf>, there are two approaches to extend the OPF.
The first is the direct specification method, where you supply the A, l, u (and possibly cost parameters) directly as arguments to opf(), as done in the example in t_opf_mips() <http://www.pserc.cornell.edu/matpower/docs/ref/matpower6.0/t/t_opf_mips.html> starting at line 177, or even better by assigning A, l, u, etc. directly as fields in mpc. For example, in your case, I think you meant to do … mpc = loadcase('case14'); mpopt = mpoption; nb = size(mpc.bus, 1); ng = size(mpc.gen, 1); mpc.A = sparse(1, 1:14, 1, 1, 2*nb+2*ng); mpc.l = 0; mpc.u = 20; runopf(mpc, mpopt) The other option is to use callbacks as described in Sections 7.2-7.4 and illustrated in the examples described in Section 7.5. Examples of how to use toggle_reserves() <http://www.pserc.cornell.edu/matpower/docs/ref/matpower6.0/toggle_reserves.html> and toggle_iflims() <http://www.pserc.cornell.edu/matpower/docs/ref/matpower6.0/toggle_iflims.html> are found in t_opf_userfcns() <http://www.pserc.cornell.edu/matpower/docs/ref/matpower6.0/t/t_opf_userfcns.html>. Similarly, examples for using toggle_softlims() <http://www.pserc.cornell.edu/matpower/docs/ref/matpower6.0/toggle_softlims.html> are found in t_opf_softlims() <http://www.pserc.cornell.edu/matpower/docs/ref/matpower6.0/t/t_opf_softlims.html>. Hope this helps, Ray > mpc=loadcase(‘case14’); > mpopt = mpoption; > mpc = ext2int(mpc); > Then I try to add a simple constraints to test, > om = opf_setup(mpc, mpopt); > mpc = add_userfcn(mpc, ‘formulation’ , myfunction(om)); > > Here myfunction is define_constants; > > Define_constants > A =ones(1,14); > L = zeros(1,14); > U= ones(1,14)*20, > Om = add_constraints(om, ‘Myconstraints’,A,L,U,{‘Va’}); > On Sep 14, 2017, at 7:09 AM, 林巍 <[email protected]> wrote: > > Dear MATPOWER-Team > I try to add some variables, constraints or cost function , but I can’t > understand the document about Extended OPF Formulation . > First I load a case like > mpc=loadcase(‘case14’); > mpopt = mpoption; > mpc = ext2int(mpc); > Then I try to add a simple constraints to test, > om = opf_setup(mpc, mpopt); > mpc = add_userfcn(mpc, ‘formulation’ , myfunction(om)); > > Here myfunction is define_constants; > > Define_constants > A =ones(1,14); > L = zeros(1,14); > U= ones(1,14)*20, > Om = add_constraints(om, ‘Myconstraints’,A,L,U,{‘Va’}); > > But I can’t use runopf(mpc), I don’t know how to solve the case. > In the case14, there is no reserves, I don’t know what the reserves > means, > I ask for an example to show the process about how to extend something. > I hope you can help me.
