强化学习工具箱™软件提供了几个预定义的控制系统环境,其中的动作、观察、奖励和动态已经定义。你可以使用这些环境:
学习强化学习概念。
熟悉钢筋学习工具箱软件功能。
测试自己的强化学习代理。
您可以加载以下预定义的MATLAB®控制系统环境使用rlPredefinedEnv
函数。
环境 | 代理任务 |
---|---|
车杆子 | 通过使用离散或连续的动作空间将力施加到购物车上的移动电车上的平衡。 |
双积极商 | 使用离散或连续动作空间控制二阶动态系统。 |
单摆与图像观察 | 使用离散或连续的动作空间摇摆并平衡简单的钟摆。 |
您还可以加载预定义的MATLAB网格世界环境。有关更多信息,请参阅加载预定义的网格世界环境.
在预定义的车杆环境中,代理的目标是通过对车施加水平力来平衡移动中的车杆。当满足以下两个条件时,认为极点平衡成功:
极角保持在垂直位置的给定阈值内,其中垂直位置为零弧度。
小车位置的大小仍然低于给定的阈值。
有两种车杆环境变体,它们因代理操作空间的不同而不同。
离散Agent可以施加任意一种力F最大限度或者 -F最大限度到购物车,在哪里F最大限度是Maxiforce.
环境的财产。
连续-剂可以施加范围内的任何力[-F最大限度,F最大限度]。
要创造一个车杆的环境,使用rlPredefinedEnv
函数。
离散的动作空间
env = rlPredefinedEnv (“CartPole-Discrete”);
连续动作空间
env = rlPredefinedEnv ('cartpole-continual');
您可以使用该方法可视化推车杆环境阴谋
函数。该情节将购物车显示为蓝色方形,杆显示为红色矩形。
情节(env)
在培训期间可视化环境,请致电阴谋
在训练之前,请保持可视化数字打开。
有关如何在电线杆环境中培训代理的示例,请参见以下示例:
财产 | 描述 | 默认 |
---|---|---|
重力 |
由于每秒平方米的重力引起的加速度 | 9.8 |
马萨诸塞州 |
千克的购物车 | 1 |
MassPole |
杆的质量以千克 | 0.1 |
长度 |
杆子长度的一半,单位是米 | 0.5 |
Maxiforce. |
Newtons中的最大水平力幅度 | 10 |
Ts |
采样时间(秒) | 0.02 |
Thetathresholdradians. |
弧度的极点阈值 | 0.2094 |
XThreshold |
车的位置阈值以米为单位 | 2.4 |
Remandfornotfalling. |
每一步杆子都是平衡的奖励 | 1 |
禁用 |
不能平衡柱子的奖励惩罚 | 离散, 连续的, |
状态 |
环境状态,指定为带有以下状态变量的列向量:
|
[0 0 0]' |
在车杆环境中,代理使用单个动作信号与环境交互,即作用于车的水平力。环境包含此动作信号的规范对象。对于环境有一个:
离散的行动空间,是一种规范rlfinitesetspec.
对象。
连续动作空间,规格是一个rlnumericspec.
对象。
有关从环境中获取动作规范的详细信息,请参阅getActionInfo.
.
在推车系统中,代理可以观察到所有环境状态变量ent.state.
.对于每个状态变量,环境包含一个rlnumericspec.
观测规范。所有的状态都是连续的和无界的。
有关从环境中获取观察规范的更多信息,请参阅getObservationInfo
.
此环境的奖励信号由两个组件组成。
在杆平衡的每一个时间步骤中都有积极的奖励,也就是说,车和杆都保持在指定的阈值范围内。这种奖励会在整个训练过程中累积。为了控制奖励的大小,使用Remandfornotfalling.
环境的财产。
如果杆或车移动到其阈值范围之外,则一次性负惩罚。此时,训练停止。为了控制这个惩罚的大小,使用禁用
环境的财产。
在预先设定的双积分器环境中,智能体的目标是通过施加一个力输入来控制二阶系统中质量的位置。具体地说,二阶系统是一个具有增益的双积分器。
当发生以下任一事件时,这些环境的训练剧集结束:
质量从原点移动到一个给定的阈值。
状态向量的范数小于给定的阈值。
有两种双积分器环境变体,其因代理动作空间而异。
离散Agent可以施加任意一种力F最大限度或者 -F最大限度到购物车,在哪里F最大限度是Maxiforce.
环境的财产。
连续-剂可以施加范围内的任何力[-F最大限度,F最大限度]。
要创建双积分器环境,请使用rlPredefinedEnv
函数。
离散的动作空间
env = rlPredefinedEnv ('双凝胶组 - 离散');
连续动作空间
env = rlPredefinedEnv ('双凝胶组连续');
您可以使用该方法可视化双积分环境阴谋
函数。绘图显示质量作为红色矩形。
情节(env)
在培训期间可视化环境,请致电阴谋
在训练之前,请保持可视化数字打开。
有关如何在双集成商环境中培训代理的示例,请参见下面的示例:
财产 | 描述 | 默认 |
---|---|---|
获得 |
为双积分器获得 | 1 |
Ts |
采样时间(秒) | 0.1 |
Maxdistance. |
距离震级阈值,单位为米 | 5 |
守队 |
国家标准阈值 | 0.01 |
问 |
奖励信号的观察分量的权重矩阵 | [10 0;0 1] |
R |
奖励信号的动作分量的权重矩阵 | 0.01 |
Maxiforce. |
牛顿中的最大输入力 | 离散: 连续: |
状态 |
环境状态,指定为带有以下状态变量的列向量:
|
[0 0) ' |
在双积分器环境中,代理使用单个动作信号与环境交互,力施加到质量。环境包含此动作信号的规范对象。对于环境有一个:
离散的行动空间,是一种规范rlfinitesetspec.
对象。
连续动作空间,规格是一个rlnumericspec.
对象。
有关从环境中获取动作规范的详细信息,请参阅getActionInfo.
.
在双积分器系统中,智能体可以同时观察系统中的环境状态变量ent.state.
.对于每个状态变量,环境包含一个rlnumericspec.
观测规范。这两个国家都是连续的,无界的。
有关从环境中获取观察规范的更多信息,请参阅getObservationInfo
.
此环境的奖励信号是以下连续时间奖励的离散时间等同,这类似于LQR控制器的成本函数。
在这里:
问
和R
环境属性。
x为环境状态向量。
u是输入力。
这种奖励是情景性奖励,也就是说,在整个训练过程中累积的奖励。
这种环境是一个简单的无摩擦摆在向下位置悬挂。培训目标是使摆锤直立,而不会使用最小的控制工作。
有两种简单的摆环境变体,它们根据agent的行动空间而不同。
离散 - 代理可以施加扭矩-2
,-1
,0
,1
,或2
到摆锤。
连续-药剂可施加范围内的任何扭矩[-2
,2
]。
要创建一个简单的钟摆环境,使用rlPredefinedEnv
函数。
离散的动作空间
env = rlPredefinedEnv (“SimplePendulumWithImage-Discrete”);
连续动作空间
env = rlPredefinedEnv ('SimpleDeputulumWithimage-Continue');
有关如何在此环境中培训代理的示例,请参见以下示例:
财产 | 描述 | 默认 |
---|---|---|
大量的 |
钟摆质量 | 1 |
RodLength |
摆的长度 | 1 |
罗蒂蒂亚 |
摆惯性矩 | 0 |
重力 |
由于每秒平方米的重力引起的加速度 | 9.81 |
阻尼比 |
摆运动阻尼 | 0 |
MaximumTorque |
Newtons中的最大输入扭矩 | 2 |
Ts |
采样时间(秒) | 0.05 |
状态 |
环境状态,指定为带有以下状态变量的列向量:
|
[0 0]' |
问 |
奖励信号的观察分量的权重矩阵 | [1 0; 0 0.1] |
R |
奖励信号的动作分量的权重矩阵 | 1E-3 |
在简单的摆动环境中,代理使用单个动作信号与环境相互作用,施加在摆在摆的底部。环境包含此动作信号的规范对象。对于环境有一个:
离散的行动空间,是一种规范rlfinitesetspec.
对象。
连续动作空间,规格是一个rlnumericspec.
对象。
有关从环境中获取动作规范的详细信息,请参阅getActionInfo.
.
在简单的柱形环境中,代理接收以下观察信号:
50 × 50灰度图像的钟摆位置
摆角的导数
对于每个观测信号,环境包含一个rlnumericspec.
观测规范。所有的观测都是连续的、无界的。
有关从环境中获取观察规范的更多信息,请参阅getObservationInfo
.
这种环境的奖励信号是
在这里:
θ.t是从直立位置的位移的摆角。
是摆角的导数。
uT-1是前一步的控制力。