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

다음 예제 한번 보겠습니다. 이번엔 보드선도를 통해 그려보겠습니다. 보드선도를 그리기 위해 꼴을 살짝 수정해주었습니다. 보드선도는 각각의 보드선도를 그리고 합쳐주는 방식으로그리시면 되는데 검정색이 완성된 보드선도입니다. 이를 나이퀴스트에 사용하려면 위상값과 크기를 알아야합니다. 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 을 ..

라플라스 변환을 통해 얻은 전달함수의 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이여야 안..

나이퀴스트 선도에 아직 이해가 안오실텐데 자동제어에서 중요한 RHP에 Pole이 존재하면 시스템은 불안정해집니다. 따라서 OLTF인 L(s)를 알고있다면 Open loop pole을 알수 있고, 나이퀴스트 선도와 Open loop pole을 이용하여 Closed loop pole이 RHP에 존재하는지 알 수 있게 됩니다. 그럼 나이퀴스트 선도를 그리는 법을 알아야겠죠? 그전에 사상 개념에 대해 알아야 하는데, 사상은 쉽게 말해 A함수를 B라는 함수에 값을 각각대입해 C라는 새로운 그림을 그리는 것입니다. 예가 될수 있을지 모르겠지만 예를 들어보면 A함수 : y=x B함수 : z=2y 가 있다고 합시다. x의 값을 1씩증가시키면 y의값도 1씩 증가하겠죠? 그러면 B함수에 얻은 y값을 대입해봅시다. x=1일..

나이퀴스트 선도란? 주파수 영역에서 Closed-loop(폐루프) 시스템의 안정도를 Open-loop(개루프), 즉 루프함수 L(s)를 통해 안정도를 판별할 수 있는 선도입니다. 이렇게 폐루프 시스템의 안정도를 판별하고자 할때 사용하는데 이렇게 G(s)H(s)를 루프함수 L(s)로 표현해 분자분모를 pole과 zero로 표현할 수 있습니다. 이제 1+L(s)가 CLTF의 특성방정식이고 특성방정식의 분자인 Z(s)+P(s)= 0이 Closed loop pole이 됩니다. 정리하자면 OLTF의 분자 Z(s)와 분모 P(s)로 OLTF의 Pole : P(s) = 0 CLTF의 Pole : Z(s)+P(s) = 0 임을 알 수 있었습니다.

이제 물리적인 모델들의 입력에 대한 출력인 전달함수로 나타내서 시뮬레이션을 돌려보았고 자동제어에서 해주어야할 일은 원하는 결과값이 나온 시스템이 아닌 그렇지 않은 시스템을 제어기를 설계해서 수정해 주어야 합니다. 제어기를 설계한다는 말은 전달함수를 조정해준다고 생각해도 되는데 전달함수를 지지고 볶는 과정에 대해 설명하겠습니다. 우선 어떤 유효한 방법에 따라 전달함수가 구해지고, 그 시스템 방정식이 연립 상미분방정식(ODE)일때 전달함수는 다항식의 비가 됩니다. 이 말은 즉슨 전달함수 G(s)가 (s^2+1)/s+1 같은 s에 관한 다항식의 분모 분자꼴로 나타난다는 말이고 여기서 새로운 개념이 하나 생깁니다. 극점, 영점 극점이란 전달함수를 무한대로 만드는 s값, 영점이란 전달함수를 0으로 만드는 s값입니..

저번 매트랩때는 인공위성의 회전운동 제어모델을 살펴봤는데 이번에는 진자운동을 모델링 해보겠습니다. 이러한 기본 진자운동 모델을 살펴보겠습니다. O점(pivot)에 대해 운동방정식을 세워보면 m을 theta만큼 움직인 토크Tc가 존재하고, 회전운동이기 때문에 Tc - mg*g*l*sinθ = Iθ'' 하지만 이 방정식은 sinθ가 존재해 비선형입니다. 지금은 비선형 방정식에 관해 다루진 않기 때문에 운동이 작다고 가정하고, sinθ = θ라고 가정함으로 선형화 시킬 수 있습니다. 결국 전달함수는 이와 같이 표현할 수 있습니다. 만약 m = 1kg / l = 1m / g = 9.81m/s^2 라고 가정한다면 분자는 1이 되고 분모는 s^2 + 9.81이 됩니다 이를 매트랩에서 실행해보면 이와 같은 시간응답이..

저번에는 물리적현상에 대해 모델링을 해 입력에 대한 출력을 구했습니다. 그 과정에서 입력을 step이라는 것을 사용했는데 입력 함수에 대해 알아보겠습니다. 입력 함수 제어에서 입력값과 출력값의 오차가 줄게 될수록 좋은 제어라고 할수있습니다. 실제로는 여러가지 입력의 형태가 있지만 자동제어 과목에서 다루는 입력의 형태는 주로 Step function(계단함수)이고 Ramp function과 Impulse function, parabolic function 등이 있습니다. 원래 step 함수는 고등학교때 배웠듯 이런식으로 계단함수로 생겼습니다. 하지만 자동제어에서는 단위 계단함수를 사용하는데요. 단위 계단함수는 이런식으로 a구간전에는 0 후에는 1의 값을 갖는 함수를 뜻합니다. 이 말은 즉슨, a구간 후에는..