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\n',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》