CompactRIO를 이용한 EPS용 반력 시뮬레이터 개발
저자: 김응수 선임연구원
소속: Korea Delphi Automotive Corporation
제공: 한국내쇼날인스트루먼트
어플리케이션 요약
본 어플리케이션은 차량용 EPS(Electronics Power Steering)를 개발하기 위한 Lab Level의 차량주행 구동조건을 구현하는 반발력 시뮬레이터 시스템의 개발이다. 즉 차량 주행 시 Steering Column에 전달되는 노면과 타이어의 마찰력을 유압 시스템을 이용하여 구현하고자 함이다. 노면과 타이어의 마찰 등으로 발생되는 반발력에 대한 Data는 Vehicle Level 실 주행 실험에서 추출해 냈으며, 텍스트 기반의 2D Map Data로써 차량의 속도 및 Steering Angle 조건입력 등을 바탕으로 2D Map Data로부터 값을 추출하여 반력 유압시스템을 다이나믹하게 제어하여 차량의 주행 시 Steering에 전달되는 반발력을 구현했다. 이를 통해 Vehicle Level의 테스트 이전에 안전하고 충분한 EPS개발 테스트와 디버깅을 할 수 있는 환경을 구축했다.
NI 솔루션이 채택된 이유
·Time Critical한 시스템의 특성상 FPGA를 통한 고속 데이터수집 및 프로세싱 필요
·정밀한 Digital 및 Analog Control Signal의 출력 필요
·차량주행조건에 맞는 Dynamic Control 실시간 제공 필요
·Vehicle Level에서 만들어진 반발력 Torque Map Data의 빠른 Mapping 필요
·LabVIEW를 이용하여 소프트웨어 개발 기간 단축 필요
·강력한 함수 라이브러리를 이용한 알고리즘 구현의 용이성
·PC제어 없는 임베디드 시스템의 구축 필요
NI 제품명
LabVIEW 2010, LabVIEW FPGA Module, LabVIEW Real-Time Module, NI 9116, CompactRIO-9024, NI 9215 2Set, NI 9853 1Set, NI 9269 1Set, NI 9474 1Set
해결 과제
차량의 주행 시 발생되는 Steering 반발력의 구현은 차량의 속도와 Steering Angle 및 도로의 상태에 따라 매우 다이나믹하며, 높은 응답성을 요구한다. 따라서 이러한 반발력을 생성하는 요소들에 대한 반응 시간이 가장 중요한 이슈가 됐다. 즉 차량속도, Steering Angle, Steering Angle Acceleration등의 입력을 바탕으로 Vehicle Level에서 취득한 반발력 Torque Map Data(텍스트 데이터 기반) 중 해당 조건에 대한 반발력 Data를 매칭하여 해당 값을 유압시스템에 출력함으로써 최종 반발력을 구현하는 것이다. 이에 각종 센서로 부터 Data취득과 취득된 Data를 이용한 연산 및 Map Data Matching을 거쳐 출력까지의 일련의 동작을 실시간 및 높은 신뢰성과 빠른 응답으로 처리하는 시스템 로직 설계가 필요했다.
솔루션
NI LabVIEW2010과 CompactRIO를 사용했다. 이에 섀시는 8슬롯으로 모듈확장이 용이하며, Logic 구현에 충분한 Resource와 높은 응답성을 제공하는 자일링스사의 Vertex-5 LX85가 내장된 NI-9116을 적용하였고, RT 컨트롤러는 신뢰성이 높은 Real-Time OS(VxWorks)가 탑재된 NI CompactRIO-9024를 사용했다. NI CompactRIO-9024는 4GB의 저장소와 512MB DRAM을 탑재하고 있어 방대한 양의 데이터수집 및 Logging과 함께 800MHz의 CPU를 장착하여 빠른 데이터 처리가 가능했다.
또한 2개의 이더넷 포트와 1개의 RS-232로 외부장치와 인터페이스가 용이하였으며, 1개의 USB 포트를 제공하여 외부 메모리 접근의 확장성이 높았다. I/O 모듈 구성 중 4 Channel Analog input 모듈인 NI 9215 2개를 장착하여 총 8개의 아날로그 센서 시그널을 처리했으며, 2개 포트의 CAN 통신을 지원하는 NI 9853을 통해서, 개발 중인 EPS ECU와의 CAN 통신 신호를 처리했다. NI 9474는 8개의 디지털 출력을 내는 모듈로서 차량의 속도를 PWM으로 구현하여 EPS ECU에 송신함으로 가상의 차량속도를 만들어 처리하는 기능을 했다.
또한 채널 간 Isolation이 된 NI9269를 통해 채널 간 간섭 없이 정밀한 아날로그 출력을 유압시스템에 인가했다. 상기 CompactRIO구성은 다이나믹하고 다양한 차량의 센서 시그널의 처리와 함께 차량용 통신신호인 CAN 시그널처리 및 정밀한 디지털/아날로그 출력을 컨트롤 할 수 있었으며 FPGA와 RT-OS를 통해 빠르고 신뢰성 높은 차량용 시뮬레이터 시스템을 구현할 수 있는 최적의 솔루션이었다.
본론
1. 전체 시스템 구성
그림1과 같이 타깃인 EPS ECU로부터 입력된 8개의 Sensor 신호(NI9215) 및 CAN Data(NI9853)는 FPGA Field에서 수집(주기:100[μs])이 되며 차량의 속도(NI9269)는 PWM(0Km/h~250Km/h: 1.41Hz~353Hz, Duty ratio 50%)으로 생성하여 EPS ECU에 전달한다.
수집된 Data는 FIFO를 통해 RT Target(cRIO-9024)에서 데이터 분석 및 데이터 프로세싱 로직을 거쳐 유효 값으로 변환 후 RT Target Flash에 미리 저장된 반발력 Map Data를 기준으로 Mapping 알고리즘을 적용해 최종 제어 값을 Map Data상에서 추출 및 FPGA의 아날로그 발생 알고리즘에 입력하게 된다. 이에 NI 9269 모듈은 ±10[V]의 범위로 유압 액추에이터에 제어신호를 전달하게 된다.
입력된 센서 신호 및 최종 유압시스템 제어 값은 유압 시스템의 제어에 사용됨과 동시에 Queue에 저장 후 TCP/IP 통신으로 Host PC에 보내지며 Host PC는 반발력 시뮬레이터의 동작과 상태를 모니터링 할 수 있도록 구성된다. 또한 사용자의 선택에 의해 몇몇의 제어신호를 다이나믹 제어와 동시에 제어할 수 있도록 구성되어 있다.
그림1. System Configuration
2. FPGA Field (NI-9116)
그림 2는 FPGA 소프트웨어의 블록 다이아그램을 나타내며 Sensor의 입력을 처리하는 Sensor Input Process Routine과 CAN 통신을 처리하는 CAN Message Process Routine을 볼 수 있다. 출력을 담당하는 EPS Reaction Output Routine과 PWM Generator Routine은 각각 유압 Actuator 제어 및 차량속도를 PWM으로 출력하는 기능을 수행한다.
그림2. FPGA Software Block Diagram
3. RT-OS Field (cRIO-9024)
그림3은 RT-OS에 구현된 소프트웨어의 블록 다이아그램을 나타내며 FPGA로부터 Acquisition된 Data를 처리하고 출력 Data를 저장된 Database로 부터 추출하여 결정 값을 다시 FPGA로 보내며 Host PC로의 각 Data를 TCP/IP로 보내는 기능을 수행한다.
이에 가장 핵심이 되는 부분은 그림4에서와 같이 저장된 Map Data를 센서로 부터 입력된 값을 기준으로 추출하기 위한 알고리즘이다. Map Data를 입력 값 기준으로 잘라 최소화 한 후 Linearity를 부여하기 위해 Interpolation한 후 값을 추출했다.
그림3. RT Software Block Diagram
그림4. 2D Data Interpolation Block Diagram
4. Host PC
그림5는 Host PC의 Main 화면이며 주로 EPS 시뮬레이터 및 각종 센서의 상태 값을 모니터링하는 것이 주 목적이다 이에 대부분의 Data는 그래프에 누적 Data로 디스플레이 되며 중요한 요소는 따로 디스플레이 하도록 구성되어 있으며, Low Data를 텍스트기반의 Data로 모니터링 하기 위하여 Tab Control을 사용해 구성하였다.
그림5. Host PC Front Panel
결론 및 솔루션 개발 후 얻게 된 이점
4개월이라는 촉박한 개발 목표 기간을 고려하였을 때 본 어플리케이션은 2개월 만에 완료가 되었으므로, 상당한 시간적 절약 효과를 나타내었다. 또한, 긴 시간과 노하우가 필요한 FPGA의 프로그램의 경우 LabVIEW 코딩만으로 기능 구현 및 디버깅이 가능하였고, FPGA의 로직 구현으로 인해 빠른 데이터의 수집이 가능했다.
검증된 OS(VxWorks)를 사용한 RT-OS의 높은 안정성으로 신뢰도 높은 데이터 처리가 보증되었으며, 이를 바탕으로 Target Control 전체 Loop Time이 50[ms]로 제어 Target인 유압 Actuator의 응답성 보다 높은 응답성을 나타냄으로써 시스템의 제어효과를 높였다. 소프트웨어 개발완료 후에는 CompactRIO에 소프트웨어를 임베디드함으로써 PC의 제어 없이 Stand alone operation이 가능하여 반력 시뮬레이터의 제어가 훨씬 원활해졌으며, Vehicle Level 반력 Torque Map Data의 경우 다양한 주행조건의 Data를 CompactRIO-9024 Storage에 지속적으로 업데이트 할 수 있어 더욱 다양한 Lab Level의 시뮬레이션 환경을 제공하게 되었다.
또한 섀시 슬롯의 확장성이 용이하여 모듈의 추가로만 차량의 각종 조건을 추가적으로 I/O할 수 있어 한번의 CompactRIO System 구축을 통해 추후 발생되는 요청사항의 대응이 비용의 부담 없이 용이하게 이뤄질 수 있었다. 소프트웨어 제어 알고리즘구현 관점에서는 기본적인 알고리즘 및 함수들이 제공되어 이를 단순 조합 또는 간단한 변수 변경만으로도 복잡한 알고리즘을 쉽게 만들어, 기능을 빠르고 정확하게 구현할 수 있었다는 것이 LabVIEW와 CompactRIO 솔루션의 강력한 장점으로 사료된다.
그림6. Compact RIO