歡迎關注《汽車軟體技術》公眾號,回復關鍵字獲取資料。
DCM(Data Conservation Format)是一種標定數據文件格式,文件後綴是「.dcm」。
DCM在INCA等標定軟體中都有包含,比如INCA CDM中:
DCM有標準的文檔說明(公眾號回復「DCM文檔「獲取)。因為DCM使用了德語關鍵字,加上稍微複雜的格式,所以可讀性不如CVX,但數據完整性更好。DCM是我最常用的格式。
下面分別介紹其中的幾種數據類型:
注意:同類型標定數據數據可能有多個不同的關鍵字,具體看文檔。
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
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
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
在DCM中坐標軸已包含在標定量中。
使用python開發了pydcm庫(公眾號回復「DCM代碼」獲取),用於標定數據分析。大部分代碼沿用了pycvx。如果讀者有興趣,可以把兩個庫合併為一個更通用的。
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()
推薦閱讀: