Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LABORATORIO 01
INTRODUCCIÓN
8 de mayo de 2020
Ingeniero a cargo
Juan Carlos Cutipa Luque
Integrantes
1. Materiales y Equipos 2
2. Procedimientos 2
2.1. Encontrar la solución numérica del sistema péndulo invertido (no lineal, figura
1) y visualizar respuestas de las cuatro variables de estado en función de dife-
rentes condiciones iniciales. Mostrar por lo menos 2 casos (ayuda: puede usar
la función ODE45 de Gnu-Octave) . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. Repetir lo anterior con método de integración numérica Runge Kutta, codifica-
do por usted mismo. Este método debe ser genérico; o sea, una función parecida
a ODE45 que permita resolver cualquier sistema multivariable y no lineal. . . . 14
2.3. Linealizar el modelo de péndulo y obtener controladores PIDs para controlar la
posición del carro y en ángulo del péndulo . . . . . . . . . . . . . . . . . . . . 14
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
1. Materiales y Equipos
Computador o Smartphone.
Cuaderno de apuntes.
Python (opcional).
2. Procedimientos
2
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
Las variables que definen la condición del sistema en todo momento son la posición r del carro
y el ángulo Φ del péndulo con respecto a la vertical:
X
Fi = mai (1)
X
Fj = maj (2)
X
FG = maG (3)
En el lado izquierdo de la Figura 2 se puede observar, además del peso del péndulo, las fuerzas
de reacción H y V que actúan sobre su articulación. Para obtener la aceleración horizontal del
péndulo, es necesario tomar en cuenta que la posición horizontal de su centro de gravedad
depende de r y de Φ. Si se aplica 1 al péndulo, se tiene:
d2
H = M1 (r − ls sin Φ) (4)
dt2
d2
V = M1 [ 2 (ls cos Φ) + g] (5)
dt
Sobre el centro de gravedad del péndulo actúan tres momentos. Uno se debe a la fuerza H, otro
a la fuerza V , y el tercero a la fricción que produce la articulación. De acuerdo con (3).
d2Φ
Θs = V ls sin Φ + Hls cos Φ (6)
dt2
Θs es la masa del momento de inercia de la articulación con respecto al centro de gravedad del
péndulo. Desarrollando las ecuaciones (4) y (5) se tiene.
3
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
Θs Φ̈ = M1 ls2 sin Φ(−Φ̈ sin Φ−Φ̇2 cos Φ)+M1 ls g sin Φ+...+M1 ls2 cos Φ(−Φ̈ cos Φ−Φ̇2 sin Φ+;1 ls r̈ cos Φ
(9)
2
Θs Φ̈ + M1 ls Φ̈ − M1 ls r̈ cos Φ − M1 ls g sin Φ (10)
Si se hace Θ = Θs + M1 ls2 , entonces:
La expresión (11) es una ecuación diferencial con dos variables. Para resolverla es necesaria
otra ecuación que relacione las mismas variables. Esta segunda ecuación se puede obtener
analizando el diagrama de cuerpo libre del carro (Figura2). Aplicando (1) al carro.
d2 r
F − F ric − H = M0 (12)
dt
La fuerza de fricción F ric es proporcional a la velocidad del carro, y Fr es la constante de
proporcionalidad. Desarrollando F ric y sustituyendo H.
Si hacemos M = M0 + M1 , entonces
Las ecuaciones (11) y (14) representan un sistema de dos ecuaciones diferenciales simultáneas
con dos incógnitas que describen al péndulo invertido.
4
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
Despejando Φ̈ obtenemos:
5
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
u=F
El péndulo invertido consta de tres sensores, uno para r, otro para y otro para ṙ. Por lo que se
define a la salida del sistema como:
x1
y = x2 ;
x3
con lo que se pueden determinar las matrices C y D fácilmente.
1 0 0 0 h i
C = 0 1 0 0 ; D = 0 ;
0 0 1 0
Para encontrar A y B es necesario expresar las ecuaciones (11) y (14) en la forma:
ẋ = f (x, u) (20)
6
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
Por lo que para Aproximar la ecuación a una lineal hallaremos los puntos de equilibrio:
x˙1 = f1 (xe , 0) = 0
x˙2 = f2 (xe , 0) = 0
x˙3 = f3 (xe , 0) = 0
x˙4 = f4 (xe , 0) = 0
x˙1 = x3 = 0
x˙2 = x4 = 0
α2 g sin x2 cos x2 Fr Θ
x˙3 = ΘM −α2 cos2 x2 − ΘM −α 2 cos2 x x3 − ...
2
− ΘMαC cos x2
x −
−α2 cos2 x2 4
α sin x2
ΘM −α2 cos2 x2 4
x2 + ΘM −αΘ2 cos2 x2 u =0
αM g sin x2
x˙4 = ΘM −α2 cos2 x2
− ΘMαF−α r cos x2
2 cos2 x x3 − ...
2
α2 sin x2 cos x2 2
− ΘM −α2 cos2 x2 x4 − ΘM −α2 cos2 x2 x4 + ΘMα−α
MC cos x2
2 cos2 x u
2
=0
Quedando:
α2 g sin x2 cos x2
x˙3 = ΘM −α2 cos2 x2
=0 (27)
αM g sin x2
x˙4 = ΘM −α2 cos2 x2
=0 (28)
Para 28 uno de los posibles valores de x2 que cumple la condición es 0. Por lo tanto uno de los
puntos de equilibrio es:
xe = (0, 0, 0, 0, 0) (29)
Por lo aproximación lineal la podemos obtener a través de la matriz Jacobiana:
∂f1 (x,u) ∂f1 (x,u) ∂f1 (x,u) ∂f1 (x,u)
∂f∂x
2
1
(x,u) ∂f
∂x2
2 (x,u) ∂f
∂x3
2 (x,u) ∂f
∂x4
2 (x,u)
∂x1 ∂x2 ∂x3 ∂x4
A≈ ∂f3 (x,u) ∂f3 (x,u) ∂f3 (x,u) ∂f3 (x,u) (30)
∂x1 ∂x2 ∂x3 ∂x4
∂f4 (x,u) ∂f4 (x,u) ∂f4 (x,u) ∂f4 (x,u)
∂x1 ∂x2 ∂x3 ∂x4
x=xe
Solo analizaremos las derivadas para las cuales sean diferentes de cero.
Para la ecuación 23 si derivamos en función a x2 solo tomaremos el primer termino de la ecua-
ción 23, puesto que el resto de términos al estar en función de otros estados como constantes
7
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
8
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
0 0
0 0
B = Θ 0 (40)
β
α
β
0
Finalmente ya pueden expresarse en forma de espacio de estados:
ṙ 0 1 0 0 ṙ 0
r̈ −(Θ+M1 ls2 )Fr M12 gls2 Θ+M1 ls2
0 Θ(M1 M0 )+M0 +M1 ls2 Θ(M1 +M0 )+M0 M1 ls2
0 r̈ Θ(M +M 2
0 )+M0 M1 ls
= +
1
Φ̇ 0 0 0 1 Φ̇ 0
M1 ls Fr M1 gls(M0 +M1 M1 ls
Φ̈ 0 Θ(M1 +M0 )+M0 M1 ls2 Θ(M1 +M0 )+M0 M1 ls2
0 Φ̈ Θ(M1 +M0 )+M0 M1 l2 s
!
1 0 0 0
y= (41)
0 0 1 0
Para obtener analıticamente la funcion de transferencia de las ecuaciones del sistema linealiza-
do, se ha de tomar primero la transformada de Laplace de las ecuaciones del sistema. Donde se
obtienen las siguientes ecuaciones:
Y (s)
H(s) =
U (s)
(Θ + M1 ls2 )Φ(s)s2 − M1 ls gΦ(s) = M1 ls X(s)s2 (42)
(M0 + M1 )X(s)s2 + Fr Xs s − M1 ls Φ(s)s2 = U (s) (43)
(s) Dado que la salida de interes en este caso es el angulo Phi, en primer caso se resuelve la
primera ecuacion para X(s), donde posteriormente se sustituira en la segunda ecuacion:
" #
(Θ + M0 ls2 ) s
X(s) = − 2 (44)
M1 ls s
" # " #
(Θ + M0 ls2 ) s (Θ + M 0 ls
2
) s
(M0 + M1 ) − Φ(s)s2 + Fr − 2 Φ(s)s − ...M1 ls Φ(s)s2 = U (s)
M1 ls s M1 ls s
(45)
Reordenado la función de transferencia se tiene:
M1 l s 2
Φ(s) q
s
= Fr (Θ+M1 ls ) 3 (M1 +M0 )M1 gls 2 Fr M1 gls
U (s) s4 + s − s − s
q q q
Podemos observar que podemos simplificar un polo por lo que la ecuación resultante será:
M1 l s 2
Φ(s) q
s
= Fr (Θ+M1 ls ) 2 (M1 +M0 )M1 gls Fr M1 gls
(46)
U (s) s3 + s − s −
q q q
9
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
1 M_0 = 0.5;
2 M_1 = 0.2;
3 b = 0.1; %Fr
4 i = 0.006; %Theta
5 g = 9.8;
6 l_s = 0.3;
7 q=(M_0+M_1)*(i+M_1*l_s ^2)-(M_1*l_s)^2;
8 num = [M_1*l_s/q 0]
9 den = [1 b*(i+M_1*l_s^2)/q -(M_0+M_1)*M_1*g*l_s/q -b*M_1*g*l_s/q ]
En esta solución no se consideró ninguna entrada, por lo que pasaremos a simular con una
entrada impulsiva de 1N, para ello, se añade las siguientes lineas de código.
1 t =0:0.01:5;
2 impulse (num,den,t )
3 axis ([0 1 0 60])
Obteniendo el grafico.
10
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
1 M_0=0.5;
2 M_1=0.2;
3 b=0.1; %Fr
4 theta=0.006;
5 g=9.8;
6 l_s=0.3;
7 p=theta*( M_0+M_1)+M_0*M_1*l_s^2; %denominador para las matrices A y B
8 %Matriz A
9 A=[0 1 0 0;
10 0 -(theta+M_1*l_s^2)*b/p (M_1^2*g*l_s^2)/p 0;
11 0 0 0 1;
12 0 -(M_1*l_s*b)/p M_1*g*l_s*(M_0+M_1)/p 0]
13 %MAtriz B
14 B=[0;
15 (theta+M_1*l_s^2)/p;
16 0;
17 M_1*l_s/p]
18 %MAtriz C
19 C=[1 0 0 0;
20 0 0 1 0]
21 %MAtriz D
22 D=[0; 0]
11
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
Al igual que en el caso anterior hay que introducir una entrada que en este caso sera un escalón
de 0,2 metros. Añadiendo el siguiente codigo:
1 %a a d i e n d o una entrada
2 T =0:0.05:10;
3 U=0.2*ones(size(T));
4 [Y,X]=lsim(A,B,C,D,U,T) ;
5 plot(T,Y)
6 axis([0 2 0 100])
12
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
Se observa la salida donde la lınea azul representa la posición del carro y la lınea roja el ángulo
del péndulo.Para mejorar la dinámica del sistema es necesario incluir alguna clase de control.
13
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
La función de transferencia utilizada en el apartado 2.1 esta linealizada, dicho esto, a partir
de la Función de Transferencia se puede obtener los controladores que se necesitará para el
control del carrito y ángulo del péndulo. Para poder diseñar un PID capaz de controlar la posi-
ción del carrito y el ángulo del péndulo se tiene que hacer uso del método de ajuste Nichols-
Ziegler.Básicamente consiste en lograr unos valores para la I (integral) y D (derivados) de modo
que la ganancia sea cero.. La función de transferencia del regulador tiene la siguiente estructura:
q 0 Z 2 + a1 Z + a2
Gr (Z) = (47)
Z(Z − 1)
! !
Td T Td
a0 = kc 1 − ; a1 = kc −1− ; a2 = kc (48)
T Ti − 2TT d T
Para cada tipo de controlador se sigue los siguientes parámetros:
- Controlador P: Kc = 0,5Ku
- Controlador PI: Kc = 0,45KuT i = T u/1, 2
- Controlador PID: Kc = 0,6KuT i = T u/2T d = T u/8
Donde:
2 ∗ pi β
Tu = Wu = arctan
Wu α
14
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
1 M_0 = 0.5;
2 M_1 = 0.2;
3 b = 0.1; %Fr
4 i = 0.006; %Theta
5 g = 9.8;
6 l_s = 0.3;
7 q=(M_0+M_1)*(i+M_1*l_s ^2)-(M_1*l_s)^2;
8 num = [M_1*l_s/q 0]
9 den = [1 b*(i+M_1*l_s^2)/q -(M_0+M_1)*M_1*g*l_s/q -b*M_1*g*l_s/q ]
Para tal motivo, daremos valores aleatorios a las constantes, teniendo en cuenta el mencionado
método de ajuste Nichols-Ziegler. Para ello, nos topamos con un inconveniente, pues al mo-
mento de sumar los polinomios(numerador y denominador) estos no tiene la misma longitud
lo que provoca un fallo, es por eso que se investigo el problema y se encontró una función que
resuelve nuestro problema llama polyadd.
1 function[poly]=polyadd(poly1,poly2)
2 %Copyright 1996 Justin Shriver
3 %polyadd(poly1,poly2) adds two polynominals possibly of uneven length
4 if length(poly1)<length(poly2)
5 short=poly1;
6 long=poly2;
7 else
8 short=poly2;
9 long=poly1;
10 end
11 mz=length(long)-length(short);
12 if mz>0
13 poly=[zeros(1,mz),short]+long;
14 else
15 poly=long+short;
16 end
1 kd = 1;
2 k = 1;
3 ki = 1;
4 numPID =[kd k ki];
5 denPID =[1 0];
6 numc = conv(num,denPID)
7 denc = polyadd(conv(denPID,den),conv(numPID,num)
8 %prueba con una entrada impulso
9 t =0:0.01:5;
10 impulse ( numc , denc , t )
11 axis ([0 1.5 0 40])
12 title('Respuesta al Impulso con control PID : K=1 K Dd=1 Ki=1')
15
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
Observamos que aun no tenemos control ya que el sistema es inestable, por o que cambiaremos
el valor de Kd para obtener una curva como se muestra en la siguiente figura.
16
SCA-2020A Laboratorio 01:Introducción 8 de mayo de 2020
Como se puede ver, el sobrepico se redujo de modo que el pendulo no se mueve más que 0.05
radianes de la vertical.
17