Baixe o app para aproveitar ainda mais
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
Compartilhar