MPC controller Direct feedthrough from manipulated variables to any output in Plant is not allowed.

조회 수: 56 (최근 30일)
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
微信截图_20190725055902.png
  댓글 수: 5
军
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
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
Nick Rozenauers 2022년 11월 1일
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
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 )

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by