PID controller tuning for time-varying input

5 views (last 30 days)
AleF
AleF on 21 May 2024
Commented: Sam Chak on 22 May 2024
Hi all, I am trying to tune a PID controller using the Control System Tuner. In particular, the main aim of this controller would be to follow a time-varying signal (a ramp, for example) with zero steady-state error. I would like to know if, using the Control System Tuner Requirements, is possible to accomplish this task. If not, which are the alternative solutions? Thank you!
  1 Comment
Paul
Paul on 21 May 2024
Hi AleF,
@doc:controlSystemTuner should be applicable for a PID controller. You might also be interested in pidtune or pidTuner or systune.
But I don't think a PID controller can give you zero steady-state error to a ramp input, unless the plant contains a free integrator.

Sign in to comment.

Answers (1)

Sam Chak
Sam Chak on 22 May 2024
Without more context about the specific system you are trying to control, it is difficult for us to provide targeted recommendations.
When dealing with an unbounded reference input, such as a Ramp signal, the control scheme may need to be manually modified to achieve zero steady-state error. This is because some standard feedback controllers in Control System Tuner may not be able to adequately compensate for the continuous change in the reference input.
To demonstrate a potential approach, I have prepared a simple example in Simulink involving the tracking of a Ramp signal in a Double Integrator System (free integrator mentioned by @Paul). This example could serve as a starting point for your investigation and may provide insights that you can apply to your specific control problem.
  2 Comments
AleF
AleF on 22 May 2024
Dear @Sam Chak and @Paul,
first of all, thanks for your answers!
Selecting a PI architecture, if tuned using the PID Tuner App to test the Step response then manually adding some integral action, the closed-loop system can successfully follow a ramp with unit slope (as in the example of @Sam Chak).
In your opinion, could this process be automated (using the Control System Tuner/pidTune/systune)? In other words, referring to the Tuning Goals, does exist (or can be artificially created) something like "Tracking of ramp command" (instead of the Step one)?
Thank you!
Sam Chak
Sam Chak on 22 May 2024
I appreciate you providing more context about your use case. While I typically prefer to apply direct formulas for homework problems, I am aware of the 'TuningGoal.StepTracking()' command in MATLAB, but unsure if it can be useful for addressing unbounded reference inputs.
In the case of a Ramp signal as the reference input, where the input grows continuously over time, the control system design may require special consideration to ensure zero steady-state error. With a clearer understanding of the context, we can probably better assist you in addressing the concern regarding the unbounded Ramp input signal and its implications on the control scheme.
Do you wish the real-world physical system's output to grow continuously unbounded over time as well?

Sign in to comment.

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!