7.49 적응 시간 간격 제어

1. 적응적 시간 간격의 필요성

고정 시간 간격(fixed step size) 방법은 해의 변화 양상에 무관하게 동일한 시간 간격을 사용한다. 그러나 로봇 동역학 시뮬레이션에서 관절 충돌, 급격한 토크 변화, 접촉 전환 등의 사건이 발생하면 해가 국소적으로 급격히 변화한다. 이러한 구간에서는 작은 시간 간격이 요구되는 반면, 해가 완만하게 변화하는 구간에서는 큰 시간 간격을 사용하여도 충분한 정밀도를 유지할 수 있다.

적응 시간 간격 제어(adaptive step size control)는 각 단계에서 국소 절단 오차를 추정하고, 이 추정값에 기반하여 시간 간격을 자동으로 조절하는 기법이다. 이를 통해 사용자가 지정한 허용 오차(tolerance) 내에서 가능한 한 적은 계산으로 시뮬레이션을 수행할 수 있다.

2. 오차 추정 방법

2.1 단계 반감법

단계 반감법(step halving 또는 step doubling)은 동일한 구간을 두 가지 방식으로 적분하여 오차를 추정하는 방법이다.

  1. 시간 간격 h로 한 단계 진행하여 y_1을 구한다.
  2. 시간 간격 h/2로 두 단계 진행하여 \hat{y}_1을 구한다.

p차 방법의 경우, 두 결과의 차이로부터 국소 절단 오차를 추정할 수 있다.

\text{err} \approx \frac{\hat{y}_1 - y_1}{2^p - 1}

이 방법은 개념적으로 명확하나, 함수 평가 횟수가 3배로 증가하므로 계산 효율이 낮다.

2.2 내장형 룽게-쿠타 쌍

내장형 룽게-쿠타 쌍(embedded Runge-Kutta pair)은 추가적인 함수 평가 없이 오차를 추정하는 효율적인 방법이다. 동일한 단계 기울기 \{k_1, k_2, \ldots, k_s\}를 사용하여 서로 다른 차수의 두 근사값을 동시에 계산한다.

y_{n+1} = y_n + h\sum_{i=1}^{s} b_i k_i \quad \text{($p$차 해)}

\hat{y}_{n+1} = y_n + h\sum_{i=1}^{s} \hat{b}_i k_i \quad \text{($\hat{p}$차 해, $\hat{p} = p-1$ 또는 $\hat{p} = p+1$)}

오차 추정값은 두 해의 차이로 얻어진다.

\text{err} = y_{n+1} - \hat{y}_{n+1} = h\sum_{i=1}^{s}(b_i - \hat{b}_i)k_i

3. 도르만-프린스 방법

3.1 RK45 공식

도르만-프린스(Dormand-Prince) 방법은 가장 널리 사용되는 내장형 룽게-쿠타 쌍이며, MATLAB의 ode45 및 SciPy의 solve_ivp에 기본 적분기로 채택되어 있다. 이 방법은 7단계 함수 평가로 5차와 4차 해를 동시에 계산하는 RK5(4) 쌍이다.

5차 해를 전진(propagation)에 사용하고, 4차 해와의 차이로 국소 오차를 추정한다. 이를 국소 외삽(local extrapolation)이라 한다.

3.2 FSAL 성질

도르만-프린스 방법은 FSAL(First Same As Last) 성질을 갖는다. 현재 단계의 마지막 함수 평가 k_7이 다음 단계의 첫 함수 평가 k_1과 동일하므로, 실질적인 함수 평가 횟수는 단계당 6회로 줄어든다. 이 성질은 적응적 시간 간격 제어에서 단계가 거부되지 않는 한 유지된다.

4. 시간 간격 조절 전략

4.1 기본 공식

오차 추정값 \text{err}와 허용 오차 \text{tol}을 비교하여 시간 간격을 조절한다. p차 방법에서 국소 오차가 \text{err} = O(h^{p+1})이므로, 원하는 오차 수준을 달성하는 새로운 시간 간격 h_{new}는 다음과 같이 추정된다.

h_{new} = h \cdot \left(\frac{\text{tol}}{\lVert\text{err}\rVert}\right)^{1/(p+1)}

여기서 \lVert\text{err}\rVert는 적절한 노름으로 측정한 오차의 크기이다.

4.2 단계 수락과 거부

오차 추정에 따라 현재 단계를 수락하거나 거부한다.

  • \lVert\text{err}\rVert \leq \text{tol}: 단계를 수락하고, 계산된 h_{new}로 다음 단계를 진행한다.
  • \lVert\text{err}\rVert > \text{tol}: 단계를 거부하고, 축소된 h_{new}로 현재 단계를 재시도한다.

4.3 안전 계수와 제한

실용적으로는 시간 간격의 급격한 변화를 방지하기 위하여 안전 계수(safety factor)와 성장/축소 제한을 적용한다.

h_{new} = h \cdot \min\left(\alpha_{max}, \, \max\left(\alpha_{min}, \, S \cdot \left(\frac{\text{tol}}{\lVert\text{err}\rVert}\right)^{1/(p+1)}\right)\right)

여기서 S \in [0.8, 0.9]는 안전 계수, \alpha_{max} \in [2, 5]는 최대 성장 인자, \alpha_{min} \in [0.1, 0.2]는 최대 축소 인자이다. 안전 계수는 오차 추정의 불확실성을 감안하여 약간 보수적으로 시간 간격을 설정하는 역할을 한다.

5. 오차 노름의 정의

5.1 절대 오차와 상대 오차의 혼합

벡터 형태의 상태 변수에 대하여 오차 노름은 절대 허용 오차(absolute tolerance) \text{atol}과 상대 허용 오차(relative tolerance) \text{rtol}을 결합하여 정의한다. 상태 벡터의 i번째 성분에 대한 스케일링된 오차는 다음과 같다.

\text{sc}_i = \text{atol}_i + \text{rtol}_i \cdot \lvert y_i \rvert

전체 오차 노름은 다음과 같이 계산한다.

\lVert\text{err}\rVert = \sqrt{\frac{1}{n}\sum_{i=1}^{n}\left(\frac{\text{err}_i}{\text{sc}_i}\right)^2}

이 정의에서 각 성분의 오차가 해당 성분의 크기에 비례하여 평가되므로, 물리적 단위가 서로 다른 상태 변수(예: 관절 각도와 관절 각속도)를 동일한 기준으로 비교할 수 있다.

5.2 로봇 시뮬레이션에서의 허용 오차 설정

로봇 동역학 시뮬레이션에서 일반적으로 사용되는 허용 오차는 다음과 같다.

  • 절대 허용 오차: \text{atol} = 10^{-6} ~ 10^{-8}
  • 상대 허용 오차: \text{rtol} = 10^{-3} ~ 10^{-6}

정밀 제어 시뮬레이션이나 장시간 적분에서는 더 엄격한 허용 오차가 필요할 수 있다.

6. PI 제어기 기반 시간 간격 조절

6.1 기본 공식의 한계

앞서 소개한 기본 시간 간격 조절 공식은 현재 단계의 오차만을 사용하므로, 시간 간격이 진동하는 현상이 발생할 수 있다. 이를 완화하기 위하여 PI(비례-적분) 제어기 개념을 도입한 시간 간격 조절 전략이 제안되었다.

6.2 PI 제어기 공식

Gustafsson(1991)이 제안한 PI 제어기 기반 공식은 다음과 같다.

h_{new} = h \cdot \left(\frac{\text{tol}}{\lVert\text{err}_n\rVert}\right)^{k_I} \cdot \left(\frac{\lVert\text{err}_{n-1}\rVert}{\text{tol}}\right)^{k_P}

여기서 k_Ik_P는 각각 적분 및 비례 이득이며, 일반적으로 k_I = 0.3/(p+1), k_P = 0.4/(p+1) 정도의 값이 사용된다. 이 공식은 이전 단계의 오차 정보도 함께 활용하여 시간 간격의 변동을 평활화한다.

7. 페흘베르크 방법

