山地城市交叉口左轉(zhuǎn)待行區(qū)建模論文_第1頁(yè)
山地城市交叉口左轉(zhuǎn)待行區(qū)建模論文_第2頁(yè)
山地城市交叉口左轉(zhuǎn)待行區(qū)建模論文_第3頁(yè)
山地城市交叉口左轉(zhuǎn)待行區(qū)建模論文_第4頁(yè)
山地城市交叉口左轉(zhuǎn)待行區(qū)建模論文_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

山地城市交叉口左轉(zhuǎn)待行區(qū)建模論文.docx 免費(fèi)下載

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

山地城市平面交叉口左轉(zhuǎn)待行區(qū)建模及應(yīng)用主要方案隨著城市交通擁堵加劇,平面交叉口是城市路網(wǎng)的重要節(jié)點(diǎn),需著重強(qiáng)化,左轉(zhuǎn)交通流是影響交叉口運(yùn)行效率的重要因素,持續(xù)優(yōu)化左轉(zhuǎn)待行區(qū)設(shè)置是提升效率的主要手段之一。山地城市平面交叉口條件有限,左轉(zhuǎn)待行區(qū)設(shè)置更需精細(xì)化考慮。為了準(zhǔn)確、科學(xué)地構(gòu)建山地城市左轉(zhuǎn)待行區(qū)樣本,

本文利用無(wú)人機(jī)高空視頻采集優(yōu)勢(shì),選取了多個(gè)典型山地城市平面交叉口開(kāi)展左轉(zhuǎn)車(chē)輛軌跡行為研究,主要從基于交叉口幾何特性的待行區(qū)模型構(gòu)建、基于無(wú)人機(jī)高空視頻的左轉(zhuǎn)微觀軌跡資料的待行區(qū)模型構(gòu)建、基于遺傳算法的左轉(zhuǎn)待行區(qū)交叉口信號(hào)配時(shí)優(yōu)化等幾方面進(jìn)行探討,具體如下:(1)歸納總結(jié)了左轉(zhuǎn)待行區(qū)設(shè)置的方法與條件,并考量了左轉(zhuǎn)車(chē)流的運(yùn)行特性。(2)基于交叉口幾何特性的理論待行區(qū)樣本構(gòu)建。

本文針對(duì)目前左轉(zhuǎn)待行區(qū)相關(guān)探討未考慮山地城市車(chē)道窄、坡度大、部分交叉口畸形等幾何特點(diǎn)的局限,為了明晰在實(shí)際應(yīng)用中待行區(qū)“是否設(shè)置”、“如何設(shè)置”的問(wèn)題,

本文利用左轉(zhuǎn)排隊(duì)長(zhǎng)度分析探討了待行區(qū)是否設(shè)置的邊界條件及待行區(qū)需要設(shè)置時(shí)的最短設(shè)置長(zhǎng)度;基于沖突分析法明確了待行區(qū)設(shè)置安全間距,構(gòu)建了左轉(zhuǎn)待行區(qū)長(zhǎng)度設(shè)置區(qū)間模型;結(jié)合仿真提煉出不同坡度下左轉(zhuǎn)車(chē)輛利用沖突點(diǎn)時(shí)間變化特征,提出了當(dāng)?shù)缆房v坡坡度超過(guò)-5%時(shí)對(duì)樣本的修正方法;探討了畸形交叉口、中央隔離帶及車(chē)道屬性對(duì)待行區(qū)設(shè)置影響。進(jìn)一步地,(3)基于車(chē)輛實(shí)際運(yùn)行軌跡的待行區(qū)模型構(gòu)建。

本文首先通過(guò)無(wú)人機(jī)高空視頻拍攝及數(shù)據(jù)處理工作,獲取了一批具有山地城市特色的交叉口左轉(zhuǎn)車(chē)流軌跡數(shù)據(jù),利用軌跡特性分析與相關(guān)函數(shù)擬合考量,確定了單相指數(shù)衰減函數(shù)為車(chē)輛左轉(zhuǎn)軌跡基本函數(shù)原型;然后通過(guò)交叉口幾何特性,確定了起點(diǎn)、訖點(diǎn)、沖突限制點(diǎn)三個(gè)約束條件,對(duì)左轉(zhuǎn)軌跡函數(shù)原型進(jìn)行了標(biāo)定,構(gòu)建了以交叉口幾何參數(shù)為自變量的車(chē)輛左轉(zhuǎn)軌跡的函數(shù)樣本;基于曲線(xiàn)線(xiàn)形識(shí)別法,確定了交叉口車(chē)輛左轉(zhuǎn)軌跡由兩段緩和曲線(xiàn)組成,根據(jù)緩和曲線(xiàn)公式,構(gòu)建了關(guān)于左轉(zhuǎn)待行區(qū)長(zhǎng)度與半徑的分段函數(shù)模型。(4)基于遺傳算法的左轉(zhuǎn)待行區(qū)交叉口信號(hào)配時(shí)途徑研究。

