| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- baekjoon problem solving
- HJB방정식
- LeggedRobot
- 텔레스코픽로봇
- MIT opencourse
- C++
- 6.042j
- 대수경
- 자료구조
- std::sort
- mathematics for computer science
- BOJ
- baekjoon
- 실버 4
- 전국 대학생 수학 경시대회
- mit
- 실버 5
- lqr
- 구현
- 정렬
- 큐
- 집합과 맵
- 백준
- 로보틱스
- 논문리뷰
- 수학
- 로봇공학
- 최적제어
- 다리로봇
- 문자열
- Today
- Total
서두르지 말고 쉬지 말자
[로봇 제어 입문] 비선형 시스템을 위한 국소적 궤적 안정화 본문
1. Local trajectory stabilization for nonlinear systems
시변 LQR(time-varying LQR)의 응용 중 가장 강력한 것이 있다. 바로 비선형 시스템의 명목 궤적(nominal trajectory) 주변에서 시스템을 선형화한 뒤, LQR을 이용해 궤적 제어기(trajectory controller)를 만드는 것이다. 이 내용은 나중에 나올 궤적 최적화(trajectory optimization) 챕터에서 다룰 알고리즘들과 잘 맞물릴 것이다.
명목 궤적(nomial trajectory)$x_0(t), u_0(t)$가 $t\in [t_1,t_2]$구간에서 정의되었다고 가정하자. time-varying 에서와 마찬자기로 이 궤적을 local coordinate system을 다음과 같이 정의한다.
$$\bar{x}(t)=x(t)−x_0(t), \bar{u}(t)=u(t)−u_0(t)$$
이제 다음과 같이 쓸 수 있다.
$$\dot{\bar{x}}=\dot{x}-\dot{x_0}=f(x,u)-f(x_0,u_0)$$
이를 1차 테일러 전개로 근사하면
$$\dot{\bar{x}} \approx f(x_0,u_0) +
\frac{\partial{f(x_0,u_0)}}{\partial{x}} (x - x_0) + \frac{\partial{f(x_0,u_0)}}{\partial{u}} (u -
u_0) - f(x_0,u_0) = A(t)\bar{x} + B(t)\bar{u}$$
이는 LQR을 이용해서 고정점(fixed-point)를 안정화하는 것과 비슷하지만 몇가지 중요한 차이점이 있다.
- 선형화가 시변(time-variant)다.
따라서, 자코비안 $A(t)$와 $B(t)$가 시간에 따라 변한다. - 선형화가 궤적 위의 어느 상태에서도 유효하다.
왜냐하면, 좌표계가 궤적에 따라 움직이기 때문이다.
LQR을 적용시키기 위해서 비용함수도 이차형식으로 만들어야 한다. 이차형식으로 만드는 방법은 크게 2가지가 있다.
- 오차 좌표계(error coordinates)에서 이차(quadratic) 비용함수를 정의
- 비선형 비용함수를 궤적을 따라 양의 정부호(positive-definite) 조건을 만족하도록 2차 근사
2차 근사된 비용함수에서 1차항과 상수항은 추후에 Linear Quadratic Tracking 유도에서 보듯이, $J^*$에 대한 완전한 이차형식을 매개변수화해서 유도 과정에 포함시킬 수 있다.
결과로 얻어지는 제어기는 $\bar{u}^* = -\mathbf{K}(t)\bar{x}$, 즉 다음과 같은 형태를 취한다
$$u^* = u_0(t) - \mathbf{K}(t)\big(x - x_0(t)\big)$$
Drake는 FiniteHorizonLinearQuadraticRegulator 메소드를 제공한다. 여기에 비선형 시스템을 넘겨주면 자동 미분을 이용해 알맞은 좌표계에서 선형화를 대신 수행해준다.
안정성(stability)란 시간이 무한대로 갈 때 무슨 일이 벌어지는지에 대한 서술이라는 점을 기억하자. 궤적을 안정화한다고 말하려면, 그 궤적이 전체 구간에서 정의되어 있어야 한다. 즉, 궤적이 $t\in[t_1,/infty)$ 구간에서 정의되어 있어야 한다.하지만 우리가 다루는 궤적은 유한하다. 따라서 엄밀한 의미에서는 안정화됐다고 할 수 없다.
이를 위한 해결책으로, $t_1$부터 $t_4$까지 궤적의 끝점을 고정점(fixed point)가 되게 설계하고 $t_2$이후로는 계속 그 고정점에 머문다고 가정한다. 그리고 시불변 무한구간 대수 리카티 방석을 풀어서 정상상태(steady-state) 해 $S_\infty$를 유한구간 riccati equation의 종단조건으로 사용한다. 나머지 궤적에 대해서는 $t_2$에서 $t_1$방향으로 시간을 거꾸로 해서 이 방정식을 풀어나간다.
'제어' 카테고리의 다른 글
| [로봇 제어 입문] 유한 구간 LQR (1) | 2026.07.14 |
|---|---|
| [로봇 제어 입문] LQR을 통한 비선형 시스템의 국소 안정화 (0) | 2026.07.13 |
| [로보틱스 제어 입문] ➀ LQR — HJB 방정식으로 Riccati 방정식 유도하기 (0) | 2026.07.08 |
