非球面棱镜

Aspheric Coefficients

  R k A4 A6 A8 A10 A12 A14 A16
S1 PLANO - - - - - - - -
S2 2.68415 -0.517612 -5.980307E-5 1.527613E-5 3.647708E-6 -1.381275E-7 4.485638E-8 - -

Aspheric Lens Equation

Aspheric Surface Structure

2. 2D Geometry Analysis

    

3. Equation

此处使用了非球面棱镜中最基本的面型之一(幂级数),对于非球面棱镜的球面方程,主要分为两个部分组成,前部分为基本的圆锥曲面部分,后部分一般为多项式部分(Polynomials-多项式方程: Power幂级数、Zernike多项式、Qcon多项式等), 基本形式如下所示:

  • Power Series

         

  • Zernike polynomials

       

  • Qcon polynomials

       

  • Q polynomials

        

    对于上述各类型的多项式部分,其随着非球面高度位置的变化情况如下:
Basic Parameter of Lens  
  •    MATERIAL: D-ZK3  
  •    REFRACTIVE INDEX: 1.583 ±0.002  
  •    DESIGN WAVELENGTH: 655 nm  
  •    CLEAR APERTURE: (S1) 3.38 mm  (S2) 4.80 mm  
  •    EFFECTIVE FOCAL LENGTH: 4.6 mm±1%  
  •    NUMERICAL APERTURE: 0.5  
  •    DIAMETER TOLERANCE: ±0.015 mm  
  •    CENTER THICKNESS TOLERANCE: ±0.020 mm  
  •    SURFACE QUALITY: 40-20 SCRATCH-DIG (INCLUDES ENTIRE BULK MATERIAL)  
  •    RMS WFE: ≤ DIFFRACTION LIMITED  
  •    COATING(S1&S2): BBAR Ravg<0.5% FROM 350-700 nm, 0 AOI  
Light Line Trace Simulation with MATLAB(基于MATLAB的光线追迹)
 1 clc;
 2 clear;
 3 
 4 % Here the Aspheric function parameter.
 5 R = 2.684150;
 6 k = -0.517612;
 7 A4 = -5.980307E-5;
 8 A6 = 1.527613E-5;
 9 A8 = 3.647708E-6; 
10 A10 = -1.381275E-7;
11 A12 = 4.485638E-8;
12 
13 Lens_Aspheric_hRange = 5.1; % This the Aspheric h Range.
14 
15 Slice = 100; % Data Slice number.
16 
17 y = linspace(0,Lens_Aspheric_hRange/2,Slice); % h direction linspace data slice.
18 z=y.^2./R./(1+sqrt(1-(1+k)*y.^2./R^2)) + A4*y.^4 + A6*y.^6 + A8*y.^8 + A10*y.^10 +A12*y.^12; % Caculate the z direction axis value.
19 plot(y,z)
20 axis equal
21 
22 syms Aspheric_Func(x)
23 Aspheric_Func(x) = x^2/R/(1+sqrt(1-(1+k)*x^2/R^2)) + A4*x^4 + A6*x^6 + A8*x^8 + A10*x^10 +A12*x^12; % Aspheric surface description function.
24 diff_Aspheric = diff(Aspheric_Func,x); % The Slope function of the Aspheric surface description function.
25 plot(y,Aspheric_Func(y))
26 hold on
27 
28 Lens_Square_thickness = 1.743; % Square Zone thickness value.
29 Lens_thickness = 3.135; % Totally Lens thickness value.
30 Lens_Aspheric_thickness = Lens_thickness - Lens_Square_thickness; % Aspheric zone thickness.
31 max(double(Aspheric_Func(y)));
32 
33 syms PLANO_Func(x)
34 PLANO_Func(x) = Lens_thickness; % First Seperate 
35 plot(y,PLANO_Func(y))
36 light_O = [0,4.41]; % 5.41 is the Focus position
37 plot(light_O(1),light_O(2),'*') % Plot the Laser Light Point O.
38 
39 light_line_S1_K = (light_O(2) - PLANO_Func(y))./(light_O(1) - y); % Draw the Laser Light line from Point to PLANO.
40 Line_YRange = linspace(light_O(2),Lens_thickness,Slice); % The YRange data slice.
41 Line_Step = 5; % Set the Light Line simulation number.
42 syms x
43 for i=1:Line_Step:Slice
44     Line_XRange = (Line_YRange - light_O(2)) / light_line_S1_K(i); % Calculate the XRange data.
45     % fprintf('%d
',i)
46     plot(Line_XRange,Line_YRange) % Draw the Light line.
47 end
48 % axis equal
49 Light_iU = pi/2 - abs(double(atan(light_line_S1_K))); % Calculate the First input light theta angle.
50 n1 = 1.0; % The Refractive index of the Air.
51 n2 = 1.583; % The Refractive index of the Lens with the material D-ZK3.
52 theta_out = asin(sin(Light_iU)*n1./n2); % Caculate the First output
53 light_line_S2_K = -cot(theta_out); % Caculate the Slope of the Output Light Line.
54 
55 cross_Point = zeros(2,Slice); % Create the Aspheric and Line Cross-Point Buff array.
56 syms Light_S2_Func(x)
57 for i=1:Line_Step:Slice
58     x_s = (Lens_thickness - light_O(2)) / light_line_S1_K(i); % Calculate the Start Point of the Light on PLANO.
59     Light_S2_Func(x) = (light_line_S2_K(i)*(x-x_s) + Lens_thickness); % Define the Light Line Func.
60     for xt = x_s:0.01:(x_s-Lens_thickness/light_line_S2_K(i)+0.02)
61         % temp = abs(Aspheric_Func(xt) - Light_S2_Func(xt))
62         if abs(Aspheric_Func(xt) - Light_S2_Func(xt)) < 0.1 % Calculate the Cross-Point Value.
63             cross_Point(:,i) = [xt,Aspheric_Func(xt)];
64             x_r = linspace(x_s,xt,100);
65             plot(x_r,Light_S2_Func(x_r)) % Draw the Light-Line Graph.
66             break
67         end
68     end
69 end
70 
71 light_line_S3_K_Reg = zeros(1,Slice); % Alloc a Buffer for Storage the Slope of the Output Light Line.
72 
73 for i=1:Line_Step:Slice
74     slope = diff_Aspheric(cross_Point(1,i)); % Calculate the Slope of the Aspheric surface.
75     % normal_alpha = atan(slope)+pi/2; % 法线角度(Units:rad)
76     Light_iU_S2 = atan(slope) - theta_out(i); % Calculate the input angle on the Aspheric surface.
77     Light_oU_S2 = asin(sin(Light_iU_S2)*n2./n1); % Calculate the output angle of the Aspheric surface.
78     light_line_S3_K_Reg(1,i) = tan(pi/2 - abs(Light_oU_S2) + atan(slope)); % Generate the Output Light line function.
79     y_res = linspace(cross_Point(2,i),-10);
80     x_res = (y_res - cross_Point(2,i)) / light_line_S3_K_Reg(1,i) + cross_Point(1,i);
81     plot(x_res,y_res) % Draw the Output Light Line.
82 end
83 axis equal
84 % plot(y,diff_Aspheric(y))

仿真追迹的结果如下:

如果需要仿真不同位置点光源的发散汇聚的情况,只需要修改 `light_O = [0,4.41];` 部分即可调整Laser激光的出射位置,从而对光线进行追迹仿真,需要升入考虑的是光线在透镜中时,与非球面部分的交点计算采用了数值点代入验算的方式,效率较低,后期还需要对该方程的零解进行分析求解。
注:
1. 从上述仿真结果可以看出,当光线在非球面棱镜的边缘位置时,光线追迹的结果法线出射光线明显与其他部分的光线有交叠,因此非球面棱镜有一定的工作范围,需要严格注意。
2. 一定需要注意的是,在推导非球面棱镜的曲面方程时,需要注意不是圆锥曲线的方程推导,而是专属的非球面曲线构成的。
3. 对于非对称的非球面方程以及平移不变方程等特殊的方程类型,请参考《Description_of_aspheric_surfaces》
转载请注明出处!感谢GISPALAB实验室的老师和同学们的帮助和支持~
原文地址:https://www.cnblogs.com/uestc-mm/p/15239708.html