基于寻径优化和并行计算架构的交通流模拟方法和系统与流程

文档序号:22180910发布日期:2020-09-11 21:41阅读:219来源:国知局
基于寻径优化和并行计算架构的交通流模拟方法和系统与流程

本发明涉及道路交通实时仿真技术领域,具体涉及一种基于寻径优化和并行计算架构的交通流模拟方法和系统。



背景技术:

bim(建筑信息模型)目前已经被广泛应用于各个建筑行业。在建筑设计时,为了更好的向业主展示设计效果,设计师会通过bim进行建筑物的建模仿真。目前在公路建设技术领域,设计师结合bim建好的模型,能向业主演示公路修好后周边的场景情况,包括房屋、山体、河流、植被,以及公路上的车辆和行人等等。但是,这种演示对于公路上的交通流模拟仅仅是一种示意,车辆和行人只能以设定的固有运动方式在模型中运动,和真实情况差异较大,比如:在模型中车辆遇见红灯不会停车,所在行车道前方有障碍物车辆也不会变换车道。这样,在演示的时候就无法反应出真实的路况交通流;而在实际情况中,公路的车道数量、主干道和辅路之间的连接位置、匝道的长度等设计指标,都与交通流有紧密关系。

现有技术中对交通流的仿真一般都是采用离线仿真计算,根据跟驰流公式进行演绎,无法对边界条件的实时变化做出即时反应。比如:场景内信号灯配置变化之后或者车流量变化之后,需要重新进行场景编辑然后重新计算。受限于传统cpu计算架构和跟驰流模型,模型对场景内的各单体(包括车辆、行人和动物等能够自主活动的物体)无法进行实时演算,各单体也没有相互个体之间的智能判断与行为改变能力。这样的交通流仿真结果与道路真实交通情况差异较大,对设计方案的改变更是需要重新进行建模分析工作。



技术实现要素:

针对现有技术中的缺陷,本发明提供一种基于寻径优化和并行计算架构的交通流模拟方法和系统,以解决现有技术中存在的通过传统跟驰流模型的离线计算模式无法与交通方案变化进行实时联动,计算得出的交通流仿真结果与道路真实交通情况差异较大的技术问题。

本发明采用的技术方案如下:

第一方面,一种基于寻径优化和并行计算架构的交通流模拟方法;

在第一种可实现方式中,包括以下步骤:

结合建筑信息模型进行场景三维建模;

对场景内的所有可运动单元进行智能体化,得到多个智能体;

设置智能体的边界条件;

根据场景内的道路信息,设置智能体在场景内的初始坐标与行为目的地;

根据场景内的道路信息使用寻径算法,在并行计算架构下同时计算多个智能体的行为策略;

根据多个智能体的行为策略,在并行计算架构下同时计算并更新多个智能体的实时坐标;

根据多个智能体的初始坐标和实时坐标,在场景内显示多个智能体的运动轨迹,完成交通流的模拟。

结合第一种可实现方式,在第二种可实现方式中,智能体包括车辆和行人,车辆包括机动车和非机动车。

结合第二种可实现方式,在第三种可实现方式中,智能体的边界条件包括车辆的边界条件,车辆的边界条件包括导航路径、最高速度、最低速度、车辆加减速度、速度-转弯半径和车体尺寸,智能体的边界条件用于计算智能体的行为策略。

结合第一种可实现方式,在第四种可实现方式中,场景内的道路信息包括每条道路在场景内的位置、主干道和辅路的数量,每条主干道或辅路的车道数、每个车道内的可行车方向、主干道和辅路的长度和每条主干道和辅路的最高限速和最低限速,场景内的道路信息用于设置智能体在场景内的初始坐标、计算智能体的行为策略。

结合第一种可实现方式,在第五种可实现方式中,寻径算法使用有限状态机和逻辑树进行对智能体行为策略的调整;有限状态机根据智能体按前进方向进行向量探测的结果进行触发,通过逻辑树的选择判断来实现对智能体行为策略的调整。

结合第一种可实现方式,在第六种可实现方式中,当有限状态机出现多种可选切换状态时,逻辑树的选择判断为随机选择。

结合第一种可实现方式,在第七种可实现方式中,并行计算架构为cuda架构。

结合第一种可实现方式,在第八种可实现方式中,进行场景三维建模时,使用粒子系统模拟天气变化和道路路面材质变化。

结合第一种可实现方式,在第九种可实现方式中,对场景内的所有可运动单元进行智能体化时,将同一车道上相向行驶、相隔间距在阈值范围内的多台同类型车辆,动态编为一个组,以每组车辆作为一个智能体单元进行计算,完成道路交通流的模拟。

第二方面,一种基于寻径优化和并行计算架构的交通流模拟系统,使用第一到第九种可实现方式中的任意一项方法进行交通流的模拟,系统包括:智能体定义模块、智能体寻径模块、智能体坐标计算模块和交通流演示模块;

智能体定义模块用于对场景内所有可运动单元进行智能体化得到多个智能体,设置智能体的边界条件、初始坐标和行为目的地;

智能体寻径模块用于基于寻径优化算法和并行计算架构,同时计算多个智能体的行为策略;

智能体坐标计算模块用于根据多个智能体的行为策略,在并行计算架构下同时计算并更新多个智能体的实时坐标;

交通流演示模块用于在场景内显示多个智能体的运动轨迹,展示交通流的模拟状况。

由上述技术方案可知,本发明的有益技术效果如下:

1.将场景内的所有可运动单元都定义为智能体,使用寻径优化算法,通过有限状态机和逻辑树,进行多个智能体行为策略的计算。当出现同时有几种切换状态可以选择的情况,逻辑树以随机的方式选择某一种状态进行切换;这样可以更真实的模拟人工驾驶在道路行驶中的不确定性,更好的模拟真实的交通流情况;通过与交通方案变化进行联动实现交通仿真的实时模拟运算,这种更接近于道路真实交通情况的交通流模拟仿真,可以对业主和建筑设计师给出道路设计是否合理的参考。

2.选用cuda架构,可以将gpu视作一个数据并行计算设备,而且无需把这些计算映射到图形api,可利用图形处理器中的多颗计算核心同时进行通用计算处理工作,从而可以满足同时对多个智能体的实时计算要求。

3.在结合bim进行场景三维建模时,引入气象因素,借助粒子系统可以进一步模拟在不同天气条件下的交通流仿真情况,给业主和设计师更多的参考,避免设计的道路在天气情况较为恶劣的时候,原有的道路设计不再适用的问题。

4.对于空间范围过大、可运动单元数量过多的场景模拟,在对场景内的所有可运动单元进行智能体化时,将同一车道上相向行驶、相隔间距在阈值范围内的多台同类型车辆,动态编为一个组,以每组车辆作为一个智能体单元进行计算,可以极大的减轻智能体寻径模块和智能体坐标计算模块的实时计算压力,避免实时演示中卡顿的现象发生,给业主更好的用户视觉体验。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。

图1为本发明的交通流模拟方法流程图。

图2为本发明的交通流模拟系统功能模块框图。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

实施例1

如图1所示,本发明提供一种基于寻径优化和并行计算架构的交通流模拟方法;包括以下步骤:

结合建筑信息模型进行场景三维建模;

对场景内的所有可运动单元进行智能体化,得到多个智能体;

设置智能体的边界条件;

根据场景内的道路信息,设置智能体在场景内的初始坐标和行为目的地;

根据场景内的道路信息使用寻径算法,在并行计算架构下同时计算多个智能体的行为策略;

根据多个智能体的行为策略,在并行计算架构下同时计算并更新多个智能体的实时坐标;

根据多个智能体的初始坐标和实时坐标,在场景内显示多个智能体的运动轨迹,完成交通流的模拟。

以下对实施例1工作原理进行详细说明:

1.对场景内的所有可运动单元进行智能体化,得到多个智能体

首先根据建造设计师的二维设计图纸,结合bim进行场景三维建模,bim为建筑信息模型的英文简称。场景建好后,场景内包括地面和天空,地面具体有道路、房屋、山体、河流、植被,以及道路上的车辆和行人等等;天空包括云彩、日照等。在场景内,车辆和行人都是可运动单元;车辆包括机动车和非机动车,在本实施例中,机动车又可以分为摩托车、小型车、中型车、巴士、货车、重载车,非机动车为自动车。因为行人也可能会对车辆的行驶造成影响,比如行人在没有红绿灯的辅路上穿越道路,就会使得正在辅路上直行的车辆减速缓行,甚至停车礼让行人。

