Zeekr - 소프트웨어 정의 차량 엔지니어링의 혁신 사례 - MATLAB & Simulink

기술 칼럼

자동차 소프트웨어 팩토리 구축 과정


모델 기반 설계는 애자일 원칙을 물리적 컴포넌트와 소프트웨어를 포함하는 시스템 개발 작업으로 확장합니다. 요구사항 정의, 시스템 아키텍처, 컴포넌트 설계부터 구현, 검증, 테스트 및 배포에 이르기까지 모델 기반 설계는 전체 개발 주기를 아우르며 변화하는 요구사항에 대한 신속한 적응을 가능하게 합니다.

지능형 주행 및 지능형 조종석 기술로 인해 차량의 기능적 복잡성이 빠르게 증가하고 있습니다. 동시에 소비자들은 스마트 카에 더 많은 것을 요구하고 있습니다. 이러한 환경에서 SDV(소프트웨어 정의 차량)이 주요 트렌드가 되었으며, 소프트웨어는 자동차 기술의 핵심이 되었습니다. SDV를 개발하려면 소프트웨어와 하드웨어 개발을 분리하여 빠른 소프트웨어 반복이 가능하도록 개발 공정을 전환해야 합니다. 회사의 소프트웨어 개발 역량은 소비자에게 제공하는 업그레이드의 반복 및 출시 속도에 반영됩니다. 개발자들이 소프트웨어를 효율적으로 설계하고 테스트하며 업데이트할 수 있도록 좋은 툴, 공정 및 방법을 제공하는 것이 중요합니다. 개발자들은 개발 효율성과 품질 간의 효과적인 균형을 달성하기 위해 CI/CD(지속적 통합/지속적 배포) 및 전통적인 V 모델에 애자일 개발을 통합하는 방법을 모색해야 합니다.

중국의 프리미엄 EV 제조업체인 Zeekr는 최근 SOA(서비스 지향 아키텍처) 기반 소프트웨어 모델링에 Simulink®의 새로운 기능을 사용하고 Embedded Coder®를 사용하여 C++ 코드를 생성하는 등 새로운 차량 OS 환경에 모델 기반 설계를 적용한 경험(그림 1)을 공유했습니다.

Zeekr의 새로운 차량 운영 체제 환경의 개요를 보여주는 플로우 차트. 이 플로우 차트는 Simulink 및 Embedded Coder가 SOA 기반 소프트웨어 모델링 워크플로에 어떻게 통합되는지 보여줍니다.

그림 1.Zeekr는 SDV를 위한 새로운 기능을 개발하고 배포하고 있습니다.

이 팀은 또한 System Composer™, MATLAB® 및 앱 디자이너를 사용하여 Zeekr의 사용자 지정 차량 OS의 소프트웨어 아키텍처 툴인 SOMOC를 개발(그림 2)했습니다.

Zeekr의 사용자 지정 SOA 유지관리 툴인 SOMOC의 개요를 보여주는 플로우 차트. 이 플로우 차트는 MATLAB, System Composer 및 앱 디자이너가 워크플로에 어떻게 통합되는지 보여줍니다.

그림 2. Zeekr의 사용자 지정 SOA 유지관리 툴인 SOMOC.

다음 섹션에서는 Zeekr의 소프트웨어 및 전자 센터의 전문가들이 새로운 소프트웨어 기능 통합, 소프트웨어 제공 가속화, 개발 시간 및 비용 절감, 안전성 및 신뢰성 보장을 포함하여 소프트웨어 팩토리를 구축한 경험을 공유합니다.

서비스 지향 아키텍처 적용 및 분리 달성

신속한 기능 반복에 대한 요구사항을 충족하려면 기존 신호 기반 소프트웨어에서 서비스 지향 설계로 점진적으로 전환해야 합니다. 동시에 소프트웨어를 하드웨어로부터 분리하고, 운영 체제 커널, 미들웨어, 응용 계층 등 소프트웨어 아키텍처 내의 계층을 분리하는 것이 필요합니다. 하드웨어와 소프트웨어의 빠른 반복을 보장하고, 각각의 속도에 맞춰 개발 주기를 단축하고 사용자 요구사항을 충족하기 위해서는 완전한 분리가 필수적입니다.

신속한 반복을 가능하게 하는 핵심 전략 중 하나는 SOA를 도입하는 것입니다. SOA는 애플리케이션 소프트웨어와 하드웨어, 그리고 서로 다른 소프트웨어 애플리케이션 간의 느슨한 결합을 용이하게 합니다. 이를 통해 소프트웨어 개발 및 유지관리가 용이해질 뿐만 아니라 차량 내 소프트웨어, 통신, 정보 보안 및 클라우드 환경 간의 원활한 조정이 가능해져 사실상 완벽한 차량 클라우드 생태계가 구축됩니다.

