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