神经网络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)得到,由此带来的计算不精确的影响可以通过调整学习速率η来补偿
相关文章推荐
- 神经网络及其PID控制
- 神经网络常用激活函数对比:sigmoid VS sofmax(附python源码)
- halcon基于mlp神经网络分类器的OCR字符识别
- 深度学习算法之卷积神经网络简介
- 神经网络风格画 Neural Style Art
- 基于weka实现的神经网络算法实现
- 机器学习:在Android中集成TensorFlow (深度学习,AI,人工智能,DL,ML,神经网络)
- 多图|一文看懂25个神经网络模型
- 识别MNIST数据集:用Python实现神经网络
- 神经网络中的BPTT算法简单介绍
- 神经网络中的反向传播算法
- 基于小波和余弦变换的神经网络人脸识别法
- 径向基神经网络RBF
- 神经网络浅讲:从神经元到深度学习
- 深度学习DeepLearning.ai系列课程学习总结:2. 神经网络基础
- 一个艺术风格化的神经网络算法(A Neural Algorithm of Artistic Style)(译)
- 学习笔记CB009:人工神经网络模型、手写数字识别、多层卷积网络、word2vec
- 卷及神经网络CNN for image retrieval
- Deep Forest,非神经网络的深度模型
- 神经网络和深度学习笔记(一)