V-Cycle 프로세스

‍이세현·2024년 10월 18일
1

소프트웨어 개발 프로세스 모델은 크게 Plan Driven Model, Agile Model이 있다. Plan Driven Model의 예시로는 waterfall process model과 v-cycle process model이 있다.
V-Cycle 모델은 추상화 단계를 낮추어가며 Verification을 진행하고 구현이 완료되면 추상화 수준을 높여가며 반복적으로 Validation이 진행된다.

  • Verification: 각 개발 단계에서 설계 및 구현 과정이 요구 사항을 올바르게 반영하고 있는지 확인하는 과정
  • Validation: 최종 제품이 실제 사용 환경에서 요구 사항을 만족하는지 확인하는 과정

V-Cycle 프로세스의 유형

Function-oriented

  • 기능 개발 위주의 프로세스로 여러 개발 도구를 사용한다.
  • Tool-based V-cycle

Safety-oriented

  • 시스템의 safety를 중심으로 한 V-Cycle
  • ISO 26262(자동차 기능 안전성 국제 표준)
    • Software 표준 아님
    • 시스템의 안전을 보장하기 위한 프로세스와 절차를 정의한다.

Quality-oriented

  • Safety 보장을 위한 기본 조건
  • Automotive SPICE
    • 자동차에서 중요한 요소인 quality
    • 자동차 산업에 적합한 성숙도 모델로, 전자 및 소프트웨어 기반 시스템의 개발 프로세스의 성숙도를 평가한다.

ECU 개발을 위한 V-Cycle 프로세스 (도구 중심)


세부적인 사항은 용도에 맞추어 커스텀 될 수 있다.

Modeling and Design

  • 제약점: 종방향 제어 같은 전통적 제어 시스템에 한정된다.
  • Modeling: Feedback control system을 modeling 하는 방법
    • Physical world와 Cyber workd가 함께 동작하는 Hybrid system
    • Physical World
      • 차량의 기계적/물리적 동작을 의미하며 아날로그 신호로 동작한다.
      • 시간에 대해 연속적이다.
      • 시간에 대한 미적분으로 각종 계산이 가능하다.
    • Cyber World(ECU, Software)
      • ECU, 소프트웨어와 같은 전자적 제어 부분을 의미하며 디지털 신호를 사용하여 동작한다.
      • Discrete 주기에 따라 동작의 완성도의 차이가 발생한다. 이는 컴퓨터의 성능과 trade off 관계이다.
      • Logic, code로 모델링 되어 있다.
      • A/D, D/A convert가 필요하다.
    • Modeling Tools
      • Simulink: Plant의 연속 도메인에서의 움직임을 미분방정식으로 표현한다. Computer의 계산을 visual language로 표현한다.
      • Stateflow: Computer의 로직을 state machine으로 표현한다. Logic 표현력이 강하다.
      • ASCET: Simulink, Stateflow와 유사한 도구로, 엔진제어에서 주로 사용한다.
  • Cruise Control Plant Modeling의 경우
    • 미분방정식으로 차량의 속도를 모델링하고 수학 계산을 그림으로 표현하는 방향으로 모델링을 한다.
    • Cruise Control Computer Modeling은 ECU의 소프트웨어 로직과 계산을 모델링한다.
      • State machine은 state의 변화를 관리하고 input에 따른 수식 계산 과정을 나타내는 diagram 형태로 모델링을 할 수 있따.
    • Cruise Control Simulation
      • Input으로 버튼을 누르면 도로 경사 같은 physical 입력과 디지털 입력이 simulink에서 계산되어 차량 속도가 출력된다.
  • Advanced Simulation Methods
    • MIL, SIL, PIL 단계를 거쳐 프로그램이 완성된다.
    • MIL (Model-In-the-Loop): 모델 수준에서의 시뮬레이션으로, 실제 코드 생성 전에 Simulink 같은 도구로 시스템 동작을 검증한다. C 코드와는 다름
    • SIL (SW-In-the-Loop): 모델로부터 생성된 C 코드로 PC에서 실행하여 소프트웨어가 제대로 동작하는지 검증한다.
    • PIL (Processor-In-the-Loop): 크로스컴파일(임베디드 보드에서 실행파일이 동작하도록 처리하는 것) 된 코드를 실제 ECU에 탑재하여 동작을 검증한다.
  • Commercial Plant Models
    • Vehicle 동적 모델링을 위한 CarSim, CarMaker

