火车多个代理路径跟踪控制
这个例子展示了如何训练多个代理协作执行路径跟踪控制(PFC)。PFC的目标是让自我车辆以一定的速度,同时保持一个安全的旅行距离领先汽车通过控制纵向加速和制动,并同时保持车道的车辆沿中心线通过控制转向角。PFC的更多信息,请参阅<一个href="//www.ru-cchi.com/jp/jp/help/mpc/ref/pathfollowingcontrolsystem.html" data-docid="mpc_ref#mw_78ac0ef3-0622-4d5f-907b-52f6c7bebff6" class="a">路径跟踪控制系统(模型预测控制工具箱)。
概述
一个示例,火车强化学习代理执行PFC所示<一个href="//www.ru-cchi.com/jp/jp/help/reinforcement-learning/ug/train-ddpg-agent-for-path-following-control.html" data-docid="rl_ug#mw_e40d4da8-366f-4eca-8e57-5b6f6a4f5093" class="a">火车DDPG代理路径跟踪控制。在这个示例中,一个深决定性策略梯度(DDPG)代理训练控制的纵向速度和侧转向自我。在本例中,您的火车两个强化学习代理——DDPG代理提供连续的加速度值纵向控制回路和深Q-network (DQN)代理提供离散转向角的值横向控制回路。
训练有素的特工执行PFC通过合作行为和获得满意的结果。
创建环境
环境对于这个示例包含一个简单的自行车模型对自我的车,一个简单的纵向模型车。培训的目标是使自我在一组汽车旅行速度,同时保持安全距离领先的汽车通过控制纵向加速和制动,同时保持自我的汽车旅行沿着中心线的车道通过控制转向角。
加载环境参数。
multiAgentPFCParams
打开仿真软件模型。
mdl =“rlMultiAgentPFC”;open_system (mdl)
在这个模型中,两个强化学习代理(RL Agent1和RL Agent2)提供纵向加速度和转向角信号,分别。
模拟下列条件发生时终止。
(横向偏差的大小超过1)
(自我汽车的纵向速度低于0.5。
(自我和铅的车之间的距离小于零)
纵向控制器(RL Agent1):
自我的参考速度的汽车
定义如下。如果相对距离小于安全距离,自我汽车跟踪引导车的最低速度和司机让速度。通过这种方式,自我汽车保持一定距离领先的汽车。如果相对距离大于安全距离,自我汽车跟踪司机让速度。在这个例子中,安全距离被定义为一个自我汽车纵向速度的线性函数
,也就是说,
。安全距离确定自我的跟踪速度的汽车。
的观测环境包含纵向测量:速度误差
,它的积分
,自我汽车纵向速度
。
动作信号由连续的加速度值3至2米/秒^ 2。
奖励
,只要在每一个时间步
,是
在这里,
从之前的时间步,加速度输入和:
如果仿真终止,否则
。
如果
,否则
。
横向控制器(RL Agent2):
的观测环境包含横向测量:外侧偏移
相对偏航角
,他们的衍生品
和
,他们的积分
和
。
动作信号由离散的转向角的动作把值从-15度(-0.2618 rad)到15度(0.2618 rad)步骤1度(0.0175 rad)。
奖励
,只要在每一个时间步
,是
在这里,
是前一个时间步的转向输入,
从之前的时间步,加速度输入和:
如果仿真终止,否则
。
,否则
。
逻辑方面的回报函数(
,
,
)惩罚代理如果仿真早期终止,同时鼓励代理商做横向误差和速度误差小。
建立纵向控制回路的观察和操作规范。
obsInfo1 = rlNumericSpec (1 [3]);actInfo1 = rlNumericSpec ([1], LowerLimit = 3, UpperLimit = 2);
创建观察和行动规范横向控制回路。
obsInfo2 = rlNumericSpec (1 [6]);actInfo2 = rlFiniteSetSpec((15:15) *π/ 180);
结合观察和行动规范作为单元阵列。
obsInfo = {obsInfo1, obsInfo2};actInfo = {actInfo1, actInfo2};
创造一个仿真软件环境接口,指定的块路径代理模块。块路径的顺序必须匹配的顺序观察和行动规范细胞阵列。
黑色= mdl + (“/ RL Agent1”,“/ RL Agent2”];env = rlSimulinkEnv (mdl,黑色,obsInfo actInfo);
指定一个重置功能对环境使用ResetFcn财产。这个函数pfcResetFcn随机集的初始姿势铅和自我训练期间车辆每一集的开头。
env。ResetFcn = @pfcResetFcn;
创建代理
对于这个示例创建两个强化学习代理。首先,解决再现性的随机种子。
rng (0)
同时代理经营样本时间在这个例子。设置采样时间值(以秒为单位)。
t = 0.1;
纵向控制
代理的纵向控制回路是一个DDPG代理。DDPG代理接近长期奖励给观测和操作使用批评价值函数表示和选择操作使用一个演员政策表示。有关创造深层神经网络价值函数的更多信息和政策表示,看到的<一个href="//www.ru-cchi.com/jp/jp/help/reinforcement-learning/ug/create-policy-and-value-function-representations.html" data-docid="rl_ug#mw_2c7e8669-1e91-4d42-afa6-674009a08004" class="a">创建政策和价值功能。
使用createCCAgent函数创建一个DDPG代理纵向控制。这个代理的结构是相似的<一个href="//www.ru-cchi.com/jp/jp/help/reinforcement-learning/ug/train-ddpg-agent-for-adaptive-cruise-control.html" data-docid="rl_ug#mw_e4e63d67-bb1a-4120-85cf-b20338729d59" class="a">火车DDPG代理自适应巡航控制的功能的例子。
agent1 = createACCAgent (obsInfo1 actInfo1, Ts);
横向控制
横向控制回路的代理是一个DQN代理。DQN代理接近长期奖励给观测和操作使用批评价值函数表示。
使用createLKAAgent函数创建一个DQN代理横向控制。这个代理的结构是相似的<一个href="//www.ru-cchi.com/jp/jp/help/reinforcement-learning/ug/train-dqn-agent-for-lane-keeping-assist.html" data-docid="rl_ug#mw_1b9850d5-18f3-4b9d-91fc-a45117c8e6cb" class="a">火车DQN车道保持辅助剂的例子。
agent2 = createLKAAgent (obsInfo2 actInfo2, Ts);
培训代理商
指定培训选项。对于这个示例,使用以下选项。
运行每个训练集最多5000集,每集与持久的最多maxsteps时间的步骤。
在事件管理器对话框显示培训进展(设置详细的和情节选项)。
停止训练DDPG和DQN代理当他们收到平均回报大于480年和1195年,分别。当一个代理达到停止条件,它模拟自己的政策而不学,而其他代理继续训练。
Tf = 60;%的仿真时间maxepisodes = 5000;maxsteps =装天花板(Tf / Ts);trainingOpts = rlTrainingOptions (…MaxEpisodes = MaxEpisodes,…MaxStepsPerEpisode = maxsteps,…Verbose = false,…情节=“训练进步”,…StopTrainingCriteria =“AverageReward”,…StopTrainingValue = (480、1195));
培训人员使用<一个href="//www.ru-cchi.com/jp/jp/help/reinforcement-learning/ref/rl.agent.rlqagent.train.html" data-docid="rl_ref#mw_c0ccd38c-bbe6-4609-a87d-52ebe4767852" class="a">火车函数。训练这些代理是计算密集型过程需要几分钟才能完成。节省时间在运行这个例子中,加载一个pretrained代理设置doTraining来假。训练自己代理,集doTraining来真正的。
doTraining = false;如果doTraining%培训代理。trainingStats =火车([agent1 agent2], env, trainingOpts);其他的%负载pretrained代理的例子。负载(“rlPFCAgents.mat”)结束
下图显示了两个培训进展的快照代理。
模拟代理
验证的性能训练有素的特工,在仿真软件环境中模拟代理取消以下命令。代理模拟更多的信息,请参阅<一个href="//www.ru-cchi.com/jp/jp/help/reinforcement-learning/ref/rl.option.rlsimulationoptions.html" data-docid="rl_ref#mw_983bb2e9-0115-4548-8daa-687037e090b2" class="a">rlSimulationOptions和<一个href="//www.ru-cchi.com/jp/jp/help/reinforcement-learning/ref/rl.env.abstractenv.sim.html" data-docid="rl_ref#mw_e6296379-23b5-4819-a13b-210681e153bf" class="a">sim卡。
% simOptions = rlSimulationOptions (MaxSteps = MaxSteps);%的经验= sim (env, [agent1 agent2], simOptions);
演示培训代理使用确定的初始条件,模拟仿真软件的模型。
e1_initial = -0.4;e2_initial = 0.1;x0_lead = 80;sim (mdl)
下面的情节展示结果当领导的车是70前的自我汽车开始模拟。
汽车速度带来变化,从24米/秒到30 m / s定期(右上的情节)。自我的车保持安全距离在整个模拟图(右下方)。
从0到30秒,自我的车道设置速度(右上的情节)和经历一些加速度(左上的情节)。之后,加速度是减少到0。
左下图显示了横向偏差。所示的情节,横向偏差大大降低了在1秒之内。横向偏差仍小于0.1米。
另请参阅
功能
|rlSimulinkEnv
对象
块
相关的例子
更多关于
这个例子展示了如何训练多个代理协作执行路径跟踪控制(PFC)。PFC的目标是让自我车辆以一定的速度,同时保持一个安全的旅行距离领先汽车通过控制纵向加速和制动,并同时保持车道的车辆沿中心线通过控制转向角。PFC的更多信息,请参阅<一个href="//www.ru-cchi.com/jp/jp/help/mpc/ref/pathfollowingcontrolsystem.html" data-docid="mpc_ref#mw_78ac0ef3-0622-4d5f-907b-52f6c7bebff6" class="a">路径跟踪控制系统 一个示例,火车强化学习代理执行PFC所示<一个href="//www.ru-cchi.com/jp/jp/help/reinforcement-learning/ug/train-ddpg-agent-for-path-following-control.html" data-docid="rl_ug#mw_e40d4da8-366f-4eca-8e57-5b6f6a4f5093" class="a">火车DDPG代理路径跟踪控制 训练有素的特工执行PFC通过合作行为和获得满意的结果。 环境对于这个示例包含一个简单的自行车模型对自我的车,一个简单的纵向模型车。培训的目标是使自我在一组汽车旅行速度,同时保持安全距离领先的汽车通过控制纵向加速和制动,同时保持自我的汽车旅行沿着中心线的车道通过控制转向角。 加载环境参数。 打开仿真软件模型。 在这个模型中,两个强化学习代理(RL Agent1和RL Agent2)提供纵向加速度和转向角信号,分别。 模拟下列条件发生时终止。
(横向偏差的大小超过1)
(自我汽车的纵向速度低于0.5。
(自我和铅的车之间的距离小于零) 纵向控制器(RL Agent1): 自我的参考速度的汽车 的观测环境包含纵向测量:速度误差 动作信号由连续的加速度值3至2米/秒^ 2。 奖励
在这里,
如果仿真终止,否则
如果 横向控制器(RL Agent2): 的观测环境包含横向测量:外侧偏移 动作信号由离散的转向角的动作把值从-15度(-0.2618 rad)到15度(0.2618 rad)步骤1度(0.0175 rad)。 奖励
在这里,
如果仿真终止,否则
,否则 逻辑方面的回报函数( 建立纵向控制回路的观察和操作规范。 创建观察和行动规范横向控制回路。 结合观察和行动规范作为单元阵列。 创造一个仿真软件环境接口,指定的块路径代理模块。块路径的顺序必须匹配的顺序观察和行动规范细胞阵列。 指定一个重置功能对环境使用 对于这个示例创建两个强化学习代理。首先,解决再现性的随机种子。 同时代理经营样本时间在这个例子。设置采样时间值(以秒为单位)。 代理的纵向控制回路是一个DDPG代理。DDPG代理接近长期奖励给观测和操作使用批评价值函数表示和选择操作使用一个演员政策表示。有关创造深层神经网络价值函数的更多信息和政策表示,看到的<一个href="//www.ru-cchi.com/jp/jp/help/reinforcement-learning/ug/create-policy-and-value-function-representations.html" data-docid="rl_ug#mw_2c7e8669-1e91-4d42-afa6-674009a08004" class="a">创建政策和价值功能 使用 横向控制回路的代理是一个DQN代理。DQN代理接近长期奖励给观测和操作使用批评价值函数表示。 使用 指定培训选项。对于这个示例,使用以下选项。 运行每个训练集最多5000集,每集与持久的最多 在事件管理器对话框显示培训进展(设置 停止训练DDPG和DQN代理当他们收到平均回报大于480年和1195年,分别。当一个代理达到停止条件,它模拟自己的政策而不学,而其他代理继续训练。 培训人员使用<一个href="//www.ru-cchi.com/jp/jp/help/reinforcement-learning/ref/rl.agent.rlqagent.train.html" data-docid="rl_ref#mw_c0ccd38c-bbe6-4609-a87d-52ebe4767852" class="a"> 下图显示了两个培训进展的快照代理。 验证的性能训练有素的特工,在仿真软件环境中模拟代理取消以下命令。代理模拟更多的信息,请参阅<一个href="//www.ru-cchi.com/jp/jp/help/reinforcement-learning/ref/rl.option.rlsimulationoptions.html" data-docid="rl_ref#mw_983bb2e9-0115-4548-8daa-687037e090b2" class="a"> 演示培训代理使用确定的初始条件,模拟仿真软件的模型。 下面的情节展示结果当领导的车是70前的自我汽车开始模拟。 汽车速度带来变化,从24米/秒到30 m / s定期(右上的情节)。自我的车保持安全距离在整个模拟图(右下方)。 从0到30秒,自我的车道设置速度(右上的情节)和经历一些加速度(左上的情节)。之后,加速度是减少到0。 左下图显示了横向偏差。所示的情节,横向偏差大大降低了在1秒之内。横向偏差仍小于0.1米。
概述
创建环境
multiAgentPFCParams
mdl =
obsInfo1 = rlNumericSpec (1 [3]);actInfo1 = rlNumericSpec ([1], LowerLimit = 3, UpperLimit = 2);
obsInfo2 = rlNumericSpec (1 [6]);actInfo2 = rlFiniteSetSpec((15:15) *π/ 180);
obsInfo = {obsInfo1, obsInfo2};actInfo = {actInfo1, actInfo2};
黑色= mdl + (
env。ResetFcn = @pfcResetFcn;
创建代理
rng (0)
t = 0.1;
纵向控制
agent1 = createACCAgent (obsInfo1 actInfo1, Ts);
横向控制
agent2 = createLKAAgent (obsInfo2 actInfo2, Ts);
培训代理商
Tf = 60;
火车
doTraining = false;
模拟代理
rlSimulationOptions
sim卡
% simOptions = rlSimulationOptions (MaxSteps = MaxSteps);
e1_initial = -0.4;e2_initial = 0.1;x0_lead = 80;sim (mdl)
另请参阅
功能
rlSimulinkEnv
对象
块
相关的例子
更多关于