负载预定义控制系统环境
强化学习工具箱™软件提供了几个预定义的控制系统环境,其中已经定义了操作、观察、奖励和动态。您可以使用这些环境来:
学习强化学习的概念。
熟悉强化学习工具箱软件功能。
测试你自己的强化学习剂。
您可以加载以下预定义的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 |
未能平衡杆子的奖励惩罚 | 离散, 连续的, |
状态 |
环境状态,指定为具有以下状态变量的列向量:
|
[0 0 0 0]' |
行动
在车杆环境中,代理使用单个动作信号与环境交互,即施加在车上的水平力。环境包含这个动作信号的规范对象。对环境有:
离散的动作空间,规格是一个
rlFiniteSetSpec
对象。连续动作空间,规格是一个
rlNumericSpec
对象。
有关从环境获取操作规范的更多信息,请参见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 |
最大输入力,单位为牛顿 | 离散: 连续: |
状态 |
环境状态,指定为具有以下状态变量的列向量:
|
[0 0) ' |
行动
在双积分器环境中,代理与环境之间的相互作用使用一个单一的动作信号,即施加在质量上的力。环境包含这个动作信号的规范对象。对环境有:
离散的动作空间,规格是一个
rlFiniteSetSpec
对象。连续动作空间,规格是一个
rlNumericSpec
对象。
有关从环境获取操作规范的更多信息,请参见getActionInfo
.
观察
在双积分器系统中,agent可以同时观察到环境的两个状态变量env。状态
.对于每个状态变量,环境都包含一个rlNumericSpec
观测规范。这两个状态都是连续的、无界的。
有关从环境获取观测规范的详细信息,请参见getObservationInfo
.
奖励
这种环境的奖励信号是以下连续时间奖励的离散时间等价物,它类似于LQR控制器的成本函数。
在这里:
问
而且R
环境属性。x是环境状态向量。
u是输入力。
这种奖励就是情景奖励,也就是说,在整个训练过程中累积的奖励。
简单的摆环境与图像观测
这种环境是一个简单的无摩擦摆,最初悬挂在一个向下的位置。训练目标是用最小的控制力使钟摆直立而不跌倒。
有两种简单的钟摆环境变体,它们因代理动作空间而不同。
离散-代理可施加扭矩
-2
,-1
,0
,1
,或2
钟摆。连续-代理可以应用任何扭矩范围内[
-2
,2
]。
要创建简单的钟摆环境,请使用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 |
行动
在简单的摆环境中,代理与环境交互使用单一动作信号,即施加在摆底部的扭矩。环境包含这个动作信号的规范对象。对环境有:
离散的动作空间,规格是一个
rlFiniteSetSpec
对象。连续动作空间,规格是一个
rlNumericSpec
对象。
有关从环境获取操作规范的更多信息,请参见getActionInfo
.
观察
在简单摆环境下,agent接收到如下观测信号:
50 × 50灰度的钟摆位置图像
摆角的导数
对于每个观测信号,环境包含一个rlNumericSpec
观测规范。所有的观察都是连续的、无界的。
有关从环境获取观测规范的详细信息,请参见getObservationInfo
.
奖励
这个环境的奖励信号是
在这里:
θt是摆距直立位置的位移角。
是摆角的导数。
ut - 1是来自前一个时间步骤的控制努力。