모델예측제어 활용을 위한 실시간 최적화 QP Solver 알고리즘 연구
1. 개요
1) 계획 수립 및 자료조사
2) 산업 MPC 적용 현황, 공개 QP Solver 조사
3) SVD, NNLS 기반의 QP Solver 알고리즘 개발
4) 시뮬링크 라이브러리 블락 형태의 QP Solver 개발
5) Embedded MCU 용 QP Solver 개발
6) 환경 구축 및 테스트
7) 공개 QP Solver와 성능 비교
8) 3)~7) 반복 -> 개선안 연구
9) 추진팀으로 기술 이전
10) 보고서, 사용설명서 작성 및 추가 연구주제 도출
2. 평가 방법
1) 정량적 목표
해의 정확성 -> 매트랩 QP Solver 함수인 quadprog와 결과 비교
풀이 시간 -> quadprog 및 공개된 타 QP Solver와 비교
2) 정성적 목표
Solver의 시뮬링크 블락 제공 -> Simulation 시 블락이 잘 동작하는지 평가 => 동작여부 및 해의 정확성
Solver의 임베디드 MCU 용 라이브러리 제공 -> QP를 정확히 풀이하는지 평가 => 동작여부 및 해의 적확성
3. 계획한 결과물
1) Simulink library block 형태로 QP Solver를 제작하는 방법과 사용하는 방법
2) Embedded MCU 용의 QP Solver의 구현과 사용하는 방법
3) 개발된 Solver를 이용한 Simulation과 공개된 타 QP Solver들과의 성능 비교
- S/W
1) C-MEX (Matlab Executable) 형태로 개발한 QP Solver
2) Simulink Model: 개발된 Simulink Block을 테스트
3) Embedded MCU 용 QP Solver
4) 개발된 QP Solver를 이용한 MPC 예제
4. 자동차에서 MPC 적용 사례
=> 해당하는 기술이 뭔지 간략하게 정리하자.
4-1. MPC 활용 사례
1) Active Front Steering (Ford)
2) Autonomous Racing (ETH)
=> Prediction, Constraint Handling 등을 통해 기존 제어 성능을 뛰어넘는 제어성능을 달성
-> 현재와 이전의 데이터를 취합하여 미래를 예측하고, 가장 첫번째 미래 예측 입력을 다음 입력으로 사용.
-> 모델과 현재까지의 정보를 사용하여 미래를 예측함으로써 좀 더 안정적인 성능을 기대할 수 있다.
=> 여기 좀 더 정확하게 미래 예측을 함으로써 발생할 수 있는 장점에 대해 서술하자.
3) Motion control for quadruped robots (MIT)
5. QP (Quadratic Programming)
- 예측제어 알고리즘 구현의 핵심
- P > 0 -> Convex optimization, unique solution
=> 유일해를 가질 수 있다.
- 최적해를 구하는 알고리즘: Active-set method, Interior-point method 등
5-1. Interior Point Method
- Strictly feasible region에서 시작해 해를 찾는다.
-> Strictly feasible initial point가 필요하다. (바로 거기서 시작되는게 아니라, 시작점이 있어야 하네... (어떻게?))
- 계산 복잡도: 변수의 다항 함수
- Parameter의 수가 많을 결우 Active Set Method 보다 우수
=> 이게 중요!!! 왜??
5-2. Active Set Method
- initial feasible solution 필요
-> Phase 1 과정에서 LP를 풀어 구할 수 있다.
- 최적해는 constraint가 active 한 지점에서 주로 결정된다. (Active의 의미!)
-> LP의 Simplex Method 처럼 Boundary를 순회하면서 해를 찾음.
- 계산 복잡도: 제약조건 또는 변수의 계수에 대한 지수 함수
- Parameter의 수가 작을 경우 효율적
'기타(임시)' 카테고리의 다른 글
저장 (0) | 2020.07.08 |
---|---|
현대자동차 (0) | 2020.05.22 |
[자료구조 C 언어] 부록 - 4: 네트워크 - AOV, AOE, EST, LST, Topological Sort, Critical Path (0) | 2020.05.14 |
BFS_DFS 임시 (0) | 2020.05.13 |
코드 저장 (0) | 2020.04.21 |