Algoritmo que permite obtener la matriz Ybus de un sistema de potencia de N nodos.
Aspectos generales acerca del código y sus alcances: 1. Este algoritmo no puede resolver un sistema de potencia donde se encuentren líneas conectadas en paralelo. 2. Para transformadores tridevanados el modo de ingresar los datos es el siguiente: El valor de la itancia se ingresa entre los nodos al cual se encuentra conectado cada devanado. 3. Todos los datos se ingresan en valor en por unidad [PU].
Algunas referencias: http://iaci.unq.edu.ar/materias/control2/web/tp/comandos.pdf http://www.mathworks.com/help/matlab/ref/sum.html
Nota: Para todo el código el punto y coma (;) evita que me muestre el resultado de la operación en pantalla. 1 clear all;
Remueve todas las variables que se encuentran presentes en workspace liberando memoria del sistema. 2 clc;
Borra todas las entradas y salidas desde la visualización de Command Window, en otras palabras limpia la pantalla y no afecta las variables de la sesión de trabajo workspace. 3 display(' YBUS');
Este comando permite visualizar texto y expresiones numéricas. 4 nbarras=input('SELECCIONE EL NUMERO DE BARRAS = ');
Input es una función interna de Matlab para solicitar una entrada al , esta entrada se guarda en el argumento de salida nbarras. Lo que se encuentra entre comilla simple es el argumento de entrada, es decir lo que se le asigna a la función Input luego de ser ejecutada. Es decir la función input pide al el número total de nodos en el SEP y lo lleva al argumento de salida nbarras. 5 display('DATOS DE LA LINEA');
Este comando permite visualizar texto y expresiones numéricas. 6 nl=input('NUMERO DE LINEAS = ');
Input es una función interna de Matlab para solicitar una entrada al , esta entrada se guarda en el argumento de salida nl . Lo que se encuentra entre comilla simple es el argumento de entrada, es decir lo que se le asigna a la función Input luego de ser ejecutada. Es decir la función input pide al el número total de líneas en SEP en análisis y lo lleva al argumento de salida nl. 7 A=zeros(nbarras,nbarras);
La función ceros genera una matriz de ceros de nbarras*nbarras es decir cuadrada de tamaño dependiente del argumento de salida nbarras de la línea de código 4. 8 for n=1:1:nl
El bucle for se utiliza para repetir el conjunto de sentencias hasta llegar a nl. El bucle funciona de este modo: VARIABLE:INICIO:INCREMENTO:FIN Donde esto explica la función del operador (:), la variable de la cabecera va tomando sucesivamente cada uno de los valores desde el inicio, bajo un incremento hasta llegar a su fin y para cada uno de ellos repite las sentencias asociadas hasta finalizar el bucle. 9 fb=input('DESDE EL BUS = ');
Se pide al ingresar la coordenada fb correspondiente al nodo donde se encuentra conectada la línea de transmisión en su inicio. Finalmente se lleva al argumento de salida fb. 10 tb=input('HASTA EL BUS = ');
Se pide al ingresar la coordenada tb correspondiente al nodo donde se encuentra conectada la línea de transmisión en su final. Posteriormente se lleva al argumento tb. 11 12 y=input('VALOR DE ITANCIA= ');
Se pide al ingresar el valor de la itancia correspondiente a la línea de transmisión, posteriormente se lleva al argumento y. Para ver el funcionamiento completo de la función input remitirse a la línea 4. 13 ysh=input('ITANCIA SHUNT Y/2 = ');
Se pide al ingresar el valor de la itancia shunt/2 correspondiente a la línea de transmisión, posteriormente se lleva al argumento ysh. Para ver el funcionamiento completo de la función input remitirse a la línea 4. 14 15 A(fb,tb)=ysh+y;
El valor de la itancia serie y shunt se le asigna a la matriz A de ceros definida en la línea de código 7 en su respectiva posición asignada por el bucle for. 16 17 end 18 Fin del bloque de código for para las líneas de transmisión.
19 nT=input('NUMERO DE TRANSDORMADORES = ');
Input es una función interna de Matlab para solicitar una entrada al , esta entrada se guarda en el argumento de salida nT. Lo que se encuentra entre comilla simple es el argumento de entrada, es decir lo que se le asigna a la función Input luego de ser ejecutada. Es decir la función input pide al el número total de líneas en SEP en análisis y lo lleva al argumento de salida nT. 20 21 for n=1:1:nT
El bucle for se utiliza para repetir el conjunto de sentencias hasta llegar a nT. El bucle funciona de este modo: VARIABLE:INICIO:INCREMENTO:FIN Donde esto explica la función del operador (:), la variable de la cabecera va tomando sucesivamente cada uno de los valores desde el inicio, bajo un incremento hasta llegar a su fin y para cada uno de ellos repite las sentencias asociadas hasta finalizar el bucle. 22 23 fb=input('DESDE EL BUS = ');
Se pide al ingresar la coordenada fb correspondiente al nodo donde se encuentra conectado el transformador. Finalmente se lleva al argumento de salida fb. 24 tb=input('HASTA EL BUS = ');
Se pide al ingresar la coordenada tb correspondiente al nodo donde se encuentra conectado el transformador en su final. Posteriormente se lleva al argumento tb. 25 A(fb,tb)=input('INGRESE ITANCIA TRAFO :');
El valor de la itancia del transformador se le asigna a la matriz A de ceros definida en la línea de código 7 en su respectiva posición asignada por el bucle for. 26 27 M=A.'+ A;
A la Matriz [A] que es triangular superior, es decir solo existen elementos en las posiciones por encima de la diagonal, para rellenar la zona triangular inferior se traspone [A] teniendo cuidado de
usar el comando A.’ para obtener la matriz transpuesta, sin conjugar y se le suma la matriz A original, obteniendo la matriz M que contiene todos los elementos por encima y por debajo de la diagonal. La diagonal de la Matriz M, está compuesta por ceros. 28 29 30 end 31 32 X = sum(M,2);
Sum es una función que suma los elementos de fila. Construye un vector columna X, que es la suma de los elementos de cada fila de la matriz M. Esto para cumplir que los elementos de la diagonal Yjj son iguales a la suma de las itancias que están conectadas directamente al nodo j. 33 34 35 YBUS=diag(X)- M
El argumento de salida X es un vector columna con la función diag se crea una matriz diagonal. A la matriz diagonal se le resta la matriz M, para rellenar toda la Ybus, y para dar cumplimiento que los elementos fuera de la diagonal Yij son iguales al negativo de la itancia total conectada entre los nodos i y j.