1、4.6 4.6 倒立摆的神经网络控制器设计倒立摆的神经网络控制器设计 MATLAB MATLAB神经网络系统设计神经网络系统设计4.6.1 倒立摆系统倒立摆系统n1.倒立摆的常见形式倒立摆的常见形式4.6.1 倒立摆系统倒立摆系统n1.倒立摆的常见形式倒立摆的常见形式 倒立摆系统被公认为自动控制理论中的典型实验设备,也是控制理论教学和科研中不可多得的典型物理模型,它本身是一个自然不稳定体,在控制过程中能够有效地反映控制中的许多关键问题。在忽略了空气阻力和各种摩擦之后,可将一级倒立摆系统抽象成小车和匀质杆组成的系统,摆杆与小车之间为自由链接,小车在控制力的作用下沿滑轨在x方向运动,控制目的是使倒
2、立摆能够尽可能稳定在铅直方向,同时小车的水平位置也能得到控制。4.6.1 倒立摆系统倒立摆系统n2.直线一级倒立摆的结构直线一级倒立摆的结构:摆杆与垂直向:摆杆与垂直向上方向的夹角上方向的夹角F:加在小车上的推力:加在小车上的推力m:摆杆质量:摆杆质量;l:摆杆转动轴心到摆杆转动轴心到 杆质心的长度杆质心的长度M:小车质量小车质量X:小车位移小车位移4.6.1倒立摆系统倒立摆系统n3.直线一级倒立摆的数学模型直线一级倒立摆的数学模型 由动力学理论可得一级倒立摆系统的数学模型为:由动力学理论可得一级倒立摆系统的数学模型为:式中参数意义说明如下:式中参数意义说明如下:M M为小车质量,为小车质量,
3、m m为摆杆为摆杆质量,为摆杆转动轴心到杆质心的长度,质量,为摆杆转动轴心到杆质心的长度,F F为加在小为加在小车的力。车的力。x x为小车位移,小车在轨道正中为为小车位移,小车在轨道正中为0 0;为摆杆偏;为摆杆偏离竖直方向的角度,顺时针方向为正。离竖直方向的角度,顺时针方向为正。n3.仿真模型的建立仿真模型的建立 n基于基于SIMULINKSIMULINK环境一级倒立环境一级倒立摆神经网络控制的仿真如图摆神经网络控制的仿真如图所示,它可由所示,它可由MATLAB 6.5MATLAB 6.5自自带的一个模糊控制仿真模型带的一个模糊控制仿真模型slcp.mdlslcp.mdl进行修改得到,它进
4、行修改得到,它主要包括一级倒立摆动力学主要包括一级倒立摆动力学模型子系统和神经控制器子模型子系统和神经控制器子系统。系统。4.6.1倒立摆系统倒立摆系统n仿真具体参数为:摆杆的质心到对应转轴的距离仿真具体参数为:摆杆的质心到对应转轴的距离l=0.5m;轨道长;轨道长为为4 m。小车质量。小车质量M=1kg,摆杆质量,摆杆质量m=0.1kg。4.6.2 神经网络控制器的设计神经网络控制器的设计 n神经网络控制器的设计包含几个方面:神经网络控制器的设计包含几个方面:输入、输出变量的确定输入、输出变量的确定 神经网络结构的确定(神经网络结构的确定(网络的层数、每层节点数网络的层数、每层节点数)神经网
5、络参数的确定神经网络参数的确定(通过训练获得阈值、传输函数及参数等)(通过训练获得阈值、传输函数及参数等)训练神经网络之前,首先应确定所选用的网络类型,并训练神经网络之前,首先应确定所选用的网络类型,并进行初始化。这可利用神经网络工具箱中进行初始化。这可利用神经网络工具箱中BPBP神经网络初始神经网络初始化函数化函数newff()newff()来完成。初始化内容包括选择网络的层数、来完成。初始化内容包括选择网络的层数、每层节点数、初始权值、阈值、节点传输函数及参数等。每层节点数、初始权值、阈值、节点传输函数及参数等。4.6.2 神经网络控制器的设计神经网络控制器的设计n由一级倒立摆神经网络控制
6、的仿真图可见由一级倒立摆神经网络控制的仿真图可见BPBP神经网络控制神经网络控制器应为一个器应为一个4 4输入输入1 1输出,输出节点对应了一级倒立摆系统输出,输出节点对应了一级倒立摆系统中小车的控制力,四个输入节点则分别对应了四个控制参中小车的控制力,四个输入节点则分别对应了四个控制参量:小车的位移(仿真中为小车位移与设定位移之差)和量:小车的位移(仿真中为小车位移与设定位移之差)和速度、摆杆的角度和角速度。速度、摆杆的角度和角速度。n对于具体问题,确定了输入和输出变量后,网络输入层和对于具体问题,确定了输入和输出变量后,网络输入层和输出层的节点个数也就确定了。剩下的问题是考虑隐含层输出层的
7、节点个数也就确定了。剩下的问题是考虑隐含层和隐层节点。从原理上讲,只要有足够多的隐含层和隐层和隐层节点。从原理上讲,只要有足够多的隐含层和隐层节点,节点,BPBP神经网络可实现复杂的非线性映射关系,但根据神经网络可实现复杂的非线性映射关系,但根据具体问题如何确定网络的结构仍需凭借经验与试凑。一般具体问题如何确定网络的结构仍需凭借经验与试凑。一般在能反映输入输出关系的基础上,应尽量使网络简单,即在能反映输入输出关系的基础上,应尽量使网络简单,即选取较少的隐层节点。这里根据经验公式确定隐层节点数:选取较少的隐层节点。这里根据经验公式确定隐层节点数:4.6.2 神经网络控制器的设计神经网络控制器的设
8、计n针对一级倒立摆仿真,针对一级倒立摆仿真,BPBP神经网络输入层到隐层传输函数神经网络输入层到隐层传输函数选择选择tansigtansig,隐层到输出层的传输函数选择,隐层到输出层的传输函数选择purelinpurelin。训练。训练函数使用函数使用trainlmtrainlm。学习函数使用。学习函数使用learndmlearndm。性能函数选择。性能函数选择均方误差性能函数均方误差性能函数msemse。net=newff(-0.35 0.35;-1 1;-3 3;-3 3,12 1,tansig,purelin,trainlm,learngdm);4.6.2 神经网络控制器的设计神经网络控
9、制器的设计n产生数据样本集,是成功开发神经网络的关键一步,训练产生数据样本集,是成功开发神经网络的关键一步,训练数据的产生包括数据的收集、数据分析、变量选择以及数数据的产生包括数据的收集、数据分析、变量选择以及数据的预处理。只有经过这些步骤后,才能对神经网络进行据的预处理。只有经过这些步骤后,才能对神经网络进行有效的学习与训练。如果数据能很好地代表系统理想控制有效的学习与训练。如果数据能很好地代表系统理想控制器的输入输出特征,那么由于神经网络的非线性映射能力,器的输入输出特征,那么由于神经网络的非线性映射能力,设计出的控制器将具有很好的控制性能。设计出的控制器将具有很好的控制性能。n仿真实验为
10、体现神经网络对训练样本集的非线性映射和泛仿真实验为体现神经网络对训练样本集的非线性映射和泛化作用,训练数据来源于化作用,训练数据来源于MATLAB 6.5MATLAB 6.5自带的一阶自带的一阶T-ST-S型模糊型模糊控制控制slcp.mdlslcp.mdl。提取摆角、角速度、位移、速度初始条件。提取摆角、角速度、位移、速度初始条件为为0.5rad0.5rad,1rad/s1rad/s,0 0,0 0 条件下响应的输入输出对,使条件下响应的输入输出对,使用函数用函数train()train()训练训练300300步。步。nnet,tr=train(net,P,T,)net,tr=train(n
11、et,P,T,)n使用下面语句初始化使用下面语句初始化BPBP神经网络控制器并进行训练:神经网络控制器并进行训练:nP=p;P=p;nT=t;T=t;nnet=newff(-0.35 0.35;-1 1;-3 3;-3 3,12 net=newff(-0.35 0.35;-1 1;-3 3;-3 3,12 1,tansig,purelin,trainlm,learngdm);1,tansig,purelin,trainlm,learngdm);nnet.trainParam.show=25;net.trainParam.show=25;nnet.trainParam.epochs=300;ne
12、t.trainParam.epochs=300;nnet,tr=train(net,P,T,);net,tr=train(net,P,T,);4.6.2 神经网络控制器的设计神经网络控制器的设计n完成神经网络训练后,利用函数完成神经网络训练后,利用函数gensim()gensim()可以在可以在simulinksimulink里生成神经控制器。使用这一里生成神经控制器。使用这一BPBP神经网络控制器即可进行神经网络控制器即可进行一级倒立摆系统的控制。一级倒立摆系统的控制。gensim(net,-1)gensim(net,-1)可以在可以在simulinksimulink里生成控制器并使用其里生
13、成控制器并使用其进行控制,其中进行控制,其中-1-1的意思是系统是实时的,生成的神经的意思是系统是实时的,生成的神经网络控制器结构如图所示。网络控制器结构如图所示。(a)(a)神经网络控制器外部结构神经网络控制器外部结构4.6.3 仿真结果仿真结果n为分析上述方法设计的控制器性能,将为分析上述方法设计的控制器性能,将BPBP神经网络控制器神经网络控制器与提供训练样本的模糊控制器在不同初始条件下进行比较,与提供训练样本的模糊控制器在不同初始条件下进行比较,仿真曲线如图所示。图中分别显示了在摆角、角速度、位仿真曲线如图所示。图中分别显示了在摆角、角速度、位移、速度初始条件分别为移、速度初始条件分别
14、为0.5rad0.5rad,1rad/s1rad/s,0 0,0 0 和和 0.1 rad0.1 rad,0.5 rad/s0.5 rad/s,0 0,0 0 时两种控制器的摆角和位移时两种控制器的摆角和位移的响应曲线。的响应曲线。4.6.3 仿真结果仿真结果 (a)模糊控制器 (b)神经控制器0.5,1,0,0初始条件的控制效果对比4.6.3 仿真结果仿真结果 (a)原模糊控制器 (b)神经控制器0.1,0.5,0,0初始条件的控制效果对比4.6.3 仿真结果仿真结果n0.5,1,0,00.5,1,0,0初始条件的控制效果对比可见,神经控制器初始条件的控制效果对比可见,神经控制器摆杆角度响应
15、曲线和位移变化曲线很好的逼近了原模糊控摆杆角度响应曲线和位移变化曲线很好的逼近了原模糊控制器。因为神经控制器的训练样本来源于该初始条件模糊制器。因为神经控制器的训练样本来源于该初始条件模糊控制器的响应,神经网络实现了对样本数据的逼近。控制器的响应,神经网络实现了对样本数据的逼近。n0.1,0.5,0,00.1,0.5,0,0初始条件的控制效果对比可见,神经控初始条件的控制效果对比可见,神经控制器的性能还优于原模糊控制器,调节时间明显比模糊控制器的性能还优于原模糊控制器,调节时间明显比模糊控制器的短。这体现了神经网络一定的泛化能力。制器的短。这体现了神经网络一定的泛化能力。4.6.3 仿真结果仿
16、真结果n仿真结果表明仿真结果表明BPBP神经网络控制器与提供训练样本的模糊控神经网络控制器与提供训练样本的模糊控制器的控制性能相当并具有一定泛化能力。制器的控制性能相当并具有一定泛化能力。n仿真结果体现了仿真结果体现了BPBP神经网络控制的实质:采用神经网络控制的实质:采用BPBP算法把系算法把系统所要求的控制规律模式对作为学习样本,离线学习和训统所要求的控制规律模式对作为学习样本,离线学习和训练,使该网络通过调整神经元间兴奋强度的权值来记忆这练,使该网络通过调整神经元间兴奋强度的权值来记忆这些控制规律。当网络训练好后,网络便执行些控制规律。当网络训练好后,网络便执行IOIO向量映射,向量映射
17、,具有了智能控制的能力。具有了智能控制的能力。4.6.4 实物控制实验实物控制实验基于固高倒立摆系统,基于固高倒立摆系统,可进行实物控制实验。一级倒立摆硬可进行实物控制实验。一级倒立摆硬件框图如件框图如6 6所示,软件环境基于所示,软件环境基于MATLAB/SIMULINKMATLAB/SIMULINK。运动控制。运动控制卡的接口函数利用卡的接口函数利用S-FunctionS-Function封装,即可在封装,即可在SimulinkSimulink环境中环境中用这些模块搭建成控制系统,从而实现在用这些模块搭建成控制系统,从而实现在SimulinkSimulink环境下倒环境下倒立摆的实时控制。这种方法通过模块化大减,简单方便,添立摆的实时控制。这种方法通过模块化大减,简单方便,添加加scopescope模块,可以保存下系统实时控制时的各种中间数据,模块,可以保存下系统实时控制时的各种中间数据,方便实验结果的分析处理。方便实验结果的分析处理。图6 固高倒立摆系统硬件框图