본문 바로가기

유도항법제어/비행제어26

연속시간 상태공간 방정식의 이산화 (Discretization) 보통 제어기는 디지털 방식으로 구현되고 있다. 이 방식에서는 제어기의 출력도 디지털 신호이기 때문에 일정한 시간 간격에서만 사용할 수 있다. 즉 이산시간(discrete-time) 단계에서만 새로운 제어입력 값을 사용할 수 있다. 하지만 제어 대상 시스템이 연속시간(continuous-time) 시스템이라면 연속적인 입력이 필요하기 때문에 간헐적으로 계산되는 제어 입력을 사용할 수는 없다. 이 때 일반적으로 사용하는 방법은 다음 샘플링 시간까지 제어입력 값을 일정하게 유지시키는 것이다. 이를 0차홀드(ZOH, zero-order hold) 방식이라고 한다. 물론 더 복잡한 유형의 홀드 연산도 가능하지만, ZOH가 가장 널리 사용된다. 연속시간 (continuous-time) 선형 시불변 (LTI, lin.. 2024. 2. 12.
근궤적법 (Root locus method)에서 K→∞ 일 때의 근 두 개의 다항식 \(N(s)\) 와 \(D(s)\) 가 주어졌을 때, 근궤적법(root locus method)은 \(K\) 가 \(0\) 부터 \(\infty\) 까지 변할 때 다음 다항식의 근(root)을 복소평면 위에 스케치하는 방법이다. \[ 1+ K \frac{N(s)}{D(s)} = 0 \tag{1} \] 근궤적법은 다음과 같은 가정하에 수행된다. (1) \(N(s)\) 와 \(D(s)\) 의 계수는 모두 실수(real number)이고 최고차항의 계수는 \(1\)이다. (2) \(N(s)\) 와 \(D(s)\) 의 근은 알고 있다. (3) \(N(s)\) 와 \(D(s)\) 는 공통 근이 없다. (4) \(N(s)\) 의 차수(order)는 \(D(s)\) 의 차수보다 작거나 같다. 여기서 .. 2023. 11. 3.
상태공간 방정식과 전달함수 모든 선형 시불변 (LTI, linear time-invariant) 시스템은 다음과 같이 상태공간 방정식(state-space equation)으로 표현할 수 있다. \[ \begin{align} \dot{\mathbf{x}}(t) &=A \mathbf{x}(t)+B\mathbf{u}(t) \tag{1} \\ \\ \mathbf{y}(t) &=C \mathbf{x}(t)+D \mathbf{u}(t), \ \ \ t \ge 0 \end{align} \] 여기서 \(\mathbf{x}(t) \in \mathbb{R}^n\), \(\mathbf{u}(t) \in \mathbb{R}^p\), \( \mathbf{y}(t) \in \mathbb{R}^q\) 이고 \(A, B, C, D\) 는 상수 행렬이다. 이.. 2023. 9. 22.
상태천이행렬 (State Transition Matrix) 과 Floquet 정리 다음과 같이 선형 시불변 (LTI, linear time-invariant) 시스템이 있다. \[ \dot{\mathbf{x}}(t)=A \mathbf{x}(t) \tag{1} \] 여기서 \(\mathbf{x}(t) \in \mathbb{R}^n\) 는 상태변수, \(A \in \mathbb{R}^{n \times n}\) 는 상수 행렬이다. 이 시스템의 해는 다음과 같다 (https://pasus.tistory.com/234). \[ \mathbf{x}(t)=e^{A(t-t_0)} \mathbf{x} (t_0) \tag{2} \] 이번에는 다음과 같은 선형 시변(LTV, linear time-varying) 시스템의 해를 구해보자. \[ \dot{\mathbf{x}}(t)=A(t) \mathbf{x}.. 2023. 6. 30.
쿼터니언 기반 자세제어 질량중심을 기준으로 강체의 회전 운동방정식은 다음과 같다 (https://pasus.tistory.com/191). \[ \vec{M}_G= \bar{I}_G \cdot \frac{ ^b d ^i \vec{\omega}^b}{dt} + {^i \vec{\omega}^b} \times (\bar{I}_G \cdot { ^i \vec{\omega}^b }) \tag{1} \] 여기서 \(\{i\}\) 는 관성좌표계, \(\{b\}\) 는 강체좌표계, \(^i \vec{\omega}^b\) 는 강체좌표계의 각속도 벡터, \(G\) 는 강체의 질량중심, \(\bar{I}_G\) 는 질량중심점에 대한 관성 다이아딕, \(\vec{M}_G\) 는 강체에 작용하는 질량 중심점에 대한 모멘트이다. 식 (1)을 강체좌표.. 2023. 3. 18.
[PX4] 멀티콥터 자세 명령 PX4의 위치 제어기에서는 원하는 궤적(desired trajectory) 정보를 이용하여 추력 벡터를 계산한다. 관성 좌표계 \(\{i\}\) 로 표현된 추력 벡터는 별도로 주어지는 방위각(azimuth angle) 명령 \(\psi_{cmd}\) 와 함께 자세 명령(attitude command) 계산 모듈로 보내져서 쿼터니언 \(\mathbf{q}_{cmd}\) 로 파라미터화된 자세 명령을 생성하게 된다. 쿼터니언 \(\mathbf{q}_{cmd}\) 를 계산하기 위해서는 먼저 관성 좌표계 \(\{i\}\) 에 대해서 동체 좌표계 \(\{b\}\) 가 취해야 할 목표 좌표계를 구해야 하는데 이 좌표계를 \(\{d\}\) 라고 하자. 그러면 \(\mathbf{q}_{cmd}=\mathbf{q}_d^i.. 2023. 2. 25.
[PX4] 멀티콥터 자세제어 알고리즘 - 3 PX4의 위치 제어기에서 추력 벡터를 계산한 후, 별도로 주어지는 방위각(azimuth angle) 명령 \(\psi_{cmd}\) 와 합쳐서 멀티콥터가 취해야 할 자세(attitude)를 결정한다. 이 자세는 쿼터니언 \(\mathbf{q}_{cmd}\) 로 파라미터화 되는데 이를 좌표계로 표시하면 다음 그림과 같다. 여기서 \(\vec{F}_{cmd}\) 는 위치 제어기에서 계산한 추력 벡터 명령, \(\{i\}\) 는 관성 좌표계, \(\{b\}\) 는 동체 좌표계, \(\{d\}\) 는 쿼터니언 \(\mathbf{q}_{cmd}\) 로 파라미터화된 좌표계이다. \(\mathbf{q}_{cmd}\) 는 관성 좌표계에 대한 좌표계 \(\{d\}\) 의 자세를 의미하므로 \(\mathbf{q}_{cmd.. 2023. 2. 24.
[PX4] 멀티콥터 자세제어 알고리즘 - 2 회전축 \(\hat{p}\) 를 중심으로 회전각 \(\beta\) 만큼 회전하거나, 회전축 \(-\hat{p}\) 를 중심으로 회전각 \(2\pi-\beta\) 만큼 회전하거나 물리적으로 같은 회전이다. 따라서 쿼터니언(quaternion)의 정의에 의하면 다음식이 성립한다. \[ \begin{align} \mathbf{q} &= \begin{bmatrix} \cos⁡ \left( \frac{\beta}{2} \right) \\ \mathbf{p} \sin \left( \frac{\beta}{2} \right) \end{bmatrix} = \begin{bmatrix} \cos⁡ \left( \frac{2\pi-\beta}{2} \right) \\ -\mathbf{p} \sin \left( \frac{2\.. 2023. 2. 23.
[PX4] 멀티콥터 자세제어 알고리즘 - 1 PX4의 멀티콥터(multicopter) 비행제어기는 자세/각속도 제어기인 내부루프와 위치 제어기인 외부루프로 구성되어 있다. 위치 제어기는 내부나 외부 임무 모듈로부터 멀티콥터의 목표 궤적(desired trajectory)을 받아서 추력의 크기와 자세 명령(attitude setpoint)을 생성하고, 자세/각속도 제어기는 이를 받아서 추력과 모멘트 명령을 생성하게 된다. 최종적으로 제어력 할당 모듈을 통해서 멀티콥터의 로터 회전속도를 제어한다. 자세 제어기는 각속도 명령을 생성해 내며 각속도 제어기는 이를 받아서 추력과 모멘트 명령을 생성한다. 자세 제어기는 \(250 Hz\), 각속도 제어기는 \(1 kHz\), 위치 제어기는 \(50 Hz\) 의 빠르기로 작동한다. 따라서 내부루프는 외부루프에 .. 2023. 2. 22.
[DI-2] 내부 동역학 (Internal Dynamics) 다음과 같은 \(\mathbf{x}(t) \in \mathbb{R}^n\), \(\mathbf{u}(t) \in \mathbb{R}^p\), \(\mathbf{y}(t) \in \mathbb{R}^p\) 인 정방형 선형 시스템에 대해서 \[ \begin{align} & \dot{\mathbf{x}} = A \mathbf{x}+B \mathbf{u} \tag{1} \\ \\ & \mathbf{y}=C \mathbf{x} \end{align} \] DI(Dynamic Inversion, 모델 역변환) 제어입력은 다음과 같이 계산되었다. \[ \mathbf{u}=(CB)^{-1} (\nu -CA \mathbf{x} ) \tag{2} \] 여기서 \(\nu\) 는 보조입력(auxiliary input)이다. 식.. 2023. 1. 20.