DOI QR코드

DOI QR Code

무인항공기용 비행제어컴퓨터 아키텍처 최적화 설계 및 성능 평가

Optimization Design and Performance Evaluation of Flight Control Computer Architecture for UAV

  • 투고 : 2023.10.19
  • 심사 : 2023.12.13
  • 발행 : 2023.12.30

초록

무인항공기용 비행제어컴퓨터는 높은 신뢰성이 요구되는 항전 장비로, 고장에 대한 마진을 위해 다중화 설계되는 것이 일반적이다. 다중화 된 비행제어컴퓨터는 채널 간 동기화 및 고장분리를 위해 디스크리트 신호 및 CCDL (cross channel data link)을 통한 인터페이스가 포함되어야 한다. 무인항공기 기술이 발전함에 따라 민간 및 군에서 AAM (advanced air mobility) 및 저피탐 등 다양한 형태의 플랫폼들이 개발되고 있으며, 이러한 플랫폼들은 고성능 비행제어를 위한 제어 성능 고도화 및 탑재장비의 SWaP (size, weight and power) 최적화를 요구하고 있다. 본 논문에서는 이러한 무인항공기용 최적화된 다중화 비행제어컴퓨터 아키텍처를 설계하고 입출력 제어를 위한 소프트웨어 설계를 수행하였다. 또한 구현된 비행제어컴퓨터와 입출력 소프트웨어를 통해 입출력 처리 성능을 평가 하였다.

Flight control computers for unmanned aerial vehicles are avionics that require high reliability and are generally designed to be multiplexed for margins on failures. The multiplexed flight control computer should include an interface through discrete signals and CCDL for synchronization and fault separation between channels. With the development of unmanned aerial vehicle technology, various types of platforms such as AAM and LPI are being developed in the private and military, which require advanced control performance for high-performance flight control and SWaP optimization of onboard equipment. In this paper, we designed a optimized flight control computer architecture for unmanned aerial vehicles for multiplexing processing and performed a software design for input and output control. In addition, input/output processing performance was evaluated through the implemented flight control computer and input/output software.

키워드

Ⅰ. 서론

전 세계적으로 무인항공기는 군사용 뿐 아니라 교통, 통신, 물류, 항공촬영 및 농업 등에서 널리 사용되고 있다. 무인항공기는 고 신뢰성이 요구되며 일반적으로 사람이 탑승하지 않는 항공기의 경우 제어 손실 확률은 10-6 ~ 10-7, 사람이 탑승하게 될 경우 10-7 ~ 10-9으로 설계된다 [1]. 이러한 고 신뢰성을 만족시키기 위한 대표적인 설계 방법 중 하나가 HW/SW의 다중화 구조 설계다. 다중화 설계는 시스템의 일부에서 고장이 발생하더라도 시스템의 중단 없이 임무를 수행하도록 하는 설계 방법으로, 일부 시스템의 고장에 대한 마진을 두는 설계 방법이다[2]. 무인항공기에 사용되는 항전장비는 다중화 설계로 센서, 데이터링크, 비행제어컴퓨터 (FLCC; flight control computer)에 대하여 다중화 설계하는 것이 일반적이다. 비행제어컴퓨터의 다중화는 운용 방식에 따라 Active/Active 및 Active/Standby 방식이 적용된다. 다중화 설계된 비행제어컴퓨터는 보팅 및 채널간 동기화를 제공하기 위하여 Fail 및 Sync 등의 Discrete 신호처리 기능과 채널 간 통신을 위한 CCDL (cross channel data link) 기능을 제공하여 채널의 유효성을 판단하고 고장 발생 채널을 분리할 수 있어야 한다[3],[4].

본 논문에서는 AAM 및 저피탐 형상 항공기에 적용하기 위한 고성능 및 SWaP 최적화된 다중화 비행제어컴퓨터 하드웨어 아키텍처를 제안하고, 독립적 입출력을 담당하는 입출력 소프트웨어 설계를 진행 하였다. 나아가 설계된 하드웨어 및 소프트웨어를 구현하고 OFP (operational flight program) 제어 상황을 모사 하여 입출력 소프트웨어의 제어 성능을 확인하였다. 논문의 2장에서는 이중화 된 비행제어컴퓨터의 설계에 대해 제안하였다. 3장에서는 비행제어컴퓨터와 연동되는 하부 시스템 제어를 위한 입출력 소프트웨어 설계를 진행하였다. 4장에서는 2장 및 3장에서 설계한 제어모듈 및 입출력 소프트웨어를 구현하고 성능평가를 진행하였으며 5장에서는 결론을 내린다.

