Skip to Content
EV Motor Reliability์‚ฌ์šฉ์ž ๋งค๋‰ด์–ผ๋ฐ์ดํ„ฐ ์—…๋กœ๋“œ

๋ฐ์ดํ„ฐ ์—…๋กœ๋“œ

์‹œํ—˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ์Šคํ…œ์— ์—…๋กœ๋“œํ•˜๊ณ  ๋ถ„์„ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ์ „์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ง€์› ํŒŒ์ผ ํ˜•์‹

ํ˜•์‹ํ™•์žฅ์ž๋น„๊ณ 
CSV.csvUTF-8 ์ธ์ฝ”๋”ฉ, ์‰ผํ‘œ ๊ตฌ๋ถ„์ž
Excel.xlsx์ฒซ ๋ฒˆ์งธ ์‹œํŠธ๋งŒ ์ธ์‹

CSV ํŒŒ์ผ์€ ์ฒซ ํ–‰์— ์ปฌ๋Ÿผ ํ—ค๋”๋ฅผ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Excel ํŒŒ์ผ์€ ์…€ ๋ณ‘ํ•ฉ์ด ์—†๋Š” ๋‹จ์ผ ํ…Œ์ด๋ธ” ํ˜•ํƒœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๊ตฌ์กฐ

์‹œํ—˜ ๋ฐ์ดํ„ฐ๋Š” ์‹œ๊ณ„์—ด ํ˜•ํƒœ๋กœ ์•„๋ž˜ ์ปฌ๋Ÿผ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์ปฌ๋Ÿผ๋ช…๋‹จ์œ„์„ค๋ช…ํ•„์ˆ˜ ์—ฌ๋ถ€
timestamps์ธก์ • ์‹œ๊ฐ (0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ๊ณผ ์‹œ๊ฐ„)ํ•„์ˆ˜
speedrad/sํšŒ์ „์ž ๊ฐ์†๋„ํ•„์ˆ˜
current_dAd์ถ• ์ „๋ฅ˜ํ•„์ˆ˜
current_qAq์ถ• ์ „๋ฅ˜ํ•„์ˆ˜
voltage_dVd์ถ• ์ „์••์„ ํƒ
voltage_qVq์ถ• ์ „์••์„ ํƒ
torqueNยทm์ถ• ํ† ํฌํ•„์ˆ˜
temp_windingdegC๊ถŒ์„  ์˜จ๋„ํ•„์ˆ˜
temp_bearingdegC๋ฒ ์–ด๋ง ์˜จ๋„์„ ํƒ
temp_inverterdegC์ธ๋ฒ„ํ„ฐ IGBT ์ ‘ํ•ฉ ์˜จ๋„์„ ํƒ

์˜ˆ์‹œ CSV

timestamp,speed,current_d,current_q,torque,temp_winding 0.000,0.0,0.0,0.0,0.0,25.3 0.001,10.5,0.12,1.85,0.42,25.3 0.002,21.0,0.11,3.70,0.84,25.4 0.003,31.4,0.10,5.55,1.26,25.4

SI ๋‹จ์œ„ ๊ทœ์น™

๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” SI ๋‹จ์œ„๊ณ„๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

  • ์†๋„: rad/s (RPM์ด ์•„๋‹Œ rad/s๋กœ ๋ณ€ํ™˜ ํ•„์š”. 1 RPM = 2ฯ€/60 rad/s)
  • ์ „๋ฅ˜/์ „์••: A, V (ํ”ผํฌ๊ฐ’ ๊ธฐ์ค€)
  • ํ† ํฌ: Nยทm (kgfยทcm ๋“ฑ ๋น„SI ๋‹จ์œ„ ์‚ฌ์šฉ ๊ธˆ์ง€)
  • ์˜จ๋„: degC (์ ˆ๋Œ€์˜จ๋„ K๊ฐ€ ์•„๋‹Œ ์„ญ์”จ)

RPM ๋‹จ์œ„๋กœ ๊ธฐ๋ก๋œ ์†๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ์—…๋กœ๋“œ ์ „ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜, ์ „์ฒ˜๋ฆฌ ๋‹จ๊ณ„์—์„œ ์ž๋™ ๋ณ€ํ™˜์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

import numpy as np RPM_TO_RADS = 2 * np.pi / 60 speed_rads = speed_rpm * RPM_TO_RADS

์—…๋กœ๋“œ ์ ˆ์ฐจ

์›น ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์—…๋กœ๋“œ

  1. ๋Œ€์‹œ๋ณด๋“œ ์ขŒ์ธก ๋ฉ”๋‰ด์—์„œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ํƒญ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค
  2. ์ƒˆ ๋ฐ์ดํ„ฐ ์—…๋กœ๋“œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค
  3. ํŒŒ์ผ์„ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญํ•˜๊ฑฐ๋‚˜ ํŒŒ์ผ ์„ ํƒ ๋Œ€ํ™”์ƒ์ž์—์„œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค
  4. ์—…๋กœ๋“œ ํ›„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ™”๋ฉด์—์„œ ์ปฌ๋Ÿผ ๋งคํ•‘์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค
  5. ํ™•์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ „์ฒ˜๋ฆฌ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค

CLI์—์„œ ์—…๋กœ๋“œ

simulation/runner.py๋ฅผ ํ†ตํ•ด ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

