Model Predictive Control Toolbox™는 선형 및 비선형 모델 예측 제어(MPC)를 활용하여 제어기를 설계 및 시뮬레이션할 수 있는 함수, 앱, Simulink® 블록을 제공합니다. 이 툴박스를 사용하면 플랜트 및 외란 모델, 한계, 제약 조건 및 가중치를 지정할 수 있습니다. 폐루프 시뮬레이션을 실행하여 제어기의 성능을 평가할 수 있습니다.
제어기 동작은 런타임 중의 가중치 및 제약 조건 변경으로 조정할 수 있습니다. 이 툴박스에서는 배포 가능한 최적화 솔버가 제공되며 사용자 지정 솔버도 사용할 수 있습니다. 비선형 플랜트를 제어하려면 적응, 이득 스케줄링, 및 비선형 MPC 제어기를 구현하면 됩니다. 샘플 레이트가 높은 응용 분야의 경우, 일반적인 제어기로부터 명시적 모델 예측 제어기를 생성하거나 근사해를 구현할 수 있습니다.
툴박스는 최적화 솔버 배포를 포함한 신속 프로토타이핑과 임베디드 시스템 구현을 위해 C 코드 및 IEC 61131-3 Structured Text 생성을 지원합니다.
시작하기:
MPC Designer 앱
내부 플랜트 모델을 정의하고 한계, 가중치, 제약 조건을 조정하여 MPC 제어기를 대화식으로 설계할 수 있습니다. 제어기의 성능은 시뮬레이션 시나리오로 검증할 수 있습니다. 여러 MPC 제어기의 응답을 비교할 수도 있습니다.
Simulink에서의 MPC 설계
툴박스에서 제공되는 MPC Controller 블록 및 기타 블록을 사용하여 Simulink에서 MPC 제어기를 모델링하고 시뮬레이션할 수 있습니다. Simulink Control Design™ 으로 Simulink 모델을 트림 및 선형화하여 MPC 제어기의 내부 선형 시불변 플랜트 모델을 계산하고 플랜트 입출력 공칭 값을 구할 수 있습니다.
MATLAB에서의 MPC 설계
명령줄 함수를 사용하여 MPC 제어기를 설계할 수 있습니다. 내부 플랜트 모델을 정의할 수 있습니다. 가중치, 제약 조건 및 기타 제어기 파라미터를 조정해 보십시오. 제어기의 성능은 폐루프 시스템 응답을 시뮬레이션하여 평가할 수 있습니다.
사전 구성 블록
Adaptive Cruise Control System, Lane Keeping Assist System, Path Following Control System 블록을 ADAS 응용의 시작점으로 삼아 필요에 따라 설계를 사용자 지정할 수 있습니다. 차량 내 배포를 위해 사전 구성된 블록에서 코드를 생성할 수 있습니다.
참조 응용 예제
참조 응용 예제를 활용하여 자율주행 시스템의 MPC 제어기 설계와 배포 작업의 워크플로를 살펴볼 수 있습니다. 또한 참조 응용 예제는 시스템 내 각각의 부분을 다양한 수준의 충실도로 모델링할 수 있다는 것을 보여줍니다.
선형 MPC
내부 플랜트 모델을 Control System Toolbox™로 생성된 LTI(선형 시불변) 시스템으로 지정하거나 Simulink Control Design으로 Simulink 모델을 선형화하여 선형 MPC 제어기를 설계할 수 있습니다. 또는 System Identification Toolbox™를 통해 측정된 입출력 데이터로부터 생성된 모델을 가져올 수도 있습니다.
적응 MPC
명령줄 함수와 Adaptive MPC Controller 블록을 사용하여 적응 MPC 제어기를 설계하고 시뮬레이션할 수 있습니다. 런타임에 플랜트 모델을 업데이트하고 이를 제어기의 입력값으로 사용할 수 있습니다. 적응 모델 예측 제어기의 상태 추정에 점근적 안정성이 보장된 내장 LTV(선형 시변) 칼만 필터를 사용할 수 있습니다.
이득 스케줄링 MPC
Multiple MPC Controllers 블록을 사용하여 다양한 동작 조건에서 비선형 플랜트를 제어할 수 있습니다. 각 동작점에 대해 MPC 제어기를 설계하고, 런타임에 여러 제어기 간에 전환할 수 있습니다.
제어기 파라미터
내부 플랜트 모델을 정의한 후에 샘플 시간, 예측 및 제어 한계, 스케일링 인자, 입출력 제약 조건, 가중치를 지정하여 MPC 제어기의 설계를 완성할 수 있습니다. 툴박스는 제약 조건 완화, 시변 제약 조건, 가중치도 지원합니다.
상태 추정
내장형 상태 추정기를 사용하여 측정된 출력값에서 제어기의 상태를 추정할 수 있습니다. 또는 사용자 지정 알고리즘을 상태 추정에 활용할 수도 있습니다.
설계 검토
발생 가능한 MPC 제어기의 안정성 문제와 강인성 문제를 내장된 진단 함수로 감지할 수 있습니다. 이런 진단 결과를 제어기 설계 중에 제어기 가중치 및 제약 조건 조정에 활용하여 런타임 오류를 방지할 수 있습니다.
런타임 파라미터 조정
MPC 제어기의 가중치와 제약 조건을 조정하여 재설계나 재구현 없이 런타임의 성능을 최적화할 수 있습니다. 런타임 제어기 조정은 MATLAB® 및 Simulink에서 다 수행할 수 있습니다.
런타임 성능 모니터링
최적화 상태 신호에 액세스하면 드물게 최적화가 수렴하지 않는 경우를 발견할 수 있습니다. 이 정보를 지침 삼아 백업 제어 전략을 세울 수 있습니다.
명시적 MPC
암시적 MPC 설계에서 명시적 MPC 제어기를 생성하여 더 빠르게 실행할 수 있습니다. 생성된 명시적 MPC 제어기를 단순화하여 메모리 사용량을 줄일 수 있습니다.
근사해 (준최적해)
근사해(준최적해)를 사용해 최악 상황에서의 실행 시간이 보장되는 MPC 제어기를 설계, 시뮬레이션, 배포할 수 있습니다.
최적 계획
비선형 비용 또는 제약 조건을 갖는 비선형 모델이 요구되는 최적 계획 응용 분야에 비선형 MPC 제어기를 사용할 수 있습니다.
피드백 제어
비선형 비용 및 제약 조건을 갖는 비선형 플랜트의 폐루프 제어를 시뮬레이션할 수 있습니다. 기본적으로 비선형 MPC 제어기는 Optimization Toolbox™를 사용하여 비선형 계획법 문제를 풉니다. 또한 사용자 지정 비선형 솔버를 지정할 수도 있습니다.
경제적 MPC
경제적 MPC 제어기를 설계하여 임의의 비선형 제약 조건하에서의 임의의 비용 함수에 대한 제어기를 최적화할 수 있습니다. 선형 또는 비선형 예측 모델, 사용자 지정 비선형 비용 함수, 사용자 지정 비선형 제약 조건을 사용할 수 있습니다.
MATLAB 및 Simulink를 사용한 코드 생성
Simulink에서 MPC 제어기를 설계하고 Simulink Coder™나 Simulink PLC Coder™로 C 코드 또는 IEC 61131-3 Structured Text를 각각 생성할 수 있습니다. MATLAB Coder™를 사용하여 MATLAB에서 C 코드를 생성하고 실시간 제어 용도로 배포할 수 있습니다. 또는 MATLAB Compiler™를 사용하여 MPC 제어기를 독립형 응용 프로그램으로 패키징하여 공유할 수도 있습니다.
내장 솔버
임베디드 프로세서에서의 효율적 구현을 위해 제공된 Active-Set 및 Interior-Point 2차 계획법(QP) 솔버를 통해 코드를 생성할 수 있습니다. 비선형 문제의 경우에는 시뮬레이션 및 코드 생성에 Optimization Toolbox의 순차적 2차 계획법(SQP) 솔버를 사용할 수 있습니다. 생성된 코드는 프로세서 개수의 제한 없이 배포할 수 있습니다.
사용자 지정 솔버
Embotech의 FORCES PRO QP 및 비선형 계획법(NLP) 솔버로 선형 및 비선형 MPC 제어기를 시뮬레이션하고 코드를 생성할 수 있습니다. 또는 사용자 지정 QP 및 NLP 솔버를 사용해 시뮬레이션하고 코드를 생성할 수도 있습니다.