일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Backstepping
- 터미널 오류
- lateral dynamics
- 궤환선형화
- 보드선도
- feedback linearization
- 우분투
- 2024적금
- 백스테핑
- RL
- 나이퀴스트
- 경로계획
- 궤환 선형화
- ros2humble
- control
- ROS2
- 차량 동역학
- 러닝 #운동 #동기부여
- Python
- 나이퀴스트선도
- 비선형제어
- 자동제어
- 횡방향 동역학
- 오류
- #! /usr/bin/env python
- Isaac Sim
- 제어공학
- 나이퀴스트 선도
- FL
- 강화학습
- Today
- Total
목록2025/03 (7)
내 머릿속

소개차량의 횡방향 동역학은 횡방향 제어기 설계시 가장 중요한 부분이다. 종방향 제어의 경우 비교적 단순한 반면, 횡방향 제어는 살짝 복잡해진다. 운동방정식동역학은 다음과 같은 두 가지 운동방정식으로 표현이 가능하다.차량의 횡방향 움직임은 병진(translation)과 회전(rotation)이 모두 있기 때문에 다음과 같이 표현된다.[1] $F = ma_y$ [2] $M = I_z \alpha$ 위의 그림에서 $\beta = \psi$이고, $\delta_f = \delta$라고 하겠다. 운동방정식을 확장하면[1]번 식은 [1-1]$F_yf + F_yr = m (\ddot y + V_x \dot \psi)$ 으로 표현되고,[2]번 식은 [2-1]$F_{yf} l_f - F_{yr} l_r = I_z \dd..
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)(..
이제 백스테핑 관련 두번째 포스트다. Backstepping 의 메인 아이디어는 수렴하게 하고싶은 변수에 관련된 변수를 보조제어입력으로 삼아 우선 수렴하게 만들고그 보조 제어입력을 다시 다른 변수로 만들어 그 변수를 0으로 수렴하게 만드는 과정을 반복한다. 이번에도 예제와 함께 해보자.예제$\dot x_1 = x_1^2 - x_1^3 + x_2$$\dot x_2 = x_3$$\dot x_3 = u$ 이제는 감이 올지 모르겠지만 동일하게 $x_2=-x_1^2-x_1$와 같이 사용할 것이다. 그러면 $phi(x_1) = -x_1^2-x_1$이고$\dot x_1 = x_1^2 -x_1^3 +x_2 +\phi(x_1) - \phi(x_1)$ 이 되니까 $z_2 = x_2 - \phi(x_1)$이라고 둘 수 있고..

이번에는 Backstepping control에 대해 소개해보겠다. 이전 FL과 유사하게 예제와 함께 해보자 예제$\dot x_1 = x_1^2 - x_1^3 + x_2$$\dot x_2 = u$ 이런 시스템이 존재할 때, FL의 경우$z_1 = x_1$$z_2 = \dot z_1$으로 정의해서 $\dot z_2 = 2 x_1 \dot x_1 - 3 x_1^2 \dot x_1 + \dot x_2$와 같이 정의하고 다시 $\dot x_1$ , $\dot x_2$를 대입해서 $\dot z_2 = (2 x_1- 3x_1^2)(x_1^2 - x_1^3 + x_2) + u $와 같이 만들고 우변을 보조 제어입력 v로 보면, $v = (2 x_1 - 3x_1^2)(x_1^2 - x_1^3 + x_2) + u$$u ..

이번에도 FL의 예제와 함께하는 설명입니다. 예제$\dot x_1 = sin(x_2)+(x_2+1)x_3$$\dot x_2 = x_1^5 + x_3$$\dot x_3 = x_1^2 + u$$y = x_1$ 이번에는 모든 상태를 피드백 받는것이 아닌 $y$을 피드백 받아 $y_d$를 추종하는 제어입력을 설계해야 합니다. 현재 제어입력 $u$는 $x_1$과 직접 연결되어 있지 않으니, $y$를 한번 미분해보겠습니다. $\dot y = \dot x_1$ 이므로$\dot y = sin(x_2) + (x_2+1)x_3$ 입니다. 만약 여기서 제어입력이 나왔다면 이전과 같이 우변을 모두 보조제어입력 $v$로 보고, u를 설계하면 됩니다.하지만 제어입력이 없기 때문에 한번 더 미분해주겠습니다. $\ddot y = c..

이번에는 지난 포스트에 이어 비선형 제어기 중 하나인 Feedback Linearization에 대해 더 소개해보겠습니다. 2차 비선형 시스템저번에는 단순한 1차 비선형 시스템이여서 FL의 제어입력 식이 단순하게 설계 될 수 있었습니다. 1차 비선형 시스템의 경우 $\dot x = v$ 와 같은 꼴로 만들어지는 제어입력 $u$를 설계하고,$v$가 어떤 에러에 비례한 제어입력꼴을 갖도록 하는 최종 제어입력을 설계하면 됐었습니다. 2차 시스템의 경우는 우선$ \dot x_1 = x_2$$ \dot x_2 = v$ 와 같은 꼴을 가지도록 하는 u를 설계하는게 먼저고, 이후에 $v=-K_1 x_1 - K_2 x_2$와 같이 두게 되면 시스템의 상태를 안정화시키는 제어입력이 완성됩니다. 예제$\dot x_1 = ..

비선형 제어기는 대표적으로 3가지 정도가 존재합니다. 1. Feedback Linearzation(궤환 선형화)2. BackStepping(백스테핑)3. Sliding Mode Control(슬라이딩 모드 제어) 오늘은 이 중 Feedback Linearization에 대해서 작성해 보겠습니다. 1. 쉬운 개념Q. 어떠한 시스템이 비선형 항을 가지고 있고 그 성분을 모두 알수 있다면?A. 제어입력에서 이를 상쇄해주어 선형시스템으로 만들고, 목표값으로 수렴하게 하는 제어입력을 설계한다! 입니다. 제어입력이 포함시켰을 때의 시스템을 Closed-loop dynamics , 혹은 Closed-loop system, Error dynamics라고 할 수 있습니다. 그렇다면 선형 시스템의 제어입력을 잘 설계해서$..