주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

경량 항공기 설계

이 모델은 경량 항공기 설계를 예로 들어, MathWorks® 제품을 활용하여 항공기 설계 시 발생하는 기술적 및 공정상의 과제를 해결하는 방법을 보여줍니다.

설계 과정은 반복적인 과정입니다. 최종 설계를 확정하기 전에 다양한 비행체 구성을 시도해 보게 될 것입니다. 가급적이면 하드웨어를 제작하기 전에 반복 테스트를 수행하는 것이 좋습니다. 문제는 반복 연산을 신속하게 수행하는 것입니다. 일반적으로 각기 다른 그룹이 공정의 각 단계를 담당합니다. 이러한 그룹들 간의 효과적인 협력과 적절한 툴들은 이 과제를 해결하는 데 필수적입니다.

비행체 지오메트리 정의

이 경량 항공기의 지오메트리는 참고문헌 1에 제시된 것입니다. 이 기체의 원래 설계 목표는 특정 임무 및 성능 제약 조건을 충족하면서도 안전하고 조종이 간편하며 유지보수가 용이한 4인승 일반 항공기입니다. 이러한 제약 조건에 대한 자세한 내용은 참고문헌 1을 참조하십시오.

이 항공기에 요구될 수 있는 성능 요건은 다음과 같습니다:

  • 정속 순항 속도

  • 허용 상승 속도

  • 허용 실속 속도

항공기 비행 제어에 있어 상승 속도는 설계 요구 사항이며, 2000미터 고도에서 초당 2미터(m/s) 이상인 것으로 가정합니다.

asbSkyHogg.jpg

그림 1: 경량 4인승 단엽기 [1].

비행체의 공기역학적 특성 파악

항공기의 기하학적 구성은 공기역학적 특성을 결정하며, 결과적으로 항공기의 성능과 조종 특성도 좌우합니다. 기하학적 구성을 선택하면 다음 방법을 통해 공기역학적 특성을 구할 수 있습니다:

  • 해석적 예측

  • 축척 모델 또는 실물 크기 시제품에 대한 풍동 테스트

  • 비행 테스트

풍동 테스트와 비행 테스트는 매우 정확한 결과를 제공하지만, 실제 하드웨어를 사용하여 수행해야 하기 때문에 비용과 시간이 많이 소요됩니다. 항공기의 지오메트리가 최종 확정되었을 때 이러한 방법을 사용하는 것이 가장 좋습니다. 참고: 해석적 예측은 설계 초기 단계에서 공기역학적 특성을 추정하는 데 있어 더 빠르고 비용 효율적인 방법입니다.

이 예제에서는 널리 사용되는 소프트웨어 프로그램인 Digital Datcom을 해석적 예측에 활용합니다. 미국 공군은 이를 공군의 Data Compendium (DATCOM)의 디지털 버전으로 개발했다. 이 소프트웨어는 누구나 이용할 수 있습니다.

먼저, 항공기의 기하학적 구성과 공기역학적 계수를 구하는 데 필요한 비행 조건을 정의하는 Digital Datcom 입력 파일을 생성합니다.

