主要内容

负载预定义控制系统环境

强化学习工具箱™软件提供了几个预定义的控制系统环境,其中已经定义了操作、观察、奖励和动态。您可以使用这些环境来:

  • 学习强化学习的概念。

  • 熟悉强化学习工具箱软件功能。

  • 测试你自己的强化学习剂。

您可以加载以下预定义的MATLAB®控件控制系统环境rlPredefinedEnv函数。

环境 代理任务
Cart-pole 通过使用离散或连续的动作空间对推车施加力,使移动的推车上的杆保持平衡。
双积分器 使用离散或连续动作空间控制二阶动态系统。
简单的摆具图像观察 使用离散或连续的动作空间摆动和平衡一个简单的钟摆。

您还可以加载预定义的MATLAB网格世界环境。有关更多信息,请参见加载预定义的网格世界环境

Cart-Pole环境

在预定义的推车-杆环境中,代理的目标是通过向推车施加水平力来平衡移动推车上的杆。如果满足以下两个条件,则认为极点平衡成功:

  • 极点角保持在垂直位置的给定阈值内,其中垂直位置为零弧度。

  • 推车位置的大小保持在给定的阈值以下。

有两种车极环境变体,它们因代理动作空间而不同。

  • 离散-代理可以应用任意一种力F马克斯或-F马克斯到马车那里去F马克斯MaxForce环境的属性。

  • 连续-代理可以在[-]范围内施加任何力F马克斯F马克斯]。

要创建车杆环境,请使用rlPredefinedEnv函数。

  • 离散行动空间

    env = rlPredefinedEnv (“CartPole-Discrete”);
  • 持续的行动空间

    env = rlPredefinedEnv (“CartPole-Continuous”);

方法可以可视化车杆环境情节函数。该图将购物车显示为蓝色正方形,杆子显示为红色矩形。

情节(env)

要在训练过程中可视化环境,请调用情节训练前保持可视化图形打开。

有关如何在车杆环境中训练代理的示例,请参见以下内容:

环境属性

财产 描述 默认的
重力 重力加速度,单位是米每秒平方 9.8
MassCart 马车的质量,以千克为单位 1
MassPole 极点的质量,单位为千克 0.1
长度 以米为单位的杆子长度的一半 0.5
MaxForce 最大水平力大小,单位为牛顿 10
Ts 采样时间(秒) 0.02
ThetaThresholdRadians 极点角阈值,以弧度为单位 0.2094
XThreshold 推车位置阈值,单位为米 2.4
RewardForNotFalling 每走一步,杆子都是平衡的 1
PenaltyForFalling 未能平衡杆子的奖励惩罚

离散,5

连续的,-50年

状态

环境状态,指定为具有以下状态变量的列向量:

  • 车的位置

  • 推车位置导数

  • 极角

  • 极角导数

[0 0 0 0]'

行动

在车杆环境中,代理使用单个动作信号与环境交互,即施加在车上的水平力。环境包含这个动作信号的规范对象。对环境有:

有关从环境获取操作规范的更多信息,请参见getActionInfo

观察

在车极系统中,agent可以观察到所有的环境状态变量env。状态.对于每个状态变量,环境都包含一个rlNumericSpec观测规范。所有的状态都是连续的、无界的。

有关从环境获取观测规范的详细信息,请参见getObservationInfo

奖励

这种环境的奖励信号由两个部分组成。

  • 杆子平衡的每一步都有一个积极的奖励,也就是说,车和杆子都保持在它们指定的阈值范围内。这个奖励会在整个训练过程中累积。要控制这个奖励的大小,使用RewardForNotFalling环境的属性。

  • 如果杆或车移动超出他们的阈值范围,一次负处罚。到此为止,训练环节结束了。要控制该惩罚值的大小,请使用PenaltyForFalling环境的属性。

双积分器的环境

在预先设定的双积分器环境中,agent的目标是通过施加一个力输入来控制二阶系统中质量的位置。具体地说,二阶系统是一个带增益的双积分器。

当发生以下事件之一时,这些环境的训练章节结束:

  • 质量从原点开始移动超过一个给定的阈值。

  • 状态向量的范数小于给定的阈值。

有两种双积分器环境变体,它们因代理操作空间而不同。

  • 离散-代理可以应用任意一种力F马克斯或-F马克斯到马车那里去F马克斯MaxForce环境的属性。

  • 连续-代理可以在[-]范围内施加任何力F马克斯F马克斯]。