Rapid Prototyping

  • 실제 자동차와 연결하여 실험적으로 빠르게 작업하는 단계
  • Control Logic Model을 다운로드하여 ECU 대신에 실제 Vehicle에서 Model을 Validation
  • Plant Model 없이 실제 차량에서 테스트한다.
  • dSPACE MicroAutoBox
    • ECU를 시뮬레이션하는 하드웨어
    • Real-Time Target이라고도 불린다.
    • 모델링 툴과 연동되어 모델 코드를 실시간으로 실행한다.
    • CAN, LIN, Serial, Analog and Digital IO 등이 지원된다.

Targeting

  • 양산형 ECU를 만드는 과정
  • Control Logic Model을 기반으로 자동으로 코드 생성 또는 사람이 직접 코딩
    • Automatic Code Generation
      • 툴에서 자동으로 코드를 생성하기 때문에 버그 가능성이 있다.
      • 사람의 요구사항에 맞는 code가 아닐 수 있다.
      • 모델과 코드의 일관성 유지가 어렵다.
      • 모델과 코드를 이중으로 관리해야하고 ECU 개발로 쉽게 이어지지 않는다.
      • Simulink Embedded Coder, dSPACE TargetLink
    • Manual Coding
      • 모델링 결과를 바탕으로 사람이 다시 C 코드를 작성하는 것
      • 사람의 실수 가능성이 있다.
  • 코드 생성 후 Targeting 단계 고려사항
    • Targeting은 아키텍처, 수식을 C 코드로 구현하고 ECU를 만드는 과정이다.
    • Runnable Period, CAN, AUTOSAR, Deadline, Real Time, Mutex, ISO 26262, MISRA-C 등을 고려해야 한다.
      • AUTOSAR: 자동차 소프트웨어 아키텍처 표준으로, ECU 소프트웨어가 일관되게 동작할 수 있도록 정의한 표준
      • MISRA-C: 자동차 소프트웨어에서 안전한 C 코드 작성을 위한 가이드라인

Hardware-in-the-Loop Simulation

  • ECU를 시뮬레이션 하는 MIL, SIL, PIL과 반대로 ECU는 고정한 채로 실차 탑재 직전에 엔진을 시뮬레이션하는 것
    • 실차 없이 가상의 환경에서 ECU를 검증한다.
    • Rapid Prototyping 과정과 반대
    • HIL은 비용을 절감하고 위험을 줄이기 위해 많이 사용된다.
  • Model을 HILS Platform에 다운로드하고 Control Code를 탑재한 채로 ECU를 검증하는 과정
    • 주요 HIL 제품으로는 ETAS LABCAR, dSPACE SCALEXIO가 있따.

System Testing

  • 실제 ECU와 차량으로 테스트하는 과정
  • CAN Calibration Protocol
    • Sensor, ECU를 측정할 때 PC와 자동차 ECU 간 데이터를 주고받는 프로토콜
  • Mearure과 보정(parameter 수정) 과정을 반복한다.
    • ECU Calibration and Measurement
    • 대표적인 C&M 툴로는 ETAS INA, Vector Canape가 있다.
    • 중요 표준으로는 ASAM의 XCP, CCP가 있다.
    • 효율적인 디버깅을 위해 실시간 측정과 모니터링이 중요하다.
    • 중요 파일 포맷 - A2L 파일
      • 제어를 위한 실행파일로, 변수가 어느 메모리에 가는지 확인하기 위한 파일이다.
      • "어느 제어기의 어느 데이터를 확인해야 하는가"
profile
Hi, there 👋

0개의 댓글

관련 채용 정보