type asbSkyHoggDatcom.in
 $FLTCON NMACH=4.0,MACH(1)=0.1,0.2,0.3,0.35$                                    
 $FLTCON NALT=8.0,ALT(1)=1000.0,3000.0,5000.0,7000.0,9000.0,                    
   11000.0,13000.0,15000.0$                                                      
 $FLTCON NALPHA=10.,ALSCHD(1)=-16.0,-12.0,-8.0,-4.0,-2.0,0.0,2.0,               
   ALSCHD(8)=4.0,8.0,12.0,LOOP=2.0$                                              
 $OPTINS SREF=225.8,CBARR=5.75,BLREF=41.15$                                     
 $SYNTHS XCG=7.9,ZCG=-1.4,XW=6.1,ZW=0.0,ALIW=1.1,XH=20.2,                       
    ZH=0.4,ALIH=0.0,XV=21.3,ZV=0.0,VERTUP=.TRUE.$                                
 $BODY NX=10.0,                                                                 
    X(1)=-4.9,0.0,3.0,6.1,9.1,13.3,20.2,23.5,25.9,                               
    R(1)=0.0,1.0,1.75,2.6,2.6,2.6,2.0,1.0,0.0$                                   
 $WGPLNF CHRDTP=4.0,SSPNE=18.7,SSPN=20.6,CHRDR=7.2,SAVSI=0.0,CHSTAT=0.25,       
    TWISTA=-1.1,SSPNDD=0.0,DHDADI=3.0,DHDADO=3.0,TYPE=1.0$                       
 $HTPLNF CHRDTP=2.3,SSPNE=5.7,SSPN=6.625,CHRDR=0.25,SAVSI=11.0,                 
    CHSTAT=1.0,TWISTA=0.0,TYPE=1.0$                                              
 $VTPLNF CHRDTP=2.7,SSPNE=5.0,SSPN=5.2,CHRDR=5.3,SAVSI=31.3,                    
    CHSTAT=0.25,TWISTA=0.0,TYPE=1.0$                                             
 $SYMFLP NDELTA=5.0,DELTA(1)=-20.,-10.,0.,10.,20.,PHETE=.0522,                  
    CHRDFI=1.3,                                                                  
    CHRDFO=1.3,SPANFI=.1,SPANFO=6.0,FTYPE=1.0,CB=1.3,TC=.0225,                   
    PHETEP=.0391,NTYPE=1.$                                                       
NACA-W-4-0012                                                                   
NACA-H-4-0012                                                                   
NACA-V-4-0012                                                                   
CASEID SKYHOGG BODY-WING-HORIZONTAL TAIL-VERTICAL TAIL CONFIG                   
DAMP                                                                            
NEXT CASE                                                                       

Digital Datcom은 지정된 비행 조건에서 비행체의 공기역학적 안정성 및 제어 파생값과 계수를 제공합니다. 비행 제어 엔지니어들은 안정성 및 제어 도함수를 분석함으로써 비행체의 성능과 조종 특성에 대한 통찰력을 얻을 수 있습니다. 분석을 위해서는 이 데이터를 MATLAB® 테크니컬 컴퓨팅 환경으로 가져와야 합니다. 일반적으로 이 작업은 수동으로 진행됩니다.

Aerospace Toolbox 소프트웨어를 사용하면 단 한 번의 명령어로 여러 개의 Digital Datcom 출력 파일을 MATLAB 테크니컬 컴퓨팅 환경으로 가져올 수 있습니다. 수동으로 입력할 필요가 없습니다. 각 Digital Datcom 출력은 구조체로 구성된 셀형 배열로서 MATLAB 테크니컬 컴퓨팅 환경으로 가져오게 되며, 각 구조체는 서로 다른 Digital Datcom 출력 파일에 해당합니다. Digital Datcom 출력 데이터를 가져온 후, Digital Datcom을 통해 여러 가지 구성을 실행하고 MATLAB 테크니컬 컴퓨팅 환경에서 그 결과를 비교해 보십시오.

alldata = datcomimport({'asbSkyHoggDatcom.out' 'asbSkyHoggDatcom_old.out'}, true, 0);

이 모델에서는 비행체가 본질적으로 안정적인지 확인해야 합니다. 이를 위해 그림 2를 참고하여, 해당 계수 Cm으로 표현되는 피칭 모멘트가 항공기에 복원 모멘트를 제공하는지 확인할 수 있습니다. 복원 모멘트에서는 항공기의 받음각이 0으로 되돌아갑니다.

구성 1(그림 2)에서, Cm은 0보다 작은 일부 받음각에서 음수입니다. 즉, 이러한 구성으로는 음의 받음각에서 복원 모멘트가 발생하지 않으므로, 바람직한 비행 특성을 얻을 수 없습니다. 구성 2는 무게 중심을 뒤쪽으로 이동시켜 이 문제를 해결합니다. 무게 중심을 이동시키면 모든 음의 받음각에 대해 복원 모멘트를 제공하는 Cm이 발생합니다.

h1 = figure;
plot(alldata{2}.alpha,alldata{2}.cm(:,1),alldata{1}.alpha,alldata{1}.cm(:,1));
axis([-4 8 -0.3 0.1]);
legend('Configuration 1','Configuration 2');
xlabel('Angle of Attack, \alpha (degrees)');
ylabel('Pitching Moment Coefficient, C_m');
grid;

Figure contains an axes object. The axes object with xlabel Angle of Attack, alpha (degrees), ylabel Pitching Moment Coefficient, C indexOf m baseline Pitching Moment Coefficient, C_m contains 2 objects of type line. These objects represent Configuration 1, Configuration 2.

그림 2: Digital Datcom 피칭 모멘트 계수의 시각적 분석.

close (h1);

비행체 시뮬레이션 제작

공기역학적 안정성과 제어 도함수를 구한 후에는, 개루프 플랜트 모델을 구축하여 항공기의 종방향 동역학을 평가할 수 있습니다. 모델이 완성되면, Simulink Report Generator™ 소프트웨어를 사용하여 모델을 웹 뷰로 내보냄으로써, Simulink® 소프트웨어를 가지고 있지 않은 동료를 포함한 다른 사람들에게 모델을 보여줄 수 있습니다. 웹 뷰는 모델의 대화형 HTML 복제본으로, 이를 통해 모델 계층 구조를 탐색하고 서브시스템, 블록 및 신호의 속성을 확인할 수 있습니다.

일반적인 플랜트 모델은 다음과 같은 컴포넌트를 포함합니다:

  • 운동 방정식: 힘과 모멘트를 이용하여 비행체의 위치와 자세를 계산합니다.

  • 힘과 모멘트: 공기역학적 힘, 중력, 추력에 의한 힘과 모멘트를 계산합니다.

  • 액추에이터 위치: 액추에이터 명령을 바탕으로 변위를 계산합니다.

  • 환경: 바람에 의한 외란, 중력 및 대기가 미치는 환경적 영향을 포함합니다.

  • 센서: 측정 장치의 동작을 모델링합니다.

이 기능의 대부분을 Aerospace Blockset™ 블록을 사용하여 구현할 수 있습니다. 이 모델에서는 Aerospace Blockset 블록이 포함된 서브시스템을 주황색으로 강조 표시합니다. Aerospace Blockset 블록을 빨간색으로 강조 표시합니다.

open_system('asbSkyHogg');
snapshotModel('asbSkyHogg');

Figure contains an axes object. The hidden axes object contains an object of type image.

그림 3: 경량 항공기 모델의 최상위 레벨

먼저 Aerospace Blockset 라이브러리의 Equations of Motion 라이브러리에 포함된 3DOF 블록을 사용하여 플랜트 모델을 구축합니다(그림 4). 이 모델은 비행체가 종방향으로 안정적이고 조종 가능한지 여부를 판단하는 데 도움이 됩니다. 서브시스템을 6자유도(DOF) 버전과 동일한 인터페이스를 갖도록 설계하십시오. 3자유도(DOF)의 성능, 안정성 및 조종성에 만족하게 되면, 6자유도(DOF) 버전을 구현하고, 항공기에서 원하는 거동이 나타날 때까지 다른 제어면 형상을 반복적으로 조정해 나갈 수 있습니다.

open_system('asbSkyHogg/Vehicle System Model/Vehicle/3DOF to 6DOF');
snapshotModel('asbSkyHogg/Vehicle System Model/Vehicle/3DOF to 6DOF');

Figure contains an axes object. The hidden axes object contains an object of type image.

그림 4: Aerospace Blockset 라이브러리의 3DoF 오일러 블록을 사용하여 구현한 운동 방정식.

