2021-08-25

沃尔沃汽车在依靠 ACC 编队行驶的探索中,针对商用车和乘用车共存的道路环境进行了深入的研究,并利用 XC90、S60 和沃尔沃商用半挂车进行了高速实车试验,

 其中比较具有代表性的有 SARTRE 项目和协同驾驶挑战赛GCDC(Grand Cooperative Driving Challenge)。SARTRE 是欧盟为缓解日益严重的交通拥堵问题、提高车辆的安全性和燃油经济性成立的智能交通项目,主要思路是在雷达、摄像头等传感器基础上加入了车间通信 V2V(Vehicle  to  Vehicle)模块,并且做了实车验证,实验验证了仅有领队车辆采用人工驾驶时,后方跟随车辆可以通过横向和纵向控制实现一定程度的自动驾驶[14]。

Rocha 等人在商用半挂车队列控制中将会产生变异的高斯进程和模型预测控制 MPC 算法相结合,并进行了实验,结果表明此算法可以明显减小车间距误差,大幅提高车辆队列的稳定性[17]

Turri 等人在商用半挂车队列研究中提出了分层控制,上层为协调控制层,利用车辆行驶信息和道路信息通过 MPC 算法计算出期望速度传递给下层控制器,下层为轨迹跟踪层,依靠上层控制器计算出的期望速度对目标车辆进行控制,并通过施加约束的方式可以大幅度地提高商用半挂车的安全性[18]。 

武汉理工大学成立了针对智能交通研究的智能运输系统研究中心,利用道路模型、无线通信模块和车辆模型搭建了车辆队列行驶模拟实验系统,基于模糊控制、滑模控制和模型预测控制等控制算法对车辆队列进行控制,该系统可以对包括商用货运车在内的多种车型进行模拟实验,为后续的实车试验打下基础[19,20]。

张晓东等人在车辆队列控制研究中建立多维空间关联系统模型,引入了空间变量和空间移动算子,提出了多目标分布式反馈 H2/H∞算法,商用半挂车模型选择弹簧质点模型进行仿真,证明了燃油经济性可以得到提升,但没有进行实车验证[21]。 

国外的商用车厂商也为 CACC 系统的产业化贡献了重要力量,瑞典的斯堪尼亚是第一个在半挂车产品中搭载 CACC 系统的商用车制造商,016 年,荷兰在 GCDC 的基础上举办了商用车队列协同行驶挑战赛,来自瑞典、德国、荷兰、比利时、丹麦和芬兰的 6 个国家的厂商团队在荷兰鹿特丹港进行了激烈的比赛,主要围绕车辆在高速公路行驶时发生通信延迟或失效等特殊情况进行角逐。 

基于此系统,戴姆勒商用车也将加大对商用车队列行驶的研发力度,由于目前车辆队列行驶的车间距过大,后方车辆需要不断加速来跟进前方车辆,反复加速过程中导致油耗增加,经济性较差,戴姆勒表示将针对此情况作出改进。

 2014 年,美国加州伯克利大学的 PATH 实验室基于实际车辆参数标定了 CACC 模型[29],Bender 等人在混合交通流稳定性条件的基础上[30],构建车辆队列稳定性的框架,分别研究了 CACC 车辆比例和自由流速度的改变对车辆队列稳定性的影响。

上世纪 90 年代在美国加利福尼亚成立 PATH(Partners  for  Advanced  Transit  and Highways)项目,目的是利用车间通信和车路通信模块辅助驾驶员在紧急状态下进行快速反应,提高车辆的安全性。该项目中的车间通信是依靠交通控制中心通过路边的基站传给车辆。1997 年,该项目开发出基于车间通信的近距离车辆队列行驶系统并在高速公路上进行了实车演示,道路通行效率大幅度增加。 

王哲等人通过对比连通性模型的结果证明了蒙特卡洛仿真方法的适用性,并利用网络仿真工具NS2 对车同