本文針對(duì)前面章節(jié)構(gòu)建的左轉(zhuǎn)待行區(qū)樣本,修正了HCM手冊(cè)中的通行能力計(jì)算公式,并構(gòu)建了以通行能力最大、平均延誤最小、平均停車(chē)次數(shù)最少為目標(biāo),相位綠燈時(shí)間、信號(hào)周期為尋優(yōu)參數(shù)的多目標(biāo)求最優(yōu)解模型,利用遺傳算法求得最優(yōu)解,并結(jié)合實(shí)際案例開(kāi)展了驗(yàn)證。為實(shí)現(xiàn)城市精細(xì)化管控、大幅提高城市交叉口運(yùn)行效率和安全水平提供支撐?;诖耍詈?結(jié)合實(shí)例計(jì)算出了理論待行區(qū)樣本和實(shí)際待行區(qū)樣本的待行區(qū)長(zhǎng)度,建立了VISSIM仿真模型,仿真運(yùn)行結(jié)果顯示理論待行區(qū)樣本計(jì)算的待行區(qū)長(zhǎng)度相較于現(xiàn)狀待行區(qū)長(zhǎng)度,平均每車(chē)延誤下降了29.5%;實(shí)際待行區(qū)模型計(jì)算的待行區(qū)長(zhǎng)度相較于理論待行區(qū)模型計(jì)算的待行區(qū)長(zhǎng)度,平均每車(chē)延誤下降了11.2%。?簡(jiǎn)介:擅長(zhǎng)數(shù)據(jù)搜集與處理、建模仿真、程序設(shè)計(jì)、仿真代碼、論文寫(xiě)作與指導(dǎo),畢業(yè)論文、期刊論文經(jīng)驗(yàn)交流。

?具體問(wèn)題可以聯(lián)系QQ或者微信:30040983。仿真代碼importnumpyasnp

importheapq

fromcollectionsimportdefaultdict

classRoadNetwork:

def__init__(self):

self.nodes={}

self.edges=defaultdict(list)

self.traffic_conditions={}

defadd_node(self,node_id,x,y):

self.nodes[node_id]={'x':x,'y':y}

defadd_edge(self,from_node,to_node,distance,capacity,free_flow_time):

self.edges[from_node].append({

'to':to_node,

'distance':distance,

'capacity':capacity,

'free_flow_time':free_flow_time

})

defupdate_travel_time(self,from_node,to_node,current_volume):

foredgeinself.edges[from_node]:

ifedge['to']==to_node:

t0=edge['free_flow_time']

capacity=edge['capacity']

alpha=0.15

beta=4

ifcurrent_volume<capacity:

travel_time=t0*(1+alpha*(current_volume/capacity)**beta)

else:

travel_time=t0*10

self.traffic_conditions[(from_node,to_node)]=travel_time

returntravel_time

returnfloat('inf')

defdijkstra(self,start,end):

distances={node:float('inf')fornodeinself.nodes}

distances[start]=0

previous={}

pq=[(0,start)]

visited=set()

whilepq:

current_dist,current=heapq.heappop(pq)

ifcurrentinvisited:

continue

visited.add(current)

ifcurrent==end:

break

foredgeinself.edges[current]:

neighbor=edge['to']

weight=self.traffic_conditions.get((current,neighbor),edge['free_flow_time'])

distance=current_dist+weight

ifdistance<distances[neighbor]:

distances[neighbor]=distance

previous[neighbor]=current

heapq.heappush(pq,(distance,neighbor))

path=[]

current=end

whilecurrentinprevious:

path.append(current)

current=previous[current]

path.append(start)

path.reverse()

