Contents — find the section you need
모델 예측 제어(MPC)는 현재 명령이 향후 단계에서 어떤 결과를 가져올지 예측하고, 제약 조건을 만족하면서 추적 성능과 제어 노력의 균형을 최적으로 맞추는 명령 시퀀스를 선택합니다. 그런 다음 첫 번째 명령만 적용하고, 다시 측정하여 결과를 계산합니다. 이러한 예측 루프는 입력에 제한이 있거나, 상태 변수에 안전 한계가 있거나, 입력 변수들이 상호 작용하거나, 미래의 곡률과 지연이 중요한 경우에 유용합니다. MPC는 공정 설비부터 차량, 로봇 동작, 에너지 시스템에 이르기까지 다양한 분야에서 사용됩니다.
하지만 MPC가 PID 제어를 완전히 대체할 수는 없습니다. 상태 추정이 늦거나, 모델이 잘못되었거나, 실행 불가능한 문제이거나, 마감 시간을 놓친 경우, 수학적 제약 조건이 완벽해 보인다고 해서 예측 최적화기가 안전해지는 것은 아닙니다. 많은 안정적인 아키텍처는 경로, 에너지, 열 또는 다변수 제어 조정을 위해 MPC 아래에 빠른 PID 전류/속도 루프를 유지합니다. 실행 경계에 대해서는 ROS 2 입문을, 이동 로봇 컨트롤러에 입력되는 타이밍 및 위치 추정 가정에 대해서는 Visual SLAM 입문을 참조하십시오.
실질적인 결론
-
상태 x과 입력 u을 사용하여 예측 범위 N을 구성하고, 입력, 입력률, 상태 및 안전 제약 조건을 최적화 과정에 포함시키십시오. 제약 조건이 없는 명령을 나중에 잘라내는 방식은 지양해야 합니다.
-
배포 전에 솔버가 지연되거나, 수치적으로 오류가 발생하거나, 실행 불가능한 경우 어떻게 처리할지 명확히 정의하십시오. 마감 시간, 대체 기능 및 독립적인 종료 동작은 컨트롤러의 일부입니다.
-
관련 시간 척도를 예측할 수 있는 가장 작은 모델부터 시작하십시오. 더 큰 모델은 의사 결정 개선 없이 실행 시간, 식별 오류 및 유지 관리를 악화시킬 수 있습니다.
-
안전 여유, 추적, 에너지, 마모, 편안함, 계산 등 명확한 운영 우선순위에 따라 예측 범위와 가중치를 조정해야 합니다. 단순히 추적 가중치를 높이는 방식은 지양해야 합니다.
직관: 곡선 구간 진입 전 제동 결정
단순 피드백 제어기는 측면 오차를 감지한 후 차량을 회전시킬 수 있습니다. MPC는 전방 곡선, 속도, 조향 범위, 타이어 한계, 가속도, 장애물 회피 등을 종합적으로 고려할 수 있습니다. MPC는 여러 조향 및 가속 시퀀스를 평가하고, 실행 가능한 영역 내에 있는 시퀀스를 선택하여 첫 번째 동작만 실행한 후, 새로운 측정값이 들어오면 이전 예측을 폐기합니다. 따라서 MPC는 미래를 예측하는 것이 아니라, 미래에 대한 단기적인 가설을 반복적으로 검증하는 피드백 제어 방식입니다.
신호 흐름 및 예측 범위
다이어그램: Duskcoil은 측정된 것이 아니라 개념적인 것입니다. 예측된 궤적은 모델 기반 후보이며, 동작이 적용된 후 관측값을 통해 업데이트되어야 합니다.
최소 선형 MPC 공식
이산 선형 모델의 경우
x은 상태, u은 입력, w은 외란, y은 출력입니다. 참조용 예측 구간 r에 대한 일반적인 2차 비용 함수는 다음과 같습니다.
여기서 \Delta u_k=u_k-u_{k-1} 및 Q,R,S,P는 상태 추적, 명령 크기, 급격한 변화 및 최종 동작의 중요도를 나타냅니다. 이는 수학적 형태로 표현된 엔지니어링 우선순위입니다. 예를 들어, 측면 오차에만 페널티를 주면 승객, 타이어 또는 액추에이터에 허용할 수 없는 급격한 조향이 발생할 수 있습니다.
제약 조건이 없는 레귤레이터와의 본질적인 차이점은 명시적인 실행 가능 집합입니다.
경계는 조향, 전류, 온도, 관절 각도, 배터리 상태, 압력 또는 장애물 간격을 나타낼 수 있습니다. 제약 조건은 서로 충돌할 수 있습니다. 절대 위반할 수 없는 충돌 또는 하드웨어 제한은 엄격하게 유지해야 합니다. 의도적으로 완화 가능한 제약 조건에 대해서만 음수가 아닌 슬랙(\epsilon\ge0)을 사용하고, 이를 위반할 경우 페널티(예: \rho\lVert\epsilon\rVert^2)를 부여하십시오. 슬랙을 사용한 시점을 기록하십시오. 완화된 제약 조건은 선언된 타협안일 뿐, 위반이 무해하다는 증거는 아닙니다.
추정, 지연 및 모델 불일치
MPC는 x_k에서 예측하지만, 이 상태는 일반적으로 센서 융합 추정치입니다. 비주얼 SLAM을 사용하는 모바일 로봇의 경우, 위치 추정 지연, 위치 재조정 점프 및 일관성 없는 프레임으로 인해 모든 최적화의 초기 상태가 손상됩니다. Visual SLAM Primer를 참조하십시오. 이전 상태와 새로운 참조를 사용하여 완벽한 문제를 해결하면 물리적으로 지연된 명령이 생성됩니다.
불일치에는 마찰, 페이로드, 바람, 타이어 미끄러짐, 변화하는 열용량 및 모델링되지 않은 굴곡이 포함됩니다. 대응 방안에는 외란 상태 증강 또는 통합 동작, 온라인 파라미터 업데이트, 다중 모델, 강건/튜브 MPC 마진, 그리고 빠른 안정화 내부 루프가 포함됩니다. 불일치가 설계 범위를 벗어나는 경우, 이러한 방안들은 독립적인 정지 동작을 대체하지 않습니다.
튜닝 범위 및 가중치
샘플링 시간 T_s와 튜닝 범위 N를 선택할 때, NT_s가 관련 지연, 정지 거리, 주요 과도 현상 및 경로 곡률을 포함하도록 하되, 런타임과 먼 미래의 모델 오차가 지배적이지 않도록 합니다. 제어 범위를 짧게 설정하면 나중 입력값을 일정하게 유지하고 결정 변수를 줄일 수 있습니다.
튜닝은 다음 순서로 진행합니다. 단위와 엄격한 안전 경계를 고정합니다. 운영 작업에 맞는 추적 가중치 Q를 선택합니다. 에너지, 마모 및 평활도를 관리하기 위해 R 및 S를 높입니다. 마지막으로 잡음, 부하, 지연 시간 및 외란 조건에서 최악의 경우 솔버 시간과 실행 불가능성을 측정합니다. 작동 지점을 선택하기 전에 단기 예측 구간(N)과 장기 예측 구간(Q)을 모두 테스트하십시오. 시스템이 "빠르게 보일" 때까지 Q 값을 높이면 최적화 프로그램이 엄격한 제약 조건 경계에 머물러 제약 조건이 충족되더라도 여유 공간이 거의 남지 않을 수 있습니다.
| 관찰 | 가능한 원인 | 먼저 점검 | 일반적인 조치 |
|---|---|---|---|
| 곡선 후반부 | 예측 구간이 너무 짧음; 상태 지연 | 예측 경로와 측정 경로 차이, 타임스탬프 | 예측 구간 조정, 속도 계획, 지연 처리 |
| 불규칙한 명령 | 낮은 S 값; 잡음이 있는 추정치 | \Delta u 및 센서 추적 | 이동 페널티 증가; 추정기/필터 개선 |
| 빈번한 슬랙/제한 | 불일치; 여유 공간 부족 | 슬랙, 활성 제약 조건, 외란 | 여유 공간 추가, 외란 모델 적용, 더 완만한 기준값 적용 |
| 해 없음 | 제약 조건 충돌 | 솔버 상태 및 활성 세트 | 실행 불가능 정책 정의; 허용 범위만 완화 |
| 마감 시간 초과 | 문제 규모가 너무 크거나 변수가 많음 | 최악의 경우 해결 시간 | 모델/시간 범위 축소; 솔버 구성 |
PID 및 안전 기능과의 관계
MPC 루프는 속도, 자세 또는 궤적 기준값을 제공하기 위해 10~100Hz로 실행될 수 있으며, 모터 드라이버 또는 PID 루프는 더 높은 속도로 전류, 속도 또는 위치 정보를 처리합니다. MPC는 내부 루프가 실제로 제공할 수 있는 정보(포화, 지연, 타임아웃 및 추적 한계)를 알아야 합니다. 최적화기가 지연되거나 실행 불가능한 경우, 하위 루프는 제로 속도, 제어된 감속 또는 유지와 같은 정의된 안전 기준값이 필요합니다.
안전 기능은 최적화기와 독립적이어야 합니다. 비상 정지, 충돌 감지, 엄격한 이동 제한, 과전류/과열 보호, 속도 모니터링 및 통신 감시 기능 등이 이에 해당합니다. 해법 누락, 수치 오류, 오래된 상태, 잘못된 참조, 추정기 오류에 대한 대응 방안을 정의하십시오. 최적화 모델에서의 실행 가능성은 실제 안전성과 동일한 개념이 아닙니다.
현재 소프트웨어, 제품 및 연구 사례
MPC는 연속 공정 산업에서 차량, 로봇 공학, 에너지 관리 분야로 확장되었습니다. 실제 구현에는 비용 함수뿐 아니라 솔버, 모델 식별, 상태 추정, 모니터링 및 마감 시간 관리 기능이 포함됩니다. OSQP는 오픈 소스 볼록 2차 프로그래밍 솔버와 MPC 관련 자료를 제공합니다. MathWorks의 MPC 개요는 예측, 제약 조건 및 반복 최적화 구조를 설명합니다. 이들은 주요 구현 사례일 뿐, 특정 제품을 추천하는 것은 아닙니다.
로봇 공학 측면에서 ros2_control은 하드웨어 인터페이스, 컨트롤러 수명 주기, 비동기 업데이트 문제 및 컨트롤러 체이닝을 관리합니다. ROS 2에 MPC 노드를 넣는다고 해서 실시간 스케줄링, 상태/참조 타임스탬프 정렬 또는 안전한 독립 하위 루프가 자동으로 구축되는 것은 아닙니다. 현재 연구에는 비선형 MPC, 학습된 동역학, 분포적으로 강건한 MPC 및 공동 인식-계획 최적화가 포함되며, 실행 시간, 설명 가능성, 불확실성 및 안전성 보장은 여전히 실질적인 한계로 남아 있습니다.
구현 체크리스트
-
상태, 입력, 외란 및 참조에 대한 단위, 프레임, 업데이트 속도, 지연 시간, 최신성, 예측 범위(N ) 및 이동 가중치(S )를 정의합니다.
-
엄격한 물리적 제약 조건과 의도적으로 완화된 운영 제약 조건을 구분합니다.
-
최악의 경우 해결 시간, 타임아웃, 실행 불가능성 및 수치 오류 대체 기능을 테스트합니다.
-
예측값, 측정값, 입력 시퀀스, 활성 제약 조건, 슬랙, 솔버 상태를 하나의 클록에 기록합니다.
-
불일치, 외란, 슬립, 센서 지연/손실, 통신 손실을 시뮬레이션에 반영합니다.
-
MPC가 내부 루프 포화를 이해하고, MPC, ROS 2 또는 추정 실패 시 독립적인 정지 보호 기능이 작동하는지 확인합니다.
시뮬레이션에서 먼저 테스트해야 할 경계 사례
MPC는 시뮬레이션에서 매력적인 궤적을 생성할 수 있으므로, 일반적인 조건만으로는 위험한 가정을 숨길 수 있습니다. 급격한 기준값 변경, 마찰 및 페이로드 변경, 액추에이터 포화, 지연되거나 누락된 측정값, 의도적으로 짧은 솔버 마감 시간 등을 자동화합니다. 어떤 제약 조건이 활성화되었는지, 안전한 대체 단계로 진입하는 데 몇 사이클이 걸렸는지, 어떤 신호가 해당 결정을 정당화했는지 기록합니다. 낮은 속도로 하드웨어로 전환하고 충분한 마진을 두고 출력하며, 솔버 성공 플래그뿐만 아니라 잔차, 포화 시간, 슬랙, 정지 거리를 모니터링합니다.
최적화된 입력 시퀀스 전체가 실행되나요?
일반적으로 첫 번째 입력만 적용된 다음 새로운 관측값을 사용하여 문제를 다시 해결합니다. 이렇게 하면 예측과의 차이를 반영할 수 있습니다.
댓글
먼저 로그인해 주세요.
아직 데이터가 없습니다.