1.一种基于变尺度混沌模拟退火算法的圆度误差评定方法,其特征在于包括如下步
骤:
(1)优化的函数为F=min[Rer(x0,y0)],其中
为优化函数,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为现阶段变量t对应的能量值,k为波尔兹曼常数;
(3)若能量值Et小于初始能量值E0,则搜索有效,继续执行步骤(2),否则对邻域范围以概率为exp(ΔE/kT)接受,而以1-exp(ΔE/kT)的概率拒绝接受能量值Et,其中ΔE=Et-E0,k为波尔兹曼常数;
(4)根据随机扰动状态转移进行判断,若同时满足循环次数不大于最大迭代次数M1和能量值Et小于能量值Et-1,则重复执行步骤(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=x tmin-c(b1,i-a1,i),b1,i+1=x tmin+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。