Save
This commit is contained in:
parent
37688201fe
commit
d25b3cb5d8
@ -68,7 +68,7 @@ AHH_Coil.cooling(I_grad, 22.5)
|
|||||||
|
|
||||||
#AHH_Coil.B_quick_plot(I_grad)
|
#AHH_Coil.B_quick_plot(I_grad)
|
||||||
#AHH_Coil.B_grad_quick_plot(I_grad)
|
#AHH_Coil.B_grad_quick_plot(I_grad)
|
||||||
AHH_Coil.plot_raster(raster_value= 11)
|
#AHH_Coil.plot_raster(raster_value= 11)
|
||||||
|
|
||||||
|
|
||||||
HH_Coil.cooling(4, 40)
|
HH_Coil.cooling(4, 40)
|
@ -65,3 +65,10 @@ AHH_Coil.max_gradient(I)
|
|||||||
|
|
||||||
HH_Coil.print_info()
|
HH_Coil.print_info()
|
||||||
AHH_Coil.print_info()
|
AHH_Coil.print_info()
|
||||||
|
|
||||||
|
|
||||||
|
print(f"inductivity AHH: {AHH_Coil.induct_perry()*2*1e3} mH" )
|
||||||
|
print(f"inductivity HH: {HH_Coil.induct_perry() * 2*1e3} mH" )
|
||||||
|
|
||||||
|
print(f"resistance AHH: {2*AHH_Coil.resistance(22)} Ω")
|
||||||
|
print(f"resistance HH: {2*HH_Coil.resistance(22)} Ω")
|
@ -1,3 +1,4 @@
|
|||||||
|
#%%
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import matplotlib
|
import matplotlib
|
||||||
@ -25,10 +26,21 @@ HH_Coil = BC.BCoil(HH=1, distance=79.968, radius=80.228, layers=8, windings=8, w
|
|||||||
AHH_Coil = BC.BCoil(HH=-1, distance=100.336, radius=85.016, layers=10, windings=10, wire_height=1.18,
|
AHH_Coil = BC.BCoil(HH=-1, distance=100.336, radius=85.016, layers=10, windings=10, wire_height=1.18,
|
||||||
wire_width=1.18, insulation_thickness=0.06, is_round=True,
|
wire_width=1.18, insulation_thickness=0.06, is_round=True,
|
||||||
winding_scheme=2)
|
winding_scheme=2)
|
||||||
|
#%%
|
||||||
|
AHH_Coil.print_basic_info()
|
||||||
|
I = 1
|
||||||
|
AHH_Coil.max_gradient(I)
|
||||||
|
HH_Coil.max_field(I)
|
||||||
|
|
||||||
|
|
||||||
|
# %%
|
||||||
|
HH_Coil.cooling(2, 30)
|
||||||
|
AHH_Coil.cooling(3.6,30)
|
||||||
HH_Coil.print_basic_info()
|
HH_Coil.print_basic_info()
|
||||||
AHH_Coil.print_basic_info()
|
AHH_Coil.print_basic_info()
|
||||||
|
|
||||||
|
AHH_Coil.plot_raster()
|
||||||
|
|
||||||
I = 0.75
|
I = 0.75
|
||||||
#HH_Coil.B_quick_plot(I)
|
#HH_Coil.B_quick_plot(I)
|
||||||
#HH_Coil.B_curv_quick_plot(I)
|
#HH_Coil.B_curv_quick_plot(I)
|
||||||
|
35
Coil_geometry_AHH/Optimum_distance.py
Normal file
35
Coil_geometry_AHH/Optimum_distance.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import numpy as np
|
||||||
|
import matplotlib
|
||||||
|
#matplotlib.use('Qt5Agg')
|
||||||
|
from src import coil_class as BC
|
||||||
|
HH_Coil = BC.BCoil(HH = 1, distance = 54, radius = 48, layers = 8, windings = 8, wire_height = 0.5,
|
||||||
|
wire_width = 0.5, insulation_thickness = (0.546-0.5)/2, is_round = True,
|
||||||
|
winding_scheme= 2)
|
||||||
|
|
||||||
|
HH_Coil.set_R_inner(45.6)
|
||||||
|
HH_Coil.set_d_min(2*24.075)
|
||||||
|
|
||||||
|
|
||||||
|
AHH_Coil = BC.BCoil(HH = -1, distance = 54, radius = 48, layers = HH_Coil.get_layers, windings=2 * HH_Coil.get_windings,
|
||||||
|
wire_height = 0.5, wire_width=0.5, insulation_thickness=(0.546-0.5)/2,
|
||||||
|
is_round = True, winding_scheme= 2)
|
||||||
|
|
||||||
|
AHH_Coil.set_R_inner(45.6)
|
||||||
|
AHH_Coil.set_d_min(HH_Coil.get_zmax()*2 * 1e3 + 4)
|
||||||
|
|
||||||
|
d = AHH_Coil.get_radius()
|
||||||
|
print(d)
|
||||||
|
AHH_Coil.set_d(d + 5)
|
||||||
|
|
||||||
|
z = np.linspace(-50,50,500)
|
||||||
|
I = 1
|
||||||
|
Bz, Bx = AHH_Coil.B_field(I,z,z)
|
||||||
|
Bz_grad = AHH_Coil.grad(Bz,z)
|
||||||
|
Bz_curv = AHH_Coil.grad(Bz_grad, z)
|
||||||
|
Bz_4 = BC.BCoil.grad(Bz_curv, z)
|
||||||
|
plt.plot(z,Bz)
|
||||||
|
plt.plot(z,Bz_grad)
|
||||||
|
plt.plot(z, Bz_curv)
|
||||||
|
plt.plot(z, Bz_4)
|
||||||
|
plt.show()
|
@ -9,10 +9,10 @@ HH_Coil = BC.BCoil(HH = 1, distance = 54, radius = 48, layers = 8, windings = 8,
|
|||||||
wire_width = 0.5, insulation_thickness = (0.546-0.5)/2, is_round = True,
|
wire_width = 0.5, insulation_thickness = (0.546-0.5)/2, is_round = True,
|
||||||
winding_scheme= 2)
|
winding_scheme= 2)
|
||||||
|
|
||||||
print(HH_Coil.get_insulation_thickness)
|
|
||||||
HH_Coil.set_R_inner(45.6)
|
HH_Coil.set_R_inner(45.6)
|
||||||
HH_Coil.set_d_min(2*24.075)
|
HH_Coil.set_d_min(2*24.075)
|
||||||
HH_Coil.print_info()
|
HH_Coil.print_info()
|
||||||
|
print(f"inductivity = {HH_Coil.induct_perry()*2} H")
|
||||||
|
|
||||||
AHH_Coil = BC.BCoil(HH = -1, distance = 54, radius = 48, layers = HH_Coil.get_layers, windings=2 * HH_Coil.get_windings,
|
AHH_Coil = BC.BCoil(HH = -1, distance = 54, radius = 48, layers = HH_Coil.get_layers, windings=2 * HH_Coil.get_windings,
|
||||||
wire_height = 0.5, wire_width=0.5, insulation_thickness=(0.546-0.5)/2,
|
wire_height = 0.5, wire_width=0.5, insulation_thickness=(0.546-0.5)/2,
|
||||||
@ -23,4 +23,33 @@ AHH_Coil.set_d_min(HH_Coil.get_zmax()*2 * 1e3 + 4)
|
|||||||
|
|
||||||
AHH_Coil.print_info()
|
AHH_Coil.print_info()
|
||||||
|
|
||||||
R = HH_Coil.resistance(25)
|
R = HH_Coil.resistance(25)
|
||||||
|
|
||||||
|
I = 5
|
||||||
|
AHH_Coil.cooling(I, 30)
|
||||||
|
|
||||||
|
AHH_Coil.max_gradient(I)
|
||||||
|
AHH_Coil.B_quick_plot(I)
|
||||||
|
|
||||||
|
|
||||||
|
HH_Coil.print_info()
|
||||||
|
AHH_Coil.print_info()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
print(f"inductivity AHH: {AHH_Coil.induct_perry()*2*1e3} mH" )
|
||||||
|
print(f"inductivity HH: {HH_Coil.induct_perry() * 2*1e3} mH" )
|
||||||
|
|
||||||
|
print(f"resistance AHH: {2*AHH_Coil.resistance(22)} Ω")
|
||||||
|
print(f"resistance HH: {2*HH_Coil.resistance(22)} Ω")
|
||||||
|
|
||||||
|
# %%
|
||||||
|
I = 1.3
|
||||||
|
AHH_Coil.cooling(I,22)
|
||||||
|
AHH_Coil.max_gradient(I)
|
||||||
|
|
||||||
|
I_HH = 1.4
|
||||||
|
HH_Coil.cooling(I,1.2)
|
||||||
|
HH_Coil.max_field(I)
|
||||||
|
|
||||||
|
113
FINAL_Coil/Final_Field_quality.py
Normal file
113
FINAL_Coil/Final_Field_quality.py
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
Created on Mon Aug 23 17:40:37 2021
|
||||||
|
|
||||||
|
@author: Joschka
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import numpy as np
|
||||||
|
#from src import B_field_calculation as bf
|
||||||
|
|
||||||
|
from src import coil_class as BC
|
||||||
|
|
||||||
|
#from IPython import get_ipython
|
||||||
|
#get_ipython().run_line_magic('matplotlib', 'qt')
|
||||||
|
#get_ipython().run_line_magic('matplotlib', 'inline')
|
||||||
|
|
||||||
|
#set up axis
|
||||||
|
x = np.linspace(-15, 15, 30001)
|
||||||
|
z = np.linspace(-15, 15, 30001)
|
||||||
|
|
||||||
|
|
||||||
|
# New coil
|
||||||
|
Wire_1 = [0.5, 0.568]
|
||||||
|
#Wire_1 = [0.45, 0.514]
|
||||||
|
#I_current = 0.94
|
||||||
|
HH_Coil = BC.BCoil(HH = 1, distance = 54, radius = 48, layers = 8, windings = 8, wire_height = 0.5,
|
||||||
|
wire_width = 0.5, insulation_thickness = (0.546-0.5)/2, is_round = True,
|
||||||
|
winding_scheme= 2)
|
||||||
|
|
||||||
|
HH_Coil.set_R_inner(45.6)
|
||||||
|
HH_Coil.set_d_min(2*24.075)
|
||||||
|
HH_Coil.print_info()
|
||||||
|
R = HH_Coil.resistance(22.5)
|
||||||
|
|
||||||
|
print(f"U = {1 * R}")
|
||||||
|
|
||||||
|
I_current = 64 / HH_Coil.get_N() * 1.25
|
||||||
|
|
||||||
|
# 0.4 to get from +-30300
|
||||||
|
HH_Coil.print_info()
|
||||||
|
|
||||||
|
#Bz, Bx = HH_Coil.B_field(I_current, x, z, raster = 7)
|
||||||
|
|
||||||
|
|
||||||
|
Bz, B_x_tot = HH_Coil.B_tot_along_axis(I_current, x, z, raster = 7)
|
||||||
|
|
||||||
|
Bz_curv = BC.BCoil.curv(Bz, z)
|
||||||
|
#HH_Coil.cooling(I_current,28)
|
||||||
|
|
||||||
|
print(f"Bz(0) = {Bz[15000]} G")
|
||||||
|
print(f"B_z_curvature(0) = {Bz_curv[15000]:.10f} G/cm^2")
|
||||||
|
|
||||||
|
|
||||||
|
#print(f"Bz(1 μm) = {Bz[15001]}")
|
||||||
|
#print(f"Bz(1 mm) = {Bz[16000]}")
|
||||||
|
|
||||||
|
print(f"Diff B +/- 1 μm: {Bz[15001] - Bz[15000]}, relative: {(Bz[15001] - Bz[15000])/Bz[15000]}")
|
||||||
|
|
||||||
|
print(f"Diff B +/- 0.5 mm: {Bz[15500] - Bz[15000]}, relative: {(Bz[15500] - Bz[15000])/Bz[15000]}")
|
||||||
|
|
||||||
|
print(f"Diff B +/- 1 mm: {Bz[16000] - Bz[15000]}, relative: {(Bz[16000] - Bz[15000])/Bz[15000]}")
|
||||||
|
|
||||||
|
#print(f"Diff B +/- 15 mm: {Bz[30000] - Bz[15000]}, relative: {(Bz[30000] - Bz[15000])/Bz[15000]}")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
plt.figure(300)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Field plot
|
||||||
|
##########################
|
||||||
|
plt.subplot(2,1,1)
|
||||||
|
plt.plot(z,Bz,linestyle = "solid", label = r"$Bz along z-axis")
|
||||||
|
plt.plot(z,B_tot_z, linestyle = "dashed", label = "New B_tot along z-axis")
|
||||||
|
#plt.plot(x,B_tot_x, label = "B_tot along x-axis")
|
||||||
|
#plt.plot(z,B_z_comp,linestyle = "solid", label = r"$B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A, 4 x 4")
|
||||||
|
|
||||||
|
#plt.plot(z,B_tot,linestyle = "solid", label = r"$B_{z,1} + B_{z,2}$")
|
||||||
|
#plt.xlim(-0.01,0.01)
|
||||||
|
plt.title("B-field" )
|
||||||
|
|
||||||
|
plt.ylabel(r"$Bz$ [G]")
|
||||||
|
plt.xlabel("z-axis [mm]")
|
||||||
|
plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
|
||||||
|
|
||||||
|
plt.subplot(2,1,2)
|
||||||
|
plt.plot(z,Bz_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{ref}$, d = 44 mm, R = 44 mm")
|
||||||
|
#plt.plot(z,B_z_comp_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A")
|
||||||
|
|
||||||
|
#plt.plot(z,B_tot_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1} + B_{z,2}$")
|
||||||
|
|
||||||
|
plt.ylabel(r"$\nabla_z^2 Bz [G/cm^2]$")
|
||||||
|
plt.xlabel("z-axis [mm]")#plt.xlim(-10,10)
|
||||||
|
plt.title("Curvature of B-field")
|
||||||
|
plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
|
||||||
|
|
||||||
|
#plt.savefig("output/first_compensation_idea.png")
|
||||||
|
|
||||||
|
plt.show()
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
AHH ############################################################################
|
||||||
|
###############################################################################
|
||||||
|
###############################################################################
|
||||||
|
"""
|
@ -4,11 +4,11 @@ import matplotlib as mpl
|
|||||||
from src import coil_class as BC
|
from src import coil_class as BC
|
||||||
|
|
||||||
|
|
||||||
RF_Coil = BC.BCoil(HH = 1, distance = 54, radius = 38.4, layers = 3, windings = 1, wire_height = 0.5,
|
RF_Coil = BC.BCoil(HH = 1, distance = 54, radius = 38.4, layers = 1, windings = 1, wire_height = 0.5,
|
||||||
wire_width = 0.5, insulation_thickness = (0.546-0.5)/2, is_round = True,
|
wire_width = 0.5, insulation_thickness = (0.546-0.5)/2, is_round = True,
|
||||||
winding_scheme= 2)
|
winding_scheme= 2)
|
||||||
|
|
||||||
R = RF_Coil.resistance(22.5)*2
|
R = RF_Coil.resistance(22.5)
|
||||||
|
|
||||||
# R = 10
|
# R = 10
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ from src import physical_constants as cs
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
||||||
mu = 9.9* cs.mu_B
|
mu = 9.9* cs.mu_B/8
|
||||||
|
|
||||||
Grad_Bz = cs.m_Dy_164 * 9.81/(8*mu)
|
Grad_Bz = cs.m_Dy_164 * 9.81/(8*mu)
|
||||||
|
|
||||||
@ -16,13 +16,15 @@ print("For levitation:")
|
|||||||
print(f"dBz/dz = {Grad_Bz*1e4*1e-2:.4f} G/cm")
|
print(f"dBz/dz = {Grad_Bz*1e4*1e-2:.4f} G/cm")
|
||||||
print("")
|
print("")
|
||||||
|
|
||||||
T = 10e-6
|
T = 1e-6
|
||||||
sigma = np.sqrt(cs.k_B*T/cs.m_Dy_164)
|
dt = 10e-3
|
||||||
dz = 2*sigma * 10e-3
|
sigma = np.sqrt(cs.k_B*T/cs.m_Dy_164) * dt
|
||||||
print(sigma*10e-3)
|
|
||||||
|
dz = 2 * sigma
|
||||||
|
print(f"cloud size: {sigma*1e3:.3f} mm")
|
||||||
|
|
||||||
#dz = 250e-6
|
#dz = 250e-6
|
||||||
dt = 10e-3
|
|
||||||
|
|
||||||
Grad_Bz = 2 * dz * cs.m_Dy_164/(dt**2 * mu)
|
Grad_Bz = 2 * dz * cs.m_Dy_164/(dt**2 * mu)
|
||||||
|
|
||||||
@ -32,12 +34,26 @@ print("For Stern-Gerlach separation:")
|
|||||||
print(f"dBz/dz = {Grad_Bz*1e4*1e-2:.4f} G/cm")
|
print(f"dBz/dz = {Grad_Bz*1e4*1e-2:.4f} G/cm")
|
||||||
print(" ")
|
print(" ")
|
||||||
|
|
||||||
|
def cloud_pos(mF, dt = 10e-3):
|
||||||
|
a = mF*mu*Grad_Bz/cs.m_Dy_164 - 9.81
|
||||||
|
s = 0.5 * a *dt**2
|
||||||
|
return s
|
||||||
|
a8 = -8*mu*Grad_Bz/cs.m_Dy_164 - 9.81
|
||||||
|
a8_neg = 8*mu*Grad_Bz/cs.m_Dy_164 - 9.81
|
||||||
|
a7 = -7*mu*Grad_Bz/cs.m_Dy_164 - 9.81
|
||||||
|
s8 = 0.5 * a8 * dt**2
|
||||||
|
s8_neg = 0.5 * a8_neg * dt**2
|
||||||
|
s7 = 0.5 * a7 * dt**2
|
||||||
|
|
||||||
a = 8*mu*2.67*1e-2/cs.m_Dy_164 + 9.81
|
for mF in np.arange(-8,9,1):
|
||||||
s = 0.5 * a * dt**2
|
print(f"for mF = {mF}: pos = {cloud_pos(mF) * 1e3} mm")
|
||||||
print(s)
|
|
||||||
|
|
||||||
print(0.5*9.81*dt**2)
|
|
||||||
|
|
||||||
print((2.8778-2.8775)/2.8778)
|
print(f"Total fall for m8 for acceleration due to magnetic field in same direction than gravity = {s8 * 1e3}mm")
|
||||||
print(16*dz)
|
print(f"Total lift for m8 for acceleration due to magnetic field in other direction than gravity = {s8_neg * 1e3}mm")
|
||||||
|
print(f"Fall without magnetic field = {-0.5 * 9.81 * dt**2 *1e3} mm")
|
||||||
|
|
||||||
|
|
||||||
|
print(f"s7 = {s7 * 1e3}mm")
|
||||||
|
print(f"diff = {(s8 - s7) * 1e3} mm")
|
||||||
|
|
||||||
|
@ -2,47 +2,50 @@ import numpy as np
|
|||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import src.coil_class as BC
|
import src.coil_class as BC
|
||||||
|
|
||||||
|
|
||||||
I_current = 1.25
|
I_current = 1.25
|
||||||
|
|
||||||
# scale = 1000 --> μm
|
# scale = 1000 --> μm
|
||||||
scale = 1000
|
scale = 1000
|
||||||
lim = 5
|
lim = 5
|
||||||
nr_points = (2 * lim) * scale + 1
|
nr_points = (2 * lim) * scale + 1
|
||||||
x = np.linspace(-lim,lim,nr_points)
|
x = np.linspace(-lim, lim, nr_points)
|
||||||
z = np.linspace(-lim,lim,nr_points)
|
z = np.linspace(-lim, lim, nr_points)
|
||||||
print(x)
|
print(x)
|
||||||
|
|
||||||
|
|
||||||
def mu_it(x_pos):
|
def mu_it(x_pos):
|
||||||
it = nr_points//2 + x_pos
|
it = nr_points // 2 + x_pos
|
||||||
return it
|
return it
|
||||||
|
|
||||||
|
|
||||||
print(x[mu_it(-60)])
|
print(x[mu_it(-60)])
|
||||||
|
|
||||||
#standard
|
# standard
|
||||||
C1 = BC.BCoil(HH = 1, distance = 54, radius = 48, layers = 8, windings = 8, wire_height = 0.5, wire_width = 0.5, insulation_thickness= 0.06, is_round = True, winding_scheme= True)
|
C1 = BC.BCoil(HH=1, distance=54, radius=48, layers=8, windings=8, wire_height=0.5, wire_width=0.5,
|
||||||
|
insulation_thickness=0.06, is_round=True, winding_scheme=True)
|
||||||
C1.set_R_outer(49.8)
|
C1.set_R_outer(49.8)
|
||||||
C1.set_d_min(49.8)
|
C1.set_d_min(49.8)
|
||||||
C1.print_info()
|
C1.print_info()
|
||||||
|
|
||||||
Bz, Bx = C1.B_tot_along_axis(I_current, x, z,raster = 2)
|
Bz, Bx = C1.B_tot_along_axis(I_current, x, z, raster=2)
|
||||||
|
|
||||||
# plt.figure(5)
|
# plt.figure(5)
|
||||||
# plt.plot(z,Bz)
|
# plt.plot(z,Bz)
|
||||||
# plt.plot(x,Bx, label = "B_tot along x-axis")
|
# plt.plot(x,Bx, label = "B_tot along x-axis")
|
||||||
# plt.show()
|
# plt.show()
|
||||||
#plt.close(5)
|
# plt.close(5)
|
||||||
|
|
||||||
|
|
||||||
#coil is ~ 500 μm thicker
|
# coil is ~ 500 μm thicker
|
||||||
shift_radius = 1#0.125
|
shift_radius = 1 # 0.125
|
||||||
C_shift = BC.BCoil(HH = 1, distance = 54, radius = 48, layers = 8, windings = 8, wire_height = 0.5, wire_width = 0.5, insulation_thickness= 0.06, is_round = True, winding_scheme= True)
|
C_shift = BC.BCoil(HH=1, distance=54, radius=48, layers=8, windings=8, wire_height=0.5, wire_width=0.5,
|
||||||
|
insulation_thickness=0.06, is_round=True, winding_scheme=True)
|
||||||
C_shift.set_R_outer(49.8 + shift_radius)
|
C_shift.set_R_outer(49.8 + shift_radius)
|
||||||
C_shift.set_d_min(49.8)
|
C_shift.set_d_min(49.8)
|
||||||
|
|
||||||
#shift_radius = 0.125
|
# shift_radius = 0.125
|
||||||
|
|
||||||
Bz2, By = C_shift.B_tot_along_axis(I_current+0.00082, x, z,raster = 2)
|
Bz2, By = C_shift.B_tot_along_axis(I_current + 0.00082, x, z, raster=2)
|
||||||
|
|
||||||
shift_int = int(shift_radius * scale - 1)
|
shift_int = int(shift_radius * scale - 1)
|
||||||
print(shift_int)
|
print(shift_int)
|
||||||
@ -50,26 +53,25 @@ By_shift = By[shift_int:]
|
|||||||
y_shift = x[:-shift_int]
|
y_shift = x[:-shift_int]
|
||||||
print(By_shift)
|
print(By_shift)
|
||||||
print(y_shift)
|
print(y_shift)
|
||||||
B_sum = (By_shift + Bx[:-shift_int])/2
|
B_sum = (By_shift + Bx[:-shift_int]) / 2
|
||||||
# shift By shift with shift radius
|
# shift By shift with shift radius
|
||||||
|
|
||||||
plt.figure(6)
|
plt.figure(6)
|
||||||
#plt.plot(z,Bz)
|
# plt.plot(z,Bz)
|
||||||
plt.plot(x,Bx, label = "B_tot along x-axis")
|
plt.plot(x, Bx, label="B_tot along x-axis")
|
||||||
plt.plot(y_shift,By_shift, label = "Shiftet tot B")
|
plt.plot(y_shift, By_shift, label="Shiftet tot B")
|
||||||
plt.plot(y_shift,B_sum, label = "B_sum")
|
plt.plot(y_shift, B_sum, label="B_sum")
|
||||||
plt.legend()
|
plt.legend()
|
||||||
plt.show()
|
plt.show()
|
||||||
#plt.close(5)
|
# plt.close(5)
|
||||||
|
|
||||||
it = mu_it(int(-shift_radius * 1e3 // 2))
|
it = mu_it(int(-shift_radius * 1e3 // 2))
|
||||||
#it = μm_it(-60)
|
# it = μm_it(-60)
|
||||||
print(it)
|
print(it)
|
||||||
zero = mu_it(0)
|
zero = mu_it(0)
|
||||||
print(y_shift[it])
|
print(y_shift[it])
|
||||||
print(y_shift[zero])
|
print(y_shift[zero])
|
||||||
|
|
||||||
tot_diff = B_sum[it]-B_sum[zero]
|
tot_diff = B_sum[it] - B_sum[zero]
|
||||||
|
|
||||||
print(f"diff {y_shift[it]} μm --> 0: {tot_diff} G, relative = {tot_diff/B_sum[it]}")
|
|
||||||
|
|
||||||
|
print(f"diff {y_shift[it]} μm --> 0: {tot_diff} G, relative = {tot_diff / B_sum[it]}")
|
||||||
|
@ -123,6 +123,10 @@ class BCoil:
|
|||||||
R_inner *= 1e-3
|
R_inner *= 1e-3
|
||||||
self.radius = R_inner + self.get_coil_width() / 2
|
self.radius = R_inner + self.get_coil_width() / 2
|
||||||
|
|
||||||
|
def set_d(self, d):
|
||||||
|
d *= 1e-3
|
||||||
|
self.distance = d
|
||||||
|
|
||||||
def set_d_min(self, d_min):
|
def set_d_min(self, d_min):
|
||||||
d_min *= 1e-3
|
d_min *= 1e-3
|
||||||
self.distance = d_min + self.get_coil_height()
|
self.distance = d_min + self.get_coil_height()
|
||||||
@ -467,6 +471,7 @@ class BCoil:
|
|||||||
# print(f"time = {end - start} s")
|
# print(f"time = {end - start} s")
|
||||||
return B_z, B_x
|
return B_z, B_x
|
||||||
|
|
||||||
|
|
||||||
def max_field(self, I_current, raster = 7):
|
def max_field(self, I_current, raster = 7):
|
||||||
B_z_0 = 0
|
B_z_0 = 0
|
||||||
calc_raster = self.full_raster(raster)
|
calc_raster = self.full_raster(raster)
|
||||||
@ -489,6 +494,38 @@ class BCoil:
|
|||||||
print(f" Max Field = {B_z_0:.2f} G")
|
print(f" Max Field = {B_z_0:.2f} G")
|
||||||
return B_z_0
|
return B_z_0
|
||||||
|
|
||||||
|
def max_field_one_coil(self, I_current, raster = 7):
|
||||||
|
"""
|
||||||
|
Returns and prints max (z-) field in Gauss at center of one coil of configuration pair if second one is not powered
|
||||||
|
Args:
|
||||||
|
I_current: Current in [A]
|
||||||
|
raster: rastering value for each wire (increasing increases accuracy), 7 is fine for most cases
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Max B-field at center position of coil
|
||||||
|
|
||||||
|
"""
|
||||||
|
B_z_0 = 0
|
||||||
|
calc_raster = self.full_raster(raster)
|
||||||
|
|
||||||
|
if self.get_N() != len(calc_raster):
|
||||||
|
log.error("N is not equal length of raster")
|
||||||
|
|
||||||
|
rastering_value = len(calc_raster[0])
|
||||||
|
|
||||||
|
I_current /= rastering_value # divide current into smaller currents for mapping the whole wire
|
||||||
|
|
||||||
|
for wire in range(0, self.get_N()):
|
||||||
|
for ii in range(0, rastering_value):
|
||||||
|
# extract position information out of raster
|
||||||
|
z_pos = calc_raster[wire, ii, 0]
|
||||||
|
r_pos = calc_raster[wire, ii, 1]
|
||||||
|
|
||||||
|
B_z_0 += BCoil.__B_z_loop(I_current, r_pos, z_pos, 0, z_pos)
|
||||||
|
|
||||||
|
print(f" Max Field = {B_z_0:.2f} G")
|
||||||
|
return B_z_0
|
||||||
|
|
||||||
def max_gradient(self, i_current, raster = 7):
|
def max_gradient(self, i_current, raster = 7):
|
||||||
x, z = BCoil.make_axis(0.5, 1000)
|
x, z = BCoil.make_axis(0.5, 1000)
|
||||||
Bz, Bx = self.B_field(i_current, x, z, raster = raster)
|
Bz, Bx = self.B_field(i_current, x, z, raster = raster)
|
||||||
|
Loading…
Reference in New Issue
Block a user