一级倒立摆神经网络控制

上传人:飞*** 文档编号:36680352 上传时间:2018-04-01 格式:DOC 页数:6 大小:218.05KB
返回 下载 相关 举报
一级倒立摆神经网络控制_第1页
第1页 / 共6页
一级倒立摆神经网络控制_第2页
第2页 / 共6页
一级倒立摆神经网络控制_第3页
第3页 / 共6页
一级倒立摆神经网络控制_第4页
第4页 / 共6页
一级倒立摆神经网络控制_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《一级倒立摆神经网络控制》由会员分享,可在线阅读,更多相关《一级倒立摆神经网络控制(6页珍藏版)》请在金锄头文库上搜索。

1、一、神经网络控制基本原理1、神经网络控制理论基本概念人工神经网络是由大量简单单元以及这些单元的分层组织大规模并行联结而成的一种网络,它力图像一般生物神经系统一样处理事物,实现人脑的某些功能。人工神经网络可以忽略过程或系统的具体物理参数,根据系统的运行或实验数据,建立输入和输出状态之间的非线性映射关系。半个多世纪以来,它在非线性系统、优化组合、模式识别等领域得到了广泛应用。神经网络具有如下特点:1)具有自适应能力它主要是根据所提供的数据,通过学习和训练,找出输入和输出间的内在联系,从而求得问题的解答,而不是依靠对问题的先验知识和规则,因而它具有很好的适应性。2)具有泛化能力泛化即用较少的样本进行

2、训练,使网络能在给定的区域内达到要求的精度;或者说是用较少的样本进行训练,使网络对未经训练的数据也能给出合适的输出。同样它能够处理那些有噪声或不完全的数据,从而显示了很好的容错能力。对于许多实际问题来说,泛化能力是非常有用的,因为现实世界所获得的数据常常受到噪声的污染或残缺不全。3)非线性映射能力现实的问题是非常复杂的,各个因数之间互相影响,呈现出复杂的非线性关系。神经元网络为处理这些问题提供了有用的工具。4)高度并行处理神经网络处理是高度并行的,因此用硬件实现的神经网络的处理速度可远远高于通常计算机的处理速度。与常规的计算机程序相比较,神经网络主要基于所测量的数据对系统进行建模、估计和逼近,

3、它可以应用于如分类、预测及模式识别等众多方面。如函数映射是功能建模的一个典型例子。和传统的计算机网络相比,神经网络主要用于那些几乎没有规则,数据不完全或多约束优化问题。例如用神经网络来控制一个工业过程便是这样一个例子。对于这种情况很难定义规则,历史数据很多且充满噪声,准确地计算是毫无必要的。某些情况下神经网络会存在严重的缺点。当所给数据不充分或存在不可学习的映射关系时,神经网络可能找不到满意的解。其次有时很难估计神经网络给出的结果。数据网络中的连接权系数是千万次训练后的结果,对它们的意义很难给出明确的解释。它们对于输出结果的影响也是非常复杂的。神经网络的训练很慢,而且有时需要付出严重的代价。这

4、一方面是由于需要收集、分析和处理大量的训练数据,同时还需要相当的经验来选择合适的参数。神经网络在实际应用时执行时间也是需要加以检验的。执行时间取决于连接权的个数,它大体和节点数的平方成正比。因此网络节点的少许增加可能引起执行时间的很大增长。人工神经网络BP算法网络模型由几层组成,各个层次之间的神经元相互连接,同一层内的各个神经元互不连接。2、 BP 算法神经网络BP网络,是一种有隐含层的多层前馈网络,系统的解决了多层网络中隐含单元连接权的学习问题。BP学习算法的基本原理是梯度最速下降法,他的中心思想是调整权值使网络总误差最小。也就是采用梯度搜索技术,以期使网络的实际输出与期望输出值的误差均方值

5、为最小。网络学习过程是一种误差边向后传播边修正权系数的过程。BP算法特征可以描述如下:1)工作信号正向传播:输入信号从输入层经隐含层,传向输出层,在输出端产生输出信号,这是工作信号的正向传播。在信号的向前传递过程中网络的权值是固定不变的,每一个神经元的状态只影响下一层神经元的状态。如果在输出层不能得到期望的输出,则转向误差信号的反向传播。2)误差信号反向传播:网络的实际输出与期望输出之间的差值即为误差信号,误差信号由输出端开始逐层向前传播,这是误差信号的反向传播。在误差信号反向传播的过程中,网络的权值由误差反馈进行调节。通过权值的不断修正使网络的实际输出更接近期望输出。二、一级倒立摆的神经网络

