Re: Doubt regarding adding constraints

2017-10-18 Thread Viswanath Hariharan
Actually, I got the constraints added and was able to modify it without
problem through Direct Specification which I was unable to do in the
beginning. Guess I was doing something wrong which I didn't realize for
quite a while.
Thank you, sir and I guess I haven't understood how the callback functions
work. I will work on understanding the existing examples before
implementing my own.

Regards
Viswanath

On Mon, Oct 16, 2017 at 1:20 PM, Ray Zimmerman  wrote:

> I don’t understand why you are calling toggle_myconstraints() more than
> once. When used as intended, calling toggle_myconstraints() would
> register your callback functions. Then when you run the OPF, the callback
> functions will be called at the appropriate point in the execution to
> modify the formulation (e.g. add your new constraints). You only need to
> re-run toggle_myconstraints() if you load a new MATPOWER case that you
> want to run with your constraints enabled.
>
> It seems you are still misunderstanding how the callback functions work.
> Have you understood the existing examples (e.g. toggle_reserves(),
> toggle_iflims(), etc.) before attempting to implement your own?
>
> Ray
>
>
> On Oct 13, 2017, at 11:35 AM, Viswanath Hariharan 
> wrote:
>
> I tried getting out of the problem by assigning allow_multiple = 1 for
> add_userfcn. But I couldn't get past this error:
> Error using opt_model/add_constraints (line 87)
> Error detected on worker 4.
> @opt_model/add_constraints: linear constraint set named 'Va' already exists
>
> Could you guide me as to how I can overwrite this too?
> Thank you sir
>
> Regards
> Viswanath
>
> On Fri, Oct 13, 2017 at 11:22 AM, Viswanath Hariharan <
> vhari...@buffalo.edu> wrote:
>
>> Sir
>> So I used the toggle_myconstraints method you had suggested to add
>> Voltage angle constraints to the problem. After getting the solution, I
>> update the constraints set and call toggle_myconstraints again. But this
>> time, I get an error :
>> Caused by:
>> Error using add_userfcn (line 119)
>> add_userfcn: the function 'userfcn_myconstraints_formulation' has
>> already been added
>>
>> How do I avoid this problem? Is there a way to overwrite what's already
>> written in both add_userfcn and the linear constraints section in om (in
>> this case 'Va')?
>>
>> Regards
>> Viswanath
>>
>> On Fri, Oct 13, 2017 at 10:04 AM, Viswanath Hariharan <
>> vhari...@buffalo.edu> wrote:
>>
>>> Thank you for your help sir. I think I was doing something wrong. It
>>> works alright now.
>>>
>>> Regards
>>> Viswanath
>>>
>>> On Oct 12, 2017 10:03 AM, "Ray Zimmerman"  wrote:
>>>
 Are you saying that your solution includes voltage angles whose
 absolute value is greater than 0.26 radians or 14.9 degrees?

Ray


 On Oct 11, 2017, at 8:52 PM, Viswanath Hariharan 
 wrote:

 First, thank you so much for your time, Sir.
 So I tried the first approach first. I want to added box constraints
 for Voltage angle, -0.26 < theta < 0.26.  I created the A matrix and l and
 u vectors and passed it to the opf function. The solution converged and I
 did get results. But the problem is that the added constraints look like
 they had no effect on the result.

 I also tried the toggle_reserves() method you suggested in the previous
 email of this thread where you asked me rename toggle_reserves and all the
 callback functions within it and modify its contents to toggle the addition
 of constraints. I did that too. results = runopf(mpc) and results.om
 had 5 linear constraints added to it. But again this had no effect on the
 results. I even tried changing the bounds to see if there was any
 difference but there wasn't.

 What is it that I'm missing out here?

 Regards
 Viswanath



 On Tue, Oct 10, 2017 at 9:09 AM, Ray Zimmerman 
 wrote:

> It appears you have fundamentally misunderstood callback functions and
> how they work. I suggest that you read carefully the entirety of sections
> 7.2–7.5 in the User’s Manual and make sure you understand the
> toggle_reserves() example used to illustrate the approach.
>
> To implement your own constraints, I would recommend copying and
> renaming toggle_reserves() to something like toggle_myconstraints().
> Then rename all of the callback functions defined in that file to e.g.
> userfcn_myconstraints_ext2int(), userfcn_myconstraints_formulation(),
> etc., and modify their contents to reflect the constraints you want to add
> (as opposed to those implemented for the zonal reserves case). The
> “formulation” callback is where you’ll be calling add_constraints().
> Then you can simply toggle your constraints on and use runopf()
> normally.
>
> mpc = loadcase('');
> mpc = toggle_myconstraints(mpc, 'on');
> results = runopf(mpc);
>
> Hope this helps,
>
> Ray
>
>
>
> On Oc

Re: Doubt regarding adding constraints

2017-10-16 Thread Ray Zimmerman
I don’t understand why you are calling toggle_myconstraints() more than once. 
When used as intended, calling toggle_myconstraints() would register your 
callback functions. Then when you run the OPF, the callback functions will be 
called at the appropriate point in the execution to modify the formulation 
(e.g. add your new constraints). You only need to re-run toggle_myconstraints() 
if you load a new MATPOWER case that you want to run with your constraints 
enabled.

It seems you are still misunderstanding how the callback functions work. Have 
you understood the existing examples (e.g. toggle_reserves(), toggle_iflims(), 
etc.) before attempting to implement your own?

Ray


> On Oct 13, 2017, at 11:35 AM, Viswanath Hariharan  
> wrote:
> 
> I tried getting out of the problem by assigning allow_multiple = 1 for 
> add_userfcn. But I couldn't get past this error:
> Error using opt_model/add_constraints (line 87)
> Error detected on worker 4.
> @opt_model/add_constraints: linear constraint set named 'Va' already exists
> 
> Could you guide me as to how I can overwrite this too?
> Thank you sir
> 
> Regards
> Viswanath
> 
> On Fri, Oct 13, 2017 at 11:22 AM, Viswanath Hariharan  > wrote:
> Sir
> So I used the toggle_myconstraints method you had suggested to add Voltage 
> angle constraints to the problem. After getting the solution, I update the 
> constraints set and call toggle_myconstraints again. But this time, I get an 
> error :
> Caused by:
> Error using add_userfcn (line 119)
> add_userfcn: the function 'userfcn_myconstraints_formulation' has already 
> been added
> 
> How do I avoid this problem? Is there a way to overwrite what's already 
> written in both add_userfcn and the linear constraints section in om (in this 
> case 'Va')? 
> 
> Regards
> Viswanath
> 
> On Fri, Oct 13, 2017 at 10:04 AM, Viswanath Hariharan  > wrote:
> Thank you for your help sir. I think I was doing something wrong. It works 
> alright now.
> 
> Regards 
> Viswanath
> 
> On Oct 12, 2017 10:03 AM, "Ray Zimmerman"  > wrote:
> Are you saying that your solution includes voltage angles whose absolute 
> value is greater than 0.26 radians or 14.9 degrees?
> 
>Ray
> 
> 
>> On Oct 11, 2017, at 8:52 PM, Viswanath Hariharan > > wrote:
>> 
>> First, thank you so much for your time, Sir. 
>> So I tried the first approach first. I want to added box constraints for 
>> Voltage angle, -0.26 < theta < 0.26.  I created the A matrix and l and u 
>> vectors and passed it to the opf function. The solution converged and I did 
>> get results. But the problem is that the added constraints look like they 
>> had no effect on the result. 
>> 
>> I also tried the toggle_reserves() method you suggested in the previous 
>> email of this thread where you asked me rename toggle_reserves and all the 
>> callback functions within it and modify its contents to toggle the addition 
>> of constraints. I did that too. results = runopf(mpc) and results.om 
>>  had 5 linear constraints added to it. But again this 
>> had no effect on the results. I even tried changing the bounds to see if 
>> there was any difference but there wasn't. 
>> 
>> What is it that I'm missing out here?
>> 
>> Regards
>> Viswanath 
>> 
>> 
>> 
>> On Tue, Oct 10, 2017 at 9:09 AM, Ray Zimmerman > > wrote:
>> It appears you have fundamentally misunderstood callback functions and how 
>> they work. I suggest that you read carefully the entirety of sections 
>> 7.2–7.5 in the User’s Manual and make sure you understand the 
>> toggle_reserves() example used to illustrate the approach.
>> 
>> To implement your own constraints, I would recommend copying and renaming 
>> toggle_reserves() to something like toggle_myconstraints(). Then rename all 
>> of the callback functions defined in that file to e.g. 
>> userfcn_myconstraints_ext2int(), userfcn_myconstraints_formulation(), etc., 
>> and modify their contents to reflect the constraints you want to add (as 
>> opposed to those implemented for the zonal reserves case). The “formulation” 
>> callback is where you’ll be calling add_constraints(). Then you can simply 
>> toggle your constraints on and use runopf() normally.
>> 
>> mpc = loadcase('');
>> mpc = toggle_myconstraints(mpc, 'on');
>> results = runopf(mpc);
>> 
>> Hope this helps,
>> 
>> Ray
>> 
>> 
>> 
>>> On Oct 5, 2017, at 12:18 PM, Viswanath Hariharan >> > wrote:
>>> 
>>> Sir
>>> 
>>> I tried adding constraints using the callback functions method described in 
>>> Section 7.2 but I am not sure I followed it correctly.
>>> mpopt = mpoption;
>>> om = opf_setup(mpc, mpopt);
>>> om = add_constraints(om, 'Vm', A1, l1, u1); 
>>> om = add_constraints(om, 'Va', A2, l2, u2);
>>> mpc = get_mpc(om)
>>> results2 = runopf(mpc);
>>> 
>>> om gets updated with 10 line

Re: Doubt regarding adding constraints

2017-10-13 Thread Viswanath Hariharan
I tried getting out of the problem by assigning allow_multiple = 1 for
add_userfcn. But I couldn't get past this error:
Error using opt_model/add_constraints (line 87)
Error detected on worker 4.
@opt_model/add_constraints: linear constraint set named 'Va' already exists

Could you guide me as to how I can overwrite this too?
Thank you sir

Regards
Viswanath

On Fri, Oct 13, 2017 at 11:22 AM, Viswanath Hariharan 
wrote:

> Sir
> So I used the toggle_myconstraints method you had suggested to add Voltage
> angle constraints to the problem. After getting the solution, I update the
> constraints set and call toggle_myconstraints again. But this time, I get
> an error :
> Caused by:
> Error using add_userfcn (line 119)
> add_userfcn: the function 'userfcn_myconstraints_formulation' has
> already been added
>
> How do I avoid this problem? Is there a way to overwrite what's already
> written in both add_userfcn and the linear constraints section in om (in
> this case 'Va')?
>
> Regards
> Viswanath
>
> On Fri, Oct 13, 2017 at 10:04 AM, Viswanath Hariharan <
> vhari...@buffalo.edu> wrote:
>
>> Thank you for your help sir. I think I was doing something wrong. It
>> works alright now.
>>
>> Regards
>> Viswanath
>>
>> On Oct 12, 2017 10:03 AM, "Ray Zimmerman"  wrote:
>>
>>> Are you saying that your solution includes voltage angles whose absolute
>>> value is greater than 0.26 radians or 14.9 degrees?
>>>
>>>Ray
>>>
>>>
>>> On Oct 11, 2017, at 8:52 PM, Viswanath Hariharan 
>>> wrote:
>>>
>>> First, thank you so much for your time, Sir.
>>> So I tried the first approach first. I want to added box constraints for
>>> Voltage angle, -0.26 < theta < 0.26.  I created the A matrix and l and u
>>> vectors and passed it to the opf function. The solution converged and I did
>>> get results. But the problem is that the added constraints look like they
>>> had no effect on the result.
>>>
>>> I also tried the toggle_reserves() method you suggested in the previous
>>> email of this thread where you asked me rename toggle_reserves and all the
>>> callback functions within it and modify its contents to toggle the addition
>>> of constraints. I did that too. results = runopf(mpc) and results.om
>>> had 5 linear constraints added to it. But again this had no effect on the
>>> results. I even tried changing the bounds to see if there was any
>>> difference but there wasn't.
>>>
>>> What is it that I'm missing out here?
>>>
>>> Regards
>>> Viswanath
>>>
>>>
>>>
>>> On Tue, Oct 10, 2017 at 9:09 AM, Ray Zimmerman  wrote:
>>>
 It appears you have fundamentally misunderstood callback functions and
 how they work. I suggest that you read carefully the entirety of sections
 7.2–7.5 in the User’s Manual and make sure you understand the
 toggle_reserves() example used to illustrate the approach.

 To implement your own constraints, I would recommend copying and
 renaming toggle_reserves() to something like toggle_myconstraints().
 Then rename all of the callback functions defined in that file to e.g.
 userfcn_myconstraints_ext2int(), userfcn_myconstraints_formulation(),
 etc., and modify their contents to reflect the constraints you want to add
 (as opposed to those implemented for the zonal reserves case). The
 “formulation” callback is where you’ll be calling add_constraints().
 Then you can simply toggle your constraints on and use runopf()
 normally.

 mpc = loadcase('');
 mpc = toggle_myconstraints(mpc, 'on');
 results = runopf(mpc);

 Hope this helps,

 Ray



 On Oct 5, 2017, at 12:18 PM, Viswanath Hariharan 
 wrote:

 Sir

 I tried adding constraints using the callback functions method
 described in Section 7.2 but I am not sure I followed it correctly.
 mpopt = mpoption;
 om = opf_setup(mpc, mpopt);
 om = add_constraints(om, 'Vm', A1, l1, u1);
 om = add_constraints(om, 'Va', A2, l2, u2);
 mpc = get_mpc(om)
 results2 = runopf(mpc);

 om gets updated with 10 linear constraints (case5 is being used here).
 But mpc doesn't get updated and hence when I run this code and check and
 results.var.mu.l.Va , the constraints
 aren't updated. Not only that, the mpc file isn't getting updated as well.
 I think I am making some mistake with this line : mpc = get_mpc(om) because
 om is fine. What am I missing here? Or should I take another approach?
 Thank you so much for your time Sir.

 Regards
 Viswanath Hariharan

 On Thu, Oct 5, 2017 at 10:27 AM, Ray Zimmerman 
 wrote:

> You only need to use the add_constraints() function if you are using
> Callback Functions as described in Section 7.2 as opposed to Direct
> Specification as described in Section 7.1 of the User’s Manual
> .
>
>

Re: Doubt regarding adding constraints

2017-10-13 Thread Viswanath Hariharan
Sir
So I used the toggle_myconstraints method you had suggested to add Voltage
angle constraints to the problem. After getting the solution, I update the
constraints set and call toggle_myconstraints again. But this time, I get
an error :
Caused by:
Error using add_userfcn (line 119)
add_userfcn: the function 'userfcn_myconstraints_formulation' has
already been added

How do I avoid this problem? Is there a way to overwrite what's already
written in both add_userfcn and the linear constraints section in om (in
this case 'Va')?

Regards
Viswanath

On Fri, Oct 13, 2017 at 10:04 AM, Viswanath Hariharan 
wrote:

> Thank you for your help sir. I think I was doing something wrong. It works
> alright now.
>
> Regards
> Viswanath
>
> On Oct 12, 2017 10:03 AM, "Ray Zimmerman"  wrote:
>
>> Are you saying that your solution includes voltage angles whose absolute
>> value is greater than 0.26 radians or 14.9 degrees?
>>
>>Ray
>>
>>
>> On Oct 11, 2017, at 8:52 PM, Viswanath Hariharan 
>> wrote:
>>
>> First, thank you so much for your time, Sir.
>> So I tried the first approach first. I want to added box constraints for
>> Voltage angle, -0.26 < theta < 0.26.  I created the A matrix and l and u
>> vectors and passed it to the opf function. The solution converged and I did
>> get results. But the problem is that the added constraints look like they
>> had no effect on the result.
>>
>> I also tried the toggle_reserves() method you suggested in the previous
>> email of this thread where you asked me rename toggle_reserves and all the
>> callback functions within it and modify its contents to toggle the addition
>> of constraints. I did that too. results = runopf(mpc) and results.om had
>> 5 linear constraints added to it. But again this had no effect on the
>> results. I even tried changing the bounds to see if there was any
>> difference but there wasn't.
>>
>> What is it that I'm missing out here?
>>
>> Regards
>> Viswanath
>>
>>
>>
>> On Tue, Oct 10, 2017 at 9:09 AM, Ray Zimmerman  wrote:
>>
>>> It appears you have fundamentally misunderstood callback functions and
>>> how they work. I suggest that you read carefully the entirety of sections
>>> 7.2–7.5 in the User’s Manual and make sure you understand the
>>> toggle_reserves() example used to illustrate the approach.
>>>
>>> To implement your own constraints, I would recommend copying and
>>> renaming toggle_reserves() to something like toggle_myconstraints().
>>> Then rename all of the callback functions defined in that file to e.g.
>>> userfcn_myconstraints_ext2int(), userfcn_myconstraints_formulation(),
>>> etc., and modify their contents to reflect the constraints you want to add
>>> (as opposed to those implemented for the zonal reserves case). The
>>> “formulation” callback is where you’ll be calling add_constraints().
>>> Then you can simply toggle your constraints on and use runopf()
>>> normally.
>>>
>>> mpc = loadcase('');
>>> mpc = toggle_myconstraints(mpc, 'on');
>>> results = runopf(mpc);
>>>
>>> Hope this helps,
>>>
>>> Ray
>>>
>>>
>>>
>>> On Oct 5, 2017, at 12:18 PM, Viswanath Hariharan 
>>> wrote:
>>>
>>> Sir
>>>
>>> I tried adding constraints using the callback functions method described
>>> in Section 7.2 but I am not sure I followed it correctly.
>>> mpopt = mpoption;
>>> om = opf_setup(mpc, mpopt);
>>> om = add_constraints(om, 'Vm', A1, l1, u1);
>>> om = add_constraints(om, 'Va', A2, l2, u2);
>>> mpc = get_mpc(om)
>>> results2 = runopf(mpc);
>>>
>>> om gets updated with 10 linear constraints (case5 is being used here).
>>> But mpc doesn't get updated and hence when I run this code and check and
>>> results.var.mu.l.Va , the constraints
>>> aren't updated. Not only that, the mpc file isn't getting updated as well.
>>> I think I am making some mistake with this line : mpc = get_mpc(om) because
>>> om is fine. What am I missing here? Or should I take another approach?
>>> Thank you so much for your time Sir.
>>>
>>> Regards
>>> Viswanath Hariharan
>>>
>>> On Thu, Oct 5, 2017 at 10:27 AM, Ray Zimmerman  wrote:
>>>
 You only need to use the add_constraints() function if you are using
 Callback Functions as described in Section 7.2 as opposed to Direct
 Specification as described in Section 7.1 of the User’s Manual
 .

 You convergence failure my just imply that your variable bounds are
 tight enough that there is no feasible solution. Try relaxing the limits
 and see if it converges.

 Vm, Pg and Qg all have limits specified directly in the bus and gen
 matrices. Vm is bounded by the VMIN and VMAX columns in the bus matrix.
 Pg and Qg are bounded by the PMIN, PMAX and QMIN, QMAX columns of the
 gen matrix, respectively. Va is not normally constrained (except at
 the reference bus), so the bus matrix doesn’t contain bounds for it. In
 that case, you have to use

Re: Doubt regarding adding constraints

2017-10-13 Thread Viswanath Hariharan
Thank you for your help sir. I think I was doing something wrong. It works
alright now.

Regards
Viswanath

On Oct 12, 2017 10:03 AM, "Ray Zimmerman"  wrote:

