Project - Position control of mass spring damper system
Question :
Obtain the transfer function of a mass spring damper system and use it in the model. Add a PID controller to adjust the force on mass so that its position follows a reference signal.
Take m = 3.6; %kg k = 400; %N/m c = 100; %Ns/m
The reference signal is shown in the following figure.

ANSWER :
- OBTAINING OF TRANSFER FUNCTION OF SPRING MASS DAMPER SYSTEM :
Second order differential equation for SPRING – MASS – DAMPER SYSTEM is given in following :
f(t) = mx* * + cx* + kx
m = mass in Kg
c = damping constant
k = spring constant
So we can write laplace transform of above equation as following :
F(s) = ms2X(s) + csX(s) + kX(s)
F(s) = X(s) [ ms2 + cs + k ]
So ,
X(s) = 1 = 1/m = K or Wn2
---------- -------------- --------------------------------- ---------------------------------
F(s) [ ms2 + cs + k ] s2 + c/m*s + k/m s2 + 2 zeta Wn s + Wn2
Because ,
k = 1/m
2*zeta*Wn = c/m
K = Wn2
Finally we get following Transfer funxtion :
X(s) = Wn2
-------- ------------------------------------------------------------
F(s) s2 + 2 * zeta * Wn * s + Wn2
Now we taken following parameters :
Wn = 2 * pi * f = 6.28 rad / s ( f = 1.0 Hz taken )
Zeta = 1.5 > 1 ( Over Damping Case taken )
So We get ,
X(s) = 39.44
-------- ---------------------------------------
F(s) s2 + 18.84*s + 39.44
ABOVE EQUATION IS OUR FINAL TRANSFER FUNCTION FOR SPRING MASS DAMPER SYSTEM
- FINDING A POLE PLACEMENT :
We can find poles by two methods as shown in following :
Method 1 : roots( [1 18.84 39.44] )
Or
Method 2 : p1 = - zeta * Wn + Wn*sqrt ( zeta2 – 1)
p2 = - zeta * Wn - Wn*sqrt ( zeta2 – 1)
After putting all parameters value in above two methods we get following matrix P
P = [ - 16.4411 ; - 2.3989 ]
- BY STATE SPACE REPRESENTATION WE GET FOLLOWING MATRICES :
A = [ 0 1 ; -k/m -c/m]
B = [0 ; 1/m]
C = [1 0]
D = [0]
IN QUESTION FOLLOWING PARAMETERS GIVEN :
m = 3.6 kg
k = 400 N/m
c = 100 Ns/m
- So , NOW WE CAN FIND OUR CONTROL GAINS FOR PID CONTROL AS FOLLOWING :
K = place ( A , B , P )
After type above commands in matlab work space , we get following control gains ,
K(1) = Kp = - 258.0218
K(2) = Kd = - 32.1760
Ki = 0 ( As tunnig requirement )
AFTER GETTING CONTOL GAINS , WE ARE READY FOR BUILD SIMULINK MODEL OF PID CONTROLLED SPRING MASS DAMPER SYSTEM.
BUT , BEFORE CREATING MODEL IN SIMULINK ,WE NEED TO MAKE SCRIPT IN MATLAB FOR OUR MODEL WHICH GIVEN IN FOLLOWING :
SCRIPT :
%% SPRING MASS DAMPER SYSTEM SCRIPT %%
close all
clear all
clc
% REQUIRED PARAMETERS
m = 3.6; % mass in Kg
k = 400; % spring constant in N/m
c = 100; % damping constant in Ns/m
Wn = 6.28; % radius ( fn = 1 Hz , so Wn = 2*pi*f )
zeta = 1.5; % over damped case taken ( zeta > 1 )
%% Finding pole placement %%
p1 = - zeta*Wn + Wn*sqrt(zeta^2 - 1);
p2 = - zeta*Wn - Wn*sqrt(zeta^2 - 1);
P = [p1;p2];
%% MATRICES A , B , C & D FROM STATE SPACE REPRESENTATION %%
A = [ 0 1 ; -k/m -c/m];
B = [0 ; 1/m];
C = [1 0];
D = [0];
%% FINDING CONTROL GAINS K ( Kp ,Kd , Ki ) %%
K = place(A,B,P);
K(1); % K(1) = Kp
K(2); % K(2) = Kd
Ki = 0; % Ki is taken according to tunning setting
%% OUTPUT IN COMMAND WINDOW %%
who
P
A
B
K
K(1)
K(2)
Ki
MODEL PHOTO HAS BEEN GIVEN IN FOLLOWING :

OUTPUT SCOPE ( DISPLACEMENT ) :

REFERENCE INPUT SIGNAL SCOPE :

IN QUESTION FOLLOWING PLOT OF REFERENCE INPUT Vs TIME GIVEN :

NOW FOLLOWING SCRIPT NEED TO MAKE FOR PLOTING OF OUR MODEL INPUT SIGNAL :
plot( out.time,out.input,'-b');
grid on;
xlabel('Time ( Second )');
ylabel('Ref Input Signal');
xlim([0 30]);
ylim([0 5] );
title('REFERENCE INPUT SIGNAL');
PLOT OF GIVEN REFERENCE INPUT SIGNAL FOR OUR SYSTEM :

Conclusion : So , We can see that our input reference signal is match with signal given in question
Note 1 : Here I take y axis limit from 0 to 5 & x axis limit from 0 to 30
Note 2 : Integrator control gain Ki = 0 taken
---------------------------------------- END -------------------------------------------------------
FOLLOWING FILES HAS BEEN ATTACHED WITH ANSWER :
SIMULINK MODEL FILE
MATLAB SCRIPT FILE FOR MODEL
MATLAB SCRIPT FILE FOR PLOTING
MATLAB PLOT PHOTO
ALL SCOPE PHOTOS
Thank you.