欢迎关注《汽车软体技术》公众号,回复关键字获取资料。

1. DCM介绍

DCM(Data Conservation Format)是一种标定数据文件格式,文件后缀是「.dcm」。

DCM在INCA等标定软体中都有包含,比如INCA CDM中:

2. 数据格式

DCM有标准的文档说明(公众号回复「DCM文档「获取)。因为DCM使用了德语关键字,加上稍微复杂的格式,所以可读性不如CVX,但数据完整性更好。DCM是我最常用的格式。

下面分别介绍其中的几种数据类型:

注意:同类型标定数据数据可能有多个不同的关键字,具体看文档。

2.1 标量 VALUE

VALUE占据5行,常用关键字「FESTWERT」。如下所示,标定量=DEMO_CONSTANT_1,描述=「This is a standard constant value (fixed value).」,单位=「dec」,值=1.57。

FESTWERT DEMO_CONSTANT_1
LANGNAME "This is a standard constant value (fixed value)."
EINHEIT_W "dec"
WERT 70.0000000000000000
END

2.2 曲线 CURVE

CURVE占据多行,常用关键字「KENNLINIE」。如下所示,标定量=DEMO_CURVE,维度=7,描述=「This is a standard curve: one input and one output.」,x轴单位=「revs」,数值轴单位=「」。后面分别跟随x轴值和数值。

KENNLINIE DEMO_CURVE 7
LANGNAME "This is a standard curve: one input and one output."
EINHEIT_X "revs"
EINHEIT_W ""
ST/X ...
WERT ...
END

2.3 图表 MAP

MAP占据多行,常用关键字「KENNFELD」。如下所示,标定量=DEMO_MAP_1,维度=16x6。

KENNFELD DEMO_MAP_1 16 6
LANGNAME "This is a standard map - to be displayed in tabular, 3D, XW, WX, ... representation."
EINHEIT_X "revs"
EINHEIT_Y "ms/rev."
EINHEIT_W "degrees"
ST/X ...
ST/Y ...
WERT ...
END

2.4 坐标轴 AXIS

在DCM中坐标轴已包含在标定量中。

3. 数据分析

使用python开发了pydcm库(公众号回复「DCM代码」获取),用于标定数据分析。大部分代码沿用了pycvx。如果读者有兴趣,可以把两个库合并为一个更通用的。

  • 面向对象的程序结构:根据对象属性,创建类结构。
  • 标定数据的可视化:使用matplotlib绘图。
  • 正则表达式:高效率的文本处理。

from pydcm import dcminfo

dcm = dcminfo()
dcm.read("../data/DEMO.DCM")
# find functions:0, calibrations:5, axises:0

DEMO_CURVE = dcm.calibrations["DEMO_CURVE"]
print(DEMO_CURVE)
# name=DEMO_CURVE, description=This is a standard curve: one input and one output.
# line_start=35, line_end=43
# type=CURVE, unit=
# value=
# [0.30078125, 0.3984375, 0.5, 0.59765625, 0.69921875, 0.80078125, 0.8984375]
# axis x
# name=, description=
# line_start=0, line_end=0
# type=, unit=revs
# value=
# [120.0, 200.0, 320.0, 400.0, 520.0, 600.0, 720.0]

DEMO_MAP_2 = dcm.getcalobject("calibration", "DEMO_MAP_2")
DEMO_MAP_2.show()

推荐阅读:

相关文章