Re: 3 other variations of the OPF formulation to Matpower

2018-02-02 Thread Ray Zimmerman
Thanks, Baljinnyam. This is definitely helpful to have. I will certainly want 
to make these derivations available as well when we integrate code to implement 
these variations into MATPOWER. At that point we can discuss whether it makes 
sense to do it as a modification to TN2 or as a new separate document.

Thanks again,

 Ray



> On Feb 2, 2018, at 5:38 AM, Baljinnyam Sereeter  wrote:
> 
> On 02/01/2018 02:55 PM, Baljinnyam Sereeter wrote:
>> On 01/25/2018 05:09 PM, Baljinnyam Sereeter wrote:
>>> Hi Baljinnyam,
>>> 
>>> Thanks for your offer to contribute. This would be a nice addition to 
>>> MATPOWER.
>>> 
>>> I suggest starting by adding two new MATPOWER options, each with default 
>>> values of 0 …
>>> 
>>> opf.current_balance = 0 (complex power balance) or 1 (complex current 
>>> balance)
>>> opf.v_cartesian = 0 (polar) or 1 (Cartesian)
>>> 
>>> Then find all the places in the existing OPF code where the current 
>>> (default) formulation is assumed and add conditionals to implement the 
>>> other variations. You might find it useful to use the MATLAB Profiler with 
>>> a simple runopf() call to map out the functions that are called. I think 
>>> much of the work will be in opf_setup(), where we’ll need to use different 
>>> variables and constraints.
>>> 
>>> Another thing to do early in the process is to duplicate the t/t_opf_mips.m 
>>> file for each of the 3 new variations. The initial goal will be to get all 
>>> of those tests to pass for each of the versions.
>>> 
>>> Of course, you will want to begin all of this on your own fresh fork of the 
>>> current MATPOWER development branch using the guidelines in the 
>>> Contributor’s Guide 
>>> .
>>> 
>>> Don’t hesitate to ask if you have questions or need any help along the way.
>>> 
>>> Thanks again,
>>> 
>>>  Ray
>> Dear Ray,
>> 
>> I use Matpower 6.0 version that I understand in code level and know where I 
>> can make changes. However, I have some problems with Matpower repository 
>> that I cloned. It seems that this is a new version that is still not 
>> released yet. I see that functions where I would make my changes are changed 
>> as
>> [g, dg] and [h, dh] are computed using om.eval_nln_constraint(x, 1); 
>> 
>> d2G and d2H are computed using om.eval_nln_constraint_hess(x, 
>> lambda.ineqnonlin, 0); 
>> In the new verion, a lot is changed including structure and code. Therefore, 
>> this is hard for me to understand and make changes in the code. So what 
>> should I do? I can do it easily in Matpower 6.0 version. 
>> 
>> Regards,
>> 
>> Baljinnyam 
> Dear Ray,
> 
> Please refer to the attachment for additional derivatives of equality and 
> inequality constraints w.r.t Polar and Cartesian coordinates. I computed 
> derivatives using Complex Matrix Notation in case you want to include them in 
> the TN2, 
> 
> Regards,
> 
> Baljinnyam 
> 



Re: 3 other variations of the OPF formulation to Matpower

2018-02-02 Thread Baljinnyam Sereeter

On 02/01/2018 02:55 PM, Baljinnyam Sereeter wrote:

On 01/25/2018 05:09 PM, Baljinnyam Sereeter wrote:

Hi Baljinnyam,

Thanks for your offer to contribute. This would be a nice addition to 
MATPOWER.


I suggest starting by adding two new MATPOWER options, each with 
default values of 0 …


opf.current_balance = 0 (complex power balance) or 1 (complex current 
balance)

opf.v_cartesian = 0 (polar) or 1 (Cartesian)

Then find all the places in the existing OPF code where the current 
(default) formulation is assumed and add conditionals to implement 
the other variations. You might find it useful to use the MATLAB 
Profiler with a simple runopf() call to map out the functions that 
are called. I think much of the work will be in opf_setup(), where 
we’ll need to use different variables and constraints.


Another thing to do early in the process is to duplicate the 
t/t_opf_mips.m file for each of the 3 new variations. The initial 
goal will be to get all of those tests to pass for each of the versions.


Of course, you will want to begin all of this on your own fresh fork 
of the current MATPOWER development branch using the guidelines in 
the Contributor’s Guide 
.


Don’t hesitate to ask if you have questions or need any help along 
the way.


Thanks again,

     Ray


Dear Ray,

I use Matpower 6.0 version that I understand in code level and know 
where I can make changes. However, I have some problems with Matpower 
repository that I cloned. It seems that this is a new version that is 
still not released yet. I see that functions where I would make my 
changes are changed as


        [g, dg] and [h, dh] are computed using 
*om.eval_nln_constraint(x, 1);

*

        d2G and d2H are computed using *om.eval_nln_constraint_hess(x, 
lambda.ineqnonlin, 0);*


In the new verion, a lot is changed including structure and code. 
Therefore, this is hard for me to understand and make changes in the 
code. So what should I do? I can do it easily in Matpower 6.0 version.



Regards,

Baljinnyam


Dear Ray,

Please refer to the attachment for additional derivatives of equality 
and inequality constraints w.r.t Polar and Cartesian coordinates. I 
computed derivatives using Complex Matrix Notation in case you want to 
include them in the TN2,



Regards,

Baljinnyam



Derivatives.pdf
Description: Adobe PDF document


Re: 3 other variations of the OPF formulation to Matpower

2018-02-01 Thread Baljinnyam Sereeter

On 01/25/2018 05:09 PM, Baljinnyam Sereeter wrote:

Hi Baljinnyam,

Thanks for your offer to contribute. This would be a nice addition to 
MATPOWER.


I suggest starting by adding two new MATPOWER options, each with 
default values of 0 …


opf.current_balance = 0 (complex power balance) or 1 (complex current 
balance)

opf.v_cartesian = 0 (polar) or 1 (Cartesian)

Then find all the places in the existing OPF code where the current 
(default) formulation is assumed and add conditionals to implement the 
other variations. You might find it useful to use the MATLAB Profiler 
with a simple runopf() call to map out the functions that are called. 
I think much of the work will be in opf_setup(), where we’ll need to 
use different variables and constraints.


Another thing to do early in the process is to duplicate the 
t/t_opf_mips.m file for each of the 3 new variations. The initial goal 
will be to get all of those tests to pass for each of the versions.


Of course, you will want to begin all of this on your own fresh fork 
of the current MATPOWER development branch using the guidelines in the 
Contributor’s Guide 
.


Don’t hesitate to ask if you have questions or need any help along the 
way.


Thanks again,

     Ray


Dear Ray,

I use Matpower 6.0 version that I understand in code level and know 
where I can make changes. However, I have some problems with Matpower 
repository that I cloned. It seems that this is a new version that is 
still not released yet. I see that functions where I would make my 
changes are changed as


        [g, dg] and [h, dh] are computed using 
*om.eval_nln_constraint(x, 1);

*

        d2G and d2H are computed using *om.eval_nln_constraint_hess(x, 
lambda.ineqnonlin, 0);*


In the new verion, a lot is changed including structure and code. 
Therefore, this is hard for me to understand and make changes in the 
code. So what should I do? I can do it easily in Matpower 6.0 version.



Regards,

Baljinnyam