Você está na página 1de 12

Universidade Federal de Campina Grande

Centro de Engenharia Elétrica e Informática


Curso de Pos-Graduação em Engenharia Elétrica

FELIPE JOSÉ LUCENA DE ARAÚJO

RELATÓRIO DIFERENÇAS FINITAS

Campina Grande, Paraíba


Julho de 2014
1 - Determinar a distribuição de campo elétrico no capacitor de placas paralelas.

Figura 1 – Capacitor com placas paralelas.

Para determinar a distribuição de campo elétrico em torno do capacitor de placas


paralelas foi feito uma rotina no matlab mostrada abaixo:

clear all
close all
clc

linha = 101; %número de pontos referente ao eixo horizontal


coluna = 201; %número de pontos referente ao eixo vertical

phi_atual = zeros(linha, coluna); %estimativas iniciais para phi


phi_anterior = zeros(linha, coluna);

erro = ones(linha, coluna);


erro_aux = ones(linha, coluna)./100;

iter = 0;

while(max(max(erro)) >= 0.000001) %criterio de parada


% for iter = 1:900

% desenho do capacitor com seus potenciais

for j=1:coluna

for k=1:linha

if (k==1 || j==1 || k==linha || j ==coluna) %potencial das bordas

phi_atual(k,j) = 0;

elseif (k==51 && j>84) && (k==51 && j<116) %potencial da placa superior

phi_atual(k,j) = 100;

elseif (k==49 && j>84) && (k==49 && j<116)%potencial da placa inferior

phi_atual(k,j) = -100;

else %potencial no resto da malha


phi_atual(k,j) = (phi_atual(k-1,j) + phi_atual(k,j-1) +
phi_atual(k,j+1) + phi_atual(k+1,j))/4;

end
end
end

erro = phi_atual - phi_anterior;


phi_anterior = phi_atual;

iter = iter + 1;
end

X = 1:coluna;
Y = 1:linha;
Z = phi_atual;
figure(1),
meshc(X,Y,Z)
figure(2),
contour(X,Y,Z)
menor_erro = max(max(erro))
iteracao = iter

% plot(X,phi_atual)

menor_erro =

9.9920e-007

iteracao =

6891

Potencial elétrico nas placas


100 100

90 80

80 60
Unidade do eixo vertical

70 40

60 20

50 0

40 -20

30 -40

20 -60

10 -80

20 40 60 80 100 120 140 160 180 200


Unidades do eixo horizontal

Figura 2 – Distribuição de campo elétrico.


2- Placas paralelas com dielétricos distintos

Figura 3 – Capacitor com placas paralelas e dielétricos distintos.

A rotina que realiza os cálculos está mostrada abaixo:

clear all
close all
clc

linha = 101; %número de pontos referente ao eixo horizontal


coluna = 201; %número de pontos referente ao eixo vertical

phi_atual = zeros(linha, coluna); %estimativas iniciais para phi


phi_anterior = zeros(linha, coluna);

erro = ones(linha, coluna);


erro_aux = ones(linha, coluna)./100;

er1 = 1;
er2 = 3;
er = er2/er1;

iter = 0;

% termino = 0;

while(max(max(erro)) >= 0.000001) %criterio de parada


% for iter = 1:900

% desenho do capacitor com seus potenciais

for j=1:coluna

for k=1:linha

if (k==1 || j==1 || k==linha || j ==coluna)%potencial das bordas

phi_atual(k,j) = 0;

elseif (k== 52 && j>84) && (k==52 && j<116)%potencial da placa superior

phi_atual(k,j) = 100;

elseif (k==48 && j>84) && (k==48 && j<116)%potencial da placa inferior

phi_atual(k,j) = -100;

elseif (k==50 && j>84) && (k==50 && j<116)%potencial nos dielétricos

phi_atual(k,j) = (1/4)*[phi_atual(k,j+1)+phi_atual(k,j-
1)+(2/(1+er))*(phi_atual(k-1,j)+er*phi_atual(k+1,j))];

else%potencial no resto da malha

phi_atual(k,j) = (phi_atual(k-1,j) + phi_atual(k,j-1) +


phi_atual(k,j+1) + phi_atual(k+1,j))/4;
end
end
end

erro = phi_atual - phi_anterior;


phi_anterior = phi_atual;

iter = iter + 1;
end

X = 1:coluna;
Y = 1:linha;
Z = phi_atual;
figure(1),
meshc(X,Y,Z)
figure(2),
contour(X,Y,Z)
menor_erro = max(max(erro))
iteracao = iter

menor_erro =

9.9991e-007

iteracao =

7661
Potencial elétrico
100 100

90 80

80 60
Unidades do eixo vertical

70 40

60 20

50 0

40 -20

30 -40

20 -60

10 -80

20 40 60 80 100 120 140 160 180 200

