您的位置:首页 > 理论基础 > 计算机网络

神经网络PID控制

2017-09-14 23:05 211 查看

神经网络PID控制



控制结构

NNC控制器采用增量PID控制结构

x1(k)=e(k)=r(k)−y(k)

x2(k)=Δe(k)=e(k)−e(k−1)

x3(k)=Δ2e(k)=Δe(k)−Δe(k−1)=e(k)−e(k−1)−[e(k−1)−e(k−2)]

=e(k)−2×e(k−1)+e(k−2)

NNC的控制输出为

Δu(k)=k1x1(k)+k2x2(k)+k3x3(k)

性能指标

J=12[r(k+1)−y(k+1)]2

训练系数w

=−λ∂J∂y(k+1)∂y(k+1)∂u(k)∂u(k)∂w

问题在于当系统未知时,∂y(k+1)∂u(k)无法求得,因此采用NNI来辨识对象模型,以求得∂y(k+1)∂u(k)的代替量∂y^(k+1)∂u(k)

辨识器



设辨识对象是单输入单输出的非线性系统

y(k+1)=F[y(k),y(k−1),…,y(k−ny+1),u(k),u(k−1),…,u(k−nu+1)]

ny为输出的阶次

nu为输入的阶次

采用BP神经网络

输入层

输入信号由两部分组成,分别为控制及其延迟信号u(k),u(k−1),…,u(k−nu+1),和输出和输出延迟信号y(k),y(k−1),…,y(k−ny+1)

来自控制:Out1j(k)=y(k−j),0≤j≤ny−1

来自输出:Out1j(k)=u(k−j),0≤j≤nu−1

Out表示输入神经元的输出

下角标表示第几个神经元,j表示第j个

上角标表示第几层神经元,1表示第一层,即输入层

隐藏层

net2j(k)=∑ny+nui=0w2ji(k)⋅Out1i(k)

Out2j(k)=f(net2j(k)),i=0,…,nhidden−1

nhidden为隐藏层个数

输出层

y^(k+1)=∑nhiddeni=0w3i(k)⋅Out2i(k)

性能指标

J=12[y(k+1)−y^(k+1)]2

求偏导

输出层权值w3i(k)偏导

∂J∂w3i(k)=∂J∂y(k+1)∂y(k+1)∂u(k)∂u(k)∂w(k)=−[y(k+1)−y^(k+1)]⋅1⋅Out2i(k)

隐藏层权值w2ji(k)偏导

∂J∂w2ji(k)=∂J∂y(k+1)∂y(k+1)∂u(k)∂u(k)∂Out2j(k)∂Out2j(k)∂u(k)∂u(k)∂w2ji(k)

=−[y(k+1)−y^(k+1)]⋅1⋅w3i(k)⋅f′(net2j(k))⋅Out1j(k)

权值更新

w3i(k+1)=w3i(k)+ηΔw3i(k)

w2ji(k+1)=w2ji(k)+ηw2ji(k)

综合

利用辨识器NNI可以求得∂y^(k+1)∂u(k)

∂y^(k+1)∂u(k)=∑Qi=0∂J∂y(k+1)∂y(k+1)∂u(k)∂u(k)∂Out2j(k)∂Out2j(k)∂u(k)∂u(k)∂Out1j(k)∂Out1j(k)∂u(k)

=∑Qi=0w3i(k)⋅f′(net2j(k))⋅w2ji(k)

将NNI得到的∂y^(k+1)∂u(k)代入NNC的权值更新中,即可更新NNC控制器参数

如果不采用NNI辨识器,则∂y(k+1)∂u(k)可以用近似符号函数sgn[∂y(k+1)∂u(k)]或者采用y(k+1)−y(k)u(k)−u(k−1)得到,由此带来的计算不精确的影响可以通过调整学习速率η来补偿
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息