欢迎来到本博客❤️❤️❤️
作者研究:本科计算机专业,研究生电气学硕。主要研究方向是电力系统和智能算法、机器学习和深度学习。目前熟悉python网页爬虫、机器学习、群智能算法、深度学习的相关内容。希望将计算机和电网有效结合!⭐️⭐️⭐️
博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者,博主专门做了一个专栏目录,整个专栏只放了一篇文章,足见我对其重视程度:博主专栏目录。做到极度细致,方便大家进行学习!亲民!!!还有我开了一个专栏给女朋友的,很浪漫的喔,代码学累的时候去瞧一瞧,看一看:女朋友的浪漫邂逅。有问题可以私密博主,博主看到会在第一时间回复。
目前更新:电力系统相关知识,期刊论文,算法,机器学习和人工智能学习。
支持:如果觉得博主的文章还不错或者您用得到的话,可以关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!
欢迎您的到来
⛅⛅⛅ 个人主页:电力系统科研室
专栏目录:电力系统与算法之美
博主课外兴趣:中西方哲学,送予读者:
做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。在我这个专栏记录我有空时的一些哲学思考和科研笔记:科研和哲思。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“真理”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......
本文目录如下:⛳️⛳️⛳️
目录
1 Simulink求解直流微电网
2 Matlab代码算法求解直流微电网
包括下面三个部分:
全部代码及Simulink仿真见:正在为您运送作品详情
clear all
clc
format shortG
%% Verificaci algoritmo
% Paretros base
vref = 48;
Pbase = 500;
rlineas = 0.05;
rbase = vref^2/Pbase;
rpu = rlineas/rbase;
step = 1;
droop = 2;
potencia = 3;
%% Datos de Lineas y Nodos
% Lineas i j r
A = [ 4 1 rpu
1 2 rpu
2 3 rpu
3 4 rpu];
% nodo tipo Potgen/gdroop PotCarga
B = [1 droop rbase/0.2 0
2 potencia 0 466.25/Pbase
3 droop rbase/0.5 0
4 potencia 0 697.5/Pbase ];
NumN = max(max(A(:,1:2))); %Nero de Nodos
NumL = length(A(:,1)); %Nero de Lineas
%% Separaci de variables
Nstep = B(find(B(:,2)==step),1); %Nodos step
Vstep = B(find(B(:,2)==step),2); %Variable step
Ndroop = B(find(B(:,2)==droop),1);%Nodos droop
Vdroop = B(find(B(:,2)==droop),2); %Variable droop
NP = B(find(B(:,2)==potencia),1);%Nodos de Pot const
Vpotencia = B(find(B(:,2)==potencia),2); %Variable Pot const
%Matriz clasificaci de variables
Var = [[Nstep; Ndroop; NP] [Vstep;Vdroop;Vpotencia]];
NumVar = length(Var);
%% Matriz Ybus y declaraci J y H
%Cculo de Ybus
Y = zeros(NumN,NumN);
for k = 1:NumL
n1 = A(k,1);
n2 = A(k,2);
ykm = 1/A(k,3);
Y(n1,n1) = Y(n1,n1) + ykm;
Y(n1,n2) = Y(n1,n2) - ykm;
Y(n2,n1) = Y(n2,n1) - ykm;
Y(n2,n2) = Y(n2,n2) + ykm;
end
v = ones(NumVar,1); %Condiciones iniciales de tensi
H=zeros(NumVar,1); %Inicializaci desajustes
J = zeros(NumVar,NumVar);%Declaraci matriz jacobiana
deltaV=zeros(NumVar,1);%Inicializaci de variaciones
%% Modo Newton Raphson
tic%contador de tiempo
%inicio de iteraciones
for j=1:10
%Hacer un barrido por todas las variables
for k=1:NumVar
%Si es step, aplicar ecuaciones step
if Var(k,2)==step
pstep = 0;
pstepl = v(Var(k,1))*(Y(Var(k,1),:)*v);
H(Var(k,1)) = pstep-pstepl;
for i=1:NumVar
if Var(k,1)==i
J(Var(k,1),i) = -v(Var(k,1))*Y(Var(k,1),Var(k,1)) - Y(Var(k,1),:)*v;
else
J(Var(k,1),i) = -v(Var(k,1))*Y(Var(k,1),i);
end
end
else
%Si es droop, aplicar ecuaciones droop
if Var(k,2)==droop
%inyecciones de potencia al nodo droop
pgdroop = B(Var(k,1),4);
%expresi incluyendo ecuas droop
pdroop = B(Var(k,1),3)*(1*v(Var(k,1))-v(Var(k,1))^2);
%potencias por las lineas
pdroopl = v(Var(k,1))*(Y(Var(k,1),:)*v);
%ecuaci de desajuste
H(Var(k,1)) = pdroop-pgdroop-pdroopl;
%Cculo de las derivadas parciales para droop k espec韋ico
for i=1:NumVar
%si k=i
if Var(k,1)==i
Jdroop = B(Var(k,1),3)*(1 - 2*v(Var(k,1)));
Jdroopl = v(Var(k,1))*Y(Var(k,1),Var(k,1)) - Y(Var(k,1),:)*v;
J(Var(k,1),i) = Jdroop - Jdroopl;
else
%k != i
J(Var(k,1),i) = -v(Var(k,1))*Y(Var(k,1),i);
end
end
else
%Si es potencia, aplicar ecuaciones potencia
if Var(k,2)==potencia
ppot = B(Var(k,1),3)-B(Var(k,1),4); %PG-Pcarga
ppotl = v(Var(k,1))*(Y(Var(k,1),:)*v);%Plineas
H(Var(k,1)) = ppot-ppotl;%ecuaci髇 h(k) de potencia
for i=1:NumVar
%si k=i
if Var(k,1)==i
J(Var(k,1),i) = -v(Var(k,1))*Y(Var(k,1),Var(k,1)) - Y(Var(k,1),:)*v;
else
%k != i
J(Var(k,1),i) = -v(Var(k,1))*Y(Var(k,1),i);
end
end
end
end
end
end
deltaV=inv(J)*H;%vector de variacion
v = v - deltaV;%Actalizaci髇 de variables
I = Y*v;%calculo de corrientes nodales
P = diag(v)*I;%potencias nodales
%iter(j) = j;
errAbs = abs(max(H));
end
%fin de iteraciones
t=toc%fin contador de tiempo
%% Muestra de Resultados
disp(' nodo v(pu) P(pu) v(V) P(W)')
solucion = [B(:,1) v P vref*v Pbase*P];
disp(solucion)
disp('Maximo error abs')
disp(errAbs)