서두르지 말고 쉬지 말자

[로봇 제어 입문] 비선형 시스템을 위한 국소적 궤적 안정화 본문

제어

[로봇 제어 입문] 비선형 시스템을 위한 국소적 궤적 안정화

philos 2026. 7. 16. 21:44

 

 

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)를 안정화하는 것과 비슷하지만 몇가지 중요한 차이점이 있다.

  1. 선형화가 시변(time-variant)다.
    따라서, 자코비안 $A(t)$와 $B(t)$가 시간에 따라 변한다. 
  2. 선형화가 궤적 위의 어느 상태에서도 유효하다. 
    왜냐하면, 좌표계가 궤적에 따라 움직이기 때문이다.

LQR을 적용시키기 위해서 비용함수도 이차형식으로 만들어야 한다. 이차형식으로 만드는 방법은 크게 2가지가 있다.

  1. 오차 좌표계(error coordinates)에서 이차(quadratic) 비용함수를 정의
  2. 비선형 비용함수를 궤적을 따라 양의 정부호(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$방향으로 시간을 거꾸로 해서 이 방정식을 풀어나간다.

 

반응형