这个例子展示了如何在Simulink®中训练深度确定性策略梯度(DDPG)代理用于自适应巡航控制(ACC)。万博1manbetx有关DDPG代理的更多信息,请参见<一个href="//www.tianjin-qmedu.com/la/help/reinforcement-learning/ug/ddpg-agents.html" class="a">深度确定性策略梯度代理 本示例中的强化学习环境是ego汽车和领头车的简单纵向动力学。培训目标是通过控制纵向加速度和制动,使ego汽车以设定速度行驶,同时保持与领头车的安全距离。本示例使用与<一个href="//www.tianjin-qmedu.com/la/help/mpc/ug/adaptive-cruise-control-using-model-predictive-controller.html" class="a">基于模型预测控制的自适应巡航控制系统 指定两辆车的初始位置和速度。 指定静止默认间距(m)、时间间隔(s)和驱动器设置速度(m/s)。 为了模拟车辆动力学的物理限制,将加速度限制在范围内 定义采样时间 打开模型。 对于此型号: 从agent到环境的加速度动作信号为-3到2 m/s^2。 汽车的参考速度 来自环境的观测值是速度误差 当ego小车的纵向速度小于0,或主小车和ego小车之间的相对距离小于0时,模拟终止。 奖励
哪里 为模型创建一个强化学习环境界面。 创建观察规范。 创建操作规范。 创建环境接口。 若要定义导车位置的初始条件,请使用匿名函数句柄指定环境复位函数。重置功能 修复随机生成器种子的再现性。 DDPG代理使用批判价值函数表示来近似给定观察和行动的长期奖励。要创建批评家,首先要创建一个深度神经网络,它有两个输入,状态和动作,和一个输出。有关创建神经网络值函数表示的更多信息,请参见<一个href="//www.tianjin-qmedu.com/la/help/reinforcement-learning/ug/create-policy-and-value-function-representations.html" class="a">创建策略和值函数表示 查看critical网络配置。 为使用的批评家表示指定选项<一个href="//www.tianjin-qmedu.com/la/help/reinforcement-learning/ref/rlrepresentationoptions.html" class="a"> 使用指定的神经网络和选项创建批评家表示。还必须指定批评家的操作和观察信息,这些信息是从环境界面获得的。有关详细信息,请参阅<一个href="//www.tianjin-qmedu.com/la/help/reinforcement-learning/ref/rlqvaluerepresentation.html" class="a"> DDPG代理通过使用参与者表示来决定对给定的观察采取什么行动。要创建参与者,首先创建一个深度神经网络,有一个输入,一个观察,和一个输出,一个动作。 把行动者想像成与批评家相似的人。有关更多信息,请参见<一个href="//www.tianjin-qmedu.com/la/help/reinforcement-learning/ref/rldeterministicactorrepresentation.html" class="a"> 要创建DDPG代理,首先使用<一个href="//www.tianjin-qmedu.com/la/help/reinforcement-learning/ref/rlddpgagentoptions.html" class="a"> 然后,使用指定的参与者表示、评论家表示和代理选项创建DDPG代理。有关更多信息,请参见<一个href="//www.tianjin-qmedu.com/la/help/reinforcement-learning/ref/rlddpgagent.html" class="a"> 要培训代理,请首先指定培训选项。对于本例,请使用以下选项: 每次训练最多进行一次 在“事件管理器”对话框中显示培训进度。 当特工获得超过260的奖励时停止训练。 有关更多信息,请参见<一个href="//www.tianjin-qmedu.com/la/help/reinforcement-learning/ref/rltrainingoptions.html" class="a"> 训练代理人使用<一个href="//www.tianjin-qmedu.com/la/help/reinforcement-learning/ref/rl.agent.rlqagent.train.html" class="a"> 要验证经过培训的代理的性能,请通过取消注释以下命令在Simulink环境中模拟代理。有关代理模拟的更多信息,请参阅万博1manbetx<一个href="//www.tianjin-qmedu.com/la/help/reinforcement-learning/ref/rlsimulationoptions.html" class="a"> 为了演示使用确定性初始条件训练的agent,在Simulink中模拟该模型。万博1manbetx 下图显示了当先导车比ego车提前70(m)时的模拟结果。 在前28秒,相对距离大于安全距离(底部图),所以自我汽车轨迹设定速度(中间图)。为了加速并达到设定的速度,加速度是正的(上图)。 从28秒到60秒,相对距离小于安全距离(下图),因此ego小车跟踪领先速度和设定速度的最小值。从28秒到36秒,领先速度小于设定速度(中间图)。要减速并跟踪领先车辆速度,加速度为负(上图)。从36秒到60秒,ego汽车调整其加速度以密切跟踪参考速度(中间图)。在此时间间隔内,ego汽车跟踪设定速度从43秒到52秒,跟踪领先速度从36秒到43秒和52秒到60秒。 关闭Simulink万博1manbetx模型。万博1manbetxSimulink模型
x0_lead = 50;
D_default = 10;t_gap = 1.4;v_set = 30;
amin_ego = 3;amax_ego = 2;
t = 0.1;Tf = 60;
mdl=
创建环境接口
observationInfo = rlNumericSpec([3 1],
actionInfo = rlNumericSpec([1 1],
env = rl万博1manbetxSimulinkEnv (mdl agentblk、observationInfo actionInfo);
env。ResetFcn = @(在)localResetFcn(的);
rng (
创建DDPG代理
L = 48;
情节(criticNetwork)
rlRepresentationOptions
criticOptions = rlRepresentationOptions (
rlQValueRepresentation
评论家= rlQValueRepresentation (criticNetwork observationInfo actionInfo,
决定论呈现
[featureInputLayer(3,
rlDDPGAgentOptions
agentOptions = rlDDPGAgentOptions (
RLDDPG试剂
代理= rlDDPGAgent(演员、评论家、agentOptions);
火车代理
rlTrainingOptions
maxepisodes = 5000;maxsteps =装天花板(Tf / Ts);trainingOpts = rlTrainingOptions (
火车
doTraining=false;
模拟DDPG代理
rlSimulationOptions
sim卡
% simOptions = rlSimulationOptions('MaxSteps', MaxSteps);
x0_导线=80;sim(mdl)
bdclose (mdl)
复位功能
函数
另请参阅
相关话题