0% found this document useful (0 votes)
76 views

Final Project

The document provides instructions for designing and testing various state feedback and output feedback controllers on linear and nonlinear inverted pendulum systems in Simulink. It includes 5 questions that involve: 1) designing state feedback and running on linear and nonlinear systems, 2) designing output feedback and running on linear and nonlinear systems, 3) adding integral control, 4) applying servomechanism to linear system with disturbance, and 5) applying regulation control with unit step input. For each controller design, the document provides initialization parameters and code to simulate and plot the results.

Uploaded by

Umair Zulfiqar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
76 views

Final Project

The document provides instructions for designing and testing various state feedback and output feedback controllers on linear and nonlinear inverted pendulum systems in Simulink. It includes 5 questions that involve: 1) designing state feedback and running on linear and nonlinear systems, 2) designing output feedback and running on linear and nonlinear systems, 3) adding integral control, 4) applying servomechanism to linear system with disturbance, and 5) applying regulation control with unit step input. For each controller design, the document provides initialization parameters and code to simulate and plot the results.

Uploaded by

Umair Zulfiqar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Question No.

1
Design the State Feedback Controller (for the linearized system) and RUN it for both linear and nonlinearized systems in Simulink.
Data Initialization:
m=0.05; k=0.001; g=9.81; a=0.05; Lo=0.01; yss=0.05;
m=1.5*m; % mass perturbation
uss=(a+yss)*sqrt(2*m*g/(a*Lo))
A=[0 1; 2*g/(a+yss) -k/m]
B=[0; -(1/(a+yss))*sqrt(2*Lo*a*g/m)]
C=[1 0]
D=[0]
eig(A)
p=[-10; -14];
K=-place(A,B,p)
x0=[0.05;0]

For Linear System


Output:
subplot(121)
plot(tout,yout(:,1))
title({'State feedback Controller';'applied to Linear model'})
ylabel('Output')
xlabel('Time')
subplot(122)
plot(tout,yout(:,2))
title({'State feedback Controller';'applied to Linear model'})
ylabel('Control')
xlabel('Time')

For Non-Linear System


Output
subplot(121)
plot(tout,yout(:,1))
title({'State feedback Controller';'applied to Non Linear model'})
ylabel('Output')
xlabel('Time')
subplot(122)
plot(tout,yout(:,2))
title({'State feedback Controller';'applied to Non Linear model'})
ylabel('Control')
xlabel('Time')

Question No. 2
Design the Output Feedback Controller (for the linearized system) and RUN it for both linear
non-linearized systems in Simulink.
Data Initialization:
m=0.05; k=0.001; g=9.81; a=0.05; Lo=0.01; yss=0.05;
m=1.5*m; % mass perturbation = 50%
uss=(a+yss)*sqrt(2*m*g/(a*Lo))
A=[0 1; 2*g/(a+yss) -k/m]
B=[0; -(1/(a+yss))*sqrt(2*Lo*a*g/m)]
C=[1 0]
D=[0]
eig(A)
p=[-10; -14];
K=-place(A,B,p)
x0=[0.05;0]
po=[-400 -500];
L=(place(A',C',po))'
Ao=A+B*K-L*C
Bo=L
Co=eye(2)
Do=zeros(2,1)

For Linear System

Output
subplot(121)
plot(tout,yout(:,1))
title({'Output feedback Controller';'applied to Linear model'})
ylabel('Output')
xlabel('Time')
subplot(122)
plot(tout,yout(:,2))
title({'Output feedback Controller';'applied to Linear model'})
ylabel('Control')
xlabel('Time')

For Non-Linear System


Output
subplot(121)
plot(tout,yout(:,1))
title('Output feedback Controller applied to Non-Linear model')
ylabel('Output')
xlabel('Time')
subplot(122)
plot(tout,yout(:,2))
title('Output feedback Controller applied to Non- Linear model')
ylabel('Control')
xlabel('Time')

Question No. 3
Apply the Integral Control to the State Output Feedback Controller and RUN it for both
linear and non-linearized system in Simulink.
Data Initialization:
m=0.05; k=0.001; g=9.81; a=0.05; Lo=0.01; yss=0.05;
m=1.5*m; % mass perturbation = 50%
uss=(a+yss)*sqrt(2*m*g/(a*Lo))
A=[0 1; 2*g/(a+yss) -k/m]
B=[0; -(1/(a+yss))*sqrt(2*Lo*a*g/m)]
C=[1 0]
D=[0]
eig(A)
x0=[0.05;0]
po=[-400 -500];
L=(place(A',C',po))'
A_hat=[A zeros(2,1); -C 0]
B_hat=[B;0]
p=[-14;-12;-10]
K=-place(A_hat,B_hat,p)
Ao=[A+B*K(1,1:2)-L*C zeros(2,1);zeros(1,3)]
Bo=[L;-1]
Co=K
Do=0

