Você está na página 1de 22

PONTIFCIA UNIVERSIDADE CATLICA DE MINAS

GERAIS PUCMG
DEPARTAMENTO DE ENGENHARIA ELTRICA

Brenda Martinelle Oliveira


Bruno Henrique Peixoto de Almeida

PROJETO 02 - LABORATRIO DE INFORMTICA


APLICADA A ENGENHARIA ELTRICA:
SIMULAO DE UM SISTEMA ELTRICA ELTRICO DE
POTNCIA USANDO MATLAB

Belo Horizonte
2017
Brenda Martinelle Oliveira
Bruno Henrique Peixoto de Almeida

PROJETO 02 - LABORATRIO DE INFORMTICA


APLICADA A ENGENHARIA ELTRICA:
SIMULAO DE UM SISTEMA ELTRICA ELTRICO DE
POTNCIA USANDO MATLAB

Trabalho apresentado como requisito parcial para aprovao


na disciplina Laboratrio de Informtica Aplicada a
Engenharia Eltrica da Faculdade de Engenharia, Pontifcia
Universidade Catlica de Minas Gerais.

Prof. Nilo Sergio Gomes

Belo Horizonte
2017
LISTA DE FIGURAS

Figura 1 - Modelo do SEP proposto em p.u. ............................................................................ 17


Figura 2 Entrada de dados da carga ....................................................................................... 19
Figura 3 Entrada de dados da linha de transmisso ............................................................... 20
Figura 4 Entrada de dados do gerador ................................................................................... 20
4

LISTA DE TABELAS

Tabela 1. Operaes Aritmticas ................................................................................................ 7


Tabela 2. Operadores Relacionais .............................................................................................. 7
Tabela 3. Operadores Lgicos .................................................................................................... 8
Tabela 4 - Comentrios e Pontuaes ........................................................................................ 9
Tabela 5 - Funes Elementares ................................................................................................. 9
Tabela 6 - Construo de Vetores............................................................................................. 11
Tabela 7 - Operaes com Vetores ........................................................................................... 12
5

Sumrio

INTRODUO ........................................................................................................................ 6

1 FUNDAMENTAO TERICA ..................................................................................... 7

1.1 INICIANDO O MATLAB ................................................................................................. 7

1.2 OPERAES BSICAS E EXPRESSES LGICAS ................................................... 7

1.3 CONSTANTES E VARIVEIS ....................................................................................... 8

1.4 FUNES MATEMTICAS ........................................................................................... 9

1.5 COMANDOS DE AUXLIO ........................................................................................... 10

1.6 NMEROS COMPLEXOS ............................................................................................. 10

1.7 VETORES ....................................................................................................................... 11

1.8 MATRIZES ..................................................................................................................... 12

1.9 ESTRUTURAS CONDICIONAIS .................................................................................. 14

1.9.1 Estrutura if-end........................................................................................................... 14

1.9.2 Estrutura if-else-end ................................................................................................... 15

1.10 ESTRUTURAS DE REPETIO ................................................................................ 15

1.10.1 Estrutura for-end ...................................................................................................... 15

1.10.2 Estrutura while-end .................................................................................................. 16

1.11 ENTRADA DE DADOS PELO USURIO ................................................................. 16

2 DESENVOLVIMENTO PRTICO ............................................................................... 17

2.1 PROPOSTA DO PROJETO ............................................................................................ 17

2.2 PROGRAMA DESENVOLVIDO NO MATLAB .......................................................... 17

2.3 ENTRADA DE DADOS PELO USURIO ................................................................... 19

3 ANLISE DE RESULTADOS ........................................................................................ 21


6

INTRODUO

O MATLAB (que abrevia MATrix LABoratory Laboratrio de Matrizes) um programa de


computador de uso especfico, otimizado para executar clculos cientficos e de engenharia.
Inicialmente, era projetado para clculos com matrizes; ao longo dos anos, transformou-se em
um sistema computacional flexvel, capaz de resolver essencialmente qualquer problema
tcnico. 1
O MATLAB apresenta vrias vantagens na soluo de problemas tcnicos em relao
as linguagens de programao convencionais: um programa relativamente fcil de usar,
possui uma vasta biblioteca de funes predefinidas e ferramentas especficas para auxiliar a
resoluo de problemas, interface grfica de usurio, independncia de plataforma e o
compilador MATLAB. As desvantagens principais seriam o custo e uma lentido maior em
relao a linguagens compiladas. No entanto, estas desvantagens so compensadas pelo tempo
reduzido requerido para se criar um programa o que torna o MATLAB eficaz para as
empresas e o meio cientfico.
A proposta deste Projeto utilizar o MATLAB para anlise de um problema
relacionado a Eletrotcnica: o modelamento de um sistema eltrico de potncia, composto por
uma fonte geradora, uma linha de transmisso, bancos de capacitores e uma carga conectada.
Procurou-se criar uma interface grfica de usurio atravs de um menu, o que torna possvel
variar dados de entrada e realizar comparaes.

1
Chapman. Stephen J. Programao em MATLAB para Engenheiros. Ed Thomson, 2003, p. 2.
7

1 FUNDAMENTAO TERICA

1.1 INICIANDO O MATLAB

Para iniciar basta dar um duplo clique no cone MATLAB e aguardar carregar o
aplicativo. Uma vez iniciado aparecer uma janela de comandos e o prompt padro (EDU
>> ou >>) exibido na tela. A partir deste ponto o MATLAB aguarda um comando (instruo
do usurio). Todo comando deve ser finalizado com enter.

1.2 OPERAES BSICAS E EXPRESSES LGICAS


O MATLAB oferece as seguintes operaes aritmticas:

Tabela 1. Operaes Aritmticas

Fonte: Tonini, Adriana M. ; Schettino, Daniela N., MATLAB para Engenharia, 2002

A ordem das expresses segue a ordem matemtica potncia, seguida da


multiplicao e da diviso, que por sua vez so seguidas pelas operaes de adio e
subtrao. Os operadores relacionais realizam comparaes. Os operadores relacionais
utilizados pelo MATLAB so:

Tabela 2. Operadores Relacionais

Fonte: Tonini, Adriana M. ; Schettino, Daniela N., MATLAB para Engenharia, 2002
8

Note que (=) usado para atribuio a uma varivel e (==) usado para comparao. O
resultado de uma operao lgica ou relacional verdadeiro ou falso, e o MATLAB retorna 0
como falso e 1 como verdadeiro. Por exemplo:

>> 5>8
ans =
0
>> 6==6
ans =
1

Os operadores lgicos so:

Tabela 3. Operadores Lgicos

Fonte: Tonini, Adriana M. ; Schettino, Daniela N., MATLAB para Engenharia, 2002

1.3 CONSTANTES E VARIVEIS

O MATLAB possui algumas constantes predefinidas. Por exemplo:


>> pi
ans =
3.1416

Para declarar uma varivel basta usar igualdade. O sinal (=) significa atribuio. O que
estiver direita do sinal de igual colocado na varivel que estiver esquerda. Por
exemplo:
>> a = 3; b=4;
>> soma = a+b
soma =
7

Para fazer comentrios ou pontuaes no MATLAB basta usar a tabela 4.


9

Tabela 4 - Comentrios e Pontuaes

Fonte: Tonini, Adriana M. ; Schettino, Daniela N., MATLAB para Engenharia, 2002

1.4 FUNES MATEMTICAS

Uma das vantagens do MATLAB sua biblioteca de funes. Aqui funo um


comando que possui argumentos de entrada e argumentos de sada. Algumas dessas funes
j so predefinidas e no podem ser alteradas pelo usurio.

Tabela 5 - Funes Elementares


10

Fonte: Teixeira, Carlos. Curso de MATLAB e suas Aplicaes em Oceanografia

1.5 COMANDOS DE AUXLIO

