单目深度速度估计下的混合动力汽车场景建模与强化学习方法研究【附数据】
单目深度速度估计下的混合动力汽车场景建模与强化学习方法研究【附数据】
随着全球化石能源的大量消耗以及电力需求的急剧攀升,环境污染问题愈发严重,这使得各行业都面临着向绿色发展转型的巨大挑战。混合动力汽车在解决环境和能源问题方面展现出独特优势,本文从车辆自身传感器采集的原始图像数据中提取有用信息,并将其融入能量管理策略,所选取的信息需具代表性、概括性和典型性,且不受其他误差因素干扰,本文选择前方车辆的深度与相对速度作为典型环境信息融入能量管理策略。
(1)混合动力汽车在能源与环境背景下的研究意义及研究方向
随着全球化石能源的大量消耗以及电力需求的急剧攀升,环境污染问题愈发严重,这使得各行业都面临着向绿色发展转型的巨大挑战。在全球燃油消耗结构中,运输行业占比约 31%,而道路运输在其中占据主导地位。汽车行业作为能源消耗和污染排放的主要领域之一,自然成为绿色发展的重点关注对象。通过引入新能源汽车和推广节能减排技术等手段,汽车行业能够降低对环境的不良影响,为可持续发展目标助力。混合动力汽车在解决环境和能源问题方面展现出独特优势,与电动汽车相比,它不受电池技术的限制,能以更低的能耗和排放提升续航能力,将多种电源的优势相结合,优化车辆整体性能。混合动力汽车拥有燃油和电动两种动力系统,通过能量管理策略实现两者间的转换,从而提高燃油效率并减少排放。然而,能量管理策略易受行驶工况影响,且交通信息的瞬态特性对车辆行驶状况有极大影响,若能融合环境信息,有望显著改善混合动力汽车的燃油经济性。当前融合环境信息的能量管理策略多基于车辆自身,且信息常从车联网获取,但车联网尚未广泛普及。因此,本文从车辆自身传感器采集的原始图像数据中提取有用信息,并将其融入能量管理策略,所选取的信息需具代表性、概括性和典型性,且不受其他误差因素干扰,本文选择前方车辆的深度与相对速度作为典型环境信息融入能量管理策略。
(2)混合动力汽车基本构型分析与场景建模
分析混合动力汽车的基本构型,确定混联式混合动力汽车为研究对象。详细剖析混合动力汽车的 8 种工作模式,并对发动机、电机、电池、变速箱等关键部件进行建模。这一系列建模工作对于深入理解混合动力汽车的运行原理和性能特点至关重要。在硬件在环测试过程中,为保证视景信息与行驶信息的准确对应,基于 Unreal 引擎对场景进行建模,实现与世界路网的匹配。通过这样的建模,可以更真实地模拟车辆在实际交通环境中的行驶情况,为后续的能量管理策略研究提供更贴近现实的测试环境。这不仅有助于验证能量管理策略在不同场景下的有效性,还能为优化策略提供依据,使研究成果更具实用价值和指导意义。
(3)单目深度速度估计算法与能量管理策略的融合
提出一种适用于能量管理策略的单目深度速度估计算法,将深度估计与速度估计任务合并,并与能量管理策略相融合。首先阐述世界坐标系、相机坐标系和图像像素坐标系的原理及转换关系,这为几何线索提供了必要的转换基础。考虑到几何线索、深度特征线索、光流特征线索和多维特征需要融合的情况,引入注意力机制,使模型能更合理地结合这些特征,让模型在训练过程中更聚焦于关键特征。这种融合算法能够更准确地获取车辆周围环境信息,尤其是前方车辆的深度和相对速度信息,为能量管理策略的优化提供更精确的数据支持。通过这种方式,能量管理策略能够根据更丰富、更准确的环境信息做出更合理的燃油和电动动力转换决策,从而进一步提高混合动力汽车的燃油经济性和整体性能。
(4)强化学习框架下能量管理策略奖励函数参数匹配方法
设计在强化学习框架下的能量管理策略奖励函数参数匹配方法。通常,研究者构建奖励函数时往往存在主观性和经验性问题,而且多数研究常采用手动调参获取超参数,这使得奖励函数设定易受人为干扰。本文提出用标定后的电池和发动机双智能体的权重系数逆向指导智能体的行为,进而反向得到权重系数,再将其放入正向强化学习算法中。此方法主要包含四个部分:第一部分明确发动机和电池的最佳状态,发动机的最佳工作点以及电池保持合理稳定的 SOC 值(即低内阻和稳定电动势)是关键;第二部分构建逆向强化学习的算法框架,定义最大熵逆向强化学习;第三部分确定强化学习环境,将逆向获得的参数输入其中;第四部分运用强化学习的 DQN 算法,通过正向强化学习验证算法。这种参数匹配方法可有效减少人为因素对奖励函数的干扰,使奖励函数更科学、合理,从而优化能量管理策略,提高节油效果。
(5)单目深度速度估计算法与强化学习算法融合及硬件在环研究
提出将单目深度速度估计算法与强化学习基本算法融合的方法,其中采用了逆向强化学习训练的超参数。依据强化学习基本理论构建基于强化学习的混合动力汽车能量管理任务,然后利用单目深度速度估计结果,将其输入到构建的 RBF 转矩预测网络中,预测下一时刻的需求转矩。最后将预测出的转矩和深度速度数据以状态值形式输入强化学习网络,得到带有需求转矩的强化学习基本模型。针对融合环境信息的能量管理策略开展硬件在环研究,依据实验室条件搭建硬件在环实验台,实验系统由混合动力模型、驾驶员操作系统、虚拟场景系统、传感器系统、NI 实时系统和车辆控制单元组成。通过仿真实验和硬件在环实验结果表明,本文提出的算法在准确性和节油性方面表现良好。这一系列研究对于推动融合交通环境信息的能量管理策略、逆向强化学习的能量管理策略奖励函数参数设定以及从多线索融合出发的单目深度速度估计都有着积极意义,有助于进一步提升混合动力汽车的节油性能,为混合动力汽车在实际应用中的性能优化提供了可行的技术路径和方法支持。
# 假设这是基于Python的相关代码,可能涉及到多种库的使用
# 以下函数可能用于处理图像数据和坐标转换相关操作
import cv2
import numpy as np
# 函数用于从图像中提取特征,这里只是简单示意,实际可能更复杂
def extract_image_features(image):
# 可以使用OpenCV等库进行特征提取,如边缘检测、角点检测等
edges = cv2.Canny(image, 100, 200)
corners = cv2.cornerHarris(image, 2, 3, 0.04)
return edges, corners
# 坐标转换函数,将不同坐标系之间进行转换
def coordinate_transformation(point, from_coord, to_coord):
# 根据不同坐标系的转换公式进行计算
if from_coord == 'world' and to_coord == 'camera':
# 假设这里有世界坐标系到相机坐标系的转换代码
transformed_point =...
elif from_coord == 'camera' and to_coord == 'pixel':
# 相机坐标系到图像像素坐标系的转换代码
transformed_point =...
return transformed_point
# 注意力机制相关函数,用于融合多种特征
def attention_mechanism(features):
# 这里可以是基于注意力机制的特征融合代码,比如计算特征权重等
weights = np.random.rand(len(features)) # 只是示例,实际需要根据算法计算权重
weighted_features = [weight * feature for weight, feature in zip(weights, features)]
combined_feature = np.sum(weighted_features, axis=0)
return combined_feature
# 以下可能是与强化学习相关的部分代码
# 定义发动机和电池智能体的类
class EngineAgent:
def __init__(self):
self.state =...
self.action_space =...
def update_state(self, new_state):
self.state = new_state
class BatteryAgent:
def __init__(self):
self.state =...
self.action_space =...
def update_state(self, new_state):
self.state = new_state
# 逆向强化学习算法框架函数
def inverse_reinforcement_learning(engine_agent, battery_agent):
# 这里是逆向强化学习的主要逻辑,可能涉及到价值函数估计等
value_estimation_engine =...
value_estimation_battery =...
return value_estimation_engine, value_estimation_battery
# 强化学习环境设置函数
def setup_reinforcement_learning_environment(parameters):
environment =...
environment.set_parameters(parameters)
return environment
# DQN算法函数,用于正向强化学习
def dqn_algorithm(environment, num_episodes):
for episode in range(num_episodes):
state = environment.reset()
done = False
while not done:
action =... # 根据策略选择动作
next_state, reward, done, _ = environment.step(action)
# 更新Q值等相关操作