📄 soldes.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% soldes.m - solenoid design program that uses the data
% provided by soldata.m & calls magckt2.m for
% calculation of flux linkages-current at each
% specified value of air gap position.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
soldata,
I=input(' Current for Force Study = ');
% Approximate flux density checks
flx=Bmax*pi*d^2/4; % Plunger for specified Bmax
A=[A1 A2 A3 A4 A5 A6 A7 A8 A9 A10]; mA=length(A);
figure(1);
for i=1:mA; Bck(i)=flx/A(i); end
plot([1:mA],Bck,'p',[0 mA],[Bmax Bmax]); grid;
ylabel('Flux density, T'); xlabel('Member no.');
X1=(Bmax+min(Bck))/2; X2=0.9*X1;
text(1,X1,'Consider dimension adjustment if flux density');
text(1,X2,'of any member varies significantly from Bmax.');
% Weight, size & current density estimates
J=N*I/((db-dc)/2*lc)/39.37^2/0.65; % 65% copper fill
WTFe=pi*df^2*le+pi*(df^2-db^2)/4*lc+pi*d^2/4*1.1*lc;
WTFe=WTFe*0.283*39.37^3;
WTCu=0.75*pi*(db^2-dc^2)/4*lc*0.322*39.37^3;
Ac=0.65*(db-dc)/2*lc/N*39.37^2;
Rc=1.025e-06*N*pi*(db+dc)*39.37/2/Ac;
Lc=4e-07*pi*N^2*pi/4*d^2/(0.125/39.37);
disp(' '); disp( ' WEIGHT, SIZE & COIL CHARACTERISTIC ESTIMATES');
disp(' '); disp([' Core Weight(lbs) = ' num2str(WTFe)]);
disp(' '); disp([' Coil Weight(lbs) = ' num2str(WTCu)]);
disp(' '); disp([' Frame OD(in) = ' num2str(df*39.37)]);
disp(' '); disp([' Frame length(in) = ' num2str(lf*39.37)]);
disp(' '); disp([' Conductor area(sq in) = ' num2str(Ac)]);
disp(' '); disp([' Current Density(Apsi) = ' num2str(J)]);
disp(' '); disp([' Resistance(Ohm,150 C) = ' num2str(Rc)]);
disp(' '); disp([' Inductance(H,1/8") = ' num2str(Lc)]);
disp(' ');
% Generate a set of flux-current plots for air gap lengths
% specified by x. Enter dimensions in inches.
x=[1e-12 0.1 0.2 0.3 0.4 0.5 1.0]/39.37; m=length(x);
figure(2);
for i=1:m
LamI=magckt2(x(i)); n=length(LamI);
plot(LamI(2,1:n),LamI(1,1:n)/N); grid on; hold on
xlabel('Coil current, A'); ylabel('Flux, Wb');
title('Cylindrical plunger solenoid');
end
% Force study for specified current I
for i=1:m
% Generate pair of flux linkage - current plots
del=x(i)/100; LamI=magckt2(x(i)-del); n=length(LamI);
Lam1(1:n)=LamI(1,1:n); I1(1:n)=LamI(2,1:n);
LamI=magckt2(x(i)+del);
Lam2(1:n)=LamI(1,1:n); I2(1:n)=LamI(2,1:n);
if (I>max(I1)) | (I>max(I2));
disp(' ');disp('INVALID CURRENT');
end
Wf1=0; Wf2=0;
for j=2:n; % Calculate force
if (I1(j)>I) | (I2(j)>I)
Wf1=Wf1+(interp1(I1,Lam1,I)+Lam1(j-1))/2*(I-I1(j-1));
Wf2=Wf2+(interp1(I2,Lam2,I)+Lam2(j-1))/2*(I-I2(j-1));
break
else
Wf1=Wf1+(Lam1(j)+Lam1(j-1))/2*(I1(j)-I1(j-1));
Wf2=Wf2+(Lam2(j)+Lam2(j-1))/2*(I2(j)-I2(j-1));
end
end
Fd(i)=(Wf1-Wf2)/2/del;
end
figure(3); plot(x*39.37,Fd*0.2248); grid
title('Force vs. displacement');
xlabel('Displacement, in'); ylabel('Force, lb');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -