Engraçado pois eu não consigo responder nem colocar comentários no meu próprio blog, que coisa estranha. Mas segue aqui minha resposta ao comentário do Júlio feito nesse post:
Olá Julio, obrigado pela visita ao blog. Quanto ao problema, posso ajudá-lo sim, mas não sei se vou ser preciso pois não tenho todas as informações - por exemplo, não sei a geometria dos condutores nem as condições de contorno dentro das quais eles estão inseridos, mas enfim:
Eu suponho que você esteja fazendo numericamente o cálculo do potencial (bidimensional, $V(x,y)$) numa região do plano cartesiano, para depois calcular o campo elétrico.
Quanto ao cálculo do potencial elétrico, acho que isso não tem muito segredo. 1 - Define-se uma malha (matriz) de pontos dentro da região que você quer analisar, 2 - Atribui-se a cada ponto um valor inicial de potencial diferente de zero para evitar problemas, 3 - Como o potencial em cada ponto é a média dos potenciais dos pontos vizinhos, você faz um loop com essa condição e pára quando a diferença entre o novo potencial e o antigo seja menor que um $\epsilon$ estabelecido. No final deste processo, sua matriz vai conter o valor do potencial elétrico em cada ponto do espaço. Quanto maior sua quantidade de pontos, em geral melhor será a sua solução, porém mais demorado será para fazer estes cálculos.
Feito isso, resta agora calcular campo elétrico em cada ponto e é isso que o comando do Matlab gradient faz: dado uma matriz com o potencial numérico, ele retorna duas matrizes com as componentes do campo elétrico. Eu não conheco um comando no Scilab que faça isso automaticamente. Mas vamos pelo lado mais hard:
Lembre-se que em coordenadas cartesianas, o campo elétrico é dado da seguinte maneira:
$\vec{E}=-\vec{\nabla}V = \left(- \dfrac{\partial V(x,y)}{\partial x}, -\dfrac{\partial V(x,y)}{\partial y}\right)$
Portanto, é natural que o comando retorne duas matrizes, uma para as componentes x do campo elétrico ($E_x$) e outra para a y ($E_y$).
O problema então é calcular numericamente as derivadas parciais de V para encontrar as componentes do campo, como faremos?
Da definição de derivadas parciais, temos:
$E_x= - \dfrac{\partial V(x,y)}{\partial x}=\lim_{h\to0}-\dfrac{V(x+h,y)-V(x,y)}{h}$
Analogamente para y:
$E_y= - \dfrac{\partial V(x,y)}{\partial y}=\lim_{h\to0}-\dfrac{V(x,y+h)-V(x,y)}{h}$
Essas derivadas significam o seguinte: No plano, fixe um ponto $(x,y)$ cujo potencial é $V(x,y)$. Ande, na direção x, uma distância h. Veja, nesse ponto $(x+h,y)$, quanto vale o potencial $V(x+h,y)$. Agora faça a subtração dos dois e divida por quanto andou. Essa é a taxa de variação da sua função V quando você se movimenta em relação ao eixo x. O resultado para y é análogo.
Você pode tomar como aproximação numérica das derivadas parciais o próprio quociente que as define. Para x, isso fica:
$E_x=-\dfrac{\partial V(x,y)}{\partial x}\simeq -\dfrac{V(x+h,y)-V(x,y)}{h}$
É possível utilizar também como boa aproximação outro método de derivação numérica:
$E_x=-\dfrac{\partial V(x,y)}{\partial x}\simeq -\dfrac{V(x+h,y)-V(x-h,y)}{2h}$
Este último sai da subtração das séries de Taylor para $f(x+h)$ e $f(x-h)$ truncada na primeira ordem.
Para y segue do mesmo jeito. Então vejamos: Para determinar $E_x(x,y)$ precisamos calcular $\dfrac{V(x+h,y)-V(x,y)}{h}$. $h$ representa a distância entre os pontos da malha, o termo $V(x+h,y)$ representa o potencial no ponto seguinte ao $V(x,y)$. Esses dois potenciais são conhecidos. A distância $h$ que você anda é arbitrária e depende de como você determinou sua malha.
Então para fazer esses cálculos numericamente usei as seguintes linhas de código no Scilab:
for j =1:N
for k =1:N
EX(j,k) = -(V(j,k+1)-V(j,k))/0.5
EY(j,k) = -(V(j+1,k)-V(j,k))/0.5
end
end
Nesse exemplo eu utilizei h=0.5. N é a dimensão da sua malha, EX(j,k) vai receber o valor do campo $E_x$ em cada ponto j,k. O meu potencial foi chamado de V(j,k), onde j é para linha e k é para coluna.
O fim desse loop vai te gerar duas matrizes. Imagine então que vc queira saber qual é o potencial no ponto (4,5). Procure então EX(4,5) e saberá quanto vale o campo na direção x e EY(4,5) para saber quanto vale na direção y. Se quiser saber o campo total nesse ponto, faça: $|E(4,5)|=\sqrt{E_x(4,5)^2 + E_y(4,5)^2}$.
Tendo essas duas matrizes é possível desenhar os vetores do campo com o Scilab. Basta usar o comando champ(), que admite quatro (ou mais) parâmetros de entrada: o primeiro é o tamanho da sua malha na direção x, se sua malha for NxN, então 1:N. O segundo é para y, então 1:N. O terceiro parâmetro é a matriz com as componentes do campo em X e o quarto é a matriz das componentes Y. Então no nosso caso teriamos: champ(1:N, 1:N, EX, EY). O resultado que fiz agora rapidamente foi esse:
Nele calculei o potencial numa região do espaço confinada por paredes. A parede no topo tem 30V de potencial e as laterais e inferior com 5V de potencial. A malha que defini foi 10x10. Desenhei as equipotenciais (pixels gigantes) com o comando Matplot(V) (V era a matriz cujas entradas eram os valores dos potenciais em cada ponto) e o campo vetorial com o champ.
Há outros parâmetros passíveis de modificação nesse comando champ, pois, por exemplo, ele desenha o vetor com tamanho proporcional ao módulo. É possível desenhar vetores de mesmo tamanho, mas coloridos de acordo com o módulo, usando o comando champ1:
Embora eu não saiba qual o critério de cores, ele dá um desenho bonitinho do campo. Há mais informações no help do Scilab também, talvez encontre alguma coisa la.
Espero ter ajudado e resolvido sua dúvida. Boa sorte no restante do trabalho. Abraços.
Nenhum comentário:
Postar um comentário