MPC controller Direct feedthrough from manipulated variables to any output in Plant is not allowed.
이전 댓글 표시
I'm trying to develop a MPC controller for the Stewart Platform. When I try to define MPC structure by linearization, it tells me this. What could be wrong with my model?
Stewat Platform plant input(6): forces to the 6 legs, output(9): 3xpositions, 3xangular rate, 3xtranslational acceleration

댓글 수: 5
Prateek Tiwari
2020년 4월 27일
Same issue with me.
mohamad Hatami
2020년 7월 20일
same problem here and theres no answer
Syed Adil Ahmed
2020년 8월 5일
Hi.
If you read the MPC documentation, you will find that the MPC Designer does not support this direct feedthrough and if you want to add such an output in the MPC Designer then add a unit delay onto the MV that makes this output variable and then the MPC Designer will add it to the C matrix of your SS.
军
2023년 2월 15일
Thank you for your answer, how to add a unit delay onto the MV? Can you give a example!I'm look forward to recieving your answer as soon as quickly.
Danish Iqbal
2023년 4월 3일
편집: Danish Iqbal
2023년 4월 3일
You have to add a block simpy unit step delay after the output of the controller and before the input of the plant.
답변 (2개)
Nick Rozenauers
2022년 11월 1일
0 개 추천
As per above --> The reason the error is occuring is because you do not have any delays between your input and outputs (unrealistic in reality).
If you are estimating your TF from I/O (greybox or blackbox modelling), Matlab will estimate the delays for you. Your plant design will work then:
iodelay = NaN;
estTF = tfest(iddataOBJ,pole,zero,iodelay);
댓글 수: 1
军
2023년 2월 15일
Thank you for your answer, how to add a unit delay onto the MV? Can you give a example!I'm look forward to recieving your answer as soon as quickly.
MUHAMMAD
2023년 12월 8일
Solution:
I had same problem and It is solve by adding time delay.
You can add time delay in between MV and plant. I did using matlab command like like
plant = tf([num],[den],'OutputDelay',1.5 )
I hope this answer helped you.
Example
%%Transfer Function By System identification
num = [-1.324 6.6e05 -6.914e09 5.128e13 -1.054e19]
den = [1 1.99e04 1.371e09 1.145e13 4.037e17]
plant = tf([num],[den],'OutputDelay',1.5 )
카테고리
도움말 센터 및 File Exchange에서 Controller Creation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!