0
0
SimulinkHow-ToBeginner · 4 min read

How to Simulate Closed Loop System in Simulink Easily

To simulate a closed loop system in Simulink, create a model with a feedback loop connecting the output back to the input through a controller and plant blocks. Use blocks like Sum, Gain, and Scope to build and visualize the system, then run the simulation using the Run button.
📐

Syntax

In Simulink, a closed loop system is built by connecting blocks to form a feedback loop. The key blocks are:

  • Sum: Combines signals, often to subtract feedback from reference input.
  • Controller: Processes error signal (e.g., PID Controller block).
  • Plant: The system being controlled (e.g., Transfer Function block).
  • Feedback path: Connects output back to input.
  • Scope: Visualizes signals during simulation.

The basic connection syntax is:

Reference Input --> Sum (+) --> Controller --> Plant --> Output --> Feedback --> Sum (-)
plaintext
Reference Input --> Sum (+) --> Controller --> Plant --> Output --> Feedback --> Sum (-)
💻

Example

This example shows how to simulate a simple closed loop system with a proportional controller and a first-order plant.

Steps:

  • Use a Step block as reference input.
  • Use a Sum block to subtract feedback.
  • Use a Gain block as proportional controller.
  • Use a Transfer Function block as plant.
  • Connect output to Scope to see response.
matlab
open_system(new_system('closed_loop_example'));

add_block('simulink/Sources/Step','closed_loop_example/Step Input');
add_block('simulink/Math Operations/Sum','closed_loop_example/Sum');
add_block('simulink/Math Operations/Gain','closed_loop_example/Proportional Controller');
add_block('simulink/Continuous/Transfer Fcn','closed_loop_example/Plant');
add_block('simulink/Sinks/Scope','closed_loop_example/Scope');

% Configure Sum block to have '+-' inputs
set_param('closed_loop_example/Sum','Inputs','+-');

% Set Gain value
set_param('closed_loop_example/Proportional Controller','Gain','2');

% Set Transfer Function numerator and denominator
set_param('closed_loop_example/Plant','Numerator','[1]');
set_param('closed_loop_example/Plant','Denominator','[1 1]');

% Connect blocks
add_line('closed_loop_example','Step Input/1','Sum/1');
add_line('closed_loop_example','Sum/1','Proportional Controller/1');
add_line('closed_loop_example','Proportional Controller/1','Plant/1');
add_line('closed_loop_example','Plant/1','Scope/1');
add_line('closed_loop_example','Plant/1','Sum/2');

% Run simulation
sim('closed_loop_example');
Output
A Simulink model named 'closed_loop_example' opens and runs, showing the step response of the closed loop system on the Scope block.
⚠️

Common Pitfalls

Common mistakes when simulating closed loop systems in Simulink include:

  • Not setting the Sum block inputs correctly (should be '+-' for feedback subtraction).
  • Forgetting to connect the feedback path from output back to the Sum block.
  • Using incorrect parameters for the controller or plant blocks.
  • Not running the simulation after building the model.
  • Ignoring signal dimensions mismatch causing connection errors.

Always verify connections and block parameters before running.

matlab
%% Wrong Sum block inputs
set_param('closed_loop_example/Sum','Inputs','++'); % Incorrect, feedback not subtracted

%% Correct Sum block inputs
set_param('closed_loop_example/Sum','Inputs','+-'); % Correct for closed loop
📊

Quick Reference

Tips for simulating closed loop systems in Simulink:

  • Use Sum block with '+-' inputs for error calculation.
  • Choose appropriate controller block (e.g., PID Controller or Gain).
  • Model the plant accurately with Transfer Function or State-Space blocks.
  • Connect output back to Sum block for feedback.
  • Use Scope to visualize system response.
  • Run simulation and adjust parameters as needed.

Key Takeaways

Build a feedback loop by connecting output back to input through a Sum block with '+-' inputs.
Use controller and plant blocks to model system behavior inside the loop.
Visualize results with Scope block after running the simulation.
Check block parameters and connections carefully to avoid errors.
Run the simulation using the Run button to see system response.