神经网络控制算法仿真毕业设计(5)

2019-03-10 21:01

u(t)?kp(e(t)?1tTdde(t) e(t)dt?) (3-1)?0Tidt式中,kp—比例系数,Ti—积分时间常数,Td—微分时间常数。 写成传递函数形式

G(s)?U(s)1(3-2) ?kp(1??Tds)

E(s)Tis当采样周期较小时, 可以用求和代替积分,用差商代替微分,即做如下近似变换来离散

化:

???t?kT???t?et??0??de(t)????dt

??? T??e?j (3-3)

j?0ke(?k)Te?(k1)

式中,k为采样序号,k=1,2,…,T为采样周期。由上式可得离散的PID表达式为:

Tk u(k)?pk(e(?k)?Tij?0Tde(?j)T 1 ) ) ) (3-4) (?e(k)?e(k此式称为PID的位置算式。位置算式使用不方便,累加偏差ej不仅要占大量的内存空间,而且也不便编写程序。最好能转换成某种递推的形式。为此提出了增量式。

所谓增量式PID是指数字控制器输出u (k)只是控制量的增量,当执行机构需要的是控制量的增量时,应采用增量式PID控制。根据递推原理可得

u(k?1)?pke(k?1?)?ikj?0k?1e(k?1)?e(k?2) (3-5)e(j)?TdkT

用式(3-4)减式(3-5),可得增量式PID控制算法

?u(k)?kp(e(k)?e(k?1))?kie(k)T?kde(k)?2e(k?1)?e(k?2) (3-6)

T式(3-6)进一步可改写为:

0e(k)? ?u(k)?a1a(e?k1?)2a(e? k 2 ) (3-7)

式中,a0?kp(1?

Td2TdTTda?kp,, a?kp(1?)?)21TiTiTiT用增量式PID控制算法有以下优点:

(1)增量算法不需要累加,控制量增量的确定仅与最近几次误差采样值有关; (2)增量式算法得出的是控制量的增量,误动作影响小;

17

(3)便于编程序实现 。

3.2 基于BP神经网络的PID整定原理

PID控制要取得好的控制效果,就必须通过调整好比例、积分和微分三种控制作用,在形成控制量中相互配合又相互制约的关系。神经网络具有逼近任意非线性函数的能力,而且结构和学习算法简单明确。可以通过对系统性能的学习来实现具有最佳组合的PID控制。采用BP神经网络,可以建立参数kp、ki、kd自学习的神经PID控制。 器由两部分组成:

(1)经典的PID控制器:直接对被控对象进行闭环控制,仍然是靠改变三个参数kp、ki、

kd来获得满意的控制效果。

(2)神经网络:根据系统的运行状态,调节PID控制器的参数,以其达到某种性能指标的最优化。采用如图3-1的系统结构,即使输出层神经元的输出状态对应于PID控制器的三个可调参数kp、ki、kd,通过神经网络的自身学习、加权系数调整,从而使其稳定状态对应于某种最优控制规律下的PID的控制器各个参数。 采用基于BP神经网络的PID控制的系统结构如下图所示:

BP神经网络 r kp ki kd u y + PID控制器 被控对象 - e

图3-1 基于BP神经网络的PID控制结构图

上图中的BP神经网络选如图3-2的形式,采用三层结构:一个输入层,一个隐含层,一个输出层,j表示输入层节点,i表示隐层节点,l表示输出层节点。输入层有m个输入节点,隐含层有q个隐含节点,输出层有3个输出节点。输入节点对应所选的系统运行状态量,如系统不同时刻的输入量和输出量,偏差量等。输出节点分别对应PID控制器的三个参数kp、ki、kd,由于kp、ki、kd不能为负,所以输出层神经元活化函数取非负的Sigmoid函数。

i

x1 x2

j l kp ki 18 x 3 kd

输入节点 隐层节点 输出层节点 图3-2 BP神经网络结构图

由图可见,此处BP神经网络的输入层输出为

o(1)j?x(j) j=1,2,3?m (3-8)

隐层输入为:

(2)m neti(k)??w(2)ijoj(1) (3-9)

j?o隐层输出为:

o(2)i(k)?g(net(2)i(k)) i=1,2?q (3-10)

式中,w(2)ij为输入层到隐含层加权系数,上标(1)、(2)、(入层、隐含层、输出层,f(x)为正负对称的Sigmoid函数,即

g?x??tanh?x??ex?e?xex?e?x。

最后网络输出层三个节点的输入为 q net(3)(k)??w(3)(2)llioi?0i(k) 最后的输出层的三个输出为 :

o(3)l(k)?f(net(3)l(k)) l=1,2,3 即

o(3)1(k)?kp?(3)k)?k? o2(i? o(3)?kd?3(k)?式中,w(3)li为隐层到输出层加权系数,输出层神经元活化函数为

f(x)?12?1?tanh?x???exex?e?x

取性能指标函数

19

3)分别代表输

(3-11)(3-12)(3-13)

1 E(k)?(r(k)?y(k))2 (3-14)

2用梯度下降法修正网络的权系数,并附加一使搜索快速收敛全局极小的惯性项,则有:

(3) ?wli(k)????E(k)(3)(3-15) ???w(k?1) li(3)?wli?为学习率,?为惯性系数。其中:

?E(k)?E(k)?y(k)?u(k)?ol(3)(k)?netl(3)(k) (3)? (3-16) ..(3)..(3)(3)?wli?y(k)?u(k)?ol(k)?netl(k)?wli这里需要用到的变量?y(k)/?u(k),由于模型可以未知,所以?y(k)/?u(k)未知,但是可以测出u?k?,y?k?的相对变化量,即:

?y??uy?k??y?k?1?u?k??u?k?1? (3-17)

也可以近似用符号函数:

sgn??y?k??y?k?1?? (3-18)

?u?k??u?k?1?????取代,由此带来计算上的不精确可以通过调整学习速率?来补偿。这样做一方面可以简化运算,另一方面避免了当u?k?,u?k?1?很接近时导致式(3-16)趋于无穷。这种替代在算法上是可以的,因为?y(k)/?u(k)是式(3-16)中的一个乘积因子,他的符号的正负决定着权值变化的方向,而数值变化的大小只影响权值变化的速度,但是权值变化的速度可以通过学习步长加以调节。

由式:

u(k)?u(k?1)?o1??(e(k)?e(k?1))?o2??e(k)?o3??(e(k)?2e(k?1)?e(k?2))

333可得:

?u(k)?e(k)?e(k?1)?o1(3)(k)???? ?e(k)? (3-19)

???e(k)?2e(k?1)?e(k?2)??

?u(k)(3)?o2(k)?u(k)(3)?o3(k)这样,可得BP神经网络输出层权计算公式为

(3)?wli(k)??e(k)?y(k)?u(k)'(3)(2)(3)f(net(k))o(k)???w(k?1) lili(3)?u(k)?ol(k)20

把(3-18)式代入后得:

?y?k??y?k?1???u(k)'(3)(3)(2)(3)?wli(k)?e(k)sgn??f(net(k))o(k)???w(k?1) ?lili?u?k??u?k?1???o(3)(k)l?? 可令?l?3??e(k)ssgn?? l?1,2,3 (3-20)

?y?k??y?k?1???u(k)'(3)f(net(k)),则上式可写为: ?l(3)??u?k??u?k?1???ol(k)3(3)(3) ?wli (k)???l??oi(2)(k)???wli(k?1) (3-21)

2?u(k)由式(3-15)可确定,?y(k)由符号函数代替,f'(net(3)(k))由'f(x)?l?u(k)?ol(3)(k)ex?e?x??2可

得。

同理可得隐含层权计算公式为

(3)(2) ?w(k)??g(net(k))??l(3)wli(k)o(1)j(k)???wli(k?1)

(2)ij'(2)il?13 i=1,2,?, q (3-22)

令 ?(2)i(3)?gf(net(k))??l(3)wli(k) 则:

'(2)il?13(2)(2) ?wij (k)???i(2)o(1)) i=1,2,…, q (3-23)j(k)???wli(k?13.3 基于BP网络的PID控制算法流程

基于BP网络的PID控制器控制算法归纳如下:

(1)确定BP神经网络结构,即确定输入层节点及数目m、隐含层数目q,并给出各层权系数的初值wij?2??0?和wli?3??0?、选定学习率?、惯性系数?; (2)给定输入r和期望输出y;

(3)计算神经网络各层神经元的输入、输出,神经网络输出层的输出即为PID控制器的三个可调参数kp、ki、kd;

(4)求目标值与实际值的偏差e,看是否满足要求;

(3)(2)(5)如不满足要求,进行神经网络学习,在线调整加权系数wij(k),实现PID(k)和wli控制参数的自适应调整; (6)置k =k+1,返回到第一步.

21


神经网络控制算法仿真毕业设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:模煳数学+变分法+Matlab基础教程

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: