대한항공, 모델 기반 설계를 활용하여 UAV 비행 제어 소프트웨어 개발 및 검증 가속화

과제

무인 항공기용 비행 제어 소프트웨어 개발 및 검증

솔루션

모델 기반 설계를 사용한 비행 제어 법칙 및 운영 로직 설계, 양산 코드 생성 및 검증, HIL 테스트 수행

결과

  • 수작업으로 코딩한 코드의 런타임 오류를 100% 식별 및 제거
  • 개발에 드는 노력을 60% 절약
  • 비용이 많이 드는 비행 시험 최소화

“MATLAB 및 Simulink를 활용함으로써 모델 재사용 및 효율성 향상이 가능해져 시간 및 비용을 절감할 수 있게 되었습니다. 모델 기반 설계 덕분에 수작업 코딩보다 소요 시간이 50% 이상 단축되고 프로젝트의 복잡성이 커질 수록 모델 기반 설계의 장점은 커집니다.”

문정호, 대한항공
대한항공 무인 항공기.

무인 항공기(UAV)에 사용되는 고무결성 비행 관리 및 제어 소프트웨어를 개발하는 엔지니어들은 시뮬레이션, 단위 테스트, 정형 기법을 활용한 검증 및 HIL(hardware-in-the-loop) 시뮬레이션 등 다양한 기법을 활용하여 모든 개발 과정에서 소프트웨어를 검증합니다. 대한항공의 개발팀은 모델 기반 설계를 통해 이러한 검증 단계뿐만 아니라 UAV 비행 제어 소프트웨어의 전체 개발 과정을 가속화하고 있습니다.

대한항공의 문정호 선임 비행 제어 시스템 엔지니어는 “우리 팀은 모델 기반 설계를 통해 여러 UAV 플랫폼에서 사용될 수 있는 프로세스를 구축할 수 있었습니다. 그러한 프로세스에는 시스템 모델링 및 시뮬레이션, 양산 코드 자동 생성, 생성 및 직접 작성된 코드의 런타임 오류 존재 여부 검증이 포함됩니다. 결과적으로, 개발 초기 단계에 잠재적인 주요 오류를 제거함으로써 개발 효율성을 높이고 개발 비용을 절감할 수 있습니다.” 라고 설명했습니다.

과제

과거에 대한항공의 엔지니어들은 UAV 비행 제어 소프트웨어를 직접 코딩했습니다. 하지만, 특히 여러 UAV 플랫폼을 대상으로 하는 단일 비행 제어 시스템의 경우 이러한 방식에서 여러 단점이 발견되었습니다. 첫째, 엔지니어링 팀이 개발 중이던 알고리즘은 C언어를 사용해 수작업으로 프로그래밍하기에는 너무 복잡했습니다. 둘째, 하드웨어의 변경 및 최신 제어 알고리즘을 단기간에 적용해야 했습니다. 셋째, 수작업 코드 검토와 단위 테스트에 너무 많은 시간과 노력이 필요했습니다.

비행 시험 및 인증과 관련하여 정해진 마감 시한을 준수하기 위해 대한항공은 설계 모델 시뮬레이션, 자동 코드 생성, 생성 및 직접 작성된 코드 검증을 수행하여 개발 기간을 단축해야 했습니다.

솔루션

대한항공은 모델 기반 설계를 활용해 새로운 UAV 비행 제어 소프트웨어를 개발했습니다.

개발 초기 단계에 엔지니어들은 Simulink® 모델을 개발하여 높은 수준의 요구 사항을 구체화하고 검증했습니다.

그리고 Aerospace Blockset™을 활용하여 이착륙 자동화 시뮬레이션용 랜딩기어 역학 등의 UAV 역학 모델을 개발했습니다. 그 후 System Identification Toolbox™를 활용하여 비행 역학 및 성능 검증과 관련된 모델 매개 변수를 예측했습니다.

