24小时热门版块排行榜    

查看: 3329  |  回复: 2

mia1129

银虫 (小有名气)

[求助] 求助龙格库塔法解激光器调Q速率方程

在欧攀的《高等光学仿真(MATLAB)版》——光波导、激光中,有关于被动调Q的matlab解法。
附上程序
%被动调Q速率方程数值求解
clc
clear
close all

T0 = 0.7;
R = 0.8;
Rp = 2e28;

y0 = [1;0;0];
tspan=[0 0.05];
tic
[t,y] = ode23('rate_eq',tspan,y0,[],Rp,T0,R);
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})');
% T(t)=T0 * (t - floor(t*freqQ)/freqQ<tQ)
subplot(3,1,3);
plot(t,y(:,3));
xlabel('时间(s)');
ylabel('基态粒子数密度(m^{-3})');

%%%%%%%%%%%%%%%%%%%%%%%
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)];

请问如何将这段程序改为声光调Q适用的?书作者回复:
1. 声光调Q属于主动调Q,与本书中介绍的是被动调Q是有所差异的,不过也可以用 MATLAB 来求解。
关键在于声开关透过率函数要写对,比如说声光开光的重复频率是 freqQ,打开时长是 tQ,打开时的透过率为T0,关闭时的透过率为0,则在时刻 t 的声开关透过率函数可以写成:
  T(t)=T0 * (t - floor(t*freqQ)/freqQ<tQ)
将该函数带入激光器的调Q速率方程,编写好 MATLAB 中的常微分方程组,然后给定初值调用 ode45()求解
实在基础太差,连改哪里都不知道。请高手帮忙,多谢!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyanb

新虫 (初入文坛)

2楼2016-03-31 20:58:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

魔爱阎

铜虫 (初入文坛)

请问楼主问题解决了吗?
3楼2018-03-22 15:04:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 mia1129 的主题更新
信息提示
请填处理意见