HTML
-
激光三角测距传感器的光学参量较多且相互牵制,目前大多数学者仅采用实验方法选择参量,参量选取精度较低,从而大大增加了后期实验部分的工作。因此,本文中在对光学参量深入分析的基础上采用粒子群优化算法(particle swarm optimization,PSO),同时结合本系统所需,获取符合要求的参量,为后期传感器的设计提供指导依据。
-
粒子群优化算法是一种新的进化算法[9]。首先对一群粒子进行随机初始化,然后找到搜索空间的最优粒子并追随,即不断地更新迭代直到找到最优解[10]。在迭代时,粒子通过追寻两个最优解来进行速度和位置更新,其更新公式如下所示[11]:
式中, i为第i个粒子,i=1, 2, …, N, 其中N为粒子群的个数;j为第j维,j=1, 2, …, d,其中d为粒子维数;pij为个体极值,为粒子个体本身所找到的最优解;pg, j为全局极值,为当前整个粒子群找到的最优解[12],用于pg, j表示全局极值;t为迭代次数;ω为惯性权重;c1和c2为学习因子;r1和r2为0到1之间均匀分布的随机数[13]。
由于本文中的激光三角测距传感器的测量量程要求为10mm,故需在粒子群优化算法的基础上加入测量量程的约束条件。目前罚函数法在处理约束问题时应用最广泛,因此, 本文中采用罚函数法来处理对测量量程的约束。
罚函数法所构造的广义目标函数形式如下[14]:
式中, f(x)是约束优化问题的原始目标函数;h(k)H(x)为惩罚项;h(k)为惩罚系数;H(x)是多级分配惩罚函数,Q为优化设计变量空间,E为实数集,n为优化设计变量个数。
-
基于罚函数的粒子群优化参量的计算流程如图 5所示。通过试算,确定粒子群算法的参量如下:粒子个数为20,粒子维数为3维,迭代次数为300,惯性权重[15]ω=0.6,学习因子c1=c2=1.7,初始惩罚系数h0=0.1,迭代中转步为100,惩罚系数增大倍率m=1.4,确定参量工作距a优化空间为(50mm, 150mm), 工作角α的优化空间为(20°, 40°),焦距f的优化空间为(20mm,40mm)。根据(4)式定义原始目标函数:
式中, β的参量关系由x1, x2, x3表示。
采用粒子群优化算法得到一组优化结果,函数迭代图如图 6所示,所有参量结果如表 1所示。
parameter optimization result S 2.2386mm k 0.0028mm a 61.2862mm b 115.1680mm α 25.2900° β 14.2971° f 40.0000mm Table 1. The optimized results
通过粒子群算法进行参量优化,在灵敏度最大和测量量程一定的要求下,确定粒子的搜索空间,得出满足本系统所需的最优解。优化结果得出的最小灵敏度Smin达到2.2386mm时,系统分辨力可达2.8μm,由图 7可知,相对市场上的部分产品,利用粒子群优化得到的分辨力可达到较高水平,此时工作距a=61mm时,像距b=115mm。由于激光发射和成像部分要组装到一起,像距过大会导致系统体积过大,因此在像距部分放置平面镜,以光反射原理为基础,使光斑成像在CCD接收面上,从而减小系统体积。工作角α角越大及透镜焦距f越大,灵敏度越大,在考虑要同时兼顾灵敏度和系统体积的基础上,取α=25°,取f=40mm,此时成像角β=14°。在所要求的搜索空间内,粒子群算法优化结果基本符合本系统要求,可作为后期实验时的重要参考。