闫 锋,张延风,韦 悠,杨 静
(西安现代控制技术研究所,西安 710065)
电机控制普遍采用PID控制,PID参数由人工整定,由于负载特性以及其他非线性因素影响,很难获得满意的控制效果。通过机器学习训练神经网络,使神经网络模型获得一定的自适应能力,采用梯度下降反向传播算法获得电机最优控制参数,进而克服被控对象的不确定性以及随机扰动的影响。
电机控制系统基本原理如图1所示,一般为三环控制,即电流环、速度环和位置环。电流环可提高系统的快速性,及时抑制力矩扰动及电流波动,使系统有足够大的加速转矩,并且保障系统安全运行。速度环主要增强系统抗负载扰动的能力,抑制速度波动。位置环主要保证系统静态精度和动态跟踪的性能,直接关系到系统的稳定和高性能运行。位置环内部输出是速度环的设定,位置控制模式下系统进行了三环运算,此时系统运算量最大,动态响应速度最慢。
图1 电机控制系统基本原理框图
电机控制用到经典的PID算法,基于位置控制的PID算法为[1]:
(1)
图2 PID算法的神经元表示
3个连接参数分别为ω1、ω2、ω3,偏移参数为b。
神经元的输出为:
(2)
令激活函数y2=f(x)=x,b=0,则上式神经元输出即为PID算法输出。
图2是由一个神经元构成的神经网络,使用该神经元可以建立复杂神经网络,如图3所示。该神经网络包括10个节点组成的输入层、3个神经元组成的中间层、1个神经元组成的输出层。
输入层10个节点分别为Δθ0、Δθ1、…、Δθ9,其中Δθ0代表当前时刻的位置误差,Δθ1代表第1次前采样时刻的位置误差,Δθ9代表第9次前采样时刻的位置误差;中间层由u1、u2、u3三个神经元组成,输出层由u4组成,每个神经元均与前一层全连接,激活函数均为y=f(x)=x,偏移参数b均为0。ωij表示神经元i与前一层节点j连接参数。
中间神经元u1与前一层的连接参数为ω10、ω11、…、ω19,当ω10=1,其余的ω11~ω19均为0,神经元u1可近似为比例神经元,连接参数ω41便是比例参数P;中间神经元u2与前一层的连接参数为ω20、ω21、…、ω29,当ω20~ω29均为1,神经元u2可近似为积分神经元,连接参数ω42便是积分参数I;中间神经元u3与前一层的连接参数为ω30、ω31、…、ω39,当ω30=1,ω31=-1,ω32~ω39均为0,神经元u3可近似为微分神经元,连接参数ω43便是微分参数D。
图3所示的神经元网络包括PID算法,对该神经网络进行训练,如果PID算法为最优,则该神经网络收敛到PID算法;如果PID算法不是最优,那么该神经网络将收敛至另一个最优算法。图3神经网络中间层神经元的激活函数均为线性函数,可以证明,中间层均是线性神经元的全连接神经网络,等价于去掉该中间层的全连接神经网络。于是图3的神经网络等价于图4所示的神经元网络。
图3 PID算法的复杂神经网络
图4 无中间层的全连接神经网络
图4所示的神经网络与图3所示的神经网络等价,神经元u1的激活函数为y=f(x)=x,b仍为0,神经元u1与输入层的连接参数为ω0、ω1、…、ω9。
神经元u1的输出为:
y=ω0×Δθ0+ω1×Δθ1+ω2×Δθ2+
ω3×Δθ3+…+ω9×Δθ9
(3)
该神经网络根据最近10次的位置误差输出信号控制电机运动。
以已建立的基于神经网络的电机控制系统为对象,为得到该网络的连接参数,使该神经网络收敛到最优,可通过机器学习对神经网络进行训练[2-6]。
机器学习主要分为3个步骤:1)建模:寻找一系列函数来实现预期的功能,这里采用的是图4所示的神经网络。2)评估:通过建立一个损失函数,找出合理的评价标准评估函数的好坏。3)优化:快速找到性能最佳的函数,文中采用梯度下降的反向传播算法寻找最佳函数。
通过机器学习得到最佳参数,需要大量数据,在电机控制领域,可以通过电机驱动传动机构产生有规律的动作,采集位置传感器的数值,得到所需的数据。
伺服控制系统框图如图5所示,θ为位置控制指令值,θ′为位置传感器的返回值,Δθ=θ′-θ。设控制指令值θ为正弦波,周期为T,幅值为A,假设每一秒100组数据,每一秒钟可以得到100组的Δθ,θ′,θ。
图5 伺服控制系统框图
第一组输入数据为:Δθ0、0、0、…、0,第二组输入数据为:Δθ1、Δθ0、0、…、0,第三组输入数据为:Δθ2、Δθ1、Δθ0、…、0,第10组输入数据为:Δθ9、Δθ8、Δθ7、…、Δθ0,第100组输入数据为:Δθ99、Δθ98、Δθ97、…、Δθ90。
第一组对应的误差为:δ0=Δθ0,第二组对应的误差为:δ1=Δθ0+Δθ1,第三组对应的误差为:δ2=Δθ0+Δθ1+Δθ2,第10组对应的误差为:δ9=Δθ0+Δθ1+Δθ2+…+Δθ9,第100组对应的误差为:δ99=Δθ90+Δθ91+Δθ92+…+Δθ99。
把批处理BATCH量设为100,那么每100组数据就可以更新一次参数,即每一秒钟更新迭代一次。把上述输入数据及对应的误差用矩阵来表示:
输入矩阵为10×100的矩阵:
(4)
误差矩阵为1×100的矩阵:[δ0δ1δ2…δ9…δ99]T
(5)
评价函数采用均方根误差函数:
(6)
对于该控制系统,最优参数即是使E最小的参数,可以采用经典的梯度下降反向传播算法不断迭代参数,直到找到最优参数(ω0、ω1、…、ω9)。
通过不断改变正弦波的周期T、幅值A,就可以让模型适合于各种动态过程,各种慢速、快速运动状态。
对某直流伺服控制系统进行建模,系统构成如图4所示,使用Simulink对模型进行离散化,并使用以上算法进行仿真试验[7]。输入幅值为5°阶跃信号,获得伺服系统的阶跃特性曲线分别如图6和图7所示,可以看出,神经网络PID能够有效抑制超调,缩短调整时间,让系统更快到达稳态。
图6 传统PID的阶跃响应曲线
图7 神经网络PID的阶跃响应曲线
再输入频率60 rad/s,幅值为5°的正弦信号,获得伺服系统的响应曲线(见图8),可以看出,使用神经网络PID能够使系统获得更高的相频宽,提高了系统的响应速度。
图8 系统在正弦输入信号下的响应曲线
为了验证电机神经网络控制算法的效果,依托实验室已有项目搭建了基于TMS320F28335DSP的电机控制平台,其结构组成示意图如图9所示,分别使用传统PID控制策略和基于神经网络PID控制策略进行了阶跃响应实验。由上位机发送位置指令给该控制平台,控制平台同时接收位置传感器发送的当前位置信息,送入DSP控制器组装件,经过算法运算处理后,信号送到速度环,驱动电机运动。
通过测试可以看出,采用传统PID控制下的对5°角偏差阶跃输入信号,达到稳态值95%范围内,调节时间小于50 ms,超调量等于5%,输出超调较大,调整时间较长。神经网络PID控制下的对5°角偏差阶跃输入信号,达到稳态值95%范围内,调节时间小于35 ms,超调量为零,说明基于神经网络PID的电机控制策略可以明显提高伺服系统的动态特性和静态特性。
图9 电机控制平台结构组成示意图
在传统PID算法的基础上,提出了一种电机神经网络控制算法,该算法通过机器学习训练神经网络,使神经网络模型获得一定的自适应能力,采用梯度下降反向传播算法获得电机最优控制参数。仿真和实验结果表明:神经网络PID控制策略能够有效抑制超调,缩短调整时间,提高系统响应速度,能克服被控对象的不确定性以及随机扰动的影响,控制效果得到明显提升。