直流潮流發的特點是用電力系統的交流潮流(有功功率和無功功率)用等值的直流電流來代替。甚至只用直流電路的解析法來分析電力系統的有功潮流,而根不如你不考慮無功分布對有功的影響。這樣一來計算速度加快,但計算的準確度有所降低,本方法適用於對潮流計算準確度要求不高的計算場景。
下面先對直流潮流法的原理進行簡單介紹:
上圖為直流法的等值圖,在上圖所示的輸電線路中,有功潮流為:
為了快速計算的需要,將上式進行了三項簡化:
(1)考慮一般高壓電網中線路的電阻遠小於電抗,對地電導也可以忽略即 gii=0 gij =0
(2)按照標么值計算時,節點電壓與其額定電壓相差不大,故有:ui≈uj≈1.0;
(3)線路兩端的電壓相角差(θi-θj)較小,所以有:
這樣,上式前兩項均為零,只剩第三項
這就相當於線路兩端的直流電位分別為θi和θj。線路的直流電阻是xij。則用矩陣表示為如下式所示。
式中:b0為正常執行時網路的節點電納矩陣;
θ為網路中各節點的電壓相位角的向量;
p為節點注入的有功功率向量;
下面以ieee39節點系統作為算例來進行直流潮流計算,以說明直流潮流法的具體應用場景
首先通過網路的節點引數得到電納矩陣b和各個節點的有功注入功率p,然後通過上式得θ=p/b,得到各個節點的電壓相角的大小(此齣為非精確值,要得到較精確值要進行交流潮流計算),由網路的潮流特性可知,電網中的潮流總是由相連節點中的高相位角的節點流向低相位角的節點,通過直流潮流法的快速計算,可得到網路中各線路的潮流流向,進一步可得到網路的有向鄰接矩陣。
function [theta1,p_branch,m,z,slackbus] = dcpowerflow(mpc)
[n,~] = size(mpc.bus);
[l,~] = size(mpc.branch);
a = zeros(n);%節點導納矩陣
for i = 1:l
p = mpc.branch(i,1);q = mpc.branch(i,2);
a(p,q) = -1/mpc.branch(i,4);
a(q,p) = a(p,q);
endfor i = 1:n
a(i,i) = -sum(a(i,:));
endslackbus = find(mpc.bus(:,2)==3);
a(slackbus,:) = ;
a(:,slackbus) = ;
z = inv(a); %%節點阻抗矩陣
p = zeros(n,1);%各個節點的注入功率
[x_gen,~] = size(mpc.gen);
for i = 1:x_gen
p(mpc.gen(i,1)) = mpc.gen(i,2);
endp = p - mpc.bus(:,3);
p(slackbus,:) = ;
theta = a\p;
index = (1:n)';index(slackbus) = ;
theta1 = zeros(n,1);%將平衡點的相角加入,形成所有點的相角向量
[xx,~] = size(index);
for i = 1:xx
theta1(index(i)) = theta(i);
endtheta1(slackbus) = 0;
p_branch = zeros(l,1);%支路潮流矩陣
for i = 1:l
p = mpc.branch(i,1);q = mpc.branch(i,2);
xx = theta1(p) - theta1(q);
p_branch(i) = xx/mpc.branch(i,4);
endm = zeros(n,l);%節點支路關聯矩陣
for i = 1:l
p = mpc.branch(i,1);q = mpc.branch(i,2);
if theta1(p) > theta1(q)
m(p,i) = 1;m(q,i) = -1;
if p == slackbus
m(p,i) = 0;
elseif q == slackbus
m(q,i) = 0;
endelse
m(p,i) = -1;m(q,i) = 1;
if p == slackbus
m(p,i) = 0;
elseif q == slackbus
m(q,i) = 0;
endend
end
github:fancynu 優化演算法知識點整理
幾種優化演算法,梯度下降的種類 考慮無約束優化問題 minxf x minxf x 梯度下降 梯度下降法是一種常用的一階優化方法,是求解無約束優化問題最簡單 最經典的方法之一。其中,f x 連續可微。若能構造乙個序列x0,x1,x2,x0,x1,x2,滿足 f xt 1 根據泰勒一階展開 f x x...
知識點整理 mysql怎麼檢視優化器優化後的sql
1.新建兩張表 create table t1 m1 int,n1 char 1 create table t2 m2 int,n2 char 1 2.插入些資料 insert into t1 values 1,a 2,b 3,c insert into t2 values 2,b 3,c 4,d ...
專案整理 優化
忙完本科生的盃賽,專案暫時告一段落,之前一直趕工,凌亂,幾次demo的製作也發現測試週期過長的問題。接下來花些時間好好整理 優化一番。一 整理 最主要一點,整合所有 uml讓小組成員理解架構,分塊整理 二 優化 原渲染程式 跑程式 導網格檔案 軟體渲染 每一件都是耗時的活。優化 對光影效果要求低的 ...