Daimler - Mercedes-Benz 트럭의 크루즈 컨트롤러 설계 사례

"모델링과 코드 생성을 위한 MathWorks 툴을 활용하여 우리는 설계와 테스트 반복을 신속하고 원활히 수행하고 18개월이라는 엄격한 기한 내에 제품을 출시할 수 있었습니다."

과제

타겟 ECU에서 모듈형 크루즈 컨트롤 소프트웨어 생성 및 구현

솔루션

모델 기반 설계를 위한 MathWorks 툴로 ECU에서 소프트웨어를 설계하고 테스트하고 구현하여 크루즈 컨트롤 시스템 재설계

결과

  • 간소하고 효율적인 코드
  • 높은 테스트 효율성
  • 빠른 개발
Mercedes-Benz 트럭.

CC(크루즈 컨트롤)는 차량의 속도 제어를 자동화하는 시스템입니다. 이 시스템은 복잡하고 상호 연관된 여러 제어 기능을 담당하며, 결합 및 통합 문제를 파악하고 보상하기 위한 많은 분석과 설계를 필요로 합니다. 트럭의 CC는 더 많은 기능을 제공하고 기능 간의 결합도 더 많기 때문에 승용차를 위한 속도 제어보다 훨씬 더 복잡합니다.

Daimler의 엔지니어들은 중장비 트럭, 배송 트럭 및 대형 버스를 포함한 Mercedes-Benz 상용 차량의 크루즈 컨트롤 시스템을 재설계했습니다. 이들은 모델 기반 설계를 위한 MathWorks 툴을 사용하여 불과 18개월 만에 ECU에서 소프트웨어를 설계하고 테스트하고 구현했습니다.

Daimler의 트럭 제품 생산 부문 프로젝트 관리자인 Mario Wünsche는 “MathWorks 제품은 이 프로젝트의 성공에서 매우 중요했습니다.”라고 말합니다. “MathWorks 제품 덕분에 수작업 구현에 의지하거나 새 툴을 익힐 필요 없이 공통된 환경에서 전체 개발 프로젝트에 걸쳐 신속하게 설계를 프로토타이핑, 시뮬레이션, 테스트할 수 있었습니다."

과제

시스템 및 소프트웨어 엔지니어들로 구성된 Daimler 프로젝트 팀은 이 응용 사례를 위한 C 코드 모듈을 이미 개발했지만 새 타겟 ECU에서 구현하려면 이 모듈을 재설계해야 하는 상황이었습니다. 프로젝트 기한은 18개월이었습니다. 팀은 기존 개발 접근법을 사용해서는 기한을 맞출 수 없다는 것을 과거의 경험으로 알고 있었습니다.

팀의 목표는 향후 응용 사례에 재사용할 수 있는 개방형 아키텍처로 모듈형 응용 프로그램을 만드는 것이었습니다. 여러 팀이 동시에 프로젝트에 대해 작업을 해야 했으므로 결과를 공유할 필요가 있었습니다.

이 복잡한 CC 소프트웨어는 주행 및 제동 토크를 제어하고 거리를 조절하고 속도를 제한하는 역할을 합니다. 조속기 및 도로 속도 제한장치에 대한 입력에는 CC 레버, 액셀러레이터, 페달, CAN 신호, 차량 속도, 거리 및 가속 등이 있었습니다. 입력과 출력이 많은 시스템을 설계하는 것은 매우 까다로운 작업입니다. Daimler는 메모리와 처리량이 제한적인 고정소수점 프로덕션 마이크로컨트롤러에서 이 시스템이 실행되게 해야 했습니다.

솔루션

Daimler는 MATLAB®, Simulink®, Embedded Coder®로 모델 기반 설계를 사용했습니다. MathWorks 컨설턴트는 알고리즘이 최적화된 C 코드를 생성하도록 모델링 가이드라인과 아키텍처를 개발하는 과정을 지원했습니다.

Daimler는 먼저 Simulink와 Stateflow®에서 시스템을 모델링했습니다. 이 복잡한 설계 모델은 140개의 입력 신호, 40개의 출력 신호, 340개의 파라미터를 가진 3900개의 블록으로 구성되었습니다. Daimler는 CVS(Concurrent Versions System)의 버전 컨트롤을 사용하여 여러 팀이 동시에 서브시스템을 설계할 수 있도록 했습니다.

엔지니어들은 미리 정의된 테스트 및 제어 인터페이스가 있는 테스트 데이터베이스를 기반으로 대화형 방식의 자동화된 테스트 툴을 사용하여 개발 단계 전반에서 테스트를 수행했습니다. 이들은 타겟 마이크로컨트롤러에서 실행되는 Embedded Coder에 의해 생성된 생산 코드와 CAN 버스를 통해 통신하는 Simulink 모델의 폐루프 시뮬레이션을 사용하여 PIL(Processor-in-the-Loop) 테스트를 수행했습니다. 이렇게 해서 Daimler는 Simulink에서 계산된 결과를 활용하여 타겟 하드웨어에서 계산된 결과를 신속하게 검증할 수 있었습니다.

테스트 이후 Fixed-Point Designer™, Simulink Coder™, Embedded Coder를 사용하여 CC의 코드를 자동으로 생성했습니다. Fixed-Point Designer는 대부분의 Simulink 블록에서 스케일링과 데이터형을 정의하는 데 도움이 되었습니다. Embedded Coder를 통해 내부 품질과 스타일 표준을 충족하는 코드를 생성할 수 있었습니다. 사용자 지정 스토리지 클래스를 사용하여 생산 출시를 위한 데이터형을 정의하고 제어했습니다.

타겟 ECU에서 코드를 테스트한 후에는 VME Systems에서 작동하는 차량 모델과 하드웨어 센서를 포함한 모든 차량 ECU로 구성된 HIL(Hardware-in-the-Loop) 시뮬레이터에서 ECU를 테스트했습니다. 차량 모델이 실시간으로 실행되었으므로 팀은 마치 실제 차량에서 작업하듯이 모든 물리 값을 계산할 수 있었습니다.

결과

  • 간소하고 효율적인 코드. Embedded Coder 및 Simulink Coder에서 자동으로 생성된 코드는 이전 버전의 CC에 사용된 수작업 코드에 비해 16% 적은 RAM을 요구했습니다. 이 코드는 효율성과 구조에 대한 모든 프로젝트 요구사항을 충족했습니다.

  • 높은 테스트 효율성. Daimler 팀은 차량 대신 데스크탑에서 제어 소프트웨어를 디버깅함으로써 소프트웨어 문제 해결을 위한 시간과 비용을 줄였습니다.

  • 빠른 개발. 분석, 재구성, 모델링, 테스트를 포함한 전체 프로젝트에 소요된 기간은 18개월에 불과합니다. MathWorks가 제공한 시뮬레이션, 생산 코드 생성, PIL(Processor-in-the-Loop) 기능을 사용하지 않았다면 이 프로젝트 기한을 맞추기는 거의 불가능했을 것입니다.