Main Content

Simulink에서 LQR 서보 제어기 설계하기

이 예제는 항공기 자동 조종 응용 사례를 통해 Simulink®에서 LQR 서보 제어기의 설계를 보여줍니다.

항공기 모델을 엽니다.

open_system("lqrpilot")

이 모델은 다음과 같습니다.

  • Linearized Dynamics 블록은 선형화된 기체를 포함합니다.

  • sf_aerodyn(θ,ϕ)=(0,15)에 대한 비선형 방정식을 포함하는 S-Function 블록입니다.

  • ϕϕref 사이의 오차 신호는 적분기를 통과합니다. 이는 오차를 0으로 만드는 데 도움이 됩니다.

모델을 열면 다음의 데이터를 포함하고 있는 lqrpilotData MAT 파일도 불러오게 됩니다.

  • 상태 방정식 행렬 AB

  • 선형화된 상태 행렬 A15

  • 최종 LQG 이득 행렬 K_lqr

항공기 상태공간 방정식

이 방정식은 상태공간 시스템의 표준 상태 방정식입니다.

x˙=Ax+Bu

항공기 시스템에서 상태 벡터는 다음과 같습니다.

x=[u,v,w,p,q,r,θ,ϕ]T

변수 u, v, w는 다음 그림에 표시된 것처럼 본체 구조에 대한 3가지 속도입니다.

변수 ϕθ는 롤과 피치이고 p, q, r은 각각 롤 레이트, 피치 레이트, 요 레이트입니다.

기체 동특성은 비선형입니다. 다음 방정식은 상태공간 방정식에 추가된 비선형 컴포넌트를 보여줍니다. 여기서 g는 중력으로 인한 가속도입니다.

x˙=Ax+Bu+[-gsinθgcosθsinϕgcosθcosϕ000qcosϕ-rsinϕ(qsinϕ+rcosϕ)tanθ]

트리밍

LQG 설계를 위해 p, q, r, θ를 0으로 설정한 상태로 ϕ=15에서 비선형 동특성이 트리밍됩니다. u, v, w는 위 방정식의 비선형 항에 영향을 주지 않으므로, (θ,ϕ)=(0,15)를 기준으로 선형화되고 나머지 상태는 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 값을 조정하여 다양한 설계를 시도해 볼 수 있습니다. 또한 선형 시스템 동특성과 비선형 시스템 동특성의 시뮬레이션을 비교하여 비선형성이 시스템 성능에 미치는 영향을 확인할 수 있습니다.

관련 항목