JSBSim

JSBSim
JSBSim
개발자JSBSim 빌드팀
안정된 릴리스
2022년 2월 13일 / 1.1.11
플랫폼Windows, Linux, Cygwin, Mac OS X, FreeBSD, Solaris 또는 IRIX
유형비행 시뮬레이션
면허증.LGPL
웹 사이트jsbsim.org

JSBSim은 항공 우주 비행체의 비행 역학을 모델링하는 오픈 소스 비행 역학 모델(FDM) 소프트웨어 라이브러리입니다.라이브러리는 비행 시뮬레이션 패키지 FlightGear 및 OpenEaagles에 통합되었습니다.또한 소규모 독립 실행형 프로그램에서 호출하여 배치 시뮬레이션 도구를 만들 수도 있습니다.JSBSim은 1996년부터 개발 및 사용되었으며 Linux, Macintosh 및 Microsoft Windows 운영 체제를 실행하는 플랫폼을 포함하여 현재 사용되는 가장 인기 있는 모든 플랫폼을 기반으로 구축되었습니다.JSBSim은 C++로 작성되어 XML 컨피규레이션파일을 사용합니다.

이력 및 개요

JSBSim (John S. Bernt)은 1996년에 비행 역학 및 항공기의 제어를 모델링하는 것을 목표로 하는 경량, 데이터 중심, 비선형, 6DoF의 자유도 (6DoF) 배치 시뮬레이션 애플리케이션으로 구상되었다.초기 버전 이후, JSBSim은 자체 성장한 오픈 소스 개발 환경과 지속적인 개선을 위한 아이디어에 기여한 다양한 사용자들의 혜택을 받아왔습니다.이는 완전한 기능을 갖춘 대형 비행 시뮬레이션 애플리케이션 및 아키텍처(FlightGear 및 OpenEaagles로 알려진 예)에 통합되었으며 업계 및 학계에서 배치 시뮬레이션 도구로 사용되어 왔습니다.

사용 편의성의 예로서, 다음 코드는 스크립트에 의해 실행이 제어되는 작은 프로그램에 의해 JSBSim이 호출되는 방법을 보여줍니다.

#실패하다 <FGFDMExec>h>  인트 주된(인트 argc, 차 **argv) {   JSBSim::FGFDMExec FDMExec;   부울 결과 = 진실의;   FDMExec.로드 스크립트(argv[1]);   하는 동안에 (결과) 결과 = FDMExec.달려.(); } 

위의 애플리케이션은 JSBSim 라이브러리와 함께 구축될 때 작동하며, 항공기 구성 파일, 초기 조건 파일 및 실행을 제어하는 스크립트 파일만 제공하면 됩니다.이러한 파일은 모두 XML(eXtensible Markup Language)을 사용하여 정의됩니다.JSBSim은 아마도 시뮬레이션을 위한 항공기를 설명하기 위해 XML을 채택한 최초의 비행 역학 모델일 것이다.공기역학적 정의의 예는 다음과 같습니다.

<>기능 name="aero/coefficient/CDDf">,<>product>,<>property>, aero/qbar-area<, /property>,<>table>, <, independentVar>, fcs/flap-pos-deg<, /independentVar>,<>tableData>, 0.00.010.00.007 00.012 30.0 0.018<>/tableData>,<>/table>,<>/product>,<>/fu.nction>.

입력 출력 기능

기본 드라이버 프로그램을 사용하여 스탠드 아론 모드로 JSBSim을 실행하는 경우 스크립트 이름만 입력하면 됩니다.스크립트 내에서 JSBSim에 제어 입력을 제공할 수 있습니다.

항공기 구성 파일에 입력 포트 사양이 포함되어 있는 경우 사용자는 JSBSim에 텔넷으로 연결할 수도 있습니다.telnet 인터페이스 내에서 JSBSim 내부 다수의 파라미터 값을 읽고 설정할 수 있습니다.시뮬레이션 자체는 일시 중지했다가 다시 시작할 수도 있습니다.물론 Telnet 기능은 JSBSim을 실시간으로 실행하는 데 가장 유용합니다.JSBSim 배포에 포함된 샘플 스탠드아론 애플리케이션은 소프트 실시간 실행을 지원합니다.

JSBSim은 논리적으로 그룹화된 데이터 세트를 콘솔(화면), 파일 또는 소켓에 출력하도록 지시할 수 있습니다.출력은 임의의 수의 채널을 통해 동시에 송출할 수 있습니다.각 채널에는 임의의 데이터 세트 또는 단일 특정 파라미터를 포함할 수 있으며, 임의의 파일 또는 소켓(또는 콘솔)으로 송출할 수 있으며, 임의의 속도로 출력할 수 있습니다.

JSBSim에 포함된 유틸리티는 JSBSim에 의해 출력되는 데이터 파일 전체를 가져와 오픈 소스 플롯인 gnuplot을 사용하여 PDF 형식으로 완전한 플롯 세트를 만듭니다.

비행 관제 기능

JSBSim Commander Flight Control System 편집기

JSBSim은 비행 제어 시스템 또는 자동 조종을 개별 구성요소로 구성할 수 있도록 합니다.현재 스위트에는 필터, 조건부 스위치, 여름, 센서 및 게인(가변 및 정적) 컴포넌트가 포함되어 있습니다.또한 사용자가 정의할 수 있는 기능 컴포넌트가 있습니다.

샘플 비행 제어 시스템 블록 다이어그램은 별도의 오픈 소스 프로젝트인 JSBSim Commander의 비행 제어 시스템 편집기에서 볼 수 있습니다(현재 개발 초기 단계에 있지만 기능).

공기역학 모델링

JSBSim은 항공기의 공기역학 특성을 모델링하기 위해 계수 증강 방법을 사용한다.각 축에 대해 임의의 수의 힘 및 모멘트를 정의할 수 있습니다(또는 전혀 정의하지 않음).각 힘/순간 사양은 정의 주석과 힘 또는 모멘트를 계산하는 함수의 사양을 포함한다.함수 정의는 단순한 값일 수도 있고 삼각함수와 로그함수, 1차원, 2차원 또는 3차원 테이블 룩업을 포함하는 복잡한 함수일 수도 있습니다.

추진 모델링

JSBSim에는 일반 피스톤/프로펠러, 로켓/노즐, 터빈 및 터보프롭 모델이 포함됩니다.이 모델들은 상세한 엔지니어링 모델은 아니지만 엔진을 쉽게 추가할 수 있습니다.임의의 수의 엔진을 임의의 위치와 방향에서 항공기 모델에 추가할 수 있으며 다양한 엔진 유형을 혼합할 수 있습니다.

운동 방정식

JSBSim은 완전한 6자유도 비행 역학 모델이다.초기 조건을 지정하고 출발 전에 여러 가지 방법으로 항공기를 조정할 수 있는 기능을 제공합니다.특정 인테그레이터를 선택하여 각 변환 및 회전 속도와 위치를 전파할 수 있습니다.현재 디폴트는 3차 Adams-Bashforth입니다.

확장성

JSBSim은 확장 가능하도록 설계되었습니다.핵심 객체(엔진, 비행 제어 구성요소)는 단순한 인터페이스를 가진 기본 클래스로 구현됩니다.특히 기본 클래스에서 파생된 새 클래스를 만들어 새 엔진을 모델링할 수 있습니다.동일한 방법으로 새로운 비행 제어 구성요소를 생성할 수 있습니다.

주목할 만한 용도

JSBSim은 FlightGear 오픈 소스 시뮬레이터와 함께 사용되는 기본 비행 모델입니다.FlightGear와 함께 JSBSim은 이탈리아 나폴리 대학에서 모션 베이스 시뮬레이터를 구동하는 데 사용됩니다.JSBSim은 OpenEaagles 시뮬레이션 환경을 위한 구동 애플리케이션으로 포함되어 있습니다.JSBSim은 (음향 로켓에서 더 큰 발사체까지) 로켓의 비행을 모델링하는 데 사용되어 왔다.화성 대기를 비행하도록 설계된 아레스(ARES) 차량을 포함하여 UAV의 비행을 모델링하는 데 사용되어 왔다.그것은 항공 교통 관제 연구의 일부로 사용되어 왔다.JSBSim은 MATLAB 및 Simulink와 함께 사용되며 DLL로 컴파일되어 C#으로 포팅되어 있습니다.C# 포트는 최신이 아니므로 공개적으로 사용할 수 없습니다.

장래의 계획

개발은 JSBSim 자체에서 계속됩니다.JSBSim과 연동되는 추가 툴도 등장하고 있습니다.자유롭게 사용할 수 있는 DATCOM+(Digital Datcom의 파생 모델)라는 도구는 공기역학 사양을 JSBSim-ML 형식(XML 항공기 파일 형식)으로 직접 출력합니다.JSBSim Commander는 JSBSim 모델을 만들고 수정하기 위한 에디터로 개발 중입니다.

외부 링크