Control system lab
Linear Control Systems
Experiment 3:
1 : Linear Time-invariant Systems and Representation
Objectives: This experiment has following two objectives:
1. Continued with the learning of Mathematical Modeling from previous
experiment, we now start focusing the linear systems. We will learn
commands in MATLAB that would be used to represent such systems in
terms of transfer function or pole-zero- gain representations.
2. We will also learn how to make preliminary analysis of such systems
using plots of poles and zeros locations as well as time response due to
impulse, step and arbitrary inputs.
List of Equipment/Software
Following equipment/software is required:
MATLAB
Category Soft-Experiment
Deliverables
A complete lab report including the following:
Summarized learning outcomes.
MATLAB scripts and their results should be reported properly.
Mass-Spring System Model
The spring force is assumed to be either linear or can be approximated by a
linear function Fs(x)= Kx, B is the friction coefficient, x(t) is the displacement
and Fa(t) is the applied force:
The differential equation for the above Mass-Spring system can be derived as
follows
Transfer Function:
Applying the Laplace transformation while assuming the initial conditions are
zeros, we get
(M S2 + B S+ K) * X(S)= Fa(S)
Then the transfer function representation of the system is given by
Linear Time-Invariant Systems in MATLAB:
Control System Toolbox in MATLAB offers extensive tools to manipulate and
analyze linear time-invariant (LTI) models. It supports both continuous- and
discrete-time systems. Systems can be single-input/single-output (SISO) or
multiple-input/multiple-output (MIMO). You can specify LTI models as:
Transfer functions (TF), for example,
Note: All LTI models are represented as a ratio of polynomial functions
Examples of Creating LTI Models Building LTI models with Control System
Toolbox is straightforward. The following sections show simple examples. Note
that all LTI models, i.e. TF, ZPK and SS are also MATLAB objects.
Example of Creating Transfer Function Models
You can create transfer function (TF) models by specifying numerator and
denominator coefficients. For example,
>>num = [1 0];
>>den = [1 2 1];
>>sys = tf(num,den)
Transfer function:
A useful trick is to create the Laplace variable, s. That way, you can specify
polynomials using s as the polynomial variable.
>>s=tf('s');
>>sys= s/(s^2 + 2*s + 1)
Transfer function:
This is identical to the previous transfer function.
Example of Creating Zero-Pole-Gain Models
To create zero-pole-gain (ZPK) models, you must specify each of the three
components in vector format. For example,
>>sys = zpk([0],[-1 -1],[1])
Zero/pole/gain:
produces the same transfer function built in the TF example, but the representation
is now ZPK. This example shows a more complicated ZPK model.
>>sys=zpk([1 0], [-1 -3 -.28],[.776])
Zero/pole/gain:
Plotting poles and zeros of a system:
pzmap
Compute pole-zero map of LTI models
pzmap(sys)
pzmap(sys1,sys2,...,sysN)
[p,z] = pzmap(sys)
Description:
pzmap(sys) plots the pole-zero map of the continuous- or discrete-time LTI model
sys. For SISO systems, pzmap plots the transfer function poles and zeros. The poles
are plotted as x's and the zeros are plotted as o's.
pzmap(sys1,sys2,...,sysN) plots the pole-zero map of several LTI models on a single
figure. The LTI models can have different numbers of inputs and outputs. When
invoked with left-hand arguments,
[p,z] = pzmap(sys) returns the system poles and zeros in the column vectors p and z.
No plot is drawn on the screen. You can use the functions sgrid or zgrid to plot lines
of constant damping ratio and natural frequency in the s- or z- plane.
Example
Plot the poles and zeros of the continuous-time system.
>>H = tf([2 5 1],[1 2 3]);
>>sgrid
>>pzmap(H)
2: Simulation of Linear systems to different inputs
impulse, step and lsim
You can simulate the LTI systems to inputs like impulse, step and other standard
inputs and see the plot of the response in the figure window. MATLAB command
‘impulse’ calculates the unit impulse response of the system, ‘step’ calculates the
unit step response of the system and ‘lsim’ simulates the (time) response of
continuous or discrete linear systems to arbitrary inputs. When invoked without
left-hand arguments, all three commands plots the response on the screen. For
example:
To obtain an impulse response
>> H = tf([2 5 1],[1 2 3]);
>>impulse(H)
To obtain a step response type
>>step(H)
Time-interval specification:
To contain the response of the system you can also specify the time interval to
simulate the system to. For example,
>> t = 0:0.01:10;
>> impulse(H,t)
Or
>> step(H,t)
Simulation to Arbitrary Inputs:
To simulates the (time) response of continuous or discrete linear systems to
arbitrary inputs use ‘lsim’. When invoked without left-hand arguments, ‘lsim’ plots
the response on the screen.
lsim(sys,u,t) produces a plot of the time response of the LTI model sys to the input
time history ‘t’,’u’. The vector ‘t’ specifies the time samples for the simulation and
consists of regularly spaced time samples.
T = 0:dt:Tfinal
The matrix u must have as many rows as time samples (length(t)) and as many
columns as system
inputs. Each row u(I, specifies the input value(s) at the time sample t(i).
Simulate and plot the response of the system
to a square wave with period of four seconds.
First generate the square wave with gensig. Sample every 0.1 second during 10
seconds:
>>[u,t] = gensig(‘square’,4,10,0.1);
Then simulate with lsim.
>> H = tf([2 5 1],[1 2 3])
Transfer function:
>> lsim(H,u,t)
Eng/ abdulsalam alhaboob