top of page

Designing a PID Controller in Simulink

Designing a PID Controller in Simulink


We will learn how to design a PID controller in MATLAB Simulink. We will create a plant using a given transfer function, implement a PID controller, and tune it to achieve the desired system response. Our plant is defined by the transfer function G(s) = (s + 3) / (s² + 2s).

Creating a Plant in Simulink

  1. Define the Transfer Function:

  • Go to Simulink and select the 'Transfer Function' block.

  • Set the numerator coefficients to [1 3] and the denominator coefficients to [1 2 0].

  1. Simulate the Plant Response:

  • Add a 'Step' input block and connect it to the transfer function block.

  • Observe the output by connecting a 'Scope' block to the output of the transfer function block.

  • Run the simulation and note the response. The output keeps increasing, indicating the need for a controller to maintain a steady output.

Implementing a Proportional Controller

  1. Setup the Controller:

  • Add a 'Sum' block for calculating the error (difference between reference and output).

  • Set the reference input to 1.

  • Use a 'Gain' block to represent the proportional gain (Kp).

  1. Simulate the Proportional Controller:

  • Set the gain (Kp) to 1 initially and observe the system response.

  • Increase Kp to 10 and note the changes in the response. The system settles more quickly with a higher gain, but may exhibit overshoot.

Implementing a PID Controller

  1. Add the PID Controller:

  • Replace the 'Gain' block with a 'PID Controller' block from Simulink's library.

  • Initially set the PID gains to default values (e.g., Kp=1, Ki=0, Kd=0).

  1. Tuning the Controller:

  • Run the simulation and observe the system response. Adjust the proportional gain (Kp) to see its effect.

  • Introduce integral action by setting Ki to 0.1 and simulate the response.

  • Fine-tune the integral gain to 0.01 if needed to reduce oscillations.

Combining Proportional and Integral Control

  1. Adjust Gains:

  • Set Kp to 10 and Ki to 0.01. Simulate and observe the response.

  • Adjust the gains iteratively to achieve the desired system performance.

Using the PID Tuner in MATLAB

  1. Open the PID Tuner:

  • Click on the 'Tune' button in the PID Controller block parameters.

  • Use the sliders in the PID Tuner interface to adjust the response time and transient behavior.

  • Update the PID gains based on the tuning results.

  1. Validate the Tuned Controller:

  • Simulate the system with the tuned PID controller.

  • Observe the improved response, ensuring the system output tracks the reference input accurately and settles quickly.


By following these steps, you can design and tune a PID controller in MATLAB Simulink for a given transfer function. The PID Tuner in MATLAB provides a convenient way to adjust the controller parameters and achieve the desired system performance. With proper tuning, the PID controller can ensure accurate and stable control of the system output.

13 views0 comments


bottom of page