Inverting a model for feedforward control

20 views (last 30 days)
I have a process model (first order) for a physical process in the form:
Where are process gain and time constant respectively. = 2.60 and τ = 0.0963
I have already implemented a feedback control using PID control and now want to implement a feedback + feedforward control strategy such that any changes in the (set-point) input are taken care by feedforward controller so feedback sees minimal error. The feedforward controller in this case is inverse of plant dynamics i.e.
How to check if plant model is invertible and compute ?

Answers (2)

Mathieu NOE
Mathieu NOE on 2 Mar 2022
Moved: Joel Van Sickel on 27 Apr 2023
hello
your "feedforward" approach is basically a prefilter in series with your plant. Eeven though the plant may not be strictly invertible , you can do some pole - zero compensation between your filter and the plant. Add some aditionnal high frequency poles , as many as needed to make the filter realisable and stable : the nb of poles of the filter must be equal or greater than its number of zeroes (that are the poles of the plant);
  1 Comment
Rakshith Badarinath
Rakshith Badarinath on 2 Mar 2022
Moved: Joel Van Sickel on 27 Apr 2023
@Mathieu NOE Thank you for the suggestion. Is this what you mean?
Let be the filter transfer function such that (plant time constant). So the overall transfer function just becomes
Then I can choose to realize new time constant for the plant?
Can you direct me to any examples?

Sign in to comment.


Sam Chak
Sam Chak on 3 Mar 2022
Moved: Joel Van Sickel on 27 Apr 2023
Since your intention is to have as the final outcome, why not consider the Proportional–Integral (PI) controller?
If the process plant is given by , then designing the PI controller as , where
, and ,
yields the closed-loop transfer function, .

Categories

Find more on Electrical Block Libraries in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!