모델 기반 엔지니어링을 통해 설계 및 테스트 작업 흐름 연결

개요

설계 팀과 테스트 팀 사이의 연결 부분은 제품 개발 프로세스에서 여전히 마찰 지점이자 비효율적인 영역입니다. NI와 MathWorks®는 이를 인식하고 모델 기반 엔지니어링을 통해 설계와 테스트의 연결을 개선하기 위해 협력하고 있습니다. 우리는 디지털 스레드로 설계 팀과 테스트 팀을 연결하여 개발 프로세스 속도를 향상하고, 설계 및 테스트 반복 기회를 늘리며, 개발 프로세스의 초기로 테스트를 이동하고자 합니다.

내용

설계 팀과 테스트 팀 간의 장애물과 마찰 지점

​효과적인 협업은 다음과 같은 장애물에 의해 방해될 수 있습니다. 

  • 리얼타임 실행을 위한 알고리즘 변환—모델을 먼저 개발 머신의 설계 소프트웨어로 컴파일하고 난 후에 테스트 소프트웨어를 실행하는 리얼타임 컨트롤러로 불러와 사용해야 하는 경우가 많습니다. 
  • 설계 모델과 상호작용하기에 가장 좋은 방법 결정. 
  • 의미 있는 결과를 얻기 위해 계측 코드 삽입. 
  • 하드웨어 또는 실험실에 접근. 

설계 엔지니어인 Dan과 테스트 엔지니어인 Tessa의 작업을 예로 들어봅시다. Dan은 하이브리드 전기 자동차 (HEV) 시스템 제어 알고리즘을 작성합니다. MathWorks MATLAB® 및 Simulink® 소프트웨어를 주로 사용하며, 리얼타임 구현에 대해서는 그다지 아는 바가 없습니다. 지금은 컨트롤러 코드를 업데이트하여 새로운 센서 입력을 통합하려고 합니다.

Dan은 그 과정에서 별로 협업하지 않은 Tessa에게 자신의 설계를 넘겨줍니다. ‘벽 너머로 던져준다’는 말처럼, 서로 긴밀한 사전 협의 없이 일을 넘겨주는 식입니다. Tessa는 HIL (Hardware-In-the-Loop) 테스트 방법 및 도구를 사용하여 ECU 제어 소프트웨어와 I/O를 테스트합니다. Tessa는 NI 하드웨어 및 소프트웨어 테스트 시스템을 사용하며 하루를 보냅니다. 제어 알고리즘 구현에 관해서는 거의 아는 것이 없습니다. 지금은 Dan이 작업하고 있는 새로운 HEV 제어 시스템 테스트를 담당하고 있습니다. 통합 도구가 없기에, Tessa는 Dan의 새로운 업데이트를 테스트 시스템에서 쉽게 실행할 수 없습니다.

Dan과 Tessa가 업무를 주고받는 방식이 왠지 익숙하게 들리십니까? 이는 설계 팀과 테스트 팀 사이의 효과적인 협업을 방해하는 일반적인 장애물을 보여줍니다. 

대부분의 고객은 다음과 같은 설계와 테스트 팀 사이의 마찰 지점으로 인해 발생하는 문제에 직면합니다. 

  • 협업 체계 없는 팀 간 교환 (“벽 너머로 던져 주고받기”) 
  • 버전 호환성 
  • 잘못 문서화되거나 문서화되지 않은 작업 흐름 
  • 설계 도구와 테스트 도구 사이의 플랫폼 문제 (Windows/Linux, 데스크탑/리얼타임, 32비트/64비트, 컴파일러 차이) 

이러한 문제로 인해 조직은 최고의 방법을 사용하고도 전체 범위 테스트라는 목표를 달성하지 못합니다.

설계 및 테스트 효율성 향상하기

대부분의 엔지니어는 테스트를 줄였을 때 발생하는 숨겨진 비용과 위험(재작업 비용, 책임 문제, 리콜, 브랜드 이미지, 시장 점유율 영향 등) 때문에 최대한 많은 테스트를 하기 원합니다. 그러나 시간 (일정), 비용 (예산), 인력 (전문)과 같은 리소스는 제한되어 있으므로, 특정 시점 이후에는 일반적으로 문제에 더 많은 리소스를 투자한다고 해도 테스트를 늘릴 수 없습니다. 대신, 기존의 제약 내에서 테스트 방법과 프로세스의 효율성을 향상하는 근본적인 변화로 그 목표를 달성할 수 있습니다. 이러한 변화를 달성할 수 있는 능력은 더 적은 리소스로 더 많은 일을 하고 위험을 최소화하고 프로그램이 진행되는 동안 품질과 성능을 최대화하므로 상당한 경쟁우위입니다.

모델 기반 엔지니어링을 통해 설계와 테스트를 연결하는 것은 설계 및 테스트 효율성을 개선하여 부수적인 효과를 얻기 위한 한 가지 기본적인 방법입니다. 이 방법을 통해 테스트를 개발 과정의 초기로 이동할 수 있으므로(트랙에서 실험실로, 실험실에서 데스크탑으로), 엔지니어는 에러를 조기에 찾고 알고리즘을 더 빠르게 디버깅하고 설계/테스트 주기를 더 신속하게 반복할 수 있습니다.

디지털 스레드

이러한 디지털 스레드, 다시 말해 여러 팀 사이의 의사소통 매개가 되는 공통적인 언어의 수립은 툴체인의 상호 운용성을 달성하는 것으로 시작합니다.

설계에서 테스트까지 제품 수명 주기의 각 단계를 잇는 사용 사례, 테스트 사례, 모델, 코드, 데이터의 디지털 스레드 다이어그램.

그림 1: 데이터, 코드 및 소프트웨어 구성 요소의 디지털 스레드를 통해 연결된 설계 및 테스트.

재작업, 문제 해결, 재구현의 필요성을 줄일 수 있도록 팀 사이에 정보의 양방향 통신이 가능하려면 변환 계층이 필요합니다. MathWorks와 NI는 모델이 설계 세계와 테스트 세계 사이의 주요 소통 방법임을 알고 있기에 이러한 작업을 진행 중입니다.

모델에는 정보가 많습니다. 모델은 시스템의 동작을 설명하고 테스트 사례를 구축하고 테스트 요구사항을 정량화하는 기초를 제공합니다. 설계에 사용되는 것과 동일한 모델을 테스트에 통합하면 공통의 플랫폼에서 성능을 평가하고 테스트 대상 디바이스와 그 주변의 실세계를 시뮬레이션/에뮬레이션할 수 있습니다. 이렇게 하면 테스트 팀을 도구로 인한 제약에서 해방하고 설계 팀과 동일한 언어를 사용하게 할 수 있습니다.

주요 의사소통 방법으로 모델을 사용하여 팀 사이에 디지털 스레드를 확립하면 개발 효율성이 향상됩니다. 함께 사용되도록 개발된 상호 운용 가능한 도구를 통해 설계와 테스트 작업 흐름이 연결됩니다. 이 솔루션을 사용하면 Dan과 Tessa가 보다 긴밀하게 협력하고 더욱더 자주 테스트하여 조직에 경쟁우위를 제공할 수 있습니다.

MathWorks와 NI는 Simulink와 VeriStand 사이의 호환성을 개선했습니다. 이제 단계를 맞춰 버전이 업데이트 (예를 들어, VeriStand R2020와 MATLAB R2020a 버전이 호환)됩니다. 또한, 오늘날 수동으로 수행되는 협력 작업 흐름의 자동화와 모델 계층구조에서 신호와 파라미터를 더 깊은 수준으로 접근할 수 있게끔 하는 등, 추가적인 개선을 위해 협력하고 있습니다.

플러그인 하이브리드 전기 자동차용 Simulink 모델을 리얼타임 PXI 시스템에서 실행되는 VeriStand 소프트웨어와 통합하는 방법을 보여주는 다이어그램.

그림 2: Mathworks Simulink 모델의 실시간 테스트 소프트웨어 내 통합.

 

제안된 연결 설계 및 테스트 작업 흐름

설계 및 테스트 작업 흐름의 단계를 통해 호스트, 리얼타임 CPU, FPGA, IO, DUT를 연결하는 방법을 보여주는 다이어그램.

그림 3: MIL (Model in the loop) 및 HIL (Hardware in the loop) 테스트를 위한 설계에서 검증 테스트까지의 소프트웨어 및 하드웨어 도구 통합.

다음 단계

 

일부 콘텐츠는 MathWorks의 Paul Barnard가 작성했습니다.