根据每个可运动单元的基本信息,使用智能体定义模块对场景内的所有可运动单元进行智能体化,定义出多个智能体,在后续进行仿真计算的时候,每个单元占用一个线程。可运动单元的基本信息,对于车辆,包括车辆的类型、车辆在场景内的行驶距离;对于行人,包括行人在场景内的行走距离。可运动单元的数量可由人工输入,也可由智能体定义模块随机分配一个数值。

2.设置智能体的边界条件

在后续使用寻径算法时,需要用到智能体的边界条件。在本步骤,使用智能体定义模块对各类智能体先分别进行设置。对于车辆(包括机动车和非机动车),其边界条件为导航路径、最高速度、最低速度、车辆加减速度、速度-转弯半径、车体尺寸,按摩托车、小型车、中型车、巴士、货车、重载车、自行车进行分类,设置不同的边界条件;对于行人,考虑到行人可能会在辅路上跑步锻炼身体,其边界条件为最高速度、最低速度,行人加减速度、人体尺寸。设置边界条件的作用,以导航路径和速度为例说明,摩托车、小型车、中型车、巴士、货车、重载车的行驶速度各不相同,在进行仿真时车辆在行驶过程中的速度会有变化,但始终不会超过最高速度和最低速度的限定。导航路径是指按车道线规定出来的哪些地方是能行车的路径;给车辆限定在场景内,哪些地方是车道,哪些地方不是车道,避免车辆往场景内的任意地方行驶。智能体的边界条件是后续计算智能体的行为策略的参考依据。

3.根据场景内的道路信息,设置智能体在场景内的初始坐标和行为目的地

场景内的道路信息包括每条道路在场景内的位置(该位置为多个坐标点的集合),主干道和辅路的数量,每条主干道或辅路的车道数、每个车道内的可行车方向(包括直行、左转、掉头、右转),主干道和辅路的长度、每条主干道和辅路的最高限速和最低限速。结合道路信息,通过智能体定义模块对每个智能体在场景内的初始坐标和行为目的地进行设置。在本实施例中,智能体的初始坐标可以由人工设定,也可以由智能体定义模块随机分配一个坐标。先进行智能体的边界条件的定义,再进行智能体初始坐标的设置,可以避免将车辆放在山顶上或者河流里。行为目的地可以由人工设定,也可以由智能体定义模块随机分配一个符合规则的坐标,符合规则是指分配的坐标不会让车辆目的地为河流里面。

4.根据场景内的道路信息使用寻径算法,在并行计算架构下同时计算多个智能体的行为策略

根据场景内的道路信息,通过智能体寻径模块使用寻径算法,可以分别确定出多个智能体的行为策略,行为策略就是车辆或行人的运动轨迹。

寻径算法使用有限状态机和逻辑树进行对智能体行为策略的调整,为一种优化后的寻径算法。在本实施例中,智能体的状态包括直行、左转、掉头、右转、加速、减速、停止(车辆为停车)。当没有外部触发条件时,智能体的状态会一直保持下去;当有外部触发条件时,智能体的状态会进行切换,触发的条件是智能体按前进方向进行向量探测的结果。向量探测的方式不做限定,以现有技术中任意一种可实现方式来进行,在本实施例中举例说明。由于在本发明中,场景的三维建模是一些图像要素的三维堆砌,所以向量探测使用图像像素数目分割的基准块进行匹配,运算基准块和参照块所对应的像素其差分的绝对值,并以差分绝对值之和给出最小值的点,作为基点检测运动向量,来完成向量探测。向量探测的距离值,优选的,设为2-100米。5米是模拟堵车时的跟车距离,100米是模拟在高速公路上的安全车距,这样可以更为真实的模拟交通流。

比如:a智能体正在直线行驶过程中,此时a智能体的状态为“直行”,a智能体按前进方向进行向量探测,当侦测范围内出现向量交点则表明发现前方有b智能体,且向量探测的结果表明b智能体移动速度低于a智能体(b智能体可以是正在掉头的车辆,也可以是正在缓慢穿过马路的行人)。此时,a智能体以自身目前速度如果不减速,在一定时间后就会撞上前方b智能体。按照交通规则,有限状态机给出“左转(变道)”、“右转(变道)”、“减速”、“停止”的选择。