Unidades do eixo horizontal

Figura 4 – Distribuição de campo elétrico.

Devido as placas do capacitor esta inserida em dielétricos distintos, a


concentração de campo se torna disforme.
3 - Cuba para medição de rigidez dielétrica para óleo de transformador

Figura 5 – Transformador imerso em óleo mineral.


clear all
close all
clc

linha = 401; %número de pontos referente ao eixo horizontal


coluna = 801; %número de pontos referente ao eixo vertical

phi_atual = zeros(linha, coluna); %estimativas iniciais para phi


phi_anterior = zeros(linha, coluna);

erro = ones(linha, coluna);


erro_aux = ones(linha, coluna)./100;

er1 = 3.8; %Constante dielétrica do vidro


er2 = 2.1; %Constante dielétrica do óleo mineral
er = ones(linha, coluna);

% termino = 0;

iter = 0;

% desenho do transformador

for k=1:linha
for j=1:coluna

if(k>=100 && k<=300 && j>=200 && j<=220) || (k>=100 && k<=300
&& j>=580 && j<=600) || (k>=280 && k<=300 && j>=220 && j<=580)
er(k,j) = er1;
elseif (k>=115 && k<=280 && j>=220 && j<=580)
er(k,j) = er2;
else
er(k,j) = 1;
end
end
end

while(max(max(erro)) >= 1) %criterio de parada


% for iter = 1:900
for j=1:coluna

for k=1:linha

if (k==1 || j==1 || k==linha || j ==coluna)%potencial das


bordas

phi_atual(k,j) = 0;

elseif (k>= 170 && k<=190 && j>=180 && j<=350) || (k>=150
&& k<=210 && j>=350 && j <=395) %potencial de 1000V

phi_atual(k,j) = 1000;

elseif (k>= 170 && k<=190 && j>=450 && j<=620) || (k>=150
&& k<=210 && j>=405 && j <=450) %potencial de 0V

phi_atual(k,j) = 0;

else %potencial nos dielétricos

phi_atual(k,j) =
(1/4)*[phi_atual(k,j+1)+phi_atual(k,j-1)+(2/(1+(er(k+1,j)/er(k-
1,j))))*(phi_atual(k-1,j)+(er(k+1,j)/er(k-1,j))*phi_atual(k+1,j))];

end
end
end

erro = phi_atual - phi_anterior;


phi_anterior = phi_atual;

iter = iter + 1;
end

X = 1:coluna;
Y = 1:linha;
Z = phi_atual;
figure(1),
meshc(X,Y,Z)
figure(2),
contour(X,Y,Z,30)
menor_erro = max(max(erro))
iteracao = iter
Potencial elétrico
400
900
350
Unidades do eixo vertical 800
300
700
250 600

200 500

150 400

300
100
200
50
100

100 200 300 400 500 600 700 800


undidades do eixo horizontal
Figura 6 – Distribuição de campo elétrico em transformador.
4 – Eletrodo semi-esférico

Figura 7 – Eletrodo semi-esférico.

clear all for j=1:coluna


close all
clc for k=1:linha

linha = 281; %número de pontos referente if (k==1 || j==1 ||


ao eixo horizontal k==linha || j ==coluna)%potencial das
coluna = 261; %número de pontos bordas
referente ao eixo vertical
phi_atual(k,j) = 0;
phi_atual = zeros(linha, coluna);
%estimativas iniciais para phi elseif (k>= 60 && k<=160 &&
phi_anterior = zeros(linha, coluna); j>=100 && j<=160) || (k>=160 && k<=170
&& j>=60 && j<=200) %potencial de 100V
erro = ones(linha, coluna);
erro_aux = ones(linha, coluna)./100; phi_atual(k,j) = 100;

s1 = 0; s2 = 0; s3 = 0; s4 = 0; elseif (k==180 && j==60)


% termino = 0;
s1 = 0.2; s2= 1; s3= 1;
iter = 0; s4= 1;%pesos correspondentes as
distâncias do ponto verdadeiro

while(max(max(erro)) >= 0.01) %criterio phi_atual(k,j) =


de parada ((1/(s1+s3))*((100/s1) + (phi_atual(k,
% for iter = 1:900 j-1)/s3)) + (1/(s2+s4))*((100/s2) +
(phi_atual(k+1, j)/s4)))/((1/(s1*s3)) + s1 = 1; s2= 0.4; s3= 1;
(1/(s2*s4))); s4= 1;

elseif (k==190 && j==60) phi_atual(k,j) =


