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

17 次查看(过去 30 天)
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 个评论
Sam Chak
Sam Chak 2023-4-8
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.
jana nassereddine
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?

请先登录,再进行评论。

回答(1 个)

Sam Chak
Sam Chak 2023-4-10
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 个评论
kawsar
kawsar 2023-4-11
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:

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Linear Plant Specification 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by