【正文】
普通線路 : K=0。 Y(I,I)=Y(I,I)+Yt+Ym。 Y(J,J)=Y(J,J)+Yt+Ym。 Y(I,J)=Y(I,J)Yt。 Y(J,I)=Y(I,J)。 end if (K==0)amp。(J==0) % 對地支路 : K=0,J=0,R=X=0。 Y(I,I)=Y(I,I)+Ym。 end 基于牛頓拉夫遜法潮流計算的 matlab 實驗報告 if K0 % 變壓器線路 : Zt和 Ym為折算到 i側(cè)的值 ,K在 j側(cè) Y(I,I)=Y(I,I)+Yt+Ym。 Y(J,J)=Y(J,J)+Yt/K/K。 Y(I,J)=Y(I,J)Yt/K。 Y(J,I)=Y(I,J)。 end if K0 % 變壓器線路 : Zt和 Ym為折算到 K側(cè)的值 ,K在 i側(cè) Y(I,I)=Y(I,I)+Yt+Ym。 Y(J,J)=Y(J,J)+K*K*Yt。 Y(I,J)=Y(I,J)+K*Yt。 Y(J,I)=Y(I,J)。 end end 作用為計算功率偏差 function [dP,dQ] =dPQ(Y,bus,nPQ,nPV) % nPQ、 nPV為相應(yīng)節(jié)點個數(shù) n = nPQ + nPV +1。 % 總節(jié)點個數(shù) dP = bus(1:n1,4)。 dQ = bus(1:nPQ,5)。 % 對 dP和 dQ賦初值 PV節(jié)點不需計算 dQ 平衡節(jié)點不參與計算 for i = 1:n1 for j = 1:n dP(i,1) = dP(i,1)bus(i,2)*bus(j,2)*(real(Y(i,j))*cos(bus(i,3)bus(j,3))+imag(Y(i,j))*sin(bus(i,3)bus(j,3)))。 if inPQ+1 dQ(i,1) = dQ(i,1)bus(i,2)*bus(j,2)*(real(Y(i,j))*sin(bus(i,3)bus(j,3))imag(Y(i,j))*cos(bus(i,3)bus(j,3)))。 end end end % 利用循環(huán)計算求取 dP和 dQ 作用為計算雅克比矩陣 function J = Jac(bus,Y,nPQ) [nb,mb]=size(bus)。 H = zeros(nb1,nb1)。 N = zeros(nb1,nPQ)。 K = zeros(nPQ,nb1)。 L = zeros(nPQ,nPQ)。 % 將雅克比矩陣分塊,即: J = [H N。 K L],并初始化 Qi = zeros(nb1,1)。 Pi = zeros(nb1,1)。 for i = 1:nb1 基于牛頓拉夫遜法潮流計算的 matlab 實驗報告 for j = 1:nb Pi(i,1)=Pi(i,1)+bus(i,2)*bus(j,2)*(real(Y(i,j))*cos(bus(i,3)bus(j,3))+imag(Y(i,j))*sin(bus(i,3)bus(j,3)))。 Qi(i,1)=Qi(i,1)+bus(i,2)*bus(j,2)*(real(Y(i,j))*sin(bus(i,3)bus(j,3))imag(Y(i,j))*cos(bus(i,3)bus(j,3)))。 end end % 初始化并計算 Qi和 Pi for i = 1:nb1 for j = 1:nb1 if i~=j H(i,j)=bus(i,2)*bus(j,2)*(real(Y(i,j))*sin(bus(i,3)bus(j,3))imag(Y(i,j))*cos(bus(i,3)bus(j,3)))。 else H(i,j)=Qi(i,1)+imag(Y(i,j))*((bus(i,2))^2)。 end % 分別計算 H矩陣的對角及非對角元素 if j nPQ+1 if i~=j N(i,j)=bus(i,2)*bus(j,2)*(real(Y(i,j))*cos(bus(i,3)bus(j,3))+imag(Y(i,j))*sin(bus(i,3)bus(j,3)))。 else N(i,j)=Pi(i,1)real(Y(i,j))*((bus(i,2))^2)。 end end % 分別計算 N矩陣的對角及非對角元素 if i nPQ+1 if i~=j K(i,j)=bus(i,2)*bus(j,2)*(real(Y(i,j))*cos(bus(i,3)bus(j,3))+imag(Y(i,j))*sin(bus(i,3)bus(j,3)))。 else K(i,j)=Pi(i,1)+real(Y(i,j))*((bus(i,2))^2)。 end % 分別計算 K矩陣的對角及非對角元素 if j nPQ+1 if i~=j L(i,j)=bus(i,2)*bus(j,2)*(real(Y(i,j))*sin(bus(i,3)bus(j,3))imag(Y(i,j))*cos(bus(i,3)bus(j,3)))。 else L(i,j)=Qi(i,1)+imag(Y(i,j))*((bus(i,2))^2)。 end end % 分別計算 L矩陣的對角及非對角元素 基于牛頓拉夫遜法潮流計算的 matlab 實驗報告 end end end J = [H N。 K L]。 % 生成雅克比矩陣 作用為計算每個節(jié)點的功率注入 function bus = PQ(bus,Y,nPQ,nPV) n = nPQ+nPV+1。 % n為總節(jié)點數(shù) for i = nPQ+1:n1 for j = 1:n bus(i,5)=bus(i,5)+bus(i,2)*bus(j,2)*(real(Y(i,j))*sin(bus(i,3)bus(j,3))imag(Y(i,j))*cos(bus(i,3)bus(j,3)))。 end end % 利用公式計算 PV節(jié)點的無功注入 for j =1:n bus(n,4)=bus(n,4)+bus(n,2)*bus(j,2)*(real(Y(n,j))*cos(bus(n,3)bus(j,3))+imag(Y(n,j))*sin(bus(n,3)bus(j,3)))。 bus(n,5)=bus(n,5)+bus(n,2)*bus(j,2)*(real(Y(n,j))*sin(bus(n,3)bus(j,3))imag(Y(n,j))*cos(bus(n,3)bus(j,3)))。 end % 計算平衡節(jié)點的無功及有功注入 作用為對節(jié)點和線路數(shù)據(jù)恢復(fù)編號 function [bus,line] = ReNum(bus,line,nodenum) [nb,mb]=size(bus)。 [nl,ml]=size(line)。 bus_temp = zeros(nb,mb)。 % bus_temp矩陣用于臨時存放 bus矩陣的數(shù)據(jù) k = 1。 for i = 1 :nb for j = 1 : nb if bus(j,1) == k bus_temp(k,:) = bus(j,:)。 k = k + 1。 end end end % 利用 bus矩陣的首列 編號重新對 bus矩陣排序并存入bus_temp矩陣中 bus = bus_temp。 % 重新賦值回 bus,完成 bus矩陣的重新編號 for i=1:nl for j=1:2 for k=1:nb if line(i,j)==nodenum(k,1) 基于牛頓拉夫遜法潮流計算的 matlab 實驗報告 line(i,j)=nodenum(k,2)。 break end end end end % 恢復(fù) line的編號 作用為計算線路的等效 Yt和 Ym,以計算線路潮流 function YtYm = YtYm(line) [nl,ml]=size(line)。 YtYm = zeros(nl,5)。 % 對 YtYm矩陣賦初值 0 YtYm(:,1:2) = line(:,1:2)。 % 矩陣前兩列為線路兩段節(jié)點編號,后三列分別為線路等效 Yt, i側(cè)的等效 Ym, j側(cè)的等效 Ym j = sqrt(1)。 for k=1:nl I=line(k,1)。 J=line(k,2)。 Zt=line(k,3)+j*line(k,4)。 if