본문 바로가기

분류 전체보기336

[Continuous-Time] 제어가능성 그래미안 시스템 \((A, B)\) 의 제어가능성 그래미안(controllability gramian) \(W_c\) 는 다음과 같이 정의한다 (참고로 여러 문헌을 보면 그래미안을 grammian 으로 표기 한 것도 있고 gramian 으로 표기 한 것도 있다).  \[ W_c (t)= \int_0^t e^{A \tau} BB^T e^{A^T \tau} \ d \tau \tag{1} \]   시스템이 제어가능하기 위한 필요충분 조건은 임의의 \(t \gt 0\) 에 대해서 \(W_c (t) \gt 0\) 이라는 것은 이미 증명하였다 (https://pasus.tistory.com/336).    식 (1)의 그래미안 행렬은 다음 미분방정식의 해다.  \[ \dot{W}_c (t)=AW_c+W_c A^T+B.. 2024. 7. 25.
[Continuous-Time] 안정성과 리야프노프 방정식 행렬 \(A\) 의 모든 고유값이 음의 실수부를 갖는다면 행렬 \(A\) 는 안정(stable)하다고 한다. 만약 행렬 \(A\) 가 안정하다면 다음 리야프노프 방정식(Lyapunov equation),  \[ A^T P+PA=-N \tag{1} \]   은 모든 행렬 \(N\) 에 대해서 유일해를 갖고, 그 해는 다음과 같다.  \[ P= \int_0^\infty e^{A^T t} N e^{At} \ dt \tag{2} \]   증명은 다음과 같다. 먼저 식 (2)를 (1)에 대입한다.  \[ \begin{align}A^T P+PA &= \int_0^\infty A^T e^{A^T t} N e^{At} \ dt + \int_0^\infty e^{A^T t} N e^{At} .. 2024. 7. 25.
[Continuous-Time] 제어가능성과 PBH 테스트 다음과 같은 선형 시불변(LTI) 시스템이 있다.  \[ \dot{\mathbf{x}}=A\mathbf{x}+B\mathbf{u} \tag{1} \]   여기서 \(\mathbf{x}(t) \in \mathbb{R}^n\) 는 상태변수, \(\mathbf{u}(t) \in \mathbb{R}^p\) 는 제어입력이다. 이 시스템이 제어불가능하다면 제어불가능한 고유값(uncontrollable eigenvalue)이 존재한다 (https://pasus.tistory.com/337). 그렇다면 구체적으로 \(A\) 의 고유값 중 어떤 값이 제어불가능한 고유값일까. 이를 판별하기 위한 방법으로 PBH 테스트(Popov-Belevitch-Hautus test)가 있다.    PBH 테스트에 의하면, 어떤 복소수 .. 2024. 7. 24.
[Continuous-Time] 제어가능한 부분공간 다음과 같은 선형 시불변(LTI) 시스템이 있다.  \[ \begin{align} \dot{\mathbf{x}}=A \mathbf{x}+B \mathbf{u} \tag{1} \end{align} \]   여기서 \(\mathbf{x}(t) \in \mathbb{R}^n\) 는 상태변수, \(\mathbf{u}(t) \in \mathbb{R}^p\) 는 제어입력이다. 이 시스템의 제어가능한 부분공간(controllable subspace) \(\chi_c\) 는 제어가능성 행렬(controllability matrix)의 레인지(range, 치역)로 정의한다.  \[ \begin{align} \chi_c=range(Q_c) \tag{2} \end{align} \]  여기서 제어가능성 행렬 \(Q_c\) 는.. 2024. 7. 23.
[Continuous-Time] 제어가능성 (Controllability) 다음과 같은 선형 시불변(LTI) 시스템이 있다.  \[ \begin{align} \dot{\mathbf{x}} =A \mathbf{x}+B \mathbf{u} \tag{1} \end{align} \]   여기서 \( \mathbf{x}(t) \in \mathbb{R}^n \) 는 상태변수, \( \mathbf{u}(t) \in \mathbb{R}^p \) 는 제어입력이다. 만약 유한 시간 \( t_1 \lt \infty \) 안에 임의의 초기 상태 \(\mathbf{x}(0)=\mathbf{x}_0\) 에서 임의의 목표 상태(target state) \( \mathbf{x}(t_1 )=\mathbf{x}_1\) 으로 시스템의 상태를 움직이도록 하는 제어입력 \(\mathbf{u}(t), \ t \in .. 2024. 7. 16.
케일리-해밀톤 정리 (Cayley-Hamilton Theorem) 정방 행렬 또는 정사각형 행렬 (square matrix) \(A \in \mathbb{R}^{n \times n}\) 의 특성 다항식(characteristic polynomial)은 다음과 같이 정의된다.  \[ \begin{align} \Delta (\lambda)= \det (\lambda I-A)= \lambda^n+c_{n-1} \lambda^{n-1}+ \cdots +c_1 \lambda+c_0 \tag{1} \end{align} \]   참고로 특성 방정식 \(\Delta (\lambda)=0\) 의 해는 행렬 A의 고유값(eigenvalue)이다. 행렬 \(A\) 의 특성 다항식은 식 (1)과 계수가 똑같은 행렬 다항식으로서 다음과 같이 정의된다.  \[ \begin{align} \Del.. 2024. 7. 14.
두빈스 경로 (Dubins Path) - 2 RSL 경로는 시작점 \(\mathbf{p}_1\) 에서 오른쪽 원을 타고 우회전한 다음 직진하고 끝점 \(\mathbf{p}_2\) 에 도착할 때까지 왼쪽에 접한 원에서 다시 좌회전하는 것으로 구성된다. 아래 그림에는 원호에서 직선으로의 전환점인 풀아웃(pull-out) 지점 \(\mathbf{q}_1\) 과 직선에서 원호로 전환점인 휠오버(wheel-over) 지점 \(\mathbf{q}_2\) 와 이를 연결하는 직선을 각각 보여준다.    풀아웃 지점 \(\mathbf{q}_1\) 과 휠오버 지점 \(\mathbf{q}_2\) 는 다음과 같이 계산할 수 있다.  \[ \begin{align} \mathbf{q}_1 &= \mathbf{c}_1 + ( \mathbf{q}^\prime_1 - \math.. 2024. 5. 25.
두빈스 경로 (Dubins Path) - 1 평면상에서 시작점과 끝점을 연결하는 최단거리 경로를 구하려고 한다. 단 시작점과 끝점에서 각각 출발 방향과 도착 방향이 정해져 있고 경로가 가질 수 있는 최대 곡률(curvature)에 제한이 있는 경우다. 이 문제는 제약조건이 있는 최적화 문제로서 최단거리 경로는 최대 곡률을 갖는 원형 호와 직선을 결합하여 만들어진다는 것이 증명되었다. 이 최단거리 경로를 두빈스 경로 (Dubins path)라고 한다. 두빈스 경로는 기하학적인 방법으로 간단히 생성할 수 있기 때문에 이동 로봇, 드론, 무인 잠수정 등의 운동체 경로 계획 방법으로 널리 사용되고 있다. 두빈스 경로는 CSC 또는 CCC 경로 중 하나다. 여기서 C는 원호(circular arc), S는 직선(straight line)을 나타낸다. CCC.. 2024. 5. 25.
다중 슈팅방법 (Multiple Shooting Method) 예제 Ascher의 책 'Computer Methods for Ordinary Dierential Equations and Dierential-Algebraic Equations' 에 나와 있는 예제를 다중 슈팅방법(multiple shooting method)을 이용하여 풀어보고자 한다. 미분방정식은 다음과 같다.  \[ \begin{align} \dot{\mathbf{x}} = \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ -2 \lambda^3 & \lambda^2 & 2 \lambda \end{bmatrix} \mathbf{x}+ \begin{bmatrix} 0 \\ 0 \\ q(t) \end{bmatrix} \tag{1} \end{align} \]   여기서 \(\math.. 2024. 5. 14.
다중 슈팅방법 (Multiple Shooting Method) 다음과 같은 비선형 미분방정식이 있다.  \[ \begin{align} \dot{\mathbf{x}} (t) = \mathbf{f}(\mathbf{x}(t)) \tag{1} \end{align} \]   여기서 초기값 \(\mathbf{x}(t_0 )\) 는 일부만 주어지거나 또는 주어지지 않았다고 가정한다. 대신 최종 시간 \(t_f\) 에서 경계값 \(\mathbf{x}_f\) 가 주어졌다고 가정한다. 이와 같은 경계값 문제의 경우 초기값이 다 주어지지 않았으므로 시간 전파를 통해 수치적분을 수행할 수가 없다. 슈팅방법(shooting method)은 경계값 문제를 초기값 문제로 바꾸어 푼다 (https://pasus.tistory.com/276). 주어지지 않은 초기값을 적당히 추정한 다음에 수치적.. 2024. 5. 14.