此示例显示如何在Simulink®中培训用于路径跟踪控制(PFC)的深度确定性策略梯度(DDPG)代理。万博1manbetx有关DDPG代理商的更多信息,请参阅<一个href="//www.tianjin-qmedu.com/help/reinforcement-learning/ug/ddpg-agents.html" class="a">深度确定性政策梯度代理 此示例的增强学习环境是自行车的简单自行车模型,以及铅轿车的简单纵向模型。培训目标是使自助式汽车以设定的速度行进,同时通过控制纵向加速和制动来保持与引线的安全距离,以及通过控制前转向角来保持自我车辆沿其车道的中心线行驶。有关PFC的更多信息,请参阅<一个href="//www.tianjin-qmedu.com/help/mpc/ref/pathfollowingcontrolsystem.html" class="a">路径跟踪控制系统 指定两个车辆的初始位置和速度。 指定静止默认间隔(m)、时间间隔(s)和驱动程序设置的速度(m/s)。 为了模拟车辆动力学的物理限制,将加速度限制到范围内 道路的曲率由恒定的0.001( 定义采样时间 打开模型。 对于此模型: 动作信号包括加速度和转向角动作。加速度动作信号的值介于-3和2 (m/s^2)之间。转向动作信号的值介于-15度(-0.2618 rad)和15度(0.2618 rad)之间。 自助式汽车的参考速度 来自环境的观察结果包含纵向测量:速度误差 横向偏差时仿真终止 奖励
在哪里
如果终止模拟,否则
如果横向错误
如果速度错误 奖励中的三个逻辑条件鼓励agent使横向误差和速度误差都变小,同时在模拟提前终止时对agent进行惩罚。 为Simulink模型创建一个环境接口。万博1manbetx 创建观察规范。 创建操作规范。 创建环境接口。 要定义初始条件,请使用匿名函数句柄指定环境重置函数。重置功能 修复随机发生器种子以进行再现性。 DDPG代理通过使用批评价值函数表示来估计长期奖励给定的观察和行动。要创建评论家,首先创建一个具有两个输入,状态和动作的深度神经网络,以及一个输出。有关创建深度神经网络值函数表示的更多信息,请参阅<一个href="//www.tianjin-qmedu.com/help/reinforcement-learning/ug/create-policy-and-value-function-representations.html" class="a">创建策略和值函数表示 查看critical网络配置。 为使用的批评家表示指定选项<一个href="//www.tianjin-qmedu.com/help/reinforcement-learning/ref/rlrepresentationoptions.html" class="a"> 使用指定的深度神经网络和选项创建批读表示。您还必须指定从环境界面获取的批评者的操作和观察信息。有关更多信息,请参见<一个href="//www.tianjin-qmedu.com/help/reinforcement-learning/ref/rlqvaluerepresentation.html" class="a"> DDPG代理通过使用参与者表示来决定对给定的观察采取什么行动。要创建参与者,首先创建一个深度神经网络,有一个输入,一个观察,和一个输出,一个动作。 把行动者想像成与批评家相似的人。有关更多信息,请参见<一个href="//www.tianjin-qmedu.com/help/reinforcement-learning/ref/rldeterministicactorrepresentation.html" class="a"> 要创建DDPG代理,首先使用DDPG代理选项使用<一个href="//www.tianjin-qmedu.com/help/reinforcement-learning/ref/rlddpgagentoptions.html" class="a"> 然后,使用指定的参与者表示、评论家表示和代理选项创建DDPG代理。有关更多信息,请参见<一个href="//www.tianjin-qmedu.com/help/reinforcement-learning/ref/rlddpgagent.html" class="a"> 要培训代理,首先指定培训选项。对于此示例,请使用以下选项: 最多只运行每个训练集 在Episode Manager对话框中显示培训进度(设置 停止训练时,代理收到累计集奖励大于 有关更多信息,请参见<一个href="//www.tianjin-qmedu.com/help/reinforcement-learning/ref/rltrainingoptions.html" class="a"> 使用该代理商培训<一个href="//www.tianjin-qmedu.com/help/reinforcement-learning/ref/rl.agent.rlqagent.train.html" class="a"> 要验证培训的代理的性能,请通过取消注释以下命令来模拟Simulink环境中的代理。万博1manbetx有关代理模拟的更多信息,请参阅<一个href="//www.tianjin-qmedu.com/help/reinforcement-learning/ref/rlsimulationoptions.html" class="a"> 为了演示使用确定性初始条件训练的agent,在Simulink中模拟该模型。万博1manbetx 下图显示的是领先车领先自我车70 (m)时的仿真结果。 在前35秒中,相对距离大于安全距离(右下图),因此自我车辆追踪设定的速度(右上绘图)。为了加速并达到设定的速度,加速度大多是非负(左上绘图)。 从35到42秒,相对距离大多小于安全距离(右下图),因此自我车辆追踪引线速度的最小值和设定速度。因为引线速度小于设定的速度(右上图),以跟踪引线速度,因此加速度变为非零(左上绘图)。 从42到58秒,自助式汽车追踪设定的速度(右上角),加速度保持零(左上绘图)。 从58到60秒,相对距离变得小于安全距离(右下图),因此自助车减速并跟踪引线速度。 左下角显示横向偏差。如图所示,横向偏差在1秒内大大降低。横向偏差仍然小于0.05米。 关闭Simulink万博1manbetx模型。万博1manbetxSimulink模型
m = 1600;
x0_lead = 50;
d_default = 10;t_gap = 1.4;v_set = 28;
amin_ego = 3;amax_ego = 2;umin_ego = -0.5;umax_ego = 0.5;
rho = 0.001;e1_initial = 0.2;e2_initial = -0.1;
ts = 0.1;tf = 60;
mdl =
创建环境界面
观察invo = rlnumericspec([9 1],
ActionInfo = rlnumericspec([2 1],
ent = rl万博1manbetxsimulinkenv(mdl,agentblk,观察invo,afticeinfo);
env。ResetFcn = @(在)localResetFcn(的);
RNG(0)
创建DDPG代理
L = 100;
图绘制(criticNetwork)
rlRepresentationOptions
QuandOptions = rlrepresentationOptions(
rlqvalueerepresentation
评论家= rlQValueRepresentation (criticNetwork observationInfo actionInfo,
RLDETerminyActorRepresentation
ActorNetWork = [FeatureInputLayer(9,
rlDDPGAgentOptions
agentOptions = rlDDPGAgentOptions (
rlddpgagent.
代理= rlddpgagent(演员,批评者,代理选项);
火车代理
rlTrainingOptions
maxepisodes = 1 e4;maxsteps =装天花板(Tf / Ts);trainingOpts = rlTrainingOptions (
火车
dotraining = false;
模拟DDPG代理
RlsimulationOptions.
sim卡
% simOptions = rlSimulationOptions('MaxSteps', MaxSteps);
e1_initial = -0.4;E2_initial = 0.1;x0_lead = 80;SIM(MDL)
bdclose (mdl)
重置功能
函数
另请参阅
相关主题