强化学习工具箱™ 软件提供了几个预定义的控制系统环境,已经为这些环境定义了操作、观察、奖励和动态。您可以使用这些环境:
学习强化学习概念。
熟悉强化学习工具箱软件功能。
测试您自己的强化学习代理。
您可以加载以下预定义的MATLAB®使用rlPredefinedEnv
函数。
环境 | 代理任务 |
---|---|
Cart-pole | 利用离散或连续的动作空间对移动的手推车施加力,使一根柱子保持平衡。 |
双积分器 | 利用离散或连续的动作空间控制二阶动态系统。 |
图像观测单摆 | 用离散或连续的动作空间向上摆动并平衡一个简单的钟摆。 |
您还可以加载预定义的MATLAB网格世界环境。有关详细信息,请参阅加载预定义的网格世界环境.
在预定义的手推车杆环境中,agent的目标是通过向手推车施加水平力来平衡移动手推车上的杆。如果满足以下两个条件,则认为杆已成功平衡:
极角保持在垂直位置的给定阈值内,其中垂直位置为零弧度。
小车位置的大小保持在给定阈值以下。
有两种cart-pole环境变体,它们因代理操作空间而异。
离散代理可以应用以下任意一种力:F马克斯或-F马克斯到马车那儿去F马克斯是MaxForce
环境的性质。
连续-代理可以在范围内施加任何力[-F马克斯,F马克斯]。
要创建购物车立柱环境,请使用rlPredefinedEnv
函数。
离散行动空间
env=rlPredefinedEnv(“CartPole离散型”);
持续的行动空间
env=rlPredefinedEnv(“CartPole-Continuous”);
您可以可视化的车杆环境使用情节
功能。绘图将购物车显示为蓝色正方形,杆显示为红色矩形。
地块(环境)
要想在训练过程中看到环境,打电话情节
训练前,保持可视化图形打开。
有关如何在cart pole环境中培训代理的示例,请参见以下内容:
财产 | 描述 | 默认的 |
---|---|---|
重力 |
重力加速度,单位是米每秒的平方 | 9.8 |
MassCart |
推车的质量,以公斤为单位 | 1. |
质量杆 |
磁极的质量,单位是千克 | 0.1 |
长 |
电杆长度的一半(米) | 0.5 |
MaxForce |
最大水平力大小(单位:牛顿) | 10 |
Ts |
采样时间(秒) | 0.02 |
ThetaThresholdRadians |
极角阈值,以弧度表示 | 0.2094 |
X阈值 |
小车位置阈值(米) | 2.4 |
RewardForNotFalling |
每跨一步杆都会得到奖励 | 1. |
堕落的惩罚 |
未能平衡杆的奖罚 | 离散的- 连续的- |
状态 |
环境状态,指定为具有以下状态变量的列向量:
|
[0 0 0 0]' |
在cart-pole环境中,代理使用单个动作信号(施加到cart上的水平力)与环境交互。该环境包含此动作信号的规范对象。对于具有:
离散动作空间,规范是一个rlFiniteSetSpec
对象
连续的动作空间,是一种规范rlNumericSpec
对象
有关从环境获取操作规范的更多信息,请参见getActionInfo
.
在车杆系统中,agent可以观察到系统中所有的环境状态变量env。状态
。对于每个状态变量,环境包含一个rlNumericSpec
观察规范。所有状态都是连续的和无界的。
有关从环境获取观察规范的更多信息,请参见获取观测信息
.
这种环境的奖励信号由两部分组成。
杆平衡的每一个时间步都有一个正奖励,也就是说,手推车和杆都保持在其指定的阈值范围内。此奖励在整个训练集中累积。要控制此奖励的大小,请使用RewardForNotFalling
环境的性质。
如果杆或车移动到其阈值范围之外,则一次性负惩罚。此时,训练停止。为了控制这个惩罚的大小,使用堕落的惩罚
环境的性质。
在预定义的双积分环境中,agent的目标是通过施加力输入来控制二阶系统中质量的位置。具体而言,二阶系统是一个具有增益的双积分系统。
当下列事件发生时,这些环境的培训就结束了:
质量从原点移动超过给定阈值。
状态向量的范数小于给定的阈值。
有两种双集成商环境变体,它们根据代理的作用空间而不同。
离散代理可以应用以下任意一种力:F马克斯或-F马克斯到马车那儿去F马克斯是MaxForce
环境的性质。
连续-代理可以在范围内施加任何力[-F马克斯,F马克斯]。
要创建双积分器环境,请使用rlPredefinedEnv
函数。
离散行动空间
env=rlPredefinedEnv(“DoubleIntegrator-Discrete”);
持续的行动空间
env=rlPredefinedEnv(“DoubleIntegrator-Continuous”);
可以使用情节
作用绘图将质量显示为红色矩形。
地块(环境)
要想在训练过程中看到环境,打电话情节
训练前,保持可视化图形打开。
有关如何在双集成器环境中培训代理的示例,请参见以下内容:
财产 | 描述 | 默认的 |
---|---|---|
获得 |
双积分器的增益 | 1. |
Ts |
采样时间(秒) | 0.1 |
MaxDistance |
距离震级阈值(米) | 5. |
GoalThreshold |
状态范数阈值 | 0.01 |
Q |
奖励信号观测分量的权重矩阵 | [10 0;0 1] |
R |
奖励信号的动作分量的权重矩阵 | 0.01 |
MaxForce |
最大输入力,单位为牛顿 | 离散的: 连续: |
状态 |
环境状态,指定为具有以下状态变量的列向量:
|
[0 0]' |
在双积分器环境中,智能体与环境交互使用一个单一的动作信号,即作用于质量的力。环境包含此动作信号的规范对象。对于环境有一个:
离散动作空间,规范是一个rlFiniteSetSpec
对象
连续的动作空间,是一种规范rlNumericSpec
对象
有关从环境获取操作规范的更多信息,请参见getActionInfo
.
在双积分系统中,智能体可以同时观察两个环境状态变量env。状态
。对于每个状态变量,环境包含一个rlNumericSpec
观测规范。这两种状态都是连续的和无界的。
有关从环境获取观察规范的更多信息,请参见获取观测信息
.
这个环境的奖励信号是连续时间奖励的离散等价,类似于LQR控制器的代价函数。
在这里:
Q
和R
是环境属性。
x是环境状态向量。
U为输入力。
这个奖励是情节性奖励,也就是说,整个训练过程中的累积奖励。
这个环境是一个简单的无摩擦摆,最初挂在一个向下的位置。训练目标是用最小的控制力使钟摆直立而不倾倒。
有两种单摆环境变量,它们因代理操作空间而异。
离散Agent可以施加扭矩为-2
,-1
,0
,1.
或2.
到钟摆。
连续-代理可以在范围内施加任何扭矩[-2
,2.
]。
要创建单摆环境,请使用rlPredefinedEnv
函数。
离散行动空间
env=rlPredefinedEnv(“SimplePendulumWithImage离散”);
持续的行动空间
env=rlPredefinedEnv(“SimplePendulumWithImage-Continuous”);
有关如何在此环境中培训代理的示例,请参见以下内容:
财产 | 描述 | 默认的 |
---|---|---|
质量 |
摆锤质量 | 1. |
杆长 |
摆长 | 1. |
RodInertia |
摆惯性矩 | 0 |
重力 |
重力加速度,单位是米每秒的平方 | 9.81 |
DampingRatio |
摆运动的阻尼 | 0 |
最大扭矩 |
最大输入扭矩,单位为牛顿 | 2. |
Ts |
采样时间(秒) | 0.05 |
状态 |
环境状态,指定为具有以下状态变量的列向量:
|
[0 0) ' |
Q |
奖励信号观测分量的权重矩阵 | (1 0; 0 0.1) |
R |
奖励信号的动作分量的权重矩阵 | 1 e - 3 |
在单摆环境中,代理与环境交互使用一个单一的动作信号,即施加在摆底部的力矩。环境包含此动作信号的规范对象。对于环境有一个:
离散动作空间,规范是一个rlFiniteSetSpec
对象
连续的动作空间,是一种规范rlNumericSpec
对象
有关从环境获取操作规范的更多信息,请参见getActionInfo
.
在单摆环境中,agent接收到如下观测信号:
摆锤位置的50×50灰度图像
摆角导数
对于每个观测信号,环境包含一个rlNumericSpec
观察规范。所有观察都是连续的和无界的。
有关从环境获取观察规范的更多信息,请参见获取观测信息
.
这种环境的奖励信号是
在这里:
θT是摆锤相对于直立位置的位移角。
是摆锤角度的导数。
Ut - 1是上一个时间步骤的控制工作。