Ⅱ. 비행제어컴퓨터 HW 설계

2-1 비행제어컴퓨터 HW 개요 및 구성

본 논문에서 설계된 비행제어컴퓨터는 그림 1과 같으며 Active/Standby 방식으로 하나의 LRU (line replaceable unit)에 분리된 2채널 적용 다중화 구조를 설계하였다. 비행제어컴퓨터는 OFP가 탑재되어 총괄 제어를 수행하는 제어모듈과, 개별 채널로 전원을 공급하기 위한 전원모듈, 외부 커넥터 및 입력전원 필터를 포함한 터미널모듈과 각 모듈을 연결하기 위한 Backplane 보드로 구성된다. 제어모듈은 SWaP 최적화를 위하여 제어보드와 입출력보드가 통합된 형태로 구성하였으며, 인터페이스 기능의 입출력보드는 제어모듈 위에 Mezzanine 보드 형태로 VITA 46 Standard Form Factor를 적용하여 최적화 설계하였다 [5]. Safety Critical 적용 가능한 고 신뢰성 저전력 프로세서 및 FPGA 적용을 통해 소모전력을 최적화 하였으며, 이에 따른 전원모듈은 Hold-up 기능을 포함하여 하나의 모듈로 최적화 설계 하였다. 비행제어컴퓨터의 제원은 표 1과 같으며, 민간 및 군용 환경에서 운용 가능한 환경적 요구조건과 고장률을 만족하도록 설계되었다.

표 1. 비행제어컴퓨터 제원

Table. 1. Specification of FLCC

HHHHBI_2023_v27n6_763_t0001.png 이미지

HHHHBI_2023_v27n6_763_f0001.png 이미지

그림 1. 비행제어컴퓨터 구성

Fig. 1. Configuration of FLCC

비행제어컴퓨터는 항공전자 아키텍처의 주요 장비로 비행에 필요한 각종 센서들, 추진기관, 데이터링크 및 임무장비와 연동된다. 연동되는 센서로는 대기자료컴퓨터 (ADC, air data computer), 복합항법장치 (EGI, embedded GPS/INS), 레이더고도계 (RALT, radar altimeter), ADS-B (automatic dependent surveillance broadcast) 등이 있으며, 이로 부터 위치, 속도 및 자세 등의 데이터를 입력받아 제어모듈에 탑재된 OFP에서 비행제어법칙을 통해 추진기관, 로터 및 조종면을 제어한다. 비행제어컴퓨터는 이러한 장비들과 연동하기 위해 Analog/Discrete, RS232/RS422/RS485, CAN, 1553B 및 Ethernet 통신 등의 외부 인터페이스를 지원하도록 설계 하였다.

2-2 비행제어컴퓨터 HW 아키텍처 설계

비행제어컴퓨터의 주요 아키텍처를 그림 2와 같이 설계 하였다. 제어모듈과 전원모듈은 2채널로 다중화 설계를 진행하였으며, 각각 Backplane과 터미널 모듈을 통해 외부로 연동된다.

HHHHBI_2023_v27n6_763_f0002.png 이미지

그림 2. 비행제어컴퓨터 아키텍처

Fig. 2. Architecture of FLCC

전원모듈은 각각 제어모듈로 전원을 공급하게 되며 전원모듈의 모니터링 및 제어를 위해 I2C로 인터페이스 한다.

