一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于检测设备的异常运行状态的方法、装置和系统与流程

2022-06-06 04:20:26 来源:中国专利 TAG:


1.本发明涉及一种用于检测设备、尤其是机动车的异常运行状态的方法以及一种对应的装置以及一种对应的系统。此外给出一种相应的计算机程序和存储介质。


背景技术:

2.当今的机动车具有多种车辆功能,除了基本的舒适性功能、辅助或行驶动态调节之外,也具有安全关键的功能,所述安全关键的功能例如允许自动实施驾驶操纵、尤其是部分自主的或完全自主的驾驶。
3.随着车辆功能越来越复杂以及其联网程度越来越高,在各个车辆功能的运行范围内收集或交换的数据的量也增加。在此过程中越来越难通过手动建模来检测和评估异常运行状态、即在各个车辆功能的运行中的故障以及规格偏差。
4.在此,借助车辆规格来构建状态自动装机被称为手动建模,借助车辆规格描绘机动车的各个部件的所有理论运行状态。在此以及在下面,不仅机动车的各个软件组成部分而且硬件组成部分以及机动车的多个软件组成部分和/或硬件组成部分的组合被称为部件,通过这些部件分别实现一个或多个车辆功能。在机动车的运行期间,通常记录所收集的数据或在机动车的总线系统上交换的数据;根据车辆功能或部件,在此可以涉及诊断数据(如状态信号或故障信号、用于控制或调节各个部件的控制信号),或涉及代表所检测到的测量值(如机动车的速度或转向角)的数据。在下面,全部前述的所收集的或交换的数据被称为测量数据。紧接着机动车的运行,然后可以读取全部记录的测量数据量,以便借助一个或多个模型检验这些测量数据在理论运行状态方面的偏差。


技术实现要素:

5.本发明所基于的任务是,实现一种用于检测机动车的异常运行状态的有效以及可靠的方法。此外,应给出一种对应的装置、一种对应的系统以及一种计算机程序以及一种存储介质。
6.所述任务通过各独立权利要求来解决。有利的设计方案在各从属权利要求中得以表征。
7.根据第一方面,本发明涉及一种用于检测机动车的异常运行状态的方法。
8.该方法包括以下步骤:
9.a)将代表机动车的至少一个部件的要期望的运行状态的模型数据提供给机动车;
10.b)通过机动车收集代表机动车的所述至少一个部件的实际运行状态的测量数据;
11.c)通过机动车根据模型数据和测量数据确定代表期望运行状态的比较数据;
12.d)根据比较数据和测量数据来检验是否存在实际运行状态与期望运行状态的偏差;并且
13.e)根据所述偏差,与收集测量数据的时刻对应地将异常运行状态关联于所述至少一个部件。
14.模型数据尤其是代表统计模型,所述统计模型分别从所述至少一个部件的初始状态或已经经历过的运行状态出发给出所述至少一个部件的最可能的下一个运行状态。该最可能的下一个运行状态也被称为期望运行状态并且通过在步骤c)中确定的比较数据来代表。
15.优选考虑(深度)人工神经网络作为统计模型。尤其是,相应部件的通过输出相应测量数据来代表的每个动作以及相应部件的动作的停止可以理解为运行状态。为了在步骤d)中确定偏差,例如可以使用基于距离的方法(如“最近邻算法”(knn)、“局部异常因子算法”(lof)、“[层次]基于密度的带噪声的应用空间聚类算法”([h]-dbscan)或“用于识别聚类结构的排序点”(optics))、基于集成的方法(如“孤立森林算法”(if))、统计学的方法(如“高斯混合模型”(gmm)、“独立成分分析”(ica)或“向量自回归”(var))、基于域的方法(如“[一类]支持向量机”([oc]-svm))或基于重建的方法(如“极限学习机”(elm))。
[0016]
步骤d)和e)尤其是可以根据在bertrand charpentier、marin bilos和stephan g
ü
nnemann的2019年第12831-12840页的“神经信息处理系统的进步(advances in neural information processing systems)”中以及在2019年神经信息处理系统会议上提出的方法“异步时间事件预测的不确定性(uncertainty on asynchronous time event prediction)”来实施。
[0017]
有利地,根据第一方面的方法能够实现在机动车的运行期间、尤其是实时检测机动车的异常运行状态。有利地,因此可以放弃传输全部量的测量数据或者可以限制于与至少一个部件的异常运行状态相对应的测量数据。此外可设想,一旦已经识别到与安全相关的车辆功能的异常运行状态,则在机动车运行期间就已经采取相应的措施,从而能够有助于机动车的特别安全的行驶运行。
[0018]
代替机动车,上述方法也可以考虑用于装备有相应的传感装置的其它装置(以下也称为“设备”),以便监控相应装置的运行状态。所有在此以及在下面结合机动车公开的特征也可以符合意义地转用于这种装置。
[0019]
在根据第一方面的一个有利的设计方案中,在步骤c)之前为机动车预先给定待评估的车辆功能,并且根据待评估的车辆功能和测量数据确定经过滤的测量数据。为了在步骤c)中确定比较数据,考虑经过滤的测量数据。
[0020]
尤其是,测量数据被这样过滤,使得在经过滤的测量数据中仅包括参与待评估的车辆功能的运行的部件的测量数据。
[0021]
在根据第一方面的另一个有利的设计方案中,步骤b)至d)分别在多个依次相继的时刻实施。当在至少n个依次相继的时刻分别确定实际运行状态与期望运行状态的偏差时,在步骤e)中与所述n个依次相继的时刻对应地将异常运行状态关联于所述至少一个部件,其中,n表示大于1、尤其是大于5、优选大于10的自然数。
[0022]
换句话说,实际运行状态与期望运行状态的多次偏差才导致分类为异常运行状态。
[0023]
在根据第一方面的另一个有利的设计方案中,在步骤e)之后的步骤f)中,在所述至少一个部件关联有异常运行状态的情况下,存储和/或输出与该异常运行状态对应的测量数据。
[0024]
尤其是,就此而言可以将不与异常运行状态对应的测量数据在其收集之后丢弃,
从而能够简化后续分析和/或减少存储器耗费。
[0025]
在根据第一方面的另一个有利的设计方案中,步骤a)根据第二方面包括:
[0026]-将一个或多个机动车的运行数据提供给计算中心,
[0027]-将待评估的车辆功能预先给定给计算中心,并且根据待评估的车辆功能和运行数据确定经过滤的运行数据,
[0028]-通过根据针对待评估的车辆功能已过滤的运行数据训练模型来确定模型数据,并且
[0029]-将所确定的模型数据提供给机动车。
[0030]
提供给计算中心的运行数据尤其是历史运行数据,例如在多个机动车的测试行驶范围内记录的总线信号。
[0031]
有利地,根据第二方面的方法能够实现自动产生用于检测机动车的异常运行状态的模型。为此,与手动建模不同,尤其是不需要知道所有可能出现的故障,使得能够有助于在异常运行状态的检测中的可靠性以及机动车的安全行驶运行。
[0032]
在根据第二方面的另一个有利的设计方案中,将与异常运行状态对应的测量数据在步骤f)中传输给计算中心。
[0033]
例如,装置就此而言能在信号技术上例如通过在造访机动车维修车间时读取该装置或者通过互联网连接与计算中心耦合。
[0034]
在根据第一或第二方面的另一个有利的设计方案中,模型数据代表人工神经网络。优选地,在这里涉及深度人工神经网络。这种模型尤其是在测量数据中是有利的,所述测量数据作为具有不等距的测量值的连续时间序列存在。
[0035]
根据第三方面,本发明涉及一种用于检测机动车的异常运行状态的装置。该装置设置用于执行根据第一方面的方法。尤其是,该装置就此而言配设有用于收集测量数据的部件、用于接收所提供的模型数据的接收单元以及用于处理数据的计算单元。
[0036]
根据第四方面,本发明涉及一种用于检测机动车的异常运行状态的系统。该系统包括计算中心以及具有根据第三方面的装置的机动车。该系统设置用于执行根据第一或第二方面的方法。
[0037]
根据第五方面,本发明涉及一种计算机程序,该计算机程序包括指令,所述指令在由计算机执行所述计算机程序时促使所述计算机执行根据第一或第二方面的方法。
[0038]
根据第六方面,本发明涉及一种计算机可读存储介质,在所述计算机可读存储介质上存储有根据第五方面的计算机程序。
附图说明
[0039]
在下面借助示意性的附图更详细地阐述本发明的各实施例。在附图中:
[0040]
图1示出用于检测机动车的异常运行状态的系统,以及
[0041]
图2示出用于检测根据图1的机动车的异常运行状态的方法。
具体实施方式
[0042]
结构相同或功能相同的元件在所有附图中设有相同的附图标记。
[0043]
如今已经有大量数据流动通过车辆,这些数据可以在行驶期间被记录并且例如为
了识别故障而在行驶之后被评估。
[0044]
数据的量和复杂性在未来的车辆更新换代中将继续增加。因此,收集所有数据并且单独借助手动构建的模型分析这些数据不再可行。这尤其是因为并非所有故障都预先知道而适用。
[0045]
基于此,在下面提出借助神经网络的数据处理。
[0046]
未来的系统依赖于人工智能或深度学习(dl)。在此,神经网络从大量数据量中自主地学习并且能够自动识别异常和故障。核心组成部分是能够基于历史数据预测未来信号及其值的深度神经网络。预测与实际值之间的重复偏差暗示异常状态并且由此能够被检测和评估。
[0047]
这些模型可以实时地应用在车辆中。由此,在行驶之后仅还需要有针对性地读取和存储异常情况。因此,显著降低了用于数据传输和分析的耗费。
[0048]
有利地,基于历史数据自动生成模型。问题不需要在此之前明确地知道。此外能够在行驶期间实现实时评估。最后,仅还需要评估偏差的数据。
[0049]
借助图1示出用于检测机动车10的异常运行状态的系统100。系统100除了机动车10之外还包括计算中心20,该计算中心示例性地与多个另外的(未示出的)机动车在信号技术上耦合,以便评估其运行数据。
[0050]
机动车10配设有用于检测异常运行状态的装置1,该装置能与计算中心20在信号技术上耦合(通过虚线箭头示出)。装置1例如是所谓的“移动数据记录器”(mdr)。此外,机动车10具有多个部件2、3、4、5,这些部件例如通过车辆总线6与装置1连接。
[0051]
例如,部件2是速度传感器,部件3是转向角传感器,部件4是雷达传感器,并且部件5是车窗玻璃升降器。部件2-4示例性地对于实现车辆功能f“距离辅助”而言是需要的,而部件5对该车辆功能f没有影响。
[0052]
系统100设置用于执行用于检测异常运行状态a的方法,如在下面借助图2的示意性流程图详细地阐述的那样:
[0053]
首先在步骤a1)中,将多个机动车的所有部件2-5的历史运行数据b提供给计算中心20,所述历史运行数据代表相应部件2-5的运行状态的时间变化走向。此外,在步骤a2)中,将待评估的车辆功能f“距离辅助”预先给定给计算中心20。
[0054]
接着,在步骤a3)中,借助历史运行数据b例如通过计算中心20确定经过滤的运行数据b*,所述经过滤的运行数据仅包括参与车辆功能f的部件2-4的历史运行数据。
[0055]
在接着的步骤a4)中,通过计算中心20借助经过滤的运行数据b*训练人工神经网络(knn),并且例如将knn的超参数作为模型数据m输出给机动车10的装置1。此外,在步骤a5)中将待评估的车辆功能f“距离辅助”预先给定给机动车10。
[0056]
在步骤b)中,为装置1提供机动车10的部件2-5的测量数据d。测量数据d分别是与历史运行数据b之一可比较的运行数据,该运行数据代表机动车10的相应部件2-5的当前或实际的运行状态。
[0057]
在接着的步骤b2)中,根据待评估的车辆功能f和测量数据d通过装置1确定经过滤的测量数据d*,所述经过滤的测量数据仅包括参与车辆功能f的部件2-4的测量数据d。
[0058]
在步骤c1)中,通过装置1根据模型数据m和经过滤的测量数据d*确定比较数据v,所述比较数据代表相应的部件2-4的期望运行状态。
[0059]
在步骤d)中,根据比较数据v和经过滤的测量数据d*检验是否存在实际运行状态与期望运行状态的偏差。
[0060]
步骤b)至d)例如可以分别在多个依次相继的时刻实施。当在至少5个依次相继的时刻分别确定实际运行状态与期待运行状态的偏差时,在接着的步骤e中,与各个依次相继的时刻对应地将异常运行状态关联于相应的部件2-4,也就是说只有重复的偏差被评估为异常运行状态。
[0061]
替代于此地,在步骤e)中在唯一的检测到的偏差的情况下就已经根据该偏差与收集测量数据d的时刻相对应地将异常运行状态关联于相应的部件2-4。
[0062]
最后在步骤f)中,通过装置1存储和/或输出与所确定的异常运行状态相对应的那些测量数据d。未与任何异常运行状态相对应的测量数据d可以被丢弃。示例性地在步骤f)中将剩余的测量数据d传输给计算中心。
[0063]
与借助图1所示的结构或借助图2所示的方法不同,在另一个设计方案中同样可以在车辆中在多个不同的总线系统上进行通信,如下面所阐述的那样。所有结合下面描述的设计方案公开的特征可设想用于借助图1所示的结构中或借助图2所示的方法中。根据所述另一个设计方案,每个单个的系统被用于不同功能和车辆部件的数据交换。这些不同的总线系统都可以被mdr读取。在此,mdr解释所有出现的信号并且进一步处理这些信号。其可以一方面在mdr上执行不同的分析自动装置,或者可以将最重要的信息打包地传输给计算中心。
[0064]
此外,整个异常识别可以由多个不同的程序部分组成。例如,这些程序部分一方面可以满足不同的任务并且这些程序部分另一方面可以在不同的部件上执行。示例性地,相应的应用被分成两种不同的编程语言。可选地可以用java编程语言开发在mdr上进一步处理数据的已经存在的应用,而可以利用python实现实施异常识别和训练不同应用模型的程序部分。python是当前最广泛流行的用于机器学习(ml)的编程语言。在此,这些语言提供辅助数据预处理和预测的实际实施的不同库。为了实现深度学习(dl)应用和/或开发预测模型,例如可以使用“tensorflow(张量流)”框架,该框架描绘多种辅助方法和已经预定义的过程结构并且由此特别适合于所述应用。
[0065]
在图3中示出在不同程序部分之间的通信的示例性语义结构。在此,也可看出三种不同的应用及其分布到不同的部件上。一方面,在图3的右侧示出在车辆制造商处构建异常识别模型(s1,“构建用于异常识别ae的模型”)。该模型针对每种应用情况独立地构建并且借助来自数据库db的所存储的数据来训练(s2,“训练模型”)和优化(s3,“优化模型”)。为了能够在mdr上实施数据的实际分析,必须构建分析各个信号的模型。为了能够为不同类型的应用情况构建尽可能好的模型,针对每个单个应用情况专门地开发模型。在此,该模型利用针对特定应用情况的训练数据来训练。然后,同样再次利用不同的参数配置进行所述训练。在此,例如涉及所谓的超参数,所述超参数在训练开始之前已经被手动确定,以便配置相应的模型。例如,全部部件的类别图被划分成三个不同的分组。在实际源代码目录下包括启动并且管理不同类型的实施方案的实施类。此外,存在对象,该对象定义模型的所有参数并且由此允许模型-类的简单初始化,其描绘实际的模型。这里,实施为了分析数据所需的所有预处理步骤。此外,初始化所使用的模型并且最后借助数据和模型配置实施模型的实际训练。在类中,利用不同模型配置训练依次不同的模型。然后,借助各个模型的结果来比较这
些构建的模型。所述方法也被称为“网格搜索”并且最终提供用于经训练的应用情况的最佳模型配置。为了数据处理和可视化,从模型-类中调用和处理所存储的数据。对于异常识别,提供两个模型“狄利克雷”和“高斯”,它们定义可以如何构建模型的两个不同的变型方案。
[0066]
在图3的左边部分中示出两个应用1a、1b,这两个应用在mdr上执行。一方面,在那里在python应用1b中存在实际的车载分析(s9,“接收并且利用模型分析信号)。该车载分析在汽车中借助经训练的模型实施异常识别并且在此提供异常识别的结果。此外,还存在一种应用,该应用定义对于分析所需的信号(s4,“配置分析的应用情况”)并且将这些信号传递给在mdr上的java应用1a。
[0067]
应用1b在车辆中在mdr上执行并且包括两个不同的部件。其中一个部件负责传输json配置文件,该json配置文件定义相应的模型的不同应用情况。该文件在mdr上被传输给java部件并且在那里如下面所描述的那样被进一步处理。该传输的意义在于,由此不再需要改变java部件应用1a。这具有如下优点,即,不必在应用情况每次改变时生成新的jar文件,因为其包含所配置的信号,而是java应用在系统上一次初始化之后不必再改变。如果待监控的信号改变,则python应用1b本来就必须以重新训练的模型扩展。出于这个原因,这些信息被打包在一个部件中并且然后从该部件传输给真正的使用地点,即java应用1a。应用1b的第二软件部件在mdr上实施实际的车载异常识别。该应用在mdr上由java部件启动。在此,在启动应用时,从所配置的目录中加载用于异常识别的经训练的模型(s8,“在mdr上提供模型”)。附加地采用为此所需的离散化规则。为每个所加载的模型构建一个自己的数据对象。在该数据对象中保存为此加载的信息。设置“地图”,在该地图中存储有用于相应的应用情况的不同模型。唯一的应用情况标识符(亦或被称为用例标识符)用作该“地图”的密钥。所述密钥规定哪个模型将被用于哪个信号。从java应用传输的每个信号都具有对于何种应用情况需要该信号的信息。此外,该唯一的标记用于将所存储的信息关联给正确的应用情况。一旦在汽车中出现要监控的信号并且java应用的转换已经结束(s5,“过滤应用情况的总线信号”,s6,“解释总线数据中的信号”),则将这些信号从java传输给python应用(s7,“将信号传输给python”)。在此,然后加载对于到达的信号所需的应用情况并且传递给用于异常识别的模型。然后实施分析。在调用该方法(s9)之前,仍然借助用于分析的模型的所加载的信息来预备到达的信号。计算在应用情况的先前信号与当前信号之间的持续时间并且将其归一化为0至1之间的值,如在也训练模型期间那样。此外,将相应的信号及其值映射到用于训练的数值上。此外,将信号的变化走向存储在所谓的堆栈中。该堆栈管理最后的到达的信号。依次出现的信号的不同信号特性分别被传递给定义的堆栈。在此,属性值的最大数量已经在初始化时被设置。如果达到元素的最大数量,则首次启动对异常识别的预测,因为模型需要关于先前信号的这些信息,以便能够做出关于下一个信号的可信性的结论。此外,一旦另一个信号到达,将最早的信号的属性从不同的堆栈对象中移除并且将最新到达的信号设置到第一位置上。通过该方法确保,始终只有最后x个信号对预测有影响。示例性地,数据对于五个信号属性的时间段被存储。此外,通过实现为堆栈降低了管理耗费,因为较旧的对象在将新的信号属性添加至堆栈对象时被自动移除。在实施分析之后答复用于相应信号的结果。在此,除了所计算出的异常分数之外还传输另外的信息,如所预测的信号和实际出现的信号。然后将这些信息从那里传输给java应用(s10,“将ae的结果传输给计算中心”),该java应用将它们自动传输到bmw计算中心(s11,“将结果传输给计算中心”)。
[0068]
应用1a是java开发,其在mdr上运行并且按照所需的信号对在mdr上出现的总线信号进行过滤(s5,“过滤应用情况的总线信号”),并且然后借助为此所需的转换规则将这些二进制信号转换为正式的消息,这些正式的消息具有与模型的训练数据相同的结构(s6,“解释总线数据中的信号”)。用于异常识别的java开发包括多个不同的程序部分。已经存在在mdr上实施不同任务的以java实现的应用。为了现在能够将新的应用安装到该现有的框架中,从该已经存在的框架中启动在下面描述的应用。启动实际的异常识别应用。此外,在此还为该应用定义另外的重要的信息。一方面定义信号过滤器,该信号过滤器根据对于异常识别相关的内容检查在mdr上的所有信号。将经过滤的信号传递给实际的异常识别(s7,“将信号传输给python”)并且用于分析。此外,启动从python应用接收异常识别的结果并且然后将结果通过lte传输给bmw计算中心(s11,“将结果传输给计算中心”)的服务。中央服务协调不同的任务。在应用开始时接收配置文件,在该配置文件中定义对于异常识别重要的不同信号。在此,为每个定义的信号构建一个对象。在该对象中保存来自所传输的配置文件的不同信息。在下一个步骤中,然后借助sql-lite数据库为每个对象构建另一个对象。所述sql-lite数据库包含所谓的车载电网目录。在该车载电网目录中主要存储关于在汽车中在总线系统上可能出现的不同信号的所有信息。借助于该数据库,从各个消息中转换在其中获得的信号。在针对每个对象产生另一个对象之后,现在可以借助所存储的信息将不同的消息从中转换出来。在此,现在产生同样的信号,这些信号也可供用于训练模型。如果现在在mdr上出现总线消息,则借助针对该消息所保存的转换规则解释该总线消息并且构建另一个对象。所述另一个对象则包含对于信号的随后分析所需的所有特定信息。然后,新生成的对象借助套接字通信传输给python应用以用于异常识别(s7)。在异常识别分析不同的信号(s9)之后,借助套接字通信将各个分析的结果返回传递给java应用(s10)。再次通过java应用而不是直接从python程序实施该通信的主要原因是,mdr与计算中心之间的通信已经在java应用上实现。然后其必须再次重新针对python应用专门开发,这能够通过该方式得以避免。在此,直接从python应用调用用于接收结果的服务。为了能够保证dl模型的质量,除了实际模型之外,可供训练使用的数据的质量具有重大意义。出于这个原因,能够提供足够多且尽可能不同的训练数据用于训练模型是极其重要的。为了能够确保这一点,可以借助应用从可供使用的数据记录产生无限数量的训练数据,所述数据记录由多个机动车的实际测试行驶生成并且已经被传输到计算中心中以用于之后的分析。所存储的关于所实施的测试行驶的记录包含所有以未解释形式的消息,所述消息在行驶期间在汽车中在不同总线系统上发生。这些记录被加载并且借助车载电网目录中的信息被转换成各个信号。因此,可以从所有位于并且存储在计算中心中的测试行驶产生用于各种异常识别模型的训练数据。由此,一方面确保始终有足够的训练数据可供使用,并且另一方面确保能够将来自不同训练行驶的这些训练数据组合。
[0069]
成功的dl方法的基础首先在于数据。数据的质量对于所产生的模型的成功和准确性而言是决定性的。这也是为什么在实际使用之前应当清理所使用的数据的原因。因此,在数据能够用于异常识别之前,应当处理这些数据。这一方面用于确保在性能方面对数据的实际处理以及确保正确的结果。在此,利用可供使用的数据实施不同的用于处理的动作:
[0070]
·
选择要使用的特征
[0071]
·
处理缺失的值
[0072]
·
将特征相关联
[0073]
·
将特征缩放
[0074]
·
将数据归一化
[0075]
·
将误导的数据移除
[0076]
下面更详细地描述和阐述用于处理数据的各个步骤。在此,这些方法及其实现可能性始终特定地涉及车辆数据的异常识别的应用情况。对于整个模型来说,对分析所需的特征(所谓的“features”)的选择是决定性的。然而,这些特征也与待分析的应用情况强烈相关。在这种异常识别的情况下,可以将待观察的信号定义为特征。在此,这些特征再次借助其信号值来区分。信号和信号值的唯一组合被定义为特征。此外,整个模型与时间相关。出于这个原因,在依次出现的信号之间的时间段也可视为特征。
[0077]
待分析的数据涉及车辆中的内部车载电网通信。在此,将所有关于车辆的当前状态和该车辆所处的当前情况的信息协议化。此外记录车辆用户所发起的所有动作。由于这些信息对车辆和驾驶员具有显著影响,因此能够以大的概率确保这些信息完整地并且没有数据丢失地存在。此外,这些信号还可以包含与安全相关的信息,这又保证这些数据的相关性和其一致性。这些数据在运行时间期间在汽车中被记录并且在实施测试行驶之后在为此设置的读取部位上被读取并且在其一致性和正确性方面被检查。随后,这些经检查的数据然后被输入到数据库中并且现在准备好用于分析。通过整个过程能够确保,提供用于训练模型的数据是完整和正确的。出于这个原因,在训练模型时可以放弃清理离群值。这同样也适用于在mdr上的实际数据分析,因为其也采用与所存储的数据相同的信息源。这些数据甚至直接由车辆的总线系统拾取,而不将数据暂存在数据中心的数据存储器上。此外,mdr检查到达的信号的一致性和正确性,之后mdr释放这些信号用于进一步处理。这也是为什么在这种车辆数据的异常识别情况下可以放弃消除缺失值的原因。
[0078]
在任何dl方法中,使数据归一化是必要的。如果数据未被归一化,则具有较高定义范围的属性比具有小定义范围的特征被强烈得多地评价。这因此导致,这些特征对模型的结果的影响比较小特征更大。这些判定不允许由数据作出,而是通过评估各个模型的结果本身来查明。
[0079]
数据的归一化理解为,将全部数据映射到一个共同的数据范围中。在此,各个值例如被分别归一化到0至1的值范围中的值。通过针对每个单个的特征计算最大值与最小值之间的差,能够十分简单地实施数据值的归一化。随后,所述最小值由每个实际值增加(anziehen)并且被除以最大值与最小值的差。由此将最大值映射到值1,而最小值映射到0。所有位于它们之间的数据值现在根据其自身的值映射到0至1之间的新值。因为在分析信号时在相继出现的信号之间的时间是决定性的,所以该方法用于归一化这些时间范围。在此,不是信号的实际时间戳被归一化,而是在连续的信号之间的时间差、即在时刻n的信号与在时刻n 1的信号之间的所谓的δ时间被归一化。
[0080]
借助特征离散化将不同的特征及其值映射到较小的值范围上。由此,相邻的特征值被概括成相应特征的共同类别。该功能的主要目标在于减少连续的属性的数量。例如,如果数值特征的值范围从0延伸到100,则可以将该值范围划分为任意数量的类别。在该示例中,所述值范围可以被划分为十个大小相等的子类别。在此,现在将具有实际值13的特征值分类到与具有特征值19的类别相同的类别中。借助该方法,数据集总体上丢失精度。目的必
须是划分相应的范围,使得处于其中的值可以全部相同地解释,这意味着这些值可以作为一个值来管理。该精度损失不必强制地具有负面影响,而是也可以完全积极地影响相应的分析。一方面,通过简化数据改善预测模型的精度。该模型现在不再预测精确的值,而是仅预测所预测的值所在的范围。另一方面,使针对每个单个的特征的值范围最小化也能够缩短学习过程和实际分析的持续时间,以及简化整个模型。这种方法的目的是限定最小数量的特征范围,这些特征范围仍准确地描述现有数据并且不会由此丢失重要的信息。必须注意的是,存在的不同信号越多,则下一个信号的预测越复杂。有意义的是,能够将车辆的速度精确地预测到小数位,或者这不是如此详细地必要。在异常识别的情况下,这样的准确的预测是没有意义的并且更可能导致结果变差,因为异常识别更经常地做出错误预测。出于这个原因减少不同信号的数量。在此,将具有不同信号值的每个信号看作自身的信号。这借助离散化方法来实现。
[0081]
为了能够将基于事件的车辆数据用于所描述的异常识别模型,还可以为了分析而调整数据。车辆中的总线通信通过消息实现。各个所述消息始终相同地构造并且始终包含具有当前信号值的相同信号。然后借助异常识别模型分析各个消息的这些信号。结果是,一个消息的所有信号在一个共同的时刻出现。如果现在需要来自消息的多于一个信号来分析应用情况,则这些信号具有相同的时间戳并且出于这个原因不能按照时间顺序分析这些信号,因为两个信号的δ时间为零。
[0082]
然而,对于用于分析的模型而言,前提条件在于所述δ时间从不应该为零,因为由此不再能够根据时间呈现信号。出于这个原因,在分析一个消息的信号时,这些信号可以始终交替并且由此分析该消息的仅一个信号。例如,一个消息包括不同的四个信号。在所述四个信号中,需要四个信号用于分析应用情况,因此在该消息首次到达时分析信号一。一旦该消息再次到达,则仅分析信号二。然后在第三次到达时再次分析信号一。借助这种机制,能够实现在没有大的精度损失的情况下分析一个消息的多个信号。
[0083]
异常或离群值是与异常识别相关地使用的两种最常见的名称。异常识别的重要性在于,异常可能以数据通信的任何形式出现。在此可能涉及非常重要的信息,所述信息由于异常而不再能够正确地评估。例如,计算机网络中的异常网络通信模式可能意味着,被黑的计算机将敏感数据本身传输给未授权的目标。信用卡交易数据中的异常可以提示信用卡盗窃或身份盗窃,或者车辆传感器的异常测量值可以表示车辆部件中的故障。在数据集中的离群值或异常的识别在统计学领域中已经在19世纪被研究。从这时起,借助各种研究团体已经开发了各种用于识别异常的技术。已经专门为特定的应用领域开发和优化了这些不同方法中的许多方法。随着时间的推移,越来越多地开发用于离群值识别的通用方法。该开发通过进一步发展关于ml和人工智能(ki)的新可能性而再次显著地进步。
[0084]
异常识别的初始思想形成在车辆中的下一个信号的正确预测。在此,定义了不同的应用情况,所述应用情况描述待监控的信号。如果在一种应用情况中例如定义应当监控速度信号,则一旦在mdr上由总线系统拾取速度信号,则尝试以当前的值预测该信号。如果所预测的信号与实际存在的信号一致,则车辆的行为被归为正常。这意味着,由模型正确预测了信号及其信号值并且由此车辆处于由模型预测的状态中,该状态作为正常状态借助模型的训练数据学习得到。然而,如果预测到不同的信号,则这是如下行为的第一预兆,模型不能识别该行为并且因此将该行为归类为异常。当然,不是每个错误预测的信号都会导致
异常行为。然而,随着错误预测的发生增加,所分析的信号不再被认为是正常的。出于这个原因,应当更准确地观察在该特定时刻的整个车辆状态。因此,模型的结果提供对车辆当前情况的非常好的估计。如果增加地出现与由模型预测的信号不同的信号,则需要在该特定时刻更准确地观察车辆状态。对于模型所基于的方法的主要部件构成递归神经网络(rnn)。在此,借助“长短期记忆”(lstm)扩展该rnn,lstm在该模型中用作已经出现的信号的存储器。这些已经过去的信号以及各个信号之间的时间对于下一个信号的预测概率来说是最重要的。出于这个原因,rnn以lstm的部件被扩展。由于待分析的信号的出现在非常小的时间间隔内实现并且此外在行驶期间在车辆中在有限的硬件上实施预测,所以使用“门控循环单元”(gru)变型方案(lstm的一种简化形式),因为门控循环单元在较小的功率消耗的情况下需要类似好的结果。作为模型的其它部件使用狄利克雷模型(dir-m)来处理rnn的结果。rnn的结果形成各个信号在时间上的概率分布。dir-m用于将rnn的结果应用于要分析的信号。然后由此产生待分析的信号在当前时刻的概率分布,该概率分布具有每个单个的信号出现的概率。然后,最终从该信息量中由模型将在该时刻具有最高概率的信号作为预测的信号输出。
[0085]
为了使模型能够用于车辆中的异常识别,除了两个所描述的应用1a、1b之外,还需要在mdr上提供其它部件。这些部件之一是tensorflow。tensorflow是python专用的框架,其已知用于开发ml的dl应用的不同库和部件并且可供用于各种各样不同的部件。出于这个原因,即使在实现异常识别模型中也使用了该结构。为了也能够在mdr上实施针对相应的应用情况训练的模型,在车辆中也需要所述框架。在此要注意,对预测模型的实际训练不是在目标设备(应用稍后在车辆中在该目标设备上执行)上实施,而是所述应用的训练额外在为此提供的计算机上实施。因为模型的训练还与显著的耗费和提高的计算能力相关联,所以该训练也不在中央处理单元(cpu)上执行。出于性能技术的原因,这些计算在工作站的为其提供的gpu上实施,因为它们在此类计算中能够更强大且更快速地作用。
[0086]
在安装于车辆中的mdr上实施异常识别。在那里存在的布线系统构成与汽车中的不同总线系统的连接。通过这些连接将各个总线系统的消息传输给mdr并且进一步处理。此外,mdr通过车辆中的车载电网供应电流。此外,mdr包括天线接口,所述天线接口对于车辆中的不同部件而言是需要的。由此能够借助天线将车辆中的无线电连接布置在更好的位置上,从而能够更好地实施数据的接收以及发射功率。在此,设有用于gps模块、两个lte部件、wlan和btle连接的接口。
[0087]
目前在车辆中自动发送诊断信号。这些诊断信号通过车辆中的不同系统自动构建。它们主要用于协议化并且用于检查功能性。在此,这些信息没有涉及对安全关键性。这些信息在故障诊断时或未定义的车辆情况下是重要的并且在行驶期间持续地提供关于车辆部件的状态的重要状态报告。但它们对于顺利的行驶是不重要的并且仅在随后的评估中使用。
[0088]
借助于这种应用情况监控诊断信号的出现。如果增加地发送诊断信号,则这对车辆中的整个总线通信具有不利影响,因为这些诊断信号不包含对车辆关键的信息并且仅在评估应用时使用。由此,汽车中的总线系统被加载不必要的数据。已经发生的是,在行驶期间在车辆中的提高的总线负载导致了车辆通信的完全崩溃。由此,车辆然后不再能够向前运动并且必须被拖走。这种意外事故由于在控制器上的有错误的软件版本所引起,所述控
制器负责发送诊断信号。在测试软件时,诊断信号的这种有错误的行为没有被注意到,因为没有与之前的版本进行比较或者与正常的诊断信号行为进行比较。这一方面的原因是很少实施诊断信号的测试,因为诊断信号不包含对安全关键的信息并且实际上仅用于分析目的。此外,评估正常和异常的诊断行为是极其困难的。此外,通过不同部件的相互作用可能影响诊断行为。所使用的部件及其不同软件版本的这种相互作用大多可以首先在测试车辆中组合地测试。为了能够自动实施该过程,借助异常识别应用学习诊断信号的行为。然后,借助该学习好的模型验证车辆中的诊断行为并且在不期望的以及增加的诊断行为方面进行检查。这种应用情况的目的因此在于监控诊断信号。这些诊断信号一方面以正常次数出现并且另一方面这些诊断信号以已知的和学习到的顺序出现。
[0089]
在构建新的应用情况时,在所构建的模型可以分析车辆中的数据之前,必须实施多个动作。总共实施五个不同的步骤:
[0090]
在可以开始对信号进行实际分析之前,首先必须定义一次在这种应用情况下应当监控的信号。在此,这些信号借助总线id(busid)、框架id(frameid)和信号名称(signalname)被唯一明确地定义。这些信号的配置被存储在文件中。在启动应用时将配置文件传输给mdr中的java应用并且定义用于异常识别所需的信号。在此,由frameid、busid和signalname构成的配置对于每个信号是唯一明确的。所述配置也被用于对总线信号进行过滤。在此确保,仅定义的总线信号由mdr解释并且传递给异常识别应用。此外,对于每个新的应用情况定义一个自身的密钥。借助该密钥可以在随后的步骤中将待分析的信号与相应的应用情况关联。在此,该密钥必须唯一明确地与该应用情况相关联。
[0091]
在下一个步骤中,为待构建的模型构建训练数据。在此,从数据库中导出车辆行驶记录的所存储的二进制数据并且随后借助转换规则将其转换为消息和信号。在此,基本上实施相同的过程,该过程也在转换二进制总线信号时在mdr上由上述应用1a实施。在此,也再次仅转换对于应用情况有意义的信号。所有其它信号在构建训练数据时不被考虑并且出于这个原因也不被转换。借助从数据库导出的数据以及所存储的转换规则和定义的信号,为导出的数据构建新的文件。该文件包含对于训练数据所需的所有信号。为了能够为训练数据提供尽可能所有的车辆情况,从不同车辆的多个单个的测试行驶构建用于模型的训练数据。在此,分别选择测试行驶的不同区域并且将其整合到一个文件中。具有训练数据的该文件不仅描绘一辆具有测试行驶的车辆,而且描绘来自不同车辆的多个测试行驶的平均值。由此,不仅借助一个车辆和一个测试行驶而且通过多个不同的行驶和车辆来学习行为。
[0092]
在定义了要分析的应用情况并且产生了足够的训练数据之后,借助基本模型专门为所配置的应用情况开发模型。在此,借助为不同的模型配置所构建的训练数据来训练基本模型。模型的训练在不同的时期进行。在调整了rnn的内部权重的每个时期之后,利用对于模型未知的数据(所谓的验证数据)来评估该模型。在最大时期的所定义的数量之后,中断模型的训练。这对于不同的模型配置依次地实施。在此,首先定义不同的参数和其可能的占用(belegung)。随后,则开始超参数的实际搜索。在此,为每个参数定义一个for循环,在所述for循环中实施参数的各个占用。然后为占用的每个组合构建参数列表。该参数列表包含模型的所有参数并且然后被传输给该模型以用于实施。现在以这种配置执行模型并且返回关于模型的结果的值。然后将这些结果与所使用的模型配置一起存储在一个文件中。对于每个用于训练模型的参数占用,该文件被扩展一个数据行。
[0093]
除了结果之外,还存储在所使用的节点之间具有各个权重的所构建的模型以及关于模型和可视化的附加信息。这些数据然后可以被附加地分析。在超参数搜索结束时,所有结果连同相应的配置都存储在一个文件中。随后便可以分析该文件。在此,根据模型的结果对该文件进行分类。选择具有最佳结果的模型以及属于该模型的模型配置。在附加针对模型所存储的数据中,随后将所学习的模型利用在各个节点之间的所学习的权重移植到mdr上并且对于应用情况存储为要使用的模型。
[0094]
在借助超参数搜索找到了用于应用情况的最佳模型配置之后,现在将所构建的模型移植到mdr上。在此,除了实际的模型之外,也移植在训练模型时定义的其它信息。如果不同的信号及其值在训练期间已经被离散化,则这些信号也必须在mdr上分析时被转换成在训练期间所使用的值。这些离散化规则就像所学习的模型一样存储在具有唯一的应用情况识别码的文件夹中。每个到达的信号通过其配置与至少一个应用情况相关联。在此,利用应用情况定义模型并且产生新的模型对象。然后,借助所提供的信息加载用于应用情况的经训练的模型。除了所述模型之外,在模型分析时还加载离散化规则以及用于处理信号的其它重要信息。此外,借助这些加载的信息还定义用于模型的重要参数,这些参数需要所加载的信息。例如,以最大长度定义用于模型的已经描述的传输参数的堆栈。该长度定义模型为了预测下一个信号所使用的最大信号数量。此外,加载在两个连续的信号之间的最大以及最小时间。此外,需要这两个值来对在出现的信号之间的时间差进行归一化。由此确保,时间差的归一化在mdr上分析期间被实施到与训练模型时相同的值。如果信号从mdr传递给应用,则借助一起传输的定义应用情况的参数加载对于信号所需的模型并且将待分析的信号传递给模型以便进一步处理。在那里然后对于每个初始位置决定是否已经达到所需信号的最小数量并且是否能够实施对于新到达的信号的时间段的预测。如果尚未达到用于预测的信号的最小数量,则将相对于先前信号具有归一化的时间差的到达的信号仅添加到堆栈并且不调用预测。在用于预测模型的方法中,首先加载模型的张量对象并且随后借助当前的堆栈来填充。将这些现在填充的张量对象传输给预测模型。作为模型的结果,随后回复由模型预测的信号以及对于每个单个信号的概率。这些概率随后对于结果的分类是需要的。在完成预测之后,借助所谓的异常分数评估模型的结果。
[0095]
异常分数表明车辆的当前行为的正常或异常程度。在此,模型所分析的每个信号对异常分数具有影响。在此可设想异常分数的两种不同变型方案。
[0096]
能够作出关于车辆的当前状态的结论的最简单的变型方案是将错误预测的信号简单地相加。在此,关于特定数量的信号将错误预测的信号相加。例如,在最后100个信号中,它们中恰好有25个信号被错误预测,则该模型的当前异常分数具有值25。该变型方案同样还以时间分量的加权存在。在此,相比于恰好第一次被错误预测的信号,较不重地对已经长时间过去的信号进行加权。例如,最后100个信号再次被用于计算异常分数。在此,这些信号根据其时间变化走向被加权。例如,如果当前信号被错误预测,则这对于异常分数以权重1被一起考虑。然而,如果现在正确预测10个信号,那么该错误预测的元素的权重将不断变化。在此,其失去说服力并且在10个正确预测的信号之后对当前异常分数仅还具有90/100的加权。由此尝试更好地代表车辆的当前情况。在此避免,对如下车辆情况——在该车辆情况中模型已经正确地预测了最后50个信号、但是在这50个信号之前出现了20次错误预测——如同由模型相继错误地预测了最后20个信号那样进行评价。在没有时间加权的情况
下,车辆中的这两种然而非常不同的情况将由相同的异常分数定义。为了避免这点,添加了异常的时间加权。
[0097]
此外,除了异常分数之外,还将其它信息传输给计算中心。这些附加的信息用于进一步精确分析。在此可以估计模型预测的错误程度。如果现在预测与所存在的信号不同的信号,则这不始终等同于异常。在此,同样需要考虑以前的信号。如果模型的预测在较长的时间段上是不正确的,则给出异常行为的或异常车辆情况的概率。在这种情况下,所计算出的异常分数也具有提高的值。为了能够自动监控所计算出的异常分数,可以针对每个应用情况并且针对每个异常分数定义一个自身的极限值。由此则定义从异常分数的哪个值起车辆的行为被归为异常并且其何时还构成正常的行为。在已经处理所有以上提及的点之后,应用情况现在可以在mdr上成功地实施。在此监控所定义的信号。如果现在在这些信号中出现异常行为,那么可以借助异常分数来识别该异常行为。随后存在如下可能性,在异常数据的该特定时刻更准确地检查车辆数据并且在此确定异常行为的原因。在此,现在不再必须检查测试行驶的全部数据,而是足够的是,更准确地检查在借助异常分数找到了异常行为的时刻的数据。由此不仅节省了分析的时间,而且还降低了所需的计算能力。
[0098]
附图标记列表
[0099]1ꢀꢀꢀꢀꢀꢀ
装置
[0100]
2-5
ꢀꢀꢀꢀꢀ
部件
[0101]6ꢀꢀꢀꢀꢀꢀ
车辆总线
[0102]
10
ꢀꢀꢀꢀꢀ
车辆
[0103]
20
ꢀꢀꢀꢀꢀ
计算中心
[0104]
100
ꢀꢀꢀꢀꢀ
系统
[0105]
b、b* 运行数据(经过滤*)
[0106]
d、d* 测量数据(经过滤*)
[0107]fꢀꢀꢀꢀꢀꢀ
车辆功能
[0108]mꢀꢀꢀꢀꢀ
模型数据
[0109]vꢀꢀꢀꢀꢀꢀ
比较数据
[0110]aꢀꢀꢀꢀꢀꢀ
异常运行状态
[0111]
a1)-f) 程序步骤
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献