Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia Aeroespacial
com espessura máxima do perfil t = 0.05. O aerofólio está imerso com ângulo de ataque
nulo em um escoamento potencial bidimensional com velocidade de escoamento livre V∞ =
1 no sentido positivo de x. As informações do escoamento ao redor do aerofólio são obtidas
através da solução da equação que governa o movimento:
∂ 2φ ∂ 2φ
+ = 0, (2)
∂x2 ∂x2
2 Solução Numérica
Para solução do problema, necessitamos discretizar o domı́nio, discretizar as equações
que governam o problema para que estas possam ser aplicadas neste domı́nio discretizado,
definir as condições iniciais e de contorno, e escolher um método de solução. Trataremos
disso a seguir.
∂ 2φ
φi+1 − 2φi + φi−1 2
= + O ∆x , (3)
∂x2 i ∆x2
∂ 2φ
φj+1 − 2φj + φj−1
+ O ∆y 2 ,
= (4)
∂y 2 j ∆y 2
1
que quando substituidos na Eq.(2) resultam em:
Como condição de contorno, a mesma condição da Eq. (6) foi aplicada para as fronteiras
esquerda, direita e superior da malha. Já para a fronteira inferior, isto é, os pontos com
j = 1, os valores são dados por:
∂φ
φi,1 = φi,2 − ∆y (7)
∂y
y=0
onde, para 0 ≤ x ≤ 1:
∂φ ∂w
= V∞ = V∞ [2t(1 − 2x)] , (8)
∂y
y=0 ∂x
e para x ≤ 0 e x ≥ 1:
∂φ
= 0. (9)
∂y
y=0
onde:
n
Ci,j = φn+1 n
i,j − φi,j (11)
O termo N se refere aos esquemas de iteração. Neste trabalho, foram utilizados três
métodos diferentes: Jacobi, Gauss-Seidel e Succesive Overrelaxation, os quais serão apre-
sentados a seguir.
2
2.4.1 Método de Jacobi
2 2
NJ = − 2
− (13)
∆x ∆y 2
2φni,j 2φni,j
n
φi+1,j 2φni,j φni−1,j φni,j+1 2φni,j φni,j−1
2 2 n+1
− 2− φi,j + + + − + + − + = 0,
∆x ∆y 2 ∆x2 ∆y 2 ∆x2 ∆x2 ∆x2 ∆y 2 ∆y 2 ∆y 2
(15)
Os valores de φ são obtidos a partir da Eq. (18) e devem ser atualizados a cada nı́vel n de
iteração, até a convergência, que, neste trabalho, foi avaliada pela variação da quantidade
|Lφni,j |.
3
2.4.2 Método de Gauss-Seidel
4
φn+1
i−1,j φn+1
i,j−1 φni−1,j φni,j−1 2 2 n+1
φni+1,j φni−1,j φni,j+1 φni,j−1
+ − − + − − φi,j + + + + =0 (23)
∆x2 ∆y 2 ∆x2 ∆y 2 ∆x2 ∆y 2 ∆x2 ∆x2 ∆y 2 ∆y 2
2 2 n+1
φni+1,j + φn+1
i−1,j φni,j+1 + φn+1
i,j−1
− 2− 2
φi,j + 2
+ 2
=0 (24)
∆x ∆y ∆x ∆y
" #
n n+1
(∆x)2 (∆y)2 φni+1,j + φn+1
i−1,j φi,j+1 + φ i,j−1
φn+1
i,j = 2 2 2
+ 2
(25)
2(∆x) + 2(∆y) ∆x ∆y
2.4.3 Successive Overrelaxation (SOR)
Ex−1 Ey−1 1 2 2 n
φni+1,j 2φni,j φni−1,j φni,j+1 2φni,j φni,j−1
+ φn+1
i,j − φni,j + − 2− φn+1
i,j − φi,j + − + + − + =0 (28)
∆x2 ∆y 2 r ∆x ∆y 2 ∆x2 ∆x2 ∆x2 ∆y 2 ∆y 2 ∆y 2
5
1 2 2 n+1 n
φni+1,j 2φni,j φn+1
i−1,j φni,j+1 2φni,j φn+1
i,j−1
− 2− φi,j − φi,j + − + + − + =0 (29)
r ∆x ∆y 2 ∆x2 ∆x2 ∆x2 ∆y 2 ∆y 2 ∆y 2
1 2 2 1 2φni,j 1 2φni,j φni+1,j 2φni,j φn+1
i−1,j φni,j+1 2φni,j φn+1
i,j−1
− 2− φn+1
i,j + 2
+ 2
+ 2
− 2
+ 2
+ 2
− 2
+ =0 (30)
r ∆x ∆y 2 r ∆x r ∆x ∆x ∆x ∆x ∆y ∆y ∆y 2
1 2 2 n+1
φni+1,j − (1 − 1r )2φni,j + φni−1,j φni,j+1 − (1 − 1r )2φni,j + φni,j−1
− 2− φi,j + + =0 (31)
r ∆x ∆y 2 ∆x2 ∆x2
n
r(∆x)2 (∆y)2 φi+1,j − (1 − r−1 )2φni,j + φni−1,j φni,j+1 − (1 − r−1 )2φni,j + φni,j−1
φn+1
i,j = + (32)
2(∆x)2 + 2(∆y)2 ∆x2 ∆x2
3 Quantidades de Interesse
Após a implementação computacional da Eq. (18), (25) ou (32), e convergência da
solução, podemos obter os resultados em termos de váriaveis de significado mais intuitivo
do que o potencial de velocidades, como, por exemplo, a própria velocidade, e a pressão.
∂φ
u= , (33)
∂x
∂φ
v= . (34)
∂y
Necessitamos, então, de esquemas de diferenças finitas para encontrar esses valores. Para
esses cálculos, foram utilizados esquemas centrados:
∂φ φi+1 − φi−1
+ O ∆x2 ,
= (35)
∂x i 2∆x
∂φ φj+1 − φj−1
+ O ∆y 2 ,
= (36)
∂y j 2∆y
esquemas forward :
∂φ φi+1 − φi
= + O (∆x) , (37)
∂x i ∆x
∂φ φj+1 − φj
= + O (∆y) , (38)
∂y j ∆y
e esquemas backward :
∂φ φi − φi−1
= + O (∆x) , (39)
∂x i ∆x
∂φ φj − φj−1
= + O (∆y) . (40)
∂y j ∆y
Tendo definido:
6
φi+1,j − φi,j φi,j+1 − φi,j
Fx ≡ , Fy ≡ ,
∆x ∆y
A utilização das discretizações dessa maneira fornece uma solução geral com segunda
ordem de precisão, mesmo que tenhamos utilizado discretizações de primeira ordem nas
fronteiras do domı́nio.
De posse das velocidades nas direções x e y, podemos encontrar facilmente a magnitude
da velocidade, Vi,j : q
Vi,j = (ui,j )2 + (vi,j )2 (41)
3.2 Pressões
Para um escoamento potencial, podemos obter as pressões de forma adimensionalizada,
por meio do coeficiente de pressão, Cp . Para cada ponto da malha, o coeficiente de pressão
pode ser calculado a partir de:
2
Vi,j
(Cp )i,j = 1 − . (42)
V∞
7
4 Resultados
As solução foi obtida utilizando os três métodos, sendo o SOR com diferentes parâmetros
de relaxação escolhidos arbitrariamente, como segue na Tabela 1, onde o resı́duo é dado
SOR
Jacobi Gauss-Seidel
r = 0.8 r = 1.5 r = 1.9495
Número de
14396 12570 17454 4627 494
iterações
Resı́duo (×10−13 ) 5.3291 5.3291 5.9952 5.7732 11.546
por |Lφni,j |max , e o critério de convergência utilizado foi o da estagnação do valor dessa
quantidade.
Analisando esses resultados e os históricos de convergência (Figura 1), notamos que
o método de sobrerelaxação (r > 1) foi extremamente eficiente para a aceleração de
convergência do problema, sendo r = 1.9495 o valor (1 < r < 2) que apresentou o menor
número de iterações para convergência com relação ao critério utilizado. A subrelaxação
(r < 1), propicia o oposto, fazendo com que o número de iterações para convergência
aumente. Esse método só é necessário caso a convergência não esteja sendo normalmente
alcançada.
Após obter as variáveis de interesse, foi feito o pós-processamento dos resultados com
as ferramentas do MATLAB. O mapa de cores da velocidade é visto nas Figuras 2 e 3.
Como esperado, o resultado é totalmente simétrico, uma vez que se trata de um aerofólio
simétrico com ângulo de ataque nulo. Podem ser observados os pontos de estagnação nos
8
bordos de ataque e de fuga do aerofólio, bem como um pico de velocidade no eixo vertical
que corta o seu centro.
9
Figura 3: Mapa de cores e curvas de nı́vel (em preto) da velocidade próximos ao aerofólio.
A linha vermelha representa a superfı́cie do aerofólio.
10
A Código do MATLAB para solução pelo Método
SOR
11
33 end
34
35 J = ceil (( abs ( y_lower ) + abs ( y_upper ) ) / dy ) ; % numero de
intervalos em y
36 y = zeros (1 , J +1) ;
37 y (1) = y_lower ;
38 for j = 1: J
39 y ( j +1) = y ( j ) + dy ;
40 end
41
42 %% Condiç~ o es iniciais e de contorno
43
44 % condiç~ o es iniciais
45 [ X Y ] = meshgrid (x , y ) ;
46 phi_inf = V_inf * X ;
47 % meshc (x ,y , phi_inf )
48
49 % condiç~ o es de contorno
50
51 % dominio do aerofólio ( raı́zes da equaç~ a o que descreve o
aerofólio simetrico )
52 x_inicial = 0; % posiç~
a o do bordo de ataque
53 x_final = 1; % posiç~
a o do bordo de fuga
54 X_inicial = ( abs ( x_left ) + x_inicial ) / dx + 1; %
numero do nó inicial
55 X_final = ( abs ( x_left ) + x_final ) / dx + 1; % numero do
nó final
56
57 % derivada parcial de phi em relaç~ ao a y
58
59 phi_y = zeros (1 , I +1) ;
60 % x < 0 e x > 1
61 phi_y (1 ,:) = 0;
62
63 % 0 <= x <= 1
64 for i = X_inicial : X_final
65 phi_y (1 , i ) = V_inf *(2* t *(1 - 2* x ( i ) ) ) ;
12
66 end
67
68 %% Método SOR
69
70 A = ((( dx ^2) *( dy ^2) ) /(2*( dx ^2) + 2*( dy ^2) ) ) ;
71
72 phi_n = phi_inf ; phi_n1 = phi_inf ; Lphi = ones ( J +1 , I +1) ;
73 N_de_iteracoes = 0;
74 residuo = 1;
75 while residuo > criterio
76 for i = 2: I
77 phi_n1 (1 , i ) = phi_n (2 , i ) - dy * phi_y (1 , i ) ;
78 end
79 for j = 2: J
80 for i = 2: I
81 phi_n1 (j , i ) = r * A *...
82 (( phi_n (j , i +1) - 2*(1 - r ^( -1) ) * phi_n (j , i ) +
phi_n1 (j ,i -1) ) /( dx ^2) + ...
83 ( phi_n ( j +1 , i ) - 2*(1 - r ^( -1) ) * phi_n (j , i ) +
phi_n1 (j -1 , i ) ) /( dy ^2) ) ;
84 end
85 end
86 for j = 2: J
87 for i = 2: I
88 Lphi (j , i ) = ( phi_n1 (j , i +1) - 2* phi_n1 (j , i ) +
phi_n1 (j ,i -1) ) /( dx ^2) + ...
89 ( phi_n1 ( j +1 , i ) - 2* phi_n1 (j , i ) +
phi_n1 (j -1 , i ) ) /( dy ^2) ;
90 end
91 end
92 residuo = max ( max ( abs ( Lphi (2: J ,2: I ) ) ) )
93 N_de_iteracoes = N_de_iteracoes + 1
94 res ( N_de_iteracoes ) = residuo ;
95
96 plot ([1: N_de_iteracoes ] , log10 ( res ) )
97 title ([ ' N = ' , num2str ( N_de_iteracoes ) ])
98 pause (1 e -3)
13
99
100 phi_n = phi_n1 ;
101 end
102
103 %% Cálculo da velocidade
104
105 u = zeros ( J +1 , I +1) ; v = zeros ( J +1 , I +1) ;
106
107 % malha interna
108 for j = 2: J
109 for i = 2: I
110 u (j , i ) = ( phi_n (j , i +1) - phi_n (j ,i -1) ) /(2* dx ) ;
111 v (j , i ) = ( phi_n ( j +1 , i ) - phi_n (j -1 , i ) ) /(2* dy ) ;
112 end
113 end
114
115 % ponto inferior esquerdo
116 u (1 ,1) = ( phi_n (1 ,2) - phi_n (1 ,1) ) / dx ;
117 v (1 ,1) = ( phi_n (2 ,1) - phi_n (1 ,1) ) / dy ;
118
119 % esquerda
120 for j = 2: J
121 u (j ,1) = ( phi_n (j ,2) - phi_n (j ,1) ) / dx ;
122 v (j ,1) = ( phi_n ( j +1 ,1) - phi_n (j -1 ,1) ) /(2* dy ) ;
123 end
124
125 % ponto superior esquerdo
126 u ( J +1 ,1) = ( phi_n ( J +1 ,2) - phi_n ( J +1 ,1) ) / dx ;
127 v ( J +1 ,1) = ( phi_n ( J +1 ,1) - phi_n (J ,1) ) / dy ;
128
129 % cima
130 for i = 2: I
131 u ( J +1 , i ) = ( phi_n ( J +1 , i +1) - phi_n ( J +1 ,i -1) ) /(2* dx ) ;
132 v ( J +1 , i ) = ( phi_n ( J +1 , i ) - phi_n (J , i ) ) / dy ;
133 end
134
135 % ponto superior direito
14
136 u ( J +1 , I +1) = ( phi_n ( J +1 , I +1) - phi_n ( J +1 , I ) ) / dx ;
137 v ( J +1 , I +1) = ( phi_n ( J +1 , I +1) - phi_n (J , I +1) ) / dy ;
138
139 % direita
140 for j = 2: J
141 u (j , I +1) = ( phi_n (j , I +1) - phi_n (j , I ) ) / dx ;
142 v (j , I +1) = ( phi_n ( j +1 , I +1) - phi_n (j -1 , I +1) ) /(2* dy ) ;
143 end
144
145 % ponto inferior direito
146 u (1 , I +1) = ( phi_n (1 , I +1) - phi_n (1 , I ) ) / dx ;
147 v (1 , I +1) = ( phi_n (2 , I +1) - phi_n (1 , I +1) ) / dy ;
148
149 % baixo
150 for i = 2: I
151 u (1 , i ) = ( phi_n (1 , i +1) - phi_n (1 ,i -1) ) /(2* dx ) ;
152 v (1 , i ) = ( phi_n (2 , i ) - phi_n (1 , i ) ) / dy ;
153 end
154
155 V = sqrt ( u .^2 + v .^2) ;
156
157 % coordenadas do aerofólio
158 airfoil = 2* t * x ( X_inicial : X_final ) .*(1 - x ( X_inicial : X_final )
);
159
160 % coeficiente de press~ ao
161 Cp = 1 - ( V / V_inf ) .^2;
162
163 %% Plots
164
165 % mapa de cores
166
167 figure (2)
168 contourf (x ,y ,V ,25)
169 hold on
170 contourf (x , -y ,V ,25)
171 colorbar ( ' southoutside ' )
15
172 pbaspect ([9 8 1])
173 hold on
174 plot ( x ( X_inicial : X_final ) , airfoil , ' k ' , ' LineWidth ' ,1.5)
175 hold on
176 plot ( x ( X_inicial : X_final ) ,- airfoil , ' k ' , ' LineWidth ' ,1.5)
177 xlim ([ -1 2]) ; ylim ([ -1 1])
178 hold off
179
180 % curvas de nı́vel
181
182 figure (3)
183 contour (x ,y ,V ,30)
184 hold on
185 quiver (x ,y ,u , v )
186 hold on
187 plot ( x ( X_inicial : X_final ) ,2* t * x ( X_inicial : X_final ) .*(1 - x (
X_inicial : X_final ) ) , ' k ' , ' LineWidth ' ,4)
188 xlim ([ -1 2]) ; ylim ([ -.1 .25])
189 pbaspect ([3 1 1])
190 hold off
191
192 % distribuiç~ a o de Cp
193
194 figure (4)
195 plot ( x ( X_inicial : X_final ) ,- Cp (1 , X_inicial : X_final ) )
196 hold on
197 plot ( x ( X_inicial : X_final ) , airfoil , ' k ' , ' LineWidth ' ,1.5)
198 hold on
199 plot ( x ( X_inicial : X_final ) ,- airfoil , ' k ' , ' LineWidth ' ,1.5)
200 grid on ; grid minor ;
201 title ( ' Distribuiç~ a o do coeficiente de press~ ao ')
202 xlim ([ -.1 1.1]) ; ylim ([ -.14 .18])
203 xlabel ( ' x / c ' ) ; ylabel ( ' - C_p ' )
16