高超,白国振,周同,冯春华
(上海理工大学机械工程学院,上海200093)
蜗轮蜗杆机构作为一种机械装置,广泛用于汽车、船舶、建筑用重型机械中。蜗轮蜗杆传动装置结构紧凑、减速比较大、工作状态较平稳、噪声污染较小且具有一定的自锁性[1],因此承载能力成为其主要性能要求之一,同时在一些特殊工况下,例如: 高速、重载等情况下,系统的质量、体积、振动等均为参考指标。在蜗轮蜗杆减速器设计完成后,有必要通过测试来验证减速器整体是否符合实际使用要求。
为了模拟实际工况,需要使用外部设备来模拟负载,常见的加载系统有: 传统机械式加载系统、电液式加载系统、电动式加载系统。本文选用电动式加载系统,该系统属于被动式加载系统,具有结构简单、质量轻、体积小、控制方便等突出特点,但由于自身转矩较小,大部分电动式加载系统采用减速器来增大输出转矩,从而引入了摩擦,间隙等非线性环节,这些都会对系统的控制精度带来影响。如何通过合理的控制策略来提高控制精度成为目前电动式加载系统领域研究的课题之一。
针对上述问题,近些年出现了许多关于电动式加载系统的控制方案。文献[2]针对H∞混合灵敏度优化设计问题,提出了一种基于系统动态跟踪性能的加权函数确定方法。文献[3]设计了一种模糊自适应PID控制器,优化了PID参数,提高了电动式加载系统的加载精度。
本文将模糊控制、神经网络控制、增量式PID控制相结合,设计出一种模糊神经网络PID控制器。该控制器在保持增量式PID结构简单的同时,有效地避免了神经网络在训练过程中的“黑箱”问题[4],并且还克服了存在于模糊逻辑的主观因素。但模糊神经网络控制收敛速度慢,有陷入局部最优的问题,且初始参数对控制器的控制效果影响较大,针对这些问题,专家学者采用了各种寻优算法,如鱼群算法,遗传算法等用于解决初始值优化的问题[5]。本文中采用了基于模拟退火的粒子群算法优化算法训练模糊神经网络的控制参数。
基于模拟退火的粒子群算法在保留了粒子群算法优点的同时,继承了模拟退火算法在搜索过程中具有概率突跳的能力,能够有效避免搜索过程陷入局部最优解,使得整个控制器初始参数近似最优解。
本文所用电动式加载系统控制研究是在蜗轮蜗杆疲劳试验台上进行的。疲劳试验台的硬件组成包括加载电机、负载电机、扭矩传感器、联轴器、蜗轮蜗杆减速器、驱动器及配套组件、I/O模块、工控机等[6]。
1)在加载电机侧,使用TwinCAT3软件将扭矩加载信号经过模拟量输出模块输出至拓展模块的模拟量输入端子中[7],控制系统根据拓展模块所接收到的模拟量信号控制加载电机输出转矩,扭矩传感器将扭矩信号通过模拟量输入模块实时反馈给TwinCAT3软件,将加载信号与反馈信号进行对比,获得误差,并在TwinCAT3软件中通过控制算法得到控制量,实现反馈信号趋近于加载信号。
2)在负载电机侧,使用TwinCAT3软件将速度信号通过模拟量输出模块输出至拓展模块的模拟量输入端子中,控制系统根据拓展模块所接收到的模拟量信号控制负载电机输出转速,同时电机编码器将电机位置信号通过拓展模块中编码器端子输出至编码器模块中,并实时反馈给TwinCAT3软件中,从而在TwinCAT3软件中使用配轴的形式完成位置闭环。
试验台整体系统结构如图1所示,根据试验台系统结构,并将扭矩传感器1模型带入后,可得图2所示的系统开环结构框图[8]。
图1 试验台整体系统结构示意
图2 系统开环结构示意
由图2可知,加载系统以电压指令U与负载端角度θ1为输入,以加载电机实际输出加载扭矩M为输出,系统的开环传递函数为
M(s)=G1(s)U(s)+G2(s)θ1(s)
(1)
(2)
(3)
式中:K——扭矩传感器1刚度系数;KM——加载电机扭矩常数;KE——加载电机反电动势常数;L——电机励磁电感;Rs——电机定子电阻;J——电机轴转动惯量。
G1(s)为加载系统根据输入的电压指令所产生的扭矩,而G2(s)为位置端运动的速度变化所产生的多余扭矩。本文所研究的内容主要是如何实现加载端的扭矩跟随实时性,不考虑位置端的运动,即研究目标系统开环传递函数。传递函数中各参数见表1所列。
表1 开环传递函数参数
将表1参数带入式(2)中得到实际控制对象的传递函数为
(4)
(5)
本文所设计的基于模拟退火的粒子群-模糊神经网络PID控制器结构如图3所示。
图3 基于模拟退火的粒子群-模糊神经网络PID控制器结构示意
图3中rin(t)为t时刻的输入扭矩信号,u(t)为t时刻PID控制器输出控制量信号,yout(t)为t时刻的电机输出扭矩信号。模糊神经网络采用“双输入三输出”结构[9]: 输入为e(t),ec(t),其中e(t)表示t时刻的扭矩信号误差值,ec(t)扭矩信号误差变化率;KP,KI,KD分别为增量式PID控制参数。
PID控制作为一种常用的控制算法,其控制器输出为[10]
(6)
式中:KP——比例系数;KI——积分系数;KD——微分系数。
在实际应用中,由于计算机控制属于采样控制,需要将上式离散化,得到增量式PID控制算法,其控制规律如下:
u(t)=u(t-1)+Δu(t)
(7)
Δu(t)=KP(e(t)-e(t-1))+KIe(t)+
KD(e(t)-2e(t-1)+e(t-2))
(8)
式中:KI=KP/TI;KD=KPTD。
PID控制器的控制效果由KP,KI,KD决定,传统的PID控制器采用手动的方法进行调节,该方法受操作者的调节经验影响,且耗时耗力。
本文所用的模糊神经网络为基于Mamdani 模型的模糊神经网络[11],结构如图4所示,各层节点功能分述如下。
图4 模糊神经网络结构示意
2.2.1输入层
第1层为输入层,其中节点为输入节点,每个节点与输入变量相连接,该层中节点功能仅为将输入信号传递至下一层。在本文中,输入变量为X1=e(t)(扭矩信号误差值),X2=ec(t)(扭矩信号误差变化率)。
2.2.2隶属度函数层
第2层为隶属度函数层,其中节点功能为对第1层输入变量进行模糊处理,该层的单个节点表示输入变量的1个模糊子集及对应隶属度函数,本文中所选用的隶属度函数为高斯函数:
(9)
式中:mji,σji——输入变量Xi的第j个隶属度函数(高斯函数)的均值与标准差;N——每个输入的模糊子集个数。
2.2.3模糊推理层
第3层为模糊推理层,其中每个节点代表了1条模糊规则的前件,该层中每个节点本质上为1个乘法器,将输入信号相乘,并且输出乘积结果。
模糊规则如式(10)所示:
(10)
k=1, 2, …,N2
j1=1, 2, …,N
j2=1, 2, …,N
式中:μk——第k条模糊规则输出。
2.2.4归一化层
第4层进行归一化运算,调整网络整体结构。
(11)
(12)
2.2.5输出层
第5层为输出层,使用重心法解模糊,该层输出即为增量式PID控制器中的KP,KI,KD。
(13)
(14)
使用BP算法可将性能指标函数降至最小。
各参数学习公式如式(15)~式(17)所示:
(15)
(16)
(17)
式中:η——学习速率;α——动量因子。
粒子群优化算法—PSO(particle swarm optimization)算法是一种进化计算技术,由Eberhart博士与Kennedy博士于1995年发明[13],该算法源于对鸟群捕食的行为进行研究,PSO算法与遗传算法相类似,是一种基于迭代的优化算法。
该算法在N维可行解空间中初始化m个粒子X=(X1,X2,X3, …,Xm),每个粒子都代表极值优化问题的一个潜在最优解,粒子根据当前的最优粒子在可行解空间中搜索,通过迭代找到最优解,假设n维空间中第i个粒子位置为Xi=(xi1,xi2,xi3, …,xin),飞行速度Vi=(vi1,vi2,vi3, …,vin),每个粒子将搜索过程中最优位置记为pbest,Pi=(pi1,pi2,pi3, …,pin),将整个粒子群中最优位置记为gbest,Pg即指gbest是pbest中的最优值,每次迭代过程中每个粒子通过对应的pbest与gbest的值,再根据式(18)~式(19)来更新自己的位置与速度。
vij(t+1)=vij(t)+c1r1[pij-xij(t)]+
c2r2[pgj-xij(t)]
(18)
xij(t+1)=xij(t)+vij(t+1)
i=1, 2, …,m
j=1, 2, …,n
(19)
式中:c1,c2——正的学习因子或加速度因子;r1,r2——均匀分布于[0, 1]内的随机数。
由于粒子群算法存在陷入局部最优的问题,本文选用模拟退火粒子群算法(SAPSO)进行改进。
SAPSO算法在搜索过程中会以概率接受较差的解,这种概率受到温度参数的控制,随着温度的下降而减小,能够有效地跳出在搜索过程中陷入的局部最小值。
(20)
退火温度按照式(21)更新:
Tt+1=λTt
(21)
式中:f(Pg)——当前整体最优值Pg的适应度值;λ——退火常数。
根据式(22)计算出当前温度Tt下各个Pi的适配值:
(22)
vij(t+1)=χ{vij(t)+c1r1[Pij-xij(t)]+c2r2[P′gj-xij(t)]}
(23)
xij(t+1)=xij(t)+vij(t+1)
(24)
更新各粒子的速度与位置后,根据式(21)更新退火温度。
两种粒子群算法的适应度函数如式(25)所示:
(25)
式中:e(i)——系统误差;u2(i)——控制量的平方;tr——上升时间;ω1,ω2,ω3,ω4——权重系数,其中ω4为防止系统超调量过大所采取的惩罚因子。
本文中:
(26)
使用SAPSO算法表示本文所设计的结合模拟退火、基本粒子群算法、模糊神经网络的控制器。其基本流程如图5所示。
图5 SAPSO算法基本流程示意
通过Matlab对蜗轮蜗杆试验机的加载部分进行仿真,利用SAPSO算法和PSO算法[14]对模糊神经网络初始参数进行离线优化,比较两种算法在优化过程中适应度曲线的下降情况,再将优化所得初始参数带入控制器中,与基本PID控制器在阶跃信号输入的条件下进行比较。使用阶跃信号进行实验加载,通过实验验证算法在实际上中的可行性。
仿真中所用模糊神经网络为5层“双输入三输出”,每层的神经元个数为2,18,81,81,3,相关参数分别为: 神经网络的学习速率η=0.2,动量因子α=0.02,网络权重ωij∈[-1, 1],隶属度函数宽度bij∈[-40, 40],隶属度函数中间值cij∈[-96, 96]。神经网络学习迭代次数为500。SAPSO中群体个数m=300,空间维数n=243,加速度因子c1,c2均为2.05,SAPSO算法的迭代次数为300,退火常数λ=0.9,粒子的移动速度vmax=0.5,vmin=-0.5。使用Matlab进行仿真,PSO算法与SAPSO算法优化过程中的适应度曲线如图6所示。
图6 寻优过程示意
由图6可以看出,由于SAPSO算法会在一定概率上接收较差的值,导致在适应度值下降速度方面,SAPSO算法稍慢于PSO算法,但同时由于SAPSO算法具有较强的跳出局部最优解的能力,使得SAPSO算法所求最优解的精度高于PSO算法,改善了PSO算法本身的不足,更好地跳出局部最优解。将SAPSO与PSO两种算法带入模糊神经网络PID控制器中,比较阶跃输入信号在各个算法下的响应,仿真结果如图7所示,阶跃响应仿真性能指标见表2所列。
由图7与表2可以看出基本PID算法下的响应较差,上升时间最长,且存在超调量。相比于PSO-FNN,SAPSO-FNN算法响应速度更快,且超调量更小。
图7 三种阶跃响应仿真示意
算 法M-max/(N·m)超调量,%上升时间/sPID1.01831.830.027PSOFNN1.00030.030.020SAPSOFNN1.00010.010.014
使用TwinCAT3软件中的ST语言进行编程,实现对加载电机的扭矩加载控制,输入幅值为0.5 N·m的阶跃信号,比较基本PID,PSO-FNN以及SAPSO-FNN的控制结果。其中PSO-FNN和SAPSO-FNN中的模糊神经网络参数初始值采用上一部分仿真的优化结果如图8所示,实验中各个算阶跃响应参数见表3所列。
图8 三种阶跃响应优化结果示意
表3 阶跃响应实验性能指标
由图8与表3可知,在控制加载电机的扭矩加载时,使用SAPSO-FNN的控制效果最佳,相比于基本PID,PSO-FNN,SAPSO-FNN算法具有调整时间短、上升时间短且超调量较小的优点,验证了本文所设计的SAPSO-FNN控制算法的可行性。
1)电动式加载系统采用了减速器来增大输出转矩,引入了摩擦、间隙等非线性环节。基本PID控制器对于这些问题的控制效果较差,将模糊神经网络与PID控制器相结合,产生的模糊神经网络PID控制器对于该类问题的解决性较好。
2)模糊神经网络PID控制器受初值影响较大,考虑使用基本粒子群算法进行参数优化易陷入局部最优,使用将模拟退火与粒子群算法相结合的基于模拟退火的粒子群算法进行参数优化。
3)使用Matlab软件仿真,通过适应度函数的下降大小证明: 基于模拟退火的粒子群算法相比于基本粒子群算法在优化问题上具有跳出局部最优解的能力。
4)通过搭建蜗轮蜗杆试验台证明控制算法在实际中的可行性与SAPSO-FNN控制算法相比于PSO-FNN的优越性。