[(1/(s1+s3))*(phi_atual(k, j+1)/s1 +
s1 = 0.6; s2= 1; s3= phi_atual(k, j-1)/s3) +
1; s4= 1; (1/(s2+s4))*(100/s2 + phi_atual(k+1,
j)/s4)]/(1/(s1*s3) + 1/(s2*s4));
phi_atual(k,j) =
[(1/(s1+s3))*((100/s1) + (phi_atual(k,
j-1)/s3)) + (1/(s2+s4))*(100/s2 + elseif (k==230 && j==140)
phi_atual(k+1, j)/s4)]/(1/(s1*s3) +
1/(s2*s4)); s1 = 1; s2= 0.4; s3= 1;
s4= 1;
elseif (k==200 && j==70)
phi_atual(k,j) =
s1 = 0.3; s2= 0.4; s3= [(1/(s1+s3))*(phi_atual(k, j+1)/s1 +
1; s4= 1; phi_atual(k, j-1)/s3) +
(1/(s2+s4))*(100/s2 + phi_atual(k+1,
phi_atual(k,j) = j)/s4)]/(1/(s1*s3) + 1/(s2*s4));
[(1/(s1+s3))*(100/s1 + phi_atual(k, j-
1)/s3) + (1/(s2+s4))*(100/s2 +
phi_atual(k+1, j)/s4)]/(1/(s1*s3) + elseif (k==230 && j==150)
1/(s2*s4));
s1 = 1; s2= 0.61; s3=
1; s4= 1;
elseif (k==210 && j==80)
phi_atual(k,j) =
s1 = 0.4; s2= 0.3; s3= [(1/(s1+s3))*(phi_atual(k, j+1)/s1 +
1; s4= 1; phi_atual(k, j-1)/s3) +
(1/(s2+s4))*(100/s2 + phi_atual(k+1,
phi_atual(k,j) = j)/s4)]/(1/(s1*s3) + 1/(s2*s4));
[(1/(s1+s3))*(100/s1 + phi_atual(k, j-
1)/s3) + (1/(s2+s4))*(100/s2 + elseif (k==220 && j==160)
phi_atual(k+1, j)/s4)]/(1/(s1*s3) +
1/(s2*s4)); phi_atual(k,j) = 100;

elseif (k==220 && j==90) elseif (k==220 && j==170)

s1 = 1; s2= 0.6; s3= 1; s1 = 1; s2= 0.6; s3= 1;


s4= 1; s4= 1;

phi_atual(k,j) = phi_atual(k,j) =
[(1/(s1+s3))*(100/s1 + phi_atual(k, j- [(1/(s1+s3))*(phi_atual(k, j+1)/s1 +
1)/s3) + (1/(s2+s4))*(100/s2 + 100/s3) + (1/(s2+s4))*(100/s2 +
phi_atual(k+1, j)/s4)]/(1/(s1*s3) + phi_atual(k+1, j)/s4)]/(1/(s1*s3) +
1/(s2*s4)); 1/(s2*s4));

elseif (k==210 && j==180)


elseif (k==220 && j==100)
s1 = 1; s2= 0.41; s3=
phi_atual(k,j) = 100; 0.5; s4= 1;

elseif (k==230 && j==110) phi_atual(k,j) =


[(1/(s1+s3))*(phi_atual(k, j+1)/s1 +
s1 = 1; s2= 0.6; s3= 1; 100/s3) + (1/(s2+s4))*(100/s2 +
s4= 1; phi_atual(k+1, j)/s4)]/(1/(s1*s3) +
1/(s2*s4));
phi_atual(k,j) =
[(1/(s1+s3))*(phi_atual(k, j+1)/s1 +
phi_atual(k, j-1)/s3) + elseif (k==200 && j==190)
(1/(s2+s4))*(100/s2 + phi_atual(k+1,
j)/s4)]/(1/(s1*s3) + 1/(s2*s4)); s1 = 1; s2= 0.7; s3=
0.5; s4= 1;
elseif (k==230 && j==120)
phi_atual(k,j) =
s1 = 1; s2= 0.4; s3= 1; [(1/(s1+s3))*(phi_atual(k, j+1)/s1 +
s4= 1; 100/s3) + (1/(s2+s4))*(100/s2 +
phi_atual(k+1, j)/s4)]/(1/(s1*s3) +
phi_atual(k,j) = 1/(s2*s4));
[(1/(s1+s3))*(phi_atual(k, j+1)/s1 +
phi_atual(k, j-1)/s3) +
(1/(s2+s4))*(100/s2 + phi_atual(k+1, elseif (k==190 && j==200)
j)/s4)]/(1/(s1*s3) + 1/(s2*s4));
s1 = 1; s2= 1; s3= 0.8;
elseif (k==230 && j==130) s4= 1;
phi_atual(k,j) =
[(1/(s1+s3))*(phi_atual(k, j+1)/s1 + phi_atual(k,j) =
100/s3) + (1/(s2+s4))*(phi_atual(k- (phi_atual(k-1,j) + phi_atual(k,j-1) +
1,j)/s2 + phi_atual(k+1, phi_atual(k,j+1) + phi_atual(k+1,j))/4;
j)/s4)]/(1/(s1*s3) + 1/(s2*s4));

