多神经网络轨迹跟随控制(MATLAB实现)
_本文是我基于自己的理解实现的多神经轨迹跟随控制,可能不太正确,但仍记录下来。_
此题目当我刚看到的时候一头雾水,经过看PPT和自己实践貌似搞出来了,记录过程,并将结论说明如下:
这张图非常重要,说明了多网络自学习控制的大致框架,在我搭建Simulink时,也是这样搭建的。
首先搭建出题目中所述的非线性动态系统如下图所示:
在学习搭建离散系统时,我也参考过CSDN网站上的文章。
这时候非线性动态系统的输入和输出显然不是跟随控制的,但是没关系,将yd(k),u(k),y(k+1)三个变量都通过示波器导入到工作区。然后执行如下的代码(如下的代码只不过时为了神经网络建立的方便,实际上也可以不用)
首先建立从y(k+1)到u(k)的神经网络,通过神经网络工具箱实现,为什么这样建立?我想这样建立出来的神经网络可以看作是非线性动态系统的逆模型,那么当输入是期望输入yd(k)时,输出便是我们期望的ud(k)了。
然后将搭建的神经网络放入到simulink模型中
有了期望输出的ud(k)之后,我们只需要建立yd(k)到ud(k)之间的神经网络并导入到yd(k)和u(k)之间就可以了。(建立神经网络之前也要运行下面的代码,理由上面叙述过了)
至此,我们建立完成了系统的多神经网络控制
接着运行看一下效果
可以看到期望输出和实际输出是吻合的,但在部分区域存在着误差。将数据导入到工作区后,绘制完成图像如下:
可以看到轨迹跟随的效果是非常好的。
上文全属于离线模型
评论(0)
您还未登录,请登录后发表或查看评论