엔지니어 팀은 Robust Control Toolbox™ 및 Control System Toolbox™를 활용하여 비행 제어 법칙을 설계해 최적의 제어 이득을 계산했습니다.

자동 착륙 유도, 항로점 비행 등 비행 관리 및 제어 시스템은 Simulink와 Stateflow®를 사용하여 모델링했습니다.

비행 제어 법칙을 검증하고 제어 응답 데이터를 수집하기 위한 데스크탑 시뮬레이션을 수행한 이후 엔지니어 팀은 결과를 분석한 다음 MATLAB®을 활용하여 비행 시험 결과를 분석했습니다.

엔지니어들은 Simulink Check™ 및 Simulink Coverage™,을 활용하여 정기적으로 확인을 수행해 모델이 대한항공 모델링 표준(MAAB 가이드라인 기반)을 준수하는지 확인하고 테스트 모음의 100% MC/DC 모델 커버리지 여부를 측정했습니다.

Embedded Coder®로 생성된 이 모델의 소스 코드 라인 수는 45,000라인을 넘습니다. 엔지니어들은 이 C 코드를 하드웨어 드라이버용으로 직접 작성한 코드와 통합하고 모델 커버리지를 위한 테스트 케이스를 재사용해 100% MC/DC 커버리지를 측정했습니다.

Polyspace Code Prover™를 활용함으로써 전체 코드에 대한 런타임 오류 여부를 확인하고 수작업으로 작성한 코드에서 여러 오류를 발견해 수정할 수 있었습니다. 생성된 코드에서는 런타임 오류가 발견되지 않았습니다.

엔지니어 팀은 Simulink Real-Time™을 활용하여 실시간 HIL 시뮬레이션을 수행했습니다. HIL 모델(비행 제어 및 비행 역학 서브모델에 11,000개 이상의 블록이 포함됨)은 UAV용 조종사 교육 시뮬레이터를 개발하는 데 재사용되었습니다.

대한항공의 엔지니어들은 Simulink Check and Simulink Coverage으로 생성한 MC/DC 커버리지 보고서 및 Polyspace Code Prover로 생성한 검증 및 테스트 보고서를 인증 기관에 제출했습니다.

대한항공은 일정에 맞춰 개발을 완료했고 개발된 UAV는 한국 정부로부터 감항인증을 획득했습니다.

결과

  • 수작업으로 코딩한 코드의 런타임 오류를 100% 식별 및 제거. “안전한 소프트웨어를 개발하고 비행 도중 발생할 수 있는 주요 오류를 제거하는 데 Polyspace Code Prover가 매우 중요합니다. Polyspace를 통해 수작업 코딩 코드에서 수십 개의 0으로 나누기 오류 및 오버플로우 오류가 발견되고 Embedded Coder에서 생성된 코드에 런타임 오류가 없음이 증명되었습니다.” 라고 문정호 엔지니어는 설명합니다.

  • 개발에 드는 노력을 60% 절약. 문정호 선임은 “MATLAB 및 Simulink를 활용하여 개발한 소프트웨어는 수작업으로 코딩한 프로젝트보다 기능이 풍부하고 검증 커버리지가 넓습니다. 모델 기반 설계를 통해 모델 재사용, 코드 생성 및 테스팅 시간 단축이 가능해져 엔지니어들이 개발에 투자하는 시간이 60% 줄어들었습니다.” 라고 설명합니다.

  • 비용이 많이 드는 비행 시험 최소화. 또한, “비행 시험을 한 번 수행하는 데 $10,000 이상의 비용이 소요됩니다. 모델 기반 설계를 통해 시뮬레이션이 올바르게 수행되고 있는지 알 수 있게 되어 UAV가 올바르게 비행하게 되었습니다. 예를 들어 기존보다 약 1/3 이하의 비행시험만으로 오토파일럿 성능 및 기능을 검증할 수 있었습니다.” 라고 설명합니다.