Model Predictive Control Toolbox

모델 예측 제어기를 설계하고 시뮬레이션할 수 있습니다.

Model Predictive Control Toolbox™는 선형 및 비선형 모델 예측 제어(MPC)를 활용하여 제어기를 설계 및 시뮬레이션할 수 있는 함수, 앱, Simulink® 블록을 제공합니다. 이 툴박스를 사용하면 플랜트 및 외란 모델, 한계, 제약 조건 및 가중치를 지정할 수 있습니다. 폐루프 시뮬레이션을 실행하여 제어기의 성능을 평가할 수 있습니다.

제어기 동작은 런타임 중의 가중치 및 제약 조건 변경으로 조정할 수 있습니다. 이 툴박스에서는 배포 가능한 최적화 솔버가 제공되며 사용자 지정 솔버도 사용할 수 있습니다. 비선형 플랜트를 제어하려면 적응, 이득 스케줄링, 및 비선형 MPC 제어기를 구현하면 됩니다. 샘플 레이트가 높은 응용 분야의 경우, 일반적인 제어기로부터 명시적 모델 예측 제어기를 생성하거나 근사해를 구현할 수 있습니다.

툴박스는 최적화 솔버 배포를 포함한 신속 프로토타이핑과 임베디드 시스템 구현을 위해 C 코드 및 IEC 61131-3 Structured Text 생성을 지원합니다.

시작하기:

모델 예측 제어기 설계하기

입출력 제약 조건에 따라 MIMO 시스템을 제어하는 MPC 제어기를 설계할 수 있습니다. 폐루프 시뮬레이션을 실행하여 제어기의 성능을 평가할 수 있습니다.

MPC Designer 앱

내부 플랜트 모델을 정의하고 한계, 가중치, 제약 조건을 조정하여 MPC 제어기를 대화식으로 설계할 수 있습니다. 제어기의 성능은 시뮬레이션 시나리오로 검증할 수 있습니다. 여러 MPC 제어기의 응답을 비교할 수도 있습니다.

Simulink에서의 MPC 설계

툴박스에서 제공되는 MPC Controller 블록 및 기타 블록을 사용하여 Simulink에서 MPC 제어기를 모델링하고 시뮬레이션할 수 있습니다. Simulink Control Design™ 으로 Simulink 모델을 트림 및 선형화하여 MPC 제어기의 내부 선형 시불변 플랜트 모델을 계산하고 플랜트 입출력 공칭 값을 구할 수 있습니다.

MATLAB에서의 MPC 설계

명령줄 함수를 사용하여 MPC 제어기를 설계할 수 있습니다. 내부 플랜트 모델을 정의할 수 있습니다. 가중치, 제약 조건 및 기타 제어기 파라미터를 조정해 보십시오. 제어기의 성능은 폐루프 시스템 응답을 시뮬레이션하여 평가할 수 있습니다.

명령줄에서의 MPC 제어기 설계.

자율주행 응용 사례

사전 구성된 Simulink 블록으로 ADAS 시스템 개발 속도를 가속화할 수 있습니다. 참조 예제를 활용하여 ADAS 제어기를 신속히 설계할 수 있습니다. Simulink 블록에서 코드를 생성하여 차량에 MPC 제어기를 배포할 수 있습니다.

사전 구성 블록

Adaptive Cruise Control System, Lane Keeping Assist System, Path Following Control System 블록을 ADAS 응용의 시작점으로 삼아 필요에 따라 설계를 사용자 지정할 수 있습니다. 차량 내 배포를 위해 사전 구성된 블록에서 코드를 생성할 수 있습니다.

사전 구성된 Simulink 블록을 사용한 적응 순항 제어 시스템 설계.

참조 응용 예제

참조 응용 예제를 활용하여 자율주행 시스템의 MPC 제어기 설계와 배포 작업의 워크플로를 살펴볼 수 있습니다. 또한 참조 응용 예제는 시스템 내 각각의 부분을 다양한 수준의 충실도로 모델링할 수 있다는 것을 보여줍니다.

선형 모델 예측 제어기

선형 동특성을 갖는 시스템의 MPC 제어기를 설계할 수 있습니다. 동작 조건에 따라 동특성이 변화하는 플랜트에 대한 적응, 이득 스케줄링 MPC 제어기를 설계할 수 있습니다.

선형 MPC

내부 플랜트 모델을 Control System Toolbox™로 생성된 LTI(선형 시불변) 시스템으로 지정하거나 Simulink Control Design으로 Simulink 모델을 선형화하여 선형 MPC 제어기를 설계할 수 있습니다. 또는 System Identification Toolbox™를 통해 측정된 입출력 데이터로부터 생성된 모델을 가져올 수도 있습니다.

선형 MPC 설계에 활용할 내부 플랜트 모델 지정하기.

적응 MPC

명령줄 함수와 Adaptive MPC Controller 블록을 사용하여 적응 MPC 제어기를 설계하고 시뮬레이션할 수 있습니다. 런타임에 플랜트 모델을 업데이트하고 이를 제어기의 입력값으로 사용할 수 있습니다. 적응 모델 예측 제어기의 상태 추정에 점근적 안정성이 보장된 내장 LTV(선형 시변) 칼만 필터를 사용할 수 있습니다.

이득 스케줄링 MPC

Multiple MPC Controllers 블록을 사용하여 다양한 동작 조건에서 비선형 플랜트를 제어할 수 있습니다. 각 동작점에 대해 MPC 제어기를 설계하고, 런타임에 여러 제어기 간에 전환할 수 있습니다.

Multiple MPC Controller 블록을 사용한 이득 스케줄링 MPC 제어기 설계.

MPC 파라미터 사양, 상태 추정 및 설계 검토

내부 플랜트 모델 정의, 제어기 파라미터 조정, 폐루프 시스템 응답 시뮬레이션을 통해 제어기 성능을 평가하여 제어기의 설계를 반복적으로 개선할 수 있습니다. 제어기를 검토하여 잠재적인 설계 문제를 발견할 수 있습니다.

제어기 파라미터

내부 플랜트 모델을 정의한 후에 샘플 시간, 예측 및 제어 한계, 스케일링 인자, 입출력 제약 조건, 가중치를 지정하여 MPC 제어기의 설계를 완성할 수 있습니다. 툴박스는 제약 조건 완화, 시변 제약 조건, 가중치도 지원합니다.

MPC Designer 앱에서 제어기 파라미터 지정.

상태 추정

내장형 상태 추정기를 사용하여 측정된 출력값에서 제어기의 상태를 추정할 수 있습니다. 또는 사용자 지정 알고리즘을 상태 추정에 활용할 수도 있습니다.

사용자 지정 상태 추정.

설계 검토

발생 가능한 MPC 제어기의 안정성 문제와 강인성 문제를 내장된 진단 함수로 감지할 수 있습니다. 이런 진단 결과를 제어기 설계 중에 제어기 가중치 및 제약 조건 조정에 활용하여 런타임 오류를 방지할 수 있습니다.

설계 검토 리포트의 권장 사항을 사용한 제어기 설계 개선.

런타임 파라미터 조정 및 성능 모니터링

런타임에 가중치와 제약 조건을 조정하여 제어기의 성능을 개선할 수 있습니다. 제어기의 런타임 성능을 분석할 수 있습니다.

런타임 파라미터 조정

MPC 제어기의 가중치와 제약 조건을 조정하여 재설계나 재구현 없이 런타임의 성능을 최적화할 수 있습니다. 런타임 제어기 조정은 MATLAB® 및 Simulink에서 다 수행할 수 있습니다.

런타임에 가중치 및 제약 조건 조정하기.

런타임 성능 모니터링

최적화 상태 신호에 액세스하면 드물게 최적화가 수렴하지 않는 경우를 발견할 수 있습니다. 이 정보를 지침 삼아 백업 제어 전략을 세울 수 있습니다.

실시간으로 제어기 고장 감지. 

모델 예측 제어기의 빠른 구현

계산 리소스가 한정된 응용 분야에서 MPC 제어기를 설계, 시뮬레이션, 배포할 수 있습니다.

명시적 MPC

암시적 MPC 설계에서 명시적 MPC 제어기를 생성하여 더 빠르게 실행할 수 있습니다. 생성된 명시적 MPC 제어기를 단순화하여 메모리 사용량을 줄일 수 있습니다.

이전에 설계된 암시적 제어기로부터 명시적 MPC 제어기 생성하기.

근사해 (준최적해)

근사해(준최적해)를 사용해 최악 상황에서의 실행 시간이 보장되는 MPC 제어기를 설계, 시뮬레이션, 배포할 수 있습니다.

최적해와 근사해(준최적해)의 실행 시간 비교.

비선형 모델 예측 제어기

비선형 예측 모델, 비용 함수 또는 제약 조건을 활용하여 플랜트를 제어할 비선형 MPC 제어기를 설계할 수 있습니다.

최적 계획

비선형 비용 또는 제약 조건을 갖는 비선형 모델이 요구되는 최적 계획 응용 분야에 비선형 MPC 제어기를 사용할 수 있습니다.

비선형 MPC를 사용한 비행 로봇의 궤적 최적화 및 제어.

피드백 제어

비선형 비용 및 제약 조건을 갖는 비선형 플랜트의 폐루프 제어를 시뮬레이션할 수 있습니다. 기본적으로 비선형 MPC 제어기는 Optimization Toolbox™를 사용하여 비선형 계획법 문제를 풉니다. 또한 사용자 지정 비선형 솔버를 지정할 수도 있습니다.

발열성 화학 반응기의 비선형 모델 예측 제어.

경제적 MPC

경제적 MPC 제어기를 설계하여 임의의 비선형 제약 조건하에서의 임의의 비용 함수에 대한 제어기를 최적화할 수 있습니다. 선형 또는 비선형 예측 모델, 사용자 지정 비선형 비용 함수, 사용자 지정 비선형 제약 조건을 사용할 수 있습니다.

산화 에틸렌 생산 공정의 경제적 MPC 제어.

코드 생성

Simulink 및 MATLAB에서 설계된 모델 예측 제어기용 코드를 생성하고 실시간 제어 응용 분야에 배포할 수 있습니다.

MATLAB 및 Simulink를 사용한 코드 생성

Simulink에서 MPC 제어기를 설계하고 Simulink Coder™나 Simulink PLC Coder™로 C 코드 또는 IEC 61131-3 Structured Text를 각각 생성할 수 있습니다. MATLAB Coder™를 사용하여 MATLAB에서 C 코드를 생성하고 실시간 제어 용도로 배포할 수 있습니다. 또는 MATLAB Compiler™를 사용하여 MPC 제어기를 독립형 응용 프로그램으로 패키징하여 공유할 수도 있습니다.

MPC Controller 블록으로부터 C 코드 생성하기.

내장 솔버

임베디드 프로세서에서의 효율적 구현을 위해 제공된 Active-Set 및 Interior-Point 2차 계획법(QP) 솔버를 통해 코드를 생성할 수 있습니다. 비선형 문제의 경우에는 시뮬레이션 및 코드 생성에 Optimization Toolbox의 순차적 2차 계획법(SQP) 솔버를 사용할 수 있습니다. 생성된 코드는 프로세서 개수의 제한 없이 배포할 수 있습니다.

내장 솔버.

사용자 지정 솔버

Embotech의 FORCES PRO QP 및 비선형 계획법(NLP) 솔버로 선형 및 비선형 MPC 제어기를 시뮬레이션하고 코드를 생성할 수 있습니다. 또는 사용자 지정 QP 및 NLP 솔버를 사용해 시뮬레이션하고 코드를 생성할 수도 있습니다.

시뮬레이션 및 코드 생성을 위한 사용자 지정 QP 솔버.