No MATLAB pode se pedir ajuda sobre qualquer comando ou funo. Isto pode ser
feito basicamente de trs formas: interativamente atravs do menu de barras, atravs do
comando help ou atravs do comando lookfor.
Digitando-se simplesmente o comando help o MATLAB mostra uma listagem de
todos os pacotes disponveis. Para ajuda sobre um comando ou pacote especfico basta digitar
help <tpico>, onde tpico o nome de um pacote, comando ou funo.
Caso o usurio no conhea o tpico, existe um comando interessante em que pode-se
procurar por palavras chaves chamado lookfor. Sua sintaxe lookfor< palavra-chave>. Ele
retorna ao usurio todos os tpicos que possuem aquela palavra chave.

1.6 NMEROS COMPLEXOS

Algumas linguagens de programao requerem tratamento especial para nmeros


complexos, o que no o caso para MATLAB. Nmeros complexos so permitidos em todas
as operaes e funes no MATLAB. So introduzidos usando as funes i ou j e podem ser
representados de vrias maneiras. Exemplos:

>> Z1 = 3 +j*5
Z1 =
3.0000 + 4.0000i
>>Z2 = 5+7*i
Z2 =
5.0000 + 7.0000i

A converso entre as formas polar e retangular de um nmero complexo utiliza as


seguintes funes no MATLAB:
real : parte real de um nmero complexo
imag: parte imaginria de um nmero complexo
abs: calcula o valor absoluto ou mdulo de um nmero complexo
angle: calcula o ngulo de um nmero complexo em radianos
11

1.7 VETORES

O MATLAB permite a manipulao de linhas, colunas, elementos individuais e partes


de matrizes. Na tabela 6 tem-se o resumo das diversas formas de se construir um vetor no
MATLAB.

Tabela 6 - Construo de Vetores

Fonte: Tonini, Adriana M. ; Schettino, Daniela N., MATLAB para Engenharia, 2002

Nos exemplos acima os vetores possuem uma linha e vrias colunas (vetores linha).
Da mesma forma podem existir vetores colunas (uma coluna e vrias linhas). Para se criar um
vetor coluna os elementos devem ser separados por (;). Exemplo:

>> v = [1; 2; 3]
v=
1.000
2.000
3.000

O endereamento de vetores feito atravs de seu ndice. Para um vetor linha este
ndice identifica cada uma das colunas. Por exemplo:

>> x = [1 2 3 4 5 6 7 8 9 10];
>> x(3) % Acessa o terceiro elemento do vetor x
12

ans =
3

De forma similar, para um vetor coluna:

>> y =[1; 2; 3; 4; 5; 6; 7; 8; 9; 10];


>> y(5) % Acessa o quinto elemento do vetor coluna
ans =
5

As operaes entre vetores s so definidas quando eles tiverem o mesmo tamanho e a


mesma orientao (linha ou coluna). Essas operaes so:

Tabela 7 - Operaes com Vetores

Fonte: Tonini, Adriana M. ; Schettino, Daniela N., MATLAB para Engenharia, 2002

1.8 MATRIZES

O MATLAB trabalha essencialmente com um tipo de objeto, uma matriz numrica


retangular (1x1; 2x2; 3x3; i(linha) x j(coluna); etc).
Os elementos de cada linha da matriz so separados por espaos em branco ou vrgulas
e as colunas separadas por ponto e vrgula, colocando-se colchetes em volta do grupo de
elementos que formam a matriz. Por exemplo, entrando com a expresso

>> A = [1 2 3; 4 5 6; 7 8 9]
Pressionando <enter> o MATLAB mostra o resultado:
A=
13

1 2 3
4 5 6
7 8 9

Existem funes no MATLAB que permitem entrar com as matrizes elementares:

Matriz Identidade: eye (n)


Matriz Nula: zeros (m,n)
Matriz com todos os elementos iguais a 1: ones (m,n)
Matriz aleatria: rand (m,n)

As operaes com matrizes no MATLAB so dadas atravs dos comandos:

Transposta de uma matriz A: A


