엔지니어링 · 2024

타이어 로드 노이즈 예측 프로그램

측정 데이터로 차량 실내 소음을 미리 확인하는 데스크톱 프로그램

바퀴별 측정 데이터와 차량 데이터를 불러와 실내 소음 스펙트럼을 계산하고, 기준 데이터와 겹쳐 비교한 뒤 결과를 파일로 내보내는 Windows 데스크톱 프로그램입니다.

고객
비공개 고객
분야
엔지니어링
계산된 실내 소음 스펙트럼과 구간별 요약값을 표시한 화면

개요

로드 노이즈는 주행 중 노면에서 올라온 진동이 차량 실내에서 소음으로 들리는 현상입니다. 이 소음의 크기는 타이어만으로 정해지지 않고 어떤 차량에 장착되는지에 따라 달라지기 때문에, 평가하려면 타이어 쪽 측정 데이터와 차량 쪽 데이터를 함께 다뤄야 합니다.

이 프로그램은 두 데이터를 한자리에서 불러와 실내 소음 스펙트럼을 계산해 보여 줍니다. 측정 파일을 지정하고 프로그램에 보관된 차량 데이터 중 하나를 고르면, 그 조합에서 예상되는 결과가 그래프로 나타납니다.

Windows용 데스크톱 프로그램이며, 측정 데이터 확인, 차량 데이터 관리, 계산의 세 화면으로 구성되어 있습니다.

과제

한 번 확인하려면 여러 파일을 짝지어 열고 형식을 맞춰 정리한 뒤 결과를 따로 옮겨 적어야 했습니다.

  • 측정 파일이 바퀴 위치별로 나뉘어 있어 어느 파일이 어느 자리인지 매번 확인해야 합니다
  • 차량 데이터는 종류에 따라 파일 구성이 달라집니다
  • 파일마다 데이터의 범위와 간격이 달라 그대로 합칠 수 없습니다
  • 비교 대상이 늘어날수록 손이 많이 가고, 어떤 차량 데이터를 썼는지 나중에 되짚기 어렵습니다

해결 방법

파일을 지정하는 것부터 결과를 저장하는 것까지를 하나의 프로그램 안에 넣었습니다.

측정 데이터 화면

차량 그림 위의 바퀴 자리에 파일을 끌어다 놓거나 선택해 불러옵니다. 가운데 연결 아이콘을 켜면 앞바퀴에 지정한 파일이 뒷바퀴에도 적용되어, 네 짝이 같은 경우 파일을 두 개만 지정하면 됩니다. 불러온 데이터는 축별 그래프로 표시되고, 화면 위쪽에서 바퀴 자리를 바꾸면 해당 위치의 그래프로 전환됩니다.

바퀴별 측정 파일을 불러와 축별 그래프를 확인하는 화면
측정 데이터 화면

차량 데이터 화면

차량 조건의 조합으로 데이터를 분류해 보관합니다. 파일을 지정해 새 항목을 등록하면 하나의 묶음으로 저장되고, 목록에서 고르면 바퀴 위치별 그래프를 바로 확인할 수 있습니다. 확인할 좌석 위치는 버튼으로 전환합니다. 목록에서 필요 없는 항목을 지울 수도 있습니다.

차량 조건별로 분류된 데이터 목록과 바퀴 위치별 그래프
차량 데이터 화면

계산 화면

선택한 항목이 맞는지 확인한 뒤 계산을 실행하면 실내 소음 스펙트럼이 그려집니다. 구간별 요약값이 함께 표시되며, 구간 경계는 그래프를 좌클릭·우클릭해 옮길 수 있습니다. 그래프의 표시 범위와 보정값도 화면에서 조정합니다.

계산된 실내 소음 스펙트럼과 구간별 요약값
계산 화면

기준으로 삼을 측정 결과를 불러오면 같은 축에 겹쳐 그려 비교할 수 있고, 결과는 CSV 파일로 저장됩니다.

계산 결과 위에 기준 측정 결과를 겹쳐 그린 화면
기준 데이터와의 비교

시스템 구조

  • wxPython으로 만든 단일 실행 데스크톱 프로그램. 좌측 아이콘 메뉴로 세 화면을 전환합니다
  • 그래프는 matplotlib 캔버스를 창에 직접 올려 그리며, 마우스 조작을 그래프에서 바로 받습니다
  • 차량 데이터는 프로그램 폴더의 파일 하나에 보관합니다. 서버도 별도 설치 과정도 필요하지 않습니다
  • 데이터 묶음은 그대로 직렬화해 저장하고 읽을 때 복원합니다
  • 시작할 때 보관 파일의 존재와 구조를 검사하고, 파일이 없으면 새로 만듭니다

구현

입력 검사

파일을 고르는 시점에 형식과 구조를 확인하고, 맞지 않으면 어느 파일의 무엇이 문제인지 메시지로 알립니다. 계산을 누른 뒤에도 필요한 항목이 모두 채워졌는지 확인해, 빠진 항목을 지목합니다.

긴 작업의 진행 표시

파일을 읽고 계산하는 동안 진행 창을 띄워 프로그램이 멈춘 것처럼 보이지 않게 했습니다. 처리가 끝나면 완료 안내가 나타납니다.

보관 항목 관리

차량 데이터는 목록에서 추가하고 삭제합니다. 같은 조건에 같은 이름이 이미 있으면 등록을 막아 중복을 방지합니다.

결과 내보내기

결과를 CSV로 저장할 때 그래프에 보이는 값뿐 아니라 계산에 쓰인 차량 데이터 값도 함께 기록합니다. 결과 파일만 열어도 어떤 조건으로 계산했는지 확인할 수 있습니다.

결과

측정 파일을 지정하는 것만으로 실내 소음 예측 결과를 화면에서 확인할 수 있게 되었습니다. 차량 데이터가 프로그램 안에 쌓이므로, 같은 측정 데이터를 여러 차량 조건에 대입하거나 여러 측정 결과를 같은 조건에서 비교하는 작업이 한 화면에서 이루어집니다.

파일을 짝지어 열고 형식을 맞춰 정리하던 작업이 프로그램 안으로 들어오면서, 같은 입력에는 같은 절차가 적용됩니다. 기준 데이터를 겹쳐 보는 기능으로 계산 결과가 실제 측정과 얼마나 맞는지도 그 자리에서 확인할 수 있습니다.

사용 기술

  • Python
  • wxPython
  • NumPy
  • SciPy
  • pandas
  • matplotlib
  • SQLite

화면

진행하려는 프로젝트가 있으신가요?

해결하려는 문제와 지금 상황을 알려 주시면, 어떤 방식이 맞을지 함께 검토합니다.

프로젝트 문의하기