비행체에 작용하는 공기역학적 힘과 모멘트를 계산하려면, Aerospace Blockset 라이브러리의 Digital Datcom Forces and Moments 블록을 사용하십시오(그림 5). 이 블록은 Aerospace Toolbox가 Digital Datcom에서 공기역학적 계수를 가져올 때 생성하는 구조체를 사용합니다.

일부 Digital Datcom 사례의 경우, 동적 도함수의 값은 첫 번째 받음각에서만 존재합니다. 누락된 데이터 값은 첫 번째 받음각의 값으로 채울 수 있는데, 이는 이러한 도함수들이 받음각과 무관하기 때문입니다. Digital Datcom 데이터 점에서 누락된 데이터를 채우는 방법에 대한 예제 코드를 보려면 asbPrepDatcom 함수를 확인해 보십시오.

open_system('asbSkyHogg/Vehicle System Model/Vehicle/Aerodynamics');
snapshotModel('asbSkyHogg/Vehicle System Model/Vehicle/Aerodynamics');

Figure contains an axes object. The hidden axes object contains an object of type image.

그림 5: Aerospace Blockset Digital Datcom Forces and Moment 블록을 부분적으로 활용하여 구현된 공기역학적 힘 및 모멘트.

또한 Aerospace Blockset 블록을 사용하여 액추에이터, 센서 및 환경 모델을 생성합니다(각각 그림 6, 7, 8 참조). 참고: 모델의 다음 부분을 생성하는 것 외에도, 표준 Aerospace Blockset 블록을 사용하면 바디 좌표축과 풍향 좌표축 간의 올바른 변환이 보장됩니다.

open_system('asbSkyHogg/Vehicle System Model/Vehicle/AirframeActuators');
snapshotModel('asbSkyHogg/Vehicle System Model/Vehicle/AirframeActuators');

Figure contains an axes object. The hidden axes object contains an object of type image.

그림 6: Aerospace Blockset 블록을 사용한 액추에이터 모델 구현.

open_system('asbSkyHogg/Vehicle System Model/Flight Sensors');
snapshotModel('asbSkyHogg/Vehicle System Model/Flight Sensors');

Figure contains an axes object. The hidden axes object contains an object of type image.

그림 7: Aerospace Blockset 블록을 사용한 비행 센서 모델 구현.

open_system('asbSkyHogg/Environment');
snapshotModel('asbSkyHogg/Environment');

Figure contains an axes object. The hidden axes object contains an object of type image.

그림 8: Aerospace Blockset 블록을 이용한 바람, 대기, 중력의 환경적 영향.

비행 제어 법칙 설계

Simulink 플랜트 모델을 생성한 후, 고도를 제어하기 위해 엘리베이터 위치를 제어하는 종방향 제어기를 설계합니다. 이 설계에 채택된 전통적인 2루프 피드백 제어 구조(그림 9)는 고도를 제어하는 외부 루프(노란색의 보상기 C1)와 피치 각도를 제어하는 내부 루프(파란색의 보상기 C2)로 구성되어 있습니다. 그림 10은 본 연구의 Simulink 모델에서 이에 해당하는 제어기 구성을 보여줍니다.

asbSkyHoggLongCntl.png

그림 9: 종방향 제어기의 구조.

open_system('asbSkyHogg/Vehicle System Model/Avionics/Autopilot');
snapshotModel('asbSkyHogg/Vehicle System Model/Avionics/Autopilot');

Figure contains an axes object. The hidden axes object contains an object of type image.

그림 10: Simulink 모델의 종방향 제어기.

Simulink Control Design™ 소프트웨어를 사용하면 다양한 툴과 기법을 활용하여 Simulink에서 직접 제어기를 조정할 수 있습니다.

Simulink Control Design 인터페이스를 사용하여 다음을 지정하여 제어 문제를 설정합니다.

  • 두 개의 제어기 블록

  • 폐루프 입력 또는 고도 명령

  • 폐루프 출력 신호 또는 감지된 고도

  • 정상상태 또는 트림 조건

