주요 콘텐츠

기체 트리밍 및 선형화하기

이 예제에서는 Simulink® Control Design™, Control System Toolbox™, Aerospace Blockset™을 사용하여 기체 모델을 트리밍하고 선형화하는 방법을 보여줍니다.

고전 제어 설계 기법을 사용하여 오토파일럿을 설계하려면, 지정된 동작(트림) 조건을 중심으로 한 기체 동특성의 선형 모델이 필요합니다. MATLAB®은 이러한 트림 조건을 계산하고, 비선형 Simulink 모델에서 직접 선형 상태공간 모델을 도출할 수 있습니다. 그런 다음 결과로 생성된 선형 모델을 사용하여 시간 또는 주파수 영역에서 기체 동특성을 분석할 수 있습니다.

기체 모델 열기

이 모델은 동작 고도에서 음속과 공기 밀도를 계산하기 위한 ISA Atmosphere Model로 구성됩니다. 기체는 두 개의 주요 서브시스템으로 구성됩니다. 하나는 공기력(Fx, Fz)과 피칭 모멘트(M)를 계산하는 Aerodynamics 서브시스템이고, 다른 하나는 바디 좌표축에서 강체 운동 방정식을 구현하는 3DOF (Body Axes) 블록입니다.

open_system('AirframeTrim');

초기 조건 정의하기

시스템을 트리밍하고 선형화할 기준이 되는 원하는 비행 조건을 지정합니다.

hInitial     = 10000/m2ft;      % Trim Height [m]
MInitial     = 3;               % Trim Mach Number
alphaInitial = -10*d2r;         % Trim Incidence [rad]
thetaInitial = 0*d2r;           % Trim Flightpath Angle [rad]
vInitial     = MInitial*(340+(295-340)*hInitial/11000); 	% Total Velocity [m/s]
qInitial     = 0;               % Initial pitch Body Rate [rad/sec]

동작점 사양 설정하기

operspec 객체를 사용하여 동작점에서 어떤 상태가 알려져 있는지와 정상 상태 조건을 충족해야 하는 항목을 지정합니다. 첫 번째 상태인 관성 위치와 두 번째 상태인 피치 각도는 알려진 값으로 지정되지만, 정상 상태일 필요는 없습니다. 세 번째 상태인 바디 축 속도도 알려진 상태로 지정되며, 이때 순 수직 가속을 방지하기 위해 수직 속도 성분만 정상 상태여야 합니다.

opspec = operspec('AirframeTrim');
opspec.States(1).Known = [1;1];
opspec.States(1).SteadyState = [0;0];
opspec.States(2).Known = 1;
opspec.States(2).SteadyState = 0;
opspec.States(3).Known = [1 1];
opspec.States(3).SteadyState = [0 1];

모델 선형화하기

트리밍 제약 조건을 충족하는 동작점을 계산합니다.

op = findop('AirframeTrim',opspec);
 Operating point search report:
---------------------------------

opreport = 


 Operating point search report for the Model AirframeTrim.
 (Time-Varying Components Evaluated at time t=0)

Operating point search completed successfully using optimization.
States: 
----------
   Min         x         Max       dxMin        dx       dxMax   
__________ __________ __________ __________ __________ __________
                                                                 
(1.) AirframeTrim/Aerodynamics & Equations of Motion/3DOF (Body Axes)/Position
    0          0          0         -Inf     967.6649     Inf    
-3047.9999 -3047.9999 -3047.9999    -Inf    -170.6254     Inf    
(2.) AirframeTrim/Aerodynamics & Equations of Motion/3DOF (Body Axes)/Theta
    0          0          0         -Inf     -0.21604     Inf    
(3.) AirframeTrim/Aerodynamics & Equations of Motion/3DOF (Body Axes)/U,w
 967.6649   967.6649   967.6649     -Inf     -14.0977     Inf    
-170.6254  -170.6254  -170.6254      0      -7.439e-08     0     
(4.) AirframeTrim/Aerodynamics & Equations of Motion/3DOF (Body Axes)/q
   -Inf     -0.21604     Inf         0      3.3582e-08     0     

Inputs: 
----------
  Min      u      Max  
_______ _______ _______
                       
(1.) AirframeTrim/Fin Deflection
 -Inf   0.13615   Inf  

Outputs: 
----------
   Min         y         Max    
__________ __________ __________
                                
(1.) AirframeTrim/q
   -Inf     -0.21604     Inf    
(2.) AirframeTrim/Az
   -Inf    -7.439e-08    Inf    

승강타 편향(elevator deflection)을 입력값으로 정의하고 법선 가속도와 피치 각속도를 출력값으로 선택합니다. 그러면 선형화 시 편향 명령에 대한 주요 종방향 반응이 캡처됩니다.

io(1) = linio('AirframeTrim/Fin Deflection',1,'input');
io(2) = linio('AirframeTrim/Selector',1,'output');
io(3) = linio(sprintf(['AirframeTrim/Aerodynamics &\n', ...
                    'Equations of Motion']),3,'output');

트리밍된 동작점을 중심으로 기체 동특성을 선형화합니다.

sys = linearize('AirframeTrim',op,io);

선형화된 모델 분석하기

단주기 동특성과 관련된 종방향 피치 축 상태를 추출하고, 차수 축소 상태공간 모델을 생성합니다.

airframe = ss(sys.A(3:4,3:4),sys.B(3:4,:),sys.C(:,3:4),sys.D);

set(airframe,'inputname',{'Elevator'}, ...
             'outputname',[{'az'} {'q'}]);

선형 시스템 분석기를 사용하여 주파수 영역에서 선형화된 기체 모델을 분석합니다.

linearSystemAnalyzer('bode',airframe);

보드 플롯을 통해, 기체가 단주기 동특성이 두드러지는 중간 주파수의 승강타 입력값에 가장 강하게 반응했음을 알 수 있습니다.

참고 항목

도움말 항목