網(wǎng)聯(lián)下自動駕駛生態(tài)駕駛車速控制論文_第1頁
網(wǎng)聯(lián)下自動駕駛生態(tài)駕駛車速控制論文_第2頁
網(wǎng)聯(lián)下自動駕駛生態(tài)駕駛車速控制論文_第3頁
網(wǎng)聯(lián)下自動駕駛生態(tài)駕駛車速控制論文_第4頁
網(wǎng)聯(lián)下自動駕駛生態(tài)駕駛車速控制論文_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

網(wǎng)聯(lián)下自動駕駛生態(tài)駕駛車速控制論文.docx 免費(fèi)下載

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

文檔簡介

基于網(wǎng)聯(lián)的信號交叉口下自動駕駛車輛生態(tài)駕駛車速控制策略主要方案隨著我國經(jīng)濟(jì)的飛速發(fā)展,汽車工業(yè)取得巨大進(jìn)步,汽車產(chǎn)銷量連續(xù)蟬聯(lián)世界第一。綜上所述,汽車為人們帶來極大便利的同時,產(chǎn)生的燃油消耗、污染物排放、交通擁堵等問題越來越突出,得到社會普遍關(guān)注。城市交叉口的信號燈是使車輛和行人有序通過路口的交通設(shè)備,對交通安全起重要作用,但同時也會對交通流產(chǎn)生影響,使車輛經(jīng)常在信號口區(qū)域做出加速、減速、停車怠速等高油耗、高排放行為。隨著通信技術(shù)的發(fā)展,車路及車車間的信息交互成為可能,車輛根據(jù)采集的信息采取適當(dāng)?shù)鸟{駛策略可以有效減少降低能耗排放、完善交通效率。

本文在剖析現(xiàn)有國內(nèi)外生態(tài)駕駛速度控制策略基礎(chǔ)上,介紹了信號交叉口速度引導(dǎo)問題,剖析了車聯(lián)網(wǎng)平臺的系統(tǒng)構(gòu)建、關(guān)鍵技術(shù)和典型運(yùn)用,自動駕駛的發(fā)展階段、關(guān)鍵技術(shù)及存在的問題,提出生態(tài)駕駛掌控系統(tǒng)架構(gòu),對

本文掌控策略運(yùn)行環(huán)境做出基本假設(shè),剖析介紹了VISSIM交通仿真平臺和MOVES排放模型。其次系統(tǒng)分析了信號交叉口生態(tài)駕駛車速控制策略原理,建立以車聯(lián)網(wǎng)通信系統(tǒng)獲取路網(wǎng)中車輛及信號燈相位配時信息,進(jìn)行車輛依靠信號交叉口的控制場景劃分,得出使車輛不停車依靠交叉口的速度軌跡掌控策略。剖析介紹了VT-Micro微觀模型,運(yùn)用VT-Micro范式對生態(tài)駕駛車輛通過交叉口的目標(biāo)車速與油耗排放進(jìn)行關(guān)聯(lián)。以油耗、排放、交通效能為完善目標(biāo),以車輛不停車依靠交叉口為約束,運(yùn)用模擬退火算法進(jìn)行目標(biāo)車速優(yōu)化。構(gòu)建生態(tài)駕駛策略在信號交叉口的交通運(yùn)行及能耗排放估算仿真平臺,進(jìn)行基于模擬退火算法優(yōu)化的生態(tài)駕駛速度控制策略的仿真驗證。在分析多目標(biāo)遺傳算法的基礎(chǔ)上,構(gòu)建多目標(biāo)遺傳算法優(yōu)化的信號交叉口生態(tài)駕駛速度掌控策略并進(jìn)行仿真分析,仿真結(jié)果表明采用多目標(biāo)遺傳算法完善的掌控策略在交通效能和能耗排放指標(biāo)上均優(yōu)于采用模擬退火算法優(yōu)化的控制策略,且控制路段長度及初始速度對策略實施效果具有較大影響。分析交通流中其他車輛對受控車輛產(chǎn)生的影響,提出基于交通流狀態(tài)信息的車輛掌控場景劃分及目標(biāo)車速優(yōu)化方法,建立了基于交通流完善的控制策略。需要指出的是,對不同生態(tài)駕駛速度掌控策略、控制策略滲透率及道路飽和度場景運(yùn)行仿真分析??冃П砻骺紤]交通流的控制策略在各場景下均有良好效果,未考慮交通流的掌控策略僅在部分場景能獲得收益;且算法滲透率越高生態(tài)駕駛策略實施效果越好。最后基于不同生態(tài)駕駛速度控制策略下車輛通過信號交叉口的速度軌跡在底盤測功機(jī)上完成臺架試驗。實驗結(jié)果表明,

本文提出的生態(tài)駕駛速度掌控策略具有較好節(jié)能減排效果?;诖?,

本文構(gòu)建的信號交叉口生態(tài)駕駛速度掌控策略在未來有人駕駛和自動駕駛混行場景中可以有效降低能耗排放,提升交通效率。?簡介:擅長數(shù)據(jù)搜集與處理、建模仿真、程序設(shè)計、仿真代碼、論文寫作與指導(dǎo),畢業(yè)論文、期刊論文經(jīng)驗交流。

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

fromsklearn.ensembleimportRandomForestRegressor

fromsklearn.preprocessingimportStandardScaler

importpandasaspd

classQueueLengthPredictor:

def__init__(self):

self.model=RandomForestRegressor(n_estimators=100,max_depth=10,random_state=42)

self.scaler=StandardScaler()

self.history_window=12

