神经网络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) 得到,由此带来的计算不精确的影响可以通过调整学习速率 η 来补偿

  • 15
    点赞
  • 135
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值