- 在线时间
- 1497 小时
- 最后登录
- 2017-5-18
- 注册时间
- 2014-8-20
- 听众数
- 160
- 收听数
- 0
- 能力
- 70 分
- 体力
- 17829 点
- 威望
- 5 点
- 阅读权限
- 150
- 积分
- 8829
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 3830
- 主题
- 2802
- 精华
- 4
- 分享
- 1
- 好友
- 756
TA的每日心情 | 开心 2017-4-26 10:25 |
|---|
签到天数: 491 天 [LV.9]以坛为家II
- 自我介绍
- 即使不开心也不要皱眉,因为你永远不知道有谁会爱上你的微笑!
 群组: 数学中国试看培训视频 群组: 2017美赛两天强训 群组: 2015司守奎matlab培训 群组: 2016国赛优秀论文解析 群组: 国赛护航思路养成班 |
function [MVAbase, bus, gen, branch, success, et] =runpf7 Z: F2 T" g6 `( q
[baseMVA, bus, gen, branch] = loadcase('caseRTS79');
3 |. q* q& l( }% Y0 Y5 l4 F[i2e, bus, gen, branch] = ext2int(bus, gen, branch);
" n( x1 a1 Y# w" H# q: }7 y$ W[probline,probgen]=failprob;
- {2 G% l3 F7 u' x8 S5 B[A,lpr,equ,Pgmax,goalA,busPg]=loadpro;
: A: s9 i$ z/ W( O6 n4 ?) z, Q o' W( t* S2 X: w
limB=zeros(1,48); %limB是1x48的全0矩阵
8 T9 ^. s' V* v/ ?ranbr=size(branch,1); %ranbr=矩阵branch的行数0 k, e% h; C; l: b2 ?0 Z
lineB=zeros(ranbr,ranbr); %lineB是ranbr x ranbr的全0矩阵1 J1 D$ \ {4 [5 s" ^1 T
for i=1:ranbr %i从0到ranbr; |& q' A) p X6 X
lineB(i,i)=1/branch(i,4); %方阵lineB的对角元素分别是1除以branch第4列的相应行数9 c! A( [ b. A/ u% i S: G) T9 T
end2 I* V& Q! j H, r
Pload=bus(:,3); %Pload是取矩阵bus的第3列的所有元素9 }. _- C) @. Z9 W" |# R3 C" {' O
Pload(13,:=[]; %删除Pload的第13行的所有元素
\2 y7 H8 ~) _9 e- x9 _sumload=0; %定义sumload=0
9 _# `4 v4 X, F% A3 z3 h* d5 |; Ffor i=1:size(bus,1) %i从1到矩阵bus的行数
- E# ?. Y5 n8 J. f6 M. e7 X sumload=sumload+bus(i,3); ; H; W; a7 Q; b. C1 b. H
end %sumload=矩阵bus第3列所有元素之和
2 \3 G5 `- F0 u3 \sumpg=0; %定义sumpg=0
" D0 `4 e# U' ?( V" D1 s9 Wfor i=1:length(busPg) %i从1到矩阵busPg的长度
: ~, @, c# J6 I3 {- K. t sumpg=sumpg+busPg(i,1);" E7 q7 H# D, H4 J4 @
end %sumpg=busPg第1列所有元素之和2 q& w/ N- }+ P% a/ m1 \
refPg=591-sumload+sumpg;
1 _) B6 N. e; H$ r6 P; ?3 X- KPmax=branch(:,8); %Pmax是矩阵branch第8列的所有元素
E6 \3 j; ?# L; O# O) t0 p3 k7 Plolp=0; %定义电力不足概率LOLP=0, v* i& n' r$ B5 k
edns=0; %定义缺供期望电力EDNS=0
9 L8 Q8 u$ m' l9 i! ~vari=0; %8 Q4 {6 s: j) n) l9 ?
sumcut=0; %定义sumcut=09 u: Z4 Q4 M0 [! \# A
sumsqcut=0; %定义sumsqcut=0
4 ~: W0 H& T }7 SB=[];
/ ?5 D' g) i4 _; P; _4 hstate=[];7 L$ v D' u8 j2 e# J; J8 H/ r* \1 y
for stct=1:50000+ B7 i# z z5 i7 g
stvari=mc(probline,probgen);+ ~- p4 \2 `% T" z- H3 f3 y6 p
lengthst=length(stvari);7 c: d, m: p2 a) n6 j* |
numstate=length(state);5 v `8 \9 v6 u0 Z& b# E5 F7 M: v
lolp=lolp*(stct-1)/stct;2 i' a' p( q8 v% G* o V" e+ b
edns=edns*(stct-1)/stct;% c$ @4 A7 u+ w# {
ednsarray(1,stct)=edns;
" G4 ]1 {7 h2 f d* ^! o lolparray(1,stct)=lolp;# W5 f4 C/ {% o) r5 p) v1 q% |
1 R4 {% C( [7 ^. k- o' g* l if ~lengthst
8 x4 P7 ~8 Z7 h; \5 I6 i% w% e vari=sumsqcut-2*sumcut*edns+stct*edns^2;$ f7 w* m/ E4 \: t
vari=vari/stct^2;
2 {+ n) f Y3 e, w vindex(1,stct)=sqrt(vari)/edns;8 b0 f3 z* j; b, H6 Q
ednsarray(1,stct)=edns;7 Q6 I; V4 i" J n5 m6 L& Y; E% D
lolparray(1,stct)=lolp;' ^9 H' L p! J1 Q
continue;, [; W+ a) a) Y% e1 \& A
else
# ?1 h S/ `' \ flag=0;
& k4 m5 `/ H2 K x W; w for k=1:length(state)% j9 p: k) g- V; ~$ U4 Q
if lengthst==length(state(1,k).st);
; I8 F, S" w1 v4 X) |5 e: ? if stvari==state(1,k).st
- s. V r8 u4 ^ state(1,k).num=state(1,k).num+1;8 ^7 s1 r8 S; [+ A0 P# ?! W3 R3 ?! ~9 u
flag=1;8 T& S- C6 n5 W# ?
break;! w8 V, r6 c+ H4 @( R" l: y0 c% k9 I
end
5 T5 J, d$ S# f9 U( _ i) x" F end
( _& d; B; B4 A+ |2 F9 } end
+ J4 `$ S( _3 I* j' J' N0 {" { if ~flag0 Z0 H! g: w6 K: A; [" [$ ]6 P
state(1,numstate+1).st=stvari;5 [! ^! p+ a7 m3 {6 Y7 W2 [
state(1,numstate+1).num=1;7 q- p" m$ M, X& v8 ~' w: e5 g
end
6 A7 ?6 O5 o" z% @( P K end
! Q' u) |& e# ^& H" v; G/ S+ a if flag5 X4 P$ W6 \% [/ j: W5 Q
if state(1,k).cutload7 s2 P4 m+ v- S1 N
sumcut=sumcut+state(1,k).cutload;
6 A) a& D5 h2 a& S" I1 z# n' r sumsqcut=sumsqcut+state(1,k).cutload^2;
' ]. H4 y9 Q* F3 E9 c: W, u lolp=lolp+1/stct;" V/ D; d. D7 ~6 y0 q2 o
edns=edns+state(1,k).cutload/stct;
) B- n+ e. \! |: Z# N+ @ vari=sumsqcut-2*sumcut*edns+stct*edns^2;
# D+ U* \2 I3 r/ y& R, J vari=vari/stct^2;4 n' f/ j6 K& M
ednsarray(1,stct)=edns;
. `# X" g: }' z8 N$ o( P6 L" E lolparray(1,stct)=lolp;
- M7 j3 h, S% }! p0 e+ s end
5 a4 z. N( g9 Q) E* w$ `+ b. L vindex(1,stct)=sqrt(vari)/edns;
% K. i& v. w# b! q. @ continue;
, O: Z( f6 I, e9 Z7 s8 N end4 V0 o, ^2 C, T2 e- |! F* P
clear stvari;: `* G( q z6 U& D: Z
2 N" L& U6 x" m4 o1 f( B d
ischange=0;
5 D7 _: K# y q k1 G# N sPgmax=Pgmax;
. F% ?8 D/ m5 B5 u. }9 f" J# j sbusPg=busPg;
) [# [! C$ ?# F4 g3 n! F! E srefPg=refPg;: d" R5 Y0 f2 f' ^
outbr=0;$ i/ e$ R4 a. [2 G' Z( t
outgen=0;
( y$ A9 l7 {: D for lenct=1:length(state(1,length(state)).st)
' j" ^2 i( P: D: B$ p if state(1,length(state)).st(1,lenct)<39: B4 R6 }' x) ~7 d( h
outbr=outbr+1;; K* l @* i, G, z8 I$ w% S- x
branch(state(1,length(state)).st(1,lenct),11)=0;: e( \9 v7 o0 w: p4 v6 |
memobr(1,outbr).loc=state(1,length(state)).st(1,lenct);6 M3 b; l' [) l) f$ @( p( ~/ |* P
memobr(1,outbr).b=lineB(state(1,length(state)).st(1,lenct),4);
- s; D' D; Q8 [; R' G/ s8 Q# Y( q1 @: W" m lineB(state(1,length(state)).st(1,lenct),4)=0;0 I9 o, |% D# c% g( |! E
ischange=1; K$ {, u9 i3 A o, b1 ~
clear B;/ ?! h3 Y; I& \. v4 b! [& D) J, n
: c& D, L0 O: G
else
$ N' M2 g1 |3 |) T" _ gavri=state(1,length(state)).st(1,lenct)-38;. G; o A6 f8 h& H8 j
gen(gavri,8)=0;! Q/ c' \% z) S& B9 v1 N' e9 G! M, N
srefPg=srefPg-gen(gavri,2);
; R& u7 @: v3 j, V, a$ K outgen=outgen+1;
$ |: ^% I' V+ M* [& e; L3 ` memogen(1,outgen)=gavri;
+ O& u% z( o3 q& {" t8 E E if gen(gavri,1)<13# p, |* C: a+ s, J
sPgmax(1,gen(gavri,1))=sPgmax(1,gen(gavri,1))-gen(gavri,9);1 r8 F% b) b0 n; ]1 ^/ C3 J
sbusPg(gen(gavri,1),1)=sbusPg(gen(gavri,1),1)-gen(gavri,2); K; q' B8 J% ^4 B& s/ v
end
+ |( L2 d1 [0 {) O u) y if gen(gavri,1)==132 L. I3 v. L/ Y \; w2 f2 s) s* F
srefPg=-1;/ i" t9 p% G9 @7 q! F) C7 ?
sPgmax(1,24)=Pgmax(1,24)-gen(gavri,9);- Z$ R7 N3 Q( E% u! @
end
( d7 I/ c9 n7 p& Q if gen(gavri,1)>13
2 I7 D; Y9 P- v sPgmax(1,gen(gavri,1)-1)=sPgmax(1,gen(gavri,1)-1)-gen(gavri,9);! @# B9 c5 \. J6 }7 ^
sbusPg(gen(gavri,1)-1,1)=sbusPg(gen(gavri,1)-1,1)-gen(gavri,2);5 S6 ?- P( }0 X. O7 Q$ _
end9 X% W% F- A: m
end' N7 g, W. U9 l9 Q. i# ?" f! r
end
6 x% ^4 O Z0 j$ k% if (stct==1)|ischange
4 U0 k! i. }4 K/ b/ N8 N B = makeBdc(baseMVA, bus, branch);* x/ k' b/ \, U4 f3 I g
subB=full(B); g2 I0 l! W7 b+ J1 `: f( E7 r
subB(13,:=[];
4 q1 z" x5 ]. m3 } subB(:,13)=[];
( [& C5 c& i, J swp=lineB*A*inv(subB);! p. F9 h* I; D! X/ c y$ y
swp1=swp*Pload;
7 C+ ^3 l# |7 K. N+ `- W maxArray=Pmax+swp1;3 ]6 t& w2 {7 L
minArray=swp1-Pmax;0 ~0 W; s9 E; [# \
maxArray=[maxArray;-minArray];4 P# A) ]( c0 Y: d3 m4 S, a1 o2 z
lprA=swp*lpr;
, B5 O7 S, r$ m. q% k lprA=[lprA;-lprA];
7 Q' u! B2 p+ a% X clear minArray
; x3 I& t# h0 L8 ] H" S clear B
0 z+ O4 Y. F8 P0 R: W clear subB' e" `# [# A- @4 }- T8 {8 q
% end$ `6 g D; M# k t: u* r' d
5 A' t' T# E C3 S1 Z state(1,length(state)).cutload=0.0;
# z( r) E- i) L7 x* b if srefPg>0
& f" f7 V) q6 R/ W7 D8 L" g" n2 o brflow=swp*(sbusPg-Pload);* t( d' C( n- S6 l' ?
cutload=0;0 J( M, d* S/ E& h9 P
for ctbranch=1:38
! g0 R7 T' I3 C2 {" s3 b- s if abs(brflow(ctbranch,1))>branch(ctbranch,8)' q5 c2 H* n1 `. V9 V4 j. @9 T* v
limA=[Pload',bus(13,3),sPgmax];8 _% e) ]$ A0 I) M( P, g
[m,cutload]=linprog(goalA,lprA,maxArray,equ,sumload,limB,limA);2 V, \- `$ Q3 U# a# l( E2 h
if cutload>1' K. y& A* E- q; ^' w: v+ M, v
state(1,length(state)).cutload=cutload;; G9 |* Q9 t: P) a B" \( H
end' K. m5 X. j$ C
break;
$ m0 e0 I$ e- ]8 Q) }6 I end
8 E% s" }# Y& F% y1 Y end9 j! H. O$ [3 }4 \8 [0 f E/ e6 D. u
else' n' y/ L% x/ u& w
limA=[Pload',bus(13,3),sPgmax];
; L8 }4 P, b& S( @ [m,cutload]=linprog(goalA,lprA,maxArray,equ,sumload,limB,limA);
- e' e2 ^% A3 _" }8 | if cutload>1# n, G( [2 ~! d/ g) t
state(1,length(state)).cutload=cutload;# Y `; O1 S# m
end
' @1 I7 e& B" V( n/ D8 o end! s: I9 T8 Y b: s9 H7 d# M
if state(1,length(state)).cutload# i- I& Y2 d, C8 a- C+ T
sumcut=sumcut+state(1,length(state)).cutload;
3 t3 d' o; V2 P% R+ ^: A" ?3 n: {" n sumsqcut=sumsqcut+state(1,length(state)).cutload^2;) B5 j9 V: R- J0 l
lolp=lolp+1/stct;7 G. K7 F, ~% \+ O$ A, u( O
edns=edns+state(1,length(state)).cutload/stct;
, W6 K' v" ~. R3 _- P$ Q; s9 ] vari=sumsqcut-2*sumcut*edns+stct*edns^2;# ~8 u. [! b, x5 D! T( t& C$ {
vari=vari/stct^2;* L/ \! H% U" f2 u1 {7 ^) @; q' D
ednsarray(1,stct)=edns;
" W0 ]9 m/ S$ _. ] lolparray(1,stct)=lolp;
3 n; r) A( q5 D* ?+ y2 Y: F/ j* ?8 ~! { end! N# Z7 s. C) [/ I
vindex(1,stct)=sqrt(vari)/edns;
! V% E B( ^2 G9 Q0 H success = 1;& _4 e! v( k* P8 z/ ~6 o) Y7 y
for i=1: outbr# z% V6 W/ y" x5 Q/ c
branch(memobr(1,i).loc,11)=1;
1 X, O1 o1 }5 U. T lineB(memobr(1,i).loc,4)=memobr(1,i).b;
% a8 c# x H/ f end/ O4 H4 Y' F, k C& [
for i=1: outgen
# C C6 ?3 P% n+ }9 y gen(memogen(1,i),8)=1;; I# H; h" ~# C- {' V% `
end9 V/ V. Y( S$ c: r
clear memobr;
* {: J1 u$ i% M clear memogen;) u2 o- t/ r5 @9 R- B6 X
% if (stct>10)&(vindex(1,stct)<0.017)/ J$ A: I( d! B+ N0 r1 `6 d* m
% break/ U( Z# F; K3 A5 l8 X/ S
% end. T2 h4 M- y2 x" N) m H5 L5 ]
end( l: | @( x y& z
layer=zeros(1,15);
. j: {9 W/ C' K6 \# G. }" Bfor i=1:length(state)
. E3 g! C1 B4 }% g$ a6 v layer(1,length(state(1,i).st))=layer(1,length(state(1,i).st))+state(1,i).num*state(1,i).cutload/stct;0 S( g2 C$ S* N |
end
- t. g7 C7 n8 j
( ~: G/ g; i. Z1 elolp% d! O5 k5 @6 G
edns
. e3 ^& `% V; D+ ~6 q5 s" [dlmwrite('E:\study\edns1.txt', ednsarray);
/ o F2 @% ^- k6 F. G4 ?dlmwrite('E:\study\lolp1.txt', lolparray);
* Q9 y! ^ k. x$ D, ~dlmwrite('E:\study\var1.txt', vindex);
2 G" Y# o) _. rdlmwrite('E:\study\layer1.txt', layer);
2 r( R! _/ X. H. Nplot(vindex);
4 i" p9 v* W0 @8 O9 \hold on
, X3 U. ^+ D1 l- E. rplot(layer)0 i$ d: |9 ]" |7 h8 U
return;
- I! N5 f2 m/ ^2 _9 y; _, |! Q5 z. X7 z, M1 x+ L7 e
rudeMC.rar
(18.16 KB, 下载次数: 8, 售价: 2 点体力)
|
6 _" z$ d5 b9 o1 C7 s! O# x) z9 ~! [9 q& N
% }9 l. W( k4 F0 u m8 p# S) `, P( v2 v5 M
|
zan
|