Multiplicao por um escalar k: k*A
Multiplicao de duas matrizes A e B: A.*B
Quadrado de uma matriz A: A.^2
Soma de duas matrizes A e B: A+B

Alm disso, em sua biblioteca de funes h um tpico com vrias funes matriciais
predefinidas que pode ser acessada pelo usurio.
Um elemento individual da matriz pode ser acessado incluindo os seus subscritos entre
parnteses. Por exemplo, dada a matriz A:

>> A = [1 2 3; 4 5 6; 7 8 9]
A=
1 2 3
4 5 6
7 8 9
a declarao
>> A(3,3) % Indica o elemento da matriz A da terceira linha e terceira coluna
ans =
9
14

Utilizando os dois pontos no lugar do subscrito denota-se todos os elementos da linha


ou coluna. Por exemplo:

>> A(1,:)
ans =
1 2 3

uma submatriz 1x3 que consiste da primeira linha.

1.9 ESTRUTURAS CONDICIONAIS

Uma estrutura condicional permite a escolha de um grupo de comandos a serem


executados quando uma dada condio for satisfeita ou no, possibilitando dessa forma alterar
o fluxo natural de comandos. Esta condio representada por uma expresso lgica.

1.9.1 Estrutura if-end

A estrutura condicional mais simples do MATLAB :

if <condio>

<comandos>

end

Se o resultado da expresso lgica <condio> for igual a 1 (verdadeiro) ento a lista


de <comandos> ser executada. Se o resultado for 0 (falso) os comandos no sero
executados. Por exemplo, considere um arquivo program1.m

a = input(Entre com o valor de a:);


if a>=0
b = sqrt(a)
end

Neste exemplo, a raiz quadrada de a s ser atribuda a b se somente se o valor de a


fornecido pelo usurio for maior ou igual a zero.
15

1.9.2 Estrutura if-else-end

No caso de haver duas alternativas, uma outra estrutura condicional deve ser usada:

if <condio>
<comandos 1>
else
<comandos 2>
end

Se a expresso lgica <condio> for igual a 1 (verdadeira), o programa ir executar


os <comandos 1>. Se for igual a zero (falsa), o programa ir executar os <comandos 2>.
Existe ainda a estrutura if-elseif-end, que seria usada para seleo quando houver mais
de duas alternativas.

1.10 ESTRUTURAS DE REPETIO

A estrutura de repetio faz com que uma sequncia de comandos seja executada
repetidamente at que uma dada condio seja satisfeita. O MATLAB possui duas estruturas
de repetio: a estrutura for-end e while-end.

1.10.1 Estrutura for-end

A estrutura for-end permite que um grupo de comandos seja repetido um nmero especfico
de vezes. Sua estrutura

for <varivel> = <arranjo>


<comandos>
end

Onde <varivel> a varivel de controle que assume todos os valores contidos no


vetor linha <arranjo>. Assim, o nmero de repeties da lista <comandos> igual o nmero
de elementos no vetor <arranjo>. A varivel de controle no pode ser redefinida dentro da
estrutura for-end.
16

O lao for o controlador de fluxo mais simples e usado na programao MATLAB.


Analisando a expresso:

for i=1:5
x(i) = i^2
end

Para i de 1 at 5 o vetor linha x recebe na posio i o valor de i ao quadrado.

1.10.2 Estrutura while-end

A estrutura while-end, ao contrrio da estrutura for-end, repete um grupo de comandos um


nmero indefinido de vezes. Sua sintaxe

while <condio>
<comandos>
End

Enquanto a expresso lgica <condio> for verdadeira a lista de <comandos> ser


repetida.

1.11 ENTRADA DE DADOS PELO USURIO

A funo mais comumente usada para entrada de dados pelo usurio no MATLAB
input. Sua sintaxe :
RESULT = input (PROMPT)
Onde a varivel RESULT recebe o valor de entrada do usurio. Pode ser escrito um
texto que aparece para o usurio. A entrada de dados tambm pode ser feita com uma caixa de
dilogo usando o inputdlg. Neste caso, a caixa de dilogos ter n linhas e m colunas, e cada
varivel ser guardada numa posio da matriz. Pode-se ainda predefinir os valores default
que sero atribudos. Essa funo armazena esses dados de entrada como texto (STRINGS).
Para utiliz-los em expresses matemticas necessrio converter para valores numricos, o
que pode ser feito pela funo do MATLAB str2double.
17

2 DESENVOLVIMENTO PRTICO

2.1 PROPOSTA DO PROJETO

O objetivo desenvolver um programa em MATLAB para calcular a tenso E f do


gerador no Sistema Eltrico de Potncia da figura 1. Os valores esto em p.u. As bases
utilizadas foram Sb = 100 MVA e Vb = 138 KV.

Figura 1 - Modelo do SEP proposto em p.u.

2.2 PROGRAMA DESENVOLVIDO NO MATLAB

%PROJETO 02
%PROGRAMA PARA CALCULO DA TENSAO Ef DE UM GERADOR PARA UMA DADA CONDIO
%DE CARGA
clc, clear;

%DIMENSIONAMENTO DE MATRIZES
num_carga=zeros(1,6);
num_LT=zeros(1,4);
num_gerador=zeros(1,5);
%ENTRADA DE DADOS DA CARGA
prompt= {'ENTRE COM A POTNCIA ATIVA - MW:', 'ENTRE COM A POTNCIA REATIVA
MVar- Q>0 CARGA INDUTIVA:',...
'ENTRE COM A TENSO - MDULO P.U:','ENTRE COM A TENSO - NGULO
GRAUS:', 'ENTRE COM A POTNCIA REATIVA DO CAPACITOR - Q1<0 MVar:',...
'BANCO CAPACITOR Q1 LIGADO/DESLIGADO:'};
dlg_title= 'ENTRADA DE DADOS DA CARGA';
num_lines= 1;
def= {'100','10','1.0','0','-10.0','1'};
dados_carga= inputdlg (prompt,dlg_title,num_lines,def);
18

%ENTRADA DE DADOS DA LINHA DE TRANSMISSO