cd ev-motor-reliability source venv/bin/activate python -m simulation.runner --input data/test_001.csv --validate

--validate ์˜ต์…˜์€ ์—…๋กœ๋“œ ์ „ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ปฌ๋Ÿผ ๋ˆ„๋ฝ, ๋‹จ์œ„ ๋ฒ”์œ„ ์ดˆ๊ณผ, NaN ๊ฐ’ ๋“ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์‹œ๋ฆฌ์–ผ ํฌํŠธ์—์„œ ์‹ค์‹œ๊ฐ„ ์ˆ˜์ง‘

SMC300 ๋ชจํ„ฐ์ œ์–ด ํŒจํ‚ค์ง€์™€ ์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒฝ์šฐ:

python -m automation.pipeline --mode acquire --port /dev/ttyUSB0 --baudrate 115200

์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ๋Š” data/raw/ ๋””๋ ‰ํ† ๋ฆฌ์— ํƒ€์ž„์Šคํƒฌํ”„ ๊ธฐ๋ฐ˜ ํŒŒ์ผ๋ช…์œผ๋กœ ์ž๋™ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ

์—…๋กœ๋“œ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ถ„์„ ์ „ ์ž๋™ ์ „์ฒ˜๋ฆฌ๋ฅผ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.

์ด์ƒ์น˜ ์ œ๊ฑฐ

3ฯƒ (ํ‘œ์ค€ํŽธ์ฐจ 3๋ฐฐ) ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๋ฅผ ์ด์ƒ์น˜๋กœ ํŒ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ฆฌ์  ํ•œ๊ณ„๊ฐ’๋„ ํ•จ๊ป˜ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ฆฌ๋Ÿ‰์œ ํšจ ๋ฒ”์œ„๊ทผ๊ฑฐ
์†๋„0 ~ 2,094 rad/sPMSM ์ตœ๋Œ€ 20,000 RPM ๊ธฐ์ค€
์ „๋ฅ˜-500 ~ 500 A์ธ๋ฒ„ํ„ฐ ์ •๊ฒฉ ๊ธฐ์ค€
ํ† ํฌ-200 ~ 200 Nยทm๋‹ค์ด๋‚˜๋ชจ ์ตœ๋Œ€ ํ† ํฌ ๊ธฐ์ค€
์˜จ๋„-40 ~ 200 degC์ ˆ์—ฐ ๋“ฑ๊ธ‰ H์ข… ๊ธฐ์ค€

์ด์ƒ์น˜๊ฐ€ ์ „์ฒด ๋ฐ์ดํ„ฐ์˜ 5% ์ด์ƒ์ด๋ฉด ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์„ผ์„œ ๊ณ ์žฅ์ด๋‚˜ ํ†ต์‹  ์˜ค๋ฅ˜ ๊ฐ€๋Šฅ์„ฑ์„ ์ ๊ฒ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ์ธก๊ฐ’ ๋ณด๊ฐ„

๊ฒฐ์ธก๊ฐ’(NaN)์€ ์„ ํ˜• ๋ณด๊ฐ„(Linear Interpolation)์œผ๋กœ ์ฑ„์›๋‹ˆ๋‹ค. ์—ฐ์† ๊ฒฐ์ธก์ด 10๊ฐœ ์ด์ƒ์ด๋ฉด ํ•ด๋‹น ๊ตฌ๊ฐ„์„ ์ œ์™ธํ•˜๊ณ  ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

import pandas as pd df = pd.read_csv("data/test_001.csv") df = df.interpolate(method="linear", limit=10) df = df.dropna() # ๋ณด๊ฐ„ ๋ถˆ๊ฐ€ ๊ตฌ๊ฐ„ ์ œ๊ฑฐ

๋ฆฌ์ƒ˜ํ”Œ๋ง

์ธก์ • ๊ฐ„๊ฒฉ์ด ๋ถˆ๊ท ์ผํ•œ ๊ฒฝ์šฐ, ์ง€์ •๋œ ์ƒ˜ํ”Œ๋ง ์ฃผ๊ธฐ(๊ธฐ๋ณธ๊ฐ’: 1 ms)๋กœ ๋ฆฌ์ƒ˜ํ”Œ๋งํ•ฉ๋‹ˆ๋‹ค. scipy์˜ interp1d๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ๊ฐ„์ถ•์„ ์ •๊ทœํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ „์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ ํ™•์ธ

์ „์ฒ˜๋ฆฌ ์™„๋ฃŒ ํ›„ ์š”์•ฝ ๋ฆฌํฌํŠธ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  • ์›๋ณธ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ ์ˆ˜ / ์ „์ฒ˜๋ฆฌ ํ›„ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ ์ˆ˜
  • ์ œ๊ฑฐ๋œ ์ด์ƒ์น˜ ์ˆ˜ ๋ฐ ๋น„์œจ
  • ๋ณด๊ฐ„๋œ ๊ฒฐ์ธก๊ฐ’ ์ˆ˜
  • ๊ฐ ์ปฌ๋Ÿผ์˜ ์ตœ์†Œ/์ตœ๋Œ€/ํ‰๊ท /ํ‘œ์ค€ํŽธ์ฐจ

๋‹ค์Œ ๋‹จ๊ณ„

๋ฐ์ดํ„ฐ ์—…๋กœ๋“œ์™€ ์ „์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋ถ„์„ ์‹คํ–‰์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.