티스토리 친구하기

본문 바로가기

Robotics/제어

LQR제어 - ARE (Algebraic Riccati Equation)

728x90

2019. 12. 21 작성

2019. 12. 22 포스팅

 

 본 포스팅에서는 Algebraic Riccati Eqeation (ARE)를 증명하는 방법을 공유하도록 하겠습니다. 조금 복잡한 수식이 나올 수 있습니다. 하지만 증명을 하기 위해 사용하는 복잡한 수식은 그저 증명을 위한 도구로만 사용하는 것입니다. 수식에 대한 정확한 의미보다는 조금 복잡하지만 유용한 수학적 도구가 있는데 그것을 사용해서 우리가 증명하고자 하는 문제를 해결한다고 생각하시면 됩니다. 그럼 시작하기에 앞서 우리가 즉면한 문제에 대해 다시 한번 살펴보도록 하겠습니다.

 

다음은 우리가 제어하고자 하는 시스템의 상태방정식입니다.

 

우리는 위의 시스템을 제어하기 위해  Output feedback controller와 State feedback controller를 사용할 수 있습니다. 우리는 시스템의 모델을 이미 알고 있다고 가정하고(위에서 상태 방정식이 주어진다는 것은 시스템을 알고 있는 것임) 우리가 공부했던 State feedback controller를 사용하기로 합니다. 

 