defgenerate_synthetic_data(self,num_samples=5000):

time_of_day=np.random.randint(0,24,num_samples)

day_of_week=np.random.randint(0,7,num_samples)

weather=np.random.choice([0,1,2],num_samples,p=[0.7,0.2,0.1])

green_time=np.random.randint(20,80,num_samples)

cycle_length=np.random.randint(60,150,num_samples)

arrival_rate=np.random.randint(200,800,num_samples)

historical_queues=[]

foriinrange(self.history_window):

historical_queues.append(np.random.randint(0,50,num_samples))

features=np.column_stack([

time_of_day,day_of_week,weather,

green_time,cycle_length,arrival_rate

]+historical_queues)

base_queue=(arrival_rate*(cycle_length-green_time))/3600

time_factor=1+0.3*np.sin(2*np.pi*time_of_day/24)

weather_factor=1+weather*0.15

queue_length=base_queue*time_factor*weather_factor

queue_length+=np.random.normal(0,5,num_samples)

queue_length=np.maximum(queue_length,0)

returnfeatures,queue_length

deftrain(self,X,y):

X_scaled=self.scaler.fit_transform(X)

self.model.fit(X_scaled,y)

defpredict(self,X):

X_scaled=self.scaler.transform(X)

returnself.model.predict(X_scaled)

defevaluate(self,X_test,y_test):

predictions=self.predict(X_test)

mae=np.mean(np.abs(predictions-y_test))

rmse=np.sqrt(np.mean((predictions-y_test)**2))

mape=np.mean(np.abs((predictions-y_test)/(y_test+1)))*100

return{'MAE':mae,'RMSE':rmse,'MAPE':mape}

classKalmanFilterQueue:

def__init__(self):

self.A=np.array([[1,1],[0,1]])

self.H=np.array([[1,0]])

self.Q=np.array([[0.1,0],[0,0.1]])

self.R=np.array([[1]])

self.x=np.array([[0],[0]])

self.P=np.eye(2)

defpredict(self):

self.x=self.A@self.x

self.P=self.A@self.P@self.A.T+self.Q

returnself.x[0,0]

defupdate(self,measurement):

y=measurement-self.H@self.x

S=self.H@self.P@self.H.T+self.R

K=self.P@self.H.T@np.linalg.inv(S)

self.x=self.x+K@y

self.P=(np.eye(2)-K@self.H)@self.P

returnself.x[0,0]

defwebster_queue_model(arrival_rate,green_time,cycle_length):

saturation_flow=1800

capacity=saturation_flow*(green_time/cycle_length)

ifarrival_rate<capacity:

red_time=cycle_length-green_time

avg_queue=(arrival_rate/3600)*(red_time**2)/(2*cycle_length)

max_queue=(arrival_rate/3600)*red_time

else:

avg_queue=100

max_queue=200

returnavg_queue,max_queue

defshockwave_analysis(upstream_density,downstream_density,upstream_speed,downstream_speed):

ifupstream_density!=downstream_density:

shockwave_speed=(upstream_density*upstream_speed-downstream_density*downstream_speed)/\

(upstream_density-downstream_density)

else:

shockwave_speed=0

returnshockwave_speed

defqueue_discharge_model(initial_queue,green_time,saturation_flow=1800):

max_discharge=saturation_flow*(green_time/3600)

ifinitial_queue<=max_discharge:

residual_queue=0

discharge_time=(initial_queue/saturation_flow)*3600

else:

residual_queue=initial_queue-max_discharge

discharge_time=green_time

returnresidual_queue,discharge_time

defadaptive_signal_control(predicted_queue,max_capacity=50):

base_green=30

ifpredicted_queue<10:

green_time=base_green

elifpredicted_queue<30:

green_time=base_green+(predicted_queue-10)*1.5

else:

green_time=base_green+30+(predicted_queue-30)*2

green_time=min(green_time,90)

returngreen_time

defmulti_intersection_coordination(queue_predictions,num_intersections=4):

total_queue=sum(queue_predictions)

green_times=[]

forqueueinqueue_predictions:

iftotal_queue>0:

proportion=queue/total_queue

green=30+proportion*60

else:

green=30

green_times.append(min(green,80))

returngreen_times

defsimulate_queue_evolution(arrival_rate,departure_rate,initial_queue,time_steps):

queue_history=[initial_queue]

fortinrange(time_steps):

arrivals=np.random.poisson(arrival_rate/3600)

departures=min(queue_history[-1]+arrivals,departure_rate/3600)

new_queue=queue_history[-1]+arrivals-departures

queue_history.append(max(0,new_queue))

returnqueue_history

defmain():

predictor=QueueLengthPredictor()

X_train,y_train=predictor.generate_synthetic_data(4000)

X_test,y_test=predictor.generate_synthetic_data(1000)

predictor.train(X_train,y_train)

metrics=predictor.evaluate(X_test,y_test)

print("QueueLengthPredictionPerformance:")

print(f"MAE:{metrics['MAE']:.2f}vehicles")

print(f"RMSE:{metrics['RMSE']:.2f}vehicles")

print(f"MAPE:{metrics['MAPE']:.2f}%")

kalman=KalmanFilterQueue()

measurements=[10,15,20,18,22,25,23,20,18,15]

print("\nKalmanFilterQueueEstimation:")

fori,measinenumerate(measurements):

prediction=kalman.predict()

estimate=kalman.update(meas)

print(f"Step{i+1}:Measurement={meas:.1f},Prediction={predicti

溫馨提示

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

評論

0/150

提交評論