Simulink에서 LQR 서보 제어기 설계하기
이 예제는 항공기 자동 조종 응용 사례를 통해 Simulink®에서 LQR 서보 제어기의 설계를 보여줍니다.
항공기 모델을 엽니다.
open_system("lqrpilot")
이 모델은 다음과 같습니다.
Linearized Dynamics
블록은 선형화된 기체를 포함합니다.sf_aerodyn
은 에 대한 비선형 방정식을 포함하는 S-Function 블록입니다.와 사이의 오차 신호는 적분기를 통과합니다. 이는 오차를 0으로 만드는 데 도움이 됩니다.
모델을 열면 다음의 데이터를 포함하고 있는 lqrpilotData
MAT 파일도 불러오게 됩니다.
상태 방정식 행렬
A
및B
선형화된 상태 행렬
A15
최종 LQG 이득 행렬
K_lqr
항공기 상태공간 방정식
이 방정식은 상태공간 시스템의 표준 상태 방정식입니다.
항공기 시스템에서 상태 벡터는 다음과 같습니다.
변수 , , 는 다음 그림에 표시된 것처럼 본체 구조에 대한 3가지 속도입니다.
변수 및 는 롤과 피치이고 , , 은 각각 롤 각속도, 피치 각속도, 요 각속도입니다.
기체 동특성은 비선형입니다. 다음 방정식은 상태공간 방정식에 추가된 비선형 컴포넌트를 보여줍니다. 여기서 는 중력으로 인한 가속도입니다.
트리밍
LQG 설계를 위해 , , , 를 0으로 설정한 상태로 에서 비선형 동특성이 트리밍됩니다. , , 는 위 방정식의 비선형 항에 영향을 주지 않으므로, 를 기준으로 선형화되고 나머지 상태는 0으로 설정된 모델이 됩니다.
lqrdes
스크립트는 선형화된 모델 A15
를 이 트리밍된 동작점에서 계산하는 방법을 보여줍니다.
문제 정의
설계의 목표는 다음 그림에서 볼 수 있듯이 정상 선회를 수행하는 것입니다.
이 목표를 달성하려면 60° 롤링으로 정상 선회를 명령하는 제어기를 설계해야 합니다. 또한 피치각 가 가능한 한 0에 가깝게 유지되어야 한다고 가정합니다.
결과
lqrdes
스크립트는 LQG 이득 행렬 K_lqr
을 계산하는 방법을 보여줍니다.
lqrpilot
모델에서, Nonlinear Dynamics 블록의 출력값을 선택하도록 Switch 블록을 구성해야 합니다.
모델을 실행합니다.
sim("lqrpilot")
60°의 급격한 변화에 대한 롤 의 응답을 확인합니다. 시스템은 지정된 롤을 약 60초 내에 추종합니다.
open_system("lqrpilot/phi (roll angle)")
피치각 를 확인합니다. 제어기는 피치 각도를 상대적으로 작게 유지할 수 있었습니다.
open_system("lqrpilot/theta (pitch angle)")
마지막으로, 제어 입력을 확인합니다.
open_system("lqrpilot/Control Inputs")
lqrdes
스크립트의 Q 값과 R 값을 조정하여 다양한 설계를 시도해 볼 수 있습니다. 또한 선형 시스템 동특성과 비선형 시스템 동특성의 시뮬레이션을 비교하여 비선형성이 시스템 성능에 미치는 영향을 확인할 수 있습니다.