1.控制系统设计
![ae01983caafa3d64603eedba8cd73436.png](https://i-blog.csdnimg.cn/blog_migrate/ef7cacf5428359bc67143d6b1fab470b.png)
设理想跟踪指令为ym(k),则定义跟踪误差为e(k)=ym(k)-y(k);
网络权值学习误差指标为:E(k)=(1/2)*(e(k)^2);
控制输入为RBF网络的输出:u(k)=h1*w1+...+hjwj+...+hmwm;
其中,m为隐含层的节点个数,wj为节点的权值,hj为高斯基函数的输出。
在RBF网络中,x=[x1,...,xn]T为网络的输入;h=[h1,...,hm]T;
hj为高斯基函数:hj=exp( ||x-cj||^2/2bj^2);
其中,i=1,...,n,j=1,...,m;bj>0;cj=[cj1,...,cji,...,cjm];b=[b1,...,bm]T。
设权值向量为:w=[w1,...,wm]T。
由于梯度下降法,网络学习算法为:
Δwj(k)=-η(∂E(k)/∂w)=ηe(k)(∂y(k)/∂u)hj
wj(k)=wj(k-1)+Δwj(k)+αΔwj(k)
其中,η为学习率[0,1];α为动量因子[0,1];
同理,可得:
Δbj(k)=-η(∂E(k)/∂bj)=η*e(k)*(∂y(k)/∂u(k))*(∂u(k)/∂bj)=η*e(k)*(∂y(k)/∂u(k))*(∂u(k)/∂bj)
=η*e(k)*(∂y(k)/∂u(k))*wjhj*(||x-cij||/bj^3)
分析上式:(∂u(k)/∂bj)=wjhj*(||x-cij||/bj^3),因此,这里的u(k)即为RBF神经网络的输出值。
bj(k)=bj(k-1)+ηΔbj(k)+αΔ(bj(k-1)-bj(k-2))
Δcij(k)=-η(∂E(k)/∂cij)=η*e(k)*(∂y(k)/∂u(k))*(∂u(k)/∂cij)=η*e(k)*(∂y(k)/∂u(k))*(∂u(k)/∂cij)
=η*e(k)*(∂y(k)/∂u(k))*wjhj*((x-cij)/bj^2)
cij(k)=cij(k-1)+ηΔcij(k)+αΔ(cij(k-1)-cij(k-2))
其中,∂y(k)/∂u(k)为jacobian阵,表征系统输出对控制输入的灵敏度。
2.仿真实例
设离散被控对象为:y(k)=(-0.10y(k-1)+u(k-1))/(1+y(k-1)^2)
其中:
采样周期为ts=1ms;
参考模型为ym(k)=0.6ym(k-1)+yd(k)
理想的跟踪指令为yd(k)=0.50sin(2pi*k*ts)
RBF神经网络的输入为yd(k)、e(k)和u(k)
学习速率为η=0.35
动量因子为α=0.05
高斯基函数的参数初值为:c=[-3,-2,-1,1,2,3;-3,-2,-1,1,2,3;-3,-2,-1,1,2,3],b=[2,2,2,2,2,2]。
网络的初始权值为:w=[-0.0316,-0.0421,-0.0318,0.0068,0.0454,-0.0381]。
%% RBF模型参考自适应控制
![e16ac4ef22be67781da2f0d35c6e61f2.png](https://i-blog.csdnimg.cn/blog_migrate/ad55ddc69defc2281fdd6608b0c1e493.jpeg)
![391f7fa37401bad2a313b661ef31a015.png](https://i-blog.csdnimg.cn/blog_migrate/acf6f59245ba889c95325c0a0832da0e.png)
问题1:为什么仅仅使用权值调节?
问题2:∂y(k)/∂u(k)的求解仅是微分后的符号值?
参考文献:《RBF神经网络自适应控制MATLAB仿真》_刘金琨