Sunteți pe pagina 1din 8

INSTITUTO TECNOLOGICO

SUPERIOR ZACATECAS NORTE

DESAROLLO DE UN SOFTWARE EN LA
PLATAFORMA MATLAB PARA EL
CALCUO DE V3 EN UN SISTEMA DE 4
NODOS POR EL METODO DE
GAUSS-SEIDEL.

UNIDAD No: 2

TRABAJO EN EL CURSO DE:

MODELADO DE SISTEMAS ELECTRICOS DE


POTENCIA.

UNIDAD ACADEMICA DE INGENIERIA ELECTROMECANICA.

PRESENTA:

Estupiñan Delgado Jorge Luis.

DOCENTE:

ING. Francisco Javier Carrillo Garcia.

Rio Grande, Zac. Abril - 2019


CALCUO DE V3 EN UN SISTEMA DE 4 BARRAS POR EL METODO
DE GAUSS-SEIDEL EN MATLAB.
2019

OBJETIVO ESPESIFICO

Que el alumno desarrolle un software en la plataforma MATLAB, el cual calcule el voltaje


indicado en un sistema de 4 barras.

OBJETIVO GENERAL
Aplicación del programa MATLAB para determinar los voltajes en una red eléctrica y el
flujo de potencia en líneas de transmisión ante cualquier condición de demanda de energía.

MARCO TEORICO

En el presente trabajo se desarrolla el análisis del SEP haciendo uso de una herramienta
computacional, en esta se realiza el diseño del software para obtener la solución de V en
la red analizada. Este software fue diseñado para un uso didáctico en el que el usuario
sea capaz de involucrarse con el funcionamiento de un SEP, encargándose de suministrar
los datos necesarios para el tipo de sistema que elija analizar y así llevarlo a la solución
del mismo de una forma gráfica amigable y entendible.

El software fue desarrollado con la ayuda del entorno de trabajo Matlab ® para vincular la
lógica del programa con una vista gráfica, en cuestión de una mejor comprensión para el
usuario.

Métodos de Solución

• Método Gauss – Seidel


En el estudio de flujo de potencia, es necesario resolver el conjunto de ecuaciones no
lineales representados por dos variables desconocidas en cada nodo. En el método
Gauss – Seidel es resulto para � � y convirtiendo la secuencia iterativa.

Donde 𝑦�� mostrado en letras minúsculas es la admitancia real en por unidad. 𝑃�𝑠𝑐ℎ y
𝑄�𝑠𝑐ℎ son las potencias reales y reactivas reales expresadas en por unidad.

ITSZN
Unidad acadéé mica dé ingéniéríéa Eléctromécaé nica. Paé gina 2
CALCUO DE V3 EN UN SISTEMA DE 4 BARRAS POR EL METODO
DE GAUSS-SEIDEL EN MATLAB.
2019

MATERIAL Y EQUIPO

- Computadora PC

- Software MATLAB.

DESARROLLO DEL SOFTWARE

CODIGO DESARROLLADO DE PROGRAMACION EN MATLAB.


function varargout = Ybarra(varargin)
%%*************************************************************************
%Calc_Ybarra Calculo de voltaje en V3 en un sistema de 4 barras por el método de Gauss-
Seidel con 2 interaciones.
%
% Autor : JORGE LUIS ESTUPIÑAN DELGADO
% Revision : 1.1
% Date : 2019/03/04 11:35:30
%
% Ejemplo :
% y11 = 3-j9
% y12 = -2+j6
% y13 = -1+j3
% y14 = 0
% y21 = -2=j6
% y22 = 3.66-j11
% y23 = -0.66+j2
% y24 = -1+j3
% y31 = -1+j3
% y32 = -0.66+j2
% y33 = 3.66-j11
% y34 = -2+j6
% y41 = 0
% y42 = -1+j3
% y43 = -2+j6
% y44 = 3-j9
%
% Ybarra =
% 3-j9 -2+j6 -1+j3 0
% -2+j6 3.66-j11 -0.66+j2 -1+j3
% -1+j3 -0.66+j2 3.66-j11 -2+j6
% 0 -1+j3 -2+j6 3-j9
%
% YBARRA M-file
% YBARRA, *.
%
% H = YBARRA returns
%
% YBARRA('CALLBACK',hObject,eventData,handles,...)
%
% YBARRA('Property','Value',...)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Ybarra_OpeningFcn, ...
'gui_OutputFcn', @Ybarra_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});

ITSZN
Unidad acadéé mica dé ingéniéríéa Eléctromécaé nica. Paé gina 3
CALCUO DE V3 EN UN SISTEMA DE 4 BARRAS POR EL METODO
DE GAUSS-SEIDEL EN MATLAB.
2019

end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end

%*************************************************************************
% ---
function Ybarra_OpeningFcn(hObject, eventdata, handles, varargin)
OutputFcn.
% hObject
% eventdata
% handles )
% varargin
handles.output = hObject;

guidata(hObject, handles);

% UIWAIT (see UIRESUME)


% uiwait(handles.figure1);
format compact;
scrsz=get(0,'Screensize');
pos_act=get(gcf,'Position');
xr=round((scrsz(3)-pos_act(3))/2);
yr=round((scrsz(4)-pos_act(4))/2);
set(gcf,'Position',[xr yr pos_act(3:4)])
handles.output = hObject;
guidata(hObject, handles);
Obtener_elementos(hObject, eventdata, handles)

%*************************************************************************
% --- command line.
function varargout = Ybarra_OutputFcn(hObject, eventdata, handles)
% varargout args (see VARARGOUT);
% hObject
% handles data (see GUIDATA)

%
varargout{1} = handles.output;
helpdlg('Escriba en la tabla los valores de las admitancias de cada rama','ASP2');

%*************************************************************************
% --- function PushB_Close_Callback(hObject, eventdata, handles)
% hObject handle to (see GCBO)
% eventdata
close
clear

%*************************************************************************
% --- function PushB_Regresar_Callback(hObject, eventdata, handles)
Obtener_elementos(hObject, eventdata, handles)

%*************************************************************************
% --- PushB_Calcular.
function PushB_Calcular_Callback(hObject, eventdata, handles)
% hObject handle to PushB_Calcular (see GCBO)
% eventdata reserved -

h=get(handles.Table_Data,'Data');
Yadm3=handles.admitan;
for m=1:1:length(h)
Yadm3(m).Valor=h(m,1);
end

ITSZN
Unidad acadéé mica dé ingéniéríéa Eléctromécaé nica. Paé gina 4
CALCUO DE V3 EN UN SISTEMA DE 4 BARRAS POR EL METODO
DE GAUSS-SEIDEL EN MATLAB.
2019

Num_nodos=handles.Num_nodos;
Num_ramas=handles.Num_ramas;
Ybar=zeros(Num_nodos);
Yadm={};
for m=1:1:Num_nodos
Yadm(m)={m};
for n=1:1:Num_nodos
if m==n
for k=1:1:length([Yadm3(:).Valor])
if m==Yadm3(k).Sub1 || m==Yadm3(k).Sub2
Ybar(m,n)=Ybar(m,n)+Yadm3(k).Valor;
end
end
else
for k=1:1:length([Yadm3(:).Valor])
if
eval([num2str(m),num2str(n)])==eval([num2str(Yadm3(k).Sub1),num2str(Yadm3(k).Sub2)]) ||
eval([num2str(n),num2str(m)])==eval([num2str(Yadm3(k).Sub1),num2str(Yadm3(k).Sub2)])
Ybar(m,n)=Ybar(m,n)-Yadm3(k).Valor;
end
end
end
end
end

Yadm2=cell(1,Num_nodos);
Yadm2(:)={150};
set(handles.Table_Data,'ColumnName',Yadm,'RowName',Yadm,'Data',Ybar,...
'ColumnWidth',Yadm2);
fprintf('\n');
Ybar
handles.output = hObject;
guidata(hObject, handles);

