Model predictive control is like playing chess, at ,each time step, you choose the best strategy to win. In this process, you make prediction based on current situation. This article discuss about the prediction in MPC
Prediction with SS model
Basic concepts of prediction
Discrete models are one-step ahead prediction model, that is, given data at time k, we can determine data at k+1:
xk+1=Axk+Bukyk=Cxk+dk}⇒yk+1=Cxk+1+dk+1yk+1=CAxk+CBuk+dk+1Nomally we can assume that $dk=d{k+1}$.
It should be noticed that one step prediction can be used recursively to find an n-step ahead prediction as follows
xk+1=Axk+Bukxk+1=Axk+Bukxk+2=Axk+1+Buk+1xk+2=A[Axk+Buk]+Buk+1xk+3=Axk+2+Buk+2xk+3=A([Axk+Buk]+Buk+1)+Buk+2general step is
xk+n=Anxk+An−1Buk+An−2Buk+1+⋯+ABuk+n−2+Buk+n−1Notation: double subscript, the first determines the time of the prediction and second determines the sample at which the prediction was made. For example, xk+4|k means prediction at sample k+4 where prediction was made at sample k. Now we can rewrite our general step as
xk+n|k=Anxk+An−1Buk|k+An−2Buk+1k+⋯+ABuk+n−2|k+Buk+n−1|kSplitting predictions
We can saperate the predictions into known and unknown part
yk+n|k=CAnxk+dk+C(An−1Buk|k+An−2Buk+1|k+⋯+Buk+n−1|k)- known: $C A^{n} x{k}+d{k}$, based on current and past measurement
unknown: $C\left(A^{n-1} B u{k |k}+A^{n-2} B u{k+1 |k}+\cdots+B u_{k+n-1| k}\right)$, based on future input choices.
Our aim is to choose the unknown inputs to make sure that the overall prediction is satisfactory!!
Matrix form of ss prediction
Now we rewrite the prediction in a more compact way, let xk+1 be
[xk+1|kxk+2|k⋮xk+n|k]=xk+1where k+1 indicate the first value in the vector, the matrix form of ss prediction is
xk+1=[AxkA2xk⋮Anxk]+[Buk|kABuk|k+Buk+1|k⋮An−1Buk|k+⋯+ABuk+n−2|k+Buk+n−1|k]make seperation, we get
xk+1=[AA2⋮An]xk+[B0⋯0ABB⋯0⋮⋮⋱⋮An−1BAn−2B⋯B][uk|kuk+1|k⋮uk+n−1|k]the vector uk is the decision variables, replace the matrix with some notation, we get
xk+1=Pxxk+HxukSimilarly, we get the output predictions
yk+1=Pxk+Ldk+HukPrediction with TF model (Mainly focus on SISO systems)
Carima model
The most common tf model in MPC is carima model which includes the uncertainty with a form of
a(z)yk=b(z)uk+T(z)ζkΔGkΔ is a zero mean random variable, although T(z) could arise from a model identification, in practice it is treated as a design paramter.
Basic concepts of prediction
We consider the discrete model
a(z)yk=b(z)uk+dka(z)=1+a1z−1+⋯+anz−nb(z)=b1z−1+⋯+bmz−mthus
yk−1=b1uk+b2uk−1+⋯+bmuk−m+1+dk−a1yk−⋯−anyk−n+1Significance of Carima model
It incorporates a disturbance estimate and therefore can give unbiased predictions in steady-state, irrespective of some parameter uncertainty.
In practice, the incremental form is used for predictions:
a(z)Δyk=b(z)Δuk+T(z)ζk