일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #! /usr/bin/env python
- Python
- 2024적금
- Isaac Sim
- 강화학습
- FL
- 횡방향 동역학
- 차량 동역학
- humble
- 궤환 선형화
- 오류
- control
- 우분투
- 자동제어
- 궤환선형화
- 나이퀴스트선도
- 백스테핑
- 터미널 오류
- 보드선도
- RL
- 러닝 #운동 #동기부여
- ros2humble
- ROS2
- 나이퀴스트
- lateral dynamics
- 제어공학
- Backstepping
- feedback linearization
- 비선형제어
- 경로계획
- Today
- Total
내 머릿속
[비선형제어]Backstepping control -3- 본문
Backstepping 관련 마지막 포스팅이다.
일반적인 형태에 대해서 정리해보도록 하자.
시스템
$\dot \eta = f(\eta) + g(\eta)\epsilon$
$\dot \epsilon = f_a(\eta,\epsilon) + g_a(\eta,\epsilon)u$
이제 $\epsilon$을 보조 제어입력처럼 간주해서
$\epsilon = g^{-1}(\eta)(-f(\eta) -\eta)$
와 같은 형태로 만들어 주는
$\phi = g^{-1}(\eta)(-f(\eta)-\eta)$를 이용하고
그러면 다시 시스템은
$\dot \eta = f(\eta) + g(\eta)(\epsilon + \phi(\eta) - \phi(\eta))$
$\dot \eta = -\eta + z_2$
$z_2 = g(\eta)(\epsilon - \phi(\eta))$
$\dot z_2 = \frac {\partial g} {\partial \eta} \dot \eta (\epsilon -\phi) + g(\eta)(\dot \epsilon - \frac {\partial \phi} {\partial \eta} \dot \eta)$
와 같이 정리 될 수 있다.
이제 $z_2$가 수렴하면 $\eta$는 안정해지므로,
리아프노프 후보함수를
$V= 1/2\eta^2 + 1/2z_2^2$로 잡고
이를 미분한
$\dot V = \eta(-\eta + z_2) + z_2(\dot z_2)$
$\dot V = \eta(-\eta + z_2) + z_2([\frac {\partial g}{\partial \eta} \dot \eta (\epsilon -\phi) + g(\eta)(f_a(\eta,\epsilon)+g_a(\eta,\epsilon)u - \frac {\partial \phi}{\partial \eta} \dot \eta])$
이제 첫번째 항의 $\eta z_2$를 $z_2$에 대해서 묶고 두번째 항의 묶여있는 부분이 $-z_2$가 되도록 잡으면 $\dot V$ < 0 이므로 안정화되는 제어입력 $u$를 설계할 수 있다..