본문 바로가기

분류 전체보기328

[Continuous-Time] 최적제어 문제 최적제어(optimal control)문제는 여러 가지 물리적인 제약조건을 만족하면서 어떤 성능지표(performance index) 또는 목적함수(objective function)를 최적화하도록 동적 시스템(dynamic system)의 제어변수(control variable)을 결정하는 문제이다. 제약조건(constraints)은 동적 시스템의 동역학과 함께 시스템 제어변수 및 상태변수의 경로 제약조건(path constraints), 상태변수의 초기값(initial value) 및 최종값(final value)에 관한 제약조건(constraint on the initial and final states)을 모두 포함한다. 목적함수는 설계자가 의도한대로 시스템을 움직이면서 의도한 성능을 발휘할 수 .. 2022. 12. 13.
[MPC] MPC를 위한 두가지 QP 모델 - 2 MPC(model predictive control) 문제를 최적화 문제인 QP(quadratic program)문제로 변환할 때 널리 사용되는 일반적인 방법( https://pasus.tistory.com/229 )은 모델이 조밀해져서 문제의 구조가 손실되는 단점이 있다. 고속 MPC(fast MPC)에서는 QP 문제로 변환할 시 적절한 변수 재정렬을 사용하여 희소(sparse)구조를 최대로 이용할 수 있도록 특별한 방법으로 변환하며, 최적화 기법을 적용할 시 warm start, fixed iteration, early termination등의 휴리스틱 기법을 이용하여 MPC 계산량을 대폭 줄이는 방법을 사용한다. fast MPC알고리즘은 스탠퍼드의 Boyd 교수와 그 제자의 논문인 'Fast Mod.. 2022. 12. 3.
[MPC] MPC를 위한 두가지 QP 모델 - 1 MPC는 다음과 같은 제약조건을 갖는 선형 시스템에서 \[ \begin{align} & \mathbf{x}_{t+1}=A \mathbf{x}_t+B \mathbf{u}_t \tag{1} \\ \\ & \mathbf{y}_t=C \mathbf{x}_t \\ \\ & \ \ \ \ \ \mathbf{u}_{min} \le \mathbf{u}_{t+i} \le \mathbf{u}_{max}, \ \ \ i=0, ... , N-1 \tag{2} \\ \\ & \ \ \ \ \ \mathbf{y}_{min} \le \mathbf{y}_{t+i} \le \mathbf{y}_{max}, \ \ \ i=1, ... , N \end{align} \] 매 시간 스텝마다 다음 목적함수가 일정 성능 예측구간 \([t, \ t.. 2022. 11. 30.
[MPC] 모델예측제어 개요 동적 최적화(dynamic optimization) 문제는 최적제어(optimal control) 문제라고도 하는데 매우 광범위한 영역에서 사용되고 있다. 예를 들면 인공위성을 궤도에 올리는 위한 가장 효율적인 연료 사용 전략이나 화학 공정 시설을 가동하는 가장 경제적인 방법을 찾는 문제 등을 들 수 있다. 이러한 동적 최적화 문제의 기본 가정은 동적 모델(dynamic model)이 주어진다는데 있다. 동적 모델의 예로서 다음과 같이 이산시간(discrete-time) 차분 방정식(difference equation)으로 표현된 비선형 시스템을 들 수 있다. \[ \mathbf{x}_{t+1}=\mathbf{f}(\mathbf{x}_t, \mathbf{u}_t) \tag{1} \] 여기서 \(\math.. 2022. 11. 28.
[DMD-3] DMDior 입출력이 포함된 확장 DMD인 DMDio (DMD with input/output) 알고리즘을 유도해 보았다 (https://pasus.tistory.com/225). 원래 시스템을 식별한 후에 축소 모델 (ROM, reduced order model)로 근사화 하는 순서였다. 이번에는 이와 약간 다른 접근 방법을 사용해 보고자 한다. 바로 축소 모델을 식별하는 방법이다. 이러한 방법을 DMDior (DMDio for reduced order model)라고 한다. 식별하고자 하는 미지의 이산시간 시스템이 식 (1)과 같이 표현된다고 하자. \[ \begin{align} \mathbf{x}_{k+1} &= A \mathbf{x}_k+B \mathbf{u}_k \tag{1} \\ \\ \mathbf{y}_.. 2022. 11. 8.
Frobenius Norm 최소화 문제 행렬 \(A \in \mathbb{R}^{n_1 \times n_2} \), \(B \in \mathbb{R}^{n_3 \times n_4}\), \(Y \in \mathbb{R}^{n_1 \times n_4}\) 가 주어졌을 때, 다음과 같은 프로베니우스 놈(Frobenius norm)을 최소화하는 행렬 \(X \in \mathbb{R}^{n_2 \times n_3}\) 를 구하는 문제를 프로베니우스 놈 최소화 문제라고 한다. \[ X_{opt}= \arg \min_{X} \lVert AXB-Y \rVert_F \tag{1} \] 참고로 어떤 행렬 \(M\) 의 프로베니우스 놈 \( \lVert M \rVert _F\) 는 다음과 같이 정의된다. \[ \lVert M \rVert _F= \sqrt{ t.. 2022. 11. 3.
[DMD-2] DMDio 표준 DMD의 한 가지 제한 사항은 시스템의 운동을 바꾸거나 측정할 수 있는 외부 입력과 출력이 포함된 모델을 생성할 수 없다는 것이다. 이제 표준 DMD 방법을 확장하여 입력과 출력이 포함된 시스템 모델을 식별해 보도록 한다. 이와 같이 입출력이 포함된 확장 DMD를 DMDio (DMD with input/output)이라고 한다. 모델 입력과 출력이 포함된 시스템의 동적 특성을 이해하는 것은 제어기 설계 및 센서 배치 문제의 기본 전제 사항이다. 식별하고자 하는 미지의 이산시간 시스템이 식 (1)과 같이 표현된다고 하자. \[ \begin{align} & \mathbf{x}_{k+1}=A \mathbf{x}_k+B \mathbf{u}_k \tag{1} \\ \\ & \mathbf{y}_k=C \mat.. 2022. 10. 31.
[DMD-1] 동적모드분해 (Dynamic Mode Decomposition) 전통적인 제어이론은 시스템의 수학적인 운동 모델을 요구한다. 운동 모델은 물리 법칙으로부터 해석적으로 유도할 수 있지만 입출력 데이터에 기반해서 수치적으로 얻을 수도 있다. 수치 데이터로부터 시스템의 운동 모델을 구하는 것을 시스템 식별(system identification) 또는 모델 식별이라고 한다. 시스템 식별 방법에는 ERA, OKID, QMC등 몇 가지가 있는데, 그 중 하나가 동적모드분해 (DMD, dynamic mode decomposition)이다. DMD는 수치 시뮬레이션 또는 스냅샷(snapshot) 측정 데이터를 사용하여 선형 시스템의 수학적 모델을 식별하고 동적 특성을 추출하는 기법이다. 식별하고자 하는 미지의 이산시간 시스템이 식 (1)과 같이 표현된다고 하자. 일단 자율 시스템.. 2022. 10. 26.
전기 항공기의 항속시간(Endurance)과 항속거리(Range) 배터리를 동력원으로 하는 전기 항공기(electric aircraft)의 경우에는 비행시 항공기의 무게 변화가 없는 것이 특징이다. 배터리의 에너지 용량을 \(B\) 라고 하면 전력(power) \(P_B\) 는 다음과 같다. \[ \frac{dB}{dt}= -P_B \tag{1} \] 전력이 동력 시스템에 전달되는 과정의 손실을 고려하여 동력 효율 \(\eta_e\) 를 이용하면 배터리의 출력 전력 \(P_e\) 는 다음과 같이 계산할 수 있다. 동력 효율은 모터 효율과 프로펠러 효율을 따로 구분하지 않은 전체 효율로 보면 된다. \[ P_e = \eta_e P_B \] 비행에 필요한 동력(power)을 전적으로 배터리가 제공한다면 \(P_e=P_{req}\) 가 되어야 한다. 여기서 \(P_{req}.. 2022. 10. 3.
프로펠러기의 항속시간(Endurance)과 항속거리(Range) 연료를 사용하는 항공기의 항속시간(endurance)이나 항속거리(range)를 계산할 때는 연료 소모에 따른 항공기의 무게 감소를 고려해야 한다. 시간당 또는 거리당 연료소모량을 알아야 하는데, 이와 관련하여 터보프롭이나 피스톤 엔진의 경우 항공기 엔진 제작사에 제공하는 비연료소모량(sfc, specific fuel consumption)을 이용하면 된다. 프로펠러 항공기에서 사용하는 비연료소모량(sfc) \(c_p\) 는 동력(power)당 단위시간 동안 소모된 연료량으로 정의하며 수식으로는 다음과 같다. \[ c_p= \frac{ \dot{W}_f}{P_p}= \frac{-\dot{W}}{P_p} \tag{1} \] 여기서 \(W\) 는 항공기 무게, \(P_p\) 는 엔진 동력, \(\dot{W}.. 2022. 10. 3.