KR102647291B1 - 통합 모듈러 아키텍처 모델을 생성하기 위한 시스템들, 방법들 및 장치 - Google Patents

통합 모듈러 아키텍처 모델을 생성하기 위한 시스템들, 방법들 및 장치 Download PDF

Info

Publication number
KR102647291B1
KR102647291B1 KR1020190040258A KR20190040258A KR102647291B1 KR 102647291 B1 KR102647291 B1 KR 102647291B1 KR 1020190040258 A KR1020190040258 A KR 1020190040258A KR 20190040258 A KR20190040258 A KR 20190040258A KR 102647291 B1 KR102647291 B1 KR 102647291B1
Authority
KR
South Korea
Prior art keywords
ima
model
icd
definitions
aircraft
Prior art date
Application number
KR1020190040258A
Other languages
English (en)
Other versions
KR20190118126A (ko
Inventor
티모시 이. 젝슨
스티븐 엠. 왈스트롬
크리스토퍼 엠. 유예다
Original Assignee
더 보잉 컴파니
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 더 보잉 컴파니 filed Critical 더 보잉 컴파니
Publication of KR20190118126A publication Critical patent/KR20190118126A/ko
Application granted granted Critical
Publication of KR102647291B1 publication Critical patent/KR102647291B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64FGROUND OR AIRCRAFT-CARRIER-DECK INSTALLATIONS SPECIALLY ADAPTED FOR USE IN CONNECTION WITH AIRCRAFT; DESIGNING, MANUFACTURING, ASSEMBLING, CLEANING, MAINTAINING OR REPAIRING AIRCRAFT, NOT OTHERWISE PROVIDED FOR; HANDLING, TRANSPORTING, TESTING OR INSPECTING AIRCRAFT COMPONENTS, NOT OTHERWISE PROVIDED FOR
    • B64F5/00Designing, manufacturing, assembling, cleaning, maintaining or repairing aircraft, not otherwise provided for; Handling, transporting, testing or inspecting aircraft components, not otherwise provided for
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/20Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/18Manufacturability analysis or optimisation for manufacturability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Manufacturing & Machinery (AREA)
  • Transportation (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

통합 모듈러 아키텍처(IMA) 모델을 생성하기 위한 시스템들, 방법들, 장치 및 제조품들이 개시된다. 예시적인 장치는, 라이브러리들을 생성하고 그리고 IMA 모델 객체들을 생성하기 위해 제1 IMA 프로토콜 정의들을 컴퓨터 모델링 환경으로 가져오기 위한 인터페이스 임포터, 항공기의 항공기 시스템에 대응하는 제1 IMA 모델을 생성하고, 그리고 제1 IMA 모델을 포함하는 IMA 모델들을 생성함으로써 항공기에 대응하는 IMA 시스템 모델을 생성하기 위해 IMA 모델 객체들 중 IMA 모델 객체들을 컴퓨터 모델링 환경으로 가져오기 위한 모델 객체 핸들러를 포함한다. 예시적인 장치는, IMA 시스템 모델의 출력을 검증 출력과 비교함으로써 IMA 시스템 모델을 검증하기 위한 인터페이스 검증기, IMA 시스템 모델이 검증될 때 항공기 시스템의 제조 구축 명령들을 생성하기 위한 인터페이스 익스포터, 및 항공기 시스템의 생산을 개시하기 위한 보고 생성기를 더 포함한다.

Description

통합 모듈러 아키텍처 모델을 생성하기 위한 시스템들, 방법들 및 장치{SYSTEMS, METHODS, AND APPARATUS TO GENERATE AN INTEGRATED MODULAR ARCHITECTURE MODEL}
본 개시내용은 일반적으로 항공기에 관한 것으로, 보다 구체적으로는 통합 모듈러 아키텍처 모델을 생성하기 위한 시스템들, 방법들 및 장치에 관한 것이다.
최근에, 통상적인 항공기 시스템들은 항공기 시스템들의 모니터링 및 동작을 향상시키기 위해 점점 더 통합되어 왔다. 항공기 시스템들 간의 인터페이스들의 관리는 점차 복잡해지게 되었다. 항공기 시스템들의 제조 및 조립 과정에서 발견된 통합 비효율성들을 개선하기 위한 항공기 시스템들의 재설계로 인해 증가된 비용이 발생할 수 있다. 제조에 사용하기 위해 출시되기 전에 항공기 시스템 설계들의 효율성을 평가하도록 컴퓨터 생성 모델들이 사용될 수 있다.
통합 모듈러 아키텍처 모델을 생성하기 위한 시스템들, 방법들, 장치 및 제조품들이 개시된다. 예시적인 장치는, 제1 IMA 프로토콜 정의들을 기초로 복수의 라이브러리들을 생성하고 그리고 복수의 라이브러리들을 기초로 복수의 IMA 모델 객체들을 생성하기 위해 제1 IMA 프로토콜 정의들을 제1 컴퓨터 모델링 환경으로 가져오기 위한 인터페이스 임포터(importer), 항공기의 항공기 시스템에 대응하는 제1 IMA 모델을 생성하고, 그리고 제1 IMA 모델을 포함하는 복수의 IMA 모델들을 생성함으로써 항공기에 대응하는 IMA 시스템 모델을 생성하기 위해 복수의 IMA 모델 객체들 중 IMA 모델 객체들을 제1 컴퓨터 모델링 환경으로 가져오기 위한 모델 객체 핸들러를 포함한다. 예시적인 장치는, IMA 시스템 모델의 출력을 검증 출력과 비교함으로써 IMA 시스템 모델을 검증하기 위한 인터페이스 검증기, IMA 시스템 모델이 검증될 때 항공기 시스템의 제조 구축 명령들을 생성하기 위한 인터페이스 익스포터(exporter), 및 제조 구축 명령들에 기초하여 항공기 시스템의 생산을 개시하기 위한 보고 생성기를 더 포함한다.
예시적인 컴퓨터 구현 방법은, 제1 통합 모듈러 아키텍처(IMA: integrated modular architecture) 프로토콜 정의들에 기초하여 복수의 라이브러리들을 생성하기 위해 제1 IMA 프로토콜 정의들을 제1 컴퓨터 모델링 환경으로 가져오는 단계, 복수의 라이브러리들에 기초하여 복수의 IMA 모델 객체들을 생성하는 단계, 항공기의 항공기 시스템에 대응하는 제1 IMA 모델을 생성하기 위해 복수의 IMA 모델 객체들 중 IMA 모델 객체들을 제1 컴퓨터 모델링 환경으로 가져오는 단계, 제1 IMA 모델을 포함하는 복수의 IMA 모델들을 생성함으로써 항공기에 대응하는 IMA 시스템 모델을 생성하는 단계, IMA 시스템 모델의 출력을 검증 출력과 비교함으로써 IMA 시스템 모델을 검증하는 단계, 비교에 기초하여 IMA 시스템 모델을 검증하는 것에 대한 응답으로, 항공기 시스템의 제조 구축 명령들을 생성하는 단계, 및 제조 구축 명령들에 기초하여 항공기 시스템의 생산을 개시하는 단계를 포함한다.
예시적인 비-일시적 컴퓨터 판독 가능 저장 매체는, 실행될 때 기계로 하여금, 적어도, 제1 통합 모듈러 아키텍처(IMA) 프로토콜 정의들에 기초하여 복수의 라이브러리들을 생성하기 위해 제1 IMA 프로토콜 정의들을 제1 컴퓨터 모델링 환경으로 가져오게 하고, 복수의 라이브러리들에 기초하여 복수의 IMA 모델 객체들을 생성하게 하고, 항공기의 항공기 시스템에 대응하는 제1 IMA 모델을 생성하고, 그리고 제1 IMA 모델을 포함하는 복수의 IMA 모델들을 생성함으로써 항공기에 대응하는 IMA 시스템 모델을 생성하기 위해 복수의 IMA 모델 객체들 중 IMA 모델 객체들을 제1 컴퓨터 모델링 환경으로 가져오게 하고, IMA 시스템 모델의 출력을 검증 출력과 비교함으로써 IMA 시스템 모델을 검증하게 하고, 비교에 기초하여 IMA 시스템 모델이 검증될 때 항공기 시스템의 제조 구축 명령들을 생성하게 하고, 그리고 제조 구축 명령들에 기초하여 항공기 시스템의 생산을 개시하게 하는 명령들을 포함한다.
도 1은 통합 모듈러 아키텍처(IMA)를 사용하여 예시적인 항공기와 연관된 복수의 예시적인 항공기 시스템 모델들을 생성하기 위한 예시적인 시스템 작업 흐름을 도시한다.
도 2는 도 1의 항공기의 예시적인 항공기 제어 하드웨어를 통신 가능하게 결합하는 데 사용되는 예시적인 항공기 네트워크의 개략적인 예시이다.
도 3은 예시적인 모델링 환경에서 예시적인 현장 교체 품목(LRU: line-replaceable unit) 인터페이스 제어 데이터베이스(ICD: interface control database) 객체 및 LRU ICD 객체의 대응하는 예시적인 IMA 모델을 도시한다.
도 4는 본 명세서에 개시된 예들을 구현하기 위한 예시적인 모델 관리자 장치의 예시적인 구현의 블록도이다.
도 5는 예시적인 언어 중립 도메인을 통해 예시적인 데이터 소스 도메인으로부터 예시적인 언어 특정 도메인으로 예시적인 정보를 가져오는 개략적인 예시이다.
도 6은 예시적인 모델링 시스템의 예시적인 표현 계층의 예시적인 구현이다.
도 7a는 도 1의 항공기와 연관된 복수의 IMA LRU 모델들을 생성, 실행 및 검증하기 위한 예시적인 IMA 모델 생성 시스템을 도시한다.
도 7b는 도 7a의 IMA 모델 생성 시스템의 연속을 도시한다.
도 7c는 예시적인 모델링 환경과 연관된 라이브러리들을 생성하는 도 4의 모델 관리자 장치를 도시한다.
도 8은 도 1의 항공기와 연관된 IMA 시스템 모델을 생성하도록 도 4의 모델 관리자 장치를 구현하기 위해 실행될 수 있는 기계 판독 가능 명령들을 나타내는 흐름도이다.
도 9는 IMA 시스템 모델과 연관된 정의들을 모델링 환경으로 가져오도록 도 4의 모델 관리자 장치를 구현하기 위해 실행될 수 있는 기계 판독 가능 명령들을 나타내는 흐름도이다.
도 10은 IMA 시스템 모델과 연관된 모델 객체(들)를 구성하도록 도 4의 모델 관리자 장치를 구현하기 위해 실행될 수 있는 기계 판독 가능 명령들을 나타내는 흐름도이다.
도 11은 IMA 시스템 모델과 연관된 출력들을 생성하도록 도 4의 모델 관리자 장치를 구현하기 위해 실행될 수 있는 기계 판독 가능 명령들을 나타내는 흐름도이다.
도 12는 도 4의 모델 관리자 장치를 구현하기 위해 도 8 - 도 11의 명령들을 실행하도록 구조화된 예시적인 처리 플랫폼의 블록도이다.
도면들은 일정한 비율이 아니다. 일반적으로, 동일한 또는 비슷한 부분들을 나타내기 위해 도면(들) 및 수반되는 작성된 설명 전반에서 동일한 참조 번호들이 사용될 것이다.
통상적인 항공기는 고도로 통합된 항공기 시스템들을 사용하여 항공기 시스템들의 제어, 모니터링 및 동작을 향상시킨다. 본 명세서에서 사용되는 바와 같이, "항공기 시스템"이라는 용어는 항공기 기능을 수행하도록 동작하는 하나 이상의 결합된(예컨대, 전기적으로 결합된, 전기 기계적으로 결합된, 기계적으로 결합된 등) 컴포넌트들(예컨대, 전기 컴포넌트들, 기계 컴포넌트들, 전기 기계 컴포넌트들 등)을 포함하는 항공기의 일부분(예컨대, 전기 시스템, 기계 시스템, 전기 기계 시스템 등 그리고/또는 이들의 결합)을 의미한다. 예를 들어, 항공기 시스템은 모터, 제어기, 원격 전자 유닛 등과 같은 컴포넌트에 해당할 수 있다.
통상적인 항공기 시스템들은 점점 더 많은 수의 전기적으로 상호 접속된 컴포넌트들을 포함하기 때문에, 항공기 시스템의 설계를 검증하는 것은 점점 더 복잡해지고 있다. 예를 들어, 항공기 시스템을 설계하는 것은 항공기 시스템과 항공기 시스템에 전기적으로 결합된 다른 항공기 시스템들 간의 인터페이스들 및 상호 접속들을 평가하는 것을 포함할 수 있다. 제조에 사용하기 위해 출시되기 전에 상호 접속들을 분석하고 항공기 시스템 설계들을 검증하도록 컴퓨터 생성 모델들이 사용될 수 있다.
종래의 컴퓨터 생성 모델 분석 구현들에서, 복수의 상호 접속된 항공기 시스템들을 분석하기 위한 컴퓨터 생성 모델들의 사용은 문제가 있었다. 예를 들어, 제1 항공기 시스템을 시뮬레이션하는 데 사용된 제1 컴퓨터 생성 모델은 제2 컴퓨터 생성 모델을 사용하여 모델링된 제2 항공기 시스템과 비교하여 상이한 아키텍처, 상이한 분석 기준, 상이한 타이밍 분석 등을 사용했을 수 있다. 이러한 예에서, 제1 항공기 시스템과 제2 항공기 시스템 간의 상호 접속들을 검증하기 위해 제1 컴퓨터 생성 모델과 제2 컴퓨터 생성 모델을 성공적으로 통합하려는 시도는 거의 없었다.
마찬가지로, 종래의 컴퓨터 생성 모델 분석 구현들에서, 제1 컴퓨터 모델링 환경(예컨대, MATLAB® Simulink®, National Instruments® LABVIEW™, OMG SysML® 등)에 기반한 제1 모델과 제2 컴퓨터 모델링 환경에 기반한 제2 모델을 성공적으로 통합하려는 그리고/또는 달리 통신 가능하게 결합하려는 시도는 호환성 문제들을 야기했다. 예를 들어, 구성들, 정의들, 기능들 등이 컴퓨터 모델링 환경들 간에 기본적으로 다를 수 있고, 이에 따라 통합 과정에서 모델 인터페이스들 간에 호환성 문제들을 발생시킬 수 있기 때문에 호환성 문제들은 반드시 컴퓨터 기술에 뿌리를 두고 있다.
종래의 구현들에서, 상이한 컴퓨터 모델링 환경들에 기반한 모델들 간의 호환성 문제들을 해결하려는 시도들은 잘못된 데이터 및 변환 오류들을 야기했다. 종래의 일부 구현들에서, 모델 개발자는 상이한 컴퓨터 모델링 환경들을 사용하여 모델들 간에 데이터를 번역하기 위한 번역 애플리케이션 또는 인터페이스를 생성하였다. 그러나 대규모 모델들이 모델 개발자들에 의해 인쇄상의 오류들을 삽입할 많은 기회들을 만들어냈기 때문에, 변환 인터페이스를 생성하는 수동 프로세스는 인적 오류가 발생하기 쉬웠다. 마찬가지로, 모델 개발자가 개정된 양상을 설명하도록 변환 인터페이스를 업데이트하지 않고 모델들 중 하나의 양상을 개정하는 것은 전체 시스템 모델의 고장으로 이어져, 잘못된 데이터 등을 생성하였다.
종래의 일부 구현들에서, 변환 인터페이스들과 연관된 모델들은 애플리케이션들 간에 쉽게 이식 가능하지 않았다. 예를 들어, 제1 애플리케이션의 제1 변환 인터페이스와 연관된 모델은, 변환 인터페이스들이 애플리케이션 및/또는 컴퓨터 모델링 환경 특정했기 때문에 모델이 제2 애플리케이션으로 이동했을 때 제2 변환 인터페이스를 생성할 것을 요구할 것이다. 그 결과, 서로 다른 애플리케이션들 및 서로 다른 컴퓨터 모델링 환경들에 걸쳐 모델들을 재사용하려고 시도할 때 재작업이 발생하여, 프로젝트 개발을 위한 증가된 개발, 검증 및 테스트 시간으로 이어졌다.
본 명세서에 개시된 예들은 통합 모듈러 아키텍처(IMA) 모델을 생성하도록 동작한다. IMA 모델은 차량 시스템(예컨대, 항공기 시스템) 또는 차량 하위 시스템(예컨대, 항공기 하위 시스템)과 연관된 기능을 시뮬레이션하고 그리고/또는 다른 식으로 검증하는 데 사용되는 컴퓨터 생성 모델이다. 일부 예들에서, IMA 모델은 일부 항공기에서는 더 적은 수의 보다 중앙 집중식 IMA 처리 유닛들로 많은 수의 개별 프로세서들 및 현장 교체 품목(LRU)들을 대체할 수 있는 통합 모듈러 항공 전자 개념을 기반으로 한다. 어떤 항공기에서, 공통 코어 시스템은 하나 이상의 공통 코어 자원(CCR: common core resource) 캐비닛들, 또는 하나 이상의 처리 모듈들, 전력 제어 모듈들, 네트워크 스위치들, 애플리케이션 특정 모듈들 등을 포함하는 IMA 처리 유닛들 및/또는 이들의 결합을 포함한다.
본 명세서의 일부 개시된 예들에서, IMA 모델 관리자 장치는 데이터 소스 도메인에 저장된 차량(예컨대, 항공기, 무인 공중 차량, 육상(land-based) 차량 등)의 요건들 및 규격들을 언어 특정 도메인의 복수의 차량 모델들(예컨대, 100개의 차량 모델들, 1000개의 차량 모델들, 10,000개의 차량 모델들 등)로 변환(예컨대, 자동으로 변환)한다. 예를 들어, 복수의 차량 모델들 중 각각의 차량 모델은 컴퓨터 모델링 환경에서의 요건들 및 규격들의 복수의 추상화들 또는 소프트웨어 표현들을 포함할 수 있다.
일부 예들에서, IMA 모델 관리자 장치는 대규모 모델 생성의 자동화를 통해 모델 기반 개발 접근 방식에 사용될 때 네이티브 설계 도구의 기능 요건들에 따른 인터페이스 제어 데이터베이스(ICD) 정의, 유지보수, 검증, 분석 및 통합을 가능하게 하며, 따라서 서로 다른 컴퓨터 모델링 환경들과 연관된 변환 인터페이스들을 개발하는 데 소요되는 시간의 양을 줄임으로써 오류들을 없애고 프로젝트 개발 시간을 단축한다. 본 명세서에서 사용되는 바와 같이, "인터페이스 제어 데이터베이스"라는 용어는 하위 시스템들, 시스템들 등 간의 인터페이스와 연관된 인터페이스 정보(예컨대, 통신 어드레스들, 통신 노드들, 디바이스 어드레스들, 디바이스 식별자들, 물리적 접속 정보(예컨대, 전기 접촉 위치들, 핀 배치도(pinout) 세부사항들, 배선 정보 등) 등)와 연관된 정보 및/또는 이들의 결합을 포함하는 저장소를 의미한다.
일부 예들에서, 차량의 CCR 캐비닛들은 동일한 또는 실질적으로 유사한 하드웨어를 포함한다. 그러나 CCR 캐비닛들 중 각각의 CCR 캐비닛은 서로 다른 기능을 제공할 수 있으며, 서로 다른 계약자들 또는 공급업체들에 의해 차량 제조업체에 제공될 수 있다. 공급업체들 간의 또는 공급업체와 차량 제조업체 간의 통합은 이들이 동일한 CCR 캐비닛들(예컨대, 동일한 하드웨어)을 사용하더라도 문제들을 발생시킬 수 있다. 본 명세서에 개시된 예들은 IMA 모델들 간에 파라미터들 및 신호들을 전달하기 위한 표준화된 정의들을 갖는 IMA 모델들을 생성함으로써 이러한 문제들을 완화할 수 있다. 일부 예들에서, 표준화된 정의들을 갖는 IMA 모델들에는 ICD들, 모델 라이브러리들 등으로부터의 입력 데이터 및/또는 이들로부터의 출력 데이터를 번역하고 그리고/또는 다른 식으로 변형시키기 위한 메타데이터가 내장된다.
본 명세서에 개시된 일부 예들에서, 언어 중립 도메인에서 동작하는 언어 중립 모델(LNM: language neutral model)은 ICD들과 언어 특정 모델들(예컨대, 모델링 환경에서 동작하는 IMA 모델들) 사이의 버퍼로서 전개된다. 일부 예들에서, LNM은 ICD와 컴퓨터 모델링 환경 사이의 버퍼로서 동작한다. 예를 들어, IMA 모델 관리자 장치는 ICD에 포함된 정보에 기초하여 IMA 모델 객체들을 포함하는 IMA 라이브러리를 생성함으로써 IMA 모델을 생성할 수 있다. 예를 들어, IMA 모델 관리자 장치는 LNM을 통해 ICD로부터 정보를 가져와, 가져온 정보로 IMA 모델 객체들의 정의들을 채울 수 있다.
일부 예들에서, IMA 모델 관리자 장치는 IMA 라이브러리로부터 IMA 라이브러리로부터 컴퓨터 모델링 환경으로 IMA 모델 객체들을 가져옴으로써 IMA 모델을 생성하여 설계 검증, 기능 테스트 등을 수행할 수 있다. 예를 들어, LNM은 ICD의 제1 데이터 포맷팅 스키마에 기초한 ICD 번역기 메커니즘을 사용하여 ICD로부터 대응하는 정보를 얻을 수 있고, 컴퓨터 모델링 환경의 제2 데이터 포맷팅 스키마에 기초한 언어 특정 모델 번역기 메커니즘을 사용하여 컴퓨터 모델링 환경으로 정보를 전송할 수 있다. 이러한 예에서, ICD가 변경된다면, 컴퓨터 모델링 환경 또는 제2 번역기는 새로운 ICD에 영향을 받지 않게 하면서 새로운 ICD 정보를 LNM 포맷으로 변환하도록 새로운 변환 메커니즘이 개발될 수 있다.
도 1은 IMA를 사용하여 하나 이상의 예시적인 차량 모델들(104)을 생성하기 위해 예시적인 모델 생성 시스템(102)을 실행하는 예시적인 모델 관리자(100)를 도시한다. 예를 들어, 모델 관리자(100)는 IMA 모델 관리자일 수 있다. 예를 들어, 모델 생성 시스템(102)은 IMA 모델 생성 시스템일 수 있다. 예를 들어, 차량 모델들(104)은 항공기 시스템 모델들, 무인 공중 차량 시스템 모델들, 육상 차량 모델들 등일 수 있다. 도 1에서, 차량 모델들(104)은 예시적인 항공기(108)에 포함된 예시적인 항공기 시스템(106)과 연관된 하나 이상의 컴퓨터 기반 모델 객체들을 포함하는 모델들이다. 예를 들어, 항공기 시스템(106)은 하나 이상의 전기 컴포넌트들, 전기 기계 컴포넌트들, 유압 컴포넌트들 등을 포함하는 에일러론(aileron) 작동 시스템, 플랩 작동 시스템 등일 수 있다. 도 1에는 항공기(108)가 도시되어 있지만, 본 명세서에 개시된 예들은 추가로 또는 대안으로, 육상 차량(예컨대, 자동차, 버스, 트럭 등), 무인 공중 차량, 수중 차량(예컨대, 보트, 잠수함 등) 등과 같은 임의의 다른 타입의 차량에 적용 가능할 수 있다.
도 1에서, 모델 생성 시스템(102)은 제1 동작(112)을 포함하는 모델 관리 작업 흐름(110)을 구현한다. 대안으로, 모델 관리 작업 흐름(110)은 도 1에 도시된 다른 블록 또는 동작에서 시작 또는 실행될 수 있다. 대안으로, 모델 관리 작업 흐름(110)은 도 1에 도시된 것보다 더 적은 또는 더 많은 동작들을 포함할 수 있다. 제1 동작(112)에서, 모델 관리자(100)는 ICD(114)로의 변환을 위한 모델(들)을 식별한다. 예를 들어, 모델 관리자(100)는 LRU, 원격 데이터 집중기(RDC: remote data concentrator), CCR 캐비닛에 포함된 일반 처리 모듈(GPM: general processing module) 등과 같은 ICD에서 정의될 항공기 시스템 컴포넌트와 연관된 컴퓨터 기반 모델을 식별할 수 있다.
도 1의 예시된 예에서, 모델 관리 작업 흐름(110)은 모델 관리자(100)가 모델-ICD 변환들을 생성하는 제2 동작(116)을 포함한다. 예를 들어, 모델 관리자(100)는 모델 정의들(예컨대, 모델 입력 파라미터들, 모델 출력 파라미터들 등)과 ICD 정의들 간의 매핑들을 생성할 수 있다. ICD 정의들은 ICD의 데이터 포맷에 기초하여 데이터 필드들, 데이터 구조들 등에 대응할 수 있다. 예를 들어, 모델 관리자(100)는 기능 상태, 파라미터, 데이터 세트, 메시지 구조, 통신 포트 등과 같은 표준 데이터 필드들을 항공기 시스템 컴포넌트에 할당함으로써 변환들을 생성할 수 있다. 모델 관리자(100)는 항공기 시스템 컴포넌트에 대응하는 정보를 사용하여 표준 데이터 필드들을 채울 수 있다. 표준 데이터 필드들을 채우는 것에 대한 응답으로, 모델 관리자(100)는 모델 관리자(100)에 의한 저장 및 추후의 검색을 위해 변환들을 ICD(114)로 내보낼 수 있다.
일부 예들에서, 모델 관리자(100)는 항공기 시스템 컴포넌트를 ICD(114) 내의 기준 항공기 시스템 컴포넌트(예컨대, 이전에 정의된 항공기 시스템 컴포넌트)에 매핑함으로써 변환들을 생성한다. 예를 들어, 기준 항공기 시스템 컴포넌트에 대한 항공기 시스템 컴포넌트의 일치를 결정하는 것에 대한 응답으로, ICD(114)는 모델 관리자(100)에 의해 항공기 시스템 컴포넌트에 할당될 그리고/또는 다른 식으로 적용될 정의들을 반환할 수 있다. 예를 들어, 모델 관리자(100)는 기준 항공기 시스템 컴포넌트와 연관된 정의들을 항공기 시스템 컴포넌트에 할당 및/또는 다른 식으로 적용할 수 있다.
도 1에서, 모델 관리 작업 흐름(110)은 모델 관리자(100)가 모델-ICD 변환들을 사용하여 모델(들)을 생성하는 제3 동작(118)을 포함한다. 예를 들어, 모델 관리자(100)는 관심 항공기 시스템 컴포넌트에 대한 IMA 모델을 생성할 수 있다. 모델 관리자(100)는 컴퓨터 모델링 환경(CME: computer modeling environment)에서 관심 항공기 시스템 컴포넌트와 연관된 ICD 모델 객체들 및 대응하는 ICD 정의들에 대해 ICD(114)를 질의할 수 있다. 질의에 대한 응답으로, ICD(114)는 ICD 모델 객체들을 반환할 수 있고, 모델 관리자(100)는 ICD 모델 객체들을 CME 모델 객체들로 변환할 수 있다. 모델 관리자(100)는 ICD 모델 객체들과 연관된 ICD 정의들을 CME 모델 객체들과 연관된 CME 정의들로 번역할 수 있다.
일부 예들에서, 모델 관리자(100)는 반환된 ICD 정의들에 포함된 구성 파라미터들을 하나 이상의 IMA 정의 규칙들과 비교함으로써 ICD 정의들을 검증한다. 반환된 ICD 정의들이 하나 이상의 IMA 정의 규칙들을 충족하는 것에 대한 응답으로, 모델 관리자(100)는 번역된 모델들(120) 및/또는 번역된 모델 라이브러리들(120)을 생성할 수 있다. 예를 들어, 모델 관리자(100)는 IMA 모델에 포함된 그리고/또는 IMA 모델과 연관된 하나 이상의 모델 객체들, 로직 조건들, 접속 포인트들 등을 생성할 수 있다.
도 1에서, 모델 관리자(100)는 번역된 모델들(120) 및/또는 번역된 모델 라이브러리들(120)을 사용하여 차량 모델(들)(104)을 실행하여 모델 출력들을 생성한다. 예를 들어, 모델 관리자(100)는 차량 모델(들)(104)을 실행하여 모델 출력들을 생성함으로써 항공기(108)의 항공기 시스템(106)의 기능 또는 동작 모드를 시뮬레이션할 수 있다.
도 1에서, 항공기 시스템(106)은 예시적인 출력들(124)을 생성함으로써 제4 동작(122)에서 제품으로 출시된다. 예를 들어, 대응하는 차량 모델(들)(104)을 시뮬레이션함으로써 항공기 시스템(106)의 동작을 성공적으로 검증하는 것에 대한 응답으로, 모델 관리자(100)는 항공기 시스템(106)이 조립, 건설, 제조 등을 위해 출시됨을 나타내는 출력, 이를테면 경보, 보고 등을 생성할 수 있다.
일부 예들에서, 출력들(124)은 공급 체인 구축 명령들이다. 예를 들어, 모델 관리자(100)는 차량 모델들(104) 중 하나 이상을 포함하는 IMA 시스템 모델과 연관된 항공기 시스템(106)을 구축하기 위해 컴포넌트들의 순서화, 노동 할당 등을 개시하도록 공급 체인 컴퓨팅 시스템에 의해 실행될 명령들을 생성할 수 있다. 다른 예에서, 모델 관리자(100)는 공급 체인 구축 명령들을 포함하는 보고를 생성할 수 있다. 예를 들어, 공급 체인 구축 명령들은 IMA 시스템 모델과 연관된 항공기 시스템(106)을 구축하는 것과 연관된 도면들, 요건 문서들, 규격 문서들, ICD 문서들 등을 포함할 수 있다.
일부 예들에서, 출력들(124)은 제조 구축 명령들이다. 예를 들어, 모델 관리자(100)는 차량 모델들(104) 중 하나 이상을 포함하는 IMA 시스템 모델과 연관된 항공기 시스템(106)을 구축하기 위해 컴포넌트들의 제조, 노동 할당 등을 개시하도록 제조 컴퓨팅 시스템에 의해 실행될 명령들을 생성할 수 있다. 다른 예에서, 모델 관리자(100)는 제조 구축 명령들을 포함하는 보고를 생성할 수 있다. 예를 들어, 제조 구축 명령들은 IMA 시스템 모델(754)과 연관된 항공기 시스템을 구축하는 것과 연관된 도면들, 요건 문서들, 규격 문서들, ICD 문서들 등을 포함할 수 있다.
일부 예들에서, 출력들(124)은 기계 판독 가능 명령들이다. 예를 들어, 모델 관리자(100)는 항공기(108), 항공기(108)와 연관된 비행 시뮬레이터 등에 의해 전개될 번역된 모델들(120)을 기초로 컴퓨터 판독 가능 명령들(예컨대, 2진 코드, 하드웨어 로직 명령들 등)을 생성할 수 있다. 예를 들어, 출력들(124)은 번역된 모델들(120)에 포함된 기능들을 구현하기 위한 2진 코드일 수 있다. 하나 이상의 하드웨어 회로들이 비행 중에 항공기(108)의 하나 이상의 항공기 시스템들(106)을 작동시키도록 2진 코드를 전개할 수 있다. 대안으로, 비행 시뮬레이터가 비행 중에 항공기(108)의 하나 이상의 항공기 시스템들(106)을 시뮬레이션하도록 2진 코드를 실행할 수 있다.
도 2는 도 1의 항공기(108)의 예시적인 항공기 제어 하드웨어를 통신 가능하게 결합하는 데 사용되는 예시적인 항공기 네트워크(200)의 개략적인 예시이다. 도 2의 항공기 네트워크(200)는 IMA를 기반으로 하는데, 이는 예시적인 공통 코어 자원(CCR) 캐비닛(202)에 포함되는 공통 코어 자원들을 포함한다. 도 2에서, CCR 캐비닛(202)은 하나 이상의 프로세서들, 하나 이상의 그래픽 처리 유닛들, 하나 이상의 네트워크 인터페이스들 등, 그리고/또는 이들의 결합을 포함할 수 있는 컴퓨팅 하드웨어 플랫폼인 예시적인 일반 처리 모듈(GPM)(204)을 포함한다.
도 2의 GPM(204)은 예시적인 소프트웨어 파티션들(206a, 208a, 210a)을 포함하는데, 여기서 소프트웨어 파티션들(206a, 208a, 210a) 각각은 서로 다른 항공기 시스템 기능들을 실행할 수 있다. 파티션 1(206a)은 GPM(204)에 포함된 제1 파티션일 수 있고, 파티션 2(208a)는 GPM(204)에 포함된 제2 파티션일 수 있고 파티션 3(210a)은 GPM(204)에 포함된 제3 파티션일 수 있다. 도 2에서, 파티션 1(206a)은 예시적인 소프트웨어 통신 포트(SW COM PORT)(206b) 및 제1 예시적인 호스팅되는 애플리케이션(206c)을 포함한다. 소프트웨어 통신 포트(206b)는 파티션 1(206a)을 제1 예시적인 A664 종단 시스템(214)에 결합하는 데 사용되는 하나 이상의 큐잉(queueing) 및/또는 샘플링 포트들에 대응할 수 있다. 예를 들어, 도 2의 소프트웨어 통신 포트(206b)는 GPM(204)과 항공기 네트워크(200)에 포함된 다른 컴포넌트 간의 통신을 가능하게 하기 위한 ARINC 653 통신 프로토콜 수신 포트 및 ARINC 653 통신 프로토콜 송신 포트 등의 소프트웨어 추상화일 수 있다.
도 2에서, 도 2의 제1 호스팅되는 애플리케이션(206c)은 항공기 시스템 기능과 연관된 소프트웨어 작업을 실행 및/또는 다른 식으로 수행할 수 있는 소프트웨어 애플리케이션이다. 마찬가지로, 도 2에서, 파티션 2(208a)는 제2 예시적인 소프트웨어 통신 포트(208b) 및 제2 예시적인 호스팅되는 애플리케이션(208c)을 포함한다. 예를 들어, 소프트웨어 통신 포트(208b)는 ARINC 653 통신 프로토콜 수신 포트, ARINC 653 통신 프로토콜 송신 포트 등의 소프트웨어 추상화일 수 있다. 일부 예들에서, 제2 호스팅되는 애플리케이션(208c)은 제1 호스팅되는 애플리케이션(206c)과 동일한 소프트웨어 애플리케이션인 한편, 다른 예들에서 제1 호스팅되는 애플리케이션(206c)과 제2 호스팅되는 애플리케이션(208c)은 서로 다르다.
도 2에서, GPM(204)은 예시적인 코어 운영 시스템(OS: operating system)(212) 및 제1 A664 종단 시스템(214)을 포함한다. 도 2의 코어 OS(212)는 소프트웨어 파티션들(206a, 208a, 210a)이 작동하는 기본 운영 시스템이다. 제1 A664 종단 시스템(214)은 예시적인 CCR 네트워크 스위치(NS: network switch)(218)로부터 데이터 패킷들을 수신하고 수신된 데이터 패킷들을 소프트웨어 파티션들(206a, 208a, 210a)에 의한 사용을 위해 추출할 수 있는 하드웨어 제어기인 예시적인 네트워크 인터페이스 제어기(NIC: network interface controller)(216)를 포함한다. 마찬가지로, 제1 A664 종단 시스템(214)은 소프트웨어 파티션들(206a, 208a, 210a)로부터 데이터 패킷들의 추상화들을 수신할 수 있고 CCR NS(218)를 통해 송신될 데이터 패킷들을 추상화들에 기초하여 생성할 수 있다. CCR NS(218)는 광섬유 네트워크 스위치이다. 대안으로, 구리 기반 이더넷 스위치들과 같은 다른 타입들의 네트워크 스위치들이 사용될 수 있다.
도 2의 예시된 예에서, CCR 캐비닛(202)의 CCR NS(218)는 제2 A664 종단 시스템(220)을 포함하는 예시적인 애플리케이션 특정 모듈(ASM: application specific module)(219)에 통신 가능하게 결합된다. ASM(219)은 제2 A664 종단 시스템(220)을 통해 데이터를 획득, 송신 및/또는 처리하기 위한 하드웨어 및/또는 소프트웨어이다. CCR NS(218)는 예시적인 NS(222)를 통해 CCR 캐비닛(202)을 항공기 네트워크(200)에 결합한다. NS(222)는 ARINC 664(A664) 통신 프로토콜을 통한 통신을 가능하게 한다. 예를 들어, NS(222)는 A664 통신 프로토콜을 통해 A664 현장 교체 품목(LRU)(224)과 원격 데이터 집중기(RDC)(226) 간의 통신을 가능하게 할 수 있다. 그러나 ARINC 429(A429)와 같은 대안적인 통신 프로토콜들이 사용될 수 있다.
도 2에서, A664 LRU(224)는 제3 예시적인 A664 종단 시스템(228)을 사용하여 A664 통신을 가능하게 할 수 있는 하나 이상의 프로세서들, 하나 이상의 네트워크 인터페이스들 등을 포함하는 모듈러 하드웨어이다. 도 2의 RDC(226)는 이펙터 데이터, 센서 데이터 등을 처리하고 A429, A664 등과 같은 통신 프로토콜을 통해 공통 디지털 포맷으로 포맷팅하는 것이 가능하게 된 고속 모듈러 아날로그-디지털 및/또는 디지털-아날로그 변환 컴퓨팅 디바이스이다. 예를 들어, 도 2에 도시된 바와 같이, RDC(226)는 예시적인 센서(230)로부터 데이터(예컨대, 아날로그 신호, 이산 신호 등)를 획득하고, 커맨드(예컨대, 제어 신호)를 예시적인 이펙터(232)에 송신한다. 도 2에서, RDC(226)는 A429 통신 프로토콜을 통해 A429 종단 시스템(236)을 포함하는 A429 LRU(234)로 데이터를 송신하고 A429 LRU(234)로부터 데이터를 수신한다. 도 2에서, RDC(226)는 예시적인 제어기 영역 네트워크(CAN: controller area network) 버스(238)(예컨대, CAN 통신 프로토콜 기반 버스)에 통신 가능하게 결합된다. 도 2에서, CAN 버스(238)는 제1 예시적인 CAN LRU(240) 및 제2 예시적인 CAN LRU(242)(예컨대, CAN, CAN 기반 LRU 등을 통한 통신이 가능하게 된 LRU)에 통신 가능하게 결합된다.
도 3은 예시적인 모델링 환경(304)에서 예시적인 LRU ICD 객체(300) 및 대응하는 예시적인 모델(302)을 도시한다. 도 3에서, LRU ICD 객체(300)는 도 1의 ICD(114)에 포함된 소프트웨어 추상화인데, 이는 고레벨 인터페이스로 저레벨 하드웨어 세부사항들을 억제할 수 있다. 예를 들어, LRU ICD 객체(300)는 도 2의 A664 LRU(224), A429 LRU(234), 제1 CAN LRU(240) 또는 제2 CAN LRU(242)에 대응하는 하드웨어 및/또는 소프트웨어의 고레벨 표현에 대응할 수 있다. 도 3의 LRU ICD 객체(300)는 LRU에 대응하지만, 도 3과 관련하여 설명되는 바와 같이, 대안으로 임의의 다른 하드웨어 및/또는 소프트웨어가 추상화되거나 표현될 수 있다.
도 3에서, LRU ICD 객체(300)는 예시적인 ICD 애플리케이션 정의들(308)을 포함하는 예시적인 ICD 애플리케이션 블록(306)을 포함한다. ICD 애플리케이션 블록(306)은 LRU 상에서 실행되는 소프트웨어(예컨대, 애플리케이션 소프트웨어)에 의해 수행되는 기능의 표현이다. ICD 애플리케이션 정의들(308)은 도 1의 ICD(114)에 의해 사용되는 하나 이상의 데이터 포맷들에 기초하여 LRU의 제어 로직 기능들의 데이터 구조들을 나타낸다. 도 3에서, ICD 애플리케이션 정의들(308)은 제1 기능 상태 정의(309a), 제2 기능 상태 정의(309b), 제1 파라미터 정의(311a), 제2 파라미터 정의(311b), 제1 데이터 세트 정의(313a), 제2 데이터 세트 정의(313b) 및 메시지 구조 정의(315)를 포함한다. 대안으로, ICD 애플리케이션 정의들(308)은 도 3의 예시된 예에 도시된 기능 상태 정의들(309a, 309b), 파라미터 정의들(311a, 311b), 데이터 세트 정의들(313a, 313b) 및/또는 메시지 구조 정의들(315)보다 더 많이 또는 더 적게 포함할 수 있다.
도 3에서, 파라미터 정의들(311a, 311b)은 신호 데이터의 캡슐화에 대응할 수 있다. 예를 들어, 파라미터 정의들(311a, 311b)은 임의의 타입의 데이터 포맷의 데이터 값을 포함할 수 있다. 도 3에서, 데이터 세트 정의들(313a, 313b)은 복수의 파라미터 정의들(311a, 311b)과 연관된 일관성을 제공할 수 있다. 예를 들어, 제1 데이터 세트 정의들(313a)은 제1 데이터 소스와 연관된 인터페이스 정보에 대응할 수 있고, 제2 데이터 세트 정의들(313b)은 제2 데이터 소스와 연관된 인터페이스 정보에 대응할 수 있다. 예를 들어, 파라미터 정의들(311a, 311b)은 대응하는 기능 상태 정의들(309a, 309b)과 연관되며, 동일한 데이터이지만 다른 소스로부터의 데이터에 대응할 수 있다. 예를 들어, 제1 파라미터 정의(311a)는 제1 기능 상태 정의(309a)에 대응할 수 있고, 제2 파라미터 정의(311b)는 제2 기능 상태 정의(309b)에 대응할 수 있다. 제1 파라미터 정의(311a)는 도 2의 CAN LRU 1(240)로부터 획득된 항공기 시스템의 상태에 대응할 수 있다. 제2 파라미터 정의(311b)는 동일한 상태이지만 도 2의 CAN LRU 2(242)로부터 획득된 상태에 대응할 수 있다.
도 3의 예시된 예에서, 기능 상태 정의들(309a, 309b)은 데이터 세트 정의들(313a, 313b)과 연관된 메타데이터에 대응할 수 있다. 예를 들어, 기능 상태 정의들(309a, 309b)은 연관된 데이터(예컨대, 파라미터 정의들(311a, 311b))의 상태를 평가 및/또는 다른 식으로 결정함으로써 연관된 데이터의 유효성을 기술할 수 있다. 예를 들어, 상태는 "Fail/Warn" 상태, "No Computed Data" 상태, "Normal Operation State" 상태 또는 "Functional Test" 상태일 수 있다. 예를 들어, 제1 기능 상태 정의(309a)는 CAN LRU 1(240)이 응답하지 않기 때문에 검증되지 않은 데이터 값을 갖는 제1 파라미터 정의(311a)에 대응하는 "Fail/Warn" 상태를 가질 수 있는 한편, 제2 파라미터 정의(311b)는 검증된 데이터 값을 갖는다.
일부 예들에서, "Fail/Warn State"는 제1 파라미터 정의(311a)의 소스가 응답하지 않음을 나타내는 경고를 제공한다. 제1 파라미터 정의(311a)가 응답하지 않는 것에 대한 응답으로, 모델 관리자(100)는 제2 파라미터 정의(311b)와 연관된 검증된 데이터 값을 선택할 수 있다. 일부 예들에서, 제1 기능 상태 정의(309a)는 LRU ICD 객체(300)에 제공할 이용 가능한 데이터 값을 갖지 않는 제1 파라미터 정의(311a)에 대응하는 "No Computed Data" 상태를 가질 수 있다. 일부 예들에서, 제1 기능 상태 정의(309a)는 검증된 데이터 값이 제1 파라미터 정의(311a)와 연관될 때 "Normal Operation State"를 가질 수 있다. 일부 예들에서, 제1 기능 상태 정의(309a)는 모델 테스트 동작 동안 제1 파라미터 정의(311a)와 연관된 데이터 값이 계산될 때 "Functional Test" 상태를 가질 수 있다.
도 3에서, 메시지 구조 정의(315)는 ICD 애플리케이션 블록(306)과 연관된 하나 이상의 데이터 세트 정의들의 조립 또는 구성에 대응할 수 있다. 예를 들어, 메시지 구조 정의(315)는 ICD 애플리케이션 블록(306)의 모든 데이터 세트 정의들(313a, 313b)을 포함할 수 있다. 추가로 또는 대안으로, ICD 애플리케이션 정의들(308)은 도 3에 도시된 ICD 애플리케이션 정의들(308)보다 더 적거나 더 많이 포함할 수 있다.
일부 예들에서, ICD(114)에 포함된 각각의 LRU는 서로 다른 값들을 갖는 동일한 ICD 애플리케이션 정의들(308)을 갖는다. 예를 들어, 도 2의 A664 LRU(224)는 도 2의 A429 LRU(234)와 동일한 ICD 애플리케이션 정의들(308)을 포함할 수 있지만, A664 LRU(224)는 A429 LRU(234)와 비교하여, 기능 상태 정의들(309a, 309b), 파라미터 정의들(311a, 311b), 데이터 세트 정의들(313a, 313b) 등에 대한 서로 다른 값들을 가질 수 있다. 그러한 예들에서, 서로 다른 타입들의 LRU는 모든 각각의 유사한 또는 실질적으로 유사한 컴포넌트에 대해 표준화된 ICD 애플리케이션 정의들(308)을 사용함으로써 도 1의 제2 동작(116) 동안 도 1의 ICD(114)에서 신속하고 정확하게 인스턴트화될 수 있다. 예를 들어, 각각의 LRU는 동일한 ICD 애플리케이션 정의들(308)을 가질 수 있고, 각각의 A664 종단 시스템은 다른 A664 종단 시스템들과 동일한 ICD 애플리케이션 정의들을 가질 수 있는 식이다.
도 3에서, LRU ICD 객체(300)는 ICD 인터페이스 정의들(312)을 포함하는 예시적인 ICD 인터페이스 블록(310)을 포함한다. ICD 인터페이스 블록(310)은 ICD에 의해 정의된 바와 같이 통신 종단 시스템에 의해 수행되는 통신 기능들의 표현이다. 예를 들어, ICD 인터페이스 블록(310)은 도 2의 제1 A664 종단 시스템(214), 제2 A664 종단 시스템(220), 제3 A664 종단 시스템(228) 또는 A429 종단 시스템(236)에 대응하는 하드웨어 및/또는 소프트웨어의 추상화에 대응할 수 있다.
도 3에서, ICD 인터페이스 정의들(312)은 도 1의 ICD(114)에 의해 사용되는 하나 이상의 데이터 포맷들에 기초하여 LRU의 통신 기능들과 연관된 데이터 구조들을 나타낸다. 도 3에서, ICD 인터페이스 정의들(312)은 통신(COM: communication) 포트 정의, 가상 링크(VL: virtual link) 정의 및 서브 VL 정의를 포함한다. 도 3에서, COM 포트 정의는 소켓이다. 예를 들어, COM 포트 정의는 모델 객체, 애플리케이션, 컴퓨팅 디바이스 등으로의 송신 메시지들 또는 이들로부터의 수신 메시지들의 큐잉을 제공하는 미리 구성된 통신 소켓에 대응할 수 있다. 예를 들어, COM 포트 정의는 도 2의 파티션 1(206a)과 같은 소프트웨어 파티션을 도 2의 제1 A664 종단 시스템(214)과 같은 통신 종단 시스템에 결합하는 데 사용되는 큐잉 포트 또는 샘플링 포트에 대응할 수 있다.
도 3에서, VL 정의는 선택된 통신 프로토콜에 기초한 스위치드 패킷 라우팅 방식을 나타낸다. 예를 들어, VL 정의는 A664 파트 7 표준에 정의된 스위치드 패킷 라우팅 방식에 대응할 수 있는데, 여기서는 목적지 MAC 어드레스가 VL 식별 지정자마다 트리형 경로를 구현하는 데 사용된다. 도 3에서, 서브 VL 정의는 데이터를 송신하기 전에 VL 정의에 액세스함으로써 데이터의 캡슐화를 호출하기 위해 송신기에 의해 사용되는 프로세스를 나타낸다. 예를 들어, 서브 VL 정의는 캡슐화된 데이터를 송신하기 위해 도 2의 NIC(216)와 같은 송신기에 의해 사용되는 데이터 포맷으로 COM 포트로부터의 데이터를 캡슐화하기 위한 명령을 포함할 수 있다. 추가로 또는 대안으로, ICD 인터페이스 정의들(312)은 도 3에 도시된 정의들보다 더 적거나 더 많이 포함할 수 있다.
도 3의 예시된 예에서, 모델(302)은 IMA 모델 객체들(314, 316)을 포함하는 IMA 모델이다. 도 3에서, 모델 관리자(100)는 모델링 환경(304)으로 IMA 모델 객체들(314, 316)을 가져오고 모델링 환경(304)으로 LRU ICD 객체(300)로부터의 정보를 번역하는 것에 기초하여 IMA 정의들(318, 320)을 채움으로써 모델링 환경(304)에서 모델(302)을 생성한다.
도 3에서, 모델(302)은 모델링 환경(304)으로 번역될 그리고/또는 다른 식으로 가져올 때의 LRU ICD 객체(300)의 대응하는 추상화이다. 도 3에서, 모델링 환경(304)은 MATLAB® Simulink®이다. 대안으로, 임의의 다른 컴퓨터 기반 모델링 환경이 사용될 수 있다. 모델(302)은 LRU ICD 객체(300)가 ICD 데이터 포맷과 같은 제1 데이터 포맷에서 제2 데이터 포맷으로 이식 및/또는 다른 식으로 변환될 때 생성되며, 여기서 제2 데이터 포맷은 모델링 환경(304)에 특정하다. 그러나 이전 구현들에서, LRU ICD 객체(300)가 도 3의 모델링 환경(304)과는 다른 모델링 환경으로 변환될 때, 도 3의 모델(302)과는 다를 수 있는 제2 모델이 생성된다. 일부 예들에서는, 도 3의 모델(302)을 제2 모델에 결합하려고 시도할 때 통합 문제들이 발생한다. 본 명세서에 개시된 예들은 이러한 이전 구현들의 통합 문제들을 해결한다.
도 3에서, 모델(302)은 항공기 시스템 설계를 시뮬레이션 및/또는 다른 식으로 검증하기 위한 IMA 모델 객체들(314, 316)을 포함한다. IMA 모델 객체들(314, 316)은 IMA 애플리케이션 모델 객체(314) 및 IMA 인터페이스 모델 객체(316)를 포함한다. 도 3의 IMA 애플리케이션 모델 객체(314)는 LRU ICD 객체(300)의 ICD 애플리케이션 정의들(308)과 연관된 예시적인 IMA 애플리케이션 정의들(318)을 포함한다. 도 3에서, IMA 애플리케이션 정의들(318)은 메시지 구조 정의(315)와 연관된 메타데이터 파라미터들을 나타낸다. 예를 들어, IMA 애플리케이션 모델 객체(314)의 IMA 애플리케이션 정의 "FUNCTIONAL STATUS A_MESSAGE"는 ICD 애플리케이션 정의들(308)에 정의된 “기능 상태(FUNCTIONAL STATUS)" ICD 애플리케이션 정의에 대응할 수 있으며, 여기서 IMA 애플리케이션 정의는 ICD 애플리케이션 정의들(308)에 포함된 데이터 세트 정의들(313a, 313b) 및 메시지 구조 정의(315)에 기초하여 구성된다. IMA 애플리케이션 정의들(318)은 애플리케이션 로직의 실행에 기초한 값들의 추상화들에 대응한다. 예를 들어, IMA 애플리케이션 정의 "FUNCTIONAL STATUS A_MESSAGE"는 하나 이상의 변환 또는 스케일링 기능들을 기초로 압력 센서 측정에 대한 엔지니어링 값을 계산하는 압력 센서 계산 기능의 출력 값에 대응할 수 있다.
도 3의 IMA 인터페이스 모델 객체(316)는 ICD 인터페이스 정의들(312)과 연관된 예시적인 IMA 인터페이스 정의들(320)을 포함한다. 예를 들어, IMA 인터페이스 정의 "TX_COM_PORT_10121"은 ICD 인터페이스 정의들(312)에 정의된 "COM PORT" ICD 인터페이스 정의에 대응할 수 있으며, 여기서 IMA 인터페이스 정의는 ICD 인터페이스 정의들(312)에 정의된 서브 VL(SUB-VL) 및 VL ICD 인터페이스 정의들을 기초로 구성된다. IMA 인터페이스 정의들(320)은 서로 다른 모델 블록들 및/또는 서로 다른 모델들을 상호 접속하는 데 사용되는 소프트웨어 포트들의 추상화들에 대응한다.
도 3에서, IMA 인터페이스 정의들(320)은 send() 함수 호출, recv() 함수 호출, write() 함수 호출, read() 함수 호출, recvfrom() 함수 호출 등과 같은 소켓 애플리케이션 프로그래밍 인터페이스(API: application programming interface)에 대응할 수 있다. 예를 들어, IMA 인터페이스 정의 "TX_COM_PORT_10121"은 대응하는 "FUNCTIONAL STATUS A_MESSAGE"의 값을 수신하여 함수를 수행하거나 소프트웨어 로직 루틴을 실행하는 다른 모델 및/또는 다른 모델 블록에 포함된 링크 또는 포인터에 대응할 수 있다.
도 3에서, IMA 인터페이스 모델 객체(316)는 LRU의 소프트웨어 계층과 LRU의 하드웨어 계층의 결합을 시뮬레이션하기 위한 예시적인 네트워크 포트 모델 객체들(322)을 포함한다. 예를 들어, 네트워크 포트 모델 객체들(322)은 A664 네트워크 포트 모델 객체들일 수 있다. 예를 들어, 네트워크 포트 모델 객체들(322)은 A664 통신 프로토콜을 통해 송신될 IMA 인터페이스 정의들(320)에 결합된 IMA 애플리케이션 정의들(318)을 사용하여 데이터 패킷들을 생성하는 것을 시뮬레이션할 수 있다.
도 4는 본 명세서에서 설명되는 예들을 구현하기 위한 도 1 및 도 3의 모델 관리자(100)의 예시적인 구현의 블록도이다. 도 4의 예시된 예에서, 모델 관리자(100)는 예시적인 모델링 환경 선택기(410), 예시적인 데이터 소스 선택기(420), 예시적인 인터페이스 임포터(430), 예시적인 인터페이스 익스포터(440), 예시적인 모델 객체 핸들러(450), 예시적인 ICD 번역기(460), 예시적인 언어 특정 모델(LSM: language specific model) 번역기(470), 예시적인 인터페이스 검증기(480) 및 예시적인 보고 생성기(490)를 포함한다.
도 4의 예시된 예에서, 모델 관리자(100)는 도 3의 모델(302)과 같은 IMA 모델을 생성할 모델링 환경을 결정하기 위한 모델링 환경 선택기(410)를 포함한다. 일부 예들에서, 모델링 환경 선택기(410)는 도 1의 항공기(108)의 항공기 시스템(106)과 연관된 IMA 모델을 생성할 LSM 환경을 선택한다. 예를 들어, 모델링 환경 선택기(410)는 MATLAB®Simulink®를 선택하여 모델(302)을 생성할 수 있다. 일부 예들에서, 모델링 환경 선택기(410)는 다른 모델을 생성할지 여부를 결정한다. 예를 들어, 모델링 환경 선택기(410)는 모델(302)이 생성되고, 검증되고 그리고/또는 도 1의 ICD(114)로 내보내진 후에 제2 모델을 생성할 것을 결정할 수 있다.
도 4의 예시된 예에서, 모델 관리자(100)는 모델링할 항공기 시스템과 연관된 인터페이스 제어 데이터 소스를 결정하기 위한 데이터 소스 선택기(420)를 포함한다. 일부 예들에서, 인터페이스 제어 데이터 소스는 데이터베이스, 스프레드시트(예컨대, 골든 스프레드시트) 등, 또는 임의의 다른 타입의 인터페이스 제어 문서 또는 정보이다. 예를 들어, 모델 관리자(100)는 도 1의 ICD(114)를 선택할 수 있다.
도 4의 예시된 예에서, 모델 관리자(100)는 인터페이스 제어 데이터 소스로부터 데이터를 검색 및/또는 다른 식으로 획득하는 인터페이스 임포터(430)를 포함한다. 일부 예들에서, 인터페이스 임포터(430)는 인터페이스 제어 데이터 소스로부터 정의들을 획득하여 도 3의 모델(302)과 같은 상위 레벨 추상화 모델을 채운다. 예를 들어, 인터페이스 임포터(430)는 도 1의 ICD(114)로부터 도 3의 IMA 애플리케이션 정의들(318), IMA 인터페이스 정의들(320) 등과 연관된 ICD 애플리케이션 정의들(308), ICD 인터페이스 정의들(312) 등을 얻을 수 있다. 일부 예들에서, 인터페이스 임포터(430)는 인터페이스 제어 데이터 소스로부터 ICD 블록들을 획득하여 모델(302)을 채운다. 예를 들어, 인터페이스 임포터(430)는 도 1의 ICD(114)로부터 ICD 애플리케이션 블록(306), ICD 인터페이스 블록(310) 등을 얻을 수 있다. 일부 예들에서, 인터페이스 임포터(430)는 모델 라이브러리들을 생성한다. 예를 들어, 인터페이스 임포터(430)는 IMA 애플리케이션 정의들(318), IMA 인터페이스 정의들(320) 등의 생성에 대한 응답으로 모델링 환경(304)의 하나 이상의 라이브러리들을 생성할 수 있다.
도 4의 예시된 예에서, 모델 관리자(100)는 IMA 모델과 연관된 데이터를 송신 및/또는 다른 식으로 내보내기 위한 인터페이스 익스포터(440)를 포함한다. 일부 예들에서, 인터페이스 익스포터(440)는 IMA 정의들을 ICD로 내보낸다. 예를 들어, 인터페이스 익스포터(440)는 도 3의 모델링 환경(304)으로부터 도 1의 ICD(114)로 IMA 애플리케이션 정의들(318), IMA 인터페이스 정의들(320) 등 중 하나 이상을 내보낼 수 있다. 일부 예들에서, 인터페이스 익스포터(440)는 IMA 모델 객체들을 ICD로 내보낸다. 예를 들어, 인터페이스 익스포터는 IMA 애플리케이션 모델 객체(314), IMA 인터페이스 모델 객체 등 중 하나 이상을 모델링 환경(304)으로부터 ICD(114)로 내보낼 수 있다. 일부 예들에서, 인터페이스 익스포터(440)는 도 3의 모델(302)과 같은 IMA 모델을 모델링 환경(304)으로부터 ICD(114)로 내보낸다.
일부 예들에서, 인터페이스 익스포터(440)는 IMA 모델에 기초하여 출력들을 생성한다. 예를 들어, 인터페이스 익스포터(440)는 도 3의 모델(302)을 기반으로 기계 판독 가능 명령들(예컨대, 2진 코드)을 생성할 수 있다. 예를 들어, 인터페이스 익스포터(440)는 모델(302)과 연관된 정보를 컴퓨터 실행 가능 코드로 컴파일 및/또는 다른 식으로 변환할 수 있다. 예를 들어, 인터페이스 익스포터(440)는 IMA 애플리케이션 모델 객체(314) 및 연관된 제어 로직, IMA 인터페이스 모델 객체(316) 및 연관된 제어 로직, IMA 애플리케이션 정의들(318), IMA 인터페이스 정의들(320) 등, 그리고/또는 이들의 결합을 항공기 시스템(106), 항공기(108), 항공기(108)와 연관된 비행 시뮬레이터 등에 의해 실행될 수 있는 기계 판독 가능 명령들로 컴파일할 수 있다. 일부 예들에서, 인터페이스 익스포터(440)는 차량 및/또는 차량 시뮬레이터에 기계 판독 가능 명령들을 전개한다. 예를 들어, 인터페이스 익스포터(440)는 항공기 시스템(106), 항공기(108) 등 그리고/또는 항공기 시스템(106), 항공기(108) 등과 연관된 비행 시뮬레이터에 기계 판독 가능 명령들을 전개할 수 있다. 일부 예들에서, 인터페이스 익스포터(440)는 차량 및/또는 차량 시뮬레이터의 동작을 지시, 명령 및/또는 다른 식으로 야기한다. 예를 들어, 인터페이스 익스포터(440)는 항공기 시스템(106), 항공기(108) 등에 포함된 기존의 기계 판독 가능 명령들을 인터페이스 익스포터(440)에 의해 생성된 기계 판독 가능 명령들로 대체하도록 항공기 시스템(106), 항공기(108) 등에 명령할 수 있다. 그러한 예에서, 인터페이스 익스포터(440)는 인터페이스 익스포터(440)에 의해 생성된 기계 판독 가능 명령들을 사용하여 항공기 시스템(106), 항공기(108) 등이 비행 동작, 모의 비행 동작 등과 같은 동작을 수행하게 할 수 있다.
일부 예들에서, 인터페이스 익스포터(440)는 도 3의 모델(302)에 기초하여 공급 체인 및 제조 구축 명령들을 생성한다. 예를 들어, 인터페이스 익스포터(440)는, 도 1의 ICD(114), 도 3의 모델(302) 등에 포함되어 모델(302)과 연관된 항공기 시스템(106)이 도 1의 제4 동작(122)에서 생산을 위해 출시될 수 있음을 나타내는 정보에 기초하여, 요건들, 규격들 등을 생성할 수 있다. 예를 들어, 인터페이스 익스포터(440)는 항공기 시스템(106), 항공기(108) 등의 하나 이상의 프로토타입들, 하나 이상의 생산 라인 조립체들 등의 구축을 개시하도록 항공기 시스템(106) 및/또는 보다 일반적으로는 항공기(108)의 제조 및 공급 체인과 연관된 하나 이상의 컴퓨팅 디바이스들 또는 시스템들에 지시 또는 명령할 수 있다. 예를 들어, 인터페이스 익스포터(440)는 IMA 시스템 모델과 연관된 차량 시스템의 제조를 개시할 수 있다. 예를 들어, 인터페이스 익스포터(440)는 생성된 공급 체인 및/또는 제조 구축 명령들에 기초하여 항공기 시스템(106) 및/또는 항공기(108)의 생산을 개시할 수 있다.
도 4의 예시된 예에서, 모델 관리자(100)는 모델링 환경에 포함된 모델들을 가져오고, 구성하고 그리고/또는 수정하기 위한 모델 객체 핸들러(450)를 포함한다. 일부 예들에서, 모델 객체 핸들러(450)는 관심 모델 블록을 가져와 처리한다. 예를 들어, 모델 객체 핸들러(450)는 IMA 애플리케이션 모델 객체(314), IMA 인터페이스 모델 객체(316) 등을 모델링 환경(304)으로 가져와 처리할 수 있다. 일부 예들에서, 모델 객체 핸들러(450)는 IMA 모델과 연관된 2개 이상의 모델 객체들을 접속한다. 예를 들어, 모델 객체 핸들러(450)는 도 3의 IMA 애플리케이션 모델 객체(314)와 IMA 인터페이스 모델 객체(316)를 접속 또는 통신 가능하게 결합하여 모델(302)에서 블록 간 관계들을 생성할 수 있다.
일부 예들에서, 모델 객체 핸들러(450)는 처리할 모델 객체를 선택하고 그리고/또는 처리할 다른 모델 객체를 선택할지 여부를 결정한다. 일부 예들에서, 모델 객체 핸들러(450)는 IMA 모델과 연관된 정의를 조정한다. 예를 들어, 모델 객체 핸들러(450)는 도 3의 IMA 애플리케이션 정의들(318)에 포함된 IMA 애플리케이션 정의 "FUNCTIONAL STATUS A_MESSAGE"에 대응하는 정의를 조정할 수 있다. 일부 예들에서, 모델 객체 핸들러(450)는 도 3의 모델링 환경(304)에서 새로운 모델 객체를 생성한다. 예를 들어, 모델 객체 핸들러(450)는 블랭크 모델 객체를 생성하고 하나 이상의 IMA 애플리케이션 정의들, 하나 이상의 IMA 인터페이스 정의들 등을 모델링 환경(304)에 포함시킴으로써 새로운 모델 객체를 생성할 수 있고, 이어서 새로운 모델 객체 관계들 및 새로운 모델 객체와 연관된 모델 객체 접속들을 생성할 수 있다. 예를 들어, 모델 객체들은 IMA 컴포넌트들에 대응할 수 있다. 모델 객체 관계들 및 모델 객체 연결들은 소프트웨어 파티션에서 종단 시스템으로의 소프트웨어 연결들에 대응할 수 있다. 예를 들어, 모델 객체 관계들 및 모델 객체 접속들은 도 2의 제1 내지 제3 소프트웨어 파티션들(206a, 208a, 210a)을 도 2의 제1 A664 종단 시스템(214)에 통신 가능하게 결합하는 큐잉 및 샘플링 포트들에 대응할 수 있다. 일부 예들에서, 모델 객체 핸들러(450)는 하나 이상의 IMA 모델들을 생성하는 것에 대한 응답으로 IMA 시스템 모델을 생성할 수 있다.
도 4의 예시된 예에서, 모델 관리자(100)는 도 1의 ICD(114)에 포함된 데이터를 ICD 데이터 포맷에서 언어 중립 모델(LNM) 데이터 포맷으로 변형 및/또는 다른 식으로 변환하기 위한 ICD 번역기(460)를 포함한다. 예를 들어, ICD 번역기(460)는 ICD-LNM 번역기일 수 있다. ICD 번역기(460)는 (1) ICD(114)와 연관된 ICD 데이터 포맷의 ICD(114)로부터의 ICD 애플리케이션 정의들(308)을 (2) LNM과 연관된 LNM 데이터 포맷으로 LNM에 포함된 LNM 정의들로 변환할 수 있다. 예를 들어, ICD 번역기(460)는 LRU ICD 객체(300)와 같은 관심 ICD 객체를 선택할 수 있고, LNM에서 LRU ICD 객체(300)를 인스턴스화하고, LNM에서 인스턴스화된 객체와 연관된 LNM 정의들을 ICD 애플리케이션 정의들(308), ICD 인터페이스 정의들(312) 등으로 채울 수 있다.
도 4의 예시된 예에서, 모델 관리자(100)는 LNM에 포함된 데이터를 LNM 데이터 포맷에서 LSM 데이터 포맷으로 변형 및/또는 다른 식으로 변환하기 위한 LSM 번역기(470)를 포함한다. 예를 들어, LSM 번역기(470)는 LNM-LSM 번역기일 수 있다. 예를 들어, LSM 번역기(470)는 IMA 애플리케이션 모델 객체(314)와 같은 관심 IMA 모델 객체를 선택할 수 있고, 모델링 환경(304)에서 IMA 애플리케이션 모델 객체(314)를 인스턴스화할 수 있으며, IMA 애플리케이션 정의들(318)을 LNM에 포함된 대응하는 LNM 정의들로 채울 수 있는데, 이러한 LNM 정의들은 ICD(114)에 포함된 ICD 애플리케이션 정의들(308)에 대응한다. 예를 들어, 각각의 IMA 모델 객체에 대한 LNM 모델 객체가 있다. 각각의 모델 객체는 동일한 수와 타입들의 속성들 및 엘리먼트들을 포함하며, 따라서 LNM 모델 객체들과 IMA 모델 객체들 사이의 데이터가 동기화될 수 있다. 예를 들어, IMA 애플리케이션 정의들(318)과 연관된 LNM에 포함된 LNM 정의들은 동일한 수와 타입들의 속성들 및 엘리먼트들을 포함하였다.
일부 예들에서, LSM 번역기(470)는 (1) LNM에 특정한 LNM 데이터 포맷으로 LNM에 포함된 LNM 정의들을 (2) 도 3의 모델링 환경(304)에 특정한 LSM 데이터 포맷의 IMA 애플리케이션 정의들(318), IMA 인터페이스 정의들(320) 등으로 변환한다. 일부 예들에서, LSM 번역기(470)는 표현 계층을 생성한다. 예를 들어, LSM 번역기(470)는 표현 계층을 생성하여, 표현 계층에 대한 상위 계층을 지원하도록 포맷 변환들, 암호화/복호화 등을 포함하는 메시지 데이터의 신택스 처리를 다루는 것과 같은 작업들을 담당하는 네트워크 계층을 시뮬레이션할 수 있다. 예를 들어, LSM 번역기(470)는 도 6과 관련하여 아래에서 설명되는 바와 같이 표현 계층(600)을 생성할 수 있다.
도 4의 예시된 예에서, 모델 관리자(100)는 번역된 정보가 정의 규칙들(예컨대, ICD 정의 규칙들, LNM 정의 규칙들, IMA 정의 규칙들 등)에 따름을 확인 및/또는 다른 식으로 검증하기 위한 인터페이스 검증기(480)를 포함한다. 일부 예들에서, 인터페이스 검증기(480)는 ICD 정보를 검증한다. 예를 들어, 인터페이스 검증기(480)는 ICD(114)에 저장될 정보를 ICD 정의 규칙과 비교할 수 있고, 비교에 기초하여 정보가 검증될 때 ICD(114)에 정보를 저장할 수 있다. 일부 예들에서, 인터페이스 검증기(480)는 LNM 정보를 검증한다. 예를 들어, 인터페이스 검증기(480)는 LNM에 저장될 정보를 LNM 정의 규칙과 비교할 수 있고, 비교에 기초하여 정보가 검증될 때 LNM에 정보를 저장할 수 있다.
일부 예들에서, 인터페이스 검증기(480)는 LSM 정보를 검증한다. 예를 들어, 인터페이스 검증기(480)는 LSM(예컨대, 도 3의 모델링 환경(304))으로 가져올 정보를 IMA 정의 규칙과 비교할 수 있고, 비교에 기초하여 정보가 검증될 때 LSM으로 정보를 가져올 수 있다. 일부 예들에서, 인터페이스 검증기(480)는 ICD, LNM 및/또는 LSM 정보를 검증하지 않는 것에 대한 응답으로 경보를 생성한다. 예를 들어, 인터페이스 검증기(480)는 IMA 시스템 모델의 동작을 중단시키고 오류 메시지, 경보 등을 생성할 수 있다. 일부 예들에서, 경보는 사용자 인터페이스에 송신되어 사용자에게 ICD, LNM 및/또는 LSM 정보가 정의 규칙들을 준수하도록 수정될 필요가 있음을 통보한다. 예를 들어, 사용자는 모델 객체가 정의 규칙을 준수하도록 모델 객체와 연관된 정의를 수정할 수 있다.
일부 예들에서, 인터페이스 검증기(480)는 IMA 시스템 모델을 실행한다. 예를 들어, 인터페이스 검증기(480)는 도 3의 모델(302)의 실행, 구동, 작동 등을 실행하여 하나 이상의 출력들을 생성할 수 있다. 예를 들어, 인터페이스 검증기(480)는 이펙터, 센서, 네트워크 스위치 등과 같은 항공기 시스템 컴포넌트의 출력을 생성할 수 있다. 예를 들어, 인터페이스 검증기(480)는 모델(302)을 실행하여 도 2의 이펙터(232)의 상태, 이를테면 이펙터(232)가 디세이블되는 것, 인에이블되는 것, 지정된 용량 또는 전력 비율에서 작동하는 것 등을 시뮬레이션할 수 있다. 다른 예에서, 인터페이스 검증기(480)는 모델(302)을 실행하여, 도 2의 센서(230)의 측정, 이를테면 센서(230)가 압력, 속도, 온도 등을 측정하는 것을 시뮬레이션할 수 있다. 또 다른 예에서, 인터페이스 검증기(480)는 모델(302)을 실행하여, 도 2의 NS(222)의 파라미터, 이를테면 대역폭, 레이턴시, 스루풋, IP 어드레스, 매체 액세스 제어(MAC: media access control) 어드레스, 통신 프로토콜 파라미터 등을 시뮬레이션할 수 있다.
일부 예들에서, 인터페이스 검증기(480)는 IMA 시스템 모델의 출력에 기초하여 IMA 시스템 모델을 검증한다. 예를 들어, 인터페이스 검증기(480)는 모델(302)의 출력(예컨대, 센서(230)의 압력 측정, NS(222)의 레이턴시 등)을 검증 출력과 비교함으로써 도 3의 모델(302)을 검증할 수 있고, 비교에 기초하여 모델(302)을 검증할 수 있다. 예를 들어, 검증 출력은 모델(302)의 기대 값에 대응할 수 있다. 예를 들어, 인터페이스 검증기(480)는 모델(302)의 출력을 대응하는 검증 출력과 비교하고, 검증 출력과 실질적으로 일치(예컨대, 일치 또는 허용 오차 내에서 일치)시킴으로써 출력이 검증 출력을 충족시키는지 여부를 결정할 수 있다. 일부 예들에서, 인터페이스 검증기(480)는 하나 이상의 출력들을 하나 이상의 대응하는 검증 출력들과 비교함으로써 도 3의 모델(302)을 검증할 수 있고, 비교에 기초하여 하나 이상의 출력들이 하나 이상의 대응하는 검증 출력들을 충족시킴을 결정할 수 있다.
도 4에 예시된 예에서, 모델 관리자(100)는 모델 관리자(100)에 의해 실행된 동작에 기초하여 보고를 생성하기 위한 보고 생성기(490)를 포함한다. 일부 예들에서, 보고 생성기(490)는 모델 관리자(100)가 IMA 모델을 생성할 때 보고를 생성한다. 예를 들어, 보고 생성기(490)는 IMA 애플리케이션 모델 객체(314), IMA 인터페이스 모델 객체(316), IMA 애플리케이션 정의들(318), IMA 인터페이스 정의들(320) 등, 그리고/또는 이들의 결합 중 하나 이상이 검증되면(예컨대, LSM 정의 규칙에 대한 비교를 기초로, LNM으로부터 가져온 LNM 정의들이 검증되면) 보고를 생성할 수 있다.
일부 예들에서, 보고 생성기(490)는 도 1의 출력들(124)을 포함하는 보고를 생성함으로써 동작을 개시한다. 예를 들어, 보고 생성기(490)는 모델(302)로 모델링된 도 2의 A664 LRU(224)가 생산을 위해 출시될 수 있음을 나타내는 보고를 생성할 수 있다. 보고는 기계 판독 가능 명령들, 공급 체인 구축 명령들, 제조 구축 명령들 등 중 적어도 하나를 포함할 수 있다. 예를 들어, 보고 생성기(490)는 모델(302)이 A664 LRU(224), 도 1의 항공기 시스템(106) 등과 연관된 증명 및/또는 검증 테스트 기능을 성공적으로 실행했음을 결정할 수 있다. 예를 들어, 보고 생성기(490)는 보고를 생성하고 보고를 포함하는 경보, 통보 등을 다른 컴퓨팅 시스템, 이를테면 대응하는 모델(302)이 실행 및/또는 검증되었을 때 제조 주문들, 프로토타입 제조 주문들 등을 생성하여 A664 LRU(224), 항공기 시스템(106) 등을 생산하도록 구성된 공급 체인 컴퓨팅 시스템 또는 제조 컴퓨팅 시스템에 송신함으로써 항공기 시스템(106) 및/또는 보다 일반적으로는, 도 1의 항공기(108)의 생산을 개시할 수 있다. 예를 들어, 보고 생성기(490)는 제조 구축 명령들, 공급 체인 구축 명령들, 기계 판독 가능 명령들 등 중 적어도 하나에 기초하여 항공기 시스템(106) 및/또는 보다 일반적으로는 항공기(108)의 생산을 개시할 수 있다.
도 1 및 도 3의 모델 관리자(100)를 구현하는 예시적인 방식이 도 4에 예시되지만, 도 4에 예시된 엘리먼트들, 프로세스들 및/또는 디바이스들 중 하나 이상이 결합되고, 분리되고, 재배열되고, 생략되고, 제거되고 그리고/또는 임의의 다른 방식으로 구현될 수 있다. 또한, 모델링 환경 선택기(410), 데이터 소스 선택기(420), 인터페이스 임포터(430), 인터페이스 익스포터(440), 모델 객체 핸들러(450), ICD 번역기(460), LSM 번역기(470), 인터페이스 검증기(480), 보고 생성기(490), 및/또는 보다 일반적으로는, 도 1 및 도 3의 모델 관리자(100)는 하드웨어, 소프트웨어, 펌웨어 그리고/또는 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 결합으로 구현될 수 있다. 따라서 예를 들어, 모델링 환경 선택기(410), 데이터 소스 선택기(420), 인터페이스 임포터(430), 인터페이스 익스포터(440), 모델 객체 핸들러(450), ICD 번역기(460), LSM 번역기(470), 인터페이스 검증기(480), 보고 생성기(490), 및/또는 보다 일반적으로는 모델 관리자(100) 중 임의의 것은 하나 이상의 아날로그 또는 디지털 회로(들), 로직 회로들, 프로그래밍 가능 프로세서(들), 프로그래밍 가능 제어기(들), 그래픽 처리 유닛(들)(GPU(graphics processing unit)(들)), 디지털 신호 프로세서(들)(DSP(digital signal processor)(들)), 주문형 집적 회로(들)(ASIC(application specific integrated circuit)(들)), 프로그래밍 가능 로직 디바이스(들)(PLD(programmable logic device)(들)) 및/또는 필드 프로그래밍 가능 로직 디바이스(들)(FPLD(field programmable logic device)(들))에 의해 구현될 수 있다. 순전히 소프트웨어 및/또는 펌웨어 구현을 커버하는 것으로 본 특허의 장치 또는 시스템 청구항들 중 임의의 청구항을 이해할 때, 모델링 환경 선택기(410), 데이터 소스 선택기(420), 인터페이스 임포터(430), 인터페이스 익스포터(440), 모델 객체 핸들러(450), ICD 번역기(460), LSM 번역기(470), 인터페이스 검증기(480) 및/또는 보고 생성기(490) 중 적어도 하나는 소프트웨어 및/또는 펌웨어를 포함하는 비-일시적 컴퓨터 판독 가능 저장 디바이스 또는 저장 디스크, 이를테면 메모리, 디지털 다기능 디스크(DVD: digital versatile disk), 콤팩트 디스크(CD: compact disk), 블루레이 디스크 등을 포함하는 것으로 이로써 명백히 정의된다. 또 추가로, 도 1 및 도 3의 모델 관리자(100)는 도 4에 예시된 것들에 추가로 또는 그 대신에, 하나 이상의 엘리먼트들, 프로세스들 및/또는 디바이스들을 포함할 수 있고, 그리고/또는 예시된 엘리먼트들, 프로세스들 및 디바이스들 중 임의의 것 또는 전부 중 하나보다 많이 포함할 수 있다. 본 명세서에 사용된 바와 같이, "통신 중"이라는 문구는 그 변형들을 포함하여, 하나 이상의 중간 컴포넌트들을 통한 직접 통신 및/또는 간접 통신을 포괄하고, 직접적인 물리적(예컨대, 유선) 통신 및/또는 일정한 통신을 필요로 하는 것이 아니라, 그보다는 추가로, 주기적인 간격들, 예정된 간격들, 비주기적인 간격들 및/또는 일회성 이벤트들에서의 선택적 통신을 포함한다.
도 5는 예시적인 언어 중립 도메인(506)을 통해 예시적인 데이터 소스 도메인(502)으로부터 예시적인 언어 특정 도메인(504)으로 정보를 가져오는 개략적인 예시이다. 도 5에서, 데이터 소스 도메인(502)은 제1 예시적인 ICD 소스(508), 제2 예시적인 ICD 소스(510) 및 제3 예시적인 ICD 소스(512)와 같은 예시적인 ICD 소스들을 포함한다. 제1 ICD 소스(508) 및 제2 ICD 소스(510)는 데이터베이스들이다. 제3 ICD 소스(512)는 하나 이상의 문서들(예컨대, 스프레드시트들, 요건 문서들, 규격 문서들 등)의 세트를 나타낸다.
도 5에서, 제1 ICD 소스(508)는 제1 ICD 프로토콜 정의들(514)을 포함한다. 예를 들어, 제1 ICD 프로토콜 정의들(514)은 제1 통신 프로토콜과 연관된 ICD 정의들(예컨대, 도 3의 ICD 애플리케이션 정의들(308), ICD 인터페이스 정의들(312) 등)일 수 있다. 예를 들어, 제1 통신 프로토콜은 A429 통신 프로토콜일 수 있다. 예를 들어, 제1 ICD 프로토콜 정의들(514)은 A429 통신 포트들을 구현하기 위한 하나 이상의 A429 통신 포트들 및/또는 제어 로직에 대응하는 ICD 정의들을 포함할 수 있다. 예를 들어, 제1 ICD 프로토콜 정의들(514)은 A429 종단 시스템(236) 및/또는 보다 일반적으로는 도 2의 A429 LRU(234)와 연관된 큐잉 및/또는 샘플링 포트들에 대응할 수 있다.
일부 예들에서, 제1 ICD 프로토콜 정의들(514)과 같은 ICD 프로토콜 정의들은 도 1의 항공기 시스템(106)과 연관된 인터페이스 정보, 요건 정보, 규격 정보 등일 수 있다. 예를 들어, 제1 ICD 프로토콜 정의들(514)은 통신 포트 정보(예컨대, IP 어드레스, 매체 액세스 제어(MAC) 어드레스, 통신 프로토콜 어드레스 등), 커넥터 핀 배치도 정보, 배선 정보 등을 포함하는, 도 2의 NS(222)와 연관된 인터페이스 정보일 수 있다. 다른 예에서, 제1 ICD 프로토콜 정의들(514)은 항공기 시스템(106)에 포함된 컴포넌트들의 양 및/또는 타입, 이를테면 도 2의 항공기 네트워크(200) 내의 네트워크 스위치들의 수량, 이펙터(232) 및/또는 센서(230)의 타입, 도 2의 GPM(204)에 의해 사용되는 파티션들의 수 등과 같은 요건 정보일 수 있다. 또 다른 예에서, 제1 ICD 프로토콜 정의들(514)은 항공기 시스템 컴포넌트의 성능 정보(예컨대, NS(222)의 대역폭, 데이터 스루풋, 레이턴시 등), 항공기 시스템 컴포넌트의 펌웨어 버전 정보, 항공기 시스템 컴포넌트의 소프트웨어 버전 정보 등일 수 있다.
도 5에서, 제2 ICD 소스(510)는 제2 ICD 프로토콜 정의들(516)을 포함한다. 예를 들어, 제2 ICD 프로토콜 정의들(516)은 제2 통신 프로토콜과 연관된 ICD 정의들일 수 있다. 예를 들어, 제2 통신 프로토콜은 A664 통신 프로토콜일 수 있다. 예를 들어, 제2 ICD 프로토콜 정의들(516)은 A664 통신 포트들을 구현하기 위한 하나 이상의 A664 통신 포트들 및/또는 제어 로직에 대응하는 ICD 정의들을 포함할 수 있다. 예를 들어, 제2 ICD 프로토콜 정의들(516)은 제1 A664 종단 시스템(214) 및/또는 보다 일반적으로는 도 2의 GPM(204)과 연관된 큐잉 및/또는 샘플링 포트들에 대응할 수 있다. 도 5에서, 제3 ICD 소스(512)는 제2 ICD 프로토콜 정의들(516)과 연관된 정보를 포함하는 문서들을 포함한다. 예를 들어, 제3 ICD 소스(512)는 A664 통신 포트들을 구현하기 위한 하나 이상의 A664 통신 포트들 및/또는 제어 로직에 대응하는 ICD 정의들을 포함하는 문서들을 포함할 수 있다.
제1 ICD 소스(508), 제2 ICD 소스(510) 및/또는 제3 ICD 소스(512)는 휘발성 메모리(예컨대, 동기식 동적 랜덤 액세스 메모리(SDRAM: Synchronous Dynamic Random Access Memory), 동적 랜덤 액세스 메모리(DRAM: Dynamic Random Access Memory), 램버스 동적 랜덤 액세스 메모리(RDRAM: RAMBUS Dynamic Random Access Memory) 등) 및/또는 비휘발성 메모리(예컨대, 플래시 메모리)에 의해 구현될 수 있다. 제1 ICD 소스(508), 제2 ICD 소스(510) 및/또는 제3 ICD 소스(512)는 추가로 또는 대안으로, 하나 이상의 2배속 데이터(DDR: double data rate) 메모리들, 이를테면 DDR, DDR2, DDR3, DDR4, 모바일 DDR(mDDR: mobile DDR) 등에 의해 구현될 수 있다. 제1 ICD 소스(508), 제2 ICD 소스(510) 및/또는 제3 ICD 소스(512)는 추가로 또는 대안으로, 하드디스크 드라이브(들), 콤팩트 디스크 드라이브(들), 디지털 다기능 디스크 드라이브(들), 고체 상태 드라이브들 등과 같은 하나 이상의 대용량 저장 디바이스들에 의해 구현될 수 있다. 예시된 예에서, 제1 ICD 소스(508), 제2 ICD 소스(510) 및 제3 ICD 소스(512)는 단일 데이터베이스 또는 단일 세트의 데이터베이스들로서 예시되지만, 제1 ICD 소스(508), 제2 ICD 소스(510) 및 제3 ICD 소스(512)는 임의의 수 및/또는 타입(들)의 데이터베이스들 또는 문서들의 세트들에 의해 구현될 수 있다.
도 5의 예시된 예에서, 모델 관리자(100)는 제1 ICD 번역기(520), 제2 ICD 번역기(522) 및 제3 ICD 번역기(524)를 통해 언어 중립 도메인(506)에 포함된 언어 중립 모델(LNM)(518)과 데이터 소스 도메인(502) 간에 데이터를 변환한다. 예를 들어, 도 4의 ICD 번역기(460)는 제1 내지 제3 ICD 번역기들(520, 522, 524)을 구현할 수 있다. 예를 들어, 도 4의 ICD 번역기(460)는 (1) 제1 ICD 소스(508)에 의해 지정된 ICD 데이터 포맷으로 제1 ICD 소스(508)에 포함된 제1 ICD 프로토콜 정의들(514)을 (2) LNM(518)에 의해 지정된 LNM 데이터 포맷으로 LNM(518)에 포함된 제1 LNM 프로토콜 정의들(526)을 변환하도록 제1 ICD 번역기(520)를 구현할 수 있다. 일부 예들에서, 인터페이스 임포터(430)는 제1 내지 제3 ICD 번역기들(520, 522, 524)을 구현하도록 ICD 번역기(460)에 명령한다.
다른 예에서, ICD 번역기(460)는 (1) 제2 ICD 소스(510)에 의해 지정된 ICD 데이터 포맷으로 제2 ICD 소스(510)에 포함된 제2 ICD 프로토콜 정의들(516)을 (2) LNM(518)에 의해 지정된 LNM 데이터 포맷으로 LNM(518)에 포함된 LNM 프로토콜 정의들(528)로 변환하도록 제2 ICD 번역기(522)를 구현할 수 있다. 또 다른 예에서, ICD 번역기(460)는 (1) 제3 ICD 소스(512)에 의해 지정된 ICD 데이터 포맷으로 제3 ICD 소스(512)에 포함된 제2 ICD 프로토콜 정의들(516)을 (2) LNM(518)에 의해 지정된 LNM 데이터 포맷으로 LNM(518)에 포함된 제2 LNM 프로토콜 정의들(528)을 변환하도록 제3 ICD 번역기(524)를 구현할 수 있다.
도 5에서, 제1 LNM 프로토콜 정의들(526)은 제1 ICD 프로토콜 정의들(514)과 연관된 언어 중립 정의들이다. 본 명세서에서 사용되는 바와 같이, "언어 중립 정의"라는 용어는 데이터 소스 도메인(502) 및 언어 특정 도메인(504)과 독립적으로, 항공기 컴포넌트, 항공기 하위 시스템, 항공기 시스템 등의 기능에 대응하는 제어 로직 기능들 및 연관된 구성 파라미터들의 데이터 구조들을 지칭한다. 예를 들어, 언어 중립 정의는 ICD 정의 및/또는 언어 특정 정의와 동일한 값의 속성 또는 엘리먼트를 포함할 수 있지만 ICD 정의 또는 언어 특정 정의에 의해 사용되지 않는 데이터 포맷 또는 데이터 구조로 포함할 수 있다. 따라서 데이터 소스 도메인(502)에 포함된 ICD 소스 또는 언어 특정 도메인(504)에 포함된 모델링 환경은 LNM(518)에 포함된 언어 중립 정의들(예컨대, 제1 LNM 프로토콜 정의들(526), 제2 LNM 프로토콜 정의들(528) 등)에 영향을 주지 않으면서 추가, 제거 또는 수정될 수 있다.
도 5에서, 제1 LNM 프로토콜 정의들(526) 및 제2 LNM 프로토콜 정의들(528)에 포함된 데이터의 포맷은 제1 ICD 소스(508), 제2 ICD 소스(510) 또는 제3 ICD 소스(512) 중 처리할 ICD 소스의 선택과는 관계가 없다. 예를 들어, 제1 LNM 프로토콜 정의들(526)에 포함된 정보는 선택된 정의 또는 제1 ICD 소스(508), 제2 ICD 소스(510) 또는 제3 ICD 소스(512) 중 하나의 선택과 관계없이 동일한 데이터 포맷을 유지한다. 그 결과, 모델 관리자(100)가 제1 ICD 소스(508), 제2 ICD 소스(510) 또는 제3 ICD 소스(512) 중 하나 이상을 수정할 때 LNM(518)은 영향을 받지 않는데, LNM(518)은 제1 내지 제3 ICD 번역기들(520, 522, 524) 중 하나를 통해 제1 ICD 소스(508), 제2 ICD 소스(510) 또는 제3 ICD 소스(512)와 상호 작용하기 때문이다.
도 5에서, 제1 LNM 프로토콜 정의들(526)은 제1 ICD 프로토콜 정의들(514)과 동일한 수와 타입들의 속성들 및 엘리먼트들을 포함할 수 있다. 제1 LNM 프로토콜 정의들(526)에 포함된 정보는 제1 ICD 프로토콜 정의들(514)과 동일한 통신 프로토콜과 연관된다. 예를 들어, 제1 LNM 프로토콜 정의들(526)은 A429 통신 프로토콜에 대응할 수 있다. 예를 들어, 제1 LNM 프로토콜 정의들(526)은 A429 통신 포트들을 구현하기 위한 하나 이상의 A429 통신 포트들 및/또는 제어 로직에 대응하는 언어 중립 정의들을 포함할 수 있다. 예를 들어, 제1 LNM 프로토콜 정의들(526)은 A429 종단 시스템(236) 및/또는 보다 일반적으로는 도 2의 A429 LRU(234)와 연관된 큐잉 및/또는 샘플링 포트들에 대응할 수 있다.
도 5에서, 제2 LNM 프로토콜 정의들(528)은 제2 ICD 프로토콜 정의들(516)과 동일한 수와 타입들의 속성들 및 엘리먼트들을 포함할 수 있다. 제2 LNM 프로토콜 정의들(528)에 포함된 정보는 제2 ICD 프로토콜 정의들(516)과 동일한 통신 프로토콜과 연관된다. 예를 들어, 제2 LNM 프로토콜 정의들(528)은 A664 통신 프로토콜에 대응할 수 있다. 예를 들어, 제2 LNM 프로토콜 정의들(528)은 A664 통신 포트들을 구현하기 위한 하나 이상의 A664 통신 포트들 및/또는 제어 로직에 대응하는 언어 중립 정의들을 포함할 수 있다. 예를 들어, 제2 LNM 프로토콜 정의들(528)은 제1 A664 종단 시스템(214) 및/또는 보다 일반적으로는 도 2의 GPM(204)과 연관된 큐잉 및/또는 샘플링 포트들에 대응할 수 있다.
도 5의 예시된 예에서, 언어 특정 도메인(504)은 제1 모델링 환경(530) 및 제2 모델링 환경(532)을 포함한다. 대안으로, 도 5에 도시된 제1 모델링 환경(530) 및 제2 모델링 환경(532)보다 더 적거나 더 많을 수 있다. 도 5의 예시된 예에서, 모델 관리자(100)는 제1 언어 특정 모델(LSM) 번역기(534), 제2 LSM 번역기(536) 및 제3 LSM 번역기(538)를 통해 언어 중립 도메인(506)과 언어 특정 도메인(504) 간에 데이터를 변환한다. 예를 들어, 도 4의 LSM 번역기(470)는 제1 내지 제3 LSM 번역기들(534, 536, 538)을 구현할 수 있다. 예를 들어, 도 4의 LSM 번역기(470)는 (1) LNM(518)에 의해 지정된 LNM 데이터 포맷으로 LNM(518)에 포함된 제1 LNM 프로토콜 정의들(526)을 (2) 제1 모델링 환경(530)에 의해 지정된 제1 LSM 데이터 포맷(542)으로 제1 모델링 환경(530)에 포함된 제1 IMA 프로토콜 정의들(540)로 변환하도록 제1 LSM 번역기(534)를 구현할 수 있다. 일부 예들에서, 인터페이스 임포터(430)는 제1 내지 제3 LSM 번역기들(534, 536, 538)을 구현하도록 LSM 번역기(470)에 명령한다.
다른 예에서, 도 4의 LSM 번역기(470)는 (1) LNM(518)에 의해 지정된 LNM 데이터 포맷으로 LNM(518)에 포함된 제2 LNM 프로토콜 정의들(528)을 (2) 제1 모델링 환경(530)에 의해 지정된 제1 LSM 데이터 포맷(542)으로 제1 모델링 환경(530)에 포함된 프로토콜 정의들(544)로 변환하도록 제2 LSM 번역기(536)를 구현할 수 있다. 도 5에서, 제1 IMA 프로토콜 정의들(540), 제2 IMA 프로토콜 정의들(544) 등은 도 3의 IMA 애플리케이션 정의들(318) 및/또는 IMA 인터페이스 정의들(320)에 대응할 수 있다.
또 다른 예에서, 도 4의 LSM 번역기(470)는 (1) LNM(518)에 의해 지정된 LNM 데이터 포맷으로 LNM(518)에 포함된 제2 LNM 프로토콜 정의들(528)을 (2) 제2 모델링 환경(532)에 의해 지정된 제2 LSM 데이터 포맷(548)으로 제2 모델링 환경(532)에 포함된 제3 IMA 프로토콜 정의들(546)로 변환하도록 제3 LSM 번역기(538)를 구현할 수 있다.
도 5에서, 제1 모델링 환경(530)은 제1 LSM 데이터 포맷(542)에 기초한다. 도 5의 제1 LSM 데이터 포맷(542)은 ICD 프로토콜 정의(예컨대, 제1 ICD 프로토콜 정의들(514), 제2 ICD 프로토콜 정의들(516) 등) 중 하나의 선택 및/또는 ICD 소스(예컨대, 제1 ICD 소스(508), 제2 ICD 소스(510) 등)의 선택을 기초로 라이브러리들(550)(예컨대, 모델 라이브러리들, 모델 객체 라이브러리들 등)에 의해 정의된다. 예를 들어, 모델 관리자(100)는 제1 모델링 환경(530)에서 IMA 모델을 생성하기 위해 제1 ICD 소스(508)를 선택할 수 있다. 제1 ICD 소스(508)를 선택하는 것에 대한 응답으로, 모델 관리자(100)는 제1 ICD 프로토콜 정의들(514)을 제1 ICD 번역기(520)를 통해 제1 LNM 프로토콜 정의들(526)로 번역할 수 있다. 제1 LNM 프로토콜 정의들(526)을 생성하는 것에 대한 응답으로, 모델 관리자(100)는 제1 LSM 번역기(534)를 통해 제1 LMA 프로토콜 정의들(526)을 제1 IMA 프로토콜 정의들(540)로 번역할 수 있다. 모델 관리자(100)는 제1 IMA 프로토콜 정의들(540)에 기초하여 라이브러리들(550)을 생성할 수 있다.
도 5에서, 제2 모델링 환경(532)은 제2 LSM 데이터 포맷(548)에 기초한다. 도 5의 제2 LSM 데이터 포맷(548)은 ICD 프로토콜 정의(예컨대, 제1 ICD 프로토콜 정의들(514), 제2 ICD 프로토콜 정의들(516) 등) 중 하나의 선택 및/또는 ICD 소스(예컨대, 제1 ICD 소스(508), 제2 ICD 소스(510) 등)의 선택을 기초로 블록 정의들(552)(예컨대, 모델 블록 정의들, 모델 블록 객체 정의들 등)에 의해 정의된다. 예를 들어, 모델 관리자(100)는 제2 모델링 환경(532)에서 IMA 모델을 생성하기 위해 제2 ICD 소스(510)를 선택할 수 있다. 제2 ICD 소스(510)를 선택하는 것에 대한 응답으로, 모델 관리자(100)는 제2 ICD 번역기(522)를 통해 제2 ICD 프로토콜 정의들(516)을 제2 LNM 프로토콜 정의들(528)로 번역할 수 있다. 제2 LNM 프로토콜 정의들(528)을 생성하는 것에 대한 응답으로, 모델 관리자(100)는 제3 LSM 번역기(538)를 통해 제2 LNM 프로토콜 정의들(528)을 제3 IMA 프로토콜 정의들(546)로 번역할 수 있다. 모델 관리자(100)는 제3 IMA 프로토콜 정의들(546)에 기초하여 블록 정의들(552)을 생성할 수 있다.
도 5에서, 제1 LNM 프로토콜 정의들(526) 및 제2 LNM 프로토콜 정의들(528)에 포함된 데이터의 포맷은 제1 모델링 환경(530) 또는 제2 모델링 환경(532)의 선택과는 관계가 없다. 예를 들어, 제2 LNM 프로토콜 정의들(528)에 포함된 정보는 제1 모델링 환경(530) 또는 제2 모델링 환경(532)의 선택과 관계없이 동일한 데이터 포맷을 유지한다. 그 결과, 모델 관리자(100)가 라이브러리들(550) 중 하나 이상 또는 블록 정의들(552) 중 하나 이상을 수정할 때 LNM(518)은 영향을 받지 않는데, LNM(518)은 제1 내지 제3 LSM 번역기들(534, 536, 538) 중 하나를 통해 제1 모델링 환경(530) 및 제2 모델링 환경(532)과 상호 작용하기 때문이다. 예를 들어, 모델 관리자(100)는 제2 LNM 프로토콜 정의들(528)을 수정하지 않고 제2 LNM 프로토콜 정의들(528)을 제1 모델링 환경(530) 또는 제2 모델링 환경(532)으로 가져올 수 있다.
일부 예들에서, 모델 관리자(100)는 하나 이상의 변환 규칙들을 사용하여 LNM 정의들(예컨대, 제1 및 제2 LNM 프로토콜 정의들(526, 528))을 생성한다. 변환 규칙은 LNM 정의가 LNM(518)에 저장되기 위해 준수해야 하고 그리고/또는 다른 식으로 충족해야 하는 하나 이상의 데이터 컴포넌트들을 포함하는 데이터 구조(예컨대, 변환 데이터 구조)를 나타낼 수 있다. 예를 들어, 모델 관리자(100)는 제1 IMA 프로토콜 정의들(540)을 제1 LSM 번역기(534)를 통해 제1 LNM 프로토콜 정의들(526)로 번역할 수 있다. 이러한 예에서, 제1 LSM 번역기(534)는 제1 IMA 프로토콜 정의들(540) 중 하나의 제1 IMA 프로토콜 정의의 데이터 구조를 변환 데이터 구조를 포함하는 변환 규칙과 비교할 수 있다. 데이터 구조가 변환 데이터 구조와 매칭하지 않는 것에 대한 응답으로, 제1 LSM 번역기(534)는 데이터 구조의 누락 데이터 컴포넌트들을 데이터 구조의 기존 데이터 컴포넌트들과 집성할 수 있고, 집성된 컴포넌트들을 LNM 정의로 컴파일할 수 있다. 제1 LSM 번역기(534)는 제1 LNM 프로토콜 정의들(526) 및/또는 제2 LNM 프로토콜 정의들(528)의 일부가 되도록 LNM 정의를 LNM(518)으로 내보낼 수 있다.
도 6은 예시적인 모델링 시스템(602)의 예시적인 표현 계층(600)의 예시적인 구현이다. 예를 들어, 모델링 시스템(602)은 IMA 모델링 시스템일 수 있다. 도 6의 모델링 시스템(602)은 하나의 계층으로부터 다음 계층으로 제어가 전달되는 계층들로 통신 프로토콜들을 구현하기 위한 네트워킹 프레임워크인 개방형 시스템 간 상호 접속(OSI: Open Systems Interconnection) 모델에 기반한 제1 시스템(604) 및 제2 시스템(606)의 모델링 시스템을 나타낸다. 도 6에서, 상위 계층들(608)(예컨대, 애플리케이션 계층들)은 네트워크를 통한 프로세스 간 통신에 초점을 맞추는 프로토콜들을 포함하는 최종 사용자 애플리케이션들에 네트워크 서비스들을 공급하는 네트워크 계층을 시뮬레이션한다. 예를 들어, 상위 계층들(608)은 이더넷 기반 프로토콜(예컨대, HTTP 패킷들), CAN 버스 프로토콜(예컨대, CAN 버스 패킷들), A429 프로토콜 등의 추상화를 나타낼 수 있다.
도 6에서, 상위 계층들(608)은 표현 계층(600)에 의해 제공되는 서비스들을 사용하여 서로 데이터를 교환한다. 표현 계층(600)은 표현 계층(600) 위의 상위 계층들(608)을 지원하도록 포맷 변환들, 암호화/복호화 등을 포함하는 메시지 데이터의 신택스 처리를 다루는 것과 같은 작업들을 담당하는 네트워크 계층을 시뮬레이션한다. 도 6의 표현 계층(600)은 예시적인 MAPOUT 추상화(610) 및 대응하는 예시적인 MAPIN 추상화(612)를 포함한다. MAPOUT 추상화(610) 및 MAPIN 추상화(612)는 모델링 환경에서 모델에 포함될 수 있는 파라메트릭 데이터 프로토콜 통신 블록들의 추상화들이다. 예를 들어, MAPOUT 추상화(610)는 모델 관리자(100)가 엘리먼트 명칭들(예컨대, 파라미터 필드 명칭, 정의된 니모닉(Mnemonic) 명칭, 정의된 파라미터 명칭 등)의 표현 스타일을 선택할 수 있게 할 모델링 환경에서 모델에 삽입될 수 있는 표현 모델 블록일 수 있다. 이러한 예에서, MAPIN 추상화(612)는 모델 관리자(100), 모델링 환경의 사용자(예컨대, 설계 엔지니어) 등에 제시될 수 있는 MAPOUT 추상화(610)로부터 엘리먼트 명칭들을 얻을 수 있다.
도 6의 표현 계층(600)은 예시적인 DECODE 추상화(614) 및 대응하는 예시적인 ENCODE 추상화(616)를 포함한다. 일부 예들에서, DECODE 추상화(614) 및 ENCODE 추상화(616)는 2진 프레임 버퍼들에서 버스 객체 엘리먼트들로 인코딩된 데이터를 조작한다. 예를 들어, DECODE 추상화(614) 및 ENCODE 추상화(616)는 데이터의 인코딩/디코딩을 가능하게 하는 모델링 환경에서 모델에 삽입될 수 있는 표현 모델 블록들일 수 있다. 예를 들어, ENCODE 추상화(616)는 아날로그 전압 값을 2진 값으로 변환함으로써 데이터(예컨대, 센서 값)를 인코딩할 수 있다. 이러한 예에서, DECODE 추상화(614)는 2진 값을 아날로그 전압 값으로 변환함으로써 데이터를 디코딩할 수 있다.
도 6의 예시된 예에서, 모델링 시스템(602)은 물리적 매체에 의해 지원되는 시그널링의 타입을 사용하여 디지털 데이터 비트들의 송신을 시뮬레이션할 하위 계층들(618)을 포함한다. 예를 들어, 하위 계층(618)은 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층 또는 물리 계층 중 하나 이상을 포함할 수 있다. 예를 들어, 하위 계층들(618)은 전기 신호들, 전자기 신호들, 적외선 또는 일반 조명의 펄스들 등에 의해 송신된 데이터의 시뮬레이션들일 수 있다. 예를 들어, 하위 계층들(618)은 이더넷 케이블들, 무선 안테나들, 광섬유 케이블들 등에 의해 송신 및/또는 수신되는 데이터의 시뮬레이션들일 수 있다.
도 7a는 도 1의 항공기(108)와 연관된 복수의 IMA 모델들(702)을 생성, 실행 및 검증하기 위한 IMA 모델 생성 시스템(700)을 도시한다. 도 7a에서, IMA 모델들(702)은 IMA LRU 모델들(702)이다. 대안으로, IMA 모델들(702)은 IMA GPM 모델들, IMA ASM 모델들, IMA 네트워크 스위치 모델들, IMA RDC 모델들 등, 그리고/또는 이들의 결합일 수 있다. 도 7a에서, 복수의 IMA LRU 모델들(702)은 10,000개보다 더 많은 IMA 모델들을 포함한다. 대안으로, IMA 모델 생성 시스템(700)은 10,000개보다 더 적은 IMA 모델들을 생성할 수 있다. 도 7a에서, 복수의 IMA LRU 모델들(702)은 제1 IMA 모델(704)을 포함한다. 도 7a에서, 제1 IMA 모델(704)은 제1 IMA LRU 모델(IMA LRU 모델 1)(704)이다. 예를 들어, 제1 IMA LRU 모델(704)은 도 2의 A429 LRU(234), A664 LRU(224) 등의 IMA 모델에 대응할 수 있다. 예를 들어, 제1 IMA LRU 모델(704)은 A429 LRU(234), A664 LRU 등을 시뮬레이션할 수 있다. 다른 예에서, 복수의 IMA LRU 모델들(702) 중 하나 이상은 항공기 시스템(106) 및/또는 보다 일반적으로는 도 1의 항공기(108)에 대응할 수 있다.
도 7a에서, 모델 관리자(100)는 IMA 모델 생성 시스템(700)을 관리한다. 도 7a에서, 모델 관리자(100)는 제1 ICD 번역기(520)를 통해 제1 ICD 소스(508)로부터의 정보, 이를테면 제1 ICD 프로토콜 정의들(514)을 LNM(518)으로 변환한다. 도 7a에서, 모델 관리자(100)는 제1 LSM 번역기(534)를 통해 LNM(518)으로부터의 정보를 제1 모델링 환경(530)의 제1 IMA LRU 모델(704)로 변환한다. 예를 들어, 제1 LSM 번역기(534)는 도 7a에 도시된 바와 같이 LNM(518)으로부터의 정보를 10,000개보다 많은 IMA LRU 모델들로 번역할 수 있다.
도 7a의 예시된 예에서, 모델 관리자(100)는 제1 IMA LRU 모델(704)을 포함하는 복수의 IMA LRU 모델들(702)을 생성, 실행 및 검증한다. 도 7a에서, 제1 IMA LRU 모델(704)은 도 6의 하위 계층(618), 표현 계층(600) 및 상위 계층(608)을 포함한다. 도 7a에서, 하위 계층(618)은 물리적 컴포넌트들로부터 데이터를 획득하는 것을 시뮬레이션한다. 도 7a에서, 하위 계층(618)은 예시적인 네트워크 스위치(706)로부터 네트워크 데이터를 획득하는 것을 시뮬레이션한다. 예를 들어, 네트워크 스위치(706)는 도 2의 CCR NS(218), NS(222) 등에 대응할 수 있다. 도 7a에서, 하위 계층(618)은 디지털 통신(COM) 판독 기능(FX)(708)을 통해 네트워크 스위치(706)로부터 네트워크 데이터(예컨대, 통신 프로토콜 데이터 패킷들)를 얻는다. 도 7a에서, 디지털 COM 판독 기능(708)은 네트워크 스위치(706)로부터 네트워크 데이터를 획득하고 획득된 네트워크 데이터를 2진 데이터 포맷과 같은 디지털 데이터 포맷으로 변환하는 것을 시뮬레이션하도록 기계 판독 가능 명령들을 사용하여 제1 모델링 환경(530)에 의해 구현된다.
일부 예들에서는, 네트워크 스위치(706)가 시뮬레이션된다. 예를 들어, 디지털 COM 판독 기능(708)은 네트워크 스위치(706)와 연관된 이전에 기록된 네트워크 데이터를 획득할 수 있다. 예를 들어, 디지털 COM 판독 기능(708)은 데이터베이스로부터 이전에 기록된 그리고/또는 시뮬레이션된 통신 프로토콜 데이터 패킷들을 판독할 수 있다. 일부 예들에서는, 네트워크 스위치(706)가 시뮬레이션되지 않는다. 예를 들어, 디지털 COM 판독 기능(708)은 도 2의 CCR NS(218)와 같은 물리적 디바이스로부터 네트워크 데이터를 실시간으로 획득할 수 있다.
도 7a에서, 하위 계층(618)은 예시적인 센서(710)로부터 센서 데이터를 획득하는 것을 시뮬레이션한다. 예를 들어, 센서(710)는 도 2의 센서(230)에 대응할 수 있다. 도 7a에서, 하위 계층(618)은 센서 판독 기능(711)을 통해 센서(710)로부터 센서 데이터(예컨대, 아날로그 신호들, 디지털 신호들 등)를 얻는다. 도 7a에서, 센서 판독 기능(711)은 센서(710)로부터 센서 데이터를 획득하고 획득된 센서 데이터를 2진 데이터 포맷과 같은 디지털 포맷으로 변환하는 것을 시뮬레이션하도록 기계 판독 가능 명령들을 사용하여 제1 모델링 환경(530)에 의해 구현된다.
일부 예들에서는, 센서(710)가 시뮬레이션된다. 예를 들어, 센서 판독 기능(711)은 센서(710)와 연관된 이전에 기록된 센서 데이터를 획득할 수 있다. 예를 들어, 센서 판독 기능(711)은 데이터베이스로부터 이전에 기록된 그리고/또는 시뮬레이션된 아날로그 신호들, 디지털 신호들 등을 판독할 수 있다. 일부 예들에서는, 센서(710)가 시뮬레이션되지 않는다. 예를 들어, 센서 판독 기능(711)은 도 2의 센서(230)와 같은 물리적 디바이스로부터 센서 데이터를 실시간으로 획득할 수 있다.
도 7a에서, 제1 IMA LRU 모델(704)은 하위 계층(618)으로부터 얻어진 2진 데이터를 상위 계층(608)에 의해 사용될 엔지니어링 단위들의 데이터로 변환하는 시뮬레이션을 가능하게 하기 위한 표현 계층(600)을 포함한다. 도 7a에서, 제1 IMA LRU 모델(704)은 예시적인 DECODE 기능(712)을 통해 데이터를 디코딩 또는 분해(unpack)한다. 예를 들어, DECODE 기능(712)은 도 6의 DECODE 추상화(614)에 대응할 수 있다. DECODE 기능(712)은 디지털 COM 판독 기능(708)에 의해 획득된 네트워크 데이터를 분해하여 네트워크 어드레스, 네트워크 파라미터, 페이로드 데이터 등과 같은 포함된 정보를 파싱할 수 있다.
도 7a에서, 제1 IMA LRU 모델(704)은 예시적인 MAPOUT 기능(714)을 통해 도 5의 제1 IMA 프로토콜 정의들(540)과 같은 IMA 프로토콜 정의들에 분해된 네트워크 데이터를 매핑한다. 예를 들어, MAPOUT 기능(714)은 도 6의 MAPOUT 추상화(610)에 대응할 수 있다. MAPOUT 기능(714)은 분해된 네트워크 데이터에 포함된 정보를 제1 IMA 프로토콜 정의들(540)에 포함된 적절한 데이터 필드들과 연관시키거나 그러한 필드들로 포인팅할 수 있다. 예를 들어, MAPOUT 기능(714)은 연관된 값을 갖는 속성을 나타내는 하나 이상의 파라미터들을 생성할 수 있다. 예를 들어, 파라미터는 네트워크 어드레스의 값, 네트워크 파라미터의 값, 페이로드 데이터와 연관된 값 등일 수 있다.
도 7a에서, 제1 IMA LRU 모델(704)은 엔지니어링 단위(EU: engineering unit) 스케일링 기능들(716)을 통해 2진 데이터를 엔지니어링 단위들의 데이터로 변환하고 그리고/또는 다른 식으로 스케일링한다. 예를 들어, EU 스케일링 기능들(716)은 센서(710)로부터의 아날로그 신호 값(예컨대, 전압 신호, 전류 신호 등)과 연관된 2진 데이터를 물리적 파라미터들의 범위들과 연관된 엔지니어링 단위들, 이를테면 압력(예컨대, 0-1000 PSI(pounds per square inch)), 속도(예컨대, 0-5000 RPM(revolutions per minute)), 포지션 퍼센티지(예컨대, 25% 개방, 75% 폐쇄 등), 흐름(예컨대, 분당 0-25 갤런) 등으로 변환할 수 있다.
도 7a에서, 제1 IMA LRU 모델(704)은 상위 계층(608)과 연관된 1차 기능(718), 빌트인 테스트(BIT: Built-In Test) 기능(720) 및 지원 기능(722)을 통해 EU 스케일링 기능들(716)로부터의 엔지니어링 단위 데이터를 사용하여 제어 로직을 실행한다. 도 7a에서, 1차 기능(718)은 하나 이상의 제어 로직 루틴들을 포함할 수 있다. 예를 들어, 1차 기능(718)은 네트워크 스위치(706)로부터 획득된 데이터에 기초하여 항공기(108)의 플랩 작동 커맨드, 슬랫(slat) 작동 커맨드 등을 실행하는 것을 포함할 수 있다. 예를 들어, 1차 기능(718)은 항공기 시스템(106) 및/또는 보다 일반적으로는 항공기(108)의 물리적 컴포넌트들, 이를테면 모터, 펌프, 솔레노이드, 밸브 등을 작동시키는 것을 포함할 수 있다.
도 7a에서, BIT 기능(720)은 도 2의 RDC(226)와 연관된 기능들을 실행하는 것에 대응할 수 있다. 예를 들어, BIT 기능(720)은 도 2의 A429 LRU(234)로부터의 네트워크 데이터, 도 2의 센서(230)로부터의 센서 데이터를 얻는 것, 제어 신호들을 생성하고 그리고/또는 도 2의 이펙터(232)로 송신하는 것 등을 시뮬레이션할 수 있다. 도 7a에서, BIT 기능(720)은 원격 모니터 기능(724) 및 모니터 기능(726)을 포함한다. 도 7a에서, 원격 모니터 기능(724)은 네트워크 스위치(706)로부터 네트워크 데이터를 획득하고 네트워크 데이터를 도 2의 CAN 버스(238)와 같은 네트워크로 송신하는 것을 시뮬레이션한다. 도 7a에서, 모니터 기능(726)은 센서(710)로부터 센서 데이터를 얻고 도 2의 CAN 버스(238), 도 2의 NS(222)와 같은 네트워크에 센서 데이터를 송신하는 것 등을 시뮬레이션한다.
도 7a에서, 제1 IMA LRU 모델(704)은 EU 스케일링 기능들(716)로부터의 엔지니어링 단위 데이터를 사용하여 부수적인 제어 로직 기능들을 시뮬레이션하기 위한 지원 기능(722)을 포함한다. 도 7a에서, 지원 기능(722)은 동작 상태 관리(728), 파일 시스템(730) 및 데이터 로드(732)를 포함한다. 도 7a에서, 동작 상태 관리(728)는 획득된 네트워크 데이터 및/또는 센서 데이터를 기초로 한, 제1 IMA LRU 모델(704)과 연관된 물리적 컴포넌트들, 이를테면 네트워크 스위치(706), 센서(710) 등에 대한 상태 정보의 시뮬레이션에 대응한다. 도 7a에서, 파일 시스템(730)은 도 2의 A429 LRU(234), A664 LRU(224) 등과 같은 시뮬레이션된 LRU의 운영 시스템의 시뮬레이션에 대응한다. 도 7a에서, 데이터 로드(732)는 시뮬레이션된 LRU의 프로세서 이용, 저장소 이용, 메모리 이용 등과 같은 상태 정보의 시뮬레이션에 대응한다.
도 7a에서, 제1 LSM 번역기(534)는 하나 이상의 DECODE 기능들(712), MAPOUT 기능들(714) 및/또는 EU 스케일링 기능들(716)을 번역한다. 예를 들어, 제1 LSM 번역기(534)는 DECODE 기능(712)의 10,000개보다 많은 인스턴스들을 제1 IMA 프로토콜 정의들(540)과 연관된 파라미터들을 포함하는 각각의 인스턴스로 번역할 수 있다. 예를 들어, 제1 LSM 번역기(534)는 시뮬레이션된 LRU의 제1 기능에 대응하는 제1 IMA 프로토콜 정의들(540)에 기초하여 DECODE 기능(712)의 제1 인스턴스를 제1 세트의 파라미터들로 번역할 수 있다. 이러한 예에서, 제1 LSM 번역기(534)는 시뮬레이션된 LRU의 제2 기능에 대응하는 제1 IMA 프로토콜 정의들(540)에 기초하여 DECODE 기능(712)의 제2 인스턴스를 제2 세트의 파라미터들로 번역할 수 있으며, 여기서 제1 세트의 파라미터들은 제2 세트의 파라미터들과 다르다. 이러한 예에서, 모델 관리자(100)는 제1 IMA 프로토콜 정의들(540)에 기초하여, 시뮬레이션된 LRU의 복수의 시뮬레이션된 기능들을 생성할 수 있다.
도 7b는 도 7a의 IMA 모델 생성 시스템(700)의 연속을 도시한다. 도 7b에서, 제1 IMA LRU 모델(704)은 엔지니어링 유닛 데이터를 2진 데이터로 변환하기 위한 예시적인 2진 스케일링 기능들(734)을 포함한다. 도 7b에서, 제1 IMA LRU 모델(704)은 예시적인 MAPIN 기능(736)을 통해 도 5의 제1 IMA 프로토콜 정의들(540)과 같은 IMA 프로토콜 정의들에 변환된 2진 데이터를 매핑한다. 예를 들어, MAPIN 기능(736)은 도 6의 MAPIN 추상화(612)에 대응할 수 있다. MAPIN 기능(736)은 변환된 2진 데이터에 포함된 정보를 제1 IMA 프로토콜 정의들(540)에 포함된 적절한 데이터 필드들과 연관시키거나 그러한 필드들로 포인팅할 수 있다. 예를 들어, MAPIN 함수(736)는 변환된 2진 데이터를 도 3의 IMA 애플리케이션 정의들(318), IMA 인터페이스 정의들(320) 등에 연관시킬 수 있다.
도 7b에서, 제1 IMA LRU 모델(704)은 예시적인 ENCODE 기능(738)을 통해 2진 데이터를 통신 프로토콜 데이터 패킷들로 인코딩 또는 캡슐화한다. 예를 들어, ENCODE 기능(738)은 도 6의 ENCODE 추상화(616)에 대응할 수 있다. ENCODE 기능(738)은 상위 계층(608)에 의해 처리된 2진 데이터를 디지털 데이터로 변환할 수 있다.
도 7b에서, 제1 IMA LRU 모델(704)은 디지털 COM 기록 기능(740), 비휘발성 메모리 기록 기능(742) 및/또는 이펙터 기록 기능(744)을 통해 디지털 데이터를 송신 및/또는 저장하기 위한 하위 계층(618)을 포함한다. 도 7b에서, 디지털 COM 기록 기능(740)은 디지털 데이터가 선입선출(FIFO: first-in-first-out) 순서로 캡슐화되어 네트워크에 송신될 수 있는 통신 송신 버퍼에 디지털 데이터가 기록될 수 있는 네트워크 데이터 세션을 개방하는 것을 시뮬레이션하도록 기계 판독 가능 명령들을 사용하여 제1 모델링 환경(530)에 의해 구현된다. 도 7b에서, 비휘발성 메모리 기록 기능(742)은 비휘발성 메모리에 디지털 데이터를 기록한다. 도 7b에서, 이펙터 기록 기능(744)은 디지털 데이터가 도 2의 이펙터(232)와 같은 이펙터를 제어하기 위한 제어 신호로 변환될 수 있는 이펙터 버퍼에 디지털 데이터를 기록하는 것을 시뮬레이션하도록 기계 판독 가능 명령들을 사용하여 제1 모델링 환경(530)에 의해 구현된다.
도 7b에서, 제1 IMA LRU 모델(704)은 디지털 데이터를 예시적인 COM 제어기(748)를 통해 네트워크에 송신될 통신 프로토콜 데이터 포맷(예컨대, A429 통신 프로토콜 데이터 포맷, A664 통신 프로토콜 데이터 포맷 등)으로 캡슐화하기 위한 예시적인 COM 프로토콜 기능(746)을 포함한다. 예를 들어, COM 프로토콜 기능(746)은 디지털 데이터를 A429 데이터 패킷으로 캡슐화할 수 있고, COM 제어기(748)는 A429 통신 프로토콜을 통해 A429 데이터 패킷을 송신할 수 있다.
도 7b에서, NVM 기록 기능(742)은 디지털 데이터를 예시적인 보드 지원 패키지(BSP) 드라이버 애플리케이션 프로그래밍 인터페이스(API)(750)에 송신한다. 예를 들어, BSP 드라이버 API(750)는 하드웨어 출력들에 대한 기계 판독 가능 명령들을 가능하게 하도록 하나 이상의 드라이버들 또는 미들웨어를 구현할 수 있다. BSP 드라이버 API(750)가 디지털 데이터를 처리하는 것에 대한 응답으로, 제1 IMA LRU 모델(704)은 처리된 디지털 데이터를 NVM 플래시 메모리(752)에 저장한다. 도 7b에서, 이펙터 기록 기능(744)은 디지털 데이터를 BSP 드라이버 API(750)로 송신하여 디지털 데이터를 도 2의 이펙터(232)와 같은 이펙터를 제어하기 위한 제어 신호로 변환한다. 제어 신호의 생성에 대한 응답으로, 제1 IMA LRU 모델(704)은 생성된 제어 신호를 NVM 플래시 메모리(752)에 저장한다.
도 7b에서, 제1 LSM 번역기(534)는 하나 이상의 2진 스케일링 기능들(734), MAPIN 기능들(736), ENCODE 기능들(738), 디지털 COM 기록 기능들(740), NVM 기록 기능들(742) 및/또는 이펙터 기록 기능들(744)을 번역한다. 예를 들어, 제1 LSM 번역기(534)는 ENCODE 기능(738)의 10,000개보다 많은 인스턴스들을 제1 IMA 프로토콜 정의들(540)과 연관된 파라미터들을 포함하는 각각의 인스턴스로 번역할 수 있다. 예를 들어, 제1 LSM 번역기(534)는 시뮬레이션된 LRU의 제1 기능에 대응하는 제1 IMA 프로토콜 정의들(540)에 기초하여 ENCODE 기능(738)의 제1 인스턴스를 제1 세트의 파라미터들로 번역할 수 있다. 이러한 예에서, 제1 LSM 번역기(534)는 시뮬레이션된 LRU의 제2 기능에 대응하는 제1 IMA 프로토콜 정의들(540)에 기초하여 ENCODE 기능(738)의 제2 인스턴스를 제2 세트의 파라미터들로 번역할 수 있으며, 여기서 제1 세트의 파라미터들은 제2 세트의 파라미터들과 다르다. 이러한 예에서, 모델 관리자(100)는 제1 IMA 프로토콜 정의들(540)에 기초하여, 시뮬레이션된 LRU의 복수의 시뮬레이션된 기능들을 생성할 수 있다.
도 7c는 도 5의 제1 모델링 환경(530)과 연관된 라이브러리들(550)을 생성하는 모델 관리자(100)를 도시한다. 도 7c의 예시된 예에서, 모델 관리자(100)는 전개될 모델링 환경을 선택 및/또는 다른 식으로 결정한다. 도 7c에서, 모델 관리자(100)는 예시적인 IMA 시스템 모델(754)을 생성할 도 5의 제1 모델링 환경(530)을 선택한다. 예를 들어, IMA 시스템 모델(754)은 도 7a 및 도 7b의 제1 IMA LRU 모델(704)을 포함하는 복수의 IMA LRU 모델들(702)을 포함할 수 있다.
도 7의 예시된 예에서, 제1 모델링 환경(530)은 IMA 버스 엘리먼트들(758)을 포함하는 예시적인 IMA 버스 구조(756)를 포함한다. IMA 버스 구조(756)는 시뮬레이션된 통신 버스가 가능하게 하는 신호들의 값들과는 다른, 시뮬레이션된 통신 버스의 아키텍처 특성들을 지정하는 버스 객체이다. 예를 들어, IMA 버스 구조(756)는 버스 내의 엘리먼트들의 수량, 엘리먼트들의 순서, 엘리먼트들이 네스트(nest)되는지 여부 그리고 네스트되는 방법, 대응하는 신호들의 데이터 타입들 등을 지정할 수 있다. 예를 들어, 모델 관리자(100)는 ARINC 429, ARINC 664 등과 같은 항공기 통신 프로토콜의 조직, 신택스 또는 구조를 시뮬레이션하기 위한 IMA 버스 구조(756)를 생성할 수 있다. 예를 들어, IMA 버스 구조(756)는 ARINC 664의 구조에 대응할 수 있는데, 여기서 IMA 버스 엘리먼트들(758)은 ARINC 664 버스 신호의 정의들 또는 특성들(예컨대, ARINC 664 버스 신호의 값, 측정 단위 등)에 대응한다.
도 7c에서, 제1 모델링 환경(530)은 예시적인 ICD 버스 엘리먼트들(762)을 포함하는 ICD 버스 구조(760)를 포함한다. ICD 버스 구조(760)는 도 5의 제1 ICD 소스(508)와 같은 데이터 소스 도메인(502)에 저장된 특성들에 기초하여, 시뮬레이션된 통신 버스의 아키텍처 특성들을 지정하는 버스 객체이다. 도 7c에서, ICD 버스 구조(760)는 데이터 소스 도메인(502)에 포함된 정보를 제1 모델링 환경(530)에 포함된 정보에 매핑할 ICD 버스 엘리먼트들(762)을 포함한다. 예를 들어, 모델 관리자(100)는 ICD 버스 엘리먼트들(762)에 포함된 데이터를 사용하여 IMA 버스 엘리먼트들(758)에 포함된 데이터를 채울 수 있다. 예를 들어, 모델 관리자(100)는 ICD 버스 엘리먼트들(762)에 포함된 제1 ICD 버스 엘리먼트(766)에 포함된 데이터를 사용하여 IMA 버스 엘리먼트들(758)에 포함된 제1 IMA 버스 엘리먼트(764)를 채울 수 있다.
동작에서, 모델 관리자(100)는 LNM(518)에 포함된 정보를 가져옴으로써 IMA 시스템 모델(754)을 생성한다. 도 7c에서, 모델 관리자(100)는 제1 모델링 환경(530)이 IMA 시스템 모델(754)을 생성하는 데 사용될 것임을 결정한다. 예를 들어, 모델 관리자(100)는 IMA 시스템 모델(754)을 생성하는 데 사용될 정보를 검색할 데이터 소스, 이를테면 도 5의 제1 ICD 소스(508)를 선택할 수 있다. 모델 관리자(100)는 제1 명령들(768)을 실행하여 (1) 제1 ICD 소스(508)로부터 검색된 제1 ICD 프로토콜 정의들(514)에 기초한 제1 LNM 프로토콜 정의들(526)을 (2) 제1 IMA 프로토콜 정의들(540)로 변환 및/또는 다른 식으로 번역한다.
도 7c에서, 모델 관리자(100)는 제2 명령들(770)을 실행하여 IMA 버스 구조(756) 및 ICD 버스 구조(760)를 생성한다. 예를 들어, 모델 관리자(100)는 제1 모델링 환경(530) 내에서 제2 명령들(770)을 실행하도록 제1 모델링 환경(530)에 지시할 수 있다. IMA 버스 구조(756) 및 ICD 버스 구조(760)를 생성하는 것에 대한 응답으로, 모델 관리자(100)는 제3 명령들(772)을 실행하여 제1 모델링 환경(530)을 초기화 또는 시작한다. 예를 들어, 모델 관리자(100)는 제1 모델링 환경(530) 내에서 제3 명령들(772)을 실행하도록 제1 모델링 환경(530)에 지시할 수 있다.
도 7c의 예시된 예에서, 제1 모델링 환경(530)을 초기화하는 것에 대한 응답으로, 모델 관리자(100)는 제4 명령들(774)을 실행하여, LNM(518)에 포함된 제1 LNM 프로토콜 정의들(526)을 기초로 도 5의 라이브러리들(550)을 생성한다. 도 7c에서, 라이브러리들(550)은 예시적인 IMA MAPIN 모델 라이브러리(ML)(775), 예시적인 IMA ENCODE 모델 라이브러리(776), 예시적인 IMA DECODE 모델 라이브러리(777) 및 예시적인 IMA MAPOUT 모델 라이브러리(778)를 포함한다. 라이브러리들(550) 각각은 복수의 IMA 모델들, IMA 모델 객체들, IMA 정의들 등을 포함할 수 있다.
도 7c에서, 제4 명령들(774)은 제1 LNM 프로토콜 정의들(526)을 제1 IMA 프로토콜 정의들(540)로 번역한다. 예를 들어, 모델 관리자(100)는 모델 라이브러리들(550)에 포함된 IMA 모델들, IMA 모델 객체들(예컨대, IMA 애플리케이션 모델 객체(314), IMA 인터페이스 모델 객체(316) 등), IMA 정의들(예컨대, 애플리케이션 정의들(318), IMA 인터페이스 정의들(320) 등) 등을 적용 가능할 때 제1 모델링 환경(530)으로 가져오도록 제1 모델링 환경(530)에 지시할 수 있다.
도 7c에서, 제4 명령들(774)은 예시적인 IMA MAPIN 모델 객체들(781), 예시적인 IMA ENCODE 모델 객체들(782), 예시적인 DECODE 모델 객체들(783) 및 예시적인 MAPOUT 모델 객체들(784)을 포함하는 IMA 모델 객체들(780)을 생성한다. 일부 예들에서, 제4 명령들(774)은 사용자 입력에 대한 응답으로 실행된다. 예를 들어, 사용자 입력에 대한 응답으로, 제4 명령들(774)은 IMA 모델 객체들(780) 중 하나 이상을 생성할 수 있다. 도 7c에서, IMA 모델 객체들(780)은 도 6의 표현 계층(600)에 대응한다. 예를 들어, IMA MAPIN 모델 객체들(781)은 도 6의 MAPIN 추상화(612)에 대응할 수 있다. 도 7c에서, IMA 모델 객체들(780) 각각은 대응하는 파라미터 정보를 포함한다. 예를 들어, IMA MAPIN 모델 객체들(781)은 대응하는 파라미터 정의들(예컨대, 도 3의 파라미터 정의들(311a, 311b))을 갖는 하나 이상의 파라미터 식별자들을 포함할 수 있다.
도 7c의 예시된 예에서, 모델 관리자(100)는 제1 IMA LRU 모델(704)을 포함하는 복수의 IMA LRU 모델들(702) 중 하나 이상을 가져옴으로써 IMA 시스템 모델(754)을 생성한다. 도 7c에서, 모델 관리자(100)는 제1 라이브러리 링크(786)를 통해 라이브러리들(550)로부터 모델 객체들을 가져옴으로써 복수의 IMA LRU 모델들(702) 중 각각의 IMA LRU 모델을 생성한다. 예를 들어, 모델 관리자(100)는 제1 라이브러리 링크(786)를 통해 라이브러리들(550)로부터 하위 계층들(618), 표현 계층들(600) 및 상위 계층(608)과 연관된 대응하는 IMA 모델 객체들을 갖는 제1 IMA LRU 모델(704)을 가져오도록 제1 모델링 환경(530)에 지시할 수 있다. 도 7c에서, 모델 관리자(100)는 하위 계층들(618), 표현 계층들(600) 및 상위 계층(608)이 대응하는 제1 IMA 프로토콜 정의들(540)을 포함하는 복수의 IMA LRU 모델들(702)을 가져온다. 도 7c에서, 라이브러리들(550)은 제2 라이브러리 링크(788)를 통해 IMA 모델 객체들(780)로부터 정보를 가져오는 것에 기초하여 생성된다.
도 7c의 예시된 예에서, 모델 관리자(100)는 IMA 시스템 모델(754)에 포함된 하나 이상의 특성들을 IMA 버스 엘리먼트들(758), ICD 버스 엘리먼트들(762) 등에 포함된 하나 이상의 특성들과 비교하는 것에 기초하여 IMA 시스템 모델(754)을 검증한다. 예를 들어, IMA 시스템 모델(754)은 항공기 시스템(106) 및/또는 보다 일반적으로는 도 1의 항공기(108)의 시뮬레이션에 대응할 수 있다. 제1 IMA LRU 모델(704)의 하위 계층들(618), 표현 계층들(600) 및 상위 계층(608)은 IMA 버스 구조(756)와 함께 결합된다. 도 7c에서, 모델 관리자(100)는 제1 IMA LRU 모델(704)의 하위 계층들(618), 표현 계층들(600) 및 상위 계층(608)을 결합하는 IMA 버스 구조(756)가 ICD 버스 구조(760)에 의해 지정된 특성들을 포함하는지 여부를 검증한다. 예를 들어, 모델 관리자(100)는 하위 계층(618)에 포함된 파라미터들 중 하나의 파라미터의 특성을 ICD 버스 엘리먼트들(762)에 포함된 특성과 비교할 수 있다. 비교에 기초하여 IMA 버스 구조(756)가 ICD 버스 엘리먼트들(766)에 의해 지정된 특성들 중 하나 이상을 갖지 않는다는 결정에 대한 응답으로, 제1 모델링 환경(530)은 IMA 시스템 모델(754)의 동작을 중단시키고 오류 메시지, 경보 등을 생성한다.
도 4의 모델 관리자(100)를 구현하기 위한 예시적인 하드웨어 로직 또는 기계 판독 가능 명령들을 나타내는 흐름도들이 도 8 - 도 11에 도시된다. 기계 판독 가능한 명령들은 도 12와 관련하여 아래에서 논의되는 예시적인 프로세서 플랫폼(1200)에 도시된 프로세서(1212)와 같은 프로세서에 의한 실행을 위한 프로그램 또는 프로그램의 일부일 수 있다. 프로그램은 CD-ROM, 플로피 디스크, 하드 드라이브, DVD, 블루레이 디스크, 또는 프로세서(1212)와 연관된 메모리와 같은 비-일시적 컴퓨터 판독 가능 저장 매체 상에 저장된 소프트웨어로 구현될 수 있지만, 전체 프로그램 및/또는 그 부분들은 대안으로 프로세서(1212) 이외의 디바이스에 의해 실행될 수 있고 그리고/또는 펌웨어 또는 전용 하드웨어에 구현될 수 있다. 추가로, 예시적인 프로그램은 도 8 - 도 11에 예시된 흐름도들을 참조로 설명되지만, 모델 관리자(100)를 구현하는 많은 다른 방법들이 대안으로 사용될 수 있다. 예를 들어, 블록들의 실행 순서가 변경될 수 있고, 그리고/또는 설명되는 블록들 중 일부가 변경, 제거 또는 결합될 수 있다. 추가로 또는 대안으로, 블록들 중 임의의 또는 모든 블록들은 소프트웨어 또는 펌웨어를 실행하지 않고 대응하는 동작을 수행하도록 구조화된 하나 이상의 하드웨어 회로들(예컨대, 이산 및/또는 집적 아날로그 및/또는 디지털 회로, FPGA, ASIC, 비교기, 연산 증폭기(op-amp), 로직 회로 등)로 구현될 수 있다.
앞서 언급한 바와 같이, 도 8 - 도 11의 프로세스들은 하드 디스크 드라이브, 플래시 메모리, 판독 전용 메모리, 콤팩트 디스크, 디지털 다기능 디스크, 캐시, 랜덤 액세스 메모리 및/또는 임의의 지속기간 동안(예컨대, 연장된 시간 기간들 동안, 영구적으로, 짧은 인스턴스들 동안, 일시적으로 버퍼링하는 동안, 그리고/또는 정보의 캐시 동안) 정보가 저장되는 임의의 다른 저장 디바이스 또는 저장 디스크와 같은 비-일시적 컴퓨터 및/또는 기계 판독 가능 매체 상에 저장된 실행 가능 명령들(예컨대, 컴퓨터 및/또는 기계 판독 가능 명령들)을 사용하여 구현될 수 있다. 본 명세서에서 사용되는 바와 같이, 비-일시적 컴퓨터 판독 가능 매체라는 용어는 임의의 타입의 컴퓨터 판독 가능 저장 디바이스 및/또는 저장 디스크를 포함하는 것으로 그리고 전파 신호들을 제외하고 송신 매체들을 제외하는 것으로 명백히 정의된다.
"포함하는" 및 "구성되는"(그리고 모든 형태들 및 이들의 시제들)은 본 명세서에서 제한을 두지 않은 용어들인 것으로 사용된다. 따라서 청구항이 서문으로서 또는 어떤 종류의 청구항 열거 내에서 "포함한다" 또는 "구성된다"의 임의의 형태(예컨대, 구성된다, 포함한다, 구성되는, 포함하는, 갖는 등)를 이용할 때마다, 추가 엘리먼트들, 용어들 등이 대응하는 청구항 또는 열거의 범위를 벗어나지 않고 존재할 수 있다고 이해되어야 한다. 본 명세서에서 사용되는 바와 같이, "적어도"라는 문구가 예를 들어, 청구항의 서문에서 연결어로서 사용되는 경우, 이는 "구성되는" 및 "포함하는"이라는 용어가 제한을 두지 않는 것과 같은 식으로 제한을 두지 않는다. "및/또는"이라는 용어는 예를 들어, A, B 및/또는 C와 같은 형태로 사용될 때, A, B, C의 임의의 결합 또는 서브세트, 이를테면 (1) A 단독, (2) B 단독, (3) C 단독, (4) A와 B, (5) A와 C, 그리고 (6) B와 C를 의미한다.
도 8은 도 1의 항공기(108)의 IMA 시스템 모델을 생성하도록 도 1 및 도 3 - 도 7c의 모델 관리자(100)에 의해 수행될 수 있는 예시적인 방법(800)을 나타내는 흐름도이다. 이 방법(800)은 모델 관리자(100)가 모델링 환경을 선택하는 블록(802)에서 시작된다. 예를 들어, 모델링 환경 선택기(410)는 도 7c의 IMA 시스템 모델(754)을 생성할 도 5의 제1 모델링 환경(530)을 사용할 것을 결정할 수 있다.
블록(804)에서, 모델 관리자(100)는 처리할 데이터 소스(들)를 선택한다. 예를 들어, 데이터 소스 선택기(420)는 도 5의 제1 ICD 소스(508)를 사용하여 처리할 것을 결정할 수 있다. 블록(806)에서, 모델 관리자(100)는 모델링 환경으로 정의들을 가져온다. 예를 들어, 인터페이스 임포터(430)는 언어 중립 도메인(506)을 통해 데이터 소스 도메인(502)으로부터 언어 특정 도메인(504)으로 정보를 가져올 수 있다. 블록(806)을 구현하는 데 사용될 수 있는 예시적인 프로세스는 도 9와 관련하여 아래에서 설명된다.
블록(808)에서, 모델 관리자(100)는 모델링 환경으로 모델 객체(들)를 가져온다. 예를 들어, 모델 객체 핸들러(450)는 도 7a - 도 7b의 하위 계층(618), 표현 계층(600), 상위 계층(608) 등과 연관된 기능들을 제1 모델링 환경(530)으로 가져와 제1 IMA LRU 모델(704)을 생성할 수 있다. 예를 들어, 모델 객체 핸들러(450)는 디지털 COM 판독 기능(708), 센서 판독 기능(711) 등을 도 7a의 하위 계층(618)으로 가져올 수 있다. 다른 예에서, 모델 객체 핸들러(450)는 DECODE 기능(712), MAPOUT 기능(714) 등을 도 7a의 표현 계층(600)으로 가져올 수 있다.
블록(810)에서, 모델 관리자(100)는 모델 객체(들)를 구성한다. 예를 들어, 모델 객체 핸들러(450)는 제1 IMA 프로토콜 정의들(540), 제2 IMA 프로토콜 정의들(544) 등에 포함된 하나 이상의 정의들을 구성할 수 있다. 블록(810)을 구현하는 데 사용될 수 있는 예시적인 프로세스는 도 10과 관련하여 아래에서 설명된다.
블록(812)에서, 모델 관리자(100)는 다른 IMA 모델을 생성할지 여부를 결정한다. 예를 들어, 모델 객체 핸들러(450)는 복수의 IMA LRU 모델들(702)에 포함된 제2 IMA LRU 모델, 복수의 IMA LRU 모델들(702)에 포함된 제3 IMA LRU 모델 등을 생성할 것을 결정할 수 있다.
블록(812)에서 모델 관리자(100)가 다른 IMA 모델을 생성하는 것으로 결정한다면, 제어는 블록(808)으로 되돌아가 모델 객체(들)를 모델링 환경으로 가져와 다른 IMA 모델을 생성한다. 블록(812)에서 모델 관리자(100)가 다른 IMA 모델을 생성하지 않는다고 결정한다면, 블록(814)에서 모델 관리자(100)는 IMA 시스템 모델을 생성한다. 예를 들어, 모델 객체 핸들러(450)는 복수의 IMA LRU 모델들(702)을 생성함으로써 도 7c의 IMA 시스템 모델(754)을 생성할 수 있다.
블록(816)에서, 모델 관리자(100)는 IMA 시스템 모델을 검증한다. 예를 들어, 인터페이스 검증기(480)는 IMA 시스템 모델(754)을 실행하고, IMA 시스템 모델(754)의 출력을 검증 출력(예컨대, 검증 임계치, 검증 규칙 등)과 비교하고, 출력이 검증 출력에 매칭하고 그리고/또는 다른 식으로 검증 출력을 충족하는 것에 기초하여 IMA 시스템 모델(754)을 검증할 수 있다. 다른 예에서, 인터페이스 검증기(480)는, IMA 시스템 모델(754)에 포함된 하나 이상의 특성들을 IMA 버스 엘리먼트들(758), ICD 버스 엘리먼트들(762) 등에 포함된 하나 이상의 특성들과 비교하고 비교를 기초로 IMA 시스템 모델(754)을 검증함으로써 IMA 시스템 모델(754)을 검증할 수 있다. 예를 들어, IMA 시스템 모델(754)에 포함된 하나 이상의 특성들은 제1 IMA 프로토콜 정의들(540) 중 제1 IMA 프로토콜 정의들의 특성에 대응할 수 있다.
블록(818)에서, 모델 관리자(100)는 검증이 성공적인지 여부를 결정한다. 예를 들어, 인터페이스 검증기(480)는 IMA 시스템 모델(754)에 포함된 하나 이상의 특성들과 IMA 버스 엘리먼트들(758), ICD 버스 엘리먼트들(762) 등에 포함된 하나 이상의 특성들의 비교에 기초하여 IMA 시스템 모델(754)이 하나 이상의 IMA 정의 규칙들에 따르지 않음을 결정할 수 있다.
블록(818)에서 모델 관리자(100)가 검증이 성공적이지 않았다고 결정한다면, 제어는 블록(810)으로 돌아가 모델 객체들을 재구성한다. 블록(818)에서, 모델 관리자(100)가 검증이 성공적이라고 결정한다면, 블록(820)에서 모델 관리자(100)는 출력들을 생성한다. 예를 들어, 인터페이스 익스포터(440)는 IMA 시스템 모델(754)과 연관된 기계 판독 가능 명령들을 생성하고 항공기 시스템(106) 및/또는 보다 일반적으로는 도 1의 항공기(108)에 전개하여 실행할 수 있다. 예를 들어, 항공기(108)는 IMA 시스템 모델(754)에 기초하여 기계 판독 가능 명령들을 실행함으로써 동작할 수 있다. 다른 예에서, 인터페이스 익스포터(440)는 공급 체인 및/또는 제조 구축 명령들을 생성하고 전개하여, IMA 시스템 모델(754)을 기초로 항공기 시스템(106) 및/또는 보다 일반적으로는 도 1의 항공기(108)의 생산을 개시할 수 있다. 블록(820)을 구현하는 데 사용될 수 있는 예시적인 프로세스는 도 11과 관련하여 아래에서 설명된다. 출력들을 생성하는 것에 대한 응답으로, 도 8의 방법(800)이 종결된다.
도 9는 정의들을 모델링 환경으로 가져오기 위해 도 1 및 도 3 - 도 7c의 모델 관리자(100)에 의해 수행될 수 있는 예시적인 방법(900)을 나타내는 흐름도이다. 도 9의 프로세스는 도 8의 블록(806)의 동작을 구현하는 데 사용될 수 있다. 이 방법(900)은 모델 관리자(100)가 가져올 ICD 정의들을 선택하는 블록(902)에서 시작된다. 예를 들어, 데이터 소스 선택기(420)는 가져올 제1 ICD 소스(508)의 제1 ICD 프로토콜 정의들(514)을 선택할 수 있다.
블록(904)에서, 모델 관리자(100)는 ICD 정의들을 LNM 정의들로 번역한다. 예를 들어, ICD 번역기(460)는 제1 ICD 프로토콜 정의들(514)을 도 5의 LNM(518)에 포함된 제1 LNM 프로토콜 정의들(526)로 번역하도록 제1 ICD 번역기(520)를 구현할 수 있다.
블록(906)에서, 모델 관리자(100)는 LNM 정의들을 검증한다. 예를 들어, 인터페이스 검증기(480)는 제1 LNM 프로토콜 정의들(526)을 하나 이상의 LNM 정의 규칙들과 비교하고 비교에 기초하여 제1 LNM 프로토콜 정의들(526)을 검증할 수 있다.
블록(908)에서, 모델 관리자(100)는 검증이 성공적인지 여부를 결정한다. 예를 들어, 인터페이스 검증기(480)는 제1 LNM 프로토콜 정의들(526)이 하나 이상의 LNM 정의 규칙들을 따르고 그리고/또는 다른 식으로 충족시키는 것에 기초하여 제1 LNM 프로토콜 정의들(526)이 검증됨을 결정할 수 있다.
블록(908)에서, 모델 관리자(100)가 검증이 성공적이지 않다고 결정한다면, 제어는 블록(916)으로 진행하여 경보를 생성한다. 블록(908)에서, 모델 관리자(100)가 검증이 성공적이라고 결정한다면, 블록(910)에서 모델 관리자(100)는 LNM 정의들을 IMA 정의들로 번역한다. 예를 들어, LSM 번역기(470)는 제1 LNM 프로토콜 정의들(526)을 제1 LNM 프로토콜 정의들(540)로 번역하도록 제1 LSM 번역기(534)를 구현할 수 있다.
블록(912)에서, 모델 관리자(100)는 IMA 정의들을 검증한다. 예를 들어, 인터페이스 검증기(480)는 제1 IMA 프로토콜 정의들(540)을 하나 이상의 IMA 정의 규칙들과 비교하고 비교에 기초하여 제1 IMA 프로토콜 정의들(540)을 검증할 수 있다.
블록(914)에서, 모델 관리자(100)는 검증이 성공적인지 여부를 결정한다. 예를 들어, 인터페이스 검증기(480)는 제1 IMA 프로토콜 정의들(540)이 하나 이상의 IMA 정의 규칙들을 따르고 그리고/또는 다른 식으로 충족시키는 것에 기초하여 제1 IMA 프로토콜 정의들(540)이 검증됨을 결정할 수 있다.
블록(914)에서, 모델 관리자(100)가 검증이 성공적이지 않다고 결정한다면, 제어는 블록(916)으로 진행하여 경보를 생성한다. 예를 들어, 인터페이스 검증기(480)는 경보를 생성하고 사용자 인터페이스 상에 경보를 디스플레이하여 검증이 성공적이지 않다는 것을 사용자에게 통보할 수 있다. 경보를 생성하는 것에 대한 응답으로, 도 9의 방법(900)은 도 8의 예의 블록(808)으로 되돌아가 모델 객체(들)를 모델링 환경으로 가져와 IMA 모델을 생성한다.
블록(914)에서, 모델 관리자(100)가 검증이 성공적이라고 결정한다면, 제어는 블록(918)으로 진행하여 모델링 환경 모델 라이브러리들을 생성한다. 예를 들어, 인터페이스 임포터(430)는 제1 IMA 프로토콜 정의들(540)의 생성에 대한 응답으로 도 5의 라이브러리들(550)을 생성할 수 있다.
블록(920)에서, 모델 관리자(100)는 모델 객체들을 생성한다. 예를 들어, 인터페이스 임포터(430)는 라이브러리들(550)의 생성에 대한 응답으로 도 7c의 IMA 모델 객체들(780)을 생성할 수 있다. 모델 객체들을 생성하는 것에 대한 응답으로, 도 9의 방법(900)은 도 8의 예의 블록(808)으로 되돌아가 모델 객체(들)를 모델링 환경으로 가져와 IMA 모델을 생성한다.
도 10은 모델 객체(들)를 구성하기 위해 도 1 및 도 3 - 도 7c의 모델 관리자(100)에 의해 수행될 수 있는 예시적인 방법(1000)을 나타내는 흐름도이다. 도 10의 프로세스는 도 8의 블록(810)의 동작을 구현하는 데 사용될 수 있다. 이 방법(1000)은 모델 관리자(100)가 처리할 모델 객체를 선택하는 블록(1002)에서 시작된다. 예를 들어, 모델 객체 핸들러(450)는 처리할 도 7a의 DECODE 기능(712)을 선택할 수 있다.
블록(1004)에서, 모델 관리자(100)는 처리할 정의를 선택한다. 예를 들어, 모델 객체 핸들러(450)는 제1 IMA 프로토콜 정의들(540) 중 처리할 첫 번째 것, 이를테면 도 3의 IMA 인터페이스 정의들(320)에 포함된 "TX_COM_PORT 10121" IMA 인터페이스 정의를 선택할 수 있다.
블록(1006)에서, 모델 관리자(100)는 정의를 처리한다. 예를 들어, 모델 객체 핸들러(450)는 제1 IMA 프로토콜 정의들(540) 중 하나를 추가, 삭제 또는 수정할 수 있다. 예를 들어, 모델 객체 핸들러(450)는 도 3의 IMA 인터페이스 정의들(320)에 포함된 "TX_COM_PORT 10121" IMA 인터페이스 정의와 연관된 정보를 수정할 수 있다.
블록(1008)에서, 모델 관리자(100)는 처리할 다른 정의를 선택할지 여부를 결정한다. 예를 들어, 모델 객체 핸들러(450)는 제1 IMA 프로토콜 정의들(540) 중 처리할 두 번째 것을 선택할 것을 결정할 수 있다.
블록(1008)에서 모델 관리자(100)가 처리할 다른 정의를 선택하는 것으로 결정한다면, 제어는 블록(1004)으로 되돌아가 처리할 다른 정의를 선택한다. 블록(1008)에서, 모델 관리자(100)가 처리할 다른 정의를 선택하지 않는다고 결정한다면, 블록(1010)에서 모델 관리자(100)는 IMA 정의 규칙들을 사용하여 모델 객체를 검증한다. 예를 들어, 인터페이스 검증기(480)는 제1 IMA 프로토콜 정의들(540) 중 하나 이상을 하나 이상의 IMA 정의 규칙들과 비교할 수 있다.
블록(1012)에서, 모델 관리자(100)는 검증이 성공적인지 여부를 결정한다. 예를 들어, 인터페이스 검증기(480)는 제1 IMA 프로토콜 정의들(540) 중 하나 이상이 하나 이상의 IMA 정의 규칙들을 따르고 그리고/또는 다른 식으로 충족시킴을 결정할 수 있다.
블록(1012)에서 모델 관리자(100)가 검증이 성공적이지 않다고 결정한다면, 제어는 블록(1004)으로 돌아가 처리할 정의를 선택한다. 예를 들어, 모델 객체 핸들러(450)는 검증에 실패한 정의를 선택할 수 있다. 블록(1012)에서, 모델 관리자(100)가 검증이 성공적이라고 결정한다면, 블록(1014)에서 모델 관리자(100)는 IMA 버스 엘리먼트들을 생성한다. 예를 들어, 모델 관리자(100)는 제1 IMA 버스 엘리먼트(764)를 생성하고 제1 IMA 버스 엘리먼트(764)를 DECODE 기능(712)과 연관시킬 수 있다.
블록(1016)에서, 모델 관리자(100)는 처리할 다른 모델 객체를 선택한다. 예를 들어, 모델 객체 핸들러(450)는 처리할 도 7a의 MAPOUT 기능(714)을 선택할 것을 결정할 수 있다. 블록(1016)에서 모델 관리자(100)가 처리할 다른 모델 객체를 선택하는 것으로 결정한다면, 제어는 블록(1002)으로 되돌아가 처리할 다른 모델 객체를 선택한다. 블록(1016)에서 모델 관리자(100)가 처리할 다른 모델 객체를 선택하지 않는 것으로 결정한다면, 도 10의 방법(1000)은 도 8의 예의 블록(812)으로 되돌아가 다른 IMA 모델을 생성할지 여부를 결정한다.
도 11은 출력들을 생성하기 위해 도 1 및 도 3 - 도 7c의 모델 관리자(100)에 의해 수행될 수 있는 예시적인 방법(1100)을 나타내는 흐름도이다. 도 11의 프로세스는 도 8의 블록(820)의 동작을 구현하는 데 사용될 수 있다. 이 방법(1100)은 모델 관리자(100)가 변환 규칙들을 사용하여 언어 중립 모델(LNM) 정의들을 생성하는 블록(1102)에서 시작된다. 예를 들어, 인터페이스 익스포터(440)는 도 7c의 IMA 시스템 모델(754)에 포함된 제1 IMA 프로토콜 정의들(540)에 기초하여 도 5의 LNM(518)으로 내보내질 도 5의 제1 LNM 프로토콜 정의들(526)을 생성할 수 있다.
블록(1104)에서, 모델 관리자(100)는 기계 판독 가능 명령들을 생성한다. 예를 들어, 인터페이스 익스포터(440)는 도 7c의 IMA 시스템 모델(754)에 포함된 복수의 IMA LRU 모델들(702)의 실행에 대응하는 컴퓨터 실행 가능 코드를 생성할 수 있다.
블록(1106)에서, 모델 관리자(100)는 공급 체인 구축 명령들을 생성한다. 예를 들어, 인터페이스 익스포터(440)는 도 7c의 IMA 시스템 모델(754)과 연관된 항공기 시스템(예컨대, 도 1의 항공기 시스템(106))을 구축하기 위해 컴포넌트들의 순서화, 노동 할당 등을 개시하도록 공급 체인 컴퓨팅 시스템에 의해 실행될 명령들을 포함하도록 도 1의 출력들(124)을 생성할 수 있다.
블록(1108)에서, 모델 관리자(100)는 제조 구축 명령들을 생성한다. 예를 들어, 인터페이스 익스포터(440)는 도 7c의 IMA 시스템 모델(754)과 연관된 항공기 시스템(예컨대, 도 1의 항공기 시스템(106))을 구축하기 위해 컴포넌트들의 제조, 노동 할당 등을 개시하도록 제조 컴퓨팅 시스템에 의해 실행될 명령들을 포함하도록 도 1의 출력들(124)을 생성할 수 있다.
블록(1110)에서, 모델 관리자(100)는 LNM 정의들을 LNM으로 내보낸다. 예를 들어, 인터페이스 익스포터(440)는 다른 IMA 모델들, 다른 IMA 시스템 모델들 등에 의해 사용될 수 있는 제1 LNM 프로토콜 정의들(526)을 LNM(518)으로 내보낼 수 있다. 이러한 예에서, 인터페이스 익스포터(440)는 제1 LNM 프로토콜 정의들(526)이 제1 ICD 번역기(520)를 통해 제1 ICD 프로토콜 정의들(514)로 번역되도록 지시할 수 있다.
블록(1112)에서, 모델 관리자(100)는 차량 및/또는 차량 시뮬레이터에 기계 판독 가능 명령들을 전개한다. 예를 들어, 인터페이스 익스포터(440)는 항공기 시스템(106) 및/또는 도 1의 항공기(108)에 의해 실행되도록 항공기 시스템(106) 및/또는 항공기(108)에 기계 판독 가능 명령들을 전개할 수 있다.
블록(1114)에서, 모델 관리자(100)는 IMA 시스템 모델과 연관된 차량의 생산을 개시한다. 예를 들어, 인터페이스 익스포터(440)는 IMA 시스템 모델(754)과 연관된 항공기 시스템(106), 항공기(108) 등의 생산을 개시할 수 있다. IMA 시스템 모델과 연관된 차량의 생산을 개시하는 것에 대한 응답으로, 방법(1100)은 도 8의 예로 되돌아가 끝낸다.
도 12는 도 1 및 도 3 - 도 7c의 모델 관리자(100)를 구현하기 위해 도 8 - 도 11의 명령들을 실행하도록 구조화된 프로세서 플랫폼(1200)의 블록도이다. 프로세서 플랫폼(1200)은 예를 들어 서버, 개인용 컴퓨터, 워크스테이션, 자기 학습 기계(예컨대, 신경 네트워크), 또는 임의의 다른 타입의 컴퓨팅 디바이스일 수 있다.
예시된 예의 프로세서 플랫폼(1200)은 프로세서(1212)를 포함한다. 예시된 예의 프로세서(1212)는 하드웨어이다. 예를 들어, 프로세서(1212)는 임의의 원하는 패밀리 또는 제조업체로부터의 하나 이상의 집적 회로들, 로직 회로들, 마이크로프로세서들, GPU들, DSP들 또는 제어기들에 의해 구현될 수 있다. 하드웨어 프로세서는 반도체 기반(예컨대, 실리콘 기반) 디바이스일 수 있다. 이 예에서, 프로세서(1212)는 도 4의 모델링 환경 선택기(410), 데이터 소스 선택기(420), 인터페이스 임포터(430), 인터페이스 익스포터(440), 모델 객체 핸들러(450), ICD 번역기(460), LSM 번역기(470), 인터페이스 검증기(480) 및 보고 생성기(490)를 구현한다.
예시된 예의 프로세서(1212)는 로컬 메모리(1213)(예를 들면, 캐시)를 포함한다. 예시된 예의 프로세서(1212)는 버스(1218)를 통해 휘발성 메모리(1214) 및 비휘발성 메모리(1216)를 포함하는 메인 메모리와 통신한다. 휘발성 메모리(1214)는 동기식 동적 랜덤 액세스 메모리(SDRAM), 동적 랜덤 액세스 메모리(DRAM), RAMBUS®동적 랜덤 액세스 메모리(RDRAM®및/또는 임의의 다른 타입의 랜덤 액세스 메모리 디바이스에 의해 구현될 수 있다. 비휘발성 메모리(1216)는 플래시 메모리 및/또는 임의의 다른 원하는 타입의 메모리 디바이스에 의해 구현될 수 있다. 메인 메모리(1214, 1216)에 대한 액세스는 메모리 제어기에 의해 제어된다.
예시된 예의 프로세서 플랫폼(1200)은 또한 인터페이스 회로(1220)를 포함한다. 인터페이스 회로(1220)는 이더넷 인터페이스, 범용 직렬 버스(USB: universal serial bus), Bluetooth®인터페이스, 근접장 통신(NFC: near field communication) 인터페이스 및/또는 PCI 익스프레스 인터페이스와 같은 임의의 타입의 인터페이스 표준에 의해 구현될 수 있다.
예시된 예에서, 하나 이상의 입력 디바이스들(1222)은 인터페이스 회로(1220)에 접속된다. 입력 디바이스(들)(1222)는 사용자가 프로세서(1212)에 데이터 및/또는 커맨드들을 입력하도록 허용한다. 입력 디바이스(들)는 예를 들어, 오디오 센서, 마이크로폰, 카메라(스틸 또는 비디오), 키보드, 버튼, 마우스, 터치스크린, 트랙패드, 트랙볼, 아이소포인트(isopoint) 디바이스 및/또는 음성 인식 시스템에 의해 구현될 수 있다.
하나 이상의 출력 디바이스들(1224)은 또한 예시된 예의 인터페이스 회로(1220)에 연결된다. 출력 디바이스들(1224)은 예를 들어, 디스플레이 디바이스들(예컨대, 발광 다이오드(LED: light emitting diode), 유기 발광 다이오드(OLED: organic light emitting diode), 액정 디스플레이(LCD: liquid crystal display), 음극선관(CRT: cathode ray tube) 디스플레이, 인-플레이스 스위칭(IPS: in-place switching) 디스플레이, 터치스크린 등), 촉각 출력 디바이스, 프린터 및/또는 스피커에 의해 구현될 수 있다. 따라서 예시된 예의 인터페이스 회로(1220)는 일반적으로 그래픽스 드라이버 카드, 그래픽스 드라이버 칩 및/또는 그래픽스 드라이버 프로세서를 포함한다.
예시된 예의 인터페이스 회로(1220)는 또한, 네트워크(1226)를 통한 외부 기계들(예컨대, 임의의 종류의 컴퓨팅 디바이스들)과의 데이터 교환을 가능하게 하기 위해 송신기, 수신기, 트랜시버, 모뎀, 주거용 게이트웨이, 무선 액세스 포인트 및/또는 네트워크 인터페이스와 같은 통신 디바이스를 포함한다. 통신은 예를 들어, 이더넷 접속, 디지털 가입자 회선(DSL: digital subscriber line) 접속, 전화 회선 접속, 동축 케이블 시스템, 위성 시스템, 사이트 라인(line-of-site) 무선 시스템, 셀룰러폰 시스템 등을 통할 수 있다.
예시된 예의 프로세서 플랫폼(1200)은 또한 소프트웨어 및/또는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들(1228)을 포함한다. 이러한 대용량 저장 디바이스들(1228)의 예들은 플로피 디스크 드라이브들, 하드 드라이브 디스크들, 콤팩트 디스크 드라이브들, 블루레이 디스크 드라이브들, 복수 배열 독립 디스크(RAID: redundant array of independent disks) 시스템들 및 디지털 다기능 디스크(DVD) 드라이브들을 포함한다.
도 8 - 도 11의 기계 실행 가능 명령들(1232)은 대용량 저장 디바이스(1228)에, 휘발성 메모리(1214)에, 비휘발성 메모리(1216)에 그리고/또는 CD나 DVD와 같은 착탈식 비-일시적 컴퓨터 판독 가능 저장 매체 상에 저장될 수 있다.
앞서 말한 내용으로부터, 통합 모듈러 아키텍처 모델을 생성하는 예시적인 시스템들, 방법들, 장치 및 제조품들이 개시되었다고 인식될 것이다. 본 명세서에서 설명된 모델 관리자 장치는 컴퓨터 모델링 환경에서 IMA 모델을 생성하는 데 사용될 항공기 컴포넌트들 및 시스템들의 추상화들을 생성한다. 본 명세서에서 설명된 모델 관리자 장치는 IMA 모델들 사이의 추상화의 재사용을 가능하게 하기 위한 정의들을 인터페이스 제어 데이터 소스에 저장한다. 본 명세서에서 설명된 모델 관리자 장치는 언어 중립 모델을 통해 인터페이스 제어 데이터 소스에 포함된 정보를 컴퓨터 모델링 환경으로 번역한다.
본 명세서에서 설명된 예들은 이전에 정의된 또는 생성된 IMA 모델들을 새로운 IMA 모델들로 가져오는 모델 관리자 장치의 능력으로 인해 이전 예들에 비해 IMA 모델을 생성할 시간을 감소시킨다. 본 명세서에서 설명된 예들은 차량 IMA 모델을 생성하는 데 필요한 다수의 고유 IMA 모델들의 감소로 인해 항공기와 같은 차량에 대응하는 IMA 모델을 생성하는 데 필요한 저장 능력들을 감소시킨다. 본 명세서에서 설명된 예들은 같지 않은 데이터 소스들 사이의 정보의 매핑을 가능하게 하기 위해 서로 다른 데이터베이스들을 필요로 하는 이전의 예들과 비교하여 같지 않은 데이터 포맷화된 정보 저장 시스템들 사이에서 데이터의 번역을 가능하게 하는 데 언어 중립 모델 데이터베이스를 사용함으로써 데이터베이스 효율을 향상시킨다.
추가로, 본 개시내용은 다음 조항들에 따른 실시예들을 포함한다:
조항 1은, 제1 통합 모듈러 아키텍처(IMA) 프로토콜 정의들을 제1 컴퓨터 모델링 환경으로 가져와 제1 IMA 프로토콜 정의들을 기초로 복수의 라이브러리들을 생성하고 복수의 라이브러리들을 기초로 복수의 IMA 모델 객체들을 생성하기 위한 인터페이스 임포터, 복수의 IMA 모델 객체들 중 IMA 모델 객체들을 제1 컴퓨터 모델링 환경으로 가져와, 항공기의 항공기 시스템에 대응하는 제1 IMA 모델을 생성하고 그리고 제1 IMA 모델을 포함하는 복수의 IMA 모델들을 생성함으로써 항공기에 대응하는 IMA 시스템 모델을 생성하기 위한 모델 객체 핸들러, IMA 시스템 모델의 출력을 검증 출력과 비교함으로써 IMA 시스템 모델을 검증하기 위한 인터페이스 검증기, IMA 시스템 모델이 검증될 때 항공기 시스템의 제조 구축 명령들을 생성하기 위한 인터페이스 익스포터, 및 제조 구축 명령들에 기초하여 항공기 시스템의 생산을 개시하기 위한 보고 생성기를 포함하는 장치를 포함한다.
조항 2는 조항 1의 장치를 포함하며, 여기서 제1 IMA 프로토콜 정의들은 항공기 시스템과 연관된 인터페이스 정보, 요건 정보 또는 규격 정보 중 적어도 하나를 포함한다.
조항 3은 조항 1의 장치를 포함하며, 여기서 인터페이스 임포터는 제1 인터페이스 제어 데이터베이스(ICD) 번역기를 사용하여 제1 ICD 소스에 포함된 제1 ICD 프로토콜 정의들을 제1 언어 중립 모델(LNM)에 포함된 LNM 프로토콜 정의들로 변환하도록 ICD 번역기에 명령하고, 그리고 제1 언어 특정 모델(LSM) 번역기를 사용하여 제1 LNM 프로토콜 정의들을 제1 모델링 환경에 포함된 제1 IMA 프로토콜 정의들로 변환하도록 LSM 번역기에 명령함으로써 제1 IMA 프로토콜 정의들을 가져온다.
조항 4는 조항 1의 장치를 포함하며, 여기서 제1 IMA 모델은 하위 계층, 표현 계층 및 상위 계층을 포함하고, 하위 계층은 디지털 통신 판독 기능 또는 센서 판독 기능 중 적어도 하나를 포함한다.
조항 5는 조항 4의 장치를 포함하며, 여기서 인터페이스 검증기는 디지털 통신 판독 기능을 통해 네트워크 스위치로부터 실시간으로 네트워크 데이터를 획득하는 것 또는 센서 판독 기능을 통해 센서로부터 실시간으로 센서 데이터를 획득하는 것 중 적어도 하나에 의해 IMA 시스템 모델을 검증한다.
조항 6은 조항 1의 장치를 포함하며, 여기서 인터페이스 익스포터는 IMA 시스템 모델에 기초하여 기계 판독 가능 명령들을 생성하고, 기계 판독 가능 명령들을 항공기 시스템 또는 항공기 중 적어도 하나에 전개하고, 기계 판독 가능 명령들에 기초하여 항공기 시스템 또는 항공기 중 적어도 하나의 동작을 야기한다.
조항 7은, 제1 통합 모듈러 아키텍처(IMA) 프로토콜 정의들에 기초하여 복수의 라이브러리들을 생성하기 위해 제1 IMA 프로토콜 정의들을 제1 컴퓨터 모델링 환경으로 가져오는 단계, 복수의 라이브러리들에 기초하여 복수의 IMA 모델 객체들을 생성하는 단계, 항공기의 항공기 시스템에 대응하는 제1 IMA 모델을 생성하기 위해 복수의 IMA 모델 객체들 중 IMA 모델 객체들을 제1 컴퓨터 모델링 환경으로 가져오는 단계, 제1 IMA 모델을 포함하는 복수의 IMA 모델들을 생성함으로써 항공기에 대응하는 IMA 시스템 모델을 생성하는 단계, IMA 시스템 모델의 출력을 검증 출력과 비교함으로써 IMA 시스템 모델을 검증하는 단계, 비교에 기초하여 IMA 시스템 모델을 검증하는 것에 대한 응답으로, 항공기 시스템의 제조 구축 명령들을 생성하는 단계, 및 제조 구축 명령들에 기초하여 항공기 시스템의 생산을 개시하는 단계를 포함하는 방법을 포함한다.
조항 8은 조항 7의 방법을 포함하며, 여기서 제1 IMA 프로토콜 정의들은 항공기 시스템과 연관된 인터페이스 정보, 요건 정보 또는 규격 정보 중 적어도 하나를 포함한다.
조항 9는 조항 7의 방법을 포함하며, 여기서 제1 IMA 프로토콜 정의들을 가져오는 단계는, 제1 인터페이스 제어 데이터베이스(ICD) 번역기로 제1 ICD 소스에 포함된 제1 ICD 프로토콜 정의들을 언어 중립 모델(LNM)에 포함된 제1 LNM 프로토콜 정의들로 변환하는 단계, 및 제1 언어 특정 모델(LSM) 번역기로 제1 LNM 프로토콜 정의들을 제1 모델링 환경에 포함된 제1 IMA 프로토콜 정의들로 변환하는 단계를 포함한다.
조항 10은, 제1 LNM 프로토콜 정의들 중 제1 LNM 프로토콜 정의들을 적어도 하나의 LNM 정의 규칙과 비교하고, 비교에 기초하여 제1 LNM 프로토콜 정의들을 검증하는 단계, 및 제1 IMA 프로토콜 정의들 중 제1 IMA 프로토콜 정의들을 적어도 하나의 IMA 정의 규칙과 비교하고, 비교에 기초하여 제1 IMA 프로토콜 정의들을 검증하는 단계를 더 포함하는 조항 9의 방법을 포함한다.
조항 11은 조항 7의 방법을 포함하며, 여기서 제1 IMA 모델은 하위 계층, 표현 계층 및 상위 계층을 포함하고, 하위 계층은 디지털 통신 판독 기능 또는 센서 판독 기능 중 적어도 하나를 포함한다.
조항 12는 조항 11의 방법을 포함하며, 여기서 IMA 시스템 모델을 검증하는 단계는, 디지털 통신 판독 기능을 통해 네트워크 스위치로부터 실시간으로 네트워크 데이터를 획득하는 단계, 또는 센서 판독 기능을 통해 센서로부터 실시간으로 센서 데이터를 획득하는 단계 중 적어도 하나를 포함한다.
조항 13은 IMA 시스템 모델에 기초하여 기계 판독 가능 명령들을 생성하는 단계, 기계 판독 가능 명령들을 항공기 시스템 또는 항공기 중 적어도 하나에 전개하는 단계, 및 기계 판독 가능 명령들에 기초하여 항공기 시스템 또는 항공기 중 적어도 하나의 동작을 야기하는 단계를 더 포함하는 조항 7의 방법을 포함한다.
조항 14는, 실행될 때 기계로 하여금, 적어도, 제1 통합 모듈러 아키텍처(IMA) 프로토콜 정의들에 기초하여 복수의 라이브러리들을 생성하기 위해 제1 IMA 프로토콜 정의들을 제1 컴퓨터 모델링 환경으로 가져오게 하고, 복수의 라이브러리들에 기초하여 복수의 IMA 모델 객체들을 생성하게 하고, 항공기의 항공기 시스템에 대응하는 제1 IMA 모델을 생성하고, 그리고 제1 IMA 모델을 포함하는 복수의 IMA 모델들을 생성함으로써 항공기에 대응하는 IMA 시스템 모델을 생성하기 위해 복수의 IMA 모델 객체들 중 IMA 모델 객체들을 제1 컴퓨터 모델링 환경으로 가져오게 하고, IMA 시스템 모델의 출력을 검증 출력과 비교함으로써 IMA 시스템 모델을 검증하게 하고, 비교에 기초하여 IMA 시스템 모델이 검증될 때 항공기 시스템의 제조 구축 명령들을 생성하게 하고, 그리고 제조 구축 명령들에 기초하여 항공기 시스템의 생산을 개시하게 하는 명령들을 포함하는 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다.
조항 15는 조항 14의 비-일시적 컴퓨터 판독 가능 저장 매체를 포함하며, 여기서 제1 IMA 프로토콜 정의들은 항공기 시스템과 연관된 인터페이스 정보, 요건 정보 또는 규격 정보 중 적어도 하나를 포함한다.
조항 16은 실행될 때 기계로 하여금, 적어도, 제1 인터페이스 제어 데이터베이스(ICD) 번역기로 제1 ICD 소스에 포함된 제1 ICD 프로토콜 정의들을 언어 중립 모델(LNM)에 포함된 제1 LNM 프로토콜 정의들로 변환하게 하고, 그리고 제1 언어 특정 모델(LSM) 번역기로 제1 LNM 프로토콜 정의들을 제1 모델링 환경에 포함된 제1 IMA 프로토콜 정의들로 변환하게 하는 명령들을 더 포함하는, 조항 14의 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다.
조항 17은 실행될 때 기계로 하여금, 적어도, 제1 LNM 프로토콜 정의들 중 하나를 LNM 정의 규칙과 비교하고, 비교에 기초하여 제1 LNM 프로토콜 정의들을 검증하게 하고, 그리고 제1 IMA 프로토콜 정의들 중 하나를 IMA 정의 규칙과 비교하고, 비교에 기초하여 제1 IMA 프로토콜 정의들을 검증하게 하는 명령들을 더 포함하는, 조항 16의 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다.
조항 18은 조항 14의 비-일시적 컴퓨터 판독 가능 저장 매체를 포함하며, 여기서 제1 IMA 모델은 하위 계층, 표현 계층 및 상위 계층을 포함하고, 하위 계층은 디지털 통신 판독 기능 또는 센서 판독 기능 중 적어도 하나를 포함한다.
조항 19는 실행될 때 기계로 하여금, 적어도, 디지털 통신 판독 기능을 통해 네트워크 스위치로부터 실시간으로 네트워크 데이터를 획득하게 하거나 센서 판독 기능을 통해 센서로부터 실시간으로 센서 데이터를 획득하게 하는 명령들을 더 포함하는, 조항 18의 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다.
조항 20은 실행될 때 기계로 하여금, 적어도, IMA 시스템 모델에 기초하여 기계 판독 가능 명령들을 생성하게 하고, 기계 판독 가능 명령들을 항공기 시스템 또는 항공기 중 적어도 하나에 전개하게 하고, 그리고 기계 판독 가능 명령들에 기초하여 항공기 시스템 또는 항공기 중 적어도 하나의 동작을 야기하게 하는 명령들을 더 포함하는, 조항 14의 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다.
본 명세서에서는 특정한 조항 시스템들, 방법들, 장치 및 제조품들이 개시되었지만, 본 특허의 커버리지 범위는 그에 제한되지 않는다. 그와 달리, 본 특허는 본 특허의 청구항들의 범위 내에 타당하게 속하는 모든 시스템들, 방법들, 장치 및 제조품들을 커버한다.

Claims (10)

  1. 인터페이스 임포터(importer)(430) ― 상기 인터페이스 임포터(430)는,
    제1 통합 모듈러 아키텍처(IMA: integrated modular architecture) 프로토콜 정의들(540)에 기초하여 복수의 라이브러리들(550)을 생성하기 위해 상기 제1 IMA 프로토콜 정의들(540)을 제1 컴퓨터 모델링 환경(530)으로 가져오고; 그리고
    상기 복수의 라이브러리들(550)에 기초하여 복수의 IMA 모델 객체들(780)을 생성함 ―;
    모델 객체 핸들러(450) ― 상기 모델 객체 핸들러(450)는,
    항공기(108)의 항공기 시스템(106)에 대응하는 제1 IMA 모델(704)을 생성하기 위해 상기 복수의 IMA 모델 객체들(780) 중 IMA 모델 객체들을 상기 제1 컴퓨터 모델링 환경(530)으로 가져오고; 그리고
    상기 제1 IMA 모델(704)을 포함하는 복수의 IMA 모델들(702)을 생성함으로써 상기 항공기(108)에 대응하는 IMA 시스템 모델(754)을 생성함 ―;
    상기 IMA 시스템 모델(754)의 출력을 검증 출력과 비교함으로써 상기 IMA 시스템 모델(754)을 검증하기 위한 인터페이스 검증기(480);
    상기 IMA 시스템 모델(754)이 검증될 때 상기 항공기 시스템(106)의 제조 구축 명령들(124)을 생성하기 위한 인터페이스 익스포터(exporter)(440); 및
    상기 제조 구축 명령들(124)에 기초하여 상기 항공기 시스템(106)의 생산을 개시하기 위한 보고 생성기(490)를 포함하고,
    상기 인터페이스 임포터(430)는,
    제1 인터페이스 제어 데이터베이스(ICD: interface control database) 번역기(520)를 사용하여 제1 ICD 소스(508)에 포함된 제1 ICD 프로토콜 정의들(514)을 제1 언어 중립 모델(LNM: language neutral model)(518)에 포함된 제1 LNM 프로토콜 정의들(526)로 변환하도록 ICD 번역기(460)에 명령하고; 그리고
    제1 언어 특정 모델(LSM: language specific model) 번역기(534)를 사용하여 상기 제1 LNM 프로토콜 정의들(526)을 상기 제1 컴퓨터 모델링 환경(530)에 포함된 제1 IMA 프로토콜 정의들(540)로 변환하도록 LSM 번역기(470)에 명령함으로써
    상기 제1 IMA 프로토콜 정의들(540)을 가져오는,
    장치(100).
  2. 제1 항에 있어서,
    상기 제1 IMA 프로토콜 정의들(540)은 상기 항공기 시스템(106)과 연관된 인터페이스 정보, 요건 정보 또는 규격 정보 중 적어도 하나를 포함하는,
    장치(100).
  3. 제1 항 또는 제2 항에 있어서,
    상기 제1 IMA 모델(704)은 하위 계층(618), 표현 계층(500) 및 상위 계층(508)을 포함하고,
    상기 하위 계층(618)은 디지털 통신 판독 기능(708) 또는 센서 판독 기능(711) 중 적어도 하나를 포함하는,
    장치(100).
  4. 제1 항 또는 제2 항에 있어서,
    상기 인터페이스 검증기(480)는 디지털 통신 판독 기능(708)을 통해 네트워크 스위치(706)로부터 실시간으로 네트워크 데이터를 획득하는 것 또는 센서 판독 기능(711)을 통해 센서(710)로부터 실시간으로 센서 데이터를 획득하는 것 중 적어도 하나에 의해 상기 IMA 시스템 모델(754)을 검증하는,
    장치(100).
  5. 제1 항 또는 제2 항에 있어서,
    상기 인터페이스 익스포터(440)는,
    상기 IMA 시스템 모델(754)에 기초하여 기계 판독 가능 명령들을 생성하고;
    상기 항공기 시스템(106) 또는 상기 항공기(108) 중 적어도 하나에 상기 기계 판독 가능 명령들(124)을 전개하고; 그리고
    상기 기계 판독 가능 명령들(124)에 기초하여 상기 항공기 시스템(106) 또는 상기 항공기(108) 중 적어도 하나의 동작을 야기하는,
    장치(100).
  6. 제1 통합 모듈러 아키텍처(IMA) 프로토콜 정의들(540)에 기초하여 복수의 라이브러리들(550)을 생성하기 위해 상기 제1 IMA 프로토콜 정의들(540)을 제1 컴퓨터 모델링 환경(530)으로 가져오는 단계;
    상기 복수의 라이브러리들(550)에 기초하여 복수의 IMA 모델 객체들(780)을 생성하는 단계;
    항공기(108)의 항공기 시스템(106)에 대응하는 제1 IMA 모델(704)을 생성하기 위해 상기 복수의 IMA 모델 객체들(780) 중 IMA 모델 객체들을 상기 제1 컴퓨터 모델링 환경(530)으로 가져오는 단계;
    상기 제1 IMA 모델(704)을 포함하는 복수의 IMA 모델들(702)을 생성함으로써 상기 항공기(108)에 대응하는 IMA 시스템 모델(754)을 생성하는 단계;
    상기 IMA 시스템 모델(754)의 출력을 검증 출력과 비교함으로써 상기 IMA 시스템 모델(754)을 검증하는 단계;
    상기 비교에 기초하여 상기 IMA 시스템 모델(754)을 검증하는 것에 대한 응답으로, 상기 항공기 시스템(106)의 제조 구축 명령들(124)을 생성하는 단계; 및
    상기 제조 구축 명령들(124)에 기초하여 상기 항공기 시스템(106)의 생산을 개시하는 단계를 포함하고,
    상기 제1 IMA 프로토콜 정의들(540)을 가져오는 단계는,
    제1 인터페이스 제어 데이터베이스(ICD) 번역기(460)로 제1 ICD 소스(508)에 포함된 제1 ICD 프로토콜 정의들(514)을 언어 중립 모델(LNM)(518)에 포함된 제1 LNM 프로토콜 정의들(526)로 변환하는 단계; 및
    제1 언어 특정 모델(LSM) 번역기(534)로 상기 제1 LNM 프로토콜 정의들(526)을 상기 제1 컴퓨터 모델링 환경(530)에 포함된 제1 IMA 프로토콜 정의들(540)로 변환하는 단계를 포함하는,
    방법.
  7. 제6 항에 있어서,
    상기 제1 LNM 프로토콜 정의들(526) 중 제1 LNM 프로토콜 정의들을 적어도 하나의 LNM 정의 규칙과 비교하고, 상기 비교에 기초하여 상기 제1 LNM 프로토콜 정의들(526)을 검증하는 단계; 및
    상기 제1 IMA 프로토콜 정의들(540) 중 제1 IMA 프로토콜 정의들을 상기 적어도 하나의 IMA 정의 규칙과 비교하고, 상기 비교에 기초하여 상기 제1 IMA 프로토콜 정의들(540)을 검증하는 단계를 더 포함하는,
    방법.
  8. 제6 항 또는 제7 항에 있어서,
    상기 제1 IMA 모델(704)은 하위 계층(618), 표현 계층(600) 및 상위 계층(608)을 포함하고,
    상기 하위 계층(618)은 디지털 통신 판독 기능(708) 또는 센서 판독 기능(711) 중 적어도 하나를 포함하는,
    방법.
  9. 삭제
  10. 삭제
KR1020190040258A 2018-04-09 2019-04-05 통합 모듈러 아키텍처 모델을 생성하기 위한 시스템들, 방법들 및 장치 KR102647291B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/948,180 2018-04-09
US15/948,180 US11106838B2 (en) 2018-04-09 2018-04-09 Systems, methods, and apparatus to generate an integrated modular architecture model

Publications (2)

Publication Number Publication Date
KR20190118126A KR20190118126A (ko) 2019-10-17
KR102647291B1 true KR102647291B1 (ko) 2024-03-12

Family

ID=65686747

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190040258A KR102647291B1 (ko) 2018-04-09 2019-04-05 통합 모듈러 아키텍처 모델을 생성하기 위한 시스템들, 방법들 및 장치

Country Status (6)

Country Link
US (1) US11106838B2 (ko)
EP (1) EP3553680A1 (ko)
JP (1) JP7333703B2 (ko)
KR (1) KR102647291B1 (ko)
CN (1) CN110362847A (ko)
BR (1) BR102019007077A2 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3101565A1 (en) * 2015-06-01 2016-12-07 Airbus Operations GmbH Aircraft assembly system
US11192662B2 (en) * 2018-11-13 2021-12-07 Kidde Technologies, Inc. Aircraft integrated modular avionics inter-partition communications simulation modeling language extension
US11232242B2 (en) * 2019-07-22 2022-01-25 Red Hat, Inc. Sensory data generator
CN112859757B (zh) * 2019-11-27 2022-04-22 宁波舜宇智能科技有限公司 边缘计算控制方法、装置、边缘计算机和可读存储介质
CN112001028A (zh) * 2020-07-17 2020-11-27 武汉船用电力推进装置研究所(中国船舶重工集团公司第七一二研究所) 一种永磁推进系统仿真方法及平台
CN112462731B (zh) * 2020-10-16 2022-06-24 北京西南交大盛阳科技股份有限公司 安全监督控制方法、安全监督控制装置、计算机设备及安全监督系统
KR102419119B1 (ko) * 2020-12-16 2022-07-07 주식회사 한화 인터페이스 제어 문서에 따라 그래픽 유저 인터페이스를 생성하는 시험 장치 및 이의 동작 방법
CN114697153B (zh) * 2020-12-30 2023-12-08 北京石竹科技股份有限公司 一种通过光纤实现a429总线超长距离传输的方法
US20220284145A1 (en) * 2021-03-08 2022-09-08 General Electric Company System and method for modeling plant systems utilizing scalable and repeatable modules
CN112800124B (zh) * 2021-04-15 2021-09-10 成都赢瑞科技有限公司 基于接口控制文件的计算机辅助设计模型集成系统及方法
CN113364886A (zh) * 2021-06-30 2021-09-07 江西洪都航空工业集团有限责任公司 一种航空电子接口数据管理系统
US11276315B1 (en) 2021-07-12 2022-03-15 Beta Air, Llc Electric aircraft configured to implement a layered data network and method to implement a layered data network in electric aircraft
CN113821050B (zh) * 2021-09-13 2023-10-27 北京航空航天大学 一种基于SysML定义无人机系统架构元模型的方法
US20230095149A1 (en) * 2021-09-28 2023-03-30 Fortinet, Inc. Non-interfering access layer end-to-end encryption for iot devices over a data communication network
CN114139970B (zh) * 2021-12-02 2024-02-23 陕西巨石数字科技有限公司 一种飞机脉动生产线展示方法
CN115185877B (zh) * 2022-07-29 2023-09-05 中航机载系统共性技术有限公司 一种双余度通用处理模块及其信息同步方法
CN116126478B (zh) * 2023-04-14 2023-06-23 北京蓝天航空科技股份有限公司 接口控制文档的生成方法、装置、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014515850A (ja) * 2011-03-30 2014-07-03 ザ・ボーイング・カンパニー コンピュータ援用設計システムのモデル管理

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332504B2 (en) * 2006-12-26 2012-12-11 The Boeing Company Method for testing connectivity of software applications hosted on networked computers
FR2950449A1 (fr) 2009-09-23 2011-03-25 Eurocopter France Simulation en temps reel hautement representative d'un systeme avionique
US9063800B2 (en) * 2010-05-26 2015-06-23 Honeywell International Inc. Automated method for decoupling avionics application software in an IMA system
US8826302B2 (en) * 2012-11-02 2014-09-02 Airbus Operations (S.A.S.) Methods, systems and computer readable media for establishing a communication link between software simulation models
US10180995B2 (en) * 2013-07-15 2019-01-15 The Boeing Company System and method for assessing cumulative effects of a failure
US9794131B2 (en) * 2014-04-30 2017-10-17 The Boeing Company File, command, and airplane data transfer tool
EP3101565A1 (en) * 2015-06-01 2016-12-07 Airbus Operations GmbH Aircraft assembly system
CN104992022A (zh) * 2015-07-11 2015-10-21 杭州杉石科技有限公司 一种基于模型的航空电子系统接口管理方法
US11244090B2 (en) * 2016-06-01 2022-02-08 The Mathworks, Inc. Systems and methods for extracting adjustable attributes of model components
US10511515B1 (en) * 2017-08-29 2019-12-17 Rockwell Collins, Inc. Protocol buffer avionics system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014515850A (ja) * 2011-03-30 2014-07-03 ザ・ボーイング・カンパニー コンピュータ援用設計システムのモデル管理

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Horvath, A. et al., Hardware-software allocation specification of IMA systems for early simulation, 2014 IEEE pp. 4D3-1 - 4D3-15*

Also Published As

Publication number Publication date
KR20190118126A (ko) 2019-10-17
BR102019007077A2 (pt) 2019-10-15
US11106838B2 (en) 2021-08-31
US20190311087A1 (en) 2019-10-10
JP7333703B2 (ja) 2023-08-25
EP3553680A1 (en) 2019-10-16
JP2019215855A (ja) 2019-12-19
CN110362847A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
KR102647291B1 (ko) 통합 모듈러 아키텍처 모델을 생성하기 위한 시스템들, 방법들 및 장치
JP7418511B2 (ja) 情報処理装置及び情報処理方法
US8812284B2 (en) Highly representative real-time simulation of an avionics system
CN107066243B (zh) 一种通用的机载总线接口控制文档的解析和打包方法
TWI551068B (zh) 用於無線電波形產生裝置的任意無線電波形技術方案之執行時生成、指派、部署及更新技術
CN105159670A (zh) 一种通用座舱显示控制系统软件开发框架
US11093665B2 (en) System and method for simulation visualization
US11966718B2 (en) Virtual developmental environment apparatus, method, and recording medium
Halle et al. Model-based transition of IMA architecture into configuration data
KR20130138468A (ko) 응용 소프트웨어와 autosar 서비스를 연결하기 위한 장치 및 방법
EP3982268B1 (en) Chassis simulation method and apparatus, server, storage medium and program product
US20200092126A1 (en) Building automation system providing for integration of subsystems
US8260597B1 (en) Accessing time driven environment data stores from a state driven environment
KR102322685B1 (ko) 조명 제어를 위한 이벤트-룰 기반 조명 제어 시나리오 프로파일을 생성하는 장치 및 그 방법
CN106897120B (zh) 双层动态分布式仿真平台
CN115758789A (zh) 一种复杂实时嵌入式系统的软件架构设计与架构传递方法
EP4261631A1 (en) Control system and control method
Barner et al. Modeling and Development Process
JP7441981B2 (ja) 切り替え可能モデルを有する自律運転シミュレーションアーキテクチャを提供するためのシステムと方法
Halle et al. Evaluation of the ashley seamless tool-chain on a real-world avionics demonstrator
KR102586821B1 (ko) 가상 ecu 환경에서의 오토사 플랫폼 입출력에 따른 동작 검증 시스템 및 방법
KR102595323B1 (ko) 차량용 임베디드 시스템을 위한 가상 ecu 검증 시스템및 방법
KR102006211B1 (ko) 제 1 시뮬레이터에서 이용되는 파이썬 스크립트를 변환하여, 제 2 시뮬레이터에서 이용되는 xml 스크립트를 생성하는 장치 및 방법
Velez et al. Developing IEEE P21451 compatible IoT networks utilizing readily available development platforms
Denzler et al. Modelling protocol gateways for cyber-physical systems using Architecture Analysis & Design Language

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant