From: Frank on
Greetings,

I have currently been using Bio-Savart Law to plot the magnetic field for a given Z-distance from the X-Y plane. I now want to look at the Z-Penetration for a given (constant) Magnetic Field Intensity (|B|), and am having trouble finding a way to visualize this in Matlab. The following code sample has what I've done so far.

clear
%Variables
% X0(a, b, c) = Defined as point distance 'd' from the xy-plane located along x-axis
% Bx = magnitude of magnetic field due to a single coil line
% vector1 = vector representing a single coil line
% vector2 = straight line vector between coilpoint and X0
% vector3 = straight line vector between coilpoint2 and X0
% coilpoints = matrix of points describing initial points of coil geometry
% coilpoints2 = 2nd matrix of coil points (final points)
% costheta1&2 = cosines of initial and final points of
%Generate X0 matrix of points
x = -30:.1:30;
AllMag = zeros(length(x),15);
for Z = 1:15
niters = length(x);
X0 = zeros(niters, 3);
Bx = zeros(niters,1);
for K = 1 : niters
a = x(K);
b = 0;
c = Z;
X0(K, :) = [a b c];
end
% X0 = [0, 0, 15];
% niters = 1;
coilpoints = [-14.5, 19, 0; -10.5, 15,0; -14.5, 19, 0; -10.5, 15, 0; -1.5, 19, 0; -5.5, 15,0; -14.5, -14,0; -10.5, -19,0];%22, 19, 0; 18, 15,0; 22, 19, 0; 18, 15, 0; 2, 19, 0; 6, 15,0; 22, -14,0; 18, -19,0];
coilpoints2 = [-14.5, -14, 0; -10.5, -19,0 ; -1.5, 19,0 ; -5.5, 15, 0; -1.5, -19, 0; -5.5, -14, 0; -5.5, -14, 0; 1.5, -19, 0];%22, -14, 0; 18, -19,0 ; 2, 19,0 ; 6, 15, 0; 2, -19, 0; 6, -14, 0; 6, -14, 0; -2, -19, 0];
mu0 = 4*pi*10^-7;
iters = length(coilpoints);
Bx = 0;
% Bx = zeros(iters);
count = 0;
totalB = zeros(niters,1);
for K = 1:niters
for J = 1:iters
% costheta1 = ((coilpoints(J,1)-X1(K,1))^2+(coilpoints(J,2)-X1(K,2))^2+(coilpoints(J,3)-X1(K,3))^2)^(1/2)/(((coilpoints(J,1)-X0(K,1))^2+(coilpoints(J,2)-X0(K,2))^2+(coilpoints(J,3)-X0(K,3)))^2)^(1/2);
% costheta2 = ((coilpoints2(J,1)-X1(K,1))^2+(coilpoints2(J,2)-X1(K,2))^2+(coilpoints2(J,3)-X1(K,3))^2)^(1/2)/(((coilpoints2(J,1)-X0(K,1))^2+(coilpoints2(J,2)-X0(K,2))^2+(coilpoints2(J,3)-X0(K,3)))^2)^(1/2);
vector1 = coilpoints2(J,:) - coilpoints(J,:);
vector2 = X0(K,:) - coilpoints(J,:);
vector3 = X0(K,:) - coilpoints2(J,:);
costheta1 = dot(vector1,vector2)/(norm(vector1)*norm(vector2));
costheta2 = dot(-vector1,vector3)/(norm(vector1)*norm(vector3));
R = norm(cross(vector2,vector3)/norm(vector1));
Bcomp = mu0/(4*pi*R)*[costheta1+costheta2];
% Bx(J,1) = Bx(J,1) + Bcomp;
Bx = Bx +Bcomp;
count = count+1;
end
% totalB(K,1) = Bx(K,1);
totalB(K,1) = Bx/10^-2;
Bx = 0;
end
totalB;

totalMag = totalB + flipud(totalB);
count;
figure(1);
plot(x,totalMag, '.');
title('Magnetic field across X-axis');
xlabel('X Position (Meters)'); ylabel('|B-field| (Tesla)');
% legend('z = ');
hold on
end

I'd like to get the same format of graphs but ones that plot an Z value for a known B using the data I already have.
Thanks in advance for any help.