제어모듈은 CPU Processor를 중심으로 각 FPGA들과 DPRAM (dual port random access memory) 영역을 통해 EBI (external bus interface)로 인터페이스 되도록 설계 하였다. FPGA는 기능별로 3영역으로 분산하여 설계하였다. CPU FPGA는 CPU의 건전성 판단을 위한로직을 포함한다. 건전성 판단 로직에서는 전원모듈 및 제어모듈의 하드웨어 건전성 신호 와 제어모듈의 소프트웨어 건전성 신호를 판단하여 자가 채널의 건전성을 평가 하고 타 채널과 Discrete 신호로 인터페이스 하여 상대 채널의 건전성까지 판단하게 된다. 또한 CPU Processor의 EBI를 통한 메모리 접근 시 데이터의 건전성을 판단한다. 이러한 건전성을 판단하여 CPU Processor로 알리기 위한 Interrupt신호 처리 로직도 포함 된다. IOP FPGA는 CPU Processer의 시리얼 통신 부하를 줄이기 위해 다중화 된 다수의 시리얼 통신을 처리한다. 이를 위해 IOP FPGA는 내장된 ARM Core를 사용하여 보조 Processor의 역할을 수행한다. IOP FPGA에 업로드 되는 IOP Firmware는 비행제어컴퓨터 외부로 입출력되는 Discrete/Analog 신호에 대한 처리와 UART, CAN, I2C, 1553B 및 Ethernet 등의 통신 입출력 처리를 수행한다. 또한 타 채널과 CCDL을 통해 데이터를 공유하고 오류를 진단한다. IOP FPGA는 내장된 DPRAM 영역을 통해서 지정된 Command List를 운용하여 CPU Processor와 인터페이스 한다. IO FPGA는 시리얼 통신 처리에 대한 부하를 분산하기 위한 FPGA로 UART에 대한 처리를 전담한다. IO FPGA는 IO FPGA를 포함한 시리얼 통신 드라이버들을 IO Mezzanine 보드로 설계하여 제어모듈에 적층형 구조로 설계하였다. 제어모듈은 IO Mezzanine 보드를 포함하여 VPX 3U Form Factor 규격을 적용하였다.

Backplane은 전원모듈, 제어모듈, 터미널모듈 간 인터페이스를 제공한다. 다중화를 통한 외부 인터페이스 시 입출력 핀에 대한 최적화를 위해 UART 신호는 Backplane에서 임피던스 매칭을 하여 각 채널로 분기되도록 설계 하였다. 신호라인 분기를 위해 UART Transceiver/Receiver는 제어신호를 통해 Open 될 수 있도록 설계 하였다.

Ⅲ. 비행제어컴퓨터 입출력 SW 설계

3-1 입출력 SW 개요 및 구성

비행제어컴퓨터 입출력 소프트웨어는 비행제어컴퓨터로 입출력되는 데이터와 Discrete/Analog 신호처리를 수행한다. 입출력 소프트웨어는 IOP FPGA의 SoC (system on chip)에 탑재되며 해당 FPGA는 ROM (read only memory), RAM (random access memory), System Address, System Buffer, A/D (analog to digital) & D/A (digital to analog) 변환기 등을 포함하고 있다. 이중 DPRAM 영역을 통해 CPU Processor와 통신 하며, 정의된 기능을 Command List 형태로 입력받아 수행한다. Command List는 상위 Address부터 순차적으로 수행되며 End of List 인식 시 수행 종료된다. Command List는 Discrete, Analog, CCDL, CAN, UART, I2C관련 기능을 처리하고 수행 완료 여부를 인터럽트를 발생시켜 CPU Processor와 인터페이스 한다. 입출력 소프트웨어는 CPU Processor의 제어 하에 다음 기능을 수행한다.

⦁ IOP FPGA 관련 회로 자체 점검 기능

⦁ CAN 신호 처리 기능

⦁ 디스크리트 입력/출력 신호 처리 기능

⦁ 아날로그 입력/출력 신호 처리 기능

⦁ CCDL을 통한 채널 인터페이스 기능

⦁ DPRAM을 통한 CPU 인터페이스 기능

⦁ I2C를 통한 모니터 기능

3-2 입출력 SW CSC 구조 및 기능

비행제어컴퓨터 입출력 소프트웨어의 CSCI (computer software configuration Item)를 그림 3과 같이 설계 하였다. 입출력 소프트웨어는 11개의 CSC (computer software component) 로 구성되며 CSC를 구현하기 위한 하부 CSU (computer software unit)들로 구성된다. 각 CSC는 다음의 기능을 수행한다.

HHHHBI_2023_v27n6_763_f0003.png 이미지

그림 3. 입출력 소프트웨어 CSCI 구성

Fig. 3. Configuration of input/output software CSCI

⦁ 초기화 CSC : 입출력 소프트웨어의 기능 수행을 위한 메모리 및 기능 변수들의 초기화를 수행한다.

