时英智 高 梅 贾文红 阴广志 高兴宇 杜永华 郑丽芳
1(中国科学院上海应用物理研究所 上海 201800)
2(中国科学院大学 北京 100049)
3(中国科学院上海高等研究院 上海 201210)
4(Institute of Chemical&Engineering Sciences,A*STAR,Singapore 627833)
5(National Synchrotron Light Source II,Brookhaven National Lab,USA11973)
作为一种尖端的材料表征手段,同步辐射技术已经得到了各领域科研人员的广泛认可。然而同步辐射光束线机构庞大,结构复杂,为了给用户提供高品质的实验光斑,往往需要耗费大量的时间和人力对光束线进行调束优化。面对变化的光源点,工作人员需要凭借丰富的调束经验,对压弯机构、单色器等设备内的电机在其行程范围内一一进行调节,直到实验站样品处获得满足要求的光通量、光斑形状和光斑大小等[1]。整个调束过程通常需要若干小时,甚至更长,以致耽误用户宝贵的实验机时。目前上海光源(Shanghai Synchrotron Radiation Facility,SSRF)已有16条光束线站对用户开放[2],加上正在建设的二期工程,至2022年将有超过30条光束线站投入运行,其中插入件线站近22条。每年寒暑假shutdown后的重新开机、每两周一次的机器研究、线站插入件Gap调节等都会改变储存环内电子轨道,导致线站光源点出现变化,从而影响实验光斑品质。很多情况下这种变化无规律可循,从而难以快速地将光束线恢复到最优状态。如何能够快速地优化光束线,这是束线科学家们面对的一个严峻挑战。
光束线设备种类多,影响实验光斑品质的因素复杂,难以用数学公式进行建模,因此对光束线进行快速优化也是国际上各大实验室面临的一个难题。Roberto Pugliese等[3]基于模糊逻辑对光束线进行自动优化,但其对运行经验依赖性强,不能确保得到全局最优解;Hignette等[4]使用波前分析法作为优化策略,但该方法必须逐一调整光学元件,效率较低,且难以实现全局最优。直到2015年新加坡科技研究局的杜永华博士[5]提出使用遗传算法结合OMEA方法,实现了同步辐射光束线自动全局最优化。2017年他又提出了使用差分进化算法取代遗传算法,并成功应用到新加坡光源XAFCA线站的调束系统中[6]。
然而新加坡光源的成功经验无法直接移植和应用到上海光源中。上海光源和新加坡光源之间的一个重要差异是控制系统,上海光源是基于EPICS平台开发的,而新加坡光源是基于LabVIEW的。后者相对于前者比较高效,但是局限于单一束线,通用性差,如果移植到其它光束线,工作量比较大。而EPICS是上海光源通用的控制平台,开发基于EPICS的光束线调束优化软件,可以方便地移植到其它光束线,乃至其它基于EPICS的同步辐射光源。
本文在上海光源衍射线站(BL14B1)现有设备和软硬件基础上,开展了基于EPICS控制平台的同步辐射光束线智能调束系统的初步探索。基于搜索机制的差分进化算法非常适合应用在随机变化的光源点、难以用数学公式建模的光束线调束优化过程中。系统在BL14B1测试成功,并达到预期目标。
Storn和Price[7]于1995 年提出的差分进化算法(Differential Evolution,DE)是一种基于群体差异的启发式并行搜索方法,算法中种群的每一个个体对应一个多元函数的解向量,其进化流程与遗传等算法类似,包括变异、交叉、选择等操作。与其它进化算法相比,DE具有执行简单、收敛速度快、搜索性能好等优点,因此被认为是一种最高效的进化算法,经常用来解决约束优化问题[8],并广泛应用于数据挖掘、模式识别、数字滤波器设计、人工神经网络、电磁学等各个领域。
DE算法中每代种群均包含n个个体,每个个体可以用d维解向量表示,如式(1):
式中:n表示种群规模即每代种群的个体数量;g表示从初代种群(g=0)进化到当前种群的代数。
1.2.1 初代种群
初代种群的n个个体从给定的约束条件范围内随机选取。假设个体中第j个维度的上限值和下限值分别为和,初代种群第i个个体中的第j个维度初始值由式(2)产生:
其中:i={1,2,…,n},j={1,2,…,d},rand[0,1]表示在[0,1]的范围内取一个随机数。
DE中衡量个体好坏的标准称为适应度(Fitness)。若这一代中有符合要求的个体,则算法结束,输出结果;若没有符合要求的个体,则对种群进行差分变异、交叉、选择操作,再对它们的适应度进行评估,生成下一代种群。
1.2.2 差分变异算法
对第g代的个体Pi(g),应用式(3)生成变异个体Vi(g):
其中:Pn1(g),Pn2(g),Pn3(g)为从种群中随机选择的3个个体,n1≠n2≠n3≠i;F是缩放因子,个体的加减运算为个体中对应维度分别进行加减运算。
1.2.3 交叉算法
将变异个体Vi(g)与初始个体Pi(g)根据一定概率进行维度混合,生成试验个体Ui(g)。交叉过程可以表示为式(4):
其中:cr表示交叉概率;Vi,j(g)、Pi,j(g)、Ui,j(g)分别表示个体Vi(g)、Pi(g)、Ui(g)的第j个维度值。
1.2.4 选择策略
DE采用“贪婪”的选择策略,经过变异和交叉后生成的试验个体Ui(g)和初始个体Pi(g)进行适应度比较。只用当试验个体Ui(g)的适应度更优时才被选作子代,否则Pi(g)将直接作为子代。选择操作的过程如式(5)所示:
系统硬件结构如图1所示,包括控制和数据采集两部分。控制部分采用上海光源光束线站上标准的基于VME总线的MAXv-8000控制器和自行研制的步进电机驱动器[7],数据采集部分通过ORTEC974计数器读取电离室探测到的同步光通量[8]。
图1 系统硬件结构图Fig.1 Hardware architecture of the system
光束线调束的目标是通过优化电机运动位置,以在样品位置获得最大光通量。对应于差分进化算法的原理,可以将该目标抽象归纳为:在特定的约束空间内,根据适应度的值搜索多元函数的最优解。为此,建立的光束线智能优化模型如下:
1)个体:即同一时刻所有电机在各自某一位置的组合,表示为式(6):
其中:Mi,j为个体Mi第 j个步进电机的位置值;d为被优化电机的数量;1≤i≤n,n为设定的种群规模。
2)搜索空间:设定的电机运动范围。
3)适应度:电离室信号IC。
评估个体适应度即命令所有电机运动到某一位置,然后读取电离室信号,通过差分变异、交叉、选择后,将每一代适应度高(即电离室读数高)的个体传递下去。
上海光源光束线站运动控制采用EPICS软件包中的Motor模块[10],主要包括Motor记录及相关程序。一个Motor记录对应一个电机实体,记录中的每个域和电机属性一一对应,其中域VAL为命令电机运动的位置值,域RBV返回电机当前位置[11]。
应用LabVIEW实现差分进化算法、人机操作界面,通过CaLab接口与EPICS连接,控制EPICS下电机的运动和读取电机当前位置。程序采用RS232串口通信协议通过ORTEC974获取电离室的实时读数,程序结构如图2所示。
程序开始后,根据输入的电机参数随机生成初始种群,控制所有电机运动至种群中第一个个体所设定的位置,读取电离室信号,进行评估,再对下一个个体执行相同操作,直到初始种群中的全部个体都评估完成。若达到终止条件,则停止优化,反之,则进行差分变异、交叉、选择等操作后,得到下一代种群。图3为优化程序的流程图。
图2 智能优化系统结构图Fig.2 Structure diagram of intelligent optimization system
图3 光束线智能优化程序流程图Fig.3 Flowchart of beamline intelligent optimization program
表1 被优化光学设备、电机及相应的功能Table 1 Optical devices to be optimized,their motors and functions
本系统在上海光源X射线衍射线站进行了在线测试,该线站主要用于材料科学、凝聚态物理等学科的研究,以多晶粉末、薄膜/超薄膜的表面和界面、纳米材料的微结构等为主要研究对象[12],实验样品以及衍射仪探测器的特殊性要求样品处同步光必须具有通量高、光斑位置稳定以及光斑形状好。
衍射线站包含三个关键设备:在垂直方向对白光进行准直、水平方向进行聚焦的前置准直镜M1;白光单色化的双平晶水冷单色器DCM;垂直方向对单色光进行聚焦的后置聚焦镜M2。布局如图4所示。
图4 上海光源X射线衍射线站布局示意图Fig.4 Layout of optical devices in SSRF-XRD beamline
在线测试选择双晶单色器DCM、后置聚焦镜M2为被优化设备,设备上的电机和对应的功能如表1所示。通过调节单色器电机的运动,确保其内部两块晶体保持平行、高差固定以及第一晶体的衍射光全部入射到第二晶体,这样从单色器出射的单色光具有最大通量[13]。
光束线调束优化时间与运动控制器响应速度、电离室响应速度、系统反馈过程、电机精确定位速度等密切相关。在相同的控制和数据采集系统下,根据电离室读数进行判断,采取下一步操作的反馈过程占据了人工调束的大部分时间。本系统的反馈过程由程序自动实现,所需时间相对较少,其主要时间与电机是否能快速运动到位有很大关系,这涉及到光束线设备性能的一个重要指标——电机运动的重复性。
运动机构的机械设计、加工和安装工艺、负载大小等都会影响电机运动的重复性。图5和图6分别是M2的三个电机和单色器的四个电机重复性测试得到的结果。可以看出,M2的三个电机以及单色器的Roll1电机几乎没有回程差,重复性好。单色器的T2、Y2、Yaw2电机有一定回程差,重复性相对稍差。
进行了三次在线测试,每次都在前一次测试成功的基础上逐渐加入更多电机。
测试结果列于表2和图7中,图7对电离室信号进行了归一化处理。测试结果表明:1)系统都趋于收敛,找到最优解,表明将差分进化算法应用于光束线调束系统是切实可行的;2)优化电机越多,收敛速度变慢,所需的遗传代数增加,花费时间增大,但可以接受;3)加入单色器电机后,优化程序在10代以后才能找到较为优秀的个体。这是因为入射到电离室的光斑较小,且稳定性受单色器状态影响较大,单色器的微小抖动即可导致光斑消失,因此加入单色器电机后,由于单色器电机重复性相较于M2来说稍差,一些优秀个体传递到下一代时失效,另外,优化参数增加导致搜索空间指数增加,这些因素势必导致优化速度变慢,但是经测试,耗时仍在可接受范围,约30 min。
图5 M2电机的重复性Fig.5 Motion repeatability of M2 motors
图6DCM电机的重复性Fig.6 Motion repeatability of DCM motors
表2 测试条件及结果Table 2 Test conditions and results of the experiment
图7 优化3、5、7个电机的适应度-代数关系Fig.7 Normalized fitness versus generationfor optimizing 3,5,7 motors
本文应用差分进化算法在上海光源衍射线站实现了智能优化调束系统,利用LabVIEW设计人机交互界面、获取电离室信号、执行差分进化算法、发送控制命令等系列功能。测试结果表明:系统可以在设定范围内自动搜索,准确找到并收敛于最优解,调束优化过程约在30 min内完成。
光束线智能调束系统执行效率与很多环节有关,如算法实现的软硬件性能、运动控制器的响应速度、电机的响应速度和精确定位以及电离室的响应速度等。提高每个环节的性能是提高整个系统执行效率的基础,因此上海光源光束线的调束优化效率还有较大的提升空间。本文工作为上海光源实现光束线快速优化调束系统提供了可行方案,对其他同步辐射光源具有参考和借鉴价值。