一、目的 ........................................................................................... 2 二、设备及条件 ............................................................................... 2 三、设计及实验过程 ........................................................................ 2 1. 单神经元自适应控制器结构 ................................................. 2 2、神经元的学习规则 ................................................................ 3 3、实验过程 ............................................................................... 3 4、实验探究 ............................................................................... 5 探究1:神经元比例系数K对输出结果的影响 .................. 5 探究2:学习速率对输出结果的影响 .................................. 7 探究3:权系数初值对输出结果的影响 .............................. 9 四、实验结果分析 .......................................................................... 10 五、思考题 ..................................................................................... 11 六、程序清单 ................................................................................. 11
1
单神经元PID控制
一、目的
1.熟悉单神经元PID控制器原理。
2.通过实验进一步掌握有监督的Hebb学习规则及其算法仿真。
二、设备及条件
1.计算机系统。 2.MATLAB仿真软件
三、设计及实验过程
1. 单神经元自适应控制器结构
图1 单神经元自适应控制器原理图
设输入为r; 输出为y; 误差e=r-y;控制信号为u; 三个状态量
x1(k)=e(k); x2(k)=e(k)-e(k-1); X3(k)=e(k)-2*e(k-1)+e(k-2);
神经元产生的控制信号为:
u(k)?u(k?1)?k??i(k)xi(k),k?0
i?13其中?i(k)为对应于xi(k)的权系数,单神经元控制器的自适应功能是通过学习
2
改变连接权值来实现的。K为神经元的比例系数,且K>0。
2、神经元的学习规则
学习规则是修正神经元之间的连接强度或加权系数的算法,使获得的知识结构适应周围环境的变化,学习过程由学习期和工作期两个阶段组成。在学习期中,执行学习规则,修正加权系数。在工作期内,连接权值固定,计算神经元的输出。学习算法就是调整连接权值?i(k)的规则,它是单神经元控制器的核心,并反映了其学习的能力。我们采用的学习规则是有监督的Hebb学习规则,它是无监督的Hebb学习规则和有监督的Delta相结合的学习规则。
u(k)?u(k?1)?k??i1(k)xi(k)i?13?(k)??i(k)/??i(k)1ii?13学习算法规范化处理后为:?1(k?1)??1(k)??iu(k)z(k)x1(k)
?2(k?1)??2(k)??pu(k)z(k)x2(k)?3(k?1)??3(k)??du(k)z(k)x3(k)?p,?i,?d分别为比例学习速率,微分学习速率,积分学习速率。K为神经
元的比例系数。它们的调整规则如下:
3、实验过程
被控对象:y(k)?0.368y(k?1)?0.26y(k?2)?0.10u(k?1)?0.632u(k?2)??(k)
其中u(k)为控制输入信号。在控制过程中,开始加入幅度为1的单位阶跃信号,到第150周期开始加入幅度为?20%的阶跃干扰,在第300个周期干扰消失。
我们先假设初始的?p,分别为0.40,0.35,0.40。对应的权系数?i(k)?i,?d,为0.10。神经元的比例系数为0.12。
各个变量的前向差分都为0,采样时间为1ms。这样,输入为幅值为1的阶跃信号;前150个采样周期假设被控对象没有干扰,在第150~300个采样周期被控对象加入幅值为-20%的阶跃干扰信号。第300~第1000个采样周期去掉干扰,观察被控对象跟踪输入阶跃信号的情况,并画图。
编程的思路很明确,每次进行采样时,根据输入和被控对象的差值确定三个状态量x1(k),x2(k),x3(k),根据学习规则将对应的权系数进行调整,然后输出控制信号,对过程进行控制。进行一次调整后,将此时的值作为下一次前拍值,然后不断循环,进行调整,直到被控对象能够很好地跟踪上输入信号。
3
实验结果:
通过输入信号和追踪信号的图像,我们发现虽然调节时间比较短,但是有较大的超调量,我们判断这可能是由于K值过大,或者是权值?i(k)的初始值选择不当。在接下来的调试中我们将进一步对其进行探究。
误差曲线反映了输入信号有控制对象的差,我们发现在刚开始时误差比较大,
4
经过短暂的调整,误差变为零。这是因为被控对象要从0开始迅速调整,追踪上输入信号。在加入干扰信号后也是如此,误差开始很大,然后很快误差为零。
在初始阶段,控制曲线变化很大,这是因为控制信号要迅速调整控制输出y。而在加入阶跃后,控制曲线有一个突变,这是因为输出y加上阶跃信号后有一个较大的变化,控制信号也在原来的基础上有一个较大的变化。在去掉干扰后控制信号也恢复成加干扰前的形状。
4、实验探究
探究1:神经元比例系数K对输出结果的影响
我们发现可以通过调节神经元比例系数K来减小超调量,当K减小到0.06时,超调量基本消失。
5