神經網絡PID控制

神經網絡PID控制

這裏寫圖片描述

控制結構

NNC控制器採用增量PID控制結構

x1(k)=e(k)=r(k)y(k)
x2(k)=Δe(k)=e(k)e(k1)
x3(k)=Δ2e(k)=Δe(k)Δe(k1)=e(k)e(k1)[e(k1)e(k2)]
        =e(k)2×e(k1)+e(k2)

NNC的控制輸出爲

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

性能指標

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

訓練係數w

=λJy(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(k1),,y(kny+1),u(k),u(k1),,u(knu+1)]
ny 爲輸出的階次
nu 爲輸入的階次

採用BP神經網絡

  • 輸入層

輸入信號由兩部分組成,分別爲控制及其延遲信號u(k),u(k1),,u(knu+1) ,和輸出和輸出延遲信號y(k),y(k1),,y(kny+1)

來自控制:Out1j(k)=y(kj),0jny1
來自輸出:Out1j(k)=u(kj),0jnu1
Out 表示輸入神經元的輸出
下角標表示第幾個神經元,j 表示第j個
上角標表示第幾層神經元,1 表示第一層,即輸入層

  • 隱藏層

net2j(k)=ny+nui=0w2ji(k)Out1i(k)
Out2j(k)=f(net2j(k)),i=0,,nhidden1
nhidden 爲隱藏層個數

  • 輸出層

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

  • 性能指標

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

  • 求偏導

輸出層權值w3i(k) 偏導
Jw3i(k)=Jy(k+1)y(k+1)u(k)u(k)w(k)=[y(k+1)y^(k+1)]1Out2i(k)

隱藏層權值w2ji(k) 偏導
Jw2ji(k)=Jy(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)]1w3i(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=0Jy(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(k1) 得到,由此帶來的計算不精確的影響可以通過調整學習速率η 來補償

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章