Iman,
To get the nose curve, you can adjust the step size for phase 2 (lambda
prediction-correction phase). For example, if you lower 'sigmaForVoltage' to
0.001 in test_cpf_t.m, you will be able to get the nose curve. You can check
the attached files for details, where I let it draw nose curves for 3 buses.
And the nose curve for bus 21 does look a bit different though from others.
For CPF, the step sizes for voltage prediction-correction and lambda
prediction-correction may need to be adjusted depending on the cases. In the
30-bus system case, the voltage drop near nose tip area for bus 21 is less than
0.04 p.u.. Therefore, in lambda prediction-correction phase, the augmented
power flow can not be solved when voltage step size was set to 0.05 p.u..
Setting the step size to be smaller, such as 0.02 p.u. or less, will help to
solve the power flow.
Another way to control the transition among the three phases is to adjust
parameters 'slopeThresh_Phase1' and 'slopeThresh_Phase2' in cpf.m. Now they are
set at empirical values that I got from simulations, and there is no need to
adjust them since they work fine for small systems. So I didn’t expose them in
the cpf.m interface. But in case of weird-looking nose curves, these two
parameters can provide an additional level of flexibility in manipulating the
CPF program.
Rui (Ray) Bo, Ph.D, SMIEEE
Regulatory and Economic Studies Department
Midwest ISO
1125 Energy Park Drive
St.Paul, MN 55108
Phone: (651) 632-8447
Email: [email protected], [email protected]
From: iman
Sent: Friday, November 16, 2012 09:54
To: MATPOWER discussion forum
Subject: Fwd: files
Dear All,
If you do CPF on bus number 21 case 30 , you won't be able to get a nose curve
.What is the logic behind that? Can we manipulate the values to get a nose
curve shape CPF for this bus?
For convenience I have attached case30.m and test_cpf.m .
--
Best regards
Iman
function test_cpf
%TEST_CPF Test continuation power flow (CPF).
% created by Rui Bo on 2007/11/12
% MATPOWER
% $Id: test_cpf.m,v 1.4 2010/04/26 19:45:26 ray Exp $
% by Rui Bo
% Copyright (c) 2009-2010 by Rui Bo
%
% This file is part of MATPOWER.
% See http://www.pserc.cornell.edu/matpower/ for more info.
%
% MATPOWER is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published
% by the Free Software Foundation, either version 3 of the License,
% or (at your option) any later version.
%
% MATPOWER is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with MATPOWER. If not, see <http://www.gnu.org/licenses/>.
%
% Additional permission under GNU GPL version 3 section 7
%
% If you modify MATPOWER, or any covered work, to interface with
% other modules (such as MATLAB code and MEX-files) available in a
% MATLAB(R) or comparable environment containing parts covered
% under other licensing terms, the licensors of MATPOWER grant
% you additional permission to convey the resulting work.
casename = 'case30_t';%'case6bus'; %'case30'
%% test cpf
fprintf('\n------------testing continuation power flow (CPF) solver\n');
loadvarloc = 21;%6;%7 % bus number at which load changes
sigmaForLambda = 0.2;%0.05; % stepsize for Lambda
sigmaForVoltage = 0.001;%0.025; % stepsize for voltage
[max_lambda, predicted_list, corrected_list, combined_list, success, et] =
cpf(casename, loadvarloc, sigmaForLambda, sigmaForVoltage);
fprintf('maximum lambda is %f\n\n', max_lambda);
%% draw PV curve
flag_combinedCurve = true;
busesToDraw = [3,20:21];%[3:6];
drawPVcurves(casename, loadvarloc, corrected_list, combined_list,
flag_combinedCurve, busesToDraw);
function mpc = case30_t
%CASE30 Power flow data for 30 bus, 6 generator case.
% Please see CASEFORMAT for details on the case file format.
%
% Based on data from ...
% Alsac, O. & Stott, B., "Optimal Load Flow with Steady State Security",
% IEEE Transactions on Power Apparatus and Systems, Vol. PAS 93, No. 3,
% 1974, pp. 745-751.
% ... with branch parameters rounded to nearest 0.01, shunt values divided
% by 100 and shunt on bus 10 moved to bus 5, load at bus 5 zeroed out.
% Generator locations, costs and limits and bus areas were taken from ...
% Ferrero, R.W., Shahidehpour, S.M., Ramesh, V.C., "Transaction analysis
% in deregulated power systems using game theory", IEEE Transactions on
% Power Systems, Vol. 12, No. 3, Aug 1997, pp. 1340-1347.
% Generator Q limits were derived from Alsac & Stott, using their Pmax
% capacities. V limits and line |S| limits taken from Alsac & Stott.
% MATPOWER
% $Id: case30.m,v 1.12 2010/03/10 18:08:13 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 0 0 0 0 1 1 0
135 1 1.05 0.95;
2 2 21.7 12.7 0 0 1 1 0
135 1 1.1 0.95;
3 1 2.4 1.2 0 0 1 1 0
135 1 1.05 0.95;
4 1 7.6 1.6 0 0 1 1 0
135 1 1.05 0.95;
5 1 0 0 0 0.19 1 1 0
135 1 1.05 0.95;
6 1 0 0 0 0 1 1 0
135 1 1.05 0.95;
7 1 22.8 10.9 0 0 1 1 0
135 1 1.05 0.95;
8 1 30 30 0 0 1 1 0
135 1 1.05 0.95;
9 1 0 0 0 0 1 1 0
135 1 1.05 0.95;
10 1 5.8 2 0 0 3 1 0
135 1 1.05 0.95;
11 1 0 0 0 0 1 1 0
135 1 1.05 0.95;
12 1 11.2 7.5 0 0 2 1 0
135 1 1.05 0.95;
13 2 0 0 0 0 2 1 0
135 1 1.1 0.95;
14 1 6.2 1.6 0 0 2 1 0
135 1 1.05 0.95;
15 1 8.2 2.5 0 0 2 1 0
135 1 1.05 0.95;
16 1 3.5 1.8 0 0 2 1 0
135 1 1.05 0.95;
17 1 9 5.8 0 0 2 1 0
135 1 1.05 0.95;
18 1 3.2 0.9 0 0 2 1 0
135 1 1.05 0.95;
19 1 9.5 3.4 0 0 2 1 0
135 1 1.05 0.95;
20 1 2.2 0.7 0 0 2 1 0
135 1 1.05 0.95;
21 1 17.5 11.2 0 0 3 1 0
135 1 1.05 0.95;
22 2 0 0 0 0 3 1 0
135 1 1.1 0.95;
23 2 3.2 1.6 0 0 2 1 0
135 1 1.1 0.95;
24 1 8.7 6.7 0 0.04 3 1 0
135 1 1.05 0.95;
25 1 0 0 0 0 3 1 0
135 1 1.05 0.95;
26 1 3.5 2.3 0 0 3 1 0
135 1 1.05 0.95;
27 2 0 0 0 0 3 1 0
135 1 1.1 0.95;
28 1 0 0 0 0 1 1 0
135 1 1.05 0.95;
29 1 2.4 0.9 0 0 3 1 0
135 1 1.05 0.95;
30 1 10.6 1.9 0 0 3 1 0
135 1 1.05 0.95;
];
%% 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 23.54 0 150 -20 1 100 1 80
0 0 0 0 0 0 0 0 0 0
0 0;
2 60.97 0 60 -20 1 100 1 80
0 0 0 0 0 0 0 0 0 0
0 0;
22 21.59 0 62.5 -15 1 100 1 50
0 0 0 0 0 0 0 0 0 0
0 0;
27 26.91 0 48.7 -15 1 100 1 55
0 0 0 0 0 0 0 0 0 0
0 0;
23 19.2 0 40 -10 1 100 1 30
0 0 0 0 0 0 0 0 0 0
0 0;
13 37 0 44.7 -15 1 100 1 40
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.02 0.06 0.03 130 130 130 0
0 1 -360 360;
1 3 0.05 0.19 0.02 130 130 130 0
0 1 -360 360;
2 4 0.06 0.17 0.02 65 65 65 0
0 1 -360 360;
3 4 0.01 0.04 0 130 130 130 0
0 1 -360 360;
2 5 0.05 0.2 0.02 130 130 130 0
0 1 -360 360;
2 6 0.06 0.18 0.02 65 65 65 0
0 1 -360 360;
4 6 0.01 0.04 0 90 90 90 0
0 1 -360 360;
5 7 0.05 0.12 0.01 70 70 70 0
0 1 -360 360;
6 7 0.03 0.08 0.01 130 130 130 0
0 1 -360 360;
6 8 0.01 0.04 0 32 32 32 0
0 1 -360 360;
6 9 0 0.21 0 65 65 65 0
0 1 -360 360;
6 10 0 0.56 0 32 32 32 0
0 1 -360 360;
9 11 0 0.21 0 65 65 65 0
0 1 -360 360;
9 10 0 0.11 0 65 65 65 0
0 1 -360 360;
4 12 0 0.26 0 65 65 65 0
0 1 -360 360;
12 13 0 0.14 0 65 65 65 0
0 1 -360 360;
12 14 0.12 0.26 0 32 32 32 0
0 1 -360 360;
12 15 0.07 0.13 0 32 32 32 0
0 1 -360 360;
12 16 0.09 0.2 0 32 32 32 0
0 1 -360 360;
14 15 0.22 0.2 0 16 16 16 0
0 1 -360 360;
16 17 0.08 0.19 0 16 16 16 0
0 1 -360 360;
15 18 0.11 0.22 0 16 16 16 0
0 1 -360 360;
18 19 0.06 0.13 0 16 16 16 0
0 1 -360 360;
19 20 0.03 0.07 0 32 32 32 0
0 1 -360 360;
10 20 0.09 0.21 0 32 32 32 0
0 1 -360 360;
10 17 0.03 0.08 0 32 32 32 0
0 1 -360 360;
10 21 0.03 0.07 0 32 32 32 0
0 1 -360 360;
10 22 0.07 0.15 0 32 32 32 0
0 1 -360 360;
21 22 0.01 0.02 0 32 32 32 0
0 1 -360 360;
15 23 0.1 0.2 0 16 16 16 0
0 1 -360 360;
22 24 0.12 0.18 0 16 16 16 0
0 1 -360 360;
23 24 0.13 0.27 0 16 16 16 0
0 1 -360 360;
24 25 0.19 0.33 0 16 16 16 0
0 1 -360 360;
25 26 0.25 0.38 0 16 16 16 0
0 1 -360 360;
25 27 0.11 0.21 0 16 16 16 0
0 1 -360 360;
28 27 0 0.4 0 65 65 65 0
0 1 -360 360;
27 29 0.22 0.42 0 16 16 16 0
0 1 -360 360;
27 30 0.32 0.6 0 16 16 16 0
0 1 -360 360;
29 30 0.24 0.45 0 16 16 16 0
0 1 -360 360;
8 28 0.06 0.2 0.02 32 32 32 0
0 1 -360 360;
6 28 0.02 0.06 0.01 32 32 32 0
0 1 -360 360;
];
%%----- OPF Data -----%%
%% area data
% area refbus
mpc.areas = [
1 8;
2 23;
3 26;
];
%% generator cost data
% 1 startup shutdown n x1 y1 ... xn
yn
% 2 startup shutdown n c(n-1) ... c0
mpc.gencost = [
2 0 0 3 0.02 2 0;
2 0 0 3 0.0175 1.75 0;
2 0 0 3 0.0625 1 0;
2 0 0 3 0.00834 3.25 0;
2 0 0 3 0.025 3 0;
2 0 0 3 0.025 3 0;
];