Buscar

ybarra matlab

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

% Calcula a Y barra de um sistema n barras
% 
% Exemplo: 
% Dados das linhas
% Barras R X 1/2 B 
% De P/ p.u. p.u. p.u. 
% 
% Dados_Barra = [1 2 0.01938 0.05917 0.0264
% 	 2 3 0.05403 0.22304 0.0246 
% 	 2 6 0.04699 0.19797 0.0219 
% 	 2 7 0.05811 0.17632 0.0170 
% 	 3 4 0.05695 0.17388 0.0173 
% 	 3 6 0.05695 0.17388 0.0173 
% 	 4 5 0.06701 0.17103 0.0 
% 	 4 7 0.01335 0.04211 0.0];
%
%
%
% O programa retorna uma matriz Y barra do sistema de n barras 
%
% A Y-BARRA É: 
%
% MATRIZ_Y =
%
% 4.9991 -15.2367i -4.9991 +15.2631i 0 0 0 0 0 
% 0 8.8461 -29.3059i -1.0259 + 4.2350i 0 0 -1.1350 + 4.7819i -1.6860 + 5.1158i
% 0 0 4.4282 -14.5636i -1.7011 + 5.1939i 0 -1.7011 + 5.1939i 0 
% 0 0 0 10.5281 -31.8240i -1.9860 + 5.0688i 0 -6.8410 +21.5786i
% 0 0 0 0 1.9860 - 5.0688i 0 0 
% 0 0 0 0 0 2.8362 - 9.9366i 0 
% 0 0 0 0 0 0 8.5270 -26.6774i
clc; %limpa a tela
clear all; %limpa a todas as variáveis 
fprintf ' UDC - CENTRO UNIVERSITARIO DINÂMICA DAS CATARATAS \n' % imprime o cabeçalho do programa
fprintf ' ENGENHARIA ELÉTRICA \n\n'
fprintf 'DALVA RAFAELA - FABIO SCHERER - GABRIAL ARNO - JEFFERSON LIANES \n\n\n\n'
fprintf ' Y-BARRA REV_1.0\n\n'
fprintf ' Inserir a os dados da rede\n' 
fprintf ' Barras R X 0.5*B\n ' 
fprintf ' De P/ p.u. p.u. p.u.\n\n' % Orienta a ordem dos dados para a matriz de entrada de dados da rede
dados_rede = input(' '); % Espera a inserção da matriz de dados da rede
clc % limpa a tela 
da_barra = dados_rede(:,1); % le a coluna de
para_barra = dados_rede(:,2); % le a coluna para
R = dados_rede(:,3); % le a coluna Resistencia
X = dados_rede(:,4); % le a coluna Reatancia
B = dados_rede(:,5); % le a coluna Shunt
B = 1i*B; %passa o valor Shunt para imaginario
n_ramos_conectados = length(dados_rede(:,1)); %define o numero de ramos conectados em cada barra de origem 
n_barras = max(max(da_barra), max(para_barra)); % Define qual a diemnsão da matriz, considerando a barra de número maior nas colunas 1 e 2 
y = (ones(n_ramos_conectados,1)./(R + 1i*X)); % Transforma os valores de Impedancias em Admitancias e os alinha em forma de vetores
MATRIZ_Y = zeros(n_barras,n_barras); % Cria uma matriz com dimensões predefinidas com valores iniciais zerados 
 %Forma as diagonais superiores e depois de forma simétrica as inferiores 
 for k = 1:n_ramos_conectados; %O valor de variavel k recebe o conteúdo de cada elemento sequencialmente e, para cada conteúdo que receba, executa o corpo do FOR, iniciando em 1
 if da_barra(k) > 0 && para_barra(k) > 0 % Verifica se um E o outro valor das colunas 1 e 2 é maior que zero 
 MATRIZ_Y(da_barra(k),para_barra(k)) = MATRIZ_Y(da_barra(k),para_barra(k)) - y(k); %Pega a matriz com valores até então zerados e agrega os Admitancia com sinais invertidos na parte superior
 MATRIZ_Y(para_barra(k),da_barra(k)) = MATRIZ_Y(da_barra(k),para_barra(k)); %Inverte a linha pela coluna para imprimir a parte inferior recendo os resultados obtidos na linha de cima 
 end
 end
 %Forma a diagonal principal
 for n = 1:n_barras %O valor de variavel n recebe o conteúdo de cada elemento sequencialmente e, para cada conteúdo que receba, executa o corpo do FOR, iniciando em 1
 
 for k = 1:n_ramos_conectados %O valor de variavel k recebe o conteúdo de cada elemento sequencialmente e, para cada conteúdo que receba, executa o corpo do FOR 
 if da_barra(k) == n || para_barra(k) == n % Verifica se um OU o outro é igual a n 
 MATRIZ_Y(n,n) = MATRIZ_Y(n,n) + y(k) + B(k); %Pega a matriz com valores até então zerados e agrega os Admitancia e Shunt em cada elemento 
 end
 end
 end
 fprintf ('\n\n Calculando ') % A interatividade do programa imprime Calculando por 3 segundos
 pause(1) 
 clc 
 fprintf ('\n\n Calculando. ')
 pause(1)
 clc
 fprintf ('\n\n Calculando.. ')
 pause(1)
 clc
 fprintf ('\n\n Calculando... ')
 pause(1)
 clc
 
 fprintf '\n\n A MATRIX Y-BARRA É:\n\n '
 MATRIZ_Y % Apresenta a MATRIZ y BARRA

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais