From: Frank on 20 Jun 2010 23:53 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.
|
Pages: 1 Prev: Loading Image to MatLAB GUI Next: Help needed in understanding MATLAB's remark |