최적의 제어 입력을 시스템에 주기 위해서는 최적의 게인 K를 계산해야 합니다. 우리는 Lyapunov function [V(x)]을 설계하고 Lyapunove equation(A'P+PA)이 negative definite가 되도록 P(positive definite)를 설계하면 시간이 지날수록 V(x)가 줄어든다는 것을 알고 있습니다. 그러면 우리가 알고 있는 상태 방정식을 기반으로 Lyapunove function [V(x)]를 설계해봅시다. 우리가 원하는 것은 2가지입니다. 하나는 상태(위치, 속도 등)가 0으로 수렴하는 것, 다른 하나는 상태를 수렴시키기 위해 필요한 제어 입력을 최소로 하는 것입니다. 전기자동차로 원하는 위치까지 이동할 때 전기를 조금만 소비하면 돈을 절약할 수 있으니까요. 우리는 다음과 같이 Lyapunov function을 설계합니다.

 

*(아래의 취소선 부분에 대해서 명확하게 정리되지 않아서 현재로서는 취소선 아래의 수식 다음부터 읽어주시면 감사하겠습니다. 취소선으로 표시한 부분은 좀 더 공부를 하고 조사해서 명확하게 설명할 수 있도록 추후에 보강하도록 하겠습니다.)

시작시간(0초)부터 무한대의 시간까지 출력(y)의 2-norm을 모두 더해서 그 값이 최소가 되도록 하는 u*를 찾기 위해 아래와 같이 적분의 형태로 Lyapunov function을 설계하였습니다(나중에 ARE를 증명하는데 사용하는 도구는 아래와 비슷한 형태의 문제를 푸는 방법입니다). 여기서 x와 u는 서로 독립이기 때문에 matrix multiplication 하면 0이 됩니다. 

 

*(취소선 부분과 수식은 무시하시고, 이 부분부터 다시 읽어주시길 바랍니다.)

  우리가 처음에 해결하려고 했던 문제는 주어진 시스템(상태 방정식)을 제어하는 것이고, 시스템을 제어하기 위한 최적의 게인 K를 찾는 것이었습니다. 현재 이 문제는 위에서 계산한 적분식의 값이 최소가 되는 u를 구하는 문제로 치환되었습니다.

 

처음 문제: 시스템 제어를 위한 최적의 게인 값 K (또는 u(t))를  찾는 문제

 

치환된 문제: 적분식을 최소로 만드는 최적의 u값을 찾는 문제

 

따라서 치환된 문제를 해결하면 우리가 처음에 즉면했던 문제를 해결하는 것입니다. 치환된 문제를 해결하는 방법은 다음의 4가지가 있습니다.

 

1. EL(Euler-Lagrange) Formulation

2. HJB(Hamilton-Jacobian-Bellman) Formulation

3. Variational Approach

4. LMI(Linear Matrix Ineqalities) Formulation

 

본 포스팅에서는 위의 4가지 방법 중에서 "1.EL Formulation"만 소개하도록 하겠습니다. 나머지 방법들은 제가 searching을 통해 발견한 자료를 공유드리도록 할 테니 참고하시면 좋을 것 같습니다.

 

EL Formulation은 위와 같은 적분식에 대해서, H를 위와 같이 정의하면, 3개의 Euler-Lagrange Equations이 주어진다라는 내용입니다. 왜 그렇게 되는지는 모르셔도 됩니다. 우리는 단지 EL Formulation을 믿고 도구로써 사용하려고 하는 것이니까요.

그럼 우리가 해결하려고 하는 문제를 살펴보겠습니다. 우리가 즉면한 적분문제에서 EL Formulation과 매칭되는 부분을 하나씩 대입하여 아래와 같이 표현해봅니다.

 

어떤가요? EL Formulation에서 해결하려고 하는 문제와 비슷하지 않나요? 우리는 우리의 문제를 EL Formulation에 나와있는 것처럼 H를 정의하고 Euler-Lagrange Equations을 정의하였습니다.

 

여기 람다는 P(t)x(t)입니다. 람다를 미분하고, 미분 값을 EL(2)와 같다고 놓고 정리하면, 우리는 앞의 포스팅에서 보여드렸던 ARE와 비슷한 모양의 수식을 얻게 됩니다. 이 결괏값을 "Riccati Differential Equation"이라고 합니다. 

 

시간이 무한대가 되면 변수들은 변화를 멈추고 정상상태에 도달할 것이기 때문에 P_dot은 0이 됩니다. 따라서 정상상태를 가정하면 우리는 다음과 같은 식을 얻을 수 있습니다.

 

드디어 우리는 ARE을 구할 수 있었습니다. 그리고 EL(1)식에서 최적의 제어 입력 u*는 다음과 같이 주어집니다.

 

ARE에서 R과 Q는 우리가 설계해야 하는 파라미터 값입니다(최적제어인데 또 파라미터 설정이라니ㅡㅡ;;). 따라서 우리가 모르는 값은 P밖에 없습니다. ARE에서 P를 계산하고, 계산한 P를 최적의 제어 입력값 u*를 계산하는 데 사용하고, 마지막으로 최적의 제어 입력값을 시스템을 제어하는 데 사용하면 됩니다.

 

정리

처음 문제: 시스템 제어를 위한 최적의 게인 값 K (또는 u(t))를  찾는 문제

 

치환 1: 적분식을 최소로 만드는 최적의 u값을 찾는 문제

 

치환 2: ARE를 이용하여 P를 구하고, 이를 이용해 u값을 찾는 문제

활용

우리는 많은 내용을 공부했지만, 실제 코드로 LQR 제어기를 사용하려면 결국 코드 2줄만 사용하면 됩니다. ARE에서 P를 구하는 코드, u를 구하는 코드입니다. 하지만 제어기를 그냥 활용하는 것과 내용을 알고 사용하는 것은 크게 다릅니다. 제어시스템이 내부적으로 어떤 원리를 가지고 돌아가는지 알 수 있기 때문입니다. 문제가 발생했을 때, 어떻게 해결해야 할지에 대한 Insight(통찰력)은 이론적 배경을 알고 있을 때 발휘될 수 있습니다. LQR에 대한 포스팅은 여기서 마치고자 합니다. 추후에 부족한 내용은 시간이 되는대로 계속 수정해 나가도록 하겠습니다. 저도 공부를 하면서 포스팅하는 것이기 때문에 틀린 부분이 있을 수 있습니다. 여러 의견을 주시면 계속해서 수정해 나가도록 하겠습니다. 감사합니다. 

 

 

 

 

반응형