prompt= {'ENTRE COM A TENSO NOMINAL - KV:', 'ENTRE COM A REATNCIA
Xlt:',...
'ENTRE COM A RESISTNCIA Rlt:','ENTRE COM O LIMITE DE POTNCIA -
MVA:'};
dlg_title= 'ENTRADA DE DADOS DA LINHA DE TRANSMISSO';
num_lines= 1;
def= {'138','0.12','0.04','150'};
dados_LT= inputdlg (prompt,dlg_title,num_lines,def);

%ENTRADA DE DADOS DO GERADOR


prompt= {'ENTRE COM A REATNCIA - Xg:', 'ENTRE COM A POTNCIA ATIVA - Pg
(MW):',...
'ENTRE COM O FATOR DE POTNCIA:','ENTRE COM A POTNCIA REATIVA DO BANCO
- Q2 (MVAr):','ENTRE COM O ESTADO DO BANCO DE CAPACITOR Q2 -
LIGADO/DESLIGADO:'};
dlg_title= 'ENTRADA DE DADOS DO GERADOR';
num_lines= 1;
def= {'0.04','200','0.8','-10','1'};
dados_gerador= inputdlg (prompt,dlg_title,num_lines,def);

%TRANSFOMAR TEXTO EM NMEROS


%num_carga(1,1)=P em MW
%num_carga(1,2)=Q em MVAr
%num_carga(1,3)=Tenso na barra em PU
%num_carga(1,4)=ngulo na tenso da barra
%num_carga(1,5)=Q1 em MVAr
%num_carga(1,6)=Q1 ligado=1 desligado=0
for i=1:6
num_carga(1,i)=str2double (dados_carga(i));
end

%TRANSFOMAR TEXTO EM NMEROS


%num_LT(1,1)=Tenso nominal de entrada em KV
%num_LT(1,2)=Xlt em PU
%num_LT(1,3)=Rlt em PU
%num_LT(1,4)=Potncia limite em MVA
for i=1:4
num_LT(1,i)=str2double (dados_LT(i));
end

%TRANSFOMAR TEXTO EM NMEROS


%num_gerador(1,1)=Xg em Pu
%num_gerador(1,2)=Potncia ativa em MW
%num_gerador(1,3)=Fator de Potncia
%num_gerador(1,4)=Potncia reativa do banco de capacitor Q2
%num_gerador(1,5)=Estado do banco de capacitor Q2
for i=1:5
num_gerador(1,i)=str2double (dados_gerador(i));
end

%INICIAR MODELAGEM
Sb=100; %Potncia base
Vb=138; %tenso base
scarga=complex(num_carga(1,1),num_carga(1,2))/Sb; %Potncia da carga em PU
scarga=conj(scarga); %conjugado
Vcarga=complex(num_carga(1,3),0); %tenso na carga
Icarga=scarga/Vcarga; %Corrente na carga
19

scarga_mod= abs(scarga)*100
%---------------------------------------------------------
%BANCO DE CAPACITOR Q1
Sbc1=complex(0,(num_carga(1,5)))/Sb; %Potncia do banco de capacitor
Sbc1=conj(Sbc1);
if num_carga(1,6)==0
Ibc1=0;
else
Ibc1=Sbc1/Vcarga; %corrente no banco 1
end
Ilt=Icarga+Ibc1; %corrente na LT
Zlt=complex(num_LT(1,3),num_LT(1,2)); %impedncia da LT (Rlt+jXlt)
V2=Vcarga+Zlt*Ilt; %tenso na barra do gerador
V2_mod=abs(V2); %modulo da tenso na barra do gerador
%---------------------------------------------------------------------
%BANCO DE CAPACITOR Q2
Sbc2=complex(0,(num_gerador(1,4)))/Sb; %Potncia do banco de capacitor
Sbc2=conj(Sbc2);
if num_gerador(1,5)==0
Ibc2=0;
Igerador=Ilt;
else
Ibc2=Sbc2/V2; %corrente no banco Q2
Igerador=Ilt+Ibc2; %corrente no gerador

end

Zgerador=complex(0,num_gerador(1,1)); %impedncia do gerador


Ef=V2+Zgerador*Igerador; %Tenso de entrada
Ef_mod=abs(Ef); %modulo da tenso de entrada
Ef_ang=angle(Ef)*180/pi; %angulo da tenso de entrada
Pg=real(Ef*conj(Igerador))*Sb %potncia ativa do gerador
Qg=imag(Ef*conj(Igerador))*Sb %potncia reativa do gerador

2.3 ENTRADA DE DADOS PELO USURIO

Aps a simulao do programa proposto, aberta 3 janelas solicitando a entrada dos


dados da carga, linha de transmisso e do gerador. Essas condies de contorno foram pr
estabelecidas para o desenvolvimento do projeto.

Figura 2 Entrada de dados da carga


20

Figura 3 Entrada de dados da linha de transmisso

Figura 4 Entrada de dados do gerador


21

3 ANLISE DE RESULTADOS

A) Mantendo a tenso na barra de carga igual a 1,0 0 p.u., os dois blocos de


capacitores Q1 e Q2 ligados e o fator de potncia da carga constante, determine a
tenso do gerador Ef para as condies de carga abaixo.

B) Repita a simulao anterior com os dois blocos de capacitor desligados.

C) Plotar o grfico Ef x |S| para os dois casos considerando So = (100+j10) Mva.


22

Atravs das simulaes e dos grficos plotados podemos observar que a tenso Ef
diminui medida que so acionados os bancos de capacitores, pois o prprio banco gera
potencia reativa no circuito exigindo menos da fonte de tenso. Quando esses bancos so
desligados, a tenso aumenta tentando suprir a necessidade do circuito e com isso, os reativos
so gerados.

Você também pode gostar