6、控制二、一级倒立摆的神经网络控制系统状态空间方程为:DuCxyBuAxxuxxxx 3566.208832.0008285.272357.00100006293.00883.000010输出方程uxxxy 00 01000001用 MATLAB 将状态方程转化成传递函数:A=0 1 0 0;0 -0.0883 0.6293 0;0 0 0 1;0 -0.2357 27.8285 0;B=0;0.8832;0;2.3566;C=1 0 0 0;0 0 1 0;D=0;0;num,den=ss2tf(A,B,C,D,1);num,den=ss2tf(A,B,C,D,1)num =0 -0.0000

7、 0.8832 -0.0000 -23.09510 -0.0000 2.3566 -0.0001 0den =1.0000 0.0883 -27.8285 -2.3089 01、样本选取在 matlab 下输入 slcp 打开倒立摆控制模块,得到 Fismatrix,然后在 mfedit 下导入,将其导入。通过 views 下 rule 选项打开图 2-1。图 2-1 采样图采集样本,尽量使样本对称均匀分布,样本为 X=0.26 0.24 -2.5 -2.5;0.235 - 0.5 -0.7 0.5;0.11 0.4 -1.7 -0.9;0.14 -0.2 -1.8 2.4 ;0.14 -0.

8、9 2.3 -1.56;0.06 -0.8 1.53 - 1.6;0.06 -0.6 0.7 1.73;0.05 -0.18 -0.23 0.6;-0.28 0.76 2.2 1.2;-0.2318 0.23 -2.4 1.7;- 0.13 0.66 -0.2 -2.2;-0.13 -0.2 0.57 2.4;-0.13 -0.8 1.8 0.8;-0.06 0.8 -2.5 2.2;-0.07 0.5 - 1.4 -0.7;-0.07 0.15 2.3 -0.7;T=-5.99 4.02 -0.95 8.05 -2.99 -7.6 5.98 2.01 8.98 - 7.01 -8.49 5

9、-3.97 7.1 -5.18 3.04;2、仿真在该控制系统中对倒立摆的状态变量进行采样,p 为输入向量,向量 p 应 该包含所有输入值中的最大值和最小值,在这里取为:p=-0.2 0.3;-2 3;-0.57 0.57;- 3.14 3.14, t 目标向量,这里为 t=众,其中 K 为一级倒立摆的系统状态反馈增 益, 设计一个三层 BP 网络,并对其进行训练。BP 网络由输入层,隐层和输出层组成。输入层节点个数为 4, 隐层节点 个数为 10,输入层到隐含层函数为 tansig 函数;输出层只有一个节点,隐含层 到输出层函数为 purelin 函数。以下是 BP 网络训练程序: X=0.

10、26 0.24 -2.5 -2.5;0.235 -0.5 -0.7 0.5;0.11 0.4 -1.7 -0.9;0.14 -0.2 -1.8 2.4 ;0.14 - 0.9 2.3 -1.56;0.06 -0.8 1.53 -1.6;0.06 -0.6 0.7 1.73;0.05 -0.18 -0.23 0.6;-0.28 0.76 2.2 1.2;-0.2318 0.23 -2.4 1.7;-0.13 0.66 -0.2 -2.2;-0.13 -0.2 0.57 2.4;-0.13 -0.8 1.8 0.8;- 0.06 0.8 -2.5 2.2;-0.07 0.5 -1.4 -0.7;-

11、0.07 0.15 2.3 -0.7; T=-5.99 4.02 -0.95 8.05 -2.99 -7.6 5.98 2.01 8.98 -7.01 -8.49 5 -3.97 7.1 -5.18 3.04;net=newff(minmax(X),10 1,tansig,purelin,trainlm); net=train(net,X,T); X1=X; Y=sim(net,X1); gensim(net,-1); 训练过程误差变化如图 2-2 所示 将生成的控制器用来控制倒立摆,原理图如 2-3。 示波器的波形如图 2-4。 倒立摆控制效果图 2-5。图 2-2 误差变化图 2-3 控制模块图 2-4 示波器波形图 2-5 倒立摆控制效果

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号