Académique Documents
Professionnel Documents
Culture Documents
Agradezco a mi esposa Maricela por su paciencia y amor, necesario para darme todo el apoyo
que necesité para poder terminar con los estudios de Doctorado, teniendo que soportar malos
ratos. Ella es la fuerza que me impulsa a seguir adelante.
A mis hijas, Angélica Abigail y Maricela Eliana, quienes son mi inspiración y la alegría de mi
hogar. A ellas y a mi esposa Maricela, dedico este momento, sin olvidar al bebé (o bebés) que
desafortunadamente perdimos antes de que naciera(n), pero que no olvidaré y siempre tendrá(n)
un lugar especial en mi corazón.
A mis padres, Juan Ramos y Ma. de la Luz, quienes me dieron la vida, me educaron y me
enseñaron las bases morales que me han permitido llegar hasta este momento con éxito y de
quienes siempre he tenido apoyo incondicional, y a quienes amaré siempre.
A mis hermanos, Enrique, Marco Antonio y Carlos Alberto, que a pesar de las distancias y
diferencias de ideas, los quiero, y sé que siempre me han apoyado en los momentos difíciles y
han estado conmigo en los alegres.
A los Doctores José Emilio Vargas, Jesús Carlos Pedraza, René de Jesús Romero y Efrén
Gorrostieta, de quienes recibí un gran apoyo y orientación a lo largo de los cuatro años de
estudios, sin lo cual, este momento no hubiera sido posible, en especial el Dr. Pedraza.
A mi jefe, el M. en C. Bernardo Ramírez por el apoyo y confianza otorgados, así como a las
autoridades administrativas de la Universidad Tecnológica de San Juan del Río, que me
permitieron iniciar estos estudios hace cuatro años, dándome el apoyo que en su momento
solicité.
A Francisco Hernández (Paco), de quien tuve un gran apoyo en la fabricación del prototipo base
de este proyecto, quien junto con Alberto Chávez y Marco Olivo, me han acompañado en el
desarrollo de diversos proyectos. Igualmente, agradezco a Benita, Luz María, Jacqueline,
Ricardo, Elias, Cuitláhuac, Rufino y Rafael, compañeros de trabajo, quienes me dieron el apoyo
otorgado a lo largo de este tiempo.
A Jorge Alberto y Luciano, con quienes tuve la oportunidad de convivir y trabajar en CIDESI,
agradeciendo su amistad.
i
CONTENIDO
REFERENCIAS ........................................................................................................................................ 74
ANEXOS................................................................................................................................................... 78
ii
INDICE DE FIGURAS
Figura 1. Robots móviles. .................................................................................................................. 3
Figura 2. Evolución de los robots bípedos......................................................................................... 3
Figura 3. Robots domésticos. ............................................................................................................ 4
Figura 4. Robot industrial robusto. ..................................................................................................... 4
Figura 5. Manipulador flexible. ........................................................................................................... 5
Figura 6. Interacción entre el controlador la planta. ......................................................................... 7
Figura 7. Actuador neumático con amortiguamiento en los extremos. ........................................... 16
Figura 8. El actuador neumático con amortiguamiento en los extremos. ....................................... 16
Figura 9. Resultado de la aproximación polinomial de orden 2, comparada con la curva original. 22
Figura 10. Modelo original vs. Modelo con polinomios y flujo másico de tercer orden. .................... 24
Figura 11. Diagrama a bloques de un controlador PID. .................................................................... 27
Figura 12. Metodología de control del actuador neumático para el manipulador flexible. ................ 34
Figura 13. Sistema neumático-mecánico de un robot flexible con un grado de libertad. .................. 35
Figura 14. Sistema de control neumático. (a) Esquema de conexión. (b) División en tres zonas de
trabajo. ............................................................................................................................. 36
Figura 15. Control del ángulo θ del brazo flexible, usado con el movimiento del mecanismo. ......... 37
Figura 16. Resultado de utilizar un control PID clásico. (a) Respuesta del ángulo θ. (b) Respuesta
de la velocidad angular del brazo flexible. ...................................................................... 38
Figura 17. Resultado de la propuesta de control con un algoritmo PID Discreto. (a) ángulo de salida
del brazo flexible. (b) Desempeño de la velocidad angular del brazo. ........................... 41
Figura 18. Controlador de posición con retroalimentación de los cambios de velocidad.................. 42
Figura 19. Resultado de la propuesta de control retroalimentando al controlador PID los cambios
de velocidad del brazo flexible. (a) ángulo de salida del brazo flexible. (b) Desempeño
de la velocidad angular del brazo. ................................................................................... 43
Figura 20. Diagrama a bloques del control Difuso-PID ..................................................................... 44
Figura 21. Conjunto difuso para la constante de control Kp. ............................................................. 47
Figura 22. Conjuntos difusos para la constante de control Kv. .......................................................... 47
Figura 23. Conjunto de reglas difusas para K3. ................................................................................. 48
Figura 24. Resultado de utilizar lógica difusa para determinar las ganancias del controlador PID. . 50
Figura 25. Comparación del controlador PID con y sin lógica difusa. ............................................... 50
Figura 26. Diagrama a bloques del controlador difuso. ..................................................................... 51
Figura 27. Funciones miembro para las variables de entrada y salida de la tabla 17. ..................... 53
Figura 28. Respuesta de la planta al controlador difuso. .................................................................. 55
Figura 29. Comparación de la respuesta de la planta con un controlador Difuso vs. controlador
Difuso-PID. ...................................................................................................................... 55
iii
Figura 30. Diagrama a bloques del controlador Neuronal-PID.......................................................... 57
Figura 31. Resultado de la simulación del controlador Neuronal-PID. .............................................. 58
Figura 32. Diagrama a bloques utilizado para controlar el actuador neumático. .............................. 60
Figura 33. Diagrama a bloques de la descripción en hardware para el FPGA. ................................ 61
Figura 34. Arquitectura PD utilizada para controlar el flujo de aire con la válvula proporcional. ...... 62
Figura 35. Prototipo del robot manipulador flexible. (a) Vista general. (b) Mecanismo impulsor. (c)
Sensor de posición. ......................................................................................................... 64
Figura 36. Hardware utilizado en la implementación del controlador del robot manipulador flexible. .
...................................................................................................................................... 65
Figura 37. Respuesta al escalón en la zona inferior Z1. .................................................................... 67
Figura 38. Respuesta al escalón y la referencia en la zona media. .................................................. 67
Figura 39. Respuesta al escalón y la referencia en la zona superior Z2. .......................................... 67
Figura 40. Resultado del proceso de control PD para el manipulador flexible.................................. 68
Figura 41. Comportamiento del error del proceso de control de posición del robot manipulador
flexible.............................................................................................................................. 68
iv
INDICE DE TABLAS
Tabla 1. Historia de los manipuladores flexibles. ........................................................................... 13
Tabla 2. Historia del control neumático. ......................................................................................... 14
Tabla 3. Valores conocidos del actuador neumático. ..................................................................... 18
Tabla 4. Valores de la constante de flujo. ...................................................................................... 20
Tabla 5. Valores de R utilizados para evaluar la ecuación (2.5). ................................................... 21
Tabla 6. Valores de los coeficientes de la ecuación 2.5 para el flujo másico. ............................... 21
Tabla 7. Coeficientes de correlación entre el modelo original y aproximaciones polinómicas del
flujo másico. 21
Tabla 8. Resultados comparativos entre el modelo original, y un equivalente polinomial, con
diversas aproximaciones del flujo másico. ............................................................................................. 23
Tabla 9. Valores de las constantes de control utilizadas con un PID clásico. ............................... 38
Tabla 10. Valores aplicados a las constantes de control. ................................................................ 42
Tabla 11. conjunto de reglas difusas utilizadas para Kp. .................................................................. 46
Tabla 12. Conjunto de reglas difusas utilizadas para Kv. ................................................................. 46
Tabla 13. Conjunto de reglas para K3............................................................................................... 48
Tabla 14. Variables de entrada y salida al proceso difuso. .............................................................. 51
Tabla 15. Vértices de las funciones para las variables de entrada REFERENCIA y ÁNGULO. ..... 52
Tabla 16. Vértices de las funciones para las variables de salida A1 y A3. ....................................... 52
Tabla 17. Vértices de las funciones para la variable de entrada ERROR. ...................................... 52
Tabla 18. Conjunto de reglas difusas usadas en el proceso de control del actuador neumático. ... 54
Tabla 19. Valores de los parámetros utilizados en el control PD. .................................................... 66
Tabla 20. Características del control del manipulador flexible de un grado de libertad. .................. 67
Tabla 21. Publicaciones presentadas in extenso. ............................................................................ 69
Tabla 22. Publicaciones realizadas en Revistas Internacionales..................................................... 69
Tabla 23. Publicaciones realizadas en capítulos de libros. .............................................................. 70
v
CAPÍTULO 1. INTRODUCCIÓN
1
1.1. Antecedentes
La palabra “robot”, es de origen checo y significa siervo o esclavo; fue inventada por
el escritor checo Karel Capek (1890-1938) en su obra teatral R.U.R., estrenada en
Europa en 1920. El concepto de máquinas automatizadas se remonta a la
antigüedad, con mitos de seres mecánicos vivientes. Los autómatas, o máquinas
semejantes a personas, ya aparecían en los relojes de las iglesias medievales, y los
relojeros del siglo XVIII eran famosos por sus ingeniosas criaturas mecánicas.
Los robots se clasifican de acuerdo a sus características, entre las que están:
Móviles: Se caracterizan por tener ruedas y desplazarse a nivel del suelo. Este tipo
de robots se pueden desplazar de manera autónoma, otros controlados por radio
2
frecuencia e inclusive, guiados por cables. La figura 1 nos muestra este tipo de
robots.
Caminantes: Estos robots se caracterizan por tener dos puntos de apoyo para su
movimiento, así como una apariencia similar al cuerpo humano y se les denomina
también Robots Bípedos. La figura 2 muestra la evolución que han tenido este
tipo de robots.
3
Figura 3. Robots domésticos.
Flexibles: Son robots ligeros y generalmente los actuadores son motores eléctricos.
El manipulador flexible de la figura 5 utiliza un actuador neumático para la
generación del movimiento, así como un brazo de PVC, lo que lo hace ligero y
marca la diferencia con los manipuladores de este tipo de robots.
4
Figura 5. Manipulador flexible.
5
introducen en los poros del metal, que puede provocar desprendimientos de
pequeñas partículas metálicas al interior de la cámara.
6
1.3. Introducción al Control.
+ U(s) Y(s)
R(s) Controlador G(s)
-
Retroalimentación
Figura 6. Interacción entre el controlador la planta.
Las líneas aéreas de alta tensión y las subestaciones eléctricas requieren del uso de
aisladores de porcelana y vidrio. Cuando estos aisladores se contaminan, su función
aislante disminuye porque el material contaminante se mezcla con el agua formando
un electrolito que por ser conductor, crea bandas secas, arcos eléctricos y falla del
aislador. Este tipo de aisladores se considera como uno de los bienes de las
reservas de las empresas Petróleos Mexicanos (PEMEX), y Comisión Federal de
Electricidad (CFE), con prioridad No. 1 de acuerdo a los tratados de libre comercio
que tiene suscritos el Gobierno de los Estados Unidos Mexicanos.
7
polvo y la humedad, evitando así la falla. Sin embargo, la técnica más simple para
llevar a cabo dicha limpieza es cortando la energía eléctrica en la línea, permitiendo
la limpieza a mano, o con ácidos. Si no se puede cortar la energía, se utiliza algunas
otras técnicas, pero no tienen la eficiencia deseada.
Para la limpieza de aisladores cerámicos, con las líneas eléctricas de alta tensión
energizadas, se requiere un considerable desgaste humano y sistemas
especiales de protección por tratarse de una tarea de alto riesgo para las
personas.
8
Debido al tipo de trabajo a que se enfocará este tipo de robot, el material de sus
eslabones principales, y su estructura, no deben permitir el paso de la corriente
eléctrica, por lo que se requiere de un material dieléctrico lo suficientemente apto
para aislar los voltajes de alta tensión de las líneas eléctricas, y un peso menor a
los 50 Kgs. Debido a estas necesidades, los eslabones se consideran flexibles y
los elementos de actuación serán neumáticos.
9
ligeros. También se ilustra el desarrollo que ha tenido la investigación sobre
manipuladores flexibles, donde normalmente se utilizan actuadores eléctricos, siendo
este trabajo de los primeros que combinan ambas líneas de investigación.
10
CAPÍTULO 2. ANTECEDENTES
11
Revisión del trabajo pasado
Los manipuladores industriales ligeros requieren materiales ligeros, que trae como
consecuencia un incremento en la deformación elástica, que a su vez genera un
modelo más complejo para poder ser controlado.
Los actuadores neumáticos son ligeros, baratos y su mayor ventaja es que manejan
una mayor relación potencia-peso 0, en comparación con un actuador eléctrico. Es
importante mencionar que cuando se requiere aplicar una fuerza de manera
constante a un sistema por largos periodos de tiempo, si se utiliza un actuador
eléctrico, se requiere de disipadores de calor especiales 0. Si al manipulador flexible
se le agrega un actuador neumático, tendremos ventajas económicas, pues los
elementos neumáticos son más baratos, los materiales son ligeros y baratos, tienen
una operación limpia, y una relación potencia-peso elevada, que favorece su
potencial aplicación en sistemas robóticos permiten construir manipuladores
compactos, ligeros, sencillos y de bajo costo. El desarrollo de los servomecanismos
neumáticos se origina en los 50’s, sin embargo el control de los sistemas con
actuación neumática presenta problemas originados en la no linealidad de los
actuadores debida a la compresibilidad del aire, la fricción en las juntas, la no
linealidad del flujo en las válvulas y el retardo debido a la velocidad de propagación
de la presión del aire. Por todo lo anterior, el principal problema en un actuador
neumático, es la compresibilidad del aire y las fuerzas de fricción internas, que
12
provocan un comportamiento altamente no lineal. Esto tiene como consecuencia que
el control de posición de un actuador neumático es complejo.
13
Por todo lo anterior, la innovación de este trabajo es la aplicación de un actuador
neumático como medio de generación de fuerza, para un manipulador flexible.
Control Neumático
14
no existe una convergencia entre las dos líneas de investigación, y en este caso, se
debe trabajar con ambas líneas para lograr el objetivo que se busca con este
proyecto. Este trabajo es una continuación del trabajo desarrollado por Kiyama 0 en
el 2004, donde se obtiene el modelo termomecánico.
15
5 4 3 2
6 7
8 9
Figura 7. Actuador neumático con amortiguamiento en los extremos.
X, X, X
L
Lalp Lalv
pa2
pc1 pc2 Fa
pa1
mc1 mc2
ma1 ma2
Donde:
X ⇒ Desplazamiento del vástago, respecto a la base del cilindro.
X& ⇒ Velocidad de desplazamiento del vástago, respecto al cilindro.
X&& ⇒ Aceleración del vástago, respecto al cilindro.
L ⇒ Longitud total de la carrera del vástago a lo largo del cilindro.
Lalv ⇒ Longitud horizontal de la cámara de amortiguamiento de la base del
cilindro.
Lalp ⇒ Longitud horizontal de la cámara de amortiguamiento del lado del
vástago.
pa1 ⇒ Presión de aire en la cámara de amortiguamiento de la base del
cilindro.
pa 2 ⇒ Presión de aire en la cámara de amortiguamiento del lado del vástago.
pc1 ⇒ Presión de aire en la cámara de la base del cilindro.
pc 2 ⇒ Presión de aire en la cámara del lado del vástago.
m& a1 ⇒ Flujo másico de aire entre el exterior y la cámara de amortiguamiento
de la base del cilindro.
16
m& a 2 ⇒ Flujo másico de aire entre el exterior y la cámara de amortiguamiento
del lado del vástago.
m& c1 ⇒ Flujo másico de aire entre la cámaras del lado de la base del cilindro.
m& c 2 ⇒ Flujo másico de aire entre la cámaras del lado del vástago.
El Modelo Termomecánico
Para 0 ≤ X ≤ L:
d
X& = X
dt (2.1a)
d2
DX& = 2 X (2.1b)
dt
Para 0 ≤ X ≤ Lalp:
kRT0 ⎡ Aap ⎤
P&a1 = ⎢m& 1a − m& 1c − Pa1 DX ⎥ (2.1c)
⎛ ΔA ⎞ ⎣ RT0 ⎦
Aap ⎜ X + p ⎟
⎜ Aap ⎟⎠
⎝
P&c1 =
kRT0 ⎡
m& 1c − p
(A − Aap ) P DX ⎤ (2.1d)
(Ap − Aap )X ⎣
⎢
RT0
c1 ⎥
⎦
kRT0 ⎡ Ap ⎤
P&a1 = ⎢m& 1a − Pa1 DX ⎥ (2.1e)
Ap ( X + Δ ) ⎣ RT0 ⎦
kRT0 ⎡ Ap ⎤
P&c1 = ⎢m& 1c − Pc1 DX ⎥ (2.1f)
Ap ( X + Δ ) ⎣ RT0 ⎦
P&c 2 =
kRT0 ⎡ (A − Av ) P DX ⎤
m& 2 c + p (2.1g)
(Ap − Av )(L − X + Δ ) ⎣
⎢
RT0
c2 ⎥
⎦
P&a 2 =
kRT0 ⎡ (A − Av ) P DX ⎤
m& 2 a + p (2.1h)
(Ap − Av )(L − X + Δ) ⎣
⎢
RT0
a2 ⎥
⎦
Para (L – Lalv) ≤ X ≤ L:
17
P&c 2 =
kRT0 ⎡ (A − Av ) P DX ⎤
m& 2c + p (2.1i)
(Ap − Av )(L − X ) ⎣
⎢
RT0
c2 ⎥
⎦
kRT0 ⎡ m& 2 a − m& 2c Pa 2 DX ⎤
P&a 2 = + (2.1j)
ΔAp ⎢⎣ Aav − Av RT0 ⎦
⎥
L− X +
Aav − Av
Para 0 ≤ X ≤ 0.1016:
18
d
X& = X (2.2a)
dt
d2
DX& = 2 X (2.2b)
dt
Para 0 ≤ X ≤ 0.01905:
1.526 ×10
( )
9
P&a1 = m& a1 − m& c1 + −9.176 × 10 −10 Pa1DX (2.2c)
X + 1.89
38.8 × 10 6
P&c1 =
X
(
m& c1 − 3.608 × 10 −8 Pc1 DX ) (2.2d)
37.838 × 10 6
P&a1 =
X + 0.0613
(
m& a1 − 3.7 × 10 −8 Pa1 DX ) (2.2e)
37.838 ×10 6
P&c1 =
X + 0.0613
(m& c1 − 3.7 ×10 −8 Pc1 DX ) (2.2f)
40.355 ×10
( )
6
P&c 2 = m& c 2 + 3.469 ×10−8 Pc 2 DX (2.2g)
0.1629 − X
40.355 × 106
P&a 2 =
0.1629 − X
(m& a 2 + 3.469 ×10−8 Pa 2 DX ) (2.2h)
4.176 ×107
P&c 2 =
0.1016 − X
(
m& c 2 + 3.352 ×10−8 Pc 2 DX ) (2.2i)
&
Pa 2 =
119.83 ×10 3
1.2872 − X
[
9.983 ×10 3 (m& a 2 − m& c 2 ) + 1.168 ×10 −5 Pa 2 DX ] (2.2j)
1
1+ k
⎡ 1−k
⎤2
2 ⎛ pt ⎞ 2k ⎛ ⎞
⎢⎜ t ⎟ − 1⎥
p k k
m& = ⎜ ⎟ p A (2.3)
k − 1 ⎜⎝ p0 ⎟⎠ ⎜ ⎟
⎢⎝ p0 ⎠ ⎥ RTo o t
⎢⎣ ⎦⎥
19
La ecuación del flujo másico es función de las presiones en los diferentes intervalos
de X, como se muestra en la ecuación (2.4).
m& ij = K ij M ij PA (2.4)
La ecuación (2.5) muestra una forma general de M, donde siempre se cumple que
Pa≤Pb, y se simplifica utilizando una sustitución de variables. Los valores de R
dependen de las condiciones de presión y se muestran en la tabla 5.
M ij = M (Rij ) = (Rij )7 (R )
6 2
−
ij
7 −1 (2.5)
20
Tabla 5. Valores de R utilizados para evaluar la ecuación (2.5).
i J Rij
⎛ Pa1 ⎞ ⎛ P1 ⎞
a 1 ⎜⎜ ⎟⎟ P1>Pa1 ⎜⎜ ⎟⎟ P1≤Pa1
⎝ P1 ⎠ ⎝ Pa1 ⎠
⎛ Pa1 ⎞ ⎛ Pc1 ⎞
c 1 ⎜⎜ ⎟⎟ Pc1>Pa1 ⎜⎜ ⎟⎟ Pc1≤Pa1
⎝ Pc1 ⎠ ⎝ Pa1 ⎠
⎛ Pa 2 ⎞ ⎛ P2 ⎞
a 2 ⎜⎜ ⎟⎟ P2>Pa2 ⎜⎜ ⎟⎟ P2≤Pa2
⎝ P2 ⎠ ⎝ Pa 2 ⎠
⎛ Pa 2 ⎞ ⎛ Pc 2 ⎞
c 2 ⎜⎜ ⎟⎟ Pc2>Pa2 ⎜⎜ ⎟⎟ Pc2≤Pa2
⎝ Pc 2 ⎠ ⎝ Pa 2 ⎠
n
M ij = ∑ a k Rij
k
(2.6)
k =0
21
APROXIMACION FLUJO MASICO
0.3
Curva Real
Curva aproximada
0.2
[m3/s]
0.1
0
0 0.2 0.4 0.6 0.8 1
Valor R
1.526 × 10 9
g 21 ( X 1 ) = = (− 4.2316 X 1 + 8.0741)× 108 (2.7a)
X 1 + 1.89
37.838 × 10 6
g 22 ( X 1 ) =
X 1 + 0.0613
(
= - 2.0952X 3 + 0.6233X 2 - 0.0777X + 0.0060 × 1011 ) (2.7b)
38.8 × 10 6 −1
g 31 ( X 1 ) = = 38.8 × 10 6 X 1 (2.7c)
X1
g 32 ( X 1 ) = g 22 ( X 1 ) (2.7d)
40.355 × 10
( )
6
3 2
g 41 ( X 1 ) = = 1.1549X1 + 0.0900X1 + 0.0152X1 + 0.0025 × 1011 (2.7e)
0.1629 − X 1
g 42 ( X 1 ) =
4.176 × 10 7
0.1016 − X 1
(2
= 1.3895 X 1 - 0.2189 X 1 + 0.0088 × 1013 ) (2.7f)
g 51 ( X 1 ) =
40.355 × 10 6
0.1629 − X 1
(
3 2
= 1.1549X1 + 0.0900X1 + 0.0152X1 + 0.0025 × 1011 ) (2.7g)
22
119.83 × 10 3
g 52 ( X 1 ) = = (8.3664 X 1 + 9.2571)× 10 4 (2.7h)
1.2872 − X 1
La ecuación (2.8) muestra las ecuaciones resultantes del modelo propuesto. A pesar
de que las ecuaciones parecen ser más complejas, el tiempo de cómputo se reduce
debido a que es más fácil para la computadora realizar multiplicaciones y sumas, que
divisiones y especialmente resolver operaciones con exponentes fraccionarios.
Para 0 ≤ X ≤ 0.1016:
d
X& = X (2.8a)
dt
d2
DX& = 2 X (2.8b)
dt
Para 0 ≤ X ≤ 0.01905:
23
P&c1 = g 31 ( X )(m& c1 − 3.608 × 10 −8 Pc1DX )× 106 (2.8d)
( )
P&a1 = g 22 ( X ) m& a1 − 3.7 × 10 −8 Pa1 DX × 1011 (2.8e)
( )
P&c1 = g 32 ( X ) m& c1 − 3.7 × 10 −8 Pc1DX × 1011 (2.8f)
0.075
x [m]
0.05
0.025
0
0 2 5 8 11
t [s]
Figura 10. Modelo original vs. Modelo con polinomios y flujo másico de tercer orden.
Con esta parte del trabajo se muestra una alternativa del modelo termomecánico, de
tal manera que el tiempo de cómputo se reduce de manera significativa al obtener el
24
comportamiento del flujo másico como una función de tipo polinómica. En este
sentido, la mejor opción encontrada es la función polinómica de tercer orden,
reduciendo en más del 90% el tiempo de cálculo computacional, con una
aproximación muy cercana al modelo original.
25
CAPÍTULO 3. CONTROL
26
Control Lineal.
En las aplicaciones de control lineal, el algoritmo más usado es el controlador PID
(Proporcional – Integral – Derivativo) 0 0. Muchos procesos industriales se controlan
utilizando un control proporcional-integral-derivativo (PID), debido a su buen
comportamiento en un amplio intervalo de condiciones de operación y a su sencillez
funcional que permiten una operación directa y sencilla, teniendo como única
limitante la determinación del valor de los parámetros de control que son: ganancia
proporcional, ganancia integral y ganancia derivativa. Sin embargo, existen procesos
en los que un control de este tipo no es suficiente. La figura 11 muestra un diagrama
a bloques representativo del controlador PID, y la ecuación (3.1) muestra la función
de transferencia respectiva.
+ U(s) Y(s)
R(s) PID G(s)
-
Ki
U ( s) = K p + + Kd s (3.1)
s
Donde Kp, Ki y Kd son las ganancias de control, proporcional, integral y derivativa,
respectivamente. La ecuación (3.2) muestra la salida en el dominio del tiempo.
d
u (t ) = K p e(t ) + K i ∫ e(t )dt + K d e(t ) (3.2)
dt
Sin embargo, estas ganancias de control, también llamadas constantes de control, se
representan en ocasiones involucrando el tiempo integral y derivativo, como se
muestra en las ecuaciones (3.3) y (3.4).
Kp
Ki = (3.3)
Ti
K d = K pTd (3.4)
27
El error e(t ) está definido por la diferencia entre el valor de referencia (r) y el valor
actual de la salida (y), como se muestra en la ecuación (3.5).
e(t ) = r − y (t ) (3.5)
CONTROL PROPORCIONAL
Esta parte del control entrega un valor proporcional al error, como se muestra en la
ecuación (3.6), siendo su función de transferencia la mostrada en la ecuación (3.7),
donde K p es la ganancia proporcional ajustable. El controlador proporcional puede
controlar cualquier planta estable, pero posee desempeño limitado y error en régimen
permanente (off-set).
u (t ) = K p e(t ) (3.6)
U ( s) = K p (3.7)
CONTROL INTEGRAL
t
u (t ) = K i ∫ e(τ )dτ (3.8)
0
Ki
U ( s) = (3.9)
s
28
CONTROL PROPORCIONAL – INTEGRAL
Con un control proporcional, es necesario que exista error para tener una acción de
control distinta de cero. Con acción integral, un error pequeño positivo siempre nos
dará una acción de control creciente, y si fuera negativa, la señal de control sería
decreciente. Este razonamiento sencillo nos muestra que el error en régimen
permanente será siempre cero. Muchos controladores industriales tienen solo acción
PI. Un control PI es adecuado para todos los procesos donde la dinámica es
esencialmente de primer orden. La ecuación (3.10) define este tipo de control, y la
ecuación (3.11) muestra la función de transferencia.
Kp t
u (t ) = K p e(t ) +
Ti ∫ e(τ )dτ
o
(3.10)
⎛ 1 ⎞
U ( s ) = K p ⎜⎜1 + ⎟⎟ (3.11)
⎝ Ti s ⎠
La ecuación (3.12) define este tipo de control, y la ecuación (3.13) muestra la función
de transferencia.
d
u (t ) = K p e(t ) + K pTd e(t ) (3.12)
dt
U ( s ) = K p + K pTd s (3.13)
29
Donde Td es una constante de tiempo denominada derivativo. Esta acción tiene
carácter de previsión, lo que hace más rápida la acción de control, aunque tiene la
desventaja importante que amplifica las señales de ruido y puede provocar
saturación en el actuador. La acción de control derivativa nunca se utiliza por sí sola,
debido a que sólo es eficaz durante períodos transitorios.
Este tipo de control reúne las ventajas individuales de los controles anteriores. La
ecuación (3.14) define a este tipo de control PID. La ecuación (3.15) muestra la
función de transferencia.
Kp t d
u (t ) = K p e(t ) +
Ti ∫ e(τ )dτ + K
0
T
p d
dt
e(t ) (3.14)
Kp
U ( s) = K p + + K pTd s (3.15)
Ti s
Control Inteligente.
En el diseño de sistemas de control se ha utilizado desde hace mucho tiempo la
robustez de los resultados de sistema de lazo cerrado. Algunas aplicaciones son muy
críticas, por lo que el proceso de control debe evitar variaciones y fallas que pueden
provocar pérdidas inaceptables 0.
30
clásica trabaja con proposiciones que entregan a la salida, Cierto ó Falso. Cada
proposición tiene su parte contraria, es decir, su negación.
Mientras que la lógica clásica maneja solamente dos valores (cierto ó falso), la lógica
difusa maneja más de dos valores de salida, es decir, es multivalor. Por ejemplo, la
lógica clásica de dos valores lógicos (1, 0), puede ser expandida a tres valores
lógicos, cada uno con su propio valor establecido (1, ½, 0). Para cada una de las
variables de entrada se definen varias funciones lógicas, llamadas función miembro,
donde se definen los intervalos de los valores lógicos. Igualmente, se establece la
función miembro para cada una de las salidas, y finalmente se establecen las reglas
que van a determinar el comportamiento de la salida, de acuerdo a las entradas 0.
Existen diversos métodos para el trabajo con la lógica difusa, en el caso de este
trabajo, se maneja el método directo de Mamdani.
CONTROL NEURONAL-DIFUSO
31
son analíticas y difícilmente pueden ser implementadas en aplicaciones de tiempo
real, especialmente cuando la adaptación a disturbios aleatorios externos es un
requisito importante; este método no puede ser utilizado si las variables como el peso
de la carga y la aceleración del efector final no son conocidas. Para resolver este tipo
de problemas, se puede implementar un controlador Neurofuzzy 0. El controlador
neuronal-difuso combina el proceso de aprendizaje y el ajuste de las salidas con
Lógica Difusa.
Control Discreto
Cuando se desea implementar físicamente un algoritmo de control, especialmente
utilizando computadoras personales, o bien, su implementación en dispositivos
lógicos programables de alta densidad, y auxiliándose con técnicas de VHDL, es
necesario que hablemos entonces de controladores digitales en sistemas de control.
Los beneficios que se pueden obtener son costos mínimos y utilización mínima de
energía.
32
CAPÍTULO 4. PROPUESTA DE CONTROL
33
En este capítulo se desarrolla el algoritmo de control para el actuador neumático con
amortiguamiento en los extremos. Se verán diversos temas como el PID tradicional,
algunas combinaciones con técnicas de Lógica Difusa y algunas combinaciones.
4.1. Metodología
La figura 12 muestra un diagrama a bloques donde se describe la metodología a
seguir para el desarrollo de los algoritmos de control del sistema.
Simulación en una
Modelos dinámicos computadora, y Leyes de
del Actuador y del obtención de los Control del robot
Eslabón Flexible parámetros de ctrl. flexible.
Medición de la
Valores de
posición final y
corrección
cálculo del error.
Posición
final
Figura 12. Metodología de control del actuador neumático para el manipulador flexible.
34
Figura 13. Sistema neumático-mecánico de un robot flexible con un grado de libertad.
⎛2⎞
K e ⎜ ⎟ arctan(βX& )
π
Fsv = K v X& + K c sgn( X& ) + ⎝ ⎠ (4.1a)
1 + δ X&
Fa = p1 Ap − p2 ( Ap − Av ) − Fsv (4.1b)
d
pi = Fi
dt
(4.1c)
d
H Gi = M Gi i = 2,3,...,6
dt
Rf = d (4.1d)
35
A3 A1
Figura 14. Sistema de control neumático. (a) Esquema de conexión. (b) División en tres zonas de
trabajo.
Una vez planteado la manera como se va a controlar el flujo de aire, se inician las
simulaciones del control del cilindro neumático aplicado al manipulador flexible con
diversos algoritmos de control. El flujo de aire es controlado con son válvulas de flujo
proporcionales, cuya apertura depende del resultado de la evaluación del algoritmo
de control.
u = [ A1 , A2 , A3 ] (4.2)
Donde:
36
4.3. Control PID
La figura 15 muestra un diagrama a bloques del planteamiento del control PID
convencional, el cual es utilizado para realizar las primeras pruebas y poder
comprobar que algoritmo genera mejores resultados.
+ e u Actua- x
θp PID Planta θ
dor
-
Figura 15. Control del ángulo θ del brazo flexible, usado con el movimiento del mecanismo.
En el uso del PID se ven involucradas las siguientes variables: el vector de errores
(e) que entra al algoritmo PID, el cuál entrega el vector de porcentajes de apertura
(u), que entran al sistema del actuador neumático, generándose el desplazamiento
del vástago del actuador (X), el que entrega la fuerza suficiente para generar el
movimiento en el brazo flexible y obtener la salida de la planta (θ) deseada.
[
e = e p , ei , ed ] (4.3a)
A j = K p e p + K i ei + K d ed (4.3b)
ep = θ p − θ
(4.4)
ei = ∑ e(Ti ) (4.5)
i
37
Los valores de las constantes de control resultantes se muestran en la tabla 9. La
figura 16 ilustra el resultado de la simulación del control realizado, y el
comportamiento de la velocidad angular en el movimiento del brazo flexible. Se
puede observar que el control es satisfactorio, sin embargo, la velocidad angular del
brazo tiene cambios instantáneos, lo cual podría generar problemas de vibración, y
es un problema que se debe evitar.
80
1.5
61
Angular Velocity [rad/s]
26
Theta [º]
13 0.5
-0.5
-72
-1
0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100
t [s] t [s]
(a) (b)
Figura 16. Resultado de utilizar un control PID clásico. (a) Respuesta del ángulo θ. (b) Respuesta de
la velocidad angular del brazo flexible.
t=tp(m):dt:tp(m)+dt;
38
xinic=xp(m,:);
tsol,xsol] =
ode45('EcsEdo',t,xinic,[],ACA,Cil,Aire,Esl,B4,Pfs);
[m,n]=size(tsol);
tp=[tp; tsol(m)];
xp=[xp; xsol(m,:)];
[Pos,Vel] = PosVel(xsol(m,:),Esl,B4);% Posición y velocidad de
% los eslabones del mecanismo
theta=[theta; Pos(4)*180/pi];
omega=[omega; Vel(4)];
[m,n]=size(tp);
error(2)=error(1);
error(1)=xp(m,1)-sp;
derror=(error(1)-error(2));
ierror=ierror+error(1);
A1=KpA1*error(1)+KiA1*ierror+KdA1*derror;
A2=KpA2*error(1)+KiA2*ierror+KdA2*derror;
A3=KpA3*error(1)+KiA3*ierror+KdA3*derror;
El sentido de movimiento del vástago debe ser controlado, para lo cual se utiliza el
valor del error, como se muestra en el siguiente listado.
39
elseif apertura1 >1.0,
A1=1.0;
end
if apertura2<0.0,
A2=0.0;
elseif apertura2 >1.0,
A2=1.0;
end
if apertura3<0.0,
A3=0.0;
elseif apertura3 >1.0,
A3=1.0;
end
⎡ t
⎤
∑ e(i) + T [e(t ) − e(t − 1)]⎥ + u(0)
T T
u (t ) = K p ⎢e(t ) + c d
(4.7)
⎣ Ti i =1 c ⎦
Donde: u(t) es el vector de variables de control en un instante de tiempo t; u(0) es el
vector de valores iniciales de las variables de control; Kp es la ganancia proporcional;
Ti es el tiempo de integración; Td es el tiempo derivativo, y Tc es el tiempo de control.
Los valores utilizados en el controlador son: Tc = 0.5, Ti = 10.0, Td = 12.5; el valor de
la ganancia proporcional para A1, A2 y A3, son 1.5, -1.5 y 9.5, respectivamente. La
figura 17 muestra el resultado de la simulación al utilizar esta propuesta.
40
Flexible Manipulator Arm Angle Flexible Manipulator Arm Angular Velocity
2
80
1.5
61
26
Theta [º]
13 0.5
-0.5
-72
-1
0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100
t [s] t [s]
(a) (b)
Figura 17. Resultado de la propuesta de control con un algoritmo PID Discreto. (a) ángulo de salida
del brazo flexible. (b) Desempeño de la velocidad angular del brazo.
error(3) =error(2);
error(2) =error(1);
error(1) =sp-x(m,1);
derror=(error(1)-error(2));
ierror=error(1)+error(2)+error(3);
A1=KpA1*(error(1)+Tc/Ti*ierror+Td/Tc*derror);
A2=KpA2*(error(1)+Tc/Ti*ierror+Td/Tc*derror);
A3=KpA3*(error(1)+Tc/Ti*ierror+Td/Tc*derror);
41
que al ocurrir un cambio brusco de velocidad, el controlador debe ajustar la apertura
de las válvulas para realizar la compensación necesaria y lograr mejorar el
desempeño de la planta. La figura 18 nos muestra un diagrama a bloques del
sistema de control.
+ + ΔV
PID Kv
e u
θp Actuator Plant θ
-
42
Mechanism Out Angle Angular Speed
100 1.5
80
60
1
40
omega [rad/s]
20
theta [°]
0.5
0
-20
0
-40
-60
-80 -0.5
0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100
t [s] t [s]
(a) (b)
Figura 19. Resultado de la propuesta de control retroalimentando al controlador PID los cambios de
velocidad del brazo flexible. (a) ángulo de salida del brazo flexible. (b) Desempeño de la velocidad
angular del brazo.
Para este controlador, el proceso es similar, sin embargo, dado que el modelo
termomecánico permite conocer la velocidad angular de cada uno de los eslabones,
de ahí se toman los cambios de velocidad del brazo para retroalimentarlos al proceso
de control. El listado en Matlab se muestra a continuación.
A1=KpA1*error(1)+KiA1*ierror+KdA1*derror+KvA1*dV;
A2=KpA2*error(1)+KiA2*ierror+KdA2*derror+KvA2*dV;
A3=KpA3*error(1)+KiA3*ierror+KdA3*derror+KvA3*dV;
43
Conjuntos Reglas Base
Difusos
+
e(kT)
sp(kT) K3, Kv, Kp
- Proceso Difuso
V
K Kv
+
Contro- + u(kT)
Actuador Planta (kT)
lador X
e p (Tk ) = θ p − θ
(4.10)
ei (Tk ) = e(Tk ) + e(Tk −1 ) + e(Tk −2 ) (4.11)
ed = e(Tk ) − e(Tk −1 ) (4.12)
ΔV = V (Tk ) − V (Tk −1 ) (4.14)
K = [K p , K d , Ki , Kv ] (4.15)
44
Proceso Difuso
El proceso difuso considera varias señales de entrada, como el error (ep), el punto de
referencia (θp), y la salida de la planta (θ). Las salidas son las constantes Kp, Kd, Ki y
Kv, aplicadas a la ecuación de control (4.16). Como punto inicial, se desarrolla una
caracterización del sistema de manera heurística, para tener una idea de los
intervalos que serán necesarios en la definición de las reglas del conjunto difuso. Se
utiliza el método directo de Mamdani, y el método de defusificación es por centroide.
Para la evaluación del control, se utiliza el software MATLAB, aplicado al modelo
termomecánico.
Para encontrar los conjuntos difusos necesarios para controlar el sistema, primero se
consideran Kp, Kd, Ki y Kv iguales a cero, y únicamente se aplica el proceso a Kp. una
vez que se obtuvo una buena respuesta, se agrega al proceso difuso, las reglas para
la constante Ki, posteriormente se hará lo mismo para Kd, Kv y Kv. posteriormente, se
realizan ajustes pequeños para mejorar el desempeño de la planta. A continuación,
se detallan los conjuntos difusos empleados en el sistema de control.
EL PARÁMETRO Kp
El proceso difuso para Kp requiere tres entradas y una salida, como se muestra en la
figura 21. En el conjunto difuso se está empleando las funciones miembro
45
triangulares para cada clase. Las clases para la entrada THETA (θ) son extreme, low
y positive. Las clases para la entrada ERROR son negative big, negative half,
negative small, zero, positive small, positive half y positive big. Las clases para la
entrada de referencia, θp, son set point 1, y set point 2. Las clases para la salida son
small, half, big y very big. Las reglas difusas se muestran en la tabla 11.
EL PARÁMETRO Kv
El proceso difuso tiene las mismas entradas que para el parámetro Kp, y se puede
observar en la figura 22, se utilizan clases miembro triangulares para cada clase. Las
clases para la entrada θ son low y high. Las clases para la entrada ERROR son
negative y positive. Las clases para la entrada del punto de referencia son: negative
5, negative 4, negative 3, negative 2, negative 1 y positive. Las clases para la salida
son: zero, very small, small, half, regular y high. El parámetro Kv permite eliminar los
cambios abruptos de velocidad en el movimiento del sistema. Las reglas difusas se
muestran en la tabla 12.
46
Input: Theta Input: Error
Extreme Low Positive NBig NHalf NSmall Zero PSmall PHalf PBig
1 1
0 0
-80 -60 -30 0 40 80 -80 -65 -50 -40 -30 -15 0 15 30 40 50 65 80
0 0
-80 -70 20 80 0.7 0.9 1.5 1.7 1.9 2.1 2.9 3.1
-3
x 10
0 0
-80 -70 -60 15 -80 -40 0 40 80
0 0
-80 -70 -60 -50 -40 -30 -20 -10 0 40 80 0 0.1 0.2 0.3 0.4 0.5 0.6
47
EL PARÁMETRO K3
El proceso para K3 requiere únicamente una entrada y una salida, como se muestra
en la figura 23, utilizando funciones triangulares para cada miembro de clase. Las
clases para la entrada del punto de referencia son very down, negative down, regular
down, down y up. Las clases para la salida son very few, few, half, high, very high y
all. Este parámetro ayuda a controlar la salida del aire de retorno del sistema, y es
importante para minimizar un sobretiro en la salida de la planta. Las reglas difusas se
muestran en la tabla 13.
0
-80 -60 -40 -15 40 80
Ouput: K3
VFew Few Half High VHigh All
1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
48
LOS PARÁMETROS DE CONTROL Kd Y Ki.
Los valores óptimos de estos parámetros resultaron ser cero. Debido a lo anterior,
los parámetros de control Kd y Ki no son usados en la ecuación (4.16). Se concluye
lo anterior por simulación, donde estos dos parámetros causan una pequeña
inestabilidad en el sistema cuando se les da valores diferentes a cero.
La ecuación (4.17) muestra la ecuación final obtenida para ser utilizada en conjunto
con un algoritmo difuso. Los valores de las válvulas representan un porcentaje de
apertura, donde 0 significa totalmente cerrado y 1 es totalmente abierto. La apertura
de la válvula A2, es igual a la apertura de la válvula A1, debido a que en la práctica,
por la figura 14, son la misma válvula, aunque el modelo matemático requiere que se
manejen las tres válvulas. El valor de A3, depende de A1, debido a que únicamente
se necesita controlar el retorno de aire del sistema, para obtener un mejor
desempeño. La válvula A3, es importante para detener el movimiento del vástago
cuando el brazo está cerca del punto de referencia en las direcciones ascendentes y
descendentes.
49
Angulo de salida del brazo flexible Velocidad del vastago respecto al cilindro
100 0.08
80 0.06
60
0.04
40
0.02
Theta [º]
20
V [m/s]
0
0
-0.02
-20
-0.04
-40
-60 -0.06
-80 -0.08
0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100
t [s] t [s]
Figura 24. Resultado de utilizar lógica difusa para determinar las ganancias del controlador PID.
La figura 25 muestra una comparación entre los resultados de utilizar el control PID
clásico, contra la combinación de un algoritmo difuso para determinar las ganancias
del controlador PID. Como se puede observar en la figura, el movimiento utilizando el
algoritmo de lógica difusa es mejor que sin ella, evitando cambios bruscos de
velocidad en el desplazamiento del vástago del cilindro neumático, por lo que en este
caso, el resultado fue mejor combinando ambas técnicas de control.
angulo de salida del Manipulador Flexible Velocidad del vastago respecto al cilindro
100 0.08
Sin Logica Difusa
80 Con Logica Difusa
0.06
60
0.04
40
0.02
Theta [º]
20
V [m/s]
0
0
-0.02
-20
-60 -0.06
-80 -0.08
0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100
t [s] t [s]
Figura 25. Comparación del controlador PID con y sin lógica difusa.
50
Control Difuso
+ e Algoritmo u X
θp Actuador Planta θ
- difuso
Las ecuaciones (4.18) a (4.20) representan el error, y los valores de apertura de cada
válvula.
e = θp −θ
(4.18)
[A1 , A3 ] = fuzzy(θ p ,θ , e) (4.19)
A2 = A1 (4.20)
Las variables de entrada y salida al proceso difuso se muestran en la tabla 14. Por la
ecuación (4.20), la salida A2 no se considera. En el proceso difuso se utilizan
funciones miembro triangulares, que se muestran en la figura 27. El método de
defusificación es por centroide.
Las funciones miembro de la figura 27, se utilizan para controlar la posición del
actuador neumático que se encarga de dar la fuerza al manipulador de la figura 13.
51
Debido a que cada función está definida por un triangulo, es necesario definir los
valores de los vértices de cada triángulo, los cuales se muestran en la tabla 15. 0y 0
Tabla 15. Vértices de las funciones para las variables de entrada REFERENCIA y ÁNGULO.
Intervalo para REFERENCIA y ÁNGULO: -80º ≤ θp ≤ 80º
Función Miembro Vértices del triángulo
LOW [-144 -80 -20]
HALF [-64 0 64]
UP [16 80 144]
Tabla 16. Vértices de las funciones para las variables de salida A1 y A3.
Intervalo de A1 y A3: 0.0 ≤ θp ≤ 0.1
Función miembro Vértices del triángulo
ZERO [-0.01 0.000 0.010]
FEW [ 0.00 0.010 0.015]
HALF [ 0.01 0.050 0.075]
ALL [ 0.05 0.075 0.100]
52
Funciones Miembro para REFERENCIA Funciones Miembro para ANGULO
LOW HALF UP LOW HALF UP
1 1
0.8 0.8
0.6
PESO
0.6
PESO
0.4 0.4
0.2 0.2
0 0
-80 -60 -40 -20 0 20 40 60 80 -80 -60 -40 -20 0 20 40 60 80
ANGULO ANGULO
(a) (b)
Funciones Miembro para ERROR (Parte I) Reference Memberships for ERROR (Parte II)
UP NEG2 POS2 DOWN NEG1 ZERO POS1
1 1
0.8 0.8
0.6 0.6
PESO
PESO
0.4 0.4
0.2 0.2
0 0
-80 -60 -40 -20 0 20 40 60 80 -4 -3 -2 -1 0 1 2 3 4
ANGULO ANGULO
(c) (d)
Funciones Miembro para A1 Funciones Miembro para A3
ZERO FEW HALF ALL ZERO FEW HALF ALL
1 1
0.8 0.8
0.6 0.6
PESO
PESO
0.4 0.4
0.2 0.2
0 0
-0.01 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 -0.01 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09
ANGULO ANGULO
(e) (f)
Figura 27. Funciones miembro para las variables de entrada y salida de la tabla 14.
53
Las reglas difusas fueron organizadas en una tabla, para fácil revisión. Las entradas
y salidas están en diferentes columnas, de tal manera, que las salidas de un renglón,
corresponden a las entradas del mismo renglón. Esto se puede observar en la tabla
18. El proceso difuso se compone de 25 reglas en total, y el resultado de utilizar este
método se muestra en la figura 28. Como se puede observar, en el movimiento de la
planta hacia -70º, se tiene un movimiento subamortiguado, y se puede apreciar
movimientos bruscos del brazo.
Tabla 18. Conjunto de reglas difusas usadas en el proceso de control del actuador neumático.
INPUT OUTPUT
Referencia Angulo Error A1 A2
LOW LOW NEG2 FEW FEW
LOW LOW NEG1 FEW ZERO
LOW LOW ZERO ZERO ZERO
LOW LOW ZERO ZERO ZERO
LOW LOW POS1 FEW ZERO
LOW LOW POS2 FEW FEW
LOW HALF DOWN HALF FEW
LOW UP DOWN ALL HALF
HALF LOW UP HALF FEW
HALF HALF UP FEW FEW
HALF HALF NEG2 FEW FEW
HALF HALF NEG1 FEW ZERO
HALF HALF ZERO ZERO ZERO
HALF HALF POS1 FEW FEW
HALF HALF POS2 FEW FEW
HALF HALF DOWN HALF FEW
HALF UP DOWN HALF HALF
UP UP UP FEW FEW
UP UP NEG1 FEW ZERO
UP UP NEG2 FEW FEW
UP UP ZERO ZERO ZERO
UP UP POS1 FEW ZERO
UP UP POS2 FEW FEW
UP HALF UP HALF HALF
UP LOW UP HALF HALF
54
Angulo de Salida de la Planta Angulo del seguidor del mecanismo de 4 barras
0.0343
80
60 0.0206
25 0.007
theta [°]
theta [°]
12
-0.0067
-0.0204
-0.0341
-72
0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100
t [s] t [s]
Angulo del Brazo del Manipulador Flexible Velocidad del Vastago Relativo al Cilindro
100 0.08
Controlador Difuso
80 Controlador Difuso Controlador Difuso-PID
Controlador Difuso-PID 0.06
60
0.04
40
0.02
Theta [º]
20
V [m/s]
0
0
-0.02
-20
-0.04
-40
-60 -0.06
-80 -0.08
0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100
t [s] t [s]
Figura 29. Comparación de la respuesta de la planta con un controlador Difuso vs. controlador Difuso-
PID.
Error=abs(error(1));
DVel=abs(Verror);
if Error>10,
Error=10;
end
55
%%% Se define la entrada 1, de nombre Error
a = addvar(a,'input','Error',[0 160]);
a = addmf(a,'input',1,'EZ' ,'trimf',[-2 0 2 ]); % Cero
a = addmf(a,'input',1,'EP' ,'trimf',[ 0 2 4 ]); % Pequeño
a = addmf(a,'input',1,'EM' ,'trimf',[ 2 4 6 ]); % Mediano
a = addmf(a,'input',1,'EG' ,'trimf',[ 4 6 8 ]); % Grande
a = addmf(a,'input',1,'EMG','trimf',[ 6 8 10]); % Muy grande
a = addmf(a,'input',1,'EDG','trimf',[8 10 12]);% Demasiado grande
RuleList = [
1 1 1 1 1
2 2 5 1 1
3 1 1 1 2
3 2 4 1 1
4 2 3 1 1
5 1 2 1 1
5 4 1 1 2
];
a = addrule(a,RuleList);
[d]=reglas(a, 1, [Error, DVel]);
A1=abs(error(1)/d+Verror*0.3+0.001*derror+0.0001*ierror);
A2=apertura1;
A3=apertura1;
56
función de activación sigmoide. La capa de salida es lineal y tiene también una sola
neurona 0.
Red Neuronal
+
e(k T)
θp (kT) K3, Kv , Kp
-
ΔV
K Kv
+
+ u(k T )
PID Actuador Planta θ(kT )
X
x(t ) = [e p (t ) Δe p (t )] (4.21)
Donde
e p ( t ) = θ d ( t ) − θ( t ) (4.22)
Las redes neuronales están entrenadas por medio del algoritmo de backpropagation,
que se desarrolla para los cambios de las ganancias proporcional y derivativa del
controlador. Se escoge el algoritmo de backpropagation debido a que es sencillo, y
permite el entrenamiento en línea. La función que debe ser minimizada por medio de
redes neuronales es la función cuadrática de la ecuación (4.23).
1
E( t ) =
2
∑ e 2p ( t ) (4.23)
57
Angulo del seguidor del mecanismo de 4 barras Angulo del seguidor del mecanismo de 4 barras
100 100
80 80
60 60
40 40
theta6 [°]
theta6 [°]
20 20
0 0
-60 -60
-80 -80
0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100
t [s] t [s]
Los valores de las referencias utilizadas en la figura 31 son: 60º, 12º, -72º, 25º y 79º;
así mismo, se incluye una comparación con resultados obtenidos utilizando control
clásico PID y control difuso-PID. La figura 31(b) muestra que el mejor resultado se
obtiene cuando se utiliza el control neuronal-PID, especialmente cuando la referencia
es cercana a -80º. En este punto, la posición del vástago es cercana al final de
carrera, y por lo tanto cerca del área de amortiguamiento, por lo que el cilindro debe
soportar las fuerzas inerciales generadas por el peso del mecanismo y del brazo.
58
permite calcular operaciones aritméticas en menos tiempo que un microcontrolador,
inclusive, es posible lograr mayores velocidades de muestreo en comparación con
los procesadores digitales de señales (DSP), los microcontroladores y las PC 0. Los
microcontroladores y los DSP tienen una estructura secuencial, razón por lo que se
requiere varios ciclos de reloj para calcular operaciones matemáticas, y no se puede
garantizar altas velocidades de muestreo cuando el algoritmo tarda varios ciclos en
realizar un cálculo; especialmente, su hardware no es reconfigurable. Por otro lado,
la integración del FPGA y su portabilidad es muy importante para la implementación
de estructuras complementarias en hardware, tales como un controlador PD,
controlador de comunicación serial RS232, generador de tiempo de muestreo, los
controladores del convertidor analógico-digital (ADC) y el convertidor digital-
analógico (DAC). Una de las principales contribuciones de este trabajo es el
desarrollo de un controlador basado en FPGA para un actuador neumático, utilizando
el lenguaje descriptivo de hardware para dispositivos de muy alta velocidad (VHDL).
Es importante notar que una computadora personal es más costosa que un sistema
con FPGA, no se pueden obtener altas velocidades d muestreo en una PC debido a
todos los procesos digitales ejecutados por el sistema operativo, y se requieren
muchos ciclos de reloj para resolver una operación aritmética. En este trabajo, la PC
es utilizada únicamente para almacenar datos y mostrar resultados gráficos.
Por las razones dadas previamente, diversos controladores digitales han sido
implementados en dispositivos FPGA 0, y se han desarrollado algunas metodologías
para la implementación de controladores PID basados en FPGA 0. Los sistemas
embebidos son importantes debido al incremento de la integración de sistemas
mecánicos con electrónica digital y el procesamiento de la información 0, sin
embargo, los controladores basados en FPGA no han sido utilizados para sistemas
neumáticos, y las aplicaciones como el desarrollo de manipuladores flexibles no han
sido consideradas. En esta sección se presenta un controlador embebido para la
posición del vástago de un actuador neumático en aplicaciones de manipuladores
flexibles.
59
Para poder comparar los resultados de la simulación con la experimentación, se ha
implementado un controlador PID en un FPGA. A continuación se describen los
módulos de hardware utilizados, así como la implementación física.
Descripción experimental.
60
obtenidos de A1 y A3 son enviados por el FPGA al DAC para obtener el valor
analógico de la apertura de las válvulas. El canal A es usado para la válvula A1 y el
canal B es usado para la válvula A3. El FPGA utilizado tiene 12 módulos
multiplicadores de 18 bit, y el formato numérico utilizado es 8.10 de punto fijo. El
controlador embebido es implementado en una tarjeta Spartan-3 Kit, de Xilinx 0.
61
⎡ A1 (Tk ) ⎤ ⎡ K p e p (Tk ) + K d ed (Tk )⎤
u = ⎢⎢ A2 (Tk )⎥⎥ = ⎢⎢ K p e p (Tk ) + K d ed (Tk )⎥⎥ (4.24)
⎢⎣ A3 (Tk ) ⎥⎦ ⎢⎣ K3 ⎥⎦
Figura 34. Arquitectura PD utilizada para controlar el flujo de aire con la válvula proporcional.
62
e(Tk ) = θ p − θ (Tk ) (4.26)
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_signed.all;
entity Multiplica is
generic(
n: integer := 18
);
port(
Kp : in std_logic_vector(n-1 downto 0);
Kd : in std_logic_vector(n-1 downto 0);
ek : in std_logic_vector(n-1 downto 0);
ek1: in std_logic_vector(n-1 downto 0);
A : out std_logic_vector(n-1 downto 0)
);
end Multiplica;
Derivativo: process(Kd,ek,ek1)
variable P2: signed(2*n-1 downto 0);
variable P3: signed(2*n-1 downto 0);
begin
P2:= signed(ek)-signed (ek1);
P3:= signed (Kd)*signed(P2);
m2<= std_logic_vector(P3);
end process Derivativo;
A<= m1+m2;
end Multiplica;
63
Las variables Kp y Kd corresponden a las constantes de control proporcional y
derivativo, respectivamente. La variable ek es el error actual, y ek1 es el error un
instante de tiempo anterior. Finalmente, A es el valor de apertura de la válvula
respectiva. Es importante el manejo de las operaciones dentro de un proceso, pues
de lo contrario, los resultados serán incorrectos, y no se podría controlar el proceso.
Limitador: process(A)
begin
if(A>"000000001111111111") then
B<="000000001111111111";
else
B<=A;
end if;
end process Limitador;
Figura 35. Prototipo del robot manipulador flexible. (a) Vista general. (b) Mecanismo impulsor. (c)
Sensor de posición.
64
Figura 36. Hardware utilizado en la implementación del controlador del robot manipulador flexible.
65
parámetros de control. Los valores resultantes que permiten obtener un buen
comportamiento, así como el valor decimal, la representación en punto fijo, y el
intervalo de posición del vástago donde se utiliza el valor, se muestran en la tabla 19.
Resultados
66
Step response f or Z1 zone
39
30
X [mm]
20
8 Rod Displacement
Reference
0
0 5 Time [s] 10 15
71
60
X [mm]
50
39 Rod Displacement
Reference
0 5 Time [s] 10 15
90
X [mm]
80
Rod Displacement
Reference
71
0 5 Time [s] 10 15
Tabla 20. Características del control del manipulador flexible de un grado de libertad.
Z1 Media Z2
P D P D P D
Tiempo de retardo (seg) 2.0 0.08 1.6 0.07 0.6 0.04
Tiempo de ascenso (seg) 3.2 0.10 2.2 0.09 0.9 0.04
Tiempo de establecimiento (seg) 3.6 0.11 2.6 0.09 1.0 0.07
Tiempo de pico (seg) --- --- 3.0 0.09 1.4 0.07
Máximo sobre-impulso --- --- 1.40% 0.20% 3.10% 0.22%
67
referencia que involucran las tres zonas de la carrera del vástago. Tales variaciones
se consideran como un comportamiento aceptable. La línea continua muestra el
comportamiento real obtenido en la práctica, mientras que la línea punteada muestra
la trayectoria deseada con los puntos de referencia. La figura 41 muestra la gráfica
del error correspondiente a la respuesta de la planta, respecto a los valores de
referencia.
PD Control Results
75.3
Theta [Degrees]
38.8
-3.8
PD Control Error
60
40
20
Theta [Degrees]
-20
-40
-60
0 20 40 60 Time [s] 80 100 120 140
Figura 41. Comportamiento del error del proceso de control de posición del robot manipulador flexible.
68
La estrategia propuesta es factible para controlar el sistema con actuador neumático.
El controlador es programado en un dispositivo FPGA número XC3S200, con
empaquetamiento FT256, manufacturado por Xilinx. El sistema requiere 12,338
compuertas y dos multiplicadores de 18 bit.
69
Tabla 23. Publicaciones realizadas en capítulos de libros.
Titulo Libro
Pneumatic Fuzzy Controller Simulation vs Practical Automation and Robotics. International Journal of
Results for Flexible Manipulator Advanced Robotics Systems. Aceptado, se enviará
version final antes del 20 de febrero del 2008, y se
publicará en abril del 2008.
Fuzzy and Neuronal Control to Flexible Manipulator International Journal of Factory Automation, Robotics
and Soft Computing, Issue 2, april 2007, pp. 155-160,
ISSN 1828-6984. (coautor)
Fuzzy and Neuronal Control to Flexible Manipulator International Society for Advanced Research, Emerging
Technologies, Robotics and Control Systems, volume
2, pp. 56-61, ISBN 978-88-901928-2-1. (coautor)
A Mechatronics Methodology New Trends in electronics Technology. Pp. 84-92. ISBN
978-970-773-345-9. (coautor)
70
CAPÍTULO 5. CONCLUSIONES Y TRABAJO FUTURO
71
Los manipuladores flexibles con actuadores neumáticos para aplicaciones
industriales, no han sido encontrados en trabajos previos; sin embargo, el desarrollo
practico de este tipo de robots con actuador neumático es factible, y pueden ser
utilizados en la limpieza de aisladores de porcelana para líneas aéreas de alta
tensión, para pintar estructuras altas, ó bien, aplicaciones industriales donde se
requiere que el robot sea ligero, económico y una mayor relación potencia-peso.
72
posición del vástago de un actuador neumático, aplicado a un manipulador flexible de
un grado de libertad. De la misma forma, se contribuyó a la simplificación del modelo
termomecánico, logrando disminuir el tiempo de cómputo, y en consecuencia,
disminuir el tiempo para sintonizar los controladores, en las simulaciones realizadas
en la computadora, debido a que una vez que se cuenta con el modelo matemático,
se puede hacer uso de diversas técnicas de simulación para poder tener una idea de
los valores iniciales de los parámetros de control, especialmente porque se requiere
trabajar en formato binario, y por lo tanto, es necesario el uso del formato de punto
fijo.
73
REFERENCIAS
74
Festo; Comparison, pneumatic vs. electrical; http://www.festo.com; July 3rd 2006.
Constantinos Mavroidis, Charles Pfeiffer and Michael Mosley; Invited Chapter in Automation, Miniature
Robotics and Sensors for Non-Destructive Testing and Evaluation; Robotics and Mechatronics Laboratory,
Department of Mechanical and Aerospace Engineering; Y. Bar-Cohen Editor; April 99
Constantinos, M., 2002. Development of Advanced Actuators Using Shape Memory Allows and
Electrorheological Fluids. Research in Nondestructive Evaluation. Springer New york ISSN 0934-9847. 14,
1-32.
Richer E, Hurmuzlu Y. A High Performance Pneumatic Force Actuator System. ASME Journal of Dynamic
Systems Measurement and Control 2000. 122:416-425.
Mirro, John; Automatic Feedback Control of a Vibrating Beam; Master Th.; Dept. of Mechanical
Engineering, Massachussets Institute of Technology, August 1972.
Xuru, D., Tzyh, J.T., Antal, K.B., 1988. A Novel Approach to the Modeling and Control of Flexible Robot
Arms. Proceedings of the 27th Conference on Decision and Control, Austin, Texas USA, 52-57.
Bremer H, Pfeiffer F. Experiments with flexible manipulators. Control engineering practice, 1995, 3:1331-
1338.
Panu, C., David B., 1999. A Case Study of Robust Control Experiment on One-link Flexible Robot Arm.
Proceedings of the 38th Conference on Decision and Control, Phoenix, Arizona USA, 4319-4324.
W. Book, K. Obergfell; Practical Models for Practical Flexible Arms; Proc. 2000 IEEE int. Conf. On robotics
and Automation, San Francisco CA, April, 2000.
M. O. Tokhi, Z. Mohamed, H. M. Amin, R. Mamat; Dynamic Characterization of a Flexible manipulator
System: Theory and Experiments; IEEE August, 2000.
Somolinos J, Feliu V, Sánchez L. Design, dynamic modeling and experimental validation of a new three-
degree-of-freedom flexible arm. Mechatronics, 2002; 12:919–948.
Vicente Feliu, José A. Somolinos, and Andrés García. Inverse Dynamics Based Control System for a
Three-Degree-of-Freedom Flexible Arm. IEEE Transactions on Robotics and Automation, Vol. 19, No. 6,
December 2003.
Rong, J.W., Rou, Y.D., Wen, H.W., Li, W.L., 2003. Implementation of Artificial Intelligent Control in Single-
Link Flexible Robot Arm. Proceedings 2003 IEEE International Symposium on Computational Intelligence in
Robotics and Automation. Kobe, Japan, 1270-1275.
Joaquín Pérez Meneses; Análisis Dinámico de Mecanismos Accionados Neumáticamente; Tesis de
Doctorado; Facultad de Ingeniería Mecánica, Eléctrica y Electrónica, FIMEE; Salamanca, Gto.; Marzo
2003.
Gu M, Piedbœuf JC. A flexible-arm as manipulator position and force detection unit. Control Engineering
Practice, 2003, 11:1433-1448.
Rong, J.W., Meng, C.L., 2004. Intelligent Optimal Control of Single-Link Flexible Robot Arm. IEEE
Transactions on Industrial Electronics, 51, 201-220.
Alessandro Gasparetto; On the Modeling of Flexible-Link Planar Mechanisms: Experimental Validation of
an Accurate Dynamic Model; Journal of Dynamic Systems, Measurement, and Control, June 2004, Volume
126, Issue 2.
Fernando F. Kiyama, José emilio Vargas Soto; Modelado de un Brazo Flexible de un Grado de Libertad
Operado Neumáticamente; International Symposium of Robotics and Automation 2004.
Jorge M. Martins, Miguel A. Botto, José Sá da Costa; Flexible Manipulators: Modelling and Experimental
Setup; Mechatronics & Robotics ’04; Aachen – Germany; September 13; 2004.
J. Reis, J. Sá da Costa; Design Concepts for an Intelligent Flexible Robot Link; Mechatronics & Robotics
75
’04; Aachen – Germany; September 13; 2004.
Cheong J, Kyun W, Youm Y. Inverse Kinematics of Multilink Flexible Robots for High-Speed Applications.
IEEE Transactions on Robotics and Automation, 2004; 20:269-282.
Etxebarria V, Sanz A, Lizarraga I. Control of a Lightweight Flexible Robotic Arm Using Sliding Modes.
International Journal of Advanced Robotic Systems, 2005; 2:103-110.
Burrows C.R., Webb C.R.; Simulation of an On – Off Pneumatic Servomechanism; Automatic Control
Group, 1968.
Varseveld RB, Bone GM. Accurate Position Control of a Pneumatic Actuator Using On/Off Solenoid Valves.
IEEE/ASME Transactions on Mechatronics, 1997; 2:195-204.
Henri PD, Hollerbach JM, Fellow, Nahvi A. An Analytical and Experimental Investigation of a Jet Pipe
Controlled Electropneumatic Actuator. IEEE Transactions on Robotics and Automation, 1998; 14:601-611.
Wang J., Pu J., Moore P. A practical control strategy for servo-pneumatic actuator systems. Control
Engineering Practice, 1999, 7:1483-1488.
Hipólit Moreno Llagostera; Control of a Pneumatic Servosystem Using Fuzzy Logic; Proc. Of 1st FPNI-PhD
Symp. Hamburg 2000.
Pei Xiang, Zheng Jiajin, Yang Jilong, Ruan Jian; 2D Pneumatic Digital Servo Valve; Fifth International
Conference on Fluid Power Transmission and Control, ICFP, China; Department of Mechanical
Engineering, University of Technology Hangzhou, China, and University of Saskatchewan, Canadá; April
2001
Joono, C., Wan, K.C., Youngil, Y., 2001. Fast Suppression of Vibration for Multi-link Flexible Robots using
Parameter Adaptive Control. Proceedings of the 2001 IEEE/RSJ International Conference on Intelligent
Robots and Systems, Maui, Hawaii, USA, 913-918.
Kojima, H., Kibe, T., 2001. Optimal Trajectory Planning of a Two-Link Flexible Robot Arm based in Genetic
Algorithm for Residual Vibration Reduction. Proceedings of the IEEE/RSJ International Conference on
Intelligent Robots and Systems, Maui, Hawaii, USA, 2276-2281.
Caldwell DG, Tsagarakisa N, Medrano-Cerda GA, Schofieldb J, Brown S. A pneumatic muscle actuator
driven manipulator for nuclear waste retrieval. Control Engineering Practice, 2001, 9:23-36.
Juan Carlos Burbano Jaramillo, Germán A. Bacca Bastidas, Mario Hoyos Mesa, Control de Posición y
Presión para Manipulador Neumático a Través de PC, 2003.
Kiyama F., Vargas E.; Modelo Integral del Accionamiento Neumático para un Robot Flexible Industrial;
CRODE-CIDESI; 2º Congreso Nacional de Mecatrónica, 2003.
Istók B, Szente V, Vad J. Behavior of a Pneumatic Pressure Regulator Valve under Leakage
Circumstances. 2nd International Conference on Heat Transfer, Fluid Mechanics and Thermodynamics.
2003.
E. Quiles, F. Morant, E. García, R. Blasco, A. Correcher; Control Adaptivo de un Sistema de Control
Neumático; 3ra. Conferencia Iberoamericana en Sistemas, cibernética e Informática CISCI, Julio 2005.
Massimo, S., Giorgio, F., Stefano, P., 2004. Dynamic Model and Experimental Investigation of a Pneumatic
Proportional Pressure Valve. IEEE/ASME Transactions on Mechatronics, 9, 78-86.
Wang J, Wang JD, Daw N, Wu QH. Identification of Pneumatic Cylinder Friction Parameters Using Genetic
Algorithms. IEEE/ASME Transactions On Mechatronics, 2004; 9:100-107.
Richardson R, Brown M, Bhaktac B, Levesleyd M. Impedance control for a pneumatic robot-based around
pole-placement, joint space controllers. Control Engineering Practice, 2005; 13:291-334.
Ramos JM, Gorrostieta E, Vargas JE, Pedraza JC, Romero R, Ramírez B. Pneumatic Cylinder Control for a
Flexible Manipulator Robot. Methods and Models in Automation and Robotics, MMAR 2006.
Fernando F. Kiyama, José E. Vargas; Modelo Termo-Mecánico Para Un Manipulador Tipo Dieléctrico;
Información Tecnológica; volumen 15; número 5; páginas 23 a 31; 2004; ISSN 0716-8756.
76
Richard C. Dorf & Robert H. Bishop; Sistemas de Control Moderno; 10ª edición; Pearson Prentice Hall;
ISBN 84-205-4401-9; pp. 391 – 393.
William S. Levine; The Control Handbook; CRC Press; ISBN 0-8493-8570-9; pp. 198 – 209.
Virginia Mazzone; Controladores PID, Automatización y Control Industrial; Universidad Nacional de
Quilmas; Marzo 2002.
Jeffrey T. Spooner, Manfredi Maggiore, RaúI Ordóñez, Kevin M. Passino; Stable Adaptive Control
and Estimation for Nonlinear Systems, Neural and Fuzzy Approximator Techniques; Wiley – Interscience;
2002; ISBN 0-471-22113-9; pp. 1 – 10.
George J. Klir, Bo Yuan; Fuzzy Sets and Fuzzy Logic, Theory and Applications; Prentice Hall, 1995; ISBN
0-13-101171-5; pp. 212 – 244.
Vojislav Kecman; Learning and Soft Computing, Support Vector Machines, Neural Networks, and Fuzzy
Logic Models; 2001 Massachusetts Institute of Technology; ISBN 0-262-11255-8; pp. 9 – 23.
Constantin von Altrock, M. Sc. E. E., M. O. R., Inform Software Corporation; Fuzzy Logic and NeuroFuzzy
Applications in Industrial Automation and Process Control; Proceedings of the Fifth IEEE International
Conference on Fuzzy Systems; Volume 3, Issue , 8-11 Sep 1996; pp. 1845 – 1851
Katsuhiko Ogata; Sistemas de Control en Tiempo Discreto; Segunda Edición; Pearson Educación; ISBN
968 – 880 – 539 – 4; pp. 1 – 22.
Alberto A. Behar; Temas de Identificación y Control Adaptable; Instituto de Cibernética, Matemática y
Física; 2000; ISBN 959-7056-11-9.
Osornio-Rios, R. A., et al. The application of reconfigurable logic to high speed CNC milling machines
controller. Control Engineering Practice (2007), oi:10.1016/j.conengprac.2007.08.004
Sornam V. Embedded Control Using FPGA. Seminar Report, Interdisciplinary Programme in Systems and
Control Engineering, Indian Institute of Technology, 2005.
Lima J, Menotti R, Cardoso JMP, Marques E. A Methodology to Design FPGA-based PID Controllers. IEEE
International Conference on Systems, Man, and Cybernetics (SMC), 2006.
Isermann R. Mechatronic systems—Innovative products with embedded control. Control and Practice, 2007
on line.
Xilinx. (2005). Spartan-3 Family FPGAs Data Sheet. <www.xilinx.com>
Binnard, M., Boadicea: A Small Pneumatic Walking Robot; Master of Science Thesis; Artificial Intelligence
Laboratory, MIT, 1995.
Efren Gorrostieta, Juan Manuel Ramos, J. Carlos Pedraza. Fuzzy and Neuronal Control to Flexible
Manipulator. International Journal of Factory Automation, robotics and Soft Computing, Issue 2, April 2007,
ISSN 1828-6984
77
ANEXOS
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103