returnpath,distances[end]

defastar(self,start,end):

defheuristic(node1,node2):

x1,y1=self.nodes[node1]['x'],self.nodes[node1]['y']

x2,y2=self.nodes[node2]['x'],self.nodes[node2]['y']

returnnp.sqrt((x2-x1)**2+(y2-y1)**2)

open_set=[(0,start)]

came_from={}

g_score={node:float('inf')fornodeinself.nodes}

g_score[start]=0

f_score={node:float('inf')fornodeinself.nodes}

f_score[start]=heuristic(start,end)

whileopen_set:

current_f,current=heapq.heappop(open_set)

ifcurrent==end:

path=[]

whilecurrentincame_from:

path.append(current)

current=came_from[current]

path.append(start)

path.reverse()

returnpath,g_score[end]

foredgeinself.edges[current]:

neighbor=edge['to']

tentative_g=g_score[current]+self.traffic_conditions.get(

(current,neighbor),edge['free_flow_time'])

iftentative_g<g_score[neighbor]:

came_from[neighbor]=current

g_score[neighbor]=tentative_g

f_score[neighbor]=g_score[neighbor]+heuristic(neighbor,end)

heapq.heappush(open_set,(f_score[neighbor],neighbor))

return[],float('inf')

defk_shortest_paths(network,start,end,k=3):

paths=[]

path,cost=network.dijkstra(start,end)

ifpath:

paths.append((path,cost))

foriinrange(k-1):

ifnotpaths:

break

last_path,_=paths[-1]

temp_network=RoadNetwork()

temp_network.nodes=network.nodes.copy()

temp_network.edges=defaultdict(list)

fornode,edgesinnetwork.edges.items():

ifnodenotinlast_path[:-1]:

temp_network.edges[node]=edges.copy()

path,cost=temp_network.dijkstra(start,end)

ifpathandpathnotin[pforp,cinpaths]:

paths.append((path,cost))

returnpaths

defdynamic_routing(network,start,end,departure_time,time_steps=60):

current_time=departure_time

current_position=start

path=[start]

total_time=0

forstepinrange(time_steps):

ifcurrent_position==end:

break

foredgeinnetwork.edges[current_position]:

volume=np.random.randint(200,800)

network.update_travel_time(current_position,edge['to'],volume)

remaining_path,cost=network.dijkstra(current_position,end)

iflen(remaining_path)>1:

next_node=remaining_path[1]

travel_time=network.traffic_conditions.get(

(current_position,next_node),

[e['free_flow_time']foreinnetwork.edges[current_position]

ife['to']==next_node][0]

)

path.append(next_node)

total_time+=travel_time

current_position=next_node

current_time+=travel_time

returnpath,total_time

defmultimodal_routing(origin,destination,modes=['car','bus','metro']):

routes={}

formodeinmodes:

ifmode=='car':

time=np.random.uniform(20,40)

cost=np.random.uniform(10,20)

comfort=8

elifmode=='bus':

time=np.random.uniform(30,60)

cost=np.random.uniform(2,5)

comfort=6

else:

time=np.random.uniform(15,30)

cost=np.random.uniform(3,8)

comfort=7

routes[mode]={

'time':time,

'cost':cost,

'comfort':comfort,

'score':0.4*(60-time)+0.3*(20-cost)+0.3*comfort

}

best_mode=max(routes,key=lambdam:routes[m]['score'])

returnbest_mode,routes

defreal_time_rerouting(current_path,incident_location,network):

ifincident_locationnotincurrent_path:

returncurrent_path,False

incident_index=current_path.index(incident_location)

ifincident_index==0:

returncurrent_path,False

reroute_start=current_path[incident_index-1]

destination=current_path[-1]

foredgeinnetwork.edges[reroute_start]:

ifedge['to']==incident_location:

network.traffic_conditions[(reroute_start,incident_location)]=float('inf')

new_segment,cost=network.dijkstra(reroute_start,destination)

ifnew_segment:

new_path=current_path[:incident_index]+new_segment[1:]

returnnew_path,True

returncurrent_path,False

defmain():

network=RoadNetwork()

foriinrange(10):

x=np.random.randint(0,100)

y=np.random.randint(0,100)

network.add_node(i,x,y)

foriinrange(9):

network.add_edge(i,i+1,10,2000,5)

ifi<8:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論