Integral Control of Output feedback Controller: Linear model


Output
subplot(121)
plot(tout,yout(:,1))
title({'Integral Control of';'Output feedback Controller';'Linear model'})
ylabel('Output')
xlabel('Time')
subplot(122)
plot(tout,yout(:,2))
title({'Integral Control of';'Output feedback Controller';'Linear model'})
ylabel('Control')
xlabel('Time')

Integral Control of Output feedback Controller: Non Linear model


Output
subplot(121)
plot(tout,yout(:,1))
title({'Integral Control of';'Output feedback Controller';'Non Linear
model'})
ylabel('Output')
xlabel('Time')
subplot(122)
plot(tout,yout(:,2))
title({'Integral Control of';'Output feedback Controller';'Non Linear
model'})
ylabel('Control')
xlabel('Time')

Integral Control of State feedback Controller: Linear model


Output
subplot(121)
plot(tout,yout(:,1))
title({'Integral Control of';'State feedback Controller';'applied to Linear
model'})
ylabel('Output')
xlabel('Time')
subplot(122)
plot(tout,yout(:,2))
title({'Integral Control of';'State feedback Controller';'applied to Linear
model'})
ylabel('Control')
xlabel('Time')

Integral Control of State feedback Controller: Non Linear model


Output
subplot(121)
plot(tout,yout(:,1))
title({'Integral Control of';'State feedback Controller';'applied to Non
Linear model'})
ylabel('Output')
xlabel('Time')
subplot(122)
plot(tout,yout(:,2))
title({'Integral Control of';'State feedback Controller';'applied to Non
Linear model'})
ylabel('Control')
xlabel('Time')

Question No.4
For the Linear system, apply the Servomechanism. (Disturbance Magnitude=10)
Data Initialization:
m=0.05; k=0.001; g=9.81; a=0.05; Lo=0.01; yss=0.05;
m=1.5*m; % mass perturbation = 50%
uss=(a+yss)*sqrt(2*m*g/(a*Lo))
A=[0 1; 2*g/(a+yss) -k/m]
B=[0; -(1/(a+yss))*sqrt(2*Lo*a*g/m)]
C=[1 0]
D=[0]
eig(A)
x0=[0.05;0]
po=[-400 -500];
L=(place(A',C',po))'
A_hat=[A zeros(2,1); -C 0]
B_hat=[B;0]
p=[-14;-12;-10]
K=-place(A_hat,B_hat,p)
Ao=A+B*K(1,1:2)-L*C
Bo=L
Co=eye(2)
Do=zeros(2,1)

REFERENCE :
[1] Linear State-Space Control Systems By Robert L. Williams II
Douglas A. Lawrence
[2] Modern Control Engineering By Katsuhiko Ogata
Output
subplot(121)
plot(tout,yout(:,1))
title({'Reference Input applied';'to Linear model'})
ylabel('Reference')
xlabel('Time')

subplot(122)
plot(tout,yout(:,2))
title({'Observer based Servomechanism';'applied to Linear model'})
ylabel('Output')
xlabel('Time')

Question No.5
Apply Regulation for Part1 and Part2. Input to be taken is a Unit Step.
Data Initialization
m=0.05; k=0.001; g=9.81; a=0.05; Lo=0.01; yss=0.05;
uss=(a+yss)*sqrt(2*m*g/(a*Lo))
m=1.5*m; % mass perturbation
A=[0 1; 2*g/(a+yss) -k/m]
B=[0; -(1/(a+yss))*sqrt(2*Lo*a*g/m)]
C=[1 0]
D=[0]
eig(A)
p=[-10; -14];
K=-place(A,B,p)
x0=[0.05;0]
po=[-600 -700];
L=(place(A',C',po))'
Ao=A+B*K-L*C
Bo=L
Co=eye(2)
Do=zeros(2,1)
N=-1/(C*inv(A+B*K)*B)

Regulation of State Feedback : Linear Model


Output:
subplot(121)
plot(tout,yout(:,2))
title('Regulation of Linear State Feedback')
ylabel('Reference')
xlabel('Time')
subplot(122)
plot(tout,yout(:,1))
title('Reference Tracking')
ylabel('Output')
xlabel('Time')

Regulation of State Feedback : Non Linear Model


Output:
subplot(121)
plot(tout,yout(:,2))
title('Regulation of Non Linear State Feedback')
ylabel('Reference')
xlabel('Time')
subplot(122)
plot(tout,yout(:,1))
title('Reference Tracking')
ylabel('Output')
xlabel('Time')

Regulation of Output Feedback : Linear Model


Output:
subplot(121)
plot(tout,yout(:,2))
title('Regulation of Linear Output Feedback')
ylabel('Reference')
xlabel('Time')
subplot(122)
plot(tout,yout(:,1))
title('Reference Tracking')
ylabel('Output')
xlabel('Time')

You might also like