페흘베르크(Fehlberg) 방법은 RK4(5) 구조를 갖는 내장형 룽게-쿠타 쌍으로, 4차 해를 전진에 사용하고 5차 해를 오차 추정에 활용한다. 6단계 함수 평가로 구성되며, 도르만-프린스 방법과 반대로 낮은 차수의 해를 전진에 사용한다는 점에서 차이가 있다. 도르만-프린스 방법이 국소 외삽을 통해 더 높은 차수의 해를 전진에 사용하므로, 동일한 허용 오차에서 일반적으로 더 정확한 결과를 제공한다.

8. 조밀 출력

8.1 필요성

적응 시간 간격 방법은 비등간격의 시간 격자점에서 해를 산출한다. 그러나 로봇 제어 시스템에서는 일정 주기로 상태 정보가 필요한 경우가 많다. 조밀 출력(dense output) 또는 연속 출력(continuous output)은 이산 시간 격자점 사이의 임의의 시각에서 해를 보간(interpolation)하여 제공하는 기능이다.

8.2 보간 다항식

s단계 룽게-쿠타 방법에서 구간 [t_n, t_{n+1}] 내의 임의 시각 t_n + \theta h (0 \leq \theta \leq 1)에서의 보간값은 다음과 같이 구한다.

y(t_n + \theta h) \approx y_n + h\sum_{i=1}^{s} b_i(\theta) k_i

여기서 b_i(\theta)\theta의 다항식으로, b_i(0) = 0, b_i(1) = b_i를 만족하도록 설계된다. 도르만-프린스 방법의 경우, 4차 보간 다항식이 추가 비용 없이 제공된다.

9. 로봇 시뮬레이션에서의 실용적 고려 사항

9.1 사건 검출

로봇 시뮬레이션에서 접촉/이탈, 관절 한계 도달, 특이점 통과 등의 사건은 해의 불연속 또는 급격한 변화를 초래한다. 적응 시간 간격 제어는 조밀 출력과 결합하여 이러한 사건의 발생 시각을 정밀하게 검출할 수 있다. 상태 변수의 특정 함수가 영을 통과하는 시각을 이분법(bisection)이나 레귤라 팔시(regula falsi) 방법으로 찾는 것이 일반적이다.

9.2 실시간 시뮬레이션과의 조합

실시간 시뮬레이션에서는 각 제어 주기 내에 적분을 완료하여야 하므로, 적응 시간 간격 방법의 계산량 예측이 어려울 수 있다. 이를 해결하기 위하여 최대 시간 간격을 제어 주기의 일정 비율로 제한하거나, 최대 단계 수를 설정하여 계산 시간의 상한을 보장하는 전략이 사용된다.

10. 요약

적응 시간 간격 제어는 내장형 룽게-쿠타 쌍을 통한 국소 오차 추정과 이에 기반한 시간 간격 자동 조절로 구성된다. 도르만-프린스 방법은 FSAL 성질을 활용한 효율적인 RK5(4) 쌍으로, 단계당 6회의 함수 평가로 5차 정확도의 해와 4차 기반 오차 추정을 동시에 제공한다. 안전 계수, 성장/축소 제한, PI 제어기 기반 조절 전략은 시간 간격의 안정적 변화를 보장한다. 이 기법은 로봇 동역학의 다양한 시간 규모를 자동으로 해상하여, 계산 효율과 정밀도를 동시에 달성하는 핵심 도구이다.


참고 문헌

  • Dormand, J. R. & Prince, P. J. (1980). “A family of embedded Runge-Kutta formulae.” Journal of Computational and Applied Mathematics, 6(1), 19–26.
  • Hairer, E., Nørsett, S. P., & Wanner, G. (1993). Solving Ordinary Differential Equations I: Nonstiff Problems (2nd ed.). Springer.
  • Gustafsson, K. (1991). “Control theoretic techniques for stepsize selection in explicit Runge-Kutta methods.” ACM Transactions on Mathematical Software, 17(4), 533–554.
  • Fehlberg, E. (1969). “Low-order classical Runge-Kutta formulas with step size control.” NASA Technical Report, TR R-315.
  • Shampine, L. F. & Reichelt, M. W. (1997). “The MATLAB ODE Suite.” SIAM Journal on Scientific Computing, 18(1), 1–22.

version: 0.1.0