Greetings,
I have currently been using BioSavart Law to plot the magnetic field for a given Zdistance from the XY plane. I now want to look at the ZPenetration 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 xyplane located along xaxis
% 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 Xaxis');
xlabel('X Position (Meters)'); ylabel('Bfield (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.
