level 2
艾尛尛秋艳C2
楼主
%% 给定 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里面实现以及怎么实现
2015年04月23日 05点04分
1
%% 运行行波管一维非线性计算(无切断)
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里面实现以及怎么实现
