In a system with two buses and a single connecting line, there is a very
obvious relationship between the load, generation and line flow. In a larger
meshed system, with many buses, many generators and many loads, there are many
ways to curtail loads and redispatch generation and each option affects line
flows differently. If you have multiple overloads you are trying to remedy the
problem quickly becomes very complex.
I’m still not sure I understand how you are suggesting to “limit” the line flow
and satisfy the DC power flow equations without turning your problem into an
OPF.
Ray
> On Jan 14, 2016, at 6:50 PM, Bijay Hughes <[email protected]> wrote:
>
> Hi Ray,
>
> Thank you so much. The OPF solution is very clear to me now.
>
> I had another thought today. Like I said, my goal is to curtail the load, and
> limit the branch flow. I will give you a very simple example of a network
> with two nodes - A is generation and B is load. Suppose from A to B, 500 MW
> power flows. When you curtail load in B (say by x MW), you also curtial
> generation in A (by the same x MW, to balance load-generation). This will
> naturally imply the branch flow is limited by x MW. Therefore the line
> becomes less overloaded. Can't one limit the branch flow in this way, as
> well? Isn't it more simple? In this way one doesn't need to introduce high
> generation cost to limit the branch flow, or run optimal power flow at all.
> My commonsense tells me that if you curtail load and generation, the power
> flow is limited naturally. Or am I wrong in perspective of my original idea?
>
> I am definitely going to use the opf solution you have presented above, but
> I think it is always good to question one's ideas :)
>
> Best,
>
> B.
>
> On Thu, Jan 14, 2016 at 7:22 PM, Ray Zimmerman <[email protected]
> <mailto:[email protected]>> wrote:
> Suppose the nominal dispatch for a generator, from the initial power flow
> solution, is P0. I’m thinking of a cost function like …
>
> cost(P) = / –P + P0, for P <= P0
> \ P - P0, for P > P0
>
> … which you can implement with the following row in gencost …
>
> 1 0 0 3 0 P0 P0 0 2*P0 P0
>
> The slope of the portion for P <= P0 is –1, and the slope for the portion for
> P > P0 is +1.
>
> This is equivalent to incurring a cost of $1/MW for every MW deviation from
> the nominal P0 MW. In other words, the cost is minimized by sticking with the
> original dispatch.
>
> Ray
>
>
>> On Jan 13, 2016, at 6:37 PM, Bijay Hughes <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> Hi Ray,
>>
>> This was very, very useful and I am working on implementing load2disp on my
>> load-shedding model. I understand you now. Thanks so much.
>>
>> However, I have one question about a part of your explanation. I quite did
>> not understand what you mean by this:
>>
>> "then assign a piecewise linear cost to each generator with a negative slope
>> when dispatched below the nominal (original) dispatch value and a positive
>> slope above the nominal value (where these slopes are significantly smaller
>> than the value of the loads)"
>>
>> How do you assign a piecewise linear cost to each generator with a negative
>> slope? What is a negative slope?
>>
>> I really appreciate you helping me.
>>
>> Best,
>>
>> Bijay
>>
>> On Wed, Jan 13, 2016 at 9:10 PM, Ray Zimmerman <[email protected]
>> <mailto:[email protected]>> wrote:
>> Hi Bijay,
>>
>> I still think you are describing a particular version of an optimal power
>> flow problem. If I understand you correctly, you have an initial power flow
>> solution which violates some branch flow limits. Now you want to curtail
>> some loads optimally to relieve the overloads on the lines. Curtailing loads
>> also means curtailing generation in order to maintain generation/load
>> balance. What you haven’t specified is what kinds of load curtailment
>> patterns and generator redispatch options are permissible and how will you
>> rank them.
>>
>> The most straightforward way I know to specify these things is in the form
>> of an objective function and constraints for an OPF. For example, let’s say
>> you want to minimize the total load curtailment (in MW) then also minimize
>> the total deviation (in MW) from the initial generator dispatch schedule.
>> You can accomplish this by assigning a very high value to the dispatchable
>> loads (as load2disp
>> <http://www.pserc.cornell.edu//matpower/docs/ref/matpower5.1/load2disp.html>
>> does by default), then assign a piecewise linear cost to each generator with
>> a negative slope when dispatched below the nominal (original) dispatch value
>> and a positive slope above the nominal value (where these slopes are
>> significantly smaller than the value of the loads). The OPF already contains
>> the branch flow constraints, so all you need to do is run an OPF with these
>> costs and the solution will be a DC power flow solution that satisfies the
>> criteria you specified. If desired, you could also reduce PMAX for each of
>> the generators to the nominal dispatch to enforce only downward
>> redispatches, for example.
>>
>> In any case, it seems you want to re-dispatch a DC power flow according to
>> some criteria in order to satisfy flow (and possibly other) constraints.
>> This is precisely what an OPF is.
>>
>> Best,
>>
>> Ray
>>
>>
>>
>>> On Jan 12, 2016, at 12:44 PM, Bijay Hughes <[email protected]
>>> <mailto:[email protected]>> wrote:
>>>
>>> Hi Ray,
>>>
>>> Thank you for your kind response. I really admire you helping all us with
>>> our problems.
>>>
>>> Actually no, I don't want to run OPF. I just want to run normal power flow
>>> rundcpf. I am aware of load2disp function. But I want to create my own
>>> load-shedding protocol.
>>>
>>> I want to curtail load in such a way that the power flowing through
>>> branches doesn't exceed its capacity, while at the same time curtail not
>>> too much such that the buses can partially fulfill their demand. Like I
>>> said, it is an optimization problem.
>>>
>>> I have the branch capacities for each of the branches. The power flowing
>>> through these branches must be less than these capacities - this is the
>>> constraint. So for a given branch capacity, I need to solve for the voltage
>>> angles, while at the same time maximize the objective function, which is
>>> the sum of loads. This will give me how much load was required to curtail
>>> to limit the power flow in the branches. My question is, how to solve for
>>> these voltage angles for a given power flowing in it? Is there a way to do
>>> it in the MATPOWER code?
>>>
>>> Best and thanking you,
>>>
>>> Bijay
>>>
>>> On Tue, Jan 12, 2016 at 7:03 PM, Ray Zimmerman <[email protected]
>>> <mailto:[email protected]>> wrote:
>>> It seems to me that you simply want to run an OPF (seems like you are using
>>> a DC power flow model, so that would be rundcopf
>>> <http://www.pserc.cornell.edu//matpower/docs/ref/matpower5.1/rundcopf.html>)
>>> with your loads defined as dispatchable (curtailable) loads. See section
>>> 6.4.2 in the MATPOWER User’s Manual
>>> <http://www.pserc.cornell.edu/matpower/docs/MATPOWER-manual-5.1.pdf>. You
>>> can use the load2disp
>>> <http://www.pserc.cornell.edu//matpower/docs/ref/matpower5.1/load2disp.html>
>>> function to convert the loads. If the value of the loads is higher than
>>> the cost of generation, then all load will be served unless load-shedding
>>> is required to maintain feasibility. The OPF automatically enforces the
>>> line flow limits.
>>>
>>> Ray
>>>
>>>
>>>> On Jan 11, 2016, at 5:56 PM, Bijay Hughes <[email protected]
>>>> <mailto:[email protected]>> wrote:
>>>>
>>>> Hi Ray,
>>>>
>>>> I have a scenario where a line fails, and this initially failed line
>>>> triggers more failures. This continues until the system experiences a
>>>> blackout. My plan is to prevent blackout by performing a load-shedding. I
>>>> have load-shedding protocol as an optimization problem.
>>>>
>>>> Objective Function:
>>>>
>>>> Maximize loads in the bus
>>>>
>>>> Constraint:
>>>>
>>>> Power flowing in the branches should be always less than the capacity of
>>>> lines.
>>>>
>>>> My question is how to control the power flow in the lines. I have the
>>>> capacity of lines. I guess I need to modify the powerflow code runpf.m or
>>>> makeBdc.m? But the question is which part? Given the capacity of lines, I
>>>> have to solve for the optimum voltage angles such that the load at the
>>>> buses is maximized. This will tell me how much load was needed to curtail
>>>> to minimize the cascading failure. The relation for voltage angles and
>>>> power flow is given by: Pf = BF * Va + PFINJ in makeBdc.m file.
>>>>
>>>> Any help would be greatly appreciated, Ray. I look forward to your
>>>> replies.
>>>>
>>>> Best,
>>>>
>>>> Bijay
>>>
>>>
>>
>>
>
>