> Are you saying that your solution includes voltage angles whose absolute
> value is greater than 0.26 radians or 14.9 degrees?
>
>Ray
>
>
> On Oct 11, 2017, at 8:52 PM, Viswanath Hariharan 
> wrote:
>
> First, thank you so much for your time, Sir.
> So I tried the first approach first. I want to added box constraints for
> Voltage angle, -0.26 < theta < 0.26.  I created the A matrix and l and u
> vectors and passed it to the opf function. The solution converged and I did
> get results. But the problem is that the added constraints look like they
> had no effect on the result.
>
> I also tried the toggle_reserves() method you suggested in the previous
> email of this thread where you asked me rename toggle_reserves and all the
> callback functions within it and modify its contents to toggle the addition
> of constraints. I did that too. results = runopf(mpc) and results.om had
> 5 linear constraints added to it. But again this had no effect on the
> results. I even tried changing the bounds to see if there was any
> difference but there wasn't.
>
> What is it that I'm missing out here?
>
> Regards
> Viswanath
>
>
>
> On Tue, Oct 10, 2017 at 9:09 AM, Ray Zimmerman  wrote:
>
>> It appears you have fundamentally misunderstood callback functions and
>> how they work. I suggest that you read carefully the entirety of sections
>> 7.2–7.5 in the User’s Manual and make sure you understand the
>> toggle_reserves() example used to illustrate the approach.
>>
>> To implement your own constraints, I would recommend copying and renaming
>> toggle_reserves() to something like toggle_myconstraints(). Then rename
>> all of the callback functions defined in that file to e.g.
>> userfcn_myconstraints_ext2int(), userfcn_myconstraints_formulation(),
>> etc., and modify their contents to reflect the constraints you want to add
>> (as opposed to those implemented for the zonal reserves case). The
>> “formulation” callback is where you’ll be calling add_constraints().
>> Then you can simply toggle your constraints on and use runopf() normally.
>>
>> mpc = loadcase('');
>> mpc = toggle_myconstraints(mpc, 'on');
>> results = runopf(mpc);
>>
>> Hope this helps,
>>
>> Ray
>>
>>
>>
>> On Oct 5, 2017, at 12:18 PM, Viswanath Hariharan 
>> wrote:
>>
>> Sir
>>
>> I tried adding constraints using the callback functions method described
>> in Section 7.2 but I am not sure I followed it correctly.
>> mpopt = mpoption;
>> om = opf_setup(mpc, mpopt);
>> om = add_constraints(om, 'Vm', A1, l1, u1);
>> om = add_constraints(om, 'Va', A2, l2, u2);
>> mpc = get_mpc(om)
>> results2 = runopf(mpc);
>>
>> om gets updated with 10 linear constraints (case5 is being used here).
>> But mpc doesn't get updated and hence when I run this code and check and
>> results.var.mu.l.Va , the constraints
>> aren't updated. Not only that, the mpc file isn't getting updated as well.
>> I think I am making some mistake with this line : mpc = get_mpc(om) because
>> om is fine. What am I missing here? Or should I take another approach?
>> Thank you so much for your time Sir.
>>
>> Regards
>> Viswanath Hariharan
>>
>> On Thu, Oct 5, 2017 at 10:27 AM, Ray Zimmerman  wrote:
>>
>>> You only need to use the add_constraints() function if you are using
>>> Callback Functions as described in Section 7.2 as opposed to Direct
>>> Specification as described in Section 7.1 of the User’s Manual
>>> .
>>>
>>> You convergence failure my just imply that your variable bounds are
>>> tight enough that there is no feasible solution. Try relaxing the limits
>>> and see if it converges.
>>>
>>> Vm, Pg and Qg all have limits specified directly in the bus and gen
>>> matrices. Vm is bounded by the VMIN and VMAX columns in the bus matrix.
>>> Pg and Qg are bounded by the PMIN, PMAX and QMIN, QMAX columns of the
>>> gen matrix, respectively. Va is not normally constrained (except at the
>>> reference bus), so the bus matrix doesn’t contain bounds for it. In that
>>> case, you have to use the standard linear constraints of equation (6.25) to
>>> impose bounds.
>>>
>>> At a lower lever, variable bounds are defined when variables are added
>>> via the add_vars() method. The Va, Vm, Pg and Qg variables are added
>>> automatically (with their bounds) in opf_setup(), so you can’t really
>>> modify them there. But for any variables you add later, you supply the
>>> bounds when you call add_vars().
>>>
>>>Ray
>>>
>>>
>>>
>>> On Oct 4, 2017, at 3:52 PM, Viswanath Hariharan 
>>> wrote:
>>>
>>> So I do not need to use the add_constraints function? Because when I
>>> used the code you mentioned and then runopf(mpc), convergence fails. In
>>> general, how to add box constraints for Va,Vm, Pg and Qg of xr (r =
>>> runopf(m

Re: Doubt regarding adding constraints

2017-10-13 Thread Monisha Raju
I think I was doing something wrong. It works perfectly fine now. Thank you
so much, Sir.

Regards
Viswanath

On Oct 12, 2017 10:02 AM, "Ray Zimmerman"  wrote:

> Are you saying that your solution includes voltage angles whose absolute
> value is greater than 0.26 radians or 14.9 degrees?
>
>Ray
>
>
> On Oct 11, 2017, at 8:52 PM, Viswanath Hariharan 
> wrote:
>
> First, thank you so much for your time, Sir.
> So I tried the first approach first. I want to added box constraints for
> Voltage angle, -0.26 < theta < 0.26.  I created the A matrix and l and u
> vectors and passed it to the opf function. The solution converged and I did
> get results. But the problem is that the added constraints look like they
> had no effect on the result.
>
> I also tried the toggle_reserves() method you suggested in the previous
> email of this thread where you asked me rename toggle_reserves and all the
> callback functions within it and modify its contents to toggle the addition
> of constraints. I did that too. results = runopf(mpc) and results.om had
> 5 linear constraints added to it. But again this had no effect on the
> results. I even tried changing the bounds to see if there was any
> difference but there wasn't.
>
> What is it that I'm missing out here?
>
> Regards
> Viswanath
>
>
>
> On Tue, Oct 10, 2017 at 9:09 AM, Ray Zimmerman  wrote:
>
>> It appears you have fundamentally misunderstood callback functions and
>> how they work. I suggest that you read carefully the entirety of sections
>> 7.2–7.5 in the User’s Manual and make sure you understand the
>> toggle_reserves() example used to illustrate the approach.
>>
>> To implement your own constraints, I would recommend copying and renaming
>> toggle_reserves() to something like toggle_myconstraints(). Then rename
>> all of the callback functions defined in that file to e.g.
>> userfcn_myconstraints_ext2int(), userfcn_myconstraints_formulation(),
>> etc., and modify their contents to reflect the constraints you want to add
>> (as opposed to those implemented for the zonal reserves case). The
>> “formulation” callback is where you’ll be calling add_constraints().
>> Then you can simply toggle your constraints on and use runopf() normally.
>>
>> mpc = loadcase('');
>> mpc = toggle_myconstraints(mpc, 'on');
>> results = runopf(mpc);
>>
>> Hope this helps,
>>
>> Ray
>>
>>
>>
>> On Oct 5, 2017, at 12:18 PM, Viswanath Hariharan 
>> wrote:
>>
>> Sir
>>
>> I tried adding constraints using the callback functions method described
>> in Section 7.2 but I am not sure I followed it correctly.
>> mpopt = mpoption;
>> om = opf_setup(mpc, mpopt);
>> om = add_constraints(om, 'Vm', A1, l1, u1);
>> om = add_constraints(om, 'Va', A2, l2, u2);
>> mpc = get_mpc(om)
>> results2 = runopf(mpc);
>>
>> om gets updated with 10 linear constraints (case5 is being used here).
>> But mpc doesn't get updated and hence when I run this code and check and
>> results.var.mu.l.Va , the constraints
>> aren't updated. Not only that, the mpc file isn't getting updated as well.
>> I think I am making some mistake with this line : mpc = get_mpc(om) because
>> om is fine. What am I missing here? Or should I take another approach?
>> Thank you so much for your time Sir.
>>
>> Regards
>> Viswanath Hariharan
>>
>> On Thu, Oct 5, 2017 at 10:27 AM, Ray Zimmerman  wrote:
>>
>>> You only need to use the add_constraints() function if you are using
>>> Callback Functions as described in Section 7.2 as opposed to Direct
>>> Specification as described in Section 7.1 of the User’s Manual
>>> .
>>>
>>> You convergence failure my just imply that your variable bounds are
>>> tight enough that there is no feasible solution. Try relaxing the limits
>>> and see if it converges.
>>>
>>> Vm, Pg and Qg all have limits specified directly in the bus and gen
>>> matrices. Vm is bounded by the VMIN and VMAX columns in the bus matrix.
>>> Pg and Qg are bounded by the PMIN, PMAX and QMIN, QMAX columns of the
>>> gen matrix, respectively. Va is not normally constrained (except at the
>>> reference bus), so the bus matrix doesn’t contain bounds for it. In that
>>> case, you have to use the standard linear constraints of equation (6.25) to
>>> impose bounds.
>>>
>>> At a lower lever, variable bounds are defined when variables are added
>>> via the add_vars() method. The Va, Vm, Pg and Qg variables are added
>>> automatically (with their bounds) in opf_setup(), so you can’t really
>>> modify them there. But for any variables you add later, you supply the
>>> bounds when you call add_vars().
>>>
>>>Ray
>>>
>>>
>>>
>>> On Oct 4, 2017, at 3:52 PM, Viswanath Hariharan 
>>> wrote:
>>>
>>> So I do not need to use the add_constraints function? Because when I
>>> used the code you mentioned and then runopf(mpc), convergence fails. In
>>> general, how to add box constraints for Va,Vm, Pg and Qg of xr (r =
>>> runopf

Re: Doubt regarding adding constraints

2017-10-12 Thread Ray Zimmerman
Are you saying that your solution includes voltage angles whose absolute value 
is greater than 0.26 radians or 14.9 degrees?

   Ray


> On Oct 11, 2017, at 8:52 PM, Viswanath Hariharan  wrote:
> 
> First, thank you so much for your time, Sir. 
> So I tried the first approach first. I want to added box constraints for 
> Voltage angle, -0.26 < theta < 0.26.  I created the A matrix and l and u 
> vectors and passed it to the opf function. The solution converged and I did 
> get results. But the problem is that the added constraints look like they had 
> no effect on the result. 
> 
> I also tried the toggle_reserves() method you suggested in the previous email 
> of this thread where you asked me rename toggle_reserves and all the callback 
> functions within it and modify its contents to toggle the addition of 
> constraints. I did that too. results = runopf(mpc) and results.om 
>  had 5 linear constraints added to it. But again this had 
> no effect on the results. I even tried changing the bounds to see if there 
> was any difference but there wasn't. 
> 
> What is it that I'm missing out here?
> 
> Regards
> Viswanath 
> 
> 
> 
> On Tue, Oct 10, 2017 at 9:09 AM, Ray Zimmerman  > wrote:
> It appears you have fundamentally misunderstood callback functions and how 
> they work. I suggest that you read carefully the entirety of sections 7.2–7.5 
> in the User’s Manual and make sure you understand the toggle_reserves() 
> example used to illustrate the approach.
> 
> To implement your own constraints, I would recommend copying and renaming 
> toggle_reserves() to something like toggle_myconstraints(). Then rename all 
> of the callback functions defined in that file to e.g. 
> userfcn_myconstraints_ext2int(), userfcn_myconstraints_formulation(), etc., 
> and modify their contents to reflect the constraints you want to add (as 
> opposed to those implemented for the zonal reserves case). The “formulation” 
> callback is where you’ll be calling add_constraints(). Then you can simply 
> toggle your constraints on and use runopf() normally.
> 
> mpc = loadcase('');
> mpc = toggle_myconstraints(mpc, 'on');
> results = runopf(mpc);
> 
> Hope this helps,
> 
> Ray
> 
> 
> 
>> On Oct 5, 2017, at 12:18 PM, Viswanath Hariharan > > wrote:
>> 
>> Sir
>> 
>> I tried adding constraints using the callback functions method described in 
>> Section 7.2 but I am not sure I followed it correctly.
>> mpopt = mpoption;
>> om = opf_setup(mpc, mpopt);
>> om = add_constraints(om, 'Vm', A1, l1, u1); 
>> om = add_constraints(om, 'Va', A2, l2, u2);
>> mpc = get_mpc(om)
>> results2 = runopf(mpc);
>> 
>> om gets updated with 10 linear constraints (case5 is being used here). But 
>> mpc doesn't get updated and hence when I run this code and check and 
>> results.var.mu.l.Va , the constraints aren't 
>> updated. Not only that, the mpc file isn't getting updated as well. I think 
>> I am making some mistake with this line : mpc = get_mpc(om) because om is 
>> fine. What am I missing here? Or should I take another approach?
>> Thank you so much for your time Sir.
>> 
>> Regards
>> Viswanath Hariharan
>> 
>> On Thu, Oct 5, 2017 at 10:27 AM, Ray Zimmerman > > wrote:
>> You only need to use the add_constraints() function if you are using 
>> Callback Functions as described in Section 7.2 as opposed to Direct 
>> Specification as described in Section 7.1 of the User’s Manual 
>> .
>> 
>> You convergence failure my just imply that your variable bounds are tight 
>> enough that there is no feasible solution. Try relaxing the limits and see 
>> if it converges.
>> 
>> Vm, Pg and Qg all have limits specified directly in the bus and gen 
>> matrices. Vm is bounded by the VMIN and VMAX columns in the bus matrix. Pg 
>> and Qg are bounded by the PMIN, PMAX and QMIN, QMAX columns of the gen 
>> matrix, respectively. Va is not normally constrained (except at the 
>> reference bus), so the bus matrix doesn’t contain bounds for it. In that 
>> case, you have to use the standard linear constraints of equation (6.25) to 
>> impose bounds.
>> 
>> At a lower lever, variable bounds are defined when variables are added via 
>> the add_vars() method. The Va, Vm, Pg and Qg variables are added 
>> automatically (with their bounds) in opf_setup(), so you can’t really modify 
>> them there. But for any variables you add later, you supply the bounds when 
>> you call add_vars().
>> 
>>Ray
>> 
>> 
>> 
>>> On Oct 4, 2017, at 3:52 PM, Viswanath Hariharan >> > wrote:
>>> 
>>> So I do not need to use the add_constraints function? Because when I used 
>>> the code you mentioned and then runopf(mpc), convergence fails. In general, 
>>> how to add box constraints for Va,Vm, Pg and Qg of xr (r = runopf(mpc); 
>>> r.raw.xr).

Re: Doubt regarding adding constraints

2017-10-11 Thread Viswanath Hariharan
First, thank you so much for your time, Sir.
So I tried the first approach first. I want to added box constraints for
Voltage angle, -0.26 < theta < 0.26.  I created the A matrix and l and u
vectors and passed it to the opf function. The solution converged and I did
get results. But the problem is that the added constraints look like they
had no effect on the result.

I also tried the toggle_reserves() method you suggested in the previous
email of this thread where you asked me rename toggle_reserves and all the
callback functions within it and modify its contents to toggle the addition
of constraints. I did that too. results = runopf(mpc) and results.om had 5
linear constraints added to it. But again this had no effect on the
results. I even tried changing the bounds to see if there was any
difference but there wasn't.

What is it that I'm missing out here?

Regards
Viswanath



On Tue, Oct 10, 2017 at 9:09 AM, Ray Zimmerman  wrote:

> It appears you have fundamentally misunderstood callback functions and how
> they work. I suggest that you read carefully the entirety of sections
> 7.2–7.5 in the User’s Manual and make sure you understand the
> toggle_reserves() example used to illustrate the approach.
>
> To implement your own constraints, I would recommend copying and renaming
> toggle_reserves() to something like toggle_myconstraints(). Then rename
> all of the callback functions defined in that file to e.g.
> userfcn_myconstraints_ext2int(), userfcn_myconstraints_formulation(),
> etc., and modify their contents to reflect the constraints you want to add
> (as opposed to those implemented for the zonal reserves case). The
> “formulation” callback is where you’ll be calling add_constraints(). Then
> you can simply toggle your constraints on and use runopf() normally.
>
> mpc = loadcase('');
> mpc = toggle_myconstraints(mpc, 'on');
> results = runopf(mpc);
>
> Hope this helps,
>
> Ray
>
>
>
> On Oct 5, 2017, at 12:18 PM, Viswanath Hariharan 
> wrote:
>
> Sir
>
> I tried adding constraints using the callback functions method described
> in Section 7.2 but I am not sure I followed it correctly.
> mpopt = mpoption;
> om = opf_setup(mpc, mpopt);
> om = add_constraints(om, 'Vm', A1, l1, u1);
> om = add_constraints(om, 'Va', A2, l2, u2);
> mpc = get_mpc(om)
> results2 = runopf(mpc);
>
> om gets updated with 10 linear constraints (case5 is being used here). But
> mpc doesn't get updated and hence when I run this code and check and
> results.var.mu.l.Va , the constraints aren't
> updated. Not only that, the mpc file isn't getting updated as well. I think
> I am making some mistake with this line : mpc = get_mpc(om) because om is
> fine. What am I missing here? Or should I take another approach?
> Thank you so much for your time Sir.
>
> Regards
> Viswanath Hariharan
>
> On Thu, Oct 5, 2017 at 10:27 AM, Ray Zimmerman  wrote:
>
>> You only need to use the add_constraints() function if you are using
>> Callback Functions as described in Section 7.2 as opposed to Direct
>> Specification as described in Section 7.1 of the User’s Manual
>> .
>>
>> You convergence failure my just imply that your variable bounds are tight
>> enough that there is no feasible solution. Try relaxing the limits and see
>> if it converges.
>>
>> Vm, Pg and Qg all have limits specified directly in the bus and gen
>> matrices. Vm is bounded by the VMIN and VMAX columns in the bus matrix.
>> Pg and Qg are bounded by the PMIN, PMAX and QMIN, QMAX columns of the gen
>> matrix, respectively. Va is not normally constrained (except at the
>> reference bus), so the bus matrix doesn’t contain bounds for it. In that
>> case, you have to use the standard linear constraints of equation (6.25) to
>> impose bounds.
>>
>> At a lower lever, variable bounds are defined when variables are added
>> via the add_vars() method. The Va, Vm, Pg and Qg variables are added
>> automatically (with their bounds) in opf_setup(), so you can’t really
>> modify them there. But for any variables you add later, you supply the
>> bounds when you call add_vars().
>>
>>Ray
>>
>>
>>
>> On Oct 4, 2017, at 3:52 PM, Viswanath Hariharan 
>> wrote:
>>
>> So I do not need to use the add_constraints function? Because when I used
>> the code you mentioned and then runopf(mpc), convergence fails. In general,
>> how to add box constraints for Va,Vm, Pg and Qg of xr (r = runopf(mpc);
>> r.raw.xr).
>> If I have to use the add_constraints function, how do I do that?
>>
>> Regards
>> Viswanath Hariharan
>>
>> On Wed, Sep 27, 2017 at 1:39 PM, Ray Zimmerman  wrote:
>>
>>> Voltage magnitude constraints are already included. Simply set the VMIN
>>> and VMAX columns in the bus matrix to the desired values.
>>>
>>> For voltage angles, simply define the A, l and u corresponding to
>>> equation (6.25) in the User’s Manual
>>> 

Re: Doubt regarding adding constraints

2017-10-10 Thread Ray Zimmerman
It appears you have fundamentally misunderstood callback functions and how they 
work. I suggest that you read carefully the entirety of sections 7.2–7.5 in the 
User’s Manual and make sure you understand the toggle_reserves() example used 
to illustrate the approach.

To implement your own constraints, I would recommend copying and renaming 
toggle_reserves() to something like toggle_myconstraints(). Then rename all of 
the callback functions defined in that file to e.g. 
userfcn_myconstraints_ext2int(), userfcn_myconstraints_formulation(), etc., and 
modify their contents to reflect the constraints you want to add (as opposed to 
those implemented for the zonal reserves case). The “formulation” callback is 
where you’ll be calling add_constraints(). Then you can simply toggle your 
constraints on and use runopf() normally.

mpc = loadcase('');
mpc = toggle_myconstraints(mpc, 'on');
results = runopf(mpc);

Hope this helps,

Ray



> On Oct 5, 2017, at 12:18 PM, Viswanath Hariharan  wrote:
> 
> Sir
> 
> I tried adding constraints using the callback functions method described in 
> Section 7.2 but I am not sure I followed it correctly.
> mpopt = mpoption;
> om = opf_setup(mpc, mpopt);
> om = add_constraints(om, 'Vm', A1, l1, u1); 
> om = add_constraints(om, 'Va', A2, l2, u2);
> mpc = get_mpc(om)
> results2 = runopf(mpc);
> 
> om gets updated with 10 linear constraints (case5 is being used here). But 
> mpc doesn't get updated and hence when I run this code and check and 
> results.var.mu.l.Va , the constraints aren't 
> updated. Not only that, the mpc file isn't getting updated as well. I think I 
> am making some mistake with this line : mpc = get_mpc(om) because om is fine. 
> What am I missing here? Or should I take another approach?
> Thank you so much for your time Sir.
> 
> Regards
> Viswanath Hariharan
> 
> On Thu, Oct 5, 2017 at 10:27 AM, Ray Zimmerman  > wrote:
> You only need to use the add_constraints() function if you are using Callback 
> Functions as described in Section 7.2 as opposed to Direct Specification as 
> described in Section 7.1 of the User’s Manual 
> .
> 
> You convergence failure my just imply that your variable bounds are tight 
> enough that there is no feasible solution. Try relaxing the limits and see if 
> it converges.
> 
> Vm, Pg and Qg all have limits specified directly in the bus and gen matrices. 
> Vm is bounded by the VMIN and VMAX columns in the bus matrix. Pg and Qg are 
> bounded by the PMIN, PMAX and QMIN, QMAX columns of the gen matrix, 
> respectively. Va is not normally constrained (except at the reference bus), 
> so the bus matrix doesn’t contain bounds for it. In that case, you have to 
> use the standard linear constraints of equation (6.25) to impose bounds.
> 
> At a lower lever, variable bounds are defined when variables are added via 
> the add_vars() method. The Va, Vm, Pg and Qg variables are added 
> automatically (with their bounds) in opf_setup(), so you can’t really modify 
> them there. But for any variables you add later, you supply the bounds when 
> you call add_vars().
> 
>Ray
> 
> 
> 
>> On Oct 4, 2017, at 3:52 PM, Viswanath Hariharan > > wrote:
>> 
>> So I do not need to use the add_constraints function? Because when I used 
>> the code you mentioned and then runopf(mpc), convergence fails. In general, 
>> how to add box constraints for Va,Vm, Pg and Qg of xr (r = runopf(mpc); 
>> r.raw.xr).
>> If I have to use the add_constraints function, how do I do that?
>> 
>> Regards
>> Viswanath Hariharan
>> 
>> On Wed, Sep 27, 2017 at 1:39 PM, Ray Zimmerman > > wrote:
>> Voltage magnitude constraints are already included. Simply set the VMIN and 
>> VMAX columns in the bus matrix to the desired values.
>> 
>> For voltage angles, simply define the A, l and u corresponding to equation 
>> (6.25) in the User’s Manual 
>> . 
>> Something like the following …
>> 
>> mpc = loadcase();
>> nb = size(mpc.bus, 1);
>> ng = size(mpc.gen, 1);
>> mpc.A = sparse(1:nb, 1:nb, 1, nb 
>> , 2*nb+2*ng);
>> mpc.u = 0.26 * ones(nb, 1);
>> mpc.u = -mpc.l;
>> 
>> — Ray
>> 
>> 
>> 
>>> On Sep 23, 2017, at 5:25 PM, Viswanath Hariharan >> > wrote:
>>> 
>>> Hello Sir
>>> 
>>> I want to add voltage magnitude and voltage angle constraints to the
>>> opf solver but I am not able to figure out how to.
>>> 
>>> Voltage magnitude constraints --->  0.9 <= Vm <= 1.1
>>> Voltage angle constraints ---> - 0.26 <= Va <= 0.26 (Unrelaxed form)
>>> 
>>> I read a post where you mentioned to add these constraints to the case
>>> struct which looked pretty simple in the post but I didn't know how to add
>>> that to the case struct.
>>> 

Re: Doubt regarding adding constraints

2017-10-05 Thread Viswanath Hariharan
Sir

I tried adding constraints using the callback functions method described in
Section 7.2 but I am not sure I followed it correctly.
mpopt = mpoption;
om = opf_setup(mpc, mpopt);
om = add_constraints(om, 'Vm', A1, l1, u1);
om = add_constraints(om, 'Va', A2, l2, u2);
mpc = get_mpc(om)
results2 = runopf(mpc);

om gets updated with 10 linear constraints (case5 is being used here). But
mpc doesn't get updated and hence when I run this code and check and
results.var.mu.l.Va, the constraints aren't updated. Not only that, the mpc
file isn't getting updated as well. I think I am making some mistake with
this line : mpc = get_mpc(om) because om is fine. What am I missing here?
Or should I take another approach?
Thank you so much for your time Sir.

Regards
Viswanath Hariharan

On Thu, Oct 5, 2017 at 10:27 AM, Ray Zimmerman  wrote:

> You only need to use the add_constraints() function if you are using
> Callback Functions as described in Section 7.2 as opposed to Direct
> Specification as described in Section 7.1 of the User’s Manual
> .
>
> You convergence failure my just imply that your variable bounds are tight
> enough that there is no feasible solution. Try relaxing the limits and see
> if it converges.
>
> Vm, Pg and Qg all have limits specified directly in the bus and gen
> matrices. Vm is bounded by the VMIN and VMAX columns in the bus matrix.
> Pg and Qg are bounded by the PMIN, PMAX and QMIN, QMAX columns of the gen
> matrix, respectively. Va is not normally constrained (except at the
> reference bus), so the bus matrix doesn’t contain bounds for it. In that
> case, you have to use the standard linear constraints of equation (6.25) to
> impose bounds.
>
> At a lower lever, variable bounds are defined when variables are added via
> the add_vars() method. The Va, Vm, Pg and Qg variables are added
> automatically (with their bounds) in opf_setup(), so you can’t really
> modify them there. But for any variables you add later, you supply the
> bounds when you call add_vars().
>
>Ray
>
>
>
> On Oct 4, 2017, at 3:52 PM, Viswanath Hariharan 
> wrote:
>
> So I do not need to use the add_constraints function? Because when I used
> the code you mentioned and then runopf(mpc), convergence fails. In general,
> how to add box constraints for Va,Vm, Pg and Qg of xr (r = runopf(mpc);
> r.raw.xr).
> If I have to use the add_constraints function, how do I do that?
>
> Regards
> Viswanath Hariharan
>
> On Wed, Sep 27, 2017 at 1:39 PM, Ray Zimmerman  wrote:
>
>> Voltage magnitude constraints are already included. Simply set the VMIN
>> and VMAX columns in the bus matrix to the desired values.
>>
>> For voltage angles, simply define the A, l and u corresponding to
>> equation (6.25) in the User’s Manual
>> .
>> Something like the following …
>>
>> mpc = loadcase();
>> nb = size(mpc.bus, 1);
>> ng = size(mpc.gen, 1);
>> mpc.A = sparse(1:nb, 1:nb, 1, nb
>> ,
>> 2*nb+2*ng);
>> mpc.u = 0.26 * ones(nb, 1);
>> mpc.u = -mpc.l;
>>
>> — Ray
>>
>>
>>
>> On Sep 23, 2017, at 5:25 PM, Viswanath Hariharan 
>> wrote:
>>
>> Hello Sir
>>
>> I want to add voltage magnitude and voltage angle constraints to the
>> opf solver but I am not able to figure out how to.
>>
>> Voltage magnitude constraints --->  0.9 <= Vm <= 1.1
>> Voltage angle constraints ---> - 0.26 <= Va <= 0.26 (Unrelaxed form)
>>
>> I read a post where you mentioned to add these constraints to the case
>> struct which looked pretty simple in the post but I didn't know how to add
>> that to the case struct.
>> I was wondering if you can guide me on how to do it. Hoping to hear from
>> you soon.
>>
>> Regards
>> Viswanath Hariharan
>> Graduate Research Assistant
>> Electrical Engineering
>> University at Buffalo
>>
>>
>>
>
>


Re: Doubt regarding adding constraints

2017-10-05 Thread Ray Zimmerman
You only need to use the add_constraints() function if you are using Callback 
Functions as described in Section 7.2 as opposed to Direct Specification as 
described in Section 7.1 of the User’s Manual 
.

You convergence failure my just imply that your variable bounds are tight 
enough that there is no feasible solution. Try relaxing the limits and see if 
it converges.

Vm, Pg and Qg all have limits specified directly in the bus and gen matrices. 
Vm is bounded by the VMIN and VMAX columns in the bus matrix. Pg and Qg are 
bounded by the PMIN, PMAX and QMIN, QMAX columns of the gen matrix, 
respectively. Va is not normally constrained (except at the reference bus), so 
the bus matrix doesn’t contain bounds for it. In that case, you have to use the 
standard linear constraints of equation (6.25) to impose bounds.

At a lower lever, variable bounds are defined when variables are added via the 
add_vars() method. The Va, Vm, Pg and Qg variables are added automatically 
(with their bounds) in opf_setup(), so you can’t really modify them there. But 
for any variables you add later, you supply the bounds when you call add_vars().

   Ray



> On Oct 4, 2017, at 3:52 PM, Viswanath Hariharan  wrote:
> 
> So I do not need to use the add_constraints function? Because when I used the 
> code you mentioned and then runopf(mpc), convergence fails. In general, how 
> to add box constraints for Va,Vm, Pg and Qg of xr (r = runopf(mpc); r.raw.xr).
> If I have to use the add_constraints function, how do I do that?
> 
> Regards
> Viswanath Hariharan
> 
> On Wed, Sep 27, 2017 at 1:39 PM, Ray Zimmerman  > wrote:
> Voltage magnitude constraints are already included. Simply set the VMIN and 
> VMAX columns in the bus matrix to the desired values.
> 
> For voltage angles, simply define the A, l and u corresponding to equation 
> (6.25) in the User’s Manual 
> . 
> Something like the following …
> 
> mpc = loadcase();
> nb = size(mpc.bus, 1);
> ng = size(mpc.gen, 1);
> mpc.A = sparse(1:nb, 1:nb, 1, nb 
> , 2*nb+2*ng);
> mpc.u = 0.26 * ones(nb, 1);
> mpc.u = -mpc.l;
> 
> — Ray
> 
> 
> 
>> On Sep 23, 2017, at 5:25 PM, Viswanath Hariharan > > wrote:
>> 
>> Hello Sir
>> 
>> I want to add voltage magnitude and voltage angle constraints to the
>> opf solver but I am not able to figure out how to.
>> 
>> Voltage magnitude constraints --->  0.9 <= Vm <= 1.1
>> Voltage angle constraints ---> - 0.26 <= Va <= 0.26 (Unrelaxed form)
>> 
>> I read a post where you mentioned to add these constraints to the case
>> struct which looked pretty simple in the post but I didn't know how to add
>> that to the case struct.
>> I was wondering if you can guide me on how to do it. Hoping to hear from
>> you soon.
>> 
>> Regards
>> Viswanath Hariharan
>> Graduate Research Assistant
>> Electrical Engineering
>> University at Buffalo
> 
> 



Re: Doubt regarding adding constraints

2017-10-04 Thread Viswanath Hariharan
So I do not need to use the add_constraints function? Because when I used
the code you mentioned and then runopf(mpc), convergence fails. In general,
how to add box constraints for Va,Vm, Pg and Qg of xr (r = runopf(mpc);
r.raw.xr).
If I have to use the add_constraints function, how do I do that?

Regards
Viswanath Hariharan

On Wed, Sep 27, 2017 at 1:39 PM, Ray Zimmerman  wrote:

> Voltage magnitude constraints are already included. Simply set the VMIN
> and VMAX columns in the bus matrix to the desired values.
>
> For voltage angles, simply define the A, l and u corresponding to
> equation (6.25) in the User’s Manual
> .
> Something like the following …
>
> mpc = loadcase();
> nb = size(mpc.bus, 1);
> ng = size(mpc.gen, 1);
> mpc.A = sparse(1:nb, 1:nb, 1, nb
> , 2*nb+2*ng);
> mpc.u = 0.26 * ones(nb, 1);
> mpc.u = -mpc.l;
>
> — Ray
>
>
>
> On Sep 23, 2017, at 5:25 PM, Viswanath Hariharan 
> wrote:
>
> Hello Sir
>
> I want to add voltage magnitude and voltage angle constraints to the
> opf solver but I am not able to figure out how to.
>
> Voltage magnitude constraints --->  0.9 <= Vm <= 1.1
> Voltage angle constraints ---> - 0.26 <= Va <= 0.26 (Unrelaxed form)
>
> I read a post where you mentioned to add these constraints to the case
> struct which looked pretty simple in the post but I didn't know how to add
> that to the case struct.
> I was wondering if you can guide me on how to do it. Hoping to hear from
> you soon.
>
> Regards
> Viswanath Hariharan
> Graduate Research Assistant
> Electrical Engineering
> University at Buffalo
>
>
>


Re: Doubt regarding adding constraints

2017-09-27 Thread Ray Zimmerman
Voltage magnitude constraints are already included. Simply set the VMIN and 
VMAX columns in the bus matrix to the desired values.

For voltage angles, simply define the A, l and u corresponding to equation 
(6.25) in the User’s Manual 
. Something 
like the following …

mpc = loadcase();
nb = size(mpc.bus, 1);
ng = size(mpc.gen, 1);
mpc.A = sparse(1:nb, 1:nb, 1, nb, 2*nb+2*ng);
mpc.u = 0.26 * ones(nb, 1);
mpc.u = -mpc.l;

— Ray



> On Sep 23, 2017, at 5:25 PM, Viswanath Hariharan  wrote:
> 
> Hello Sir
> 
> I want to add voltage magnitude and voltage angle constraints to the
> opf solver but I am not able to figure out how to.
> 
> Voltage magnitude constraints --->  0.9 <= Vm <= 1.1
> Voltage angle constraints ---> - 0.26 <= Va <= 0.26 (Unrelaxed form)
> 
> I read a post where you mentioned to add these constraints to the case
> struct which looked pretty simple in the post but I didn't know how to add
> that to the case struct.
> I was wondering if you can guide me on how to do it. Hoping to hear from
> you soon.
> 
> Regards
> Viswanath Hariharan
> Graduate Research Assistant
> Electrical Engineering
> University at Buffalo