主要内容

rlNumericSpec

为强化学习环境创建连续的行动或观察数据规范

描述

一个rlNumericSpec对象指定强化学习环境的连续动作或观察数据规范。

创建

描述

例子

规范= rlNumericSpec (为连续操作或观察创建数据规范,并设置财产。

规范= rlNumericSpec (名称,值属性使用名称-值对参数。

属性

全部展开

数据空间的下限,指定为与数据空间大小相同的标量或矩阵。当LowerLimit指定为标量,rlNumericSpec将其应用于数据空间中的所有条目。

数据空间的上限,指定为与数据空间大小相同的标量或矩阵。当UpperLimit指定为标量,rlNumericSpec将其应用于数据空间中的所有条目。

的名字rlNumericSpec对象,指定为字符串。

的描述rlNumericSpec对象,指定为字符串。

此属性是只读的。

数据空间的维数,指定为数字向量。

此属性是只读的。

有关指定为字符串的数据类型的信息。

对象的功能

rl金宝appSimulinkEnv 使用实现的动态模型创建强化学习环境金宝app
rlFunctionEnv 使用函数指定自定义强化学习环境动态
rlRepresentation (不推荐)强化学习代理的模型表示

例子

全部折叠

对于本例,考虑rlSimplePendulumModel金宝app仿真软件模型。该模型是一个简单的无摩擦摆,最初挂在一个向下的位置。

打开模型。

mdl =“rlSimplePendulumModel”;open_system (mdl)

创建rlNumericSpecrlFiniteSetSpec对象分别为观察和动作信息。

obsInfo = rlNumericSpec([3 1])向量3的值sin cos d /dt
obsInfo = rlNumericSpec with properties: LowerLimit: -Inf UpperLimit: Inf Name: [0x0 string] Description: [0x0 string] Dimension: [3 1] DataType: "double"
actInfo = rlFiniteSetSpec([-2 0 2])% 3扭矩的可能值:-2 Nm, 0 Nm和2 Nm
actInfo = rlFiniteSetSpec with properties: Elements: [3x1 double] Name: [0x0 string] Description: [0x0 string] Dimension: [1 1] DataType: "double"

属性的属性值可以使用点表示法rlNumericSpecrlFiniteSetSpec对象。

obsInfo。Name =“观察”;actInfo。Name =“扭矩”

分配代理块路径信息,并使用前面步骤中提取的信息为Simulink模型创建强化学习环境。金宝app

agentBlk = [mdl' / RL代理'];env = rl金宝appSimulinkEnv (mdl agentBlk、obsInfo actInfo)
env = 金宝appSimulinkEnvWithAgent with properties: Model: rlSimplePendulumModel AgentBlock: rlSimplePendulumModel/RL Agent ResetFcn: [] UseFastRestart: on . env = SimulinkEnvWithAgent with properties: Model: rlSimplePendulumModel

您还可以使用点表示法包含一个reset函数。对于本例,随机初始化theta0在模型工作区中。

env。ResetFcn = @(in) setVariable(in,“theta0”randn,“工作区”mdl)
env = 金宝appSimulinkEnvWithAgent带有属性:Model: rlSimplePendulumModel AgentBlock: rlSimplePendulumModel/RL Agent ResetFcn: @(in)setVariable(in,'theta0',randn,'Workspace',mdl) UseFastRestart: on
介绍了R2019a