복잡하고 다양한 팀이 관련된 대규모 소프트웨어 시스템 개발에 수반되는 과제를 해결하는 만병통치약은 없습니다. 특정 애플리케이션의 경우, 특히 멀티스레딩이나 게시-구독 메커니즘과 관련된 모듈의 경우 C/C++와 같은 고급 언어를 사용하는 것이 간단할 수 있습니다.

동시에 Zeekr 팀은 모델 기반 설계를 사용하여 파워트레인, 섀시 및 차체 개발 분야에서 광범위한 경험을 보유하고 있습니다. 결과적으로, 프로덕션 테스트를 통해 검증되었거나 복잡한 상태 머신이 있는 성숙한 기능의 경우 팀은 계속해서 모델 기반 설계 접근 방식을 사용합니다. 목표는 이러한 모델을 SOA 플랫폼에 통합하는 것입니다. 이러한 요구사항을 해결하기 위해 Zeekr와 MathWorks는 협업을 통해 통합 모델 기반 개발 툴체인을 개발했습니다. (그림 3)

SOA 아키텍처에 모델을 통합한 모델 기반 개발 툴체인을 보여주는 플로우 차트입니다.

그림 3. MathWorks와의 협업을 통해 개발된 Zeekr의 통합 모델 기반 개발 툴체인.

가상 차량 시뮬레이션을 통한 개발 주기 단축 및 비용 절감

자율주행 알고리즘 테스트의 약 90%는 시뮬레이션 플랫폼에서, 9%는 테스트 트랙에서, 1%는 실제 도로 테스트를 통해 수행됩니다. 실제 도로 상황에서 접하는 무한에 가까운 운전 시나리오를 재현하는 것이 어렵기 때문에 시뮬레이션 플랫폼에서 테스트하는 것이 특히 중요합니다.

자동차 산업이 새로운 기술 발전을 수용함에 따라 OEM은 점점 더 민첩한 개발 프로세스, 자동화된 테스트, CI, 클라우드 컴퓨팅, 가상화를 도입하고 있습니다. 이러한 접근 방식은 소프트웨어 개발 주기를 가속화하며, 차량 가상화 및 시뮬레이션 기술은 통합 및 검증에 가장 큰 영향을 미칩니다.

자동차 회사에서는 시뮬레이션을 사용하여 에너지와 움직임을 위한 차량 제어 시스템을 개발하고 테스트해 왔습니다. Simulink는 동적 모델과 제어 알고리즘을 구축하고, 제어 시스템을 평가하고 최적화하기 위한 시나리오를 시뮬레이션하고, 보정을 수행하거나 알고리즘을 미세 조정하는 데 사용됩니다. 앞으로 시뮬레이션 기술을 통해 디지털 트윈을 생성할 수 있게 되어 엔지니어는 이러한 완전 가상 차량을 사용하여 실제 차량 동작을 예측하고 포괄적인 시뮬레이션을 수행할 수 있습니다.

통합 시뮬레이션 플랫폼을 기반으로 하는 가상 차량 시뮬레이션을 통해 엔지니어링 팀은 새로운 소프트웨어 기능의 프로토타입을 제작하고, 교정하고, 검증할 수 있습니다. 프론트로딩을 통해 개발 주기를 크게 단축하고 비용을 절감할 수 있습니다. Zeekr는 MATLAB 및 Simulink의 즉시 사용 가능한 기능을 활용하여 가상 차량을 빠르게 생성합니다. (그림 4)

시뮬레이션 결과에 따른 모델 개발 및 반복을 비롯한 Zeekr의 가상 차량 시뮬레이션 시스템에 대한 워크플로.

그림 4. Zeekr는 MATLAB 및 Simulink를 사용하여 가상 차량을 개발하고 있습니다.

DevOps를 통한 출시 리드 타임 단축

최근 몇 년 동안 많은 자동차 회사가 소프트웨어 중심으로 기업 전략을 재편했습니다. 이로 인해 운영 중에 데이터를 수집하여 개발 프로세스에 피드백하고 차량 소프트웨어를 지속적으로 반복하는 데 사용하는 CI 및 DevOps 방식으로 전환되었습니다.

자동차 소프트웨어는 개발 비용이 높고, 많은 양의 코드를 개발, 통합, 제공해야 하는 것이 특징입니다. CI 및 DevOps 방식을 사용하면 코드 제출부터 제품 업데이트까지의 시간을 단축하고, 개발 시간과 오류를 줄이는 동시에 지속적인 통합, 자동화된 테스트, 정적 코드 분석을 통해 고품질의 안전한 소프트웨어 제공을 보장할 수 있습니다.

DevOps는 제품을 더 빠르게 제공하기 위해 애자일 방법론을 우선시합니다. 소프트웨어의 복잡성 증가, 출시 시간 단축, 예산 제약, 소프트웨어와 하드웨어 수명 주기의 차이로 인해 모델 기반 설계와 애자일 개발 원칙의 통합이 필요해졌습니다. 모델링 및 시뮬레이션, 자동화된 테스트 및 검증, 자동화된 코드 생성을 활용하면 개발 효율성과 구현 속도가 크게 향상됩니다.

이러한 목표를 달성하기 위해 Zeekr는 Polyspace Bug Finder™ 및 Polyspace Code Prover™와 같은 Polyspace® 툴을 사용하여 코딩 사양, 보안 취약점 등의 소프트웨어 결함을 검사합니다.

Zeekr는 일련의 자동화된 단위 테스트 및 서비스 검증 툴을 개발했으며, 생성된 코드는 이러한 툴을 사용하여 검증하여 실행 가능한 프로그램이 안정적으로 실행될 수 있는지 확인합니다. 동시에 Zeekr는 모델 개발 및 검증을 DevOps 시스템에 통합합니다. 기능 개발 엔지니어는 코드와 마찬가지로 모델을 코드 리포지토리에 업로드할 수 있습니다. (그림 5)

비즈니스 모델 개발, 자동 통합 및 시뮬레이션 시스템 검증을 비롯한 Zeekr의 DevOps 주기를 개요로 보여주는 차트.

그림 5. Zeekr의 DevOps 시스템을 사용하면 엔지니어가 모델을 리포지토리에 업로드할 수 있습니다.

애자일 개발 및 V-Model을 통한 기능 안전 보장

SDV의 등장으로 자율주행, 향상된 차량 제어 등 많은 혁신이 이루어졌습니다. 그러나 이러한 발전은 기능 안전에 상당한 어려움을 가져왔습니다. 특히, 소프트웨어 아키텍처가 기존 AUTOSAR에서 서로 다른 분산형 차량 운영 체제와 서비스 아키텍처로 바뀌면서 기존의 기능 안전 분석 방법, 소프트웨어 및 하드웨어 안전 설계 개념, 안전 검증 시스템, 툴체인 안전의 구축에 새로운 불확실성이 발생합니다. 따라서 SDV를 개발하는 엔지니어링 팀이 직면한 근본적인 과제는 테스트와 검증입니다.

현재 자동차 산업에서 가장 흔한 소프트웨어 개발 프로세스는 V모델을 따릅니다. 이는 요구사항에서 소스 코드까지 각 개발 단계에서 해당 테스트를 수행하고, 각 단계는 이전 단계의 결과를 기반으로 구축되는 방식입니다. V모델의 장점은 명확한 프로세스, 추적성, 품질 관리에 있습니다. 그러나 이러한 접근 방식에는 긴 개발 주기, 변화하는 요구사항에 대한 적응의 어려움, 테스트의 어려움, 유연성 부족 등의 단점도 있습니다.

기존의 소프트웨어 개발 프로세스로는 자동차 시스템의 복잡성이 커지는 속도에 맞춰 나갈 수 없게 되면서, 애자일 개발이 해결책으로 등장하게 되었습니다. 개발 프로세스가 끝나고 모든 소프트웨어를 제공하기를 기다리지 않고, 작은 단위로 소프트웨어를 제공하여 지속적인 업데이트가 가능하도록 반복적인 반복을 통해 소프트웨어 개발을 지원합니다.

Zeekr의 현재 소프트웨어 개발 방식은 V모델과 애자일 방법론을 결합합니다. 이 하이브리드 전략은 전반적인 차량 개발을 위한 V모델의 구조화된 개발 프로세스를 유지하는 동시에 특정 요구사항에 대한 유연성을 도입하고, 소프트웨어 제품의 안전성과 신뢰성을 보장하며 신속한 제공을 용이하게 합니다. (그림 6)

Zeekr의 하이브리드 전략을 그래픽으로 표현한 것으로, 기존의 V모델 개발 방식과 애자일 방식을 결합한 것입니다.

그림 6. Zeekr는 기존의 V모델 소프트웨어 개발 방식과 애자일 방식을 결합하고 있습니다.

기존 V모델에서는 몇몇 제어기에 기능을 집중화했기 때문에 기능 개발 및 검증 비용이 크게 증가했습니다. 이러한 맥락에서 Simulink는 모델 개발에 상당한 이점을 제공합니다. Simulink는 포괄적인 모델 검증 툴을 통해 완전하고 성숙한 ISO® 26262 소프트웨어 개발 공정, 방법론 및 툴킷을 지원합니다. 이를 통해 모델의 정확성과 신뢰성이 효과적으로 보장됩니다.

또한, 모델 기반 설계는 애자일 원칙을 물리적 컴포넌트와 소프트웨어를 포함하는 시스템 개발 작업으로 확장합니다. 요구사항 정의, 시스템 아키텍처, 컴포넌트 설계부터 구현, 검증, 테스트 및 배포에 이르기까지 모델 기반 설계는 전체 개발 주기를 아우르며 변화하는 요구사항에 대한 신속한 적응을 가능하게 합니다. 따라서 모델 기반 설계는 V 모델과 애자일 개발 원칙을 결합한 하이브리드 방식의 요구사항을 충족할 수 있습니다.

2024년 기고

관련 산업에 대한 칼럼 보기