喷油器多工况性能数据的分组方法与流程

文档序号:20769965发布日期:2020-05-15 19:33阅读:656来源:国知局
喷油器多工况性能数据的分组方法与流程

本发明属于汽车动力系统技术领域,涉及一种喷油器多工况性能数据的分组方法。



背景技术:

为使发动机各缸的喷射均匀,要求装在一台发动机上的喷油器尽量一致。因此喷油器在出厂前,需要根据其性能数据进行分组,如图1所示,每组包含6支喷油器(根据发动机的缸数决定)。分组要求见表1。

表1喷油器分组要求

由于不同发动机对喷油器的在不同工况的性能一致性要求不尽一致,因此将具体的工况点以分别工况1~工况6代替。喷油量偏差δ的计算公式见公式(1),其中max、min、average分别为该组数据在某个工况的最大值、最小值和平均值。

目前的做法1:操作分组的人员通过观察和分析需要分组的所有数据,如表2中列出部分数据,操作excel软件,从中将6个工况的数据都大致相近的挑选出来,临时分到一组,再根据表1中的分组要求,计算是否满足,如果不合格就继续寻找合适的数据。

表2喷油器多工况性能数据(截取部分数据,40条)

目前的做法2:通过程序设计,将喷油器性能数据按照某个工况进行排序,按顺序每6个喷油器分为一组,最后判断是否满足。

做法1的缺点:首先,每次挑选和分析一组喷油器数据,就需要人工操作excel进行复制粘贴,在大量数据下,需要的时间长,人力成本高。其次,人工凭经验估计哪些数据可能分到一组,随机性很大,失败几率大,浪费时间。并且在长时间工作和大量数据下,人工判断出错的几率增加。

做法2的缺点:虽然利用程序处理数据快,相对于人工能够节省大量时间,但是程序的算法过于简单,按一个工况排序。只能满足一个工况的数据相近,不能保证其它工况的要求,因此合格率低,分组效率低,远低于人工分组的成组率。



技术实现要素:

本发明所要解决的技术问题是克服了现有技术存在的人工操作的时间和人力成本高,且容易疲劳出错,而程序分组的算法简单,成组效率很低的问题,提供了一种喷油器多工况性能数据的分组方法。

为解决上述技术问题,本发明是采用如下技术方案实现的,结合附图说明如下:

一种喷油器多工况性能数据的分组方法,包括以下步骤:

1、数据清理,分析数据的主成分,利用pca(主成分分析)选出主特征,并根据主特征选取主要工况;

2、给每个主要工况分配一个权值w;

3、求和加权后的各工况数据;

4、根据求和后的值进行排序;

5、按顺序提取相应数量喷油器进行分组,判断是否符合分组要求;

6、如果不合格,根据不合格情况更换数据,同时记录不合格问题;

7、如果合格,继续按步骤5执行,直到提取全部数据;

8、计算分组的效率,如果没有达到设定要求,根据不合格记录修改权值,回到步骤3继续执行;

9、如果满足设定目标,结束程序。

本发明综合考虑喷油器多工况的性能数据,将性能接近的喷油器分到一组,提高分组效率,实现了对“喷油器多工况性能数据的分组”。

步骤1中所述数据清理,分析数据的主成分,利用主成分分析pca选出主特征,并根据主特征选取主要工况;具体内容如下:

通过程序将数据导入到excel的数据处理页,每行数据代表一个喷油器的各个工况的数据,列表示的分别是不同的工况,用data表示所有数据;再通过调用python脚本获得所有数据的主成分;python的数据分析包scikit-learn中的主成分分析pca能够计算出给定数据集的主成分;经过主成分分析pca提取主成分,特征数目降维到2个特征,分别记为x1,x2;

python脚本代码实现:

fromsklearn.decompositionimportpca

pca=pca(0.95)#提取主成分表示了原数据的95%

data_new=pca.fittransform(data)。

步骤2中所述给每个主要工况分配一个权值w;具体内容如下:

给每一个特征都初始化一个权值,分别记为w1,w2,其中2个权值需要满足一个条件,它们的累加和为1;第一次初始化,可以任意赋值,例如(0.5,0.5)。

步骤3中所述求和加权后的各工况数据;具体计算方式为:计算加权数据d,d=x1*w1+x2*w2;

步骤5中所述按顺序提取相应数量喷油器进行分组,判断是否符合分组要求;具体内容如下:

按顺序提取相应数量进行判断,具体的数量是由对应的发动机的缸数决定;判断是否符合分组的规范要求;为了节省判断逻辑,选取一个大油量工况和一个小油量工况代替所有工况,如qmain,qsmall;并根据计算出qmain和qsmall的实际喷油量偏差δ。

步骤6中所述如果不合格,根据不合格情况更换数据,同时记录不合格问题;具体内容如下:

如果δ超差,找出其中的最小值,按顺序替换下一行数据,因为后续提取的新数据只能更大,因此剔除数据中的最小值。

步骤8中所述计算分组的效率,如果没有达到设定要求,根据不合格记录修改权值,回到步骤3继续执行;具体内容如下:

计算所有工况是否满足要求,统计本次分组的效率η,η=成组数/(总数量|6),如果没有达到设定要求,根据不合格记录修改权值,回到步骤3继续执行。

与现有技术相比本发明的有益效果是:

通过本发明的特征加权算法,结合vba程序实现算法,综合考虑了数据的所有主要特征,避免了只关注单一特征带来的偏见,而且分组的过程是采用类似出栈的方法,逐条筛选数据进行判断,避免由于个别数据的偏差大,导致整组数据浪费。本发明不仅节省大量的分析时间,且成组率大于人工处理和简单排序算法的程序处理,极大提高分组的分组效率。

附图说明

下面结合附图对本发明作进一步的说明:

图1为喷油器分组示意图;

图2为喷油器分组流程图;

图3为数据清理的用户界面;

图4为喷油器分组的用户界面。

具体实施方式

下面结合附图对本发明作详细的描述:

本发明采用vba程序实现算法,设计窗口程序,方便操作者直接操作excel对数据进行处理。该程序包含数据清洗,数据分组,数据判断,数据统计和人工手动调整等功能。

1、参阅图3,首先通过程序将数据导入到excel的数据处理页,每行数据代表一个喷油器的各个工况的数据,列表示的分别是不同的工况,用data表示所有数据。再通过调用python脚本获得所有数据的主成分。python的数据分析包scikit-learn中的pca(主成分分析)能够计算出给定数据集的主成分;本例中的数据,经过pca(主成分分析)提取主成分,由原来特征数目降维到2个特征。分别记为x1,x2;

python脚本代码实现:

fromsklearn.decompositionimportpca

pca=pca(0.95)#提取主成分表示了原数据的95%。

data_new=pca.fittransform(data)

2、参阅图2,给每一个特征都初始化一个权值,分别记为w1,w2,其中2个权值需要满足一个条件,它们的累加和为1。第一次初始化,可以任意赋值,例如(0.5,0.5);

3、计算加权数据d,d=x1*w1+x2*w2;

4、因为原喷油器的数据与d的数据列是一一对应的,因此将所有数据根据加权数据d排序后,原数据也会随之排序;

5、按顺序提取相应数量,本例中提取6个喷油器进行判断,根据表1判断是否符合分组的规范要求,为了节省判断逻辑,选取一个大油量工况和一个小油量工况代替所有工况,如qmain,qsmall。并根据公式(1)计算出qmain和qsmall的实际喷油量偏差δ;

6、如果不合格,找出其中的最小值,按顺序替换下一行数据(因为后续提取的新数据只能更大,因此剔除数据中的最小值,增加进来的新数据与原来5个剩下数据组合,才有可能更一致,否则情况会更糟);

7、参阅图1,如果满足规范要求的话,将此6行数据(6个喷油器数据)分成一组,放入完成区(另一页)。程序继续执行步骤5,直到将所有数据提取完毕;

8、参阅图4,计算所有工况是否满足要求,因为步骤6的判断过程中只考虑了2个工况,虽然通过加权排序,但2个工况合格不能完全保证其它工况也合格,w1,w2也不一定是最优解,所以,最后统计本次分组的效率η,η=成组数/(总数量|6),如果没有达到设定要求,根据不合格记录修改权值,回到步骤3继续执行。分析不能成组的记录,如果大油量工况不合格的数量较多,就增加w1,如果小油量工况不合格的数量较多,就增加w2;

符号“|”表示整除。

9、如果满足设定目标,结束程序。

本发明在细分领域中实际应用在发动机共轨系统的喷油器分组上,也可以在其他领域中,对多工况数据或者多特征数据,按照给定的分组规范要求进行分组的情况也同样适用。

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