被动调Q耦合速率方程组数值Matlab仿真

一、问题综述

参考各种文献以及实验条件,得到微晶片激光器各物理量系数的典型取值列于表5.1,其中n1和n2分别是Nd3+:YAG和Cr4+:YAG的折射率。在MATLAB中编程求解该微晶片激光器对应的速率方程组,并作出光子数密度、反转粒子数密度以及基态粒子数密度随时间变化线。

被动调Q耦合速率方程组数值Matlab仿真_第1张图片

二、问题分析

对于描述连续抽运下的Q脉冲序列建立过程的耦合方程组,进行数值仿真,就可以得到不同参量下被调动Q脉冲输出的精确结果;在Matlab中调用常微分方程组初值求解函ode45(),将表中各参数值带入考虑饱和吸收体激发态吸收的连续抽运、被动调Q速率方程组,进行数值计算。

三、Mtalab数值计算

I.被调Qswitch.m主函数

clc
clear
close all
 
T0=0.7;    %可饱和吸体初始透过率
R=0.8;     %输出镜反射率
Rp=2e28;   %抽运速率
 
y0=[1;0;0];   %设定初值
tspan=[0 0.05];  %设定计算时间范围
tic
[t,y] = ode45('rate_eq',tspan,y0,[],Rp,T0,R);  
  %解耦合速率方程组rate_eq
toc
y(:,1)=max(y(:,1),1);
 
figure
subplot(3,1,1);
plot(t,y(:,1));
xlabel('时间(s)');
ylabel('光子数密度 (m^{-3})');
 
subplot(3,1,2);
plot(t,y(:,2));
xlabel('时间(s)');
ylabel('反转离子数密度 (m^{-3})');
 
subplot(3,1,3);
plot(t,y(:,3));
xlabel('时间 (s)');
ylabel('基态粒子数密度 (m^{-3})');
 
figure  %将光子数密度和反转离子数密度随时间变化画于同一图中
[AX,H1,H2]=plotyy(t,y(:,1),t,y(:,2));
set(H2,'LineStyle','--')
xlabel('时间 (s)')
set(get(AX(1),'Ylabel'),'string','光子数密度 (m^{-3})')
set(get(AX(2),'Ylabel'),'string','反转粒子数密度 (m^{-3})')

%各种曲线共同仿真并确定波形及频率、脉冲宽度
y1=y(:,1);%去光子密度的数值,并赋给向量y1
sdy1=sign(round(diff(y1)));
sdy2=sign(round(diff(sdy1)));
pos=find(sdy2<0) + 1;%找到光子密度最大数值点
 
n=21;%用于计算的脉冲个数
N=50;%每个脉冲前后的数值点个数
%所选脉冲宽度、脉冲间隔,并将脉冲绘制在同一图形
figure
hold on
for i=2:n
    tp=[pos(i)-N:pos(i)+N]';
    dt=mean(diff(t(tp)));
    plot(-dt*N:dt:dt*N,y(tp,1))
    ymax(i)=y1(pos(i));
    pp=find(y1(tp)>=ymax(i)/2);
    pwidth(i)=t(pos(n)-N+pp(end))-t(pos(n)-N+pp(1));
    pspace(i)=t(pos(i+1))-t(pos(i));
end
frequency=1/mean(pspace(2:n));
width=mean(pwidth);

II.rate_eq.m函数

function Dy =rate_eq(t,y,flag,Rp,T0,R)
sigma=5.4e-23;  
sigma_gs=8.7e-23;
sigma_es=2.2e-23;
N_T=1.68e26;
tao_a=750e-6;
tao_gs=3e-6;
n1=1.82;
n2=1.80;
delta=0.02;
l=0.001;
ls=0.001;
gamma=1;
c=2.997963e8;
lc=n1*l+n2*ls;
 
tr=lc/c;%光子往返一周的时间
n0s= -log(T0)/(sigma_gs*ls);%饱和吸收粒子数密度
y(1)=max(y(1),1);%光子数密度的最小值
%被调用Q耦合方程组
Dy=[ y(1)*(2*sigma*y(2)*l-2*sigma_gs*y(3)*ls-2*sigma_es*...
                    (n0s-y(3))*ls-(log(1/R)+delta))/tr;
   Rp*(1-y(2)/N_T)-gamma*sigma*c*y(1)*y(2)-y(2)/tao_a;
   (n0s-y(3))/tao_gs-sigma_gs*c*y(1)*y(3)];

四、图形绘制与分析

I.光子数密度、反粒子数密度、基态粒子数仿真

a.各粒子分别在时域分布曲线

被动调Q耦合速率方程组数值Matlab仿真_第2张图片

b.各粒子具体图例分析

1)光子数密度每隔一段固定时间产生一个光脉冲:

被动调Q耦合速率方程组数值Matlab仿真_第3张图片

2)增益反粒子数每隔一段固定时间缓慢上升然后急剧下降,再缓慢上升:

被动调Q耦合速率方程组数值Matlab仿真_第4张图片

3)单峰放大显示,基态粒子数每隔一段时间急剧下降然后再急剧上升:

被动调Q耦合速率方程组数值Matlab仿真_第5张图片

II.光子数密度和增益反转粒子数密度时域分布共同仿真

a.整体反转粒子数密度与光子数密度随时间变换关系

被动调Q耦合速率方程组数值Matlab仿真_第6张图片

b.第四个单光子数脉冲与反转粒子随时间变换关系

被动调Q耦合速率方程组数值Matlab仿真_第7张图片

c.[分析]在被调Q过程中,每产生一个光脉冲,增益反粒子数密度急剧减小。

III.多个激光脉冲波形共同仿真

a.多激光脉冲复合仿真图

被动调Q耦合速率方程组数值Matlab仿真_第8张图片

b.复合波形的峰值及宽度显示

被动调Q耦合速率方程组数值Matlab仿真_第9张图片

[注]:多个激光波形大致轮廓贴近。

IV.运行得到脉冲频率及脉冲宽度的结果

被动调Q耦合速率方程组数值Matlab仿真_第10张图片

五、反思与总结

a.被动调Q主要是将表中各参数值带入考虑饱和吸收体激发态吸收的连续抽运、被动调Q速率方程组,再调用Matlab中常微分方程组初值求解函数ode45(),对被动调Q速率方程组进行数值计算,得到y:39401x3 double的矩阵,根据y(:,1),y(:,2),y(:,3)分别求得各粒子时间的曲线及对应关系。

b.最后对计算得到的第一列数组进行先微分、四舍五入,再取符号函数,进行两次;再循环21次处理求解频率、波宽及各激光复合曲线。

你可能感兴趣的:(matlab,开发语言,算法)