神經網絡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
訓練係數
=−λ∂J∂y(k+1)∂y(k+1)∂u(k)∂u(k)∂w
問題在於當系統未知時,
辨識器
設辨識對象是單輸入單輸出的非線性系統
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神經網絡
- 輸入層
輸入信號由兩部分組成,分別爲控制及其延遲信號
來自控制:
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)=∑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得到的
如果不採用NNI辨識器,則