此示例显示了如何在Simulink®中为路径跟踪控制(PFC)培训深层确定性策略梯度(DDPG)代理。有关DDPG代理的更多信息,请参阅万博1manbetx 本例的强化学习环境是用于自我汽车的简单自行车模型和用于引导汽车的简单纵向模型。训练目标是让自我车以设定的速度行驶,同时通过控制纵向加速和制动来保持与领先车的安全距离,同时通过控制前转向角度来使自我车保持在车道中心线上行驶。有关PFC的更多信息,请参见 指定两辆车的初始位置和速度。 指定静止默认间距(m)、时间间隔(s)和驱动器设置速度(m/s)。 要模拟车辆动力学的物理限制,请将加速度限制在范围内 道路的曲率由常数0.001定义( 定义采样时间 打开模型。 对于此型号: 动作信号包括加速度和转向角动作。加速度动作信号的值介于–3和2(m/s^2)之间。转向动作信号的值介于–15度(–0.2618 rad)和15度(0.2618 rad)之间。 汽车的参考速度 来自环境的观测包含了纵向测量:速度误差 当出现横向偏差时,模拟终止 奖赏
哪里
如果仿真终止,则为
如果横向误差
中频速度误差 奖励中的三个逻辑项鼓励agent减小横向误差和速度误差,同时,如果模拟提前终止,则惩罚agent。 为Simulink模型创建环境接口。万博1manbetx 创建观察规范。 创建操作规范。 创建环境接口。 要定义初始条件,请使用匿名函数句柄指定环境重置函数。重置函数 修复随机生成器种子的再现性。 DDPG代理通过使用批判价值函数表示来近似给定观察和行动的长期奖励。要创建批评家,首先要创建一个深度神经网络,它有两个输入,状态和动作,和一个输出。有关创建深度神经网络值函数表示的更多信息,请参见 查看网络配置。 使用指定批评家表示的选项 使用指定的深度神经网络和选项创建批评家表示。还必须指定批评家的操作和观察信息,这些信息是从环境界面获得的。有关更多信息,请参阅 DDPG代理通过使用参与者表示来决定执行给定观察的动作。要创建参与者,首先创建一个包含一个输入(观察)和一个输出(动作)的深层神经网络。 以类似于批评家的方式构造参与者。有关更多信息,请参阅 要创建DDPG代理,请首先使用指定DDPG代理选项 然后,使用指定的参与者表示、评论家表示和代理选项创建DDPG代理。有关更多信息,请参阅 要培训代理,首先指定培训选项。对于本例,使用以下选项: 每次训练最多进行一次 在“事件管理器”对话框中显示培训进度(设置 当代理收到的累计情节奖励大于时停止培训 有关更多信息,请参见 训练代理人使用 要验证经过培训的代理的性能,请通过取消注释以下命令在Simulink环境中模拟代理。有关代理模拟的更多信息,请参阅万博1manbetx 要使用确定性初始条件演示经过训练的agent,请在Simulink中模拟该模型。万博1manbetx 下图显示了当领头车比ego车领先70(m)时的模拟结果。 在头35秒内,相对距离大于安全距离(右下图),所以自我赛车会追踪设定的速度(右上图)。为了加速并达到设定的速度,加速度通常是非负的(左上角的图)。 从35到42秒,相对距离大多小于安全距离(右下图),因此ego汽车跟踪领先速度和设定速度的最小值。由于领先速度小于设定速度(右上图),为了跟踪领先速度,加速度变为非零(左上图)。 从42秒到58秒,自我赛车会追踪设定的速度(右上图),而加速度保持为零(左上图)。 从58秒到60秒,相对距离小于安全距离(右下图),因此ego汽车减速并跟踪领先速度。 左下方的图显示了横向偏差。如图所示,横向偏差在1秒内大大减小。横向偏差保持在0.05 m以下。 关闭Simulink万博1manbetx模型。万博1manbetxSimulink模型
m=1600;
x0_铅=50;
D_默认值=10;t_间隙=1.4;v_集=28;
阿明•伊戈=-3;阿玛•伊戈=2;阿明•伊戈=-0.5;乌玛•伊戈=0.5;
rho=0.001;e1_初始值=0.2;e2_初始值=-0.1;
t = 0.1;Tf = 60;
mdl=
创建环境接口
observationInfo = rlNumericSpec([9 1],
actionInfo = rlNumericSpec([2 1],
env = rl万博1manbetxSimulinkEnv (mdl agentblk、observationInfo actionInfo);
env.ResetFcn=@(in)localResetFcn(in);
rng(0)
创建DDPG代理
L=100;
图表(关键网络)
rlRepresentationOptions
临界点=rlRepresentationOptions(
rlQValueRepresentation
critic=rlQValueRepresentation(关键网络、观测信息、动作信息、,
决定论呈现
actorNetwork=[featureInputLayer(9,
rlDDPGAgentOptions
agentOptions=rlDDPGAgentOptions(
RLDDPG试剂
代理= rlDDPGAgent(演员、评论家、agentOptions);
列车员
RL培训选项
MAXSecutes=1e4;maxsteps=ceil(Tf/Ts);trainingOpts=RL TrainingOptions(
火车
doTraining=false;
模拟DDPG代理
rlSimulationOptions
模拟
%simOptions=rlSimulationOptions('MaxSteps',MaxSteps);
e1_initial = -0.4;e2_initial = 0.1;x0_lead = 80;sim (mdl)
bdclose(mdl)
复位功能
作用
另见
相关话题