控制方法对车辆队列的控制效果一般有以下三个评价指标,一是车辆队列行驶稳定性,二是车队中每一辆车行驶的稳定性,三是车间距误差和车辆速度误差是否足够小。辆队列在单向道路上的通行效率进行了模拟仿真[53]。

PD 控制器发挥控制作用时一般需要获得前馈控制器增益,用来保证车辆队列的稳定性。上述控制模型结构简单、易于实现,但对环境要求较高,行驶环境的快速变化可能会造成控制器不稳定。此外,由于线性反馈控制系统中的车辆模型为简化模型,不能针对车辆载重量、道路坡度等状态的变化做出改变,所以上述控制器在理想环境下的效果和在实际应用中的效果差异较大,而且对于车辆本身的约束也没有考虑在内,比如车辆的最大爬坡角度、最大加速度、最小减速度等。

Van den Broek 等人在 PID 控制器设计方面提供了新思路,设计了一种加速控制器,将本车前方所有车辆进行编号,通过获取前方所有车辆的加速度信息并按各车辆编号对其进行加权处理,但具体权重系数的选取并没有说明,前方车辆编号和加速度获取车辆数目也没有讨论[57]。 

孙涛等人在车辆队列控制中应用了 MPC 控制,控制前需要将车辆周围的环境信息进行处理,利用 MPC 控制实现与前车安全距离的保持和对前车速度的跟随,目的是提高乘员舒适性的同时增加车辆的燃油经济性,最后利用 Carsim 和 MATLAB/Simulink 进行了联合仿真实验,仿真结果表明在保证乘员舒适的前提下可以实现车距、速度和目标车辆的调整[61]。

黄升宇基于 MPC 控制算法设计了车辆自适应巡航系统控制器,在传统 MPC 控制算法的基础上对控制器做了模糊化处理,在满足车辆队列安全性的同时使算法的实现更加简单,最后还做了实验验证[62]。

Bu 等人基于线上 MPC 控制算法设计了 ACC 系统控制器,并且利用英菲尼迪 FX45进行了实车测试。MPC 控制器工作过程中,输出量不是传统的期望加速度,而是一个期望速度,然后输入到下层执行控制器中,实车测试结果表明分层控制方式对车辆控制效果优异[66]。Kianfar 等人利用沃尔沃 S60 进行试验,验证了包括时域约束的 MPC 控制器的控制效果,实验结果表明车辆队列稳定性得以保证[67]。

高嵩等人在车辆队列控制中利用滑模控制增加了鲁棒性的同时,对控制系统进行了反馈线性化处理,简化了控制模型,在控制器的设计中考虑了道路坡度和风速的影响,最后在 MATLAB/Simulink 环境下进行了仿真,仿真结果表明滑模控制在系统参数扰动较大的情况下动态性能优异[71]。

综上所述,模糊控制器虽然具有结构灵活、易于控制非线性系统等优点,但是由于模糊控制规则的存在使得周围车辆信息及环境信息获取不准确,在实际应用过程中无法西南大学硕士学位论文 1 2 保证车辆队列的稳定性。另外,由于在车辆队列行驶的过程中存在车辆动力学和行驶环境等多方面约束,PID 控制器虽然具有结构简单、运算速度快等优势,但是控制效果一般,而且相对于滑模控制而言对系统参数进行约束存在困难。模型预测控制在控制过程中虽然可以灵活调整控制量,但其对系统优化的方式为滚动优化,即是一个有限时域的最优化,并不是全局最优,在车速变化较快时难以保证车队稳定性,且控制过程较长。滑模控制具有间断性,在非线性控制系统中应用广泛,同时因其具有很强的鲁棒性,这是前三者不具备的,所以滑模控制很适合应用在环境复杂多变的车辆队列控制中。

此外,有数据显示全球商用车驾驶员面临着巨大的缺口,以美国为例,目前缺口高达 5 万人,预计到 2024 年年底将上升至 17.5 万人,普华永道的报告也指出长途商用半挂车一旦应用无人驾驶技术,年运营成本将降低 28%[83]。

