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.

Reply via email to