歡迎關注《汽車軟體技術》公眾號,回復關鍵字獲取資料。

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()

推薦閱讀:

相關文章