光刻机离轴照明衍射光学元件的结构设计
输入光束为高斯光束,算法用gs算法
具体指标包括:入射光束为直径1.5mm平面波,光强为高斯分布,波长193nm; DOE通光口径为1.5mm,目标平面与DOE所在平面的距离为175mm,目标平面光场分布形式为偶极照明,外半径10.5mm,内半径7 .5mm,极角45°,照明区域内要求光强均匀分布,光能利用率≥80%,光强不均匀性≤20%
最后得出来的图像包括下面这几个,还有相位结构的图
麻烦写代码的时候最好注释一下每句在干什么,谢谢!



光刻机离轴照明衍射光学元件的结构设计
输入光束为高斯光束,算法用gs算法
具体指标包括:入射光束为直径1.5mm平面波,光强为高斯分布,波长193nm; DOE通光口径为1.5mm,目标平面与DOE所在平面的距离为175mm,目标平面光场分布形式为偶极照明,外半径10.5mm,内半径7 .5mm,极角45°,照明区域内要求光强均匀分布,光能利用率≥80%,光强不均匀性≤20%
最后得出来的图像包括下面这几个,还有相位结构的图
麻烦写代码的时候最好注释一下每句在干什么,谢谢!



该回答引用ChatGPT GPT-4
电脑配置原因,无法循环太多次,你可用修改循环次数
运行结果

代码
clear;
clc;
% 初始化参数和变量
lambda = 193e-9; % 波长 (193 nm)
diameter = 1.5e-3; % 入射光束直径 (1.5 mm)
gaussian_intensity = 1; % 高斯光强
% DOE参数
DOE_aperture = 1.5e-3; % 通光口径 (1.5 mm)
% 目标平面参数
target_distance = 175e-3; % 目标平面与DOE所在平面的距离 (175 mm)
outer_radius = 10.5e-3; % 外半径 (10.5 mm)
inner_radius = 7.5e-3; % 内半径 (7.5 mm)
polar_angle = 45; % 极角 (45°)
% 算法参数
iterations = 1000; % GS算法迭代次数
tolerance = 1e-6; % 收敛容差
% 网格参数
N = 1024;
x = linspace(-diameter/2, diameter/2, N);
y = linspace(-diameter/2, diameter/2, N);
[X, Y] = meshgrid(x, y);
R = sqrt(X.^2 + Y.^2);
% 生成高斯光束
gaussian_beam = exp(-R.^2 / (diameter/2)^2) * gaussian_intensity;
% 生成目标平面光场分布
target_field = double(R >= inner_radius & R <= outer_radius & mod(atan2(Y, X), 2*pi) <= deg2rad(polar_angle));
target_field = target_field / sum(target_field(:));
% 初始化DOE的相位
DOE_phase = 2 * pi * rand(N, N);
% 初始化误差数组
error_array = zeros(iterations, 1);
% GS算法
for iter = 1:iterations
% 传播到目标平面
propagated_field = propagate(gaussian_beam .* exp(1i * DOE_phase), lambda, target_distance);
% 替换振幅
new_propagated_field = target_field .* exp(1i * angle(propagated_field));
% 反向传播
back_propagated_field = propagate(new_propagated_field, lambda, -target_distance);
% 更新DOE相位
DOE_phase = angle(back_propagated_field);
% 计算误差
nonzero_elements = target_field > 0;
error_array(iter) = mean(abs(target_field(nonzero_elements) - abs(propagated_field(nonzero_elements))).^2);
% 检查收敛
if iter > 1 && abs(error_array(iter) - error_array(iter - 1)) < tolerance
break;
end
end
% 可视化结果
figure;
subplot(1, 3, 1);
imagesc(x * 1e3, y * 1e3, gaussian_beam);
title('入射光束');
xlabel('x (mm)');
ylabel('y (mm)');
axis equal tight;
subplot(1, 3, 2);
imagesc(x * 1e3, y * 1e3, DOE_phase);
title('DOE 相位分布');
xlabel('x (mm)');
ylabel('y (mm)');
axis equal tight;
colormap(gca, 'jet');
colorbar;
subplot(1, 3, 3);
imagesc(x * 1e3, y * 1e3, abs(propagated_field));
title('目标平面光场分布');
xlabel('x (mm)');
ylabel('y (mm)');
axis equal tight;
% 计算性能指标
illumination_uniformity = max(target_field(:)) / min(target_field(:));
energy_efficiency = sum(target_field(:)) / sum(gaussian_beam(:)) * 100;
disp(['光能利用率: ', num2str(energy_efficiency), '%']);
disp(['光强不均匀性: ', num2str((illumination_uniformity - 1) * 100), '%']);
% 定义传播函数
function output_field = propagate(input_field, lambda, distance)
N = size(input_field, 1);
dx = 1.5e-3 / N;
fx = linspace(-1 / (2 * dx), 1 / (2 * dx) - 1 / N / dx, N);
[FX, FY] = meshgrid(fx, fx);
H = exp(-1i * 2 * pi * distance * sqrt(1 / lambda^2 - FX.^2 - FY.^2));
H(isnan(H)) = 0;
output_field = fftshift(ifft2(fft2(fftshift(input_field)) .* fftshift(H)));
end