有限状态机在各状态之间进行转换,采用逻辑树来实现。逻辑树按照交通规则中的路权优先原则,给出a智能体从原有状态切换到某一个状态的具体方案,比如当a智能体“左转(变道)”、“右转(变道)”因左、右车道内近距离都有车辆,不能实现变道;在城市内环快速主干道上无特殊情况不允许停车,“停车”选项也不能选;所以根据逻辑树判断后,有限状态机对a智能体运动行为的调整,只能选择“减速”状态;此时,a智能体的行为策略就通过寻径算法确定了,由“直行”改为“减速”。同理,当a智能体通过向量探测发现前方的信号灯为红灯时,根据逻辑树判断后,行为策略会由“直行”改为“停止”。

在本实施例中,当出现同时有几种切换状态可以选择的情况,逻辑树以随机的方式选择某一种状态进行切换;这样可以更真实的模拟人工驾驶在道路行驶中的不确定性,更好的模拟真实的交通流。比如,当a智能体的向量探测结果表明距离前车(b智能体)车距较大时,逻辑树可能会随机到“加速”状态,使a智能体加速行驶。

上述技术方式是实现对1个智能体进行的行为策略计算,为解决需要对场景内多个智能体同时进行行为策略计算,使用cuda架构对多个智能体同时进行行为策略的实时计算。cuda架构是一种并行计算架构,包含了cuda指令集架构(isa)和gpu(图形处理器)内部的并行计算引擎,可利用图形处理器中的多颗计算核心同时进行通用计算处理工作。

使用cuda架构对多个智能体同时进行行为策略的计算,具体如下:

(1)初始化场景

初始化场景主要是读取场景内的道路信息,同时也会读取场景内包括地面和天空其它物体。

(2)读取各类智能体的边界条件

对摩托车、小型车、中型车、巴士、货车、重载车、自行车和行人的边界条件进行读取。

(3)同时对每个智能体的行为策略进行计算

对每个智能体分别单独分配一个线程,根据场景内的道路信息使用寻径算法,计算每个智能体的行为策略,由有限状态机和逻辑树对智能体进行运动状态的调整。

5.根据多个智能体的行为策略,在并行计算架构下同时计算并更新多个智能体的实时坐标

使用智能体坐标计算模块,根据多个智能体的行为策略,在cuda架构下同时对多个智能体的实时坐标进行计算并更新。在本实施例中,使用核函数进行计算,以每个智能体为单位作为子任务,每个线程计算单个智能体的运动坐标,核函数的具体实现方式不做限定,在本实施例中可以选用径向基函数核。

6.根据多个智能体的初始坐标和实时坐标,在场景内显示多个智能体的运动轨迹,完成交通流的模拟

使用交通流演示模块,根据多个智能体的初始坐标和实时坐标,在场景内显示多个智能体的运动轨迹。具体的,在时间轴上以每1/24秒生成一帧场景图像。场景图像包括每个时刻内多个智能体的实时坐标位置,交通流演示模块将多帧场景图像沿时间轴上的时刻先后顺序在显示设备上连续播放,就可以给业主展示出交通流的模拟状况。

通过本实施例的技术方案,基于智能体单元边界条件的定义和和行为策略的确定,从而可根据场景内的变化情况实时解算智能体单元的位置信息,来进行场景内的实时交通流模拟仿真。由于智能体的行为策略是在符合交通规则的情况下,使用寻径算法进行的随机选取,所以模拟仿真结果更接近于道路真实交通情况。使用cuda架构,可以将gpu视作一个数据并行计算设备,而且无需把这些计算映射到图形api,从而可以满足同时对多个智能体的实时计算要求。

通过这种更接近于道路真实交通情况的交通流模拟仿真,可以对业主和建筑设计师给出道路设计是否合理的参考,比如在模型场景中发现,某一段道路始终长时间拥堵,这就说明该段道路以及相邻道路的设计有问题,需要重新调整设计,可以极大的减少道路建成后才发现该问题的整改成本。

实施例2

