BP神经网络在倒立摆控制中的应用
2010-07-05桑英军范媛媛
桑英军,陈 奇,范媛媛
(淮阴工学院电子与电气工程学院,江苏 淮安 223003)
0 引言
倒立摆系统是时变的、非线性、强耦合、多变量和自然不稳定系统,在控制过程中,它能有效的反映可镇定性、鲁棒性、随动性以及跟踪等许多控制中的关键问题,是检验各种控制理论的理想模型。控制的目标是“摆杆不倒,小车停住”。人工神经网络中的BP算法,在多变量输入情况下具有精度高、实现快、算法简单、鲁棒性好等优点,从而满足了系统的要求。
1 人工神经网络BP算法简介
人工神经网络(ANN)由于具有信息的分布存储、并行处理以及自学习能力等优点,在信息处理、模式识别、智能控制及系统建模等领域得到越来越广泛的应用。近年来,已有多种ANN模型被提出并得以深入研究。其中,80% ~90%的人工神经网络模型是采用BP网络或它的改进形式,它是前向网络的核心部分,体现了网络最精华的部分。标准的BP网络是根据Widrow-Hoff规则,采用梯度下降算法,主要由信息信号的正向传播和误差信号的反向传播两部分组成。图1给出了BP算法的流程图。
但BP网络存在自身的限制与不足,如需要较长的训练时间、会收敛于局部极小值等,使得BP算法在实际应用中不是处处能胜任。为此人们对BP算法进行了许多改进。改进主要有两类:一类采用启发式技术,如附加动量法、自适应学习率法;另一类是采用数字优化技术,如共轭梯度法,拟牛顿法、Levenberg-Marquardt(LM)法。由于LM算法是收敛速度最快的,而且精度也较高,其它算法就相对逊色一些,且经过大量仿真实验分析比较,LM效果最好,所以本文采用LM法对网络进行训练。
图1 BP算法的流程图
LM优化方法权重和阈值更新公式为:
其中J为误差对权值微分的雅可比矩阵,e为误差向量,μ为一个标量。依赖于μ的幅值,该方法光滑地在两种极端情况之间变化:即牛顿法(当μ→0)和著名的最陡下降法(当μ→∞)。采用LM优化方法,可以使学习时间更短,在实际应用中效果较好。但对于复杂的问题,这种方法需要很大的内存。在MATLAB工具箱中,解决了这个问题。
在MATLAB工具箱中带有LM优化方法的训练函数trainlm.m,其训练参数有:训练次数epochs、训练步长show、误差函数指标goal、训练时间time、最小梯度min-grad、减少内存系数mem-reduc以及μ的初始值、增加系数、减小系数和最大值。
2 倒立摆的数学模型
采用固高科技有限公司的直线一级倒立摆为实验控制对象,传递函数:
系统能控性分析:
系统的能控性是控制器设计的前提,故在设计前进行能控性分析。由能控性矩阵 M =[B A2B A3B],在 MATLAB中利用可控性矩阵的 ctrb命令来计算,可以得出 Rank(M)=4,可知系统可控,因此可以对系统进行控制器的设计,使系统稳定。倒立摆参数如表1所示:
表1 倒立摆参数
3 神经网络控制器设计
3.1 训练样本的选取
BP神经网络在未经任何训练的情况下,不能作为系统控制器使用。训练样本数的多少对训练结果有很大影响。样本数越多,网络训练结果越精确,但运行时间加长,计算成本也增加,所以合理选择样本数据非常重要。在实际仿真过程中,我们选择极点配置控制为BP网络的老师进行学习,经过试探训练样本数为2000时结果较为合理,此时样本数据能够反映系统的基本特征,可以得到预期的仿真结果。极点配置控制系统结构如图2所示,极点配置-2+5i、-2-5i、-5+4i、-5-4i;
图2 极点配置控制系统结构
3.2 BP网络结构
在进行BP网络设计前,一般从网络层数、每层神经元数、初始值、以及学习方法等方面来考虑。增加层数主要可以进一步降低误差,提高精度,但同时使网络复杂化。而增加隐含层的神经元数也可提高误差精度,且训练效果更易观察和调整。为了使误差尽可能小,需要合理选择初始权重和偏置,如果太大就容易陷入饱和区,导致停顿,一般应选为均匀分布的小数,介于(-1,1)。
根据需要,在网络初始化时,B P采用0.5*rands函数初始化权值,权值初始值选在(-0.5,0.5),选取训练目标误差为0.0001,训练次数上限为5000次。通过多次仿真实验性能比较,选取[491]的单隐层神经网络结构,隐含层、输出层分别采用tansig、purelin函数,仿真实验表明变学习率训练算法训练时间长,5000次还不能达到所要求的精度,且系统容易发散,控制倒立摆效果不好,采用改进的LM训练算法对网络进行学习训练可以得到较好的控制效果且训练时间短。在实际仿真过程中,BP网络经过53次训练达到训练目标。用Matlab6.5建立BP网络的语句为:
4 BP网络训练结果
图3为BP网控制系统结构,图4为BP网训练误差曲线,图5分别给出了倒立摆小车位移、下摆角度、上摆角度以及控制力的BP算法与极点配置仿真曲线对比图,其中虚线为改进BP算法仿真曲线,实线为极点配置仿真曲线。实验仿真结果表明:相较极点配置,BP算法精度高、实现快、鲁棒性好,倒立摆小车在BP算法下只需2.5s左右就可以达到所设定精度的稳定效果,且超调量很小,满足了系统的要求。
图3 BP网控制系统结构
图4 BP网训练误差曲线
图5 极点配置(实线)与BP(虚线)控制位置、摆角、控制力的仿真曲线对比图
5 结论
通过对一级倒立摆数学模型分析,进行了倒立摆小车改进BP算法的控制系统仿真实验。仿真表明该改进BP算法收敛性好、计算量小,尤其在非线性和鲁棒控制等领域具有良好的应用前景。BP神经网络从理论上可以逼近任意非线性函数,所以它特别适合控制像倒立摆这样的严重非线性、多变量系统。
[1]于秀芬,段海滨,龚华军.基于人工神经网络BP算法的倒立摆控制研究[J].测控技术,2003,22(3):41-44.
[2]张志华,朱章森,李儒兵.几种修正的自适应神经网络学习算法及其应用[J].地球科学,1998,23(2):179-182.
[3]袁曾任.人工神经元网络及其应用[M].北京:清华大学出版社,1999.
[4]苏高利,邓芳萍.论基于Matlab语言的BP神经网络的改进算法[J].科技通报,2003,19(2):130-135.
[5]张吉军,曹永强.改进B-P算法及其在围岩稳定性分类中的应用[J].煤炭技术,2004,23(4):1-3.
[6]Hagan M T ,Menhaj M.Training feedforward networks with the Mar2quardt algorithm[J].IEEE Transactions on Neural Networks,1994,5(6):989-993.
[7]杨平,徐春梅,曾婧婧,等.PID控制在倒立摆实时控制系统中的应用[J].微计算机信息,2006,11(27):83-85.
[8]杨平,徐春梅,贺茂康,等.直线二级倒立摆的PID实时控制[J].上海电力学院学报,2008,24(3):236-247.