資源簡介
關于matlab直流最優潮流程序,采用單純型法的最優潮流問題
代碼片段和文件信息
function?[load_shed?EXIT]?=?load_shedding1(canshu)
n=10;%抽樣次數
n0=30;%系統節點數
n1=6;%發電機臺數
n2=41;%線路數
generatorgzl=0.04;
%?linegzl=[0.5?1.54?1.45?0.32?1.65?1.47?0.35?0.97?0.68?0.35?1.73?0.92?1.17?2.13?1.09?1.66?1.66?1.61?1.82?1.08?0.57?1.74?0.70?0.62?1.25?0.2?1.68?1.49?2.25?2.74?3.17?1.74?3.46?5.02?3.78
%?????????1.67?0.5?1.73?4.63?2.13?3.3];
R=rand(n1+n2n);%生成隨機數
lie=[0.004;0.004;0.004;0.004;0.004;0.004;0.004;0.002;0.002;0.002;0.002;0.002;0.002;0.002;0.002;0.002;0.002;0.002;0.002;0.02;0.002;0.02;0.02;0.02;0.02;0.02;0.02;0.02;0.02;0.02;0.02;0.02;0.02;0.02;0.02;0.02;0.02;0.02;0.02;0.02;0.02;
????????0.002;0.002;0.002;0.002;0.002;0.002];
[lengthwide]=size(R);
for?i=1:wide
????R(find(R(:i)<=lie(:1))i)=0;
????R(find(R(:i)>lie(:1))i)=1;
???
????
end
T=(unique(R‘‘rows‘));%取出相同列
%%%判斷是否有孤島產生%%%%%
M=T‘
[lengthwide]=size(M);
for?i=1:wide
????mpc=case30;
????for?j=1:n1
????????if?M(ji)==0
????????????mpc.gen(j8)=0;
????????end
????end
????????for?j=n1+1:n1+n2
????????????if?M(ji)==0
???????????????mpc.branch(j-n111)=0;
????????????end
????????end
????????canshu{i}=mpc%保存系統發電機、線路參數
????????jieguo{i}=rundcpf(mpc)%對每次系統狀態的潮流結果進行保存
end
%???canshu{1}=mpc;%保存系統發電機、線路參數
%?????????jieguo{1}=rundcpf(mpc);%對每次系統狀態的潮流結果進行保存
%???canshu{1}=mpc;%保存系統發電機、線路參數
%?????????jieguo{1}=rundcpf(mpc);%對每次系統狀態的潮流結果進行保存
%該函數根據輸入的系統數據mpc,計算得到各節點切負荷情況
%mpc:系統數據,其中包括線路、發電機狀態
%load_shed:兩列的矩陣,第一列為節點編號,第二列為對應切負荷量,單位MW
%EXIT:優化算法收斂標志,如果為1則表明找到最優解
%形成節點、線路、發電機參數,定義基準功率
mpc=canshu{i};
bus?=?mpc.bus;
gen?=?mpc.gen;
branch?=?mpc.branch;
baseMVA?=?mpc.baseMVA;
%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%修改線路,去掉停運線路
index?=?find(branch(:11)?==?0);
%%%%%%%%%%%%%%%%%%%%%%%%%
%形成B0矩陣
B0?=?makeBdc(mpc.bas
- 上一篇:中繼放大轉發的matlab代碼
- 下一篇:三維重建八點算法MATLAB代碼
評論
共有 條評論