How to add disturbances into the model predictive control as an input?

hello everyone,
so I have a Model Predictive Control, and I have a plant model with a state space representation (figure 1), and I also have a disturbance acting on the plant model and I want to add it as an input TO MPC, but the problem is I want also to add a matrice that quantifies the effect of disturbances on the states. So how can I do that without adding the disturbance as an input to the plant model, only as in input to MPC.

4 Comments

Does the Disturbance acting on the plant as shown below?
What does the MPC have to do with the Disturbance if the MPC cannot manipulate it?
Which input port of the MPC are you referring to? There are 3 ports, namely {mo, ref, md}. What does it imply to that port?
hey,
for the first and second question: "Both the disturbances are external inputs to the system that cannot be manipulated by the controller, However, if disturbances can be measured (or estimated) their influence on the output can be included in the dynamic model and therefore the controller can anticipate their effect on the output. This way, MPC can inherently include feedforward effect.'' this is what said by the article I am applying it from, so do you think it represents the figure you have sent?
and for your third question: I am referring to md.
so what do you think?
I'm thinking, if the disturbance is measurable such that it can be compensated by the feedforward technique later, then in theory, should it be true that the disturbance effect can be nullified when the MPC algorithm is run.
I'm wondering if the following is applicable to your case. Correct me if I'm wrong.
Let , where . Thus,
If the disturbance is perfectly compensated, then
.
If you don't want to add the disturbance as an input to the plant model, and the disturbance can be compensated by the feedforward loop, then the MPC should be able to take care of the disturbance-free plant.
hey sam,
I want the controller to anticipate the effect of the disturbances on the output. but i didn't really get your last 2 phrases, or the equation, why do you have 2 letter B? it should be different right?

Sign in to comment.

 Accepted Answer

The matrix expression is equivalent to
where is the input vector.
If you want to anticipate the measured disturbance (md), then you can add the disturbance as shown below:

1 Comment

that's great, thanks sam,
but the problem is now, I found a way to add the disturbances into the state space representation but I don't know how create a block for that, because it's giving me an error for it,
so I have created a matlab function with the code: for the same state representaion(above)
function [SOC,LOH] = statespace(PH2,Pgrid,d)
A = [1 1;1 1];
B = [0.0936 0.0936;-0.339 0];
C = [1 1;1 1];
D = 0;
K = [0.0936;0];
[SOC,LOH] = idss(A,B,C,D,K);
end
and the figure:
now i think the error is:

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!