UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD DE INGENIERÍA
CARRERA DE INGENIERÍA MECÁNICA Y ELECTROMECANICA
PROYECTO FINAL: ANALISIS Y ESTABILIZACIÓN DE
UN PÉNDULO INVERTIDO
CONTROLES AUTOMATICOS MEC-430
Docente: Ing. Rosas Rivera Luis Armando
Auxiliar: Univ. Andres Luna Salazar
Estudiantes: Univ. Pajsi Pajsi Oliver (MTR)
Univ. Balboa Apaza Luis Miguel (MTR)
Univ. Lima Caceres Alex Axel (MTR)
Univ. Sompero Mendoza David (MTR)
Univ. Gutierrez Colque Luis Alfredo (MTR)
Univ. Torrico Cajas Ariel Marcelo (MTR)
La Paz – Bolivia
12 de junio de 2025
1. MODELO MATEMÁTICO
El sistema consiste en un péndulo invertido montado en un carro motorizado. Este sistema
es un ejemplo común en libros de texto y publicaciones de investigación sobre sistemas
de control. Su popularidad se debe, en parte, a su inestabilidad sin control; es decir, el
péndulo simplemente se caerá si no se mueve el carro para equilibrarlo. Además, la
dinámica del sistema es no lineal. El objetivo del sistema de control es equilibrar el
péndulo invertido aplicando una fuerza al carro al que está sujeto. A continuación,
mostramos el esquema básico:
En este caso, consideraremos un problema bidimensional donde el péndulo está
restringido a moverse en el plano vertical que se muestra en la figura siguiente. Para este
sistema, la entrada de control es la fuerza” F” que mueve el carro horizontalmente y las
salidas son la posición angular del péndulo y la posición horizontal del carro “x”.
1.1. REQUISITOS DE DISEÑO Y PLANTEAMIENTO DEL
PROBLEMA
• Datos medibles del sistema
(M) masa del carro 0,5 kg
(m) masa del péndulo 0,2 kg
(B) coeficiente de fricción del carro 0,1 N/m/seg
(l) longitud hasta el centro de masa del péndulo 0,3 m
(I) momento de inercia de masa del péndulo 0,006 kg.m^2
Variables de Entrada y Salida
(F) fuerza aplicada al carro
(x) coordenada de posición del carro
( ) ángulo del péndulo desde la vertical
• Parámetros de diseño
Sobre impulso máximo 30%
Tiempo de estabilización para “x” y “ ” menos de 5 segundos
Tiempo de subida “x” inferior a 0,5 segundos
El ángulo del péndulo “ ” nunca debe ser mayor a 20 grados (0,35 radianes) desde la
vertical.
Error de estado estacionario de menos del 2% para “x” y “ ”
1.2. ANÁLISIS DE FUERZAS Y ECUACIONES DEL SISTEMA
A continuación, mostramos los diagramas de cuerpo libre de los dos elementos del
sistema de péndulo invertido.
Del carro:
Sumando las fuerzas en el diagrama de cuerpo libre del carro en dirección horizontal, se
obtiene la siguiente ecuación de movimiento.
Como el carro no se mueve en el eje Y no interesa su análisis.
Del péndulo:
Sumando las fuerzas en el diagrama de cuerpo libre del péndulo en dirección horizontal,
se obtiene la siguiente expresión para la fuerza de reacción N.
Si sustituyes esta ecuación en la primera ecuación, obtienes una de las dos ecuaciones que
rigen este sistema.
Para obtener la segunda ecuación de movimiento de este sistema, se suman las fuerzas
perpendiculares al péndulo. Resolver el sistema a lo largo de este eje simplifica
enormemente las matemáticas. Debería obtenerse la siguiente ecuación.
Para deshacerse de los términos P y N en la ecuación anterior, sume los momentos
alrededor del centroide del péndulo para obtener la siguiente ecuación.
Combinando estas dos últimas expresiones, se obtiene la segunda ecuación gobernante.
2. LINEALIZACIÓN
Dado que las técnicas de análisis y diseño de control que emplearemos en este sistema se
aplican únicamente a sistemas lineales, este conjunto de ecuaciones debe linealizarse.
Específicamente, linealizaremos las ecuaciones respecto a la posición de equilibrio
verticalmente ascendente, = , y asumiremos que el sistema se mantiene dentro de
una pequeña vecindad de este equilibrio. Esta suposición debería ser razonablemente
válida, ya que, bajo control, deseamos que el péndulo no se desvíe más de 20 grados de
la posición verticalmente ascendente. Sea
la desviación de la posición del péndulo
respecto al equilibrio, es decir, = + , Suponiendo nuevamente una pequeña
desviación respecto al equilibrio, podemos utilizar las siguientes aproximaciones de
ángulos pequeños de las funciones no lineales en las ecuaciones de nuestro sistema:
Finalmente se obtiene el modelo matemático del sistema:
Tras sustituir las aproximaciones anteriores en nuestras ecuaciones de control no lineales,
obtenemos las dos ecuaciones de movimiento linealizadas.
Modelo matematico
3. FUNCION DE TRANSFERENCIA
Para obtener las funciones de transferencia de las ecuaciones del sistema linealizadas,
primero debemos calcular la transformada de Laplace de las ecuaciones del sistema,
suponiendo condiciones iniciales cero. Las transformadas de Laplace resultantes se
muestran a continuación:
(𝐼 + 𝑚𝑙 2 )Φ(𝑠)𝑠 2 − 𝑚𝑔𝑙Φ(𝑠) = 𝑚𝑙𝑋(𝑠)𝑠 2 … (𝛼 )
(𝑀 + 𝑚)𝑋(𝑠)𝑠 2 + 𝑏𝑋 (𝑠)𝑠 − 𝑚𝑙Φ(𝑠)𝑠 2 = 𝑈(𝑠) … (𝛽)
Donde se F se ha cambiado por U.
Recuerde que una función de transferencia representa la relación entre una entrada y una
salida a la vez. Para hallar nuestra primera función de transferencia para la salida Φ(𝑠) y
una entrada de, u(s) necesitamos eliminar X(s) de las ecuaciones anteriores. Resuelva la
primera ecuación para X(s).
Factorizando el ángulo:
Φ(𝑠)[(𝐼 + 𝑚𝑙 2 )𝑠 2 − 𝑚𝑔𝑙 ] = 𝑚𝑙𝑋 (𝑠)𝑠 2
Despejando X(s):
1
𝑋 (𝑠 ) = [(𝐼 + 𝑚𝑙 2 )𝑠 2 − 𝑚𝑔𝑙 ]Φ(𝑠)
𝑚𝑙𝑠 2
Simplificando:
𝐼 + 𝑚𝑙 2 𝑔
𝑋 (𝑠 ) = [ − 2 ] Φ(𝑠)
𝑚𝑙 𝑠
Sustituyendo esta ecuación en (𝛽):
𝐼 + 𝑚𝑙 2 𝑔 2
𝐼 + 𝑚𝑙 2 𝑔
(𝑀 + 𝑚 ) [ − 2 ] Φ(𝑠)𝑠 + 𝑏 [ − 2 ] Φ(𝑠)𝑠 − 𝑚𝑙Φ(𝑠)𝑠 2 = 𝑈(𝑠)
𝑚𝑙 𝑠 𝑚𝑙 𝑠
Factorizamos el Angulo:
𝐼 + 𝑚𝑙 2 𝑔 2 𝐼 + 𝑚𝑙 2 𝑔
Φ(𝑠) {(𝑀 + 𝑚) [ − 2] 𝑠 + 𝑏 [ − 2 ] 𝑠 − 𝑚𝑙𝑠 2 } = 𝑈(𝑠)
𝑚𝑙 𝑠 𝑚𝑙 𝑠
Expandimos:
(𝑀 + 𝑚)(𝐼 + 𝑚𝑙 2 ) 𝑏(𝐼 + 𝑚𝑙 2 ) (𝑀 + 𝑚)𝑔 𝑏𝑔
Φ(𝑠) {[ − 𝑚𝑙] 𝑠 2 + 𝑠− − } = 𝑈 (𝑠 )
𝑚𝑙 𝑚𝑙 𝑚𝑙 𝑚𝑙𝑠
Multiplicamos por s:
(𝑀 + 𝑚)(𝐼 + 𝑚𝑙 2 ) 𝑏(𝐼 + 𝑚𝑙 2 ) 2 (𝑀 + 𝑚)𝑔 𝑏𝑔
Φ(𝑠) {[ − 𝑚𝑙] 𝑠 3 + 𝑠 − 𝑠 − } = 𝑈 (𝑠 )𝑠
𝑚𝑙 𝑚𝑙 𝑚𝑙 𝑚𝑙
Despejamos la función de transferencia:
Φ(𝑠) 1
=
𝑈 (𝑠 ) (𝑀 + 𝑚)(𝐼 + 𝑚𝑙 2 ) 2 ( )
3 + 𝑏 (𝐼 + 𝑚𝑙 ) 𝑠 2 − 𝑀 + 𝑚 𝑔 𝑠 − 𝑏𝑔 )
𝑠 ([ 𝑚𝑙 − 𝑚𝑙] 𝑠 𝑚𝑙 𝑚𝑙 𝑚𝑙
Multiplicamos por ml:
Φ(𝑠) 𝑚𝑙
=
𝑈(𝑠) [(𝑀 + 𝑚)(𝐼 + 𝑚𝑙 ) − (𝑚𝑙 ) ]𝑠 + 𝑏(𝐼 + 𝑚𝑙 2 )𝑠 3 − (𝑀 + 𝑚)𝑚𝑔𝑙𝑠 2 − 𝑏𝑚𝑔𝑙𝑠
2 2 4
Un pequeño cambio de variable:
𝑞 = (𝑀 + 𝑚)(𝐼 + 𝑚𝑙 2 ) − (𝑚𝑙 )2
Finalmente obtenemos:
𝚽(𝒔) 𝒎𝒍 𝒔𝟐
𝑷𝒑𝒆𝒏𝒅 (𝒔) = =
𝑼(𝒔) 𝒒𝒔𝟒 + 𝒃(𝑰 + 𝒎𝒍𝟐 )𝒔𝟑 − (𝑴 + 𝒎)𝒎𝒈𝒍 𝒔𝟐 − 𝒃𝒎𝒈𝒍 𝒔
Ahora calcularemos de igual manera para la variable de posición:
Despejando el ángulo:
mlX(s)s 2
Φ(s) =
(I + ml2 )s 2 − mgl
Reemplazando en (𝛽):
𝑚𝑙𝑋 (𝑠)𝑠 2
(𝑀 + 𝑚)𝑋(𝑠)𝑠 2 + 𝑏𝑋 (𝑠)𝑠 − 𝑚𝑙 ( ) 𝑠 2 = 𝑈 (𝑠 )
(𝐼 + 𝑚𝑙 2 )𝑠 2 − 𝑚𝑔𝑙
Factorizando:
(𝑚𝑙 )2 𝑠 4
𝑋(𝑠) [(𝑀 + 𝑚)𝑠 2 + 𝑏𝑠 − ] = 𝑈 (𝑠 )
(𝐼 + 𝑚𝑙 2 )𝑠 2 − 𝑚𝑔𝑙
Despejando la función de transferencia:
𝑋 (𝑠 ) 1
=
𝑈 (𝑠 ) ( (𝑚𝑙 )2 𝑠 4
𝑀 + 𝑚)𝑠 2 + 𝑏𝑠 − (
𝐼 + 𝑚𝑙 2 )𝑠 2 − 𝑚𝑔𝑙
Donde:
𝑞 = (𝑀 + 𝑚)(𝐼 + 𝑚𝑙 2 ) − (𝑚𝑙 )2
Operando y simplificando:
𝑋 (𝑠 ) (𝐼 + 𝑚𝑙 2 )𝑠 2 − 𝑚𝑔𝑙
𝑃𝑐𝑎𝑟𝑡 (𝑠) = = 4
𝑈(𝑠) 𝑞𝑠 + 𝑏(𝐼 + 𝑚𝑙 2 )𝑠 3 − (𝑀 + 𝑚)𝑚𝑔𝑙𝑠 2 − 𝑏𝑚𝑔𝑙𝑠
Finalmente:
𝑿(𝒔 ) (𝑰 + 𝒎𝒍𝟐 )𝒔𝟐 − 𝒎𝒈𝒍
𝑷𝒄𝒂𝒓𝒕 (𝒔) = =
𝑼(𝒔) 𝒒𝒔𝟒 + 𝒃(𝑰 + 𝒎𝒍𝟐 )𝒔𝟑 − (𝑴 + 𝒎)𝒎𝒈𝒍 𝒔𝟐 − 𝒃 𝒎𝒈𝒍 𝒔
3.1. FUNCION DE TRANSFERENCIA CON MATLAB
Podemos representar las funciones de transferencia derivadas anteriormente para el
sistema de péndulo invertido en MATLAB con los siguientes comandos. Tenga en cuenta
que puede asignar nombres a las salidas (y entradas) para diferenciar entre la posición del
carro y la del péndulo. Al ejecutar este código en la ventana de comandos, se obtiene el
resultado que se muestra a continuación.
% Parametros del sistema
1 M = 0.5;
2 m = 0.2;
3 b = 0.1;
4 I = 0.006;
5 g = 9.8;
6 l = 0.3;
7
8 % Denominador comun q
9 q = (M + m)*(I + m*l^2) - (m*l)^2;
10
11 % Variable simbolica de Laplace
12 s = tf('s');
13
14 % Funcion de transferencia del carrito
15 P_cart = (((I + m*l^2)/q)*s^2 - (m*g*l/q)) / ...
16 (s^4 + (b*(I + m*l^2))*s^3/q - ((M + m)*m*g*l)*s^2/q -
17 b*m*g*l*s/q);
18
19 % Funcion de transferencia del pendulo
20 P_pend = (m*l*s/q) / ...
21 (s^3 + (b*(I + m*l^2))*s^2/q - ((M + m)*m*g*l)*s/q -
22 b*m*g*l/q);
23
24 % Sistema MIMO
25 sys_tf = [P_cart ; P_pend];
26
27 % Entradas y salidas
28 entradas = {'u'};
29 salidas = {'x'; 'phi'};
30
31 % Asignar nombres a las entradas/salidas
32 sys_tf.InputName = entradas;
33 sys_tf.OutputName = salidas;
34
35 % Mostrar sistema
36 sistema_tf = sys_tf;
sistema_tf
Lo que nos dará como resultado:
3.2. ESPACIO DE ESTADOS
Las ecuaciones de movimiento linealizadas descritas anteriormente también pueden
representarse en forma de espacio de estados si se reorganizan en una serie de ecuaciones
diferenciales de primer orden. Dado que las ecuaciones son lineales, pueden expresarse
en la forma matricial estándar que se muestra a continuación.
0 1 0 0 0
𝑥̇ (𝐼 + 𝑚𝑙2 )𝑏 𝑚2 𝑔𝑙2 𝑥 𝐼 + 𝑚𝑙2
𝑥̈ − 0 0 𝑥̇
𝐼(𝑀 + 𝑚) + 𝑀𝑚𝑙2 𝐼(𝑀 + 𝑚) + 𝑀𝑚𝑙2 𝐼(𝑀 + 𝑚) + 𝑀𝑚𝑙2
[𝜙] = [𝜙] + 𝑢
0 0 0 1 0
ϕ̈ 𝑚𝑙𝑏 𝑚𝑔𝑙(𝑀 + 𝑚) ϕ̇ 𝑚𝑙
− 0 0
[ 𝐼(𝑀 + 𝑚) + 𝑀𝑚𝑙2 𝐼(𝑀 + 𝑚) + 𝑀𝑚𝑙2 ] [𝐼(𝑀 + 𝑚) + 𝑀𝑚𝑙2 ]
𝑥
1 0 0 0 𝑥̇ 0
𝑦=[ ][ ]+ [ ]𝑢
0 0 1 0 𝜙 0
ϕ̇
La C matriz tiene dos filas porque tanto la posición del carro como la del péndulo forman
parte del resultado. En concreto, la posición del carro es el primer elemento del
resultado Y y la desviación del péndulo respecto de su posición de equilibrio es el
segundo elemento de Y.
3.3. ESPACIO DE ESTADOS CON MATLAB
También podemos representar el sistema mediante ecuaciones de espacio de estados. Los
siguientes comandos adicionales de MATLAB crean un modelo de espacio de estados del
péndulo invertido y producen la salida que se muestra a continuación al ejecutarse en la
ventana de comandos de MATLAB. Cabe destacar que se pueden especificar los nombres
de las entradas, salidas y estados para facilitar la comprensión del modelo.
% Parametros del sistema
1
M = 0.5;
2
m = 0.2;
3
b = 0.1;
4
I = 0.006; % Corregido: 'Yo' reemplazado por 'I' porque abajo usas
5
'I'
6
g = 9.8;
7
l = 0.3;
8
9
% Denominador comun para las matrices A y B
10
p = I*(M + m) + M*m*l^2;
11
12
% Matriz A
13
A = [0, 1, 0, 0;
14
0, -(I + m*l^2)*b/p, (m^2)*g*l^2/p, 0;
15
0, 0, 0, 1;
16
0, -m*l*b/p, m*g*l*(M + m)/p, 0];
17
18
% Matriz B
19
B = [0;
20
(I + m*l^2)/p;
21
0;
22
m*l/p];
23
24
% Matriz C
25
C = [1 0 0 0;
26
0 0 1 0];
27
28
% Matriz D
29
D = [0;
30
0];
31
32
% Definicion de nombres de estados, entradas y salidas
33
estados = {'x', 'x_dot', 'phi', 'phi_dot'};
34
entradas = {'u'};
35
salidas = {'x'; 'phi'};
36
37
% Sistema en espacio de estados
38
sys_ss = ss(A, B, C, D, ...
39
'StateName', estados, ...
40
'InputName', entradas, ...
41
'OutputName', salidas);
42
43
% Mostrar resultado
44
sys_ss
Teniendo como resultado:
4. ANALISIS DE LA ESTABILIDAD MEDIANTE ROUTH-HURWTZ
m, I
l x
F
M
La función de transferencia de nuestro sistema es el siguiente:
ml
s
(s) q rad
Ppend ( s ) = = F
U (s) b( I + ml ) 2 2 ( M + m)mgl bmgl
s +
3
s − s−
q q q
Donde q = ( M + m)( I + ml 2 ) − ( ml ) 2
Recuerde que la función de transferencia anterior solo es valida para valores pequeños
del ángulo , que representa el desplazamiento angular del péndulo desde la posición
vertical hacia arriba, además el ángulo absoluto del péndulo es igual a + .
Para lo cual tenemos los siguientes datos
M = 0,5 Kg
m = 0, 2 Kg
b = 0,1
l = 0,3
I = 0,006
g = 9,8
Reemplazando los datos:
( s) 4,545s rad
Ppend ( s ) = = F
U (s) s + 0,033s − 31,182s − 4, 454
3 2
Donde para hallar los polos se debe factorizar el denominador:
Factorizando se tiene
( s) 4,545s rad
Ppend ( s ) = = F
U ( s) ( s + 0,1428)( s + 5,5651)( s − 5,5651)
Hallando los polos de nuestro sistema:
5.5651
−5.5651
−0.1428
Donde k = 4,545 es la ganancia del sistema
Como se tiene un polo positivo, esto indica que existe inestabilidad en el sistema, otra
forma de asegurar y corroborar esto sería por Routh
Siguiendo el criterio de Routh
s3 1 − 31,182
s2 0.033 − 4, 454
s1 103,78 0
s 0 − 4, 454
Como existe cambio de signo, es un sistema inestable
5. RESPUESTA AL IMPULSO EN UN BUCLE ABIERTO
Comenzamos analizando la respuesta en lazo abierto del sistema de péndulo invertido,
para lo cual usaremos Matlab para graficar las respuestas que nos da dicho sistema,
siguiendo el siguiente código.
Ahora podemos examinar la respuesta impulsiva en lazo abierto del sistema.
Específicamente, examinaremos como responde el sistema a una fuerza impulsiva
aplicada al carrito.
Nosotros solo analizaremos la entrada del ángulo propiamente dicho y como se puede
observar la respuesta del sistema es completamente insatisfactoria. De hecho, no es
estable en lazo abierto. por lo cual debemos hacer si o si un controlador PID para corregir
el sistema.
6. ANALISIS MEDIANTE EL LUGAR GEOMÉTRICO DE LAS
RAÍCES
Diseñaremos un controlador para el sistema de péndulo invertido utilizando el método de
lugar geométrico de las raíces. Para este procedimiento vamos a considerar un sistema
SISO, es decir una entras y una salida, es decir que vamos a controlar el ángulo del
péndulo sin embargo no será de interés la posición del carro.
Para ello consideramos nuestra función de transferencia:
𝑚𝑙
Φ(𝑠) 𝑞 𝑠 𝑟𝑎𝑑
𝑃𝑝𝑒𝑛𝑑 (𝑠) = = 2 [ ]
𝑈(𝑠) (
𝑏 𝐼 + 𝑚𝑙 ) 2 − (𝑀 + 𝑚)𝑚g 𝑠 − 𝑏𝑚𝑔𝑙 𝑁
𝑠3 + 𝑠
𝑞 𝑞 𝑞
Donde se cumple que:
𝑞 = (𝑀 + 𝑚)(𝐼 + 𝑚𝑙 2 ) − (𝑚𝑙)2
6.1. CONDICIONES PARA LA ESTABILIZACIÓN
Para ser más específicos, el controlador intentará mantener al péndulo verticalmente hacia
arriba cuando el carro este sujeto a un pulso de fuerza de 1N. Bajo estas condiciones
nuestro objetivo es:
• Conseguir un tiempo de estabilización de menos de 5 segundos
• El ángulo del péndulo no se mueva mas de 0.05 rad de la vertical
Consideramos nuestro diagrama de bloques:
Lo que es equivalente a:
Cuya funcion de transferencia se muestra a continuación:
Φ(𝑠) 𝑃pend (𝑠)
𝑇(𝑠) = =
𝐹(𝑠) 1 + 𝐶(𝑠)𝑃pend (𝑠)
Con ayuda de MatLab Conseguimos el lugar geométrico de las raíces al hacer variar la
ganancia K:
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_pend = (m*l*s/q)/(s^3 + (b*(I + m*l^2))*s^2/q - ((M + m)*m*g*l)*s/q - b*m*g*l/q);
rlocus(P_pend)
Se puede observar que una de las ramas, que representa ¨el camino¨ que sigue uno de los
polos a medida que variamos la ganancia, se encuentra en su totalidad en el semiplano
derecho, lo que hace que el sistema sea inestable sin importar el valor de ganancia que
asignemos.
6.2. REPOSICIÓN DE POLOS
Necesitamos añadir un polo en el origen, para cancelar el cero que se encuentra en el
origen.
C = 1/s;
rlocus(C*P_pend)
Ahora trabajaremos con los ceros y polos de nuestro sistema:
zeros = zero(C*P_pend)
poles = pole(C*P_pend)
Contamos con 4 polos y un cero. Es decir tendremos 3 asíntotas,
o 3 curvas que se van al infinito.
Sin embargo seguimos teniendo 2 ramas que pertenecen al
semilpano positivo derecho, por ende es necesario realizar
modificaciones al controlador.
Por teoría de lugar geométrico de las raíces, agregaremos un cero, para que sean
desviadas las ramas hacia el semiplano izquierdo, sin embargo, no es posible
realizarlo después de varios intentos:
• Cero en -4:
• Cero en -0.5:
• Cero en -10:
Inferimos entonces que, con un cero no es posible estabilizar el sistema.
Una posible solución ha intentar es añadir dos ceros en vez de uno, debido a que por
la regla de: “Las ramas del lugar de las raíces empiezan en los polos en lazo abierto
y terminan en los ceros ” (Ogata), esto debido a que cada una de las ramas del
semiplano derecho pueden ser direccionadas a dos ceros seleccionados en el
semiplano izquierdo. Intentemos primeramente con -3 y -4:
C=(s+3)*(s+4)/(s);
rlocus(P_pend*C);
Examinar el lugar de las raíces mostrado nos permite determinar si se pueden cumplir los
requisitos establecidos. En particular, como se desea que el tiempo de establecimiento del
sistema sea menor a 5 segundos, las partes reales de los polos dominantes en lazo cerrado
deben ser menores que aproximadamente -4/5 = -0.8. Es decir, los polos dominantes
deben ubicarse en el plano complejo s a la izquierda de la línea vertical en s = -0.8. Al
observar el lugar de las raíces, se puede ver que esto es posible.
Además, dado que se quiere que el péndulo no se desvíe más de 0.05 radianes de la
vertical, también se debe asegurar que el sistema tenga un buen nivel de amortiguamiento.
Para lograr esto, se deben seleccionar polos dominantes que estén cerca del eje real, ya
que esto aumenta el amortiguamiento del sistema (lo que implica un ángulo 𝛽 pequeño).
Entonces 𝑘 ≈ 20:
Veamos como responde nuestro controlador a una entras pulso:
C=(s+3)*(s+4)/(s);
K = 20;
T = feedback(P_pend,K*C);
step(T);
stepinfo(T)
Controlador:
20 ∗ (𝑠 + 3)(𝑠 + 4) 240
𝐶 (𝑠 ) = = 140 + + 20𝑠
𝑠 𝑠
Es decir:
• RiseTime = 0: No hay una subida gradual, la señal responde de forma
instantánea.
• SettlingTime ≈ 1.85 s: El sistema se estabiliza alrededor de ese tiempo, que
es menos de 5 segundos
• Peak ≈ 0.0056: Máximo valor alcanzado por la salida, que es menos de 0.05
[rad]
• PeakTime ≈ 0.29 s: Ese pico ocurre alrededor de los 287 ms.
Concluimos nuestro controlador cumple con las especificaciones propuestas.
7. ANÁLISIS MEDIANTE LOS DIAGRAMAS DE BODE
En esta sección se analiza el comportamiento en frecuencia del sistema del péndulo
invertido linealizado, utilizando diagramas de Bode. Esta herramienta permite visualizar
cómo responde un sistema ante entradas sinusoidales de distintas frecuencias, lo cual es
fundamental para el diseño de compensadores y controladores. El sistema se estudia en
varias etapas que se presentaran a continuación.
7.1. MODELO DEL SISTEMA
El sistema físico modelado es un péndulo invertido montado sobre un carrito. Mediante
la aplicación de leyes físicas (segunda ley de Newton y análisis de torque), se obtiene un
modelo linealizado, cuya función de transferencia tiene como salida el ángulo del péndulo
y como entrada la fuerza aplicada al carrito.
La función de transferencia resultante tiene la forma:
donde q es una constante determinada por los parámetros físicos del sistema, y los
coeficientes 𝑎𝑖 representan términos agrupados de masa, gravedad, longitud y fricción.
7.2. DIAGRAMA DE BODE SIN COMPENSACIÓN
En la Figura 1 se muestra el diagrama de Bode del sistema original. Este diagrama
exhibe el comportamiento de magnitud y fase en función de la frecuencia. Se observa:
• Una ganancia negativa en todo el espectro.
• Una caída de pendiente de -60 dB/década debido al polo triple.
• Una fase que desciende hasta casi -270°.
Esto refleja que el sistema no tiene buen margen de ganancia ni de fase, y por tanto no
es apto para control sin compensación.
Código en MATLAB para el Diagrama de Bode sin compensación
Figura 1 – Bode sin compensación
7.3. ADICIÓN DE UN INTEGRADOR
Para mejorar la respuesta en régimen permanente y cancelar el cero en el origen, se añade
1
un integrador al sistema, equivalente a multiplicar la planta por 𝑠 . Esto genera un nuevo
1
sistema 𝐿1 (𝑠) = 𝑃𝑝𝑒𝑛𝑑 (𝑠) ⋅ 𝑠 .
El diagrama de Bode resultante (Figura 2) muestra:
• Una ganancia aún más negativa en baja frecuencia.
• Una caída de -80 dB/década, indicando la presencia de un nuevo polo en el origen.
• La fase desciende aún más (por debajo de -360°), complicando el control directo.
Este paso mejora el seguimiento en lazo cerrado pero agrava la estabilidad, por lo que
no puede utilizarse solo.
Para generar esa figura añadimos estas líneas de código al ya anteriormente mencionado
Código en MATLAB para el Diagrama de Bode solo con Integrador
Figura 2 – Bode con integrador
7.4. CONTROLADOR CON DOS CEROS EN -1 Y GANANCIA
AJUSTADA
Para aumentar el margen de fase y mejorar la respuesta del sistema, se diseña un nuevo
controlador de la forma:
Este controlador incluye:
1
• Un integrador ( 𝑠 ) para eliminar el error en estado estacionario.
• Dos ceros en s=−1, que aportan adelanto de fase y velocidad de respuesta.
• Una ganancia de K=10, que ajusta la magnitud del sistema para lograr que el
diagrama de Nyquist rodee el punto -1 en sentido antihorario, cumpliendo con el
criterio de estabilidad.
El diagrama de Bode resultante del sistema compensado (Figura 3) muestra:
• Un aumento de ganancia general, especialmente en frecuencias medias y bajas.
• Una mejora clara en el margen de fase gracias a los ceros.
• Un cruce de ganancia cercano a 6.5 rad/s, con comportamiento más estable.
Código en MATLAB para el Diagrama de Bode
(𝒔+𝟏)𝟐
Figura 3 – Bode con 𝑪(𝒔) = 𝟏𝟎 ⋅ )
𝒔
7.5. RESPUESTA AL IMPULSO DEL SISTEMA COMPENSADO
La Figura 4 muestra la respuesta al impulso del sistema en lazo cerrado con el
controlador. Este tipo de análisis permite observar el comportamiento dinámico interno
del sistema frente a una entrada de tipo impulso unitario, lo que es útil para evaluar la
estabilidad, rapidez de respuesta y amortiguamiento del sistema compensado.
En la respuesta se observa:
• Una rápida estabilización, lo que indica buena amortiguación del sistema.
• Una respuesta que tiende a cero con el tiempo, confirmando estabilidad.
• La ausencia de oscilaciones sostenidas o comportamiento inestable.
Esto indica que el sistema en lazo cerrado, con el controlador propuesto, tiene un buen
comportamiento dinámico incluso frente a perturbaciones abruptas.
(𝒔+𝟏)𝟐
Figura 4 – Respuesta al impulso con controlador 𝑪(𝒔) = 𝟏𝟎 ⋅ )
𝒔
Código en MATLAB para la Respuesta al impulso
Al analizar la respuesta del sistema obtenida con el controlador anterior, se puede
observar que, aunque el sistema se comporta de manera estable, la posición angular del
péndulo excede el límite especificado de ±0.05 radianes, y el tiempo de estabilización
se aproxima peligrosamente a los 5 segundos, que es el máximo permitido por los
requisitos de diseño.
Con el objetivo de optimizar este comportamiento, se utiliza la herramienta Control
System Designer para observar cómo modificaciones en la ganancia y en la ubicación
de los ceros del controlador afectan la respuesta en frecuencia y en el tiempo.
Los resultados de este ajuste muestran que:
• Aumentar la ganancia del controlador contribuye a incrementar el margen de
fase, lo cual reduce el sobreimpulso y mejora la estabilidad.
• Desplazar uno de los ceros más a la izquierda (hacia valores más negativos en
el plano complejo) acelera la respuesta del sistema (reduciendo el tiempo de
estabilización), aunque inicialmente incrementa el sobreimpulso.
• Sin embargo, este efecto adverso se compensa mediante el aumento de
ganancia, logrando finalmente una respuesta rápida, estable y dentro de los
límites requeridos.
Mediante prueba y error se establece que el siguiente controlador compensador cumple
con los criterios deseados:
Código en MATLAB para la Respuesta al impulso
(𝒔+𝟏)(𝒔+𝟐)
Figura 4 – Respuesta al impulso con controlador 𝑪(𝒔) = 𝟑𝟓 ⋅ )
𝒔
Concluimos nuestro controlador cumple con las especificaciones propuestas.
8. ANALISIS MEDIANTE PID
A partir de lo realizado, diseñaremos un controlador PID para el sistema de péndulo
invertido. En el proceso de diseño, asumiremos una planta de una sola entrada y una sola
salida, como se describe en la siguiente función de transferencia. En otras palabras,
intentaremos controlar el ángulo del péndulo sin importar la posición del carro.
𝑚𝑙
𝛷(𝑠) 𝑞
𝑠 𝑟𝑎𝑑
𝑃𝑝𝑒𝑛𝑑 (𝑠) = = 𝑏(𝐼+𝑚𝑙2 ) 2 (𝑀+𝑚)𝑚𝑔𝑙 𝑏𝑚𝑔𝑙
[
𝑈(𝑠) 𝑠3+ 𝑠 − 𝑠− 𝑁
𝑞 𝑞 𝑞
Donde,
𝑞 = (𝑀 + 𝑚)(𝐼 + 𝑚𝑙2 ) − (𝑚𝑙)2
En esta página diseñaremos un controlador PID para el sistema de péndulo invertido. En
el proceso de diseño, asumiremos una planta de una sola entrada y una sola salida, como
se describe en la siguiente función de transferencia. En otras palabras, intentaremos
controlar el ángulo del péndulo sin importar la posición del carro.
8.1. ESTRUCTURA DEL SISTEMA
La estructura del controlador para este problema es ligeramente diferente a la de los
problemas de control estándar a los que probablemente esté acostumbrado. Dado que
intentamos controlar la posición del péndulo, que debería volver a la vertical tras la
perturbación inicial, la señal de referencia que rastreamos debería ser cero. Este tipo de
situación se conoce a menudo como problema de regulador. La fuerza externa aplicada al
carro puede considerarse una perturbación impulsiva. El esquema de este problema se
muestra a continuación.
Quizás le resulte más fácil analizar y diseñar este sistema si primero reorganizamos el
esquema de la siguiente manera.
La función de transferencia resultante 𝑇(𝑠) para el sistema de circuito cerrado desde una
entrada de fuerza 𝐹𝑎 una salida de ángulo de péndulo 𝛷 se determina entonces como lo
siguiente:
𝛷(𝑠) 𝑃𝑝𝑒𝑛𝑑 (𝑠)
𝑇 (𝑠 ) = =
𝐹(𝑠) 1 + 𝐶 (𝑠)𝑃𝑝𝑒𝑛𝑑 (𝑠)
Antes de empezar a diseñar nuestro controlador PID, debemos definir nuestra planta en
MATLAB.
M = 0,5;
m = 0,2;
b = 0,1;
Yo = 0,006;
g = 9,8;
l = 0,3;
q = (M+m)*(I+m*l^2)-(m*l)^2;
s = tf( 's' );
P_pend = (m*l*s/q)/(s^3 + (b*(I + m*l^2))*s^2/q - ((M + m)*m*g*l)*s/q - b*m*g*l/q);
A continuación, definiremos un controlador PID.
8.2. CONTROLADOR PID
Esta función de transferencia de bucle cerrado se puede modelar en MATLAB copiando
el siguiente código al final del archivo m (ya sea que se utilice la forma de función de
transferencia o la representación en espacio de estados de la planta). Específicamente,
definimos nuestro controlador usando el objeto PID en MATLAB. Luego, usamos el
comando de retroalimentación para generar la función de transferencia de bucle
cerrado, 𝑇(𝑠) como se muestra en la figura anterior, donde la fuerza de perturbación es
la entrada y la desviación del ángulo del péndulo con respecto a la vertical 𝛷 es la salida.
Kp = 1;
Ki = 1;
Kd = 1;
C = pid(Kp,Ki,Kd);
T = retroalimentación(P_pend,C);
Ahora podemos empezar a ajustar nuestro controlador. Primero, examinemos la respuesta
del sistema de lazo cerrado a una perturbación de impulso para este conjunto inicial de
ganancias de control. Introduzca el siguiente código al final del archivo-m y ejecútelo en
la ventana de comandos de MATLAB. Debería generar el gráfico de respuesta que se
muestra a continuación.
t=0:0,01:10;
impulso(T,t)
title({ 'Respuesta de la posición del péndulo a una perturbación de impulso' ; 'bajo control
PID: Kp = 1, Ki = 1, Kd = 1' });
Esta respuesta aún no es estable. Comencemos a modificarla aumentando la ganancia
proporcional. Aumente la 𝐾𝑝 variable para ver su efecto en la respuesta. Si modifica su
archivo-m con el siguiente valor “donde 𝐾𝑝 = 100” y lo ejecuta en la ventana de
comandos, debería obtener el gráfico de respuesta que se muestra a continuación.
Kp = 100;
Ki = 1;
Kd = 1;
C = pid(Kp,Ki,Kd);
T = retroalimentación(P_pend,C);
t=0:0,01:10;
impulso(T,t)
eje([0, 2.5, -0.2, 0.2]);
title({ 'Respuesta de la posición del péndulo a una perturbación de impulso' ; 'bajo control
PID: Kp = 100, Ki = 1, Kd = 1' });
Al hacer clic derecho en el gráfico resultante y seleccionar "Características" en el menú,
podrá identificar características importantes de la respuesta. Específicamente, el tiempo
de estabilización de la respuesta se determina en 1,64 segundos, inferior al requisito de 5
segundos. Dado que el error en estado estacionario se aproxima a cero con la suficiente
rapidez, no se requiere ninguna acción integral adicional. Puede establecer la constante
de ganancia integral Ki a cero para comprobar si se requiere algún control integral. Sin
embargo, la respuesta pico supera el requisito de 0,05 radianes.
8.3. CORRECCIONES DEL Kp, Ki y Kd
Recuerde que el sobre impulso a menudo puede reducirse aumentando el control de la
derivativa. Tras algunas pruebas, se ha comprobado que una ganancia derivada de Kd =
20 proporciona una respuesta satisfactoria.
Modificar el archivo-m como se indica a continuación y volver a ejecutarlo debería
generar el gráfico de respuesta que se muestra a continuación.
Kp = 100;
Ki = 1;
Kd = 20;
C = pid(Kp,Ki,Kd);
T = retroalimentación(P_pend,C);
t=0:0,01:10;
impulso(T,t)
eje([0, 2.5, -0.2, 0.2]);
title({ 'Respuesta de la posición del péndulo a una perturbación de impulso' ; 'bajo control
PID: Kp = 100, Ki = 1, Kd = 20' });
Como puede observar, el sobre impulso se ha reducido para que el péndulo no se
aleje más de 0,05 radianes de la vertical. Dado que se han cumplido todos los
requisitos de diseño, no se requieren más iteraciones.
9. POSICIÓN DEL CARRO
Al principio de esta página, se presentó un diagrama de bloques del sistema de péndulo
invertido. El diagrama no estaba completo. El bloque que representa la respuesta de la
posición del carro no se incluyó porque esta variable no se controla. Sin embargo, es
interesante observar qué sucede con la posición del carro cuando el controlador del ángulo
del péndulo está activado. Para comprender esto, debemos considerar el diagrama de
bloques completo del sistema, como se muestra en la siguiente figura.
Reordenando, obtenemos el siguiente diagrama de bloques.
10. CONCLUSIONES
El sistema de péndulo invertido es inherentemente inestable, tal como se
demostró mediante el análisis del criterio de Routh-Hurwitz y el lugar geométrico de las
raíces. Sin un controlador adecuado, el sistema presenta polos en el semiplano derecho,
lo que confirma su inestabilidad.
La linealización del modelo físico permitió obtener una representación en forma de
funciones de transferencia y espacio de estados, lo que facilitó el análisis y diseño de
estrategias de control mediante herramientas clásicas como Bode, PID y Root Locus.
La implementación de un controlador tipo compensador con estructura:
(𝑠 + 1)2
𝐶(𝑠) = 10 ⋅
𝑠
De tal manera que se permitió aumentar el margen de fase y mejorar la respuesta del
sistema, aunque su desempeño aún se acercaba al límite aceptable del sobreimpulso y
tiempo de estabilización.
Mediante ajustes adicionales y rediseño del controlador a:
(𝑠 + 1)(𝑠 + 2)
𝐶(𝑠) = 35 ⋅
𝑠
Se logró cumplir estrictamente con los requisitos de diseño: tiempo de estabilización
menor a 5 segundos y desviación angular menor a ±0.05 radianes. La respuesta al
impulso evidenció un sistema estable, con buena amortiguación y sin sobreimpulso
significativo.
El diseño de un controlador PID también permitió estabilizar el sistema. Tras ajustar los
parámetros a 𝐾𝑝 = 100, 𝐾𝑖 = 1, y 𝐾𝑑 = 20, se obtuvo una respuesta robusta, rápida y
dentro de los márgenes de tolerancia establecidos.
El uso de MATLAB fue fundamental para el modelado, simulación y verificación del
sistema, permitiendo validar las respuestas temporales y en frecuencia bajo distintas
estrategias de control.
11. RECOMENDACIONES
Para futuros desarrollos o implementaciones físicas del péndulo invertido, se recomienda
trabajar sobre controladores robustos que tomen en cuenta incertidumbres no modeladas
y posibles perturbaciones externas. Es importante considerar también el control
simultáneo de la posición del carrito junto con el ángulo del péndulo, ya que en este
proyecto solo se priorizó la estabilización angular.
Se recomienda implementar técnicas adicionales como control óptimo (LQR) o
observadores de estado, que podrían mejorar el desempeño y ofrecer ventajas frente a
condiciones de operación reales.
Se sugiere seguir profundizando en el uso de herramientas gráficas como el Control
System Designer de MATLAB, ya que facilitan la visualización y ajuste de controladores
en tiempo real, especialmente al trabajar con Bode y lugar de raíces.
Para futuras prácticas de laboratorio, sería útil contar con una plataforma física o virtual
para validar experimentalmente los resultados teóricos obtenidos en simulación.
12. BIBLIOGRAFÍA
Ogata, K. (2009). Modern Control Engineering (5.ª ed.). Pearson Education.
Hernández Gaviño, R. (2010). Introducción a los sistemas de control. Pearson
Educación.
Dulhoste, J. F. (s. f.). Teoría de control. Universidad de Los Andes, Mérida - Venezuela.
Escuela de Ingeniería Mecánica, Facultad de Ingeniería.
Ureña Delgado, S. (s. f.). Análisis de sistemas de control dinámico con MATLAB.
Universidad Mayor de San Simón, Facultad de Ciencias y Tecnología, Sociedad
Científica de Ingeniería Eléctrica - Electrónica.
Moya, L. M., & Rojas, E. (s. f.). Ecuaciones diferenciales ordinarias: Técnicas de
resolución.
Moya, L. M., & Rojas, E. (s. f.). Ecuaciones diferenciales ordinarias: Técnicas de
resolución. Universidad Nacional de Colombia, Facultad de Ciencias, Sede Bogotá.