1.一种基于变尺度混沌模拟退火算法的圆度误差评定方法,其特征在于包括如下步骤:
( 1) 优 化 的 函 数 为 F = mi n [ Rer( x 0, y 0)] , 其 中为优化函数,A1和
A2分别表示包容被测工件轮廓的最小同心圆和最大同心圆,(x0,y0)为所求理想圆圆心,(xi,yi)为实际工件的采样坐标,i∈[1,n],其中n为工件的坐标点数,x0,y0为优化自变量,[a1,i,b1,i]和[a2,i,b2,i]分别为为优化变量x0和y0的取值区间;设置初始退火温度T、随机产生一组初始向量作为初始解xintial和yintial、初始能量值E0、最大迭代次数M1、混沌迭代次数M2、M3,其中M3设置为0.2*M2~0.8*M2、相对误差因子e;
(2)对初始解xintial和yintial在邻域范围内进行随机扰动,初始解扰动按照如下方式产生:xt=xintial+(rand-0.5)*exp(-2*M1/kT);yt=yintial+(rand-0.5)*exp(-2*M1/kT);其中rand是(0,1)内的随机数,Et为对应的现态能量值,k为波尔兹曼常数;
(3)若现态能量值Et小于初始能量值E0,则搜索有效,继续执行步骤(2),否则对邻域范围以概率为exp(ΔE/kT)接受,而以1-exp(ΔE/kT)的概率拒绝接受现态能量值,其中ΔE=Et-E0,k为波尔兹曼常数;
(4)根据随机扰动状态转移进行判断,若同时满足循环次数不大于最大迭代次数M1和现态能量转移函数,则重复执行步骤(2)和步骤(3);
(5)执行退温函数Tk+1=Tk/(M1+1),降低退火温度;
(6)重复执行步骤(2)至(5),判断循环次数是否大于最大迭代次数M1,若大于则停止搜索,输出当前最优解xtin、ytin和相应的圆度误差值Rer(xtin,ytin);
(7)将xtin和ytin作为混沌迭代的初始值生成相应的混沌迭代变量,其混沌迭代的具体
2 2
关系式为:xtin=cos(1/xtin),ytin=cos(1/ytin),设定混沌迭代次数为p;
(8)将 生 成 的 混 沌 迭 代 变 量 执 行M2次 混 沌 搜 索,现 态 混 沌 变 量xtink=a1,i+(b1,i-a1,i)*xtin,ytink=a2,i+(b2,i-a2,i)*ytin,若现态混沌变量xtink,ytink满足Rer(xtink,ytink)
(9)根据xtmin,ytmin将优化变量区间[a1,i,b1,i]和[a2,i,b2,i]变更为[a1,i+1,b1,i+1]和[a2,i+1,b2,i+1],其中a1,i+1=xtmin-c(b1,i-a1,i),b1,i+1=xtmin+c*(b1,i-a1,i),a2,i+1=ytmin-c*(b2,i-a2,i),b2,i+1=ytmin+c*(b2,i-a2,i),c表示变尺度系数,取值范围在(0,0.5);如果aj,i+1
(10)对xtmin,ytmin进行混沌变换,同时迭代M3次重复执行步骤(7);
(11)重复执行步骤(7)至步骤(9),直到迭代M3次后xtmin,ytmin对应的函数值偏差不超-3 -6
过相对误差因子e,该相对误差因子e的数值根据实际问题变化而不同,一般为10 ~10 ;
(12)重复执行步骤(11),直到迭代次数为p时,算法寻优结束,输出最优解xtmin,ytmin。