Está en la página 1de 5

Aplicación numérica para la determinación del

campo magnético en el eje axial debido a las bobinas


de Helmholtz
Luis Alejandro Chanquetti Herrera
Ingenería Física
Universidad Nacional de Ingeniería
LIMA 07
luisalejandrochh@gmail.com,
Resumen- Las bobinas de Helmholtz habitualmente se usan
para establecer una zona de campo magnético conocido y
uniforme para diversas aplicaciones. Es importante conocer la
zona donde dicho campo magnético es uniforme con las
distintas variables espaciales x, y y z. En la zona donde se
genera un campo magnético uniforme, se pueden hacer las
calibraciones de sensores magnéticos y sondas de campo
magnético, en un rango de bajas frecuencias. Este trabajo se
dedica a calcular y aproximar numéricamente el campo
magnético generado por las bobinas de Helmholtz y
determinar la uniformidad y la exactitud del campo magnético
respecto al centro de simetría del sistema estudiado.

INTRODUCCIÓN Fig. 1: Ejemplos de bobinas de Helmholtz.


Las bobinas de Helmholtz son la configuración más simple
Considere una espira donde circula una corriente eléctrica I
para producir un campo magnético relativamente constante.
constante en el tiempo. Partiendo de la expresión diferencial
Las bobinas de Helmholtz son dos bobinas circulares
de la ley de Biot-Savart.
coaxiales con el mismo radio que es igual a la distancia
entre los planos de las bobinas. Cuando las corrientes
circulan en sentidos opuestos la configuración se denomina
bobinas anti-helmholtz, y es importante en varias
aplicaciones como mediciones, investigaciones biomédicas,
calibración de puntas y sensores etc. Ampliar el área de
homogeneidad y reducir la variación del campo en los ejes
son las tareas de interés basadas en el estudio de un sistema
de dos bobinas, se determinó que tres bobinas por las que
circula corriente producen un campo magnético de mejores
características en intensidad y uniformidad que las bobinas
de Helmholtz estándar. Las bobinas poligonales son más
fáciles de producir en la industria. Cuando se incrementa el Fig. 2: Distribución del campo magnético en el eje axial de una espira.
número de lados de un polígono que forman la bobina, la
distribución de la intensidad de campo magnético es más Donde
uniforme.
Si se quiere mayor uniformidad del campo magnético se
puede emplear un sistema rectangular de 5 bobinas, para
mediciones biomédicas.
Resulta
Para calibrar magnetómetros en un campo magnético
uniforme se encuentra un sistema de 8 bobinas de
Helmholtz, donde la inhomogeneidad obtenida es menor a
0.1% para z=a/2. Por simetría e integrando para obtener B(z), entonces

OBJETIVOS
Aproximar numéricamente, mediante el uso del método
diferencias finitas, la solución para hallar el campo Para N número de espiras
magnético debido a dos pares de Helmholtz.

FUNDAMENTO TEÓRICO
Considerando dos bobinas de Helmholtz de radio a, cuyos
Las Bobinas de Helmholtz
centros se encuentran alineados sobre el eje de simetría Z,
Habitualmente se usan para establecer una zona de campo
separados una distancia d, a través de las cuales circula una
magnético conocido y uniforme para diversas aplicaciones.
intensidad de corriente. Asumiendo el origen de coordenadas
como el punto medio de d.

Fig. 3: Geometría de las bobinas de Helmholtz.


Por lo tanto para dos espiras, cada una con N número de
vueltas, separadas por una distancia d; la ley de Biot-Savart
el campo magnético es

Al no contar con una ecuación diferencial de segundo orden


al cual aplicar el método de diferencias finitas; pasamos a PROCEDIMIENTO
conseguirla derivando dos veces respecto a z. Paso 1. Determinar analíticamente el campo magnético B(z)
debido a las bobinas de Helmholtz utilizando la ley de Biot-
Primera derivada respecto a z, obtenemos Savart. Siendo z es el eje que une los centros de las bobinas.

Segunda derivada respecto a z, obtenemos

Paso 2. Derivar dos veces el campo B(z) para así obtener


