Prerequisites
본 포스트를 잘 이해하기 위해선 아래의 내용에 대해 알고 오는 것이 좋습니다.
극점 배치의 딜레마와 최적 제어: LQR(Linear Quadratic Regulator)의 우아한 해법
지난 포스팅에서 우리는 미분방정식으로 표현된 ‘도립 진자’ 시스템을 선형화하고, 상태 피드백($u = -\mathbf{K}\mathbf{x}$)을 통해 시스템 행렬의 고유값(Eigenvalue, 극점)을 원하는 위치로 옮기는 극점 배치(Pole Placement) 기법을 알아보았다.
불안정한 양수의 고유값을 좌반평면(음수)으로 옮기기만 하면 진자는 쓰러지지 않는다. 그런데 여기서 매우 근본적이고 철학적인 질문에 부딪힌다.
“그렇다면, 수많은 음수 위치 중에서 도대체 ‘어디에’ 극점을 두는 것이 가장 좋은가?”
오늘은 이 질문에 대한 제어 공학의 가장 우아하고 수학적인 해답, LQR (Linear Quadratic Regulator)에 대해 알아본다.
1. 사고의 시작: 제어의 트레이드오프(Trade-off)
극점을 설계할 때 우리는 필연적으로 딜레마에 빠진다.
- 극점을 원점에서 멀리 (예: -10, -20) 배치할 경우: 시스템은 번개처럼 빠르게 안정화된다. 하지만 이를 위해서는 초기에 엄청난 크기의 제어 입력 $u$(카트 모터의 힘)가 필요하다. 배터리가 순식간에 닳거나, 심하면 모터가 타버릴 수 있다.
- 극점을 원점에 가깝게 (예: -0.1, -0.2) 배치할 경우: 에너지는 거의 들지 않는다. 하지만 카트가 너무 느릿느릿 움직여서, 목표 지점에 도달하기까지 세월아 네월아 시간이 걸린다.
즉, ‘빠른 응답 속도(성능)’와 ‘적은 에너지 소모(비용)’ 사이에는 시소 같은 트레이드오프가 존재한다. 공학자들은 이 두 마리 토끼를 잡기 위해 고민했고, 이를 최적화(Optimization) 문제로 치환하기로 한다.
2. 수학적 모델링: 비용 함수(Cost Function)의 설계
이 딜레마를 선형대수학의 언어로 표현해 보자. 우리가 최소화하고 싶은 전체 “비용(Cost)” $J$를 다음과 같은 적분식으로 정의한다.
\[J = \int_{0}^{\infty} \left(\mathbf{x}^T \mathbf{Q} \mathbf{x} + u^T R u\right) dt\]수식이 복잡해 보이지만, 선형대수학의 이차 형식(Quadratic Form)을 떠올리면 직관적으로 이해할 수 있다.
- $\mathbf{x}^T \mathbf{Q} \mathbf{x}$ (상태 오차 페널티): 시스템의 상태 $\mathbf{x}$가 목표점(0)에서 멀어져 있을 때 부과되는 벌금이다. 여기서 행렬 $\mathbf{Q}$는 우리가 정하는 가중치다. 예를 들어, 카트의 위치보다 ‘진자의 각도’가 더 중요하다면 $\mathbf{Q}$ 행렬에서 각도에 해당하는 대각 원소의 값을 크게(예: 100) 주면 된다.
- $u^T R u$ (제어 에너지 페널티): 제어 입력 $u$를 많이 사용할 때 부과되는 벌금이다. 모터 전력이 비싸거나 한계가 있다면 $R$ 값을 크게(예: 10) 주고, 모터 성능이 남아돌아 에너지를 펑펑 써도 된다면 $R$ 값을 작게(예: 0.01) 주면 된다.
이제 우리의 목표는 명확해졌다. “이 비용 함수 $J$의 값을 최소(Minimum)로 만드는 최적의 제어 이득 행렬 $\mathbf{K}$를 찾아라!”
3. 마법의 지팡이: LQR의 등장
이 최적화 문제를 푸는 과정은 해석학적으로 꽤나 복잡하다(Riccati 미분방정식이라는 거대한 산을 넘어야 한다). 하지만 다행히도, 똑똑한 수학자와 공학자들이 이미 그 해답을 알고리즘으로 만들어 두었다.
우리가 할 일은 그저 시스템의 모델($\mathbf{A, B}$)과 우리가 중요하게 생각하는 가중치($\mathbf{Q}, R$)를 정해주는 것뿐이다. MATLAB에서는 단 한 줄의 코드로 이 복잡한 수학적 최적해를 구해준다.
% 시스템 모델 (A, B)와 페널티 가중치 (Q, R)를 정의한 후
A = [0 1 0 0;
0 -d/M b*m*g/M 0;
0 0 0 1;
0 -b*d/(M*L) -b*(m+M)*g/(M*L) 0];
B = [0; 1/M; 0; b*1/(M*L)];
Q = [1 0 0 0;
0 1 0 0;
0 0 10 0;
0 0 0 100];
R = .001;
K = lqr(A, B, Q, R);
lqr로 구한 K 값을 이용해 미분방정식을 풀어보면 아래와 같이 제어된 것을 알 수 있다.
tspan = 0:.001:10;
x0 = [-1; 0; pi+.1; 0]; % initial condition
wr = [1; 0; pi; 0]; % reference position
u=@(x)-K*(x - wr); % control law
[t,x] = ode45(@(t,x)pendcart(x,m,M,L,g,d,u(x)),tspan,x0);
이 때, $A-KB$ 행렬의 고윳값을 보면 아래와 같은데,
>> eig(A-B*K)
ans =
-32.4244 + 0.0000i
-0.8752 + 0.8933i
-0.8752 - 0.8933i
-0.8731 + 0.0000i
일부 고윳값은 그 절대값의 크기가 크고 나머지는 상대적으로 작다. 아마도, 이 큰 값은 “R” 패널티를 아주 작게 만들었기 때문에 나왔을 수 있다. 제어 비용은 저렴하기 때문에 순간적으로 jerk를 주면서까지도 움직일 수 있게 만든 것이다.
이 때, 아래와 같이 이 큰 고윳값(-32.4244)의 고유벡터를 보면 두 번째, 네 번째 성분은 값이 좀 큰 것을 알 수 있는데, 이 말은 state vector의 두 번째 성분과 네 번째 성분(카트의 속도와 진자의 각속도)의 값이 Q와 R이 말하는 제약사항을 최대한 지키는데 중요한 역할을 했다는 것을 알 수 있다.
>> [V, D] = eig(A-B*K); V(:,1)
ans =
0.0275
-0.8928
0.0139
-0.4494
결론적으로 lqr 명령어 하나가 내부적으로 최적화 연산을 수행하여, 가장 적은 에너지를 쓰면서도 가장 빠르게 시스템을 안정화하는 최적의 고유값 위치를 스스로 찾아내고, 그에 맞는 $\mathbf{K}$ 행렬을 뱉어낸다. 이름하여 Linear Quadratic Regulator (LQR) 이다.
- Linear: 선형 제어기($u = -\mathbf{K}\mathbf{x}$)를 사용하고,
- Quadratic: 이차 형식($\mathbf{x}^T\mathbf{Q}\mathbf{x}$, $u^T R u$)으로 정의된 비용 함수를 최소화하며,
- Regulator: 시스템을 목표점(0)으로 수렴(안정화)시킨다는 뜻이다.
4. LQR의 직관적인 튜닝 과정
극점 배치 방식에서는 “어느 위치(-1일까, -2일까?)가 물리적으로 좋은 위치인지” 알 길이 없어 막막했다. 하지만 LQR을 사용하면 튜닝이 매우 직관적으로 변한다.
- 진자가 자꾸 쓰러지려고 한다면? $\rightarrow$ $\mathbf{Q}$ 행렬에서 각도에 대한 페널티를 올린다. 알아서 더 공격적인 제어기가 튀어나온다.
- 모터가 너무 덜덜 떨며 과부하가 걸린다면? $\rightarrow$ $R$ 값을 올려 제어 입력에 페널티를 준다. 알아서 움직임이 부드럽고 완만한 제어기로 바뀐다.
우리는 더 이상 알 수 없는 복소평면 위의 극점 위치를 찍으며 헤맬 필요가 없다. “무엇을 더 아끼고 싶은가?”라는 직관적인 가중치만 조절하면, 선형대수학이 알아서 최적의 극점 위치를 역산해 준다.
결론: 진정한 공학적 어려움은 어디에 있는가?
영상 말미에서 강사인 Steve Brunton 교수는 매우 뼈있는 통찰을 던진다. “이 예제를 준비하면서 비선형 시스템을 모델링하고 선형화 행렬(A, B)을 수식으로 뽑아내는 데 수 시간이 걸렸습니다. 하지만 제어기(K)를 설계하는 데는 5분도 채 걸리지 않았죠.”
현대 제어 공학에서 수학적 툴(LQR 등)은 이미 완성되어 있다. 결국 현실 세계의 문제를 푸는 핵심은, 우리가 마주한 물리적 현상을 얼마나 정확하게 미분방정식과 선형 행렬($\mathbf{A, B}$)로 모델링해낼 수 있는가에 달려 있다.
정확한 시스템 모델 행렬과 선형대수학의 이차 형식, 그리고 lqr 함수 한 줄. 이것이 바로 불안정한 세상을 가장 효율적으로 통제하는 현대 제어의 우아한 마법이다.
참고 문헌
- [1] Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control; Steven L. Brunton and J. Nathan Kutz (link)[https://databookuw.com/]
본 포스팅은 워싱턴 대학교 Steve Brunton 교수의 ‘Control Bootcamp’ 유튜브 강의를 참고하여 작성되었습니다.