。其中人工驾驶汽车的上层控制器采用德国学者提出的一种经典的车辆跟驰 IDM 模型,对于无人驾驶汽车,设计一种 Terminal 滑模控制器,可以使跟踪误差在有限的时间内收敛为零,提高控制效率。最后基于车辆队列模型和期望加速度计算模型,通过对车间距误差传递函数讨论控制系统的稳定性。

分析设计的 Terminal 滑模控制算法在正常状态下是否西南大学硕士学位论文 1 6 能够实现自动驾驶车辆队列的车辆跟踪功能并保证队列稳定性,是否可以避免车队突然变为混合交通流时车队中可能发生的碰撞,最后通过改进控制形式等方法进行改进,提高车辆队列的安全性。

 由于在 Simulink 中使用 Lookup-Table 模块进行反查表时,输入参数的插值节点(break  points)要求必须严格单调增加,为了简化模型,本文对发动机扭矩特性 MAP图中的数据点进行了提取,部分数据点如表 3-1 所示。 

 

 间距策略设计是车辆队列控制中最重要的部分之一,比如当车辆队列整体速度很低时,在保证安全的前提下需要尽量减小车间距,车辆队列应保持紧凑的行驶状态,避免相邻车道车辆强行换道插入等可能对车队整体性产生干扰的情况;当车队整体速度很高时,车辆为了保证队列中每一辆车的安全性,需要相应增大车间距,为某一辆车突然紧急制动后方车辆能够安全刹车预留足够的车间距

以,固定车间距离策略虽然具有计算迅速、易于实现等优点,但是这种策略不能够根据前车和后车的运动状态对期望车间距进行灵活的调整,在复杂多变的交通环境下适应性较差,不能在兼顾道路通行效率的同时满足车队行驶安全性和稳定性的需要,在车辆队列控制中应用较少。 

 

 设定车辆队列在道路上行驶过程中速度不会发生突变,为了简化队列模型,本文将制动距离    选取为常数。

 2)可变车间时距 在可变车间时距中,车间时距的取值是变化的,是一个与本车速度或相对速度,甚至是前方车辆加速度相关的函数,固定车间距策略下的车间距误差表达式为 

 目前针对车队控制研究的不同方向,车队稳定性的研究也存在不同的形式[91],例如按队列中车辆数目的多少划分的个体稳定性和群体稳定性;按车辆队列对交通容量影响的大小划分的整体强稳定性和整体弱稳定性,也可统称为交通流稳定性

人工驾驶模型选用德国学者 M. Treiber 等人提出的智能驾驶员模型(Intelligent Driver Model, IDM)[93],该模型将道路上行驶的每一个车辆都视为一个可以移动的节点,可以结合车辆队列研究下不同的研究方向实时获取需要的车辆速度、加速度、位置等状态信息。作为一种经典的车辆跟驰模型,IDM 模型被广泛应用在车辆队列的研究中。车辆在道路上行驶的过程中

不仅受到道路拓扑结构和车辆本身动力学特性的制约,还需要根据前方车辆加速或制动等行驶状态及时作出调整,IDM 模型参数设置可以全面且准确地描述前方车辆的位置和速度等状态对跟驰车辆的影响,大大简化车辆队列的研究。 

IDM模型

 

 

 Terminal 滑模控制通过利用非线性函数来设计滑动超平面,跟踪误差就会在有限的时间内收敛为零,可以获得更好的控制性能,更加适合应用在周围环境复杂且变化速度

 

 

 

 

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是将XML转换为.NET Core实体模型的代码示例: ```csharp using System.Xml.Serialization; [XmlRoot(ElementName = "OTA_InventoryCheckRS")] public class InventoryCheckResponse { [XmlAttribute(AttributeName = "TimeStamp")] public string TimeStamp { get; set; } [XmlAttribute(AttributeName = "Version")] public string Version { get; set; } [XmlAttribute(AttributeName = "EchoToken")] public string EchoToken { get; set; } [XmlElement(ElementName = "HotelResult")] public HotelResult HotelResult { get; set; } } public class HotelResult { [XmlElement(ElementName = "HotelID")] public string HotelID { get; set; } [XmlElement(ElementName = "HotelProducts")] public HotelProducts HotelProducts { get; set; } } public class HotelProducts { [XmlElement(ElementName = "HotelProduct")] public HotelProduct HotelProduct { get; set; } } public class HotelProduct { [XmlElement(ElementName = "FreeCancelable")] public FreeCancelable FreeCancelable { get; set; } [XmlElement(ElementName = "RoomTypes")] public RoomTypes RoomTypes { get; set; } [XmlElement(ElementName = "RatePlans")] public RatePlans RatePlans { get; set; } [XmlElement(ElementName = "Prices")] public Prices Prices { get; set; } } public class FreeCancelable { [XmlAttribute(AttributeName = "FreeCancelableVal")] public string FreeCancelableVal { get; set; } } public class RoomTypes { [XmlElement(ElementName = "RoomType")] public RoomType RoomType { get; set; } } public class RoomType { [XmlAttribute(AttributeName = "RoomTypeCode")] public string RoomTypeCode { get; set; } } public class RatePlans { [XmlElement(ElementName = "RatePlan")] public RatePlan RatePlan { get; set; } } public class RatePlan { [XmlAttribute(AttributeName = "RatePlanCode")] public string RatePlanCode { get; set; } } public class Prices { [XmlElement(ElementName = "Price")] public Price Price { get; set; } } public class Price { [XmlElement(ElementName = "Base")] public Base Base { get; set; } } public class Base { [XmlAttribute(AttributeName = "EffectDate")] public string EffectDate { get; set; } [XmlAttribute(AttributeName = "SalePrice")] public string SalePrice { get; set; } [XmlAttribute(AttributeName = "BasePrice")] public string BasePrice { get; set; } [XmlAttribute(AttributeName = "Allotment")] public string Allotment { get; set; } [XmlAttribute(AttributeName = "DcOverSaleAllotment")] public string DcOverSaleAllotment { get; set; } [XmlAttribute(AttributeName = "DcAddAllotment")] public string DcAddAllotment { get; set; } [XmlAttribute(AttributeName = "DcContractAllotment")] public string DcContractAllotment { get; set; } [XmlAttribute(AttributeName = "DcBuyOutAllotment")] public string DcBuyOutAllotment { get; set; } } ``` 在调用方代码中,您可以使用以下代码将XML转换为.NET Core实体模型: ```csharp string xml = "<OTA_InventoryCheckRS TimeStamp=\"1629879848173\" Version=\"1.000\" EchoToken=\"18029461-194a-4c7e-b372-6eec346cebd4\"> <HotelResult> <HotelID>10000007</HotelID> <HotelProducts> <HotelProduct> <!--只有支持30分钟免费取消的酒店,才需要返回该节点--> <FreeCancelable FreeCancelableVal=\"true\" /> <RoomTypes> <RoomType RoomTypeCode=\"2106\"/> </RoomTypes> <RatePlans> <RatePlan RatePlanCode=\"302-4529\"/> </RatePlans> <Prices> <Price> <Base EffectDate=\"2021-08-25\" SalePrice=\"515.2\" BasePrice=\"515.2\" Allotment=\"53\" DcOverSaleAllotment=\"53\" DcAddAllotment=\"-1\" DcContractAllotment=\"-1\" DcBuyOutAllotment=\"-1\"/> </Price> </Prices> </HotelProduct> </HotelProducts> </HotelResult> </OTA_InventoryCheckRS>"; XmlSerializer serializer = new XmlSerializer(typeof(InventoryCheckResponse)); using StringReader reader = new StringReader(xml); InventoryCheckResponse response = (InventoryCheckResponse)serializer.Deserialize(reader); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值