If you want to allow load shedding in order to make your over-constrained problem feasible, simply turn your load into a dispatchable load with a very high value, so that curtailing it will be used only as a last resort.
-- Ray Zimmerman Senior Research Associate B30 Warren Hall, Cornell University, Ithaca, NY 14853 phone: (607) 255-9645 On Apr 17, 2014, at 6:35 PM, Christian Stiller <[email protected]> wrote: > Dear Dr Zimmerman and to whomever is reading this, > > due to sending it first to the wrong address, i already got an answer from > DR. Zimmermann, but i have additional questions(so you might want to start at > the first mail a little bit down here) > > My additional Questions: > > 1: The thing is, that these tight limit will occur in my Project sometimes > and in the post process some matlab code will decide whether to build > new/enlarge existing Branches or keep them the way they are. (And after that > starting at the beginning with small changes in power production and demand. > And this for about 20 times. And all this together about different strategies > and a lot of different scenarios) > And for this i need to ensure that even in tight cases i can get feasible > result. Supply shortage is a possible result for me. > I want to calculates how much maximal unmet demand i have and which strategy > give me the least unmet demand over the most scenarios > > and In my opinion one possible result of my given case could be > > : > > Generation(Bus 1: 300MW, Bus4: 100MW) > > Branch Date > > From 1 to 2: 100MW > From 1 to 3: 150MW > From 2 to 4: -100MW > From 3 to 4: 50MW > > > > So does anybody see a potential solution to this problem with Matpower > > Thank you all for your time > > regards, > christian Stiller > > > > > > > Am 17.04.2014 15:15, schrieb Ray Zimmerman: >> (Btw, this kind of question should be addressed to [email protected], >> not [email protected]). >> >> Two things … >> >> 1. It appears that your problem is infeasible. Try increasing the limit on >> the first branch to 150 or above and it should solve just fine. You may want >> to recheck the simple, clean solution you got on paper. >> 2. When the OPF is unsuccessful, the numerical values of any of the results >> are typically meaningless. >> >> -- >> Ray Zimmerman >> Senior Research Associate >> B30 Warren Hall, Cornell University, Ithaca, NY 14853 >> phone: (607) 255-9645 >> >> >> >> On Apr 17, 2014, at 8:51 AM, Christian Stiller >> <[email protected]> wrote: >> >>> Dear Dr Zimmerman and to whomever is reading this, >>> >>> >>> The Short Version of my Problem: >>> >>> I have a simple, reduced to the minimum, 4 bus dc opf case where i want to >>> get the maximum possible power flow while the given limits are never >>> violated. The model of the grid is a very very very reduced one. Only the >>> transmission capacity is given for the edges and on the nodes the real >>> power demand and the maximum real power output. Not More! >>> >>> My Problem is , that if the production capacity or the transmission line >>> capacity comes to the limit, matpower gives me very strange results (and >>> especially these "thight" cases are the interessting ones for my project >>> and will occure sometimes). It says that it did NOT converge and "exiting, >>> one ore more variables have grown more than 100000times" . So for example >>> in the Results i can find exploding cost or nearly no generation but >>> extreme transmission. the results make no sense at all, on paper the >>> problem has a very simple and clean solution. >>> so if you could help me, maybe somebody knows an answer (not possible would >>> be an answer too) >>> >>> I tried using mosek to solve that case but it gave me onyly zero's as result >>> >>> Matlab 2012b and the newest matpower (4.1) >>> >>> regards and thank you for your Time, >>> >>> Christian Stiller >>> >>> >>> A more detailed Version of my Case an Problem with the m file attached >>> >>> >>> My Case >>> >>> In my Beachlor Thesis I want to demonstrate the method of Robust Decision >>> Making at the example of the planning of the powergrid. (like: where should >>> we build new lines in an existing grind so that the system is robust in >>> future uncertain scenarios). >>> >>> >>> The model of the grid is a very very very reduced one. Only the >>> transmission capacity is given for the edges and on the nodes the real >>> power demand and the maximum real power output. >>> >>> For that Methode I need to test a set of different strategies on a large >>> set of possible uncertain scenarios(power generation and consumption are >>> uncertain in and given range), to find that strategie which gives a good >>> performance(cost or max unmet power) over the most scenarios. And in each >>> scenario I have to calculate for each strategie for each year(till2030) if >>> there is a need to build new transmission lines. (There are also Reserve >>> Power and dispatchable loads with specific costs given, but first I wanted >>> to get the simple Version working and calculate the reserve and disp. >>> Loads after the transmission) ) >>> >>> >>> So I need to calculate the maximum possible Flow given a certain Network in >>> which no limits (edge capacity and generator output) are violated! For that >>> (because of the limits)only OptimalpowerFlow works in Matpower, so I have >>> to set the generation cost to something. So I use “rundcopf(‘ ’)”. The >>> generation cost is set to the same value on all generators and all edges >>> have the same resistance. >>> >>> The goal is to find the edges which are at limit to know where to invest in >>> new lines. >>> >>> My Problem is now, that if the production capacity or the transmission >>> capacity comes to the limit, matpower gives me very strange results (and >>> that case will happen sometimes). From exploding cost,to nearly no >>> generation but extreme transmission, the results make no sense at all, on >>> paper the problem has a very simple and clean solution. >>> >>> (I also tried working with dispatchable loads, but even when no >>> dispatchable loads where theoretically needed, matpower dispatched some >>> part of the loads. Which I think has to to with the costs given for >>> production and dispatching >>> >>> My opinion is, that Matpower has problems finding a solution because of >>> this very simple case and the given very strict limits. (Even setting >>> different resistances (x) in the branch date or/and setting different >>> generation costs doesn’t change the strange results.) >>> >>> >>> >>> >>> >>> >>> RDM.m >>> >>> function mpc = case4gs >>> %CASE4GS Power flow data for 4 bus, 2 gen case from Grainger & Stevenson. >>> % Please see CASEFORMAT for details on the case file format. >>> % >>> % This is the 4 bus example from pp. 337-338 of "Power System Analysis", >>> % by John Grainger, Jr., William Stevenson, McGraw-Hill, 1994. >>> >>> % MATPOWER >>> % $Id: case4gs.m,v 1.4 2010/03/10 18:08:14 ray Exp $ >>> >>> %% MATPOWER Case Format : Version 2 >>> mpc.version = '2'; >>> >>> %%----- Power Flow Data -----%% >>> %% system MVA base >>> mpc.baseMVA = 100; >>> >>> %% bus data >>> % bus_i type Pd Qd Gs Bs area Vm Va >>> baseKV zone Vmax Vmin >>> mpc.bus = [ >>> 1 3 50 0 0 0 1 1 0 >>> 230 1 1.1 0.9; >>> 2 1 200 0 0 0 1 1 0 >>> 230 1 1.1 0.9; >>> 3 1 100 0 0 0 1 1 0 >>> 230 1 1.1 0.9; >>> 4 2 50 0 0 0 1 1 0 >>> 230 1 1.1 0.9; >>> >>> ]; >>> >>> %% generator data >>> % bus Pg Qg Qmax Qmin Vg mBase status Pmax >>> Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc >>> ramp_10 ramp_30 ramp_q apf >>> mpc.gen = [ >>> 1 0 0 100 -100 1 100 1 400 0 >>> 0 0 0 0 0 0 0 0 0 0 >>> 0; >>> 4 0 0 100 -100 1 100 1 100 >>> 0 0 0 0 0 0 0 0 0 0 >>> 0 0; >>> ]; >>> >>> %% branch data >>> % fbus tbus r x b rateA rateB rateC ratio >>> angle status angmin angmax >>> mpc.branch = [ >>> 1 2 0 0.05 0 100 100 100 0 >>> 0 1 -360 360; >>> 1 3 0 0.05 0 200 200 200 0 >>> 0 1 -360 360; >>> 2 4 0 0.05 0 200 200 200 0 >>> 0 1 -360 360; >>> 3 4 0 0.05 0 200 200 200 0 >>> 0 1 -360 360; >>> >>> ]; >>> %% generator cost data >>> % 1 startup shutdown n x1 y1 ... xn >>> yn >>> % 2 startup shutdown n c(n-1) ... c0 >>> mpc.gencost = [ >>> 1 0 0 2 0 1 400 400; >>> 1 0 0 2 0 1 100 100; >>> >>> ]; >>> >>> >>> >> >
