基于模拟退火算法构建响应面模型的方法及应用其的系统转让专利
申请号 : CN201710708701.4
文献号 : CN107480381B
文献日 : 2018-08-10
发明人 : 王科峰 , 黄运保 , 李璞
申请人 : 广东工业大学
摘要 :
权利要求 :
1.一种基于模拟退火算法构建响应面模型的方法,用于对复杂机电产品的设计制造系统,其特征在于,包括如下步骤:a.采样:输入对应复杂机电产品的设计制造的期望参数或标准,再由所述设计制造系统通过拉丁超立方采样的方法获得采样数据;
b.基函数字典的构造:遵循字典基函数的特征要包含信号的特征的原则,采用自适应混合基构造一个混合字典;
c.寻求稀疏表示的算法:构建好步骤b中所述的混合字典之后,再根据步骤a中所述的采样数据中的X和Y,其中X为采样点,Y为采样点响应值;模拟退火算法求解混合字典中各基函数对应的系数;具体算法是利用模拟退火的思想限定每次挑选个数S,每次只挑选S个基函数,计算其系数,并且每一次挑选的S个基函数都会发生变化,同时控制精度,当精度达到要求,停止挑选,未被挑选的基函数系数设0,从而达到控制稀疏度的目的,然后在外循环利用二分法的思想,减少或增加挑选个数S;
d.模型的建立:由上述步骤c可得S个基函数对应的系数eff、字典D和采样点响应值Y;
字典D中S个基函数以外的其他基函数系数为0,由此得到字典D每个基函数对应的系数,记为向量θ,此时响应面模型为y=D*θ;
e.响应面模型优化处理:所述步骤d中响应面模型构造完后,得到复杂机电产品的设计中的自变量xt对应的原仿真模型的值yt,将xt代入构建字典D的N个基函数,得新的字典Dt,按照响应面模型y=Dt*θ计算xt对应的yt的估计值ytr;
f.输出后续加工需求的结果数据作为后续生产设备的制造参数,用于对复杂机电产品的生产制造。
2.根据权利要求1所述的一种基于模拟退火算法构建响应面模型的方法,其特征在于,所述步骤a中所述的拉丁超立方采样的方法包括如下步骤:a1.将区间[0,1]均匀分成m个小区间,
[0,1/m],[1/m,2/m],[2/m,3/m],…,[1-1/m,1],并从中随机选取一个小区间;
a2.从每个小区间中随机选取一个值作为采样点;采样点的所有分量都执行这样的操作后,便形成采样点坐标,完成一次采样;总共有p个变量,则重复p次操作,由拉丁超立方采样的方法产生的采样点可以表示为X=[x1,x2,…,xp],xi∈Rm,X即为一个变量的采样点矩阵,其中,xi为一个变量对应的采样点,每个采样点包含m个元素,i=1,2....p;
a3.将X映射到仿真模型的变量区间,然后代入仿真模型计算,得出一组仿真结果Y=[y1,y2,…,ym]。
3.根据权利要求2所述的一种基于模拟退火算法构建响应面模型的方法,其特征在于,所述步骤b中自适应混合基由正余弦基和勒让德基构成,包括如下步骤:b1.正余弦基的构建:其分为正弦基和余弦基;正余弦基函数如下:
将X代入一个基函数,即得到一列数据,这列数据就是这个基函数上的采样数据,也代表了这个基函数的特征,将X分别代入n个基函数,则得到n列数据,最后得到一个矩阵:b2.勒让德基的构建:将勒让德展开0阶展开到n-1阶得到n个勒让德基函数,多变量勒让德基是单变量多项式勒让德基的张量积,即得到:η是指数向量,当η=[0,1,5,2],那么 同样将X代入,得到:
将Φ1、Φ2结合得到一个大矩阵Φ=[Φ1,Φ2],Φ即本发明所述的自适应混合基;设采样点X为m*1的列向量;采样点响应值Y也为m*1的列向量;字典基函数个数为N,N=2n,即字典Φ为m*N的矩阵。
4.根据权利要求3所述的一种基于模拟退火算法构建响应面模型的方法,其特征在于,所述步骤c中的所述模拟退火算法包括:主函数、模拟退火函数、扰动函数和误差求解函数这四个子函数模块;模拟退火算法求解混合字典中各基函数对应的系数的过程包括如下内容:c1.误差求解函数:误差求解函数基于最小二乘法,输入S个基函数,采样点响应值Y,即可利用最小二乘法计算基函数对应的S个系数;在MATLAB里面只需S个基函数组成的矩阵左除采样点响应值Y即可;具体步骤为:(c11):初始化个体编码、字典和采样点响应值Y;
(c12):最小二乘法求解系数;
(c13):按公式yr=D*θ计算重构的采样点响应值Y,其中D为S个基函数组成的矩阵,θ为系数;
(c14):计算Y-yr的二范数,在MATLAB环境中,误差代码为norm(Y-yr)。
5.根据权利要求4所述的一种基于模拟退火算法构建响应面模型的方法,其特征在于,模拟退火算法求解混合字典中各基函数对应的系数的过程还包括如下内容:c2.模拟退火函数:设置两个循环,一个退火循环即大循环,每次循环温度t按速率v递减,直到递减为临界值tmin为止;一个迭代循环即小循环,设置迭代次数iter;在小循环中设置一个扰动函数,每次改变挑选的S个基函数中的一个,再设置一个容忍函数,每次挑选的基函数构造的响应面误差不达标时,随机判断是否接受这个挑选,作为进入下一次迭代循环的初始基函数;以下命名均遵循以下规则:col存储S个基函数在字典中对应的位置;eff存储对应的系数;
error存储对应的误差,在col、eff、error后加不同的字符表示不同的变量;具体步骤为:(c201):设置函数参数,设置初始温度t,采样点响应值Y,退火速率v,混合基字典Φ为m*N的矩阵,挑选的基函数的个数S,迭代次数iter;
(c202):初始化从字典的N个基函数中随机选取S个基函数,得到列向量col1,调用误差求解函数,输出这S个基函数对应的误差error1、系数eff1;初始化errorbest=error1,colbest=col1,effbest=eff1,errorbest存储循环过程中的最小误差,effbest存储S个基函数对应的系数,colbest存储S个基函数在字典中对应的位置;
(c203):大循环判断条件:t>0.0001,若成立,则进入退火循环,若不成立,则退出循环;
(c204):小循环判断条件:循环次数是否到达iter,若成立,则进入循环,若不成立,则退出循环;
(c205):调用扰动函数,随机改变S个基函数中的一个,得到col2,并调用误差求解函数,输出这S个基函数对应的误差error2、系数eff2,计算delta=error2-error1;
(c206):判断error2
(c207):判断error2是否达到要求精度,若达到,则退出整个退火循环,若没达到,则进入(c208);
(c208):判断delta<0,若成立,则更新col1=col2,error1=error2;若不成立,则判断-delta/t是否接受误差,根据e 是否大于[0,1]之间的一个随机数,若成立,则更新col1=col2,error1=error2,若不成立,则进行退出判断语句,进入(c209);
(c209):更新t=t*v,进入(c203);
(c210):输出errorbest、effbest、effbest中的非0个数SparSity。
6.根据权利要求4所述的一种基于模拟退火算法构建响应面模型的方法,其特征在于,模拟退火算法求解混合字典中各基函数对应的系数的过程还包括如下内容:c3.扰动函数:扰动函数每次从字典D的1到N个基函数中随机挑选一个基函数来替换挑选的S个基函数中的其中的一个,从而达到不断变换挑选的S个基函数的目的;具体步骤如下:(c31):随机从字典D中选择一个基函数作为替换基函数;
(c32):随机从S个基函数中选择一个作为待替换基函数;
(c33):替换S中的基函数;
(c34):输出新的基函数组。
7.根据权利要求4所述的一种基于模拟退火算法构建响应面模型的方法,其特征在于,模拟退火算法求解混合字典中各基函数对应的系数的过程还包括如下内容:c4.主函数融合了二分法和模拟退火的思想,具体包括如下步骤:(c41):设置初始温度t,采样点响应值Y,退火速率v,混合基字典D,D为m*N的矩阵,挑选的基函数的个数初值S=N/2,挑选个数最大值kmax,挑选个数最小值kmin;
(c42):while循环判断条件,kmax-kmin>=0,若成立,则进入循环,若不成立,则退出循环;
(c43):将初值代入模拟退火函数,模拟退火函数构建的响应面模型的误差和求解系数的非0个数SparSity;
(c44)判断模拟退火函数输出的误差是否达到精度,若达到,flag=1,若没达到,flag=0;
(c45):根据flag判断精度是否达标,若达标,则更新kmax=SparSity/2;若不达标,则更新kmin=S;
(c46):更新S=(kamx+kmin)/2;
(c47):重复步骤(c42)。
8.一种应用权利要求1-7中任意一项所述的方法的设计制造系统,其特征在于,包括:数据录入模块、采样模块、混合字典模块、稀疏表示模块、响应面模型构建模块、数据优化处理及输出模块和加工执行模块;
数据录入模块:用于向所述设计制造系统中输入对应复杂机电产品的加工设计或制造期望参数;
采样模块:通过拉丁超立方采样的方式获得采样数据;
混合字典模块:采用自适应混合基构造一个混合字典;
稀疏表示模块:所述混合字典模块构建好混合字典之后,所述稀疏表示模块再根据所述采样模块中的采样数据中的X和Y,其中X为采样点,Y为采样点响应值,模拟退火算法求解所述混合字典中各基函数对应的系数;利用模拟退火算法的思想,引入大种群思想来加快计算速率;
响应面模型构建模块:由稀疏表示模块得到S个基函数对应的系数eff、字典D和采样点响应值Y;字典D中S个基函数以外的其他基函数系数为0,由此得到字典D每个基函数对应的系数,记为向量θ,构建出响应面模型为y=D*θ;
数据优化处理及输出模块:对响应面模型运算出的结果进行优化处理,并将后续加工需要的参数输出;
加工执行模块:接收所述数据优化处理及输出模块输出的参数,并根据该参数完成后续的制造过程。