65.9K
CodeProject 正在变化。 阅读更多。
Home

用于汽车碰撞数据事故分析的软件工具

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.78/5 (5投票s)

2019年3月15日

CPOL

13分钟阅读

viewsIcon

6847

downloadIcon

564

本文介绍了一款软件应用程序,该程序可用于碰撞测试数据的分析,自动生成损伤标准图表,并生成报告。

图 1 - ICalc GUI

引言

名为 ICalc 的软件能够分析汽车碰撞测试数据,但与商业软件不同的是,它能够自动生成图表,并从碰撞测试假人传感器应用损伤标准,同时生成报告。整套碰撞测试数据可以在几分钟内生成包含损伤标准的图表和工程报告。标准计算和算法基于美国汽车工程师协会 (SAE) 的 J1727 和 J211-1出版物。国家公路交通安全管理局 (NHTSA) 的损伤评估参考值 (IARV) 标准和其他 IARV 标准可以方便地从菜单中选择,并自动应用于相应的碰撞测试假人传感器通道。传感器通道识别基于 ISO 代码(国际标准化组织 - 13499 B 附录出版物),该出版物规定了一种十六字符的命名代码。标准计算,如持续时间曲线、合量、持续时间片段、头部和颈部损伤标准等,都包含在内,以便于图表生成和分析。该软件使用 C# 语言编写,针对 Microsoft .NET® 4.0 框架,下载内容包含 Microsoft Visual Studio® 2010 的完整项目。报告生成功能已实现并通过 Microsoft Word® 2013 测试。用于 H5 文件访问的库也已提供,感谢 HDF Group (HDF5 库 - 版本 HDF5DotNet-Net4.0-x86_64,日期为 2016/7/8)。Butterworth 滤波器已从 Sam Van Wassenbergh(安特卫普大学)编写的 Microsoft Visual Basic For Applications 版本转换为 C#(参见文章:C# 中的 Butterworth 滤波器)。快速傅里叶变换 (FFT) 代码由 Microsoft Developer Network 提供(参见 FFTLibrary)。该软件还包含一个详细的用户手册 (ICalcHelp.chm),其中解释了每个菜单功能,并附有目录和索引。

软件概述

ICalc 可以读取碰撞测试常用的数据采集软件导出的数据文件(各种类型的 CSV、TSV、UNF 和 H5 文件)。有多种选项可以将数据或图表保存为标准格式,或者通过剪贴板(复制和粘贴)到其他应用程序。它会自动进行数据归零(偏差校正)、转换为 SI(国际单位制)单位,并为通道类型应用标准的通道频率类别 (CFC) 滤波器。滤波可以采用四阶零相位偏移 Butterworth 低通滤波器,或基于快速傅里叶变换 (FFT) 的滤波器。

提供了用于反转和缩放数据、积分加速度计数据以获得速度和位移,以及微分位移和速度数据的函数。可以计算相对数据通道差异,以及相对速度和位移。还提供了各种其他类型的数据函数,例如:单位转换、变异系数计算,以及通过 FFT 将数据转换为频域。

打开数据文件时,所有通道都会被读取并列在应用程序窗口的左侧窗格中(参见图 1)。可以同时打开多个数据文件,以直接比较多个碰撞测试的图表。由于可能遇到大型数据集,内存的节约方式是仅在需要时将数据加载到内存中。左侧窗格中列出的传感器通道可以通过鼠标左键单击进行选择,也可以通过通常的 Windows Ctrl+单击或 Shift+单击功能选择多个通道,或者通过单击根文件名(或 Ctrl+A)选择所有通道。将光标悬停在文件名或通道名称上会显示一个工具提示,其中包含有关文件或传感器通道的更详细信息(例如,ISO 代码、描述、碰撞测试假人类型、数据单位、数据点数量、采样频率、时间范围、相关的 IARV 等)。

应用程序的右侧窗格是一个选项卡控件,将使用 MSChart 控件显示图表(有关更多信息,请参见文章:用于绘制线序列的 MSChart 类)。每添加一个图表,就会为其添加一个新的选项卡,以便用户可以选择一个选项卡进行查看。可以选择一次一个通道进行绘图,或者选择多个通道进行比较绘图。也可以同时加载来自多个文件的通道,从而允许选择不同测试的通道一起绘图进行比较。默认情况下,将绘制传感器通道的完整时间范围,或者可以调整时间范围以聚焦于更窄的感兴趣范围,或者可以交互式缩放图表(单击+拖动)。图表上会显示数据的最小值和最大值,以及 IARV 信息。有选项可以编辑图表标题、轴、颜色等。图表可以打印、保存为图像文件或数据文件,或者作为图像或数据复制/粘贴到另一个应用程序(例如 Excel、Word)。

某些测试包含一个以上的碰撞测试假人,并且可能还有许多其他测试设备传感器(例如,底盘加速度计、座椅加速度计等)。数据采集软件通常按照通道找到或初始化的顺序导出数据通道,因此通道可能不会按顺序从数据文件中读取。ICalc 提供排序操作,以便更容易查找和选择通道。通道可以按 ISO 代码或描述名称列出,并按解剖学顺序(头部到脚部)、按传感器类型(加速度计、力传感器、力矩传感器等)和轴(x、y、z)进行排序。除了两位字符的碰撞测试假人类型 ISO 代码(位置 11-12,例如 H3)之外,特定的碰撞测试假人(例如驾驶员、乘客)有时也可以通过 ISO 代码中的前两个字符来识别,因此排序选项也可以区分这些,以便将它们单独列出。也可以关闭排序,以便通道按照它们在数据文件中找到的顺序列出,以便必须直接与数据文件进行比较。

通道识别和 IARV

由于 ICalc 自动执行许多类型的操作,因此准确识别传感器通道类型以应用适当的操作非常重要。如上所述,识别基于 ISO 13499 B 附录出版物,该出版物规定了一种十六字符的命名代码。如果提供了 ISO 代码,则会从数据文件中读取,但如果 ISO 代码的一部分缺失(即“0”),软件将尝试根据文件中找到的通道信息生成缺失的代码。还有手动编辑 ISO 代码的选项。

IARV 从一个特殊格式的文本文件中读取,以便软件可以根据碰撞测试假人类型、解剖区域(头部、颈部等)、传感器类型(加速度计、力、力矩等)和轴(x、y、z、径向等)快速搜索并应用适当的值,这些信息都包含在通道的 ISO 代码中。因此,IARV 文件中的信息决定了如何根据特定传感器通道的 ISO 代码将其 IARV 应用于数据。由于存在各种 IARV 标准(例如,正面碰撞、翻滚等)和众多碰撞测试假人类型,IARV 菜单会在运行时通过读取 IARV 文件中的菜单指令动态加载,用户可以根据自己感兴趣的碰撞测试类型和 IARV 标准定制 IARV 文件。由于 IARV 存储在外部文件中,因此可以对文件进行更改,而无需重新编译软件。

由于 IARV 是按通道类型指定的,因此 IARV 文件指定了哪个 IARV 要与某个通道匹配,匹配是基于 ISO 代码进行的。ISO 代码中的零(“0”)被视为匹配该代码位置的任何字符。具有关联 IARV 的通道在应用程序的左侧窗格中以红色字体列出,以便于识别(参见图 1)。如前所述,可以从菜单中选择 IARV 标准,如果选择了不同的 IARV 标准,将再次搜索 IARV,并自动更新通道列表。

图 2 - IARV 文件的一部分,显示 NHTSA IARV

由于 IARV 与通道相关联,当选择一个或一组通道进行绘图时,相关的 IARV 可以自动绘制。也可以自动绘制多通道 IARV。例如,头部损伤标准 (HIC) SAE 标准计算要求计算三个特定 x、y 和 z 头部加速度计通道的合量,并且软件能够选择合适的通道,计算合量,并自动生成图表。另一个例子是 SAE 标准颈部损伤计算 (Nij),它需要三个特定的颈部通道;两个力通道 (FOX, FOZ) 和一个力矩通道 (MOY),并且这三个通道都需要在相同的 CFC 下进行滤波以进行此计算(NHTSA 还区分了上颈部和下颈部的不同 Nij IARV)。Nij 应用的 CFC 滤波器可能是一个错误点,因为两个力通道通常在 CFC 1000 下滤波,而力矩通道在 CFC 600 下滤波,但 SAE Nij 规范要求所有三个通道在相同的 CFC(NHTSA 为 600)下滤波。因此,例如,如果力通道已在 CFC 1000 下滤波,则需要将它们重新滤波到 CFC 600 以进行 Nij 计算。该软件会自动处理通道选择、滤波和绘图。

脚本

除了交互式使用外,该软件还包含一些“脚本”,用于自动生成一系列计算和图表。脚本会处理选择,而不是交互式地选择每个传感器通道或一组通道进行计算和绘图。这种能力源于 Graph 函数处理所有决策以确定从所选通道生成哪些图表的方式。由于每个通道的数据结构都包含 IARV 信息,Graph 函数会解释 IARV 是否是可以仅用当前通道数据单独绘制的类型,还是需要其他通道(例如,HIC、Nij、合量片段)。如果绘图前需要其他通道,那么它会确定通道数据必须临时存储,并且操作延迟,直到访问到其他需要的通道。Graph 函数通过一个外部循环(遍历每个选定的通道)和一个内部循环(遍历通道的每个 IARV)来处理此问题。

目前,ICalc 提供四种类型的脚本:一种是“完整报告”类型,它单独绘制所有选定的通道;先不带 IARV,然后带 IARV;第二种脚本仅绘制 IARV;第三种绘制不带 IARV 的通道;第四种脚本将一组通道绘制在同一张图上进行比较。分组脚本根据用户选择的 ISO 代码模式选择要一起绘制的通道。具有与模式“匹配”的 ISO 代码的通道将被一起绘制。这对于自动生成大量比较图很有用。目前,脚本“硬编码”在应用程序中作为菜单选项(非用户定义)。

脚本仅在用户选择的通道上运行。因此,用户可以选择与特定假人相关的全部通道的子集,或者仅操作某些底盘/座椅通道等,脚本将仅作用于这些通道。这使得脚本的使用更加灵活。Graph 函数不需要为脚本选择的通道(而不是用户交互选择的通道)进行单独处理。它以与用户通道选择相同的方式处理脚本的通道选择。但是,脚本必须为该脚本生成适当类型的图表。因此,如果选择了一组不相关的通道(例如,用户选择所有通道),脚本必须决定一次选择哪些通道,然后在将控制权交给 Graph 函数之前,以便为该脚本类型生成所需的图表。它通过临时存储用户选择的通道列表,然后遍历列表以确定哪些应该一起绘制,哪些应该单独绘制,组合一个通道子组,然后将子组传递给 Graph 函数来实现此目的。

IARV 表格和柱状图

每当绘制 IARV 时,都会生成一个表格和柱状图,显示 IARV 摘要信息。表格列出了已绘制 IARV 的每个通道,并显示 IARV 百分比以及发生最大/最小值的时间(或持续时间)(取决于 IARV 是正还是负)。IARV 百分比列(%IARV)如果大于或等于 100% IARV,则为红色;如果小于 100% 但大于或等于 75%,则为黄色;如果小于 75%,则为绿色。IARV 表格的示例显示在图 3 中。图 4 显示的 IARV 柱状图以图形格式显示了大部分相同信息。表格中的条形图颜色相同,以指示达到的 IARV 百分比。表格和柱状图会在绘制 IARV 时自动生成。随着生成更多包含 IARV 的图表,IARV 信息会被添加到表格和柱状图中。

图 3 - IARV 表格

图 4 - 摘要 IARV 柱状图

报告和模板

一个典型的碰撞测试假人有六十五个传感器,可能需要大约七十页来记录到一个完整风格的报告中(非 IARV 图表和 IARV 图表 - 每页两个图表)。包含多个碰撞测试假人的测试可以成比例地增加页数。ICalc 的报告制作功能将自动生成一份测试报告,包含会话中制作的所有图表、IARV 摘要表和 IARV 摘要柱状图。这些会被自动复制并格式化到 Microsoft Word® 文档中,可以保存为 docx、xps 或 Adobe PDF 文件类型(如果 Word 版本支持)。

报告样式可以设计到 Microsoft Word® 模板文件中。启动时,ICalc 会在其启动文件夹中查找 Word® 模板(*.dotx)文件,并动态生成报告菜单,列出找到的模板名称。如果未找到模板文件,则会显示默认报告样式菜单选项。模板对于自定义报告的外观很有用,例如,可以在页眉中放置设计或徽标,并且文本字段可以通过使用“书签”(参见文章:使用模板书签自动生成 Microsoft Word 报告)进行格式化和定位。书签可以放置在模板中,以标记需要用户输入的位置(例如,温度、湿度、客户、测试工程师等)。当选择一个菜单选项(模板)时,软件会读取模板文件查找书签。如果找到书签,则会打开一个对话框,其中包含每个书签的文本框供用户输入(参见文章:多用途消息对话框)。当书签设计到模板中时,必须命名它们,ICalc 会使用名称作为用户提示的文本框标签。然后使用选定的模板文件和用户为每个书签输入的文本打开 Microsoft Word® 应用程序,并将文本插入到书签位置。所有当前图表都将复制到报告中,包括 IARV 表格和 IARV 柱状图。

Using the Code

上述文章链接中已详细记录了一些值得注意的类和方法。提供了一个可执行文件集供下载,以及完整的 Visual Studio® 项目和一个示例 CSV 数据文件。源代码在各个地方都有很好的注释。下载中还包含一个详细的用户手册(参见 ICalcHelp.chm),其中解释了每个菜单功能,并附有目录和索引。

结论

总之,ICalc 应用程序现已提供下载,它为碰撞测试数据分析和绘图提供了许多功能,并实现了许多功能的自动化。该软件目前可以计算该工作所需的大部分 IARV 类型,但并非 SAE 指定的所有 IARV。如果兴趣足够,可能会提供更新。

© . All rights reserved.