武志宏,杨瑞峰,郭晨霞,葛双超
(中北大学仪器与电子学院,山西省自动化检测装备与系统工程技术研究中心,太原 030051)
建立电动舵机准确模型是研究伺服系统动态特性的关键所在。因此,有必要研究用于精确建立电动舵机的系统辨识策略并进行动态性能分析。系统辨识的定义是1962年由Zadeh[1]提出的:系统辨识是被识别系统按照优化准则在预设模型中优化出与数据拟合最好的模型参数。国内外在舵机参数辨识研究方面提出了很多优化方法,如经典优化算法有最小二乘法[2]、相关函数法[3]和频率特性法[4]等。这些经典优化算法在优化速度和优化精度方面逐渐暴露了缺点和局限性。近几十年,智能控制理论不断发展成熟,形成了多种形式的智能优化算法在参数辨识中的应用,如粒子群算法[5]、人工神经网络[6]、支持向量机[7]等。
遗传算法(genetic algorithm,GA)是一种利用自然界“优胜劣汰”的原理来搜索最优解的特点,从而在参数辨识中有着重要的研究意义[8]。相比之下,遗传算法应用于舵机系统辨识的优点是不受诸如搜索空间和函数可导性等先验条件的约束[8],但是与其他智能优化算法相比,传统的遗传算法存在着早熟收敛、易陷入局部最优以及收敛速度慢的缺点。
为了解决传统遗传收敛速度慢和早熟的缺点,提出了一种改进的自适应遗传算法(improved adaptive genetic algorithm, IAGA),引入改进的交叉算子、变异算子操作、自适应交叉概率和变异概率。改进的算法使群体中最大适应度的个体交叉率和变异率不为零,使优良个体不处于一种停滞状态从而让算法跳出局部最优。在此基础上将该算法应用于舵机系统参数辨识中,辨识结果表明,该算法与人工神经网络(artificial neural network, ANN)、粒子群算法(particle swarm optimization,PSO)和GA相比具有更好的参数优化精度和优化速度,证明了改进算法的有效性。
系统辨识原理如图1所示。电动舵机系统是在相同的外部干扰下获得实际系统输出和识别模型输出,然后比较两者之间的差异来构成误差函数。最后,误差函数作为优化算法的适应度函数来不断校正辨识参数。
图1 系统辨识原理Fig.1 System identification schematic
采用参数误差(Epe)和平均参数误差(Eape)来评估算法的识别精度。Epe和Eape的计算方法为
(1)
(2)
i=1,2,…,m
1.2.1 控制器模型
控制器对控制输入信号电压U和反馈电压Uf的偏差信号进行功率放大,从而驱动电机运动。PWM控制器的传递函数为
(3)
式(3)中:ua为电机的直流平均电压;uc为输入电压;U为电源电压;uDP为输入信号的最大电压;KPWM为线性工作区域中的常数;s表示虚变量。
1.2.2 直流电机模型
电动舵机的主要构件是直流电机。当负载为空时其传递函数可近似为
(4)
式(4)中:θ为电机旋转的角度;Km为电机转矩系数;R为电驱动电路的总电阻;J为折叠到电机轴的惯性矩;Ke为反电动势系数。
1.2.3 谐波减速器模型
谐波减速器是用于完成舵机转动所需的角速度和扭矩的机构。在忽略摩擦转矩和谐波减速器滞后影响的情况下,传递函数可以简化为比例环节,即减速比的倒数:
(5)
式(5)中:θm和θ分别为电机旋转和方向舵旋转的角度;i是谐波减速器与驱动负载之间的传动齿轮半径比。
舵机系统由电流反馈、速度反馈和角度反馈3个闭环系统组成。现研究角度反馈和控制信号之间的关系,角度反馈电位器输出电压为
(6)
式(6)中:δ为舵机转动的角度;ig为增速齿轮的增速比;up为施加到反馈电位计的电压;θp为反馈电位计的角位移。
由于igδ/θp通常是常数,则反馈电位器的传递函数可以表示为
(7)
滞后特性可以作为模型中的延迟率来执行(可以表示为一阶惯性环节)。如图2所示,k1是由于其他未知非线性因素的影响而导致的电动舵机输出的校正值。极限d1的物理特性是运动部分的振幅。
图2 非线性系统简化模型Fig.2 Nonlinear system simplified model
根据以上描述,当假定机械振幅极限不被触发时,d1可以忽略。电动舵机系统的输入输出为
(8)
整理后得:
(9)
遗传算法的改进如下:
(1)编码。将式(9)离散化为
3.每个队员摸一次,摸球时不准看,每次摸球后都要放回箱子,负责拿箱子的同学晃动箱子,使球混合均匀,接着再摸,摸出红球多的为胜。
(10)
因此要得到系统传递函数,需要辨识的离散模型参数为a1、a2、a3、b1、b2和b3。根据问题的实际情况,采用近似二进制编码的形式对染色体进行编码,基因数为m×6,aij和bij为基因项,个体染色体为
(11)
式(11)中:k为染色体种群序号。
(2)生成初始群体。首先随机产生的N个染色体作为算法迭代的初始值,并被定义为Q,N即为种群规模。
(3)适应度评价。适应度函数的建立是根据具体的实际问题进行设定的,适应度函数表示为
(12)
式(12)中:n为输入的个数;y为实际对象的输出;y′为相同输入下辨识模型的输出。
(4)选择操作。为了抑制传统GA基于适应度比例的选择策略带来的早熟现象,将规模为N的群体Q={M1,M2,…,Mn}按个体适应值降序排列为f(a1)≥f(a2)≥…≥f(an),个体i的选择概率为
(13)
式(13)中:q′为个体被选择到的概率;r为种群个体的编号。
(14)
式(14)中:α∈(0,1)。
(6)变异算子。为了使优化算法找到全局最优解。假设矩阵(11)的个体染色体基因aij∈[Lk,Uk]为选中的变异,该基因的变异结果为
(15)
式(15)中:r1和r2为[0,1]的均匀随机变量。
(7)自适应交叉、变异概率的改进。交叉概率Pc和变异概率Pm的选择对于算法的优化效率有很大影响。为此结合Srinvivas等[9]提出的自适应遗传算法,作进一步改进,即
(16)
(17)
式中:fmax和favg分别为群体的最大和平均个体适应度;f′为两个个体适应度大的值;Pc1=0.9,Pc2=0.6,Pm1=0.1,Pm2=0.01。
为了验证方法的有效性进行了3个试验,测试设备如图3所示。试验1:为了测试改进算法的优化性能采用标准测试函数验证。试验2:为了验证本文提出的辨识方法的精确性,根据第1节建立的系统模型,进行系统辨识优化对比试验并进行了实际信号跟随测试。试验3:为了验证改进算法具有较强的抗噪声能力,研究了不同噪声水平下的参数辨识性能。
图3 舵机测试设备Fig.3 Electric steering test equipmentdiagram
试验参数设置为:控制台PC配置为Intel(R)Core(TM)i7 CPU @ 2.20 GHz CPU和8 GB RAM。为使IAGA的有效性更具说服力、ANN,PSO和GA被应用于下面试验。GA、PSO和IAGA的种群大小和迭代次数都设置为30和100。PSO的惯性权重w=0.6, 认知和社会加速度常数c1=c2=2。遗传算法的其他参数设置按照第2节所示,最终结果取30次试验结果的平均值。
参考CEC2013[10]评价标准选取了包括单峰函数、基本多峰函数的4个最小化标准函数进行仿真试验,如表1所示。其中从上至下分别为Sphere函数为单峰函数;Rosenbrock为凸病态函数;Rastrigin’s和Schaffer为具有极多局部最小点的多峰函数。表2展现了不同算法之间性能比较的结果。一方面,改进算法对多维函数的优化精度都优于其他传统智能算法。另一方面,IAGA的标准偏差小于其他算法,因此其优化结果更可靠。
表1 测试函数Table 1 Test function
在表3中,PSO与GA相比得到了相似或更好的识别结果,PSO和GA的识别精度明显优于ANN。由于系统的强非线性和信号噪声,ANN可能无法成功识别相关参数。IAGA的识别精度远大于传统GA,这表明改进的自适应交叉变异操作和精确保留策略可以有效地提高算法全局搜索性能。在图4中可以看出,ANN最先收敛到局部最优解,因此很难获得全局最优参数。PSO的收敛曲线在早期迅速下降,但达到一定精度时下降缓慢。GA的初始解性能很差,但是由于其适当的交叉和变异策略,收敛曲线仍然可以保持下降趋势。IAGA的收敛曲线呈现稳定快速下降,反映了所提出的IAGA对系统参数识别的良好全局搜索能力。IAGA可以实现更快地收敛到最佳状态,并获得比其他解决方案更好的全局最优解决方案。
表2 不同测试算法性能对比Table 2 Performance comparison of different test algorithms
为了充分激励舵机的各种模态以确保辨识效果,通过电动舵机实际实验验证所研究成果的可靠性。将正弦信号用作激励信号,系统的采样频率设置为100 Hz,系统输入幅度为1 V,初始相位是0°的正弦波。实验结果如图5所示,4种算法的误差曲线如图6所示。与其他3种算法相比,改进的算法正弦跟随测试误差从170 mV左右减小到5 mV左右。因此验证了改进算法辨识精度较高的特点。
表3 不同算法辨识误差Table 3 Identification error of different algorithms
图4 不同算法平均收敛过程对比Fig.4 Compares the average convergence process different algorithm
图5 正弦响应辨识测试Fig.5 Sinusoidal response identification test
图6 正弦响应辨识误差Fig.6 Sinusoidal response identification error
具有不同信噪比(SNR) (90、60和30 dB)的噪声信号被添加到电动舵机的输出端。应用MATLAB中的AWGN函数给舵机输出信号添加不同信噪比噪声后进行辨识试验。选择性能最好的IAGA算法作为试验的优化算法。
如表4所示,60 dB的参数识别误差远大于90 dB的参数识别误差,这可能是由于电动舵机的死区,间隙和极限振幅等非线性部分的存在造成的。当SNR为30 dB时误差显著增加。但是,30 dB以下的某些参数的识别精度仍然很好,可以满足实际工程应用的要求。
表4 不同信噪比下辨识误差Table 4 Identification error under different SNR
提出一种新的IAGA辨识参数的方法,该方法具有以下特点。
(1)改进后的GA算法在全局优化和快速收敛能力都有较大的提高,性能上也明显优于现有的一些传统优化算法。
(2)经过多维复杂经典函数测试,与其他智能算法相比改进的算法能够得到很好的优化结果,并且有很高的稳定性。说明改进的算法具有复杂优化问题的通用性。
(3)改进后的算法用于电动舵机系统辨识,通过参数误差和平均参数误差评判结果,说明改进算法具有优化精度高、速度快的特点。
(4)经过抗干扰测试检测,改进算法具有较强的抗噪声能力,因此具有高的工程实践价值。