%*************************************************************************
% --- Table_Data.
function Table_Data_CellEditCallback(hObject, eventdata, handles)
% hObject handle to Table_Data (see GCBO)
% eventdata structure with the following fields (see UITABLE)
% Indices: row and column indices of the cell(s) edited
% PreviousData: previous data for the cell(s) edited
% EditData: string(s) entered by the user
% NewData: EditData or its converted form set on the Data property. Empty if Data was not
changed
% Error: error string when failed to convert EditData to appropriate value for Data
% handles structure with handles and user data (see GUIDATA)
h=get(handles.Table_Data,'Data');
[Row_dim,Col_dim]=size(h);
Yadm=cell(1,Col_dim);
Yadm(:)={150};
set(handles.Table_Data,'ColumnWidth',Yadm(:));
handles.output = hObject;
guidata(hObject, handles);
%*************************************************************************
% --- Obtiene los datos para iniciar la aplicación.
function Obtener_elementos(hObject, eventdata, handles)
Num_nodos=inputdlg('Digite el número de nodos: ','ASP2');
Num_nodos=str2num(Num_nodos{1});
Num_ramas=factorial(Num_nodos)/(factorial(2)*factorial(Num_nodos-2));
Num_ramas=Num_nodos+Num_ramas;
Ybarra=zeros(Num_nodos);
Yadm2={};

for m=1:1:Num_nodos
Yadm2{m}=['y',num2str(m),num2str(0)];
Yadm3(m)=struct('Name',['y',num2str(m),num2str(0)],'Sub1',m,'Sub2',0,'Valor',0);
end
n2=Num_ramas-Num_nodos;
n=n2;

ITSZN
Unidad acadéé mica dé ingéniéríéa Eléctromécaé nica. Paé gina 5
CALCUO DE V3 EN UN SISTEMA DE 4 BARRAS POR EL METODO
DE GAUSS-SEIDEL EN MATLAB.
2019

k=1;
while n~=0
for m=1:1:Num_nodos
if k>=m
else
Yadm2{n2-n+Num_nodos+1}=['y',num2str(k),num2str(m)];
Yadm3(n2-n+Num_nodos+1)=struct('Name',
['y',num2str(k),num2str(m)],'Sub1',k,'Sub2',m,'Valor',0);
n=n-1;
end
end
k=k+1;
end
set(handles.Table_Data,'Enable','on','ColumnName',{'Y'},'RowName',Yadm2,...
'Data',zeros(Num_ramas,1),'ColumnWidth',{'auto'});
handles.admitan=Yadm3;
handles.Num_nodos=Num_nodos;
handles.Num_ramas=Num_ramas;
handles.output = hObject;
guidata(hObject, handles);

Impression de resultados e interacciones.

RESULTADOS

Determinar el valor de V3 por Gauss-Seidel

Figura 1. Sistema de 4 nodos a resolver.

Figura 2. Ventana de introducción de nodos del sistema.

Figura 3: Ventana de informativa para solicitud de admitancias.

ITSZN
Unidad acadéé mica dé ingéniéríéa Eléctromécaé nica. Paé gina 6
CALCUO DE V3 EN UN SISTEMA DE 4 BARRAS POR EL METODO
DE GAUSS-SEIDEL EN MATLAB.
2019

Figura 4: Introducción de Ybarra

 Al dar clic sobre el botón << se inicia el proceso

Figura 5: Introducción de Dato a Calcular

Figura 6: Resultados

ITSZN
Unidad acadéé mica dé ingéniéríéa Eléctromécaé nica. Paé gina 7
CALCUO DE V3 EN UN SISTEMA DE 4 BARRAS POR EL METODO
DE GAUSS-SEIDEL EN MATLAB.
2019

CONCLUSIONES

Con el diseño de este software fue posible obtener una mejor comprensión del método
empleado Gauss-Seidel para la solución de los problemas de Sistemas Eléctricos de
Potencia y que el alumno será capaz de resolver.

BIBLIOGRAFIA

[1]https://www.google.com/search?client=avast&ei=-
HuSXOnyGMi1tgWi8L7ICQ&q&gs_l=psy-ab.3...15.1192..1450...0.0..0.0.0.......0....1..gws-
wiz.nzPXxjWk22A

[2] https://www.youtube.com

ITSZN
Unidad acadéé mica dé ingéniéríéa Eléctromécaé nica. Paé gina 8

S-ar putea să vă placă și