我正在尝试在 Simulink 中构建一个包含神经网络的模型。我的想法是组成一个模型,其中包括一个受控对象(电气驱动器)、PID 控制器和用于微调 PID 控制器的 NN 块。NN 训练被提供为强化学习。NN 计算 PID 控制器的系数,然后它接收来自对象输出的反馈并计算下一个循环的系数以最小化静态误差。
我已经成功地构建了没有 NN 的模型。
现在我正在尝试添加 NN 块,这让我陷入了困境。1)。我应该使用什么类型的块来创建 NN?Simulink 中是否有用于 NN 的预设块(在其中我只需设置层数和神经元以及激活和损失的函数?)或者唯一的方法是从零开始构建 NN?
2)。据我所知,工作区中的变量仅在建模结束后才会更新。如果我想在运行时更改块的参数,我需要在其中使用 S-function 块和“set_param”函数。那么这是将对象输出传输到 NN 块的唯一方法吗?或者是否有可能在运行时自动传输(如 PID 控制器和受控对象之间)?或者可能有人对在 Simulink(甚至在另一个 Matlab 工具箱)中制作这样的模型有更好的概念?
任何想法和链接都适用。提前致谢。我从http://pnu.edu.ru/media/ejournal/articles-2017/TGU_8_217.pdf获取的驱动器的 PS 模型