How can I have 'measured states' in a MPC controller object in Simulink?

조회 수: 10 (최근 30일)
I'm trying to model a MPC controller that tries to hold one measured state of a plant constant. Therefore I am using this measureable state as my 'observed output'. To control the plant I have three 'manipulated variables'.
The model of the plant I want to control is based on a Simulink model that I linearized. I am using this linearized state space model as the basis for my MPC object. To design my MPC I am using the 'basic' MPC Controller block from the 'Model Predictive Control' toolbox.
Now my question is: How can I add measured states to the MPC Controller, additional to the one plant output I want to control. I actually can measure multiple of the states of my plant, so I want to provide them to the MPC instead of having them estimated by the Kalmann filter. One way seems to be to use a custom state estimation, is that correct? The deficit would be that I than have to build a state estimator for the unmeasured states.

채택된 답변

Emmanouil Tzorakoleftherakis
Emmanouil Tzorakoleftherakis 2023년 1월 25일
편집: Emmanouil Tzorakoleftherakis 2023년 1월 25일
Model Predictive Control Toolbox includes built-in Kalman filters for the linear MPC API and blocks. So you really don't need to do anything other than feed the measured outputs to the MPC block. The built-in Kalman filter will take care of the rest
  댓글 수: 3
Emmanouil Tzorakoleftherakis
Emmanouil Tzorakoleftherakis 2023년 1월 30일
What I am saying is basically this: if you can measure all the states in your system reliably, you don't need a filter. If you can only measure some of your states, you need to estimate the rest because MPC needs all the states for the internal prediction model. You cannot estimate the "missing states" without an estimator, and to do that, you need to pass the measured states to that filter. This is the notion of obserbability
Daniel
Daniel 2023년 1월 30일
Alright, that's the way I solved it, too. Thanks!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Refinement에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by