激光器设计系列软件
RP Fiber Power:计算各种特性的光纤模型,光纤放大器、光纤激光器、ASE光源、动态模拟、超短脉冲。
RP Resonator:谐振腔设计工具,适合设计各种类型的激光谐振腔。
RP ProPulse:模拟锁模激光器、光学参量振荡器和光纤设备中传播的超短脉冲。
RP Coating:设计各种光学多层结构功能强大的软件。
RP Q-switch:用于主动或被动Q开关固体激光器的计算等。
RP Fiber Calculator :计算具有径向对称折射率分布的光纤。
RP Fiber Power 软件界面
镱(Yb³⁺)掺杂光纤激光器的主要应用场景
工业加工
金属切割、焊接、增材制造(3D 打印)
高功率 1 µm 波段对铜、铝等金属吸收率适中,加工效率高、热影响区小。
激光打标 / 微加工
10-100 W 级脉冲或准连续输出,用于塑料、陶瓷、电子封装打标与钻孔。
国防与遥感
1 kW 级窄线宽单频光纤激光,光束质量 M²<1.2,可相干合成用于远程测距或定向能。
医疗
1.06-1.08 µm 波段可用于泌尿外科、牙科软组织切割;也可倍频到 515-540 nm 用于眼科。
科研与超快光源
Yb 振荡器 + 光纤 CPA 系统,产生 <200 fs、>mJ 级脉冲,作为 OPCPA、自由电子激光种子。
通信与传感
线宽 <1 kHz 的 Yb 单频激光器作分布式传感或频率基准;倍频后提供 515 nm 激光通信窗口。
示例:镱掺杂光纤激光器脚本
一、仿真结果
在给定参数下,2 m 长度即可将 0.5 W 泵浦转化为 0.31 W 信号,光-光效率 62 %,符合典型 Yb 光纤激光器效率(50-70 %)。
横向光强分布、功率演化曲线、泵浦-输出特性扫描、长度-输出扫描、径向截面图等图像。
仿真验证了 Yb 掺杂光纤在 1 µm 波段实现高增益、高功率输出的可行性,为后续高功率(>kW)放大或超快系统设计提供参考。
二、基本步骤
光纤基本参数
泵浦光参数
信号光参数
定义光纤模型
输出结果
定义光束传播参数
输出图像
基本光纤参数 >>
L_f := 2 ; 光纤长度(单位:米)
No_z_steps := 100 ; 沿光纤方向的计算步数
w_core := 3.45um ; 光纤纤芯半径(单位:微米)
N_Yb := 15e24 ; 掺镱(Yb)离子浓度(单位:离子数/立方米)
泵浦光参数 >>
l_p := 940 nm ; 泵浦光波长(单位:纳米)
dir_p := forward ; 泵浦光传输方向(正向)
P_pump_in := 500 mW ; 输入泵浦光功率(单位:毫瓦)
w_p := 3.8 um ; 泵浦光光斑半径(单位:微米)
I_p(r) := exp(-2 * (r / w_p)^2) ; 泵浦光横向强度分布(高斯分布)
loss_p := 0 ; 泵浦光传输损耗(单位:dB/m,0表示无损耗)
信号光参数 >>
l_s := 1040 nm ; 信号光波长(单位:纳米)
w_s := 4 um ; 信号光光斑半径(单位:微米)
I_s(r) := exp(-2 * (r / w_s)^2) ; 信号光横向强度分布(高斯分布)
loss_s := 0 ; 信号光传输损耗(单位:dB/m,0表示无损耗)
R_f := 0.04 ; 输出端反射率(4%)
定义光纤模型 >>
def_model() := ; 定义光纤模型的函数
begin global allow all; ; 允许全局变量访问
set_fiber(L_f, No_z_steps, 'Yb'); ; 设置光纤长度、步数和掺杂离子类型
add_ring(w_core, N_Yb); ; 在纤芯区域添加掺镱离子
pump := addinputchannel(P_pump_in, l_p, 'I_p', loss_p, dir_p); ; 添加泵浦光通道
signal_fw := addinputchannel(0, l_s, 'I_s', loss_s, forward); ; 添加正向信号光(初始功率为0)
signal_bw := addinputchannel(0, l_s, 'I_s', loss_s, backward); ; 添加反向信号光(初始功率为0)
set_R(signal_fw, 1, R_f); ; 设置正向信号光在输出端(位置1)的反射率
finish_fiber(); ; 完成光纤模型定义
end;calc def_model() ; 调用函数计算光纤模型
输出结果 >>
show "pump: ", P_out(pump):d3:"W" ; 显示输出泵浦光功率(单位:瓦)
show "output: ", P_out(signal_fw):d3:"W" ; 显示输出信号光功率(单位:瓦)
show "G_signal: ", sp_gain(signal_fw):d3:np:"dB" ; 显示信号光增益(单位:dB)
光束传播参数 >>
x_max := 20um ; 横向x方向计算范围(单位:微米)
N_x := 2^6 ; x方向网格点数(64点)
y_max := 20um ; 横向y方向计算范围(单位:微米)
N_y := 2^6 ; y方向网格点数(64点)
z_max := 10mm ; 纵向传播距离(单位:毫米)
dz := 10um ; 纵向步长(单位:微米)
N_z := Round(z_max / dz) ; 纵向步数(计算得出)
N_s := 1 ; 模式数量(单模)
calc begin lambda_bp := 1040nm; ; 光束传播模拟的波长(与信号光一致)
bp_set_grid(x_max, N_x, y_max, N_y, z_max, N_z, N_s); ; 设置计算网格
bp_define_channel(lambda_bp); ; 定义光束传播通道
bp_set_n('1.44+(if x^2+y^2<5e-6^2 then 0.1)'); ; 折射率分布(纤芯为1.54,包层为1.44)
bp_set_A0('exp(-((x^2+y^2)/4e-6^2))'); ; 初始光场振幅(高斯分布)
bp_set_interpol(0); ; 禁用插值(使用离散网格)
end
横向光强分布(光纤端面)>>
diagram 1, size_px = (500, 500), position = (100,100) ; 建立第1张图:500×500像素,放在(100,100)
"Transverse Intensity Profile", font = "Times New Roman", size = %12 ; 主标题
"subtitle 1", size = %6 ; 副标题1
"subtitle 2" ; 副标题2(可删)
x: -x_max/um, +x_max/um ; x轴范围:-20 μm 到 +20 μm"x (um)",
@x, font = "Times New Roman", size = %10 ; x轴标签
y: -y_max/um, +y_max/um ; y轴范围:-20 μm 到 +20 μm"y (um)",
@y, font = "Times New Roman", size = %6 ; y轴标签
csfontname = "Arial" ; 坐标刻度字体
csfontsize := 3 ; 坐标刻度字号
frame ; 给图加框
hx ; 画x方向网格
hy ; 画y方向网格
! I_max := bp_I_max(0) ; 计算z=0截面的最大光强(用于归一化)
! z := 0 ; 设定当前z位置为0(光纤输入端)
cp: color_I(bp_I(x*um, y*um, z) / I_max) ; 画二维彩色图:归一化光强
图1 光纤端面的二维光强分布彩色图
功率沿光纤长度的变化 >>
diagram 2, size = (400, 300), position = (100,500) ; 第2张图:400×300像素
"Powers vs. Position" ; 主标题
x: 0, L_f ; x轴:光纤长度 0 → 2 m
"position in fiber (m)", @x, font = "Times New Roman", size = %10 ; x轴标签
P_in_max := 0 ; 初始化最大输入功率
P_max := P_in_maxP_max := maxr(P_max, P(pump, L_f) ; 比较泵浦在z=L处的功率
P_max := maxr(P_max, P(signal_fw, L_f)) ; 正向信号在z=L
P_max := maxr(P_max, P(signal_bw, 0)) ; 反向信号在z=0
calc if P_max = 0 then P_max := 1 ; 防除零
y: 0, 1.2 * P_max ; 左侧y轴:功率 0 → 1.2×最大值
y2: 0, 100 ; 右侧y轴:0–100(百分比)
framelegpos 200, 0, font = "Times New Roman", size = %6 ; 图例位置
hx
hy;
以下5条曲线
f: P(pump, x), color = red, width = 8, "pump_fw (W)" ; 泵浦功率(红色实线)
f: P(signal_fw, x), color = blue, width = 8, "signal_fw (W)" ; 正向信号(蓝色实线)
f: P(signal_bw, x), color = blue, style=dotdashed, width = 8, "signal_bw (W)" ; 反向信号(蓝色点划线)
f: 100 * n(x, 1), yscale = 2, color = green, width = 8, style = fdashed, "excitation of level 1 (%, right scale)" ; 能级1粒子数占比(绿色虚线,右侧y轴)
f: 100 * n(x, 2), yscale = 2, color = black, width = 8, style = fdashed, "excitation of level 2 (%, right scale)" ; 能级2粒子数占比(黑色虚线,右侧y轴)
图2 各光功率(泵浦、信号)和能级反转沿光纤长度的变化
改变泵浦功率 → 输出功率扫描 >>
diagram 3, size_px= =(500,300): ; 第3张图
"Variation of Pump Power", font = "Times New Roman" ; 主标题
x: 0, 1 ; x轴:输入泵浦功率 0–1 W
"input power (W)", @x, font = "Times New Roman", size = %10
y: 0, 1 ; y轴:输出信号功率 0–1 W
"output power (W)", @y, font = "Times New Roman", size = %10
csfontname = "Times New Roman“
csfontsize := 6
frame
legpos 200, 0, font = "Times New Roman", size = %6
hx
hy;
两条曲线:用set_P_in 把泵浦功率从 0 变到1 W,步长5点
f: (set_P_in(pump, x); P_out(signal_fw)), step = 5, color = blue, width = 8, "signal_fw "
f: (set_P_in(pump, x); P_out(signal_bw)), step = 5, color = blue, style = dotdashed, width = 8, "signal_bw "
! set_P_in(pump, P_pump_in) ; 扫描结束后把泵浦功率恢复为原始值
图3 输出功率随泵浦功率的变化
改变光纤长度 → 输出功率扫描 >>
diagram 4, size_px = (500, 300): ; 第4张图
"Variation of Fiber Length", font = "Times New Roman" ; 主标题
x: 0, 10 ; x轴:光纤长度 0–10 m
"fiber length (m)", @x, font = "Times New Roman", size = %10
y: 0, 1 ; y轴:输出功率 0–1 W
csfontname = "Times New Roman“
csfontsize := 6
frame
legpos 200, 0, font = "Times New Roman", size = %6
hx
hy;
三条曲线:用set_L 把长度从0变到10 m,步长20点f: (set_L(x); P_out(pump)), step = 20, color = red, width = 8, "pump_fw"f: (set_L(x); P_out(signal_fw)), step = 20, color = blue, width = 8, "signal_fw"f: (set_L(x); P_out(signal_bw)), step = 20, color = green, style = dotdashed, width = 8, "signal_bw“
! set_L(L_f) ; 恢复原始光纤长度
图4 输出信号/泵浦功率随光纤长度的变化
光强和掺杂分布 >>
diagram 5, size_px = (500, 300): ; 第5张图
"Transverse Profiles", font = "Times New Roman" ; 主标题
max_N := N_Yb; ; 最大掺杂密度 = 15e24 cm⁻³
I_max := 0 ; 初始化最大光强
max_r := w_core; ; 最大径向坐标 = 纤芯半径3.45 μm
calc ; 预扫描找最大光强
for r := 0 to max_r step 0.5e-6 do
begin
I_max := maxr(I_max, I(pump, -1, r, 0)); ; 泵浦光
I_max := maxr(I_max, I(signal_bw, -1, r, 0)); ; 反向信号光
end;
x: 0, 1.2 * max_r / um ; x轴:径向坐标 0–1.2×纤芯半径
"radial position (μm)", @x, font = "Times New Roman", size = %10
y: 0, 1.2 * I_max * cm^2 ; 左侧y轴:光强 (W/cm²)
"intensity (W/cm^2)", @y, font = "Times New Roman", size = %10
y2: 0, 1.2 * max_N ; 右侧y轴:掺杂密度
"doping density", @y2, font = "Times New Roman", size = %10
frame
legpos 200, 600, font = "Times New Roman", size = %6
hx
hy
f: N_dop(1, x * um, 0), yscale = 2, color = gray, width = 8, maxconnect = 1, "N_dop (right scale)" ; 掺杂分布(灰色,右侧y轴)
f: I(pump, -1, x * um, 0) * cm^2, color = red, maxconnect=1, width = 8, "pump_fw", init p :=3, finish p :=0 ; 泵浦光强(红色)
f: I(signal_bw, -1, x * um, 0) * cm^2, color = blue, maxconnect=1, width = 8, "signal_bw", finish set_P_in(pump,P_pump_in) ; 反向信号光强(蓝色)
图5 光强分布和掺杂密度的径向截面图