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
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库神经网络控制算法仿真毕业设计(5)在线全文阅读。
相关推荐: