并行深度强化学习的柴油机动力系统VGT智能控制

2022-07-22 14:09赖晨光伍朝兵李家曦孙友长
关键词:线程智能网工况

赖晨光,伍朝兵,李家曦,孙友长,胡 博

(1.重庆理工大学 汽车零部件制造及检测技术教育部重点实验室, 重庆 400054;2.重庆理工大学 车辆工程学院, 重庆 400054)

0 引言

随着人工智能和物联网技术逐渐应用于汽车,智能网联汽车作为新兴车种逐渐改变了传统汽车行业的发展。在新四化(智能化、网联化、共享化、电气化)的浪潮下,汽车技术迎来巨大变革[1]。智能网联汽车包含感知、决策、互联、控制等技术, 每一部分都是一个复杂系统,目前这些系统大都整合在纯电汽车上,纯电汽车有相对简单的动力系统,在纯电动平台安装各个子系统比燃油车简单[2]。传统燃油汽车有复杂的动力系统,将其融合到自动驾驶难度大,所以目前燃油车主要搭载一些驾驶辅助系统。随着智能网联技术的发展,汽车实时获取路况信息的能力越来越强,传统汽车可以根据获取的信息实现发动机智能控制。智能网联是智能汽车和网联技术的结合,最终目标是实现无人驾驶,当前各大厂商都在积极探索相关技术[3-4]。目前,Google研发的无人驾驶汽车累计已经行驶超过70万英里[5],百度、美团、一汽等都推出了无人驾驶概念车,应用于载客、无人配送、运输等不同场景,且正在进行大规模路测,它们大部分都是基于纯电动平台。目前的智能驾驶系统没有与汽车动力系统相连,发动机控制仍采用传统控制方法,不能做到智能控制。将汽车动力控制系统整合到智能网联系统,打破传统控制技术的限制是目前的研究重点。

传统汽车动力系统控制通过标定加入简单PID控制,并不能对参数进行动态调节。以增压控制为列,Eltag等[6]在传统PID控制方法上加以优化改进,采用模糊PID控制,利用模糊控制理论控制参数方式可以在一定范围内进行自动调节。Karamanakos等[7]采用MPC控制,控制精度有很好的提升,但其取决于模型精度,建立精确的控制模型比较困难。Sun等[4]采用神经网络去拟合模型节约建模时间,提升效率。这些基于规则的控制策略并不适应智能网联汽车,特别是应对最新的排放法规,传统控制方法捉襟见肘。在智能网联时代,需要能够自适应、自调节、搭建简单,还能和整车进行网联的新一代控制策略[8-10]。

深度强化学习作为机器学习邻域的重要分支,是实现人工智能的重要方法。强化学习采用反馈学习的方式解决序贯决策问题,智能体通过对环境的观察做出应对环境的动作,然后评估改变环境后的效果得出一个奖励,不断迭代可以得出一个较好的策略[11]。强化学习的目标是让智能体学会独立自主地处理复杂问题,因此首先需要把问题抽象为模型,在模型中进行实验和探索,再把结果应用于实际[12]。强化学习研究目前在游戏、围棋等领域取得巨大成功,例如,著名的人工智能Alphago被认为是第一个击败人类选手的程序。Alphago采用的强化学习原理是DQN,它是第一个将强化学习和深度神经网络结合的算法。深度神经网络可以拟合围棋的复杂状态空间,能够更好地处理决策问题[13]。

王者荣耀作为目前最火的手游之一,在个人操作、团队配合、整体决策等方面都有极大可操作性和挑战性。2018年12月,腾讯天美工作室首次推出基于监督学习模型的人工智能,智能体通过不断学习达到业余顶尖水平[14-15]。2019年5月,腾讯用强化学习替代原监督学习模型,游戏性能得到巨大提升,在1V1对战模式中达到职业选手水平[16](职业选手代表人类顶尖玩家)。2019年8月,腾讯在原有算法基础上加入多智能体,将1V1对站模式扩展为5V5模式,其状态和动作空间成指数级增长,智能体要做出较好的策略变得非常困难,但经过不断调整和学习之后,游戏效果已经达到职业战队水平。2020年,经过1 a的学习,“绝悟”算法的性能已经超过职业战队水平,在BP(游戏开始的禁用角色和角色选择)、线上能力(开始阶段都会在特定区域对战)和团战决策、资源抢夺(除了线上可以额外获取经济和经验的方式)方面都能完美应对挑战[17]。图1展示了王者荣耀“绝悟”算法的框架。

图1 王者荣耀“绝悟”算法框图

将该方法应用于汽车领域,以期获得更好的控制效果。传统动力总成控制基于稳态工况标定的数据,这些数据会存储在ECU中。汽车在行驶过程中的工况是瞬时变化的,传统控制策略并不能根据实际情况做出调整,而强化学习则能很好地处理上述问题。

传统汽车的增压系统与EGR是强耦合非线性,增压系统控制一直是研究难点。考虑到强化学习算法具有自适应、自学习的特点[18-22],故本研究的主要目的是构建基于深度强化学习的增压系统智能控制。

1) 基于极端近似策略优化建立基于无模型端对端的控制算法,从零开始学习,力求得到更好的瞬态控制策略。

2) 本算法与其他算法最大的不同在于,边缘设备与环境交互产生的数据直接传输到云端,云端接收全部数据,然后计算最优策略传给边缘设备,边缘设备以最优策略和环境交互。

1 并行深度强化学习理论

1.1 多线程并行强化学习

2002年,并行强化学习概念被首次提出。并行强化学习可以通过多个智能体同时学习一个任务并共享经验。通过多臂赌博机来测试算法,结果表明,每增加一个智能体,都相应地提高了训练效率。目前,实现并行主要有2种办法:一种是通过智能体收集数据直接上传云端,通过云端计算出最优策略后分享给智能体;另外一种就是智能体通过本身策略与环境交互,将训练好的参数共享给其他智能体,以此达到并行学习的目的[23-24]。

并行强化学习采用ROLLING和UPDATE两个不同的线程分别进行数据采集和策略更新的计算,必须等待其他线程工作完成后再继续进行。2个线程不能同时进行,线程之间停止时采用event.wait(),线程之间能否继续要根据具体条件判定,当条件为event.clear()表示不能进行运算,当条件为event.set()表示可进行运算[25-27]。Actor部分被用来和环境进行交互,产生S、a、r、S′经验数据并存储,到达一定数量时传送给云端。在实际运行过程中,Actor的策略会同步云端计算出的最新策略,并用最新策略不断和环境进行交互。Global Server云端网络负责接收所有worker传来的数据,并整合这些数据计算出最优策略,然后推送给每个worker。DPPO算法结合云计算和并行多线程技术后能够极大提高训练效率,缩短训练时间。仿真代码采用DPPO代码,算法整体框架如下:

DPPO Distributed Proximal Policy Optimization (chief)1.初始化各个参数,启动每个worker2.worker与模型进行交互并收集数据3.当收集的数据达到一定数量时,线程停止,云端网络开始更新,ROLLING_EVENT.wait(),UPDATE_EVENT.set()4.云端网络更新完成,局部网络接收新的策略,继续和环境交互。ROLLING_EVENT.clear(),UPDATE_EVENT.set()5.在云端和局部网络之间切换时,需要协调个线程之间开启和关闭时间:COORD.request_stop()

1.2 VGT被控模型

将MCC和MEC结合是未来智能网联汽车的一个发展趋势。目前,汽车动力系统既不智能也不网联,基于以上讨论,将车云计算网络运用在发动机增压瞬时控制领域,多线程算法框架说明如图2所示。控制模型为在GT-power建立的6缸3升增压直喷柴油机,使用1个控制器控制VGT阀门开闭,使其在瞬态工况下能达到目标增压。VGT阀门结构如图3所示。

图2 多线程算法框图

图3 VGT阀门结构

传统增压控制方法使用1个微调PID控制器控制VGT阀门开度来控制进气压力。P参数和I参数均采用负荷的映射,参数更加准确。将VGT叶片开度作为控制动作,将实际增压、目标增压、发动机转速和叶片开度作为四维状态空间。研究目标是通过算法实现瞬态工况下实际压力和目标压力的跟随。奖励函数设置为压力跟随和动作变化率,见式(1)所示。

(1)

采用DPPO算法。云计算框架整体更新过程见1.1节,展示worker与环境进行交互并收集数据过程的算法更新结构流程伪代码如下:

DPPO Distributed Proximal Policy Optimization (worker)1:随机初始化评价网络 Q(s,a|θQ) 和演员网络μ(s|θμ) 的权重2:初始化神经网络 Q* and μ'3:初始化 Target、test、reward、buffer(s,a,r)4:从回合1开始到M5:观察环境初始状态s,并根据状态计算出均值和方差,根据正态分布选出一个动作, a=tf.squeeze(pi.sample(1),axis=0)[0]6:将智能体选择的动作施加给环境并获取新的状态,根据状态和动作计算出实时奖励值r7:将动作、状态和奖励值收集到buffer,每收集N步之后进行策略更新8:计算advantage = r+GAMMA * v_s_9:在updata函数中,我们把准备好的数据赋值给s,a,r,执行update_old_pi JPPO(θ)=∑Tt=1πθ(atst)πold(atst)A ^t-λKL[πoldπθ]-ξmax(0,KL[πoldπθ]-2KLtarget)210:Critic更新10次,计算出TD-error=gamma* V(s')+r-V(s)11:Actor利用TD-error更新10次

2 仿真与结果

仿真计算通过Windows操作系统、16G内存、CPU:Intel I5、GPU:GTX1050TI来完成。Python、GT-power经Simulink连接来进行联合仿真实验。在GT-power中搭建仿真模型,在Python中构建控制算法,通过 Python端的 matlab.engine库调用 Matlab中编写的 m文件,达到控制 GT-power仿真模型运行的目的。将GT-power端仿真模型产生的数据再以 m文件形式返回 Python,以此循环完成仿真实验。

图4 算法更新图

验证基于车云计算算法,将其与传统PID控制方法进行对比。验证工况选择美国FTP-72(图5)。该工况模拟1条12.07 km的城市线路,并经常进行急加速和急减速,最高时速为91.25 km/h,平均时速为31.5 km/h。选择该工况是因为其模拟了具有大滞后、强耦合和非线性的真实VGT工作环境。若能在该类复杂环境中训练出较好的控制策略,则认为算法在其他稳定区域(如欧洲NEDC)能够表现得更好。

图5 FTP72工况车速

2.1 增压控制跟随

根据FTP-72工况车速和发动机转速可以得出瞬态下的目标增压,并将该目标增压作为控制目标,验证DPPO算法在瞬态下的控制效果,即压力跟随。采用传统PID控制结果作为对比,发现该控制结果满足要求,但在某些局部区域容易出现超调,采用深度强化学习算法能显著改善上述问题。由于整个工况数据过多,故无法清楚了解全部具体细节,如图6 FTP75工况压力跟随图,因此选取901~945 s区间与PID控制进行对比。45 s 对比结果如图7 FTP75局部45 s压力跟随图所示,表明采用DPPO算法的瞬态控制结果明显好于PID控制。

图6 FTP75工况压力跟随图

图7 FTP75局部45 s压力跟随图

PID控制算法45 s的绝对误差(IAE)为 0.622 9,并行深度强化学习算法4线程和8线程控制的绝对误差分别为0.387 0和0.356 8(表1)。造成跟随误差较大的区域是由于涡轮迟滞引起的,无法通过控制本身来改善。

表1 绝对误差

2.2 并行强化学习结果分析

Reward是评价算法是否收敛的一个重要值,奖励函数前面详细说过,采用同样的方法计算出基准奖励值,其结果如图。基准奖励值最终收敛在-22,强化学习从零开始学习,经过不断探索奖励值逐渐上升,在第28个回合就超过基准,在80个回合达到收敛,收敛之后奖励值任然有小范围波动,原因是设置有极小的动作探索并且仍在根据参数调整网络,对策略稳定性基本没有影响。采用智能算法控制的奖励最终收敛在-5左右,要远远好于基准控制算法。

为了研究多线程并行对训练结果的影响,分别进行了1个worker、2个worker、4个worker和8个worker的仿真计算,其结果如图8所示。在其他参数条件设置相同下,1和2个worker在开始变化范围较大且结果不能收敛,4个和8个worker能够很好的收敛。随着worker的增加数量增加,收集数据的效率增加,打乱数据之间的相关性,能够达到控制目标。但是并不是worker越多越好,4个和8个worker的学习效果和速度之间差别极小,其中8个worker需要占用极大的计算资源。采用云计算框架的并行深度强化学习需要数量合适的worker,来满足数据的无关性以及所需求的计算效率。

图8 不同线程数reward结果

3 结论

1) 采用PID和深度强化学习方法对柴油发动机的可变几何截面涡轮的叶片角度进行控制。通过不断调节P、I2个参数使发动机瞬态进气达到较好的控制效果,将其作为并行深度强化学习控制的对比基准。

2) 在不改变其他参数的情况下,1线程和2线程控制效果差没有达到收敛效果,4线程和8线程控制效果好,达到收敛要求;这说明在同等参数条件下,合适的并行运算能够收集更多的数据,并很快学习到较好的控制方法,节约时间成本。但并不是线程越多越好,4个线程和8个线程的控制跟随效果相差不大,且最终收敛的奖励值都在6左右,更多线程会消耗更多的计算资源,增加硬件成本。

猜你喜欢
线程智能网工况
交通运输部:扩大新能源智能网联汽车应用
基于MCTS-HM的重型汽车多参数运行工况高效构建方法
5G终端模拟系统随机接入过程的设计与实现
实时操作系统RT⁃Thread启动流程剖析
热网异常工况的辨识
实时操作系统mbedOS 互斥量调度机制剖析
智能网联汽车漏洞管理实践探索
不同工况下喷水推进泵内流性能研究
智能网联汽车为冬奥会添动力
智能网联汽车仍面临三大挑战