본문 바로가기

제어이론

(Advanced) 2. 직접 LQR Controller 확인해보자! (참고링크) https://github.com/cshnforever/ricatti GitHub - cshnforever/ricatti: Differential Ricatti Equation, Algebraic Ricatti Equation by Hamiltonian Differential Ricatti Equation, Algebraic Ricatti Equation by Hamiltonian - GitHub - cshnforever/ricatti: Differential Ricatti Equation, Algebraic Ricatti Equation by Hamiltonian github.com 위에서 Python 코드로 직접 Differential Ricatti Equation과 Algebraic R.. 더보기
(Advanced) 1-2. Continuous LQR Controller (Lagrange Multiplier 방법) (참고링크) (미적분학) 부록1. 끝난게 끝난게 아닌 최대/최솟값 찾기 (Lagrange Multiplier): https://0418cshyun.tistory.com/40 (미적분학) 부록1. 끝난게 끝난게 아닌 최대/최솟값 찾기 (Lagrange Multiplier) 다변수함수의 미분 파트에서, 주어진 f(x)의 최댓값과 최솟값을 찾는 방법에 대해서 알아보았다. -> 이를 그냥 뭉뚱그려서 최적화 문제(Optimization)로 볼 수 있다. gradient와 hessian을 이용한 방법은 x 0418cshyun.tistory.com 저번시간에 이어서 이번에는 Lagrange Multiplier를 이용한 LQR Controller 유도를 살펴보자. 2. Lagrange Multiplier 이용 우리가 .. 더보기
(Advanced) 1-1. Continuous LQR Controller (Dynamic Programming 접근방법) 이번에는 LQR(Linear Quadratic Regulator) 제어기에 대해서 설명하려고 한다. => 일반적으로는 "선형시스템"에 대해서 적용가능하지만, "비선형시스템"으로도 확장은(?) 가능하다. (by 선형화 작업) 일단, 기존의 제어기와 비교를 해보자. 기존의 1. Frequency Domain -> PID 2. Time Domain -> State-Feedback 둘 다 => 시스템의 Pole, Zero를 우리가 원하는데에 넣어주는 작업을 한다! 사실, Pole, Zero라는게 Frequency Domain으로 보아햐 하니 이게 안정적인 건지 아닌건지 보기 위해서는 Time Domain => Frequency Domain으로 바꿔주는 귀찮은 작업을 거쳐야 한다. 지금부터는 약간 관점을 다르게 .. 더보기
(선형시스템) 8-4. State Estimator(Observer) 전 챕터에서는 State-Variable을 다 알고 있다는 가정 하에서, Full-state Feedback Controller를 작성하였는데, 문제는, 실제로 모든 state-variable을 알 수 없는 경우가 많다는 것이다... 그래서, 이 State-Variable x를 우리가 볼 수 있는 y를 통해서 "추정(Estimate)"하고, 추정한 x와 실제 x의 Error Dynamics를 이용해서, 이 Error를 0으로 줄이면서, x를 추정하게 된다. 이게 무슨 소리인가 싶을텐데, 아래 내용을 살펴보자. (여기서 D=O로 간략화!) 먼저, Original System을 이용해서 Estimated System을 구성하게 된다. 이 때... 당연히 Estimated System에는 추정에 의한 Erro.. 더보기
(선형시스템) 8-3. Full-State Feedback Control -> Pole Placement Frequency Domain에서의 Control은 PID Controller로 Error 자체, 기울기, 적분값에 비례해서 Controller를 만들어 주었다. 그러면, 이러한 State Variable System에선 어떤 식으로 Controller를 만들어 줄 수 있을까? -> 8-1에서 본 것 같이, Input에 Feedback을 먹여서 Controller를 만들 수 있다! u = -Kx 그런데, Frequency Domain에서는 Zero나 Pole의 위치로 이러한 Controller의 안정성이나 성능을 알 수 있었는데, 여기서는 어떻게 할까???? 다음을 살펴보자... 즉, 저 특성방정식이 결국 Closed-loop system의 Pole의 위치(Eigenvalue)를 말해주므로, "시스템의 .. 더보기
(선형시스템) 8-2. Controllability and Observability 지난 챕터에서 잠시 언급한대로, 1. (관측하는 값) y에서 x를 모두 추정할 수 있는가??? -> Observability 2. 우리가 x(혹은 y)를 원하는 대로 움직일 수 있는가??? -> Controllability 에 대한 내용을 이번 시간에 다룰 예정이다. 먼저, Controllabiliy에 대해서 살펴보자. 문제를 좀 더 정확하게 표현하기 위해 다음과 같은 질문을 해보자. -> x 혹은 y를 결정시키는 것은 어떤 것이 있을까?? -> 선형시스템을 그냥 미분방정식처럼 생각한다면 -> 1. 문제(위에서 A,B,C,D), 2. 초깃값(Initial Value) // (미분방정식에서 Initial Value Problem이라고 하는 바로 그것!) 이 있을 것이다. 그러면, 우리는 Controllab.. 더보기
(선형시스템) 8-1. Intro. of Full-State Feedback Control 지금까지는 "Frequency Domain"에서 Controller에 대해서 작성해보았다면 이번에는 다시 Frequency Domain 에서 배운 내용을 가지고 -> Time Domain으로 돌아와보자. 주어진 LTI 시스템은 Time-Domain에서 다음과 같았다. Frequency Domain에서 State-Feedback Control에 대해서 설명할 때, Closed-Loop System을 이용해서 Input(u)에 측정값(y)을 다시 먹이는(Feedback) 작업을 했었는데, Time Domain에서도 동일하게 생각할 수 있다. 즉, 그냥 이라고 생각해버리면 된다! 그런데, 여기서 State Variable x와 측정값(Estimated Value) y에 대해서 잠시 생각해보자. 1. State.. 더보기
(선형시스템) 7-4. Lead/Lag Compensator PID Controller 섹션에서 Lead/Lag Compensator에 대한 이야기를 잠시 했었는데, 마치 PD, PI Controller의 역할을 한다고 하였다. (게다가, PD Controller는 NON-Causal system이다!) 그러면, 왜 이런 Lead/Lag라는 이름이 붙었는지 살펴보자. (Lead Compensator) -> PD Controller의 역할! Lead Compensator의 Bode Plot을 그려보면서, 성질을 알아보자. 1. LOW-Frequency ( Magnitude와 Phase는 그대로 보존! 2. Medium-Frequency (z=0.1 안정성 UP 얼마나 Phase Margin을 높일 수 있는지 계산해보면... 즉, alpha가 작을수록 더 큰 Phas.. 더보기