在实际的道路交通中,当天气情况恶劣时,比如大雨、大雪,会对道路上车辆的行驶造成影响,在平时行车不会拥堵的路段,在大雨天气下可能就会发生拥堵。为了给业主和设计人员更好的参考,在实施例1的基础上进一步优化,采用以下技术方案:

在结合bim进行场景三维建模时,引入气象因素。在本实施例中,气象因素选取最影响行车的因素,包括雨、雪、大雾。在本实施例中使用粒子系统来模拟天气。粒子系统是一种三维动画渲染的辅助系统,通过空间扭曲控制粒子的行为,结合空间扭曲能对粒子流造成引力、阻挡、风力等仿真影响,这样就可以实现对天气的模拟,还可以模拟道路路面材质的动态变化。具体的,在使用粒子系统进行模拟时有一个动态层,动态层平时是透明的,当人工设定模型场景内的天气为雨、雪、大雾时,动态层就会从透明变得不透明,这样就出现了雨、雪、大雾等气象,道路地面上还会根据道路的高低走向,出现积水、积雪;同时,道路表面材质因为积水、积雪发生变化后,道路路面的摩擦系数也会发生变化,这样就会对车辆的行驶产生影响。实施例1中的智能体单元(主要是车辆)会根据新的道路情况,智能的调整最高速度、最低速度、车辆加减速度、速度-转弯半径等边界条件。调整的方式是通过预设的映射关系表调整,映射关系表中按相关国家道路车辆行驶标准和要求,写明了在哪种天气下,车辆分别可以用什么样的边界条件行驶。

通过实施例2中的技术方案,借助粒子系统可以进一步模拟在不同天气条件下的交通流仿真情况,给业主和设计师更多的参考,避免设计的道路在天气情况较为恶劣的时候,原有道路设计不再适用的技术问题。

实施例3

在实施例1或实施例2中,如果需要模拟的场景空间范围过大、可运动单元在进行智能体定义时输入的数量过多,会对后续的仿真计算造成一定的负担,可能会出现模型场景在演示的过程中,有卡顿的现象发生,影响用户体验。采用以下技术方案:

为解决上述技术问题,在实施例1或实施例2的基础上进一步优化,采用以下技术方案:

对场景内的所有可运动单元进行智能体化时,将同一车道上相向行驶、相隔间距在阈值范围内的多台同类型车辆,动态编为一个组,以每组车辆作为一个智能体单元进行计算,完成道路交通流的模拟仿真。

下面就实施例3的工作原理进行详细说明:

道路上行驶的车辆包括摩托车、小型车、中型车、巴士、货车、重载车、自行车。对于同类型的车辆,其边界条件的设定值都是一样的;在正常的行驶状态下,一组车辆内部互相之间的距离基本是保持恒定不变的,这样就可以将一组车辆为一个主要的计算模型。在本实施例中,考虑到道路实际交通情况的复杂性,相隔间距的阈值范围设为一个车身位;每组车辆的数量为2-5台。对于每组车辆的行为策略和实时坐标计算过程如下:

获取随机车辆分组信息,以每组车辆为一个智能体单位作为子任务,给每个智能体单位分配一个线程,每个线程计算一组车辆的行为策略和实时坐标;每组按统一的方向与速度计算行为策略,并设定相应的车辆跟驰组变化函数,调整车辆编组信息。利用cuda并行计算架构,实现同步计算多组车辆行为策略,对每组车辆以及组内的每台车辆的实时坐标进行计算与更新。

通过本实施例的技术方案,可以极大的减轻智能体寻径模块和智能体坐标计算模块的实时计算压力,避免实时演示中卡顿的现象发生,给业主更好的用户视觉体验。

实施例4

如图2所示,在本发明中,使用一种基于寻径优化和并行计算架构的交通流模拟系统来完成交通流的模拟。系统包括:智能体定义模块、智能体寻径模块、智能体坐标计算模块和交通流演示模块;

智能体定义模块用于对场景内所有可运动单元进行智能体化得到多个智能体,设置智能体的边界条件;

智能体寻径模块用于基于寻径优化算法和并行计算架构,同时计算多个智能体的行为策略;

智能体坐标计算模块用于根据多个智能体的行为策略,在并行计算架构下同时计算并更新多个智能体的实时坐标;

交通流演示模块用于在场景内显示多个智能体的运动轨迹,展示交通流的模拟状况。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1