⦁ 입출력 운용 모드 CSC : 입출력 소프트웨어의 운용 상태를 정의하고 OFP가 요구하는 명령어를 정해진 시간 안에 수행하도록 운용 모드를 설정한다. 입출력 소프트웨어는 전원 인가 즉시 RESET 모드로 상태 설정을 하고 초기화 및 자체점검을 수행하여 명령 대기 상태인 IDLE 모드로 천이되며 CPU의 명령 입력 시 COMMAND 모드로 천이된다. 자체 점검 수행 후 정상 상태가 아닐 경우 DISABLE 모드로 천이 된다.

⦁ 인터럽트 CSC : 입출력 소프트웨어는 OFP로부터 수신된 명령어의 처리 및 상태를 알리기 위해 인터럽트를 발생시키고 제어 하는 기능을 수행한다. 인터럽트의 종류로는 명령어 수행 완료를 알리기 위한 COMMAND 인터럽트, Analog/Discrete 제어 및 변환 완료를 알리기 위한 A/D 변환 완료 인터럽트, 입출력 소프트웨어 자체 TIMER 기능 구동을 위한 TIMER 인터럽트, CAN 데이터 수신 및 상태를 알리기 위한 CAN 데이터 수신 인터럽트, AC Fail을 알리기 위한 AC Fail 인터럽트, Non Maskable로 인식 된 상태 발생을 알리기 위한 NMI 인터럽트 등이 있다.

⦁ 비행 기록 저장 운용 CSC : 입출력 소프트웨어를 통해 처리되는 데이터를 제어모듈 내부 FLASH에 저장하기 위한 기능으로 비행데이터 파싱 및 저장을 수행하고 비행 종료 후 저장된 데이터를 송신하는 기능을 수행한다.

IOP 자체점검 CSC : 입출력 소프트웨어가 탑재되는 IOP FPGA와 연결 된 주변 회로에 대해서 자체 점검 기능을 수행한다. 자체점검 항목으로 Discrete/Analog, CAN, UART, I2C, Memory 및 Command List등을 수행하는 Self Test 기능을 Command List 형태로 제공한다.

⦁ 명령 운용 CSC : 입출력 소프트웨어는 OFP로부터 정의된 Command List를 입력받아 동작을 수행한다. Command List로는 Discrete/Analog Command, Self Test Command, 시리얼 통신 관련 Command, CCDL Command 등이 있다. Command List는 표 2와 같다.

표 2. 입출력 소프트웨어 명령어 목록

Table. 1. Command List of input/output software

HHHHBI_2023_v27n6_763_t0002.png 이미지

Ⅳ. 제어모듈 구현 및 입출력 성능 시험

비행제어컴퓨터의 입출력 성능을 확인하기 위해서 필요한 최소 시험단위는 제어모듈 A, B 채널과 이를 연동하기 위한 Backplane이다. 시험을 위해 그림 4와 같이 본 논문에서 기술된 제어모듈을 구현하였으며 시험용 Test Backplane을 구현하여 제어모듈 A, B채널을 연동하였다. 또한 Test Backplane으로 전원공급기를 통해 전원이 인가될 수 있도록 시험을 구성하였다.

HHHHBI_2023_v27n6_763_f0004.png 이미지

그림 4. 입출력 성능평가를 위한 시험환경

Fig. 4. Test environment for input/output performance

시험은 구현된 제어모듈 내 CPU Processor를 통해 입출력 소프트웨어를 제어하고 동작 시간을 측정하여 성능을 평가 하였다. 시험에 사용된 Test Code는 CPU Processor 내에 구현되며 입출력 소프트웨어를 Test Case 별 로 제어하기 위한 제어 시퀀스와 제어시퀀스 시작과 종료를 확인할 수 있는 탐침코드를 포함하도록 구현하였다. 탐침코드는 Test Case 수행 직전에 Test Out 핀을 Hi로 출력하고 입출력 소프트웨어 구동완료를 알리는 인터럽트를 수신하여 Low로 변환되도록 구현하였다. Test Case에 따라 제어모듈을 구동시킨 후 오실로스코프를 통해 Test Out핀이 Hi로 인식된 시간을 측정하여 비행제어컴퓨터의 Command List 처리 성능을 평가 하였다.