要创建双积分器环境,请使用rlPredefinedEnv函数。

  • 离散行动空间

    env = rlPredefinedEnv (“DoubleIntegrator-Discrete”);
  • 持续的行动空间

    env = rlPredefinedEnv (“DoubleIntegrator-Continuous”);

方法可以可视化双积分器环境情节函数。该图将质量显示为一个红色矩形。

情节(env)

要在训练过程中可视化环境,请调用情节训练前保持可视化图形打开。

有关如何在双积分器环境中培训代理的示例,请参见以下内容:

环境属性

财产 描述 默认的
获得 双积分器的增益 1
Ts 采样时间(秒) 0.1
MaxDistance 距离大小阈值(以米为单位) 5
GoalThreshold 国家标准阈值 0.01
奖励信号观测分量的权重矩阵 [10 0;0 1]
R 奖励信号动作分量的权重矩阵 0.01
MaxForce 最大输入力,单位为牛顿

离散:2

连续:

状态

环境状态,指定为具有以下状态变量的列向量:

  • 质量的位置

  • 质量位置导数

[0 0) '

行动

在双积分器环境中,代理与环境之间的相互作用使用一个单一的动作信号,即施加在质量上的力。环境包含这个动作信号的规范对象。对环境有:

有关从环境获取操作规范的更多信息,请参见getActionInfo

观察

在双积分器系统中,agent可以同时观察到环境的两个状态变量env。状态.对于每个状态变量,环境都包含一个rlNumericSpec观测规范。这两个状态都是连续的、无界的。

有关从环境获取观测规范的详细信息,请参见getObservationInfo

奖励

这种环境的奖励信号是以下连续时间奖励的离散时间等价物,它类似于LQR控制器的成本函数。

r e w 一个 r d x x + u R u d t

在这里:

  • 而且R环境属性。

  • x是环境状态向量。

  • u是输入力。

这种奖励就是情景奖励,也就是说,在整个训练过程中累积的奖励。

简单的摆环境与图像观测

这种环境是一个简单的无摩擦摆,最初悬挂在一个向下的位置。训练目标是用最小的控制力使钟摆直立而不跌倒。

有两种简单的钟摆环境变体,它们因代理动作空间而不同。

  • 离散-代理可施加扭矩-2-101,或2钟摆。

  • 连续-代理可以应用任何扭矩范围内[-22]。

要创建简单的钟摆环境,请使用rlPredefinedEnv函数。

  • 离散行动空间

    env = rlPredefinedEnv (“SimplePendulumWithImage-Discrete”);
  • 持续的行动空间

    env = rlPredefinedEnv (“SimplePendulumWithImage-Continuous”);

有关如何在此环境中培训代理的示例,请参见以下内容:

环境属性

财产 描述 默认的
质量 钟摆质量 1
RodLength 摆的长度 1
RodInertia 摆惯性矩 0
重力 重力加速度,单位是米每秒平方 9.81
DampingRatio 摆运动阻尼 0
MaximumTorque 最大输入扭矩,单位为牛顿 2
Ts 采样时间(秒) 0.05
状态

环境状态,指定为具有以下状态变量的列向量:

  • 摆角

  • 摆角速度

[0 0) '
奖励信号观测分量的权重矩阵 (1 0; 0 0.1)
R 奖励信号动作分量的权重矩阵 1 e - 3

行动

在简单的摆环境中,代理与环境交互使用单一动作信号,即施加在摆底部的扭矩。环境包含这个动作信号的规范对象。对环境有:

有关从环境获取操作规范的更多信息,请参见getActionInfo

观察

在简单摆环境下,agent接收到如下观测信号:

  • 50 × 50灰度的钟摆位置图像

  • 摆角的导数

对于每个观测信号,环境包含一个rlNumericSpec观测规范。所有的观察都是连续的、无界的。

有关从环境获取观测规范的详细信息,请参见getObservationInfo

奖励

这个环境的奖励信号是

r t θ t 2 + 0.1 θ ˙ t 2 + 0.001 u t 1 2

在这里:

  • θt是摆距直立位置的位移角。

  • θ ˙ t 是摆角的导数。

  • ut - 1是来自前一个时间步骤的控制努力。

另请参阅

|

相关的话题

Baidu
map