艾尛尛秋艳C2
lenovo1873491
关注数: 1
粉丝数: 0
发帖数: 10
关注贴吧数: 3
请教 %% 给定 Pierce 参量 %% 运行行波管一维非线性计算(无切断) clc;clear; vc=2.998e08; n=32; % macro particle number % temp=1100; % Temperature of cathode(K) %============================================ freq=31e09; U0=13500; I0=0.204; rb=0.17e-3; CC=0.05227; bb=0.1832; dd=0.01504; qq=0.1892; Pin=0.05; % ipput power Fwin=sqrt(2*(1+CC*bb)^2/(CC*I0*U0)*Pin); tspan=[0:0.1:10]; % theta %============================================= [vec_classic,vec_correct]=U0tovec(U0); vec=vec_correct; % relativistic velocity %========================================== u0=linspace(-0*pi/2,4*pi/2-4*pi/2/n,n); % particle distribution % v_p=pvdistri(I0,freq,n,u0,temp); % u1=v_p(:,2)'; % du1=(v_p(:,1)'-mean(v_p(:,1)))/(vc); % vec=vec+mean(v_p(:,1))/vc; %========================================== y0(1:2:2*n-1)=u0; y0(2:2:2*n)=0; y0(2*n+1)=Fwin; y0(2*n+2)=-1i*y0(2*n+1)*(bb-1i*dd); %%%%%%%%%%%%%%%%%%%%%% % u0=linspace(-pi/2,3*pi/2,n); % du0=0; % y0(1:2:2*n-1)=u0; % y0(2:2:2*n)=du0; % y0(2*n+1)=Fwin; % y0(2*n+2)=-i*y0(2*n+1)*(bb-i*dd); %y0(2*n+2)=0 %===================================================================== [t,y]=ode45(@(t,y)TWT1_d(t,y,CC,bb,dd,qq,freq,vec,rb,u0,n),tspan,y0); %===================================================================== beta_e=2*pi*freq/(vec*vc); vec_ac=vec./(1+CC*y(:,2:2:2*n)); %电子的实际速度 vec_ac_mean=mean(vec_ac,2);%电子的平均速度 %[obsBeam,obsBeam2]=EBeam(vec,vec_ac,vec_ac_mean,I0,u0); %obsE=Ecircuit(t,y(:,1:2:2*n-1),y(:,2*n+1),U0,I0,CC,beta_e,u0); Pout=CC*I0*U0/(2)*(abs(y(:,end-1))).^2; %=================================================================== figure(1),hold on; for j=1:n plot(t,y(:,2*j-1)/pi,'r'); end figure(2),hold on; plot(t,abs(y(:,end-1))) figure(3),hold on; plot(t,angle(y(:,end-1))) figure(4),hold on; plot(t,vec_ac,'.r') plot(t, vec_ac_mean,'k') figure(5),hold on; %plot(t,10*log10(obsBeam),'r') %plot(t,obsBeam2,'k') %plot(t,10*log10(Pout), 'g') figure(6),hold on; [val,id]=max(abs(y(:,end-1))); plot(y(id,1:2:2*n-1)/pi,vec_ac(id,:),'or') figure(7),hold on; plot(t,20*log10(abs(y(:,end-1))/Fwin),'or') 麻烦各位看看这个能否在mathcad里面实现以及怎么实现
1
下一页