孙 峰 孙 伟
(上海海事大学信息工程学院 上海 201306)
在由电极极化引起的电极反应中,电极电位与电流密度之间的关系称为极化曲线。动电位极化曲线是腐蚀研究中有用的电化学测量技术,它可以提供关于腐蚀机理、动力学参数和腐蚀速率的重要信息。其中腐蚀动力学参数是机理模型的重要组成部分,它们的值可能会极大地影响建模结果的可靠性和准确性,因此极化曲线的参数求解至关重要。在对金属材料进行仿真建模时,一个必须要考虑的问题就是对极化曲线的准确描述,而极化曲线是非线性函数,故必须提高对极化曲线的拟合精度才能保证仿真模型的准确性和可行性。
目前,针对如何解决极化曲线拟合的问题,国内外学者已经提出多种方法。曹楚南[4]利用高斯-牛顿曲线拟合法直接对腐蚀金属电极的弱极化曲线拟合,从而解决这一问题,但是这种方法对参数初始值要求过高,初始值的好坏对结果有着极大的影响。周明华等[5]使用遗传算法来求解曲线拟合问题,虽然无需设置参数初始值,但是计算耗时,并且拟合精度也相对较低。文献[6-7]通过线性拟合极化曲线的塔菲尔区域来推导阳极和阴极塔菲尔斜率,并且通过使用塔菲尔外推法获得腐蚀速率,但塔菲尔外推法仅适用于塔菲尔线性区域明显且数据能够获得的反应。李强[8]在文献[6-7]基础上,对于塔菲尔线性区域不明显或不存在的非线性极化曲线,提出采用非线性最小二乘法来拟合曲线,常用的非线性最小二乘法为Levenberg-Marquardt算法与信赖域算法,虽然此方法解决了塔菲尔线性区域数据难以测量的问题,但是同样面临着对参数初始值要求过高的问题。
以上提及的极化曲线拟合方法存在拟合精度不高、对数据和参数初始值依赖度高、计算十分耗时和需要的塔菲尔线性区数据难以测量等问题。在李强的研究基础上,本文受智能优化算法的启发,结合数值计算算法和智能优化算法两类算法的优点,提出了一种基于粒子群-信赖域的金属腐蚀极化曲线拟合算法,来解决对于塔菲尔线性区不明显或不存在的非线性极化曲线。算法采用粒子群算法来优化信赖域算法的参数,这样可以避免人为选择参数的盲目性,提高算法对极化曲线的拟合精度,并保证了每次拟合结果的鲁棒性。
PSO-TR算法的基本思想:将数值计算算法和智能优化算法相结合,综合考量两类算法的优缺点。例如:粒子群算法的优点是无需参数初始值,拟合精度高,缺点是结果不稳定,每次结果不同,并且优化耗时;而信赖域算法的优点是结果稳定,计算速度快,缺点是计算需要参数初始值,并且十分依赖参数初始值的好坏。发现两者的优缺点恰好可以互相弥补。故结合两种算法,先使用粒子群算法来优化参数初始值,再将得到的最优参数初始值带入信赖域算法中计算,这样可以避免人为选择参数的盲目性,提高算法对极化曲线的拟合精度,节约计算时间。PSO-TR算法主要分为两步,第一步为PSO优化TR参数过程,使用PSO算法求解极化曲线拟合问题,但是由于PSO算法求解此问题耗时和结果不稳定,故而限制迭代次数,在短时间内求得一个较优的参数结果,并将其作为下一步的初始参数。第二步为TR求解参数过程,使用TR算法求解极化曲线拟合问题,由于算法依赖参数初始值,所以将第一步求得的优化初始参数作为TR算法的参数初始值,以此来求解最终的最优参数。
PSO是Kennedy和Eberhart于1995年提出的一种全局优化算法,是对于鸟群觅食过程中的迁徙和聚集的模拟[9]。粒子群算法作为智能进化算法,其拥有搜索能力强、收敛速度快、设置参数少、程序实现简单和无梯度信息等优点[10],所有粒子都具有由目标函数所确定的适应值和确定其运动方向和运动距离的速度,该问题的解就是搜索空间中的一个粒子的位置。
本方法首先将极化曲线拟合问题看作是PSO目标优化问题,将每个参数的取值范围作为粒子的一个搜索维度,将参数值定义为粒子的位置信息,因此可以看作是粒子在一个多维的空间内寻找最优值的过程。
PSO算法的主要思想如下[11-14]:在n维搜索空间中,有m个粒子,其中第i个粒子的位置是Xi=(xi1,xi2,…,xin),其速度为Vi=(vi1,vi2,…,vin) ,i=1,2,…,m。第i个粒子搜索到的最优位置(即个体最优值Pbest)为Pi=(pi1,pi2,…,pin) ; 整个粒子群搜索到的最优位置(全局最优值Gbest)为Pg=(pg1,pg2,…,pgn)。在每次迭代期间,粒子通过对Pbest和Gbest两个极值的比较来更新自己的状态,每个粒子根据下式来更新自己的状态:
(1)
(2)
PSO-TR算法的参数优化部分是利用PSO算法获得最优初始参数,将每个参数的取值范围作为粒子的一个搜索维度,将其定义为粒子的位置信息,因此可以看作是粒子在一个多维的空间内寻找最优值的过程。构建样本误差平方和F作为PSO-TR算法的目标函数,其表达式为:
(3)
信赖域算法(Trust Region,TR)是一种用于求解非线性优化问题的数值计算方法。信赖域算法是一种迭代计算算法,从给定的初始解开始,不断迭代,持续改进,直到获得令人满意的近似最优解。在每次迭代期间给出信赖域,其一般是当前迭代点xk的小邻域。然后解决该邻域内的子问题,获得试探步长sk,然后使用评价函数来决定是否接受该试探步并确定迭代的信赖域。如果试探步长被接受,那么xk+1=xk+sk,否则,xk+1=xk。新的信赖域的大小取决于试探步的好坏,简而言之,当试探步比较好时,信赖域在下一步中扩大或保持不变,否则信赖域减小[15-16]。
信赖域算法的基本思想:设当前点xk的邻域定义为:Ωk={x∈Rn|‖x-xk‖≤Δk},其中,Δk是信赖域半径。目标函数近似为极值点附近的一个二次函数,故对于无约束优化问题,由二次近似构造的信赖域子问题如下:
(4)
式中:s=x-xk;gk为目标函数f(x)在当前迭代点xk处的梯度;Bk∈Rn×n,是f(x)在xk处Hesse阵▽2f(xk)或者其近似。
因此构建样本误差平方和f(x)作为PSO-TR算法的目标函数,其表达式为:
(5)
设sk为信赖域子问题的解。其中目标函数f(x)在第k步的实际下降量,即真实下降量为:
Aredk=f(xk)-f(xk+sk)
(6)
二次模型函数q(k)(s)的下降量,即预测下降量为:
Predk=q(k)(0)-q(k)(sk)
(7)
定义比值rk为:
rk=Aredk/Predk
(8)
它用于测量二次模型和目标函数的近似程度,rk越接近1,接近度越好。所以此数量也用来决定下一次迭代的信赖域半径。
TR求解参数过程如下:
Step1将PSO优化的参数初始值作为初始点x0,初始化信赖域半径Δ0,并开始迭代。
Step2当第k步时,计算梯度gk与Hesse阵Bk。
Step3求解信赖域模型,获得试探步长sk,并计算比值rk。
Step5若rk≥0.75且‖sk‖=Δk,则表明这一步已经到达了信赖域半径的边缘,同时步子有点小,可以尝试扩大信赖域半径,令Δk+1=2Δk。
Step6若0.25 Step7若rk<0,则表明函数值向着上升而非下降的趋势变化了(与最优化的目标相反),表明这一步错得“离谱”了,此时不应走到下一点,而应“原地踏步”,即xk+1=xk,同时和上面rk≤0.25的情况一样,缩小信赖域。反之,在rk>0的情况下,都可以到达下一点,即xk+1=xk+sk。 对于信赖域算法,参数初始值对算法的性能有极大影响,人为地选择参数十分不合理,即使专家经验也很难使结果最优。因此PSO-TR算法先使用PSO算法优化参数初始值,再将优化的初始参数代入TR算法中计算,便可获得最优解。PSO-TR算法流程图如图1所示。 图1 PSO-TR算法流程图 本文中使用的实验数据集为某型汽车车门部件在常温下的电化学腐蚀实验数据,分别为“点焊钢板”、“Q235钢”和“镀锌钢板”三种材料在PH值为7的0.1 mol/L的NaCl溶液环境中通过电化学腐蚀装置得到的真实数据集。 本文采用文献[8]所提供的金属在大气环境下的电化学腐蚀机理和理论模型。为了计算理论电流密度,使用基于混合电位理论的叠加模型方法,总的电流密度通过反应中涉及的所有电流密度的总和来计算。对于含氧水溶液中的金属腐蚀,通过式(9)-式(11)计算每个反应电流,并且可以通过式(12)计算总的电流密度i。 (9) (10) (11) i=iMe-iO2-iH2O (12) 式中:iMe、iO2和iH2O分别为金属氧化反应、氧还原反应和水还原反应的电流密度;bMe、bO2和bH2O分别为金属氧化反应、氧还原反应和水还原反应的塔菲尔斜率;iL,O2是溶解氧的限制扩散电流密度; 超电势η=E-Erev,Erev是可逆的潜力。iMe、iO2、iH2O、bMe、bO2、bH2O和iL,O2便是所需要求得的7个腐蚀动力学参数。 本文提出的基于粒子群-信赖域的金属极化曲线拟合算法的流程如下: Step1输入所需实验样本数据。 Step2确定待拟合的极化曲线表达式。依据金属腐蚀的极化行为特征确定极化曲线表达式。 Step3定义粒子位置信息。将每个参数的取值范围作为一个维度,因此可以看作是粒子在一个多维的空间内寻找全局最优值的过程。 Step4定义目标函数表达式。构建样本误差平方和F作为PSO-TR算法的目标函数,其表达式为: (13) Step5设置PSO-TR算法的初始参数,如最大迭代次数k、种群规模m等参数。 Step6执行PSO-TR算法,获得最优参数解。 本文从PSO-TR算法的有效性和效率性两个方面进行了实验验证。 (1) PSO-TR算法在不同金属材料下的极化曲线拟合实验及分析 为验证本文提出方法的有效性,针对以上三种金属材料的实验数据集,采用PSO-TR算法进行实验验证,并将各自的拟合曲线与实验数据进行对比。其中7个参数的取值上下限为([1e-4, 30, 1e-12, 30, 0, 1e-8, 30], [1e-2, 500, 1e-5, 500, 1, 1e-3, 500]) ,三种材料的PSO-TR算法拟合曲线与实验数据对比如图2-图4所示。显然,从图2-图4中也可以看出PSO-TR算法拟合的极化曲线和实际测量的极化曲线偏差较小,可较好地拟合实验数据。 图2 点焊钢板的PSO-TR拟合曲线与实验数据图 图3 Q235钢的PSO-TR拟合曲线与实验数据图 图4 镀锌钢板的PSO-TR拟合曲线与实验数据图 将总的极化曲线进行分解,便可得到单个反应对极化曲线的贡献,如图5-图7所示,可知金属的氧化反应和氧的还原反应对总极化曲线有很大贡献,且水的还原反应对总极化曲线贡献很小。 图5 点焊钢板中单个反应对极化曲线的贡献图 图6 Q235钢中单个反应对极化曲线的贡献图 图7 镀锌钢板中单个反应对极化曲线的贡献图 (2) PSO-TR算法对比实验及分析 为验证本文提出方法的效率,针对以上三组实验数据集,分别使用Levenberg-Marquardt(LM)算法、信赖域算法、PSO算法和本文提出的PSO-TR算法进行实验对比,其中7个参数的取值上下限为([1e-4, 30, 1e-12, 30, 0, 1e-8, 30], [1e-2, 500, 1e-5, 500, 1, 1e-3, 500]) ,同时Levenberg-Marquardt(LM)算法和信赖域算法所需要的参数初始值为[3.1e-3, 128, 3e-6, 243, 3.3e-2, 5.05e-5, 126],实验得到的拟合精度结果如表1所示。 表1 不同数据集拟合精度 从表1中可以看出,参数初始值对于LM算法与TR算法的性能有着极大影响,同一组参数初始值在三组数据的测试中,使用LM算法和TR算法时,结果时好时坏,并且三种金属材料的实验结果中PSO-TR算法的拟合精度比LM算法和TR算法的拟合精度都要高。同时可以看出PSO算法的拟合精度与PSO-TR算法的拟合精度十分接近,但这是在PSO算法迭代时间较长的情况下才有的结果,并且每次的结果都不相同,十分不稳定。显然,本文提出的PSO-TR算法相比于TR、LM和PSO三种算法,优点较为明显,无需设置参数初始值,结果稳定,拟合精度高,迭代次数少、速度较快。 本文在针对强极化曲线拟合问题时,提出了一种基于粒子群-信赖域的金属腐蚀极化曲线拟合算法。PSO-TR算法采用粒子群算法来优化信赖域算法的参数,先用粒子群算法求的最优初始参数,再将求得的最优初始参数带入信赖域算法中求得最终结果,这样可以避免人为选择参数的盲目性,提高算法对极化曲线的拟合精度。实验证明该方法可以有效地解决传统的非线性曲线拟合方法中的缺陷。首先无需设置参数初始值,这样避免了传统方法中大量调参的过程或者对相关专家经验的依赖;其次这种方法的曲线拟合精度较高,不会陷入局部最优,并且每次的拟合结果十分稳定;最后解决了传统方法中所需的塔菲尔线性区数据难以测量的问题,这样在接下来的有限元仿真建模中会有效地提高建模结果的可靠性和准确性。2 实 验
2.1 实验数据集
2.2 实验内容
2.3 实验过程
2.4 实验结果及分析
3 结 语