RP 系列 | 使用 RP RP Fiber Power 软件进行超短脉冲仿真

这些功能不仅限于光纤中的脉冲传播,还将介绍如何考虑各种其他光学元件。因此,如果您正在使用锁模体激光器或再生放大器,请确保同样可以将相同的软件应用于此。到目前为止,仅对于同步泵浦光学参量振荡器和放大器,该软件不可用。
对于打算使用 Matlab 或其他编程环境自己开发此类仿真的人来说,本文应该有用的。然而,挑战将是实现超短脉冲与光学组件相互作用的所有细节。对于某些元素而言,这非常简单,而对于其他元素(例如,光纤,甚至是有源纤维),这是相当复杂的事情。尽管这样做可能会学到很多东西,但是您肯定会花费很多时间。使用提供此类功能的软件,您可以专注于物理学和技术,并更快地获得所需的结果。本质上,问题是您是要开始大型学习活动还是要快速产生结果的其他需求。使用此类软件时,您还将学到很多有关物理的知识
概念
模拟RP Fiber Power 中超短脉冲传播的基本概念与我们早期产品 RP ProPulse 的概念不同。我们首先不介绍软件系统,即后来我们想通过其发送脉冲的跑道。相反,我们使用脚本语言的某些功能来定义或加载初始脉冲,然后再通过光学元件发送该脉冲。可以使用其他功能来检索“当前脉冲”的各种属性,即当前(在看到某些元素之后)的脉冲。
这种方法的优点是它最灵活。提到的函数可以在任何表达式中使用,并且我们可以利用这些表达式的强大控制结构:if-then 语句,while-do 循环,for 循环,repeat-until 等。您可以通过多种方式使用此类表达式,例如,进行各种初始化,也可以在生成任何图形图的过程中使用。事实证明,这种灵活性对于任何实际的研究或开发工作都是必不可少的。
示例:锁模光纤激光器
; Parameters: l_s := 1060 nm { center wavelength } T_range := 25 ps { width of temporal range } N_t := 2^10 { number of grid points } dt := T_range / N_t { temporal resolution } E0 := 10 nJ { initial pulse energy } tau0 := 1 ps { initial pulse duration } chirp0 := 0 GHz / ps { initial chirp } calc { evaluate the following composite expression } begin set_pulse_grid(T_range, N_t, l_s); { define the pulse grid } startpulse_G(E0, tau0, chirp0); { generate the start pulse } end
在某些时候,您必须定义所涉及的纤维。本质上,每个模型都定义一个用于连续波仿真的模型,此外,还为模型分配超短脉冲传播所需的一些属性:本质上是色散和非线性指数,在某些情况下,还需要更多有关受激拉曼散射的详细信息(此处不予考虑)。以下是线性谐振器中具有有源和无源光纤的模型的使用代码,其中不包括各种参数的定义:
calc { define the fibers } begin { active fiber: } set_device(1); set_fiber(L_active, 20, 'Yb'); add_ring(r_co, N_Yb); pump := addinputchannel(P_pump_in, l_p, 'I_p', 0, forward); signal_active_fw := addinputchannel(0, l_s, 'I_s', 0, forward); signal_active_bw := addinputchannel(0, l_s, 'I_s', 0, backward); set_GVD(GVD_af); set_n2(n2_f); { nonlinear index } finish_fiber(); { passive fiber: } set_device(2); set_fiber(L_passive, 5, '-'); signal_passive_fw := addinputchannel(0, l_s, 'I_s', 0, forward); signal_passive_bw := addinputchannel(0, l_s, 'I_s', 0, backward); set_GVD(GVD_pf); set_n2(n2_f); { nonlinear index } finish_fiber(); end;
DoResonatorRoundTrip() := { Simulate one resonator round-trip of the pulse. } begin global allow all; pp_multiply_expr_f('r_FBG%(f)'); { fiber Bragg grating as output coupler } pp_fiber(1, signal_active_fw); { active fiber } pp_fiber(2, signal_passive_fw); { passive fiber } pp_sat_abs(dR_S, tau_S, E_sat_S); { SESAM } pp_loss(loss_S); { loss in SESAM } pp_fiber(2, signal_passive_bw); { passive fiber } pp_fiber(1, signal_active_bw); { active fiber } pp_center(1); { center the pulse } calc_dyn(0, T_rt, T_rt); { dynamical simulation of gain recovery } end
请注意,我们的示例基于线性谐振器,在到达另一端(SESAM,可饱和吸收器)之后,我们一直回到初始位置。当然,我们函数中使用的各种参数必须在其他地方定义。
最后一个函数调用在一个往返时间内模拟光纤的泵送,以补充存储的能量。
此后,很容易模拟一些往返行程并在这些之后显示腔内脉冲的一些参数:
calcfor j := 1 to 1000 do
begin
DoResonatorRoundTrip();
store_pulse(j);
end
show "Energy: ", E_p():d3:"J"
show "Duration: ", tau_p():d3:"s"
show "Bandwidth: ", dl_p():d3:"m"
在这里,我们还存储了所有脉冲,以便以后可以调用它们进行其他计算和生成图表,还可以使用交互式脉冲显示窗口检查它们。
这里显示的简单方法实际上存在一个问题:通常需要进行大量往返操作,直到光纤的增益稳定在最终水平。本质上,存在弛豫振荡只有经过大量往返之后,这些信息才会消失。如果您想学习这些,那就很好了。但是,如果要快速找到稳定状态,则可以应用一些其他技巧:使用几行代码(此处未显示),您可以在每次往返过程中根据脉冲能量重新计算光纤的增益-只需好像增益可以立即做出响应。这样,您可以有效地抑制张弛振荡,并更快地获得最终结果。另一种可能性是人为地将增益饱和度大幅度提高(例如100),同时将有效脉冲重复频率降低相同因子。这将非常有效地加速弛豫振荡,从而极大地节省了计算时间。当然,
另一个问题是您可能不确定要达到稳定状态需要往返多少次。因此,您可能需要定义一个模拟往返的函数,直到基本的脉冲属性(能量,持续时间,带宽)不再实质改变为止:
"Variation of Pump Power" x: 400, 600 "pump power (mW)", @x y: 0, 20 frame ! for x := CS_x1 to CS_x2 step 20 do begin set_device(1); { active fiber } set_P_in(pump, x * mW); if FindSteadyState(0.01, 1000) then begin point(x + i * E_p() / nJ, "R"); { filled rectangle for pulse energy in nJ } point(x + i * tau_p() / ps, "t"); { open triangle for pulse duration in ps } end; end
其他情况
上面的示例向您展示了如何用较少的代码来实现相对复杂的仿真。以下是一些针对可能情况的示例:
考虑一个由种子激光器的连续脉冲序列馈送的放大器系统。同样,您可以模拟脉冲能量如何向稳态发展。您还可以研究,例如,如果您在脉冲之间有随机的时间间隔,或者只是缺少一些脉冲,或者是一系列脉冲串,或者泵浦功率或种子脉冲的特性发生波动等,那么它是如何波动的。
甲再生放大器工作使得一个有时注入种子脉冲,然后让它在演变一定数量往返,然后喷射它。在抽运放大器晶体一段时间后,可以执行下一个放大周期。在这里,可以轻松实现一种功能,该功能可以在给定数量的谐振器往返行程下模拟完整的放大周期。同样,可以使用一种函数来模拟这种放大循环,直到达到稳态为止。有些系统会出现分叉甚至混乱的情况,请参阅一些在线示例案例。
其他光学软件
-
pp_dispersion()用于应用色散 高达4阶 -
pp_multiply_expr_f()用于将脉冲的频域幅度乘以与频率相关的因子, 例如,用于施加任意色散(相移)或带通滤波器;可以在时域中完成类似 的操作,例如对于光调制器 -
pp_prism_pair()和pp_grating_pair()用于分别使用给定参数 (例如间距,每毫米的行数等)应用棱镜对或光栅对的色散。 -
pp_compress()用于自动优化的色散压缩器(最高4阶) -
pp_noise()用于添加一些随机噪声 -
pp_SPM()用于具有自相位调制的光学元件 -
pp_add_pulse()用于相干地添加脉冲,例如在干涉仪的模拟中或附加 脉冲模式锁定中
这些组件使您能够模拟所有常见类型的设置,以生成或操纵超短脉冲,仅(到目前为止)没有参数非线性增益。

工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP
