主要内容

水箱强化学习环境模型

这个例子展示了如何创建一个水箱强化学习模型®环境包含一个RL代理块地方的水位控制器的一辆坦克。金宝app模拟这个环境中,您必须创建一个代理和指定代理在RL代理。例如,火车一个代理使用这样的环境下,明白了创建仿真软件环金宝app境和培训代理

mdl =“rlwatertank”;open_system (mdl)

这个模型已经包含了RL代理块,连接到以下信号:

  • 标量动作输出信号

  • 向量的观察输入信号

  • 标量奖励输入信号

  • 逻辑输入信号停止仿真

操作和观察

强化学习环境从代理接收动作信号并生成观测信号以响应这些行动。培养一个代理,您必须创建操作规范和观察对象。

这个环境的行动信号的流量控制信号发送到工厂。创建一个规范的对象为一个动作频道连续信号,使用rlNumericSpec函数。

actionInfo = rlNumericSpec ([1]);actionInfo。Name =“流”;

如果动作信号需要一组离散的可能值之一,创建规范使用rlFiniteSetSpec函数。

在这种环境下,有三个观测信号发送到代理,指定为一个矢量信号。观察向量是 ( e dt e h ] T ,地点:

  • h 水箱里的水的高度。

  • e = r - - - - - - h ,在那里 r 水高的参考价值。

计算观测信号的生成观测子系统。

open_system ([mdl' /生成观察'])

创建一个向量观测规范的三元素。指定一个下界的0水高度,离开其他观测信号无限。

observationInfo = rlNumericSpec (1 [3],“LowerLimit”,(负负0]”,“UpperLimit”,正正正]);observationInfo。Name =“观察”;observationInfo。描述=综合误差、误差和测量身高的;

如果行为或观察由总线信号,创建规范使用bus2RLSpec函数。

奖励的信号

构造一个标量奖励的信号。对于这个示例,指定以下奖励。

奖励 = 10 ( | e | < 0 1 ) - - - - - - 1 ( | e | 0 1 ) - - - - - - One hundred. ( h 0 | | h 20. )

下面的错误时积极的奖励0.1和消极的。同时,有一个大外的水的高度时奖励处罚020.的范围内。

构造这个奖励的计算奖励子系统。

open_system ([mdl/计算奖励的])

停止信号

终止训练集和模拟,指定一个逻辑信号结束块的输入端口。对于这个示例,终止发作 h 0 h 20.

计算这个信号停止仿真子系统。

open_system ([mdl“模拟/停止”])

创建环境对象

创建一个环境对象的仿真软件模型。金宝app

(mdl env金宝app = rlSimulinkEnv (mdl,' / RL代理',observationInfo actionInfo);

重置功能

您还可以创建一个定制的复位函数,随机参数、变量或模型的状态。在这个例子中,重置函数随机排列参考信号和初始水高度和设置相应的块参数。

env。ResetFcn = @(在)localResetFcn(的);

本地函数

函数= localResetFcn(中)%随机参考信号黑色= sprintf (“rlwatertank /期望\ nWater级别”);h = 3 * randn + 10;h < = 0 | | h > = 20 h = 3 * randn + 10;结束在= setBlockParameter(黑色,“价值”num2str (h));%随机初始高度h = 3 * randn + 10;h < = 0 | | h > = 20 h = 3 * randn + 10;结束黑色=“rlwatertank /水箱系统/ H”;在= setBlockParameter(黑色,“InitialCondition”num2str (h));结束

另请参阅

功能

相关的话题