- 在线时间
- 1497 小时
- 最后登录
- 2017-5-18
- 注册时间
- 2014-8-20
- 听众数
- 160
- 收听数
- 0
- 能力
- 70 分
- 体力
- 17748 点
- 威望
- 5 点
- 阅读权限
- 150
- 积分
- 8905
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 3830
- 主题
- 2802
- 精华
- 14
- 分享
- 1
- 好友
- 756
TA的每日心情 | 开心 2017-4-26 10:25 |
---|
签到天数: 491 天 [LV.9]以坛为家II
- 自我介绍
- 即使不开心也不要皱眉,因为你永远不知道有谁会爱上你的微笑!
 群组: 数学中国试看培训视频 群组: 2017美赛两天强训 群组: 2015司守奎matlab培训 群组: 2016国赛优秀论文解析 群组: 国赛护航思路养成班 |
function [MVAbase, bus, gen, branch, success, et] =runpf
! d5 W- m+ C9 Z# a. A' X[baseMVA, bus, gen, branch] = loadcase('caseRTS79');/ `& q: u) s: T7 G7 L# _
[i2e, bus, gen, branch] = ext2int(bus, gen, branch);0 u0 D. P2 k5 e
[probline,probgen]=failprob;
* Y% x5 K1 A! `' \0 e1 Y) Z[A,lpr,equ,Pgmax,goalA,busPg]=loadpro;
* n4 M" }% T/ E# Q: ~: i/ X& ]- I1 ` z; V" ]3 X* W
limB=zeros(1,48); %limB是1x48的全0矩阵: c% u7 R- R9 s3 k, [0 V! S
ranbr=size(branch,1); %ranbr=矩阵branch的行数
0 y. E0 w/ z. W( p$ ^lineB=zeros(ranbr,ranbr); %lineB是ranbr x ranbr的全0矩阵% t6 x* D( y: n3 ?
for i=1:ranbr %i从0到ranbr0 D% w/ Q- m9 {- v6 Y7 @
lineB(i,i)=1/branch(i,4); %方阵lineB的对角元素分别是1除以branch第4列的相应行数
8 k8 b" X- i' J; k9 U9 e, z" yend: d8 E, N- C5 L
Pload=bus(:,3); %Pload是取矩阵bus的第3列的所有元素
7 O4 l, }6 }. h5 y- @! zPload(13,:=[]; %删除Pload的第13行的所有元素
4 ?5 X p# p! r- }: bsumload=0; %定义sumload=09 b) F! C! e) |" A7 x
for i=1:size(bus,1) %i从1到矩阵bus的行数
S! v) u8 m8 q3 U }) h3 ^0 W sumload=sumload+bus(i,3); * ?0 K1 U3 P4 l% i
end %sumload=矩阵bus第3列所有元素之和% I9 }; R/ {; i8 m' f% l2 V+ l
sumpg=0; %定义sumpg=0
8 T& _. Z: t4 H, Q: Nfor i=1:length(busPg) %i从1到矩阵busPg的长度
U# S3 Q- C" O% F1 S sumpg=sumpg+busPg(i,1);( E! {" g! t! |* X- A( F
end %sumpg=busPg第1列所有元素之和* C# S0 q" B2 {0 T
refPg=591-sumload+sumpg;
9 \( U5 v3 w8 ^% w% W. x2 L. ]; TPmax=branch(:,8); %Pmax是矩阵branch第8列的所有元素' j3 Y: a7 ]. M
lolp=0; %定义电力不足概率LOLP=0
- p8 B/ e! v- _" _edns=0; %定义缺供期望电力EDNS=0
; @* a" J1 r. _$ m B1 Pvari=0; %
+ S2 m7 {9 z/ O3 U- ]6 p0 Bsumcut=0; %定义sumcut=0
$ b+ ]+ O; [" U' V3 zsumsqcut=0; %定义sumsqcut=0/ v! b7 e' }" L* r4 B
B=[];) o7 D6 p! h p. `' h+ K3 E
state=[];% g& H, Y7 ?" Z+ F
for stct=1:500002 k7 Q# G6 i! h
stvari=mc(probline,probgen);
4 Q& @/ f+ ^ W lengthst=length(stvari);
% w4 s, j: a8 s0 N" H4 J) Y* V numstate=length(state);
O$ k# B& }' e. A: } lolp=lolp*(stct-1)/stct;
$ O2 _# ^2 r5 @ edns=edns*(stct-1)/stct;
) r! ` z9 K$ Y* g. b( ?. H ednsarray(1,stct)=edns;
% I. R* g' v( d9 B lolparray(1,stct)=lolp;; ^0 o5 @$ E% H o) C4 i
6 F# l0 R% D' m1 q4 Y
if ~lengthst
, W0 S. r) M; f' d8 S1 M6 p vari=sumsqcut-2*sumcut*edns+stct*edns^2;
9 P' E2 L1 Z& R- w9 { vari=vari/stct^2;
' L8 R* s# J+ Q* H. G vindex(1,stct)=sqrt(vari)/edns;' H5 \) u: E! y6 G7 d5 x, y5 }' C; z4 M S
ednsarray(1,stct)=edns;
% M& o! n0 f, c" L. Y* j8 i3 Q2 B lolparray(1,stct)=lolp;
% Y, F) y+ K* X4 `$ @+ X6 i0 f continue;1 Y- W% A+ u- ~% D! O% O( w
else
0 w! T$ V' i9 i- O) y( e9 a4 k flag=0;* i% f# F+ C7 ^
for k=1:length(state)
?/ {) l5 J3 b if lengthst==length(state(1,k).st);
& }; J, A1 Q' g8 n if stvari==state(1,k).st9 i+ I$ ]% t; Q. t
state(1,k).num=state(1,k).num+1;
$ `! y* B" s4 ]: W7 S flag=1;% _5 f8 P/ f' M) X$ n
break;
+ g: I+ {: c+ ]; w: H8 w end3 p& ^# o( t9 D9 h9 D1 x- R
end
1 U5 M2 z; [# r end4 I& Z9 ]4 O9 Y; {
if ~flag
+ }. G* z& Z# z# |: h state(1,numstate+1).st=stvari;
% W6 F2 s/ h/ ?/ Q3 ?) h state(1,numstate+1).num=1; E6 ?, p4 `8 F" R( l, p+ ^/ i
end* \5 m+ ^. N# o) b2 P; K& p
end; D1 {: E' f; C
if flag
8 |5 R6 W% S# B8 E6 a# ?: I& H) p+ W if state(1,k).cutload& A( u; V2 v; L! v$ G4 W4 \6 r" D
sumcut=sumcut+state(1,k).cutload;% f% @+ S1 Y5 Z3 w6 V/ R9 I C7 R
sumsqcut=sumsqcut+state(1,k).cutload^2;
4 G& X6 c6 R/ C' w3 y4 V1 F lolp=lolp+1/stct;4 h" K" V1 X0 ?% h7 i& m
edns=edns+state(1,k).cutload/stct;2 J* W1 L/ V1 s \
vari=sumsqcut-2*sumcut*edns+stct*edns^2;6 y# j. ~) z6 l( h8 U
vari=vari/stct^2;
2 U) D4 U ~8 r ednsarray(1,stct)=edns;
% y H: T4 g( K- g, T lolparray(1,stct)=lolp;5 s- \# Z6 c& d& P
end
- h Y8 I3 b& |4 H# \ vindex(1,stct)=sqrt(vari)/edns;9 Y, B3 _4 M2 c: o' [4 @; S
continue;3 E5 e! J9 C; x/ O: U: i
end
9 j/ r7 ?7 H' w8 B% a clear stvari;- ?9 \3 {9 y) |$ ?! U
: _: X; y* Y2 G( R1 J& N3 Y
ischange=0;
0 H$ u7 x% l3 F9 k `& ?- X sPgmax=Pgmax;
0 W: }* [! F) }- H. b+ ` sbusPg=busPg;0 A& ~, A2 n$ Z5 @5 Z& p- h
srefPg=refPg;
) H7 _& u `/ K) m7 q) R outbr=0;
. U6 G% H7 a3 Q" t; c G2 s5 l0 O. g outgen=0;
. A. y/ @8 n a' ?8 Q6 a for lenct=1:length(state(1,length(state)).st)
# ]4 m! k' `' s if state(1,length(state)).st(1,lenct)<39
2 J% T2 E" J& E5 s outbr=outbr+1;/ `7 w+ _- Q8 B& `4 j4 K, W: I
branch(state(1,length(state)).st(1,lenct),11)=0;
7 l! N8 y' Y! M7 l/ I' f6 N! ]3 P \ memobr(1,outbr).loc=state(1,length(state)).st(1,lenct);
3 F4 ~( V4 x8 U5 H7 O) _! H* x3 R# ^ memobr(1,outbr).b=lineB(state(1,length(state)).st(1,lenct),4);7 P' o, a& F, U) y
lineB(state(1,length(state)).st(1,lenct),4)=0;6 u( a+ i6 D/ A
ischange=1;/ I9 U1 K" \5 b P
clear B;6 Z1 P+ Z) V0 U% E& Q! [' Z6 Q0 o
8 S' J' @1 e; l0 ?/ w2 G- R else
# B/ ~3 I( ?+ l+ R' y gavri=state(1,length(state)).st(1,lenct)-38;2 H! R: ~, ]. K3 Q2 A& w1 P& i- v
gen(gavri,8)=0;
" o& g: X. W( J; G srefPg=srefPg-gen(gavri,2);
" w& a }% p$ V- z7 G outgen=outgen+1;
: V3 ]1 S; A) P# I( ^ memogen(1,outgen)=gavri;/ C, T8 y1 W# q: ~! d! c
if gen(gavri,1)<13
2 Z8 g9 x$ z' I sPgmax(1,gen(gavri,1))=sPgmax(1,gen(gavri,1))-gen(gavri,9);& n+ X! L+ c2 ~; e/ p0 b. K
sbusPg(gen(gavri,1),1)=sbusPg(gen(gavri,1),1)-gen(gavri,2);' T8 N/ m6 G- u0 v. p
end* k! K |5 F% R& u8 b
if gen(gavri,1)==13
* {/ A+ \% z0 P% R8 }1 t srefPg=-1;- H3 G9 L+ j7 u! Z' d. d) M' p
sPgmax(1,24)=Pgmax(1,24)-gen(gavri,9);
2 a2 X7 G& G5 S0 a! W9 S end: a& ^* _0 d- z6 L: g7 O- C6 M
if gen(gavri,1)>13- L+ j; I& E9 z% w( V) N7 y
sPgmax(1,gen(gavri,1)-1)=sPgmax(1,gen(gavri,1)-1)-gen(gavri,9);2 |7 t0 x, z0 D; @* s2 w9 U5 y
sbusPg(gen(gavri,1)-1,1)=sbusPg(gen(gavri,1)-1,1)-gen(gavri,2);: C# D' T8 @2 ]: J& d1 M& l8 d
end
% L" T0 \9 P8 h+ R. x# Q end! W8 x; i+ H3 L o7 Q8 G
end0 S7 r: T, T5 H, X2 z' p5 M
% if (stct==1)|ischange8 y [" B3 Z( \- n% z0 F/ a' Q
B = makeBdc(baseMVA, bus, branch);: l* {. K; d+ u7 y% d0 ]
subB=full(B);; v/ u! g7 E9 d N9 P6 e4 \. i4 J
subB(13,:=[];
% z3 l# u, S( |6 d0 l' f9 i$ K' F subB(:,13)=[];* A2 }( d9 L6 X# T" {" u; _
swp=lineB*A*inv(subB);
" E! l" h$ T0 O3 ?# m/ T: r& U swp1=swp*Pload;6 X, A7 W9 t x: `
maxArray=Pmax+swp1;9 U: y- G( `' r- l, H) N/ R( X
minArray=swp1-Pmax;
4 O4 R3 V& b* t9 _2 x" b maxArray=[maxArray;-minArray];7 B2 G. D. V: ?- c% |2 I- j5 C7 M
lprA=swp*lpr;
4 ?3 ]6 h7 G- H `4 O. p- Y% I% p lprA=[lprA;-lprA];2 x) y3 Y& T$ N$ T. V
clear minArray A: B+ ?, I" D7 @ s
clear B, ?# W5 p9 U2 j: m
clear subB. J8 L+ [; e0 C
% end+ r& F) [. T' m% [/ I# b! r
# T' H" [$ M7 N% z# ^
state(1,length(state)).cutload=0.0;3 T' I. h6 I- l$ p6 j# H
if srefPg>0- k) q, d- k0 N+ F5 B
brflow=swp*(sbusPg-Pload);
: H. F; n; G9 E9 _ cutload=0;$ b) l: Z: c3 Y8 J& o
for ctbranch=1:38
5 w. { V* o/ \1 c3 Q3 y7 a' T: v if abs(brflow(ctbranch,1))>branch(ctbranch,8)6 C. O+ k3 U; v* r; F
limA=[Pload',bus(13,3),sPgmax];/ @) I" V5 f( _: R6 O, S3 L. V
[m,cutload]=linprog(goalA,lprA,maxArray,equ,sumload,limB,limA);
A0 v8 p& R) d: J7 C& j2 t) s" N if cutload>1
; q. I: |. _- g state(1,length(state)).cutload=cutload;
$ ^: s2 f: E: Q3 |/ k end& F7 Y* ` m# u
break;
; U: s: C# Z2 f; M7 g3 `+ t1 |. _ end
# H2 j( F* U) w' ` end/ L& s w% i5 |' ^& H
else
+ j. [/ j ?2 e' d limA=[Pload',bus(13,3),sPgmax];' h8 g2 Y$ o U" _! I& ]
[m,cutload]=linprog(goalA,lprA,maxArray,equ,sumload,limB,limA);
/ D- [* s) y4 [. w$ @ if cutload>1. y: M# g( `8 o2 h5 ?
state(1,length(state)).cutload=cutload;
5 d0 s# r; [ X' H+ c6 |( {1 \ end
( @( a y+ r' H p. P- ^ end9 u! ?6 r2 R" h& m3 \% `( w, z0 m
if state(1,length(state)).cutload1 G" c3 P6 ~4 s
sumcut=sumcut+state(1,length(state)).cutload;( Q2 i9 z4 c5 N- |3 @2 a0 v# j* R
sumsqcut=sumsqcut+state(1,length(state)).cutload^2;, i$ _/ _1 p6 I% X. G% w
lolp=lolp+1/stct;
$ r) [# t' u8 A) o) ^ edns=edns+state(1,length(state)).cutload/stct;
8 L' ` Q0 T0 R6 d$ y+ ~ vari=sumsqcut-2*sumcut*edns+stct*edns^2;7 j1 d: R9 V" r/ |
vari=vari/stct^2;
4 N' p! m* `6 E8 S8 N5 [ ednsarray(1,stct)=edns;4 R e) O+ _8 i1 f9 X
lolparray(1,stct)=lolp;# y6 p+ j& P: g: S+ e3 K
end
/ R' S% L! w5 N) N7 c8 J vindex(1,stct)=sqrt(vari)/edns;7 Y3 F* l& n6 M/ {
success = 1;' B: ^1 |% k: I% @: o
for i=1: outbr
, `+ X, o$ |$ O- ~" F5 w+ d branch(memobr(1,i).loc,11)=1;
' D) j) |, L+ l8 G- g& O lineB(memobr(1,i).loc,4)=memobr(1,i).b;
- U$ U% q- Z5 t) p2 P end( B: j( i4 m0 w: i0 s. s
for i=1: outgen
$ G4 [. R* W1 F" ?! C gen(memogen(1,i),8)=1;
9 E, g! i' Y: w1 d) T end: j2 X% o5 R1 o9 f. q' E# F
clear memobr;- Y1 ^8 ? s' r* Q& h
clear memogen;# ^" n- Z6 U- a* ~& ^
% if (stct>10)&(vindex(1,stct)<0.017)
* Z& e, c9 Y& ?% break. f& T0 O3 v! \0 j. p
% end
" M7 _) Y; y4 K% v& Fend5 Y* I# u3 d+ N- y& I3 K- M0 g; a
layer=zeros(1,15);
0 p: c/ x. H8 {! `: s5 d, U- \for i=1:length(state)9 [0 y- {2 W* }& t7 t
layer(1,length(state(1,i).st))=layer(1,length(state(1,i).st))+state(1,i).num*state(1,i).cutload/stct;7 K2 b/ X6 N: k5 @" j8 U& g' m
end* U/ c! T1 f0 w8 _3 ^
! `2 d6 _7 U y+ |, J
lolp0 w& n- Y1 V# R! U. g
edns0 j& N% q% v7 j7 b$ ?
dlmwrite('E:\study\edns1.txt', ednsarray);
/ ~8 e' f) x$ i" ^, fdlmwrite('E:\study\lolp1.txt', lolparray);( Y* w9 D6 ]/ \/ r( I! O! Z
dlmwrite('E:\study\var1.txt', vindex);. ^# A) W3 w* r$ @
dlmwrite('E:\study\layer1.txt', layer);7 q' U$ T& k1 Y8 Z9 s6 ^% M- x
plot(vindex);
( K* X6 B4 A! u/ z1 o7 ~hold on" e' I" @! D, U
plot(layer)
# E) l! X7 [2 |return;
( U t( O4 ^; w5 R0 w: m$ i$ Z9 _8 f, U [* y
rudeMC.rar
(18.16 KB, 下载次数: 8, 售价: 2 点体力)
|
/ X# L/ N; e' w3 }3 \/ o! z% U, @( q/ Z% W' Q2 }
D: {+ U9 ?& ] @7 J5 U, K
9 S+ E0 `* h) |" ? |
zan
|