
![]()
IMFC
(Pseudo State Feedback)
The Implicit Model Following Control belongs to the group of control laws that solve the general tracking problem using the LQR (Linear Quadratic Regulator) approach. The purpose of IMFC (and also of EMFC) is to find a closed loop control law that lets the plant (the current system) track the dynamics of a reference model.
The IMFC technique computes the optimal state feedback control law that minimizes the cost function
|
J = integral{ ( Y' - Y'm )T Q ( Y' - Y'm ) + UT R U }dt |
with
|
Plant |
Model |
|
X' = A X + B U Y = C X |
X'm = Am Xm + Bm Um Ym = Cm Xm = I Xm |
The vector Ym = Xm represents the reference command for the plant outputs. The cost function weighs, by means of the matrix Q, the tracking error between the output vectors of the two systems. It's important to remember that the model is not really present in the control loop but it appears, with its matrices, only inside the cost function J; therefore the vector Xm is not actually available and the controller has to be computed just in accordance with the plant states X.
In order that Y' ® Y'm = X'm and Y = Ym = Xm, the size of Xm (reference command for Y) must be equal to the size of Y and then the transfer matrix of the model has to be diagonal and made up of as many SISO first order systems as the number of plant outputs.

In the first window, the user can shape the step response of the channels of the model writing, in the relative edit fields, the values of the static gain and settling time (both parameters are the same for all the channels of the model) and, if they are valid, the NEXT button allows to open the subsequent window in which it's possible to visualize and modify the matrices Q and R (symmetric and respectively positive semi definite and positive definite).
If a matrix has size less or equal to 10x10, the relative button allows to visualize all its coefficients, and the user is able to modify any of them; instead if a matrix can't be displayed on the window, it's possible to fix only the value T such that mat_name = T*eye(size(mat_name)). The changes introduced become effective only through the function associated with the SAVE MATRIX button that, if the matrix is correct, save it modifying the string of the relative button in [mat_name].
When both the matrices have been saved, the button COMPUTE IMFC appears so the user can start the controller computation pressing it. The activation of the two buttons EVALUATION and SIMULATION notifies that the state feedback gain matrix Ksf has been correctly computed and remapped in the output feedback controller Kof.
![]()
![]()