borrar% Borrar
formato de variables de memoria long
jc = 0;
% -------------------------- Módulo de datos brutos de nodo -------- ------------------------%
JieDianShuJu = [1 1.0600 0.0000 0.0000 0.0000 0.0000 0.0000;
2 1.0450 0.0000 0.4000 0.4000 0.2170 0.1270;
3 1.0100 0.0000 0.0000 0.2000 0.9420 0,1900;
4 1,0000 0,0000 0,0000 0,0000 0,4780 -0,0390;
5 1,0000 0,0000 0,0000 0,0000 0,0760 0,0160;
6 1,0700 0,0000 0,0000 0,3000 0,1120 0,0750;
7 1,0000 0,0000 0,0000 0,0000 0,0000 0,0000;
8 1,0900 0,0000 0,0000 0,3000 0,0000 0,0000;
9 1,0000 0,0000 0,0000 0,0000 0,2950 0,16 ;
10 1,0000 0,0000 0,0000 0,0000 0,0900 0,0580;
11 1,0000 0,0000 0,0000 0,0000 0,0350 0,0180;
12 1,0000 0,0000 0,0000 0,0000 0,0610 0,0160;
13 1,0000 0,0000 0,0000 0,0000 0,1350 0,0580;
14 1,0000 0,0000 0,0000 0,0000 0,1490 0,0500);% de datos de nodo de entrada
JieDianZongShuian = tamaño (JieDianZongShuian = tamaño , 1);% Número total de nodos
PVJieDianShu = 4;%
Número de nodos PV PQJieDianShu = JieDianZongShu-PVJieDianShu-1;% PQ número de nodos
PVI = [0 1 1 0 0 1 0 1 0 0 0 0 0 0]; % indica un nodo La matriz de si es un nodo PV
PQI = [0 0 0 1 1 0 1 0 1 1 1 1 1 1];% Una matriz que indica si un nodo es un nodo PQ
PVR = [1 2 3 6 8];% número de nodo de holgura y PV Número de nodo
PV = [2 3 6 8];% PV número de nodo
PQ = [4 5 7 9 10 11 12 13 14];% PQ número de nodo
SC = [1 2 5 7]; Requerido en% N, L, M Filas y columnas eliminadas
U = JieDianShuJu (:, 2);% valor efectivo de voltaje
Theta = JieDianShuJu (:, 3);% tensión fase
PG = JieDianShuJu (:, 4);% potencia activa del generador
QG = JieDianShuJu (:, 5);% potencia reactiva del generador
PL = JieDianShuJu (:, 6);% carga activa
QL = JieDianShuJu (:, 7);% de potencia reactiva de carga
DetP = ceros (JieDianZongShu, 1);% vector de error de potencia activa del nodo
DetQ = ceros (JieDianZongShu, 1);%
sumidero de vector de error de potencia reactiva del nodo = 0;% variable temporal
sumq = 0;% variable temporal
DetTheta = 0;% variable temporal
% ========================= Módulo de datos originales del nodo === === ==========================%
%
% ------------------ --- ----- Defina la matriz jacobiana y el vector de corrección ---------------------------%
XiuZhengXiangLiang = ceros (JieDianZongShu + PQJieDianShu -1 , 1);% define el vector de corrección
ThetaXiuZheng = XiuZhengXiangLiang (1: JieDianZongShu-1);% define el vector de corrección de argumento
UXiuZheng = XiuZhengXiangLiang (JieDianZongShu: end);% define el vector de corrección de voltaje
J = ceros (JieDian-2 );% define la matriz jacobiana
H = ceros (JieDianZongShu-1);% inicializa la matriz H
N = ceros (JieDianZongShu-1);% inicializa la matriz N
L = ceros (JieDianZongShu-1);% inicializa la matriz L
M = ceros (JieDianZongShu-1);% inicializa Matriz M
H1 = H; N1 = N; M1 = M; L1 = L;
% ========================== definir la suma de la matriz jacobiana corrección vectores ===========================%
%
% ------------------ -------- Módulo de datos brutos de rama --------------------------------%
ZhiLuShuJu = [- 1 4 7 0,00000 0,20912 0,00000 0,978;
-2 4 9 0,00000 0,55678 0,00000 0,969;
-3 5 6 0,00000 0,25202 0,00000 0,932;
0 0 9 0,00000 0,00000 0,01900 0,000
1 1 2 0,01938 0,05917 0,02640 0,000;
2 2 3 0,04699 0,19797 0,02190 0,000;
3 2 4 0,05811 0,17632 0,01870 0,000;
4 1 5 0,05403 0,22304 0,02460 0,000;
5 2 5 0,05695 0,17388 0,01700 0,000;
6 3 4 0,06701 0,17103 0,01730 0,000;
7 4 5 0,01335 0,04211 0,00640 0,000;
8 7 8 0,00000 0,17615 0,00000 0,000;
9 7 9 0,00000 0,11001 0,00000 0,000;
10 9 10 0,03181 0,08450 0,00000 0,000;
11 6 11 0,09498 0,19890 0,00000 0,000;
12 6 12 0,12291 0,15581 0,00000 0,000;
13 6 13 0,06615 0,13027 0,00000 0,000;
14 9 14 0,12711 0,27038 0,00000 0,000;
15 10 11 0,08205 0,19207 0,00000 0,000;
16 12 13 0,22092 0,19988 0,00000 0,000;
17 13 14 0.17093 0.34802 0.00000 0.000];% de datos originales de rama de entrada
ZhiLuShu = tamaño (ZhiLuShuJu, 1);% número total de rama
% ===================== = ==== módulo de datos en bruto rama ================================%
%
% ----- - ------------------- Módulo de parámetros de isoadmitancia ----------------------- --- ------%
DengZhiDaoNaCanShu = ceros (ZhiLuShu, 3);
para k = 1: ZhiLuShu
si ZhiLuShuJu (k, 1) <0% La etiqueta de la rama es negativa, es decir, la rama del transformador
DengZhiDaoNaCanShu (k, 1) = 1 / (ZhiLuShuJu (k, 7) * j * ZhiLuShuJu (k, 5));
DengZhiDaoNaCanShu (k, 2) = DengZhiDaoNaCanShu (k, 1) * (ZhiLuShuJu (k, 7) -1);
DengZhiShu (k, 7) -1); DengZhiShu, 3) = - DengZhiDaoNaCanShu (k, 2) / ZhiLuShuJu (k, 7);
elseif ZhiLuShuJu (k, 1)> 0% La etiqueta de la rama es positiva, es decir, la rama de la línea de transmisión
DengZhiDaoNaCanShu (k, 1) = 1 / (ZhiLuShuJu (k, 4) + j * ZhiLuShuJu (k, 5));
DengZhiDaoNaCanShu (k, 2) = j * ZhiLuShuJu (k, 6);
DengZhiDaoNaCanShu (k, 3) = j * ZhiLuShuJu (k, 6);
else% Rama paralela
DengZhiDaoNaCanShu (khi, 3) = 6 j * ZhiLuShuJu );
end
end
% =========================================== ================================================ ================================================ ================================================ ================================================ ============================================== == ==================%
%
% -------------------------- nodo Self- módulo de cálculo de admitancia ------------------------------%
JieDianZiDaoNa = ceros (JieDianZongShu, 1);% define la auto-guía del nodo El nano matriz
para k = 1: JieDianZongShu
para l = 1: ZhiLuShu
si ZhiLuShuJu (l, 2) == k% k es el primer nodo de la rama
JieDianZiDaoNa (k) = JieDianZiDaoNa (k) + DengZhiDaoNaCanShu (l, 1) DengZhiDaoNaCanShu (l, 1) l, 2);
elseif ZhiLuShuJu (l, 3) == k% k es el nodo final de la rama
JieDianZiDaoNa (k) = JieDianZiDaoNa (k) + DengZhiDaoNaCanShu (l, 1) + DengZhiDaoNaCanShu (l, 3);
end
end
end
% ======================= = === de módulo de cálculo admitancia nodo ===============================%
%
% ------ - ------------------ Módulo de cálculo de admisión mutua de nodo ------------------------ --- ---%
JieDianHuDaoNa = ceros (JieDianZongShu);% inicializa la matriz de admisión mutua de nodos
para k = 1: ZhiLuShu
si ZhiLuShuJu (k, 1) == 0;
continúa;
finaliza
JieDianHuDaoNa (ZhiLuShuJu (k, 2), ZhiLu , 3)) = - DengZhiDaoNaCanShu (k, 1);
JieDianHuDaoNa (ZhiLuShuJu (k, 3), ZhiLuShuJu (k, 2)) = - DengZhiDaoNaCanShu (k, 1);
end
% ======= === ================= Módulo de cálculo de admisión mutua de nodo ============================ ================================================ ================================================ ================================================ ================================================ =========================================== ===== =
%%
% -------------------------- Matriz de admitancia de nodo sintético ------------------ - -------------%
Y = JieDianHuDaoNa;
para k = 1: JieDianZongShu
Y (k, k) = JieDianZiDaoNa (k);
final
G = real (Y);% Genera matriz de conductancia de nodo
B = imag (Y);% Generar matriz de admisión de nodo
% ======================== matriz de admisión de nodo sintético ===== ===== =======================%
%
% ------------------- ----- --Generar matriz de adyacencia de nodos ---------------------------------%
LinJieZhen = ceros (JieDianZongShu);
para k = 1: ZhiLuShu
si ZhiLuShuJu (k, 1) == 0;
continuar;
finalizar
LinJieZhen (ZhiLuShuJu (k, 2), ZhiLuShuJu (k, 3)) = 1;
LinJieZhen (ZhiLuShuJu (k, 3), ZhiLuShuJu (k, 2) )) = 1;
final
para k = 1: JieDianZongShu
LinJieZhen (k, k) = 1;
final
% ========================= Generar matriz de adyacencia de nodos =================== = =============%
%
% --------------------------------- - --Lazo de iteración de Newton ---------------------------------------%
para DieDaiCiShu = 1: 10
% ------------------------------ Módulo de cálculo de error de potencia ------------- - -----------%
para k = 2: JieDianZongShu
sumidero = 0;
sumq = 0;
para l = 1: JieDianZongShu
DetTheta = Theta (k) -Theta (l);
sumidero = sumidero + LinJieZhen ( k, l) * U (l) * (G (k, l) * cos (DetTheta) + B (k, l) * sin (DetTheta));
sumq = sumq + LinJieZhen (k, l) * U (l ) * (G (k, l) * sin (DetTheta) -B (k, l) * cos (DetTheta)); sumidero
final
= sumidero * U (k);
sumq = sumq * U (k);
DetP (k ) = PG (k) -PL (k) -sump;
DetQ (k) = QG (k) -QL (k) -sumq;
end
YouGongWuCha = DetP;
WuGongWuCha = DetQ;
YouGongWuCha (1) = [];
WuGongWuCha (PVR,:) = [];
% ===== ========================= Módulo de cálculo de error de energía ===================== ====%
%
% ------------------------------ --------- iteración del bucle condición de terminación ————%
if max (abs (YouGongWuCha)) <= 1e-20 & max (abs (WuGongWuCha)) <= 1e-20
jc = 1;
break;
end
% =========== == ================ condición de terminación de iteración de bucle ==========================%
%
% - ---------------------------- Módulo de cálculo jacobiano ----------------- --------%
para k = 2: JieDianZongShu
para l = 2: JieDianZongShu
DetTheta = Theta (k) -Theta (l);
H (k-1, l-1) = - U (k) * U (l) * (G (k, l) * sin (DetTheta) -B (k , l) * cos (DetTheta));
N (k-1, l-1) = - U (k) * U (l) * (G (k, l) * cos (DetTheta) + B (k, l ) * sin (DetTheta));
fin
fin
L = H;
M = -N;
para k = 2: JieDianZongShu
H (k-1, k-1) = U (k) * U (k) * B (k, k) + (QG (k) -QL (k));
N (k-1, k-1) = - U (k) * U (k) * G (k, k) - (PG (k) - PL (k));
M (k-1, k-1) = U (k) * U (k) * G (k, k) - (PG (k) -PL (k));
L (k- 1, k-1) = U (k) * U (k) * B (k, k) - (QG (k) -QL (k));
final
H1 = H; N1 = N; M1 = M; L1 = L;
N1 (:, SC) = [];% borra la columna correspondiente al nodo PV
M1 (SC,:) = [];% borra la fila correspondiente al nodo PV
L1 (:, SC) = [] ;% Elimina la columna correspondiente al nodo PV
L1 (SC,:) = [];% elimina la fila correspondiente al nodo PV
J = [H1, N1; M1, L1];% de matriz jacobiana sintética
% ============================ Módulo de cálculo de matriz jacobiana = =========================%
%
% ------------------- --- ------- Solución de datos modificados y módulo de actualización de datos -----------------%
XiuZhengXiangLiang = -inv (J) * [YouGongWuCha; WuGongWuCha];
ThetaXiuZheng = XiuZhengXiangLiang ( 1: JieDianZongShu-1);
UXiuZheng = XiuZhengXiangLiang (JieDianZongShu: fin);
Theta (2: fin) = Theta (2: fin) + ThetaXiuZheng;
U (PQ, :) = U (PQ, :) + U (PQ, :). * UXiuZheng;
% ============================ Módulo de actualización de datos y solución de datos modificados ==== ==== =========%
end
% ================================= Bucle iterativo de Newton == =================================%
JiaoDu = Theta / pi * 180;
wc1 = max (abs (YouGongWuCha) );
wc2 = max (abs (WuGongWuCha));
wc = max (WC1, WC2)
%
módulo de cálculo de% de potencia -------------------------- Generador --------- - ---------------------%
sumidero = 0;
sumq = 0;
para k = 1: JieDianZongShu
DetTheta = Theta (1) -Theta (k);
sumidero = sumidero + LinJieZhen (1, k) * U (k) * (G (1, k) * cos (DetTheta) + B (1, k) * sin (DetTheta));
sumq = sumq + LinJieZhen (1, k) * U (k) * (G (1, k) * sin (DetTheta) -B (1, k) * cos (DetTheta)); sumidero
final
= sumidero * U (1);
sumq = sumq * U (1) ;
PG (1) = PL (1) + sumidero;% balance de
sumidero de potencia activa del generador de nodo
QG (1) = QL (1) + sumq;% balance de potencia reactiva del generador de nodo
para k = 1: PVJieDianShu% PV Potencia reactiva del generador de nodo
sumq = 0;
para l = 1: JieDianZongShu
DetTheta = Theta (PV (k)) - Theta (l);
sumq = sumq + LinJieZhen (PV (k), l) * U (l) * (G (PV (k), l) * sin (DetTheta) -B (PV (k), l) * cos (DetTheta)) ;
end
sumq = sumq * U (PV (k));
QG (PV (k)) = QL (PV (k)) + sumq;
fin
[JieDianShuJu (:, 1) U JiaoDu PG QG]