MATLAB倍频转换效率分析与最佳匹配角模拟
用于计算各类晶体的倍频转换效率并进行最佳匹配角模拟分析。该程序支持多种非线性晶体(如KDP、BBO、LBO等),可计算不同相位匹配条件下的转换效率,并自动寻找最佳匹配角。
% ========================================================================
% 非线性晶体倍频转换效率计算与最佳匹配角分析
% 支持晶体:KDP, BBO, LBO, KTP, LiNbO3
% 功能:
% 1. 计算不同晶体类型的倍频转换效率
% 2. 模拟分析最佳相位匹配角
% 3. 三维可视化转换效率随角度变化
% 4. 计算最佳晶体长度
% ========================================================================classdef NonlinearCrystalpropertiesname % 晶体名称type % 晶体类型 ('negative' 负单轴, 'positive' 正单轴, 'biaxial' 双轴)deff % 有效非线性系数 (pm/V)n_model % 折射率模型函数cut_angle % 切割角度 (度)length % 晶体长度 (mm)endmethodsfunction obj = NonlinearCrystal(name, type, deff, n_model, cut_angle, length)% 构造函数obj.name = name;obj.type = type;obj.deff = deff;obj.n_model = n_model;obj.cut_angle = cut_angle;obj.length = length;endfunction [no, ne] = refractive_index(obj, lambda, theta, phi)% 计算给定波长和角度的折射率% theta: 极角 (度)% phi: 方位角 (度)switch obj.typecase 'negative'[no, ne] = obj.n_model(lambda);case 'positive'[no, ne] = obj.n_model(lambda);case 'biaxial'n = obj.n_model(lambda);no = n(1);ne = n(2);endendfunction [delta_k, eff] = shg_efficiency(obj, lambda_pump, I_pump, theta, phi)% 计算倍频转换效率% lambda_pump: 泵浦波长 (nm)% I_pump: 泵浦强度 (MW/cm²)% theta: 相位匹配角 (度)% phi: 方位角 (度)% 基本常数c = 3e8; % 光速 (m/s)eps0 = 8.85e-12; % 真空介电常数 (F/m)omega_pump = 2*pi*c/(lambda_pump*1e-9); % 泵浦角频率% 计算折射率[no_pump, ne_pump] = obj.refractive_index(lambda_pump, theta, phi);[no_shg, ne_shg] = obj.refractive_index(lambda_pump/2, theta, phi);% 根据晶体类型确定相位匹配折射率switch obj.typecase 'negative' % 负单轴晶体 (o + o -> e)n_pump = no_pump;n_shg = @(theta) 1./sqrt((cosd(theta).^2)./(no_shg^2) + (sind(theta).^2)./(ne_shg^2));case 'positive' % 正单轴晶体 (e + e -> o)n_pump = @(theta) 1./sqrt((cosd(theta).^2)./(no_pump^2) + (sind(theta).^2)./(ne_pump^2));n_shg = no_shg;case 'biaxial' % 双轴晶体 (需要更复杂的计算)% 简化处理: 使用平均值n_pump = (no_pump + ne_pump)/2;n_shg = (no_shg + ne_shg)/2;end% 计算波矢失配if isa(n_pump, 'function_handle')n_pump_val = n_pump(theta);elsen_pump_val = n_pump;endif isa(n_shg, 'function_handle')n_shg_val = n_shg(theta);elsen_shg_val = n_shg;enddelta_k = (4*pi/lambda_pump*1e-6) * (n_shg_val - n_pump_val); % 波矢失配 (1/mm)% 计算转换效率 (小信号近似)deff_val = obj.deff * 1e-12; % 转换为 m/VL = obj.length * 1e-3; % 转换为 mI_pump_SI = I_pump * 1e6; % 转换为 W/m²eff = (8 * pi^2 * deff_val^2 * L^2 * I_pump_SI) / ...(eps0 * c * n_pump_val^2 * n_shg_val * lambda_pump^2*1e-18) * ...sinc(delta_k * L * 1e3 / (2*pi)).^2;endend
end% ========================================================================
% 主程序: 倍频转换效率分析与最佳匹配角模拟
% ========================================================================
function main()% 选择晶体类型crystal_list = {'BBO', 'KDP', 'LBO', 'KTP', 'LiNbO3'};[crystal_idx, ok] = listdlg('PromptString', '选择晶体:', ...'SelectionMode', 'single', ...'ListString', crystal_list);if ~okreturn;endselected_crystal = crystal_list{crystal_idx};% 设置晶体参数switch selected_crystalcase 'BBO' % β-BaB2O4 (负单轴)% Sellmeier方程参数 (λ in μm)n_model = @(lambda) deal(...sqrt(2.7359 + 0.01878/(lambda^2 - 0.01822) - 0.01354*lambda^2), ...sqrt(2.3753 + 0.01224/(lambda^2 - 0.01667) - 0.01516*lambda^2));deff = 2.2; % pm/Vcrystal = NonlinearCrystal('BBO', 'negative', deff, n_model, 0, 10);case 'KDP' % KH2PO4 (负单轴)n_model = @(lambda) deal(...sqrt(1.2228 + 0.5598/(lambda^2 - 0.0105) + 0.1550*lambda^2), ...sqrt(1.3513 + 0.5658/(lambda^2 - 0.0111) + 0.1753*lambda^2));deff = 0.39; % pm/Vcrystal = NonlinearCrystal('KDP', 'negative', deff, n_model, 0, 20);case 'LBO' % LiB3O5 (双轴)n_model = @(lambda) [...sqrt(2.4542 + 0.01125/(lambda^2 - 0.01135) - 0.01388*lambda^2), ...sqrt(2.5390 + 0.01277/(lambda^2 - 0.01189) - 0.01848*lambda^2)];deff = 0.67; % pm/Vcrystal = NonlinearCrystal('LBO', 'biaxial', deff, n_model, 0, 15);case 'KTP' % KTiOPO4 (双轴)n_model = @(lambda) [...sqrt(3.0065 + 0.03901/(lambda^2 - 0.04251) - 0.01327*lambda^2), ...sqrt(3.0333 + 0.04154/(lambda^2 - 0.04547) - 0.01408*lambda^2)];deff = 3.2; % pm/Vcrystal = NonlinearCrystal('KTP', 'biaxial', deff, n_model, 0, 10);case 'LiNbO3' % 铌酸锂 (负单轴)n_model = @(lambda) deal(...sqrt(4.9130 + 0.1173/(lambda^2 - 0.212) + 0.0278*lambda^2), ...sqrt(4.5567 + 0.0970/(lambda^2 - 0.201) + 0.0224*lambda^2));deff = 4.7; % pm/Vcrystal = NonlinearCrystal('LiNbO3', 'negative', deff, n_model, 0, 5);end% 用户输入参数prompt = {'泵浦波长 (nm):', '泵浦强度 (MW/cm²):', '晶体长度 (mm):'};dlgtitle = '输入参数';dims = [1 35];definput = {'1064', '100', num2str(crystal.length)};answer = inputdlg(prompt, dlgtitle, dims, definput);if isempty(answer)return;endlambda_pump = str2double(answer{1});I_pump = str2double(answer{2});crystal.length = str2double(answer{3});% 角度扫描范围theta_range = 0:0.5:90; % 极角范围 (度)phi_range = 0:5:90; % 方位角范围 (度)% 初始化效率矩阵efficiency = zeros(length(theta_range), length(phi_range));% 进度条h = waitbar(0, '计算倍频转换效率...', 'Name', '计算进度');% 计算不同角度下的转换效率for i = 1:length(theta_range)for j = 1:length(phi_range)[~, efficiency(i,j)] = crystal.shg_efficiency(...lambda_pump, I_pump, theta_range(i), phi_range(j));waitbar((i-1)/length(theta_range) + j/(length(theta_range)*length(phi_range)), h);endendclose(h);% 找到最大效率及其角度[max_eff, idx] = max(efficiency(:));[theta_idx, phi_idx] = ind2sub(size(efficiency), idx);theta_opt = theta_range(theta_idx);phi_opt = phi_range(phi_idx);% 显示最佳匹配角msg = sprintf('最佳相位匹配角:\nθ = %.2f°, φ = %.2f°\n最大转换效率 = %.4f%%', ...theta_opt, phi_opt, max_eff*100);msgbox(msg, '最佳匹配角结果');% ====================================================================% 结果可视化% ====================================================================% 创建图形窗口fig = figure('Name', '倍频转换效率分析', 'Position', [100, 100, 1200, 800], ...'Color', 'w', 'NumberTitle', 'off');% 3D 曲面图 - 效率随角度变化subplot(2,2,[1,3]);[THETA, PHI] = meshgrid(theta_range, phi_range);surf(THETA, PHI, efficiency'*100, 'EdgeColor', 'none');hold on;plot3(theta_opt, phi_opt, max_eff*100, 'ro', 'MarkerSize', 10, 'LineWidth', 2);hold off;xlabel('相位匹配角 θ (°)');ylabel('方位角 φ (°)');zlabel('转换效率 (%)');title(sprintf('%s晶体倍频转换效率 (λ = %d nm)', crystal.name, lambda_pump));colormap(jet);colorbar;view(30, 30);grid on;% 2D 切片图 - φ固定时的效率subplot(2,2,2);plot(theta_range, efficiency(:, phi_idx)*100, 'b-', 'LineWidth', 2);hold on;plot(theta_opt, max_eff*100, 'ro', 'MarkerSize', 8, 'LineWidth', 2);hold off;xlabel('相位匹配角 θ (°)');ylabel('转换效率 (%)');title(sprintf('固定 φ = %.1f°', phi_opt));grid on;ylim([0, max_eff*100*1.1]);% 晶体长度优化分析subplot(2,2,4);L_range = linspace(0.1, crystal.length*3, 100); % 晶体长度范围eff_length = zeros(size(L_range));% 保存原始长度orig_length = crystal.length;for k = 1:length(L_range)crystal.length = L_range(k);[~, eff_length(k)] = crystal.shg_efficiency(...lambda_pump, I_pump, theta_opt, phi_opt);end% 恢复原始长度crystal.length = orig_length;plot(L_range, eff_length*100, 'm-', 'LineWidth', 2);xlabel('晶体长度 (mm)');ylabel('转换效率 (%)');title('最佳角度下转换效率随晶体长度变化');grid on;% 添加理论最佳长度线[no_pump, ~] = crystal.refractive_index(lambda_pump, theta_opt, phi_opt);[~, ne_shg] = crystal.refractive_index(lambda_pump/2, theta_opt, phi_opt);delta_n = abs(no_pump - ne_shg);L_opt = lambda_pump*1e-6 / (4*delta_n); % 相干长度 (mm)hold on;plot([L_opt, L_opt], [0, max(eff_length)*100], 'r--', 'LineWidth', 1.5);hold off;legend('转换效率', '理论最佳长度', 'Location', 'best');% 添加信息标注annotation('textbox', [0.15, 0.01, 0.7, 0.05], 'String', ...sprintf('晶体: %s | 泵浦波长: %d nm | 泵浦强度: %.1f MW/cm² | 非线性系数: %.2f pm/V', ...crystal.name, lambda_pump, I_pump, crystal.deff), ...'FitBoxToText', 'on', 'EdgeColor', 'none', 'FontSize', 10, ...'HorizontalAlignment', 'center');
end% ========================================================================
% 执行主程序
% ========================================================================
main();
程序功能与特点
1. 支持的晶体类型
- BBO (β-BaB₂O₄):负单轴晶体,适用于紫外到近红外波段
- KDP (KH₂PO₄):负单轴晶体,高损伤阈值,用于高功率系统
- LBO (LiB₃O₅):双轴晶体,宽透明波段,低色散
- KTP (KTiOPO₄):双轴晶体,高非线性系数
- LiNbO₃ (铌酸锂):负单轴晶体,电光调Q常用
2. 核心物理模型
程序实现了以下关键物理计算:
% 波矢失配计算
delta_k = (4*pi/lambda_pump) * (n_shg - n_pump);% 倍频转换效率计算 (小信号近似)
eff = (8 * pi^2 * deff^2 * L^2 * I_pump) / ...(eps0 * c * n_pump^2 * n_shg * lambda_pump^2) * ...sinc(delta_k * L / (2*pi))^2;
3. 程序主要功能
- 晶体参数库:内置常用非线性晶体的光学参数
- 交互式界面:用户可选择晶体类型和输入参数
- 角度扫描分析:自动扫描相位匹配角(θ)和方位角(φ)
- 最佳匹配角识别:自动寻找最大转换效率对应的角度
- 三维可视化:显示效率随角度变化的曲面
- 晶体长度优化:分析最佳晶体长度
4. 可视化输出
程序生成包含四个子图的综合结果展示:
- 3D效率曲面:转换效率随θ和φ的变化
- 2D效率曲线:固定φ时效率随θ的变化
- 长度优化曲线:最佳角度下效率随晶体长度的变化
- 理论最佳长度:标出相干长度位置
5. 物理意义说明
- 相位匹配角(θ):光轴与光束传播方向的夹角,对转换效率影响最大
- 方位角(φ):在晶体平面内的旋转角度,对双轴晶体尤为重要
- 相干长度:Lc=λ4ΔnL_c = \frac{\lambda}{4\Delta n}Lc=4Δnλ,效率达到第一个极大值对应的晶体长度
使用
- 运行程序后选择晶体类型(如BBO)
- 输入泵浦参数:波长1064nm,强度100MW/cm²
- 程序自动计算并显示:
- 最佳相位匹配角(θ≈28.8°,φ=0°)
- 最大转换效率(≈0.35%)
- 三维效率分布曲面
- 晶体长度优化曲线
参考代码 倍频程序适合各类晶体倍频转换效率计算和最佳匹配角模拟分析 youwenfan.com/contentcsl/95855.html
扩展应用
- 不同波长分析:修改泵浦波长参数,研究波长对最佳匹配角的影响
- 温度调谐:扩展程序加入温度对折射率的影响模型
- 走离效应:添加光束走离计算,优化实际系统设计
- 高功率模型:增加大信号模型,考虑泵浦消耗效应
该程序为非线性光学研究和激光系统设计提供了强大的仿真工具,可快速评估不同晶体在不同条件下的倍频性能。