이 정보를 바탕으로 Simulink Control Design 소프트웨어는 모델의 선형 근사치를 자동으로 계산하고, 설계에 사용할 피드백 루프를 식별합니다. 내부 루프와 외부 루프용 제어기를 설계할 때는 개루프에 대해서는 근궤적 플롯과 보드 플롯을, 폐루프 응답에 대해서는 계단 응답 플롯을 활용합니다(그림 11).

asbSkyHoggInitStep.png

asbSkyHoggInitBode.png

그림 11: 제어기 조정을 진행하기 전에 설계 플롯을 작성하십시오.

그런 다음 이 플롯을 활용하여 내부 루프와 외부 루프의 보상기를 대화형으로 조정합니다. 보상기를 조정하면 플롯이 실시간으로 업데이트되므로, 이러한 변경 사항이 다른 루프와 폐루프 응답에 미치는 결합 효과를 확인할 수 있습니다.

다중 루프 설계를 보다 체계적으로 만들기 위해서는 순차적 루프 닫기 기법을 사용하십시오. 이 기법을 통해 설계 과정에서 다른 루프들의 동적 특성을 단계적으로 고려할 수 있습니다. Simulink Control Design를 사용하여, 외부 루프 제어기의 출력(그림 12의 C1)에 추가적인 루프 열림이 있도록 내부 루프를 구성하십시오. 이 접근 방식은 내부 루프와 외부 루프를 분리함으로써 내부 루프 제어기 설계를 단순화합니다. 내부 루프를 설계한 후, 외부 루프 제어기를 설계하십시오. 그림 13은 최종 트리밍된 동작점에서 얻어진 조정된 보상기 설계를 보여줍니다.

asbSkyHoggLongCntlOL.png

그림 12: 추가적인 열림 루프 열림 구성을 통해 격리된 내부 루프의 블록 다이어그램.

asbSkyHoggFinalStep.png

asbSkyHoggFinalBode.png

그림 13: 제어기 조정 후 트림 조건에서의 설계 플롯을 작성하십시오.

Simulink Control Design 소프트웨어에서 여러 가지 방법으로 제어기를 조정할 수 있습니다. 예를 들면 다음과 같습니다.

  • 그래픽 방식을 활용하여 만족스러운 응답이 나올 때까지 제어기 이득, 극점 및 영점을 대화형으로 조정할 수 있습니다(그림 13).

  • Simulink Control Design 소프트웨어 내에서 Simulink Design Optimization™ 소프트웨어를 사용하여 제어기를 자동으로 조정할 수 있습니다.

이득 여유, 위상 여유 등의 주파수 영역 요구 사항과 시간 영역 요구 사항을 지정하면, Simulink Design Optimization 소프트웨어가 해당 요구 사항을 충족하도록 제어기 파라미터를 자동으로 조정합니다. 적절한 제어기 설계를 완성하면, Simulink 모델 내의 제어 블록이 자동으로 업데이트됩니다. 제어기 조정에 대한 자세한 내용은 Control System Toolbox™ 예제의 제어 시스템 디자이너 시작하기 (Control System Toolbox) 예제와 Simulink Control Design 예제의 Tune Simulink Blocks Using Compensator Editor (Simulink Control Design) 예제를 참조하십시오.

이제 비행 제어 로직이 적용된 비선형 시뮬레이션을 실행하고, 제어기의 성능이 만족스러운지 확인할 수 있습니다. 그림 15는 트리밍된 동작점에서 시작하여 요청된 고도를 2000미터에서 2050미터로 상승시키는 경우에 대한, 본 연구의 비선형 Simulink 모델의 폐루프 시뮬레이션 결과를 보여줍니다. 비록 조종사가 고도를 계단 형태로 급격하게 변경해 달라고 요청하더라도, 승객들이 편안하고 안전하게 비행할 수 있도록 실제 제어기의 고도 요청 속도는 제한됩니다.

asbSkyHoggScope.png

그림 14: 마지막 확인 단계는 설계한 제어기를 적용하여 비선형 시뮬레이션을 실행하고, 고도(보라색)가 고도 목표값(노란색)을 안정적이고 허용 가능한 방식으로 따라가는지 확인하는 것입니다.

이제 이 시뮬레이션 결과를 바탕으로 당사의 항공기 설계가 성능 요건을 충족하는지 확인할 수 있습니다. 해당 요구 사항에 따르면 상승 속도는 2 m/s 이상이어야 했다. 보시다시피, 이 항공기는 20초도 채 되지 않는 시간 동안 2000미터에서 2050미터까지 상승했으며, 이는 2.5 m/s를 상회하는 상승 속도를 보여줍니다. 따라서, 이 특정 기하학적 구성과 제어기 설계는 당사의 성능 요구 사항을 충족합니다.

기존의 시간 플롯 외에도, FlightGear용 Aerospace Blockset 인터페이스를 사용하여 시뮬레이션 결과를 시각화할 수 있습니다(그림 15).

asbSkyHoggFG.png

그림 15: FlightGear의 Aerospace Blockset 인터페이스를 사용하여 시뮬레이션 결과를 시각화합니다.

또한 FlightGear의 Aerospace Toolbox 인터페이스를 사용하여 시뮬레이션 결과나 실제 비행 테스트 데이터를 바탕으로 MATLAB 데이터를 재생할 수도 있습니다.

설계 과정 마무리하기

다음 단계는 아래와 같습니다.

  1. 실시간 성능을 테스트하기 위한 HIL(Hardware-in-the-Loop) 시스템을 구축합니다.

  2. 실제 비행체용 하드웨어 및 소프트웨어를 구축합니다.

  3. 비행 테스트를 실시합니다.

  4. 비행 테스트 데이터를 분석하고 시각화합니다.

이 단계들은 이 예제의 핵심 내용이 아니므로, 여기서는 설명하지 않습니다. 대신, Embedded Coder®, Simulink Real-Time™, Aerospace Toolbox 소프트웨어와 같은 적절한 툴을 사용하면 이 모든 과정을 효율화하고 간소화할 수 있다는 점만 간단히 언급합니다.

요약

이 예제에서는 다음을 수행하는 방법을 보여주었습니다:

  • Digital Datcom 및 Aerospace Toolbox 소프트웨어를 사용하여 비행체의 초기 설계를 신속하게 개발하고 다양한 기하학적 구성을 평가합니다.

  • Simulink 및 Aerospace Blockset 소프트웨어를 사용하여 비행체의 비행 시뮬레이션을 신속하게 생성합니다.

  • Simulink Control Design 소프트웨어를 사용하여 비행 제어 법칙을 설계합니다.

이 접근 방식을 통해 하드웨어를 실제로 제작하기 훨씬 전에 비행체의 최적의 기하학적 구성을 결정하고, 성능 및 핸들링 특성을 예측할 수 있어 설계 비용을 절감하고 오류를 방지할 수 있습니다. 또한, 단일 툴 체인을 사용하면 서로 다른 팀 간의 의사소통이 원활해지고 설계 시간이 단축됩니다.

참고 문헌

[1] Cannon, M, Gabbard, M, Meyer, T, Morrison, S, Skocik, M, Woods, D. "Swineworks D-200 Sky Hogg Design Proposal." AIAA®/General Dynamics Corporation Team Aircraft Design Competition, 1991-1992.

[2] Turvesky, A., Gage, S., and Buhr, C., "Accelerating Flight Vehicle Design", MATLAB Digest, January 2007.

[3] Turvesky, A., Gage, S., and Buhr, C., "Model-based Design of a New Lightweight Aircraft", AIAA paper 2007-6371, AIAA Modeling and Simulation Technologies Conference and Exhibit, Hilton Head, South Carolina, Aug. 20-23, 2007.

참고 항목

|