Signed-off-by: dmy@lab <dmy@lab.lab>
This commit is contained in:
dmy@lab 2015-01-29 21:32:27 +08:00
commit 3938778d78
51 changed files with 37120 additions and 0 deletions

60
NCP函数法/Constant.m Normal file
View File

@ -0,0 +1,60 @@
function [const,Lz,Lw,L1,U1]=Constant(nodeNum,opfGoal,lineNum,transNum,transI,transJ,transG,transB,...
T,transKmin,transKmax,lineI,lineJ,balNode,mu,G,B,GIJ,BIJ,e,f,Pmin,Pmax,a,b,PG,QR,pvQmin,pvQmax,...
pgNum,pgvNum,xNum,capNum,capK,capKmin,capKmax,pgNode,pvNode,dhx,dgx,L1,U1,LZ,UW,l,u,y,r,capBi,Vmin,Vmax,hx)
%KKT
%201011
%% f(.)
if(opfGoal==2)
dPG=ones(pgNum,1);
dfx=sparse(transNum+1:transNum+pgNum,ones(pgNum,1),dPG,xNum,1);
else if(opfGoal==1)
dPG=2*a(pgNode).*PG(pgNode)+b(pgNode);
dfx=sparse(transNum+1:transNum+pgNum,ones(pgNum,1),dPG,xNum,1);
else if(opfGoal==3)
dfT=-1*transG.*((f(transI)-f(transJ)).^2+(e(transI)-e(transJ)).^2);
dfPQ=zeros(pgvNum,1);
dfcapK=zeros(capNum,1);
EE=e*ones(1,nodeNum);
FF=f*ones(1,nodeNum);
dfe=2*sum(G.*(EE-EE'));
dff=2*sum(G.*(FF-FF'));
dfx=[dfT;dfPQ;dfcapK;dfe';dff'];
else if(opfGoal==4)
dfT=1*transB.*((f(transI)-f(transJ)).^2+(e(transI)-e(transJ)).^2);
dfPQ=zeros(pgvNum,1);
dfcapK=zeros(capNum,1);
EE=e*ones(1,nodeNum);
FF=f*ones(1,nodeNum);
dfe=-2*sum(B.*(EE-EE'));
dff=-2*sum(B.*(FF-FF'));
dfx=[dfT;dfPQ;dfcapK;dfe';dff'];
end
end
end
end
%%
gxv=[PG(pgNode);QR(pvNode);capK;e.^2+f.^2]; %
gxvx=[Pmin(pgNode);pvQmin(pvNode);capKmin.*capBi;Vmin.*Vmin]; %
gxvs=[Pmax(pgNode);pvQmax(pvNode);capKmax.*capBi;Vmax.*Vmax]; %
gxl=(e(lineI).*e(lineI)+f(lineI).*f(lineI)-e(lineI).*e(lineJ)-f(lineI).*f(lineJ)).*GIJ+(e(lineI).*f(lineJ)-e(lineJ).*f(lineI)).*BIJ;%线
gxlx=-ones(lineNum,1)*1000; %线
gxls=ones(lineNum,1)*1000; %线
gxT=T;
gxTx=transKmin; %
gxTs=transKmax; %
gx=[gxT;gxv;gxl]; %
gxx=[gxTx;gxvx;gxlx];
gsx=[gxTs;gxvs;gxls];
Lz=gx-l-gxx;
Lw=gx+u-gsx;
%%
muUL=mu*(U1-L1);
BB1=UW*Lw-LZ*Lz-muUL*ones(r,1);
BB=dhx*y-dfx+dgx*BB1; %ψ(.,μ)
balN=transNum+pgvNum+capNum+nodeNum+balNode;
balN1=transNum+pgvNum+capNum+balNode;
BB(balN,1)=0; %00
BB(balN1,1)=0; %
const=[BB;hx]; %

425
NCP函数法/IEEE118.dat Normal file
View File

@ -0,0 +1,425 @@
118 179 100 100 0.1
1.e-5 2
1 69
0
1 1 2 0.0303 0.0999 0.0127
2 1 3 0.0129 0.0424 0.00541
3 4 5 0.00176 0.00798 0.00105
4 3 5 0.0241 0.1080 0.0142
5 5 6 0.0119 0.0540 0.00713
6 6 7 0.00459 0.0208 0.00275
7 8 9 0.00244 0.0305 0.5810
9 9 10 0.00258 0.0322 0.6150
10 4 11 0.0209 0.0688 0.00874
11 5 11 0.0203 0.0682 0.00869
12 11 12 0.00595 0.0196 0.00251
13 2 12 0.0187 0.0616 0.00786
14 3 12 0.0484 0.1600 0.0203
15 7 12 0.00862 0.0340 0.00437
16 11 13 0.02225 0.0731 0.00938
17 12 14 0.0215 0.0707 0.00908
18 13 15 0.0744 0.2444 0.03134
19 14 15 0.0595 0.1950 0.0251
20 12 16 0.0212 0.0834 0.0107
21 15 17 0.0132 0.0437 0.0222
22 16 17 0.0454 0.1801 0.0233
23 17 18 0.0123 0.0505 0.00649
24 18 19 0.01119 0.0493 0.00571
25 19 20 0.0252 0.1170 0.0149
26 15 19 0.0120 0.0394 0.00505
27 20 21 0.0183 0.0849 0.0108
28 21 22 0.0209 0.0970 0.0123
29 22 23 0.0342 0.1590 0.0202
30 23 24 0.0135 0.0492 0.0249
31 23 25 0.0156 0.0800 0.0432
33 25 27 0.0318 0.1630 0.0882
34 27 28 0.01913 0.0855 0.0108
35 28 29 0.0237 0.0943 0.0119
37 8 30 0.00431 0.0504 0.2570
38 26 30 0.00799 0.0860 0.4540
39 17 31 0.0474 0.1563 0.01995
40 29 31 0.0108 0.0331 0.00415
41 23 32 0.0317 0.1153 0.05865
42 31 32 0.0298 0.0985 0.01255
43 27 32 0.0229 0.0755 0.00963
44 15 33 0.0380 0.1244 0.01597
45 19 34 0.0752 0.2470 0.0316
46 35 36 0.00224 0.0102 0.00124
47 35 37 0.0110 0.0497 0.00659
48 33 37 0.0415 0.1420 0.0183
49 34 36 0.00871 0.0268 0.00284
50 34 37 0.00256 0.0094 0.00429
52 37 39 0.0321 0.1060 0.0135
53 37 40 0.0593 0.1680 0.0210
54 30 38 0.00464 0.0540 0.2110
55 39 40 0.0184 0.0605 0.00776
56 40 41 0.0145 0.0487 0.00611
57 40 42 0.0555 0.1830 0.0233
58 41 42 0.0410 0.1350 0.0172
59 43 44 0.0608 0.2454 0.03034
60 34 43 0.0413 0.1681 0.02113
61 44 45 0.0224 0.0901 0.0112
62 45 46 0.0400 0.1356 0.0166
63 46 47 0.0380 0.1270 0.0158
64 46 48 0.0601 0.1890 0.0236
65 47 49 0.0191 0.0625 0.00802
66 42 49 0.03575 0.1615 0.0860
67 45 49 0.0684 0.1860 0.0222
68 48 49 0.0179 0.0505 0.00629
69 49 50 0.0267 0.0752 0.00937
70 49 51 0.0486 0.1370 0.0171
71 51 52 0.0203 0.0588 0.00698
72 52 53 0.0405 0.1635 0.02029
73 53 54 0.0263 0.1220 0.0155
74 49 54 0.03976 0.1450 0.0734
75 54 55 0.0169 0.0707 0.0101
76 54 56 0.00275 0.00955 0.00366
77 55 56 0.00488 0.0151 0.00187
78 56 57 0.0343 0.0966 0.0121
79 50 57 0.0474 0.1340 0.0166
80 56 58 0.0343 0.0966 0.0121
81 51 58 0.0255 0.0719 0.00894
82 54 59 0.0503 0.2293 0.0299
83 56 59 0.04069 0.12243 0.05525
84 55 59 0.04739 0.2158 0.02823
85 59 60 0.0317 0.1450 0.0188
86 59 61 0.0328 0.1500 0.0194
87 60 61 0.00264 0.0135 0.00728
88 60 62 0.0123 0.0561 0.00734
89 61 62 0.00824 0.0376 0.0049
91 63 64 0.00172 0.0200 0.1080
93 38 65 0.00901 0.0986 0.5230
94 64 65 0.00269 0.0302 0.1900
95 49 66 0.0090 0.04595 0.0248
96 62 66 0.0482 0.2180 0.0289
97 62 67 0.0258 0.1170 0.0155
99 66 67 0.0224 0.1015 0.01341
100 65 68 0.00138 0.0160 0.3190
101 47 69 0.0844 0.2778 0.03546
102 49 69 0.0985 0.3240 0.0414
104 69 70 0.0300 0.1270 0.0610
105 24 70 0.10221 0.4115 0.05099
106 70 71 0.00882 0.0355 0.00439
107 24 72 0.0488 0.1960 0.0244
108 71 72 0.0446 0.1800 0.02222
109 71 73 0.00866 0.0454 0.00589
110 70 74 0.0401 0.1323 0.01684
111 70 75 0.0428 0.1410 0.0180
112 69 75 0.0405 0.1220 0.0620
113 74 75 0.0123 0.0406 0.00517
114 76 77 0.0444 0.1480 0.0184
115 69 77 0.0309 0.1010 0.0519
116 75 77 0.0601 0.1999 0.02489
117 77 78 0.00376 0.0124 0.00632
118 78 79 0.00546 0.0244 0.00324
119 77 80 0.01077 0.03318 0.0350
120 79 80 0.0156 0.0704 0.00945
121 68 81 0.00175 0.0202 0.4040
123 77 82 0.0298 0.0853 0.04087
124 82 83 0.0112 0.03665 0.01898
125 83 84 0.0625 0.1320 0.0129
126 83 85 0.0430 0.1480 0.0174
127 84 85 0.0302 0.0641 0.00617
128 85 86 0.0350 0.1230 0.0138
129 86 87 0.02828 0.2074 0.02225
130 85 88 0.0200 0.1020 0.0138
131 85 89 0.0239 0.1730 0.0235
132 88 89 0.0139 0.0712 0.00969
133 89 90 0.01631 0.06515 0.0794
134 90 91 0.0254 0.0836 0.0107
135 89 92 0.00791 0.03827 0.0481
136 91 92 0.0387 0.1272 0.01634
137 92 93 0.0258 0.0848 0.0109
138 92 94 0.0481 0.1580 0.0203
139 93 94 0.0223 0.0732 0.00938
140 94 95 0.0132 0.0434 0.00555
141 80 96 0.0356 0.1820 0.0247
142 82 96 0.0162 0.0530 0.0272
143 94 96 0.0269 0.0869 0.0115
144 80 97 0.0183 0.0934 0.0127
145 80 98 0.0238 0.1080 0.0143
146 80 99 0.0454 0.2060 0.0273
148 94 100 0.0178 0.0580 0.0302
149 95 96 0.0171 0.0547 0.00737
150 96 97 0.0173 0.0885 0.0120
151 98 100 0.0397 0.1790 0.0238
152 99 100 0.0180 0.0813 0.0108
153 100 101 0.0277 0.1262 0.0164
154 92 102 0.0123 0.0559 0.00732
155 101 102 0.0246 0.1120 0.0147
156 100 103 0.0160 0.0525 0.0268
157 100 104 0.0451 0.2040 0.02705
158 103 104 0.0466 0.1584 0.02035
159 103 105 0.0535 0.1625 0.0204
160 100 106 0.0605 0.2290 0.0310
161 104 105 0.00994 0.0378 0.00493
162 105 106 0.0140 0.0547 0.00717
163 105 107 0.0530 0.1830 0.0236
164 105 108 0.0261 0.0703 0.09222
166 108 109 0.0105 0.0288 0.0038
167 103 110 0.03906 0.1813 0.02305
168 109 110 0.0278 0.0762 0.0101
169 110 111 0.0220 0.0755 0.0100
170 110 112 0.0247 0.0640 0.0310
171 17 113 0.00913 0.0301 0.00384
172 32 113 0.0615 0.2030 0.0259
173 32 114 0.0135 0.0612 0.00814
174 27 115 0.0164 0.0741 0.00986
175 114 115 0.0023 0.0104 0.00138
176 68 116 0.00034 0.00405 0.0820
177 12 117 0.0329 0.1400 0.0179
178 75 118 0.01450 0.04810 0.00599
179 76 118 0.0164 0.0544 0.00678
0
5 -0.4
37 -0.25
45 .1
46 .1
79 .2
83 .1
110 .06
0
1 8 5 0.0 0.0267 0.9850 0.9 1.1 1
2 25 26 0.0 0.0382 0.9600 0.9 1.1 1
3 17 30 0.0 0.0388 0.9600 0.9 1.1 1
4 37 38 0.0 0.0375 0.9350 0.9 1.1 1
5 59 63 0.0 0.0386 0.9600 0.9 1.1 1
6 61 64 0.0 0.0268 0.9850 0.9 1.1 1
7 65 66 0.0 0.0370 0.9350 0.9 1.1 1
8 68 69 0.0 0.0370 0.9350 0.9 1.1 1
9 80 81 0.0 0.0370 0.9350 0.9 1.1 1
10 92 100 0.0648 0.2950 1. 0.9 1.1 0
11 106 107 0.0530 0.1830 1. 0.9 1.1 0
0
1 0. 0. 51. 27.
2 0. 0. 20. 9.
3 0. 0. 39. 10.
4 -9. 0. 30. 12.
5 0. 0. 0. 0.
6 0. 0. 52. 22.
7 0. 0. 19. 2.
8 -28. 0. 0. 0.
9 0. 0. 0. 0.
10 450. 0. 0. 0.
11 0. 0. 70. 23.
12 85. 0. 47. 10.
13 0. 0. 34. 16.
14 0. 0. 14. 1.
15 0. 0. 90. 30.
16 0. 0. 25. 10.
17 0. 0. 11. 3.
18 0. 0. 60. 34.
19 0. 0. 45. 25.
20 0. 0. 18. 3.
21 0. 0. 14. 8.
22 0. 0. 10. 5.
23 0. 0. 7. 3.
24 -13. 0. 0. 0.
25 220. 0. 0. 0.
26 314. 0. 0. 0.
27 -9. 0. 62. 13.
28 0. 0. 17. 7.
29 0. 0. 24. 4.
30 0. 0. 0. 0.
31 7. 0. 43. 27.
32 0. 0. 59. 23.
33 0. 0. 23. 9.
34 0. 0. 59. 26.
35 0. 0. 33. 9.
36 0. 0. 31. 17.
37 0. 0. 0. 0.
38 0. 0. 0. 0.
39 0. 0. 27. 11.
40 -46. 0. 20. 23.
41 0. 0. 37. 10.
42 -59. 0. 37. 23.
43 0. 0. 18. 7.
44 0. 0. 16. 8.
45 0. 0. 53. 22.
46 19. 0. 28. 10.
47 0. 0. 34. 0.
48 0. 0. 20. 11.
49 204. 0. 87. 30.
50 0. 0. 17. 4.
51 0. 0. 17. 8.
52 0. 0. 18. 5.
53 0. 0. 23. 11.
54 48. 0. 113. 32.
55 0. 0. 63. 22.
56 0. 0. 84. 18.
57 0. 0. 12. 3.
58 0. 0. 12. 3.
59 155. 0. 277. 113.
60 0. 0. 78. 3.
61 160. 0. 0. 0.
62 0. 0. 77. 14.
63 0. 0. 0. 0.
64 0. 0. 0. 0.
65 391. 0. 0. 0.
66 392. 0. 39. 18.
67 0. 0. 28. 7.
68 0. 0. 0. 0.
69 516.4 0. 0. 0.
70 0. 0. 66. 20.
71 0. 0. 0. 0.
72 -12. 0. 0. 0.
73 -6. 0. 0. 0.
74 0. 0. 68. 27.
75 0. 0. 47. 11.
76 0. 0. 68. 36.
77 0. 0. 61. 28.
78 0. 0. 71. 26.
79 0. 0. 39. 32.
80 477. 0. 130. 26.
81 0. 0. 0. 0.
82 0. 0. 54. 27.
83 0. 0. 20. 10.
84 0. 0. 11. 7.
85 0. 0. 24. 15.
86 0. 0. 21. 10.
87 4. 0. 0. 0.
88 0. 0. 48. 10.
89 607. 0. 0. 0.
90 -85. 0. 78. 42.
91 -10. 0. 0. 0.
92 0. 0. 65. 10.
93 0. 0. 12. 7.
94 0. 0. 30. 16.
95 0. 0. 42. 31.
96 0. 0. 38. 15.
97 0. 0. 15. 9.
98 0. 0. 34. 8.
99 -42. 0. 0. 0.
100 252. 0. 37. 18.
101 0. 0. 22. 15.
102 0. 0. 5. 3.
103 40. 0. 23. 16.
104 0. 0. 38. 25.
105 0. 0. 31. 26.
106 0. 0. 43. 16.
107 -22. 0. 28. 12.
108 0. 0. 2. 1.
109 0. 0. 8. 3.
110 0. 0. 39. 30.
111 36. 0. 0. 0.
112 -43. 0. 25. 13.
113 -6. 0. 0. 0.
114 0. 0. 8. 3.
115 0. 0. 22. 7.
116 -184. 0. 0. 0.
117 0. 0. 20. 8.
118 0. 0. 33. 15.
0
1 .955 -5. 15.
4 .998 -300. 300.
6 .99 -13. 50.
8 1.015 -300. 300.
10 1.05 -147. 200.
12 .99 -35. 120.
15 .97 -10. 30.
18 .973 -16. 50.
19 .963 -8. 24.
24 .992 -300. 300.
25 1.05 -47. 140.
26 1.015 -1000. 1000.
27 .968 -300. 300.
31 .967 -300. 300.
32 .964 -14. 42.
34 .984 -8. 24.
36 .98 -8. 24.
40 .97 -300. 300.
42 .985 -300. 300.
46 1.005 -100. 100.
49 1.025 -85. 210.
54 .955 -300. 300.
55 .952 -8. 23.
56 .954 -8. 15.
59 .985 -60. 180.
61 .995 -100. 300.
62 .998 -20. 20.
65 1.005 -67. 200.
66 1.05 -67. 200.
69 1.01 -300. 300.
70 .984 -10. 32.
72 .98 -100. 100.
73 .991 -100. 100.
74 .958 -6. 9.
76 .943 -8. 23.
77 1.006 -20. 70.
80 1.04 -165. 280.
85 .985 -8. 23.
87 1.015 -100. 1000.
89 1.005 -210. 300.
90 .985 -300. 300.
91 .98 -100. 100.
92 .993 -3. 9.
99 1.01 -100. 100.
100 1.017 -50. 155.
103 1.001 -15. 40.
104 .971 -8. 23.
105 .965 -8. 23.
107 .952 -200. 200.
110 .973 -8. 23.
111 .98 -100. 1000.
112 .975 -100. 1000.
113 .993 -100. 200.
116 1.005 -1000. 1000.
0
10 0. 1.25 1. 100. 600. 1
12 0. 2.6 1.2 60. 200. 1
25 0. 1.5 1. 50. 300. 1
26 0. 1.5 1. 100. 400. 1
49 0. 2.1 1. 100. 400. 1
54 0. 2.0 1.4 20. 300. 1
59 0. 1.6 1. 50. 350. 1
61 0. 1.5 1. 50. 400. 1
65 0. 1.5 1. 100. 500. 1
66 0. 1.5 1. 100. 500. 1
69 0. 1.0 1. 100. 800. 1
80 0. 1.23 1. 100. 600. 1
89 0. 1.2 1. 100. 800. 1
100 0. 1.6 1. 100. 400. 1
103 0. 2.5 1.2 20. 200. 1
111 0. 2.4 1.1 10. 200. 1
0
1 17 0 0.1 0 0 10
2 34 0 0.1 0.14 0 10
3 44 0 0.1 0.1 0 10
4 107 0 0.1 0.06 0 10
5 82 0 0.1 0.2 0 10
6 48 0 0.1 0.15 0 10
7 74 0 0.1 0.12 0 10
8 105 0 0.1 0.2 0 10
0
0
0
1 100 92 -25. 25.
2 106 107 -18. 18.
0
0
1 17 0 0.05 0 0 6
2 34 0 0.05 0.14 0 6
3 44 0 0.05 0.1 0 6
4 107 0 0.05 0.06 0 6
5 82 0 0.05 0.2 0 6
6 48 0 0.05 0.15 0 6
7 74 0 0.05 0.12 0 6
8 105 0 0.05 0.2 0 6
0
1 17 0 0.1 0 0 6
2 34 0 0.1 0.14 0 6
3 44 0 0.1 0.1 0 6
4 107 0 0.1 0.06 0 6
5 82 0 0.1 0.2 0 6
6 48 0 0.1 0.15 0 6
7 74 0 0.1 0.12 0 6
8 105 0 0.1 0.2 0 6
0
1 17 0 0.2 0 0 6
2 34 0 0.2 0.14 0 6
3 44 0 0.2 0.1 0 6
4 107 0 0.2 0.06 0 6
5 82 0 0.2 0.2 0 6
6 48 0 0.2 0.15 0 6
7 74 0 0.2 0.12 0 6
8 105 0 0.2 0.2 0 6

98
NCP函数法/IEEE30.dat Normal file
View File

@ -0,0 +1,98 @@
30 41 100.0 100 0.1
1.e-5 2
1 1
0
1 1 2 0.0192 0.0575 0.0264
2 1 3 0.0452 0.1652 0.0204
3 2 4 0.0570 0.1737 0.0184
4 3 4 0.0132 0.0379 0.0042
5 2 5 0.0472 0.1983 0.0209
6 2 6 0.0581 0.1763 0.0187
7 4 6 0.0119 0.0414 0.0045
8 5 7 0.0460 0.1160 0.0102
9 6 7 0.0267 0.0820 0.0085
10 6 8 0.0120 0.0420 0.0045
13 9 11 0.0 0.2080 0.0
15 12 13 0.0 0.1400 0.0
16 12 14 0.1231 0.2559 0.0
17 12 15 0.0662 0.1304 0.0
18 12 16 0.0945 0.1987 0.0
19 14 15 0.2210 0.1997 0.0
20 16 17 0.0524 0.1923 0.0
21 15 18 0.1073 0.2185 0.0
22 18 19 0.0639 0.1292 0.0
23 19 20 0.0340 0.0680 0.0
24 10 20 0.0936 0.2090 0.0
25 10 17 0.0324 0.0845 0.0
26 10 21 0.0348 0.0749 0.0
27 10 22 0.0727 0.1499 0.0
28 21 22 0.0116 0.0236 0.0
29 15 23 0.1000 0.2020 0.0
30 22 24 0.1150 0.1790 0.0
31 23 24 0.1320 0.2700 0.0
32 24 25 0.1885 0.3292 0.0
33 25 26 0.2544 0.3800 0.0
34 25 27 0.1093 0.2087 0.0
36 27 29 0.2198 0.4153 0.0
37 27 30 0.3202 0.6027 0.0
38 29 30 0.2399 0.4533 0.0
39 8 28 0.0636 0.2000 0.0214
40 6 28 0.0169 0.0599 0.0065
41 9 10 0.0 0.1100 0.0
0
0
1 6 9 0.0 0.2080 0.978 0.9 1.1 1
2 6 10 0.0 0.5560 0.969 0.9 1.1 1
3 4 12 0.0 0.2560 0.932 0.9 1.1 1
4 28 27 0.0 0.3960 0.968 0.9 1.1 1
0
1 138.77 -6.49 0. 0.
2 20 41.71 21.7 12.7
3 0. 0. 2.4 1.2
4 0. 0. 7.6 1.6
5 15 16.66 94.2 19.
6 0. 0. 0. 0.
7 0. 0. 22.8 10.9
8 60 29.31 30. 30.
9 0. 0. 0. 0.
10 0. 0. 5.8 2.
11 80 6.71 0. 0.
12 0. 0. 11.2 7.5
13 90 3.37 0. 0.
14 0. 0. 6.2 1.6
15 0. 0. 8.2 2.5
16 0. 0. 3.5 1.8
17 0. 0. 9. 5.8
18 0. 0. 3.2 .9
19 0. 0. 9.5 3.4
20 0. 0. 2.2 .7
21 0. 0. 17.5 11.2
22 0. 0. 0. 0.
23 0. 0. 3.2 1.6
24 0. 0. 8.7 6.7
25 0. 0. 0. 0.
26 0. 0. 3.5 2.3
27 0. 0. 0. 0.
28 0. 0. 0. 0.
29 0. 0. 2.4 .9
30 0. 0. 10.6 1.9
0
1 1.060 -50 50.
2 1.043 -40. 60.
5 1.010 -40. 40.
8 1.010 -10. 40.
11 1.082 -6. 24.
13 1.071 -6. 24.
0
1 10. 2.0 2.0 10. 200. 1
2 10. 1.5 2.4 10. 60. 1
5 20. 1.8 0.8 10. 51. 1
8 10. 1.0 1.2 10. 35. 1
11 20. 1.8 0.8 10. 51. 1
13 10. 1.5 2.0 10. 50. 1
0
1 10 0 0.1 0.19 0 6
2 24 0 0.1 0.043 0 6
0
0

1153
NCP函数法/IEEE300.dat Normal file

File diff suppressed because it is too large Load Diff

127
NCP函数法/OPF.m Normal file
View File

@ -0,0 +1,127 @@
%*******************************************************
%
%
% NCP
% 1234
%
% 201011
%*******************************************************
function []=OPF(filename)
clc;
%%
data=dlmread(filename);
if data(1,1)<1780
%1780
[nodeNum,lineNum,capacity,kmax,centrPara,accuracy,opfGoal,balNum,balNode,mtrLine,mtrGround,mtrTrans,runPara,Pg,Qg,Pd,Qd,pvNum,pvNode,pvV,...
pvQmin,pvQmax,pgNumall,pgNodeall,pgNum,pgNode,a,b,c,Pmin,Pmax,capNum,capI,capGi,capBi,capK,capKmin,capKmax,Vmin,Vmax]=readData(data);
tic;
%
[G,B,transY,transG,transB,transG1,transB1,transNum,lineNum,lineI,lineJ,lineB,transI,transJ,transK0,transKmin,transKmax]=formY(nodeNum,...
mtrLine,mtrGround,mtrTrans,capI,capK);
else
%IEEE
[nodeNum,lineNum,capacity,kmax,accuracy,balNum,balNode,mtrLine,mtrGround,mtrTrans,runPara,Pg,Qg,Pd,Qd,pvNum,pvNode,pvV,pvQmin,pvQmax,...
mtrCapacitor,pgNum,pgNode,a,b,c,Pmin,Pmax,Vmin,Vmax,centrPara]=readData_RPP(data) ;
tic;
%
[G,B,lineI,lineJ,lineB,transI,transJ,transK0,transNum,transKmin,transKmax,capI,capGi,capBi,capK,capKmin,capKmax,capNum,transG,transB,...
transG1,transB1,lineNum]=formY_RPP(nodeNum,lineNum,mtrLine,mtrGround,mtrTrans,mtrCapacitor) ;
end
%%
[e,f,PG,QR,Pg,Qg,T,pgvNum,xNum,m,r,l,u,z,w,x,y,mu,dmaxOut1,dmaxOut2,xz1,xz2,dmaxOut3,dmaxOut4,xz3,xz4,xz5,colmut1,hx,k2,opfGoal,times,...
secondBegin,Tn,Tn1,capKn,capKn1,kt0,q0,mut,mub,oneTrans,oneCap,para1,para2,para3,mismatch,ifconverge]=seting(nodeNum,lineNum,transNum,transK0,...
capNum,capK,pvQmin,pvQmax,pvNum,pvNode,pvV,pgNum,pgNode,Pmin,Pmax,Pg,Qg,centrPara);
disp ([' '])
%%
for k=0:kmax
[mut,mub,dNCPT,dNCPT_dt,d2NCPT_dt2,dT_Zt,transGmut,transBmut,dNCPcap,dNCP_dcap,d2NCP_dcap2,capBi_dBci,H1,N1,diagE,diagF,hx,Gap,max_hx,fx,...
Pg,Qg,xz1,dmaxOut1,xz2,dmaxOut2,xz3,dmaxOut3,xz4,dmaxOut4,PGR,Tn,kt0,capKn,q0,Tn1,capKn1,T,G]=midResult(nodeNum,pgNode,opfGoal,z,l,u,w,Pg,...
Qg,e,f,G,B,a,b,c,PG,Pd,Qd,k,xz1,dmaxOut1,xz2,dmaxOut2,xz3,dmaxOut3,xz4,dmaxOut4,times,mut,mub,oneTrans,oneCap,para3,accuracy,T,capK,transKmin,...
transKmax,capKmin,capBi,mu,transNum,transG,transB,Tn,Tn1,capKn,capKn1,kt0,q0,mismatch);
if Gap<accuracy&&max_hx<mismatch %
if times==1
times=2;
end
if times==2
if secondBegin==1
[secondBegin,m,r,l,u,z,w,y,Gama,Arlfa,meritF,firstT,firstcapK,firstfx,Gap,mu,Vfirst,Pgfirst,Qgfirst]=snd_setting(secondBegin,...
transNum,T,m,r,capNum,capK,para1,para2,fx,centrPara,e,f,Pg,Qg);
end
dicVar=[(T-Tn);(capK-capKn)]>accuracy; %
dicVar1=[(Tn1-T);(capKn1-capK)]>accuracy; %
ymut=dicVar.*dicVar1;
if (sum(ymut)==0) %
ifconverge=1;
break
end
end
end
mu=(centrPara*Gap)/(2*r); %
if times==1 %
%
[HSB,dhx,dgx,dgxT,N1,H1,diagE,diagF,GIJ,BIJ,L1,U1,LZ,UW]=formHSB(nodeNum,balNode,balNum,opfGoal,lineNum,transNum,lineI,lineJ,transI,...
transJ,T,transG,transB,pgNode,pvNode,G,B,e,f,pgNum,pvNum,pgvNum,xNum,capNum,capI,a,m,r,l,u,z,w,y,H1,N1,diagE,diagF);
%KKT
[const,Lz,Lw,L1,U1]=Constant(nodeNum,opfGoal,lineNum,transNum,transI,transJ,transG,transB,T,transKmin,transKmax,lineI,lineJ,balNode,...
mu,G,B,GIJ,BIJ,e,f,Pmin,Pmax,a,b,PG,QR,pvQmin,pvQmax,pgNum,pgvNum,xNum,capNum,capK,capKmin,capKmax,pgNode,pvNode,dhx,dgx,L1,U1,LZ,...
UW,l,u,y,r,capBi,Vmin,Vmax,hx);
%
[z,l,u,w,x,y,PG,QR,Pg,Qg,e,f,T,capK,G,B]=solve(HSB,const,mu,r,nodeNum,balNode,pgNum,pvNum,xNum,transNum,capNum,capI,capBi,capK,pgNode,...
pvNode,m,x,y,z,l,u,w,Lz,Lw,LZ,UW,dgxT,L1,U1,G,B,transI,transJ,T,transG,transB,transG1,transB1,PG,QR,Pg,Qg);
else %
k2=k2+1;
xz5=[xz5,k2]; %
colmut1=[colmut1,mut(1)];
%
[HSB,dhx,dgx,dgxT,N1,H1,diagE,diagF,GIJ,BIJ,L1,U1,LZ,UW,transG,transB,mut,mub]=snd_formHSB(nodeNum,balNode,balNum,opfGoal,lineNum,...
transNum,lineI,lineJ,transI,transJ,T,transG,transB,pgNode,pvNode,G,B,e,f,pgNum,pvNum,pgvNum,xNum,a,m,r,l,u,z,w,y,capNum,capI,...
mut,mub,dNCPT_dt,d2NCPT_dt2,dT_Zt,transGmut,transBmut,dNCP_dcap,d2NCP_dcap2,H1,N1,diagE,diagF);
%KKT
[const,Lz,Lw,L1,U1,hx,origConst,gxx,gsx]=snd_Constant(nodeNum,opfGoal,lineNum,transNum,transI,transJ,transG,transB,lineI,lineJ,...
balNode,mu,G,B,GIJ,BIJ,e,f,Pmin,Pmax,a,b,PG,QR,pvQmin,pvQmax,pgNum,pgvNum,xNum,pgNode,pvNode,dhx,dgx,L1,U1,LZ,UW,l,u,y,r,...
dT_Zt,capNum,z,w,Vmin,Vmax,hx);
%
[z,l,u,w,x,y,PG,QR,Pg,Qg,e,f,T,G,B,capK,meritF]=snd_solve(HSB,const,mu,r,nodeNum,balNode,pgNum,pvNum,pgvNum,xNum,transNum,pgNode,...
pvNode,m,Lz,Lw,LZ,UW,dgxT,L1,U1,transI,transJ,transG,transB,transG1,transB1,Tn,capKn,capNum,capI,Tn1,capKn1,x,y,z,l,u,w,...
G,B,PG,QR,Pg,Qg,opfGoal,Gama,Arlfa,meritF,k2,T,capK,lineNum,lineI,lineJ,Pd,Qd,gxx,gsx,mut,mub);
end
end
if k>=kmax
disp ''
disp(k)
else
disp ''
disp(['',num2str(k),''])
end
toc;
%%
OutResult(G,B,balNode,e,f,T,k,Gap,fx,transI,transJ,filename,nodeNum,PGR,pgNode,QR,pvNode,capI,capK,firstT,firstcapK,Tn,Tn1,capKn,capKn1,...
firstfx,toc,max_hx,ifconverge,Vfirst,Pgfirst,Qgfirst);
%% 线
% xz=0:1:k;
% plot(xz1,dmaxOut1,'-ks','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
% hold on;
% plot(xz2,dmaxOut2,'-ks','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
% hold on;
% xlabel('')
% ylabel('')
% plot(xz3,dmaxOut3,'-ks','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
% hold on;
% plot(xz4,dmaxOut4,'-ks','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
% xlabel('')
% ylabel('')
%% mut
% plot(xz5,colmut1,'-ks','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
% xlabel('')
% ylabel('μ')
% hold on;
%% 线
% plot(xz5,dmaxOut2,'-ks','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
% hold on;
% xlabel('')
% ylabel('')

39
NCP函数法/OutResult.m Normal file
View File

@ -0,0 +1,39 @@
function [e]=OutResult(G,B,balNode,e,f,T,k,Gap,fx,transI,transJ,filename,nodeNum,...
PGR,pgNode,QR,pvNode,capI,capK,firstT,firstcapK,Tn,Tn1,capKn,capKn1,firstfx,toc,max_hx,ifconverge,Vfirst,Pgfirst,Qgfirst)
%
%201011
mytime=toc;
Y1=G+1j*B;
V1=e+1j*f;
NodeS=zeros(nodeNum,1);
NodeS(pvNode)=V1(pvNode,:).*conj(Y1(pvNode,:)*V1); %PVY1(pvNode,:)*V1
balanceP=real(NodeS(balNode,1)); %
PGR(balNode,1)=balanceP;
balanceQ=imag(NodeS(balNode,1));
QR(balNode,1)=balanceQ;
V=sqrt(e.^2+f.^2);
resultFile=['result_' filename];
fid=fopen(resultFile,'w');
result=[k;Gap;fx;firstfx;mytime;max_hx;ifconverge]; %
fprintf(fid,'%2.0f %4.4e %6.6f %6.6f %4.4f %4.4e %2.0f\r\n',result);
fprintf(fid,'%1.0f\r\n',0);
trans=[transI';transJ';(1./T)';(1./firstT)';(1./Tn)';(1./Tn1)']; %
fprintf(fid,'%2.0f %2.0f %5.4f %5.4f %5.4f %5.4f\r\n',full(trans));
fprintf(fid,'%1.0f\r\n',0);
nn=1:nodeNum;
Vresult=[nn;e';f';V';Vfirst']; %
fprintf(fid,'%3.0f %5.4f %5.4f %5.4f %5.4f\r\n',full(Vresult));
fprintf(fid,'%1.0f\r\n',0);
PGresult=[pgNode';PGR(pgNode)';Pgfirst(pgNode)']; %
PGresult=full(PGresult);
fprintf(fid,'%2.0f %4.4f %4.4f\r\n',PGresult);
fprintf(fid,'%1.0f\r\n',0);
QRresult=[pvNode';QR(pvNode)';Qgfirst(pvNode)']; %
QRresult=full(QRresult);
fprintf(fid,'%2.0f %4.4f %4.4f\r\n',QRresult);
fprintf(fid,'%1.0f\r\n',0);
Capresult=[capI';capK';firstcapK';capKn';capKn1']; %
fprintf(fid,'%2.0f %3.2f %5.4f %3.2f %3.2f\r\n',full(Capresult));
fprintf(fid,'%1.0f\r\n',0);
fclose(fid);

3548
NCP函数法/S1047.dat Normal file

File diff suppressed because it is too large Load Diff

7280
NCP函数法/XB1780.dat Normal file

File diff suppressed because it is too large Load Diff

200
NCP函数法/formHSB.m Normal file
View File

@ -0,0 +1,200 @@
function [HSB,dhx,dgx,dgxT,N1,H1,diagE,diagF,GIJ,BIJ,L1,U1,LZ,UW]=formHSB(nodeNum,balNode,balNum,opfGoal,lineNum,transNum,lineI,lineJ,...
transI,transJ,T,transG,transB,pgNode,pvNode,G,B,e,f,pgNum,pvNum,pgvNum,xNum,capNum,capI,a,m,r,l,u,z,w,y,H1,N1,diagE,diagF)
%
%201011
%%
ef1=e(transI).*e(transJ)+f(transI).*f(transJ);
ef2=e(transI).*f(transJ)-e(transJ).*f(transI);
ef3=e(transI).*e(transI)+f(transI).*f(transI);
ef1G=ef1.*transG;
ef1B=ef1.*transB;
ef2G=ef2.*transG;
ef2B=ef2.*transB;
dhPTi=-ef1G+ef2B+2*ef3.*transG.*T;
dhPTj=-ef1G-ef2B;
dhPT=sparse(1:transNum,transI,dhPTi,transNum,nodeNum)+sparse(1:transNum,transJ,dhPTj,transNum,nodeNum);%P
dhQTi=ef1B+ef2G-2*ef3.*transB.*T;
dhQTj=ef1B-ef2G;
dhQT=sparse(1:transNum,transI,dhQTi,transNum,nodeNum)+sparse(1:transNum,transJ,dhQTj,transNum,nodeNum);%Q
dhP=sparse(1:pgNum,pgNode,ones(pgNum,1),pgNum,m);
dhQ1=sparse(1:pvNum,pvNode,ones(pvNum,1),pvNum,nodeNum);
dhQ=[sparse(pvNum,nodeNum) dhQ1];
dhcapK1=sparse(1:capNum,capI,(e(capI).^2+f(capI).^2),capNum,nodeNum); %
dhcapK=[sparse(capNum,nodeNum) dhcapK1];
%
deG=diagE*G;
dfB=diagF*B;
deB=diagE*B;
dfG=diagF*G;
dH1=sparse(1:nodeNum,1:nodeNum,H1,nodeNum,nodeNum);
dN1=sparse(1:nodeNum,1:nodeNum,N1,nodeNum,nodeNum);
Hij=-dH1-deG-dfB;
Nij=-dN1+deB-dfG;
Jij=dN1-dfG+deB;
Lij=-dH1+dfB+deG;
%
dhJacb=[Hij Nij;Jij Lij]';
%h(x)
dhx=[dhPT dhQT;dhP;dhQ;dhcapK;dhJacb];
%% g(x)
dgT1=sparse(1:transNum,1:transNum,ones(transNum,1),transNum,r-lineNum);
dglT=(e(transI).^2+f(transI).^2-e(transI).*e(transJ)-f(transI).*f(transJ)).*transG+(e(transI).*f(transJ)-e(transJ).*f(transI)).*transB;
dgT2=sparse(1:transNum,lineNum-transNum+1:lineNum,dglT,transNum,lineNum);
dgT=[dgT1 dgT2]; %
dgP=sparse(1:pgNum,transNum+1:transNum+pgNum,ones(pgNum,1),pgNum,r); %PG
dgQ=sparse(1:pvNum,transNum+pgNum+1:transNum+pgvNum,ones(pvNum,1),pvNum,r); %QR
dgcapK=sparse(1:capNum,transNum+pgvNum+1:transNum+pgvNum+capNum,ones(capNum,1),capNum,r);%capK
dgve=2*diagE;
dgvf=2*diagF;
sizeG=size(G);
GIJ=G(sub2ind(sizeG,lineI,lineJ));
BIJ=B(sub2ind(sizeG,lineI,lineJ));
dgleI=(2*e(lineI)-e(lineJ)).*GIJ+f(lineJ).*BIJ;
dgleJ=-e(lineI).*GIJ-f(lineI).*BIJ;
dglfI=(2*f(lineI)-f(lineJ)).*GIJ-e(lineJ).*BIJ;
dglfJ=-f(lineI).*GIJ+e(lineI).*BIJ;
dgle=sparse(lineI,(1:lineNum),dgleI,nodeNum,lineNum)+sparse(lineJ,(1:lineNum),dgleJ,nodeNum,lineNum);
dglf=sparse(lineI,(1:lineNum),dglfI,nodeNum,lineNum)+sparse(lineJ,(1:lineNum),dglfJ,nodeNum,lineNum);
dg0=sparse(m,transNum+pgvNum+capNum);
dgvl=[dgve dgle;dgvf dglf];
dgef=[dg0 dgvl]; %
dgx=[dgT;dgP;dgQ;dgcapK;dgef]; %
%%
Z=sparse(1:r,1:r,z,r,r);
W=sparse(1:r,1:r,w,r,r);
L1=sparse(1:r,1:r,1./l,r,r);
U1=sparse(1:r,1:r,1./u,r,r);
LZ=L1*Z;
UW=U1*W;
%%
%2f(x)
if(opfGoal==2)
HSdfx=sparse(xNum,xNum);
else if(opfGoal==1)
HSdfx=sparse(transNum+1:transNum+pgNum,transNum+1:transNum+pgNum,2*a(pgNode),xNum,xNum);%PG0
else if(opfGoal==3)
d2ftei=-2*transG.*(e(transI)-e(transJ));
d2ftej=-d2ftei;
d2ftfi=-2*transG.*(f(transI)-f(transJ));
d2ftfj=-d2ftfi;
d2fte=sparse(1:transNum,transI,d2ftei,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftej,transNum,nodeNum);
d2ftf=sparse(1:transNum,transI,d2ftfi,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftfj,transNum,nodeNum);
d2fT0=sparse(transNum,transNum+pgvNum+capNum);
d2fT=[d2fT0 d2fte d2ftf];
d2fPGQR=sparse(pgvNum,xNum);
d2fcapK=sparse(capNum,xNum);
d2fee=2*(G-sparse(1:nodeNum,1:nodeNum,sum(G,2),nodeNum,nodeNum));
d2fff=d2fee;
zero_nodeNum=sparse(nodeNum,nodeNum);
d2f_ef_ef=[d2fee zero_nodeNum;zero_nodeNum d2fff];
d2efT=[d2fte d2ftf]';
d2f_ef=[d2efT sparse(2*nodeNum,pgvNum+capNum) d2f_ef_ef];
HSdfx=[d2fT;d2fPGQR;d2fcapK;d2f_ef];
else if(opfGoal==4)
d2ftei=2*transB.*(e(transI)-e(transJ));
d2ftej=-d2ftei;
d2ftfi=2*transB.*(f(transI)-f(transJ));
d2ftfj=-d2ftfi;
d2fte=sparse(1:transNum,transI,d2ftei,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftej,transNum,nodeNum);
d2ftf=sparse(1:transNum,transI,d2ftfi,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftfj,transNum,nodeNum);
d2fT0=sparse(transNum,transNum+pgvNum+capNum);
d2fT=[d2fT0 d2fte d2ftf];
d2fPGQR=sparse(pgvNum,xNum);
d2fcapK=sparse(capNum,xNum);
d2fee=-2*(B-sparse(1:nodeNum,1:nodeNum,sum(B,2),nodeNum,nodeNum));
d2fff=d2fee;
zero_nodeNum=sparse(nodeNum,nodeNum);
d2f_ef_ef=[d2fee zero_nodeNum;zero_nodeNum d2fff];
d2efT=[d2fte d2ftf]';
d2f_ef=[d2efT sparse(2*nodeNum,pgvNum+capNum) d2f_ef_ef];
HSdfx=[d2fT;d2fPGQR;d2fcapK;d2f_ef];
end
end
end
end
%y2h(x)*y
y1=y(1:nodeNum,1);
y2=y(nodeNum+1:2*nodeNum,1);
dhT2=2*ef3.*(transG.*y1(transI)-transB.*y2(transI)); %
HSdhT=sparse(1:transNum,1:transNum,dhT2,transNum+pgvNum+capNum,transNum+pgvNum+capNum);
eiG=e(transI).*transG;
ejG=e(transJ).*transG;
eiB=e(transI).*transB;
ejB=e(transJ).*transB;
fiG=f(transI).*transG;
fjG=f(transJ).*transG;
fiB=f(transI).*transB;
fjB=f(transJ).*transB;
ejG_fjB=ejG-fjB;
ejGfjB=ejG+fjB;
fjGejB=fjG+ejB;
ejB_fjG=ejB-fjG;
eiGfiB=eiG+fiB;
eiG_fiB=eiG-fiB;
eiB_fiG=eiB-fiG;
fiGeiB=fiG+eiB;
dP2_ei_t=(4*eiG.*T-ejG_fjB).*y1(transI)-ejGfjB.*y1(transJ);
dP2_ej_t=-eiGfiB.*y1(transI)-eiG_fiB.*y1(transJ);
dQ2_ei_t=(-4*eiB.*T+fjGejB).*y2(transI)+ejB_fjG.*y2(transJ);
dQ2_ej_t=eiB_fiG.*y2(transI)+fiGeiB.*y2(transJ);
HSdh_et=sparse(1:transNum,transI,dP2_ei_t+dQ2_ei_t,transNum,nodeNum)+sparse(1:transNum,transJ,dP2_ej_t+dQ2_ej_t,transNum,nodeNum);%
dP2_fi_t=(4*fiG.*T-fjGejB).*y1(transI)+ejB_fjG.*y1(transJ);
dP2_fj_t=eiB_fiG.*y1(transI)-fiGeiB.*y1(transJ);
dQ2_fi_t=(-4*fiB.*T-ejG_fjB).*y2(transI)+ejGfjB.*y2(transJ);
dQ2_fj_t=eiGfiB.*y2(transI)-eiG_fiB.*y2(transJ);
HSdh_ft=sparse(1:transNum,transI,dP2_fi_t+dQ2_fi_t,transNum,nodeNum)+sparse(1:transNum,transJ,dP2_fj_t+dQ2_fj_t,transNum,nodeNum);%
HSdh_eft=[HSdh_et HSdh_ft];
HSdh_tef=HSdh_eft';
HSdhPQ=sparse(pgvNum,2*nodeNum); %PGQR
d2hcap_e=sparse(1:capNum,capI,2*e(capI).*y2(capI),capNum,nodeNum); %capKe
d2hcap_f=sparse(1:capNum,capI,2*f(capI).*y2(capI),capNum,nodeNum); %capKf
HSdhcap_ef=[d2hcap_e d2hcap_f];
d2htPQ_ef=[HSdh_eft;HSdhPQ;HSdhcap_ef];
HSdhtPQ=[HSdhT d2htPQ_ef];
HSdhx1=sparse(m,pgvNum);
%
diagy1=sparse(1:nodeNum,1:nodeNum,y1,nodeNum,nodeNum);
diagy2=sparse(1:nodeNum,1:nodeNum,y2,nodeNum,nodeNum);
HSdhey=-diagy1*G+diagy2*B+(-G*diagy1+B*diagy2);
HSdhefy=diagy1*B+diagy2*G-(B*diagy1+G*diagy2);
HSdhx2=[HSdhey HSdhefy;HSdhefy' HSdhey];
HSdhx=[HSdhtPQ;HSdh_tef HSdhx1 HSdhcap_ef' HSdhx2];
%2g(x)*(z+w)
ZWcl=z(transNum+pgvNum+capNum+nodeNum+1:end)+w(transNum+pgvNum+capNum+nodeNum+1:end);
ZWv=z(transNum+pgvNum+capNum+1:transNum+pgvNum+capNum+nodeNum)+w(transNum+pgvNum+capNum+1:transNum+pgvNum+capNum+nodeNum);
dgeiT=((2*e(transI)-e(transJ)).*transG+f(transJ).*transB).*ZWcl(lineNum-transNum+1:end);
dgejT=(-e(transI).*transG-f(transI).*transB).*ZWcl(lineNum-transNum+1:end);
dgeT=sparse(1:transNum,transI,dgeiT,transNum,nodeNum)+sparse(1:transNum,transJ,dgejT,transNum,nodeNum);%e
dgfiT=((2*f(transI)-f(transJ)).*transG-e(transJ).*transB).*ZWcl(lineNum-transNum+1:end);
dgfjT=(-f(transI).*transG+e(transI).*transB).*ZWcl(lineNum-transNum+1:end);
dgfT=sparse(1:transNum,transI,dgfiT,transNum,nodeNum)+sparse(1:transNum,transJ,dgfjT,transNum,nodeNum);%f
HSdgefT=[dgeT dgfT];
HSdgT=[sparse(transNum,transNum+pgvNum+capNum) HSdgefT];
HSdgee=sparse(lineI,lineI,2*GIJ.*ZWcl,nodeNum,nodeNum)-sparse(lineI,lineJ,GIJ.*ZWcl,nodeNum,nodeNum)...
-sparse(lineJ,lineI,GIJ.*ZWcl,nodeNum,nodeNum)+sparse(1:nodeNum,1:nodeNum,2*ZWv,nodeNum,nodeNum);
HSdgff=HSdgee;
HSdgef=sparse(lineI,lineJ,BIJ.*ZWcl,nodeNum,nodeNum)-sparse(lineJ,lineI,BIJ.*ZWcl,nodeNum,nodeNum);
HSdgfe=HSdgef';
HSdgx1=[HSdgee HSdgef;HSdgfe HSdgff]; %ef
HSdgxtPQ_0=sparse(pgvNum+capNum,xNum);
HSdgef_0=[HSdgefT' sparse(2*nodeNum,pgvNum+capNum)];
HSdgx=[HSdgT;HSdgxtPQ_0;HSdgef_0 HSdgx1]; %
%H(.).
dgxT=dgx'; %dgx
MULdgx=dgx*(UW-LZ)*dgxT;
H=HSdhx+HSdgx-HSdfx+MULdgx; %H(.).
%%
HSB0=sparse(m,m);
HSB=[H dhx;dhx' HSB0];
balN=transNum+pgvNum+capNum+nodeNum+balNode;
HSB(balN,:)=0; %001
HSB(:,balN)=0;
HSB_balN=sub2ind(size(HSB),balN,balN);
HSB(HSB_balN)=ones(balNum,1);
balN1=transNum+pgvNum+capNum+balNode;
HSB(balN1,:)=0; %001
HSB(:,balN1)=0;
HSB_balN1=sub2ind(size(HSB),balN1,balN1);
HSB(HSB_balN1)=ones(balNum,1);
HSB=sparse(HSB);

60
NCP函数法/formY.m Normal file
View File

@ -0,0 +1,60 @@
function [G,B,transY,transG,transB,transG1,transB1,transNum,lineNum,lineI,lineJ,lineB,transI,transJ,transK0,transKmin,transKmax]=...
formY(nodeNum,mtrLine,mtrGround,mtrTrans,capI,capK)
%
%201011
%
%G--,B--lineI,lineJ--lineR--线
%lineX--线groundI--
%groundR--groundX--
%transItransJ--
%transR--transX--
%transK--
%transG--transB--
%% 线
lineI=mtrLine(:,2);
lineJ=mtrLine(:,3);
lineR=mtrLine(:,4);
lineX=mtrLine(:,5);
lineB=mtrLine(:,6);
groundI=mtrGround(:,1);
groundX=mtrGround(:,2);
Yij=1./(lineR+j*lineX);
Y1=-sparse(lineI,lineJ,Yij,nodeNum,nodeNum)-sparse(lineJ,lineI,Yij,nodeNum,nodeNum)...
+sparse(lineI,lineI,Yij+j*lineB,nodeNum,nodeNum)+sparse(lineJ,lineJ,Yij+j*lineB,nodeNum,nodeNum)...
+sparse(groundI,groundI,j*groundX,nodeNum,nodeNum)+sparse(capI,capI,j*capK,nodeNum,nodeNum);
%%
transIall=mtrTrans(:,2);
transJall=mtrTrans(:,3);
transR=mtrTrans(:,4);
transX=mtrTrans(:,5);
transK0all=mtrTrans(:,6);
lineNum=length(lineI)+length(transIall);
transY=1./(transR+j*transX);
Y1=Y1-sparse(transIall,transJall,transY./transK0all,nodeNum,nodeNum)-sparse(transJall,transIall,transY./transK0all,nodeNum,nodeNum)...
+sparse(transIall,transIall,transY./transK0all./transK0all,nodeNum,nodeNum)+sparse(transJall,transJall,transY,nodeNum,nodeNum);
Yt=sparse(transIall,transJall,-transY,nodeNum,nodeNum); %
transIJ=sub2ind(size(Yt),transIall,transJall);
transYt=Yt(transIJ);
transCtrl=mtrTrans(:,9);
ctrTransNum=find(transCtrl);
transI=transIall(ctrTransNum);
transJ=transJall(ctrTransNum);
transKmax=1/0.9*ones(size(transI));
transKmin=1/1.1*ones(size(transI));
transK0=transK0all(ctrTransNum);
transG=real(transYt(ctrTransNum));
transB=imag(transYt(ctrTransNum));
transG1=-real(transY(ctrTransNum)); %transGtransB-transG-transB!!!!
transB1=-imag(transY(ctrTransNum));
transNum=length(transI);
lineI=[lineI;transI]; %线线
lineJ=[lineJ;transJ];
lineNum=lineNum-length(transIall)+transNum;
%%
[Yrows,Ycols,Y1] = find(Y1);
G=real(Y1);
B=imag(Y1);
G=sparse(Yrows,Ycols,G,nodeNum,nodeNum);
B=sparse(Yrows,Ycols,B,nodeNum,nodeNum);

75
NCP函数法/formY_RPP.m Normal file
View File

@ -0,0 +1,75 @@
function [G,B,lineI,lineJ,lineB,transI,transJ,transK0,transNum,transKmin,transKmax,capI,capGi,capBi,capK,capKmin,capKmax,capNum,transG,transB,transG1,transB1,lineNum]=...
formY_RPP(nodeNum,lineNum,mtrLine,mtrGround,mtrTrans,mtrCapacitor)
%
%201011
%
%% 线
%线
lineI=mtrLine(:,2);
lineJ=mtrLine(:,3);
lineR=mtrLine(:,4);
lineX=mtrLine(:,5);
lineB=mtrLine(:,6);
%
groundI=mtrGround(:,2);
groundG=mtrGround(:,3);
groundB=mtrGround(:,4);
%
capCtrl=mtrCapacitor(:,2);
capCtrl=ones(length(capCtrl),1);
capIall=mtrCapacitor(:,3);
capGiall=mtrCapacitor(:,4);
capBiall=mtrCapacitor(:,5);
capKall=mtrCapacitor(:,6);
capKminall=mtrCapacitor(:,7);
capKmaxall=mtrCapacitor(:,8);
Yij=1./(lineR+j*lineX);
Y1=-sparse(lineI,lineJ,Yij,nodeNum,nodeNum)-sparse(lineJ,lineI,Yij,nodeNum,nodeNum)...
+sparse(lineI,lineI,Yij+j*lineB,nodeNum,nodeNum)+sparse(lineJ,lineJ,Yij+j*lineB,nodeNum,nodeNum)...
+sparse(groundI,groundI,groundG+j*groundB,nodeNum,nodeNum)...
+sparse(capIall,capIall,j*capKall,nodeNum,nodeNum);
%
capCtrlNode=find(capCtrl);
capI=capIall(capCtrlNode);
capGi=capGiall(capCtrlNode);
capBi=capBiall(capCtrlNode);
capK=capKall(capCtrlNode);
capKmin=capKminall(capCtrlNode);
capKmax=capKmaxall(capCtrlNode);
capNum=length(capI);
%%
transCtrl=mtrTrans(:,2);
transIall=mtrTrans(:,3);
transJall=mtrTrans(:,4);
transR=mtrTrans(:,5);
transX=mtrTrans(:,6);
transK0all=mtrTrans(:,7);
transY=1./(transR+j*transX);
Y1=Y1-sparse(transIall,transJall,transY./transK0all,nodeNum,nodeNum)-sparse(transJall,transIall,transY./transK0all,nodeNum,nodeNum)...
+sparse(transIall,transIall,transY./transK0all./transK0all,nodeNum,nodeNum)+sparse(transJall,transJall,transY,nodeNum,nodeNum);
Yt=sparse(transIall,transJall,-transY,nodeNum,nodeNum); %
transIJ=sub2ind(size(Yt),transIall,transJall);
transYt=Yt(transIJ);
%
ctrTransNum=find(transCtrl);
transI=transIall(ctrTransNum);
transJ=transJall(ctrTransNum);
transKmax=1/0.9*ones(size(transI));
transKmin=1/1.1*ones(size(transI));
transK0=transK0all(ctrTransNum);
transG=real(transYt(ctrTransNum));
transB=imag(transYt(ctrTransNum));
transG1=-real(transY(ctrTransNum)); %transGtransB-transG-transB!!!!
transB1=-imag(transY(ctrTransNum));
transNum=length(transI);
lineI=[lineI;transI]; %线线
lineJ=[lineJ;transJ];
lineNum=lineNum+transNum;
%%
[Yrows,Ycols,Y1] = find(Y1);
G=real(Y1);
B=imag(Y1);
G=sparse(Yrows,Ycols,G,nodeNum,nodeNum);
B=sparse(Yrows,Ycols,B,nodeNum,nodeNum);

188
NCP函数法/linesearch.m Normal file
View File

@ -0,0 +1,188 @@
function [mk,meritF,stepp,stepd]=linesearch(r,nodeNum,balNode,pgNum,pvNum,pgvNum,xNum,transNum,pgNode,pvNode,m,x,y,z,l,u,w,G,B,transI,transJ,transG,...
transB,transG1,transB1,Tn,capKn,capNum,capI,Tn1,capKn1,PG,QR,Pg,Qg,dx,dl,du,dy,dz,dw,opfGoal,Gama,Arlfa,meritF,k2,mu,T,capK,lineNum,lineI,...
lineJ,Pd,Qd,gxx,gsx,mut,mub,stepp,stepd)
%
%201011
mk=0;
kk=k2;
isOK=0;
while isOK==0&&mk<10
%
xk=x+Arlfa.^mk*dx;
lk=l+Arlfa.^mk*dl;
uk=u+Arlfa.^mk*du;
yk=y+Arlfa.^mk*dy;
zk=z+Arlfa.^mk*dz;
wk=w+Arlfa.^mk*dw;
%
Tlastk=T;
capKlastk=capK;
T=xk(1:transNum,1);
capK=xk(transNum+pgvNum+1:transNum+pgvNum+capNum);
PG(pgNode,1)=xk(transNum+1:transNum+pgNum,1);
QR(pvNode,1)=xk(transNum+pgNum+1:transNum+pgNum+pvNum,1);
e=xk(transNum+pgNum+pvNum+capNum+1:transNum+pgNum+pvNum+capNum+nodeNum,1);
f=xk(transNum+pgNum+pvNum+capNum+nodeNum+1:xNum,1);
%
G=G-sparse(transI,transI,(T.*T-Tlastk.*Tlastk).*transG1,nodeNum,nodeNum)...
+sparse(transI,transJ,transG1.*(T-Tlastk),nodeNum,nodeNum)...
+sparse(transJ,transI,transG1.*(T-Tlastk),nodeNum,nodeNum);
B=B-sparse(transI,transI,(T.*T-Tlastk.*Tlastk).*transB1,nodeNum,nodeNum)...
+sparse(transI,transJ,transB1.*(T-Tlastk),nodeNum,nodeNum)...
+sparse(transJ,transI,transB1.*(T-Tlastk),nodeNum,nodeNum)...
+sparse(capI,capI,capK-capKlastk,nodeNum,nodeNum);
%%
Ezu=exp(-(T-Tn)./mut);
Ezu_1=exp(-(Tn1-T)./mut);
dT_Zt=1;
dNCPT=-mut.*log(Ezu+Ezu_1); %
dNCPT_dt=(Ezu-Ezu_1)./(Ezu+Ezu_1); %T
transGmut=transG.*dT_Zt;
transBmut=transB.*dT_Zt;
Ezbu=exp((capKn-capK)./mub);
Ezbu_1=exp((capK-capKn1)./mub);
dNCPcap=-mub.*log(Ezbu+Ezbu_1); %
dNCP_dcap=(Ezbu-Ezbu_1)./(Ezbu+Ezbu_1); %capK
ef1=e(transI).*e(transJ)+f(transI).*f(transJ);
ef2=e(transI).*f(transJ)-e(transJ).*f(transI);
ef3=e(transI).*e(transI)+f(transI).*f(transI);
ef1G=ef1.*transGmut;
ef1B=ef1.*transBmut;
ef2G=ef2.*transGmut;
ef2B=ef2.*transBmut;
dhPTi=-ef1G+ef2B+2*ef3.*transGmut.*T;
dhPTj=-ef1G-ef2B;
dhPT=sparse(1:transNum,transI,dhPTi,transNum,nodeNum)+sparse(1:transNum,transJ,dhPTj,transNum,nodeNum);%P
dhQTi=ef1B+ef2G-2*ef3.*transBmut.*T;
dhQTj=ef1B-ef2G;
dhQT=sparse(1:transNum,transI,dhQTi,transNum,nodeNum)+sparse(1:transNum,transJ,dhQTj,transNum,nodeNum);%Q
dhNCP_T=sparse(1:transNum,1:transNum,dNCPT_dt,transNum,transNum+capNum);
dhP=sparse(1:pgNum,pgNode,ones(pgNum,1),pgNum,m);
dhQ1=sparse(1:pvNum,pvNode,ones(pvNum,1),pvNum,m-nodeNum);
dhQ=[sparse(pvNum,nodeNum) dhQ1];
dhcapK1=sparse(1:capNum,capI,(e(capI).^2+f(capI).^2),capNum,nodeNum); %2011105.*capBi_dBci
dhNCP_capK=sparse(1:capNum,transNum+1:transNum+capNum,dNCP_dcap,capNum,transNum+capNum);
dhcapK=[sparse(capNum,nodeNum) dhcapK1 dhNCP_capK];
%
H1=G*e-B*f;
N1=G*f+B*e;
diagE=sparse(1:nodeNum,1:nodeNum,e,nodeNum,nodeNum);
diagF=sparse(1:nodeNum,1:nodeNum,f,nodeNum,nodeNum);
deG=diagE*G;
dfB=diagF*B;
deB=diagE*B;
dfG=diagF*G;
dH1=sparse(1:nodeNum,1:nodeNum,H1,nodeNum,nodeNum);
dN1=sparse(1:nodeNum,1:nodeNum,N1,nodeNum,nodeNum);
Hij=-dH1-deG-dfB;
Nij=-dN1+deB-dfG;
Jij=dN1-dfG+deB;
Lij=-dH1+dfB+deG;
dhJacb=[Hij Nij;Jij Lij]'; %
dhT=[dhPT dhQT dhNCP_T]; %h(x)
dhx=[dhT;dhP;dhQ;dhcapK;dhJacb sparse(2*nodeNum,transNum+capNum)];
%% g(x)
gtransNum=0; %NCP
gcapNum=0;
dgT1=sparse(transNum,r-lineNum);
dglT=(e(transI).^2+f(transI).^2-e(transI).*e(transJ)-f(transI).*f(transJ)).*transGmut+(e(transI).*f(transJ)-e(transJ).*f(transI)).*transBmut;
dgT2=sparse(1:transNum,lineNum-transNum+1:lineNum,dglT,transNum,lineNum);
dgT=[dgT1 dgT2]; %T
dgP=sparse(1:pgNum,gtransNum+1:gtransNum+pgNum,ones(pgNum,1),pgNum,r); %P
dgQ=sparse(1:pvNum,gtransNum+pgNum+1:gtransNum+pgvNum,ones(pvNum,1),pvNum,r);%Q
dgcapK=sparse(capNum,r); %capK
dgve=2*diagE;
dgvf=2*diagF;
sizeG=size(G);
GIJ=G(sub2ind(sizeG,lineI,lineJ));
BIJ=B(sub2ind(sizeG,lineI,lineJ));
dgleI=(2*e(lineI)-e(lineJ)).*GIJ+f(lineJ).*BIJ;
dgleJ=-e(lineI).*GIJ-f(lineI).*BIJ;
dglfI=(2*f(lineI)-f(lineJ)).*GIJ-e(lineJ).*BIJ;
dglfJ=-f(lineI).*GIJ+e(lineI).*BIJ;
dgle=sparse(lineI,(1:lineNum),dgleI,nodeNum,lineNum)+sparse(lineJ,(1:lineNum),dgleJ,nodeNum,lineNum);
dglf=sparse(lineI,(1:lineNum),dglfI,nodeNum,lineNum)+sparse(lineJ,(1:lineNum),dglfJ,nodeNum,lineNum);
dg0=sparse(2*nodeNum,gtransNum+pgvNum+gcapNum);
dgvl=[dgve dgle;dgvf dglf];
dgef=[dg0 dgvl]; %
dgx=[dgT;dgP;dgQ;dgcapK;dgef]; %
%%
Z=sparse(1:r,1:r,zk,r,r);
W=sparse(1:r,1:r,wk,r,r);
L1=sparse(1:r,1:r,1./lk,r,r);
U1=sparse(1:r,1:r,1./uk,r,r);
LZ=L1*Z;
UW=U1*W;
Ll=(lk.*zk-mu*ones(r,1));
Lu=(uk.*wk+mu*ones(r,1));
%% f(.)
if(opfGoal==2)
dPG=ones(pgNum,1);
dfx=sparse(transNum+1:transNum+pgNum,ones(pgNum,1),dPG,xNum,1);
else if(opfGoal==1)
dPG=2*a(pgNode).*PG(pgNode)+b(pgNode);
dfx=sparse(transNum+1:transNum+pgNum,ones(pgNum,1),dPG,xNum,1);
else if(opfGoal==3)
dfT=-1*transG.*dT_Zt.*((f(transI)-f(transJ)).^2+(e(transI)-e(transJ)).^2);
dfPQ=zeros(pgvNum,1);
dfcapK=zeros(capNum,1);
EE=e*ones(1,nodeNum);
FF=f*ones(1,nodeNum);
dfe=2*sum(G.*(EE-EE'));
dff=2*sum(G.*(FF-FF'));
dfx=[dfT;dfPQ;dfcapK;dfe';dff'];
else if(opfGoal==4)
dfT=1*transB.*dT_Zt.*((f(transI)-f(transJ)).^2+(e(transI)-e(transJ)).^2);
dfPQ=zeros(pgvNum,1);
dfcapK=zeros(capNum,1);
EE=e*ones(1,nodeNum);
FF=f*ones(1,nodeNum);
dfe=-2*sum(B.*(EE-EE'));
dff=-2*sum(B.*(FF-FF'));
dfx=[dfT;dfPQ;dfcapK;dfe';dff'];
end
end
end
end
%%
gxv=[PG(pgNode);QR(pvNode);e.^2+f.^2];
gxl=(e(lineI).*e(lineI)+f(lineI).*f(lineI)-e(lineI).*e(lineJ)-f(lineI).*f(lineJ)).*GIJ+(e(lineI).*f(lineJ)-e(lineJ).*f(lineI)).*BIJ;%线
gx=[gxv;gxl]; %
Lz=gx-lk-gxx;
Lw=gx+uk-gsx;
muUL=mu*(U1-L1);
BB1=UW*Lw-LZ*Lz-muUL*ones(r,1);
BB=dhx*yk-dfx+dgx*BB1;
BB(transNum+pgvNum+capNum+nodeNum+balNode,1)=0; %00
BB(transNum+pgvNum+capNum+balNode,1)=0;
%%
Pg(pgNode)=PG(pgNode);
Qg(pvNode)=QR(pvNode);
P=Pg-Pd;
Q=Qg-Qd;
dP=P-diagE*H1-diagF*N1;
dQ=Q-diagF*H1+diagE*N1;
hx=[dP;dQ;dNCPT;dNCPcap]; %h(x)
const=[BB;hx]; %
L3=-L1*(Z*Lz+Ll);
L4=U1*(W*Lw-Lu);
L5=Lz;
L6=Lw;
f_NCP=[const;L3;L4;L5;L6];
f_NCPsum=(f_NCP'*f_NCP)/2;
maxfk=max(meritF(kk-min(10,kk)+1:end));
f3=maxfk-Gama*(Arlfa.^mk)*meritF(kk);
if f_NCPsum<=f3
isOK=1; %
else
mk=mk+1; %
end
end
stepp=stepp*Arlfa.^mk;
stepd=stepd*Arlfa.^mk;

125
NCP函数法/midResult.m Normal file
View File

@ -0,0 +1,125 @@
function [mut,mub,dNCPT,dNCPT_dt,d2NCPT_dt2,dT_Zt,transGmut,transBmut,dNCPcap,dNCP_dcap,d2NCP_dcap2,capBi_dBci,H1,N1,diagE,diagF,hx,Gap,max_hx,fx,...
Pg,Qg,xz1,dmaxOut1,xz2,dmaxOut2,xz3,dmaxOut3,xz4,dmaxOut4,PGR,Tn,kt0,capKn,q0,Tn1,capKn1,T,G]=midResult(nodeNum,pgNode,opfGoal,z,l,u,w,Pg,Qg,...
e,f,G,B,a,b,c,PG,Pd,Qd,k,xz1,dmaxOut1,xz2,dmaxOut2,xz3,dmaxOut3,xz4,dmaxOut4,times,mut,mub,oneTrans,oneCap,para3,accuracy,T,capK,transKmin,transKmax,...
capKmin,capBi,mu,transNum,transG,transB,Tn,Tn1,capKn,capKn1,kt0,q0,mismatch)
%
%201011
Gap=l'*z-u'*w; %
PGR=PG;
if(opfGoal==2)
sumP=sum(Pg);
sumPd=sum(Pd);
fx=sumP-sumPd;
else if(opfGoal==1)
fx=sum(a(pgNode).*PGR(pgNode).*PGR(pgNode)+b(pgNode).*PGR(pgNode)+c(pgNode));
else if(opfGoal==3)
EE=e*ones(1,nodeNum);
FF=f*ones(1,nodeNum);
fx=-0.5*sum(sum(G.*((EE-EE').^2+(FF-FF').^2),2));
else if(opfGoal==4)
EE=e*ones(1,nodeNum);
FF=f*ones(1,nodeNum);
fx=0.5*sum(sum(B.*((EE-EE').^2+(FF-FF').^2),2));
end
end
end
end
H1=G*e-B*f;
N1=G*f+B*e;
diagE=sparse(1:nodeNum,1:nodeNum,e,nodeNum,nodeNum);
diagF=sparse(1:nodeNum,1:nodeNum,f,nodeNum,nodeNum);
P=Pg-Pd;
Q=Qg-Qd;
dP=P-diagE*H1-diagF*N1;
dQ=Q-diagF*H1+diagE*N1;
firstOK=0;
hx=[dP;dQ];
tmpmax_hx=max(abs(hx));
if Gap<accuracy&&tmpmax_hx<mismatch&& times==1 %
firstOK=1;
times=2;
maxTap=5; %
K=1./T;
Kmax=1./transKmin;
Kmin=1./transKmax;
kt0=(Kmax-Kmin)/(maxTap-1); %
Kn=fix((K-Kmin)./kt0).*kt0+Kmin; %
Kn1=Kn+kt0;
Tn=1./Kn1;
Tn1=1./Kn;
q0=1; %
capQmin=capKmin.*capBi;
capKn=fix((capK-capQmin)./capBi).*capBi+capQmin; %
capKn1=capKn+capBi;
end
if times==2
%% μt
tmpmu=para3;
tmpmut=mut;
tmpmub=mub;
Ezu=exp(-(T-Tn)./tmpmut);
Ezu_1=exp(-(Tn1-T)./tmpmut);
dNCPT=-tmpmut.*log(Ezu+Ezu_1); %
Ezbu=exp((capKn-capK)./tmpmub);
Ezbu_1=exp((capK-capKn1)./tmpmub);
dNCPcap=-tmpmub.*log(Ezbu+Ezbu_1); %
dNCP=[dNCPT;dNCPcap];%
oneTC=[oneTrans;oneCap];
mutb=[mut;mub];
mutb=min(max(mu,max(abs(dNCP)))*oneTC,tmpmu*mutb.*oneTC); %
mut=mutb(1:transNum);
mub=mutb(transNum+1:end);
%%
Ezu=exp(-(T-Tn)./mut);
Ezu_1=exp(-(Tn1-T)./mut);
dNCPT=-mut.*log(Ezu+Ezu_1); %
dT_Zt=1;
dNCPT_dt=(Ezu-Ezu_1)./(Ezu+Ezu_1); %tij
d2NCPT_dt2=-(oneTrans-dNCPT_dt.^2)./mut; %tij,d2NCPT_dt2=-(oneTrans+dNCPT_dt.^2)./mut;37
transGmut=transG;
transBmut=transB;
Ezbu=exp((capKn-capK)./mub);
Ezbu_1=exp((capK-capKn1)./mub);
dNCPcap=-mub.*log(Ezbu+Ezbu_1); %
dcapK_Zb=1;
dNCP_dcap=(Ezbu-Ezbu_1)./(Ezbu+Ezbu_1); %capK
d2NCP_dcap2=-(oneCap-dNCP_dcap.^2)./mub; %capK
capBi_dBci=capBi.*dcapK_Zb;
end
if times==1
dNCPT=[];dNCPT_dt=[];d2NCPT_dt2=[];dT_Zt=[];transGmut=[];transBmut=[];dNCPcap=[];dNCP_dcap=[];d2NCP_dcap2=[];capBi_dBci=[];
end
hx=[dP;dQ;dNCPT;dNCPcap];
fx=full(fx);
max_hx=full(max(abs(hx)));
if firstOK==1
max_hx=full(tmpmax_hx);
end
fprintf('%4.0f %4.4e %4.4e %7.6f\n',k,Gap,max_hx,fx); %
%%
if times==1
xz1=[xz1 k];
dmaxOut1=[dmaxOut1 Gap];
xz3=[xz3 k];
dmaxOut3=[dmaxOut3 max_hx];
end
if times==2
if firstOK==1
xz1=[xz1 k];
dmaxOut1=[dmaxOut1 Gap];
xz3=[xz3 k];
dmaxOut3=[dmaxOut3 max_hx];
firstOK=0;
else
xz2=[xz2 k];
dmaxOut2=[dmaxOut2 Gap];
xz4=[xz4 k];
dmaxOut4=[dmaxOut4 max_hx];
end
end

68
NCP函数法/readData.m Normal file
View File

@ -0,0 +1,68 @@
function [nodeNum,lineNum,capacity,kmax,centrPara,accuracy,opfGoal,balNum,balNode,mtrLine,mtrGround,mtrTrans,runPara,Pg,Qg,Pd,Qd,pvNum,pvNode,pvV,...
pvQmin,pvQmax,pgNumall,pgNodeall,pgNum,pgNode,a,b,c,Pmin,Pmax,capNum,capI,capGi,capBi,capK,capKmin,capKmax,Vmin,Vmax]=readData(data)
%
%201011
%%
nodeNum=data(1,1); %
lineNum=data(1,2); %线
capacity=data(1,3); %
kmax=data(1,4); %
centrPara=data(1,5); %
accuracy=data(2,1); %
opfGoal=data(2,2); %
balNum=data(3,1); %
balNode=data(3,2); %
%% 0
zeroIndex=find(data(:,1)==0);
%% 线
mtrLine=data(zeroIndex(1)+1:zeroIndex(2)-1,:);
%%
mtrGround=data(zeroIndex(2)+1:zeroIndex(3)-1,:);
%%
mtrTrans=data(zeroIndex(3)+1:zeroIndex(4)-1,:);
%%
runPara=data(zeroIndex(4)+1:zeroIndex(5)-1,:);
pqNode=runPara(:,1);
Pg=sparse(nodeNum,1);
Qg=Pg;Pd=Pg;Qd=Pg;
Pg(pqNode)=runPara(:,2)/capacity; %
Qg(pqNode)=runPara(:,3)/capacity; %
Pd(pqNode)=runPara(:,4)/capacity; %
Qd(pqNode)=runPara(:,5)/capacity; %
%% PV
mtrPV=data(zeroIndex(5)+1:zeroIndex(6)-1,:);
pvNum=zeroIndex(6)-zeroIndex(5)-1;
pvNode=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,1),nodeNum,1);
pvNode=find(pvNode); %PV
pvV=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,2),nodeNum,1); %PV
pvQmin=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,3),nodeNum,1)/capacity; %
pvQmax=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,4),nodeNum,1)/capacity; %
%%
economyPara=data(zeroIndex(6)+1:zeroIndex(7)-1,:);
[ecoRow,ecoCol]=size(economyPara);
if ecoCol==7
pgctrl=find(economyPara(:,7)); %
else
pgctrl=1:ecoRow;
end
pgNumall=zeroIndex(7)-zeroIndex(6)-1; %
pgNodeall=economyPara(:,1); %
pgNum=length(pgctrl); %
pgNode=pgNodeall(pgctrl); %
c=sparse(economyPara(:,1),ones(pgNum,1),economyPara(:,2),nodeNum,1);
b=sparse(economyPara(:,1),ones(pgNum,1),economyPara(:,3),nodeNum,1);
a=sparse(economyPara(:,1),ones(pgNum,1),economyPara(:,4),nodeNum,1);
Pmin=sparse(economyPara(:,1),ones(pgNum,1),economyPara(:,5),nodeNum,1)/capacity;%
Pmax=sparse(economyPara(:,1),ones(pgNum,1),economyPara(:,6),nodeNum,1)/capacity;%
%%
capPara=data(zeroIndex(7)+1:zeroIndex(8)-1,:);
capNum=zeroIndex(8)-zeroIndex(7)-1;
capI=capPara(:,2); %
capGi=capPara(:,3); %
capBi=capPara(:,4); %
capK=capPara(:,5); %
capKmin=capPara(:,6); %
capKmax=capPara(:,7); %
Vmin=0.9*ones(nodeNum,1); %
Vmax=1.07*ones(nodeNum,1); %

View File

@ -0,0 +1,72 @@
function [nodeNum,lineNum,capacity,kmax,accuracy,balNum,balNode,mtrLine,mtrGround,mtrTrans,runPara,Pg,Qg,Pd,Qd,pvNum,pvNode,pvV,pvQmin,pvQmax,...
mtrCapacitor,pgNum,pgNode,a,b,c,Pmin,Pmax,Vmin,Vmax,centrPara]=readData_RPP(data)
%
%201011
%% 0
zeroIndex=find(data(:,1)==0);
%%
nodeNum=data(1,1); %
capacity=data(1,3); %
accuracy=data(1,4); %
balNum=zeroIndex(2)-zeroIndex(1)-1; %
balNode=data(zeroIndex(1)+1:zeroIndex(2)-1,2); %
kmax=100; %
centrPara=0.1; %
%% 线
mtrLine=data(zeroIndex(2)+1:zeroIndex(3)-1,:);
lineNum=length(mtrLine);
%%
mtrTrans=data(zeroIndex(3)+1:zeroIndex(4)-1,:);
%%
mtrGround=data(zeroIndex(5)+1:zeroIndex(6)-1,:);
%%
mtrCapacitor=data(zeroIndex(6)+1:zeroIndex(7)-1,:);
%%
runPara=data(zeroIndex(8)+1:zeroIndex(9)-1,:);
pqNode=runPara(:,2);
Pg=sparse(nodeNum,1);
Qg=Pg;Pd=Pg;Qd=Pg;
Pg(pqNode)=runPara(:,3); %
Qg(pqNode)=runPara(:,4); %
Pd(pqNode)=runPara(:,5); %
Qd(pqNode)=runPara(:,6); %
%%
mtrPGLimit=data(zeroIndex(9)+1:zeroIndex(10)-1,:);
pgNum=zeroIndex(10)-zeroIndex(9)-1; %
pgNode=mtrPGLimit(:,3); %
c=sparse(mtrPGLimit(:,3),ones(pgNum,1),mtrPGLimit(:,8),nodeNum,1);
b=sparse(mtrPGLimit(:,3),ones(pgNum,1),mtrPGLimit(:,9),nodeNum,1);
a=sparse(mtrPGLimit(:,3),ones(pgNum,1),mtrPGLimit(:,10),nodeNum,1);
Pmin=sparse(mtrPGLimit(:,3),ones(pgNum,1),mtrPGLimit(:,4),nodeNum,1); %
Pmax=sparse(mtrPGLimit(:,3),ones(pgNum,1),mtrPGLimit(:,5),nodeNum,1); %
%%
mtrQGLimit=data(zeroIndex(11)+1:zeroIndex(12)-1,:);
pvNum=zeroIndex(12)-zeroIndex(11)-1;
pvNode=sparse(mtrQGLimit(:,3),ones(pvNum,1),mtrQGLimit(:,3),nodeNum,1);
pvNode=find(pvNode); %PV
pvV=sparse(mtrQGLimit(:,3),ones(pvNum,1),mtrQGLimit(:,4),nodeNum,1); %PV
pvQmin=sparse(mtrQGLimit(:,3),ones(pvNum,1),mtrQGLimit(:,5),nodeNum,1); %
pvQmax=sparse(mtrQGLimit(:,3),ones(pvNum,1),mtrQGLimit(:,6),nodeNum,1); %
%%
mtrVLimit=data(zeroIndex(13)+1:zeroIndex(14)-1,:);
VLimitNum=zeroIndex(14)-zeroIndex(13)-1; %
Vmin=sparse(mtrVLimit(:,2),ones(VLimitNum,1),mtrVLimit(:,3),nodeNum,1);
Vmax=sparse(mtrVLimit(:,2),ones(VLimitNum,1),mtrVLimit(:,4),nodeNum,1);
Vmin=0.9*ones(nodeNum,1); %
Vmax=1.15*ones(nodeNum,1);
node_Z=data(zeroIndex(14)+1:zeroIndex(15)-1,1); %0.8-1.2
Vmin(node_Z)=0.85;
Vmax(node_Z)=1.15;
node_220=data(zeroIndex(15)+1:zeroIndex(16)-1,1); %220kV
Vmin(node_220)=0.95;
Vmax(node_220)=1.1;
node_750=data(zeroIndex(16)+1:zeroIndex(17)-1,1); %750kV
Vmin(node_750)=1;
Vmax(node_750)=1.1;
node_Monitor=data(zeroIndex(17)+1:zeroIndex(18)-1,1); %800kV220363kV线
Vmin(node_Monitor)=1;
Vmax(node_Monitor)=1.1;

View File

@ -0,0 +1,212 @@
33 8.7205e-006 0.780222 0.778376 0.5881 2.9858e-006 1
0
8 5 0.9500 0.9739 1.0000 0.9500
25 26 1.0000 1.0133 1.0500 1.0000
17 30 1.0000 1.0052 1.0500 1.0000
37 38 1.0000 1.0102 1.0500 1.0000
59 63 1.0000 1.0046 1.0500 1.0000
61 64 1.0000 1.0085 1.0500 1.0000
65 66 1.0000 0.9816 1.0000 0.9500
68 69 1.0000 1.0263 1.0500 1.0000
80 81 1.0000 1.0017 1.0500 1.0000
0
1 1.0216 -0.1935 1.0397 1.0428
2 1.0326 -0.1797 1.0481 1.0521
3 1.0308 -0.1821 1.0467 1.0493
4 1.0561 -0.1349 1.0647 1.0694
5 1.0621 -0.1302 1.0700 1.0700
6 1.0477 -0.1610 1.0600 1.0647
7 1.0470 -0.1636 1.0597 1.0644
8 1.0445 -0.0651 1.0466 1.0534
9 1.0693 0.0387 1.0700 1.0700
10 1.0542 0.1501 1.0648 1.0578
11 1.0434 -0.1626 1.0560 1.0599
12 1.0486 -0.1621 1.0610 1.0657
13 1.0249 -0.1895 1.0423 1.0468
14 1.0408 -0.1841 1.0570 1.0621
15 1.0268 -0.2184 1.0498 1.0560
16 1.0386 -0.1802 1.0541 1.0593
17 1.0451 -0.1834 1.0611 1.0672
18 1.0287 -0.2187 1.0517 1.0577
19 1.0231 -0.2261 1.0478 1.0540
20 1.0133 -0.2210 1.0371 1.0422
21 1.0126 -0.2037 1.0329 1.0371
22 1.0220 -0.1737 1.0367 1.0399
23 1.0455 -0.1109 1.0513 1.0528
24 1.0365 -0.1213 1.0436 1.0448
25 1.0700 0.0068 1.0700 1.0700
26 1.0676 0.0720 1.0700 1.0700
27 1.0297 -0.1921 1.0475 1.0500
28 1.0184 -0.2123 1.0403 1.0433
29 1.0160 -0.2219 1.0399 1.0435
30 1.0627 -0.1032 1.0677 1.0697
31 1.0196 -0.2188 1.0428 1.0466
32 1.0262 -0.1976 1.0451 1.0481
33 1.0204 -0.2266 1.0453 1.0531
34 1.0321 -0.2187 1.0551 1.0644
35 1.0278 -0.2255 1.0522 1.0616
36 1.0283 -0.2258 1.0528 1.0622
37 1.0355 -0.2111 1.0568 1.0662
38 1.0615 -0.1347 1.0700 1.0700
39 1.0057 -0.2531 1.0370 1.0462
40 1.0017 -0.2657 1.0363 1.0452
41 0.9957 -0.2677 1.0311 1.0398
42 1.0147 -0.2357 1.0417 1.0496
43 1.0201 -0.2059 1.0407 1.0495
44 1.0244 -0.1492 1.0352 1.0429
45 1.0255 -0.1126 1.0317 1.0384
46 1.0432 -0.0678 1.0454 1.0510
47 1.0486 -0.0379 1.0493 1.0543
48 1.0571 -0.0304 1.0575 1.0624
49 1.0631 -0.0104 1.0632 1.0689
50 1.0576 -0.0231 1.0579 1.0637
51 1.0475 -0.0366 1.0481 1.0540
52 1.0440 -0.0431 1.0449 1.0507
53 1.0473 -0.0345 1.0479 1.0537
54 1.0645 -0.0036 1.0645 1.0700
55 1.0597 -0.0194 1.0599 1.0656
56 1.0609 -0.0153 1.0610 1.0667
57 1.0572 -0.0249 1.0575 1.0633
58 1.0512 -0.0320 1.0516 1.0574
59 1.0632 0.0010 1.0632 1.0700
60 1.0596 -0.0064 1.0596 1.0679
61 1.0616 0.0047 1.0616 1.0700
62 1.0577 -0.0139 1.0578 1.0660
63 1.0685 0.0066 1.0686 1.0693
64 1.0693 0.0095 1.0693 1.0694
65 1.0698 0.0193 1.0700 1.0700
66 1.0625 0.0107 1.0625 1.0700
67 1.0549 -0.0146 1.0550 1.0629
68 1.0633 -0.0037 1.0633 1.0688
69 1.0100 -0.0000 1.0100 1.0100
70 0.9987 -0.1218 1.0061 1.0065
71 1.0011 -0.1258 1.0089 1.0094
72 1.0138 -0.1342 1.0227 1.0235
73 0.9996 -0.1282 1.0077 1.0082
74 0.9851 -0.1432 0.9955 0.9958
75 0.9857 -0.1200 0.9930 0.9932
76 0.9718 -0.1357 0.9813 0.9816
77 1.0311 -0.0500 1.0323 1.0327
78 1.0274 -0.0529 1.0288 1.0292
79 1.0313 -0.0441 1.0323 1.0327
80 1.0558 0.0061 1.0558 1.0563
81 1.0665 -0.0004 1.0665 1.0696
82 1.0349 -0.0706 1.0373 1.0380
83 1.0381 -0.0727 1.0407 1.0412
84 1.0418 -0.0659 1.0439 1.0442
85 1.0501 -0.0577 1.0517 1.0518
86 1.0400 -0.0762 1.0428 1.0430
87 1.0487 -0.0698 1.0510 1.0512
88 1.0545 -0.0333 1.0551 1.0551
89 1.0699 0.0148 1.0700 1.0700
90 1.0476 -0.0753 1.0503 1.0503
91 1.0517 -0.0607 1.0535 1.0535
92 1.0588 -0.0252 1.0591 1.0592
93 1.0475 -0.0349 1.0481 1.0483
94 1.0439 -0.0362 1.0445 1.0448
95 1.0302 -0.0497 1.0314 1.0317
96 1.0361 -0.0503 1.0374 1.0378
97 1.0415 -0.0288 1.0419 1.0423
98 1.0532 -0.0168 1.0533 1.0537
99 1.0602 -0.0204 1.0604 1.0606
100 1.0690 0.0013 1.0690 1.0691
101 1.0527 -0.0242 1.0530 1.0531
102 1.0562 -0.0266 1.0565 1.0566
103 1.0700 -0.0016 1.0700 1.0700
104 1.0536 -0.0636 1.0556 1.0556
105 1.0499 -0.0766 1.0527 1.0527
106 1.0405 -0.0869 1.0442 1.0442
107 1.0315 -0.1257 1.0391 1.0392
108 1.0540 -0.0783 1.0569 1.0569
109 1.0533 -0.0774 1.0561 1.0561
110 1.0550 -0.0696 1.0573 1.0574
111 1.0699 -0.0129 1.0700 1.0700
112 1.0363 -0.1103 1.0421 1.0421
113 1.0423 -0.1868 1.0589 1.0643
114 1.0216 -0.2030 1.0416 1.0444
115 1.0213 -0.2033 1.0414 1.0442
116 1.0633 -0.0108 1.0634 1.0683
117 1.0301 -0.1840 1.0464 1.0511
118 0.9720 -0.1339 0.9812 0.9815
0
10 3.6967 3.7103
12 2.0000 2.0000
25 1.0556 1.0463
26 4.0000 4.0000
49 3.7579 3.7607
54 2.9968 2.9980
59 2.9007 2.8967
61 1.2241 1.2264
65 3.8134 3.8173
66 1.0000 1.0000
69 2.4623 2.4482
80 5.2137 5.2174
89 3.8040 3.8029
100 2.6935 2.6935
103 1.4836 1.4828
111 0.7977 0.7977
0
1 0.1500 0.1500
4 -0.4047 0.2368
6 0.1529 0.2453
8 -0.3565 -0.8771
10 -0.9697 -1.1848
12 0.4892 0.5382
15 0.2984 0.2995
18 0.3795 0.3700
19 0.2393 0.2399
24 -0.0256 -0.0275
25 -0.0467 -0.4700
26 -0.4585 -0.0888
27 0.3078 0.3073
31 0.2880 0.2864
32 0.2330 0.2330
34 0.0259 0.0523
36 0.2396 0.2400
40 0.3458 0.3442
42 0.4118 0.4120
46 -0.0159 -0.0186
49 0.3478 0.3367
54 0.2866 0.2579
55 0.1840 0.1814
56 0.1392 0.1419
59 0.8004 0.8322
61 -0.3634 -0.3667
62 0.1107 0.1089
65 -0.6700 -0.6698
66 -0.1902 -0.5252
69 -2.6190 -2.0627
70 0.2230 0.2224
72 -0.0494 -0.0494
73 -0.0211 -0.0211
74 0.0486 0.0157
76 0.2300 0.2300
77 0.7000 0.7000
80 0.2739 0.1508
85 0.1728 0.1701
87 0.0116 0.0116
89 0.0869 0.0827
90 0.4446 0.4447
91 0.0008 0.0007
92 0.0900 0.0900
99 -0.0335 -0.0335
100 0.4333 0.4312
103 0.0519 0.0493
104 0.2297 0.2299
105 -0.0036 0.0234
107 -0.3948 -0.3468
110 0.2270 0.2276
111 -0.0427 -0.0430
112 0.1248 0.1246
113 -0.0204 -0.0315
116 0.0949 -0.0684
0
17 0.00 0.0054 0.00 0.10
34 0.30 0.2728 0.20 0.30
44 0.10 0.1038 0.10 0.20
107 0.50 0.4555 0.40 0.50
82 0.30 0.3105 0.30 0.40
48 0.10 0.0803 0.00 0.10
74 0.40 0.4323 0.40 0.50
105 0.20 0.1753 0.10 0.20
0

View File

@ -0,0 +1,55 @@
28 5.0142e-006 0.024984 0.024929 0.3636 2.6240e-006 1
0
6 9 1.1000 1.1000 1.1000 1.0500
6 10 0.9000 0.9000 0.9500 0.9000
4 12 0.9500 0.9554 1.0000 0.9500
28 27 0.9500 0.9565 1.0000 0.9500
0
1 1.0600 -0.0000 1.0600 1.0600
2 1.0568 -0.0124 1.0568 1.0575
3 1.0508 -0.0252 1.0511 1.0523
4 1.0480 -0.0298 1.0484 1.0500
5 1.0374 -0.0754 1.0401 1.0413
6 1.0494 -0.0383 1.0500 1.0513
7 1.0366 -0.0622 1.0385 1.0397
8 1.0490 -0.0376 1.0497 1.0513
9 1.0366 -0.0125 1.0367 1.0329
10 1.0661 -0.0547 1.0675 1.0695
11 1.0635 0.0895 1.0673 1.0477
12 1.0696 -0.0278 1.0700 1.0700
13 1.0679 0.0377 1.0686 1.0700
14 1.0570 -0.0458 1.0580 1.0582
15 1.0538 -0.0507 1.0550 1.0555
16 1.0600 -0.0441 1.0609 1.0618
17 1.0593 -0.0549 1.0607 1.0623
18 1.0455 -0.0637 1.0475 1.0484
19 1.0438 -0.0682 1.0461 1.0474
20 1.0486 -0.0659 1.0506 1.0521
21 1.0557 -0.0639 1.0576 1.0595
22 1.0569 -0.0644 1.0589 1.0607
23 1.0498 -0.0658 1.0519 1.0526
24 1.0531 -0.0802 1.0562 1.0573
25 1.0550 -0.0923 1.0590 1.0576
26 1.0375 -0.0979 1.0421 1.0406
27 1.0651 -0.0960 1.0694 1.0664
28 1.0446 -0.0435 1.0455 1.0472
29 1.0442 -0.1148 1.0505 1.0474
30 1.0317 -0.1281 1.0396 1.0364
0
1 0.3890 0.3889
2 0.6000 0.6000
5 0.5100 0.5100
8 0.3500 0.3500
11 0.5100 0.5100
13 0.5000 0.5000
0
1 -0.0539 -0.0739
2 0.0762 0.0773
5 0.2120 0.2140
8 0.2696 0.2785
11 0.1815 0.0997
13 0.0045 0.0153
0
10 0.30 0.3583 0.30 0.40
24 0.10 0.1051 0.10 0.20
0

View File

@ -0,0 +1,489 @@
46 2.5859e-006 3.368072 3.336695 1.1765 1.9906e-007 1
0
297 269 1.0000 0.9730 1.0000 0.9500
269 226 1.0000 0.9922 1.0000 0.9500
269 227 0.9500 0.9753 1.0000 0.9500
291 62 1.0000 0.9965 1.0000 0.9500
291 63 0.9000 0.9228 0.9500 0.9000
291 145 1.0000 1.0002 1.0500 1.0000
291 64 1.0500 1.0506 1.1000 1.0500
291 65 1.0500 1.0421 1.0500 1.0000
228 47 0.9500 0.9695 1.0000 0.9500
225 48 0.9500 0.9741 1.0000 0.9500
229 49 0.9500 0.9687 1.0000 0.9500
229 50 0.9500 0.9694 1.0000 0.9500
271 66 1.0000 0.9826 1.0000 0.9500
271 67 1.0000 0.9866 1.0000 0.9500
300 51 0.9500 0.9556 1.0000 0.9500
300 52 0.9500 0.9640 1.0000 0.9500
300 53 0.9500 0.9537 1.0000 0.9500
270 59 1.0000 0.9780 1.0000 0.9500
270 60 0.9500 0.9679 1.0000 0.9500
270 61 1.0000 0.9787 1.0000 0.9500
300 54 1.0000 0.9923 1.0000 0.9500
300 55 0.9500 0.9685 1.0000 0.9500
300 56 1.0000 0.9751 1.0000 0.9500
300 57 1.0000 0.9734 1.0000 0.9500
300 58 0.9500 0.9606 1.0000 0.9500
145 69 1.0500 1.0423 1.0500 1.0000
6 290 1.1000 1.0990 1.1000 1.0500
292 146 1.0000 0.9992 1.0000 0.9500
292 230 1.0000 0.9951 1.0000 0.9500
292 70 1.1000 1.0701 1.1000 1.0500
272 147 0.9500 0.9418 0.9500 0.9000
272 71 1.0000 0.9815 1.0000 0.9500
73 273 0.9000 0.9000 0.9500 0.9000
231 73 1.1000 1.1000 1.1000 1.0500
286 76 0.9500 0.9758 1.0000 0.9500
149 286 0.9500 0.9567 1.0000 0.9500
233 232 0.9500 0.9662 1.0000 0.9500
235 234 1.0000 0.9892 1.0000 0.9500
81 237 0.9000 0.9142 0.9500 0.9000
240 275 0.9500 0.9716 1.0000 0.9500
240 153 0.9500 0.9763 1.0000 0.9500
276 158 0.9000 0.9000 0.9500 0.9000
159 88 1.0500 1.0768 1.1000 1.0500
277 246 1.0500 1.0697 1.1000 1.0500
248 164 0.9500 0.9619 1.0000 0.9500
91 279 1.0000 1.0122 1.0500 1.0000
249 280 1.0000 1.0074 1.0500 1.0000
163 169 1.0500 1.0220 1.0500 1.0000
175 130 1.0000 0.9983 1.0000 0.9500
96 178 1.0000 0.9875 1.0000 0.9500
176 95 1.0500 1.0253 1.0500 1.0000
256 191 1.0000 1.0027 1.0500 1.0000
299 98 0.9500 0.9738 1.0000 0.9500
299 104 0.9500 0.9644 1.0000 0.9500
182 116 0.9000 0.9099 0.9500 0.9000
186 198 0.9500 0.9333 0.9500 0.9000
187 260 0.9000 0.9221 0.9500 0.9000
281 101 0.9500 0.9756 1.0000 0.9500
281 188 0.9500 0.9744 1.0000 0.9500
282 118 0.9000 0.9074 0.9500 0.9000
105 116 0.9000 0.9071 0.9500 0.9000
189 120 0.9500 0.9265 0.9500 0.9000
190 108 0.9500 0.9551 1.0000 0.9500
193 97 1.0000 0.9918 1.0000 0.9500
109 178 1.0000 0.9866 1.0000 0.9500
112 295 0.9000 0.9000 0.9500 0.9000
194 190 1.1000 1.1000 1.1000 1.0500
119 185 0.9500 0.9247 0.9500 0.9000
202 283 1.0000 1.0237 1.0500 1.0000
204 263 1.0000 1.0270 1.0500 1.0000
206 213 0.9500 0.9600 1.0000 0.9500
208 224 1.1000 1.0982 1.1000 1.0500
127 160 1.0500 1.0553 1.1000 1.0500
128 298 1.0000 1.0150 1.0500 1.0000
209 143 1.0000 1.0180 1.0500 1.0000
131 289 1.0500 1.0311 1.0500 1.0000
298 213 1.0500 1.0402 1.0500 1.0000
216 284 0.9500 0.9488 0.9500 0.9000
134 217 0.9000 0.9161 0.9500 0.9000
220 7 0.9000 0.9000 0.9500 0.9000
221 10 0.9000 0.9000 0.9500 0.9000
263 143 0.9500 0.9700 1.0000 0.9500
254 26 1.0000 0.9931 1.0000 0.9500
255 27 1.0500 1.0657 1.1000 1.0500
37 275 0.9500 0.9519 1.0000 0.9500
39 242 0.9500 0.9646 1.0000 0.9500
0
1 1.0073 -0.2228 1.0316 1.0210
2 0.8397 -0.4030 0.9314 0.9342
3 0.9373 -0.3358 0.9956 0.9992
4 0.9957 -0.1517 1.0072 1.0305
5 0.8976 -0.0657 0.9000 0.9000
6 0.8551 -0.3039 0.9075 0.9007
7 1.0278 -0.0923 1.0319 1.0320
8 0.8710 -0.2709 0.9121 0.9118
9 0.8944 -0.1003 0.9000 0.9000
10 1.0519 -0.1418 1.0614 1.0695
11 0.9275 -0.0890 0.9318 0.9392
12 0.9582 -0.3242 1.0116 1.0323
13 0.9877 -0.1939 1.0066 1.0125
14 1.0331 -0.2785 1.0700 1.0700
15 0.9990 -0.3579 1.0612 1.0582
16 0.9518 -0.4418 1.0494 1.0541
17 0.9714 -0.3942 1.0483 1.0599
18 0.8941 -0.4999 1.0244 1.0275
19 0.7898 -0.6978 1.0539 1.0668
20 0.9667 -0.4494 1.0660 1.0677
21 0.9624 -0.3942 1.0400 1.0400
22 1.0153 -0.3378 1.0700 1.0700
23 0.9658 -0.4542 1.0673 1.0690
24 0.9458 -0.4039 1.0284 1.0284
25 1.0289 -0.2014 1.0485 1.0597
26 1.0352 -0.2392 1.0625 1.0700
27 0.8368 -0.3665 0.9136 0.9000
28 1.0566 -0.1686 1.0700 1.0700
29 1.0497 -0.1601 1.0618 1.0700
30 1.0622 -0.1291 1.0700 1.0700
31 1.0533 -0.1885 1.0700 1.0700
32 1.0688 -0.0515 1.0700 1.0700
33 1.0075 -0.2321 1.0339 1.0392
34 1.0427 -0.2404 1.0700 1.0700
35 1.0431 -0.0897 1.0469 1.0506
36 0.9105 0.0191 0.9107 0.9181
37 0.9727 -0.2889 1.0147 1.0168
38 1.0507 -0.0000 1.0507 1.0507
39 0.9714 -0.2192 0.9958 1.0068
40 0.9924 -0.2403 1.0211 1.0141
41 1.0457 -0.2265 1.0700 1.0700
42 1.0275 -0.1638 1.0405 1.0196
43 1.0240 -0.1432 1.0340 1.0306
44 1.0658 0.0949 1.0700 1.0700
45 1.0524 -0.1183 1.0590 1.0700
46 0.8911 0.1260 0.9000 0.9000
47 0.9702 -0.4378 1.0644 1.0700
48 0.9769 -0.4366 1.0700 1.0700
49 0.9757 -0.4217 1.0630 1.0700
50 0.9770 -0.4208 1.0637 1.0700
51 0.9058 -0.4766 1.0235 1.0700
52 0.9228 -0.4666 1.0341 1.0700
53 0.9014 -0.4795 1.0210 1.0700
54 0.9140 -0.4197 1.0058 1.0700
55 0.9321 -0.4605 1.0397 1.0700
56 0.8901 -0.4397 0.9927 1.0700
57 0.8898 -0.4355 0.9906 1.0700
58 0.9154 -0.4720 1.0299 1.0700
59 0.9036 -0.4206 0.9967 1.0700
60 0.9355 -0.4514 1.0387 1.0700
61 0.9032 -0.4235 0.9976 1.0700
62 0.9820 -0.4068 1.0630 1.0700
63 0.9948 -0.3723 1.0622 1.0700
64 1.0208 -0.2017 1.0405 1.0700
65 1.0104 -0.2114 1.0323 1.0699
66 0.9150 -0.4099 1.0026 1.0700
67 0.9229 -0.4038 1.0074 1.0700
68 0.9491 -0.3935 1.0275 1.0492
69 0.9375 -0.3690 1.0075 1.0235
70 0.9687 -0.1813 0.9855 1.0080
71 1.0332 -0.2054 1.0534 1.0629
72 1.0218 -0.2498 1.0519 1.0519
73 0.9193 -0.2423 0.9507 0.9494
74 1.0163 -0.2953 1.0583 1.0514
75 0.9828 -0.2963 1.0265 1.0400
76 1.0232 -0.3128 1.0700 1.0700
77 1.0008 -0.3273 1.0529 1.0429
78 1.0099 -0.2982 1.0530 1.0526
79 0.9650 -0.3796 1.0370 1.0296
80 1.0195 -0.2297 1.0450 1.0530
81 0.9585 -0.3249 1.0121 1.0207
82 1.0147 -0.1810 1.0307 1.0389
83 0.9845 -0.2844 1.0248 1.0250
84 0.9757 -0.3742 1.0450 1.0463
85 1.0017 -0.3213 1.0519 1.0482
86 0.9990 -0.3185 1.0486 1.0452
87 1.0188 -0.2917 1.0598 1.0700
88 0.9239 -0.4112 1.0113 0.9983
89 0.9622 -0.4066 1.0445 1.0462
90 0.9899 -0.3519 1.0506 1.0564
91 0.9501 -0.4359 1.0453 1.0594
92 0.9556 -0.3910 1.0325 1.0387
93 0.9038 -0.5288 1.0472 1.0594
94 0.9357 -0.4640 1.0444 1.0493
95 0.8312 -0.4795 0.9596 0.9712
96 0.8445 -0.4684 0.9657 0.9642
97 0.9038 -0.3509 0.9696 0.9753
98 1.0398 -0.1882 1.0567 1.0484
99 0.9382 -0.3945 1.0177 1.0203
100 0.8931 -0.3481 0.9585 0.9568
101 1.0299 -0.2383 1.0571 1.0488
102 1.0400 -0.0790 1.0430 1.0481
103 1.0265 -0.1313 1.0348 1.0547
104 1.0446 -0.1844 1.0608 1.0560
105 0.9648 -0.1953 0.9844 0.9930
106 1.0595 -0.1494 1.0700 1.0700
107 0.9162 -0.3276 0.9731 0.9848
108 0.9469 -0.2523 0.9800 0.9764
109 0.8573 -0.4685 0.9770 0.9759
110 0.9749 -0.1795 0.9913 0.9905
111 1.0201 -0.0908 1.0242 1.0244
112 0.9807 -0.2369 1.0089 1.0085
113 0.9773 0.0124 0.9773 0.9775
114 0.9329 0.0628 0.9350 0.9351
115 0.8618 -0.3582 0.9333 0.9384
116 1.0354 -0.2699 1.0700 1.0700
117 1.0307 -0.2200 1.0539 1.0560
118 1.0200 -0.2884 1.0600 1.0657
119 0.9414 -0.2743 0.9805 0.9746
120 1.0266 -0.2051 1.0469 1.0700
121 0.9235 -0.3840 1.0001 1.0037
122 0.9501 -0.1864 0.9682 0.9669
123 0.9483 -0.2016 0.9695 0.9682
124 1.0121 0.3471 1.0700 1.0700
125 0.9714 -0.0517 0.9728 0.9728
126 0.9413 -0.3505 1.0044 1.0285
127 0.9562 -0.4270 1.0473 1.0669
128 0.9731 -0.3469 1.0331 1.0638
129 0.9975 -0.3000 1.0416 1.0650
130 0.9250 -0.4842 1.0441 1.0630
131 0.9758 -0.3670 1.0425 1.0700
132 0.9333 -0.2705 0.9717 0.9876
133 0.8813 -0.2152 0.9071 0.9195
134 0.8777 -0.2186 0.9046 0.9173
135 1.0006 -0.2267 1.0260 1.0279
136 0.9850 -0.2521 1.0167 1.0223
137 0.9277 -0.2018 0.9494 0.9567
138 0.9861 -0.1949 1.0052 1.0111
139 0.9699 -0.2494 1.0015 1.0224
140 0.9505 -0.2621 0.9860 1.0073
141 0.9052 -0.3399 0.9669 0.9885
142 0.8374 -0.5214 0.9865 0.9791
143 1.0075 -0.3602 1.0700 1.0700
144 0.9269 -0.4046 1.0114 1.0599
145 0.9908 -0.3800 1.0611 1.0700
146 1.0380 -0.2210 1.0613 1.0615
147 1.0321 -0.2361 1.0588 1.0595
148 1.0190 -0.2473 1.0486 1.0568
149 1.0011 -0.2249 1.0260 1.0443
150 1.0172 -0.2578 1.0494 1.0500
151 0.9865 -0.3442 1.0449 1.0418
152 0.9944 -0.3036 1.0397 1.0446
153 1.0311 -0.2698 1.0658 1.0700
154 0.9652 -0.4180 1.0518 1.0559
155 0.9695 -0.3694 1.0375 1.0409
156 1.0189 -0.2026 1.0388 1.0412
157 0.9938 -0.3583 1.0564 1.0566
158 1.0214 -0.2988 1.0642 1.0610
159 0.9343 -0.4963 1.0579 1.0700
160 0.9498 -0.3713 1.0198 1.0308
161 0.9693 -0.3807 1.0413 1.0425
162 0.9918 -0.3402 1.0486 1.0480
163 1.0092 -0.3485 1.0677 1.0700
164 1.0065 -0.3226 1.0569 1.0600
165 0.9925 -0.3228 1.0437 1.0556
166 1.0009 -0.3004 1.0450 1.0503
167 1.0119 -0.3086 1.0579 1.0700
168 1.0453 -0.2284 1.0700 1.0700
169 0.9628 -0.3499 1.0244 1.0507
170 0.9662 -0.3937 1.0433 1.0498
171 1.0045 -0.3347 1.0588 1.0622
172 0.9490 -0.4347 1.0438 1.0486
173 0.9738 -0.3825 1.0462 1.0493
174 0.9286 -0.4584 1.0356 1.0387
175 0.9085 -0.5243 1.0490 1.0619
176 0.8730 -0.4844 0.9983 0.9914
177 0.7906 -0.5393 0.9570 0.9657
178 0.8366 -0.4762 0.9626 0.9732
179 0.7802 -0.5452 0.9518 0.9575
180 0.9041 -0.3323 0.9632 0.9672
181 0.9056 -0.3249 0.9621 0.9662
182 0.9619 -0.2126 0.9851 0.9945
183 0.9183 -0.4083 1.0050 1.0083
184 1.0255 -0.2701 1.0605 1.0611
185 1.0032 -0.2556 1.0352 1.0525
186 0.9818 -0.2151 1.0051 0.9969
187 0.9644 -0.2750 1.0029 1.0236
188 1.0457 -0.2268 1.0700 1.0700
189 0.9960 -0.1445 1.0064 1.0049
190 0.9178 -0.2204 0.9439 0.9447
191 0.8569 -0.4586 0.9719 0.9747
192 0.8721 -0.4551 0.9837 0.9849
193 0.8758 -0.4266 0.9742 0.9751
194 1.0264 -0.1923 1.0443 1.0446
195 0.9039 -0.3326 0.9632 0.9672
196 0.8756 -0.3569 0.9456 0.9495
197 0.9986 -0.3217 1.0491 1.0621
198 1.0242 -0.2717 1.0596 1.0700
199 1.0601 -0.1453 1.0700 1.0700
200 0.9713 -0.3817 1.0436 1.0470
201 0.9368 -0.2562 0.9712 0.9701
202 0.9676 -0.3723 1.0367 1.0684
203 1.0139 -0.2096 1.0354 1.0416
204 0.9588 -0.3970 1.0377 1.0700
205 1.0312 -0.2419 1.0592 1.0700
206 0.9946 -0.2642 1.0291 1.0458
207 0.9864 -0.3182 1.0364 1.0573
208 0.9468 -0.3556 1.0114 1.0353
209 0.9331 -0.4223 1.0242 1.0487
210 0.9457 -0.4143 1.0325 1.0606
211 0.9266 -0.4623 1.0356 1.0580
212 0.9583 -0.3937 1.0360 1.0669
213 0.9792 -0.2985 1.0237 1.0427
214 0.9721 -0.2240 0.9976 1.0181
215 0.9568 -0.2545 0.9900 1.0087
216 0.9503 -0.2273 0.9771 0.9841
217 0.9900 -0.2253 1.0153 1.0156
218 0.9787 -0.0548 0.9802 0.9803
219 0.9587 -0.2095 0.9814 0.9850
220 0.9624 -0.1883 0.9807 0.9838
221 0.9287 -0.2003 0.9500 0.9573
222 0.9760 -0.2249 1.0016 1.0223
223 0.9206 -0.2818 0.9627 0.9845
224 0.9085 -0.3334 0.9677 0.9892
225 0.9607 -0.3895 1.0367 1.0629
226 0.9536 -0.3717 1.0235 1.0700
227 0.9812 -0.3703 1.0488 1.0700
228 0.9543 -0.3907 1.0312 1.0576
229 0.9405 -0.3902 1.0182 1.0450
230 1.0375 -0.1997 1.0565 1.0648
231 1.0349 -0.1959 1.0533 1.0511
232 1.0134 -0.3304 1.0659 1.0528
233 1.0040 -0.2538 1.0356 1.0369
234 1.0366 -0.2610 1.0690 1.0700
235 1.0361 -0.2004 1.0553 1.0553
236 0.9985 -0.2894 1.0396 1.0450
237 0.9903 -0.3749 1.0589 1.0582
238 0.9942 -0.2964 1.0374 1.0425
239 0.9825 -0.3611 1.0468 1.0487
240 0.9819 -0.3066 1.0286 1.0506
241 1.0500 -0.0708 1.0524 1.0533
242 1.0010 -0.3121 1.0485 1.0472
243 1.0157 -0.3213 1.0653 1.0608
244 1.0082 -0.3344 1.0622 1.0638
245 0.9795 -0.3737 1.0483 1.0484
246 0.9775 -0.3468 1.0372 1.0388
247 0.9828 -0.3598 1.0466 1.0504
248 1.0046 -0.2798 1.0428 1.0563
249 0.9746 -0.4039 1.0550 1.0664
250 0.9981 -0.3410 1.0548 1.0573
251 0.9110 -0.5105 1.0443 1.0506
252 0.9063 -0.5024 1.0363 1.0419
253 0.9023 -0.3402 0.9643 0.9696
254 1.0471 -0.2200 1.0700 1.0700
255 0.8763 -0.4127 0.9686 0.9688
256 0.8286 -0.4924 0.9639 0.9723
257 0.8714 -0.4337 0.9733 0.9774
258 1.0206 -0.1511 1.0318 1.0379
259 0.9340 -0.4237 1.0256 1.0330
260 1.0011 -0.3575 1.0631 1.0612
261 0.9578 -0.3255 1.0116 1.0160
262 0.9382 -0.2441 0.9694 0.9683
263 0.9635 -0.3358 1.0204 1.0413
264 0.9707 -0.2405 1.0000 1.0092
265 0.9249 -0.2139 0.9493 0.9575
266 0.9443 -0.2081 0.9670 0.9711
267 0.9332 -0.2714 0.9718 0.9933
268 0.9278 -0.2827 0.9699 0.9915
269 0.9997 -0.2742 1.0366 1.0700
270 0.9248 -0.4044 1.0093 1.0579
271 0.9402 -0.3898 1.0178 1.0653
272 1.0410 -0.1913 1.0584 1.0534
273 1.0324 -0.2443 1.0610 1.0604
274 1.0227 -0.2223 1.0466 1.0550
275 1.0060 -0.3645 1.0700 1.0700
276 1.0257 -0.2440 1.0543 1.0455
277 0.9825 -0.3884 1.0565 1.0667
278 0.9808 -0.3731 1.0494 1.0574
279 0.9291 -0.4591 1.0363 1.0393
280 0.9614 -0.4097 1.0450 1.0506
281 1.0153 -0.1553 1.0271 1.0522
282 0.9573 -0.2248 0.9833 0.9972
283 0.9710 -0.3268 1.0245 1.0480
284 1.0148 -0.2278 1.0401 1.0478
285 1.0110 -0.2177 1.0342 1.0407
286 0.9997 -0.2987 1.0434 1.0613
287 1.0067 -0.2606 1.0399 1.0454
288 0.8907 -0.3360 0.9520 0.9546
289 1.0050 -0.2679 1.0401 1.0700
290 1.0097 -0.2202 1.0334 1.0397
291 0.9998 -0.2757 1.0371 1.0700
292 1.0490 -0.1868 1.0655 1.0617
293 0.9878 -0.3538 1.0492 1.0492
294 0.8456 -0.4676 0.9663 0.9707
295 0.9398 -0.2611 0.9754 0.9745
296 0.9453 -0.2799 0.9859 0.9833
297 0.9998 -0.2738 1.0367 1.0411
298 1.0050 -0.3222 1.0554 1.0700
299 0.9835 -0.1717 0.9984 1.0073
300 0.9313 -0.4048 1.0155 1.0638
0
5 5.7293 5.6918
4 2.0000 2.0000
9 5.3379 5.2651
11 7.0733 7.0885
28 3.0000 3.0000
29 3.0000 3.0000
30 6.0000 6.0000
31 3.2664 3.2460
32 5.0000 5.0000
33 5.0000 5.0000
34 1.0000 1.0000
35 4.0176 4.0537
36 6.0412 6.2637
38 6.0000 6.0000
40 1.4726 1.4494
41 3.4064 3.2301
42 2.7135 2.9160
43 3.0000 3.0000
44 14.3184 14.1409
45 9.0000 9.0000
46 4.0000 4.0000
0
1 -0.1640 -0.4426
2 1.5000 1.5000
3 -0.5000 -0.5000
4 0.1984 0.2756
5 -0.3612 -0.4807
6 0.2364 0.0580
7 -1.7162 -1.8225
8 0.2135 0.1040
9 -0.0943 -0.3148
10 0.4323 0.4246
11 -6.0000 -6.0000
28 0.5568 0.5439
29 0.2355 0.2315
30 0.6231 1.0162
31 0.5937 0.6242
32 0.9209 0.9966
33 2.0060 2.3938
34 0.0576 0.0100
35 -0.0926 0.0438
36 -2.0000 -2.0000
37 0.0000 0.0000
38 0.0617 -0.0225
39 0.0165 0.0000
40 0.2421 0.1834
41 0.3821 0.5126
42 1.5000 1.0503
43 0.5676 0.4873
44 5.8529 5.2962
45 2.1261 1.7263
46 -1.8991 -1.9034
62 0.1108 0.0256
64 0.3800 0.3800
65 0.0600 0.0600
73 0.2000 0.2000
92 -0.3000 -0.3000
100 1.0041 0.9480
102 -0.4530 -0.4574
103 -0.0499 -0.0768
106 -0.5000 -0.5000
108 -0.1000 -0.1000
116 0.8835 0.9000
117 0.3500 0.3500
122 -0.9486 -0.9958
123 -0.5728 -0.6169
124 6.4888 6.4857
133 -0.7492 -0.8976
139 0.4000 0.4000
145 0.0965 0.0294
148 0.0782 0.1000
159 0.2500 0.2500
161 0.1200 0.1200
167 -0.1100 -0.1100
168 0.0346 -0.0509
174 -0.2400 -0.2400
178 0.0242 -0.0253
179 0.3643 0.3858
186 0.1386 0.0120
189 -0.5000 -0.5000
199 -0.3050 -0.3417
203 -3.0000 -3.0000
221 1.0806 1.0139
222 0.9843 1.0000
225 -0.0034 0.0200
232 0.2000 0.2000
254 11.0963 11.0051
258 -0.0874 -0.1160
265 -0.6000 -0.6000
281 0.7548 1.0438
289 -0.2090 0.2658
0
259 0.40 0.4111 0.40 0.50
107 0.00 0.0000 0.00 0.10
200 0.40 0.4150 0.40 0.50
224 0.50 0.4755 0.40 0.50
54 0.00 0.0047 0.00 0.10
300 0.10 0.0928 0.00 0.10
0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

74
NCP函数法/seting.m Normal file
View File

@ -0,0 +1,74 @@
function [e,f,PG,QR,Pg,Qg,T,pgvNum,xNum,m,r,l,u,z,w,x,y,mu,dmaxOut1,dmaxOut2,xz1,xz2,dmaxOut3,dmaxOut4,xz3,xz4,xz5,colmut1,hx,k2,opfGoal,times,secondBegin,Tn,Tn1,capKn,capKn1,kt0,q0,...
mut,mub,oneTrans,oneCap,para1,para2,para3,mismatch,ifconverge]=seting(nodeNum,lineNum,transNum,transK0,capNum,capK,pvQmin,pvQmax,pvNum,pvNode,pvV,pgNum,pgNode,Pmin,Pmax,Pg,Qg,centrPara)
%
%201011
%%
para1=0.6; %Arlfa
para2=0.05; %Gama
para3=0.76; %
para4=1.5; %
if nodeNum==30 %
para3=0.23;
para4=2.7;
else if nodeNum==118
para3=0.3;
para4=1.5;
else if nodeNum==300
para3=0.65;
para4=1;
else if nodeNum==1047
para3=0.59;
para4=0.6;
else if nodeNum==1780
para3=0.76;
para4=1.5;
end
end
end
end
end
%% PQ10
e=ones(nodeNum,1);
f=sparse(nodeNum,1);
e(pvNode)=pvV(pvNode); %
%%
PG=(Pmin+Pmax)/2; %,
QR=(pvQmin+pvQmax)/2; %PV
Pg(pgNode)=PG(pgNode);
Qg(pvNode)=QR(pvNode);
T=1./transK0;
x=[T;PG(pgNode);QR(pvNode);capK;e;f]; %
%% l,u,z,w,y
pgvNum=pgNum+pvNum;
xNum=pgvNum+2*nodeNum+transNum+capNum; %
m=2*nodeNum; %
r=pgvNum+nodeNum+lineNum+transNum+capNum; %
s=1;
l=s*ones(r,1); %l,u,z1w-1y0
u=l;
z=l;
w=-l;
y=sparse(m,1);
Gap=l'*z-u'*w; %
mu=(centrPara*Gap)/(2*r); %
Tn=sparse(0,0);Tn1=Tn;capKn=Tn;capKn1=Tn; kt0=Tn;q0=Tn;
oneTrans=ones(transNum,1);
oneCap=ones(capNum,1);
mut=oneTrans*para4; %
mub=oneCap*para4;
dmaxOut1=[];dmaxOut2=dmaxOut1;xz1=dmaxOut1;xz2=dmaxOut1;dmaxOut3=dmaxOut1; %
dmaxOut4=dmaxOut1;xz3=dmaxOut1;xz4=dmaxOut1;xz5=dmaxOut1;colmut1=dmaxOut1;
hx=ones(m,1);
k2=0;
opfGoal=2; %
times=1; %
secondBegin=1; %
ifconverge=0; %
mismatch=0.00001; %
if nodeNum==1780 %17800.00001
mismatch=0.01; %0.010.00001
end

View File

@ -0,0 +1,58 @@
function [const,Lz,Lw,L1,U1,hx,origConst,gxx,gsx]=snd_Constant(nodeNum,opfGoal,lineNum,transNum,transI,...
transJ,transG,transB,lineI,lineJ,balNode,mu,G,B,GIJ,BIJ,e,f,Pmin,Pmax,a,b,PG,QR,pvQmin,pvQmax,...
pgNum,pgvNum,xNum,pgNode,pvNode,dhx,dgx,L1,U1,LZ,UW,l,u,y,r,dT_Zt,capNum,z,w,Vmin,Vmax,hx)
%KKT
%201011
%% f(.)
if(opfGoal==2)
dPG=ones(pgNum,1);
dfx=sparse(transNum+1:transNum+pgNum,ones(pgNum,1),dPG,xNum,1);
else if(opfGoal==1)
dPG=2*a(pgNode).*PG(pgNode)+b(pgNode);
dfx=sparse(transNum+1:transNum+pgNum,ones(pgNum,1),dPG,xNum,1);
else if(opfGoal==3)
dfT=-1*transG.*dT_Zt.*((f(transI)-f(transJ)).^2+(e(transI)-e(transJ)).^2);
dfPQ=zeros(pgvNum,1);
dfcapK=zeros(capNum,1);
EE=e*ones(1,nodeNum);
FF=f*ones(1,nodeNum);
dfe=2*sum(G.*(EE-EE'));
dff=2*sum(G.*(FF-FF'));
dfx=[dfT;dfPQ;dfcapK;dfe';dff'];
else if(opfGoal==4)
dfT=1*transB.*dT_Zt.*((f(transI)-f(transJ)).^2+(e(transI)-e(transJ)).^2);
dfPQ=zeros(pgvNum,1);
dfcapK=zeros(capNum,1);
EE=e*ones(1,nodeNum);
FF=f*ones(1,nodeNum);
dfe=2*sum(B.*(EE-EE'));
dff=2*sum(B.*(FF-FF'));
dfx=[dfT;dfPQ;dfcapK;dfe';dff'];
end
end
end
end
%%
gxv=[PG(pgNode);QR(pvNode);e.^2+f.^2]; %
gxvx=[Pmin(pgNode);pvQmin(pvNode);Vmin.*Vmin]; %
gxvs=[Pmax(pgNode);pvQmax(pvNode);Vmax.*Vmax]; %
gxl=(e(lineI).*e(lineI)+f(lineI).*f(lineI)-e(lineI).*e(lineJ)-f(lineI).*f(lineJ)).*GIJ+(e(lineI).*f(lineJ)-e(lineJ).*f(lineI)).*BIJ;%线
gxlx=-ones(lineNum,1)*1000; %线
gxls=ones(lineNum,1)*1000; %线
gx=[gxv;gxl]; %
gxx=[gxvx;gxlx];
gsx=[gxvs;gxls];
Lz=gx-l-gxx;
Lw=gx+u-gsx;
%%
muUL=mu*(U1-L1);
BB1=UW*Lw-LZ*Lz-muUL*ones(r,1);
BB=dhx*y-dfx+dgx*BB1; %ψ(.,μ)
BB(transNum+pgvNum+capNum+nodeNum+balNode,1)=0; %00
BB(transNum+pgvNum+capNum+balNode,1)=0; %
const=[BB;hx]; %
BB0=dhx*y-dfx+dgx*(z+w); %使
BB0(transNum+pgvNum+capNum+nodeNum+balNode,1)=0;
BB0(transNum+pgvNum+capNum+balNode,1)=0;
origConst=[BB0;hx];

209
NCP函数法/snd_formHSB.m Normal file
View File

@ -0,0 +1,209 @@
function [HSB,dhx,dgx,dgxT,N1,H1,diagE,diagF,GIJ,BIJ,L1,U1,LZ,UW,transG,transB,mut,mub]=snd_formHSB(nodeNum,balNode,balNum,...
opfGoal,lineNum,transNum,lineI,lineJ,transI,transJ,T,transG,transB,pgNode,pvNode,G,B,e,f,pgNum,pvNum,pgvNum,xNum,a,m,r,l,u,z,w,y,...
capNum,capI,mut,mub,dNCPT_dt,d2NCPT_dt2,dT_Zt,transGmut,transBmut,dNCP_dcap,d2NCP_dcap2,H1,N1,diagE,diagF)
%
%201011
%%
ef1=e(transI).*e(transJ)+f(transI).*f(transJ);
ef2=e(transI).*f(transJ)-e(transJ).*f(transI);
ef3=e(transI).*e(transI)+f(transI).*f(transI);
ef1G=ef1.*transGmut;
ef1B=ef1.*transBmut;
ef2G=ef2.*transGmut;
ef2B=ef2.*transBmut;
dhPTi=-ef1G+ef2B+2*ef3.*transGmut.*T;
dhPTj=-ef1G-ef2B;
dhPT=sparse(1:transNum,transI,dhPTi,transNum,nodeNum)+sparse(1:transNum,transJ,dhPTj,transNum,nodeNum);%P
dhQTi=ef1B+ef2G-2*ef3.*transBmut.*T;
dhQTj=ef1B-ef2G;
dhQT=sparse(1:transNum,transI,dhQTi,transNum,nodeNum)+sparse(1:transNum,transJ,dhQTj,transNum,nodeNum);%Q
dhNCP_T=sparse(1:transNum,1:transNum,dNCPT_dt,transNum,transNum+capNum);
dhP=sparse(1:pgNum,pgNode,ones(pgNum,1),pgNum,m);
dhQ1=sparse(1:pvNum,pvNode,ones(pvNum,1),pvNum,m-nodeNum);
dhQ=[sparse(pvNum,nodeNum) dhQ1];
dhcapK1=sparse(1:capNum,capI,(e(capI).^2+f(capI).^2),capNum,nodeNum);
dhNCP_capK=sparse(1:capNum,transNum+1:transNum+capNum,dNCP_dcap,capNum,transNum+capNum);%
dhcapK=[sparse(capNum,nodeNum) dhcapK1 dhNCP_capK];
%
deG=diagE*G;
dfB=diagF*B;
deB=diagE*B;
dfG=diagF*G;
dH1=sparse(1:nodeNum,1:nodeNum,H1,nodeNum,nodeNum);
dN1=sparse(1:nodeNum,1:nodeNum,N1,nodeNum,nodeNum);
Hij=-dH1-deG-dfB;
Nij=-dN1+deB-dfG;
Jij=dN1-dfG+deB;
Lij=-dH1+dfB+deG;
dhJacb=[Hij Nij;Jij Lij]'; %
dhT=[dhPT dhQT dhNCP_T];
dhx=[dhT;dhP;dhQ;dhcapK;dhJacb sparse(2*nodeNum,transNum+capNum)]; %h(x)
%% g(x)
gtransNum=0; %NCP
gcapNum=0;
dgT1=sparse(transNum,r-lineNum);
dglT=(e(transI).^2+f(transI).^2-e(transI).*e(transJ)-f(transI).*f(transJ)).*transGmut+(e(transI).*f(transJ)-e(transJ).*f(transI)).*transBmut;
dgT2=sparse(1:transNum,lineNum-transNum+1:lineNum,dglT,transNum,lineNum);
dgT=[dgT1 dgT2]; %
dgP=sparse(1:pgNum,gtransNum+1:gtransNum+pgNum,ones(pgNum,1),pgNum,r); %P
dgQ=sparse(1:pvNum,gtransNum+pgNum+1:gtransNum+pgvNum,ones(pvNum,1),pvNum,r);%Q
dgcapK=sparse(capNum,r); %capK
dgve=2*diagE;
dgvf=2*diagF;
sizeG=size(G);
GIJ=G(sub2ind(sizeG,lineI,lineJ));
BIJ=B(sub2ind(sizeG,lineI,lineJ));
dgleI=(2*e(lineI)-e(lineJ)).*GIJ+f(lineJ).*BIJ;
dgleJ=-e(lineI).*GIJ-f(lineI).*BIJ;
dglfI=(2*f(lineI)-f(lineJ)).*GIJ-e(lineJ).*BIJ;
dglfJ=-f(lineI).*GIJ+e(lineI).*BIJ;
dgle=sparse(lineI,(1:lineNum),dgleI,nodeNum,lineNum)+sparse(lineJ,(1:lineNum),dgleJ,nodeNum,lineNum);
dglf=sparse(lineI,(1:lineNum),dglfI,nodeNum,lineNum)+sparse(lineJ,(1:lineNum),dglfJ,nodeNum,lineNum);
dg0=sparse(2*nodeNum,gtransNum+pgvNum+gcapNum);
dgvl=[dgve dgle;dgvf dglf];
dgef=[dg0 dgvl]; %
dgx=[dgT;dgP;dgQ;dgcapK;dgef]; %
%%
Z=sparse(1:r,1:r,z,r,r);
W=sparse(1:r,1:r,w,r,r);
L1=sparse(1:r,1:r,1./l,r,r);
U1=sparse(1:r,1:r,1./u,r,r);
LZ=L1*Z;
UW=U1*W;
%%
%2f(x)
if(opfGoal==2)
HSdfx=sparse(xNum,xNum);
else if(opfGoal==1)
HSdfx=sparse(transNum+1:transNum+pgNum,transNum+1:transNum+pgNum,2*a(pgNode),xNum,xNum);%PG0()
else if(opfGoal==3)
d2ftei=-2*transGmut.*(e(transI)-e(transJ));
d2ftej=-d2ftei;
d2ftfi=-2*transGmut.*(f(transI)-f(transJ));
d2ftfj=-d2ftfi;
d2fte=sparse(1:transNum,transI,d2ftei,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftej,transNum,nodeNum);
d2ftf=sparse(1:transNum,transI,d2ftfi,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftfj,transNum,nodeNum);
d2fT0=sparse(transNum,transNum+pgvNum+capNum);
d2fT=[d2fT0 d2fte d2ftf];
d2fPGQR=sparse(pgvNum,xNum);
d2fcapK=sparse(capNum,xNum);
d2fee=2*(G-sparse(1:nodeNum,1:nodeNum,sum(G,2),nodeNum,nodeNum));
d2fff=d2fee;
zero_nodeNum=sparse(nodeNum,nodeNum);
d2f_ef_ef=[d2fee zero_nodeNum;zero_nodeNum d2fff];
d2efT=[d2fte d2ftf]';
d2f_ef=[d2efT sparse(2*nodeNum,pgvNum+capNum) d2f_ef_ef];
HSdfx=[d2fT;d2fPGQR;d2fcapK;d2f_ef];
else if(opfGoal==4)
d2ftei=2*transBmut.*(e(transI)-e(transJ));
d2ftej=-d2ftei;
d2ftfi=2*transBmut.*(f(transI)-f(transJ));
d2ftfj=-d2ftfi;
d2fte=sparse(1:transNum,transI,d2ftei,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftej,transNum,nodeNum);
d2ftf=sparse(1:transNum,transI,d2ftfi,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftfj,transNum,nodeNum);
d2fT0=sparse(transNum,transNum+pgvNum+capNum);
d2fT=[d2fT0 d2fte d2ftf];
d2fPGQR=sparse(pgvNum,xNum);
d2fcapK=sparse(capNum,xNum);
d2fee=-2*(B-sparse(1:nodeNum,1:nodeNum,sum(B,2),nodeNum,nodeNum));
d2fff=d2fee;
zero_nodeNum=sparse(nodeNum,nodeNum);
d2f_ef_ef=[d2fee zero_nodeNum;zero_nodeNum d2fff];
d2efT=[d2fte d2ftf]';
d2f_ef=[d2efT sparse(2*nodeNum,pgvNum+capNum) d2f_ef_ef];
HSdfx=[d2fT;d2fPGQR;d2fcapK;d2f_ef];
end
end
end
end
%y2h(x)*y
y1=y(1:nodeNum,1);
y2=y(nodeNum+1:2*nodeNum,1);
y3=y(2*nodeNum+1:2*nodeNum+transNum,1);
y4=y(2*nodeNum+transNum+1:end,1);
d2P_T2=(2*ef3.*transG.*dT_Zt).*y1(transI);
d2Q_T2=(-2*ef3.*transB.*dT_Zt).*y2(transI);
dh2NCP_T2=d2NCPT_dt2.*y3;
dhT2=d2P_T2+d2Q_T2+dh2NCP_T2; %
HSdhT=sparse(1:transNum,1:transNum,dhT2,transNum+pgvNum+capNum,transNum+pgvNum+capNum)+...
sparse(transNum+pgvNum+1:transNum+pgvNum+capNum,transNum+pgvNum+1:transNum+pgvNum+capNum,d2NCP_dcap2.*y4,transNum+pgvNum+capNum,transNum+pgvNum+capNum);
eiG=e(transI).*transGmut;
ejG=e(transJ).*transGmut;
eiB=e(transI).*transBmut;
ejB=e(transJ).*transBmut;
fiG=f(transI).*transGmut;
fjG=f(transJ).*transGmut;
fiB=f(transI).*transBmut;
fjB=f(transJ).*transBmut;
ejG_fjB=ejG-fjB;
ejGfjB=ejG+fjB;
fjGejB=fjG+ejB;
ejB_fjG=ejB-fjG;
eiGfiB=eiG+fiB;
eiG_fiB=eiG-fiB;
eiB_fiG=eiB-fiG;
fiGeiB=fiG+eiB;
dP2_ei_t=(4*eiG.*T-ejG_fjB).*y1(transI)-ejGfjB.*y1(transJ);
dP2_ej_t=-eiGfiB.*y1(transI)-eiG_fiB.*y1(transJ);
dQ2_ei_t=(-4*eiB.*T+fjGejB).*y2(transI)+ejB_fjG.*y2(transJ);
dQ2_ej_t=eiB_fiG.*y2(transI)+fiGeiB.*y2(transJ);
HSdh_et=sparse(1:transNum,transI,dP2_ei_t+dQ2_ei_t,transNum,nodeNum)+sparse(1:transNum,transJ,dP2_ej_t+dQ2_ej_t,transNum,nodeNum);%
dP2_fi_t=(4*fiG.*T-fjGejB).*y1(transI)+ejB_fjG.*y1(transJ);
dP2_fj_t=eiB_fiG.*y1(transI)-fiGeiB.*y1(transJ);
dQ2_fi_t=(-4*fiB.*T-ejG_fjB).*y2(transI)+ejGfjB.*y2(transJ);
dQ2_fj_t=eiGfiB.*y2(transI)-eiG_fiB.*y2(transJ);
HSdh_ft=sparse(1:transNum,transI,dP2_fi_t+dQ2_fi_t,transNum,nodeNum)+sparse(1:transNum,transJ,dP2_fj_t+dQ2_fj_t,transNum,nodeNum);%
HSdh_eft=[HSdh_et HSdh_ft];
HSdh_tef=HSdh_eft';
HSdhPQ=sparse(pgvNum,2*nodeNum); %PGQR
d2hcap_e=sparse(1:capNum,capI,2*e(capI).*y2(capI),capNum,nodeNum); %capKe
d2hcap_f=sparse(1:capNum,capI,2*f(capI).*y2(capI),capNum,nodeNum); %capKf
HSdhcap_ef=[d2hcap_e d2hcap_f];
d2htPQ_ef=[HSdh_eft;HSdhPQ;HSdhcap_ef];
HSdhtPQ=[HSdhT d2htPQ_ef];
HSdhx1=sparse(2*nodeNum,pgvNum);
%
diagy1=sparse(1:nodeNum,1:nodeNum,y1,nodeNum,nodeNum);
diagy2=sparse(1:nodeNum,1:nodeNum,y2,nodeNum,nodeNum);
HSdhey=-diagy1*G+diagy2*B+(-G*diagy1+B*diagy2);
HSdhefy=diagy1*B+diagy2*G-(B*diagy1+G*diagy2);
HSdhx2=[HSdhey HSdhefy;HSdhefy' HSdhey];
HSdhx=[HSdhtPQ;HSdh_tef HSdhx1 HSdhcap_ef' HSdhx2];
%2g(x)*(z+w)
ZWcl=z(gtransNum+pgvNum+gcapNum+nodeNum+1:end)+w(gtransNum+pgvNum+gcapNum+nodeNum+1:end);
ZWv=z(gtransNum+pgvNum+gcapNum+1:gtransNum+pgvNum+gcapNum+nodeNum)+w(gtransNum+pgvNum+gcapNum+1:gtransNum+pgvNum+gcapNum+nodeNum);
dgeiT=((2*e(transI)-e(transJ)).*transGmut+f(transJ).*transBmut).*ZWcl(lineNum-transNum+1:end);
dgejT=(-e(transI).*transGmut-f(transI).*transBmut).*ZWcl(lineNum-transNum+1:end);
dgeT=sparse(1:transNum,transI,dgeiT,transNum,nodeNum)+sparse(1:transNum,transJ,dgejT,transNum,nodeNum);%e
dgfiT=((2*f(transI)-f(transJ)).*transGmut-e(transJ).*transBmut).*ZWcl(lineNum-transNum+1:end);
dgfjT=(-f(transI).*transGmut+e(transI).*transBmut).*ZWcl(lineNum-transNum+1:end);
dgfT=sparse(1:transNum,transI,dgfiT,transNum,nodeNum)+sparse(1:transNum,transJ,dgfjT,transNum,nodeNum);%f
HSdgefT=[dgeT dgfT];
HSdgT=[sparse(transNum,transNum+pgvNum+capNum) HSdgefT];
HSdgee=sparse(lineI,lineI,2*GIJ.*ZWcl,nodeNum,nodeNum)-sparse(lineI,lineJ,GIJ.*ZWcl,nodeNum,nodeNum)...
-sparse(lineJ,lineI,GIJ.*ZWcl,nodeNum,nodeNum)+sparse(1:nodeNum,1:nodeNum,2*ZWv,nodeNum,nodeNum);
HSdgff=HSdgee;
HSdgef=sparse(lineI,lineJ,BIJ.*ZWcl,nodeNum,nodeNum)-sparse(lineJ,lineI,BIJ.*ZWcl,nodeNum,nodeNum);
HSdgfe=HSdgef'; %ef
HSdgx1=[HSdgee HSdgef;HSdgfe HSdgff];
HSdgxtPQ_0=sparse(pgvNum+capNum,xNum);
HSdgef_0=[HSdgefT' sparse(2*nodeNum,pgvNum+capNum)];
HSdgx=[HSdgT;HSdgxtPQ_0;HSdgef_0 HSdgx1]; %
dgxT=dgx'; %dgx
MULdgx=dgx*(UW-LZ)*dgxT;
H=HSdhx+HSdgx-HSdfx+MULdgx; %H(.).
%%
HSB0=sparse(m,m);
HSB=[H dhx;dhx' HSB0];
balN=transNum+pgvNum+capNum+nodeNum+balNode;
HSB(balN,:)=0; %001
HSB(:,balN)=0;
HSB_balN=sub2ind(size(HSB),balN,balN);
HSB(HSB_balN)=ones(balNum,1);
balN1=transNum+pgvNum+capNum+balNode;
HSB(balN1,:)=0; %001
HSB(:,balN1)=0;
HSB_balN1=sub2ind(size(HSB),balN1,balN1);
HSB(HSB_balN1)=ones(balNum,1);

View File

@ -0,0 +1,28 @@
function [secondBegin,m,r,l,u,z,w,y,Gama,Arlfa,meritF,firstT,firstcapK,firstfx,Gap,mu,Vfirst,Pgfirst,Qgfirst]=...
snd_setting(secondBegin,transNum,T,m,r,capNum,capK,para1,para2,fx,centrPara,e,f,Pg,Qg)
%
%201011
%%
secondBegin=secondBegin-1;
Gama=para2;
Arlfa=para1;
meritF=[]; %
m=m+transNum+capNum; %
r=r-transNum-capNum; %线,
clear l u z w y;
s=1; %
l=s*ones(r,1);
u=l;
z=l;
w=-l;
y=sparse(m,1);
Gap=l'*z-u'*w; %
mu=(centrPara*Gap)/(2*r); %
%%
firstT=T;
firstcapK=capK;
firstfx=fx;
Vfirst=sqrt(e.*e+f.*f);
Pgfirst=Pg;
Qgfirst=Qg;

75
NCP函数法/snd_solve.m Normal file
View File

@ -0,0 +1,75 @@
function [z,l,u,w,x,y,PG,QR,Pg,Qg,e,f,T,G,B,capK,meritF]=snd_solve(HSB,const,mu,r,nodeNum,balNode,pgNum,pvNum,pgvNum,xNum,...
transNum,pgNode,pvNode,m,Lz,Lw,LZ,UW,dgxT,L1,U1,transI,transJ,transG,transB,transG1,transB1,Tn,capKn,capNum,...
capI,Tn1,capKn1,x,y,z,l,u,w,G,B,PG,QR,Pg,Qg,opfGoal,Gama,Arlfa,meritF,k2,T,capK,lineNum,lineI,lineJ,Pd,Qd,gxx,gsx,mut,mub)
%
%201011
%%
dX=-HSB\const;
dx=dX(1:xNum,1);
dy=dX(xNum+1:xNum+m,1);
dl=dgxT*dx+Lz;
du=-dgxT*dx-Lw;
Ll=(l.*z-mu*ones(r,1));
Lu=(u.*w+mu*ones(r,1));
diagZ=sparse(1:r,1:r,z,r,r);
diagW=sparse(1:r,1:r,w,r,r);
dz=-LZ*dgxT*dx-L1*(diagZ*Lz+Ll);
dw=UW*dgxT*dx+U1*(diagW*Lw-Lu);
L3=-L1*(diagZ*Lz+Ll);
L4=U1*(diagW*Lw-Lu);
L5=Lz;
L6=Lw;
f_NCP1=[const;L3;L4;L5;L6];
f_NCPsum1=(f_NCP1'*f_NCP1)/2;
meritF=[meritF;f_NCPsum1];
minusdz=find(dz<0);
dzmin=min(-z(minusdz)./dz(minusdz));
minusdl=find(dl<0);
dlmin=min(-l(minusdl)./dl(minusdl));
minusdw=find(dw>0);
dwmin=min(-w(minusdw)./dw(minusdw));
minusdu=find(du<0);
dumin=min(-u(minusdu)./du(minusdu));
ap=min(dlmin,dumin);
ad=min(dzmin,dwmin);
stepp=0.9995*min(ap,1);
stepd=0.9995*min(ad,1);
%% 线
[mk,meritF,stepp,stepd]=linesearch(r,nodeNum,balNode,pgNum,pvNum,pgvNum,...
xNum,transNum,pgNode,pvNode,m,x,y,z,l,u,w,G,B,transI,transJ,transG,transB,transG,transB,...
Tn,capKn,capNum,capI,Tn1,capKn1,PG,QR,Pg,Qg,dx,dl,du,dy,dz,dw,...
opfGoal,Gama,Arlfa,meritF,k2,mu,T,capK,lineNum,lineI,lineJ,Pd,Qd,gxx,gsx,mut,mub,stepp,stepd);
%%
x=x+stepp*dx;
l=l+stepp*dl;
u=u+stepp*du;
y=y+stepd*dy;
z=z+stepd*dz;
w=w+stepd*dw;
%
Tlast=T;
capKlast=capK;
%
T=x(1:transNum,1);
capK=x(transNum+pgvNum+1:transNum+pgvNum+capNum);
PG(pgNode,1)=x(transNum+1:transNum+pgNum,1);
QR(pvNode,1)=x(transNum+pgNum+1:transNum+pgNum+pvNum,1);
e=x(transNum+pgNum+pvNum+capNum+1:transNum+pgNum+pvNum+capNum+nodeNum,1);
f=x(transNum+pgNum+pvNum+capNum+nodeNum+1:xNum,1);
Pg(pgNode)=PG(pgNode);
Qg(pvNode)=QR(pvNode);
%%
transG=transG1;
transB=transB1;
G=G-sparse(transI,transI,(T.*T-Tlast.*Tlast).*transG,nodeNum,nodeNum)...
+sparse(transI,transJ,transG.*(T-Tlast),nodeNum,nodeNum)...
+sparse(transJ,transI,transG.*(T-Tlast),nodeNum,nodeNum);
B=B-sparse(transI,transI,(T.*T-Tlast.*Tlast).*transB,nodeNum,nodeNum)...
+sparse(transI,transJ,transB.*(T-Tlast),nodeNum,nodeNum)...
+sparse(transJ,transI,transB.*(T-Tlast),nodeNum,nodeNum)...
+sparse(capI,capI,capK-capKlast,nodeNum,nodeNum);

101
NCP函数法/solve.m Normal file
View File

@ -0,0 +1,101 @@
function [z,l,u,w,x,y,PG,QR,Pg,Qg,e,f,T,capK,G,B]=solve(HSB,const,mu,r,nodeNum,balNode,pgNum,pvNum,xNum,transNum,capNum,capI,capBi,capK,...
pgNode,pvNode,m,x,y,z,l,u,w,Lz,Lw,LZ,UW,dgxT,L1,U1,G,B,transI,transJ,T,transG,transB,transG1,transB1,PG,QR,Pg,Qg)
%
%201011
%%
dX=-HSB\const;
dx=dX(1:xNum,1);
dy=dX(xNum+1:xNum+m,1);
dl=dgxT*dx+Lz;
du=-dgxT*dx-Lw;
Ll=(l.*z-mu*ones(r,1));
Lu=(u.*w+mu*ones(r,1));
diagZ=sparse(1:r,1:r,z,r,r);
diagW=sparse(1:r,1:r,w,r,r);
dz=-LZ*dgxT*dx-L1*(diagZ*Lz+Ll);
dw=UW*dgxT*dx+U1*(diagW*Lw-Lu);
%%
minusdz=find(dz<0);
dzmin=min(-z(minusdz)./dz(minusdz));
minusdl=find(dl<0);
dlmin=min(-l(minusdl)./dl(minusdl));
minusdw=find(dw>0);
dwmin=min(-w(minusdw)./dw(minusdw));
minusdu=find(du<0);
dumin=min(-u(minusdu)./du(minusdu));
ap=min(dlmin,dumin);
ad=min(dzmin,dwmin);
stepp=0.9995*min(ap,1);
stepd=0.9995*min(ad,1);
%%
x=x+stepp*dx;
l=l+stepp*dl;
u=u+stepp*du;
y=y+stepd*dy;
z=z+stepd*dz;
w=w+stepd*dw;
%%
Tlast=T; %
capKlast=capK;
T=x(1:transNum,1);
PG(pgNode,1)=x(transNum+1:transNum+pgNum,1);
QR(pvNode,1)=x(transNum+pgNum+1:transNum+pgNum+pvNum,1);
capK=x(transNum+pgNum+pvNum+1:transNum+pgNum+pvNum+capNum,1);
e=x(transNum+pgNum+pvNum+capNum+1:transNum+pgNum+pvNum+capNum+nodeNum,1);
f=x(transNum+pgNum+pvNum+capNum+nodeNum+1:xNum,1);
Pg(pgNode)=PG(pgNode);
Qg(pvNode)=QR(pvNode);
%%
transG=transG1;
transB=transB1;
G=G-sparse(transI,transI,(T.*T-Tlast.*Tlast).*transG,nodeNum,nodeNum)...
+sparse(transI,transJ,transG.*(T-Tlast),nodeNum,nodeNum)...
+sparse(transJ,transI,transG.*(T-Tlast),nodeNum,nodeNum);
B=B-sparse(transI,transI,(T.*T-Tlast.*Tlast).*transB,nodeNum,nodeNum)...
+sparse(transI,transJ,transB.*(T-Tlast),nodeNum,nodeNum)...
+sparse(transJ,transI,transB.*(T-Tlast),nodeNum,nodeNum)...
+sparse(capI,capI,capK-capKlast,nodeNum,nodeNum);
% GTii=sub2ind(size(G),transI,transI); %GTijGijG
% GTij=sub2ind(size(G),transI,transJ);
% GTji=sub2ind(size(G),transJ,transI);
% BTii=sub2ind(size(B),transI,transI);
% BTij=sub2ind(size(B),transI,transJ);
% BTji=sub2ind(size(B),transJ,transI);
% for i=1:length(GTii)
% G(GTii(i))=G(GTii(i))-(T(i).*T(i)-Tlast(i).*Tlast(i)).*transG(i);
% end
% for i=1:length(GTij)
% G(GTij(i))=G(GTij(i))+transG(i).*(T(i)-Tlast(i));
% end
% for i=1:length(GTji)
% G(GTji(i))=G(GTji(i))+transG(i).*(T(i)-Tlast(i));
% end
% % G(GTij)=G(GTij)+transG.*(T-Tlast);
% % G(GTji)=G(GTij);
% for i=1:length(BTii)
% B(BTii(i))=B(BTii(i))-(T(i).*T(i)-Tlast(i).*Tlast(i)).*transB(i);
% end
% for i=1:length(BTij)
% B(BTij(i))=B(BTij(i))+transB(i).*(T(i)-Tlast(i));
% end
% for i=1:length(BTji)
% B(BTji(i))=B(BTji(i))+transB(i).*(T(i)-Tlast(i));
% end
% % B(BTij)=B(BTij)+transB.*(T-Tlast);
% % B(BTji)=B(BTij);
% deG=G-newG;
% deB=B-newB;
% G(708,708)
% newG(708,708)
% [Grows,Gcols,G1] = find(deG);
% [Brows,Bcols,B1] = find(deB);
% Bcapii=sub2ind(size(B),capI,capI);
% B(Bcapii)=B(Bcapii)+(capK-capKlast);%2011105*capBi.
% aa=0;
% for i=1:100000
% aa=aa+1/1.1;
% end
% bb=0;
% bb=bb+sparse(ones(100000,1),ones(100000,1),1/1.1*ones(100000,1),1,1);

View File

@ -0,0 +1,59 @@
function [const,Lz,Lw,L1,U1]=Constant(nodeNum,opfGoal,lineNum,transNum,transI,transJ,transG,transB,T,transKmin,transKmax,lineI,lineJ,balNode,...
mu,G,B,GIJ,BIJ,e,f,Pmin,Pmax,a,b,PG,QR,pvQmin,pvQmax,pgNum,pgvNum,xNum,capNum,capK,capKmin,capKmax,pgNode,pvNode,dhx,dgx,L1,U1,LZ,UW,l,u,...
y,r,hx,Vmax,Vmin,capBi)
%KKT
%201010
%% f(.)
if(opfGoal==2)
dPG=ones(pgNum,1);
dfx=sparse(transNum+1:transNum+pgNum,ones(pgNum,1),dPG,xNum,1);
else if(opfGoal==1)
dPG=2*a(pgNode).*PG(pgNode)+b(pgNode);
dfx=sparse(transNum+1:transNum+pgNum,ones(pgNum,1),dPG,xNum,1);
else if(opfGoal==3)
dfT=-transG.*((f(transI)-f(transJ)).^2+(e(transI)-e(transJ)).^2);
dfPQ=zeros(pgvNum,1);
dfcapK=zeros(capNum,1);
EE=e*ones(1,nodeNum);
FF=f*ones(1,nodeNum);
dfe=2*sum(G.*(EE-EE'));
dff=2*sum(G.*(FF-FF'));
dfx=[dfT;dfPQ;dfcapK;dfe';dff'];
else if(opfGoal==4)
dfT=transB.*((f(transI)-f(transJ)).^2+(e(transI)-e(transJ)).^2);
dfPQ=zeros(pgvNum,1);
dfcapK=zeros(capNum,1);
EE=e*ones(1,nodeNum);
FF=f*ones(1,nodeNum);
dfe=-2*sum(B.*(EE-EE'));
dff=-2*sum(B.*(FF-FF'));
dfx=[dfT;dfPQ;dfcapK;dfe';dff'];
end
end
end
end
%%
gxv=[PG(pgNode);QR(pvNode);capK;e.^2+f.^2]; %
gxvx=[Pmin(pgNode);pvQmin(pvNode);capKmin.*capBi;Vmin.*Vmin]; %
gxvs=[Pmax(pgNode);pvQmax(pvNode);capKmax.*capBi;Vmax.*Vmax]; %
gxl=(e(lineI).*e(lineI)+f(lineI).*f(lineI)-e(lineI).*e(lineJ)-f(lineI).*f(lineJ)).*GIJ+(e(lineI).*f(lineJ)-e(lineJ).*f(lineI)).*BIJ;%线
gxlx=-ones(lineNum,1)*1000; %线
gxls=ones(lineNum,1)*1000; %线
gxT=T;
gxTx=transKmin; %
gxTs=transKmax; %
gx=[gxT;gxv;gxl]; %
gxx=[gxTx;gxvx;gxlx];
gsx=[gxTs;gxvs;gxls];
Lz=gx-l-gxx;
Lw=gx+u-gsx;
%%
muUL=mu*(U1-L1);
BB1=UW*Lw-LZ*Lz-muUL*ones(r,1);
BB=dhx*y-dfx+dgx*BB1; %ψ(.,μ)
BB(transNum+pgvNum+capNum+nodeNum+balNode,1)=0; %00
BB(transNum+pgvNum+capNum+balNode,1)=0; %
const=[BB;hx]; %

View File

@ -0,0 +1,425 @@
118 179 100 100 0.1
1.e-5 2
1 69
0
1 1 2 0.0303 0.0999 0.0127
2 1 3 0.0129 0.0424 0.00541
3 4 5 0.00176 0.00798 0.00105
4 3 5 0.0241 0.1080 0.0142
5 5 6 0.0119 0.0540 0.00713
6 6 7 0.00459 0.0208 0.00275
7 8 9 0.00244 0.0305 0.5810
9 9 10 0.00258 0.0322 0.6150
10 4 11 0.0209 0.0688 0.00874
11 5 11 0.0203 0.0682 0.00869
12 11 12 0.00595 0.0196 0.00251
13 2 12 0.0187 0.0616 0.00786
14 3 12 0.0484 0.1600 0.0203
15 7 12 0.00862 0.0340 0.00437
16 11 13 0.02225 0.0731 0.00938
17 12 14 0.0215 0.0707 0.00908
18 13 15 0.0744 0.2444 0.03134
19 14 15 0.0595 0.1950 0.0251
20 12 16 0.0212 0.0834 0.0107
21 15 17 0.0132 0.0437 0.0222
22 16 17 0.0454 0.1801 0.0233
23 17 18 0.0123 0.0505 0.00649
24 18 19 0.01119 0.0493 0.00571
25 19 20 0.0252 0.1170 0.0149
26 15 19 0.0120 0.0394 0.00505
27 20 21 0.0183 0.0849 0.0108
28 21 22 0.0209 0.0970 0.0123
29 22 23 0.0342 0.1590 0.0202
30 23 24 0.0135 0.0492 0.0249
31 23 25 0.0156 0.0800 0.0432
33 25 27 0.0318 0.1630 0.0882
34 27 28 0.01913 0.0855 0.0108
35 28 29 0.0237 0.0943 0.0119
37 8 30 0.00431 0.0504 0.2570
38 26 30 0.00799 0.0860 0.4540
39 17 31 0.0474 0.1563 0.01995
40 29 31 0.0108 0.0331 0.00415
41 23 32 0.0317 0.1153 0.05865
42 31 32 0.0298 0.0985 0.01255
43 27 32 0.0229 0.0755 0.00963
44 15 33 0.0380 0.1244 0.01597
45 19 34 0.0752 0.2470 0.0316
46 35 36 0.00224 0.0102 0.00124
47 35 37 0.0110 0.0497 0.00659
48 33 37 0.0415 0.1420 0.0183
49 34 36 0.00871 0.0268 0.00284
50 34 37 0.00256 0.0094 0.00429
52 37 39 0.0321 0.1060 0.0135
53 37 40 0.0593 0.1680 0.0210
54 30 38 0.00464 0.0540 0.2110
55 39 40 0.0184 0.0605 0.00776
56 40 41 0.0145 0.0487 0.00611
57 40 42 0.0555 0.1830 0.0233
58 41 42 0.0410 0.1350 0.0172
59 43 44 0.0608 0.2454 0.03034
60 34 43 0.0413 0.1681 0.02113
61 44 45 0.0224 0.0901 0.0112
62 45 46 0.0400 0.1356 0.0166
63 46 47 0.0380 0.1270 0.0158
64 46 48 0.0601 0.1890 0.0236
65 47 49 0.0191 0.0625 0.00802
66 42 49 0.03575 0.1615 0.0860
67 45 49 0.0684 0.1860 0.0222
68 48 49 0.0179 0.0505 0.00629
69 49 50 0.0267 0.0752 0.00937
70 49 51 0.0486 0.1370 0.0171
71 51 52 0.0203 0.0588 0.00698
72 52 53 0.0405 0.1635 0.02029
73 53 54 0.0263 0.1220 0.0155
74 49 54 0.03976 0.1450 0.0734
75 54 55 0.0169 0.0707 0.0101
76 54 56 0.00275 0.00955 0.00366
77 55 56 0.00488 0.0151 0.00187
78 56 57 0.0343 0.0966 0.0121
79 50 57 0.0474 0.1340 0.0166
80 56 58 0.0343 0.0966 0.0121
81 51 58 0.0255 0.0719 0.00894
82 54 59 0.0503 0.2293 0.0299
83 56 59 0.04069 0.12243 0.05525
84 55 59 0.04739 0.2158 0.02823
85 59 60 0.0317 0.1450 0.0188
86 59 61 0.0328 0.1500 0.0194
87 60 61 0.00264 0.0135 0.00728
88 60 62 0.0123 0.0561 0.00734
89 61 62 0.00824 0.0376 0.0049
91 63 64 0.00172 0.0200 0.1080
93 38 65 0.00901 0.0986 0.5230
94 64 65 0.00269 0.0302 0.1900
95 49 66 0.0090 0.04595 0.0248
96 62 66 0.0482 0.2180 0.0289
97 62 67 0.0258 0.1170 0.0155
99 66 67 0.0224 0.1015 0.01341
100 65 68 0.00138 0.0160 0.3190
101 47 69 0.0844 0.2778 0.03546
102 49 69 0.0985 0.3240 0.0414
104 69 70 0.0300 0.1270 0.0610
105 24 70 0.10221 0.4115 0.05099
106 70 71 0.00882 0.0355 0.00439
107 24 72 0.0488 0.1960 0.0244
108 71 72 0.0446 0.1800 0.02222
109 71 73 0.00866 0.0454 0.00589
110 70 74 0.0401 0.1323 0.01684
111 70 75 0.0428 0.1410 0.0180
112 69 75 0.0405 0.1220 0.0620
113 74 75 0.0123 0.0406 0.00517
114 76 77 0.0444 0.1480 0.0184
115 69 77 0.0309 0.1010 0.0519
116 75 77 0.0601 0.1999 0.02489
117 77 78 0.00376 0.0124 0.00632
118 78 79 0.00546 0.0244 0.00324
119 77 80 0.01077 0.03318 0.0350
120 79 80 0.0156 0.0704 0.00945
121 68 81 0.00175 0.0202 0.4040
123 77 82 0.0298 0.0853 0.04087
124 82 83 0.0112 0.03665 0.01898
125 83 84 0.0625 0.1320 0.0129
126 83 85 0.0430 0.1480 0.0174
127 84 85 0.0302 0.0641 0.00617
128 85 86 0.0350 0.1230 0.0138
129 86 87 0.02828 0.2074 0.02225
130 85 88 0.0200 0.1020 0.0138
131 85 89 0.0239 0.1730 0.0235
132 88 89 0.0139 0.0712 0.00969
133 89 90 0.01631 0.06515 0.0794
134 90 91 0.0254 0.0836 0.0107
135 89 92 0.00791 0.03827 0.0481
136 91 92 0.0387 0.1272 0.01634
137 92 93 0.0258 0.0848 0.0109
138 92 94 0.0481 0.1580 0.0203
139 93 94 0.0223 0.0732 0.00938
140 94 95 0.0132 0.0434 0.00555
141 80 96 0.0356 0.1820 0.0247
142 82 96 0.0162 0.0530 0.0272
143 94 96 0.0269 0.0869 0.0115
144 80 97 0.0183 0.0934 0.0127
145 80 98 0.0238 0.1080 0.0143
146 80 99 0.0454 0.2060 0.0273
148 94 100 0.0178 0.0580 0.0302
149 95 96 0.0171 0.0547 0.00737
150 96 97 0.0173 0.0885 0.0120
151 98 100 0.0397 0.1790 0.0238
152 99 100 0.0180 0.0813 0.0108
153 100 101 0.0277 0.1262 0.0164
154 92 102 0.0123 0.0559 0.00732
155 101 102 0.0246 0.1120 0.0147
156 100 103 0.0160 0.0525 0.0268
157 100 104 0.0451 0.2040 0.02705
158 103 104 0.0466 0.1584 0.02035
159 103 105 0.0535 0.1625 0.0204
160 100 106 0.0605 0.2290 0.0310
161 104 105 0.00994 0.0378 0.00493
162 105 106 0.0140 0.0547 0.00717
163 105 107 0.0530 0.1830 0.0236
164 105 108 0.0261 0.0703 0.09222
166 108 109 0.0105 0.0288 0.0038
167 103 110 0.03906 0.1813 0.02305
168 109 110 0.0278 0.0762 0.0101
169 110 111 0.0220 0.0755 0.0100
170 110 112 0.0247 0.0640 0.0310
171 17 113 0.00913 0.0301 0.00384
172 32 113 0.0615 0.2030 0.0259
173 32 114 0.0135 0.0612 0.00814
174 27 115 0.0164 0.0741 0.00986
175 114 115 0.0023 0.0104 0.00138
176 68 116 0.00034 0.00405 0.0820
177 12 117 0.0329 0.1400 0.0179
178 75 118 0.01450 0.04810 0.00599
179 76 118 0.0164 0.0544 0.00678
0
5 -0.4
37 -0.25
45 .1
46 .1
79 .2
83 .1
110 .06
0
1 8 5 0.0 0.0267 0.9850 0.9 1.1 1
2 25 26 0.0 0.0382 0.9600 0.9 1.1 1
3 17 30 0.0 0.0388 0.9600 0.9 1.1 1
4 37 38 0.0 0.0375 0.9350 0.9 1.1 1
5 59 63 0.0 0.0386 0.9600 0.9 1.1 1
6 61 64 0.0 0.0268 0.9850 0.9 1.1 1
7 65 66 0.0 0.0370 0.9350 0.9 1.1 1
8 68 69 0.0 0.0370 0.9350 0.9 1.1 1
9 80 81 0.0 0.0370 0.9350 0.9 1.1 1
10 92 100 0.0648 0.2950 1. 0.9 1.1 0
11 106 107 0.0530 0.1830 1. 0.9 1.1 0
0
1 0. 0. 51. 27.
2 0. 0. 20. 9.
3 0. 0. 39. 10.
4 -9. 0. 30. 12.
5 0. 0. 0. 0.
6 0. 0. 52. 22.
7 0. 0. 19. 2.
8 -28. 0. 0. 0.
9 0. 0. 0. 0.
10 450. 0. 0. 0.
11 0. 0. 70. 23.
12 85. 0. 47. 10.
13 0. 0. 34. 16.
14 0. 0. 14. 1.
15 0. 0. 90. 30.
16 0. 0. 25. 10.
17 0. 0. 11. 3.
18 0. 0. 60. 34.
19 0. 0. 45. 25.
20 0. 0. 18. 3.
21 0. 0. 14. 8.
22 0. 0. 10. 5.
23 0. 0. 7. 3.
24 -13. 0. 0. 0.
25 220. 0. 0. 0.
26 314. 0. 0. 0.
27 -9. 0. 62. 13.
28 0. 0. 17. 7.
29 0. 0. 24. 4.
30 0. 0. 0. 0.
31 7. 0. 43. 27.
32 0. 0. 59. 23.
33 0. 0. 23. 9.
34 0. 0. 59. 26.
35 0. 0. 33. 9.
36 0. 0. 31. 17.
37 0. 0. 0. 0.
38 0. 0. 0. 0.
39 0. 0. 27. 11.
40 -46. 0. 20. 23.
41 0. 0. 37. 10.
42 -59. 0. 37. 23.
43 0. 0. 18. 7.
44 0. 0. 16. 8.
45 0. 0. 53. 22.
46 19. 0. 28. 10.
47 0. 0. 34. 0.
48 0. 0. 20. 11.
49 204. 0. 87. 30.
50 0. 0. 17. 4.
51 0. 0. 17. 8.
52 0. 0. 18. 5.
53 0. 0. 23. 11.
54 48. 0. 113. 32.
55 0. 0. 63. 22.
56 0. 0. 84. 18.
57 0. 0. 12. 3.
58 0. 0. 12. 3.
59 155. 0. 277. 113.
60 0. 0. 78. 3.
61 160. 0. 0. 0.
62 0. 0. 77. 14.
63 0. 0. 0. 0.
64 0. 0. 0. 0.
65 391. 0. 0. 0.
66 392. 0. 39. 18.
67 0. 0. 28. 7.
68 0. 0. 0. 0.
69 516.4 0. 0. 0.
70 0. 0. 66. 20.
71 0. 0. 0. 0.
72 -12. 0. 0. 0.
73 -6. 0. 0. 0.
74 0. 0. 68. 27.
75 0. 0. 47. 11.
76 0. 0. 68. 36.
77 0. 0. 61. 28.
78 0. 0. 71. 26.
79 0. 0. 39. 32.
80 477. 0. 130. 26.
81 0. 0. 0. 0.
82 0. 0. 54. 27.
83 0. 0. 20. 10.
84 0. 0. 11. 7.
85 0. 0. 24. 15.
86 0. 0. 21. 10.
87 4. 0. 0. 0.
88 0. 0. 48. 10.
89 607. 0. 0. 0.
90 -85. 0. 78. 42.
91 -10. 0. 0. 0.
92 0. 0. 65. 10.
93 0. 0. 12. 7.
94 0. 0. 30. 16.
95 0. 0. 42. 31.
96 0. 0. 38. 15.
97 0. 0. 15. 9.
98 0. 0. 34. 8.
99 -42. 0. 0. 0.
100 252. 0. 37. 18.
101 0. 0. 22. 15.
102 0. 0. 5. 3.
103 40. 0. 23. 16.
104 0. 0. 38. 25.
105 0. 0. 31. 26.
106 0. 0. 43. 16.
107 -22. 0. 28. 12.
108 0. 0. 2. 1.
109 0. 0. 8. 3.
110 0. 0. 39. 30.
111 36. 0. 0. 0.
112 -43. 0. 25. 13.
113 -6. 0. 0. 0.
114 0. 0. 8. 3.
115 0. 0. 22. 7.
116 -184. 0. 0. 0.
117 0. 0. 20. 8.
118 0. 0. 33. 15.
0
1 .955 -5. 15.
4 .998 -300. 300.
6 .99 -13. 50.
8 1.015 -300. 300.
10 1.05 -147. 200.
12 .99 -35. 120.
15 .97 -10. 30.
18 .973 -16. 50.
19 .963 -8. 24.
24 .992 -300. 300.
25 1.05 -47. 140.
26 1.015 -1000. 1000.
27 .968 -300. 300.
31 .967 -300. 300.
32 .964 -14. 42.
34 .984 -8. 24.
36 .98 -8. 24.
40 .97 -300. 300.
42 .985 -300. 300.
46 1.005 -100. 100.
49 1.025 -85. 210.
54 .955 -300. 300.
55 .952 -8. 23.
56 .954 -8. 15.
59 .985 -60. 180.
61 .995 -100. 300.
62 .998 -20. 20.
65 1.005 -67. 200.
66 1.05 -67. 200.
69 1.01 -300. 300.
70 .984 -10. 32.
72 .98 -100. 100.
73 .991 -100. 100.
74 .958 -6. 9.
76 .943 -8. 23.
77 1.006 -20. 70.
80 1.04 -165. 280.
85 .985 -8. 23.
87 1.015 -100. 1000.
89 1.005 -210. 300.
90 .985 -300. 300.
91 .98 -100. 100.
92 .993 -3. 9.
99 1.01 -100. 100.
100 1.017 -50. 155.
103 1.001 -15. 40.
104 .971 -8. 23.
105 .965 -8. 23.
107 .952 -200. 200.
110 .973 -8. 23.
111 .98 -100. 1000.
112 .975 -100. 1000.
113 .993 -100. 200.
116 1.005 -1000. 1000.
0
10 0. 1.25 1. 100. 600. 1
12 0. 2.6 1.2 60. 200. 1
25 0. 1.5 1. 50. 300. 1
26 0. 1.5 1. 100. 400. 1
49 0. 2.1 1. 100. 400. 1
54 0. 2.0 1.4 20. 300. 1
59 0. 1.6 1. 50. 350. 1
61 0. 1.5 1. 50. 400. 1
65 0. 1.5 1. 100. 500. 1
66 0. 1.5 1. 100. 500. 1
69 0. 1.0 1. 100. 800. 1
80 0. 1.23 1. 100. 600. 1
89 0. 1.2 1. 100. 800. 1
100 0. 1.6 1. 100. 400. 1
103 0. 2.5 1.2 20. 200. 1
111 0. 2.4 1.1 10. 200. 1
0
1 17 0 0.1 0 0 10
2 34 0 0.1 0.14 0 10
3 44 0 0.1 0.1 0 10
4 107 0 0.1 0.06 0 10
5 82 0 0.1 0.2 0 10
6 48 0 0.1 0.15 0 10
7 74 0 0.1 0.12 0 10
8 105 0 0.1 0.2 0 10
0
0
0
1 100 92 -25. 25.
2 106 107 -18. 18.
0
0
1 17 0 0.05 0 0 6
2 34 0 0.05 0.14 0 6
3 44 0 0.05 0.1 0 6
4 107 0 0.05 0.06 0 6
5 82 0 0.05 0.2 0 6
6 48 0 0.05 0.15 0 6
7 74 0 0.05 0.12 0 6
8 105 0 0.05 0.2 0 6
0
1 17 0 0.1 0 0 6
2 34 0 0.1 0.14 0 6
3 44 0 0.1 0.1 0 6
4 107 0 0.1 0.06 0 6
5 82 0 0.1 0.2 0 6
6 48 0 0.1 0.15 0 6
7 74 0 0.1 0.12 0 6
8 105 0 0.1 0.2 0 6
0
1 17 0 0.2 0 0 6
2 34 0 0.2 0.14 0 6
3 44 0 0.2 0.1 0 6
4 107 0 0.2 0.06 0 6
5 82 0 0.2 0.2 0 6
6 48 0 0.2 0.15 0 6
7 74 0 0.2 0.12 0 6
8 105 0 0.2 0.2 0 6

View File

@ -0,0 +1,98 @@
30 41 100.0 100 0.1
1.e-5 2
1 1
0
1 1 2 0.0192 0.0575 0.0264
2 1 3 0.0452 0.1652 0.0204
3 2 4 0.0570 0.1737 0.0184
4 3 4 0.0132 0.0379 0.0042
5 2 5 0.0472 0.1983 0.0209
6 2 6 0.0581 0.1763 0.0187
7 4 6 0.0119 0.0414 0.0045
8 5 7 0.0460 0.1160 0.0102
9 6 7 0.0267 0.0820 0.0085
10 6 8 0.0120 0.0420 0.0045
13 9 11 0.0 0.2080 0.0
15 12 13 0.0 0.1400 0.0
16 12 14 0.1231 0.2559 0.0
17 12 15 0.0662 0.1304 0.0
18 12 16 0.0945 0.1987 0.0
19 14 15 0.2210 0.1997 0.0
20 16 17 0.0524 0.1923 0.0
21 15 18 0.1073 0.2185 0.0
22 18 19 0.0639 0.1292 0.0
23 19 20 0.0340 0.0680 0.0
24 10 20 0.0936 0.2090 0.0
25 10 17 0.0324 0.0845 0.0
26 10 21 0.0348 0.0749 0.0
27 10 22 0.0727 0.1499 0.0
28 21 22 0.0116 0.0236 0.0
29 15 23 0.1000 0.2020 0.0
30 22 24 0.1150 0.1790 0.0
31 23 24 0.1320 0.2700 0.0
32 24 25 0.1885 0.3292 0.0
33 25 26 0.2544 0.3800 0.0
34 25 27 0.1093 0.2087 0.0
36 27 29 0.2198 0.4153 0.0
37 27 30 0.3202 0.6027 0.0
38 29 30 0.2399 0.4533 0.0
39 8 28 0.0636 0.2000 0.0214
40 6 28 0.0169 0.0599 0.0065
41 9 10 0.0 0.1100 0.0
0
0
1 6 9 0.0 0.2080 0.978 0.9 1.1 1
2 6 10 0.0 0.5560 0.969 0.9 1.1 1
3 4 12 0.0 0.2560 0.932 0.9 1.1 1
4 28 27 0.0 0.3960 0.968 0.9 1.1 1
0
1 138.77 -6.49 0. 0.
2 20 41.71 21.7 12.7
3 0. 0. 2.4 1.2
4 0. 0. 7.6 1.6
5 15 16.66 94.2 19.
6 0. 0. 0. 0.
7 0. 0. 22.8 10.9
8 60 29.31 30. 30.
9 0. 0. 0. 0.
10 0. 0. 5.8 2.
11 80 6.71 0. 0.
12 0. 0. 11.2 7.5
13 90 3.37 0. 0.
14 0. 0. 6.2 1.6
15 0. 0. 8.2 2.5
16 0. 0. 3.5 1.8
17 0. 0. 9. 5.8
18 0. 0. 3.2 .9
19 0. 0. 9.5 3.4
20 0. 0. 2.2 .7
21 0. 0. 17.5 11.2
22 0. 0. 0. 0.
23 0. 0. 3.2 1.6
24 0. 0. 8.7 6.7
25 0. 0. 0. 0.
26 0. 0. 3.5 2.3
27 0. 0. 0. 0.
28 0. 0. 0. 0.
29 0. 0. 2.4 .9
30 0. 0. 10.6 1.9
0
1 1.060 -50 50.
2 1.043 -40. 60.
5 1.010 -40. 40.
8 1.010 -10. 40.
11 1.082 -6. 24.
13 1.071 -6. 24.
0
1 10. 2.0 2.0 10. 200. 1
2 10. 1.5 2.4 10. 60. 1
5 20. 1.8 0.8 10. 51. 1
8 10. 1.0 1.2 10. 35. 1
11 20. 1.8 0.8 10. 51. 1
13 10. 1.5 2.0 10. 50. 1
0
1 10 0 0.1 0.19 0 6
2 24 0 0.1 0.043 0 6
0
0

1153
Sigmoid函数法/IEEE300.dat Normal file

File diff suppressed because it is too large Load Diff

135
Sigmoid函数法/OPF.m Normal file
View File

@ -0,0 +1,135 @@
%*******************************************************
%
%
% Sigmoid
% 1234
%
% 201010
%*******************************************************
function []=OPF(filename)
clc;
%%
data=dlmread(filename);
if data(1,1)<1780
%1780
[nodeNum,lineNum,capacity,kmax,centrPara,accuracy,opfGoal,balNum,balNode,mtrLine,mtrGround,mtrTrans,runPara,Pg,Qg,Pd,Qd,pvNum,pvNode,pvV,...
pvQmin,pvQmax,pgNumall,pgNodeall,pgNum,pgNode,a,b,c,Pmin,Pmax,capNum,capI,capGi,capBi,capK,capKmin,capKmax,Vmax,Vmin]=readData(filename);
tic;
%
[G,B,transY,transG,transB,transG1,transB1,transNum,lineNum,lineI,lineJ,lineB,transI,transJ,transK0,transKmin,transKmax]=formY(nodeNum,...
lineNum,mtrLine,mtrGround,mtrTrans,capI,capBi,capK);
else
%IEEE
[nodeNum,lineNum,capacity,kmax,accuracy,balNum,balNode,mtrLine,mtrGround,mtrTrans,runPara,Pg,Qg,Pd,Qd,pvNum,pvNode,pvV,pvQmin,pvQmax,...
mtrCapacitor,pgNum,pgNode,a,b,c,Pmin,Pmax,Vmin,Vmax,centrPara]=readData_RPP(data) ;
tic;
%
[G,B,lineI,lineJ,lineB,transI,transJ,transK0,transNum,transKmin,transKmax,capI,capGi,capBi,capK,capKmin,capKmax,capNum,transG,transB,...
transG1,transB1,lineNum]=formY_RPP(nodeNum,lineNum,mtrLine,mtrGround,mtrTrans,mtrCapacitor);
end
%%
[e,f,PG,QR,Pg,Qg,T,pgvNum,xNum,m,r,l,u,z,w,x,y,para3,mu0,b0,bei,dmaxOut1,dmaxOut2,xz1,xz2,dmaxOut3,dmaxOut4,xz3,xz4,xz5,muOut,...
opfGoal,times,secondBegin,ifconverge,k2,mismatch]=seting(nodeNum,lineNum,transNum,transK0,capNum,capK,pvQmin,pvQmax,pvNum,pvNode,pvV,...
pgNum,pgNode,Pmin,Pmax,Pg,Qg);
disp ([' '])
%%
for k=0:kmax
[H1,N1,diagE,diagF,hx,Gap,max_hx,fx,Pg,Qg,xz1,dmaxOut1,xz2,dmaxOut2,xz3,dmaxOut3,xz4,dmaxOut4,PGR]=midResult(nodeNum,pgNode,opfGoal,...
z,l,u,w,Pg,Qg,e,f,G,B,a,b,c,PG,Pd,Qd,k,xz1,dmaxOut1,xz2,dmaxOut2,xz3,dmaxOut3,xz4,dmaxOut4,times,accuracy,mismatch);
if Gap<accuracy&&max(abs(hx))<mismatch %
if times==1
times=2;
end
if times==2
if secondBegin==1
[x,secondBegin,mut,oneTrans,Zt,tij,Tn,kt0,r,l,u,z,w,y,oneCap,capKn,Bci,Zb,mub,q0,Tn1,capKn1,Kn,capK,firstT,firstcapK,...
firstfx,firstV,Gap]=snd_setting(x,secondBegin,transNum,T,transKmin,transKmax,r,m,capNum,capK,pgvNum,mu0,capBi,fx,e,f);
end
if times==2
tij_Bci=[tij;Bci];
index_0= tij_Bci<0.5; %0
index_1=find(tij_Bci>=0.5); %1
tij_0=max(tij_Bci(index_0));%0
tij_1=max(ones(size(index_1))-tij_Bci(index_1));%1
if isempty(tij_0)
tmax=tij_1;
else if isempty(tij_1)
tmax=tij_0;
else
tmax=max(tij_0,tij_1);%01
end
end
if (tmax<accuracy) %
ifconverge=1;
break
end
end
end
end
mu=(centrPara*Gap)/(2*r); %
if times==1 %
%
[HSB,dhx,dgx,dgxT,GIJ,BIJ,L1,U1,LZ,UW,transG,transB]=formHSB(nodeNum,balNode,opfGoal,lineNum,transNum,lineI,lineJ,transI,transJ,T,...
transG,transB,pgNode,pvNode,G,B,e,f,pgNum,pvNum,pgvNum,xNum,capNum,capI,a,m,r,l,u,z,w,y,N1,H1,diagE,diagF,balNum);
%KKT
[const,Lz,Lw,L1,U1]=Constant(nodeNum,opfGoal,lineNum,transNum,transI,transJ,transG,transB,T,transKmin,transKmax,lineI,lineJ,balNode,...
mu,G,B,GIJ,BIJ,e,f,Pmin,Pmax,a,b,PG,QR,pvQmin,pvQmax,pgNum,pgvNum,xNum,capNum,capK,capKmin,capKmax,pgNode,pvNode,dhx,dgx,L1,U1,LZ,...
UW,l,u,y,r,hx,Vmax,Vmin,capBi);
%
[z,l,u,w,x,y,PG,QR,Pg,Qg,e,f,T,capK,G,B]=solve(HSB,const,mu,r,nodeNum,pgNum,pvNum,xNum,transNum,capNum,capI,capK,pgNode,pvNode,Pg,...
Qg,m,x,y,z,l,u,w,Lz,Lw,LZ,UW,dgxT,L1,U1,G,B,transI,transJ,T,transG1,transB1);
else %
k2=k2+1;
xz5=[xz5 k2]; %
muOut=[muOut mub(2)];
%
[HSB,dhx,dgx,dgxT,GIJ,BIJ,L1,U1,LZ,UW,transG,transB,dT_Zt,mut,mub]=snd_formHSB(nodeNum,balNode,opfGoal,lineNum,transNum,lineI,...
lineJ,transI,transJ,T,transG,transB,pgNode,pvNode,G,B,e,f,pgNum,pvNum,pgvNum,xNum,a,m,r,l,u,z,w,y,kt0,mut,Zt,oneTrans,oneCap,Zb,...
mub,q0,capBi,capNum,capI,tij,Bci,N1,H1,diagE,diagF,b0,balNum);
%KKT
[const,Lz,Lw,L1,U1]=snd_Constant(nodeNum,opfGoal,lineNum,transNum,transI,transJ,transG,transB,lineI,lineJ,balNode,mu,G,B,GIJ,BIJ,e,f,...
Pmin,Pmax,a,b,PG,QR,pvQmin,pvQmax,pgNum,pgvNum,xNum,pgNode,pvNode,dhx,dgx,L1,U1,LZ,UW,l,u,y,r,dT_Zt,capNum,hx,Vmax,Vmin,Zt,Zb,bei,...
mu0,oneTrans,oneCap);
%
[z,l,u,w,x,y,PG,QR,Pg,Qg,e,f,T,G,B,Zt,tij,Zb,Bci,capK,mut,mub]=snd_solve(HSB,const,mu,r,nodeNum,pgNum,pvNum,pgvNum,xNum,transNum,pgNode,...
pvNode,Pg,Qg,m,x,y,z,l,u,w,Lz,Lw,LZ,UW,dgxT,L1,U1,G,B,transI,transJ,T,transG1,transB1,kt0,Tn,mut,oneTrans,q0,capKn,mub,oneCap,capK,...
capNum,capI,capBi);
end
end
if k>=kmax
disp ''
disp(k)
else
disp ''
disp(['',num2str(k),''])
end
toc;
%%
OutResult(e,f,T,k,Gap,fx,transI,transJ,filename,nodeNum,PGR,pgNode,QR,pvNode,capI,capK,firstfx,firstT,firstcapK,Tn,Tn1,capKn,capKn1,ifconverge,...
max_hx,G,B,balNode,toc,firstV,capBi);
%% 线
% plot(xz1,dmaxOut1,'-ks','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
% hold on;
% plot(xz2,dmaxOut2,'-ks','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
% hold on;
% xlabel('')
% ylabel('')
% plot(xz3,dmaxOut3,'-ks','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
% hold on;
% plot(xz4,dmaxOut4,'-ks','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
% xlabel('')
% ylabel('')
%% mut
% plot(xz5,muOut,'-ks','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
% xlabel('')
% ylabel('μ')
% hold on;
%%
% plot(xz5,dmaxOut2,'-ks','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
% hold on;
% xlabel('')
% ylabel('')

View File

@ -0,0 +1,44 @@
function OutResult(e,f,T,k,Gap,fx,transI,transJ,filename,nodeNum,PGR,pgNode,QR,pvNode,capI,capK,firstfx,firstT,firstcapK,Tn,Tn1,...
capKn,capKn1,ifconverge,max_hx,G,B,balNode,toc,firstV,capBi)
%
%201010
Y1=G+1j*B;
V1=e+1j*f;
NodeS=zeros(nodeNum,1);
NodeS(pvNode)=V1(pvNode,:).*conj(Y1(pvNode,:)*V1); %PVY1(pvNode,:)*V1
balanceP=real(NodeS(balNode,1)); %
PGR(balNode,1)=balanceP;
balanceQ=imag(NodeS(balNode,1));
QR(balNode,1)=balanceQ;
resultFile=['result_' filename];
fid=fopen(resultFile,'w');
result=[k;Gap;fx;firstfx;toc;max_hx;ifconverge]; %
fprintf(fid,'%2.0f %4.4e %6.6f %6.6f %4.4f %4.4e %2.0f\r\n',result);
fprintf(fid,'%1.0f\r\n',0);
trans=[transI';transJ';(1./T)';(1./firstT)';(1./Tn)';(1./Tn1)']; %
fprintf(fid,'%2.0f %2.0f %5.4f %5.4f %5.4f %5.4f\r\n',trans);
fprintf(fid,'%1.0f\r\n',0);
nn=1:nodeNum;
e=full(e);
f=full(f);
V=sqrt(e.^2+f.^2);
Vresult=[nn;e';f';V';firstV']; %
fprintf(fid,'%3.0f %5.4f %5.4f %5.4f %5.4f\r\n',Vresult);
fprintf(fid,'%1.0f\r\n',0);
PGresult=[pgNode';PGR(pgNode)']; %
PGresult=full(PGresult);
fprintf(fid,'%2.0f %4.4f\r\n',PGresult);
fprintf(fid,'%1.0f\r\n',0);
QRresult=[pvNode';QR(pvNode)']; %
QRresult=full(QRresult);
fprintf(fid,'%2.0f %4.4f\r\n',QRresult);
fprintf(fid,'%1.0f\r\n',0);
capK=capK.*capBi;
capKn=capKn.*capBi;
capKn1=capKn1.*capBi;
Capresult=[capI';capK';firstcapK';capKn';capKn1']; %
Capresult=full(Capresult);
fprintf(fid,'%2.0f %3.2f %5.4f %3.2f %3.2f\r\n',full(Capresult));
fprintf(fid,'%1.0f\r\n',0);
fclose(fid);

3548
Sigmoid函数法/S1047.dat Normal file

File diff suppressed because it is too large Load Diff

7280
Sigmoid函数法/XB1780.dat Normal file

File diff suppressed because it is too large Load Diff

203
Sigmoid函数法/formHSB.m Normal file
View File

@ -0,0 +1,203 @@
function [HSB,dhx,dgx,dgxT,GIJ,BIJ,L1,U1,LZ,UW,transG,transB]=...
formHSB(nodeNum,balNode,opfGoal,lineNum,transNum,lineI,lineJ,transI,transJ,T,transG,transB,pgNode,pvNode,...
G,B,e,f,pgNum,pvNum,pgvNum,xNum,capNum,capI,a,m,r,l,u,z,w,y,N1,H1,diagE,diagF,balNum)
%
%201010
%%
ef1=e(transI).*e(transJ)+f(transI).*f(transJ);
ef2=e(transI).*f(transJ)-e(transJ).*f(transI);
ef3=e(transI).*e(transI)+f(transI).*f(transI);
ef1G=ef1.*transG;
ef1B=ef1.*transB;
ef2G=ef2.*transG;
ef2B=ef2.*transB;
dhPTi=-ef1G+ef2B+2*ef3.*transG.*T;
dhPTj=-ef1G-ef2B;
dhPT=sparse(1:transNum,transI,dhPTi,transNum,nodeNum)+sparse(1:transNum,transJ,dhPTj,transNum,nodeNum);%P
dhQTi=ef1B+ef2G-2*ef3.*transB.*T;
dhQTj=ef1B-ef2G;
dhQT=sparse(1:transNum,transI,dhQTi,transNum,nodeNum)+sparse(1:transNum,transJ,dhQTj,transNum,nodeNum);%Q
dhP=sparse(1:pgNum,pgNode,ones(pgNum,1),pgNum,m);
dhQ1=sparse(1:pvNum,pvNode,ones(pvNum,1),pvNum,nodeNum);
dhQ=[sparse(pvNum,nodeNum) dhQ1];
dhcapK1=sparse(1:capNum,capI,(e(capI).^2+f(capI).^2),capNum,nodeNum); %
dhcapK=[sparse(capNum,nodeNum) dhcapK1];
%
deG=diagE*G;
dfB=diagF*B;
deB=diagE*B;
dfG=diagF*G;
dH1=sparse(1:nodeNum,1:nodeNum,H1,nodeNum,nodeNum);
dN1=sparse(1:nodeNum,1:nodeNum,N1,nodeNum,nodeNum);
Hij=-dH1-deG-dfB;
Nij=-dN1+deB-dfG;
Jij=dN1-dfG+deB;
Lij=-dH1+dfB+deG;
%
dhJacb=[Hij Nij;Jij Lij]';
%h(x)
dhx=[dhPT dhQT;dhP;dhQ;dhcapK;dhJacb];
%% g(x)
dgT1=sparse(1:transNum,1:transNum,ones(transNum,1),transNum,r-lineNum);
dglT=(e(transI).^2+f(transI).^2-e(transI).*e(transJ)-f(transI).*f(transJ)).*transG+(e(transI).*f(transJ)-e(transJ).*f(transI)).*transB;
dgT2=sparse(1:transNum,lineNum-transNum+1:lineNum,dglT,transNum,lineNum);
dgT=[dgT1 dgT2]; %
dgP=sparse(1:pgNum,transNum+1:transNum+pgNum,ones(pgNum,1),pgNum,r); %PG
dgQ=sparse(1:pvNum,transNum+pgNum+1:transNum+pgvNum,ones(pvNum,1),pvNum,r); %QR
dgcapK=sparse(1:capNum,transNum+pgvNum+1:transNum+pgvNum+capNum,ones(capNum,1),capNum,r);%capK
dgve=2*diagE;
dgvf=2*diagF;
sizeG=size(G);
GIJ=G(sub2ind(sizeG,lineI,lineJ));
BIJ=B(sub2ind(sizeG,lineI,lineJ));
dgleI=(2*e(lineI)-e(lineJ)).*GIJ+f(lineJ).*BIJ;
dgleJ=-e(lineI).*GIJ-f(lineI).*BIJ;
dglfI=(2*f(lineI)-f(lineJ)).*GIJ-e(lineJ).*BIJ;
dglfJ=-f(lineI).*GIJ+e(lineI).*BIJ;
dgle=sparse(lineI,(1:lineNum),dgleI,nodeNum,lineNum)+sparse(lineJ,(1:lineNum),dgleJ,nodeNum,lineNum);
dglf=sparse(lineI,(1:lineNum),dglfI,nodeNum,lineNum)+sparse(lineJ,(1:lineNum),dglfJ,nodeNum,lineNum);
dg0=sparse(m,transNum+pgvNum+capNum);
dgvl=[dgve dgle;dgvf dglf];
dgef=[dg0 dgvl]; %
dgx=[dgT;dgP;dgQ;dgcapK;dgef]; %
%%
Z=sparse(1:r,1:r,z,r,r);
W=sparse(1:r,1:r,w,r,r);
L1=sparse(1:r,1:r,1./l,r,r);
U1=sparse(1:r,1:r,1./u,r,r);
LZ=L1*Z;
UW=U1*W;
%%
%2f(x)
if(opfGoal==2)%
HSdfx=sparse(xNum,xNum);
else if(opfGoal==1)
HSdfx=sparse(transNum+1:transNum+pgNum,transNum+1:transNum+pgNum,2*a(pgNode),xNum,xNum);%PG0()
else if(opfGoal==3)
d2ftei=-2*transG.*(e(transI)-e(transJ));
d2ftej=-d2ftei;
d2ftfi=-2*transG.*(f(transI)-f(transJ));
d2ftfj=-d2ftfi;
d2fte=sparse(1:transNum,transI,d2ftei,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftej,transNum,nodeNum);
d2ftf=sparse(1:transNum,transI,d2ftfi,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftfj,transNum,nodeNum);
d2fT0=sparse(transNum,transNum+pgvNum+capNum);
d2fT=[d2fT0 d2fte d2ftf];
d2fPGQR=sparse(pgvNum,xNum);
d2fcapK=sparse(capNum,xNum);
d2fee=2*(G-sparse(1:nodeNum,1:nodeNum,sum(G,2),nodeNum,nodeNum));
d2fff=d2fee;
zero_nodeNum=sparse(nodeNum,nodeNum);
d2f_ef_ef=[d2fee zero_nodeNum;zero_nodeNum d2fff];
d2efT=[d2fte d2ftf]';
d2f_ef=[d2efT sparse(2*nodeNum,pgvNum+capNum) d2f_ef_ef];
HSdfx=[d2fT;d2fPGQR;d2fcapK;d2f_ef];
else if(opfGoal==4)
d2ftei=2*transB.*(e(transI)-e(transJ));
d2ftej=-d2ftei;
d2ftfi=2*transB.*(f(transI)-f(transJ));
d2ftfj=-d2ftfi;
d2fte=sparse(1:transNum,transI,d2ftei,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftej,transNum,nodeNum);
d2ftf=sparse(1:transNum,transI,d2ftfi,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftfj,transNum,nodeNum);
d2fT0=sparse(transNum,transNum+pgvNum+capNum);
d2fT=[d2fT0 d2fte d2ftf];
d2fPGQR=sparse(pgvNum,xNum);
d2fcapK=sparse(capNum,xNum);
d2fee=-2*(B-sparse(1:nodeNum,1:nodeNum,sum(B,2),nodeNum,nodeNum));
d2fff=d2fee;
zero_nodeNum=sparse(nodeNum,nodeNum);
d2f_ef_ef=[d2fee zero_nodeNum;zero_nodeNum d2fff];
d2efT=[d2fte d2ftf]';
d2f_ef=[d2efT sparse(2*nodeNum,pgvNum+capNum) d2f_ef_ef];
HSdfx=[d2fT;d2fPGQR;d2fcapK;d2f_ef];
end
end
end
end
%y2h(x)*y
y1=y(1:nodeNum,1);
y2=y(nodeNum+1:2*nodeNum,1);
dhT2=2*ef3.*(transG.*y1(transI)-transB.*y2(transI)); %
HSdhT=sparse(1:transNum,1:transNum,dhT2,transNum+pgvNum+capNum,transNum+pgvNum+capNum);
eiG=e(transI).*transG;
ejG=e(transJ).*transG;
eiB=e(transI).*transB;
ejB=e(transJ).*transB;
fiG=f(transI).*transG;
fjG=f(transJ).*transG;
fiB=f(transI).*transB;
fjB=f(transJ).*transB;
ejG_fjB=ejG-fjB;
ejGfjB=ejG+fjB;
fjGejB=fjG+ejB;
ejB_fjG=ejB-fjG;
eiGfiB=eiG+fiB;
eiG_fiB=eiG-fiB;
eiB_fiG=eiB-fiG;
fiGeiB=fiG+eiB;
dP2_ei_t=(4*eiG.*T-ejG_fjB).*y1(transI)-ejGfjB.*y1(transJ);
dP2_ej_t=-eiGfiB.*y1(transI)-eiG_fiB.*y1(transJ);
dQ2_ei_t=(-4*eiB.*T+fjGejB).*y2(transI)+ejB_fjG.*y2(transJ);
dQ2_ej_t=eiB_fiG.*y2(transI)+fiGeiB.*y2(transJ);
HSdh_et=sparse(1:transNum,transI,dP2_ei_t+dQ2_ei_t,transNum,nodeNum)+sparse(1:transNum,transJ,dP2_ej_t+dQ2_ej_t,transNum,nodeNum);%
dP2_fi_t=(4*fiG.*T-fjGejB).*y1(transI)+ejB_fjG.*y1(transJ);
dP2_fj_t=eiB_fiG.*y1(transI)-fiGeiB.*y1(transJ);
dQ2_fi_t=(-4*fiB.*T-ejG_fjB).*y2(transI)+ejGfjB.*y2(transJ);
dQ2_fj_t=eiGfiB.*y2(transI)-eiG_fiB.*y2(transJ);
HSdh_ft=sparse(1:transNum,transI,dP2_fi_t+dQ2_fi_t,transNum,nodeNum)+sparse(1:transNum,transJ,dP2_fj_t+dQ2_fj_t,transNum,nodeNum);%
HSdh_eft=[HSdh_et HSdh_ft];
HSdh_tef=HSdh_eft';
HSdhPQ=sparse(pgvNum,2*nodeNum); %PGQR
d2hcap_e=sparse(1:capNum,capI,2*e(capI).*y2(capI),capNum,nodeNum); %capKef
d2hcap_f=sparse(1:capNum,capI,2*f(capI).*y2(capI),capNum,nodeNum);
HSdhcap_ef=[d2hcap_e d2hcap_f];
d2htPQ_ef=[HSdh_eft;HSdhPQ;HSdhcap_ef];
HSdhtPQ=[HSdhT d2htPQ_ef];
HSdhx1=sparse(m,pgvNum);
%
diagy1=sparse(1:nodeNum,1:nodeNum,y1,nodeNum,nodeNum);
diagy2=sparse(1:nodeNum,1:nodeNum,y2,nodeNum,nodeNum);
HSdhey=-diagy1*G+diagy2*B+(-G*diagy1+B*diagy2);
HSdhefy=diagy1*B+diagy2*G-(B*diagy1+G*diagy2);
HSdhx2=[HSdhey HSdhefy;HSdhefy' HSdhey];
HSdhx=[HSdhtPQ;HSdh_tef HSdhx1 HSdhcap_ef' HSdhx2];
%2g(x)*(z+w)
ZWcl=z(transNum+pgvNum+capNum+nodeNum+1:end)+w(transNum+pgvNum+capNum+nodeNum+1:end);
ZWv=z(transNum+pgvNum+capNum+1:transNum+pgvNum+capNum+nodeNum)+w(transNum+pgvNum+capNum+1:transNum+pgvNum+capNum+nodeNum);
dgeiT=((2*e(transI)-e(transJ)).*transG+f(transJ).*transB).*ZWcl(lineNum-transNum+1:end);
dgejT=(-e(transI).*transG-f(transI).*transB).*ZWcl(lineNum-transNum+1:end);
dgeT=sparse(1:transNum,transI,dgeiT,transNum,nodeNum)+sparse(1:transNum,transJ,dgejT,transNum,nodeNum);%e
dgfiT=((2*f(transI)-f(transJ)).*transG-e(transJ).*transB).*ZWcl(lineNum-transNum+1:end);
dgfjT=(-f(transI).*transG+e(transI).*transB).*ZWcl(lineNum-transNum+1:end);
dgfT=sparse(1:transNum,transI,dgfiT,transNum,nodeNum)+sparse(1:transNum,transJ,dgfjT,transNum,nodeNum);%f
HSdgefT=[dgeT dgfT];
HSdgT=[sparse(transNum,transNum+pgvNum+capNum) HSdgefT];
HSdgee=sparse(lineI,lineI,2*GIJ.*ZWcl,nodeNum,nodeNum)-sparse(lineI,lineJ,GIJ.*ZWcl,nodeNum,nodeNum)-...
sparse(lineJ,lineI,GIJ.*ZWcl,nodeNum,nodeNum)+sparse(1:nodeNum,1:nodeNum,2*ZWv,nodeNum,nodeNum);
HSdgff=HSdgee;
HSdgef=sparse(lineI,lineJ,BIJ.*ZWcl,nodeNum,nodeNum)-sparse(lineJ,lineI,BIJ.*ZWcl,nodeNum,nodeNum);
HSdgfe=HSdgef';
HSdgx1=[HSdgee HSdgef;HSdgfe HSdgff]; %ef
HSdgxtPQ_0=sparse(pgvNum+capNum,xNum);
HSdgef_0=[HSdgefT' sparse(2*nodeNum,pgvNum+capNum)];
HSdgx=[HSdgT;HSdgxtPQ_0;HSdgef_0 HSdgx1]; %
%H(.).
dgxT=dgx'; %dgx
MULdgx=dgx*(UW-LZ)*dgxT;
H=HSdhx+HSdgx-HSdfx+MULdgx; %H(.).
%%
HSB0=sparse(m,m);
HSB=[H dhx;dhx' HSB0];
balN=transNum+pgvNum+capNum+nodeNum+balNode;
HSB(balN,:)=0; %001
HSB(:,balN)=0;
HSB_balN=sub2ind(size(HSB),balN,balN);
HSB(HSB_balN)=ones(balNum,1);
balN1=transNum+pgvNum+capNum+balNode;
HSB(balN1,:)=0; %001
HSB(:,balN1)=0;
HSB_balN1=sub2ind(size(HSB),balN1,balN1);
HSB(HSB_balN1)=ones(balNum,1);
HSB=sparse(HSB);

59
Sigmoid函数法/formY.m Normal file
View File

@ -0,0 +1,59 @@
function [G,B,transY,transG,transB,transG1,transB1,transNum,lineNum,lineI,lineJ,lineB,transI,transJ,transK0,transKmin,transKmax]=...
formY(nodeNum,lineNum,mtrLine,mtrGround,mtrTrans,capI,capBi,capK)
%
%201010
%
%G--,B--lineI,lineJ--lineR--线
%lineX--线groundI--
%groundR--groundX--
%transItransJ--
%transR--transX--
%transK--
%transG--transB--
%% 线
lineI=mtrLine(:,2);
lineJ=mtrLine(:,3);
lineR=mtrLine(:,4);
lineX=mtrLine(:,5);
lineB=mtrLine(:,6);
groundI=mtrGround(:,1);
groundX=mtrGround(:,2);
Yij=1./(lineR+j*lineX);
Y1=-sparse(lineI,lineJ,Yij,nodeNum,nodeNum)-sparse(lineJ,lineI,Yij,nodeNum,nodeNum)...
+sparse(lineI,lineI,Yij+j*lineB,nodeNum,nodeNum)+sparse(lineJ,lineJ,Yij+j*lineB,nodeNum,nodeNum)...
+sparse(groundI,groundI,j*groundX,nodeNum,nodeNum)+sparse(capI,capI,j*capK,nodeNum,nodeNum);
%%
transIall=mtrTrans(:,2);
transJall=mtrTrans(:,3);
transR=mtrTrans(:,4);
transX=mtrTrans(:,5);
transK0all=mtrTrans(:,6);
transY=1./(transR+j*transX);
Y1=Y1-sparse(transIall,transJall,transY./transK0all,nodeNum,nodeNum)-sparse(transJall,transIall,transY./transK0all,nodeNum,nodeNum)...
+sparse(transIall,transIall,transY./transK0all./transK0all,nodeNum,nodeNum)+sparse(transJall,transJall,transY,nodeNum,nodeNum);
Yt=sparse(transIall,transJall,-transY,nodeNum,nodeNum); %
transIJ=sub2ind(size(Yt),transIall,transJall);
transYt=Yt(transIJ);
transCtrl=mtrTrans(:,9);
ctrTransNum=find(transCtrl);
transI=transIall(ctrTransNum);
transJ=transJall(ctrTransNum);
transKmax=1/0.9*ones(size(transI));
transKmin=1/1.1*ones(size(transI));
transK0=transK0all(ctrTransNum);
transG=real(transYt(ctrTransNum));
transB=imag(transYt(ctrTransNum));
transG1=-real(transY(ctrTransNum)); %transGtransB-transG-transB!!!!
transB1=-imag(transY(ctrTransNum));
transNum=length(transI);
lineI=[lineI;transI]; %线线
lineJ=[lineJ;transJ];
lineNum=lineNum-length(transIall)+length(transI);
%%
[Yrows,Ycols,Y1] = find(Y1);
G=real(Y1);
B=imag(Y1);
G=sparse(Yrows,Ycols,G,nodeNum,nodeNum);
B=sparse(Yrows,Ycols,B,nodeNum,nodeNum);

View File

@ -0,0 +1,82 @@
function [G,B,lineI,lineJ,lineB,transI,transJ,transK0,transNum,transKmin,transKmax,capI,capGi,capBi,capK,capKmin,capKmax,capNum,transG,transB,...
transG1,transB1,lineNum]=formY_RPP(nodeNum,lineNum,mtrLine,mtrGround,mtrTrans,mtrCapacitor)
%
%201010
%
%G--,B--lineI,lineJ--lineR--线
%lineX--线groundI--
%groundR--groundX--
%transItransJ--
%transR--transX--
%transK--
%transG--transB--
%% 线
lineI=mtrLine(:,2);
lineJ=mtrLine(:,3);
lineR=mtrLine(:,4);
lineX=mtrLine(:,5);
lineB=mtrLine(:,6);
%
groundI=mtrGround(:,2);
groundG=mtrGround(:,3);
groundB=mtrGround(:,4);
%
capCtrl=mtrCapacitor(:,2);
capCtrl=ones(length(capCtrl),1);
capIall=mtrCapacitor(:,3);
capGiall=mtrCapacitor(:,4);
capBiall=mtrCapacitor(:,5);
capKall=mtrCapacitor(:,6);
capKminall=mtrCapacitor(:,7);
capKmaxall=mtrCapacitor(:,8);
Yij=1./(lineR+j*lineX);
Y1=-sparse(lineI,lineJ,Yij,nodeNum,nodeNum)-sparse(lineJ,lineI,Yij,nodeNum,nodeNum)...
+sparse(lineI,lineI,Yij+j*lineB,nodeNum,nodeNum)+sparse(lineJ,lineJ,Yij+j*lineB,nodeNum,nodeNum)...
+sparse(groundI,groundI,groundG+j*groundB,nodeNum,nodeNum)...
+sparse(capIall,capIall,j*capKall,nodeNum,nodeNum);
%
capCtrlNode=find(capCtrl);
capI=capIall(capCtrlNode);
capGi=capGiall(capCtrlNode);
capBi=capBiall(capCtrlNode);
capK=capKall(capCtrlNode);
capKmin=capKminall(capCtrlNode);
capKmax=capKmaxall(capCtrlNode);
capNum=length(capI);
%%
transCtrl=mtrTrans(:,2);
transIall=mtrTrans(:,3);
transJall=mtrTrans(:,4);
transR=mtrTrans(:,5);
transX=mtrTrans(:,6);
transK0all=mtrTrans(:,7);
transY=1./(transR+j*transX);
Y1=Y1-sparse(transIall,transJall,transY./transK0all,nodeNum,nodeNum)-sparse(transJall,transIall,transY./transK0all,nodeNum,nodeNum)...
+sparse(transIall,transIall,transY./transK0all./transK0all,nodeNum,nodeNum)+sparse(transJall,transJall,transY,nodeNum,nodeNum);
Yt=sparse(transIall,transJall,-transY,nodeNum,nodeNum); %
transIJ=sub2ind(size(Yt),transIall,transJall);
%
transYt=Yt(transIJ);
ctrTransNum=find(transCtrl);
transI=transIall(ctrTransNum);
transJ=transJall(ctrTransNum);
transKmax=1/0.9*ones(size(transI));
transKmin=1/1.1*ones(size(transI));
transK0=transK0all(ctrTransNum);
transG=real(transYt(ctrTransNum));
transB=imag(transYt(ctrTransNum));
transG1=-real(transY(ctrTransNum)); %transGtransB-transG-transB!!!!
transB1=-imag(transY(ctrTransNum));
transNum=length(transI);
lineI=[lineI;transI]; %线线
lineJ=[lineJ;transJ];
lineNum=lineNum+transNum;
%%
[Yrows,Ycols,Y1] = find(Y1);
G=real(Y1);
B=imag(Y1);
G=sparse(Yrows,Ycols,G,nodeNum,nodeNum);
B=sparse(Yrows,Ycols,B,nodeNum,nodeNum);

View File

@ -0,0 +1,62 @@
function [H1,N1,diagE,diagF,hx,Gap,max_hx,fx,Pg,Qg,xz1,dmaxOut1,xz2,dmaxOut2,xz3,dmaxOut3,xz4,dmaxOut4,PGR]=midResult(nodeNum,pgNode,opfGoal,z,l,u,w,...
Pg,Qg,e,f,G,B,a,b,c,PG,Pd,Qd,k,xz1,dmaxOut1,xz2,dmaxOut2,xz3,dmaxOut3,xz4,dmaxOut4,times,accuracy,mismatch)
%
%201010
Gap=l'*z-u'*w; %
PGR=PG;
if(opfGoal==2)
sumP=sum(Pg);
sumPd=sum(Pd);
fx=sumP-sumPd;
else if(opfGoal==1)
fx=sum(a(pgNode).*PGR(pgNode).*PGR(pgNode)+b(pgNode).*PGR(pgNode)+c(pgNode));
else if(opfGoal==3)
EE=e*ones(1,nodeNum);
FF=f*ones(1,nodeNum);
fx=-0.5*sum(sum(G.*((EE-EE').^2+(FF-FF').^2),2));
else if(opfGoal==4)
EE=e*ones(1,nodeNum);
FF=f*ones(1,nodeNum);
fx=0.5*sum(sum(B.*((EE-EE').^2+(FF-FF').^2),2));
end
end
end
end
H1=G*e-B*f;
N1=G*f+B*e;
diagE=sparse(1:nodeNum,1:nodeNum,e,nodeNum,nodeNum);
diagF=sparse(1:nodeNum,1:nodeNum,f,nodeNum,nodeNum);
P=Pg-Pd;
Q=Qg-Qd;
dP=P-diagE*H1-diagF*N1;
dQ=Q-diagF*H1+diagE*N1;
hx=[dP;dQ];
fx=full(fx);
max_hx=full(max(abs(hx)));
fprintf('%4.0f %4.4e %4.4e %7.6f\n',k,Gap,max_hx,fx); %
firstOK=0;
if Gap<accuracy&&max_hx<mismatch&& times==1 %
firstOK=1;
end
%%
if times==1
xz1=[xz1 k];
dmaxOut1=[dmaxOut1 Gap];
xz3=[xz3 k];
dmaxOut3=[dmaxOut3 max_hx];
end
if times==2
if firstOK==1
xz1=[xz1 k];
dmaxOut1=[dmaxOut1 Gap];
xz3=[xz3 k];
dmaxOut3=[dmaxOut3 max_hx];
else
xz2=[xz2 k];
dmaxOut2=[dmaxOut2 Gap];
xz4=[xz4 k];
dmaxOut4=[dmaxOut4 max_hx];
end
end

View File

@ -0,0 +1,73 @@
function [nodeNum,lineNum,capacity,kmax,centrPara,accuracy,opfGoal,balNum,balNode,mtrLine,mtrGround,mtrTrans,runPara,Pg,Qg,Pd,Qd,pvNum,pvNode,pvV,...
pvQmin,pvQmax,pgNumall,pgNodeall,pgNum,pgNode,a,b,c,Pmin,Pmax,capNum,capI,capGi,capBi,capK,capKmin,capKmax,Vmax,Vmin]=readData(filename)
%
%201010
%%
data=dlmread(filename);
%%
nodeNum=data(1,1); %
lineNum=data(1,2); %线
capacity=data(1,3); %
kmax=data(1,4); %
centrPara=data(1,5); %
accuracy=data(2,1); %
opfGoal=data(2,2); %
balNum=data(3,1); %
balNode=data(3,2); %
%% 0
zeroIndex=find(data(:,1)==0);
%% 线
mtrLine=data(zeroIndex(1)+1:zeroIndex(2)-1,:);
%%
mtrGround=data(zeroIndex(2)+1:zeroIndex(3)-1,:);
%%
mtrTrans=data(zeroIndex(3)+1:zeroIndex(4)-1,:);
%%
runPara=data(zeroIndex(4)+1:zeroIndex(5)-1,:);
pqNode=runPara(:,1);
Pg=sparse(nodeNum,1);
Qg=Pg;Pd=Pg;Qd=Pg;
Pg(pqNode)=runPara(:,2)/capacity; %
Qg(pqNode)=runPara(:,3)/capacity; %
Pd(pqNode)=runPara(:,4)/capacity; %
Qd(pqNode)=runPara(:,5)/capacity; %
%% PV
mtrPV=data(zeroIndex(5)+1:zeroIndex(6)-1,:);
pvNum=zeroIndex(6)-zeroIndex(5)-1;
pvNode=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,1),nodeNum,1);
pvNode=find(pvNode); %PV
pvV=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,2),nodeNum,1); %PV
pvQmin=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,3),nodeNum,1)/capacity; %
pvQmax=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,4),nodeNum,1)/capacity; %
%%
economyPara=data(zeroIndex(6)+1:zeroIndex(7)-1,:);
[ecoRow,ecoCol]=size(economyPara);
if ecoCol>=7
pgctrl=find(economyPara(:,7)); %
if isempty(pgctrl)
pgctrl=1:ecoRow;
end
else
pgctrl=1:ecoRow;
end
pgNumall=zeroIndex(7)-zeroIndex(6)-1; %
pgNodeall=economyPara(:,1); %
pgNum=length(pgctrl); %
pgNode=pgNodeall(pgctrl); %
c=sparse(economyPara(:,1),ones(pgNumall,1),economyPara(:,2),nodeNum,1);
b=sparse(economyPara(:,1),ones(pgNumall,1),economyPara(:,3),nodeNum,1);
a=sparse(economyPara(:,1),ones(pgNumall,1),economyPara(:,4),nodeNum,1);
Pmin=sparse(economyPara(:,1),ones(pgNumall,1),economyPara(:,5),nodeNum,1)/capacity;%
Pmax=sparse(economyPara(:,1),ones(pgNumall,1),economyPara(:,6),nodeNum,1)/capacity;%
%%
capPara=data(zeroIndex(7)+1:zeroIndex(8)-1,:);
capNum=zeroIndex(8)-zeroIndex(7)-1;
capI=capPara(:,2); %
capGi=capPara(:,3); %
capBi=capPara(:,4); %
capK=capPara(:,5); %
capKmin=capPara(:,6); %
capKmax=capPara(:,7); %
Vmax=1.07*ones(nodeNum,1); %
Vmin=0.9*ones(nodeNum,1); %

View File

@ -0,0 +1,69 @@
function [nodeNum,lineNum,capacity,kmax,accuracy,balNum,balNode,mtrLine,mtrGround,mtrTrans,runPara,Pg,Qg,Pd,Qd,pvNum,pvNode,pvV,pvQmin,pvQmax,...
mtrCapacitor,pgNum,pgNode,a,b,c,Pmin,Pmax,Vmin,Vmax,centrPara]=readData_RPP(data)
%
%201010
%% 0
zeroIndex=find(data(:,1)==0);
%%
nodeNum=data(1,1); %
capacity=data(1,3); %
accuracy=data(1,4); %
balNum=zeroIndex(2)-zeroIndex(1)-1; %
balNode=data(zeroIndex(1)+1:zeroIndex(2)-1,2); %
kmax=100; %
centrPara=0.1; %
%% 线
mtrLine=data(zeroIndex(2)+1:zeroIndex(3)-1,:);
lineNum=length(mtrLine);
%%
mtrTrans=data(zeroIndex(3)+1:zeroIndex(4)-1,:);
%%
mtrGround=data(zeroIndex(5)+1:zeroIndex(6)-1,:);
%%
mtrCapacitor=data(zeroIndex(6)+1:zeroIndex(7)-1,:);
%%
runPara=data(zeroIndex(8)+1:zeroIndex(9)-1,:);
pqNode=runPara(:,2);
Pg=sparse(nodeNum,1);
Qg=Pg;Pd=Pg;Qd=Pg;
Pg(pqNode)=runPara(:,3); %
Qg(pqNode)=runPara(:,4); %
Pd(pqNode)=runPara(:,5); %
Qd(pqNode)=runPara(:,6); %
%%
mtrPGLimit=data(zeroIndex(9)+1:zeroIndex(10)-1,:);
pgNum=zeroIndex(10)-zeroIndex(9)-1; %
pgNode=mtrPGLimit(:,3); %
c=sparse(mtrPGLimit(:,3),ones(pgNum,1),mtrPGLimit(:,8),nodeNum,1);
b=sparse(mtrPGLimit(:,3),ones(pgNum,1),mtrPGLimit(:,9),nodeNum,1);
a=sparse(mtrPGLimit(:,3),ones(pgNum,1),mtrPGLimit(:,10),nodeNum,1);
Pmin=sparse(mtrPGLimit(:,3),ones(pgNum,1),mtrPGLimit(:,4),nodeNum,1); %
Pmax=sparse(mtrPGLimit(:,3),ones(pgNum,1),mtrPGLimit(:,5),nodeNum,1); %
%%
mtrQGLimit=data(zeroIndex(11)+1:zeroIndex(12)-1,:);
pvNum=zeroIndex(12)-zeroIndex(11)-1;
pvNode=sparse(mtrQGLimit(:,3),ones(pvNum,1),mtrQGLimit(:,3),nodeNum,1);
pvNode=find(pvNode); %PV
pvV=sparse(mtrQGLimit(:,3),ones(pvNum,1),mtrQGLimit(:,4),nodeNum,1); %PV
pvQmin=sparse(mtrQGLimit(:,3),ones(pvNum,1),mtrQGLimit(:,5),nodeNum,1); %
pvQmax=sparse(mtrQGLimit(:,3),ones(pvNum,1),mtrQGLimit(:,6),nodeNum,1); %
%%
mtrVLimit=data(zeroIndex(13)+1:zeroIndex(14)-1,:);
VLimitNum=zeroIndex(14)-zeroIndex(13)-1; %
Vmin=sparse(mtrVLimit(:,2),ones(VLimitNum,1),mtrVLimit(:,3),nodeNum,1);
Vmax=sparse(mtrVLimit(:,2),ones(VLimitNum,1),mtrVLimit(:,4),nodeNum,1);
Vmin=0.9*ones(nodeNum,1); %
Vmax=1.15*ones(nodeNum,1);
node_Z=data(zeroIndex(14)+1:zeroIndex(15)-1,1); %0.8-1.2
Vmin(node_Z)=0.85;
Vmax(node_Z)=1.15;
node_220=data(zeroIndex(15)+1:zeroIndex(16)-1,1); %220kV
Vmin(node_220)=0.95;
Vmax(node_220)=1.1;
node_750=data(zeroIndex(16)+1:zeroIndex(17)-1,1); %750kV
Vmin(node_750)=1;
Vmax(node_750)=1.1;
node_Monitor=data(zeroIndex(17)+1:zeroIndex(18)-1,1); %800kV220363kV线
Vmin(node_Monitor)=1;
Vmax(node_Monitor)=1.1;

View File

@ -0,0 +1,212 @@
31 7.9793e-006 0.780222 0.778376 0.2320 2.3864e-006 1
0
8 5 0.9500 0.9739 1.0000 0.9500
25 26 1.0000 1.0133 1.0500 1.0000
17 30 1.0000 1.0052 1.0500 1.0000
37 38 1.0000 1.0102 1.0500 1.0000
59 63 1.0000 1.0046 1.0500 1.0000
61 64 1.0000 1.0085 1.0500 1.0000
65 66 1.0000 0.9816 1.0000 0.9500
68 69 1.0000 1.0263 1.0500 1.0000
80 81 1.0000 1.0017 1.0500 1.0000
0
1 1.0216 -0.1935 1.0397 1.0428
2 1.0326 -0.1797 1.0481 1.0521
3 1.0308 -0.1821 1.0467 1.0493
4 1.0561 -0.1349 1.0647 1.0694
5 1.0621 -0.1302 1.0700 1.0700
6 1.0477 -0.1610 1.0600 1.0647
7 1.0470 -0.1636 1.0597 1.0644
8 1.0445 -0.0651 1.0466 1.0534
9 1.0693 0.0387 1.0700 1.0700
10 1.0542 0.1501 1.0648 1.0578
11 1.0434 -0.1626 1.0560 1.0599
12 1.0486 -0.1621 1.0610 1.0657
13 1.0249 -0.1895 1.0423 1.0468
14 1.0408 -0.1841 1.0570 1.0621
15 1.0268 -0.2184 1.0498 1.0560
16 1.0386 -0.1802 1.0541 1.0593
17 1.0451 -0.1834 1.0611 1.0672
18 1.0287 -0.2187 1.0517 1.0577
19 1.0231 -0.2261 1.0478 1.0540
20 1.0133 -0.2210 1.0371 1.0422
21 1.0126 -0.2037 1.0329 1.0371
22 1.0220 -0.1737 1.0367 1.0399
23 1.0455 -0.1109 1.0513 1.0528
24 1.0365 -0.1213 1.0436 1.0448
25 1.0700 0.0068 1.0700 1.0700
26 1.0676 0.0720 1.0700 1.0700
27 1.0297 -0.1921 1.0475 1.0500
28 1.0184 -0.2123 1.0403 1.0433
29 1.0160 -0.2219 1.0399 1.0435
30 1.0627 -0.1032 1.0677 1.0697
31 1.0196 -0.2188 1.0428 1.0466
32 1.0262 -0.1976 1.0451 1.0481
33 1.0204 -0.2266 1.0453 1.0531
34 1.0321 -0.2187 1.0551 1.0644
35 1.0278 -0.2255 1.0522 1.0616
36 1.0283 -0.2258 1.0528 1.0622
37 1.0355 -0.2111 1.0568 1.0662
38 1.0615 -0.1347 1.0700 1.0700
39 1.0057 -0.2531 1.0370 1.0462
40 1.0017 -0.2657 1.0363 1.0452
41 0.9957 -0.2677 1.0311 1.0398
42 1.0147 -0.2357 1.0417 1.0496
43 1.0201 -0.2059 1.0407 1.0495
44 1.0244 -0.1492 1.0352 1.0429
45 1.0255 -0.1126 1.0317 1.0384
46 1.0432 -0.0678 1.0454 1.0510
47 1.0486 -0.0379 1.0493 1.0543
48 1.0571 -0.0304 1.0575 1.0624
49 1.0631 -0.0104 1.0632 1.0689
50 1.0576 -0.0231 1.0579 1.0637
51 1.0475 -0.0366 1.0481 1.0540
52 1.0440 -0.0431 1.0449 1.0507
53 1.0473 -0.0345 1.0479 1.0537
54 1.0645 -0.0036 1.0645 1.0700
55 1.0597 -0.0194 1.0599 1.0656
56 1.0610 -0.0153 1.0611 1.0667
57 1.0573 -0.0249 1.0575 1.0633
58 1.0512 -0.0320 1.0516 1.0574
59 1.0632 0.0010 1.0632 1.0700
60 1.0596 -0.0064 1.0596 1.0679
61 1.0616 0.0047 1.0616 1.0700
62 1.0577 -0.0139 1.0578 1.0660
63 1.0685 0.0066 1.0686 1.0693
64 1.0693 0.0095 1.0693 1.0694
65 1.0698 0.0193 1.0700 1.0700
66 1.0625 0.0107 1.0625 1.0700
67 1.0549 -0.0146 1.0550 1.0629
68 1.0633 -0.0037 1.0633 1.0688
69 1.0100 -0.0000 1.0100 1.0100
70 0.9987 -0.1218 1.0061 1.0065
71 1.0011 -0.1258 1.0089 1.0094
72 1.0138 -0.1342 1.0227 1.0235
73 0.9996 -0.1282 1.0077 1.0082
74 0.9851 -0.1432 0.9955 0.9958
75 0.9857 -0.1200 0.9930 0.9932
76 0.9718 -0.1357 0.9813 0.9816
77 1.0311 -0.0500 1.0323 1.0327
78 1.0274 -0.0529 1.0288 1.0292
79 1.0313 -0.0441 1.0323 1.0327
80 1.0558 0.0061 1.0558 1.0563
81 1.0665 -0.0004 1.0665 1.0696
82 1.0349 -0.0706 1.0373 1.0380
83 1.0381 -0.0727 1.0407 1.0412
84 1.0418 -0.0659 1.0439 1.0442
85 1.0501 -0.0577 1.0517 1.0518
86 1.0400 -0.0762 1.0428 1.0430
87 1.0487 -0.0698 1.0510 1.0512
88 1.0545 -0.0333 1.0551 1.0551
89 1.0699 0.0148 1.0700 1.0700
90 1.0476 -0.0753 1.0503 1.0503
91 1.0517 -0.0607 1.0535 1.0535
92 1.0588 -0.0252 1.0591 1.0592
93 1.0475 -0.0349 1.0481 1.0483
94 1.0439 -0.0362 1.0445 1.0448
95 1.0302 -0.0497 1.0314 1.0317
96 1.0361 -0.0503 1.0374 1.0378
97 1.0415 -0.0288 1.0419 1.0423
98 1.0532 -0.0168 1.0533 1.0537
99 1.0602 -0.0204 1.0604 1.0606
100 1.0690 0.0013 1.0690 1.0691
101 1.0527 -0.0242 1.0530 1.0531
102 1.0562 -0.0266 1.0565 1.0566
103 1.0700 -0.0016 1.0700 1.0700
104 1.0536 -0.0636 1.0555 1.0556
105 1.0499 -0.0766 1.0527 1.0527
106 1.0405 -0.0869 1.0442 1.0442
107 1.0315 -0.1257 1.0391 1.0392
108 1.0539 -0.0783 1.0568 1.0569
109 1.0533 -0.0774 1.0561 1.0561
110 1.0550 -0.0696 1.0573 1.0574
111 1.0699 -0.0129 1.0700 1.0700
112 1.0362 -0.1103 1.0421 1.0421
113 1.0423 -0.1868 1.0589 1.0643
114 1.0216 -0.2030 1.0416 1.0444
115 1.0213 -0.2033 1.0414 1.0442
116 1.0633 -0.0108 1.0634 1.0683
117 1.0301 -0.1840 1.0464 1.0511
118 0.9720 -0.1339 0.9812 0.9815
0
10 3.6967
12 2.0000
25 1.0556
26 4.0000
49 3.7575
54 2.9977
59 2.9002
61 1.2241
65 3.8134
66 1.0000
69 2.4623
80 5.2137
89 3.8041
100 2.6935
103 1.4836
111 0.7977
0
1 0.1500
4 -0.4047
6 0.1529
8 -0.3565
10 -0.9697
12 0.4891
15 0.2985
18 0.3794
19 0.2394
24 -0.0256
25 -0.0467
26 -0.4585
27 0.3078
31 0.2880
32 0.2330
34 0.0259
36 0.2395
40 0.3458
42 0.4118
46 -0.0159
49 0.3478
54 0.2865
55 0.1839
56 0.1395
59 0.8004
61 -0.3633
62 0.1107
65 -0.6700
66 -0.1902
69 -2.6190
70 0.2231
72 -0.0494
73 -0.0211
74 0.0486
76 0.2300
77 0.7000
80 0.2740
85 0.1728
87 0.0116
89 0.0870
90 0.4446
91 0.0008
92 0.0900
99 -0.0335
100 0.4333
103 0.0524
104 0.2293
105 -0.0031
107 -0.2868
110 0.2255
111 -0.0421
112 0.1253
113 -0.0204
116 0.0947
0
17 0.00 0.0054 0.00 0.10
34 0.30 0.2728 0.20 0.30
44 0.10 0.1038 0.10 0.20
107 0.40 0.4555 0.40 0.50
82 0.30 0.3105 0.30 0.40
48 0.10 0.0803 0.00 0.10
74 0.40 0.4323 0.40 0.50
105 0.20 0.1753 0.10 0.20
0

View File

@ -0,0 +1,55 @@
28 4.6553e-006 0.024984 0.024929 21.0945 7.2053e-006 1
0
6 9 1.1000 1.1000 1.1000 1.0500
6 10 0.9000 0.9000 0.9500 0.9000
4 12 0.9500 0.9554 1.0000 0.9500
28 27 0.9500 0.9565 1.0000 0.9500
0
1 1.0600 -0.0000 1.0600 1.0600
2 1.0568 -0.0124 1.0569 1.0575
3 1.0508 -0.0252 1.0511 1.0523
4 1.0480 -0.0298 1.0484 1.0500
5 1.0374 -0.0754 1.0401 1.0413
6 1.0494 -0.0383 1.0501 1.0513
7 1.0366 -0.0622 1.0385 1.0397
8 1.0491 -0.0376 1.0497 1.0513
9 1.0366 -0.0125 1.0366 1.0329
10 1.0661 -0.0547 1.0675 1.0695
11 1.0634 0.0895 1.0672 1.0477
12 1.0696 -0.0278 1.0700 1.0700
13 1.0679 0.0377 1.0686 1.0700
14 1.0570 -0.0459 1.0580 1.0582
15 1.0538 -0.0507 1.0550 1.0555
16 1.0600 -0.0441 1.0609 1.0618
17 1.0592 -0.0549 1.0607 1.0623
18 1.0455 -0.0637 1.0475 1.0484
19 1.0438 -0.0682 1.0461 1.0474
20 1.0486 -0.0659 1.0506 1.0521
21 1.0557 -0.0639 1.0576 1.0595
22 1.0569 -0.0644 1.0589 1.0607
23 1.0498 -0.0658 1.0519 1.0526
24 1.0531 -0.0802 1.0561 1.0573
25 1.0550 -0.0923 1.0590 1.0576
26 1.0375 -0.0979 1.0421 1.0406
27 1.0651 -0.0960 1.0694 1.0664
28 1.0446 -0.0435 1.0455 1.0472
29 1.0442 -0.1148 1.0505 1.0474
30 1.0317 -0.1281 1.0396 1.0364
0
1 0.3890
2 0.6000
5 0.5100
8 0.3500
11 0.5100
13 0.5000
0
1 -0.0540
2 0.0763
5 0.2121
8 0.2700
11 0.1811
13 0.0046
0
10 0.30 0.3583 0.30 0.40
24 0.10 0.1051 0.10 0.20
0

View File

@ -0,0 +1,489 @@
41 1.7917e-006 3.366536 3.336695 0.6797 1.8010e-006 1
0
297 269 1.0000 0.9730 1.0000 0.9500
269 226 1.0000 0.9922 1.0000 0.9500
269 227 0.9500 0.9753 1.0000 0.9500
291 62 1.0000 0.9965 1.0000 0.9500
291 63 0.9000 0.9228 0.9500 0.9000
291 145 1.0000 1.0002 1.0500 1.0000
291 64 1.0500 1.0506 1.1000 1.0500
291 65 1.0000 1.0421 1.0500 1.0000
228 47 1.0000 0.9695 1.0000 0.9500
225 48 1.0000 0.9741 1.0000 0.9500
229 49 1.0000 0.9687 1.0000 0.9500
229 50 1.0000 0.9694 1.0000 0.9500
271 66 0.9500 0.9826 1.0000 0.9500
271 67 0.9500 0.9866 1.0000 0.9500
300 51 0.9500 0.9556 1.0000 0.9500
300 52 0.9500 0.9640 1.0000 0.9500
300 53 0.9500 0.9537 1.0000 0.9500
270 59 0.9500 0.9780 1.0000 0.9500
270 60 0.9500 0.9679 1.0000 0.9500
270 61 0.9500 0.9787 1.0000 0.9500
300 54 0.9500 0.9923 1.0000 0.9500
300 55 0.9500 0.9685 1.0000 0.9500
300 56 0.9500 0.9751 1.0000 0.9500
300 57 0.9500 0.9734 1.0000 0.9500
300 58 0.9500 0.9606 1.0000 0.9500
145 69 1.0000 1.0423 1.0500 1.0000
6 290 1.1000 1.0990 1.1000 1.0500
292 146 1.0000 0.9992 1.0000 0.9500
292 230 0.9500 0.9951 1.0000 0.9500
292 70 1.1000 1.0701 1.1000 1.0500
272 147 0.9500 0.9418 0.9500 0.9000
272 71 1.0000 0.9815 1.0000 0.9500
73 273 0.9000 0.9000 0.9500 0.9000
231 73 1.1000 1.1000 1.1000 1.0500
286 76 1.0000 0.9758 1.0000 0.9500
149 286 0.9500 0.9567 1.0000 0.9500
233 232 0.9500 0.9662 1.0000 0.9500
235 234 1.0000 0.9892 1.0000 0.9500
81 237 0.9500 0.9142 0.9500 0.9000
240 275 1.0000 0.9716 1.0000 0.9500
240 153 1.0000 0.9763 1.0000 0.9500
276 158 0.9000 0.9000 0.9500 0.9000
159 88 1.1000 1.0768 1.1000 1.0500
277 246 1.1000 1.0697 1.1000 1.0500
248 164 1.0000 0.9619 1.0000 0.9500
91 279 1.0000 1.0122 1.0500 1.0000
249 280 1.0000 1.0074 1.0500 1.0000
163 169 1.0500 1.0220 1.0500 1.0000
175 130 1.0000 0.9983 1.0000 0.9500
96 178 1.0000 0.9875 1.0000 0.9500
176 95 1.0000 1.0253 1.0500 1.0000
256 191 1.0000 1.0027 1.0500 1.0000
299 98 0.9500 0.9738 1.0000 0.9500
299 104 0.9500 0.9644 1.0000 0.9500
182 116 0.9000 0.9099 0.9500 0.9000
186 198 0.9500 0.9333 0.9500 0.9000
187 260 0.9500 0.9221 0.9500 0.9000
281 101 0.9500 0.9756 1.0000 0.9500
281 188 1.0000 0.9744 1.0000 0.9500
282 118 0.9000 0.9074 0.9500 0.9000
105 116 0.9000 0.9071 0.9500 0.9000
189 120 0.9500 0.9265 0.9500 0.9000
190 108 0.9500 0.9551 1.0000 0.9500
193 97 1.0000 0.9918 1.0000 0.9500
109 178 1.0000 0.9866 1.0000 0.9500
112 295 0.9000 0.9000 0.9500 0.9000
194 190 1.1000 1.1000 1.1000 1.0500
119 185 0.9500 0.9247 0.9500 0.9000
202 283 1.0000 1.0237 1.0500 1.0000
204 263 1.0000 1.0270 1.0500 1.0000
206 213 0.9500 0.9600 1.0000 0.9500
208 224 1.1000 1.0982 1.1000 1.0500
127 160 1.0500 1.0553 1.1000 1.0500
128 298 1.0000 1.0150 1.0500 1.0000
209 143 1.0500 1.0180 1.0500 1.0000
131 289 1.0500 1.0311 1.0500 1.0000
298 213 1.0500 1.0402 1.0500 1.0000
216 284 0.9500 0.9488 0.9500 0.9000
134 217 0.9500 0.9161 0.9500 0.9000
220 7 0.9000 0.9000 0.9500 0.9000
221 10 0.9000 0.9000 0.9500 0.9000
263 143 1.0000 0.9700 1.0000 0.9500
254 26 1.0000 0.9931 1.0000 0.9500
255 27 1.0500 1.0657 1.1000 1.0500
37 275 0.9500 0.9519 1.0000 0.9500
39 242 0.9500 0.9646 1.0000 0.9500
0
1 1.0137 -0.2238 1.0381 1.0210
2 0.8405 -0.4014 0.9314 0.9342
3 0.9382 -0.3342 0.9959 0.9992
4 1.0010 -0.1506 1.0122 1.0305
5 0.8978 -0.0624 0.9000 0.9000
6 0.8490 -0.2986 0.9000 0.9007
7 1.0213 -0.0864 1.0249 1.0320
8 0.8604 -0.2640 0.9000 0.9118
9 0.8947 -0.0979 0.9000 0.9000
10 1.0606 -0.1402 1.0699 1.0695
11 0.9290 -0.0841 0.9328 0.9392
12 0.9703 -0.3255 1.0234 1.0323
13 0.9889 -0.1898 1.0069 1.0125
14 1.0334 -0.2773 1.0700 1.0700
15 0.9994 -0.3569 1.0612 1.0582
16 0.9524 -0.4416 1.0498 1.0541
17 0.9719 -0.3940 1.0487 1.0599
18 0.8942 -0.4997 1.0243 1.0275
19 0.7993 -0.7066 1.0668 1.0668
20 0.9703 -0.4493 1.0693 1.0677
21 0.9599 -0.3907 1.0364 1.0400
22 1.0158 -0.3363 1.0700 1.0700
23 0.9499 -0.4469 1.0498 1.0690
24 0.9464 -0.4024 1.0284 1.0284
25 1.0404 -0.2013 1.0597 1.0597
26 1.0279 -0.2314 1.0536 1.0700
27 0.8310 -0.3613 0.9062 0.9000
28 1.0568 -0.1678 1.0700 1.0700
29 1.0571 -0.1616 1.0694 1.0700
30 1.0623 -0.1284 1.0700 1.0700
31 1.0535 -0.1873 1.0700 1.0700
32 1.0688 -0.0508 1.0700 1.0700
33 0.9889 -0.2338 1.0162 1.0392
34 1.0429 -0.2393 1.0700 1.0700
35 1.0434 -0.0882 1.0471 1.0506
36 0.9075 0.0184 0.9077 0.9181
37 0.9558 -0.2812 0.9963 1.0168
38 1.0507 -0.0000 1.0507 1.0507
39 0.9711 -0.2200 0.9957 1.0068
40 0.9773 -0.2384 1.0060 1.0141
41 1.0436 -0.2362 1.0700 1.0700
42 0.9776 -0.1323 0.9865 1.0196
43 1.0235 -0.1427 1.0334 1.0306
44 1.0658 0.0945 1.0700 1.0700
45 1.0518 -0.1148 1.0580 1.0700
46 0.8908 0.1284 0.9000 0.9000
47 0.9377 -0.4249 1.0294 1.0700
48 0.9438 -0.4239 1.0346 1.0700
49 0.9449 -0.4084 1.0294 1.0700
50 0.9462 -0.4074 1.0302 1.0700
51 0.9060 -0.4767 1.0238 1.0700
52 0.9231 -0.4667 1.0343 1.0700
53 0.9017 -0.4795 1.0212 1.0700
54 0.9642 -0.4404 1.0600 1.0700
55 0.9324 -0.4606 1.0399 1.0700
56 0.9416 -0.4594 1.0477 1.0700
57 0.9413 -0.4554 1.0457 1.0700
58 0.9156 -0.4720 1.0302 1.0700
59 0.9536 -0.4411 1.0507 1.0700
60 0.9357 -0.4515 1.0390 1.0700
61 0.9533 -0.4439 1.0516 1.0700
62 0.9888 -0.4090 1.0700 1.0700
63 0.9948 -0.3723 1.0622 1.0700
64 1.0208 -0.2017 1.0406 1.0700
65 1.0462 -0.2245 1.0700 1.0699
66 0.9660 -0.4295 1.0572 1.0700
67 0.9735 -0.4237 1.0617 1.0700
68 0.9639 -0.3979 1.0428 1.0492
69 0.9935 -0.3894 1.0671 1.0235
70 0.9676 -0.1807 0.9844 1.0080
71 1.0439 -0.2070 1.0642 1.0629
72 1.0228 -0.2489 1.0526 1.0519
73 0.9199 -0.2415 0.9511 0.9494
74 1.0174 -0.2944 1.0592 1.0514
75 0.9955 -0.2990 1.0394 1.0400
76 0.9945 -0.3137 1.0428 1.0700
77 1.0012 -0.3263 1.0530 1.0429
78 1.0102 -0.2972 1.0530 1.0526
79 0.9654 -0.3787 1.0370 1.0296
80 1.0165 -0.2283 1.0418 1.0530
81 0.9691 -0.3266 1.0226 1.0207
82 1.0117 -0.1799 1.0275 1.0389
83 0.9783 -0.2836 1.0186 1.0250
84 0.9638 -0.3705 1.0326 1.0463
85 0.9920 -0.3231 1.0433 1.0482
86 0.9901 -0.3210 1.0408 1.0452
87 1.0296 -0.2914 1.0700 1.0700
88 0.8945 -0.3990 0.9794 0.9983
89 0.9657 -0.4066 1.0478 1.0462
90 0.9960 -0.3520 1.0564 1.0564
91 0.9503 -0.4357 1.0454 1.0594
92 0.9566 -0.3910 1.0334 1.0387
93 0.9084 -0.5296 1.0515 1.0594
94 0.9311 -0.4625 1.0397 1.0493
95 0.8422 -0.4873 0.9730 0.9712
96 0.8452 -0.4667 0.9655 0.9642
97 0.9001 -0.3466 0.9645 0.9753
98 1.0391 -0.1875 1.0559 1.0484
99 0.9391 -0.3927 1.0179 1.0203
100 0.8928 -0.3453 0.9573 0.9568
101 1.0164 -0.2272 1.0415 1.0488
102 1.0420 -0.0769 1.0449 1.0481
103 1.0440 -0.1326 1.0524 1.0547
104 1.0432 -0.1836 1.0592 1.0560
105 0.9646 -0.1947 0.9841 0.9930
106 1.0599 -0.1469 1.0700 1.0700
107 0.9170 -0.3253 0.9730 0.9848
108 0.9475 -0.2499 0.9799 0.9764
109 0.8586 -0.4675 0.9777 0.9759
110 0.9753 -0.1771 0.9912 0.9905
111 1.0203 -0.0881 1.0241 1.0244
112 0.9812 -0.2343 1.0088 1.0085
113 0.9772 0.0149 0.9773 0.9775
114 0.9327 0.0653 0.9350 0.9351
115 0.8623 -0.3570 0.9333 0.9384
116 1.0356 -0.2693 1.0700 1.0700
117 1.0336 -0.2188 1.0565 1.0560
118 1.0303 -0.2888 1.0700 1.0657
119 0.9435 -0.2716 0.9818 0.9746
120 1.0271 -0.2025 1.0469 1.0700
121 0.9245 -0.3824 1.0005 1.0037
122 0.9500 -0.1836 0.9676 0.9669
123 0.9482 -0.1988 0.9688 0.9682
124 1.0095 0.3548 1.0700 1.0700
125 0.9676 -0.0457 0.9687 0.9728
126 0.9601 -0.3547 1.0235 1.0285
127 0.9679 -0.4302 1.0592 1.0669
128 0.9891 -0.3494 1.0490 1.0638
129 1.0151 -0.3048 1.0599 1.0650
130 0.9328 -0.4850 1.0514 1.0630
131 0.9943 -0.3730 1.0620 1.0700
132 0.9410 -0.2689 0.9787 0.9876
133 0.9088 -0.2181 0.9346 0.9195
134 0.9061 -0.2218 0.9329 0.9173
135 0.9927 -0.2208 1.0169 1.0279
136 0.9850 -0.2477 1.0156 1.0223
137 0.9359 -0.1999 0.9570 0.9567
138 0.9873 -0.1908 1.0055 1.0111
139 0.9783 -0.2485 1.0093 1.0224
140 0.9591 -0.2611 0.9940 1.0073
141 0.9179 -0.3411 0.9792 0.9885
142 0.8285 -0.5152 0.9756 0.9791
143 0.9746 -0.3464 1.0343 1.0700
144 0.9271 -0.4047 1.0116 1.0599
145 0.9992 -0.3827 1.0700 1.0700
146 1.0378 -0.2201 1.0609 1.0615
147 1.0321 -0.2353 1.0585 1.0595
148 1.0299 -0.2491 1.0596 1.0568
149 1.0025 -0.2252 1.0275 1.0443
150 1.0169 -0.2570 1.0489 1.0500
151 0.9869 -0.3432 1.0449 1.0418
152 0.9925 -0.3029 1.0377 1.0446
153 1.0251 -0.2659 1.0590 1.0700
154 0.9588 -0.4160 1.0451 1.0559
155 0.9665 -0.3684 1.0344 1.0409
156 1.0162 -0.2020 1.0361 1.0412
157 0.9808 -0.3542 1.0428 1.0566
158 1.0131 -0.3015 1.0570 1.0610
159 0.9420 -0.5075 1.0700 1.0700
160 0.9601 -0.3740 1.0304 1.0308
161 0.9675 -0.3782 1.0388 1.0425
162 0.9941 -0.3395 1.0505 1.0480
163 1.0096 -0.3481 1.0679 1.0700
164 0.9925 -0.3146 1.0411 1.0600
165 0.9970 -0.3239 1.0483 1.0556
166 1.0032 -0.3010 1.0474 1.0503
167 1.0140 -0.3089 1.0600 1.0700
168 1.0454 -0.2281 1.0700 1.0700
169 0.9635 -0.3495 1.0249 1.0507
170 0.9671 -0.3936 1.0441 1.0498
171 1.0047 -0.3344 1.0589 1.0622
172 0.9495 -0.4346 1.0443 1.0486
173 0.9723 -0.3820 1.0446 1.0493
174 0.9287 -0.4582 1.0356 1.0387
175 0.9134 -0.5252 1.0536 1.0619
176 0.8495 -0.4744 0.9729 0.9914
177 0.7938 -0.5394 0.9597 0.9657
178 0.8383 -0.4754 0.9637 0.9732
179 0.7828 -0.5447 0.9536 0.9575
180 0.9046 -0.3308 0.9632 0.9672
181 0.9062 -0.3234 0.9621 0.9662
182 0.9618 -0.2120 0.9848 0.9945
183 0.9193 -0.4067 1.0053 1.0083
184 1.0262 -0.2678 1.0605 1.0611
185 1.0042 -0.2525 1.0355 1.0525
186 0.9818 -0.2119 1.0044 0.9969
187 0.9971 -0.2776 1.0350 1.0236
188 1.0306 -0.2219 1.0542 1.0700
189 0.9963 -0.1421 1.0064 1.0049
190 0.9183 -0.2181 0.9439 0.9447
191 0.8592 -0.4584 0.9739 0.9747
192 0.8730 -0.4538 0.9839 0.9849
193 0.8760 -0.4249 0.9736 0.9751
194 1.0268 -0.1896 1.0442 1.0446
195 0.9045 -0.3312 0.9632 0.9672
196 0.8762 -0.3555 0.9456 0.9495
197 0.9973 -0.3180 1.0468 1.0621
198 1.0231 -0.2682 1.0576 1.0700
199 1.0604 -0.1429 1.0700 1.0700
200 0.9741 -0.3836 1.0469 1.0470
201 0.9371 -0.2536 0.9708 0.9701
202 0.9852 -0.3777 1.0551 1.0684
203 1.0152 -0.2054 1.0358 1.0416
204 0.9734 -0.4022 1.0533 1.0700
205 1.0424 -0.2413 1.0700 1.0700
206 1.0061 -0.2641 1.0402 1.0458
207 1.0034 -0.3225 1.0539 1.0573
208 0.9651 -0.3591 1.0297 1.0353
209 0.9448 -0.4273 1.0369 1.0487
210 0.9587 -0.4192 1.0463 1.0606
211 0.9365 -0.4646 1.0455 1.0580
212 0.9739 -0.3988 1.0524 1.0669
213 0.9921 -0.2999 1.0365 1.0427
214 0.9794 -0.2229 1.0045 1.0181
215 0.9649 -0.2535 0.9977 1.0087
216 0.9551 -0.2248 0.9812 0.9841
217 0.9787 -0.2180 1.0027 1.0156
218 0.9744 -0.0487 0.9756 0.9803
219 0.9584 -0.2055 0.9802 0.9850
220 0.9611 -0.1839 0.9785 0.9838
221 0.9370 -0.1984 0.9578 0.9573
222 0.9833 -0.2238 1.0085 1.0223
223 0.9295 -0.2808 0.9710 0.9845
224 0.9211 -0.3346 0.9800 0.9892
225 0.9795 -0.3963 1.0566 1.0629
226 0.9537 -0.3717 1.0236 1.0700
227 0.9955 -0.3750 1.0638 1.0700
228 0.9732 -0.3976 1.0513 1.0576
229 0.9597 -0.3971 1.0386 1.0450
230 1.0507 -0.2022 1.0700 1.0648
231 1.0346 -0.1951 1.0528 1.0511
232 1.0137 -0.3295 1.0659 1.0528
233 1.0039 -0.2529 1.0353 1.0369
234 1.0369 -0.2599 1.0690 1.0700
235 1.0363 -0.1992 1.0553 1.0553
236 0.9960 -0.2886 1.0370 1.0450
237 0.9832 -0.3682 1.0499 1.0582
238 0.9915 -0.2955 1.0346 1.0425
239 0.9716 -0.3574 1.0352 1.0487
240 1.0098 -0.3147 1.0577 1.0506
241 1.0496 -0.0708 1.0520 1.0533
242 0.9925 -0.3111 1.0401 1.0472
243 1.0040 -0.3206 1.0540 1.0608
244 1.0115 -0.3345 1.0654 1.0638
245 0.9770 -0.3702 1.0448 1.0484
246 0.9641 -0.3392 1.0220 1.0388
247 0.9888 -0.3612 1.0527 1.0504
248 1.0242 -0.2819 1.0623 1.0563
249 0.9751 -0.4037 1.0554 1.0664
250 0.9978 -0.3407 1.0543 1.0573
251 0.9110 -0.5103 1.0442 1.0506
252 0.9070 -0.5023 1.0368 1.0419
253 0.8981 -0.3356 0.9588 0.9696
254 1.0398 -0.2119 1.0612 1.0700
255 0.8703 -0.4075 0.9609 0.9688
256 0.8353 -0.4955 0.9713 0.9723
257 0.8725 -0.4323 0.9737 0.9774
258 1.0249 -0.1495 1.0357 1.0379
259 0.9272 -0.4190 1.0174 1.0330
260 0.9851 -0.3477 1.0447 1.0612
261 0.9635 -0.3254 1.0170 1.0160
262 0.9384 -0.2414 0.9689 0.9683
263 0.9813 -0.3398 1.0385 1.0413
264 0.9766 -0.2379 1.0051 1.0092
265 0.9351 -0.2129 0.9590 0.9575
266 0.9469 -0.2051 0.9688 0.9711
267 0.9417 -0.2704 0.9797 0.9933
268 0.9371 -0.2820 0.9786 0.9915
269 0.9996 -0.2742 1.0366 1.0700
270 0.9250 -0.4044 1.0095 1.0579
271 0.9404 -0.3899 1.0180 1.0653
272 1.0402 -0.1905 1.0575 1.0534
273 1.0343 -0.2435 1.0626 1.0604
274 1.0197 -0.2209 1.0434 1.0550
275 0.9880 -0.3576 1.0507 1.0700
276 1.0084 -0.2313 1.0345 1.0455
277 0.9945 -0.3948 1.0700 1.0667
278 0.9818 -0.3732 1.0504 1.0574
279 0.9291 -0.4589 1.0363 1.0393
280 0.9622 -0.4096 1.0457 1.0506
281 1.0473 -0.1585 1.0592 1.0522
282 0.9689 -0.2251 0.9947 0.9972
283 0.9895 -0.3317 1.0436 1.0480
284 1.0182 -0.2244 1.0427 1.0478
285 1.0129 -0.2137 1.0352 1.0407
286 1.0132 -0.3026 1.0575 1.0613
287 1.0047 -0.2597 1.0377 1.0454
288 0.8913 -0.3342 0.9519 0.9546
289 1.0247 -0.2748 1.0609 1.0700
290 1.0111 -0.2160 1.0339 1.0397
291 0.9998 -0.2757 1.0371 1.0700
292 1.0471 -0.1859 1.0635 1.0617
293 0.9883 -0.3523 1.0492 1.0492
294 0.8473 -0.4668 0.9674 0.9707
295 0.9404 -0.2585 0.9753 0.9745
296 0.9481 -0.2775 0.9879 0.9833
297 0.9997 -0.2738 1.0365 1.0411
298 1.0195 -0.3248 1.0700 1.0700
299 0.9831 -0.1711 0.9979 1.0073
300 0.9315 -0.4049 1.0157 1.0638
0
5 5.7219
4 2.0000
9 5.2983
11 7.1670
28 3.0000
29 3.0000
30 6.0000
31 3.2707
32 5.0000
33 5.0000
34 1.0000
35 4.0289
36 5.9655
38 6.0000
40 1.4559
41 3.1676
42 3.0381
43 3.0000
44 14.2610
45 9.0000
46 4.0000
0
1 -0.0365
2 1.5000
3 -0.5000
4 0.1493
5 -0.3799
6 0.1412
7 -1.8428
8 0.0357
9 -0.1947
10 0.4173
11 -6.0000
28 0.5767
29 -0.1912
30 0.8331
31 0.5019
32 0.9377
33 2.5379
34 0.0571
35 -0.0839
36 -2.0000
37 0.0000
38 0.0939
39 0.0611
40 0.1496
41 0.6892
42 0.2646
43 0.5071
44 5.8656
45 2.0486
46 -1.8983
62 0.1313
64 0.3800
65 0.0463
73 0.2000
92 -0.2969
100 0.9295
102 -0.5000
103 -0.1820
106 -0.5000
108 -0.1000
116 0.9000
117 0.3500
122 -0.9981
123 -0.6306
124 6.6698
133 -0.8676
139 0.4000
145 0.1219
148 0.1000
159 0.2165
161 0.2495
167 -0.1100
168 0.0245
174 -0.2400
178 0.0889
179 0.3758
186 0.1071
189 -0.5000
199 -0.2692
203 -3.0000
221 0.8947
222 0.9586
225 0.0200
232 0.2000
254 11.2040
258 -0.1500
265 -0.6000
281 1.6383
289 0.0102
0
259 0.40 0.4111 0.40 0.50
107 0.00 0.0000 0.00 0.10
200 0.50 0.4150 0.40 0.50
224 0.50 0.4755 0.40 0.50
54 0.00 0.0047 0.00 0.10
300 0.10 0.0928 0.00 0.10
0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

66
Sigmoid函数法/seting.m Normal file
View File

@ -0,0 +1,66 @@
function [e,f,PG,QR,Pg,Qg,T,pgvNum,xNum,m,r,l,u,z,w,x,y,para3,mu0,b0,bei,dmaxOut1,dmaxOut2,xz1,xz2,dmaxOut3,dmaxOut4,xz3,xz4,xz5,muOut,opfGoal,...
times,secondBegin,ifconverge,k2,mismatch]=seting(nodeNum,lineNum,transNum,transK0,capNum,capK,pvQmin,pvQmax,pvNum,pvNode,pvV,pgNum,pgNode,Pmin,Pmax,Pg,Qg)
%
%201010
%
para3=0.6; %β0
para4=5; %
if nodeNum==30 %
para3=0.51;
para4=3.9;
else if nodeNum==118
para3=0.09;
para4=5;
else if nodeNum==300
para3=0.45;
para4=4.6;
else if nodeNum==1047
para3=0.54;
para4=0.9;
else if nodeNum==1780
para3=0.4;
para4=0.6;
end
end
end
end
end
mu0=para4; %mut,mub
b0=para3; %β0
bei=20; %ZtZb
%% PQ10
e=ones(nodeNum,1);
f=sparse(nodeNum,1);
e(pvNode)=pvV(pvNode); %
%%
PG=(Pmin+Pmax)/2; %,
QR=(pvQmin+pvQmax)/2; %PV
Pg(pgNode)=PG(pgNode);
Qg(pvNode)=QR(pvNode);
T=1./transK0;
x=[T;PG(pgNode);QR(pvNode);capK;e;f]; %
%% l,u,z,w,y
pgvNum=pgNum+pvNum;
xNum=pgvNum+2*nodeNum+transNum+capNum; %
m=2*nodeNum; %
r=pgvNum+nodeNum+lineNum+transNum+capNum; %
s=1;
l=s*ones(r,1); %l,u,z1w-1y0
u=l;
z=l;
w=-l;
y=sparse(m,1);
xz1=[];xz2=xz1;xz3=xz1;xz4=xz1;dmaxOut1=xz1;dmaxOut2=xz1;dmaxOut3=xz1; %
dmaxOut4=xz1;xz5=xz1;muOut=xz1;
opfGoal=2; %
times=1; %
secondBegin=1; %
ifconverge=0; %
k2=0;
mismatch=0.00001; %
if nodeNum==1780 %17800.00001
mismatch=0.01; %0.010.00001
end

View File

@ -0,0 +1,62 @@
function [const,Lz,Lw,L1,U1]=snd_Constant(nodeNum,opfGoal,lineNum,transNum,transI,transJ,transG,transB,lineI,lineJ,balNode,mu,G,B,GIJ,BIJ,e,f,Pmin,Pmax,...
a,b,PG,QR,pvQmin,pvQmax,pgNum,pgvNum,xNum,pgNode,pvNode,dhx,dgx,L1,U1,LZ,UW,l,u,y,r,dT_Zt,capNum,hx,Vmax,Vmin,Zt,Zb,bei,mu0,oneTrans,oneCap)
%KKT
%201010
%% f(.)
if(opfGoal==2)
dPG=ones(pgNum,1);
dfx=sparse(transNum+1:transNum+pgNum,ones(pgNum,1),dPG,xNum,1);
else if(opfGoal==1)
dPG=2*a(pgNode).*PG(pgNode)+b(pgNode);
dfx=sparse(transNum+1:transNum+pgNum,ones(pgNum,1),dPG,xNum,1);
else if(opfGoal==3)
dfT=-transG.*dT_Zt.*((f(transI)-f(transJ)).^2+(e(transI)-e(transJ)).^2);
dfPQ=zeros(pgvNum,1);
dfcapK=zeros(capNum,1);
EE=e*ones(1,nodeNum);
FF=f*ones(1,nodeNum);
dfe=2*sum(G.*(EE-EE'));
dff=2*sum(G.*(FF-FF'));
dfx=[dfT;dfPQ;dfcapK;dfe';dff'];
else if(opfGoal==4)
dfT=transB.*dT_Zt.*((f(transI)-f(transJ)).^2+(e(transI)-e(transJ)).^2);
dfPQ=zeros(pgvNum,1);
dfcapK=zeros(capNum,1);
EE=e*ones(1,nodeNum);
FF=f*ones(1,nodeNum);
dfe=-2*sum(B.*(EE-EE'));
dff=-2*sum(B.*(FF-FF'));
dfx=[dfT;dfPQ;dfcapK;dfe';dff'];
end
end
end
end
%%
tmp=1;
Zbmin=-tmp*bei*mu0*oneCap; %ZtZb20ZtZb01
Zbmax=tmp*bei*mu0*oneCap; %ZtZb
Ztmin=-tmp*bei*mu0*oneTrans; %使01
Ztmax=tmp*bei*mu0*oneTrans;
gxT=Zt;
gxTx=Ztmin;
gxTs=Ztmax;
gxv=[PG(pgNode);QR(pvNode);Zb;e.^2+f.^2]; %
gxvx=[Pmin(pgNode);pvQmin(pvNode);Zbmin;Vmin.*Vmin]; %
gxvs=[Pmax(pgNode);pvQmax(pvNode);Zbmax;Vmax.*Vmax]; %
gxl=(e(lineI).*e(lineI)+f(lineI).*f(lineI)-e(lineI).*e(lineJ)-f(lineI).*f(lineJ)).*GIJ+(e(lineI).*f(lineJ)-e(lineJ).*f(lineI)).*BIJ;%线
gxlx=-ones(lineNum,1)*1000; %线
gxls=ones(lineNum,1)*1000; %线
gx=[gxT;gxv;gxl]; %
gxx=[gxTx;gxvx;gxlx];
gsx=[gxTs;gxvs;gxls];
Lz=gx-l-gxx;
Lw=gx+u-gsx;
%%
muUL=mu*(U1-L1);
BB1=UW*Lw-LZ*Lz-muUL*ones(r,1);
BB=dhx*y-dfx+dgx*BB1; %ψ(.,μ)
BB(transNum+pgvNum+capNum+nodeNum+balNode,1)=0; %00
BB(transNum+pgvNum+capNum+balNode,1)=0; %
const=[BB;hx]; %

View File

@ -0,0 +1,263 @@
function [HSB,dhx,dgx,dgxT,GIJ,BIJ,L1,U1,LZ,UW,transG,transB,dT_Zt,mut,mub]=snd_formHSB(nodeNum,balNode,opfGoal,lineNum,transNum,lineI,lineJ,transI,transJ,...
T,transG,transB,pgNode,pvNode,G,B,e,f,pgNum,pvNum,pgvNum,xNum,a,m,r,l,u,z,w,y,kt0,mut,Zt,oneTrans,oneCap,Zb,mub,q0,capBi,capNum,capI,tij,Bci,N1,H1,diagE,...
diagF,b0,balNum)
%
%201010
%% μt
dicVar=[tij;Bci];
tmp1=dicVar.*(1-dicVar);
if sum(tmp1)==0
tmp2=0;
else
tmp2=tmp1/sum(tmp1);
end
tmp3=ones(transNum+capNum,1)./(ones(transNum+capNum,1)+tmp2); %
bk=tmp3*b0;
mut_bk=bk(1:transNum);
mub_bk=bk(transNum+1:end);
smallest=0.0000000001; %00.9
large_mut=find(mut>smallest); %
small_mut=find(mut<=smallest);
mut(large_mut)=mut_bk(large_mut).*mut(large_mut);
mut(small_mut)=0.9*mut(small_mut);
large_mub=find(mub>smallest);
small_mub=find(mub<=smallest);
mub(large_mub)=mub_bk(large_mub).*mub(large_mub);
mub(small_mub)=0.9*mub(small_mub);
dT_Zt=oneTrans;
d2T_Zt2=oneTrans;
n_zt= Zt<0; %Sigmoid
p_zt= Zt>=0; %Zt
n_Ezu=exp(Zt(n_zt)./mut(n_zt));
dT_Zt(n_zt)=kt0(n_zt).*(n_Ezu./(mut(n_zt).*(oneTrans(n_zt)+n_Ezu).^2)); %ztTzt
d2T_Zt2(n_zt)=(dT_Zt(n_zt)./mut(n_zt)).*(oneTrans(n_zt)-2*n_Ezu./(oneTrans(n_zt)+n_Ezu));%ztTzt
p_Ezu=exp(-Zt(p_zt)./mut(p_zt));
dT_Zt(p_zt)=kt0(p_zt).*(p_Ezu./(mut(p_zt).*(oneTrans(p_zt)+p_Ezu).^2)); %ztTzt
d2T_Zt2(p_zt)=(dT_Zt(p_zt)./mut(p_zt)).*(oneTrans(p_zt)-2./(oneTrans(p_zt)+p_Ezu)); %ztTzt
transGmut=transG.*dT_Zt;
transBmut=transB.*dT_Zt;
dcapK_Zb=oneCap;
d2capK_Zb2=oneCap;
n_zb= Zb<0; %Zb
p_zb= Zb>=0;
n_Ezbu=exp(Zb(n_zb)./mub(n_zb));
dcapK_Zb(n_zb)=q0.*(n_Ezbu./(mub(n_zb).*(oneCap(n_zb)+n_Ezbu).^2)); %zbcapKzb
d2capK_Zb2(n_zb)=(dcapK_Zb(n_zb)./mub(n_zb)).*(oneCap(n_zb)-2*n_Ezbu./(oneCap(n_zb)+n_Ezbu));%zbcapKzb
p_Ezbu=exp(-Zb(p_zb)./mub(p_zb));
dcapK_Zb(p_zb)=q0.*(p_Ezbu./(mub(p_zb).*(oneCap(p_zb)+p_Ezbu).^2)); %zbcapKzb
d2capK_Zb2(p_zb)=(dcapK_Zb(p_zb)./mub(p_zb)).*(oneCap(p_zb)-2./(oneCap(p_zb)+p_Ezbu));%zbcapKzb
capBi_dBci=capBi.*dcapK_Zb;
%%
ef1=e(transI).*e(transJ)+f(transI).*f(transJ);
ef2=e(transI).*f(transJ)-e(transJ).*f(transI);
ef3=e(transI).*e(transI)+f(transI).*f(transI);
ef1G=ef1.*transGmut;
ef1B=ef1.*transBmut;
ef2G=ef2.*transGmut;
ef2B=ef2.*transBmut;
dhPTi=-ef1G+ef2B+2*ef3.*transGmut.*T;
dhPTj=-ef1G-ef2B;
dhPT=sparse(1:transNum,transI,dhPTi,transNum,nodeNum)+sparse(1:transNum,transJ,dhPTj,transNum,nodeNum);%P
dhQTi=ef1B+ef2G-2*ef3.*transBmut.*T;
dhQTj=ef1B-ef2G;
dhQT=sparse(1:transNum,transI,dhQTi,transNum,nodeNum)+sparse(1:transNum,transJ,dhQTj,transNum,nodeNum);%Q
dhP=sparse(1:pgNum,pgNode,ones(pgNum,1),pgNum,m);
dhQ1=sparse(1:pvNum,pvNode,ones(pvNum,1),pvNum,nodeNum);
dhQ=[sparse(pvNum,nodeNum) dhQ1];
dhcapK1=sparse(1:capNum,capI,(e(capI).^2+f(capI).^2).*capBi_dBci,capNum,nodeNum);%
dhcapK=[sparse(capNum,nodeNum) dhcapK1];
%
deG=diagE*G;
dfB=diagF*B;
deB=diagE*B;
dfG=diagF*G;
dH1=sparse(1:nodeNum,1:nodeNum,H1,nodeNum,nodeNum);
dN1=sparse(1:nodeNum,1:nodeNum,N1,nodeNum,nodeNum);
Hij=-dH1-deG-dfB;
Nij=-dN1+deB-dfG;
Jij=dN1-dfG+deB;
Lij=-dH1+dfB+deG;
dhJacb=[Hij Nij;Jij Lij]'; %
dhx=[dhPT dhQT;dhP;dhQ;dhcapK;dhJacb]; %h(x)
%% g(x)
gtransNum=transNum; %ZtZb
gcapNum=capNum;
dgT1=sparse(1:transNum,1:transNum,ones(transNum,1),transNum,r-lineNum);
dglT=(e(transI).^2+f(transI).^2-e(transI).*e(transJ)-f(transI).*f(transJ))...
.*transGmut+(e(transI).*f(transJ)-e(transJ).*f(transI)).*transBmut;
dgT2=sparse(1:transNum,lineNum-transNum+1:lineNum,dglT,transNum,lineNum);
dgT=[dgT1 dgT2]; %Zt
dgP=sparse(1:pgNum,gtransNum+1:gtransNum+pgNum,ones(pgNum,1),pgNum,r); %P
dgQ=sparse(1:pvNum,gtransNum+pgNum+1:gtransNum+pgvNum,ones(pvNum,1),pvNum,r);%Q
dgcapK=sparse(1:capNum,transNum+pgvNum+1:transNum+pgvNum+capNum,ones(capNum,1),capNum,r);%Zb
dgve=2*diagE;
dgvf=2*diagF;
sizeG=size(G);
GIJ=G(sub2ind(sizeG,lineI,lineJ));
BIJ=B(sub2ind(sizeG,lineI,lineJ));
dgleI=(2*e(lineI)-e(lineJ)).*GIJ+f(lineJ).*BIJ;
dgleJ=-e(lineI).*GIJ-f(lineI).*BIJ;
dglfI=(2*f(lineI)-f(lineJ)).*GIJ-e(lineJ).*BIJ;
dglfJ=-f(lineI).*GIJ+e(lineI).*BIJ;
dgle=sparse(lineI,(1:lineNum),dgleI,nodeNum,lineNum)+sparse(lineJ,(1:lineNum),dgleJ,nodeNum,lineNum);
dglf=sparse(lineI,(1:lineNum),dglfI,nodeNum,lineNum)+sparse(lineJ,(1:lineNum),dglfJ,nodeNum,lineNum);
dg0=sparse(m,gtransNum+pgvNum+gcapNum);
dgvl=[dgve dgle;dgvf dglf];
dgef=[dg0 dgvl]; %
dgx=[dgT;dgP;dgQ;dgcapK;dgef]; %
%%
Z=sparse(1:r,1:r,z,r,r);
W=sparse(1:r,1:r,w,r,r);
L1=sparse(1:r,1:r,1./l,r,r);
U1=sparse(1:r,1:r,1./u,r,r);
LZ=L1*Z;
UW=U1*W;
%%
%2f(x)
if(opfGoal==2) %
HSdfx=sparse(xNum,xNum);
else if(opfGoal==1)
HSdfx=sparse(transNum+1:transNum+pgNum,transNum+1:transNum+pgNum,2*a(pgNode),xNum,xNum);%PG0()
else if(opfGoal==3)
d2ftei=-2*transGmut.*(e(transI)-e(transJ));
d2ftej=-d2ftei;
d2ftfi=-2*transGmut.*(f(transI)-f(transJ));
d2ftfj=-d2ftfi;
d2fte=sparse(1:transNum,transI,d2ftei,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftej,transNum,nodeNum);
d2ftf=sparse(1:transNum,transI,d2ftfi,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftfj,transNum,nodeNum);
d2fT2=-transG.*d2T_Zt2.*((f(transI)-f(transJ)).^2+(e(transI)-e(transJ)).^2);
d2fT0=sparse(1:transNum,1:transNum,d2fT2,transNum,transNum+pgvNum+capNum);
d2fT=[d2fT0 d2fte d2ftf];
d2fPGQR=sparse(pgvNum,xNum);
d2fcapK=sparse(capNum,xNum);
d2fee=2*(G-sparse(1:nodeNum,1:nodeNum,sum(G,2),nodeNum,nodeNum));
d2fff=d2fee;
zero_nodeNum=sparse(nodeNum,nodeNum);
d2f_ef_ef=[d2fee zero_nodeNum;zero_nodeNum d2fff];
d2efT=[d2fte d2ftf]';
d2f_ef=[d2efT sparse(2*nodeNum,pgvNum+capNum) d2f_ef_ef];
HSdfx=[d2fT;d2fPGQR;d2fcapK;d2f_ef];
else if(opfGoal==4)
d2ftei=2*transBmut.*(e(transI)-e(transJ));
d2ftej=-d2ftei;
d2ftfi=2*transBmut.*(f(transI)-f(transJ));
d2ftfj=-d2ftfi;
d2fte=sparse(1:transNum,transI,d2ftei,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftej,transNum,nodeNum);
d2ftf=sparse(1:transNum,transI,d2ftfi,transNum,nodeNum)+sparse(1:transNum,transJ,d2ftfj,transNum,nodeNum);
d2fT2=transB.*d2T_Zt2.*((f(transI)-f(transJ)).^2+(e(transI)-e(transJ)).^2);
d2fT0=sparse(1:transNum,1:transNum,d2fT2,transNum,transNum+pgvNum+capNum);
d2fT=[d2fT0 d2fte d2ftf];
d2fPGQR=sparse(pgvNum,xNum);
d2fcapK=sparse(capNum,xNum);
d2fee=-2*(B-sparse(1:nodeNum,1:nodeNum,sum(G,2),nodeNum,nodeNum));
d2fff=d2fee;
zero_nodeNum=sparse(nodeNum,nodeNum);
d2f_ef_ef=[d2fee zero_nodeNum;zero_nodeNum d2fff];
d2efT=[d2fte d2ftf]';
d2f_ef=[d2efT sparse(2*nodeNum,pgvNum+capNum) d2f_ef_ef];
HSdfx=[d2fT;d2fPGQR;d2fcapK;d2f_ef];
end
end
end
end
%y2h(x)*y
y1=y(1:nodeNum,1);
y2=y(nodeNum+1:2*nodeNum,1);
ef1Gd2=ef1.*transG.*d2T_Zt2;
ef1Bd2=ef1.*transB.*d2T_Zt2;
ef2Gd2=ef2.*transG.*d2T_Zt2;
ef2Bd2=ef2.*transB.*d2T_Zt2;
d2P_T2=(-ef1Gd2+ef2Bd2+2*ef3.*transG.*(dT_Zt.^2+T.*d2T_Zt2)).*y1(transI)+(-ef1Gd2-ef2Bd2).*y1(transJ);
d2Q_T2=(ef1Bd2+ef2Gd2-2*ef3.*transB.*(dT_Zt.^2+T.*d2T_Zt2)).*y2(transI)+(ef1Bd2-ef2Gd2).*y2(transJ);
dhT2=d2P_T2+d2Q_T2; %Zt
HSdhT=sparse(1:transNum,1:transNum,dhT2,transNum+pgvNum+capNum,transNum+pgvNum+capNum)+...
sparse(transNum+pgvNum+1:transNum+pgvNum+capNum,transNum+pgvNum+1:transNum+pgvNum+capNum,...
(e(capI).^2+f(capI).^2).*d2capK_Zb2.*y2(capI),transNum+pgvNum+capNum,transNum+pgvNum+capNum);
eiG=e(transI).*transGmut;
ejG=e(transJ).*transGmut;
eiB=e(transI).*transBmut;
ejB=e(transJ).*transBmut;
fiG=f(transI).*transGmut;
fjG=f(transJ).*transGmut;
fiB=f(transI).*transBmut;
fjB=f(transJ).*transBmut;
ejG_fjB=ejG-fjB;
ejGfjB=ejG+fjB;
fjGejB=fjG+ejB;
ejB_fjG=ejB-fjG;
eiGfiB=eiG+fiB;
eiG_fiB=eiG-fiB;
eiB_fiG=eiB-fiG;
fiGeiB=fiG+eiB;
dP2_ei_t=(4*eiG.*T-ejG_fjB).*y1(transI)-ejGfjB.*y1(transJ);
dP2_ej_t=-eiGfiB.*y1(transI)-eiG_fiB.*y1(transJ);
dQ2_ei_t=(-4*eiB.*T+fjGejB).*y2(transI)+ejB_fjG.*y2(transJ);
dQ2_ej_t=eiB_fiG.*y2(transI)+fiGeiB.*y2(transJ);
HSdh_et=sparse(1:transNum,transI,dP2_ei_t+dQ2_ei_t,transNum,nodeNum)+sparse(1:transNum,transJ,dP2_ej_t+dQ2_ej_t,transNum,nodeNum);%Zt
dP2_fi_t=(4*fiG.*T-fjGejB).*y1(transI)+ejB_fjG.*y1(transJ);
dP2_fj_t=eiB_fiG.*y1(transI)-fiGeiB.*y1(transJ);
dQ2_fi_t=(-4*fiB.*T-ejG_fjB).*y2(transI)+ejGfjB.*y2(transJ);
dQ2_fj_t=eiGfiB.*y2(transI)-eiG_fiB.*y2(transJ);
HSdh_ft=sparse(1:transNum,transI,dP2_fi_t+dQ2_fi_t,transNum,nodeNum)+sparse(1:transNum,transJ,dP2_fj_t+dQ2_fj_t,transNum,nodeNum);%Zt
HSdh_eft=[HSdh_et HSdh_ft];
HSdh_tef=HSdh_eft';
HSdhPQ=sparse(pgvNum,2*nodeNum); %PGQR
d2hcap_e=sparse(1:capNum,capI,2*e(capI).*capBi_dBci.*y2(capI),capNum,nodeNum); %Zbe
d2hcap_f=sparse(1:capNum,capI,2*f(capI).*capBi_dBci.*y2(capI),capNum,nodeNum); %Zbf
HSdhcap_ef=[d2hcap_e d2hcap_f];
d2htPQ_ef=[HSdh_eft;HSdhPQ;HSdhcap_ef];
HSdhtPQ=[HSdhT d2htPQ_ef];
HSdhx1=sparse(m,pgvNum);
%
diagy1=sparse(1:nodeNum,1:nodeNum,y1,nodeNum,nodeNum);
diagy2=sparse(1:nodeNum,1:nodeNum,y2,nodeNum,nodeNum);
HSdhey=-diagy1*G+diagy2*B+(-G*diagy1+B*diagy2);
HSdhefy=diagy1*B+diagy2*G-(B*diagy1+G*diagy2);
HSdhx2=[HSdhey HSdhefy;HSdhefy' HSdhey];
HSdhx=[HSdhtPQ;HSdh_tef HSdhx1 HSdhcap_ef' HSdhx2];
%2g(x)*(z+w)
ZWcl=z(gtransNum+pgvNum+gcapNum+nodeNum+1:end)+w(gtransNum+pgvNum+gcapNum+nodeNum+1:end);
ZWv=z(gtransNum+pgvNum+gcapNum+1:gtransNum+pgvNum+gcapNum+nodeNum)+w(gtransNum+pgvNum+gcapNum+1:gtransNum+pgvNum+gcapNum+nodeNum);
dg2T=((e(transI).^2+f(transI).^2-e(transI).*e(transJ)-f(transI).*f(transJ)).*transG.*d2T_Zt2+...
(e(transI).*f(transJ)-e(transJ).*f(transI)).*transB.*d2T_Zt2).*ZWcl(lineNum-transNum+1:end);
HSdg2T=sparse(1:transNum,1:transNum,dg2T,transNum,transNum); %Zt
dgeiT=((2*e(transI)-e(transJ)).*transGmut+f(transJ).*transBmut).*ZWcl(lineNum-transNum+1:end);
dgejT=(-e(transI).*transGmut-f(transI).*transBmut).*ZWcl(lineNum-transNum+1:end);
dgeT=sparse(1:transNum,transI,dgeiT,transNum,nodeNum)+sparse(1:transNum,transJ,dgejT,transNum,nodeNum);%Zte
dgfiT=((2*f(transI)-f(transJ)).*transGmut-e(transJ).*transBmut).*ZWcl(lineNum-transNum+1:end);
dgfjT=(-f(transI).*transGmut+e(transI).*transBmut).*ZWcl(lineNum-transNum+1:end);
dgfT=sparse(1:transNum,transI,dgfiT,transNum,nodeNum)+sparse(1:transNum,transJ,dgfjT,transNum,nodeNum);%Ztf
HSdgefT=[dgeT dgfT];
HSdgT=[HSdg2T sparse(transNum,pgvNum+capNum) HSdgefT];
HSdgee=sparse(lineI,lineI,2*GIJ.*ZWcl,nodeNum,nodeNum)-sparse(lineI,lineJ,GIJ.*ZWcl,nodeNum,nodeNum)-...
sparse(lineJ,lineI,GIJ.*ZWcl,nodeNum,nodeNum)+sparse(1:nodeNum,1:nodeNum,2*ZWv,nodeNum,nodeNum);
HSdgff=HSdgee; %ef
HSdgef=sparse(lineI,lineJ,BIJ.*ZWcl,nodeNum,nodeNum)-sparse(lineJ,lineI,BIJ.*ZWcl,nodeNum,nodeNum);
HSdgfe=HSdgef';
HSdgx1=[HSdgee HSdgef;HSdgfe HSdgff];
HSdgxtPQ_0=sparse(pgvNum+capNum,xNum);
HSdgef_0=[HSdgefT' sparse(2*nodeNum,pgvNum+capNum)];
HSdgx=[HSdgT;HSdgxtPQ_0;HSdgef_0 HSdgx1]; %
%H(.).
dgxT=dgx'; %dgx
MULdgx=dgx*(UW-LZ)*dgxT;
H=HSdhx+HSdgx-HSdfx+MULdgx; %H(.).
%%
HSB0=sparse(m,m);
HSB=[H dhx;dhx' HSB0];
balN=transNum+pgvNum+capNum+nodeNum+balNode;
HSB(balN,:)=0; %001
HSB(:,balN)=0;
HSB_balN=sub2ind(size(HSB),balN,balN);
HSB(HSB_balN)=ones(balNum,1);
balN1=transNum+pgvNum+capNum+balNode;
HSB(balN1,:)=0; %001
HSB(:,balN1)=0;
HSB_balN1=sub2ind(size(HSB),balN1,balN1);
HSB(HSB_balN1)=ones(balNum,1);

View File

@ -0,0 +1,44 @@
function [x,secondBegin,mut,oneTrans,Zt,tij,Tn,kt0,r,l,u,z,w,y,oneCap,capKn,Bci,Zb,mub,q0,Tn1,capKn1,Kn,capK,firstT,firstcapK,firstfx,firstV,Gap]=...
snd_setting(x,secondBegin,transNum,T,transKmin,transKmax,r,m,capNum,capK,pgvNum,mu0,capBi,fx,e,f)
%
%201010
%%
firstT=T;
firstcapK=capK;
firstfx=fx;
firstV=sqrt(e.^2+f.^2);
%%
secondBegin=secondBegin-1;
oneTrans=ones(transNum,1);
oneCap=ones(capNum,1);
mut=oneTrans*mu0; %Zt
mub=oneCap*mu0; %Zb
maxTap=5; %
K=1./T; %k1便T=1/k
Kmax=1./transKmin;
Kmin=1./transKmax;
kt0=(Kmax-Kmin)/(maxTap-1); %
Kn=fix((K-Kmin)./kt0).*kt0+Kmin; %
Kn1=Kn+kt0;
Tn=1./Kn1;
Tn1=1./Kn;
kt0=Tn1-Tn;
q0=1; %
capK=capK./capBi; %capK
capKn=floor(capK);
capKn1=capKn+q0;
tij=(T-Tn)./kt0; %0-1
Bci=(capK-capKn)/q0;
Zt=mut.*log(tij./(oneTrans-tij)); %
Zb=mub.*log(Bci./(oneCap-Bci)); %
x(1:transNum)=Zt; %
x(transNum+pgvNum+1:transNum+pgvNum+capNum)=Zb;
%%
l=ones(r,1);
u=l;
z=l;
w=-l;
y=sparse(m,1);
Gap=l'*z-u'*w;

View File

@ -0,0 +1,77 @@
function [z,l,u,w,x,y,PG,QR,Pg,Qg,e,f,T,G,B,Zt,tij,Zb,Bci,capK,mut,mub]=snd_solve(HSB,const,mu,r,nodeNum,pgNum,pvNum,pgvNum,xNum,transNum,pgNode,pvNode,...
Pg,Qg,m,x,y,z,l,u,w,Lz,Lw,LZ,UW,dgxT,L1,U1,G,B,transI,transJ,T,transG1,transB1,kt0,Tn,mut,oneTrans,q0,capKn,mub,oneCap,capK,capNum,capI,capBi)
%
%201010
%%
dX=-HSB\const;
dx=dX(1:xNum,1);
dy=dX(xNum+1:xNum+m,1);
dl=dgxT*dx+Lz;
du=-dgxT*dx-Lw;
Ll=(l.*z-mu*ones(r,1));
Lu=(u.*w+mu*ones(r,1));
diagZ=sparse(1:r,1:r,z,r,r);
diagW=sparse(1:r,1:r,w,r,r);
dz=-LZ*dgxT*dx-L1*(diagZ*Lz+Ll);
dw=UW*dgxT*dx+U1*(diagW*Lw-Lu);
%
minusdz=find(dz<0);
dzmin=min(-z(minusdz)./dz(minusdz));
minusdl=find(dl<0);
dlmin=min(-l(minusdl)./dl(minusdl));
minusdw=find(dw>0);
dwmin=min(-w(minusdw)./dw(minusdw));
minusdu=find(du<0);
dumin=min(-u(minusdu)./du(minusdu));
ap=min(dlmin,dumin);
ad=min(dzmin,dwmin);
stepp=0.9995*min(ap,1);
stepd=0.9995*min(ad,1);
%
x=x+stepp*dx;
l=l+stepp*dl;
u=u+stepp*du;
y=y+stepd*dy;
z=z+stepd*dz;
w=w+stepd*dw;
%
Tlast=T;
capKlast=capK;
%
Zt=x(1:transNum,1);
Zb=x(transNum+pgvNum+1:transNum+pgvNum+capNum);
tij=oneTrans;
Bci=oneCap;
n_zt= Zt<0;
p_zt= Zt>=0;
tij(n_zt)=exp(Zt(n_zt)./mut(n_zt))./(exp(Zt(n_zt)./mut(n_zt))+oneTrans(n_zt));%Zt
tij(p_zt)=oneTrans(p_zt)./(oneTrans(p_zt)+exp(-Zt(p_zt)./mut(p_zt)));
n_zb= Zb<0;
p_zb= Zb>=0;
Bci(n_zb)=exp(Zb(n_zb)./mub(n_zb))./(exp(Zb(n_zb)./mub(n_zb))+oneCap(n_zb));
Bci(p_zb)=oneCap(p_zb)./(oneCap(p_zb)+exp(-Zb(p_zb)./mub(p_zb)));
T=Tn+tij.*kt0; %SigmoidTcapK
capK=capKn+Bci.*q0;
PG(pgNode,1)=x(transNum+1:transNum+pgNum,1);
QR(pvNode,1)=x(transNum+pgNum+1:transNum+pgNum+pvNum,1);
e=x(transNum+pgNum+pvNum+capNum+1:transNum+pgNum+pvNum+capNum+nodeNum,1);
f=x(transNum+pgNum+pvNum+capNum+nodeNum+1:xNum,1);
Pg(pgNode)=PG(pgNode);
Qg(pvNode)=QR(pvNode);
%%
transG=transG1;
transB=transB1;
G=G-sparse(transI,transI,(T.*T-Tlast.*Tlast).*transG,nodeNum,nodeNum)...
+sparse(transI,transJ,transG.*(T-Tlast),nodeNum,nodeNum)...
+sparse(transJ,transI,transG.*(T-Tlast),nodeNum,nodeNum);
B=B-sparse(transI,transI,(T.*T-Tlast.*Tlast).*transB,nodeNum,nodeNum)...
+sparse(transI,transJ,transB.*(T-Tlast),nodeNum,nodeNum)...
+sparse(transJ,transI,transB.*(T-Tlast),nodeNum,nodeNum)...
+sparse(capI,capI,(capK-capKlast).*capBi,nodeNum,nodeNum);

65
Sigmoid函数法/solve.m Normal file
View File

@ -0,0 +1,65 @@
function [z,l,u,w,x,y,PG,QR,Pg,Qg,e,f,T,capK,G,B]=solve(HSB,const,mu,r,nodeNum,pgNum,pvNum,xNum,transNum,capNum,capI,capK,pgNode,pvNode,...
Pg,Qg,m,x,y,z,l,u,w,Lz,Lw,LZ,UW,dgxT,L1,U1,G,B,transI,transJ,T,transG1,transB1)
%
%201010
%%
dX=-HSB\const;
dx=dX(1:xNum,1);
dy=dX(xNum+1:xNum+m,1);
dl=dgxT*dx+Lz;
du=-dgxT*dx-Lw;
Ll=(l.*z-mu*ones(r,1));
Lu=(u.*w+mu*ones(r,1));
diagZ=sparse(1:r,1:r,z,r,r);
diagW=sparse(1:r,1:r,w,r,r);
dz=-LZ*dgxT*dx-L1*(diagZ*Lz+Ll);
dw=UW*dgxT*dx+U1*(diagW*Lw-Lu);
%%
minusdz=find(dz<0);
dzmin=min(-z(minusdz)./dz(minusdz));
minusdl=find(dl<0);
dlmin=min(-l(minusdl)./dl(minusdl));
minusdw=find(dw>0);
dwmin=min(-w(minusdw)./dw(minusdw));
minusdu=find(du<0);
dumin=min(-u(minusdu)./du(minusdu));
ap=min(dlmin,dumin);
ad=min(dzmin,dwmin);
stepp=0.9995*min(ap,1);
stepd=0.9995*min(ad,1);
%
x=x+stepp*dx;
l=l+stepp*dl;
u=u+stepp*du;
y=y+stepd*dy;
z=z+stepd*dz;
w=w+stepd*dw;
%
Tlast=T;
capKlast=capK;
%
T=x(1:transNum,1);
PG(pgNode,1)=x(transNum+1:transNum+pgNum,1);
QR(pvNode,1)=x(transNum+pgNum+1:transNum+pgNum+pvNum,1);
capK=x(transNum+pgNum+pvNum+1:transNum+pgNum+pvNum+capNum,1);
e=x(transNum+pgNum+pvNum+capNum+1:transNum+pgNum+pvNum+capNum+nodeNum,1);
f=x(transNum+pgNum+pvNum+capNum+nodeNum+1:xNum,1);
Pg(pgNode)=PG(pgNode);
Qg(pvNode)=QR(pvNode);
%%
transG=transG1;
transB=transB1;
G=G-sparse(transI,transI,(T.*T-Tlast.*Tlast).*transG,nodeNum,nodeNum)...
+sparse(transI,transJ,transG.*(T-Tlast),nodeNum,nodeNum)...
+sparse(transJ,transI,transG.*(T-Tlast),nodeNum,nodeNum);
B=B-sparse(transI,transI,(T.*T-Tlast.*Tlast).*transB,nodeNum,nodeNum)...
+sparse(transI,transJ,transB.*(T-Tlast),nodeNum,nodeNum)...
+sparse(transJ,transI,transB.*(T-Tlast),nodeNum,nodeNum)...
+sparse(capI,capI,(capK-capKlast),nodeNum,nodeNum);