Obtenemos una ecuación de segundo orden de la forma una ecuación diferencial de segundo orden, añadiéndole
condiciones de frontera dependiendo de la geometría de las
bobinas.
Donde

Paso 3. Resolver el problema de valor inicial utilizando el


método de diferencias finitas y comparar los valores
Resolviendo por el método de diferencias finitas el siguiente analíticos y de aproximación. Considerando
problema de valor inicial. N=500 vueltas,
I=0.11 A,
,
a= 0.1 m,
d=0.1 m.
y eligiendo un intervalo de -0.01≤ z ≤ 0.01 con un paso
h=0.001 para las aproximaciones.
Aproximación
Analitico
0.000499

Método de diferencias finitas 0.000498

Dado el siguiente problema de valor inicial


y’’(x)=p(x)y’(x)+ q(x)y(x)+ r(x), a≤ x≤ b, y(a)= α, y(b)= β  0.000497

Las aproximaciones para y(x) son los valores de w, los


B(T)

0.000496
cuales se obtienen resolviendo la siguiente ecuación
matricial: 0.000495

Aw=b
Donde 0.000494

-0.010 -0.005 0.000 0.005 0.010


z(m)

La anterior gráfica fue posible gracias al desarrollo del


método de diferencias finitas usando un programa (en
anexo) en el lenguaje de programación C. El cual nos dio los
siguientes datos en pantalla
#include <stdlib.h>
#define PI 3.14159265
#define e 2.718281828
//Dentro del seno debe ir *pi/180
float pp(float t);
float qq(float t);
float rr(float t);
float f(float t);
int main(){
float t1,t2,h,alfa,beta,tc;
int n;
int N=10;
float R=0.1, d=0.1, I=0.11, uo=4*PI*pow(10,-7),B;
printf("\t\t\Bobinas de Helmholtz\n\n");
printf("Ingrese el extremo menor del intervalo,a :");scanf("%f",&t1);
printf("Ingrese el extremo mayor del intervalo,b :");scanf("%f",&t2);
printf("Ingrese el paso,h :");scanf("%f",&h);
alfa=(N*I*uo*pow(R,2)/2)*(1/pow(pow(R,2)+ pow(t1+d/2,2),1.5)+
1/pow(pow(R,2)+ pow(t1-d/2,2),1.5));
beta=(N*I*uo*pow(R,2)/2)*(1/pow(pow(R,2)+ pow(t2+d/2,2),1.5)+
1/pow(pow(R,2)+ pow(t2-d/2,2),1.5));
printf("B(%f)=%f\n",t1,alfa);
printf("B(%f)=%f",t2,beta);
printf("\n");
n=(t2-t1)/h - 1;
float x[n+1],p[n],q[n],r[n],t[n+1], a[n][n], b[n],error[n+1];
OBSERVACIONES x[0]=alfa;
x[n+1]=beta;
Una de las limitaciones que tuve al elaborar este proyecto t[0]=t1;
fue no saber graficar, los valores B(z) vs z ,directamente for (int i=1; i<=n; i++){
t[i]=t[i-1]+h;
desde el entorno de desarrollo integrado (IDE) Dev-C++. p[i]=pp(t[i]);
Usando Origin grafiqué digitando cada par de valores B(z)- q[i]=qq(t[i]);
z. r[i]=rr(t[i]);
}
//Asignando los valores a la matriz tridiagonal A
CONCLUSIONES for (int j=1; j<=n; j++){
a[j][j]=2+ pow(h,2)*q[j];
Se pudo obtener tanto analíticamente como numéricamente a[j+1][j]=-1-(h/2)*p[j+1];
el campo magnético en el eje axial de las bobinas de a[j][j+1]=-1+(h/2)*p[j];
Helmholtz. }
Los valores obtenidos son aceptables ya que el error //Asignando los valores a la matriz columna b
b[1]=(-1)*pow(h,2)*r[1]+ (1 + (h/2)*p[1])*x[0];
absoluto no supera el orden de 10-5. b[n]=(-1)*pow(h,2)*r[n]+ (1 + (h/2)*p[n])*x[n+1];
Para una mejor comparación del campo magnético for (int k=2; k<=n-1; k++){
aproximado y analítico se recomienda graficar para todo el b[k]=(-1)*pow(h,2)*r[k];
}
rango que permite la distancia entre las bobinas. Es decir, /*Mostrando la matriz A
que en nuestro caso la distancia entre las bobinas es d=0.1 m printf("Matriz A\n");
entonces deberíamos graficar desde -0.05 a 0.05 m for (int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
printf("%f\t\ ",a[i][j]);
AGRADECIMIENTOS }
printf("\n");
Este trabajo va dedicado a todos nuestros docentes que con }
mucha dedicación y esmero nos comparten sus //Mostrando la matriz b
conocimientos para el desarrollo de nuestra vida profesional. printf("\nMatriz b\n");
for (int i=1; i<=n; i++){
printf("%f\n",b[i]);
REFERENCIAS }*/
//Definiendo y asignando valores a la matriz L
float l[n][n];
[1]http://www.sc.ehu.es/sbweb/fisica3/magnetico/espira/espi a[1][0]=0;
ra.html for (int k=1; k<=n ; k++){
l[k][k-1]=a[k][k-1];
[2]https://www.academia.edu/23958376/Bobinas_de_Helmh }
oltz //Definiendo y asignando valores a la matriz U
[3]https://es.scribd.com/doc/62784747/BOBINAS-DE- float u[n][n];
HELMHOLTZ u[0][1]=0;
for (int m=1; m<=n ; m++){
[4]https://evflores.files.wordpress.com/2014/02/analisis- l[m][m]=a[m][m]-l[m][m-1]*u[m-1][m];
numerico-richard-l-burden-7ma.pdf u[m][m+1]=a[m][m+1]*pow(l[m][m],-1);
}
//Definiendo y asignando valores a la matriz Z
float z[n];
ANEXO z[0]=0;
Programa en lenguaje C, utilizando para este proyecto. for (int p=1; p<=n; p++){
z[p]=(b[p]-l[p][p-1]*z[p-1])*pow(l[p][p],-1);
/*Programa para el campo dado por las Bobinas de Helmholtz*/ }
#include <stdio.h> //Definiendo y asignando valores a la matriz X, que es la solucion
#include <math.h> x[n]=z[n];
for (int q=n; q>=2; q--){
x[q-1]=z[q-1]-u[q-1][q]*x[q];
}
//Obteniendo los valores analiticos Y(x)
float y[n+1];
float hc=t1;
for(int i=0; i<=n+1; i++){
y[i]=f(hc);
hc=hc+h;
}
//Obteniendo el error absoluto
for(int i=0; i<=n+1; i++){
error[i]=y[i]-x[i];
if(error[i]<0) error[i]=error[i]*(-1);
}
//Mostrando los valores en orden creciencte x1, x2, ..., xn
//Mostrando los valores finales de Y aproximado y Y analitico
printf("\nB(x) aproximado\t\t\B(x) analitico\t\tError Absoluto\n\n");
hc=t1;
for (int r=0; r<=n+1; r++){
printf("y(%f)=%f\t\y(%f)=%f\t\%f\n",hc,x[r],hc,y[r],error[r]);
hc=hc+h;
}
return 0;
}
float pp(float z){
return 0;
}
float qq(float z){
return 0;
}
float rr(float z){
int N=10;
float I=0.11, a=0.1, d=0.1, uo=4*PI*pow(10,-7);
return (-3*N*uo*I*pow(a,2)/4)*((2-(z+d/2)*(pow(a,2)+
pow(z+d/2,2)))/pow((pow(a,2)+pow(z+d/2,2)),0.5)+ (2-(z-
d/2)*(pow(a,2)+ pow(z-d/2,2)))/pow((pow(a,2)+pow(z-d/2,2)),0.5));
}
float f(float z){
int N=10;
float I=0.11, a=0.1, d=0.1, uo=4*PI*pow(10,-7);
return ((N*uo*I*pow(a,2))/2)*(1/(pow(pow(a,2)+ pow(z+d/2,2),1.5))+
1/(pow(pow(a,2)+ pow(z-d/2,2),1.5)));
}

También podría gustarte