elseif (k==180 && j==200) end


end
s1 = 1; s2= 1; s3= 0.4; end
s4= 1;
erro = phi_atual - phi_anterior;
phi_atual(k,j) = phi_anterior = phi_atual;
[(1/(s1+s3))*(phi_atual(k, j+1)/s1 +
100/s3) + (1/(s2+s4))*(100/s2 + iter = iter + 1;
phi_atual(k+1, j)/s4)]/(1/(s1*s3) + end
1/(s2*s4));
X = 1:coluna;
elseif (k>=260 && k<=270 && Y = 1:linha;
j>=1 && j<=260) Z = phi_atual;
%figure(1),
phi_atual(k,j) = 0; %meshc(X,Y,Z)
figure(2),
contour(X,Y,Z,40)
else %potencial nos menor_erro = max(max(erro))
dielétricos iteracao = iter

Ptencial eletrico

90
250

80
Unidades do eixo vertical

200 70

60

150
50

40

100

30

50 20

10

50 100 150 200 250

Unidade do eixo horizontal

Figura 8 – Distribuição de campo elétrico em condutor semi-esférico.


5 -Torre de transmissão

Figura 9 – Torre trifásica.

A rotina está abaixo:


% torre teração
elseif (k>=250 && k<=550 &&
j>=140 && j<=150) %definição dos limites
verticais da torre1

phi_atual(k,j) = 450;

elseif (k>=250 && k<=550 &&


clear all j>=250 && j<=260)%definição dos limites
close all verticais da torre2
clc
phi_atual(k,j) = 0;
linha = 801; %número de pontos referente
ao eixo horizontal elseif (k>=550 && k<=800 &&
coluna = 401; %número de pontos j>=80 && j<=320)%terra
referente ao eixo vertical
phi_atual(k,j) = 450;
phi_atual = zeros(linha, coluna);
%estimativas iniciais para phi
phi_anterior = zeros(linha, coluna); elseif (k>=330 && k<=340 &&
j>=80 && j<=90)||(k>=330 && k<=340 &&
erro = ones(linha, coluna); j>=110 && j<=120)%condutor
erro_aux = ones(linha, coluna)./100;
phi_atual(k,j) = 1000;

% termino = 0;

iter = 0; elseif (k>=330 && k<=340


&& j>=180 && j<=190)||(k>=330 && k<=340
&& j>=210 && j<=220)%condutor
while(max(max(erro)) >= 0.1) %criterio
de parada phi_atual(k,j) = 1000;
% for iter = 1:900

for j=1:coluna elseif (k>=330 && k<=340 &&


j>=280 && j<=290)||(k>=330 && k<=340 &&
for k=1:linha j>=310 && j<=320)%condutor

if (k==1 || j==1 || phi_atual(k,j) = 1000;


k==linha || j ==coluna)%potencial das
bordas elseif (k>=360 && k<=370 &&
j>=80 && j<=90)||(k>=360 && k<=370 &&
phi_atual(k,j) = 0; j>=110 && j<=120)%condutor
phi_atual(k,j) = 1000;
elseif (k>= 280 && k<=300
&& j>=80 && j<=320) %definição dos elseif (k>=360 && k<=370 &&
limites horizontais da torre j>=180 && j<=190)||(k>=360 && k<=370 &&
j>=210 && j<=220)%condutor
phi_atual(k,j) = 450;
phi_atual(k,j) = 1000;
erro = phi_atual – phi_anterior;
elseif (k>=360 && k<=370 && phi_anterior = phi_atual;
j>=280 && j<=290)||(k>=360 && k<=370 &&
j>=310 && j<=320)%condutor iter = iter + 1;
end
phi_atual(k,j) = 1000;
X = 1:coluna;
else %demais pontos Y = 1:linha;
Z = phi_atual;
phi_atual(k,j) = %figure(1),
(phi_atual(k-1,j) + phi_atual(k,j-1) + %meshc(X,Y,Z)
phi_atual(k,j+1) + phi_atual(k+1,j))/4; figure(2),
contour(X,Y,Z,40)
end menor_erro = max(max(erro))
end teração = iter
end

Potencial eletrico
800
900
700
800
Unidades do eixo vertical

600
700
500 600

400 500

300 400

300
200
200
100
100

50 100 150 200 250 300 350 400


Unidades do eixo horizontal

Figura 10 – Distribuição de campo.

5 – Conclusão

O métodos das diferenças finitas mostrou-se eficaz para o cálculo da


distribuição de tensão com geometria relativamente simples. De acordo que a
complexidade da geometria do objeto em estudo se torna maior, a
implementação do método poderá ficar mais complexa.