0% found this document useful (0 votes)
5 views6 pages

Control Tutorials for MATLAB and Simulink - Inverted Pendulum_ System Analysis

The document provides a tutorial on modeling and analyzing an inverted pendulum system using MATLAB, focusing on open-loop impulse and step responses. It outlines the system's transfer functions, design requirements, and demonstrates the instability of the system through simulations. The tutorial also suggests that control design is necessary to improve system response and offers various control methods for further exploration.

Uploaded by

2102146
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views6 pages

Control Tutorials for MATLAB and Simulink - Inverted Pendulum_ System Analysis

The document provides a tutorial on modeling and analyzing an inverted pendulum system using MATLAB, focusing on open-loop impulse and step responses. It outlines the system's transfer functions, design requirements, and demonstrates the instability of the system through simulations. The tutorial also suggests that control design is necessary to improve system response and offers various control methods for further exploration.

Uploaded by

2102146
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Tips Effects Search Control Tutorials

TIPS ABOUT BASICS HARDWARE INDEX NEXT ►

INTRODUCTION CRUISE CONTROL MOTOR SPEED



SYSTEM

MODELING Inverted Pendulum:


ANALYSIS System Analysis

Key MATLAB commands used in this tutorial are: tf


CONTROL
, ss , zpkdata , impulse , lsim
PID

ROOT LOCUS

Related
FREQUENCY
Tutorial
Links
STATE-SPACE
Intro to
DIGITAL
Sys
Analysis

SIMULINK Pendulum

Activity
MODELING
Time Resp
CONTROL
Activity

SIMSCAPE
Related
External
Links

Analysis in
MATLAB
Video

Time Resp

Video

Contents

Open-loop impulse response

Open-loop step response

From the main problem, we derived the open-loop transfer functions of the
inverted pendulum system as the following.
(1)

(2)

where

(3)

Recall that the above two transfer functions are valid only for small values of

the angle , which is the angular displacement of the pendulum from the
vertically upward position. Also, the absolute pendulum angle is equal to
+ .

For the original problem setup and the derivation of the above transfer
functions, please refer to the Inverted Pendulum: System Modeling page.

Considering the response of the pendulum to a 1-Nsec impulse applied to


the cart, the design requirements for the pendulum are:

Settling time for of less than 5 seconds

Pendulum angle never more than 0.05 radians from the vertical

Additionally, the requirements for the response of the system to a 0.2-meter

step command in cart position are:

Settling time for and of less than 5 seconds

Rise time for of less than 0.5 seconds

Pendulum angle never more than 20 degrees (0.35 radians) from the
vertical

Open-loop impulse response

We will begin by looking at the open-loop response of the inverted


pendulum system. Create a new m-file and type in the following commands
to create the system model (refer to the main problem for the details of

getting these commands).

M = 0.5;
m = 0.2;
b = 0.1;

I = 0.006;
g = 9.8;
l = 0.3;
q = (M+m)*(I+m*l^2)-(m*l)^2;
s = tf('s');

P_cart = (((I+m*l^2)/q)*s^2 - (m*g*l/q))/(s^4 + (b*(I + m*l^2))*s^

P_pend = (m*l*s/q)/(s^3 + (b*(I + m*l^2))*s^2/q - ((M + m)*m*g*l)*

sys_tf = [P_cart ; P_pend];

inputs = {'u'};
outputs = {'x'; 'phi'};

set(sys_tf,'InputName',inputs)
set(sys_tf,'OutputName',outputs)

We can now examine the open-loop impulse response of the system.


Specifically, we will examine how the system responds to an impulsive force

applied to the cart employing the MATLAB command impulse. Add the
following commands onto the end of the m-file and run it in the MATLAB

command window to get the associated plot shown below.

t=0:0.01:1;

impulse(sys_tf,t);
title('Open-Loop Impulse Response')

As you can see from the plot, the system response is entirely unsatisfactory.
In fact, it is not stable in open loop. Although the pendulum's position is
shown to increase past 100 radians (15 revolutions), the model is only valid
for small . You can also see that the cart's position moves infinitely far to
the right, though there is no requirement on cart position for an impulsive
force input.

The poles of a system can also tell us about its time response. Since our
system has two outputs and one input, it is described by two transfer
functions. In general, all transfer functions from each input to each output of

a multi-input, multi-output (MIMO) system will have the same poles (but
different zeros) unless there are pole-zero cancellations. We will specifically
examine the poles and zeros of the system using the MATLAB function
zpkdata. The parameter 'v' shown below returns the poles and zeros as
column vectors rather than as cell arrays.

The zeros and poles of the system where the pendulum position is the
output are found as shown below:

[zeros poles] = zpkdata(P_pend,'v')

zeros =
0

poles =
5.5651

-5.6041
-0.1428

Likewise, the zeros and poles of the system where the cart position is the
output are found as follows:

[zeros poles] = zpkdata(P_cart,'v')

zeros =
4.9497

-4.9497
poles =
0
5.5651

-5.6041
-0.1428

As predicted, the poles for both transfer functions are identical. The pole at
5.5651 indicates that the system is unstable since the pole has positive real

part. In other words, the pole is in the right half of the complex s-plane. This
agrees with what we observed above.
Open-loop step response

Since the system has a pole with positive real part its response to a step
input will also grow unbounded. We will verify this using the lsim command

which can be employed to simulate the response of LTI models to arbitrary


inputs. In this case, a 1-Newton step input will be used. Adding the following
code to your m-file and running it in the MATLAB command window will
generate the plot shown below.

t = 0:0.05:10;
u = ones(size(t));
[y,t] = lsim(sys_tf,u,t);
plot(t,y)
title('Open-Loop Step Response')

axis([0 3 0 50])
legend('x','phi')

You can also identify some important characteristics of the response using
the lsiminfo command as shown.

step_info = lsiminfo(y,t);
cart_info = step_info(1)
pend_info = step_info(2)

cart_info =

struct with fields:

SettlingTime: 9.9959
Min: 0
MinTime: 0
Max: 8.7918e+21
MaxTime: 10

pend_info =
struct with fields:

SettlingTime: 9.9959
Min: 0
MinTime: 0
Max: 1.0520e+23
MaxTime: 10

The above results confirm our expectation that the system's response to a

step input is unstable.

It is apparent from the analysis above that some sort of control will need to
be designed to improve the response of the system. Four example

controllers are included with these tutorials: PID, root locus, frequency
response, and state space. You may select a choice from the menu to the

left for further details.

Note: The solutions shown in the PID, root locus, and frequency response

examples may not yield a workable controller for the inverted pendulum
problem. As stated previously, when we treat the inverted pendulum as a

single-input, single-output system, we ignore the position of the cart, .

Where possible in these examples, we will show what happens to the cart's
position when a controller is implemented on the system.

Published with MATLAB® 9.2

All contents licensed under a Creative Commons Attribution-ShareAlike 4.0

International License.

You might also like