一种基于神经网络的电机控制算法

  • 闫锋 ,
  • 张延风 ,
  • 韦悠 ,
  • 杨静
展开
  • 西安现代控制技术研究所,西安 710065

闫锋(1978-),男,陕西西安人,高级工程师,硕士,研究方向:伺服控制技术。

收稿日期: 2020-06-08

  网络出版日期: 2025-05-30

A Motor Control Algorithm Based on Neural Network

  • YAN Feng ,
  • ZHANG Yanfeng ,
  • WEI You ,
  • YANG Jing
Expand
  • Xi’an Modern Control Technology Research Institute, Xi’an 710065, China

Received date: 2020-06-08

  Online published: 2025-05-30

摘要

由于电机负载特性以及其他非线性因素影响,传统PID控制很难获得满意的效果,为此提出了一种基于神经网络的电机控制算法。通过机器学习训练神经网络,使神经网络模型获得一定的自适应能力,采用梯度下降反向传播算法获得电机最优控制参数。仿真和实验结果表明:神经网络电机控制算法能够有效抑制超调,缩短调整时间,提高系统响应速度,克服被控对象的不确定性以及随机扰动的影响,控制效果明显提升。

本文引用格式

闫锋 , 张延风 , 韦悠 , 杨静 . 一种基于神经网络的电机控制算法[J]. 弹箭与制导学报, 2020 , 40(6) : 116 -118 . DOI: 10.15892/j.cnki.djzdxb.2020.06.027

Abstract

Due to the load characteristics of the motor and other nonlinear factors, it is difficult for traditional PID to obtain satisfactory control effect. A motor neural network control algorithm was put forward. The network was trained with machine learning algorithm and neural network model obtain certain adaptive ability. The gradient descent back propagation algorithm is used to obtain the optimal control parameters of the motor. Simulation and experimental results show that it can effectively suppress overshoot, shorten adjustment time, improve system response speed and overcome the uncertainty of controlled object and the influence of random disturbance. The control effect was significantly improved.

0 引言

电机控制普遍采用PID控制,PID参数由人工整定,由于负载特性以及其他非线性因素影响,很难获得满意的控制效果。通过机器学习训练神经网络,使神经网络模型获得一定的自适应能力,采用梯度下降反向传播算法获得电机最优控制参数,进而克服被控对象的不确定性以及随机扰动的影响。

1 电机控制系统基本原理

电机控制系统基本原理如图1所示,一般为三环控制,即电流环、速度环和位置环。电流环可提高系统的快速性,及时抑制力矩扰动及电流波动,使系统有足够大的加速转矩,并且保障系统安全运行。速度环主要增强系统抗负载扰动的能力,抑制速度波动。位置环主要保证系统静态精度和动态跟踪的性能,直接关系到系统的稳定和高性能运行。位置环内部输出是速度环的设定,位置控制模式下系统进行了三环运算,此时系统运算量最大,动态响应速度最慢。
图1 电机控制系统基本原理框图

2 电机控制系统神经元模型

电机控制用到经典的PID算法,基于位置控制的PID算法为[1]:

y1=P×Δθ+I 0 t  Δθdt+D d Δ θ d t

式中:P为比例参数;I为积分参数;D为微分参数;Δθ为位置误差; 0 t  Δθdt为位置误差积分; d Δ θ d t为位置误差微分。
式(1)PID算法可用神经元来表示,如图2所示。该神经元的3个输入节点分别为Δθ 0 t  Δθdt d Δ θ d t
图2 PID算法的神经元表示
3个连接参数分别为ω1ω2ω3,偏移参数为b
神经元的输出为:
y2=f(ω1×Δθ+ω2× d Δ θ d t+ω3× 0 t  Δθdt+b)
令激活函数y2=f(x)=x,b=0,则上式神经元输出即为PID算法输出。
图2是由一个神经元构成的神经网络,使用该神经元可以建立复杂神经网络,如图3所示。该神经网络包括10个节点组成的输入层、3个神经元组成的中间层、1个神经元组成的输出层。
图3 PID算法的复杂神经网络
输入层10个节点分别为Δθ0、Δθ1、…、Δθ9,其中Δθ0代表当前时刻的位置误差,Δθ1代表第1次前采样时刻的位置误差,Δθ9代表第9次前采样时刻的位置误差;中间层由u1u2u3三个神经元组成,输出层由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所示的神经元网络。
图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

该神经网络根据最近10次的位置误差输出信号控制电机运动。

3 电机控制的神经网络训练

以已建立的基于神经网络的电机控制系统为对象,为得到该网络的连接参数,使该神经网络收敛到最优,可通过机器学习对神经网络进行训练[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的矩阵:
$\left[\begin{array}{ccccc} \Delta \theta_{0} & 0 & 0 & \cdots & 0 \\ \Delta \theta_{1} & \Delta \theta_{0} & 0 & \cdots & 0 \\ \Delta \theta_{2} & \Delta \theta_{1} & \Delta \theta_{0} & \cdots & 0 \\ \vdots & \vdots & \vdots & & \vdots \\ \Delta \theta_{9} & \Delta \theta_{8} & \Delta \theta_{7} & \cdots & \Delta \theta_{0} \\ \vdots & \vdots & \vdots & & \vdots \\ \Delta \theta_{99} & \Delta \theta_{98} & \Delta \theta_{97} & \cdots & \Delta \theta_{90} \end{array}\right]$

误差矩阵为1×100的矩阵:[δ0 δ1 δ2δ9δ99]T

评价函数采用均方根误差函数:

E= 1 2 i = 0 99 Δ θ i 2

对于该控制系统,最优参数即是使E最小的参数,可以采用经典的梯度下降反向传播算法不断迭代参数,直到找到最优参数(ω0ω1、…、ω9)。
通过不断改变正弦波的周期T、幅值A,就可以让模型适合于各种动态过程,各种慢速、快速运动状态。

4 仿真与实验

4.1 系统仿真

对某直流伺服控制系统进行建模,系统构成如图4所示,使用Simulink对模型进行离散化,并使用以上算法进行仿真试验[7]。输入幅值为5°阶跃信号,获得伺服系统的阶跃特性曲线分别如图6图7所示,可以看出,神经网络PID能够有效抑制超调,缩短调整时间,让系统更快到达稳态。
图6 传统PID的阶跃响应曲线
图7 神经网络PID的阶跃响应曲线
再输入频率60 rad/s,幅值为5°的正弦信号,获得伺服系统的响应曲线(见图8),可以看出,使用神经网络PID能够使系统获得更高的相频宽,提高了系统的响应速度。
图8 系统在正弦输入信号下的响应曲线

4.2 实验验证

为了验证电机神经网络控制算法的效果,依托实验室已有项目搭建了基于TMS320F28335DSP的电机控制平台,其结构组成示意图如图9所示,分别使用传统PID控制策略和基于神经网络PID控制策略进行了阶跃响应实验。由上位机发送位置指令给该控制平台,控制平台同时接收位置传感器发送的当前位置信息,送入DSP控制器组装件,经过算法运算处理后,信号送到速度环,驱动电机运动。
图9 电机控制平台结构组成示意图
通过测试可以看出,采用传统PID控制下的对5°角偏差阶跃输入信号,达到稳态值95%范围内,调节时间小于50 ms,超调量等于5%,输出超调较大,调整时间较长。神经网络PID控制下的对5°角偏差阶跃输入信号,达到稳态值95%范围内,调节时间小于35 ms,超调量为零,说明基于神经网络PID的电机控制策略可以明显提高伺服系统的动态特性和静态特性。

5 结论

在传统PID算法的基础上,提出了一种电机神经网络控制算法,该算法通过机器学习训练神经网络,使神经网络模型获得一定的自适应能力,采用梯度下降反向传播算法获得电机最优控制参数。仿真和实验结果表明:神经网络PID控制策略能够有效抑制超调,缩短调整时间,提高系统响应速度,能克服被控对象的不确定性以及随机扰动的影响,控制效果得到明显提升。
[1]
张泽旭. 神经网络控制MATLAB仿真[M]. 哈尔滨: 哈尔滨工业大学出版社, 2011:41-42.

[2]
童仲志, 刑宗义, 张媛, 等. 电液伺服系统的神经网络建模方法研究[J]. 高技术通讯, 2009, 19(6):620-626.

[3]
程声烽, 程小华. 神经网络在无刷直流电机控制系统中的应用[J]. 控制与应用技术, 2014, 41(4):12-16.

[4]
党明辉, 郭亮. 基于模糊神经网络PID永磁同步直线电机控制算法研究[J]. 浙江理工大学学报(自然科学版), 2016, 35(1):52-57.

[5]
戴文俊, 蒋慧. 基于模糊神经网络PID的无刷直流电机控制系统研究[J]. 淮南师范学院学报, 2015, 17(91):35-38.

[6]
赵坤, 张伟. 积分分离PID算法在直流电机中的研究应用[J]. 物联网技术, 2016(2):65-70.

[7]
刘金琨. 先进PID控制MATLAB仿真[M]. 北京: 电子工业出版社, 2004:16-17.

文章导航

/