秦 华,韩克祯,类成新
(山东理工大学理学院,山东淄博255049)
现代光学设计软件广泛采用阻尼最小二乘法,但是这种方法设计出来的系统结构一般都是评价函数在结构变量空间的局部最优解。除此之外,这种设计过分依赖于原始结构,如果原始结构选择不合适,很有可能达不到优化设计的目的,这就要求设计者具有非常丰富的经验。鉴于此,科学家不断地寻求光学自动设计的新方法,以解决过分依赖于系统原始结构并实现全局寻优的问题,如文献[1]~[5]。这些方法在不同程度上或者实现了全局最优[1-4],或者不再依赖于系统原始结构[5],但这些算法或由于耗用时间随变量数量的增加而呈指数性增长,或由于随机抽样而容易得到一些无法实现的系统(如出现负边、负中心厚度等)等缺点,并没有在光学自动设计领域得到广泛应用。
粒子群优化算法(Particle Swarm Optimization,PSO)是基于群智能(Swarm Intelligence)的随机优化算法,已广泛应用于函数优化、模式识别、神经网络训练、模糊系统控制以及其他的应用领域。PSO在多维空间函数寻优、动态目标寻优等方面具有收敛速度快、解质量高、鲁棒性好等优点,特别适合工程应用[6-8]。文献[9]利用粒子群优化算法进行膜系设计,在相同设计条件下,可以得到比遗传算法更优的膜系结构;文献[10]用粒子群优化算法对二元相位取样光栅进行优化设计,实现了对多信道色散和色散斜率的同时补偿;文献[11]用改进的粒子群算法对光子晶体光纤的结构进行了成功优化;文献[12]使用粒子群优化算法对影响由掺铒光纤放大器(EDFA)和光纤拉曼放大器(FRA)构成的宽带混合放大器性能的参数进行了优化组合。
文献[13-14]首次将粒子群优化算法用于球面及非球面像差的自动校正,并对校正方法和结果进行了有益的探索性研究。本文在文献[13-14]的基础上进一步把粒子群算法引入到更多的像差自动校正和光学系统设计中,同时把任意位置的孔径光阑和渐晕系数等设计要素也引入到算法程序中。
自从粒子群算法诞生以来,该算法的各种变种以及该算法同其它优化算法的各种混合不断涌现,但是基本的内核并没有多大的变化。本文把文献[15]的算法引入到更加复杂的光学系统自动设计中,是一项有益的探索性工作。
考虑全局优化问题(P):
min{f(x)∶x∈Ω⊂RD},f∶Ω⊂RD→R1,
问题(P)的每个可能解称为一个粒子(particle),多个粒子集合成一个种群(swarm),种群中粒子的个数称为种群规模(size)。第i个粒子在D维空间的位置用向量Xi=(xi1,xi2,…,xiD)来表示,其速度用 vi=(υi1,υi2,…υiD)来表示。在搜索空间,每个粒子自身所经历的最佳位置记为Pi=(pi1,pi2,…piD),称为 Pbest。种群中所有粒子经历过的最佳位置用Gbest表示,粒子在每一代中的速度和位置通过如下两个公式计算[16]:
惯性权重w粒子保持运动惯性,有扩展搜索空间的趋势。w大则算法具有较强的全局搜索能力,w小则算法倾向于局部搜索。典型做法是采用线性递减惯性权重,将w初始值设为0.9并使其随进化代数的增加线性递减至0.1,以期使算法先采用全局搜索,使搜索空间快速收敛于某区域,然后采用局部的精细搜索。通常权重函数w由下式确定:
式中,wini和wend分别是初始惯性权重和进化至最大代数时的惯性权重;iter、itermax分别是当前进化代数和最大进化代数。
根据上述粒子群算法模型,将被优化的光学系统结构看作一个粒子,粒子的位置和速度根据某些条件随机初始化生成,粒子位置矢量维数和速度矢量维数N由系统结构参数变量决定。系统结构参数包括系统中每个球面半径或者非球面顶点半径r、系统中各镜面之间的距离d、透镜材料的折射率以及非球面方程中各高次项系数等。下面是粒子群算法实现光学自动设计的具体步骤。
(1)将粒子群位置和速度初始化
首先确定粒子位置范围,即位置的搜索范围,这个搜索范围要根据系统中透镜的形状大体设定,为了找到更好的解,也可以反复地修改这个搜索范围。其次确定粒子飞行速度的最大值vmax和最小值vmin。vmax不能太大,不能一次飞行就能从搜索范围的一端飞出搜索范围的另一端,vmax太大,还可能使得粒子飞过好的解;当然粒子的速度也不能太小,太小会导致粒子搜索速度太慢,或是被局部最优解所吸引,无法找到好的解。所以速度最大值和最小值要根据搜索范围确定。
(2)适应度函数Φ(fitness function)
光学设计中的光学评价函数(Merit Function,MF)Φ(Xi)=被用作粒子群算法中的适应度函数,式中ΔFi为系统实际像差与目标值的差,即实际的像差残量,qi是权重系数。系统实际像差包括光学系统的各种几何像差或波像差,也包括某些近轴光学的特性参数,如共轭距Lconj(物像平面间的距离)、像距l'、焦距f'、镜筒长TL(第一面到像面的距离)、系统总长OL(第一面到最后一面的距离)、玻璃总厚度最大值GLmax、全视场主光线在出瞳面上的投射高、出瞳距、最大离焦量等,甚至包括正透镜的边缘厚度和负透镜的中心厚度等。适应度函数提供了每个粒子及每一代粒子群的评价标准,依靠这个标准可以找出每一代及所有各代的最佳粒子。
(3)依据适应度函数的数学表达式,计算出群体中每一粒子的适应度值,找出每一粒子到目前为止搜寻过程中的个体最佳解Pbest和整体最佳解Gbest。
(4)依据式(1)与式(2)对每一粒子的速度和位置进行更新。之后再回到步骤(3),如此往复迭代,直到符合设定的中止条件为止。
选择三片镜作为应用粒子群算法校正像差的实例,其流程如第3部分所述。三片镜的光学特性参数如下:
物距:物平面位于无限远,L=∞,视场角:2ωmax=50°,光束孔径:H=6.25(入瞳上最大入射高hmax=6.25),孔径光阑:位于系统中第3面上,渐晕系数:K+=1,K-=-1,即没有渐晕。目标像距l'=44.8307。以上及后文中有关长度的物理量单位相同。
三片镜的大体形状为:第一片镜为双凸透镜,第二片为双凹透镜,第三片为凹凸透镜,孔径光阑在第一片和第二片之间,因此共有7个面。把第一个至第七个面的曲率半径r搜索范围分别设定在[15,50]、[-80,-50]、[inf,inf]、[-30,-10]、[15,50]、[-240,-180]、[-30,-10]。三片镜各镜面之间的距离d的搜索范围可以根据实际情况分别设定为[3,8]、[1,3]、[0.5,3]、[1,5]、[1,5]、[3,8],也可以根据数学计算设定厚度搜索范围,以保证正透镜的边缘厚度和负透镜的中心厚度不出现负数。玻璃材料一定,不作为变量参加像差校正。表1为设定的系统结构参数的搜索范围及所用玻璃材料的折射率。nD、nF和nC分别表示黄光、蓝光和红光的折射率。校正从t1hmax,…,至t5hmax5个入射点处的五个球差,这里 t1=1.0,t2=0.85,t3=0.707 1,t4=0.5,t5=0.3。像距(系统最后一面到理想像面的距离)作为广义的像差同5个球差一起进行优化。系统所要达到的像差目标值和公差如下:球差δL',目标值为0,公差为-0.1。像距的目标值为44.830 7,公差为 0。自变量 12 个:r1,r2,r4,r5,r6,r7,d1,d2,d3,d4,d5,d6,这 12 个自变量构成粒子位置矢量即,Xi=(x1,x1,…xN)=(r1,r2,r4,r5,r6,r7,d1,d2,d3,d4,d5,d6)。r3是平面孔径光阑,为固定值。每一个位置矢量的最大值与最小值之差作为粒子的最大速度,使粒子处在最大速度与负最大速度之间。
表1 三片镜系统结构参数的搜索范围Tab.1 Scopes for structural parameters of the three-lens system
对于一般寻优,种群中的粒子数在10~30即可,较为复杂的寻优,种群中的粒子数可以适当增加[17]。在大多数情况下,种群数越大,适应度值收敛的速度越快。
根据以上设定的粒子群位置和速度搜索范围,取进化代数500,学习因子c1=c2=2,在Intel(R)Core(TM)i5-2300 CPU 2.8GHz,4G 内存的联想PC上运行粒子群优化算法程序约2 min就会得到优化结果。表2记录了一次运行结果,得到了三片镜系统的r和d数值,表3记录了待优化目标球差和像距的优化后数值。从表3中所列出的数值可以看到,5个球差都已达到公差要求,像距与目标值像差仅为0.051 5。图1是表2数据的光路图,图中1表示孔径光阑,2表示入瞳(下同)。
图1 用PSO算法校正球差后的光路图(图中的数值表示相应的评价函数值)Fig.1 Optical path layout of the three-lens system after correcting spherical aberrations(with numbers indicating corresponding merit function values)
表2 校正球差后的三片镜系统结构参数Tab.2 Structural parameters of the three-lens system after correcting spherical aberrations
表3 校正球差后的三片镜系统的球差及像距Tab.3 Spherical aberrations and image distance of the three-lens system after correcting spherical aberrations
从图1中可以看到,此三片镜系统全视场的子午场曲很大。表4列出了全视场的D光子午场曲,表5列出了全视场的D光子午光线弥散范围。从这两个表可以看出,子午场曲和光线弥散范围都很大,都需要校正。为了说明应用PSO校正像差的灵活性和实用性,下面先把子午场曲加入到适应度函数中进行像差校正,然后再把子午光线弥散值加入到适应度函数中进行像差校正。
把 1.0ωmax视 场 的 ± 1.0hmax、± 0.85hmax、±0.707 1hmax、±0.5hmax、±0.3hmax处的子午场曲加入到适应度函数中,系统结构参数的搜索范围不变,代入程序中重新进行优化,得到一组优化结果,如表6所示。对比表6和表2的数据,可以发现数据变化较大,比如 r6从 -250变到-149.253 7等。这种变化所引起的像差变化是否满足设计要求呢?表7列出了此结构的球差和像距,表8和表9分别列出了此结构的子午场曲和子午光线弥散值。对比表8和表4可以看出,子午场曲缩小了10倍左右,优化效果明显,但是子午光线的弥散值依然很大,并且1.0hmax处的球差还变大了。当然这只是很多优化结果的一次记录,由于适应度函数中还要增加更多的像质评价量,没有必要在这里把优化的量优化到最好。图2(a)是这次优化结果的光路图,可以看出子午场曲变小了,但是子午光线弥散值较大。图2(b)是取了图2(a)中轴外光束的±1.0hmax子午光线对与主光线的光路位置情况,可以看出,子午光线对的场曲已经较小了,但是子午彗差还较大,这导致了子午光线弥散值较大。
表4 校正球差后1.0ωmax视场D光的子午场曲Tab.4 Meridional field curvatures of D light at 1.0ωmaxafter correcting spherical aberrations
表5 校正球差后1.0ωmax视场D光的子午光线弥散值Tab.5 Dispersion of meridional rays for D light at 1.0ωmaxafter correcting spherical aberrations
表6 校正了球差、子午场曲的三片镜系统结构参数Tab.6 Structural parameters of the three-lens system after correcting spherical aberrations and meridional field curvatures
图2 用PSO算法校正球差、子午场曲后的光路图Fig.2 Optical path layouts of the three-lens system after correcting spherical aberrations and meridional field curvatures
表7 校正球差、子午场曲后三片镜系统的球差及像距Tab.7 Spherical aberrations and image distance of the three-lens system after correcting spherical aberrations and meridional field curvatures
表8 校正球差、子午场曲后1.0ωmax视场D光的子午场曲Tab.8 Meridional field curvatures of D light at 1.0ωmaxafter correcting spherical aberrations and meridional field curvatures
表9 校正球差、子午场曲后1.0ωmax视场D光的子午光线弥散值Tab.9 Dispersion of meridional ray for D light at 1.0ωmaxafter correcting spherical aberrations and meridional field curvatures
下面把光线弥散范围加入到适应度函数中再进行像差校正。此时同时要校正的像差包括5个球差,最大视场的5个子午场曲,最大视场的10条子午光线的弥散范围,再加上1个广义像差像距,共21个像差需要校正,这21个像差按照公式Φ(Xi)=组成适应度函数,自变量还是以前的12个,代入到优化算法程序中,程序中的进化代数和学习因子不变,程序运行约2min后便可得到优化结果,结果不理想还可以重新运行程序,直到得到一个满意结果为止。表10记录了其中一次较好的优化结果,表11、12、13分别是此次结构优化后的球差、子午场曲和子午光线的弥散值,从这些像差数据看,无论球差、子午场曲还是子午光线弥散值都得到了很好的校正。当然由我们自编的光学设计软件还可以计算出子午及弧矢彗差、弧矢场曲、弧矢光线的弥散值、畸变以及像散等,由于需要表格太多,这里计算结果不一一列出。但是从计算结果看,除了弧矢场曲稍微大一些之外,其余像差都非常小。图3是校正了球差、子午场曲和子午光线弥散范围后的光路图,光路图追迹了0视场和1.0ωmax视场各11条光线的光路情况,可以看出,子午面光线像差校正较好。
图3 校正了球差、子午场曲和子午光线的弥散值后的光路图Fig.3 Optical path layouts of the three-lens system after correcting spherical aberrations,meridional field curvatures and the dispersion of meridional rays
表10 校正了球差、子午场曲和子午光线的弥散值的三片镜系统的结构参数Tab.10 Structural parameters of the three-lens system after correcting spherical aberrations,meridional field curvatures and the dispersion of meridional rays
表11 校正了球差、子午场曲和子午光线的弥散值后三片镜系统的球差及像距Tab.11 Spherical aberrations and image distances of the three-lens system after correcting spherical aberrations,meridional field curvatures and the dispersion of meridional rays
表12 校正了球差、子午场曲和子午光线的弥散值后1.0ωmax视场D光的子午场曲Tab.12 Meridional field curvatures of D light at 1.0ωmaxafter correcting spherical aberrations,meridional field curvatures and the dispersion of meridional rays
表13 校正了球差、子午场曲和子午光线的弥散值后1.0ωmax视场D光的子午光线弥散值Tab.13 Dispersion of meridional rays for D light at 1.0ωmaxafter correcting spherical aberrations,meridional field curvatures and the dispersion of meridional rays
利用粒子群算法设计出了球差、子午场曲、子午光线弥散值都很小的三片镜光学系统。此三片镜系统剩余球差的最大值在0.707 1hmax处为-0.079 4;剩余子午场曲最大值在 ±1.0hmax处为0.107 1;子午光线弥散值除 1.0hmax处为 0.121 7外,其余都在0.01数量级。
从三片镜系统的设计过程和设计结果可以看出,用粒子群算法进行光学自动设计是一种简单有效的方法,使用这种方法只需要知道光学系统中每个透镜的大体形状(如,正透镜还是负透镜、凹面还是凸面、孔径光阑位置及光束孔径、系统总长度、像距等)和所要用的玻璃材料就可以进行设计,克服了现有光学设计软件要求必须先有一个具体初始结构的限制。这种限制导致了设计人员找不到合适的初始结构就无法进入到下一个工作环节,大大浪费了时间和精力;这种限制还要求光学设计人员必须有足够的知识背景和丰富的设计经验,而PSO的引入基本上克服了这种限制。
利用粒子群算法进行光学系统设计可以得到一系列较好的结果,可以根据实际需要选择其中的一种作为最佳选择。用粒子群算法进行光学自动设计的面向对象应用程序开发将使光学系统设计变得更加简单和有趣。
[1] CHENG X M,WANG Y T,HAO Q.Global and local optimization for optical systems[J].Optik,2006,117(3):111-117.
[2] WANG Y J.Derivative free simulated annealing and deflecting function technique foe global optimization[J].J.Appl.Math.Coput.,2008,26(2):49-66.
[3] ISSHIKI M,SINCLAIR D C,KANEKO S.Lens design:global optimization of both performance and tolerance sensitivity[J].SPIE,2006,6342:63420N.
[4] 张丽琴,王涌天,郝群,等.逃逸函数算法及其在光学设计中的应用[J].光学技术,2000,26(5):432-434.ZHANG L Q,WANG Y T,HAO Q,et al..Global explorer algorithm and its application in lens design[J].Optical Technique,2000,26(5):432-434.(in Chinese)
[5] 张丽琴,王涌天,李林,等.基因算法在光学系统优化中的应用[J].光学学报,2002,22(1):74-78.ZHANG L Q,WANG Y T,LI L,et al..Genetic algorithm applied to automatic lens design[J].Acta Optica Sinica,2002,22(1):74-78.(in Chinese)
[6] SHI Y,EBERHART R C.Particle Swarm Optimization:development,applications and resources[C].In:Proc Congress on Evolutionary Computation 2001 NJ:Piscataway,IEEE Press,2001:81-86.
[7] 吕恒毅,刘杨,薛旭成.基于微粒群区域搜索和小波评价的差分式自动聚焦[J].中国光学,2011,4(3):283-292.LÜ H Y,LIU Y,XUE X CH.Difference auto-focusing based on particle swarm optimization searching and wavelet evaluation[J].Chinese Optics,2011,4(3):283-292.(in Chinese)
[8] 刘希佳,陈宇,王文生,等.小目标识别的小波阈值去噪方法[J].中国光学,2012,5(3):248-256.LIU X J,CHEN Y,WANG W SH,et al.De-noising algorithm of wavelet threshold for small target detection[J].Chinese Optics,2012,5(3):248-256.(in Chinese)
[9] 翟子羽,叶美盈.基于粒子群优化算法的膜系设计方法[J].光子学报,2011,40(9):1338-1341.ZHAI Z Y,YE M Y.A coating method based on particle swarm optimization[J].Acta Photonica Sinica,2011,40(9):1338-1341.(in Chinese)
[10] 谢军华,秦子雄,曾庆科,等.用粒子群优化算法设计光纤布拉格光栅[J].应用光学,2009,30(4):674-677.XIE J H,QIN Z X,ZENG Q K,et al.Design of f iber Bragg gratings using particle swarm optimization[J].J.Appl.Opt.,2009,30(4):674-677.(in Chinese)
[11] JIANG H M,XIE K,WANG Y F.C band single pump photonic crystal fiber Raman amplifier[J].Chinese Sci.Bull.,2009,54(13):1927-1931.
[12] MOWLA A,GRANPAYEH N.Optimum design of a hybrid erbium-doped fiber amplifier/fiber Raman amplifier using particle swarm optimization[J].Appl.Opt.,2009,48(5):979-984.
[13] QIN H.Aberration correction of a single aspheric lens with particle swarm algorithm[J].Optics Communications,2012,285(13-14):2996-3000.
[14] QIN H.Particle swarm optimization applied to automatic lens design[J].Optics Communications,2011,284(12):2763-2766.
[15] SHI Y,EBERHART R C.A modified particle swarm optimizer[C].IEEE International Conference of Evolutionary Computation,Anchorage,Alaska:Piscataway,May 1998:69-73.
[16] 王党社,张建科,徐钧琪.薄膜光学常数的粒子群算法[J].计算物理,2008,25(2):208-212.WANG D SH,ZHANG J K,XU J Q.Particle swarm algorithm for film optical constants[J].Chinese J.Computational Physics,2008,25(2):208-212.(in Chinese)
[17] ABRAHAM S,SANYAL S,SANGLIKAR M.Particle swarm optimisation based diophantine equation solver[J].International J.Bio-Inspired Computation,2010,2(2):100-114.