韩治国 林煜 张今 淡春乔 李伟
摘 要:针对直线二级倒立摆抗干扰控制器设计问题,研究了基于深度神经网络的智能控制方法。首先介绍了BP神经网络和深度神经网络模型及优化算法,并且根据直线二级倒立摆状态方程,研究了基于深度神经网络的直线二级倒立摆控制算法。然后设计了一个六输入单输出的深度神经网络控制器模型,并利用Pytorch框架,以LQR作为导师进行神经网络的训练,训练完成后利用
MATLAB软件对训练后的神经网络进行仿真实验验证,并与BP神经网络控制器进行对比,最后在直线二级倒立摆实验平台上进行实验验证。仿真与实验表明,所设计的深度神经网络控制器能够实现直线二级倒立摆的良好抗干扰控制,从而证明了该研究设计方法的合理性和有效性。
关键词:深度神经网络;直线二级倒立摆;LQR控制;MATLAB仿真
中图分类号:TP 273
文献标识码:A 文章编号:1672-7312(2022)03-0298-08
Controller Design of Linear Two-stage Inverted Pendulum
Based on Deep Neural Network
HAN Zhiguo,LIN Yu,ZHANG Jin,DAN Chunqiao,LI Wei
(School of Aeronautics,Northwestern Polytechnical University,Xi’an 710072,China)
Abstract:Aiming at the design of anti-jamming controller for linear two-stage inverted pendulum,
an intelligent control method based on deep neural network is studied.In this paper,BP neural
network and deep neural network models and optimization algorithms are introduced.According to
the state equation of linear two-level inverted pendulum,the control algorithm of linear
two-level inverted pendulum based on deep neural network is studied.By designing a deep neural
network controller model with six inputs and one output,the Pytorch framework is used to train
the neural network with LQR as a mentor.The network controller is compared,and finally the
experimental verification is carried out on the linear two-stage inverted pendulum experimental
platform.Simulation and experiments show that the designed deep neural network controller can
achieve good anti-interference control of the linear two-stage inverted pendulum,which proves
the rationality and effectiveness of the design method in this paper.
Key words:deep neural network;linear two-stage inverted pendulum;LQR control;MATLAB
simulation
0 引言
直线型二级倒立摆实验系统具有非线性、不稳定、多变量和强耦合等特点,又因为其结构简单、成本较低,是开展控制理论教学和实验的理想平台[1-2]。因为摆杆和滑块的稳定性可以直观地体现出控制策略的效果,所以通过倒立摆实验系统可以验证新设计的控制方法的稳定性、抗干扰能力和鲁棒性等特性,并且倒立摆的相关控制算法已应用于机器人、航天、军工以及一般工业生产过程等诸多领域。因此,对直线二级倒立摆系统的控制方法研究具有重要的实际和理论意义。
智能控制是控制理论发展的高級阶段,是人工智能和控制理论结合的产物,主要用于解决用传统控制方法难以解决的复杂非线性系统控制问题[3]。人工神经网络是人工智能领域的研究热点之一,它通过将人脑的神经元网络抽象,建立某种数学模型模拟神经元的活动,以达到某种信息处理的功能。BP神经网络是一种基于误差反向传播神经网络算法的多层前馈神经网络,具有很强的非线性映射能力,主要应用在分类问题、函数拟合和模式识别等方面。
为此,首先介绍BP神经网络和深度神经网络模型及优化算法,分析直线二级倒立摆的状态空间方程,并在此基础上研究深度神经网络的二级倒立摆控制算法,设计一个六输入单输出的三隐层神经网络控制器。然后通过Pytorch框架以LQR作为导师进行神经网络的训练,训练完成后利用MATLAB软件对训练后的神经网络进行仿真实验验证,并与BP神经网络控制器进行对比,最后在前海格致直线二级倒立摆实物进行验证,以验证深度神经网络的在二级倒立摆控制中的有效性和优越性。
1 神经网络模型及优化方法
1.1 BP神经网络
BP(back-propagation)神经网络是一种传统的神经网络,其主要特点是信号前向传递和误差反向传播。信号通过输入层、隐含层的处理,从输出层输出,并将输出和期望输出的误差反向传播,调整网络的参数,使其不断逼近期望输出[4]。
设神经网络的输入为x=(x1,x2,…,xn)T,隐含层有m个节点,隐含层的激活函数为g,于是可得隐含层的输出为
式中:x′i为隐含层第i个节点的输出;wij为输入层第j个节点与隐含层第i个节点的连接权值;bj为隐含层第i个节点的偏置。
BP神经网络中信号的前向传递以上述方式进行,并在输出层得到输出。设输出层有k个节点,第i个节点的输出为yi,期望输出为i,则网络输出与期望输出的均方误差为
为了使均方误差ε尽可能小,最常用的方法为梯度下降法。因为梯度指向函数值增长最快的方向,所以负梯度方向指向函数值减小最快的方向。取步长α,每次沿负梯度方向将可训练参数调整α个单位,即
式中:α为学习率;ω为连接权值。可以证明,选择适当的学习率,BP神经网络的误差会逐渐减小。
1.2 深度神经网络
神经网络(neural network,NN)起源于感知机模型,隐含层的加入和激活函数的扩展是神经网络能够学习复杂非线性模型的基础。传统的机器学习结构一般只有单隐层,而深度神经网络(deep neural network,DNN)是具有多个隐含层结构的神经网络。理论上,单隐层的神经网络就可以拟合任何连续函数,但在大部分情况下,单隐层结构需要比多隐层结构更多隐含层节点,换句话说,网络表现能力与隐含层节点数在宽度上呈线性关系,而在深度上呈指数型关系,所以“深网络”往往比“宽网络”的效率更高[5]。从另一个角度来看,DNN的多隐层结构可以通过对原始数据的逐层特征提取使神经网络对数据的抽象程度提高,令具有更强的学习能力和泛化能力[6-7]。图1是DNN的基本结构。
训练DNN时,当激活函数梯度小于1,误差反向传播时穿越的隐含层越多梯度就会越小,这导致靠近输入层的隐含层训练的很慢(梯度大于1则会导致梯度爆炸,从而使网络不稳定),需要采取残差结构、Relu激活函数等方法提高神经网络的训练效率[8-9]。DNN还容易引起过拟合问题,即神经网络在训练过程中受到噪声、训练样本不足等因素的影响导致其复杂度高于实际模型的复杂度,这将降低模型的泛化能力,表现为DNN在测试集上的表现远不如其在训练集上的表现,通常可以采取增加样本数量、正则化、Dropout、提前终止训练等方法避免过拟合的发生[10]。
1.3 梯度下降算法
深度学习中常用的梯度下降算法有SGD,Momentum,RMSprop,Adam等。Momentum算法模拟了动量的概念,积累历史的梯度来代替当前的真实梯度,这种算法在前期能较好的加速,在后期能一定程度上抑制振荡。RMSprop算法能使在参数空间较为平缓的方向上的学习加快,而较为陡峭的方向上的学习减缓[11]。Adam算法为结合了RMSProp算法和Momentum的梯度下降算法,并增加了偏差修正,故2.3节中选择了Pytorch中的Adam算法,具体计算过程见式(4)
2 基于深度神经网络的控制算法实现
2.1 直线二级倒立摆模型构建
在忽略空气阻力和所有的摩擦力并将两级摆杆均视为刚体的情况下,可以将整个直线型二级倒立摆系统抽象简化为由小车、两级摆杆和两级摆杆连接处的质量块组成的刚性系统。在惯性坐标系内采用Lagrange方法建立二级倒立摆的动力学方程,建模所涉及的系统参数见表1,二级倒立摆动力学方程组见式(5)。
2.2 训练数据生成
由于采用人工神经网络监督学习的学习方式,且线性二次型最优控制器(LQR)在二级倒立摆的控制问题上表现较好[12-16],所以选择LQR作为学习对象。根据二级倒立摆系统的线性化状态空间方程,可利用MATLAB中的lqr函数求出最优的反馈增益矩阵K
式中:矩阵Q和R分别是对系统状态变量和输入的加权矩阵,用以构成二次型目标函数,取
Q=diag(10,150,200,5,30,15),R=1。
在控制过程中采集二级倒立摆系统的输出值和控制器的输出值作为训练样本。
在人工神经网络的训练中,数据分布会对训练产生影响,神经网络的输入数据范围较大会导致神经网络收敛慢、训练时间长。同时,在深度神经网络中,数据在经过上一层网络的变换后,其分布会发生变化,这会给下一层网络学习带来困难,同时在误差反向传播过程中,可能会出现梯度消失的问题,也会导致收敛慢。因此,需要在神经网络中增加数据处理的过程。归一化是一种常用的数据处理方式,但将数据处理成標准正态分布会导致神经网络学习不到输入数据的特征,所以在归一化中加入了可训练的偏移量和缩放量[17],使数据保留原始的特征,计算过程为
式中:xi为批量数据中第i个数据;μB为批量数据的均值;σ2B为批量数据的方差;yi是第i个数据的处理结果。
这种数据处理方式还可以应用在隐含层之间,提高DNN的训练速度,降低过拟合。
2.3 深度神经网络构建与训练
Pytorch是一种深度学习框架,提供了GPU加速的张量计算和包含自动求导系统的深度神经网络。使用Pytorch框架搭建的全连接神经网络如图2所示。
其中,二级倒立摆系统的6个状态变量作为输入,3个隐含层均有9个节点,激活函数选择1.2节提到的Relu激活函数的变体ELU函数,其公式为
使用ELU函数能使激活函数在x>0时导数为1,能一定程度上解决误差反向传播时的梯度消失问题。
考虑到输出量u为正和为负的概率相等,所以设最后一层网络的偏置为0,并且二级倒立摆系统的状态变量平均值应该为0,故第一次数据标准化处理时将偏移量β恒取为零。
损失函数设计为1.1节中介绍的均方误差损失函数加上偏差与期望比值的绝对值,即
设计右式第二项的目的是当被控系统接近稳定时(即控制器输出较小时),神经网络的输出能更接近期望输出。优化器选择Adam优化器,具体算法流程在1.3节有所介绍。
在pytorch中实现深度神经网络的流程如图3所示。
基于Pytorch的深度神经网络训练程序核心内容为
使用tensorboard工具包观察神经网络的训练过程,神经网络的输出与期望输出的均方误差变化曲线如图4所示。
可以看出,损失函数值随迭代次数增加而不断减小,最终收敛到小于0.1。
2.4 倒立摆控制仿真
根据倒立摆数学模型和训练完成的DNN控制器在MATLAB中搭建二级倒立摆控制系统仿真模型,运行仿真模型,并与单隐层神经网络控制器性能进行对比。图5~图7给出了二级倒立摆小车位移s、下摆杆偏离铅垂线的角度θ1和上摆杆偏离铅垂线的角度θ2的仿真曲线。
可以看出,DNN的二级倒立摆控制器能实现对二级倒立摆的稳定控制,并且在下摆杆角度和上摆杆角度的控制性能明显好于单隐层控制器,并且控制消耗的能量也少于单隐层控制器(约为单隐层控制器的80%),但在小车位移的控制上要差于单隐层控制器。
在仿真进行10 s后增加一个扰动,DNN控制器和單隐层神经网络控制器仿真控制曲线如图8~图12所示。可以看出,在加入相同的扰动后,DNN控制出现的波动小于单隐层控制。说明了该控制方法的有效性和可行性。
为了验证被控系统参数具有偏差时DNN控制器的鲁棒性,对仿真时被控系统参数做出如下调整
DNN控制器和单隐层控制器的参数不变,对比仿真结果如图13~图16所示。
可以看出,在被控系统参数存在相同的偏差时,DNN控制器的控制效果好于单隐层控制器,说明了DNN控制器具有较强的鲁棒性。
2.5 二级倒立摆实物控制
由前海格致直线二级倒立摆实物进行实物验证。运行直线二级倒立摆VC实时控制程序,将上下两摆杆同时提升至平衡位置附近后松手,当摆角均小于14°时触发平衡控制程序。运行中的二级倒立摆系统实物如图17所示。
程序运行后,上下摆杆能保持较稳定的直立状态,小车在一定范围内左右运动,并且给摆杆施加一个合适的小扰动后,该系统也能很快恢复平衡状态。实验证明了DNN控制器设计的有效性和鲁棒性。
3 结论
1)构建了深度神经网络模型与直线二级倒立摆数学模型,利用LQR控制作为深度神经网络训练导师,实现对深度神经网络训练与优化。
2)针对构建的神经网络控制器,通过仿真与实验验证了深度神经网络控制器设计方法在直线二级倒立摆控制中的有效性和合理性。同时,通过增加扰动的仿真实验,验证了深度神经网络控制器的鲁棒性和稳定性。
参考文献:
[1] 邓晓刚,杨明辉.面向现代控制理论实验教学的倒立摆虚拟仿真系统[J].实验室研究与探索,2017,36(05):79-83.
[2]孙蓉,李冰,陈美远,等.基于环形倒立摆的综合实训平台[J].实验技术与管理,2014,31(09):87-90.
[3]NORIEGA J R,WANG H.A direct adaptive neural-network control for unknown nonlinear systems and its application[J].IEEE Transactions on Neural Networks,1998,9(01):27-34.
[4]KUPERSTEIN M.Neural controller for adaptive sensory-motor coordination[J].Neural Networks,1991,4(02):131-145.
[5]BATENI S,JENG D,MELVILLE B.Bayesian neural networks for prediction of equilibrium and time-dependent scour depth around bridge piers[J].Advances in Engineering Software,2007,38(02):102-111.
[6]YAROTSKY D.Error bounds for approximations with deep ReLU networks[J].Neural Networks,2017,94:103-114.
[7]ZHANG C,BENGIO S,HARDT M,et al.Understanding deep learning(still)requires rethinking generalization[J].Communications of the ACM,2021,64(03):107-115.
[8]牟晋娟.深度神经网络中激活函数的研究[J].电脑编程技巧与维护,2019(12):59-61.
[9]PATEL V,GEORGE N V.Nonlinear active noise control using spline adaptive filters[J].Applied Acoustics,2015,93(07):38-43.
[10]NJOCK P G A,SHEN S L,ZHOU A N,et al.Artificial neural network optimized by differential evolution for predicting diameters of jet grouted columns[J].Journal of Rock Mechanics and Geotechnical Engineering,2021,13(06):1500-1512.
[11]TONG Y Q,CHENG B J,MIAO Y Q,et al.Analysis and elimination of tri-band beacon interference with the fluxgate sensors onboard CSES[J].Science China(Technological Sciences),2021,64(10):2328-2336.
[12]马婷婷.基于直线二级倒立摆稳定控制方法的研究[D].西安:西安电子科技大学,2014.
[13]任祖华.倒立摆系统的智能控制研究[D].武汉:华中科技大学,2006.
[14]孙大卫,曾静,张国良.基于卡尔曼滤波的一级倒立摆LQR控制研究[J].实验技术与管理,2007,24(02):37-40.
[15]韩亚军.基于线性二次最优LQR的直线倒立摆控制系统研究分析[J].电气传动自动化,2012,34(03):22-25.
[16]高岩,雍容.倒立摆控制实验系统中的算法研究[J].实验技术与管理,2005,22(05):20-24.
[17]CAO K,HUANG B,WANG S W,et al.Sustainable land use optimization using Boundary-based Fast Genetic Algorithm-Science Direct[J].Computers,Environment and Urban Systems,2012,36(03):257-269.
(责任编辑:张 江)
收稿日期:2022-02-17
基金项目:航空科学基金项目(20180153002,20200001053001)
作者简介:韩治国(1986—),男,陕西西安人,博士,副研究员,主要从事控制系统设计方面的研究工作。