Test Case는 비행제어컴퓨터의 OFP에서 입출력 소프트웨어 Command List를 운영할 수 있는 상황에 대하여 모사하였다. Analog, Discrete, CAN, UART, CCDL에 대하여 Test Case를 작성 하였으며 각 시험은 50회 수행 후 최대 동작 시간을 시험의 결과로 측정 하였다. Test Case 별 측정 시간은 표 3 및 그림 5와 같다. Analog에 대한 신호 처리는 1개의 신호 라인에 대하여 수행하였으며, Discrete에 대한 신호처리는 4개 라인에 대하여 수행 하였다. CAN 통신은 Tx 기준 500 kbps로 8 byte 데이터 전송을 모사하였고, UART의 경우 115.2 kbps로 32 byte 데이터 전송을 모사하였다. CCDL은 100 MHz 클럭으로 채널 간 32 byte 데이터 교환을 모사 하였다.

표 3. 입출력 소프트웨어 시험 케이스 및 결과

Table. 3. Input/output software test cases and results

HHHHBI_2023_v27n6_763_t0003.png 이미지

HHHHBI_2023_v27n6_763_f0005.png 이미지

그림 5. 시험 케이스 별 성능 측정 결과

Fig. 5. Test results for each Test case

시험 결과 Analog, Discrete, CAN, UART 및 CCDL을 모두 수행하는 Test Case 9의 경우 제어에 300.35 us가 소요됨을 확인할 수 있었다.

Ⅴ. 결론

본 논문에서는 무인항공기에 적용 가능한 고성능 및 고신뢰성의 SWaP 최적화 다중화된 비행제어컴퓨터의 설계에 대하여제안하였다. 비행제어컴퓨터는 신뢰성 충족을 위한 고장 마진을 위해 이중화된 Active/Standby 방식을 적용 가능하도록 설계하였다. 또한 제어성능 고도화를 위한 CPU Processor의 부하 분산 및 입출력 제어를 위한 입출력 소프트웨어를 설계 제안 하였다. 구현된 하드웨어 및 소프트웨어를 통해 비행제어컴퓨터의 입출력 처리 성능 평가를 진행한 결과 표3의 Test Case 9의 경우 300.35 us가 소요됨을 확인하였다. 이러한 입출력 처리 성능으로 실제 OFP를 탑재하여 제어법칙, 센서입력 및 제어명령 출력 등을 수행 한 결과 100 Hz ~ 400 Hz 수준의 제어루프 성능을 충족함을 확인 할 수 있었다.

본 논문에서 설계 및 구현된 비행제어컴퓨터와 시험결과는 고속의 제어성능을 요구하는 저피탐 형상 항공기 또는 AAM등에 적용 가능한 중소형 항공기급 개방형 항공전자 시스템 아키텍처 및 소프트웨어 개발 과제를 수행함에 있어서 선행 연구로 활용될 수있을 것으로 기대한다.

Acknowledgments

논문은 산업통상자원부 재원으로 한국산업기술평가관리원(KEIT)의 지원을 받아 수행된 연구 결과입니다. [사업명: 항공 우주부품기술개발사업-수출유망부품 및핵심기술개발 / 과제명 : 중소형 항공기급 개방형 항공전자 시스템 아키텍쳐 및 소프트웨어 개발 / 과제 고유번호: 20005378]

참고문헌

  1. S. S. Kim and C. Park, "Design for Fright Control System Focused on Reliability," Journal of The Korean Society for Aeronautical and Space Sciences, Vol. 33, No. 11, pp. 33-40, Nov. 2005. https://doi.org/10.5139/JKSAS.2005.33.11.033
  2. H. S. Yoon, "Operational Flight Program Development for the UAV Dual Flight Control Computer," in Korea Computer Congress, Jeju-do: Korea, pp. 91-93, 2019.
  3. Y. S. Lee, "Synchronization Method Design of Redundant Flight Control Computer for UAV," The Journal of Advanced Navigation Technology, Vol. 25, No. 4, pp. 273-279, Aug. 2021.
  4. T. Oh and H. S. Yoon, "A Fault Management Design of Dual-Redundant Flight Control Computer for Unmanned Aerial Vehicle," Journal of The Korean Society for Aeronautical and Space Sciences, Vol. 50, No. 5, pp. 349-357, May. 2022. https://doi.org/10.5139/JKSAS.2022.50.5.349
  5. B. Eteson, N. Chand, K. McNeill and S. Kumar. "An approach to reducing SWaP and cost for avionics high-speed optical data networks," in Proceeding of 2008 IEEE Military Communications Conference, San Diego: CA, pp, 1-7, 2008.