原文章见如下链接

【MATLAB强化学习工具箱】学习笔记--在Simulink环境中训练智能体【进一步说明】https://mp.csdn.net/mp_blog/creation/editor/121349410在上文中已对 m文件与simulink的接口、水箱模型、奖励函数、控制效果等方面进行了分析,本文专门对分析基线进行分析。

分析基线为帮助文档中的示例结果,如下所示。

奖励函数:

(1)h_{ref}<h_0。具体参数如下 h_{ref}=5,h_0=12

 (2)h_{ref}>h_0具体参数如下。h_{ref}=12,h_0=5

 

(3)|h_{ref}-h_0|<0.1 应是即刻达到了最优条件,注水与放水速率几乎相同,reward立即达到最大。神经网络里面出现了类似PI控制中积分项的效果。

 放大仿真开始的局部视图,如下所示。水位还是略有下降,将误差从一开始的0.05变到0.02左右。应该是在大量的网络训练中,h的实际值与href越接近,后续动作作用后超出0.1误差界的可能性越小,得分越高,所以h还是略有变化。

说明,仿真中{\color{Red} h_{ref},h_0}的修改是通过以下修改如下重置函数进行的,目前没有找到更好的方法。

function in = localResetFcn(in)
h_ref = 12;
h_0   = 12.05;

sl_name = 'rlwatertank_20211116';
% reference signal
blk = [sl_name '/Desired Water Level'];
in = setBlockParameter(in,blk,'Value',num2str(h_ref));

% initial height
blk = [sl_name '/Water-Tank System/H'];
in = setBlockParameter(in,blk,'InitialCondition',num2str(h_0));

end

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