Simulation of a closed loop system with a Controller

  • Posted on: 15 July 2011
  • By: Anand
In the previous post http://matlabbyexamples.blogspot.com/2011/07/simulation-of-system-described-by-its.html, we have seen the response of the system was unbounded even for bounded input (a step signal). Here we will try to put a controller to stablize the output.
A feedback with controller
We will use a standard technique to stabilize the output known as feedback where output of the plant is fedback to the plant as an input. The Figure 1 illustrates an system and a derived system formed by connecting output to input through a controller. Controller is a small system which takes the difference between original input and the output and generates a controlled input which is fed to main system. This derived system is also known as closed loop system while the original is known as open loop system.
Fig 1 : Open and Closed Loop System
Building an Environment 
First we will make a controller which is just proportional controller with gain 10.
function v = controller1(e)
k=10;
v=k*e;
 Now build an modified environment which contains the closed loop model and its stimulus input. Let us take step signal as input for this example.
function dybydt = env2(t,y)
%Reference Input Signal
u=1*(t>0);
%Input to controller: Feedback from sys1
e=u-y;
%Controller
v=controller1(e);
%Plant
dybydt = sys1(t,y,v) ;

Simulating the system
The above build environment can be simulated using ode45. Create a blank script file and write the following in that.
%define timespan
tspan=[0 10];
%define initial value
y0=8;
[t y]= ode45(@env2,tspan,y0);

 The output is defined as y and can be plotted by

plot(t,y);
as in Fig 2.
Fig 2: Response of a Closed Loop System
 Now you can see, output is stabilized and bounded for step input. You can explore the effect of controller by changing the value of controller gain k and type of controller.