多神经网络轨迹跟随控制(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)之间就可以了。(建立神经网络之前也要运行下面的代码,理由上面叙述过了)
在这里插入图片描述
在这里插入图片描述

至此,我们建立完成了系统的多神经网络控制
在这里插入图片描述

接着运行看一下效果
在这里插入图片描述

可以看到期望输出和实际输出是吻合的,但在部分区域存在着误差。将数据导入到工作区后,绘制完成图像如下:
在这里插入图片描述

可以看到轨迹跟随的效果是非常好的。
上文全属于离线模型