英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料
使用机器学习技术优化引擎性能
摘要:本文的目的是将监督学习算法的概念整合到发动机的调整中。现今机器学习成为一个非常有价值的预测工具。该领域中给定的子集涉及到使用监督算法来获取数据、分析数据并从中“学习”。它处理的数据越多(训练阶段),它学习的越好(训练集上的拟合参数),并且越能预测(预测阶段)。通过向系统输入数据,我们教会系统如何关联这些数据中的输入参数(进气量,排气和进气流道长度,发动机转速)与其他参数,以及如何通过更改任何一个变量的值来更改一组变量的值。使用了多种多样的回归模型的效率,并且实现了神经网格。
关键词:反向传播算法;回归模型;流道长度;增压室体积;神经网格
1.引言:
众所周知,我们可以通过在发动机上增加进气和排气系统,来提高发动机的输出性能(功率和扭矩)。这就是为什么我们周围所有的汽车都有进排气系统的原因。功率和扭矩增大的原因是进气与排气波分别在进气管与排气管内的移动以及这些波在遇到横截面积变化时的反射。这个影响在下面将会详细说明。
我们项目的目的是通过算法计算得到最大化功率,来得出发动机的最佳性能。输入的信号将被送进通过这些数据集学习的系统中。一旦所有的参数被输入进去,这个阶段就完成了,之后算法会给我们一个最佳的转矩大小。
在我们的研究中,我们采用了本田CBR600 RR(如图3-8所示)发动机,该发动机属于我们大学的Formula Combustion FSAE团队(Pravega Racing),并通过寻找以下变量的最佳值进行了发动机优化:
1) 进气流道长度
2) 排气流道长度
3) 增压室体积
我们这么提出的原因是,通过改变上述因素,我们在发动机的功率和扭矩输出上获得了相当大的改变。
2.FSAE:
FSAE Formula SAE是由SAE International组织的学生设计竞赛。每个团队都根据一系列规则设计、制造和测试原型车。该活动考验个人和整个团队进行研究、设计、制造、测试、开发、营销、管理和财务的能力。
参加比赛的团队来自全球各个国家的大学,并在一系列静态和动态赛事中相互竞争。团队根据他们参加的每项赛事的表现获得积分。
我们大学的方程式燃烧FSAE团队(Pravega Racing)参加了在德国举行的FSG比赛,与来自世界各地的其他顶尖大学队伍进行了较量。该团队还参加了2015年1月举行的首届FSI(印度学生方程式比赛)比赛,并获得了团队第三名。
3.一维发动机模拟:
Ricardo Wave是一个强大的一维仿真软件,它使我们能够用一维模型的形式将我们拥有的发动机复制到该软件上,并获得发动机功率和扭矩输出。为了将发动机精确得复制到软件中,必须测量各种发动机的参数并将其输入到模型中。为此,需要打开发动机,同时测量一些参数,像进气口尺寸,排气口尺寸,进气和排气门尺寸,缸径,冲程等。测量完参数后,将其输入,并完成余下的发动机模型。通过更改进气流道长度和发动机RPM的值,并保持其他参数(如排气流道长度和增压室体积)不变来进行下一次仿真,在每次仿真之后,绘制发动机RPM和发动机扭矩之间的图表。从绘制的图形中,提取数据并将其放入excel表中;这样做是为了使数据可以直接从excel工作表输入到机器学习的代码中,在机器学习的代码中使用算法对数据进行分析。该过程会重复几次去选取不同的进排气流道长度,并且产生结果传入算法中。用于分析的发动机是本田的4缸4冲程汽油发动机CBR600 RR。
4.机器学习:
机器学习是一门工程学科,其包含了从数据中学习的算法的构建和研究。机器学习有很多软件可以使用,无论是有监督的学习算法还是无监督的学习算法。监督学习算法是一种不仅提供给定数据集的输入,而且还提供输出的算法。其中一部分(假设为70%)被标记为训练数据。训练集由我们的目标输入变量组成。在我们这个项目里,可以输入3到5个输入参数。预留30%的样本作为测试集,在此测试集中,算法仅基于输入的参数来预测输出结果,与先前已知的输出结果进行交叉验证。程序会将给定示例进行分类。一旦参数一定程度上相匹配,“机器”就能被训练去处理任何的输入数据,并准确地给出扭矩或输出功率的预测结果。
监督学习算法 |
无监督学习算法 |
线性回归 |
盲信号分离 |
逻辑回归 |
聚类算法 |
决策树 |
期望最大化 |
神经网络 |
Parzen Window |
朴素贝叶斯 |
层次聚类 |
表一.不同算法的不同点
汽车发动机的复杂性不断增加,不仅要满足赛车的性能要求的提高,同样还要满足商用车的性能要求,例如提高燃油经济性和降低排放。尽管本文的主要目的是关注发动机RPM和输出功率量化的性能提升,但是这种方法也可以扩展到以前的输出。在现在的情况下,由于已经使用Ricardo Simulation软件对输入进行了建模,因此我们可以继续使用监督学习算法。由于输出结果不一定是离散的且可以采用连续值,因此可以使用回归模型。线性回归是一种在计算方面讲成本不高的模型,并且其结果方便理解。然而,由于添加了多个功能以及非线性数据,其性能迅速下降。在只有2-3个输入时他有着良好的执行能力,但是超过后他的准确性就会下降。因此,可以使用分类和回归树(CART)算法在某些方面进行改进。其他算法,像是神经网络的反向传播,也可以用于更多非线性数据。表1列出了一些应用最为广泛的算法。
5.参数:
各种参数变化包括:
1) 进气流道长度
2) 排气流道长度
3) 增压室体积
A. 进气流道长度
当我们要增加发动机扭矩和功率输出时,进气流道是要考虑的最重要因素之一。该概念基于脉冲进气和反射波等理论。
这个理论很简单,可以这么解释:在进气冲程结束时,由于进气门关闭,在进气冲程期间直到下一个进气冲程(进气门打开时),空气不再被允许进入气缸里。当进气门关闭后,空气波将从增压室进入流道里,然后沿着流道向进气门传播。由于进气门处于关闭状态,空气波接近进气门的后部时会被反射。于是空气波就从关闭的进气门经过流道回到增压室。空气波一旦到达增压室一侧的流道末端,便会通过进气流道和气室之间的变化的横截面积。由于变化的横截面积,空气波在进气流道与增压室的交界处受到反射。因此,波通过流道回流到进气门。进气波不断来回反射,直到进气门再次打开(在吸气冲程期间)。当进气门打开时,该进气波向气缸充气/撞击,从而增加了可充到气缸中的空气量。这直接增加了体积效率,从而得到更高的功率和扭矩输出。
因此,对于特定的RPM,进气流道的长度应当相匹配。一旦进气门打开开始吸气冲程,反射波就应到达并撞击进气门,这将导致气缸收到负载的冲击。这还有另一个目的,它减少了泵送损失,这是由于通过曲轴上下驱动活塞而产生的功率损失。
随着发动机RPM的增加,进气门的打开时间减少,这意味着空气充满气缸的时间减少。因此,为了在不同的RPM下得到最好的性能,我们需要不同的进气长度。
B.排气流道长度
就像进气流管,排气流管也扮演着增加发动机的功率和扭矩输出的角色。他的工作方式同进气波类似。可这么解释:排气门打开后,废气离开气缸,沿着排气流道排气,直到到达流道1和流道4的交接处。一旦到达该接合处,因为横截面积的变化,它会向后朝着排气门反射。这个过程一直持续到排气门打开,并且排气波到达排气门,在排气门处产生吸力,这种吸力导致从气缸里产生的燃烧气体通过排气门被吸出气缸。
特定发动机的RPM下的排气管的最佳长度,应当与排气门打开时恰好排气波回到排气门初的时间相匹配。从而在排气冲程和所有排气期间尽早产生吸力。另一个好处是减少了发动机中发生的泵送损失。
像提到的针对进气门所述,当发动机RPM增加时,排气门的打开时间减少,这意味着从气缸中排出燃烧废气的时间更少。因此,对于不同RPM的性能的提升我们需要不同的排气管长度。图10展示了对于不同的流道长度的制动发动机扭矩对发动机转速的曲线图。
C.增压室体积
增压室体积决定了发动机的峰值功率和扭矩输出的位置。如果增压室体积较小,那么在较低的RPM范围下我们能获得好的动力和扭矩输出。然而,如果增压室体积较大,则功率和扭矩输出范围会向高RPM范围偏移。气室容积的另一个问题是,如果气室容积太大,那么我们就会失去节气门的响应。因此,增压室体积是功率和节气门响应之间的权衡。
6.实行
A.回归模型
线性回归采用输入变量,并训练相应的例子去匹配正确的输出结果。为了我们的目的,我们可以使用Python,MATLAB或R编程语言,这些都同样适合预测。因为有一些更好的编程环境和受支持的软件包/工具包,所以使用了MATLAB。在我们的例子中,我们有多个输入,可以对其进行精确建模,给出车辆的输出扭矩。数据从excel表中提取到MATLAB程序中;存储为输入矩阵X和输出Y。我们利用前面所说的3个输入参数,这些参数都将被分配一个相关联的“权重”。因此,我们需要一个数组来存储其相应的权重。Theta矩阵宣明为4元素列矩阵。权重能在任意迭代后随机初始化,他们能收敛于最理想的值。在我们的例子中,它们被初始化为零。
在值加载完后,接着我们进行特征归一化。鉴于在基本代码,该函数将被调用并将值存储在输入矩阵X中。发动机RPM值的典型值远大于进气流道和排气流道的长度。因此,对所有参数来说,其均值被计算出,并且每项均被均值减去。这再除以标准偏差。每个要素的值可能没有精确得变化,但是在每个值的个位数字范围内徘徊。可供选择的方案同样不称心如意,其值的范围在小数位内变化(-0.001 lt;x lt;0.001)。关于参数方面的值变化很小,相应的theta值可能就很微不足道。公式1表示成本函数,它是训练示例的错误的均方的归一化的和。
之后使用批量梯度下降,其目的是通过改变theta参数而不是输入或输出参数来最小化成本函数。每个权重所关联的输入变量被特定权重方面的成本函数的导数减去。(公式二)。我们在0.01-0.1附近设置alpha参数,在我们的项目中将其设置为0.03,因为它在此速率下收敛到最小值的速度更快。表3显示了算法针对不同alpha值收敛的速率。我们发现成本函数基本上立马就减少了。迭代完成后,我们更新了theta的值。使用基于用户提供的输入来计算新的扭矩的值。迭代完成后,我们得到最后的权重矩阵。然而,即使成本相较于最初的值已经大幅减少,但是对于许多非线性数据来说, 成本依然很高。图9说明了成本函数与迭代次数的关系。为了减少他的错误,我们使用CART算法。我们为了更方便做模型,将数据分为几个部分。这些部分可以使用线性回归进行建模。这在很大程度上减少了错误。
因此,在很多次迭代后,他们将收敛到最佳的值。对于这些特别的一些权重,得出成本函数的相应最小值。
B.神经网络
回归模型的准确性随着输入变量数量的增加而降低。为了比较这两种算法,我们使用神经网络。
神经网络由输入层输出层和隐藏层组成。图13表示了典型的神经网络结构。对于我们的训练例子而言,我们有一个包含4个不同变量的输入层。还添加了偏压单元为每层提供恒定的权重。我们设置了一个具有可变数量神经元的隐藏层。我们用一步为5将其从15增加到40。我们发现当神经元数量为25时,是平均相关性最好的时候。类似于线性回归,权重被随机初始化。70%的数据集是作为训练集,15%作为校准集,剩下15%作为测试集。
我们应用了反向传播算法,他穿梭于输出层到隐藏层去重新校准成本。他对所有训练样本进行迭代,当泛华停止改进时停止训练。
C.公式
7.图像与表格
图8.图分别显示了进气流道长度分别为200、225和250mm时的制动发动机扭矩与发动机转速(RPM)
表2. 展示了固定进气道长度,排气道长度,变化的发动机转速,固定增压室体积和输出扭矩的样本表
图9.多参数的梯度下降
表3.不同alpha值下的成本收敛速度
图10.展示了根据2输入的theta的3D成本图像
图11.展示了给定数据集的目标与输出结果的关联性
图12.使用神经网络进行训练、测试和验证数据的均方误差
8.结论与展开
1.1D的RPM对转矩的参数图像已经用MATLAB进行模拟,也使用了神经网络工具箱。
2.对于多个输入参数,图形的确会收敛,尽管成本相对高于单个输入,导致更大的误差。可以通过调整输入参数来增加此值,以防止过度拟合。
3.alpha的值(用于适当的梯度)最佳范围在0.03到
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[236810],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。