최적제어(optimal control)문제는 여러 가지 물리적인 제약조건을 만족하면서 어떤 성능지표(performance index) 또는 목적함수(objective function)를 최적화하도록 동적 시스템(dynamic system)의 제어변수(control variable)을 결정하는 문제이다.
제약조건(constraints)은 동적 시스템의 동역학과 함께 시스템 제어변수 및 상태변수의 경로 제약조건(path constraints), 상태변수의 초기값(initial value) 및 최종값(final value)에 관한 제약조건(constraint on the initial and final states)을 모두 포함한다. 목적함수는 설계자가 의도한대로 시스템을 움직이면서 의도한 성능을 발휘할 수 있도록, 상태변수와 제어변수에 관한 비용함수(cost function)로 주어지는 것이 일반적이다. 비용함수를 최소화하는 것이 목적함수를 최적화하는 것이다. 최적제어 문제를 수학식으로 표현하면 다음과 같다. 우선 시스템의 동역학은 다음과 같이 미분방정식으로 표현된다.
여기서
여기서
여기서
최적제어 문제는 동역학, 상태변수 제약조건, 경로 제약조건을 만족하면서 목적함수를 최소화시키는 제어변수
일반 최적제어 문제는 해석적으로 접근하기가 곤란하므로, 문제를 조금 단순화시켜 보도록 한다. 일반 최적제어 문제에서 경로 제약조건을 없애고, 초기상태 및 최종 상태변수 제약조건을 등식 방정식으로 바꾼다. 그러면 최적제어 문제는 다음과 같이 단순화된다. 물론 단순화됐다고 해서 문제를 해석적으로 쉽게 풀 수 있다는 것은 아니다.
식 (5)에 상태변수의 초기값과 최종값에 대한 함수가
최적제어 문제를 풀기 위하여 라그랑지 곱수(Lagrange multiplier)를 도입하여 동역학식과 제약조건을 목적함수에 포함시킨다. 라그랑지 곱수
해밀토니안(Hamiltonian) 함수를 다음과 같이 정의하면,
목적함수
먼저, 비제약 목적함수
위 식에서
여기서 변분(variation)

식 (10)을 (9)에 대입하면 다음과 같다.
정리하면 위 식은 다음과 같이 된다.
라그랑지(Lagrange) 이론에 의하면 비제약 목적함수
이 된다. 식(14)는 시스템의 동역학인 상태변수 미분방정식이고, 식(15)는 라그랑지 곱수의 미분방정식으로서 코스테이트(costate) 방정식이라고 한다. 식(16)은 정정조건(stationary condition)이라고 한다. 이 식으로부터 최적 제어변수를 계산할 수 있다.
초기 및 최종 상태변수 제약조건은 식 (13)의 다섯 번째 항으로부터 구할 수 있다.
초기시간과 최종시간에서 경계조건(boundary condition)은 식 (13)의 첫 번째에서 네 번째 항까지로 부터 구할 수 있다.
경계조건은 초기시간과 최종시간이 설정된(fixed) 값으로 주어지는지 아닌지, 그리고 초기 및 최종 상태변수가 설정된 값으로 주어지는지 아닌지에 따라 다양하게 적용할 수 있다. 만약 최종시간이 미리 설정된 값으로 주어진다면 위 식에서
해밀토니안(Hamiltonian)의 미분은 다음과 같이 된다.
식 (14), (15), (16)에 의하면 위 식은
이 된다. 만약 식 (5)에서
이라면 해밀토니안도 명시적으로 시간의 함수가 아니므로 식 (20)은 다음과 같이 된다.
따라서 해밀토니안을 최적 궤적
지금까지 목적함수가 최소가 되기 위한 필요조건을 구했는데, 목적함수가 최소가 되기 위해서는 목적함수의 이차(second-order) 증분이
이다. 만약 제어변수가 어떤 허용된 제어변수 집합에 속해있다는 제약조건이 있다면, 즉
여기서 위첨자
폰트리아진의 최소원리에 의하면, 최적 제어변수는 상태변수와 코스테이트의 최적값에 대해서 해밀토니안을 최소화시키는 제어변수 집합중의 한 원소가 된다. 폰트리아진의 최소원리는 다음과 같이 표현할 수도 있다.
여기서 위 식은
일반적으로 간단한 문제의 경우에도 최적제어 해는 계산하기가 매우 어려우며 오픈-루프 제어(open-loop control) 형태로 산출된다.
'유도항법제어 > 최적제어' 카테고리의 다른 글
[Continuous-Time] 최종상태제약 (Final-state-constrained) LQR (0) | 2023.04.08 |
---|---|
[Continuous-Time] 최적제어 예제 (0) | 2022.12.14 |
[MPC] MPC를 위한 두가지 QP 모델 - 2 (0) | 2022.12.03 |
[MPC] MPC를 위한 두가지 QP 모델 - 1 (0) | 2022.11.30 |
[MPC] 모델예측제어 개요 (0) | 2022.11.28 |
댓글