Contents

Field strength and currents for PFRC coils

See also EllipsoidalSolenoid, ConcentricCoils, MagneticFieldCurrentLoop,

%--------------------------------------------------------------------------
% Copyright (c) 2016 Princeton Satellite Systems, Inc.
% All rights reserved.
%--------------------------------------------------------------------------

% Calculate radii assuming coils are smaller at the ends
z	= [-1.75 -1.25 -0.75 -0.25 0.25 0.75 1.25 1.75];
a	= EllipsoidalSolenoid( 0.4, 0.5, z );
fprintf(1,'Radii of coils (m): %g %g %g %g %g %g %g %g\n',a)

% Calculate currents to give a smooth interior field
bA = 6;
[b,i,zs] = ConcentricCoils( z, bA, a );
fprintf(1,'Field strength: %g T\n',bA)

% Plot the central field variation
Plot2D(zs,b,'z','Center Field Strength (T)','Central Field');
yy = axis;
hold on
plot((z'*[1 1])',(ones(8,1)*yy(3:4))','r--')
Radii of coils (m): 0.4 0.452769 0.484768 0.5 0.5 0.484768 0.452769 0.4
Field strength: 6 T

Field at the conductors

Use all of the coils EXCEPT the one you are checking, which will give an infinite result

% Field at the center - decreases with increasing radius
d = z; % SJT lost definition of d think maybe it was the same as z??
pCoil = [d;zeros(2,8)];
qCoil = repmat([1;0;0;0],1,8);
x     = [zeros(1,10);zeros(1,10);linspace(0,0.5,10)];
bCenter = MagneticFieldCurrentLoop( i, a, pCoil,qCoil,x )


% Field at a coil location due only to the other coils
bEdge = [];
kCoils = [1:3 5:8];
bEdge(:,1) = MagneticFieldCurrentLoop( i(kCoils), a(kCoils), [d(kCoils);zeros(2,7)],...
                                  repmat([1;0;0;0],1,7), [z(4);0;a(4)] );
kCoils = [1:2 4:8];
bEdge(:,2) = MagneticFieldCurrentLoop( i(kCoils), a(kCoils), [d(kCoils);zeros(2,7)],...
                                  repmat([1;0;0;0],1,7), [z(3);0;a(3)] );
kCoils = [1 3:8];
bEdge(:,3) = MagneticFieldCurrentLoop( i(kCoils), a(kCoils), [d(kCoils);zeros(2,7)],...
                                  repmat([1;0;0;0],1,7), [z(2);0;a(2)] );
kCoils = [2:8];
bEdge(:,4) = MagneticFieldCurrentLoop( i(kCoils), a(kCoils), [d(kCoils);zeros(2,7)],...
                                  repmat([1;0;0;0],1,7), [z(1);0;a(1)] );

% Self-field - assume uniform current and a cable radius r
r = 0.05; % assume 5 cm stack
bSelf = 4e-7*pi*i/2/pi/r

% total maximum fields
bWire = bEdge(1,:) + bSelf(1:4);
fprintf(1,'Field strength at wire inner edge: %g %g %g %g T\n',bWire)


%--------------------------------------
bCenter =
  Columns 1 through 6
       5.9268       5.9174       5.8856       5.8197       5.6958       5.4722
            0   8.9074e-34   1.8778e-33  -3.5148e-33   -3.563e-33  -4.8148e-33
            0   1.0408e-17   -9.541e-18  -5.2042e-18  -4.5103e-17   1.2143e-17
  Columns 7 through 10
       5.0858       4.4647       3.5814        2.533
  -6.6445e-33   8.0889e-33  -3.8519e-34  -9.2445e-33
  -8.6736e-17  -1.0061e-16  -7.4593e-17  -6.5919e-17
bSelf =
  Columns 1 through 6
       11.322       10.068       10.055       10.032       10.032       10.055
  Columns 7 through 8
       10.068       11.322
Field strength at wire inner edge: 12.7286 11.4437 11.3579 10.9837 T