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

이번에는 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 ..

다음 예제 한번 보겠습니다. 이번엔 보드선도를 통해 그려보겠습니다. 보드선도를 그리기 위해 꼴을 살짝 수정해주었습니다. 보드선도는 각각의 보드선도를 그리고 합쳐주는 방식으로그리시면 되는데 검정색이 완성된 보드선도입니다. 이를 나이퀴스트에 사용하려면 위상값과 크기를 알아야합니다. w=0일때는 -52dB = 20logA 이고, A = 2.511*10^-3이기 때문에 크기는 A, 위상은 0도입니다. w=inf일때는 -inf dB = 20logB이고, B = 0입니다. 위상은 -270도이겠네요. 이를 나이퀴스트 선도에 w=2값을 구해서 도시하면 이렇게 되고, K값이 양수일때 K값을 아무리 늘이거나 줄여도 감싸지 않게 됩니다. N=0이고, P=0이므로, Z=0 따라서 K>0인 조건에서는 Stable합니다.

다른 예제를 풀어보겠습니다. Type2 시스템입니다. RHP Pole이 없기 때문에 P=0. 구간을 a b c d로 나누고 풀겠습니다. 구간a 부터 보겠습니다. OLTF에 jw를 집어 넣고 크기와 각도성분으로 쪼개주었습니다. 후에 w를 0~2~5~inf로 증가시키겠습니다. w=0 일때 infinity 크기를 갖고 -180도에서 출발합니다. w=2 일때 0.092 크기를 갖고 -156.8도에 존재합니다. w=5 일때 0.03의 크기를 갖고 -156.81도에 존재합니다. w=inf일때 0의 크기를 갖고 -90도에 존재합니다. 이를 축에 도시하면 a를 그렸지만 c는 가로축을 기준으로 뒤집으면 되기 때문에 이렇게 그려집니다. 다음으로 구간 b에대해 그려보겠습니다. s = R*e^(j theta)로 두고 R 을 ..

이제 우방면을 잡는 방법을 알았으니 하나의 예제를 풀어봅시다. 이러한 시스템이 존재합니다. s-plane에 표시한다면 이렇게 좌방면에 Pole이 존재하고 P = 0입니다(RHP의 개수) 이제 사상을 시켜보겠습니다. 우선 jw를 대입해 주고 분자 분모에 (jw-1)를 곱해 실수부와 허수부로 쪼개줍니다. 그리고 w의 값을 0부터 infinity로 잡았으니 0과 infinity를 넣어 크기와 각도를 찾아줍니다. 그러면 w=0일때 K에서 출발해, w=inf일때 0으로 도착하는 형태입니다. 문제는 중간의 과정을 모르기 때문에 w=1일때를 조사해 보았습니다. 크기는 K=1 일때 0.707, 각도는 -45도에 존재하는군요. 사상시킨 그림은 이렇게 됩니다. 두번째로, Re^(jθ)를 R-> inf로 보내볼건데, 여기서..

드디어 나이퀴스트 선도를 그리는 방법에 대해 순차적으로 설명드리겠습니다. 우선, s-plane에서 RHP를 모두 범위잡는 법을 말씀드리겠습니다. 예를들어 LHP에 pole이 3개, zero가 1개있는 시스템을 가정해보겠습니다. 우방면을 모두 잡기 위해선 수학적인 방법이 필요합니다. 첫번째, w=0부터 w=inf 까지 증가시킨다. 이렇게 되면 양의 jw값은 모두 포함이 됩니다. 두번째, 반지름 R, 각도 theta를 갖는 극좌표형태의 Re^(jθ)를 넣어, R을 infinity로, θ를 +90도 ~ -90도까지 변화시킵니다. 이렇게 되면 우방면 전체를 포함시킬 수 있습니다. 세번째, 첫번째를 가로축 기준해 뒤집습니다. 음의 jw값을 모두 포함시킬 수 있습니다.

주파수영역에 대해 아시는분은 괜찮겠지만 모르시는 분은 jw가 왜 튀어나왔는지 궁금하실 겁니다. jw는 s-plane의 세로축영역에 해당하는데 주파수w는 주파수영역( 즉, sin함수 같이 주기를 가지는 함수들)을 해석할때 나이퀴스트 선도가 사용됩니다. 설명이 부족해 이해가 안되시겠지만, 그냥 s대신 jw를 사용하는것이라 생각하시면 될것 같습니다. 추가적인 부분은 나중에 설명하겠습니다. 위는 나이퀴스트 선도의 예시입니다. 원점을 통해 CLTF의 RHP Pole을 추리하는 개념으로 아실텐데, 거기서 하나가 더 추가됩니다. CLTF의 특성방정식은 1+KL(s) = 0입니다. KL(s) = -1로 바꿔주게 되면, 원점 대신 -1을 감싸는지 여부가 중요하다고 생각하시면 됩니다. L(jw)로 사상시킨 가로축과 세로축..

라플라스 변환을 통해 얻은 전달함수의 pole 들이 RHP에 존재하는지 구하기 위해서는 사상의 개념을 s-plane에 적용해야 합니다. s-plane의 여러 값들을 넣어 OLTF인 L(s)에 s대신 주파수영역인 jw를 넣어 L(jw)에 사상시켰을때, 특정조건을 만족시킨다면 CLTF의 RHP에 Closed loop Pole이 존재한다는 것입니다. 특정조건이란, OLTF의 RHP에 Pole이 존재하지 않고사상시킨 그림에서 원점을 감싸며 시계방향으로 돌게 된다면 RHP의 Pole이 존재한다는 것입니다. = 불안정하다. 좀더 자세히 말하자면. 원점을 시계방향으로 감싼 횟수 : N OLTF의 RHP Pole의 개수 : P CLTF의 RHP Pole의 개수 : Z 라고 했을때 N = Z-P가 되고, Z=0이여야 안..

자동제어 또는 제어공학과목은 기계공학부 학생에게 역학과는 또다른 개념을 배우는 것이라 받아들이기가 어렵습니다. 자동제어 예습 혹은 복습하시는 분들을 위해 글을 씁니다. 제어란? 가끔 교수님이 문제로 내실 수 있는 개념입니다. 어떤 장치나 시스템(에어컨)의 상태가 원하는 상태를 따라고도록 입력신호를 적절히 조절하는 방법. 공부할때 본인만의 시스템하나를 생각하고 공부하시면 편한데 저는 에어컨을 예시로 들었습니다. 그럼 자동제어란? 사람이 없어도 제어동작이 수행되는 무인제어. 추상적인 자동제어의 개념은 이렇고 보통 그림을 그려서 많이 설명합니다 제어목적(입력) - > 제어시스템 -> 제어결과(출력) 에어컨온도 24도 현재온도 >24도 라면 냉방하고 현재온도 < 24도라면 난방 혹은 대기 방온도 24도 이런식으..