diseño y simulación de un sistema mecánico subactuado

344
DISEÑO Y SIMULACIÓN DE UN SISTEMA MECÁNICO SUBACTUADO: PÉNDULO INVERTIDO TRASLACIONAL CONFIGURABLE ILDEFONSO COLLAZOS MAMIAN EDWIN FERNANDO ERAZO MUÑOZ OSCAR ROMAN MORA CARABALI UNIVERSIDAD AUTONOMA DE OCCIDENTE FACULTAD DE INGENIERIA DEPARTAMENTO DE AUTOMATICA Y MECANICA PROGRAMA DE INGENIERA MECATRONICA SANTIAGO DE CALI 2006

Upload: others

Post on 16-Oct-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diseño y Simulación de un sistema mecánico subactuado

� � ��

DISEÑO Y SIMULACIÓN DE UN SISTEMA MECÁNICO SUBACTUADO: PÉNDULO INVERTIDO TRASLACIONAL CONFIGURABLE

ILDEFONSO COLLAZOS MAMIAN EDWIN FERNANDO ERAZO MUÑOZ OSCAR ROMAN MORA CARABALI

UNIVERSIDAD AUTONOMA DE OCCIDENTE FACULTAD DE INGENIERIA

DEPARTAMENTO DE AUTOMATICA Y MECANICA PROGRAMA DE INGENIERA MECATRONICA

SANTIAGO DE CALI 2006

Page 2: Diseño y Simulación de un sistema mecánico subactuado

� � ��

DISEÑO Y SUMILACIÓN DE UN SISTEMA MECÁNICO SUBACTUADO: PÉNDULO INVERTIDO TRASLACIONAL CONFIGURABLE

ILDEFONSO COLLAZOS MAMIAN EDWIN FERNANDO ERAZO MUÑOZ OSCAR ROMAN MORA CARABALI

Trabajo de grado para optar al titulo De Ingeniero Mecatrónico

Director FREDDY NARANJO PEREZ

Ingeniero Mecanico Doctor en Automática e Informática Industrial

UNIVERSIDAD AUTONOMA DE OCCIDENTE FACULTAD DE INGENIERIA

DEPARTAMENTO DE AUTOMATICA Y MECANICA PROGRAMA DE INGENIERA MECATRONICA

SANTIAGO DE CALI 2006

Page 3: Diseño y Simulación de un sistema mecánico subactuado

� � ��

JUAN CARLOS MENA

�����������������������������

Jurado

JUAN CARLOS PERAFAN

_________________________�

Jurado

Santiago de Cali, 16 de Febrero de 2006

Nota de Aceptación

Trabajo aprobado por el comité de grado

por el cumplimiento de los requisitos

exigidos por la Universidad Autonoma de

Occidente para optar al titulo de Ingeniero

Mecatrónico

Page 4: Diseño y Simulación de un sistema mecánico subactuado

� � ��

CONTENIDO Pág.

RESUMÉN 15

INTRODUCCIÓN 17

1. OBJETIVOS 19

1.1 OBJETIVO GENERAL. 19

1.2 OBJETIVOS ESPECIFICOS. 19

2. MODELAMIENTO Y ANALISIS MATEMÁTICO 20

2.1. PÉNDULO SIMPLE 20

2.1.1 Modelo no lineal 21

2.1.2 Linealización del modelo matemático 25

2.1.3 Representación en el espacio de estados 25

2.2 PÉNDULO DOBLE 28

2.2.1 Modelo no lineal 29

2.2.2 Linealización del modelo matemático 38

2.2.3 Representación en el espacio de estados 39

2.3 VALIDACIÓN DE LOS MODELOS MATEMÁTICOS 43

2.3.1 Modelo Péndulo Invertido Simple 44

2.3.2 Modelo del Péndulo Invertido Doble 48

2.4 ANALISIS DE CONTROLABILIDAD 53

2.4.1 Péndulo Invertido Simple. 53

2.4.2 Péndulo Invertido Doble 54

Page 5: Diseño y Simulación de un sistema mecánico subactuado

� � ��

Pág.

3. PLANEACIÓN DEL PRODUCTO 55

3.1. JUSTIFICACIÓN 55

3.2. PLANTEAMIENTO DE LA MISIÓN 56

4. DESARROLLO CONCEPTUAL 58

4.1 IDENTIFICACIÓN DE NECESIDADES 58

4.1.1 Recolección de información primaria 58

4.1.2 Interpretación de datos primarios en términos de necesidades 58

4.1.3 Organización de necesidades por jerarquía 58

4.1.4 Importancia relativa de las necesidades 61

4.2 ESPECIFICACIONES PRELIMINARES 62

4.2.1 Establecimiento de métricas 62

4.2.2 Benchmarking competitivo 64

4.2.3 Establecimiento de valores marginales 69

4.2.4 Especificaciones preliminares 71

4.3 GENERACIÓN DE CONCEPTOS 72

4.3.1 Clarificación del problema 72

4.3.2 Rama critica 74

4.3.3 Exploración sistemática de información 75

4.3.4 Conceptos generados 81

4.4 SELECCIÓN DE CONCEPTOS 86

4.4.1 Matriz de Tamizaje de Conceptos 86

4.4.2 Matriz de Evaluación de Conceptos 88

5. DISEÑO A NIVEL DE SISTEMA 90

Page 6: Diseño y Simulación de un sistema mecánico subactuado

� � ��

Pág.

5.1. ARQUITECTURA DEL PRODUCTO 91

5.1.1. Esquema del Producto 92

5.1.2. Agrupación de Elementos 93

5.1.3. Distribución Geométrica 94

5.1.4. Interacciones Fundamentales 95

5.1.5. Interacciones Incidentales. 96

5.2. DISEÑO INDUSTRIAL 97

5.2.1. Necesidades Ergonómicas. 97

5.2.2. Necesidades Estéticas. 99

5.2.3. Dominación del Producto 99

5.2.4. Evaluación de la Calidad del Diseño Industrial: 100

5.3. DISEÑO PARA MANUFACTURA 101

5.3.1 Reducción de Costos 101

5.4. PROTOTIPADO 105

6. DISEÑO DETALLADO 106

6.1. SISTEMA MECÁNICO 107

6.1.1. Subconjunto Montaje Motor-Sensor 107

6.1.2. Subconjunto Carro 108

6.1.3. Subconjunto Péndulos 109

6.1.4. Subconjunto Tensor 110

6.1.5. Subconjunto Estructura 111

6.1.6. Correa Dentada 113

6.1.7. Rodamientos 114

6.2. SISTEMA ELECTRICO Y ELECTRONICO 115

6.2.1. Actuador 116

Page 7: Diseño y Simulación de un sistema mecánico subactuado

� � �

Pág.

�6.2.2. Sensores 121

6.2.3. Fuente de Alimentación DC 121

6.2.4. Amplificación de Señales 121

6.2.5. Acondicionamiento de señales 122

6.3. DISEÑO DEL SISTEMA ELECTRÓNICO 123

6.3.1 Fuentes de Alimentación 124

6.3.2 Amplificador de Voltaje 125

7 ESTRATEGIAS DE CONTROL DEL SISTEMA 128

7.1. MODELADO DEL ACTUADOR 129

7.2. CONTROL PÉNDULO SIMPLE 131

7.2.1. Diseño del sistema de control para la zona Lineal 133

7.2.2. Diseño de sistema de control para zona lineal por modos deslizantes 136

7.2.3. Corrección de las oscilaciones de alta frecuencia en el controlador CMD 144

7.2.4. Diseño del sistema de control para la zona de balanceo 145

7.3. CONTROL PÉNDULO DOBLE 148

7.3.1. Diseño del sistema de control 148

7.4. IMPLEMENTACIÓN Y SIMULACIÓN DE CONTROLADORES 149

7.4.1. Péndulo Invertido Simple 150

7.4.2. Péndulo Invertido Doble 173

8. PROTOTIPO VIRTUAL DIRECTX 179

8.1. REQUERIMIENTOS DEL SISTEMA. 179

8.2. CASOS DE USO. 181

8.2.1. Diagrama de casos de uso 181

Page 8: Diseño y Simulación de un sistema mecánico subactuado

� � �

Pág.

�8.2.2. Descripción de los casos de uso 182

8.2.3. Implementación del software 185

8.3. RESULTADOS OBTENIDOS 187

9. CONCLUSIONES 188

10. FUTURAS MEJORAS 190

BIBLIOGRAFÍA 191

�ANEXOS 194

Page 9: Diseño y Simulación de un sistema mecánico subactuado

� � ��

LISTA DE FIGURAS

Pág.

Figura 2.1: Sistema Péndulo Invertido Simple 20

Figura 2.2 Sistema Péndulo Invertido Doble 28

Figura 2.3: Vectores que determinan la posición del diferencial de masa del péndulo 1 30

Figura 2.4: Vectores que determinan la posición del diferencial de masa del péndulo 2 31

Figura 2.5: Implementación del Modelo No Lineal del Péndulo Simple en Simulink 46

Figura 2.6: Respuesta Natural del Sistema Péndulo Simple 47

Figura 2.7: Implementación del Modelo No lineal del Péndulo Doble en Simulink 49

Figura 2.8: Subsistema Funciones 50

Figura 2.9: Subsistema Complementario del Modelo 50

Figura 2.10: Respuesta Natural del Sistema Péndulo Doble 52

Figura 4.1: Péndulo Invertido Feedback 33-005-2M5 64

Figura 4.2: Péndulo Invertido Googol Tech GLIP2002 65

Figura 4.3: Péndulo Invertido Quanser IP01 66

Figura 4.4: Péndulo Invertido Universidad Lakehead (Canadá) 66

Figura 4.5: a) Caja negra y b) Descomposición funcional 73

Figura 4.6: Árbol de clasificación Aceptar energía externa 76

Figura 4.7: Árbol de clasificación convertir energía a fuente de fuerza 77

Figura 4.8: Árbol de clasificación Aplicar fuerza al péndulo 77

Figura 4.9: Árbol de clasificación Sensar movimiento 78

Figura 4.10: Combinación de conceptos 80

Figura 4.11: Concepto A 81

Figura 4.12: Concepto B 82

Figura 4.13: Concepto C 83

Figura 4.14: Concepto D 84

Figura 5.1: Esquema del producto 93

Figura 5.2: Agrupación de elementos funcionales 94

Figura 5.3: Distribución geométrica (layout) 95

Figura 5.4: Interacciones fundamentales 96

Page 10: Diseño y Simulación de un sistema mecánico subactuado

� ����

Pág.

�Figura 5.5: Interacciones incidentales 97

Figura 5.6: Representación visual de la dominación del producto 100

Figura 5.7: Primer esquema del elemento soporte 102

Figura 5.8: Segundo esquema del elemento soporte. 103

Figura 5.9: Tercer diseño del elemento soporte 104

Figura 5.10: Esquema final del elemento soporte. 105

Figura 6.1: Esquema general del U.M.S 106

Figura 6.2: Subconjunto montaje motor-sensor 108

Figura 6.3: Subconjunto carro 109

Figura 6.4: Subconjunto péndulos 110

Figura 6.5: Subconjunto tensor 111

Figura 6.6: Subconjunto estructura 112

Figura 6.7: Sistema mecánico completo 112

Figura 6.8: Parámetros de selección de la correa dentada 113

Figura 6.9: Principio del doble apoyo para ubicación de sensores. 115

Figura 6.10: Principales requerimientos del sistema electrónico 116

Figura 6.11 Requerimientos de fuerza del sistema 118

Figura 6.12 Fuente de alimentación regulada ± 30 v. 124

Figura 6.13 Fuente Regulada 5 v. 125

Figura 6.14 Amplificador de voltaje 126

Figura 7.1: Descripción de las diferentes zonas de movimiento del péndulo 131

Figura 7.2: Regulador lineal por LQR 133

Figura 7.3: Regulador diseñado para el péndulo doble 148

Figura 7.4: Esquema en Simulink del control por realimentación del estado 150

Figura 7.5: Respuestas del sistema para x0 = 0 y Angulo0 =30º 151

Figura 7.6: Respuesta del sistema para x0 = 0 y Angulo0 =20º 152

Figura 7.7: Respuesta del sistema para condiciones iniciales lejanas de la zona lineal 153

Figura 7.8 Respuesta del sistema para condiciones para X0 diferente a cero 153

Figura 7.9: Respuesta de las variables de control ante prueba fallida 154

Page 11: Diseño y Simulación de un sistema mecánico subactuado

� ����

Pág.

�Figura 7.10: Cambio en el controlador para hacer que siga referencia en x 155

Figura 7.11: Resultados del regulador 155

Figura 7.12 Implementación en Simulink del controlador CMD 156

Figura 7.13 Controlador CMD si c=1 con ángulo = 20º 157

Figura 7.14: Controlador CMD si c=1 con ángulo = 31º 157

Figura 7.15: Controlador CMD si c=1 con ángulo = 58º 158

Figura 7.16: Controlador CMD si c=1 con ángulo = 59º 159

Figura 7.17: Controlador CMD si c=2 con ángulo = 20º 160

Figura 7.18: Controlador CMD si c=2 con ángulo = 30º 160

Figura 7.19: Controlador CMD si c=2 con ángulo = 69º 161

Figura 7.20: Controlador CMD si c=2 con ángulo = 70º 161

Figura 7.21: Controlador CMD si c=3 con ángulo = 20º 162

Figura 7.22: Controlador CMD si c=3 con ángulo = 69º 163

Figura 7.23: Implementación de la estrategia de control ecuación (7.50) 163

Figura 7.24: Controlador CMD con corrección de Chattering para ángulo =20º 164

Figura 7.25 CMD con corrección de Chattering para ángulo =59º 165

Figura 7.26 CMD con corrección de Chattering para ángulo =60º 165

Figura 7.27 Señal de voltaje para controlador CMD con corrección 166

Figura 7.28: Montaje de la ley de control del Swing Up 167

Figura 7.29: Esquema completo del Swing Up 167

Figura 7.30: Posición del Carro (x) (Metros) 168

Figura 7.31: Posición Angular (Grados) 168

Figura 7.32: Velocidad angular del péndulo (rad/seg). 168

Figura 7.33: Esfuerzo de Control (Voltios) 169

Figura 7.34: Esquema Final para Control del Péndulo Simple 170

Figura 7.35: Esquema del Bloque Switche para 30 y 35 grados 170

Figura 7.36: Posición del Carro con el Control Final (Metros) 171

Figura 7.37: Posición Angular (�) (Grados) 171

Figura 7.38: Esfuerzo de Control (Voltios) 172

Page 12: Diseño y Simulación de un sistema mecánico subactuado

� ����

Pág.

�Figura 7.39: Implementación del Controlador en Simulink 173

Figura 7.40: Graficas de la prueba 1 174

Figura 7.41: Graficas de la Prueba 2 175

Figura 7.42: Graficas de la prueba 3 176

Figura 7.43: Esfuerzo de Control para las tres pruebas 177

Figura 7.44: Resultados prueba 4 178

Figura 8.1: Diagrama de Casos de Uso 181

Figura 8.2: Implementacion del software 186

Page 13: Diseño y Simulación de un sistema mecánico subactuado

� ����

LISTA DE TABLAS

Pág.

Tabla 2-1: Descripción y símbolos usados en el modelamiento del péndulo 21

Tabla 2-2: Descripción y símbolos usados en el modelado del péndulo doble 29

Tabla 2-3: Valores simbólicos de las constantes hi 37

Tabla 2-4: Cambios en definición de constantes 38

Tabla 2-5: Tabla de constantes para los elementos de la matriz H-1 42

Tabla 2-6: Valores numéricos de los parámetros del sistema péndulo invertido. 45

Tabla 2-7: Valores numéricos para los parámetros del sistema péndulo doble. 48

Tabla 4-1: Listado de planteamiento de usuarios 59

Tabla 4-2: Interpretación de necesidades 59

Tabla 4-3: Jerarquía de necesidades. 60

Tabla 4-4: Importancia relativa de las necesidades de los usuarios del UMS 61

Tabla 4-5: Listado de métricas del UMS a partir de necesidades de usuarios 63

Tabla 4-6: Benchmarking basado en la satisfacción de las necesidades de los clientes 68

Tabla 4-7: Evaluación de métricas con otros productos 69

Tabla 4-8: Establecimiento de valores ideales y marginales 70

Tabla 4-9: Especificaciones preliminares 71

Tabla 4-10: Matriz de tamizaje de conceptos 87

Tabla 4-11 Matriz de Evaluación de conceptos 88

Tabla 8-1 Requerimientos del sistema 180

Tabla 8-2 Caso de uso seleccionar configuración 182

Tabla 8-3 Caso de uso generar configuración 183

Tabla 8-4 Caso de uso graficar variables 183

Tabla 8-5 Caso de uso establecer condiciones 184

Tabla 8-6 Caso de uso prototipo 184

Tabla 8-7 Caso de uso simulación 185

Page 14: Diseño y Simulación de un sistema mecánico subactuado

� ����

LISTA DE ANEXOS

Pág.

ANEXO A: DIAGRAMAS DE ENSAMBLE Y PLANOS MECANICOS 194

ANEXO B: INFORME IFAC 243

ANEXO C: HOJAS DE ESPECIFICACIONES TÉCNICAS 255

ANEXO D: CODIGOS FUENTE DE PROGRAMAS 264

ANEXO E: MANUAL DE USUARIO 323

Page 15: Diseño y Simulación de un sistema mecánico subactuado

� ����

RESUMÉN � El presente informe enmarca las etapas de diseño que se han llevado a cabo para el

desarrollo del proyecto de iniciación a la investigación que se expone. La concatenación

de capítulos que se propone, se hace con el fin de organizar la extensa información

obtenida y generada a lo largo del proceso, pero es claro que este es iterativo y que la

conclusión de muchos capítulos son el resultado de la sobre posición en el tiempo de

diversas etapas.

En el capitulo dos se hace el modelado de las plantas péndulo invertido simple y doble,

donde se tienen en cuenta no linealidades que son seleccionadas a partir de catálogos

luego de la etapa de diseño detallado y se hace una validación rápida del comportamiento

del sistema.

El capitulo de planeacion del producto, tiene como principal objetivo dar a conocer el

planteamiento del mismo, donde se asumen premisas y restricciones que serán tenidas

en cuenta a lo largo del proyecto. El capitulo cuatro esta dedicado a la etapa de desarrollo

conceptual, en ella se establecen las necesidades del cliente, y con estas siguiendo una

metodología estructurada de diseño, se obtienen las especificaciones preliminares del

sistema a diseñar, que enmarcan desde el punto de vista técnico todas las necesidades

obtenidas, haciéndolas medibles o tangibles para el equipo de diseño. Con base en estas

métricas y con un modelo de caja negra del sistema, donde de forma muy básica, se

describe el funcionamiento de la planta, se entra a la fase de generación y selección de

conceptos donde a partir de tecnologías disponibles se obtiene un concepto del sistema.

El capitulo cinco aborda la etapa de diseño a nivel de sistema. Primero se establece la

arquitectura del producto, hallando las interacciones que pueden afectar el diseño, para

luego pasar a establecer la dominación del diseño industrial del mismo, etapa que

precede y determina decisiones tomadas durante el diseño para manufactura, donde se

toma la decisión de la disposición final del sistema

Page 16: Diseño y Simulación de un sistema mecánico subactuado

� ����

El capitulo seis se dedica al diseño detallado del UMS, en este se hace referencia al

diseño mecánico y al tipo de circuitos eléctricos que se usaran en el desarrollo del equipo,

teniendo en cuenta para esto los resultados obtenidos a partir del control del sistema.

Solo hasta este momento se establecen dimensiones y se asignan los materiales finales

con los que se va a construir el prototipo físico.

El capitulo siete se presenta el diseño de controladores para las dos configuraciones que

tendrá el UMS. En primera instancia se adicionan al modelo obtenido en el capitulo dos el

actuador seleccionado. El diseño de controladores para el sistema péndulo simple,

contempla controladores por realimentación del estado diseñado a través del control

óptimo cuadrático LQR, control por modos deslizantes y una estrategia conmutada para el

levantamiento del sistema. El sistema péndulo invertido doble es controlado en la zona

lineal (± 20º) por un regulador LQR por realimentación del estado.

Finalmente en el capitulo ocho se describe el diseño del prototipo virtual, para el cual se

tienen en cuenta los capítulos mencionados anteriormente. En un primera instancia se

sigue una metodología de POO (programación orientada a objetos), esto con el fin de

realizar un bosquejo del comportamiento requerido así como encontrar un modo eficiente

de implementar el software. Por ultimo se describen las principales características de la

implementación del prototipo en un programa orientado a eventos como lo es Visual

Basic, con su herramienta DirectX. En los anexos del trabajo se presenta el código

utilizado.

Page 17: Diseño y Simulación de un sistema mecánico subactuado

� ���

INTRODUCCIÓN

�En el desarrollo de este trabajo de iniciación a la investigación se expone el diseño y

control de una planta que pueda configurarse como péndulo invertido simple y doble la

cual a lo largo del presente informe se llamara UMS (Underactuated Mechanical system).

El péndulo invertido es un sistema clásico en problemas de control, y su propósito es

estabilizarlo en su punto de equilibrio inestable. El sistema péndulo invertido doble es una

extensión del anterior y el objetivo de control al igual que en el péndulo simple es

estabilizar ambas barras en la posición vertical mientras se mantiene la posición deseada

en el carro. La dificultad en controlar el péndulo invertido doble es que se trata de un

sistema caótico por naturaleza, lo que indica que ante pequeños cambios en las

condiciones iniciales, la respuesta a lo largo del tiempo varía fuertemente. Luego es

extremadamente difícil controlar el sistema si no es posible predecir acertadamente el

movimiento de los péndulos.

Los sistemas péndulo simple y doble hacen parte de una clase de sistemas mecánicos

llamado sistemas mecánicos subactuados, en los que se cuentan con menos entradas

que grados de libertad, y el control de sistemas de esta naturaleza es actualmente un

campo muy activo de investigación, sobretodo por sus aplicaciones en robótica, vehículos

aeroespaciales y vehículos marinos. Los ejemplos de sistemas mecánicos subactuados

incluyen robots móviles, robots caminantes, sistemas de locomoción, aerodeslizadores,

satélites entre otros.

El diseño y control de los péndulos invertidos requiere un gran numero de pasos, primero

debe ser obtenido un modelo matemático, y después la etapa de diseño mecánico y

eléctrico del sistema se debe concatenar con la del desarrollo de una estrategia de control

adecuada , para esto se propone la metodología de diseño mecatrónico, con el fin que

desde el punto de vista de la ingeniería concurrente se aborde este problema de diseño y

se logre obtener un sistema adecuado a las necesidades de la universidad.

Page 18: Diseño y Simulación de un sistema mecánico subactuado

� ���

Con el presente trabajo también se incluye el desarrollo de un prototipo virtual del

sistema, diseñado de modo que es posible observar el desarrollo de estrategias de control

en la planta antes de implementarse en el prototipo físico

Los prototipos virtuales permiten una visualización muy cercana la realidad de prototipos

físicos; debido a esto se utilizan para el monitoreo de plantas a distancia, en las cuales la

presencia física de un operario podría ser peligrosa. El desarrollo de prototipos virtuales

en 3D es de gran importancia debido a que representa la posibilidad de implementar

sistemas mecánicos interactivos (prototipado virtual) sin necesidad de construcción física,

consiguiendo con ello reducción de costos y de tiempo. Además debido a los

inconvenientes con la transmisión de video a través de Internet (La velocidad de la

transmisión), estos prototipos son una herramienta fundamental para el desarrollo de

laboratorios virtuales.

Se espera que el desarrollo de este trabajo inicie todo un campo de investigación sobre

este tipo de sistemas en la Universidad que como se ha expuesto es altamente estudiado

en diversos centros tecnológicos del mundo entero, además sus resultados pueden ser

aplicados en diversas ramas que competen a muchos programas académicos enseñados

al interior de la institución.

Page 19: Diseño y Simulación de un sistema mecánico subactuado

� ����

1. OBJETIVOS

1.1 OBJETIVO GENERAL.

• Diseñar, controlar y simular un péndulo invertido traslacional, con la posibilidad de

configurarse como péndulo simple y doble, de modo que se puedan implementar

diferentes estrategias de control.

1.2 OBJETIVOS ESPECIFICOS.

• Diseñar el sistema: configuración, dimensiones, materiales, selección de

actuadores, sensores, drivers, acondicionamiento de señales etc.

• Desarrollar un prototipo virtual 3D interactivo en DirectX; el cual permita ingresar

las estrategias de control y realizar simulaciones, para comprobar la funcionalidad

del controlador antes de realizar cualquier prueba en la planta real.

• Presentar el informe final del trabajo con la debida fundamentación matemática y

haciendo énfasis en los métodos y herramientas matemáticas utilizadas.

• Probar diferentes estrategias de control

• Determinar el estado del arte y los problemas en el control de un sistema no lineal,

en general y de un péndulo invertido traslacional en particular.

• Construir el prototipo físico modular de forma que permita configurar el sistema de

diferentes de modos en nuestro caso simple y doble, con cambios muy pequeños

en su estructura.

Page 20: Diseño y Simulación de un sistema mecánico subactuado

� ����

2. MODELAMIENTO Y ANALISIS MATEMÁTICO

El modelo matemático es un conjunto de ecuaciones dinámicas que proveen una

adecuada descripción para el movimiento de un sistema en particular. Este modelo es

muy importante cuando se intenta diseñar un controlador para estabilizar el sistema,

además es fundamental para la etapa de modelado en Directx que se desarrolla en el

capitulo 8. El modelo matemático del péndulo simple y doble se discute en las secciones

de este capitulo

En general a lo largo de este capitulo se trabaja el modelo matemático del péndulo simple

y el péndulo doble, en dos partes, la primera consiste en encontrar el sistema de

ecuaciones no lineales usadas para representar el sistema, y la segunda se centra en

tomar dichas ecuaciones no lineales y linealizarlas para aplicar técnicas de control

lineales

2.1. PÉNDULO SIMPLE

Figura 2.1 �Sistema Péndulo Invertido Simple

Page 21: Diseño y Simulación de un sistema mecánico subactuado

� ����

Los símbolos utilizados para el modelamiento se definen en la siguiente tabla

Tabla 2-1: Descripción y símbolos usados en el modelamiento del péndulo �

Símbolo Descripción Unidad M Masa del carro Kg. m Masa del péndulo Kg. c Constante de fricción entre carro - pista N/m/s. b Constante de fricción entre péndulo - carro N/m/s. L Longitud total del péndulo m I Inercia del péndulo Kg./m2

g Gravedad m/s2

� Angulo de posición del péndulo Rad. F Fuerza aplicada al carro N

2.1.1 Modelo no lineal. El péndulo invertido hace parte de los sistemas subactuados,

pues tiene un solo actuador y dos grados de libertad, el desplazamiento horizontal del

carro (x) y el ángulo de rotación con respecto a la vertical (�). La dirección positiva del

desplazamiento del carro es hacia la derecha y la rotación es positiva en el sentido de

giro de las manecillas del reloj.

La herramienta utilizada para el análisis dinámico fue el método de Energías de

Lagrange.

��

��

� =∂

∂−���

���

∂•

L = T-V

Donde T es la energía cinética, V es la energía potencial, q es el mínimo número de

coordenadas necesario para describir el sistema que en el caso tratado se refiere a los

(2.1)

(2.2)

Page 22: Diseño y Simulación de un sistema mecánico subactuado

� ����

dos grados de libertad, finalmente L conocido como el lagrangiano es la resta de la

energía cinética y la potencial.

A continuación se obtendrán las expresiones para la energía cinética y potencial de cada

componente del sistema, y así aplicar la ecuación de Lagrange, para obtener las

ecuaciones diferenciales que caracterizan la dinámica del sistema.

Para el Péndulo

• Energía Cinética ��

��

� •+= θ��� �

Donde � es la velocidad del centro de masa de la barra, la posición del centro de

masa esta dada por:

( ) ( )∧∧∧

��

���

�+��

���

� += ���������� θθ ����

Entonces la velocidad será:

( ) ( )∧•∧••

∧∧

��

���

�−+��

���

� +== ����������

��

�� θθθθ

����

Por lo tanto la energía cinética del péndulo será:

( ) ( ) ( )��

���

���

����

����

� ••••••+��

����

�+++= θθθθθθθ ����������

Simplificando la expresión nos queda:

( )��

����

� •••••+���

����

�++= θθθθ ������

(2.3)

(2.4)

(2.5)

(2.6)

(2.7)

Page 23: Diseño y Simulación de un sistema mecánico subactuado

� ����

• Energía Potencial �

( )���

��� � =

Para el Carro

• Energía Cinética � �

� •= ���

• Energía Potencia

�=

La Energía Cinética de todo el sistema será la suma de la Energía Cinética del Péndulo

mas la del Carro.

( )��

��

����

� ••••••+���

����

�+++=

+=

θθθθ �������

����

La Energía Potencial de todo el sistema será solamente la energía del Péndulo.

( )���

��� =

Utilizando las ecuaciones (2.11) y (2.12) el Lagrangiano se puede escribir así:

( ) ( )θθθθθ ����

����

���

��

��������� −+���

����

�+++=

••••••

(2.8)

(2.9)

(2.10)

(2.11)

(2.12)

(2.13)

Page 24: Diseño y Simulación de un sistema mecánico subactuado

� ����

Ecuación General de Lagrange

��

� =∂

∂−���

���

∂•

Para la posición (x)

��

� =∂

∂−��

��

∂••

( )••••

−=−��

���

� ++ ����������

�������

� θθ

( ) ( ) ( ) ������

��

����������� =++−+••••••

θθθθ

Para el Angulo (�)

( ) ( ) ( )••••••

−=��

���

� +−−��

���

� ++ θθθθθθθ ����������������

����

� �

( ) ( ) ��

����

� � =+−+��

���

� +•••••θθθθ ���������

Reescribiendo las dos ecuaciones para (x) y para (�) tenemos:

( ) ( ) ( ) ����������������

��������

�������

=++−+••••••

(2.14)

(2.15)

(2.16)

(2.17)

(2.18)

(2.19)

(2.20)

Page 25: Diseño y Simulación de un sistema mecánico subactuado

� ����

( ) ( ) �������������

����������

�����

�� � =+−+�

���

� +•••••

2.1.2 Linealización del modelo matemático. La linealización se efectúa cuando el

péndulo se encuentra muy cercano a su posición de equilibrio inestable (� = 0º). La

linealización de las ecuaciones (2.20) y (2.21) se realizan mediante aproximaciones de

series de Taylor, para ángulos muy pequeños se obtienen estas aproximaciones

θθ ≈������ ������ ≈θ ��

≈•θ

Las ecuaciones resultantes del proceso de linealización son:

( ) ������������

������ =+++

•••••

���������

�����

�����

�� � =+−+�

���

� +•••••

θ

2.1.3 Representación en el espacio de estados. La representación en el espacio de

estados brinda cierta facilidad para diseñar sistemas reguladores, los cuales se utilizan

cuando el péndulo esta en la región cercana al equilibrio inestable.

La representación en el espacio de estados hace parte de la teoría de control moderno,

este enfoque se basa en el concepto de estados y se realiza en el dominio del tiempo.

Tener un modelado en el espacio de estados brinda ciertos beneficios, como facilidad

para trabajar sobre sistemas complejos de múltiples entradas y múltiples salidas, además

mediante sus variables de estado se logra describir por completo el comportamiento de un

sistema dinámico y así observar si es posible controlarlo.

(2.21)

(2.22)

(2.23)

(2.24)

Page 26: Diseño y Simulación de un sistema mecánico subactuado

� ����

Un sistema lineal en el espacio de estados se representa mediante las siguientes

ecuaciones:

����� +=•

����� +=

Para hacer esta representación se hace uso de las ecuaciones linealizadas (2.23) y (2.24)

y así obtener la matriz de estados (A), la matriz de entrada (B) y la matriz de salidas (C) y

haciendo.

� ���=

��! ���=

�� �" +=

��# +=

Las ecuaciones (2.23) y (2.24) se transforman en:

������������ =++•••••

"

��������� =+−+•••••

θ! #

Despejando de la ecuación (2.32) se tiene:

#

� �!•••

•• −−= θθθ

Reemplazando (2.33) en (2.31) resulta

��

"#

� !��#�#��

−+−−=

•••• θθ

(2.25)

(2.26)

(2.27)

(2.28)

(2.29)

(2.30)

(2.31)

(2.32)

(2.33)

(2.34)

Page 27: Diseño y Simulación de un sistema mecánico subactuado

� ���

De (2.34) se reemplaza en (2.33), se tiene

••••

���

����

�+��

����

�−��

����

�+−��

����

�+= �

���

$

#!

$

#��

�� ��

θθθ

Donde se tiene

P = # "# �� −

Q = � "# −

Ahora para la representación en variables de estado se tiene:

••==== ������ ���� ������ � ����

••••••••••====== ����� ������ ����� ��� ������

Teniendo las variables de estado organizadas se procede a formar la matriz de estados

(A), la matriz de entradas (B) y la matriz de salidas (C).

[ ]��

���

����

����

��

��

#

�$

#!

$

#�

� �

!

#�

�����������

+

��������

�����������

⋅���

����

�+−⋅��

����

�+

⋅⋅−⋅−

=

������������

En la matriz (C) las salidas de interés son la posición lineal (x) y la posición angular �)

(2.35)

(2.36)

(2.37)

(2.38)

Page 28: Diseño y Simulación de un sistema mecánico subactuado

� ���

[ ]��

����

������

% ⋅

����

+

����

⋅��

�=

2.2 PÉNDULO DOBLE

El péndulo doble generalmente es descrito como un sistema no lineal1. El objetivo

fundamental del sistema es estabilizar ambos péndulos en la posición vertical, y la

dificultad radica en que es un sistema subactuado donde se tienen tres grados de libertad

y solo una entrada de control. En la figura 2.2 se presenta el modelo físico que se usara

para obtener el modelo matemático del sistema.

Figura 2.2 Sistema Péndulo Invertido Doble

�������������������������������������������������1�COWAN, Jeffrey; ERICKSON, Chris y ZLATANOVIC, Andrej. “Computer Based State Feedback Control of a

Double Inverted Pendulum”, 2004. p 79. Trabajo de Grado (ingeniero electrico). Lakehead University. Facultad de Ingenierias. �

(2.39)

Page 29: Diseño y Simulación de un sistema mecánico subactuado

� ����

Para describir matemáticamente el sistema contenido en la figura 2.2 es necesario definir

cierto número de elementos que se presentan en la tabla 2.2, en la que se muestran las

convenciones seguidas para el modelado matemático.

Tabla 2-2: Descripción y símbolos usados en el modelado del péndulo doble �

Símbolo Descripción Unidades M Masa del carro kg

m1 Masa del péndulo 1 kg m2 Masa del péndulo 2 kg me Masa de la unión entre péndulos kg L1 Longitud del péndulo 1 m L2 Longitud del péndulo 2 m Xc Posición del carro m �1 Posición angular del péndulo 1 rad �2 Posición angular péndulo 2 rad �3 Suma de posiciones angulares 1 y 2 rad G Constante gravitacional m/s2 F Fuerza de control aplicada al carro N

2.2.1 Modelo no lineal. Aplicando el método de Lagrange expresado en la ecuación

(2.1), se procede a calcular la energía cinética y potencial total del sistema, teniendo en

cuenta las siguientes definiciones para las energías:

= ��� �

= dmrgV z

Donde v es la velocidad lineal del elemento diferencial de masa, rz es el vector posición

del elemento diferencial de masa, y dm es el elemento diferencial de masa del elemento

al que se le están calculando la energía.

Como es claro del conjunto de ecuaciones (2.40) y (2.41) es necesario obtener una

definición del vector posición de los diferenciales de masa de cada uno de los elementos

que compone el sistema como se ilustra a continuación.

(2.40)

(2.41)

Page 30: Diseño y Simulación de un sistema mecánico subactuado

� ����

Vectores posición y velocidad para los péndulos

• Péndulo 1

De acuerdo a la figura 2.3 el diferencial de masa dm del péndulo 1 se define con respecto

al sistema de coordenadas con respecto al que se realiza el modelo del sistema mediante

el vector ����

, al derivarlo se obtiene el vector velocidad.

Figura 2.3: Vectores que determinan la posición del diferencial de masa del péndulo 1

De la figura 2.3 se tiene que:

( ) jaiasenxr cLˆcosˆ)( 111 θθ +�

���

� +=�

Donde a se define como el la magnitud del vector que define la posición del diferencial de

masa dm a lo largo de la barra que forma el péndulo, y �! e �! representan los vectores

unitarios en dirección de los ejes coordenado x e y.

A partir de de la ecuación (2.42) se obtiene el vector velocidad derivando con respecto al

tiempo.

(2.42)

(2.43)

Page 31: Diseño y Simulación de un sistema mecánico subactuado

� ����

( ) ( ) jaiaxr cLˆsinˆ)cos( 11111 θθθθ ����� −+=

Donde la magnitud del vector velocidad representa la rapidez como se expresa en 2.44

( )( ) ( )211

2

1112 )sin(cos θθθθ ��� aaxV cL ++=

• Péndulo 2

Al igual que el procedimiento seguido para obtener el vector posición y la velocidad del

diferencial de masa del péndulo 1, se efectúa un procedimiento similar con el segundo

péndulo de modo que la representación se muestra en la figura 2.4.

Figura 2.4: Vectores que determinan la posición del diferencial de masa del péndulo 2

De la figura 2.4 se establece:

( ) ( ) �&��&������ ��!����������!��"���� ������� θθθθ ++++=�

( ) ( ) �&��&��� �� ��"����"��!����������!����������� θθθθθθθθ ������ −−+++=

( ) ( )�

�����

������� ��"����"������������ θθθθθθθθ ����� &�&�� �� ++++=

Donde �� es la magnitud del vector velocidad del diferencial de masa del péndulo 2.

(2.44)

(2.45)

(2.46)

(2.47)

Page 32: Diseño y Simulación de un sistema mecánico subactuado

� ����

Energía cinética del sistema

La energía cinética total del sistema está definida por la suma algebraica de la energía de

cada uno de los componentes del sistema:

�� $���'(�$���'(��&������(�$���'(� ���� ++=

• Energía cinética del carro

cCarro MxT 2

21=

• Energía cinética para el péndulo 1

Teniendo en cuenta 2.40, y 2.44 la energía cinética del péndulo 1 se plantea así:

( )[ ] 112

1222

111 )(sin)cos(21

dmaaxTPendulo ++= θθθθ ���

Ahora teniendo en cuenta que la masa puede expresarse como � ⋅= µ , donde µ es

la densidad lineal de masa y L es la longitud es claro como el diferencial de masa se

puede expresar como se muestra en 2.28

�(�

� =

Ahora de (2.51) en (2.50)

[ ]

( ) 121

2

11112

11

1

01

2211

2

1

11

321

)cos(21

)cos(221

θθθ

θθθ

����

����

LmLxxmT

dlaaxxLm

T

Pendulo

L

Pendulo

++=

++=

(2.48)

(2.51)

(2.52)

(2.53)

(2.49)

(2.50)

Page 33: Diseño y Simulación de un sistema mecánico subactuado

� ����

• Energía cinética para el péndulo 2

A partir de (2.40), (2.47), y (2.51) la energía cinética se plantea como se expone en

(2.54).

[ ]

[ ]

( ) ( )[ ]

��

�+++

+++=

++

++=

))cos()(cos(3

)sin()sin(21

)cos()sin()cos(21

)sin()sin(

)cos()cos(21

111332322

2

3131122

332

2

111

2

11122

22

033111

2

2

22

0 332

1112

22

θθθθθθθθθ

θθθθθθ

θθθθ

θθθθ

�����

�����

��

���

LLL

LLm

xLLLxmT

daaLLm

daaLxLm

T

cPendulo

L

L

Pendulo

Energía Potencial del sistema

La energía potencial total del sistema esta definida por la suma algebraica de la energía

de cada uno de los componentes del sistema:

�� $���'(�$���'(����(�$���'(� ��� +=

• Para el péndulo 1

A partir de 2.41 y 2.51 se expresa la energía potencial como se muestra abajo

)cos(21

)cos(

1111

1

0 11

11

θ

θ

gLmU

daaLm

gU

Pendulo

L

Pendulo

=

⋅=

• Para el péndulo 2

A partir de 2.41 y 2.51 se expresa la energía potencial como se muestra abajo

(2.54)

(2.55)

(2.56)

(2.57a)

(2.57b)

Page 34: Diseño y Simulación de un sistema mecánico subactuado

� ����

[ ]

��

���

� +=

⋅+=

)cos()cos(2

)cos()cos(

1132

22

2

0 1132

22

θθ

θθ

LL

gmU

daLaLm

gU

Pendulo

L

Pendulo

Calculo del lagrangiano

A partir de la ecuación 2.2 y de las ecuaciones de energía de cada componente del

sistema se obtiene el lagrangiano del sistema.

��

� +−−

��

�+++

��

� +++

+++=

�����������

������

�����"��

���"���

������

������

��

�������

����

����

���

��

���

����

���

����

��

��

����

θθθ

θθθθθ

θθθθ

θθθ

��

���

���

���

�������

��

���

����

Para usar la ecuación de Lagrange (Ver Ecuación 2.1) Las matrices �� y �� deben ser

determinadas. Para el Péndulo invertido doble estas matrices se muestran a continuación

���

=���

=00Q y i

3

1

Fxq

c

i

θθ

Como se observa en las ecuaciones 2.60, las coordinadas que describen el sistema son

�) , �θ y �θ . Como hay tres diferentes coordinadas generalizadas o grados de libertad, La

ecuación de Lagrange debe ser aplicada para cada una de estas coordenadas, haciendo

(2.58 b)

(2.58 a)

(2.59)

(2.60)

Page 35: Diseño y Simulación de un sistema mecánico subactuado

� ����

esto obtenemos tres ecuaciones lineales. La solución de la ecuación de Lagrange para

cada una de las coordenadas se expone a continuación:

Para �� = x

( ) ( )

( ) ��

����

=−+

��

���

� +−+++

��"��������

���"�������

���

����

�������

����

θθθθ

θθθθ

���

�����

Para �� = �θ

( )

���"���

��"��������

������

�����

����

����

��

���

��

������

=��

���

� +−

−+−+

���

����

�++�

���

� +

θ

θθθθθθ

θθ

����

��

��

���

���

����

Para �� = �θ

���"���

��"���

������

������

��

�����

���

���������

����

=−−−

−++

θθθθ

θθθθθ

����

�����

������

Finalmente tenemos que el conjunto de ecuaciones diferenciales que describen el sistema

es:

�****�* � =−−++••••••••

���

��������� �"��"������� θθθθθθθθ

( ) ( ) ��"��"������� ����

���������� =−−+−++•••••••

θθθθθθθθθ ****�* �

(2.61)

(2.62)

(2.63)

(2.65)

(2.64)

Page 36: Diseño y Simulación de un sistema mecánico subactuado

� ����

( ) ( ) ��"��"������� ���

��������� =−−−−++•••••••

θθθθθθθθθ ****�* �

Esta serie de ecuaciones representan el modelo del sistema en la figura 2.2, además

como el ángulo del segundo péndulo en un modelo real es medido relativo al primer

péndulo, las ecuaciones se deben representar en términos de �θ en lugar de �θ esto se

logra observando que ��� θθθ −= . Reescribiendo las ecuaciones (2.64) a (2.66), en

términos de �θ se tiene.

( ) ( ) �****�* � =+��

���

� +−−+��

���

� +++•••••••••••

��

����

����������� �"��"������� θθθθθθθθθθθθ

��"��"������� ���

����������� =−��

���

� +−��

���

� +++••••••••••

θθθθθθθθθ ****�* �

( ) ( ) ��"��"������� ���

���������� =+−++��

���

� +++•••••••••

θθθθθθθθθθ ****�* �

Con este conjunto de ecuaciones ya se tiene descrito el comportamiento dinámico del

sistema de modo que ahora ya es posible diseñar y simular controladores para este, el

paso a seguir es incluir dentro de este la dinámica del motor, pero este paso se muestra

en el capitulo dedicado a las estrategias de control puesto que solo hasta ese momento

es posible completar el modelo pues en la fase de diseño detallado (Ver capitulo 5), se

define el sistema de transmisión que afecta la dinámica del sistema.

Las constantes incluidas en las ecuaciones (2.64) a (2.69) se exponen el la tabla 2.3.

(2.66)

(2.68)

(2.67)

(2.69)

Page 37: Diseño y Simulación de un sistema mecánico subactuado

� ���

Tabla 2-3: Valores simbólicos de las constantes hi

Constante Valor

h1 �� � ++

h2 �����

��� +

h3 ���

��

h4 ��

��

��

�+

h5 ����

���

h6 ���� �����

� +

h7 ��

��

��

h8 �

��

��

2.2.1.1 Cambios en el modelo matemático. En el modelo matemático descrito hasta ahora

se ha asumido que la conexión entre los dos péndulos es hecha a través de un dispositivo

sin masa, o cuya masa es despreciable con respecto a los otros componentes del

sistema; pero en la práctica esto no es cierto, pues este dispositivo de conexión afecta la

dinámica del sistema, así que si se tiene en cuenta esta masa se presentan cambios en

algunas de las constantes presentadas en la tabla 2.3, estos cambios luego de hacer el

respectivo análisis llevado a cabo para cada componente del sistema se ilustran en la

tabla 2.4, donde me es la masa del dispositivo de conexión

Page 38: Diseño y Simulación de un sistema mecánico subactuado

� ���

Tabla 2-4: Cambios en definición de constantes Constante Valor

h1 �� +++ ��

h2 ������

����� ++

h4 ��

��

��

����

�++

h6 ������� �

�����

� ++

De igual manera si se tiene en cuenta las fuerzas disipativas del rozamiento como se hizo

para el modelo del péndulo simple las ecuaciones 2.67 a 2.69 se transforman en:

( ) ( )2

21

2

21112212131121 sin3sincoscos••••••••••••

−=+��

���

� +−−+��

���

� +++ cc xcFhhhhxh θθθθθθθθθθθθ

( ) 21162

2

21522151412 sinsincoscos•••••••••••

−=−��

���

� +−��

���

� +++ θθθθθθθθθθ bhhhhxh c

( ) ( ) 222182

215215217213 sinsincoscos

••••••••••−=�

���

� +−++��

���

� ++��

���

� + θθθθθθθθθθθ bhhhhxh c �

Donde c y b representan los coeficientes de rozamiento del carro con su superficie de

desplazamiento, y el de los péndulos respectivamente

2.2.2 Linealización del modelo matemático. El propósito de la linealización es permitir

el diseño de técnicas de control lineal, para aplicarlas al modelo no lineal; y para realizar

la linealización, ciertas aproximaciones deben ser hechas al sistema. El sistema será

linealizado alrededor de su punto de equilibrio inestable es decir, cuando el péndulo esta

en su posición vertical (ángulos �θ y �θ =0), para esto se usaran aproximaciones por

(2.67a)

(2.68a)

(2.69a)

Page 39: Diseño y Simulación de un sistema mecánico subactuado

� ����

series de Taylor expresadas en (2.22), lo que produce las ecuaciones linealizadas del

sistema expresadas en 2.70 a 2.74

Fhhhxh c =+++••••••••

2313121 θθθ

���������� =+−++••••••••

θθθθ ****�* �

�������� =−+−++••••••••

θθθθθ *****�* �

2.2.3 Representación en el espacio de estados. Para la representación en el espacio

de estados las segundas derivadas de cada uno de los tres grados de libertad deben ser

despejadas, a partir de las ecuaciones 2.45 a 2.47 despejar sucesivamente o transformar

este conjunto de ecuaciones en una ecuación matricial como se muestra a continuación.

( )���

+=

�����

���

+++

••

••

••

��

��

��

����

����

θθθ

θ

θ*

*

��

****

****

**** �

Las segundas derivadas pueden ser encontradas si ambos lados de la ecuación 2.48 se

multiplica por la inversa de la matriz de coeficientes así:

( ) ����

+

���

+++

=

�����

� •−

••

••

••

��

��

���

��

����

����

θθθ

θ

θ*

*

�* *

****

****

****��

(2.71)

(2.70)

(2.72)

(2.73)

(2.74)

Page 40: Diseño y Simulación de un sistema mecánico subactuado

� ����

La inversa de la matriz de coeficientes H se calcula así:

( ) ( )HH

H adjdet

11 =−

Donde el determinante de H se expresa en la ecuación (2.76).

( ) 42

353272

22

51741 2det hhhhhhhhhhhh −+−−=H

Donde la inversa de la matriz H será:

( ) ���

−−+−−+−−+−−−−−−

=−

��

��������

����������

����

�����

�������

��

#��

**********************

***********

***********

��

El determinante de la matriz H debe ser revisado con el fin de evaluar si algún valor hace

que el determinante sea igual a cero. Si este es el caso se debe tener especial cuidado

en el diseño mecánico del sistema con el fin de evitar que esto suceda.

Luego de manipular matemáticamente la ecuación 2.76 es posible demostrar que el

determinante del sistema es:

( ) �

���

��

����

��

��

�#�� ���������� +++=�

De donde es claro que como los valores de masas y longitudes son siempre enteros

positivos el determinante será siempre mayor que cero. Este determinante es hallado si

se considera que el centro de masa de los péndulos esta en su centro, pero de no ser así

también es demostrable que el determinante siempre será mayor a cero.

(2.75)

(2.76)

(2.77)

(2.78)

Page 41: Diseño y Simulación de un sistema mecánico subactuado

� ����

Ahora que el determinante ha sido revisado si se sustituye el valor de la inversa de la

matriz H en la ecuación 2.74, se obtiene el modelo matricial para las segundas derivadas

así:

( )���

+���

−−−=

�����

••

••

••

218

16

564523

542

321

2

1

θθθ

θ

θh

hF

wwwwwwwwwwwwxc

Donde los valores de las constates wi de la ecuación 2.79 son mostradas en la tabla 2.4;

y si se transforma dicha ecuación a un sistema de ecuaciones, se obtiene la solución para

las aceleraciones de las coordenadas que definen el sistema así:

2831831621 θθθ hwhwhwFwx c +++=••

28518516421 θθθθ hwhwhwFw +++=••

( ) ( ) ( ) ( ) 285618561645232 θθθθ hwwhwwhwwFww −+−+−+−=••

(2.79)

(2.80)

(2.81)

(2.82)

Page 42: Diseño y Simulación de un sistema mecánico subactuado

� ����

Tabla 2-5: Tabla de constantes para los elementos de la matriz H-1

Constante Valor Constante Valor

W1 ( )Hhhh

det

2574 −

W4 ( )Hhhh

det

2371 −

W2 ( )Hhhhh

det7253 −

W5 ( )Hhhhh

det5132 −

W3 ( )Hhhhh

det4352 −

W6 ( )Hhhh

det

2241 −

det(H) 42

353272

22

51741 2 hhhhhhhhhhhh −+−−

Ahora que las aceleraciones ya han sido despejadas, la representación en espacio de

estados puede ser realizada, para ello es preciso primero establecer las variables de

estado del sistema así:

26

25

14

13

2

1

=

==

==

=

θ

θθ

θ

x

xx

xxx

xx

c

c

Ahora de acuerdo a las ecuaciones 1.21, 1.22, y 2.80 a 2.82 tenemos las matrices A, B y

C para que la representación en espacio de estados del péndulo doble sea completa.

Las matrices A, B y C se muestran a continuación:

Page 43: Diseño y Simulación de un sistema mecánico subactuado

� ����

( ) ( ) ( ) ( ) ��������

−−+−−

+−

+−

=

000100000000001000000000010

856856645932

85856492

83836291

hwwhwwhwwhww

hwhwhwhw

hwhwhwhw

A

( )

���

=

��������

=010000000100000001

C ,

0

0

0

1023

102

101

hww

hw

hw

B

2.3 VALIDACIÓN DE LOS MODELOS MATEMÁTICOS

El modelo tenido en cuenta hasta el momento tiene como entrada del sistema la fuerza, y

no se ha tomado el actuador del sistema, sin embargo a partir de este momento tanto en

esta sección como en la del analisis de controlabilidad se incorporara al sistema el motor

que actua como fuente de fuerza para el sistema. La documentación de la selección del

motor y su modelado se encuentra referenciada en los capitulos 6 y 7.

Los modelos matemáticos son de gran ayuda para identificar, reconocer y definir

aspectos característicos de un sistema o proceso en el cual se implementara en la

mayoría de los casos algún tipo de estrategia de control. La gran parte de estos sistemas

son de comportamiento no lineal y en algunos casos se pueden realizar aproximaciones

lineales por medio de técnicas de identificación, aunque al realizarse estas se debe tener

en cuenta que se pierden propiedades del sistema, para otros se deben linealizar

analíticamente partiendo como base del modelo no lineal esto al igual que el caso anterior

(2.83a)

(2.83b)

Page 44: Diseño y Simulación de un sistema mecánico subactuado

� ����

tiene como consecuencia la perdida de información en la dinámica del sistema para

sectores fuera de los puntos de trabajo alrededor de los cuales se hace la linealización.

Para obtener buenos resultados en el diseño, simulación y posterior implementación de

controladores, es necesario que los modelos matemáticos desarrollados de la planta o

proceso expresen al máximo el comportamiento real de esta y si es posible que reflejen

sus limitaciones, por ello es necesario realizar una validación de los modelos pues este

paso permite que errores en los modelos sean identificados y corregidos.

La validación que se propone en es trabajo es muy sencilla, y consiste en observar la

respuesta natural del sistema, es decir se coloca como entrada cero y se itera con la

posición inicial de los ángulos observando la salida o salidas para analizar si su

comportamiento es parecido a un prototipo físico; pero así mismo es importante tener

amplios conocimientos acerca del sistema para poder certificar y validar los datos

resultante del análisis del modelo matemático.

La respectiva validación de los modelos efectuados anteriormente del péndulo invertido

simple y doble se realiza con ayuda del Simulink de Matlab 6.5, debido a que permite

elaborar fácilmente y de manera confiable los respectivos modelos de las plantas ya

mencionadas.

2.3.1 Modelo Péndulo Invertido Simple. En primer lugar es necesario realizar una

representación numérica del péndulo simple, para esto es preciso, reemplazar los valores

de los parámetros del sistema que se encuentran en los modelos obtenidos hasta ahora

por valores con los que se construirá el sistema. En la tabla 2-6 se muestran los valores

numéricos que se utilizan obtenidos a partir de los valores obtenidos en el diseño

detallado.

Page 45: Diseño y Simulación de un sistema mecánico subactuado

� ����

Tabla 2-6: Valores numéricos de los parámetros del sistema péndulo invertido. Símbolo Descripción Valor Unidad

M Masa del carro 0.5 Kg. m Masa del péndulo 128.3 Kg. c Constante de fricción entre carro - pista 0.1 N/m/s. b Constante de fricción entre péndulo - carro 0.001 N/m/s. L Longitud total del péndulo 0.5 m I Inercia del péndulo 0.0107 Kg./m2

g Gravedad 9.81 m/s2

r Radio de la rueda dentada acoplada al motor 0.02 m

Km Constante de Torque 0.0333 Nm/A KG Relación de Reducción 1 --------- Ra Resistencia de Armadura 0.62 �

En la tabla 2-6 los valores de los coeficientes de rozamiento han sido estimados de

acuerdo a información obtenida de los rodamientos utilizados para los acoples tanto

lineales como rígidos de bolas, y en cualquier caso en un sistema real estos pueden variar

y los valores correspondientes a las constantes del motor se encuentran en el catalogo de

este. Los valores de la tabla 2-6 se sustituyen en la representación de espacio de

estados que se presenta a continuación.

������

4

3

2

1

x

x

x

x

=

����

−−

0584.09933.174225.1301000

0029.08763.09506.700010

.

����

4

3

2

1

xxxx

+ u⋅

����

− 8852.70

6707.40

Teniendo como base el modelo matemático no lineal, y la representación en variables de

estado, se procede a escribir las expresiones debidamente despejadas en Simulink con

ayuda de la herramienta fcn, el cual es un bloque de expresión general donde se utiliza

“U()” como entrada de la variable, en donde se transcriben las expresiones matemáticas

de las ecuaciones.

�2.84��

Page 46: Diseño y Simulación de un sistema mecánico subactuado

� ����

La figura 2.5 ilustra la representación del sistema péndulo simple en Simulink, en la cual al

modelo se le ha incluido la dinámica del motor DC como fuente de fuerza, y la entrada del

sistema como consecuencia es el voltaje aplicado al motor.

Figura 2.5: Implementación del Modelo No Lineal del Péndulo Simple en Simulink

Después de tener el modelo de la figura 2.5, para iniciar la validación se debe inicializar

las variables para realizar la previa simulación, se inicializa el ángulo del péndulo con

respecto a la vertical Phi (�) en un grado (1°), la posición lineal del carro (X) en cero, y se

aplica en la entrada un voltaje cero (0), y se simula el sistema con estas condiciones

iniciales para observar la respuesta natural del sistema.

En Figura 2.6 se observa al movimiento que realiza el péndulo cuando se deja caer

desde la posición inicial (1°). Se nota claramente que el péndulo al soltarlo desde su

posición vertical y no tener ningún voltaje aplicado, tiende a su posición de equilibrio

estable (180°) debido a la acción de la gravedad. En este modelo se pueden cambiar

parámetros como las constantes de rozamiento para intentar “sintonizar” el modelo con el

prototipo físico construido.

Page 47: Diseño y Simulación de un sistema mecánico subactuado

� ���

Figura 2.6: Respuesta Natural del Sistema Péndulo Simple

��

Tambien se muestra la representación del movimiento que realiza el carro debido a la

acción que ejerce el movimiento pendular sobre él. Se observa que el movimiento del

carro es de un lado a otro casi en forma simétrica alrededor de cero, de acuerdo con la

amplitud de la oscilación que realiza el péndulo, ya que, al final, cuando el péndulo tiende

a quedarse sin movimiento, el carro también debido a la reacción que ejerce el péndulo

sobre este.

De acuerdo a los resultados obtenidos en el sistema y expresado en la Figura 2.6 se

puede concluir que el modelo matemático construido es valido pues expresa las

características dinámicas del sistema que son de interés para los objetivos de control.

Page 48: Diseño y Simulación de un sistema mecánico subactuado

� ���

2.3.2 Modelo del Péndulo Invertido Doble. Al igual que en el modelo anterior es

preciso realizar una representación numérica del sistema a fin de caracterizar el mismo y

poder realizar las simulaciones con parámetros obtenidos del sistema físico. En la tabla 2-

7 se ilustran los valores numéricos para los parámetros del sistema péndulo doble. Los

valores de los coeficientes de rozamiento y de las constantes del motor son iguales que

para el péndulo simple

Tabla 2-7: Valores numéricos para los parámetros del sistema péndulo doble. Símbolo Descripción Valor Unidades

M Masa del carro 0.5 Kg

m1 Masa péndulo 1 0.1026 Kg

m2 Masa péndulo 2 0.1026 Kg

L1 Longitud péndulo 1 0.4 m

L2 Longitud péndulo 2 0.4 m

g Gravedad 9.81 m/s2

A partir del modelo no lineal de la planta, y de la definición de las variables de estado, se

realiza la implementación en Simulink del modelo no lineal del péndulo doble pero para

este caso, las ecuaciones que representan a la planta son más complejas que las

anteriores, por lo que se tuvo un hacer un sistema más estructurado y dividido en algunos

subsistemas en la implementación en Simulink.

Como se expresó anteriormente las ecuaciones que definen el sistema no lineal son

bastante complejas y por eso requieren de manipulación matemática para poder ser

implementadas fácilmente en simulink, lo que da como resultado que el modelo se divida

en dos partes o subsistemas que se aprecian en la figura 2.7.

Page 49: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 2.7: Implementación del Modelo No lineal del Péndulo Doble en Simulink

En el primer subsistema se localizan los bloques Fcn, dentro de los cuales se escriben

las expresiones algebraicas del modelo no lineal del Péndulo Invertido Doble, estos se

muestran el la figura 2.8. Básicamente las expresiones que se muestran en la figura 2.8

son simplemente combinación de las variables de estado que son muy comunes en el

despeje de cada una de estas.

En la figura 2.9 se muestra el otro subsistema se encuentran expresiones y operaciones

algebraicas complementarias que se presenta el modelo no lineal dentro de su

modelamiento matemático. Las expresiones contenidas en este subsistema son

combinación de las expresiones del subsistema funciones.

Page 50: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 2.8: Subsistema Funciones

Figura 2.9: Subsistema Complementario del Modelo

Page 51: Diseño y Simulación de un sistema mecánico subactuado

� ����

Después de la implementación de simulink, se procede a la inicialización de las variables

del sistema, para este caso y como se había realizado con el modelo del péndulo simple,

se analiza la respuesta natural del péndulo inicializando el ángulo del péndulo 1 Phi (�) a

1° con respecto a la vertical, y el ángulo del péndulo 2 Theta (�) en cero con respecto al

péndulo 1, también se procede a inicializar la posición lineal del carro en cero y se aplica

un voltaje nulo en la entrada.

La figura 2.10 muestra como el péndulo 1, partiendo desde su punto de inicialización,

realiza oscilaciones alrededor de su punto de equilibrio estable (180°) y su tendencia a

detener su movimiento se observa en la disminución periódica de su amplitud en cada

oscilación, siendo este comportamiento, el esperado de acuerdo a la dinámica del

sistema. Esta disminución será diferente si se cambian los coeficientes de rozamiento,

pero para el caso actual con el fin de hacer más real el modelo estos son tenidos en

cuenta

Tambien se observa que el péndulo 2, reacciona al movimiento que le produce el péndulo

1, lo cual hace que este realice varias vueltas alrededor de su punto de pivote que se

encuentra en el extremo del péndulo 1, es por ese motivo que el péndulo 2 se estabiliza

en el punto de equilibrio estable (0°) que es equivalente a la posición de 720º que se

puede apreciar en la figura. Es decir que el péndulo 2 se estabiliza formando un ángulo de

0º con respecto a su punto de pivote

Ademas se grafica el movimiento del carro cuando el sistema esta configurado como

péndulo doble, posee un comportamiento muy similar al de la configuración de péndulo

simple, ya que este movimiento es consecuencia de las oscilaciones de los péndulos, lo

que hace que el carro también oscile alrededor de su punto de inicialización, hasta que se

detenga y se estabilice al igual que los péndulos.

Page 52: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 2.10: Respuesta Natural del Sistema Péndulo Doble

En general la Figura 2.10 se valida el modelo construido para el péndulo simple. Es

conveniente aclarar que los resultados aquí consignados son simplemente una parte

resultantes de comprobar el comportamiento del sistema para diversas condiciones

iniciales.

Page 53: Diseño y Simulación de un sistema mecánico subactuado

� ����

2.4 ANALISIS DE CONTROLABILIDAD

2.4.1 Péndulo Invertido Simple. Antes de iniciar con el diseño de cualquier

controlador es necesario saber si el sistema es completamente controlable, “se dice que

un sistema es controlable en el tiempo t0 si se puede llevar de cualquier estado inicial x(t0)

a cualquier otro estado, mediante un vector de control sin restricciones, en un intervalo de

tiempo finito.2 Para conocer si el péndulo invertido es controlable se requiere calcular la

matriz de controlabilidad (C0) que se describe a continuación.

C0 = [B � AB � A2B � A3B]

Donde A = n x n Matriz de estados

B = n x 1 Matriz de entradas

A partir de la representación numérica del sistema linealizado expresado en la ecuación

2.84 y 2.85 se tiene que la matriz de controlabilidad del sistema péndulo invertido

traslacional es:

����

−−−−

−−−

=

��������������

����������

���������

������

��

Para conocer si el sistema es completamente controlable se calcula el rango de la matriz

de controlabilidad, y si la matriz C0 es de rango completo (rango = n = 4) significa que el

sistema es completamente controlable.

�������������������������������������������������2 OGATA, Katsuhiko. Ingeniería de control de moderna. 3 ed. México: Pearson, 1998. p.737.

(2.85)

(2.86)

Page 54: Diseño y Simulación de un sistema mecánico subactuado

� ����

2.4.2 Péndulo Invertido Doble. Como el controlador que se va a implementar es de

tipo lineal es necesario observar la controlabilidad del sistema antes de diseñar cualquier

tipo de controladores.

La matriz de controlabilidad del sistema péndulo invertido doble se muestra en 2.87, y

con la ayuda de matlab al ejecutar el comando Rank (Co), se obtiene que el rango es

igual a 6, lo que equivale a decir que el sistema es completamente controlable.

��������

−−−−−−−−

−−−−−−

−−

=

������������������������������

����������������������������

���������������������������������

�����������������������������

���������������������������

����������������������

���

Con los analisis de controlabilidad termina este capitulo en el que se ahondado en las

caracteristicas dinámicas del UMS, con el fin de conocer su comportamiento y entrar enla

etapa de diseño mecatrónico que se aborda en los capitulos 3 a 6, y de igual manera con

el analisis de controlabilidad del sistema es posible que en el capitulo 7 se proceda al

diseño de controladores para ambas configuraciones.

(2.87)

Page 55: Diseño y Simulación de un sistema mecánico subactuado

� ����

3. PLANEACIÓN DEL PRODUCTO

3.1. JUSTIFICACIÓN Los sistemas mecánicos subactuados son una importante área de investigación en el

campo de la robótica a nivel mundial, debido a que representan la posibilidad de manejar

más grados de libertad con menos actuadores, lo que trae beneficios en costos,

producción y seguridad de futuros sistemas.

Cuando se trabaja con sistemas mecánicos en los que hay igual numero de actuadores

que grados de libertad se debe tener en cuenta que en el momento de presentarse fallas,

el mecanismo tiende a colapsar o a no comportarse de una manera adecuada, debido a

que no está en capacidad de actuar como un sistema subactuado, de modo que es

evidente el estudio de esta clase de dispositivos como una herramienta fundamental para

actuar en estos casos, siendo precisamente en este campo donde se encuentra una de

las principales aplicaciones, y ramas de investigación a nivel mundial, pues implica

ahorros en recursos técnicos, financieros y humanos.

Los sistemas no lineales constituyen un interesante campo de estudio para sistemas de

control, debido a que nos permiten entrarnos en un tema interesante el cual es muy

centrado en la realidad y poco explorado en el ámbito nacional y sobretodo en niveles de

pregrado. Además es posible mostrar como las herramientas matemáticas, usadas de

forma adecuada, pueden ser muy útiles en estas aplicaciones sacando el mejor provecho

para la solución de este tipo de problemas.

Los resultados son de interés académico debido a que servirán como bases para cursos

impartidos en la universidad, tales como control digital, control moderno, sistemas en

tiempo real y sistemas inteligentes.

Page 56: Diseño y Simulación de un sistema mecánico subactuado

� ����

Por otro lado los prototipos virtuales permiten una visualización muy cercana la realidad

de prototipos físicos; debido a esto se utilizan para el monitoreo de plantas a distancia, en

las cuales la presencia física de un operario podría ser peligrosa.

El desarrollo de prototipos virtuales en 3D es de gran importancia debido a que representa

la posibilidad de implementar sistemas mecánicos interactivos (prototipado virtual) sin

necesidad de construcción física, consiguiendo con ello reducción de costos y de tiempo.

Además debido a los inconvenientes con la transmisión de video a través de Internet (La

velocidad de la transmisión), estos prototipos son una herramienta fundamental para el

desarrollo de laboratorios virtuales.

La industria Colombiana tiene muchas empresas que no proporcionan el suficiente grado

de automatización requerido para obtener productos de alta calidad que puedan ser

exportados además de que no se ha generado de una manera efectiva en las

universidades grupos fuertes de investigación que estén obteniendo nuevos desarrollos y

que estén impulsando el área de automatización y control una forma más efectiva; y el

desarrollo de proyectos de este tipo posicionan a la universidad como pionera colocándola

a la vanguardia en la región y en el país en generación de tecnología nacional.

3.2. PLANTEAMIENTO DE LA MISIÓN �Descripción del Proyecto

Péndulo invertido traslacional configurable como péndulo simple y péndulo doble, para

desarrollo de prácticas de control automático.

Principales Objetivos del producto

Generar un producto competitivo en sector académico nacional y andino.

• Dotar al laboratorio de una nueva planta para practicas de control avanzado

• Trabajar técnicas de control no convencionales

• Emplear diferentes estrategias de control en las distintas formas de trabajo del

sistema.

• Generar documento con conclusiones del proceso.

Page 57: Diseño y Simulación de un sistema mecánico subactuado

� ���

• Desarrollar un dispositivo fiable, robusto y con diseño industrial aceptable.

Premisas y Restricciones

• Costo total para la construcción del dispositivo no debe exceder los $ 5’500.000.

• Fácil mantenimiento y reparación.

• Control por medio del computador utilizando el software Matlab y la tarjeta de

adquisición de datos PCI 1200.

Mercado Primario

• Sector académico, Universidades y centros de educación superior donde se

dicten materias relacionadas con control.

Mercado Secundario

• Grupos de investigación

Partes Implicadas

• Director del proyecto, diseñadores, usuarios, entidad de financiamiento y

proveedores de servicios y suministros

Page 58: Diseño y Simulación de un sistema mecánico subactuado

� ���

4. DESARROLLO CONCEPTUAL

4.1 IDENTIFICACIÓN DE NECESIDADES

4.1.1 Recolección de información primaria. Para la recolección de información

primaria se acudió a las principales partes implicadas relacionadas en el planteamiento de

la misión, es así como se recogieron las inquietudes de los usuarios de las plantas que se

encuentran en el laboratorio de automática de la universidad tanto de estudiantes de

semestres superiores que ya tienen identificados falencias y fortalezas en los equipos,

como de estudiantes que apenas inician sus practicas, e igualmente se obtuvieron

valiosos aportes de docentes y el personal encargado de manipulación de los equipos; es

así como se obtuvo un compendio numeroso de inquietudes y expectativas sobre el

equipo que forma la materia prima para obtener las principales necesidades a satisfacer.

4.1.2 Interpretación de datos primarios en términos de necesidades. De los datos

recolectados en la información primaria se obtuvieron múltiples planteamientos de los

usuarios del sistema, los cuales luego de un proceso de filtración se agruparon en una

serie de planteamientos globales que envuelven de manera integral las características de

desempeño esperadas del sistema, estos son numerados en la tabla 4-1. La tabla 4-2

ilustra la interpretación de los planteamientos esperados del dispositivo en términos de

necesidades; en general fueron detectadas diez y seis necesidades que abarcan

principalmente diseño industrial e instrumentación, en esta tabla al sistema a desarrollar

se hace referencia como UMS por las siglas en ingles de Underactuated Mechanical

System, y a lo largo de todo el documento.

4.1.3 Organización de necesidades por jerarquía. Las diez y seis necesidades

identificadas son reagrupadas en cuatro necesidades primarias, y a su vez de acuerdo a

los parámetros de diseño definidos en el planteamiento de la misión del proyecto se

define nivel de importancia para cada necesidad secundaria dada por el numero de

puntos ( ), tal como es ilustrado en la tabla 4-3.

Page 59: Diseño y Simulación de un sistema mecánico subactuado

� ����

Tabla 4-1: Listado de planteamiento de usuarios a “Instrumentación más robusta” b “Que la interfaz de conexión sea ordenada y clara”�c “No quiero que se descuadre la instrumentación”�

d Que la variable de proceso este completamente instrumentada con voltajes estándares”

e “Buen diseño industrial”�f “Que sea lo más modular posible”�g “Agradable a la vista” h “Que todo este incluido en la mesa de trabajo”�i “Que tenga buena ilustración en el momento de conectar”�j “Quiero que sea cómodo y fácil de usar”�k “Que sea de fácil mantenimiento”�l “Flexibilidad para cambios en la configuración”�

m “Que sea autónoma en la parte de potencia”�

n “Me estresa llamar al auxiliar del laboratorio para que calibre el sistema”�

o “Que este bien documentada, que tenga manual técnico” p “Que sea resistente, materiales finos” q “Que sea robusta, que no sea delicada” r “Que sea económico”�s “Que sea fácil de transportar”�t “Que sea durable”�

Tabla 4-2: Interpretación de necesidades

NECESIDADES PLANTEAMIENTO USUARIOS

1. El UMS es ordenado en su sistema de conexiones b, i 2. El UMS presenta señales instrumentadas y confiables a, d, n 3. Los sensores funcionan correctamente después de excesivo uso c, n 4. El UMS es atractivo e innovador en su diseño e 5. El UMS es fácil de ensamblar f 6. El UMS presenta interfaz agradable al usuario g 7. El UMS es de fácil operación 8. El UMS permite el almacenamiento de sus distintos accesorios

h, j

9. El UMS es de fácil mantenimiento y reparación K 10. El UMS tiene integrados en su estructura las etapas de potencia,

instrumentación y alimentación. m

11. El UMS posee la capacidad de hacer diferentes pruebas 12. El UMS presenta posibilidad de configurarse en distintas

modalidades. l

13. El UMS es fácil de transportar s 14. El UMS presenta manual técnico. o 15. La estructura mecánica del UMS se compone de elementos de

manufactura nacional y fácil de consecución 16. El UMS es duradero

p, r, t

Page 60: Diseño y Simulación de un sistema mecánico subactuado

� ����

Tabla 4-3: Jerarquía de necesidades.

1. EL SISTEMA ELECTRÓNICO DEL UMS ES CONFIABLE Y ROBUSTO

El UMS es ordenado en su sistema de conexiones

�El UMS presenta señales instrumentadas y confiables�

�Los sensores funcionan correctamente después de excesivo Uso�

�El UMS tiene integrados en su estructura las etapas de potencia, instrumentación y alimentación.�

2. EL DISEÑO DEL UMS ES ÓPTIMO Y COMPETITIVO

El UMS es atractivo e innovador en su diseño

El UMS es fácil de ensamblar

�El UMS presenta posibilidad de configurarse en distintas modalidades�

El UMS presenta interfaz agradable al usuario

3. EL UMS ES DE FÁCIL MANTENIMIENTO Y CONFIGURACIÓN

El UMS es de fácil mantenimiento y reparación

El UMS posee la capacidad de hacer diferentes pruebas

El UMS presenta manual técnico

El UMS es de fácil operación

4. LA ESTRUCTURA MECÁNICA DEL UMS ES SENCILLA Y ROBUSTA

La estructura mecánica del UMS se compone de elementos de manufactura nacional y fácil de consecución en el mercado.

�El UMS es duradero�

�El UMS es fácil de transportar�

El UMS permite el almacenamiento de sus distintos accesorios

Page 61: Diseño y Simulación de un sistema mecánico subactuado

� ����

La agrupación por jerarquías permite formar grupos de necesidades primarias permiten

obtener el pareto del proceso de diseño de modo que simplifica cualquier decisión a

tomar, pues resumen en la fiabilidad del sistema electrónico y mecánico, en el diseño

industrial y en la fácil operación del equipo todas las necesidades de los usuarios que

delimitan los puntos clave a tener en cuenta de aquí en adelante.

4.1.4 Importancia relativa de las necesidades. Finalmente a cada una de las

necesidades que se obtuvieron se le asignará la importancia relativa que representa para

el proceso de diseño, teniendo en cuenta la lista jerárquica de necesidades y el grupo de

necesidades primarias al que pertenecen, son ponderadas con un orden de importancia

de 1 a 5, ilustrado en la tabla 4-4.

Tabla 4-4: Importancia relativa de las necesidades de los usuarios del UMS # NECESIDAD IMP.

1 El UMS es ordenado en su sistema de conexiones 4

2 El UMS presenta señales instrumentadas y confiables 5

3 Los sensores funcionan correctamente después de excesivo Uso 3

4 El UMS es atractivo e innovador en su diseño 4

5 El UMS es fácil de ensamblar 4

6 El UMS presenta interfaz agradable al usuario 3

7 El UMS es de fácil operación 4

8 El UMS permite el almacenamiento de sus distintos accesorios 2

9 El UMS es de fácil mantenimiento y reparación 4

10 El UMS integra en su estructura las etapas de potencia, instrumentación y alimentación 5

11 El UMS posee la capacidad de hacer diferentes pruebas 4

12 El UMS presenta posibilidad de configurarse en distintas modalidades 5

13 El UMS es fácil de transportar 3

14 El UMS presenta manual técnico 5

15 La estructura mecánica del UMS se compone de elementos de manufactura nacional

y fácil de consecución en el mercado 3

16 El UMS es duradero 4

De la tabla 4-4 es importante aclarar la diferencia existente entre la necesidad 11 y 12,

pues el dispositivo como se menciona en el planteamiento de la misión puede

Page 62: Diseño y Simulación de un sistema mecánico subactuado

� ����

configurarse como péndulo simple y doble, pero a su vez debe permitir hacer diferentes

pruebas con estas dos configuraciones como swing up, control de oscilaciones, y control

de posición del carro, que exigen un diseño mecánico versátil que en algunos dispositivos

presentes en el mercado y tenidos en cuenta en el Benchmarking competitivo no

presentaban

4.2 ESPECIFICACIONES PRELIMINARES

4.2.1 Establecimiento de métricas. De acuerdo a las necesidades expuestas se

establecen las métricas que son el punto de partida para definir las especificaciones

preliminares que enmarcan las condiciones de diseño que se deben cumplir y con las

cuales se medirá el producto al final de este trabajo de modo que son el indicador para

evaluar si los objetivos trazados son o no alcanzados

En la tabla 4-5 se muestran las métricas con su importancia relativa para el diseño del

dispositivo, en total se obtuvieron veinte métricas luego de un proceso de refinación,

dentro de las cuales dos de ellas se miden con listas, referentes a las necesidades de

cableado y organización así como el tipo y numero de pruebas que el sistema debe

permitir realizar; de la misma forma la métrica número 4 es subjetiva pues tiene que ver

con el diseño y apariencia en general del equipo, luego solo con una comunicación previa

del concepto será posible evaluar esta métrica.

Page 63: Diseño y Simulación de un sistema mecánico subactuado

� ����

Tabla 4-5: Listado de métricas del UMS a partir de necesidades de usuarios

Nº Necesidad Métrica Importancia Unidades

1 1, 4, 6 Organización y disposición del cableado 4 Lista 1

2 2, 10 Rango de voltaje para adquisición de datos y control 4 Voltios

3 2, 3, 16 Vida en Operación de sensores 4 Ciclos

4 1, 4, 6 Diseño atractivo 5 Subj.

5 5, 7, 11, 12 Tiempo medio para cambio de configuración 3 Minutos

6 2, 10 Voltaje de alimentación 3 Voltios

7 4, 8, 13 Dimensiones Almacén para accesorios (Ancho x Alto x Profundidad) 3 cm x cm x cm.

8 11, 12 Pruebas que se pueden realizar 4 Lista 2

9 13, 15 Masa total del dispositivo 4 Kg.

10 7, 13 Dimensiones generales sin incluir péndulos (Ancho x Alto x Profundidad) 4 cm x cm x cm.

11 4, 5, 7, 9, 10, 14 Manual Técnico de iniciación rápida 4 Binario

12 2, 4, 10, 11, 14, 15 Costo Unitario 5 Pesos

13 3, 4, 15, 16 Tiempo de vida útil del sistema 4 Años

14 4, 6, 7, 11, 12 Longitud Péndulo 1 3 Cm

15 4, 6, 7, 11, 12 Longitud Péndulo 2 3 Cm

16 4, 6, 7, 11, 12, 13 Masa Péndulo 1 3 Gramos.

17 4, 6, 7, 11, 12, 13 Masa Péndulo 2 3 Gramos.

18 4, 6, 7, 11, 12, 13 Masa del Carro 3 Gramos.

19 4, 6, 7, 11 Dimensiones del Carro (Ancho, Alto, Profundo) 3 cm x cm x cm.

20 4, 8, 11, 13 Longitud Carrera Efectiva 4 Metros

Tabla 4-5a: Información complementaria de la tabla 4.5

LISTA 2

A Estabilización del péndulo simple alrededor del punto de equilibrio inestable.

B Estabilización del péndulo doble alrededor del punto de equilibrio inestable.

C Swing up de péndulo simple y doble D Control de posición del carro E Control de Oscilaciones F Control péndulo dual

Lista 1 A Señalización

B Agrupación

C Visibilidad externa

Page 64: Diseño y Simulación de un sistema mecánico subactuado

� ����

4.2.2 Benchmarking competitivo. El benchmarking competitivo se centro en marcas

de productos similares que se encuentran en el mercado o que han sido desarrollados en

proyectos similares, a fin de enriquecer la información obtenida hasta el momento, y lograr

un posicionamiento del producto, además en el planteamiento de la misión es

fundamental la competitividad del producto. En la búsqueda de productos similares se

encontraron gran cantidad de dispositivos parecidos pero los que son tenidos en cuenta

son conocidos por su calidad y trayectoria en el caso de los comerciales, no se ha podido

tener acceso a buena parte de la documentación en el caso del proyecto de grado que se

tiene en cuenta. Así con base en estos criterios de selección de productos para el

Benchmarking se escogieron los que se mencionan a continuación.

• Péndulo Invertido Feedback Modelo 33-005-2M5: Este empresa presenta al

péndulo invertido con una mesa soporte integrado a sus mecanismos y elementos

tales como un actuador rotacional, encoders para sensar posiciones, un carro y

limitadores de carrera. Para transmitir el movimiento al carro utiliza dos poleas y una

correa dentada, sobre unos rieles desliza un carro haciendo uso de sus ruedas

laterales. Además del sistema mecánico la empresa entrega un software con el fin de

mostrar algunas técnicas de control sobre la maquina.

Figura 4.1: Péndulo Invertido Feedback 33-005-2M5

Page 65: Diseño y Simulación de un sistema mecánico subactuado

� ����

• Péndulo Invertido Googol Tech GLIP2002: El péndulo invertido realizado por esta

empresa se caracteriza por su gran diseño y fácil construcción de sus elementos que

conforman al sistema. Posee una base sólida, sobre la cual se montan todos los

componentes tales como sensores, motor, carro, ejes de guía y sistema de transmisión

(polea y correa dentada). Dos de sus principales atractivos son la variedad de

experimentos que se pueden realizar y su pequeño tamaño ya que facilita la posibilidad

de trabajar en cualquier lugar.

Figura 4.2: Péndulo Invertido Googol Tech GLIP2002

• Quanser IP01 – IP02: Esta empresa se considera una de las importantes en la

fabricación y venta de productos académicos debido a su amplia gama de productos

que ofrece, uno de ellos es el péndulo invertido traslacional, este sistema presenta un

diseño muy atractivo debido a la manufactura realizada en cada una de sus piezas.

Emplea como medio de transmisión el mecanismo cremallera - piñón, y sobre el carro

realiza el montaje del actuador rotacional y los encoders absolutos correspondientes al

sensado de la posición lineal y angular. Este sistema fue concebido como una

plataforma para realizar practicas de control.

Page 66: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 4.3: Péndulo Invertido Quanser IP01

• Péndulo Lakehead University: Este es un sistema desarrollado en la universidad de

Lakehead en el año 2004 como proyecto de grado en ingeniería eléctrica. Al cual se

ha tenido acceso a su documentación y se tienen videos del comportamiento así como

simulaciones de controladores implementados y la comparación teórico-practica, por

tanto es una importante referencia pues es posible comparar los resultados obtenidos

de este trabajo con el que se está implementando, además es la única fuente de

información académica de la que se tiene una basta información.

Figura 4.4: Péndulo Invertido Universidad Lakehead (Canadá)

Page 67: Diseño y Simulación de un sistema mecánico subactuado

� ���

En una primera etapa del Benchmarking se evalúa como los productos competidores

satisfacen las necesidades de los usuarios de modo que se crea un escenario en el cual

se califica en una escala de 1 a 5 a juicio del equipo de diseño y con base en la

información obtenida se asigna su medida, como se ilustra en la tabla 4-6, siendo claro

como los productos más competitivos son el modelo de Quanser y el de Googol Tech

pues debido a su excelente diseño industrial y desempeño constituyen un punto de

referencia muy interesante.

De igual manera se realiza una evaluación de las métricas entre los productos escogidos

para el benchmarking de modo que es posible establecer los valores preliminares del

UMS, de acuerdo a lo encontrado entre los productos tenidos en cuenta en este proceso.

La tabla 4-7 ilustra la evaluación de las métricas.

Page 68: Diseño y Simulación de un sistema mecánico subactuado

� ���

Tabla 4-6: Benchmarking basado en la satisfacción de las necesidades de los clientes

# Necesidad IMP IP01-IP02 QUANSER LAKEHEAD FEEDBACK GOOGOL

TECH

1 El UMS es ordenado en su sistema de conexiones 4 3 4 3 3

2 El UMS presenta señales instrumentadas y confiables 5 5 3 4 4

3 Los sensores funcionan correctamente después de excesivo Uso 3 4 3 4 4

4 El UMS es atractivo e innovador en su diseño 4 4 3 3 4

5 El UMS es fácil de ensamblar 4 4 3 3 4

6 El UMS presenta interfaz agradable al usuario 3 3 3 3 3

7 El UMS es de fácil operación 4 4 4 4 4

8 El UMS permite el almacenamiento de sus distintos accesorios 4 1 1 1 1

9 El UMS es de fácil mantenimiento y reparación 4 3 3 3 3

10 El UMS tiene integrados en su estructura las etapas de potencia, instrumentación y alimentación

5 1 1 1 1

11 El UMS posee la capacidad de hacer diferentes pruebas 4 4 4 5 4

12 El UMS presenta posibilidad de configurarse en distintas modalidades 5 4 4 5 4

13 El UMS es fácil de transportar 3 4 4 2 4

14 El UMS presenta manual técnico 5 5 3 5 5

15

La estructura mecánica del UMS se compone de elementos de manufactura nacional y fácil de consecución en el mercado

3 2 2 2 2

16 El UMS es duradero 4 4 4 4 4

Page 69: Diseño y Simulación de un sistema mecánico subactuado

� ����

Tabla 4-7: Evaluación de métricas con otros productos

# Métrica Imp Unidades IP01-IP02 QUANSER LAKEHEAD FEEDBACK GOOGOL

TECH

1 Organización y disposición del cableado 4 Lista 1 A, B A, B A, B A, B

2 Rango de voltaje para adquisición de datos y control 4 V 6 5 ��� ���

3 Vida en Operación de sensores 4 Ciclos ������� �����

�������

�� ����

���

4 Diseño atractivo 5 Subj. 4 4 3 3

5 Tiempo medio para cambio de configuración 3 Minutos �$� $�� $�� $��

6 Voltaje de alimentación 3 Voltios 120 V AC 120 V AC 120 V AC 120 V AC

7 Dimensiones Almacén para accesorios (Ancho x Alto x Profundidad)

3 cmxcmxcm. - - - -

8 Pruebas que se pueden realizar 4 Lista 2 A, B, D, E A, B, C, D, E A, B, C, D, E, F A, B, C, D, E

9 Masa total del dispositivo 4 Kg. - - - -

10 Dimensiones generales sin incluir péndulos (Ancho x Alto x Profundidad)

4 cmxcmxcm - - - -

11 Manual Técnico de iniciación rápida 4 Binario Si No Si Si

12 Costo Unitario 5 US - - 6000 7000

4.2.3 Establecimiento de valores marginales. De acuerdo a los resultados obtenidos

del benchmarking competitivo (sintetizado en tablas 4-6 y 4-7), y teniendo en cuenta las

limitaciones, se establecen los valores marginales para las métricas de modo que se

alcance el objetivo de hacer un sistema competitivo y de excelente desempeño; estos

valores son mostrados en la tabla 4-8.

Page 70: Diseño y Simulación de un sistema mecánico subactuado

� ���

En el establecimiento de valores ideales y marginales, la métrica Nº 4 Diseño Atractivo,

cuya unidad de medida es subjetiva tiene colocados como valores marginales una nota <

3.5 y como valor ideal una nota >4.5 en una escala de 1 a 5, esta decisión se adopta

como método para medir esta métrica que se considera importante para el equipo.

Tabla 4-8: Establecimiento de valores ideales y marginales

# Métrica Unidades Valor Marginal Valor Ideal

1 Organización y disposición del cableado Lista 1 A, B A, B, C

2 Rango de voltaje para adquisición de datos y control Voltios ±10 ±5

3 Vida en Operación de sensores Ciclos > 3x106 � 5x106

4 Diseño atractivo (1 –5) Sub. > 3.5 > 4.5

5 Tiempo medio para cambio de configuración Minutos < 10 < 5

6 Voltaje de alimentación Voltios 120 V AC 120 V AC

7 Dimensiones Almacén para accesorios (Ancho x Alto x Profundidad) cmxcmxcm. <100x30x20 < 80x15x15

8 Pruebas que se pueden realizar Lista 2 A, B A, B, C, D

9 Masa total del dispositivo Kg. �25 �20

10 Dimensiones generales sin incluir péndulos (Ancho x Alto x Profundidad) cmxcmxcm 160x110x10 140x100x20

11 Manual Técnico de iniciación rápida Binario Si Si 12 Costo Unitario US <7000 �5000 13 Tiempo de vida útil del sistema Años >5 >7 14 Longitud Péndulo 1 cm <60 �45 15 Longitud Péndulo 2 cm >30 �40 16 Masa Péndulo 1 Gramos. <200 �150

17 Masa Péndulo 2 Gramos. <160 �120

18 Masa del Carro Gramos <100 �300

19 Dimensiones del Carro (Ancho, Alto, Profundo) Cm, cm, cm 10x10x10 6x8x6

20 Longitud Carrera Efectiva Metros > 1.7 � 1.4

Page 71: Diseño y Simulación de un sistema mecánico subactuado

� ���

4.2.4 Especificaciones preliminares. Con el fin de enriquecer la fase subsiguiente

como lo es la generación y selección de conceptos se establecen las especificaciones

preliminares ilustradas en la tabla 4-9 del UMS, de modo que los esfuerzos en esta etapa

de desarrollo conceptual converjan hacia el cumplimiento de estas especificaciones, y

cuando sea seleccionado el concepto se establecerán las especificaciones finales

Tabla 4-9: Especificaciones preliminares # Métrica Unidades Valor 1 Organización y disposición del cableado Lista 1 A, B, C

2 Rango de voltaje para adquisición de datos y control Voltios ±5

3 Vida en Operación de sensores Ciclos � 20 e 9 4 Diseño atractivo Subj. 4

5 Tiempo medio para cambio de configuración Minutos 8

6 Voltaje de alimentación Voltios 120 V AC

7 Dimensiones Almacén para accesorios (Ancho x Alto x Profundidad) cmxcmxcm. 80x16x13

8 Pruebas que se pueden realizar Lista 2 A, B, C, D 9 Masa total del dispositivo Kg. 25

10 Dimensiones generales sin incluir péndulos (Ancho x Alto x Profundidad) cm, cm, cm 160x110x10

11 Manual Técnico de iniciación rápida Binario Si 12 Costo Unitario US 5000 13 Tiempo de vida útil del sistema Años >5 14 Longitud Péndulo 1 Cm 45 15 Longitud Péndulo 2 Cm 35 16 Masa Péndulo 1 Gramos. 100 17 Masa Péndulo 2 Gramos. 90 18 Masa del Carro Gramos 180

19 Dimensiones del Carro (Ancho, Alto, Profundo) cm, cm, cm

6x8x6 20 Longitud Carrera Efectiva Metros 1.2

Page 72: Diseño y Simulación de un sistema mecánico subactuado

� ���

4.3 GENERACIÓN DE CONCEPTOS

4.3.1 Clarificación del problema. Como entradas para esta fase tenemos el

planteamiento de la misión, la lista de necesidades de los usuarios y las especificaciones

preliminares que se desarrollaron en las dos fases anteriores de este capitulo, de acuerdo

con ellas se procede a la descomposición funcional. En la figura 4-5a se representa al

U.M.S como una caja negra aclarando que solo se tiene en cuenta al sistema

electromecánico de péndulo, pues como se estableció en el planteamiento de la misión

que el control se realizará utilizando Simulink y Matlab en un PC, así que se tienen las

siguientes entradas:

• Energía. Hace referencia a la forma de energía que se va a introducir al sistema

para hacerlo operar de acuerdo a las especificaciones y objetivos establecidos

• Señal On/Off. Es la señal que habilita o deshabilita el sistema para la operación y

por ende para aceptar energía; es un tipo de señal muy sencillo.

• Señal de Control. Es la señal que se recibe desde el computador de acuerdo a

los algoritmos de control implementados, y que necesariamente va a operar sobre

el actuador del sistema.

Y como salidas se tienen

• Señales de las variables. Hace referencia a las señales obtenidas de los

sensores de los que se compone el sistema y que son enviadas al computador

para la implementación y ejecución de los algoritmos de control implementados

• Péndulos en posición deseada. Con esta salida se hace referencia a la señal

visual de los péndulos en la posición deseada, pero en un sentido estricto son una

consecuencia de la salida anterior, aunque se coloca porque es una manera de

controlar la correcta operación de los sensores que miden las variables del

sistema.

Page 73: Diseño y Simulación de un sistema mecánico subactuado

� ���

La figura 4.5b ilustra un diagrama funcional en el que se muestran las funciones más

importantes que ilustran el comportamiento del sistema, conectadas de forma que se

exponen los flujos de energía y señales.

En el desarrollo de esta sección se enfoca la metodología a trabajar con la ruta crítica,

que es señalada en color rojo en la figura 4.5b, de modo que esta representa los

principales sub problemas en los que se deben concentrar esfuerzos a fin de lograr un

desempeño optimo del sistema.

Figura 4.5: a) Caja negra y b) Descomposición funcional

Aceptar Energía Externa

Convertir Energía a fuente

de fuerza

Aplicar fuerza al Péndulo

Amplificar Sensar

Movimientos Acondicionar

Señales

Señales del Sistema�

Señal de Control

U.M.S

ENERGÍA SEÑAL ON/OFF SEÑAL DE CONTROL

SEÑALES DE VARIABLES �

PÉNDULOS EN POSICIÓN DESEADA�

Señal

(a)

(b)

Péndulos en Posición deseada�

Flujo de señales

Flujo de energía�

Page 74: Diseño y Simulación de un sistema mecánico subactuado

� ���

4.3.2 Rama critica. De la figura 4.5b se observa que los componentes de la rama

crítica son:

• Aceptar Energía Externa:

En este grupo funcional se refiere a la forma de energía externa que se va a utilizar

para la operación del sistema y los medios que tiene asociados este tipo de energía

para su correcta utilización de modo que se garantice una operación confiable siempre

con énfasis a cumplir y satisfacer las especificaciones preliminares establecidas.

Dentro de este grupo funcional existen gran cantidad de ofertas tentadoras que se

exponen en la sección siguiente, y es determinante ya que de ella depende en gran

medida el espacio de soluciones posibles para la rama critica que se esta trabajando,

en especial con el subconjunto que tiene asociado el actuador a utilizar por el sistema.

• Convertir Energía a fuente de fuerza

En este grupo funcional se hace referencia a la forma como el sistema toma la energía

que recibe del exterior, y se convierte como una fuente de fuerza de modo que se

pueda aplicar ésta al móvil que soporta los péndulos, lo cual es una premisa

fundamental para que el sistema se comporte como el péndulo que se modelo en el

capitulo 2. De igual manera en este grupo funcional la cantidad de ofertas encontradas

es abundante y requiere de gran cuidado ya que en gran parte determina el

comportamiento del sistema

• Aplicar fuerza al péndulo

La fuerza que se obtiene a partir de la energía externa, debe ser transmitida al sistema

del péndulo en su grado de libertad traslacional, y los medios utilizados para la

transmisión de esta fuerza que se ve reflejada en movimiento, son los que tienen

referencia a este grupo funcional.

• Sensar Movimiento

Uno de los principales objetivos, es tener un sistema de sensores fiables, por medio

de los cuales se obtenga una medida de los grados de libertad que tiene el sistema, y

Page 75: Diseño y Simulación de un sistema mecánico subactuado

� ���

así entregar al sistema de control implementado en el PC, medida de las variables de

interés. En este grupo funcional la variedad de ofertas es la más abundante de los

grupos hasta ahora expuestos, y de acuerdo a los objetivos impuestos en el

planteamiento de la misión así como las características de la dinámica misma del

sistema, se debe hacer una selección muy cuidadosa.

4.3.3 Exploración sistemática de información. Para los grupos funcionales obtenidos

a partir de la rama crítica se realizo búsqueda externa, acudiendo a distintas fuentes de

información, como Internet, libros de diseño, distribuidores de sensores y elementos de

maquinas, fabricantes de dispositivos similares, catálogos técnicos entre otros

consignados en la bibliografía, y de toda esta búsqueda se obtuvo un compendio muy

extenso de información relacionada, que para efectos de su correcta organización y

selección se organizo en árboles de clasificación de conceptos, y en tablas de

combinación de conceptos, de modo que al final de este proceso de exploración

sistemática se obtienen los conceptos generados que serán puestos a consideración para

su desarrollo.

4.3.3.1 Árboles de clasificación. El objetivo principal de los árboles de clasificación es

poder organizar toda la información que se ha recopilado, de un modo jerárquico de

manera que se van creando ramas interconectadas unas con las otras, de manera que se

tiene un esbozo rápido del espacio explorado, e igualmente las ramas menos

prometedoras de acuerdo a los objetivos o por sus limitaciones son podadas, para no ser

tenidas en cuenta al momento de la combinación de conceptos. Los árboles de

clasificación aquí presentados son los finales, es decir los que resultaron luego de un

proceso exhaustivo de análisis y poda de los mismos

• Árbol de clasificación aceptar energía externa

Para este grupo funcional la variedad de ofertas es bastante amplia pero se ilustran en

el árbol de clasificación contenido en la figura 4.6 solo las que para efectos del sistema

pueden ser viables, a fin de usarlas en el U.M.S, es así como fuentes de energía

alternativas no han sido consignadas. En el árbol de clasificación se ha tenido en

cuenta solo fuentes de energía eléctrica, neumática e hidráulica, de las cuales a través

Page 76: Diseño y Simulación de un sistema mecánico subactuado

� ���

de distribuidores y por otros sistemas similares que se han utilizado en otras regiones

del mundo con este tipos de energía

Figura 4.6: Árbol de clasificación Aceptar energía externa

• Árbol de clasificación Convertir energía a fuente de fuerza

Al igual que el árbol anterior, varias ramas de este árbol han sido podadas a fin de

hacer el espacio de soluciones más manejable. La rama de actuadores hidráulico y

neumático es mucho más extensa pero entrar a describirlas, implica citar modelos de

actuadores y marcas especificas lo cual no es el objetivo de esta etapa donde los

esfuerzos están concentrados en encontrar las limitaciones y alcances de cada una de

las ramas representadas en el árbol. Este árbol de clasificación esta contenido en la

figura 4.7

�������������� �����

�����������

����������

���������

�������������

���������

Page 77: Diseño y Simulación de un sistema mecánico subactuado

� ��

Figura 4.7: Árbol de clasificación convertir energía a fuente de fuerza

• Árbol de clasificación Aplicar fuerza a péndulos

La figura 4.8 ilustra el árbol de clasificación para este grupo funcional de la ruta crítica,

y es claro como se ilustran muchos sistemas de transmisión, que han sido tenidos en

cuenta luego de la poda de muchas ramas, debido a su simplicidad, y fácil

consecución en el ámbito local que es uno de los principales objetivos trazados para el

diseño.

Figura 4.8: Árbol de clasificación Aplicar fuerza al péndulo

�������������������������

��������������� !�

����!�

"�#����$������

������%�����

�������&������

��'������������

��(������������#��������#������

)�����&��

)��������

)�����������������

)���������*�����

�������������������

)������������&��

"��(�������&��

��������������������

Page 78: Diseño y Simulación de un sistema mecánico subactuado

� ��

• Árbol de clasificación Sensar movimientos.

En la figura 4.9 es mostrado el árbol de clasificación para Sensar movimientos, donde

se muestran solo sensores de tipo óptico y resistivo, de los cuales se tienen referencias

en este tipo de aplicaciones, además es colocado de manera tentativa un sensor

inalámbrico (wireless) para evitar los inconvenientes que trae consigo la presencia de

cables, y su posible intervención en el cambio de dinámica en el sistema debido a la

fuerza que estos pueden ejercer sobre las barras, si no se disponen de una manera

eficiente

Figura 4.9: Árbol de clasificación Sensar movimiento

4.3.3.2 Tablas de combinación de conceptos. De acuerdo a los árboles de clasificación

finales que se exponen en las figuras 4.6 a 4.9 se tienen un total de 1152 posibles

conceptos, esta información es organizada como se ilustra en la figura 4.10, donde se

muestran algunos de los conceptos más prometedores evaluados, y es claro ya en esta

fase del proceso que se ha decidido a la fuente de energía eléctrica como la forma de

suministrar energía al sistema, así que los conceptos generados estarán dominados por

esta. Las otras fuentes de energía no se van a tener más en cuenta debido a los altos

costos de implementación que traían consigo, pero además criterios como la fácil

operación, mantenimiento y portabilidad del sistema fueron determinantes e inclinaron la

balanza hacia la opción ya mencionada

"�����)�(�������

�������'�������

������������

$���������+�������������

������,���������

��������!������

�����(����

Page 79: Diseño y Simulación de un sistema mecánico subactuado

� ���

En la figura 4.10 son ilustrados 9 posibles conceptos a ser desarrollados, tomando como

base las combinaciones de las distintas opciones de los árboles de clasificación, en

general fueron evaluados alrededor de 30 conceptos, que se redujeron a los nueve

mencionados y que tienen un color asignado en la figura 4.10. Luego de un proceso de

selección iterativo se llego a cinco conceptos para continuar en el proceso de selección.

En el proceso de pasar de un número muy amplio de conceptos a un número más

manejable se tuvieron en cuenta los siguientes criterios:

• Costo estimado de desarrollo del equipo.

• Versatilidad del equipo

• Dificultad de construcción y fabricación de piezas

• Necesidad de mantenimiento y reparación

• Portabilidad del equipo.

• Fiabilidad de instrumentos.

Page 80: Diseño y Simulación de un sistema mecánico subactuado

� � ��

Figura 4.10: Combinación de conceptos

�������������

)�����&��

)���������*�����

)������������&��

"��(�������&��

��������������� !�

"�#����$������

������%�����

�������&������

��'������������

�������'�������

������������

$���������+�������������

������,���������

��������!������

�����(����

�������������

)�����&��

)���������*�����

)������������&��

"��(�������&��

��������������� !�

"�#����$������

������%�����

�������&������

��'������������

�������'�������

������������

$���������+�������������

������,���������

��������!������

�����(����

�������������� �����

��(��������������)�(�������

$���������)�(�����������������

"�����)�(�������

Page 81: Diseño y Simulación de un sistema mecánico subactuado

� ���

4.3.4 Conceptos generados

• Concepto A. Red Eléctrica – Servomotor DC – Banda Lisa – Clarostatos

Este concepto que se ilustra en la figura 4.11, tiene como fuente de torque un

Servomotor DC, que transmite la fuerza al carro que tiene pivotado sobre sí el

péndulo, a través de una banda lisa, y la medida de los tres grados de libertad se

hace a través de clarostatos o resistores lineales. Como ventajas se puede

mencionar que el costo de los sensores es reducido comparado con el de los otros

conceptos presentados así como la fiabilidad que el uso de un servomotor imprime

a un sistema de control , pero se ve limitado por la carrera efectiva en el grado de

libertad traslacional que se puede tener, debido a que este tipo de sensores tiene

un limite de giros, además el acondicionamiento de señal para estos sensores es

más elaborado que para otro tipo de sensores, de igual manera se puede

mencionar que las bandas lisas pueden presentar deslizamiento si no se tienen las

condiciones de tensión necesarias, conjuntamente con su tiempo de estiramiento

corto en relación con otro tipo de bandas

Figura 4.11: Concepto A

Page 82: Diseño y Simulación de un sistema mecánico subactuado

� ���

• Concepto B. Red Eléctrica – Motor DC – Correa Dentada – Encoder Absoluto

La figura 4.12 presenta un esbozo de este concepto en el que la fuente de torque

es un motor DC convencional, y la transmisión de fuerza al sistema de péndulos se

hace a través de una correa dentada o timing belt, que garantiza menos perdida

de fuerza que las correas lisas, de igual forma reduce notablemente las

condiciones de tensión necesarias para su correcta operación, y el hecho de usar

encoders absolutos como sensores, permite que el acondicionamiento de señal

sea casi nulo y dependiendo de las características de estos se puede tener un

sistema de sensado fiable. Como desventaja principal se tiene el costo de los

componentes, y la dificultad de encontrar en el mercado nacional correas dentadas

con el paso y longitud requerida, lo que incidiría en algunas características

deseables del sistema

Figura 4.12: Concepto B

Page 83: Diseño y Simulación de un sistema mecánico subactuado

� ���

• Concepto C. Red Eléctrica – Motor DC – Cremallera Piñón – Encoder Incremental

En este concepto que se expone en la figura 4.13, la principal novedad radica en

que el motor que se utiliza como fuente de tórque no esta estático en un extremo

del dispositivo sino que se incorpora al carro y se mueve a lo largo de un conjunto

cremallera y piñón, lo que garantiza que el tórque aplicado sea constante, por

consiguiente hay menos perdidas y la eficiencia del sistema seria muy superior,

además el uso de encoders elimina problemas que se tiene con otro tipo de

sensores, sin olvidar que el carro utiliza solo un eje guía que permite que la

perdida por rozamiento sea menor que en los otros conceptos, pero la

construcción de este sistema en el país en mucho más costosa que los otros

conceptos, sumado esto a que el motor que se debe incorporar al carro debe ser

liviano esto con el fin de que no afecte la masa del sistema en forma muy drástica.

Figura 4.13: Concepto C

Page 84: Diseño y Simulación de un sistema mecánico subactuado

� ���

• Concepto D. Red Eléctrica – Motoreductor DC – Cable de Acero – Encoder

incremental y Absoluto.

La principal novedad que presenta este sistema es que el sistema de transmisión

se hace a través de un cable de acero que funciona de manera similar a las

correas, con la diferencia que la carrera puede ser mucho más larga, y la tensión

puede variarse sin preocuparse por la perdida de elasticidad, y además este

sistema es ampliamente usado en dispositivos industriales de trabajo pesado, el

inconveniente es que la literatura e información sobre este sistema de transmisión

es mas bien escasa, y a pesar de que en la búsqueda de información se encontró

un sistema similar3 operando con este sistema de transmisión de forma

satisfactoria

Figura 4.14: Concepto D

�������������������������������������������������3

AVELLO, A., RUBI, J. y RUBIO, A. Swing-up Control Problem for a Self-Erecting Double Inverted Pendulum [en linea]. San Sebastián, 2002. [Consultado en Marzo de 2005]. Disponible en Internet: http://www.ccse.kfupm.edu.sa/~selferik/download/00997871p5.pdf. p. 1-7.

Page 85: Diseño y Simulación de un sistema mecánico subactuado

� ���

• Concepto E. Red Eléctrica – Motoreductor DC – Correa Dentada – Encoder

Incremental

Básicamente este concepto es el mismo concepto B pero con la diferencia que los

encoders utilizados son encoders incrementales, esto con el fin de evaluar el

efecto que puede tener el precio elevado de encoders absolutos. Este concepto

surgió luego de las primeras etapas de selección de conceptos como una variación

del concepto B. y como ya ha sido mencionado en el presente informe solo se

presentan los resultados finales y no se hace énfasis en el largo proceso iterativo

que llevo esta fase del desarrollo del producto.

Page 86: Diseño y Simulación de un sistema mecánico subactuado

� ���

4.4 SELECCIÓN DE CONCEPTOS

Los conceptos elegidos para esta etapa de selección fueron elegidos mediante el análisis

de la combinación de conceptos mostrada en la etapa anterior, para luego evaluarlos

mediante la matriz de tamizaje y realizar la selección del concepto a desarrollar.

Tanto en la matriz de tamizaje como en la de selección de conceptos que se exponen en

las secciones siguientes de este capitulo, se ha escogido como referencia el péndulo de

Quanser IP01-IP02 debido que comercialmente representa una de las marcas más

representativas en el mercado de este tipo de dispositivos, además las referencias y

conocimientos que se tienen de este modelo permiten establecer más a fondo una

comparación con respecto a las características que se desean obtener.

4.4.1 Matriz de Tamizaje de Conceptos. En la matriz de tamizaje de conceptos que se

muestra en la tabla 4-10 los criterios de selección escogidos son la lista de necesidades

que se extraen de la tabla 4-4, pues se verificara como cada uno de los conceptos

seleccionados cumple con esta con el fin de establecer en que medida se esta

consumando la meta final de lograr satisfacer estas necesidades dentro del proceso de

diseño.

De la matriz de tamizaje se tiene como resultado que los conceptos A y D, no continuaran

en el proceso de diseño debido a que quedaron por debajo de la referencia en la medida

de satisfacción de necesidades de los clientes, esto principalmente debido a que en el

concepto A, el tipo de sensores escogido no tiene la sufriente fiabilidad comparado con

los de la referencia, y esto representa además que la interfase para su acondicionamiento

de señal así como la limitación en la carrera y el número de vueltas que pueden dar los

péndulos sobre su eje, acarreen desventajas decisivas con respecto a los otros

conceptos. En cuanto al concepto D el hecho de no contar con suficiente información y

referencias disponibles que resultaran en indicaciones de la fiabilidad y desarrollo del

sistema de tracción, sumados a que no se contaba con unificación del tipo de sensores a

utilizar llevo a la decisión de no continuidad del concepto.

Page 87: Diseño y Simulación de un sistema mecánico subactuado

� ��

Tabla 4-10: Matriz de tamizaje de conceptos

VARIANTES DE CONCEPTOS

Criterio de Selección A B C D E Ref.

(Quanser IP01-IP02)

El UMS es ordenado en su sistema de conexiones 0 + + 0 0 0 El UMS presenta señales instrumentadas y confiables - 0 0 0 0 0

Los sensores funcionan correctamente después de excesivo Uso - 0 0 0 0 0 El UMS es atractivo e innovador en su diseño 0 0 0 0 0 0 El UMS es fácil de ensamblar + + 0 - + 0 El UMS presenta interfaz agradable al usuario - - - - - 0 El UMS es de fácil operación 0 0 0 0 0 0

El UMS permite el almacenamiento de sus distintos accesorios + + + + + 0 El UMS es de fácil mantenimiento y reparación 0 0 0 0 0 0

El UMS tiene integrados en su estructura las etapas de potencia, instrumentación y alimentación + + + + + 0 El UMS posee la capacidad de hacer diferentes pruebas 0 0 0 0 0 0

El UMS presenta posibilidad de configurarse en distintas modalidades(simple y doble) 0 0 0 0 0 0 El UMS es fácil de transportar - - - - - 0 El UMS presenta manual técnico 0 0 0 0 0 0

La estructura mecánica del UMS se compone de elementos de manufactura nacional y fácil de consecución + 0 0 0 0 0 El UMS es duradero - 0 0 0 0 0 Positivos 4 4 3 2 3 Negativos 5 2 2 3 2 Iguales 7 10 11 11 11 Total -1 2 1 -1 1 Orden 4 1 2 5 2 ¿Continuar? No Si Si No Si

En este punto es importante aclarar que uno de los aspectos a evaluar en el concepto D

era la conveniencia de utilizar sensores diferentes para la medida de las posiciones

angulares lineales del sistema, llegando a la conclusión que las posibles ventajas

económicas debidas a la diferencia de precios entre estos sensores, pueden ser

sopesadas dada la versatilidad y el reducido número de partes que implica tener una sola

Page 88: Diseño y Simulación de un sistema mecánico subactuado

� ��

referencia de sensores, además se existen referencias de sensores económicos con muy

buenas características de desempeño.

4.4.2 Matriz de Evaluación de Conceptos. En la tabla 4-11 se ilustra la matriz de

evaluación de conceptos, en la que evalúan los conceptos que pasaron la etapa anterior.

Como criterios de evaluación se utilizan las especificaciones preliminares que se

establecieron para el dispositivo a desarrollar con el fin de ponderar la medida en que

cada uno de los conceptos seleccionados satisface los objetivos de desarrollo.

Tabla 4-11 Matriz de Evaluación de conceptos B C E

Criterio de Selección % Nota Criterio Pondera

do Nota

Criterio Pondera

do Nota

Criterio Pondera

do

Organización y disposición del cableado

9 4 0,36 3 0,27 4 0,36

Rango de voltaje para adquisición de datos y control

5 4 0,2 4 0,2 4 0,2

Vida en Operación de sensores 10 4 0,4 3 0,3 3 0,3

Diseño atractivo 9 4 0,36 4 0,36 4 0,36

Tiempo medio para cambio de configuración

5 4 0,2 3 0,15 3 0,15

Voltaje de alimentación 5 3 0,15 3 0,15 3 0,15

Dimensiones Almacén para accesorios (Ancho x Alto x Profundidad)

5 3 0,15 3 0,15 3 0,15

Pruebas que se pueden realizar 8 4 0,32 4 0,32 4 0,32

Masa total del dispositivo 5 5 0,25 4 0,2 3 0,15

Dimensiones generales sin incluir péndulos (Ancho x Alto x Profundidad)

6 4 0,24 3 0,18 4 0,24

Costo Unitario 10 4 0,4 2 0,2 3 0,3

Tiempo de vida útil del sistema 8 3 0,24 4 0,32 3 0,24

Dimensiones del Carro (Ancho, Alto, Profundo)

6 4 0,24 3 0,18 4 0,24

Longitud Carrera Efectiva 9 4 0,36 4 0,36 4 0,36

TOTAL 3,87 3,34 3,52

ORDEN 1 3 2

DESARROLLAR SI NO NO �

Page 89: Diseño y Simulación de un sistema mecánico subactuado

� ���

De la tabla 4.11 es claro que el concepto a desarrollar es el concepto B, y los conceptos C

y E no continúan el proceso, pues el primero obtuvo un porcentaje del 77.4 % en

comparación con el 67% y 70% obtenido por los otros dos conceptos.

Es claro que para escoger el concepto B es preponderante que las características

deseables que ofrece la correa sincrónica en transmisión de potencia así como las

ventajas que ofrece el tipo de sensor propuesto, hacen a este concepto la mejor opción a

desarrollar debido que ofrece grandes ventajas en cuanto a aspectos técnicos y

económicos, lo que no ofrecen los otros conceptos, pues a pesar de que en transmisión

no es la mejor opción si representa una muy buena alternativa, pues garantiza que las

probabilidades de consecución nacional sean viables y su desempeño en teoría es muy

bueno.

El concepto C al tener la cremallera, implica que la transmisión de potencia es más

efectiva lo que redunda en una característica de desempeño muy deseable, pero en

comparación con la correa dentada del concepto B, sus ventajas no son tan superiores,

además su elevado costo, así como la limitación en la carrera del péndulo y su difícil

consecución o construcción hacen que la balanza se incline hacia el segundo sistema de

transmisión.

El concepto E que es una variante del concepto seleccionado, en el sistema de sensores,

finalmente no fue elegido pues las ventajas económicas que ofrecían no son lo

suficientemente “pesadas”, como para compensar las desventajas de desempeño que

podría conllevar, y dentro del primer presupuesto establecido en la etapa de ingeniería

conceptual (que es donde se enmarcaría parte de este proceso) se cuenta con este tipo

de sensores.

Con la elección del concepto a desarrollar finaliza el capitulo de desarrollo conceptual, en

el que se paso de un conjunto de necesidades y expectativas creadas alrededor del

producto a desarrollar, a un concepto más propio de un trabajo en ingeniería apoyados en

la metodología de diseño mecatrónico, y se abre paso a una nueva fase en el desarrollo

del producto, que es diseño a nivel de sistema, en la que se trabajara a partir del concepto

aquí desarrollado.

Page 90: Diseño y Simulación de un sistema mecánico subactuado

� ����

5. DISEÑO A NIVEL DE SISTEMA

En el diseño a nivel de sistema se toma como entrada el concepto seleccionado del

capitulo anterior y se hace un primer esbozo del mismo de modo que se define la

arquitectura del producto y se realiza la descomposición del producto en subsistemas y

componentes, de manera que en el capitulo siguiente que corresponde al diseño detallado

se tomen las definiciones y decisiones tomadas en esta fase para darle forma final al

producto.

Si bien en el proceso de desarrollo de un producto la etapa de de diseño a nivel de

sistema incluye etapas que se traslapan con las etapas de diseño conceptual y la etapa

de diseño detallado, pero para efectos del presente informe se incluirán en está etapa las

siguientes fases:

• Arquitectura del producto:

En esta fase se establece la arquitectura del producto, y se obtiene una

descomposición funcional del producto, de modo que las interacciones incidentales

y fundamentales son establecidas de manera que en la etapa de diseño detallado

no se deje nada al azar y la mayoría de los efectos externos que puedan afectar el

desempeño del sistema puedan ser previstos y tomadas las precauciones

necesarias a fin de satisfacer la necesidades reflejadas en las especificaciones

finales.

• Diseño industrial:

En esta fase se hace una valoración de las necesidades estéticas, ergonómicas y

de la dominación del producto, de modo que en el momento de tomar decisiones

en la fase de diseño detallado se recurra a esta valoración y así poder alcanzar las

expectativas esperadas en esta fase.

Page 91: Diseño y Simulación de un sistema mecánico subactuado

� ����

• Diseño para manufactura

Esta fase es de suma importancia y a lo largo del proceso han primado las

características de construcción y ensamble para el dispositivo, en el presente

informe se presenta solo la elección del soporte elegido para el sistema, cuya

decisión tiene gran impacto sobre el costo de la construcción del sistema, y

además define muchas de la características funcionales y estéticas del mismo, así

de una manera diáfana se expone el proceso de elección del concepto de mesa

soporte final.

• Prototipado.

En cuanto a la etapa de prototipado se citan los diversos prototipos construidos en

las diversas etapas de diseño, y se referencia cada capitulo, y la construcción del

prototipo 3D que encierra gran parte de lo que representa este trabajo, esta

debidamente detallada en el capitulo 8.

5.1. ARQUITECTURA DEL PRODUCTO La arquitectura en un producto es un factor de suma importancia, ya que mediante la

utilización de alguna arquitectura el sistema ha desarrollar puede tomar ciertas

características que influyen mucho en su diseño, concepción y fabricación en grandes

cantidades. Según las necesidades mas importantes de los clientes y los objetivos

principales por el cual se diseña el Péndulo Invertido, la arquitectura mas apropiada ha

implementar es la arquitectura modular, pues el sistema debe servir como una plataforma

para diferentes sistemas de control y para muchas configuraciones futuras, además debe

poseer características como simplicidad y reutilización de muchas de sus partes y así

poder aumentar la gama de posible configuraciones, esto sumado a que muchas de las

características deseables del producto implican tener este tipo de arquitectura.

Page 92: Diseño y Simulación de un sistema mecánico subactuado

� ����

5.1.1. Esquema del Producto. El esquema del producto se constituye como una

herramienta de gran ayuda en la realización de una arquitectura y se considera muy

importante en el diseño, porque permite tener una idea mas clara de la organización de

los conjuntos y elementos físicos y funcionales que conforman el sistema. Los elementos

más importantes del producto se presentan a continuación:

� Base: Este elemento sirve como soporte, pues sobre este va montado todo

el sistema.

� Almacén: Permite almacenar los circuitos de potencia y los péndulos

cuando no se estén utilizando.

� Prensas: Constituyen el elemento mediante el cual se sostiene la base a la

mesa donde se ubicara todo el sistema.

� Alimentación Eléctrica: Es la fuente de poder para el sistema electrónico y

de potencia.

� Sistema Electrónico y de Potencia: Este elemento se encarga de

amplificar la señal de control que proviene del computador y también brindar

energía a los elementos electrónicos que se tenga (sensores, motor, finales

de carrera).

� Carro: Este elemento se desplazara horizontalmente por acción del motor y

una correa dentada, también permite realizar el montaje de los péndulos.

� Guías: Estas barras sirven como soporte y como un medio de transporte

lineal del conjunto carro y péndulos.

� Motor: Es un actuador rotacional que generará el movimiento al sistema a

través de un medio de transmisión.

� Banda: Es el elemento mediante el cual el motor le transmite el moviendo al

carro y a los péndulos.

� Tensor: Este elemento permite mantener y ajustar una tensión sobre la

banda dentada.

� Acople Carro/Pendulo1: Este elemento físico permite la unión entre el

carro y el primer péndulo.

� Pendulo1: Esta barra tendrá un movimiento rotacional y permite observar

cuando la acción de control se ha realizado con éxito para la prueba del

péndulo simple.

Page 93: Diseño y Simulación de un sistema mecánico subactuado

� ����

Base

Almacén�

Prensas�

Pend2�

Pend1�

Acople P1/P2

Acople Carro/P1

Motor

Banda

Tensor

Carro

Guías�

Alimentación�

Eléctrica�

Sistema Electrónico y Potencia

� Acople Pendulo1/Pendulo2: Este elemento físico permite la unión entre el

primer péndulo y el segundo péndulo.

� Pendulo2: Tiene un movimiento rotacional y permite observar cuando la

acción de control se ha realizado con éxito para la prueba del péndulo doble

Figura 5.1: Esquema del producto

5.1.2. Agrupación de Elementos. Con los elementos antes mencionados se procede a

realizar la agrupación de estos. Para lograr agrupar adecuadamente los elementos se

tuvo en cuenta la función que cada uno cumple dentro del esquema del producto. En esta

parte se identificaron seis grupos funcionales. Los seis grupos identificados fueron

a. Base Soporte (Base, Almacén, Prensas)

b. Sistema Péndulos (Pend1, Pend2, Acople P1/P2, Acople Carro/P1)

c. Sistema de Transmisión (Motor, Banda, Tensor)

d. Etapa de Energía y Potencia (Alimentación Eléctrica, Sistema Electrónico

y de Potencia)

e. Conjunto de Soporte y Transporte (Carro, Guías)

Page 94: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 5.2: Agrupación de elementos funcionales

5.1.3. Distribución Geométrica. La distribución geométrica es una herramienta visual

que ayuda ha mejorar la utilización del espacio de una forma mas eficiente. En el

siguiente esquema, se muestra la agrupación de los diferentes elementos en un espacio

definido, esto nos permite visualizar si la colocación de cada uno de ellos es la correcta.

Para diferenciar un conjunto del otro, se utilizaron distintos colores

Base

Almacén�

Prensas�

a

Pend1

Acople P1/P2

Acople Carro/P1

b

Motor

Banda

Tensor

c

Alimentación Eléctrica

Sistema Electrónico y Potencia

��

Carro�

Guías�

e

Pend2

Page 95: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 5.3: Distribución geométrica (layout)

5.1.4. Interacciones Fundamentales. Las Interacciones Fundamentales deben ser bien

comprendidas con el fin de conocer el comportamiento de sus elementos cuando se

relacionan entre si, el análisis de estas también influye en el diseño de tal forma que estas

interacciones no sean perjudiciales en ningún momento para el producto a desarrollar, ni

tampoco que conlleven indirectamente ha interacciones incidentales.

Base Soporte

Sistema Péndulo

Sistema de Transmisión

Etapa de Energía y Potencia

Sistema de Soporte de Transmisión

Page 96: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 5.4: Interacciones fundamentales

5.1.5. Interacciones Incidentales. Las Interacciones Incidentales son problemas que en

cualquier diseño aparecen y por lo general se derivan de la implementación física y pocas

veces se pueden evitar cuando se esta desarrollando un nuevo producto. En lo posible se

debe tener mucho cuidado pues estas interacciones pueden ocasionar serios

inconvenientes en el buen funcionamiento del sistema, algunas ejemplos son: vibraciones,

distorsiones térmicas, interferencias por radio frecuencias entre otras.

Base

Almacén

Prensas a

Pend2

Pend1

Acople P1/P2

Acople Carro/P1

b

Motor

Banda

Tensor

c

Alimentación Eléctrica

Sistema Electrónico y Potencia

d

Carro

Guías

e

Flujo de Energía o Fuerza

Flujo Señal o Datos

Page 97: Diseño y Simulación de un sistema mecánico subactuado

� ���

Figura 5.5: Interacciones incidentales Con el establecimiento de las interacciones incidentales se termina la etapa de

arquitectura del producto de modo que ya se tiene definido que se espera del producto y

cuáles deben ser los aspectos a tener en cuenta para el diseño detallado.

5.2. DISEÑO INDUSTRIAL

5.2.1. Necesidades Ergonómicas. La Facilidad de Uso del UMS hace referencia a la

versatilidad que posee en su estructura, y debido a que se puede desarrollar distintas

pruebas sobre esta, se utiliza una serie de distintivos gráficos fáciles de entender y

pensados para que el usuario final interactúe en forma sencilla con la planta.

Por motivo de que el UMS esta diseñado con una arquitectura modular, permite que el

mantenimiento sea en medianos aspectos, fácil de realizar, ya que, se poseen todos los

módulos separados de fácil acceso. Al ser el UMS compuesto por elementos mecánicos,

eléctricos y electrónicos se hace necesaria la utilización de herramientas sencillas y

estándar para poder realizar algún tipo de mantenimiento o revisión.

BASE SOPORTE

SISTEMA DE SOPORTE DE TRANSMISIÓN

SISTEMA��������

SISTEMA������ �������

ETAPA DE ENERGIA Y POTENCIA

Distorsión Térmica

Vibración

Vibración

Ruido

Vibración

Page 98: Diseño y Simulación de un sistema mecánico subactuado

� ���

Las interacciones necesarias para que el UMS funcione correctamente son de un nivel

aproximadamente medio-bajo, pero con una gran facilidad de manejo. Las interacciones

son

• Conectar

• Sacar péndulo del almacén

• Instalar Péndulo

• Encender

• Realizar Conexiones externas

• Activar Software de control (interacción externa a la planta)

La novedad de las interacciones se encuentra básicamente en la facilidad en las que el

usuario las realiza aunque algunas de estas son interacciones normales y obvias, las

cuales no necesitan mayor comunicación entre la planta y el usuario.

La estructura y el funcionamiento del UMS permiten que sea una planta segura, pero

posee algunos riesgos contra el usuario, debido a que este debe estar posicionado al

frente de la planta en el momento de su funcionamiento, por lo cual se utilizan una serie

de advertencias preventivas gráficas para contrarrestar esto.

Facilidad de Uso

Facilidad de Mant.

Cantidad de Interacciones

Novedad en Interacciones

Seguridad

� � � ���� �� �

Page 99: Diseño y Simulación de un sistema mecánico subactuado

� ����

5.2.2. Necesidades Estéticas. La alta diferenciación visual que posee el UMS es

debido a su apariencia estructural, ya que, esta planta es de tipo subactuado, lo cual hace

que sea atractiva hacia el usuario u otras personas dentro del medio, además las piezas

y/o partes de la que esta conformada son de materiales adecuados y de excelente

manufactura y acabados.

Otro punto que ayuda a su diferenciación visual es su parte gráfica moderna y hace que la

interacción con el usuario sea relativamente sencilla, la cual es necesaria para la

interacción con los usuarios.

Al ser el UMS una planta relativamente nueva en su estilo en el laboratorio de automática,

y además con el valor agregado de que la realizaron estudiantes de ingeniería, hace que

el orgullo de posesión no solo lo tengan los estudiantes sino la misma institución.

Todas las plantas subactuadas poseen una excelente calidad y un buen funcionamiento,

lo cual hace que la motivación del equipo de trabajo y diseño sea alta, porque se debe

procurar la búsqueda de la excelencia, la funcionalidad y la versatilidad del UMS, al este

ser un sistema subactuado.

Diferenciación Visual

Orgullo de Posesión

Motivación al Equipo

5.2.3. Dominación del Producto. En las etapas anteriores del diseño del UMS, se han

tenido en cuenta muy a la par los requerimientos técnicos de todo el sistema para su buen

funcionamiento y los aspectos estéticos dirigidos al manejo e interacción con los usuarios,

lo cual hace que el UMS este dominado de igual forma por la tecnología y por el usuario.

� � � ���� � �� �

Page 100: Diseño y Simulación de un sistema mecánico subactuado

� �����

Figura 5.6: Representación visual de la dominación del producto �

5.2.4. Evaluación de la Calidad del Diseño Industrial. La calidad de las interfases del

modulo UMS tiene un nivel relativamente medio-alto, al poseer unas interfases

comunicativas y fáciles de usar, lo cual hace que el usuario haga funcionar la planta

sencillamente, pero al tener la capacidad de realizar diferentes pruebas, se debe efectuar

una aclaración previa al usuario antes de su uso.

El UMS como producto es muy llamativo hacia el consumidor, tanto por su diseño gráfico

como por su diseño a nivel de estructura, así mismo expresa funcionalidad y calidad, lo

cual hace que los requerimientos emocionales hacia el consumidor sean satisfechos.

Como se mencionó anteriormente, la arquitectura modular hace del UMS, un producto de

fácil mantenimiento y reparación.

En la etapa de diseño del UMS, se han realizados varias revisiones en cuanto a piezas y

estructura se refiere, todo con el fin de optimizar el funcionamiento, costo de material,

manufactura y espacio que va a utilizar la planta cuando este en uso.

La diferenciación del UMS con respecto a otros productos de su tipo, tiene un grado

relativamente alto, por motivo de su versatilidad, tamaño y funcionalidad que posee

alrededor de todo su entorno.

�������

�������������� ������� !��

Page 101: Diseño y Simulación de un sistema mecánico subactuado

� �����

Calidad de las Interfases

Requerimientos Emocionales

Facilidades de Mant. Y Rep.

Uso Apropiado de Recursos

Diferenciación del Producto

5.3. DISEÑO PARA MANUFACTURA El diseño para manufactura para el péndulo invertido fue de gran importancia, pues para

la construcción del sistema se contaba con un presupuesto fijo. Por lo tanto para cada

concepto diseñado era necesario evaluarlo económicamente, y con base a ese resultado

fue preciso mejorar algunos elementos o crear nuevos diseños de los elementos sin

afectar la estética y la ergonomía del producto. La concepción del sistema se realizó bajo

una arquitectura modular, la cual presenta como desventajas un alto costo por su

diversidad de partes y reutilización de sus conjuntos.

Como el objetivo principal del sistema péndulo invertido es crear un producto Mecatrónico

que sirva como plataforma de sistemas para realizar distintas técnicas de control, por

ende la construcción de las piezas y el sistema de potencia se hizo bajo el modelo de

maquila.

5.3.1 Reducción de Costos. Cuando se realizó el proceso de generación y selección

de conceptos se realizó sobre los elementos principales tales como actuador, sistema de

transmisión, sensores etc. Los cuales van montados sobre una primera platina soporte. El

sistema completo se compone de una primera platina y de un dispositivo de soporte para

esta. El diseño y elección del elemento de soporte final es un de los principales causantes

� � � ���� � �� �

Page 102: Diseño y Simulación de un sistema mecánico subactuado

� �����

de la disminución de costos del producto, a continuación se presentan los distintos

dispositivos diseñados para el sistema y el porque de su elección.

El esquema ilustrado en la figura 5.7 fue el primer diseño realizado para el soporte del

sistema, consistía en una mesa de dos pilares en los extremos y en cada pilar contiene

una zapata cuyo propósito es la estabilidad. El inconveniente que presenta radicaba en el

poco apoyo que existía en la mitad, pues la longitud del sistema es extensa y podrían

surgir problemas de flexión. En lo referente al costo del soporte era un diseño factible,

pero presentaba falencias en los requerimientos estéticos y ergonómicos del diseño

industrial.

Figura 5.7: Primer esquema del elemento soporte

El siguiente diseño ilustrado en la figura 5.8 presenta muchas ventajas con respecto al

anterior, pues posee muy buen diseño industrial, esto en gran medida se debe a

elementos como los perfiles de aluminio utilizados.

Page 103: Diseño y Simulación de un sistema mecánico subactuado

� �����

Esta mesa soporte se proyectaba como un diseño final, pero su gran problema era el alto

costo en la adquisición de los perfiles Bosch, ya que con estos se lograba superar el

presupuesto existente, lo que provocaba desechar este diseño.

Figura 5.8: Segundo esquema del elemento soporte.

Este tercer diseño presentaba grandes diferencias con respecto a los anteriores, pues ya

no utiliza el concepto de mesa soporte, sino de una caja donde internamente llevaría los

circuitos de potencia y el almacén para péndulos, esta caja debe ser instalada sobre una

mesa debido a la altura de los péndulos. En cuanto al costo este concepto era muy

inferior con relación al anterior, pero uno de los inconvenientes que se encontró fue la

falta de elementos de apoyo a la superficie donde se iba a instalar, además para darle

estabilidad ha este diseño se necesita tener un considerable peso en su caja, pues el

movimiento del carro obliga al elemento soporte ha tener muy buena estabilidad.

Page 104: Diseño y Simulación de un sistema mecánico subactuado

� �����

Figura 5.9: Tercer diseño del elemento soporte

El cuarto diseño que se presenta en la figura 5.10 tiene como grandes ventajas la

versatilidad para ser instalado en distintos sitios debido a elementos como las tres

prensas las cuales le ofrecen al sistema estabilidad, además se integra del concepto

anterior la idea de tener una caja que contendrá los circuitos de potencia y el almacén

para péndulos, y será montada sobre una sola platina soporte, suprimiendo la idea de la

primera platina que se mencionó con anterioridad, esto implica una reducción de costos,

lo cual hace que el producto presente un valor considerable dentro del presupuesto. En lo

referente al diseño industrial la imagen que proyecta este concepto es agradable para los

usuarios. Debido a las razones anteriores este fue el diseño que se decidió implementar.

Page 105: Diseño y Simulación de un sistema mecánico subactuado

� �����

Figura 5.10: Esquema final del elemento soporte.

5.4. PROTOTIPADO

Para el desarrollo del péndulo en realidad se han creado gran variedad de prototipos

como se pueden mencionar el modelo matemático desarrollados en el capitulo 2 y

representados en Simulink TM en el capitulo 7, además como apoyo del diseño detallado la

creación de prototipos 3D a través un software CAD como lo es Solid Edge TM para la

elaboración de piezas y ensambles es fundamental y esta debidamente documentada en

el capitulo 6 y los anexos.

Finalmente todos estos prototipos además de ayudar convenientemente en cada etapa

del proceso de desarrollo del producto convergen hacia el prototipo 3D de la dinámica del

sistema que se desarrolla en Directx bajo Visual Basic, que se documenta en el capitulo 8

Page 106: Diseño y Simulación de un sistema mecánico subactuado

� �����

6. DISEÑO DETALLADO

La figura 6.1 ilustra un esquema de la concepción del producto que fue previamente

establecido desde el planteamiento de la misión en el capitulo 3, en ella se nota

claramente que las estrategias de control van a ser implementadas en Matlab y la

comunicación con el prototipo físico va a ser a través de la tarjeta de adquisición de datos

PCI 1200, esto justifica el hecho de que hasta el momento en el proceso de diseño no se

haya tenido en cuenta el software donde se implementaran las estrategias de control así

como el medio da adquisición de datos entre el sistema físico y el PC.

Figura 6.1: Esquema general del U.M.S

El diseño y desarrollo del péndulo invertido traslacional UMS, debe cumplir con todas las

exigencias establecidas en las necesidades y especificaciones definidas anteriormente,

además de desarrollar el concepto seleccionado no se debe olvidar los requerimientos y

Page 107: Diseño y Simulación de un sistema mecánico subactuado

� ����

expectativas surgidas en el capitulo 5, lo cual tiene que ver con la arquitectura, diseño

industrial y el diseño manufactura. Tendiendo en cuenta estos aspectos, y sin perder la

concepción mecatrónica que se le ha dado al producto el diseño del UMS se divide en los

siguientes sistemas funcionales que serán objeto del diseño detallado de modo que a

través de ellos se da forma final al concepto seleccionado para desarrollar el producto.

• Sistema mecánico

En este sistema se explica con detalle los subsistemas en que se ha divido la parte

mecánica del UMS y se referencia los planos que dimensionan sus componentes.

• Sistema electrónico

Se expone el acondicionamiento de señal de los sensores y actuadores así como su

selección.

• Sistema de control

Este sistema de control se expone en el capitulo 7, así como su implementación.

6.1. SISTEMA MECÁNICO Debido a que para el UMS se escogió una arquitectura modular, el sistema mecánico

posee cinco subconjuntos funcionales predominantes y cada uno de estos con sus

respectivas piezas, los cuales fueron resultados de numerosas revisiones y rediseños con

el objetivo de crear y diseñar una planta de buen funcionamiento y robustez para

garantizar un tiempo de vida amplio. En cada subconjunto se describen sus

características y funcionalidades. El diagrama de ensamble de cada subconjunto para

formar el sistema completo se encuentra en el anexo A.

6.1.1. Subconjunto Montaje Motor-Sensor. Este conjunto consta de las piezas que

sostienen y aseguran al motor DC el cual permite dar movimiento al carro, el sensor de

posición lineal y a una de las dos poleas en donde se monta la correa dentada. El

conjunto Motor–Sensor posee 8 piezas, están construidas en aluminio debido a razones

de economía, facilidad para su fabricación, así como su resistencia a la corrosión en

Page 108: Diseño y Simulación de un sistema mecánico subactuado

� ����

ambientes relativamente húmedos como es el caso del laboratorio que será el ambiente

de trabajo del sistema; cada una de las piezas que conforman este subconjunto se

pueden observar en detalle en el anexo A, así como si diagrama de ensamble en el anexo

A 2.

Figura 6.2: Subconjunto montaje motor-sensor

6.1.2. Subconjunto Carro. Es uno de los subconjuntos mas importantes, debido a que

es el elemento activo, el que prácticamente transmite el movimiento hacia los péndulos,

por esta característica, el diseño se orientó a buscar la facilidad para el libre movimiento

del carro, es decir, evitar al máximo que las fuerzas de fricción reduzcan su

desplazamiento pero al mismo tiempo tener el apoyo suficiente para que el sistema no

tuviese vibraciones o desajustes que cambiaran y/o afectaran la dinámica del sistema, por

tal motivo se optó por utilizar rodamientos lineales, para que el deslizamiento del carro

sobre las guías fuese el mejor y de forma puntual y no el que se presenta en los bujes. La

construcción en aluminio brinda ventajas, ya que permite que esta pieza sea liviana y por

ende reduce esfuerzos en el actuador. El subconjunto lo complementan otras piezas que

se ubican sobre el carro, las cuales sirven para colocar el sensor de posición angular del

péndulo No. 1, para sujetar la correa dentada y para instalar el conector DIN que se

utiliza para las señales del sensor. Para ver en detalle este subconjunto ir al anexo A 4

donde se muestra su diagrama de ensamble.

Page 109: Diseño y Simulación de un sistema mecánico subactuado

� �����

Figura 6.3: Subconjunto carro

6.1.3. Subconjunto Péndulos. Este es el subconjunto objetivo de todo el sistema, ya

que en éste se centra la mayor atención del desarrollo del UMS debido a que los péndulos

deben ser sostenidos en posición vertical por el sistema de control, es por esta razón que

este subconjunto debe presentar poca fricción y la suficiente robustez en su ensamble

debido al fuerte movimiento que se presenta cuando el sistema esta activo. El

subconjunto consta de 6 piezas distintas las cuales fueron construidas en aluminio para

que su peso no fuera tan significativo, se destaca en este subconjunto la pieza que acopla

los dos péndulos (cuando se configura la planta como péndulo doble), ya que paso por

muchos rediseños, pues esta pieza debía ser muy sencilla y de poco peso para que no

afectara en gran medida la dinámica del sistema, en esta pieza se monta el sensor de

posición angular del péndulo No. 2 y los dos rodamientos con sus respectivos anillos de

retención. En el anexo A 5 se encuentran con detalle las piezas de este subconjunto y su

diagrama de ensamble.

Page 110: Diseño y Simulación de un sistema mecánico subactuado

� �����

Figura 6.4: Subconjunto péndulos

6.1.4. Subconjunto Tensor. Un problema muy frecuente en los sistemas que utilizan

bandas, para la transmisión de potencia o de movimiento, es que estas tienden a

presentar un estiramiento de modo que la tensión en ellas va cambiando

dependientemente del tiempo y el uso de las mismas lo que ocasiona una perdida en la

eficiencia del sistema. Debido a esto la función principal de este subconjunto es brindar la

posibilidad graduar la tensión que necesita la correa dentada para su buen

funcionamiento (Dentro los limites permisibles de acuerdo al fabricante), la tensión de la

correa mediante tornillos que se acoplan al eje de la polea y así darle un uso mas

eficiente a la correa cuando comience a ceder. El subconjunto Tensor posee 5 piezas

independientes las cuales están detalladas en el anexo A, con su diagrama de ensamble

en el anexo A 3.

Page 111: Diseño y Simulación de un sistema mecánico subactuado

� �����

Figura 6.5: Subconjunto tensor

6.1.5. Subconjunto Estructura. Este subconjunto es básicamente donde descansan

todos los subconjuntos anteriores, además tiene la característica de poseer tres prensas,

las cuales hacen que todo el sistema se pueda ubicar en cualquier mesa o estructura que

pueda soportarla, esto brinda transportabilidad a todo el sistema. Este subconjunto consta

de 4 piezas independientes una de ellas es la platina soporte, cuya función es servir de

base a todos los subconjuntos anteriores y piezas del sistema tales como el almacén o

carcaza, en el cual se encuentran alojados todos los circuitos eléctricos y electrónicos

mas los accesorios modulares del UMS (péndulo simple y doble), y de las guías circulares

por donde se desliza el carro con sus respectivos soportes, para mas detalle, ir al anexo

A1.

Page 112: Diseño y Simulación de un sistema mecánico subactuado

� �����

Figura 6.6: Subconjunto estructura

Figura 6.7: Sistema mecánico completo

Existen a parte de las piezas manufacturadas para la planta otros elementos mecánicos

de vital importancia para el buen funcionamiento de todo el sistema UMS, los cuales son

elementos que se consiguen en el mercado local.

Page 113: Diseño y Simulación de un sistema mecánico subactuado

� �����

6.1.6. Correa Dentada. Este es el elemento primario de transmisión de movimiento,

esta conectada a través de una polea dentada, con el motor y sujetado al carro para

brindarle movimiento a éste.

La longitud de la correa dentada es calculada a partir de parámetros del sistema como la

distancias entre centros de las dos poleas y el diámetro entre estas4, según la expresión

Figura 6.8: Parámetros de selección de la correa dentada

( ) ( )��

×−++×+×=�

������

�����

Donde L= Longitud de la Correa

C=Distancia entre Centros

D= Diámetro de la Polea Mayor

d=Diámetro de la Polea Menor

�������������������������������������������������4 Mechanical Product Selection Catalog. [en linea] Chambersburg: TB Woods, 2005 [Consultado Septiembre,

2005]. Disponible en Internet: http://www.tbwoods.com. p. BEV_2.

(6.1)

Page 114: Diseño y Simulación de un sistema mecánico subactuado

� �����

Dado que los dos diámetros son iguales, el ultimo termino de la ecuación se cancela, los

valores correspondientes a la distancia entre centros es de 61 pulgadas y el diámetro de

las poleas es de 1.575 pulgadas

( )

�%����%���������

��������������

�'�'�

≈=

+×+×=

Longitudes de correas de las dimensiones calculadas son de difícil consecución a nivel

local, por lo tanto se optó por unir cuatro correas de 37 pulgadas de longitud, referencia

370XL037, con un paso 1/5 de pulgada (XL) y un ancho de 3/8 de pulgada (037), esta

unión no afecta el paso ni ancho de la correa dentada original.

6.1.7. Rodamientos. La utilización de rodamientos en distintas partes de la planta es de

gran ayuda para su correcto funcionamiento. Prácticamente se utilizaron dos clases de

rodamientos en el UMS, rodamientos lineales referencia KH1228, en el carro para que se

deslizara sobre las guías circulares debido a que estos ofrecen menor fricción entre el

carro y las guías, y rodamientos rígidos de bolas que gracias a su capacidad de soportar

altas cargas radiales son los útiles para sostener los ejes donde están los péndulos y las

poleas de la correa dentada, estos rodamientos son de referencia EE3. Las hojas de

datos de estos rodamientos se muestran en el anexo C.

Un aspecto importante en la concepción del sistema mecánico es que este fue diseñado

con el objetivo de que los sensores sufrieran el menor daño posible debido a las

condiciones de trabajo extremas a pueden ser sometidas y en especial en este tipo de

plantas. Por esto es un común denominador que las piezas donde van ubicados los

sensores se presente doble apoyo con rodamientos rígidos de bolas, esto con el objetivo

de que el momento provocado por los péndulos sea absorbido en los apoyos y no por el

eje del sensor tal como se ilustra en la figura 6.9.

(6.2)

(6.3)

Page 115: Diseño y Simulación de un sistema mecánico subactuado

� �����

Figura 6.9: Principio del doble apoyo para ubicación de sensores.

6.2. SISTEMA ELECTRICO Y ELECTRONICO El sistema eléctrico para el UMS se presenta como una caja negra introducida dentro del

almacén, buscando evitar el uso de elementos externos tales como fuentes de poder y

amplificadores de corriente. Este sistema consta de tres partes importantes que son

fuente de alimentación DC., amplificación de señales y acondicionamiento de señales. En

la figura 6.10 se expone claramente este concepto, ilustrando todas las entradas y las

salidas del sistema.

Dentro de este sistema se presentan elementos como el actuador y los sensores, los

cuales son de vital importancia para el funcionamiento total de la planta y conllevan a que

se realice sobre ellos todo el tratamiento eléctrico y electrónico que posee el sistema.

Page 116: Diseño y Simulación de un sistema mecánico subactuado

� �����

Figura 6.10: Principales requerimientos del sistema electrónico

6.2.1. Actuador. La selección del actuador a utilizar es uno de los aspectos más

importantes en la etapa de diseño detallado, para esto en primer lugar se diseñó el

sistema de control del UMS sin tener en cuenta la dinámica del motor, de modo que la

entrada a la planta fuese la fuerza aplicada al carro, así se obtiene a partir de muchos

controladores diseñados para las distintas configuraciones del sistema una aproximación

a la fuerza necesaria requerida para controlar este con ciertas condiciones iniciales.

Como es evidente en esta primera parte las condiciones iniciales bajo las cuales se

probaron los controladores fueron los limites de la zona lineal, es decir que se buscaba

que el sistema pudiese controlar al UMS si para la configuración péndulo simple el ángulo

era de 20º y para la configuración péndulo doble el ángulo 1 fuese de 20º y el ángulo 2 de

0º. Como resultado de esta fase la experiencia arrojo que si se controlaba el sistema

péndulo doble cumpliendo con el comportamiento esperado, la configuración péndulo

Page 117: Diseño y Simulación de un sistema mecánico subactuado

� ����

simple podía ser controlada sin problemas, entonces se decidió concentrar esfuerzos en

la primera configuración.

Del comportamiento deseado de los controladores diseñados se espera que a parte de

cumplir con el objetivo de estabilizar el sistema en la posición deseada, no utilice más de

la carrera disponible de acuerdo a las especificaciones de diseño del sistema (es decir +/-

0.7m ó 1.4m de carrera efectiva), esto con el objeto de acotar el diseño con el fin de que

la implementación de controladores en el UMS permita el trabajo pleno en la zona lineal y

a parte de que la posible implementación de un controlador de swing_up para las distintas

configuraciones pueda ser vislumbrada en el sistema.

La figura 6.11 ilustra uno de los resultados que se obtuvieron de esta fase en la selección

del actuador; en ella se observa como el recorrido del carro esta dentro de los límites

colocados como objetivo por parte del equipo de diseño.

Un aspecto importante en el comportamiento de la entrada al sistema, es que los

controladores diseñados no pueden exigir que se le apliquen cantidades elevadas de

fuerza para lograr el comportamiento deseado, pues esto implica que en el momento de

colocar un actuador real se necesite de un voltaje excesivo aplicado, en un intervalo de

tiempo muy pequeño, lo que no es posible de lograr en la realidad dado la saturación

propia de un actuador y las limitaciones de tiempo que se tienen, pues a pesar de que el

sistema es tratado a lo largo de este trabajo como continuo, no se debe perder la

generalidad de que en realidad se montara un sistema de control discreto, lo que impone

la restricción del tiempo de muestreo. Como resultado de esta última observación muchos

controladores deben ser rediseñados hasta alcanzar valores aceptables, los que fueron

establecidos a partir de la experimentación. Las caracteristicas de los controladores

diseñados es esta etapa no se exponen en el presente informe, dado que solo sirvieron

de apoyo para la selección del actuador y la efectividad del método usado se analiza en el

capitulo 7, pues los objetivos esperados con el actuador seleccionado fueron alcanzados.

Page 118: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 6.11 Requerimientos de fuerza del sistema

En el capitulo 7 se expone el modelado del actuador y a continuación se reescribe la

ecuación final del modelo de fuerza del mismo obtenida en dicho capitulo

c

A

gM

A

gM xRrKK

VrR

KKF

•−= 2

22

Donde:

F = Fuerza que el motor aplica al carro V = Voltaje aplicado al motor

Kg = Reducción a la salida del eje. KM = Constante de Torque del motor

r = Radio de la polea dentada a la que se acopla el motor

Si de esta ecuación ignoramos el segundo sumando en el lado derecho debido a que la

velocidad del carro cuando se adicione la dinámica del motor variara, es posible obtener

Page 119: Diseño y Simulación de un sistema mecánico subactuado

� �����

una aproximación de un indicador, que señala las características que un motor debe tener

para lograr una operación optima del sistema, así a partir de los resultado de simulación

de la figura 6.11 se puede establecer que:

��

+&

, ���'����&≥

Teniendo entonces que La Frequerida es la máxima fuerza obtenida de las simulaciones, y el

V el voltaje máximo que se puede aplicar al motor, pues siendo la fuerza directamente

proporcional al voltaje la máxima fuerza en este caso la Frequerida, se alcanza cuando se

aplica el máximo voltaje al motor.

El indicador Km/Ra es solo una aproximación que ayuda a establecer una condición

mínima que un actuador debe cumplir si se espera que probablemente tenga un buen

desempeño en el sistema.

De acuerdo a los resultados experimentales se encontró que este indicador debe estar

por encima de 0.05 (valor al que se llega si en 6.4 se utiliza el máximo valor de la figura

6.11). De la simple observación de la ecuación de la dinámica del motor se entiende que

si el indicador propuesto se acerca a 1, el voltaje tiende a ser igual a la fuerza neta

transmitida al carro, si la velocidad de este es pequeña. Así se establece como valor limite

inferior para el indicador Km/Ra el valor de 0.05, pero los valores ideales estarán por

encima de 1.

Teniendo ya las características de torque del motor definidas con el indicador

seleccionado, se establecen otras particularidades que se deben tener en cuenta como:

• Velocidad de rotación del motor: Preferiblemente de regímenes altos dada la

respuesta esperada del sistema, y la posibilidad de implementar controladores de

swing_up

(6.4)

Page 120: Diseño y Simulación de un sistema mecánico subactuado

� �����

• Poca inercia en el eje: Para afectar poco los cambios bruscos de velocidad que

tendrá el sistema, y se puede traducir en buena velocidad de respuesta ante estos

cambios

• Consumo moderado de energía: Por requerimientos de diseño y costos del mismo

• Costo del motor: Por requerimientos de diseño

• Calidad del motor: Por requerimientos de diseño

Con estas características adicionales se termina de perfilar el motor deseado y se busca

dentro de la gran gama de este tipo de artefactos disponibles en el mercado, encontrando

que los requerimientos de Km/Ra deseados están por encima del presupuesto estimado

para el motor, pues se encuentran actuadores con excelentes especificaciones técnicas

pero cuyo precio supera el presupuesto total estimado para el proyecto, pero partiendo del

hecho que los controladores diseñados no requieren cantidades excesivas de fuerza en

tiempos muy pequeños es posible trabajar con 4 motores candidatos, que cumplen con

las expectativas esperadas siendo el indicador KM/RA,, cercano al valor inferior de 0.05.

El analisis de las curvas de torque disponibles de estos motores y los regimenes de

velocidad bajo los cuales pueden trabajar sin entrar en zonas de operación que

comprometan la vida util del motor, asi como el torque que deben vencer cuando el

sistema esta en reposo, fueron factores fundamentales al momento de escoger estos

motores.

Haciendo un analisis económico más riguroso, teniendo en cuenta que los motores

encontrados no se consiguen en el país, se opto por considerar solo dos motores

candidatos los cuales se relacionan a continución:

• Motor Buehler modelo 368: Voltaje de operación 12V, KM=0.0102, Ra=1.4. Pais

de Origen Estados Unidos

• Motor Faulhaber modelo 3863 H 024C: Voltaje de operación 24V, Km=0.0333,

Ra=0.62. Pais de Origen Alemania

Page 121: Diseño y Simulación de un sistema mecánico subactuado

� �����

Con los 2 motores candidatos se realizo todo el proceso desarrollado en el capitulo 7

dedicado al control, obteniendo resultados adecuados con el motor Faulhabber, cuyas

especificaciones se anexan en el apéndice C, siendo solo mostrados el el capitulo de

control estos resultados.

Es claro como el diseño del sistema de control estuvo muy relacionado con la selección

del actuador, y finalmente fue validada el uso del indicador propuesto que disminuyo

notablemente el gran espacio de soluciones disponibles para concluir el problema de la

selección del actuador, conduciendo a un número reducido de actuadores, lo que redujo

notablemente el proceso de diseño.

6.2.2. Sensores. Dentro del sistema Péndulo Invertido Traslacional es necesaria la

medición de dos variables físicas distintas, posición lineal y angular. Se opto para la

medición de estas variables por una misma clase de sensor de tipo absoluto, para que el

acondicionamiento y el funcionamiento se realicen de una manera fácil y duradera.

Teniendo en cuenta estos dos aspectos se seleccionó un sensor de posición angular de

marca VISHAY, modelo 601-1045 Smart Position Sensor, el cual dentro de su

empaquetamiento posee una salida eléctrica análoga que varia entre 0 y 5 voltios sobre

un rango de 360º sin necesidad de electrónica o instrumentación externa, tiene una

resolución menor a los 0.5º, trabajan a una velocidad moderada de 5 rev./seg, esta

versatilidad de los sensores hace que la adecuación de las señales sea sencilla. Para

más información acerca de este sensor ver el anexo C.

6.2.3. Fuente de Alimentación DC. Es la encargada de suministrar la energía eléctrica

a todos los componentes eléctricos y electrónicos del sistema, su funcionamiento es el

convencional, es decir, toma la señal eléctrica AC de la red y la transforma en energía

DC.

6.2.4. Amplificación de Señales. Este sistema cumple una labor importante debido a

que las señales de control provenientes del PC poseen baja corriente, lo cual hace que el

actuador no responda adecuadamente ante estas señales, además de colocar en peligro

Page 122: Diseño y Simulación de un sistema mecánico subactuado

� �����

la integridad de las salidas análogas de la tarjeta de adquisición de datos; para evitar

este inconveniente es necesario realizar una amplificación a la señal de control antes de

enviarla al actuador.

En este aspecto es importante saber que para la amplificación de estas señales existen

diferentes alternativas, las cuales fueron evaluadas y de entre las cuales se tenían el

puente H (H BRIDGE) , realizado con transistores de alta potencia que garantizan la

corriente necesaria para la operación del actuador, y por otro lado se tenia como

alternativa realizar un amplificador lineal con amplificadores operacionales que tuviesen

las características de desempeño necesarias para las condiciones de control que se

exponen.

La alternativa seleccionada fue utilizar un amplificador lineal realizado con amplificadores

operacionales, pues para señales de control es mucho más recomendado, debido esto a

que como se observara en el capitulo 7 la señal de control para muchos controladores

conmuta rápidamente y es necesario garantizar desde el punto de vista de el hardware

que el sistema pueda responder a las señales que el calculo del controlador envía desde

el PC, lo cual incrementa la robustez general del sistema, de lo contrario no se lograría el

objetivo pues nada se gana con implementar una excelente estrategia de control si el

hardware que se encarga de llevar esta estrategia hacia el actuador no puede hacerlo

convenientemente.

Además a pesar de que un modelo sea muy aproximado a la realidad siempre existirán

factores externos que no se tienen en cuenta (La naturaleza es imposible de reducir a un

modelo matemático, por muy complejo que este sea), y entre estos están los retardos que

se pueden tener a causa del hardware, siendo la alternativa más eficiente diseñar un

sistema electrónico muy robusto que induzca la menor cantidad de perturbaciones

posibles al sistema dinámico en general o le alejen demasiado del modelo realizado.

6.2.5. Acondicionamiento de señales. En este subsistema se realiza el filtrado de los

sensores de posición lineal y angular para bajar el nivel de ruido en la señales de estos,

para que al ser enviadas al PC tomen un valor con mayor precisión del estado de las

Page 123: Diseño y Simulación de un sistema mecánico subactuado

� �����

variables físicas. También en esta parte se encuentra el acondicionamiento de los

sensores limitadores de carrera, los cuales permiten alertar si el carro a llegado a los

limites del sistema, en este caso, se activaran estos sensores haciendo que el sistema no

envié energía al actuador y el sistemas se detenga, esto se hace como medida de

autoprotección de la planta.

El filtro de estas señales debe ser un filtro pasa bajos con su frecuencia de corte en 40Hz,

debido al ruido eléctrico que existe en el ambiente por razones conocidas es de alrededor

de 60HZ, y con base en la experiencia es conocido que con un filtro activo de estas

características se logra un buen comportamiento.

6.3. DISEÑO DEL SISTEMA ELECTRÓNICO

En esta sección se mostrara los distintos circuitos eléctricos que se describieron en la

sección 6.2, los se utilizaran para colocar en funcionamiento los dispositivos electrónicos

como sensores, finales de carrera y motor, siendo este último el elemento con mayor

requerimiento de potencia y por lo tanto necesitará mas énfasis.

El actuador es un motor DC y funciona en un rango de voltaje de ± 24 voltios y con una

demanda de corriente de 3.8 amperios trabajando en sus condiciones extremas. Debido a

estas necesidades se diseñó una fuente de alimentación de ± 30 V. a 15 A. y un

amplificador de voltaje de alta corriente (mayor o igual a 10 A.). Las características de

estos circuitos surgieron del análisis de los movimientos del actuador cuando se

encuentra en funcionamiento, pues el motor desplazará al carro en dos sentidos con gran

velocidad para darle el suficiente balanceo a los péndulos y lograr situarlos en la posición

deseada. Por lo tanto en cada cambio del sentido de giro del motor habrá una urgente

necesidad de corriente y es por esta razón que se tienen estas altas especificaciones en

la fuente de energía.

Page 124: Diseño y Simulación de un sistema mecánico subactuado

� �����

6.3.1 Fuentes de Alimentación. La fuente regulada simétrica se compone de un

transformador para bajar la tensión de 110 AC y que proporcione una corriente mínima de

15 amperios seguidamente se encuentra un puente rectificador de 20 amperios. Una vez

rectificada la señal se filtra mediante los condensadores electrolíticos colocados en

paralelo, luego se encuentran los integrados LM317 y LM337, los cuales son reguladores

de voltaje positivo y negativo respectivamente, su rango salida puede variar entre 1.25 a

37 v. Por ultimo se conectan 4 transistores de potencia en paralelo para cada regulador,

los cuales son los encargados de generan esta cantidad de corriente.

La segunda fuente que se mostrará es una fuente sencilla de 5 voltios para alimentar a los

tres sensores y a los dos finales de carrera. El montaje posee como elemento principal el

regulador LM7805, el cual nos entrega un voltaje fijo de 5 voltios a su salida, también

consta de un condensador a la entrada para filtrar la tensión de posibles transitorios y

picos indeseables y otro condensador a la salida encargado de mejorar la tensión de

rizado de la señal de salida

Figura 6.12�Fuente de alimentación regulada ± 30 v.

Page 125: Diseño y Simulación de un sistema mecánico subactuado

� �����

Figura 6.13 Fuente Regulada 5 v. �

6.3.2 Amplificador de Voltaje. Este circuito se puede mencionar como el mas

importante pues a través de este se introduce la acción de control enviado por el

computador con la ayuda de la tarjeta de adquisición de datos PCI 1200, cuyo rango de

salida a utilizar varia entre ± 5v. con una corriente muy baja (menor a 200mA). Debido a

que el motor requiere una corriente alta fue necesario usar un amplificador operacional

de referencia LM12CL el cual soporta corrientes de ± 10 A y puede ser alimentado por ±

30 v., pero por seguridad se coloco este amplificador en paralelo con otro integrado

semejante y poder manejar mayor cantidad de corriente. Cada operacional se configuro

como un amplificador no inversor logrando tener a la salida un voltaje máximo de ± 24 v

ante una entrada de ± 5v., es decir con una ganancia de 4.8.

Page 126: Diseño y Simulación de un sistema mecánico subactuado

� �����

Figura 6.14 Amplificador de voltaje �

Con la configuración mostrada (conexión en paralelo), la corriente que se puede

suministrar al motor es de aproximadamente 16 Amperios, lo que es necesario debido a

las grandes corrientes de arranque que puede tener el motor.

El circuito integrado seleccionado LM12Cl es un amplificador operacional con grandes

ventajas, pues tiene protección contra sobrevoltaje lo que hace más seguro el circuito y en

términos de costo beneficio muy conveniente, su hoja de especificaciones se puede

observar en el anexo C

Page 127: Diseño y Simulación de un sistema mecánico subactuado

� ����

Con este capitulo se cierra la fase de diseño mecatrónico del sistema, en el que se han

definido y dimensionado cada parte que conforma el UMS, asi se da paso para el

desarrollo de las estrategias de control del sistema, que sera el tema del siguiente

capitulo. Es claro en la presentación del documento que esta fase de diseño detallado

estuvo muy ligada a la etapa de control y su desarrollo fue simultáneo.

Page 128: Diseño y Simulación de un sistema mecánico subactuado

� ����

7 ESTRATEGIAS DE CONTROL DEL SISTEMA �

A lo largo de este capitulo se presentan las estrategias de control que se diseñaron para

cada una de las configuraciones del sistema, que fueron modeladas en el capitulo 2.

En una primera instancia se muestra el modelado del actuador (motor) que no ha sido

presentado hasta el momento y se incorpora a la descripción de la dinámica del sistema

como la fuente de fuerza que actúa sobre el carro incluyendo la transmisión escogida y

que ha sido documentado en capítulos anteriores (Ver capítulos 4, 5 y 6); es conveniente

aclarar como ha sido una constante en el desarrollo de este trabajo que los resultados

aquí mostrados se desarrollaron en conjunto con la etapa de selección de actuadores en

el diseño detallado, pues el actuador seleccionado es elegido con base a los

requerimientos de tórque y de fuerza necesarios para la correcta operación del sistema.

Seguido al modelado del actuador se presenta una validación de los modelos

matemáticos obtenidos en el capitulo 2, y a continuación se muestra el diseño de los

diferentes tipos de controladores, obteniendo resultados de las simulaciones y su

comparación con el desempeño en la implementación al sistema físico, insistiendo en que

son presentados solo los resultados de un proceso en el que se diseñaron gran cantidad

de controladores que como es anotado en cada uno por la metodología seguida requerían

de ajustes y procesos iterativos que no son mostrados a menos que impliquen relevancia

para el desarrollo del presente trabajo.

Page 129: Diseño y Simulación de un sistema mecánico subactuado

� ����

7.1. MODELADO DEL ACTUADOR El proceso de diseño desarrollado previamente se ha seleccionado como actuador del

sistema un motor DC, el cual proporcionara la fuerza necesaria para dar el movimiento al

carro y subsecuentemente a los péndulos.

Es importante modelar matemáticamente el actuador, en este caso particular del motor

DC, debido a que en el diseño y simulaciones de los controladores se deben tener en

cuenta los efectos que éste causa en la dinámica del sistema. El modelo del motor DC a

utilizar es el de fuerza, lo que quiere decir que la ecuación electromotriz debe relacionar el

voltaje aplicado al motor con la fuerza de éste.

El voltaje del motor esta definido por la ecuación

(7.1)

Donde V = Voltaje

RA = Resistencia de Armadura

IA = Corriente de Armadura

KM = Constante de Torque del Motor

�M = Velocidad Angular del Motor

El tórque generado por el motor es directamente proporcional a la corriente de armadura

que se aplica, lo que se muestra en la ecuación (7.2)

Donde �τ = Tórque Generado en la Salida Del Eje del Motor

Kg = Reducción a la salida del eje.

��� , ω+= &'��(

���� ,,=τ (7.2)

Page 130: Diseño y Simulación de un sistema mecánico subactuado

� ����

La fuerza que se aplica al carro es proporcional al tórque generado en la salida del eje

del motor y esta dado por la ecuación (7.3).

Donde F = Fuerza Generada por el Motor

r = Radio de salida de la polea dentada

La velocidad angular del motor se relaciona con la velocidad lineal alcanzada por la

banda dentada y por ende la desarrollada por el carro al que se acopla el péndulo, por el

radio r de la polea dentada de salida acoplada al eje del motor; esta relación se define en

la ecuación (7.4).

Donde •

�� = Velocidad Lineal del carro

Tomando la ecuación (7.2) sustituyéndola en la ecuación (7.3) y despejando la corriente

de armadura, resulta

Para completar el modelo electromotriz del motor, se reemplazan las ecuaciones (7.4) -

(7.5) en la ecuación (7.1), reorganizando la nueva ecuación y despejando la fuerza, se

obtiene el modelo electromotriz del motor en términos del voltaje aplicado y de la

velocidad del carro.

�� �τ=

��

� ,�

�•

��

�,,

�� =

��

���

+�

,,

�+

,,�

•−=

��

(7.3)

(7.4)

(7.5)

(7.6)

Page 131: Diseño y Simulación de un sistema mecánico subactuado

� ����

La ecuación (7.6) es utilizada para complementar los modelos del péndulo simple y

doble, donde la fuerza F es reemplazada por el modelo del motor, de modo que se tiene

una descripción matemática completa de la dinámica del sistema en términos de

parámetros de funcionamiento real, como es expresado más adelante en el desarrollo de

este capitulo.

7.2. CONTROL PÉNDULO SIMPLE El control para el sistema péndulo invertido consiste en llevar la barra colgante desde su

posición de equilibrio estable (�=180º) hasta su posición de equilibrio inestable (�=0º),

esto se consigue gracias al movimiento traslacional del carro producido por el actuador.

La estrategia de control implementada para lograr el objetivo de control se basa en un

análisis hecho al comportamiento dinámico del sistema, en la cuál se han identificado tres

zonas en el espacio de control del sistema. Las tres zonas se ilustran en la figura 7.10

Figura 7.1: Descripción de las diferentes zonas de movimiento del péndulo

Page 132: Diseño y Simulación de un sistema mecánico subactuado

� ����

• Zona de balanceo

Esta zona representa las regiones donde la linealización hecha para el modelo

matemático no es valida es decir en regiones donde el ángulo del péndulo con

respecto a la horizontal esta fuera del intervalo [ )��)�� −<< ϕ ]. El objetivo principal

en esta zona, (que es la posición inicial del péndulo), es llevar el péndulo a la zona

lineal con velocidades angular y lineal del carro cero, para que así pueda utilizarse un

controlador lineal.

Para el control en esta zona se encuentran muchas alternativas en la bibliografía

consultada, y aquí se implementará una técnica llamada “Swing_up”.

• Zona muerta (dead zone)

Mediante las técnicas de Swing Up existentes, el péndulo se lleva a la zona lineal pero

con velocidades angular y lineal lejanas de cero lo que implica que los controladores

lineales implementados no funcionen. Para solucionar este problema se implementa

la llamada zona muerta que consiste en aplicarle al sistema una entrada cero en un

intervalo comprendido entre el final de la zona de balanceo y el inicio de la zona lineal,

con esto se garantiza que el sistema queda dentro de la zona lineal, en condiciones

iniciales aptas para que el controlador lineal pueda actuar sobre el sistema sin ningún

inconveniente, pues la energía extra que lleva el sistema cuando termina el

controlador de swing up es “gastada” venciendo la gravedad. Esta zona muerta se

ajusta en simulación de acuerdo ala dinámica del sistema

• Zona lineal

La zona lineal comprende la zona en la cual se hace la linealización para el modelo

matemático [ )��)�� <<− ϕ ], y en ella se aplican técnicas de control lineales para

llevar el sistema a )�=ϕ

Page 133: Diseño y Simulación de un sistema mecánico subactuado

� ����

7.2.1. Diseño del sistema de control para la zona Lineal. Para la zona lineal se

implementará un regulador lineal cuadrático (LQR) cuya implementación se expone a

continuación.

Este controlador obedece la ley de control −−= ���,�,�� donde el error (e) es igual a

(r - y), el valor fijado para (r) corresponde a la referencia a la cual se desea llevar al

sistema, e (y) es la salida. La figura 7.11 expone la implementación del controlador en

Simulink.

Figura 7.2: Regulador lineal por LQR

Para encontrar el valor de la ganancia (Ki) se debe aumentar el sistema de la siguiente

manera:

��

�=�

−=

�*���������������

� � ��

�� �'���&�&

��

�'���&�&

Reemplazando el valor las matrices A, C, B y un vector ceros de tamaño (nx1) se halla el

valor de las matrices aumentadas (AAumentada) y (BAumentada ).

����

Page 134: Diseño y Simulación de un sistema mecánico subactuado

� ����

������

−−=

�����

��������������������

�����

�����������������

�����

����&�&�

������

=

���$

����

�'���&�&�

Para calcular la vector de ganancias aumentado (KAum= [K � Ki]) se utiliza el control

lineal cuadrático, este método tiene una ventaja sobre el método de asignación de polos

pues nos permite determinar los valores de las ganancias y utilizar una cantidad mínima

de energía para estabilizar el sistema, la técnica LQR calcula el vector de realimentación

óptima tal que el sistema en lazo cerrado minimiza un índice de desempeño cuadrático J:

( ) ⋅⋅+⋅= ��# ������ +,

Donde Q es una matriz simétrica real definida positiva o semidefinida positiva, por medio

de ella se asignan el peso correspondiente a cada variable de estado. La matriz R es

simétrica real definida positiva y permite penalizar el esfuerzo de control y u es la acción

de control. El problema del control optimo se reduce a encontrar la matriz de ganancias K

que minimizan el índice de desempeño y esto se consigue al resolver la ecuación de

Ricatti adjunta al problema de optimización que se muestra en (7.11).

�� =+−+ ∗−∗∗ �������� ��

����

(7.9)

(7.10)

(7.11)

Page 135: Diseño y Simulación de un sistema mecánico subactuado

� ����

En donde si existe una matriz P definida positiva entonces el sistema es estable, o la

ecuación característica del sistema tendrá todos sus autovalores con parte real negativa.

Una vez la matriz P es encontrada (La ecuación de Ricatti es resuelta), la matriz de

ganancias K viene dada por 7.12

��� �∗−∗ = �

Los valores numéricos de las matrices Q y R se presentan a continuación

������

=

������

������

�������

�������

�������

[ ]�=�

De los valores que se asignan a la matriz Q en (7.13), se entiende que para la estrategia

de control, tiene más peso la posición del carro y la posición del péndulo, y esto se vera

reflejado en el desempeño del controlador. A estos valores se llego a partir de la iteración

observando el desempeño y el cambio en las estrategias de control cuando se variaban

estos valores.

Utilizando el comando lqr de Matlab (que resuelve la ecuación de Ricatti adjunta al

problema de optimización) se calcula el vector de realimentación (Kaum) dando como

resultado.

[ ]

[ ]

1623.3

22.9231- 95.8173- 26.1823- 27.5649-

3.1623 22.9231- 95.8173- 26.1823- 27.5649-

=

=

=

i

aum

K

K

K

(7.13)

(7.15 a)

(7.14)

(7.15 b)

(7.15 c)

(7.12)

Page 136: Diseño y Simulación de un sistema mecánico subactuado

� ����

El código de Matlab para el cálculo de estas constantes se muestra en el anexo D

7.2.2. Diseño de sistema de control para zona lineal por modos deslizantes. A

continuación se presenta el diseño de un controlador alternativo para la zona lineal del

péndulo simple utilizando modos deslizantes5, que es una técnica que se basa en la teoría

de estabilidad de Lyapunov y que representa un enfoque diferente de los algoritmos de

control tradicionales. La teoría de sistemas de Control por Modo Deslizante (CMD)

representa una parte fundamental de la teoría de sistemas no lineales propuesta en la

antigua Unión Soviética por S.V. Emelyanov del Institute of Control Sciences, Y. Itkis y V.

A. Utkin (HUNG 1993, UTKIN 1977-1978, ITKIS 1976). Esta teoría consiste en el empleo

de acciones de control conmutadas o discontinuas sobre una o varias superficies de

conmutación y uno de los principales inconvenientes asociados a la técnica de CMD es la

intensa actividad que debe ejercer la señal de control, lo que resulta en la presencia de

oscilaciones de alta frecuencia conocidas como “chattering”.

La literatura sobre modos deslizantes es dispersa y hay múltiples enfoques para abordar

el diseño de un controlador con la técnica de CMD, en general la metodología que se va a

abordar va a consistir de dos etapas: selección de una variable interruptora y luego

encontrar el control que force el modo deslizante en esta variable.

En (7.16) se muestra la llamada forma regular de sistemas mecánicos, donde �� �� ��� � �� ∈∈ − y B2 es una m x m matriz no singular, siendo n el número de variables

del sistema, y m el numero de entradas del sistema

'���������

�����

� �� �

� �

�������

����

+==

�������������������������������������������������5 FRIDMAN, Leonid. Notas del curso Introducción al control por modos deslizantes [en linea]. Mexico: Autonomous

University of Mexico, 2005. [consultado 05 de Diciembre, 2005]. Disponible en Internet: http://verona.fi-p.unam.mx/~lfridmn/archivos.html.

(7.16)

Page 137: Diseño y Simulación de un sistema mecánico subactuado

� ���

El primer bloque no depende del control, y la dimensión del segundo bloque coincide con

la dimensión del control. La primera etapa del diseño consiste en manejar el m-

dimensional vector de estado x2, como el control del primer bloque y diseñado como una

función del estado x1 del primer bloque, en correspondencia con algún criterio de

desempeño.

�� ��� �-� −=

En la segunda etapa, el control discontinuo es para ser seleccionado para forzar el modo

deslizante en la variable

���� � ����� =+= �-����-

Después el modo deslizante ocurre en la variable deslizante (7.17), la condición (7.18) es

sostenida y el movimiento adicional en el sistema es gobernado por la ecuación

diferencial

�� � � ����� ��-��� −=�

Con las propiedades dinámicas deseadas.

Luego se debe encontrar una transformación de coordenadas reduciendo el sistema

original expresado en las ecuaciones (2.20) y (2.21), a la forma regular (7.16) antes de

diseñar el control de modo deslizante.

Para la transformación de coordenadas se asume que el sistema en la forma original tiene

la forma

[ ]��� ���'�

'�������

������

� �� �

�=ℜ∈ℜ∈+=�

b(x, t) es un vector n-dimensional con componentes bi(x, t), i=1...., n. Asumimos que el

más pequeño de ellos, es bn(x, t), es diferente de cero para cualquier x y t:

�� � ≠����

Permitimos una solución para un sistema auxiliar de orden (n-1)

1-1....ni // == nini bbdxdx

(7.17)

(7.18)

(7.19)

(7.20)

(7.21)

Page 138: Diseño y Simulación de un sistema mecánico subactuado

� ���

Es un juego de funciones

��$�������"������������� � == ��� ��� ϕ

Si se introduce la transformación de coordenadas

��$�������"������ � =−= ���� ���� ϕ

De acuerdo a las ecuaciones (7.20) a (7.23), las ecuaciones de movimiento con respecto

al nuevo vector de estado (y1,…, yn-1, xn) son de la forma

'���

��

��

'���

�'���

��

���

��

����

���

��

���

����

+=

=−=

+−+=−=

−=

��

��

��$�������"�����������

�������

� �ϕ

Reemplazando Xi por � � ��� ��� ϕ+ lleva a las ecuaciones de movimiento

utxybxyfxtxyfy

nnnn

n

),,(),(*),,(*+=

=�

Donde y y f* son vectores n-dimensiónales, y fn* y b*n son funciones escalares.

Para expresar la dinámica del péndulo simple en la forma (7.16), se toman las ecuaciones

(2.20) y (2.21) y se expresan como se muestra a continuación, por simple despeje

algebraico de variables

( ))cos(*)sin()(1

*34

)sin()cos(1

θθθ

θθ

ugmMkl

umgk

x

−+=

��

���

� +−=

��

��

(7.22)

(7.23)

(7.24)

(7.25)

Page 139: Diseño y Simulación de un sistema mecánico subactuado

� ����

Donde

������������������������������������������������"��+��������������������������������������������������������

����������������������������������������������

���������������������������������������������������

θθ

θ

�(''

�.

+=

>−+=

El sistema re expresado en (7.25), tiene la forma

'������

'������

��� �

��� �

���

���

≈≈

≈≈

+=

+=

���

���

Que es el caso particular de n=2 del sistema expresado en (7.20)

Se debe encontrar tal que la ecuación diferencial de segundo orden con respecto a y no

dependa del control u*, asi que de acuerdo a (7.23) y (7.21)

��������������������������������������������

�-

�-

��������������������������������������������������������

�������������������������������������������������������������������������������������������������������������������

θθϕ

θϕ(

��

−==∂∂

−=

De donde se halla

( ) ��������������������������./���0�����

������������������������������������������������� θθϕ +−= (

(�

Ahora a partir de (7.28) y (7.30) se deriva y con respecto al tiempo obteniendo

(7.30)

(7.29)

(7.28)

(7.27)

(7.26)

Page 140: Diseño y Simulación de un sistema mecánico subactuado

� ����

)tan(),(

)tan()cos(3

434

)(cos34

)(cos)sin()cos(

34l

xy

)cos(3

4

22

2

2

θθθ

θθθ

θ

θθθθθ

θθ

���

���

�������

���

Gy

lMmkg

y

lxy

=���

���

+��

�+�

���

� −=

���

����

� ++=

+=

Luego a partir de (7.25) y (7.34) se expresa la forma regular del sistema asi:

*),(

)tan(),(

uv

Gy

θθθθθ

==

��

��� (7.35)

Donde

( )( )θθθ

θθθθθ

cos*sin1

*),(

y

cos34

34

cos34

),(2

2

ugmMkl

uv

lMm

kg

G

−+=

+���

����

�+�

���

� −=��

(7.36)

El diseño del controlador para este sistema se muestra a continuación

Paso 1

La ecuación ),( θθ �G en (7.35) es positiva si –�/2>�< � /2, luego la función tan(�) se

maneja como control de acuerdo a lo expresado en (7.17)

�**0����������������/� �����+=>= ααθ - (7.37)

(7.31) (7.32) (7.33) (7.34) �

Page 141: Diseño y Simulación de un sistema mecánico subactuado

� ����

Entonces la ecuación superior del sistema (7.35) se puede expresar como

( ) 212

2

1),( SGyS

Syy

−−−=

+−=

θθα ��

(7.38)

Para el sistema expresado en (7.38) se debe garantizar que el punto de equilibrio es

asintoticamente estable con

(0,0))(x, teconsiguien por y ,t como asi 0S y 0y 2 →∞→→→ θ , que es la

característica deseada del sistema. Para lograr esto se tiene la constante �1 y en hallar

o establecer un valor de esta constante que garantice la estabilidad asintótica del sistema

finaliza el primer paso del diseño.

Apoyándose en la teoría de estabilidad de Lyapunov si se tiene la siguiente función

candidata de Lyapunov

( )22

2

21

SyV +=

Con V= 0 en el origen (y,S2)=(0,0), su derivada con respecto al tiempo será: 2

212 )1( SGyV −−−= α�

Luego la derivada de la función candidata de Lyapunov es negativa (Por tanto

garantizando la estabilidad asintótica), si ��� >−!α , y dado que la función G es positiva

si �1�1 πθπ >>− , que es el dominio donde se pretende controlar el sistema entonces,

bastara con �1�� >> !α

Paso 2

De (7.18) se establece que:

( )��- �++= �� �/� αθ (7.39)

Page 142: Diseño y Simulación de un sistema mecánico subactuado

� ����

Luego el implementar la señal de control U* tal que permita que la expresión en (7.39)

tienda asintoticamente a cero, es el objetivo de este segundo paso en el diseño del

controlador.

La función S1 tiende asintoticamente a cero si es una solución de la ecuación diferencial

��

��

���--

θα

−=� (7.40)

Ó

������ � ��

� =+= --��- αθθθ ��� (7.41)

Con

( )θαθθ

�/����

���� !�- ++−= ��� (7.42)

De (7.41) se tiene que la superficie de deslizamiento es

( ) 0tancos 11

21 =+++= SGyS αθθαθ �� (7.43)

Luego el modo deslizante existe si S tiene signo opuesto con respecto a su deriva con

respecto al tiempo.

Calculando la derivada de S con respecto al tiempo se tiene:

( )( ) ( )

( )( ) θθ

θθθθθθαθθθθα

αθθαθθθθα

����

���

��

���

� ++−−+

++��

���

� −+��

���

� +=

22

12

1

12

11

cossin

34

sincos2

sincossin2sincos2

tancoscos*sin1

sin38

1

lkgm

GyG

SGugmMkl

lS

(7.44)

Page 143: Diseño y Simulación de un sistema mecánico subactuado

� ����

),,(),( yFvS ���� θθθθ +Ψ= (7.45)

Donde

θθαθθ sin38

1),( 1�� l+=Ψ (7.46)

( )( )θ

θθθθθθθα

θθθθααθθαθθ

��

�����

��

���

� +

−−++=

22

1

211

21

cossin

34

sincos2

sincos

sin2sincos2costan),,(

lkgm

GyGSGyF (7.47)

Deteniéndose en (7.45) es deducible que el control conmutado solo afecta a v pues es la

única función que depende de U*, luego se debe hacer que v garantice la condición de

existencia del modo deslizante, esto se logra si se define la funcion v como se expresa a

continuación.

maxmin

0

0

1

)),((

Fv

DondeSsignvv

Ψ≥

Ψ−= θθ �

(7.48)

Pues asi se garantiza que el primer sumando del lado derecho de (7.45), nunca sea

menor al segundo sumado del mismo lado, luego el signo de S define el signo de la

derivada de S.

Luego la señal de control U se obtiene a partir de (7.48) , (7.36) y (7.27)

( )( ) ( )( )Ψ+−+= -����.(�(��' �

� �"�����"����

� θθθθθ

� (7.49)

Page 144: Diseño y Simulación de un sistema mecánico subactuado

� ����

A partir de (7.45), e igualando a –n*sign(S), se puede a través de despeje matemático

llegar a la función U, pero el análisis realizado evita este procedimiento, y se basa en la

estabilidad en el sentido de Lyapunov.

Para la implementación del controlador, el valor de klv0 es de 24V, que es el límite de

voltaje que se le puede aplicar al motor que actúa como fuente de fuerza para el sistema.

La ecuación 7.49 puede se escrita como se expone en 7.49b, pues al ser S la superficie

de deslizamiento su signo prevalece sobre el de la función además en (7.48) al dividir

entre 22ψ el signo de ψ , su signo es tenido en cuenta.

( )( ) ( )( )-����.(�(��' �

� �"�����"����

� +−+= θθθθθ

� (7.49b)

En la sección de simulación se observaran las diferencias entre aplicar cualquiera de las

dos estrategias aquí propuestas

7.2.3. Corrección de las oscilaciones de alta frecuencia en el controlador CMD.

Como se anotó anteriormente el control por modos deslizantes tiene el inconveniente de

que se presentan oscilaciones de alta frecuencia, debido a la naturaleza misma del

controlador, pues se utilizan acciones de control conmutadas; esto ha llevado a que en

muchos sistemas reales no se implemente este tipo de controladores debido a los

problemas que en muchos sistemas esto significa (por ejemplo control de posición en

robots, maquinas de control numérico, etc.), además en el momento de una

implementación, los sistemas de regulación de potencia a actuadores, pueden tender a

disipar más calor que el que se debería, disminuyendo además la vida útil de los equipos,

sin contar con la lentitud en la respuesta que puede tener un sistema mecánico, cuando

en la señal de control la acción conmuta por encima de sus limites, hecho este que puede

llevar al colapso a un sistema completo.

Page 145: Diseño y Simulación de un sistema mecánico subactuado

� ����

Es entonces importante para dar valor agregado a un sistema de control por modos

deslizantes que se puedan atenuar estas oscilaciones o “chattering” en la señal de

control, a fin de hacer el controlador mucho más fiable al momento de una

implementación real, sin perder las buenas características que pueda tener el controlador.

De acuerdo a Slotine6, una solución para atenuar las oscilaciones es introducir una capa

límite alrededor de la superficie de conmutación, y usar una aproximación lineal de la

función Sign con la capa limite. Entonces la expresión Sign(S), deberá ser reemplazada

por:

���

����

γ-

-&� (7.50)

Donde la constante � define la amplitud de la capa límite, y la función Sat se define como

���

���

>���

����

=���

����

γγ

γγ

γ-

��-

����

-��

-

-�&� (7.51)

Luego es claro como la conmutación solo se hace si se esta fuera de la capa limite, pero

la robustez del sistema es una función de la magnitud de � 7.

7.2.4. Diseño del sistema de control para la zona de balanceo. Esta técnica de

control se basa en inyectar energía al péndulo invertido cuando se encuentra en un

estado de reposo y lograr que este a través del balanceo alcance una zona cercana a su

posición erecta y es entonces donde actúa el controlador de la zona muerta y el control

de la zona lineal.

�������������������������������������������������6 SLOTINE J.J. and Li W., Applied Nonlinear Control, Englewood Cliffs, NJ: Prentice-Hall, 1991. p. 461. �

Page 146: Diseño y Simulación de un sistema mecánico subactuado

� ����

Sea la masa del péndulo, el momento de inercia del péndulo con respecto al pivote,

y ( es la distancia desde el apoyo a su centro de masa. El ángulo entre la vertical y el

péndulo es θ , θ es positivo en el sentido de las manecillas del reloj. La aceleración de la

gravedad � y la aceleración del pivote es (v) se tiene que la ecuación que define la

dinámica del sistema se puede expresar como se muestra en la ecuación 7.52.

�������� =+−••

θθθ �(�(���

��

=∂∂φ

Introduciendo las normalizaciones

(�/�

⋅⋅=

�' =

Las ecuaciones de movimiento para el péndulo son

��������� θωθωθ ⋅−=

••'��� ��

�'�

⋅=∂∂φ

La energía en su respuesta natural, haciendo uso de la terminología anterior, se expresa

como en (7.58).

(7.52)

(7.53)

(7.54)

(7.55)

(7.57)

(7.56)

Page 147: Diseño y Simulación de un sistema mecánico subactuado

� ���

�������

�−+==

θωθ

��(

La ley de control propuesta por Astrom y Furuta7 (1999) es

����������� θθ•

⋅−= ���� ,�&�' ��

La energía deseada es tomada cuando el péndulo se encuentra en el punto de equilibrio

inestable (�=0º)

�� � ⋅⋅=

La ecuación (7.59) propone que la ley de control aplicada al sistema sea proporcional en

un factor K a la diferencia de energía entre la energía total del sistema y la energía

deseada, con la correspondiente función de saturación que garantiza que se tengan en

cuenta parámetros existentes en una implementación real.

El parámetro de diseño es la ganancia (K), cuyo valor asignado luego de un proceso

iterativo es el mostrado en (7.61).

K=1.04

Los límites de saturación corresponden a ��± voltios, debido a los rangos de voltaje del

motor DC.

�������������������������������������������������7� ASTROM, K y FURUTA, K. Swining Up A Pendulum By Energy Control [en línea]. San Francisco: IFAC World Congreso, 1996. [Consultado Agosto, 2005] Disponible en Internet: http://www.control.lth.se/~kja/furutapaper.pdf . p. 1-12. �

(7.58)

(7.59)

(7.60)

(7.61)

Page 148: Diseño y Simulación de un sistema mecánico subactuado

� ���

7.3. CONTROL PÉNDULO DOBLE El control del péndulo doble que se expone en esta sección esta orientado a la zona lineal

del sistema, aunque el prototipo físico ha sido diseñado con la posibilidad de explorar

diversas técnicas de levantamiento del péndulo desde su posición de equilibrio estable.

Para estabilizar ambos péndulos del sistema en su posición de equilibrio inestable, un

sistema de control en lazo cerrado es necesario para que el sistema pueda resistir

perturbaciones externas. El controlador también debe ser diseñado para que el carro

regrese al set point deseado.

7.3.1. Diseño del sistema de control. Al igual que en el péndulo simple (en la zona

lineal) se realizará un regulador lineal cuadrático (LQR) cuya implementación se expone

a continuación.

Figura 7.3: Regulador diseñado para el péndulo doble

A continuación se muestran los valores para las matrices Q y R que se utilizaron para el

calculo de la matriz de ganancias K. Dichas matrices fueron establecidas luego de correr

muchas simulaciones y establecer que los valores aquí consignados minimizan el voltaje

aplicado al sistema para un rango de operación bastante amplio.

Page 149: Diseño y Simulación de un sistema mecánico subactuado

� ����

���������

=

�������

��������

�������

�������

�������

����������

���������

[ ]�=�

Con la ayuda del comando lqr de Matlab obtenemos como resultado la matriz de

ganancias para la realimentación de los estados y la ganancia Ki mostradas en (7.64).

[ ]����$��

������������������������������������������������

==

El código completo de la implementación se muestra en el anexo D

7.4. IMPLEMENTACIÓN Y SIMULACIÓN DE CONTROLADORES

El proceso de simulación es importante cuando se desea controlar un sistema, porque es

aquí donde se ajustan y definen ciertos parámetros de las técnicas de control, cuyas

respuestas son posibles de visualizar, para posteriormente realizar un análisis de los

sucedido y lograr así que el sistema sea controlado en un corto tiempo.

En esta sección se mostraran los resultados de la implementación de controladores

expuestos en la sección anterior para las dos configuraciones del U.M.S. los cuales se

realizaron en SimulinkTM V 6.5 , y para todos el algoritmo de resolución de las ecuaciones

diferenciales que describen el sistema fue un método de paso fijo ODE 4 (Runge Kutta de

Orden 4), con un tamaño de paso de 0.01 s, esto con el fin de aproximar la simulación al

posible tiempo de muestreo que se utilicé en la DAQ en una implementación real, además

será importante en el momento de realizar el prototipo virtual

(7.62)

(7.63)

(7.64)

Page 150: Diseño y Simulación de un sistema mecánico subactuado

� ����

7.4.1. Péndulo Invertido Simple

7.4.1.1. Control por Realimentación del estado mediante LQR. La figura 7.4 ilustra

la implementación en Simulink del controlador diseñado para la zona lineal del sistema.

En la figura el subsistema “PLANTA” es el subsistema expuesto en la figura 2.5, y es claro

como en la acción de control se ha impuesto un saturador cuyos limites son +/- 24 V, pues

se simula la limitación del sistema de solo poder funcionar bajo estos rangos de voltaje

debido al actuador utilizado.

Figura 7.4: Esquema en Simulink del control por realimentación del estado

La figura 7.5 muestran la respuesta del sistema de control implementado sobre la planta

para las condiciones iniciales Posición del Carro (x): 0 m. y Posición Angular (�): 30º; en

ella es claro como el sistema mueve el carro aproximadamente 69 cm del origen y lo

retorna a cero en aproximadamente 2.7 segundos, pero la posición del péndulo es llevada

de su posición inicial de 30º a -17 y luego a cero en 2.5 segundos lo que indica que el

sistema primero estabiliza el péndulo en su posición de equilibrio inestable (Cero grados),

y luego lleva el sistema a x=0, en la grafica del esfuerzo de control se muestra el voltaje

aplicado al actuador, el cual no supera el valor de saturación de +- 24V propuesto en el

diseño del controlador.

Page 151: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 7.5: Respuestas del sistema para x0 = 0 y Angulo0 =30º �

La figura 7.6 muestra la respuesta del controlador para las condiciones iniciales posición

angular 20º, posición lineal del carro 0 m. se puede apreciar que el movimiento máximo

del carro utilizado para estabilizar el sistema es de 40 cm logrando la estabilización total

del sistema en un tiempo de 2.5 s.

En las dos pruebas realizadas hasta el momento el sistema fue estabilizado por el

controlador propuesto, sin superar la carrera máxima que se tiene para el sistema que es

de +/- 0.7 m, pero estuvo muy cerca de llegar a este limite. En la figura 7.7 se ilustran los

resultados de colocar al sistema partiendo desde varias condiciones iniciales, siendo

siempre x=0 y los ángulos 30º, 40º y 53º, siendo claro como es todos los casos el sistema

es controlado aun para estas condiciones tan severas y lejanas de la zona lineal, lo que

es un indicador de la efectividad del controlador diseñado, pues a pesar de ser un

Page 152: Diseño y Simulación de un sistema mecánico subactuado

� ����

controlador hecho a partir de la planta lineal, al simularlo en la planta no lineal estabiliza al

sistema para condiciones muy alejadas de la zona lineal del mismo

Figura 7.6: Respuesta del sistema para x0 = 0 y Angulo0 =20º

El principal inconveniente de los resultados mostrados en la figura 7.7 es que la carrera

necesaria para controlar el sistema es mayor que 0.7, una solución posible para este

problema e implementar en el prototipo real este tipo de ángulos tan grandes, es variar la

condición inicial del carro, la cual puede ser hasta de -0.7 m. La figura 7.8 muestra los

resultados para los mismos ángulos simulados en la figura 7.7, pero la condición inicial

será -0.6 m. Como es claro en dicha figura solo no será posible implementar la condición

inicial cuyo ángulo es 52º pues requiere de una carrera efectiva superior a 1.4 m.

Page 153: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 7.7: Respuesta del sistema para condiciones iniciales lejanas de la zona lineal �

Figura 7.8 Respuesta del sistema para condiciones para X0 diferente a cero

Page 154: Diseño y Simulación de un sistema mecánico subactuado

� ����

En la figura 7.9 se ilustra la respuesta del sistema cuando las condiciones iniciales son :

posición angular 55º y posición lineal del carro 0 m, es claro como el controlador

implementado no puede controlar el sistema, dado que se encuentra muy lejos de la zona

lineal, además en la grafica del esfuerzo de control muestra como la saturación +/-24V,

incide pues la energía que se debe ingresar al sistema es superior a la que este limite de

saturación impone y la equivalencia que el sistema hace ingresando el máximo valor

permitido durante un periodo de tiempo resulta insuficiente

Figura 7.9: Respuesta de las variables de control ante prueba fallida

Otra característica interesante es la de hacer que el sistema siga una referencia, en su

posición lineal, basado esto en que el sistema es estable cuando el ángulo es cero

grados sin importar la posición. Para esto en la realimentación del estado, a x se le resta

el valor de la referencia como se muestra en la figura 7.10, con esto se logra que la

realimentación de este estado sea el error de la posición del carro, y como el regulador

Page 155: Diseño y Simulación de un sistema mecánico subactuado

� ����

hace que el estado realimentado converja a cero, se hace que el sistema lleve el error de

posición a cero logrando alcanzar la posición deseada

Figura 7.10: Cambio en el controlador para hacer que siga referencia en x

La figura 7.11 ilustra los resultados del regulador, siendo la condición inicial -0.6 m para

todos los casos, y es claro como para todos los casos se sigue la referencia que se coloco

en 0.3 m, sin sobrepasar el limite de 0.7 m

Figura 7.11: Resultados del regulador

Page 156: Diseño y Simulación de un sistema mecánico subactuado

� ����

7.4.1.2. Control por Modos deslizantes. Las estrategias de control que se diseñaron en las

ecuaciones (7.49) a (7.50), se implementaron en simulink como se ilustra en la figura

7.12, en ella al variar el valor de la constante c (en color rojo), cambia el tipo de

controlador que se va utilizar de manera que si se hace igual a 1 la estrategia de control

implementada en la ecuación (7.49), si es 2 se implementa la (7.49b), y si es 3 el ultimo

termino de la ecuación 7.49 es S, es decir se tiene en cuenta solo el valor de la superficie

de deslizamiento. En la figura 7.12 la constante llamada eta indica el valor de la

saturación de la superficie de deslizamiento, por tanto al cambiar esta constante se varia

la magnitud de el control conmutado, y es interesante observar la respuesta del sistema

frente a los cambios en esta. En las figuras de resultados de estas simulaciones las

magnitudes para voltaje, posición angular, y posición lineal son Voltios, Grados y Metros

respectivamente

La figura 7.13 muestra los resultados de la implementación de la estrategia de control de

la ecuación (7.49) con 20º en la posición del péndulo, en ella si se compara su respuesta

con las mismas condiciones iniciales, es claro como la acción de este controlador es más

efectiva desde el punto de vista que el máximo desplazamiento en la posición del carro es

0.3 m que es inferior a la respuesta del LQR, además el ángulo solo es desplazado a -5º

en su recorrido hacia el punto de equilibrio.

Figura 7.12 Implementación en Simulink del controlador CMD �

Page 157: Diseño y Simulación de un sistema mecánico subactuado

� ���

Figura 7.13�Controlador CMD si c=1 con ángulo = 20º

�Figura 7.14:�Controlador CMD si c=1 con ángulo = 31º

Page 158: Diseño y Simulación de un sistema mecánico subactuado

� ���

La figura 7.14 ilustra la reapuesta de este controlador cuando la condición inicial del

ángulo es 31º, en ella su respuesta es muy similar al controlador lqr diseñado con

anterioridad.

Figura 7.15: Controlador CMD si c=1 con ángulo = 58º

En la figura 7.15 se observa la respuesta del controlador ante una condición inicial de

ángulo de 58º que a pesar de estar lejos de la zona lineal controla el sistema, pero en

comparación con el controlador LQR diseñado anteriormente no ofrece grandes

ventajas, pues solo se logran tres grados más en el control del sistema, pues la respuesta

ante una condición inicial del ángulo de 59º se ilustra en 7.16 y no se controla el sistema.

Page 159: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 7.16: Controlador CMD si c=1 con ángulo = 59º

Si en el esquema de la figura 7.12 se hace 2 la constante c la estrategia de control

implementada es la de la ecuación (7.49b) por tanto la superficie de deslizamiento será

solo S. es decir que el ultimo término de la ecuación será sign(S)

Las figuras 7.17 a 7.20 se ilustran los resultados de hacer este cambio al controlador por

modos deslizantes, siendo 24 el valor de eta.

�Con las figuras 7.17 y 7.18 los resultados obtenidos son similares a los que se vieron en

los controladores expuestos anteriormente (LQR y Modos deslizantes con c=1), pues con

20º y 30º su respuesta es similar.

Page 160: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 7.17: Controlador CMD si c=2 con ángulo = 20º

Figura 7.18: Controlador CMD si c=2 con ángulo = 30º

Page 161: Diseño y Simulación de un sistema mecánico subactuado

� ����

Las figura 7.19 y 7.20 son contundentes al demostrar que al utilizar esta superficie de

deslizamiento se aumenta notablemente la robustez del controlador pues es posible

controlar hasta 69º , lo que indica que se justifica la elaboración de este tipo de

controladores dado que el margen de control en el ángulo del péndulo aumenta

considerablemente. La figura 7.20 ilustra que solo hasta 70º se pierde la posibilidad de

controlar el sistema

Figura 7.19: Controlador CMD si c=2 con ángulo = 69º

Figura 7.20: Controlador CMD si c=2 con ángulo = 70º

Page 162: Diseño y Simulación de un sistema mecánico subactuado

� ����

Cuando se diseñan controladores por modos deslizantes la condición de ( )--���- η−=� ,

se establece para hacer que la función de deslizamiento S decrezca con el tipo cuando

este tiende a infinito ella tienda a cero, pero si esto esta garantizado , es posible cambiar

este término en la estrategia de control y colocar directamente la función de deslizamiento

S, con esto se logra eliminar la función conmutada que hace aparecer esas oscilaciones

que los controladores anteriores presentan cuando alcanzan el punto de equilibrio.

Para observar cual seria el comportamiento del sistema frente a este cambio en la

estrategia de control la constante c se hace 3 en el esquema de la figura 7.12. La figura

7.21 y 7.22 ilustra el comportamiento del sistema frente a esta estrategia de control

cuando la posición del ángulo es 20º y 69º lo que indica que iguala al controlador anterior,

pero como era de esperarse se elimina la presencia de la función conmutada en la señal

de control.

Figura 7.21:�Controlador CMD si c=3 con ángulo = 20º

Page 163: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 7.22:�Controlador CMD si c=3 con ángulo = 69º

Como se ha observado a lo largo de las graficas de los controladores por modos

deslizantes estos debido a la presencia de señales conmutadas han introducido

vibraciones en las señales controladas que solo se eliminaron, suprimiendo la señal

conmutada de la función signo y aplicando directamente la función S, pero en algunas

aplicaciones esto al no ser posible requiere de métodos como el propuesto en (7.50), el

cual para implementarse basta con incluir un sistema como el que plantea en la figura

7.23 antes de eta en el esquema de la figura 7.12

Figura 7.23: Implementación de la estrategia de control ecuación (7.50)

1/R

Page 164: Diseño y Simulación de un sistema mecánico subactuado

� ����

En la implementación la constante R delimita el ancho de la capa límite y la efectividad del

controlador viene determinada por su magnitud. Las figura 7.24 a 7.26 ilustran los

resultados de simulaciones ante condiciones iniciales de 20º, 59º y 60º respectivamente

para valores de R de 1 y 5. Como es claro a lo largo de estas los controladores logran

llevar al sistema a la condición de operación deseada, en dos de las tres condiciones

iniciales pero para 60º el controlador cuyo valor de R es 1 no logra controlar el sistema.

En la figura 7.27 se muestra cual fue el comportamiento del voltaje aplicado para las

condiciones de 20º y 59º de ambos controladores, siendo evidente la supresión de la

señal conmutada que antes se presentaba.

Figura 7.24��Controlador CMD con corrección de Chattering para ángulo =20º

��

Page 165: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 7.25�CMD con corrección de Chattering para ángulo =59º

��Figura 7.26 CMD con corrección de Chattering para ángulo =60º

Page 166: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 7.27 Señal de voltaje para controlador CMD con corrección

��

7.4.1.3. Swing Up. En la figura 7.28 se muestra la implementación de la ley de

control para realizar el control del balanceo (Swing up). Después de crear la ley de control

se construye el subsistema para luego ser montado en el esquema de control del swing

up ilustrado en la figura 7.29.

Como es obvio las condiciones iniciales para el swing up son posición del Carro (x): 0m. y

Posición Angular (�): 180º, en las figuras 7.30 a 7.33 se ilustra el comportamiento del

controlador swing _up, es claro como la posición angular del péndulo comienza a crecer

como una función sinusoidal hasta que esta cerca de la zona lineal (aproximadamente

350º), que es el objetivo de este controlador. Es importante observar que en la grafica

7.32 se ilustra la velocidad angular del péndulo y se observa como esta en el instante de

tiempo cuando la posición está cerca de la zona lineal (|�|< 20º), su valor es

aproximadamente 2.5 Rad/seg., lo que implica que su velocidad es demasiado grande

para que un controlador lineal pueda actuar sin inconvenientes, esto de nuevo reafirma la

Page 167: Diseño y Simulación de un sistema mecánico subactuado

� ���

necesidad de utilizar un zona muerta si se va a utilizar un regulador lineal en la zona

superior.

Figura 7.28: Montaje de la ley de control del Swing Up

Figura 7.29: Esquema completo del Swing Up

Page 168: Diseño y Simulación de un sistema mecánico subactuado

� ���

Figura 7.30: Posición del Carro (x) (Metros)

Figura 7.31: Posición Angular (Grados)

� �

�Figura 7.32: Velocidad angular del péndulo (rad/seg). �

Page 169: Diseño y Simulación de un sistema mecánico subactuado

� ����

Figura 7.33: Esfuerzo de Control (Voltios)

La figura 7.33 ilustra el voltaje aplicado al sistema durante el controlador de swing up, es

interesante ver como solo en una primera etapa se alcanza el valor de 2,4 V, y luego a

medida que el sistema va ganando energía es necesario aplicar menos energía al sistema

hasta que se llega a una zona en la que las grafica es simétrica, y la posición angular

crece sin control.

7.4.1.4. Esquema de Control Péndulo Invertido. En la figura 7.34 se ilustra el

sistema de control completo implementado para el control del péndulo invertido simple, en

esta figura se muestra el acople de los dos controladores implementados anteriormente,

en conjunto con la zona muerta cuya implementación se hace por medio del bloque

“switche”, el cual es mostrado en la figura 7.35, y básicamente consiste en controlar que

tipo de controlador va a actuar sobre la planta dependiendo de la posición angular, y en la

zona comprendida entre 30º y 35º se aplica cero al sistema.

La figura 7.36 muestra el movimiento del carro, el cual es oscilante para provocar el

consecuente movimiento de balanceo necesario en el péndulo para que este se levante

desde su posición colgante, y al final antes de los 10 segundos la acción del controlador

lineal hace que su posición tienda a cero grados.

Page 170: Diseño y Simulación de un sistema mecánico subactuado

� ���

Figura 7.34: Esquema Final para Control del Péndulo Simple

Figura 7.35: Esquema del Bloque Switche para 30 y 35 grados

Page 171: Diseño y Simulación de un sistema mecánico subactuado

� ���

Figura 7.36: Posición del Carro con el Control Final (Metros)

Figura 7.37: Posición Angular (�) (Grados)

Page 172: Diseño y Simulación de un sistema mecánico subactuado

� ���

En la figura 7.37 se pueden distinguir dos zonas comprendidas entre 0 y 8 segundos y de

8 segundos en adelante. En la primera zona el péndulo se balancea y cambia su posición

hasta estar cerca de la zona muerta luego entra en la segunda zona que es donde actúa

el regulador, y el sistema es rápidamente llevado a la posición de equilibrio inestable,

manteniéndolo en esa posición.

En la grafica del esfuerzo de control se muestra todo el comportamiento de la señal de

voltaje, siendo clara la aplicación del valor 0 Voltios entre 8 y 9 segundos.

Figura 7.38: Esfuerzo de Control (Voltios)

Como resultados de esta fase de simulación se observa que dentro de las limitaciones de

voltaje y de carrera efectiva para el carro del péndulo, los controladores diseñados

obtienen la meta final de control y demuestran su efectividad, quedando solo pendiente su

implementación en el sistema físico.

En el anexo D se expone el código en MatlabTM utilizado en esta fase de simulación.

Page 173: Diseño y Simulación de un sistema mecánico subactuado

� ���

7.4.2. Péndulo Invertido Doble. En esta sección se expone la implementación y

simulación del controlador diseñado para el péndulo invertido doble en la zona lineal. La

figura 7.39 ilustra la implementación del sistema de control para el sistema péndulo

invertido doble realizada en Simulink TM v 6.5, en donde al igual que para el caso péndulo

simple se adicionado al modelo un saturador en la señal de control debido a las

limitaciones expuestas anteriormente.

Figura 7.39: Implementación del Controlador en Simulink

En esta simulación de al igual que en las del péndulo simple se ha supuesto que se tienen

todos los estados disponibles para su utilización, aunque en una implementación real,

estos serán derivados de la señal enviada por los sensores de posición que se tienen.

A continuación se presentan los resultados obtenidos de la simulación en la que se han

variado las condiciones iniciales y se ha observado el desempeño del controlador y la

respuesta del sistema.

• Prueba 1: Condiciones iniciales: ángulo Péndulo 1 = 20º, ángulo péndulo 2 = 0º,

las otras cuatro variables =0

Las figura 7.40 ilustra los resultados de esta prueba, en ellas se observa como la

posición del carro parte de cero, hace un movimiento brusco moviéndose a 50 cm del

Page 174: Diseño y Simulación de un sistema mecánico subactuado

� ���

origen y luego regresa lentamente hacia cero en un tiempo de 8 segundos. El ángulo

del péndulo 1 crece hasta 30º y cuando el carro cambia de dirección bruscamente

este comienza a decrecer hasta -20º haciendo estos dos cambios en 0.25 s

aproximadamente, para luego tender a cero en un tiempo de 0.9 segundos, como

consecuencia de estos movimientos el péndulo 2 oscila ente -10º y 15º para luego

llegar a cero, lo que es claro es que el sistema hace que la dinámica de la planta

tienda a la de un péndulo simple para luego llega r a su control.

Figura 7.40: Graficas de la prueba 1

� El sistema primero controla la posición de los péndulos para finalmente llevar el carro al

origen.

• Prueba 2: Condiciones iniciales: ángulo péndulo1 = 15º, ángulo péndulo2 = 10º,

las otras cuatro variables =0

Page 175: Diseño y Simulación de un sistema mecánico subactuado

� ���

Los resultados de esta prueba se exponen en la figura 7.41 y en ella el sistema tiene

un comportamiento similar al de la prueba anterior en la que primero se controla la

posición del péndulo 2 y la del péndulo 1 para luego llevar el carro hacia el origen

Figura 7.41: Graficas de la Prueba 2 �

El voltaje que se debe aplicar al motor en esta prueba se visualiza en la grafica 7.43,

donde se observa que en dos ocasiones se alcanza el valor de saturación de +/-24V, pero

como la energía que necesita el sistema se iguala rápidamente a la que la estrategia de

control necesita imprimir al sistema finalmente el control es exitoso

• Prueba 3: Condiciones iniciales: ángulo péndulo1 = 0º, ángulo péndulo2 = 25º, las

otras cuatro variables =0

Los resultados de esta prueba se visualizan en la grafica 7.42 donde una vez más el

orden de estabilización de las variables es angulo2, angulo1 y posición del carro

respectivamente. Es de anotar que el ángulo 2 esta en una región considerada por fuera

Page 176: Diseño y Simulación de un sistema mecánico subactuado

� ���

de la zona lineal (Mayor a 20º), y sin embargo el control del sistema se logra sin

problemas.

Figura 7.42: Graficas de la prueba 3

� La grafica 7.43 ilustra el voltaje aplicado al motor para las tres pruebas anteriores, donde

en varias ocasiones se alcanza el máximo valor permitido para el sistema.

Page 177: Diseño y Simulación de un sistema mecánico subactuado

� ��

Figura 7.43: Esfuerzo de Control para las tres pruebas �

• Prueba 4: Condiciones iniciales: ángulo péndulo1 = 21º, ángulo péndulo2 = 0º, las

otras cuatro variables =0.

En la figura 7.44 es claro como el carro se mueva con demasiada velocidad para

estabilizar el péndulo 1 lo que hace que este invierta su dirección, pero con tal intensidad

que el péndulo 2 crece igualmente sin control de modo que el sistema entra a una región

dentro del espacio de estados donde para el controlador implementado es imposible

controlarlo así que la carrera crece sin control y los ángulos igualmente. En el prototipo

físico y virtual del UMS este fenómeno de velocidades altas y gran número de vueltas de

los péndulos no se puede apreciar debido a las limitaciones físicas de la carrera.

Page 178: Diseño y Simulación de un sistema mecánico subactuado

� ��

Figura 7.44: Resultados prueba 4

Page 179: Diseño y Simulación de un sistema mecánico subactuado

� ���

8. PROTOTIPO VIRTUAL DIRECTX

Como parte de los objetivos planteados para este trabajo de investigación se menciona la

construcción de un prototipo virtual en 3D que simulará las características físicas del

prototipo real donde la dinámica del sistema estará gobernada por las ecuaciones

diferenciales que definen el movimiento del sistema, y los controladores diseñados en la

etapa de control del sistema serán probados. Como desarrollo de este capitulo se

mencionará la metodología seguida para el desarrollo del software que compone esta

parte del proyecto, mencionando sus principales componentes y su interacción interna,

además en el anexo E se muestra un manual de usuario del sistema en el que se

exploran las diferentes características que tiene el prototipo virtual.

En una primera fase se establecen los requerimientos del sistema, para diseñar los casos

de uso que se tienen y su respectiva descripción, más adelante se expone la fase de

implementación y las principales decisiones tenidas en cuenta que gobiernan de una u

otra manera la respuesta del sistema.

8.1. REQUERIMIENTOS DEL SISTEMA. �El prototipo virtual a diseñar debe ser un software que permita la simulación de la

respuesta de las plantas péndulo invertido simple y doble, así como la acción de los

controladores diseñados en el capitulo 7, de modo que se establezcan las restricciones

que se tendrían en una planta real. Los requerimientos generales del sistema se exponen

en la tabla 8.1.

Page 180: Diseño y Simulación de un sistema mecánico subactuado

� ���

Tabla 8-1 Requerimientos del sistema

Requerimiento Descripción

R1 El sistema de estar en la capacidad de

Permitir al usuario seleccionar el tipo de configuración que se desea trabajar con el UMS

R2 … Generar un ambiente gráfico en el que se visualice un prototipo 3D de la configuración del UMS seleccionada

R3 … Permitir al usuario establecer las condiciones iniciales

R4 … Permitir al usuario simular la respuesta natural del sistema

R5 … Permitir al usuario simular la respuesta ante la acción de un controlador

R6 … Permitir al usuario seleccionar y cargar varios controladores para determinado sistema en caso de que para este se hayan diseñado

R7 … Permitir al usuario detener la simulación en cualquier momento

R8 … Permitir al usuario cambiar parámetros de los controladores que están cargados por defecto.

R9 …

Permitir al usuario cambiar parámetros de la dinámica del sistema para observar su comportamiento. (Longitudes de péndulos, carrera efectiva, y coeficientes de rozamiento)

R10 … Permitir manipulación grafica sobre el prototipo 3D (opciones de zoom, rotar, y trasladar el prototipo en la pantalla)

R11 … Reestablecer los valores que tiene el sistema por defecto, en caso de que se solicite por parte del usuario

R12 … Permitir la visualización de graficas de las variables del sistema en el momento en que ocurre la simulación

R13 … Permitir la visualización de las graficas de las variables durante toda la simulación

R14 … Establecer restricciones sobre la planta de modo que el sistema tenga un comportamiento similar al del prototipo real del UMS

R15 … Permitir salir en cualquier momento del tipo de configuración escogida y seleccionar el otro

R16 … Permitir visualizar los valores actuales de las variables y los parámetros del sistema

R17 … Permitir establecer una referencia para el carro del péndulo

R18 … Cerrar la aplicación

Page 181: Diseño y Simulación de un sistema mecánico subactuado

� ���

8.2. CASOS DE USO. �

8.2.1. Diagrama de casos de uso. La figura 8.1 hace una ilustración de los casos de

uso desarrollados para el sistema del prototipo virtual del UMS.

Figura 8.1: Diagrama de Casos de Uso

Page 182: Diseño y Simulación de un sistema mecánico subactuado

� ���

8.2.2. Descripción de los casos de uso. Las tablas 8.2 a 8.7 describen los casos de

uso planteados en la figura 8.1 para el sistema a desarrollar.

Tabla 8-2�Caso de uso seleccionar configuración�Nombre SELECCIONAR CONFIGURACIÓN

Alias

Referencias R1 - R6 - R18-R16

Función El caso de uso permite al usuario escoger el tipo de configuración con la que se desea trabajar o salir definitivamente de la aplicación

Evento Respuesta del sistema

1. Se selecciona el tipo de configuración con la que se desea trabajar

2. El sistema inicializa las constantes, y carga los valores necesarios y lanza el caso de uso generar configuración

3. Finaliza el caso de uso

Flujo de eventos

Flujos alterno 1-2. Se selecciona la opción salir El sistema cierra la aplicación

Page 183: Diseño y Simulación de un sistema mecánico subactuado

� ���

Tabla 8-3 Caso de uso generar configuración Nombre GENERAR CONFIGURACIÓN

Alias Referencias R2 - R15 CU. SELECCIONAR CONFIGURACIÓN

Función El caso de uso genera la interfaz grafica de acuerdo al la inicialización de las constantes cargadas y la configuración escogida, a fin de que se pueda acceder a las características deseadas del sistema

Evento Respuesta del sistema

1. Se cargan en la memoria los valores de las constantes e interfaz grafica

2.De acuerdo al valor de las constantes se cargan los valores del sistema y se generan los botones y comandos necesarios de acuerdo al tipo de configuración

3. Se cargan los valores de constantes graficas del sistema

4,El Caso de uso Prototipo genera el prototipo 3D del sistema y lo muestra en pantalla

Flujo de eventos

4. Finaliza el caso de uso 3 - 4, No se puede inicializar Prototipo 3D

Se Muestra Error de resolución al usuario Flujos

alterno Se cierra la aplicación

Tabla 8-4�Caso de uso graficar variables Nombre GRAFICAR VARIABLES

Alias Referencias R2 - R10 - R14 Caso de uso Simulación

Función Grafica los valores de la variables del sistema que el usuario defina

Evento Respuesta del sistema Flujo de eventos 1. hay un cambio en las variables del

sistema 2.Se utiliza una interfaz grafica para graficar las variables con respecto al tiempo

1-2. El usuario desea ver alguna de las variables en tiempo real

SE hacen visibles las variables que el usuario elija

Flujos alterno 1-2 El usuario desea el

comportamiento de las variables a lo largo de toda la simulación

Se hace visible la interfaz que grafica muestra las variables del sistema en tiempo real

Page 184: Diseño y Simulación de un sistema mecánico subactuado

� ���

Tabla 8-5 Caso de uso establecer condiciones Nombre ESTABLECER CONDICIONES

Referencias R3 - R4 - R5 - R9 - R11- R8-R17

Función El caso de uso establece las condiciones iniciales del sistema seleccionado, incluyendo parámetros del sistema y valores de variables

Evento Respuesta del sistema

1. El usuario cambia alguno de los valores que varia alguno de los parámetros del sistema, o las condiciones iniciales de la simulación

2.El sistema lee el valor ingresado y se asigna a la variable correcta

3. Se repiten pasos 1 y 2 tantas veces como se ingresen variables

Flujo de eventos

4. Se selecciona aceptar 5. Se actualizan las variables 6. Finaliza el caso de uso

Flujos alternos 1 -2

Si el valor no es numérico se establece "0" como condición inicial. Si el numero esta fuera del rango se avisa al usuario y se establece cero en la condición inicial

�Tabla 8-6 Caso de uso prototipo �

Nombre PROTOTIPO

Alias Referencias R12 - R13 Caso de uso simulación y generar configuración

Función Visualiza en pantalla el prototipo 3D del sistema con las condiciones que se requieren

Evento Respuesta del sistema

1.Se recibe el movimiento que se desea graficar

2.Se utilizan funciones de directx para graficar el movimiento del sistema

Flujo de eventos

3. Finaliza el caso de uso

� �

Page 185: Diseño y Simulación de un sistema mecánico subactuado

� ���

Tabla 8-7 Caso de uso simulación �

Nombre SIMULACIÓN

Alias Referencias R4 - R5- R6- R7 Caso de uso Establecer Condiciones

Función Inicia La simulación del sistema seleccionado, calculando lo valores en el tiempo de muestreo siguiente, usando los casos de uso prototipo y graficar

Evento Respuesta del sistema

1. El usuario da la orden de iniciar simulación

2.El sistema calcula el valor de las variables en el tiempo de muestreo siguiente

3.Se cambian las variables asignadas al modelo grafico

4. El caso de uso Prototipo 3D Grafica el nuevo punto de simulación. De la misma manera el caso de uso graficar Grafica las variables y hace las respectivos cálculos para guardar en memoria los datos de toda la simulación

Flujo de eventos

5.Finaliza el caso de uso

Flujos alterno

1-2. El usuario quiere detener la simulación Finaliza el caso de uso

8.2.3. Implementación del software. Hasta el momento la metodología seguida para el

diseño del sistema ha sido orientada a objetos, pero en la implementación del sistema se

diseño en un programa orientado a eventos como lo es Visual Basic, de modo que los

casos de uso que se tienen hasta el momento, se utilizan para diseñar las opciones de los

formularios y el flujo de información en el programa.

La figura 8.2 ilustra la forma como se implemento la simulación en Visual Basic, en ella El

bloque X tiene el valor de las variables de estado del sistema (X, tetha1, tetha2 y sus

respectivas derivadas), las cuales son variadas si se cambian las condiciones iniciales del

sistema y se espera que se active un timer cuya configuración de interrupción esta a

10ms (que es el mismo tamaño de paso que se utiliza en las simulaciones de matlab),

cuando se selecciona activa simulación se activa el timer y con base a la estrategia de

control establecida en el controlador se calcula el valor de la entrada de control que en

Page 186: Diseño y Simulación de un sistema mecánico subactuado

� ���

conjunto con los valores de las variables del sistema ingresan al bloque donde están

descritas las ecuaciones diferenciales que describen la dinámica del sistema que se

resuelven por medio de un algoritmo de Runge Kutta orden 4, el cual calcula el valor de

las variables en el tiempo de muestreo siguiente, que se escriben en el espacio de

memoria asignado a ellas, y en la próxima interrupción del timer se repite la misma

secuencia, grafica en el prototipo 3d y en las funciones para visualizar las variables

Figura 8.2: Implementacion del software

Page 187: Diseño y Simulación de un sistema mecánico subactuado

� ��

El software implementado cuyo código se expone en el anexo D utiliza el algoritmo de

Runge_Kutta que se expone a continuación:

( )

( )

( ) ( ) ( )4321

34

23

12

2261

22

22

....��*��

*�.�*�.

*�

.�*�.

*�

.�*�.

��*�

�����

��

++++=

++=

��

���

� ++=

��

���

� ++=

=

=

3

� �

8.3. RESULTADOS OBTENIDOS

El prototipo diseñado con cuyo manual de usuario se coloca en el anexo E, cumple a

cabalidad con los objetivos planteados y permite visualizar claramente la respuesta del

sistema, en condiciones muy aproximadas a las que responderá la planta real.

Es importante señalar que es una primera aproximación y que en el transcurso del

desarrollo del presente trabajo se espera adicionar características de funcionamiento tales

como poder realizar control desde el mismo prototipo virtual sobre la planta real, para ello

se utilizara la tarjeta de adquisición de datos y las librerías para su utilización a través de

Visual Basic que viene con la misma.

Se adiciona a este trabajo un instalador del programa llamado “Virtual UMS” el cual

permite tener acceso al prototipo virtual aquí mencionado.

Page 188: Diseño y Simulación de un sistema mecánico subactuado

� ��

9. CONCLUSIONES

Se logro el objetivo de diseñar y controlar una planta en donde se puede tener distintas

configuraciones como péndulo invertido traslacional simple y doble, con todos sus

componentes mecánicos y electrónicos de modo que teóricamente se pueda implementar

diferentes estrategias de control.

Se desarrollo plenamente un prototipo virtual 3D bajo Visual Basic, el cuál permite realizar

las pruebas de las estrategias de control diseñadas para cada una de las configuraciones

del sistema, permitiendo variar parámetros tanto de controladores como del sistema físico,

dando esto el valor agregado de visualizar los limites y la robustez de los controladores

diseñados.

Las diferentes estrategias de control diseñadas para el sistema péndulo invertido simple y

doble fueron simuladas plenamente en Matlab y en el prototipo virtual obteniendo

resultados similares, y controlando el sistema por medio de diferentes estrategias de

control.

El diseño del sistema permite cambiar de configuración péndulo simple a péndulo doble

con pocos cambios en la estructura física de modo que se obtiene un sistema versátil

El controlador por realimentación del estado por medio de control óptimo LQR controla

eficazmente el sistema péndulo invertido simple más allá de la zona lineal, con la carrera

máxima que tiene el futuro sistema físico.

El controlador por medio de modos deslizantes diseñado logro un mayor rango en la

posición del ángulo, pudiendo controlar el sistema para ángulos de inclinación del péndulo

mayores a 65º si la superficie de deslizamiento es S; pero para esto necesita de una

carrera más larga que la que tiene disponible en el sistema físico.

Page 189: Diseño y Simulación de un sistema mecánico subactuado

� ���

El controlador por medio de modos deslizantes con corrección de oscilaciones de alta

frecuencia mejora la respuesta del sistema si se hace seguir una referencia al carro

cuando el sistema se ha estabilizado en la posición superior, en comparación con los

controladores CMD de señales conmutadas.

Si en el controlador por modos deslizantes el factor alpha se varia se logra que la

superficie de desplazamiento (S*), logre niveles de respuesta similares a los de la

superficie de desplazamiento S.�

Page 190: Diseño y Simulación de un sistema mecánico subactuado

� ����

10. FUTURAS MEJORAS

En el momento de la entrega del presente informe, el sistema mecánico del proyecto esta

en construcción, y el actuador esta en proceso de compra por parte de la universidad.

Los controladores para el swing up del péndulo invertido doble se encuentran en fase de

desarrollo donde se ha logrado la aproximación a la zona lineal pero debido a la falta de

repetibilidad en los resultados se decidió dejarlos por fuera del presente informe.

En un desarrollo futuro a parte de la construcción del sistema mecánico, es posible con

pocos cambios en el sistema mecánico poder construir la planta péndulo invertido dual, en

la que dos péndulos se colocan sobre el carro y no de forma serial como el que se planteo

para este trabajo de investigación.

El desarrollo de estrategias de control diferentes a las estudiadas hasta el momento como

lógica difusa, redes neuronales, algoritmos genéticos y demás técnicas de control no

lineal.

Como se planteo en el desarrollo del prototipo virtual con la implementación del prototipo

físico, por medio de la tarjeta de adquisición de datos se podría implementar los

controladores desde el programa virtual UMS.

Page 191: Diseño y Simulación de un sistema mecánico subactuado

� ����

BIBLIOGRAFÍA

ASTROM, K y FURUTA, K. Swining Up A Pendulum By Energy Control [en línea]. San

Francisco: IFAC World Congreso, 1996. [Consultado Agosto, 2005] Disponible en Internet:

http://www.control.lth.se/~kja/furutapaper.pdf . 15 p.

AVELLO, A., RUBI, J. y RUBIO, A. “Swing-up Control Problem for a Self-Erecting Double

Inverted Pendulum” [en linea]. San Sebastián, 2002. [Consultado en Marzo de 2005].

Disponible en Internet: http://www.ccse.kfupm.edu.sa/~selferik/download/00997871p5.pdf

7 p.

BUGEJA, Marvin. Non-Linear Swing-Up and Stabilizing Control of an Inverted Pendulum

System [en linea]. Ljubljana: Faculty of Engineering University of Malta, 2003. [consultado

03 de septiembre, 2005]. Disponible en internet http://

www.sps.ele.tue.nl/members/m.j.bastiaans/spc/bugeja.pdf . 5 p.

COWAN, Jeffrey; ERICKSON, Chris y ZLATANOVIC, Andrej. “Computer Based State

Feedback Control of a Double Inverted Pendulum”, 2004. 79 p. Trabajo de Grado

(ingeniero electrico). Lakehead University. Facultad de Ingenierias.

FRIDMAN, Leonid. Notas del curso Introducción al control por Modos deslizantes [en

linea]. Mexico: Autonomous University of Mexico, 2005. [consultado 05 de Diciembre,

2005]. Disponible en Internet: http://verona.fi-p.unam.mx/~lfridmn/archivos.html.

GAFVERT, M Modeling the furuta Pendulum. [en linea]. Lund: Lund institute of

Technology, 1998. [Consultado Noviembre, 2004] Disponible en internet:

http://web.njit.edu/~sxn5261/gafvert_modelling_furuta.pdf. 10 p.

Page 192: Diseño y Simulación de un sistema mecánico subactuado

� ����

MCGILVRAY, Stephen Self-Erecting Inverted Pendulum: Swing up and Stabilization

Control [en linea]. Thunder Bay: Lakehead University, 2005 [Consultado 06 de Julio,

2005]. Disponible en internet http://www.lakeheadu.ca. 29 p.

Mechanical Product Selection Catalog. [en linea] Chambersburg: TB Woods, 2005

[Consultado Septiembre, 2005]. Disponible en Internet: http://www.tbwoods.com. 300 p.

MENDEZ, P. Arnaldo. Notas de clase Diseño mecatrónico 1 y 2 [en linea]: Santiago de

Cali: Universidad Autonoma de Occidente, 2005. [Consultado 03 de junio, 2005].

Disponible en Internet: http://www.uao.edu.co.

MURILLO, O Jaime. Amplificadores operacionales. Santiago de Cali: Instituto tecnológico

municipal Antonio José Camacho, 2002. 292 p.

NORTON, Robert L. Diseño de Máquinas. México: Prentice Hall, 1999. 1048 p.

OGATA, Katsuhiko. Ingeniería de Control Moderna. 3 ed. México: Pearson, 1998. 997 p.

OLFATI, Reza Saber. Nonlinear Control of Underactuated Mechanical Systems with

Application to Robotics and Aerospace Vehicles. Cambriidge Massachusetts, 2001. 307 p.

Trabajo de grado (Doctorado de filosofia en ingeniería electrica y ciencias de la

computación). Massachusetts Institute of Technology. Department of Electrical

Engineering and Computer Science.

OSORIO, Carlos. Tutorial de DirectX Para el Desarrollo de Aplicaciones 3D [en linea].

Santiago de Cali: Universidad Autónoma de Occidente, 2004. [consultado 31 de Agosto,

2005]. Disponible en Internet: http://www.uao.edu.co. 40 p.

POPOVIC, Dobrivoje; VLACIC, Ljubo. Mechatronics in Engineering Design and Product

Development. New York: Marcel Dekker, Inc., 1999. 615 p.

Page 193: Diseño y Simulación de un sistema mecánico subactuado

� ����

RAFIMANZELAT, M; YAZDANPANAH M. A Novel Low Chattering Sliding Mode

Controller [en linea]. Tehran: Control & Intelligent Processing Center of Excellence.

University of Tehran, 2000 [consultado 01 de Octubre ,2005]. Disponible en Internet:

ascc2004.ee.unimelb.edu.au/conferences/ascc2004/proceedings/papers/P283.pdf. 6 p.

SLOTINE J.J; Li W., Applied Nonlinear Control. Englewood Cliffs, NJ: Prentice-Hall, 1991.

461 p.

STIMAC, Andrew K. Stand up and Stabilization of the Inverted Pendulum. Cambridge,

1999. 62 p. Trabajo de grado (Bachelor of science). Massachusetts Institute of

Technology. Department of Mechanical Engineering.

ULRICH, Karl; EPPINGER, Steven D. Product Design and Development. 2 ed. Boston:

McGraw Hill, 2000. 358 p.

ZHONG, Wei; RÖCK, Helmut. Energy and Passivity Based Control of the Doyble Invertid

Pendulum on a Cart [en linea]. Mexico: IEEE internacional conference of control

applications, 2001. [Consultado 03 enero, 2005]. Disponible en Internet:

http://www.tf.unikiel.de/etech/ART/Publications/IEEE_CCA_ISIC_Zhong.pdf. 6 p.

Page 194: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO A: DIAGRAMAS DE ENSAMBLE Y PLANOS MECANICOS �

Page 195: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO A 1. ENSAMBLE SUBCONJUNTO ESTRUCTURA ��

Page 196: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO A 2: ENSAMBLE SUBCONJUNTO MOTOR - SENSOR �

Page 197: Diseño y Simulación de un sistema mecánico subactuado

� ���

ANEXO A 3. ENSAMBLE SUBCONJUNTO TENSOR

Page 198: Diseño y Simulación de un sistema mecánico subactuado

� ���

ANEXO A: 4. ENSAMBLE SUBCONJUNTO CARRO �

Page 199: Diseño y Simulación de un sistema mecánico subactuado

� ����

�ANEXO A 5. ENSAMBLE SUBCONJUNTO PÉNDULOS

Page 200: Diseño y Simulación de un sistema mecánico subactuado

� ����

�ANEXO A 6

Page 201: Diseño y Simulación de un sistema mecánico subactuado

� ����

�ANEXO A 7

Page 202: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO A 8 �

Page 203: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO A 9 �

Page 204: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO A 10 �

Page 205: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO A 11 �

Page 206: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO A 12

Page 207: Diseño y Simulación de un sistema mecánico subactuado

� ���

ANEXO A 13

Page 208: Diseño y Simulación de un sistema mecánico subactuado

� ���

ANEXO A 14 �

Page 209: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO A 15 �

Page 210: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO A 16 �

Page 211: Diseño y Simulación de un sistema mecánico subactuado

� ����

�ANEXO A 17

Page 212: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 17

Page 213: Diseño y Simulación de un sistema mecánico subactuado

� ����

�ANEXO A 18

Page 214: Diseño y Simulación de un sistema mecánico subactuado

� ����

�ANEXO A 19

Page 215: Diseño y Simulación de un sistema mecánico subactuado

� ����

�ANEXO A 20

Page 216: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 21

Page 217: Diseño y Simulación de un sistema mecánico subactuado

� ���

� ANEXO A 22

Page 218: Diseño y Simulación de un sistema mecánico subactuado

� ���

� ANEXO A 23

Page 219: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 24

Page 220: Diseño y Simulación de un sistema mecánico subactuado

� ����

�ANEXO A 25

Page 221: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 26

Page 222: Diseño y Simulación de un sistema mecánico subactuado

� ����

�ANEXO A 27

Page 223: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 28

Page 224: Diseño y Simulación de un sistema mecánico subactuado

� ����

�ANEXO A 29

Page 225: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 30

Page 226: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 31

Page 227: Diseño y Simulación de un sistema mecánico subactuado

� ���

�ANEXO A 32

Page 228: Diseño y Simulación de un sistema mecánico subactuado

� ���

� ANEXO A 33

Page 229: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 34

Page 230: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 35

Page 231: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 36

Page 232: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 37

Page 233: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 38

Page 234: Diseño y Simulación de un sistema mecánico subactuado

� ����

�ANEXO A 39

Page 235: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 40

Page 236: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 41

Page 237: Diseño y Simulación de un sistema mecánico subactuado

� ���

� ANEXO A 42

Page 238: Diseño y Simulación de un sistema mecánico subactuado

� ���

ANEXO A 43

Page 239: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO A 44

Page 240: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 45

Page 241: Diseño y Simulación de un sistema mecánico subactuado

� ����

� ANEXO A 46

Page 242: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO A 47

Page 243: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO B: INFORME IFAC

Page 244: Diseño y Simulación de un sistema mecánico subactuado

� ����

��

��

�������������� �������������������������������� ����� �����������

���� !"#!� !��$%!#��$&�'"(���)�"���*"$"�!��*$%!��+(��#,$*��!&-"��!*$� +����

���������&�0�'�1��&0��02��������30,3040�5&0�&(�6#&'��50

�'������((&7��8*��&�(3��90����&7�8*��&�(3��90���&��&�8*��&�(3��0

'��4���� 5�� ����� �6/�/7�� � ��� 86�����/� %��� 6��4%�/#��� #�� %/� �"�4%/�"9�� *� ����6�%� #�� 8:�#4%���

"�;�6�"#��� �6/�%/�"��/%��� #��%��� *� �"�8%�� �<�� *� <�=� � #��#�� ��� #��/66�%%/#�� 4�� ����>/6�� ?4��

�4���6/�/%�4�4/6"��4��86����"8��;"6�4/%��=�?4��8�6�"���;"�4/%"@/6�%/�6��84���/�#�%��"����/�/����

#"��"���������6�%/#�6����5��/������"����/���%���7��";��������/�"%"@/6�%/�8%/��/����%/�8��"�"9��#��

�?4"%"�6"�� "����/�%��/�8/6�"6�#�%���;"�"�����#�%��/66���</6/��%�<�����#��/66�%%/�4�/� �:��"�/�#��

����6�%�?4��%�;/��/��%��"����/�#��#���4�8��"�"9����%�/����A/��/�%/�8��"�"9����8�6/#/ �4�"%"@/�#��

�:��"�/��#���>"���48�8/6/�/��6�/6��%��"����/�/�%/�@��/�%"��/% �*�����6�%�8�6�6�/%"����/�"9��#�%�

���/#����#"/�����B'�/�C����������6�%�8�6���#���#��%"@/�����8/6/����/�"%"@/6��%�8:�#4%���D���

�%� <�=� ��� �4���6/�� %��� 6��4%�/#��� � #�� #��� ����6�%/#�6��� 8�6� 6�/%"����/�"9�� #�%� ���/#�� ��� %/�

@��/�%"��/%���

&���6/�� ��A"��8/8�6�86��������A��6��4%���/��4���A���"�4%/�"���/�#�����6�%����"�;�6��#�8��#4%4���

��"�8%��8��#4%4���<�/�#�#�4�%��8��#4%4��=�<��/�#��A��#�;�%�8������������>/6��>A�6��/��=�

86����*8���/����������/�#��A��4��6��/���"�4%/����A���"���6��8��#�����A���*�����������A�����A�

�*�������A��/"������A��86��%���"���A����/�"%"@/�"�������A��4���/�%���?4"%"�6"4��8�"����E�6��A���<�

/����A�"?4��>A�6���A��8��#4%4��"��#6";���6���#�>�6"�A�����486"�A��4�"����>"���48 ��B'�/�#�

�%"#"�����#�������6�%%�6���E�6��A��=�<��A��6��4%�������>���B'�����6�%%�6��/6��86������#��

F�*>�6#� � <:�#4%�� "�;�6�"#� � �>"���48 � �B' � ��#��� #��%"@/���� � ="6���� G � %�>� �A/���6"�� ��

86����"8���;"6�4/% ��"����/����H�"����4�/��4/#��

Page 245: Diseño y Simulación de un sistema mecánico subactuado

� ����

.+� ������� �/���

5%� 8:�#4%�� "�;�6�"#�� ��� 4�� �"����/� �%H�"��� ���

86��%��/�� #�� ����6�% � *� �4� 86�89�"��� ���

���/�"%"@/6%������4�84����#���?4"%"�6"��"����/�%���5%�

�"����/�8:�#4%�� "�;�6�"#��#��%�����4�/�������"9��

#�%�/���6"�6� �*��%���7��";��#������6�%�/%� "�4/%�?4��

��� �%� 8:�#4%�� �"�8%�� ��� ���/�"%"@/6� /��/�� �/66/��

��� %/� 8��"�"9�� ;�6�"�/%� �"���6/�� ��� �/��"���� %/�

8��"�"9�� #���/#/� ��� �%� �/66��� �/� #"�"�4%�/#� ���

����6�%/6��%�8:�#4%��"�;�6�"#��#��%�����?4������6/�/�

#�� 4�� �"����/� � �/9�"��� 8�6� �/�46/%�@/ � %�� ?4��

"�#"�/� ?4�� /���� 8�?4�I��� �/��"��� ��� %/��

���#"�"����� "�"�"/%�� � %/� 6��84���/� /� %�� %/6��� #�%�

�"��8�� ;/6C/� �4�6��������� �4���� ���

���6��/#/������#"�C�"%�����6�%/6��%��"����/���"����

��� 8��"�%�� 86�#��"6� /��6�/#/������ �%� ��;"�"�����

#��%���8:�#4%����

�����"����/��8:�#4%���"�8%��*�#��%��A/����8/6���

#�� 4�/� �%/��� #�� �"����/�� ���H�"���� %%/�/#��

�"����/�� ���H�"���� �4�/��4/#�� � ��� %��� ?4�� ���

�4���/�� ���� ������ ���6/#/�� ?4�� �6/#��� #��

%"��6�/# �*��%�����6�%�#���"����/��#�����/��/�46/%�@/�

��� /��4/%������ 4�� �/�8�� �4*� /��";�� #��

"�;���"�/�"9� � ���6���#�� 8�6� �4�� /8%"�/�"����� ���

6��9�"�/ � ;�AC�4%��� /�6���8/�"/%��� *� ;�AC�4%���

�/6"����� ���� �7��8%��� #�� �"����/�� ���H�"����

�4�/��4/#��� "��%4*��� 6������ �9;"%�� � 6������

�/�"�/���� � �"����/�� #�� %������"9� �

/�6�#��%"@/#�6�� ��/�:%"�������6����6����

0+ ��� ��� �/�����������������

J�/� 6�86�����/�"9�� #�%� �"����/� 8:�#4%�� #��%�� ���

86�����/� ��� %/� �"�46/� � � �%� �4H%� ����"���� ��� #���

�/66/��/6�"�4%/#/��#"�84���/�����6��4���/66���D/#/�

�/66/�6��/����6���%�8%/���;�6�"�/%�/%6�#�#�6�#�%��7��

#�� 4�/� /6�"�4%/�"9� � #��"�"��#�� #��� �6/#��� #��

%"��6�/# � � ������ *� ����� � ?4�� ���� /6�"�4%/�"����� #���

/6�"�4%/�"����� 8/�";/�� 84��� ��� ��� /8%"�/� ��6?4��

#"6���������%%/��8�6��"��4�/��%/���#��/��4/#�6��5%�

�/66��#��"�����6���6/#��#��%"��6�/#��6/�%/�"��/%�������

/%� ��6� ���#4�"#�� /� �6/;:�� #�� 4�� �"����/� #��

�6/���"�"9�� 8�6� 4�� /��4/#�6� ?4�� %�� "�84%�/K� %��

?4�� %�� ���;"�6��� ��� �%� L�"��� �6/#�� #�� %"��6�/#�

/��4/#���5%��"����/�8:�#4%���"�8%���"����%/��"��/�

����"�46/�"9��?4���%�#��%������%/�;/6"/�"9��#��?4��

��%�� ��� �"���� 4�/� �/66/� ���6�� �%� �/66� �

���;"6�":�#�%�� ��� 4�� �"����/� ���� �� �6/#��� #��

%"��6�/#�#��%����4/%���4������/��4/#����

��

��1�*$�.����#�%��#�%��"����/�

5%���#�%���/���H�"���#��%����"����/���4��

�%/��6/#��4�/�#���%��:��#��#���/�6/�����/7��/�%/�

�48��"�"9��#��?4��%/���/66/�������4�68���6C�"#����

5%����74����#����4/�"�����#"��6���"/%������

%"��/%����6��4%�/#��#�%���#�%/#��8�6��%��:��#��#��

�/�6/����84�#����6����6"������%/��"�4"�������6�/ �

τ=++ ��� ��� �!�� ��� ��� �

=��#�� � M� 6�86�����/� �%� ;����6� #�� %/�� �4�6@/��

����6�/��������:6�"����#��%/��/�6"@�#��"��6�"/�� �

�%�;����6�#��D�6"�%%"��(�*��%�;����6�#�� %/����6�C/�

8�����"/%� N� ;/6C/�� ��� #"����"9�� *� ���8��������

#�8��#"��#���"�����6/�/�#�%��"����/�8:�#4%���"�8%��

��#�%�8:�#4%��#��%���5��%/�����"9��#��/8:�#"�������

�4���6/��%�;/%�6�#�����������8��������#�%���#�%��

8/6/��/#/��"����/��

0"� ��� ��� ����"#�6/�� %/�� �4�6@/�� #�� �6"��"9�� �%�

;����6�M���6H������%��"%4��6/��%/����4/�"�������/��

8/6/� �%� 8:�#4%�� �"�8%�� *� ����� 8/6/� �%� 8:�#4%��

#��%� �

[ ]�� 0=τ �

������ [ ]�� 00=τ �

0"� ��� �"����� ��� �4���/� %/�� �4�6@/�� #�� �6"��"9�� %/��

/���6"�6�����4/�"���������6/����6�/���� �

��/��

�����

����

Page 246: Diseño y Simulación de un sistema mecánico subactuado

� ����

���� ��

� −−=••

21

2 θτ �

����� ��

�−−−=

•••2

22

1

2

θθτ �

=��#��������%�����"�"�����#���6"��"9�����6���%��/66��

*� %/� �48�6�"�"�� #��#��8%/@/�"���� � *��� 6�86�����/�

�%�����"�"�����#���6"��"9��?4��A/*�����/#/�4�/�#��

%/��/6�"�4%/�"������

�2+� �������3���� �������������

�4��������������

5%� ����6�%� 8/6/� �%� �"����/� 8:�#4%�� "�;�6�"#��

����"���� ��� %%�;/6� %/� �/66/� ��%�/���� #��#�� �4�

8��"�"9�� #�� �?4"%"�6"�� ���/�%�� ��O��)�� A/��/� �4�

8��"�"9�� #�� �?4"%"�6"�� "����/�%�� ��O�)� � ����� ���

����"�4�� �6/�"/�� /%� ��;"�"����� �6/�%/�"��/%� #�%�

�/66��86�#4�"#�� 8�6� �%� /��4/#�6���/� ���6/���"/� #��

����6�%� "�8%�����/#/� 8/6/� %��6/6� �%� ��7��";�� #��

����6�%� ��� �/�/� ��� 4�� /�H%"�"�� A��A�� /%�

���8�6�/�"�����#"�H�"���#�%� �"����/ � ��� %/� �4H%�

��� A/�� "#���"�"�/#�� �6��� @��/�� ��� �%� ��8/�"�� #��

����6�%�#�%��"����/���/���6���@��/�����"%4��6/�����%/�

�"�46/���

P��/� #�� �/%/���� � 5��/� @��/� 6�86�����/� %/��

6��"����� #��#�� %/� %"��/%"@/�"9�� A��A/� 8/6/� �%�

��#�%�� �/���H�"��� ��� ��� ;/%"#/� � ��� #��"6� ���

6��"�����#��#���%�H��4%��#�%�8:�#4%������6��8�����

/� %/� A�6"@���/%� ���/� �4�6/� #�%� "���6;/%�� Q�

)��)�� −<< ϕ �R��5%���7��";��86"��"8/%�������/�

@��/ � �?4�� ��� %/� 8��"�"9�� "�"�"/%� #�%� 8:�#4%�� � ���

%%�;/6��%�8:�#4%��/�%/�@��/�%"��/%�����;�%��"#/#���

/��4%/6�*�%"��/%�#�%��/66��"�4/%���/���6� �8/6/�?4��

/�C�84�#/�4�"%"@/6���4������6�%/#�6�%"��/%��

</6/��%�����6�%�������/�@��/�������4���6/���4�A/��

/%��6�/�";/�����%/��"�%"��6/�C/�����4%�/#/ �*�/?4C����

"�8%�����/6H� � 4�/� �:��"�/� %%/�/#/� S-:����'�T��

86�84���/�8�6�&��6���Q�R��

���1�*$�0��=���6"8�"9��#��%/��#"��6������@��/��#��

��;"�"�����#�%�8:�#4%���

P��/� �4�6�/� �#�/#� @���� � ��#"/���� %/�� �:��"�/��

#�� 0>"��� J8� ��"������� � �%� 8:�#4%�� ��� %%�;/� /� %/�

@��/� %"��/%�8�6������;�%��"#/#���/��4%/6�*� %"��/%�

%�7/�/�� #�� ��6�� %�� ?4�� "�8%"�/� ?4�� %��� #�� %���

����6�%/#�6��� %"��/%��� "�8%�����/#��� ���

�4��"������ </6/� ��%4�"��/6� ����� 86��%��/� � ���

"�8%�����/� %/� %%/�/#/� @��/� �4�6�/� ?4�� ����"����

��� /8%"�/6%�� /%� �"����/� 4�/� ���6/#/� ��6�� ��� 4��

"���6;/%�����86��#"#�����6���%��"�/%�#��%/�@��/�#��

�/%/�����*��%� "�"�"��#��%/�@��/�%"��/% �������������

�/6/��"@/�?4���%� �"����/� ?4�#/�#���6��#�� %/� @��/�

%"��/% � ��� ���#"�"����� "�"�"/%��� /8�/�� 8/6/� ?4�� �%�

����6�%/#�6� %"��/%� 84�#/� /��4/6� ���6�� �%� �"����/�

�"�� �"��L�� "����;��"���� � 84��� %/� ���6�C/� ���6/�

?4��%%�;/��%��"����/��4/�#����6�"�/��%�����6�%/#�6�

#���>"���48����S�/��/#/T�;���"��#�� %/��6/;�#/#��

5��/� @��/� �4�6�/� ��� /74��/� ��� �"�4%/�"9�� #��

/�4�6#��/%/�#"�H�"�/�#�%��"����/�

P��/�%"��/% ��/�@��/�%"��/%����86��#��%/�@��/����

%/� �4/%� ��� A/��� %/� %"��/%"@/�"9�� 8/6/� �%� ��#�%��

�/���H�"��� Q )��)�� <<− ϕ R � *� ��� �%%/� ���

/8%"�/�� �:��"�/�� #�� ����6�%� %"��/%��� 8/6/� %%�;/6� �%�

�"����/�/� )�=ϕ �

;3<30������(&���0�&�&0(&07��&0��0�&(&����300

�/� %�*�#������6�%�86�84���/�8�6�&��6���*�E464�/�

�������Q�R�����

����������� θθ•

⋅−= ���� ,�&�' ���������������

��/��

�����

Page 247: Diseño y Simulación de un sistema mecánico subactuado

� ���

=��#� �

�������

�−+==

θωθ

��(

����������������������

�� � ⋅⋅= ������������������������������������������������������

(�/�

⋅⋅= �����������������������������������������������������

&� %�� %/6��� #�� %/�� ��4/�"����� ���� /� �� � � 0��

6�86�����/�%/����6�C/�#�%�8:�#4%� �5=����%/����6�C/�

#���/#/� #�%� 8:�#4%�� ���� #��"6� %/� ���6�C/� ��� %/�

8��"�"9���48�6"�6� �������%���������#��"��6�"/ ���

��� %/� �/�/� #�%� 8:�#4%� � %� %/� %���"�4#� #��#�� %/�

/6�"�4%/�"9������%��/66��A/��/��%�����6��#���/�/�#�%�

8:�#4%��*������%/�%���"�4#����/%�#��������

;3430������(&���0�&�&0(&07��&0(���&(300

</6/� %/� @��/� %"��/%� ��� #"��I/6��� #��� �"8��� #��

����6�%/#�6��� 4��� ��� 4�� 6��4%/#�6� %"��/%� 8�6�

��#"�� #�� ����6�%� �8�"��� �B' � *� �%� ��6�� 4��

����6�%/#�6� 8�6� ��#��� #��%"@/����� � D�=��

E6"#�/��Q�R��

+��'(&���0���0��+00

J�"%"@/�#��%/�%"��/%"@/�"9��#�%���#�%���/���H�"���

��� ��� � � ��� 8��"�%�� "�8%�����/6� 4�� ����6�%/#�6�

%"��/%� � ?4�� ���#�@�/� /� %/� %�*� #�� ����6�%�

�.' ⋅−= � #��#�� �%� ;����6� #�� �/�/��"/�� #��

6�/%"����/�"9��5 ����A/%%/#��8�6���#"��#���:��"�/��

#������6�%�98�"����4/#6H�"����B'��=��/�4�6#��/�

%/� �/�%/� � � �%� ;/%�6� #�%� ;����6� 5 � 4�"%"@/�#�� �%�

���/�#���B'�#���/�%/���� �

[ ]�������$���������$����������$����������$=, ����

�/� "�8%�����/�"9�� #�� ����� ����6�%/#�6� ���

0"�4%"�3� .�� ��� "%4��6/� ��� %/� �"�46/� �� *� %���

6��4%�/#��� ��� /86��"/�� ��� %/� �"�46/� �K� #��#�� ���

�%/6�� ����� ����� ����6�%/#�6� %��6/� ���/�"%"@/6� /%�

�"����/� 8/6/� H��4%��� �4*� /%�7/#��� #�� %/� @��/�

%"��/%��

���1�*$�2����8%�����/�"9�����0"�4%"�30

���1�*$�6��'��4%�/#���#�%�����6�%/#�6��B'��

5��������6�%/#�6��4��"��/����;��"����������A/��/�

%��� ��) � ��� %��6/�#�� ����6�%/6� �%� �"����/� 8/6/�

H��4%����48�6"�6���/��������

������(&���0���0

5%�����6�%/#�6�8�6���#���#��%"@/���������/�/����%/�

86�84���/� #�� E6"#�/�� Q�R� � #��#�� %/� ��I/%� #��

����6�%���6H �

( )( ) ( )( )Ψ+−+= -����.(�(��' �

� �"�����"����

� θθθθθ

� ���������

=��#���%�����6�%/#�6�A/��"#��#"��I/#��/�8/6�"6�#��

4�/��6/����6�/�"9��#��%/�#"�H�"�/�#�%��"����/����

%/� %%/�/#/� ��6�/� 6��4%/6� #�� �"����/�� ���H�"����

E6"#�/�� Q�R�� *� U� �%� �H�"��� ;/%�6� #�� %/� ��I/%�

����4�/#/���

=�� /�4�6#�� /� %/� #��"�"�"9�� #�� ��#��� #��%"@/������

%/� %�*� #�� ����6�%� #�� %/� ��4/�"9�� �� ��� 84�#��

6����6"�"6������%�� "�#"�/�%/���4/�"9��������#��#��

����

Page 248: Diseño y Simulación de un sistema mecánico subactuado

� ���

%/� �48�6�"�"�� #�� #��%"@/�"����� ��� ��%�� 0� 84��� �%�

;/%�6�#��U��������"��%4*��/�V �

( )( ) ( )( )-����.(�(��' �

� �"�����"����

� +−+= θθθθθ

� �

�/�� �"�4"������ ��4/�"����� ���8%�����/�� /� ���� *�

�����

( ) ��/���� ��

� =+++= -!�- αθθαθ �� �

( )��- �++= �� �/� αθ �

( )θθ �/����%� ++=34(

�� �

θθθθθ

������� �

22

34

34

34 ��

� (�

.

�! +��

����

� +��

���

� −= �

θθαθθ �"��

�� � �

�� (+=Ψ �

�/�� �"�46/� �� *� �� "%4��6/�� %��� 6��4%�/#��� #�� %/�

"�8%�����/�"9��#��%/��%�*���#������6�%�#"�84���/��

�������*������ �����%%/������%/6����������%/���I/%�#��

����6�%� %/� 86�����"/� #�� %/� ��I/%� ����4�/#/ �

��/�"��/����"%/�"�����#��/%�/��6��4���"/�������/��

���1�*$�7��'��4%�/#���#�%�����6�%/#�6�<�6���#���

=��%"@/����������48�6�"�"��#��#��%"@/�"�����0WV�

�)��

���1�*$�8��'��4%�/#���#�%�����6�%/#�6�<�6���#���

=��%"@/����������48�6�"�"��#��#��%"@/�"�����0���)��

</6/� %/� ��66���"9�� #�� %/�� ���"%/�"����� #�� /%�/�

�6��4���"/�#/#/�� %/���/6/���6C��"�/��#�%��"����/����

84�#�� ;/6"/6� %/� #��"�"�"9�� #�� %/� �4��"9��

����4�/#/� #�� /�4�6#�� /� %�� 86�84����� 8�6�

'/�"�/�@�%/��Q�R�/�" �

���

����

γ-

�&� �

���

���

>���

����

=���

����

1

1

γγ

γγ

γ-

��-

����

-��

-

-�&�

D���%/��/8%"�/�"9��#�����/�;/6"/�"9�������66"������/�

���"%/�"9����� %/���I/%�#������6�%�����������8����

���%/��"�46/��

���1�*$�9��'��4%�/#���#�%�����6�%/#�6�<�6���#����

=��%"@/����� ���� ��66���"9�� #�� ���"%/�"����� ��� %/�

��I/%�#������6�%���)�

�����

�����

�����

�����

�����

����������

����

Page 249: Diseño y Simulación de un sistema mecánico subactuado

� ����

;3;3 +��'(�&���0 ��0 (&0 ��(����&��1�0 ��0 (&0����&����&0��0������(0���(��&30

0

5%���?4��/����8%����8/6/��%�����6�%�#�%�8:�#4%��

"�;�6�"#�� �����/� #�� #��� ����6�%�� � �%� 86"��6�� ���

���/6�/� #�� "�*���/6%�� ���6�C/� /%� �"����/� 8/6/�

86�;��/6���L%�"8%����/%/������0>"���J8��*�8�#�6�

%%�;/6%��/�%/�@��/��4�6�/�8/6/�?4���"�/%���������6��

/� /��4/6��%� ����6�%�6��4%/#�6�*� %�� ���/�"%"��� ��� %/�

8��"�"9�� ���/%������ ;�6�"�/%�� &� ����"�4/�"9�� ���

�4���6/�%/�"�8%�����/�"9��#�%��>"��A�4�"%"@/#�����

%/� @��/� �4�6�/�� 5���� �>"��A� ��� #���� ����/6� 8/6/�

%��6/6� ?4�� �%� 8:�#4%�� �4/�#�� ���6�� ��� �%� 6/����

���)�*���)�����%��/�4%��%/�/��"9��#������6�%�%��?4��

����6/� ?4�� %/� �/66/� /;/���� *� ���6�8/��� %/� @��/�

�4�6�/� #��"#�� /� �4� "��6�"/� ���� 4�/� ;�%��"#/#�

����6 ������"�"/�#��/%�����6�%�6��4%/#�6�8/6/�?4��

���6������4��"��/�"������

���

��1�*$�:��5�?4��/�#������6�%�#�%�0>"���J8��

���1�*$�;����8%�����/�"9��#�%�0>"��A�8/6/�%/�@��/�

�4�6�/��

��1�*$�.<��5�?4��/�#������6�%��"�/%���

���1�*$�..��'��4%�/#�� #�� %/� 8��"�"9�� %"��/%� #�� %/�

"�8%�����/�"9�����8%��/�

���1�*$�.0��'��4%�/#��#��%/�8��"�"9��/��4%/6�#��%/�

"�8%�����/�"9�����8%��/�

Page 250: Diseño y Simulación de un sistema mecánico subactuado

� ����

���1�*$� .2�� '��4%�/#�� #�%� ;�%�/7�� /8%"�/#�� #�%�

����6�%����%/�"�8%�����/�"9�����8%��/�

6+ �������3���� �����������������������+�

�5%�����6�%�#�%�8:�#4%��#��%��?4�������8����������/�

����"9�����/��6"���/#��/�%/�@��/�%"��/%�#�%��"����/ �

/4�?4�� ��"���� %/� 8��"�"%"#/#� #�� ��8%�6/6� #";�6�/��

�:��"�/�� #�� %�;/��/�"����� #�%� 8:�#4%�� #��#�� �4�

8��"�"9��#���?4"%"�6"�����/�%���

</6/����/�"%"@/6�/�����8:�#4%���#�%��"����/�����4�

8��"�"9�� #�� �?4"%"�6"�� "����/�%� � 4�� �"����/� #��

����6�%� ��� %/@�� ��66/#�� ��� �����/6"�� 8/6/� ?4�� �%�

�"����/�84�#/�6��"��"6�8�6�46�/�"����� ����6�/���5%�

����6�%/#�6��/��":��#������6�#"��I/#��8/6/�?4���%�

�/66��6��6����/%�����8�"���#���/#��

5�� �"����/� #�� ����6�%� #"��I�� 8/6/� �%� ����6�%� #�%�

8:�#4%��"�;�6�"#��#��%�����4��6��4%/#�6�%"��/%�?4��

�4�8%/�����%/�%�*�#������6�%� �⋅−= .� �#��#��

�%� ;����6� #�� �/�/��"/�� #�� 6�/%"����/�"9�� #��

���/#���. � ��� �/%�4%/#�� �������� �%� �/��� /���6"�6 �

���� �:��"�/�� #�� ����6�%� 98�"��� �4/#6H�"��� �B'�

�����/���%/� �/�%/���?4��"�#"�/��%���;/%�6���#��%/��

�����/�����#�%��"����/��5%�;/%�6�#�%�;����6�.��� �

��

��������

=

�����

����������

������

������

������

��������

�/� "�8%�����/�"9�� *� �"�4%/�"9�� #�%� ����6�%/#�6�

#"��I/#�� 8/6/� �%� 8:�#4%�� "�;�6�"#�� #��%�� ��� %/�

@��/� %"��/%� ����4���6/���� %/� �"�46/��� � %/� �4/%� ���

6�/%"@/� ��� 0"�4%"�3� .�� (�� ��� � ��� #��#�� /%� "�4/%�

?4��8/6/��%��/����#�%�8:�#4%���"�8%�����/#"�"��9�/%�

��#�%��4���/�46/#�6����%/���I/%�#������6�%�#��"#��

/�%/��%"�"�/�"�������84���/��/���6"�6��������

���1�*$�.6����8%�����/�"9���"�/%�#�%�����6�%�8/6/�

�%�8:�#4%��#��%���

&� ����"�4/�"9�� ��� 86�����/�� %��� 6��4%�/#���

�����"#��� #�� %/� �"�4%/�"9�� 8/6/� %/�� ���#"�"�����

"�"�"/%��� H��4%�� 4��� ��)� *� H��4%�� #��� ��)��

0��4"#/������ ��� 86�����/� �%� ;�%�/7�� /8%"�/#�� /%�

/��4/#�6� 8/6/� ���/� 864��/ � #��#�� �%� ;/%�6� #��

�/�46/�"9����8��"�"�/#�����X����;�%�"����

���1�*$�.7��'��4%�/#��� #�%� ����6�%� %"��/%� 8/6/� �%�

8:�#4%��#��%���

����1�*$�.8��(�%�/7��/8%"�/#��/%�/��4/#�6���

����

Page 251: Diseño y Simulación de un sistema mecánico subactuado

� ����

7+ ������ �/��������������������

5%� 86����"8�� ;"6�4/%� ��� �=� �"�4%/6H� %/��

�/6/���6C��"�/���C�"�/��#�%�86����"8��6�/%����%/�?4� �

%/� #"�H�"�/� #�%� �"����/� ���/6H� ����6�/#/� 8�6� %/��

��4/�"����� #"��6���"/%��� ?4�� #��"���� �%�

��;"�"����� #�%� �"����/ � *� %��� ����6�%/#�6���

#"��I/#������%/���/8/�#������6�%�#�%��"����/���6H��

86��/#����

����6�?4�6"�"������#�%�86����"8��;"6�4/%�/�#"��I/6�

#���� ��6� 4�� 0���>/6�� ?4�� 8�6�"�/� � %/� �"�4%/�"9��

#�� %/� 6��84���/� #�� %/�� 8%/��/�� 8:�#4%�� "�;�6�"#��

�"�8%�� *� #��%� � /�C� ����� %/� /��"9�� #�� %���

����6�%/#�6��� #"��I/#��� 8/6/� ������ �"����/� � #��

��#�� ?4�� ��� ���/�%�@�/�� %/�� 6���6"��"����� ?4�� ���

���#6C/�� ��� 4�/� 8%/��/� 6�/%�� D��� �/��� ��� %���

6�?4�6"�"����������"����%����"�4"�������/����#��4���

"%4��6/#������%/��"�4"������"�46/ �*����%/��/�%/������

#���6"���%/��4��"9��#���/#/��/���#��4����

���1�*$�.9��="/�6/�/�#���/����#��4����

./�%/�� �=���6"8�"9��#��%����/����#��4����

���������� ��� �/��

���� ����� ������� �/��

5%� �/��� #�� 4��� 8�6�"��� /%�

4�4/6"�� ������6� �%� �"8�� #��

����"�46/�"9�� ���� %/� ?4�� ���

#���/� �6/�/7/6� �� �/%"6�

#��"�"�";/������ #�� %/�

/8%"�/�"9��

������� ������� �/��

5%� �/��� #�� 4��� ����6/� %/�

"���6�/@� �6/�"�/� #�� /�4�6#�� /%�

%/� "�"�"/%"@/�"9�� #�� %/��

�����/����� �/6�/#/�� *� %/�

����"�46/�"9�� �����"#/ � /� �"��

#��?4�� ���84�#/� /���#�6�/� %/��

�/6/���6C��"�/�� #���/#/�� #�%�

�"����/�

������ ��� ���� ������

5%� �/��� #�� 4��� ���/�%���� %/��

���#"�"����� "�"�"/%��� #�%�

�"����/� ��%���"��/#� �

"��%4*��#�� 8/6H���6��� #�%�

�"����/�*�;/%�6���#��;/6"/�%���

����� �/��

��"�"/� �/� �"�4%/�"9�� #�%�

�"����/� ��%���"��/#� �

�/%�4%/�#�� %�� ;/%�6��� ��� �%�

�"��8�� #�� �4���6��� �"�4"���� �

4�/�#�� %��� �/���� #�� 4���

86����"8���*��6/�"�/6�

���� ����������

N6/�"�/� %��� ;/%�6��� #�� %/�

;/6"/�%��� #�%� �"����/� ?4�� �%�

4�4/6"��#��"�/�

����������

("�4/%"@/� ��� 8/��/%%/� �%�

86����"8�� �=� #�%� �"����/� ����

%/�� ���#"�"����� ?4�� ���

6�?4"�6���

�/�����#�%��C/����4"#/�8/6/��%�#"��I��#�%��"����/�

A/� �"#�� �6"���/#/� /� ��7���� � 8�6�� ��� %/�

"�8%�����/�"9�� #�%� �"����/� ��� #"��I�� ��� 4��

86��6/�/� �6"���/#�� /� �;������ ����� %�� ��� ("�4/%�

Y/�"� �#����#��?4��%����/����#��4���?4������"�����

A/��/� �%� ������� � ��� 4�"%"@/�� 8/6/� #"��I/6� %/��

�8�"����� #�� %��� ��6�4%/6"��� *� �%� �%47�� #��

"���6�/�"9������%�86��6/�/��

�/��"�46/���"%4��6/�%/���6�/���������"�8%�����9�

%/��"�4%/�"9�����("�4/%�Y/�"� �����%%/��%��%�?4��G�

�"���� �%� ;/%�6� #�� %/�� ;/6"/�%��� #�� � ���/#�� #�%�

�"����/� �G � ���A/� � ���A/�� *� �4�� 6��8���";/��

Page 252: Diseño y Simulación de un sistema mecánico subactuado

� ����

#�6";/#/�� � %/�� �4/%��� ���� ;/6"/#/�� �"� ��� �/��"/��

%/�� ���#"�"����� "�"�"/%��� #�%� �"����/� *� ��� ��8�6/�

?4�� ��� /��";�� 4�� �"��6� �4*/� ����"�46/�"9�� #��

"���6648�"9�����/�/�������?4������%��"�����/�/I��

#�� 8/��� ?4�� ��� 4�"%"@/� ��� %/�� �"�4%/�"����� #��

�/�%/�� ��4/�#�������%���"��/�/��";/��"�4%/�"9�����

/��";/��%��"��6�*������/���/�%/����6/���"/�#������6�%�

���/�%��"#/�����%�����6�%/#�6�����/%�4%/��%�;/%�6�#��

%/� ���6/#/� #�� ����6�%� ?4�� ��� ���74���� ���� %���

;/%�6��� #�� %/�� ;/6"/�%��� #�%� �"����/� "��6��/�� /%�

�%�?4�� #��#�� ���H�� #���6"�/�� %/�� ��4/�"�����

#"��6���"/%��� ?4�� #���6"���� %/� #"�H�"�/� #�%�

�"����/� ?4�� ��� 6��4�%;��� 8�6� ��#"�� #�� 4��

/%��6"����#��'4���$F4��/��6#���� ��%��4/%��/%�4%/�

�%�;/%�6�#��%/��;/6"/�%�������%��"��8��#���4���6���

�"�4"���� � ?4�� ��� ���6"���� ��� �%� ��8/�"�� #��

����6"/� /�"��/#�� /� �%%/� � *� ��� %/� 869�"�/�

"���6648�"9�� #�%� �"��6� ��� 6�8"��� %/� �"��/�

���4���"/� �6/�"�/� ��� �%� 86����"8�� �=� *� ��� %/��

�4��"�����8/6/�;"�4/%"@/6�%/��;/6"/�%����

���1�*$� .:�� ��8%�����/�"9�� #�%� ����>/6�� #��

�"�4%/�"9�����;"�4/%�Y/�"����

�8+� ������������������������

��������

5�� �%� ����>/6�� #�� �"�4%/�"9�� 86�����/� �6���

8/��/%%/�� 86"��"8/%�� � ��� %/� 86"��6/� ��� �6"�#/� /%�

4�4/6"�� %/� 8��"�"%"#/#� #�� �%��"6� ���� �4/%� �8�"9��

#���/� �6/�/7/6� �8:�#4%�� �"�8%�� *� 8:�#4%�� #��%�� �

��� %/� �"�46/���� ���84�#��;"�4/%"@/6� %/�8/��/%%/�#��

"�"�"��� 5�� %/�� �"�46/�� ��� *� ��� ��� �4���6/� %/��

8/��/%%/��#��%/��#�������"�46/�"������<��*�<�=�����

#��#�����84�#���6�/%"@/6��"�4%/�"�����#������6�%�

8/6/�%4������6�"�8%�����/#/�����%/�8%/��/�6�/%����

���1�*$�.;��</��/%%/�#����"�"��

���1�*$�0<��</��/%%/�8:�#4%���"�8%��

���1�*$�0.��</��/%%/�8:�#4%��#��%��

&� ����"�4/�"9�� ��� 86�����/� 4�/� #�� %/�� 864��/��

6�/%"@/#/�� ���6�� %/� ����"�46/�"9�� #�%� 8:�#4%��

�"�8%���=��#�����84�#��/86��"/6�%/��6��84���/��#��

%/�8��"�"9��#�%�8:�#4%��*��4�;�%��"#/#��

Page 253: Diseño y Simulación de un sistema mecánico subactuado

� ����

���1�*$� 00�� '��84���/�� #�%� ����>/6�� #��

�"�4%/�"9���

�9+� �� ���������

�/�� #"��6������ ���6/���"/�� #�� ����6�%� #"��I/#/��

8/6/� �%� �"����/� 8:�#4%�� "�;�6�"#�� �"�8%�� *� #��%��

�4�6��� �"�4%/#/�� 8%��/������ ��� �/�%/�� *� ��� �%�

86����"8�� ;"6�4/%� �����"��#�� 6��4%�/#��� �"�"%/6�� �

*� ����6�%/�#�� �%� �"����/�8�6� ��#"��#��#"��6������

���6/���"/��#������6�%��

5%� #"��I�� #�%� �"����/� 8�6�"��� �/��"/6� #��

����"�46/�"9��8:�#4%���"�8%��/�8:�#4%��#��%������

8������/��"������%/����64��46/��C�"�/�#����#��?4��

������"����4���"����/�;�6�H�"%��5%�����6�%/#�6�8�6�

6�/%"����/�"9�� #�%� ���/#�� 8�6� ��#"�� #�%� ����6�%�

98�"��� �B'� ����6�%/� ��"�/@������ �%� �"����/�

8:�#4%�� "�;�6�"#�� �"�8%�� �H�� /%%H� #�� %/� @��/�

%"��/% � ���� %/� �/66�6/� �H�"�/� ?4�� �"���� �%� �4�46��

�"����/��C�"����

5%� ����6�%/#�6� 8�6� ��#"�� #�� ��#��� #��%"@/�����

#"��I/#��%��6��4���/*�6�6/�������%/�8��"�"9��#�%�

H��4%� � 84#"��#�� ����6�%/6� �%� �"����/� 8/6/�

H��4%���#��"��%"�/�"9��#�%�8:�#4%���/*�6���/���)�

�"� %/� �48�6�"�"�� #�� #��%"@/�"����� ��� 0K� 8�6�� 8/6/�

����������"�/�#��4�/��/66�6/��H��%/6�/�#��%/�?4�����

#"�8�������%/��"����/��C�"����

������� ����

Q�RZ�/�/ � F�� ������ �����"�6C/� #�� ����6�%�

��#�6���<6���"��$[/%% �5��%�>��#�D%"��� �\]�

������

Q�RZ��6"� �D/6%���*�N4�":66�@ �'�#6"����S.4��6"/%�

#��="6���G�</6/��%�=��/66�%%��#��&8%"�/�"�����

�=T�� J�";�6�"#/#� &4�9���/� #�� Z��"#������

]4%"��#��������

Q�R'/�"�/�@�%/�����'��/�#��^/@#/�8/�/A����]�S&�

\�;�%� ��>� DA/���6"��� 0%"#"��� ��#��

D���6�%%�6T�� D���6�%� _� ����%%"����� <6�����"���

D����6����5���%%���� �=�8/6���������5%���6"�/%�

/�#� D��84��6� 5��"���6"�� � J�";�6�"�*� ���

.�A6/� ��6/���

Q�R&��6�� � F� *� E464�/ � F�� 0>"�"��� J8� &�

<��#4%4�� Y*� 5��6�*� D���6�%� Q5�� %C��/R�� 0/��

E6/��"��� � D/%"��6�"/�� �E&D� ` �6%#� D���6��� �

������ QD���4%�/#�� &������ #�� ����R�

="�8��"�%�� ��� ����6��� �

A��8 11>>>�����6�%�%�A���1-37/1�464�/8/8�6�8#��

Q�R� E'�=�&\� ����"#� S\��/�� #�%� �46���

���6�#4��"9��/%�����6�%�8�6���#���#��%"@/����T�

\/�"��/%�&4������4��J�";�6�"�*�������"�����

Q�R� 0%��"��� ]�]�� /�#� �"� ` � � ���(���0 =��(���&�0

������( � 5��%�>��#� D%"��� � \] � <6���"��$[/%% �

������

&<5\=�D50�

����;/%�6���#��%������8��������#��%/���/�6"����#�%�

��#�%���/���H�"���#�%��"����/�8:�#4%���"�8%����� �

Page 254: Diseño y Simulación de un sistema mecánico subactuado

� ����

( )( ) ( )

( ) ( )( ) ( )

( ) ( )( ) ( )

( ) ( )( ) ( )( ) ( )

( ) ( )( ) ( )( )( ) ( )

( ) ( )( )( ) ( )

( ) ( )

�����

�"�

�"��$�������

�"�

�"�

�"�

�"��������

�"��

�����������

���

���$��

���$����������

���

�����������

��������������

�������

�����������

�������

�������

��

�������

��

����

����

����������

���

������������

����������

������

�������������

���

����

���

��

������

�����

����

�������

φφφ

φφ

φφφφφφ

φφφφφφ

φφ

φ

φφφφ

φ

φ

++−=++++

++−==

+=

+−+=

+++++

+++=

+

++==

++==++

+++−==++=

+++

++++++=

++++=

(���!

��(�(�((

(���!

!

((��

((��

��(

(��(�(

(

��((����

(����

(��

((�(����

((���

((��

((��

(����

���

���

����

./�%/�� �</6H���6���#�%��"����/��"�8%��*�#��%��

�=&>!�!�

��#,*�?,�@"��$�!*�

�"��+�

�� �/�/�#�%��/66�� ���� F���

�� �/�/�#�%�8:�#4%���"�8%������

��F���

��D����/����#���6"��"9��

���6���/66��$�8"��/������

\1�1

���

��

D����/����#���6"��"9��

���6��8:�#4%�$�/66��*�

8��#$8��#�

����

��

\1�1

���

������"�4#����/%�#�%�8:�#4%��

�"�8%������ ��

�� ���6�"/�#�%�8:�#4%���"�8%������

��

F��1

���

���

�/�/�#�%�8:�#4%����

�#��%���

����

��� 3��

���

�/�/�#�%�8:�#4%����

�#��%���

����

��� 3��

���

�/�/�#��%/�4�"9�����6��

8:�#4%��������

3��

���

����"�4#�#�%�8:�#4%����

�#��%��������

��

���

����"�4#�#�%�8:�#4%����

�#��%��������

��

]� �]��

���6�"/�#��%���8:�#4%���

� ���#��%���

����

���

F��1

���

Page 255: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO C: HOJAS DE ESPECIFICACIONES TÉCNICAS

Page 256: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO C 1. ESPECIFICACIONES DEL MOTOR

Page 257: Diseño y Simulación de un sistema mecánico subactuado

� ���

ANEXO C 2: ESPECIFICACIONES DE LOS SENSORES

Page 258: Diseño y Simulación de un sistema mecánico subactuado

� ���

Page 259: Diseño y Simulación de un sistema mecánico subactuado

� ����

�ANEXO C 3. ESPECIFICACIONES DE LOS RODAMIENTOS LINEALES

Page 260: Diseño y Simulación de un sistema mecánico subactuado

� ����

Page 261: Diseño y Simulación de un sistema mecánico subactuado

� ����

��

Page 262: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO C 4. ESPECIFICACION GENERAL LM12CL �

Page 263: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO C5: RODAMIENTO RIGIDO DE UNA HILERA DE BOLAS

Page 264: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO D: CODIGOS FUENTE DE PROGRAMAS

Page 265: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO D1: CODIGO FUENTE DEL VIRTUAL UMS Declaraciones de variables usadas en el sistema, que se realizan en un modulo Public DirectX As DirectX7 Option Explicit Public vx(), vy1(), vy2() ,vy3(), vy4(), vy5(), vy6(), vxg(), vy1g(), vy2g(), vy3g(), vy4g(), vy5g() Public vy6g(), vyag(), vybg(), vy1aux(), vy1auxg(), vxd(), vy1d(), vy2d(), vy3d(), vy4d(), vy5d() Public vy6d() 'DECLARACIONES PARA RUNGE KUTTA Public tmin, h, y1inicial, y2inicial, y3inicial, y4inicial, y5inicial, y6inicial, tmind, y1iniciald, y2iniciald, y3iniciald, y4iniciald, y5iniciald, y6iniciald, mt, mp, ma, lp, la, j, pi, grav, a, b, c, d, a1, a2, b1, b2, kt, r, ka, kf, mc, m1, m2, me1, l1, l2, h1, h2, h3, h4, h5, h6, h7, h8, h9, h10, ls, ms, alpha, beta, iner, gamma, zita, area, prueba, w0, x_abs, integral, ki, sumavs, sumavsant, sumavsaux, x3_aux, x3d_aux, x3_aux1, x3d_aux1d, x5_aux, x5d_aux, x5_aux1, x5d_aux1d, jj1, jj2, gain1, gain2, gain3, gain4, gaini, posxsb, x_absd, gains1, gaind1, gaind2, gaind3, gaind4, gaind5, gaind6, gaindi, ki_d, N,gd1, gd2, gd3, gd4, gd5, gd6, gdi, xgra, xdgra, phigra, phidgra, posxsbd, xgrad, xdgrad, phigrad, phidgrad, tethagrad, tethadgrad, tiempo, angulo_teta, angulo, d_angulo_teta, d_angulo_phi, angulo_phid,d_angulo_phid, pos_x, pos_x, pos_xd, d_pos_xd, nnn, swing_up, linezone, lqrc, smc, slpd, smclow, carrant, mdsd, carrera, carrgraf, pxsb, dpxsb, posxref, x_refsimple, smcgain As Double Public crk, grafos, Public contv, sps As Integer Public Const deg2rad = 3.14159265358979 / 180 Public Const rad2deg = 180 / 3.14159265358979 'PARAMETROS DE ROZAMIENTO UTILIZADOS EN EL MODELO DEL PENDULO Public bbb, ccc As Double 'PARAMETROS DEL MOTOR Public Const km = 0.0333 Public Const kg = 1 Public Const rr = 0.02 Public Const ra = 0.62 Public Const den = 2.7 Public Const pen_con = -0.5 Public m_bMouseDown As Boolean Public reproduciendo As Boolean Public roty As Integer Dim m_lastX ,m_lastY , delta_last, m_lastXd, m_lastYd, delta_lastd As Integer Public todo, todo1 As Direct3DRMFrame3, Public rotyd As Integer '- Rotate Track ball given a point on the screen the mouse was moved to simulate a track ball Public Sub RotateTrackBall(X As Integer, Y As Integer) Dim delta_x As Single, delta_y As Single Dim delta_r As Single, radius As Single, denom As Single, angle As Single Dim delta As Single ' rotation axis in camcoords, worldcoords, sframecoords Dim axisC As D3DVECTOR

Page 266: Diseño y Simulación de un sistema mecánico subactuado

� ����

Dim wc As D3DVECTOR Dim axisS As D3DVECTOR Dim base_v As D3DVECTOR Dim origin As D3DVECTOR delta_x = X - m_lastX delta_y = Y - m_lastY m_lastX = X m_lastY = Y delta_r = Sqr(delta_x * delta_x + delta_y * delta_y) radius = 50 denom = Sqr(radius * radius + delta_r * delta_r) If (delta_r = 0 Or denom = 0) Then Exit Sub angle = (delta_r / denom) axisC.X = (-delta_y / delta_r) axisC.Y = (-delta_x / delta_r) axisC.z = 0 Form1.espacio.CameraFrame.Transform wc, axisC todo.InverseTransform axisS, wc Form1.espacio.CameraFrame.Transform wc, origin todo.InverseTransform base_v, wc axisS.X = axisS.X - base_v.X axisS.Y = axisS.Y - base_v.Y axisS.z = axisS.z - base_v.z axisS.X = axisS.X * roty axisS.z = axisS.z * roty todo.AddRotation D3DRMCOMBINE_BEFORE, axisS.X, axisS.Y, axisS.z, angle End Sub Public Sub RotateTrackBalld(Xd As Integer, Yd As Integer) Dim delta_xd As Single, delta_yd As Single Dim delta_rd As Single, radiusd As Single, denomd As Single, angled As Single Dim deltad As Single ' rotation axis in camcoords, worldcoords, sframecoords Dim axisCd As D3DVECTOR Dim wcd As D3DVECTOR Dim axisSd As D3DVECTOR Dim base_vd As D3DVECTOR Dim origind As D3DVECTOR delta_xd = Xd - m_lastXd delta_yd = Yd - m_lastYd m_lastXd = Xd m_lastYd = Yd delta_rd = Sqr(delta_xd * delta_xd + delta_yd * delta_yd) radiusd = 50 denomd = Sqr(radiusd * radiusd + delta_rd * delta_rd) If (delta_rd = 0 Or denomd = 0) Then Exit Sub angled = (delta_rd / denomd) axisCd.X = (-delta_yd / delta_rd) axisCd.Y = (-delta_xd / delta_rd) axisCd.z = 0

Page 267: Diseño y Simulación de un sistema mecánico subactuado

� ���

form2.espaciod.CameraFrame.Transform wcd, axisCd todo1.InverseTransform axisSd, wcd form2.espaciod.CameraFrame.Transform wcd, origind todo1.InverseTransform base_vd, wcd axisSd.X = axisSd.X - base_vd.X axisSd.Y = axisSd.Y - base_vd.Y axisSd.z = axisSd.z - base_vd.z axisSd.X = axisSd.X * rotyd axisSd.z = axisSd.z * rotyd todo1.AddRotation D3DRMCOMBINE_BEFORE, axisSd.X, axisSd.Y, axisSd.z, angled End Sub Formulario Pantalla Inicial Option Explicit Private Sub About_Click() frmAbout.Show End Sub Private Sub Command1_Click() sps = 1 angulo = 180 * (3.14159265 / 180) d_angulo_phi = 0 pos_x = 0 d_pos_x = 0 x_refsimple = 0 gain1 = -27.552 gain2 = -26.07 gain3 = -95.0953 gain4 = -22.5443 gaini = 3.1623 gains1 = 1.04 '0.99 smcgain = 24 Load Form1 Form1.Show ini.Hide End Sub Private Sub Command2_Click() sps = 0 gd1 = 15.7221 gd2 = 31.7154 gd3 = 190.4397 gd4 = 65.0519 gd5 = 396.3124 gd6 = 56.1956 gdi = -0.7071

Page 268: Diseño y Simulación de un sistema mecánico subactuado

� ���

smcgain = 24 x_refsimple = 0 ini.Hide Load form2 form2.Show End Sub Private Sub Command3_Click() End End Sub Private Sub Form_Load() bbb = 0.001 ccc = 0.1 x_refsimple = 0 Unload Form1 gain1 = -27.552 gain2 = -26.07 gain3 = -95.0953 gain4 = -22.5443 gaini = 3.1623 gains1 = 1.04 '0.99 smcgain = 24 Unload form2 gd1 = 15.7221 gd2 = 31.7154 gd3 = 190.4397 gd4 = 65.0519 gd5 = 396.3124 gd6 = 56.1956 gdi = -0.7071 End Sub Private Sub Pd_Click() Load form2 form2.Show ini.Hide End Sub Private Sub Ps_Click() angulo = 180 * 3.14159265 / 180 d_angulo_phi = 0 pos_x = 0 d_pos_x = 0 Load todo Form1.Show ini.Hide End Sub Private Sub sal_Click()

Page 269: Diseño y Simulación de un sistema mecánico subactuado

� ����

End End Sub Private Sub T_Click() tutor.Show End Sub Private Sub Form_unload(cancel As Integer) End End Sub Formulario de Simulación del Péndulo Simple Option Explicit Dim lupa As Boolean Dim Mover As Boolean Dim rotar As Boolean Dim ejesc As Boolean Dim movx As Single Dim posx As Integer Dim posy As Integer Dim posz As Integer Dim mov As Single Dim acum As D3DVECTOR Dim var1 As Single Dim prueba As Double Dim inc As Single Dim deg2rad As Double Dim cont As Double Dim nat As Double Dim aux_x As Double Dim aux_y As Double Dim aux_z As Double Public espaciod As RMCanvas Dim acum1 As Single Dim acum2 As Single Dim acum3 As Single Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long Const SM_CXSCREEN = 0 'X Tamaño de la pantalla Const SM_CYSCREEN = 1 'Y Tamaño de la pantalla Public base As Direct3DRMFrame3 Public base_m As Direct3DRMMeshBuilder3 Public baseguia As Direct3DRMFrame3 Public baseguia_m As Direct3DRMMeshBuilder3

Page 270: Diseño y Simulación de un sistema mecánico subactuado

� ���

Public baseguia1 As Direct3DRMFrame3 Public baseguia1_m As Direct3DRMMeshBuilder3 Public guia As Direct3DRMFrame3 Public guia_m As Direct3DRMMeshBuilder3 Public guia1 As Direct3DRMFrame3 Public guia1_m As Direct3DRMMeshBuilder3 Public polea As Direct3DRMFrame3 Public polea_m As Direct3DRMMeshBuilder3 Public polea1 As Direct3DRMFrame3 Public polea1_m As Direct3DRMMeshBuilder3 Public bandadent As Direct3DRMFrame3 Public bandadent_m As Direct3DRMMeshBuilder3 Public carro As Direct3DRMFrame3 Public carro_m As Direct3DRMMeshBuilder3 Public carrob As Direct3DRMFrame3 Public carrob_m As Direct3DRMMeshBuilder3 Public motor As Direct3DRMFrame3 Public motor_m As Direct3DRMMeshBuilder3 Public senint As Direct3DRMFrame3 Public senint_m As Direct3DRMMeshBuilder3 Public senint1 As Direct3DRMFrame3 Public senint1_m As Direct3DRMMeshBuilder3 Public ejesen As Direct3DRMFrame3 Public ejesen_m As Direct3DRMMeshBuilder3 Public pend1 As Direct3DRMFrame3 Public pend1_m As Direct3DRMMeshBuilder3 Private Sub Check1_Click() Check2.Value = 0 Check7.Value = 0 'Check8.Value = 0 lqrc = 1 smc = 0 End Sub Private Sub Check2_Click() Check1.Value = 0 Check7.Value = 0 'Check8.Value = 0

Page 271: Diseño y Simulación de un sistema mecánico subactuado

� ���

lqrc = 0 smc = 1 smclow = 0 End Sub Private Sub Check3_Click() If Check3.Value = 0 Then Frame11.Visible = True Frame5.Height = 3015 Frame5.Left = 0 Frame5.Top = 7320 Frame5.Width = 2655 Else Frame11.Visible = False Frame5.Height = 1335 Frame5.Left = 120 Frame5.Top = 8760 Frame5.Width = 2655 d_angulo_phi = 0 d_pos_x = 0 End If End Sub Private Sub Check4_Click() If Check4.Value = 1 Then Frame14.Visible = True Check6.Value = 0 Else Frame14.Visible = False End If End Sub Private Sub Check5_Click() refex.Value = 0 x_refsimple = 0 If Check5.Value = 1 Then carrob.SetPosition todo, 0, 1.9, -3.1 framereferencia.Visible = True refex.Max = carrera * 10 refex.Min = -carrera * 10 Else carrob.SetPosition todo, 1110, 1111.9, -1113.1 framereferencia.Visible = False End If carrob.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (0 * deg2rad) carrob.SetColorRGB 0, 0, 0 espacio.Viewport.SetBack var1 espacio.Render End Sub

Page 272: Diseño y Simulación de un sistema mecánico subactuado

� ���

Private Sub Check6_Click() If Check6.Value = 1 Then Frame13.Visible = True Check4.Value = 0 Else Frame13.Visible = False End If Text16.Text = bbb Text18.Text = ccc Text17.Text = carrera Text19.Text = gain1 Text15.Text = gain2 Text22.Text = gain3 Text21.Text = gain4 Text20.Text = smcgain Text23.Text = gains1 Text14.Text = gaini Text10.Text = ms Text11.Text = ls End Sub Private Sub Check7_Click() Check1.Value = 0 Check2.Value = 0 clow = 1 End Sub Private Sub Check8_Click() Check1.Value = 0 Check2.Value = 0 Check7.Value = 0 End Sub Private Sub Command1_Click() todo.AddRotation D3DRMCOMBINE_REPLACE, 0, 1, 0, (45 * deg2rad) espacio.CameraFrame.SetPosition Nothing, -48, 4, -49 espacio.Render posx = -48 posy = 4 posz = -49 End Sub Private Sub de_frente_Click() todo.AddRotation D3DRMCOMBINE_REPLACE, 0, 1, 0, (45 * deg2rad) espacio.Render End Sub Private Sub Command2_Click() grafps = 1 graph.Show

Page 273: Diseño y Simulación de un sistema mecánico subactuado

� ���

End Sub Private Sub ini_simus_Click() If cont = 1 Or nat = 1 Then Timer1.Enabled = True ini_simus.Visible = False stopp.Visible = True Command2.Enabled = False Else Timer1.Enabled = False End If End Sub Private Sub Controlado_Click() cont = 1 nat = 0 natural.Enabled = True Controlado.Enabled = False End Sub Function inici() deg2rad = 3.14159265 / 180 angulo = 180 * deg2rad d_angulo_phi = 0 pos_x = 0 d_pos_x = 0 End Function Private Sub Form_Load() Load Runge_kuttasimple Load graf Load graph ini.Hide Call inici bbb = 0.001 ccc = 0.1 carrera = 0.7 carrgraf = 27 posxref = 0 x_refsimple = 0 Check3.Value = 1 mdsd = 1 swing_up = 1 lqrc = 1 smc = 0 crk = 0 smclow = 0 Frame5.Height = 1335

Page 274: Diseño y Simulación de un sistema mecánico subactuado

� ���

Frame5.Left = 120 Frame5.Top = 8760 Frame5.Width = 2655 grafps = 0 deg2rad = 3.14159265 / 180 Timer1.Enabled = False angulo = 180 * (3.14159265 / 180) d_angulo_phi = 0 pos_x = 0 d_pos_x = 0 prueba = 1 ReDim vxg(120000) ReDim vy1g(120000) ReDim vy2g(120000) ReDim vy3g(120000) ReDim vy4g(120000) ReDim vy1auxg(120000) Dim lScreenWidth As Long Dim lScreenHeight As Long lScreenWidth = GetSystemMetrics(SM_CXSCREEN) lScreenHeight = GetSystemMetrics(SM_CYSCREEN) If lScreenWidth < 1024 And lScreenHeight < 768 Then MsgBox "La resolución de su pantalla no es la adecuada. Asegurese que sea de mínimo 1024x768 pixeles", vbOKOnly, "Error de Resolución" End End If CommonDialog1.flags = cdlOFNOverwritePrompt CommonDialog1.CancelError = True Set DirectX = New DirectX7 With espacio deg2rad = 3.14159265 / 180 espacio.SceneFrame.SetSceneBackgroundRGB 0.1, 0.4, 0.65 '0.1, 0.4, 0.8 espacio.AmbientLight.SetColorRGB 50 / 255, 50 / 255, 50 / 255 Set todo = .D3DRM.CreateFrame(.SceneFrame) .StartWindowed Set base = .D3DRM.CreateFrame(.SceneFrame)

Page 275: Diseño y Simulación de un sistema mecánico subactuado

� ���

Set base_m = .D3DRM.CreateMeshBuilder() base_m.LoadFromFile App.Path + "\baseX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing base.AddVisual base_m Set baseguia = .D3DRM.CreateFrame(.SceneFrame) Set baseguia_m = .D3DRM.CreateMeshBuilder() baseguia_m.LoadFromFile App.Path + "\base_guia_newX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing baseguia.AddVisual baseguia_m Set baseguia1 = .D3DRM.CreateFrame(.SceneFrame) Set baseguia1_m = .D3DRM.CreateMeshBuilder() baseguia1_m.LoadFromFile App.Path + "\base_guia_newX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing baseguia1.AddVisual baseguia1_m Set guia = .D3DRM.CreateFrame(.SceneFrame) Set guia_m = .D3DRM.CreateMeshBuilder() guia_m.LoadFromFile App.Path + "\guia_circularX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing guia.AddVisual guia_m Set guia1 = .D3DRM.CreateFrame(.SceneFrame) Set guia1_m = .D3DRM.CreateMeshBuilder() guia1_m.LoadFromFile App.Path + "\guia_circularX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing guia1.AddVisual guia1_m Set polea = .D3DRM.CreateFrame(.SceneFrame) Set polea_m = .D3DRM.CreateMeshBuilder() polea_m.LoadFromFile App.Path + "\poleaX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing polea.AddVisual polea_m Set polea1 = .D3DRM.CreateFrame(.SceneFrame) Set polea1_m = .D3DRM.CreateMeshBuilder() polea1_m.LoadFromFile App.Path + "\poleaX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing polea1.AddVisual polea1_m Set bandadent = .D3DRM.CreateFrame(.SceneFrame) Set bandadent_m = .D3DRM.CreateMeshBuilder() bandadent_m.LoadFromFile App.Path + "\banda_dentX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing bandadent.AddVisual bandadent_m Set carro = .D3DRM.CreateFrame(.SceneFrame) Set carro_m = .D3DRM.CreateMeshBuilder() carro_m.LoadFromFile App.Path + "\carroX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing carro.AddVisual carro_m Set carrob = .D3DRM.CreateFrame(.SceneFrame)

Page 276: Diseño y Simulación de un sistema mecánico subactuado

� ���

Set carrob_m = .D3DRM.CreateMeshBuilder() carrob_m.LoadFromFile App.Path + "\carroX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing carrob.AddVisual carrob_m Set motor = .D3DRM.CreateFrame(.SceneFrame) Set motor_m = .D3DRM.CreateMeshBuilder() motor_m.LoadFromFile App.Path + "\motor110X.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing motor.AddVisual motor_m Set senint = .D3DRM.CreateFrame(.SceneFrame) Set senint_m = .D3DRM.CreateMeshBuilder() senint_m.LoadFromFile App.Path + "\Sensor InteligX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing senint.AddVisual senint_m Set senint1 = .D3DRM.CreateFrame(.SceneFrame) Set senint1_m = .D3DRM.CreateMeshBuilder() senint1_m.LoadFromFile App.Path + "\Sensor InteligXX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing senint1.AddVisual senint1_m Set ejesen = .D3DRM.CreateFrame(.SceneFrame) Set ejesen_m = .D3DRM.CreateMeshBuilder() ejesen_m.LoadFromFile App.Path + "\ejeX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing ejesen.AddVisual ejesen_m Set pend1 = .D3DRM.CreateFrame(.SceneFrame) Set pend1_m = .D3DRM.CreateMeshBuilder() pend1_m.LoadFromFile App.Path + "\pend1X.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing pend1.AddVisual pend1_m carrob_m.SetColorRGB 0, 0, 0 var1 = 5000 base.SetPosition todo, 0, 0, 0 base.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espacio.Viewport.SetBack var1 baseguia.SetPosition todo, 28.2, 0, -3.1 baseguia.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (0 * deg2rad) espacio.Viewport.SetBack var1 baseguia1.SetPosition todo, -28.3, 0, -3.1 baseguia1.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (0 * deg2rad) espacio.Viewport.SetBack var1 guia.SetPosition todo, 1.6, 1.9, 0 guia.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad)

Page 277: Diseño y Simulación de un sistema mecánico subactuado

� ��

espacio.Viewport.SetBack var1 guia1.SetPosition todo, 4.6, 1.9, 0 guia1.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espacio.Viewport.SetBack var1 polea.SetPosition todo, 3.1, 0, -30.3 polea.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espacio.Viewport.SetBack var1 polea1.SetPosition todo, 3.1, 0, 30.7 polea1.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espacio.Viewport.SetBack var1 bandadent.SetPosition todo, 3.1, 1.2, 0.2 bandadent.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espacio.Viewport.SetBack var1 carro.SetPosition todo, 0, 1.9, -3.1 carro.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (0 * deg2rad) espacio.Viewport.SetBack var1 carrob.SetPosition todo, 1110, 1111.9, -1113.1 carrob.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (0 * deg2rad) carrob.SetColorRGB 0, 0, 0 espacio.Viewport.SetBack var1 motor.SetPosition todo, 1, 1.3, -30.3 motor.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espacio.Viewport.SetBack var1 senint.SetPosition todo, 30.3, 1.25, 3.9 senint.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (180 * deg2rad) espacio.Viewport.SetBack var1 senint1.SetPosition todo, 0, 3.7, -4.2 senint1.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (0 * deg2rad) espacio.Viewport.SetBack var1 ejesen.SetPosition todo, 5.2, 3.8, 0 ejesen.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espacio.Viewport.SetBack var1 pend1.SetPosition todo, -5.4, 5.5, 0 pend1.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) pend1.AddRotation D3DRMCOMBINE_AFTER, 1, 0, 0, (180 * deg2rad) espacio.Viewport.SetBack var1 todo.AddChild base base.AddChild baseguia base.AddChild baseguia1

Page 278: Diseño y Simulación de un sistema mecánico subactuado

� ��

base.AddChild polea base.AddChild polea1 base.AddChild bandadent baseguia.AddChild guia baseguia.AddChild guia1 polea.AddChild motor polea.AddChild senint guia.AddChild carro guia1.AddChild carro guia1.AddChild carrob carro.AddChild senint1 senint1.AddChild ejesen ejesen.AddChild pend1 End With inc = 4 posx = -52 posy = 4 posz = -45 espacio.CameraFrame.SetPosition Nothing, posx, posy, posz espacio.CameraFrame.AddRotation D3DRMCOMBINE_BEFORE, 0, 1, 0, (45 * deg2rad) contv = 3 End Sub Private Sub lqr_Click() If Check6.Value = 1 Then Check6.Value = 0 Else Check6.Value = 0 End If Check5.Value = 0 Timer1.Enabled = False stopp.Visible = False ini_simus.Visible = True Load lqrr lqrr.Show End Sub Private Sub Modificar_Click() Check5.Value = 0 Timer1.Enabled = False stopp.Visible = False ini_simus.Visible = True Load Modifi Modifi.Show End Sub

Page 279: Diseño y Simulación de un sistema mecánico subactuado

� ���

Private Sub mover_mas_x_Click() posz = posz + inc posx = posx - inc espacio.CameraFrame.SetPosition Nothing, posx, posy, posz espacio.Render End Sub Private Sub mover_menos_x_Click() posz = posz - inc posx = posx + inc espacio.CameraFrame.SetPosition Nothing, posx, posy, posz espacio.Render End Sub Private Sub natural_Click() cont = 0 nat = 1 natural.Enabled = False Controlado.Enabled = True End Sub Private Sub Option1_Click() swing_up = 1 End Sub Private Sub Option2_Click() swing_up = 0 End Sub Private Sub pend2_Click() angulo = 180 * deg2rad d_angulo_phi = 0 pos_x = 0 d_pos_x = 0 Load ini Unload Me Me.Hide ini.Show End Sub Private Sub graf_var_Click() graf.Show End Sub Private Sub Reestablecerval_Click() Unload Form1 Load Form1 Form1.Show End Sub

Page 280: Diseño y Simulación de un sistema mecánico subactuado

� ���

Private Sub refex_Change() x_refsimple = Val(refex.Value) / 10 Text9.Text = Val(refex.Value) / 10 End Sub Private Sub restab_Click() gain1 = -27.552 gain2 = -26.07 gain3 = -95.0953 gain4 = -22.5443 gaini = 3.1623 gains1 = 1.04 smcgain = 24 mdsd = 1 End Sub Private Sub sal_Click() End End Sub Private Sub sal_swing_Click() End End Sub Private Sub Sliding_Click() If Check6.Value = 1 Then Check6.Value = 0 Else Check6.Value = 0 End If Check5.Value = 0 Timer1.Enabled = False stopp.Visible = False ini_simus.Visible = True Load slidings slidings.Show End Sub Private Sub stopp_Click() Timer1.Enabled = False stopp.Visible = False ini_simus.Visible = True Command2.Enabled = True End Sub

Page 281: Diseño y Simulación de un sistema mecánico subactuado

� ���

Private Sub su_Click() If Check6.Value = 1 Then Check6.Value = 0 Else Check6.Value = 0 End If Check5.Value = 0 Timer1.Enabled = False stopp.Visible = False ini_simus.Visible = True Load swing swing.Show End Sub Private Sub subir_y_Click() posy = posy - inc espacio.CameraFrame.SetPosition Nothing, posx, posy, posz espacio.Render End Sub Private Sub bajar_y_Click() posy = posy + inc espacio.CameraFrame.SetPosition Nothing, posx, posy, posz espacio.Render End Sub Private Sub sur1_Click() mdsd = 1 End Sub Private Sub sur2_Click() mdsd = 2 End Sub Private Sub sur3_Click() mdsd = 3 End Sub Private Sub Text1_Change() d_angulo_phi = Val(Text1.Text) * deg2rad End Sub Private Sub Text2_Change() d_pos_x = Val(Text2.Text) * deg2rad End Sub Private Sub Text4_Change() If (StrComp(Text4.Text, "")) = 0 Then Else

Page 282: Diseño y Simulación de un sistema mecánico subactuado

� ���

If (Abs(Val(Text4.Text)) <= 360 And Abs(Val(Text4.Text)) >= 0) Then ejesen.AddRotation D3DRMCOMBINE_BEFORE, 1, 0, 0, (Val(Text4.Text) * deg2rad - angulo) angulo = Val(Text4.Text) * deg2rad If Check3.Value = 1 Then d_angulo_phi = 0 d_pos_x = 0 End If espacio.Render Else Text4.Text = Atn(Sin(Val(Text4.Text)) / Sqr(-Sin(Val(Text4.Text)) * Sin(Val(Text4.Text)) + 1)) * rad2deg End If End If End Sub Private Sub Text7_Change() If (StrComp(Text7.Text, "")) = 0 Then Else If (Abs(Val(Text7.Text)) <= carrera And Abs(Val(Text7.Text)) >= 0) Then posxsb = Val(Text7.Text) 'Text8.Text = posxsb x_abs = Abs(posxsb - pos_x) 'Text9.Text = x_abs If (posxsb < pos_x) Then x_abs = -1 * x_abs End If If posxsb > carrera Then x_abs = carrera End If If posxsb < -carrera Then x_abs = -carrera End If x_abs = (carrgraf / carrera) * x_abs If (Abs(posxsb * carrgraf / carrera) > carrgraf) Then Unload Me Dialog.Show End If pos_x = posxsb If Check3.Value = 1 Then d_angulo_phi = 0 d_pos_x = 0 End If carro.AddTranslation D3DRMCOMBINE_BEFORE, x_abs, 0, 0 Else Dialog.Show Timer1.Enabled = False

Page 283: Diseño y Simulación de un sistema mecánico subactuado

� ���

stopp.Visible = False ini_simus.Visible = True Command2.Enabled = True Text7.Text = 0 End If End If espacio.Render End Sub Private Sub Text9_Change() Dim posxsbref, x_absref As Double If (StrComp(Text9.Text, "")) = 0 Then 'Text7.Text = "0" Else If (Abs(Val(Text9.Text)) <= carrgraf And Abs(Val(Text9.Text)) >= 0) Then posxsbref = refex.Value / 10 'Text8.Text = posxsb x_absref = Abs(posxsbref - posxref) 'Text9.Text = x_abs If (posxsbref < posxref) Then x_absref = -1 * x_absref End If If posxsbref > carrera Then x_absref = carrera End If If posxsbref < -carrera Then x_absref = -carrera End If x_absref = (carrgraf / carrera) * x_absref If (Abs(posxsbref * carrgraf / carrera) > carrgraf) Then End If posxref = posxsbref carrob.AddTranslation D3DRMCOMBINE_BEFORE, x_absref, 0, 0 End If End If espacio.Render End Sub Private Sub Timer1_Timer() Text3.Text = pos_x Text5.Text = d_pos_x Text6.Text = angulo * rad2deg Text8.Text = d_angulo_phi * rad2deg

Page 284: Diseño y Simulación de un sistema mecánico subactuado

� ���

If (angulo > pi) Then angulo = angulo - 2 * pi End If If (angulo <= -pi) Then angulo = angulo + 2 * pi End If Runge_kuttasimple.recibo pos_x, d_pos_x, angulo, d_angulo_phi, 2 ejesen.AddRotation D3DRMCOMBINE_BEFORE, 1, 0, 0, (vy3(1) - angulo) x_abs = Abs(vy1(1) - pos_x) If (vy1(1) < pos_x) Then x_abs = -1 * x_abs End If x_abs = (carrgraf / carrera) * x_abs If (Abs(vy1(1) * carrgraf / carrera) >= carrgraf) Then natural.Enabled = False Controlado.Enabled = True End If carro.AddTranslation D3DRMCOMBINE_BEFORE, x_abs, 0, 0 prueba = (angulo * rad2deg) graf.dibujar vy1(1), vy2(1), vy3(1), vy4(1) angulo = vy3(1) d_angulo_phi = vy4(1) pos_x = vy1(1) d_pos_x = vy2(1) vy1g(crk) = pos_x vy2g(crk) = d_pos_x vy3g(crk) = angulo * rad2deg vy4g(crk) = d_angulo_phi * rad2deg vy1auxg(crk) = vy1aux(1) espacio.Render End Sub Private Sub zoom_mas_Click() If contv = 1 Then aux_x = posx 'BACKUP DE LAS POSICIONES

Page 285: Diseño y Simulación de un sistema mecánico subactuado

� ���

aux_y = posy aux_z = posz posz = posz + 3 espacio.CameraFrame.SetPosition Nothing, posx, posy, posz espacio.Render posx = aux_x posy = aux_y posz = aux_z End If If contv = 2 Then aux_x = posx 'BACKUP DE LAS POSICIONES aux_y = posy aux_z = posz posx = aux_x posy = aux_y posz = aux_z End If posz = posz + 5 posx = posx + 5 espacio.CameraFrame.SetPosition Nothing, posx, posy, posz espacio.Render End Sub Private Sub zoom_menos_Click() posz = posz - 5 posx = posx - 5 espacio.CameraFrame.SetPosition Nothing, posx, posy, posz espacio.Render End Sub Private Sub Espacio_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) m_bMouseDown = True acum1 = Y acum3 = X End Sub Private Sub Form_Resize() Me.WindowState = 2 End Sub Private Sub manipular_Click() rota_Click End Sub Function rota_Click()

Page 286: Diseño y Simulación de un sistema mecánico subactuado

� ���

manipular.Appearance = 1 rotar_click.Appearance = 0 rotar = True lupa = False Mover = False roty = 1 End Function Private Sub rotar_click_Click() rotar_click.Appearance = 1 'zoom.Appearance = 0 manipular.Appearance = 0 rotar = True lupa = False Mover = False roty = 0 End Sub Private Sub pan_Click() rotar = False Mover = True lupa = False End Sub If m_bMouseDown = False Then Exit Sub End If If rotar = True Then RotateTrackBall CInt(X), CInt(Y) End If If Mover = True Then acum.z = -75 acum3 = X acum1 = Y acum.X = ((X * -0.01) + (acum3 * 0.13) + 1.3) acum.Y = ((Y * 0.01) - (acum1 * 0.06) - 0.6) espacio.CameraFrame.SetPosition Nothing, acum.X, acum.Y, acum.z End If If lupa = True Then acum2 = Y If acum1 < acum2 Then mov = mov - 1 Else mov = mov + 1 End If acum.z = (mov * 0.2) - 45 espacio.CameraFrame.SetPosition Nothing, acum.X, acum.Y, acum.z

Page 287: Diseño y Simulación de un sistema mecánico subactuado

� ��

End If espacio.Render End Sub Private Sub Espacio_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) m_bMouseDown = False End Sub Private Sub zoom_Click() manipular.Appearance = 0 rotar_click.Appearance = 0 rotar = False lupa = True Mover = False End Sub Private Sub centrar_Click() manipular.Appearance = 0 rotar_click.Appearance = 0 todo.AddTranslation D3DRMCOMBINE_REPLACE, 0, 0, 0 espacio.CameraFrame.SetPosition Nothing, -52, 4, -45 espacio.Render centrar.Appearance = 0 posx = -52 posy = 4 posz = -45 End Sub Private Sub Form_unload(cancel As Integer) angulo = 180 * deg2rad d_angulo_phi = 0 pos_x = 0 d_pos_x = 0 Unload graph Load ini ini.Show Unload Runge_kuttasimple Unload Me Me.Hide End Sub Formulario de Simulación Péndulo Doble Private Sub Form_Load() Text10.Text = pos_xd Text9.Text = d_pos_xd Text6.Text = angulo_phid Text8.Text = d_angulo_phid Text12.Text = angulo_teta

Page 288: Diseño y Simulación de un sistema mecánico subactuado

� ��

Text11.Text = d_angulo_teta Text16.Text = bbb Text18.Text = ccc slpd = 0 dpxsb = 0 crk = 0 Load Runge_kutta Load graph Frame5.Height = 1095 Frame5.Left = 240 Frame5.Top = 8880 Frame5.Width = 4335 Panel_theta.Left = 120 panel_phi.Left = 1440 Frame1.Left = 2760 Check1.Value = 1 deg2rad = 3.14159265 / 180 Timer1.Enabled = False angulo_teta = 0 * deg2rad angulo_phid = 180 * deg2rad d_angulo_phid = 0 d_angulo_teta = 0 pos_xd = 0 d_pos_xd = 0 bbb = 0.001 ccc = 0.1 carrera = 0.7 carrgraf = 27 posxref = 0 x_refsimple = 0 ReDim vxg(120000 ReDim vy1g(120000) ReDim vy2g(120000) ReDim vy3g(120000) ReDim vy4g(120000) ReDim vy5g(120000) ReDim vy6g(120000) ReDim vy1auxg(120000) Dim lScreenWidth As Long Dim lScreenHeight As Long lScreenWidth = GetSystemMetrics(SM_CXSCREEN) lScreenHeight = GetSystemMetrics(SM_CYSCREEN) If lScreenWidth < 1024 And lScreenHeight < 768 Then MsgBox "La resolución de su pantalla no es la adecuada. Asegurese que sea de mínimo 1024x768 pixeles", vbOKOnly, "Error de Resolución" End End If CommonDialog1.flags = cdlOFNOverwritePrompt CommonDialog1.CancelError = True Set DirectX = New DirectX7

Page 289: Diseño y Simulación de un sistema mecánico subactuado

� ���

With espaciod deg2rad = 3.14159265 / 180 espaciod.SceneFrame.SetSceneBackgroundRGB 0.1, 0.4, 0.65 '(80,150,255) espaciod.AmbientLight.SetColorRGB 50 / 255, 50 / 255, 50 / 255 Set todo1 = .D3DRM.CreateFrame(.SceneFrame) .StartWindowed Set base = .D3DRM.CreateFrame(.SceneFrame) Set base_m = .D3DRM.CreateMeshBuilder() base_m.LoadFromFile App.Path + "\baseX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing base.AddVisual base_m Set baseguia = .D3DRM.CreateFrame(.SceneFrame) Set baseguia_m = .D3DRM.CreateMeshBuilder() baseguia_m.LoadFromFile App.Path + "\base_guia_newX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing baseguia.AddVisual baseguia_m Set baseguia1 = .D3DRM.CreateFrame(.SceneFrame) Set baseguia1_m = .D3DRM.CreateMeshBuilder() baseguia1_m.LoadFromFile App.Path + "\base_guia_newX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing baseguia1.AddVisual baseguia1_m Set guia = .D3DRM.CreateFrame(.SceneFrame) Set guia_m = .D3DRM.CreateMeshBuilder() guia_m.LoadFromFile App.Path + "\guia_circularX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing guia.AddVisual guia_m Set guia1 = .D3DRM.CreateFrame(.SceneFrame) Set guia1_m = .D3DRM.CreateMeshBuilder() guia1_m.LoadFromFile App.Path + "\guia_circularX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing guia1.AddVisual guia1_m Set polea = .D3DRM.CreateFrame(.SceneFrame) Set polea_m = .D3DRM.CreateMeshBuilder() polea_m.LoadFromFile App.Path + "\poleaX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing polea.AddVisual polea_m Set polea1 = .D3DRM.CreateFrame(.SceneFrame) Set polea1_m = .D3DRM.CreateMeshBuilder() polea1_m.LoadFromFile App.Path + "\poleaX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing polea1.AddVisual polea1_m Set bandadent = .D3DRM.CreateFrame(.SceneFrame) Set bandadent_m = .D3DRM.CreateMeshBuilder() bandadent_m.LoadFromFile App.Path + "\banda_dentX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing bandadent.AddVisual bandadent_m

Page 290: Diseño y Simulación de un sistema mecánico subactuado

� ����

Set carro = .D3DRM.CreateFrame(.SceneFrame) Set carro_m = .D3DRM.CreateMeshBuilder() carro_m.LoadFromFile App.Path + "\carroX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing carro.AddVisual carro_m Set carroc = .D3DRM.CreateFrame(.SceneFrame) Set carroc_m = .D3DRM.CreateMeshBuilder() carroc_m.LoadFromFile App.Path + "\carroX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing carroc.AddVisual carroc_m Set motor = .D3DRM.CreateFrame(.SceneFrame) Set motor_m = .D3DRM.CreateMeshBuilder() motor_m.LoadFromFile App.Path + "\motor110X.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing motor.AddVisual motor_m Set senint = .D3DRM.CreateFrame(.SceneFrame) Set senint_m = .D3DRM.CreateMeshBuilder() senint_m.LoadFromFile App.Path + "\Sensor InteligX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing senint.AddVisual senint_m Set senint1 = .D3DRM.CreateFrame(.SceneFrame) Set senint1_m = .D3DRM.CreateMeshBuilder() senint1_m.LoadFromFile App.Path + "\Sensor InteligXX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing senint1.AddVisual senint1_m Set senint2 = .D3DRM.CreateFrame(.SceneFrame) Set senint2_m = .D3DRM.CreateMeshBuilder() senint2_m.LoadFromFile App.Path + "\Sensor InteligXX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing senint2.AddVisual senint2_m Set pend21 = .D3DRM.CreateFrame(.SceneFrame) Set pend21_m = .D3DRM.CreateMeshBuilder() pend21_m.LoadFromFile App.Path + "\pend21X.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing pend21.AddVisual pend21_m Set pend1 = .D3DRM.CreateFrame(.SceneFrame) Set pend1_m = .D3DRM.CreateMeshBuilder() pend1_m.LoadFromFile App.Path + "\pend1X.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing pend1.AddVisual pend1_m Set ejesen1 = .D3DRM.CreateFrame(.SceneFrame) Set ejesen1_m = .D3DRM.CreateMeshBuilder() ejesen1_m.LoadFromFile App.Path + "\ejeX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing ejesen1.AddVisual ejesen1_m

Page 291: Diseño y Simulación de un sistema mecánico subactuado

� ����

Set ejesen2 = .D3DRM.CreateFrame(.SceneFrame) Set ejesen2_m = .D3DRM.CreateMeshBuilder() ejesen2_m.LoadFromFile App.Path + "\ejeX.x", 0, D3DRMLOAD_FROMFILE, Nothing, Nothing ejesen2.AddVisual ejesen2_m var1 = 5000 base.SetPosition todo1, 0, 0, 0 '10 5 0 base.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espaciod.Viewport.SetBack var1 baseguia.SetPosition todo1, 28.2, 0, -3.1 '32 3 30 baseguia.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (0 * deg2rad) espaciod.Viewport.SetBack var1 baseguia1.SetPosition todo1, -28.3, 0, -3.1 '32 3 30 baseguia1.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (0 * deg2rad) espaciod.Viewport.SetBack var1 guia.SetPosition todo1, 1.6, 1.9, 0 guia.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espaciod.Viewport.SetBack var1 guia1.SetPosition todo1, 4.6, 1.9, 0 guia1.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espaciod.Viewport.SetBack var1 polea.SetPosition todo1, 3.1, 0, -30.3 '(z,y,x)(polea izquierda) polea.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espaciod.Viewport.SetBack var1 polea1.SetPosition todo1, 3.1, 0, 30.7 '(z,y,x)(polea der.) polea1.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espaciod.Viewport.SetBack var1 bandadent.SetPosition todo1, 3.1, 1.2, 0.2 '(z,y,x) bandadent.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espaciod.Viewport.SetBack var1 carro.SetPosition todo1, 0, 1.9, -3.1 carro.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (0 * deg2rad) espaciod.Viewport.SetBack var1 carroc.SetPosition todo1, 1110, 1111.9, -1113.1 carroc.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (0 * deg2rad) espaciod.Viewport.SetBack var1 motor.SetPosition todo1, 1, 1.3, -30.3 motor.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espaciod.Viewport.SetBack var1

Page 292: Diseño y Simulación de un sistema mecánico subactuado

� ����

senint.SetPosition todo1, 30.3, 1.25, 3.9 senint.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (180 * deg2rad) espaciod.Viewport.SetBack var1 senint1.SetPosition todo1, 0, 3.7, -4.2 senint1.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (0 * deg2rad) espaciod.Viewport.SetBack var1 senint2.SetPosition todo1, 0, 15.6, -5 senint2.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (0 * deg2rad) senint2.AddRotation D3DRMCOMBINE_AFTER, 0, 0, 1, (180 * deg2rad) espaciod.Viewport.SetBack var1 ejesen1.SetPosition todo1, 4.9, 3.8, 0 ejesen1.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espaciod.Viewport.SetBack var1 ejesen2.SetPosition todo1, 6.1, -15.6, 0 ejesen2.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) espaciod.Viewport.SetBack var1 pend21.SetPosition todo1, 5.1, 5.5, 0 pend21.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) pend21.AddRotation D3DRMCOMBINE_AFTER, 0, 0, 1, (180 * deg2rad) espaciod.Viewport.SetBack var1 pend1.SetPosition todo1, -6.2, 24.8, 0 pend1.AddRotation D3DRMCOMBINE_AFTER, 0, 1, 0, (90 * deg2rad) pend1.AddRotation D3DRMCOMBINE_AFTER, 1, 0, 0, (180 * deg2rad) espaciod.Viewport.SetBack var1 todo1.AddChild base base.AddChild baseguia base.AddChild baseguia1 base.AddChild polea base.AddChild polea1 base.AddChild bandadent baseguia.AddChild guia baseguia.AddChild guia1 polea.AddChild motor polea.AddChild senint guia.AddChild carro guia.AddChild carroc guia1.AddChild carro guia1.AddChild carroc carro.AddChild senint1 senint1.AddChild ejesen1 ejesen1.AddChild pend21 pend21.AddChild senint2 senint2.AddChild ejesen2 ejesen2.AddChild pend1

Page 293: Diseño y Simulación de un sistema mecánico subactuado

� ����

End With inc = 4 posx = -87 posy = 4 posz = -82 'Posicion de la Camara espaciod.CameraFrame.SetPosition Nothing, posx, posy, posz ' -5 5 70 buena vista 'Vista Derecha espaciod.CameraFrame.AddRotation D3DRMCOMBINE_BEFORE, 0, 1, 0, (45 * deg2rad) End Sub Private Sub Form_unload(cancel As Integer) Unload Runge_kutta Unload graph angulo = 180 * deg2rad d_angulo_phi = 0 pos_x = 0 d_pos_x = 0 Timer1.Enabled = False angulo_teta = 0 * deg2rad angulo_phid = 180 * deg2rad d_angulo_phid = 0 d_angulo_teta = 0 pos_xd = 0 d_pos_xd = 0 Unload form2 Load ini ini.Show End Sub Private Sub lqr_doble_Click() Check3.Value = 0 Timer1.Enabled = False stopp_d.Visible = False ini_simud.Visible = True Load lqrr_doble lqrr_doble.Show End Sub Private Sub lqr1_Click() gd1 = 15.7221 gd2 = 31.7154 gd3 = 190.4397 gd4 = 65.0519 gd5 = 396.3124 gd6 = 56.1956

Page 294: Diseño y Simulación de un sistema mecánico subactuado

� ����

gdi = -0.7071 If Check3.Value = 1 Then Check3.Value = 0 Check3.Value = 1 Else Check3.Value = 1 Check3.Value = 0 End If End Sub Private Sub lqr2_Click() gd1 = 0.7071 gd2 = 0.6061 gd3 = 13.4541 gd4 = 6.4199 gd5 = 54.1951 gd6 = 7.4119 gdi = 0 If Check3.Value = 1 Then Check3.Value = 0 Check3.Value = 1 Else Check3.Value = 1 Check3.Value = 0 End If End Sub Private Sub modificarpar_Click() Check2.Value = 0 Timer1.Enabled = False stopp_d.Visible = False ini_simud.Visible = True Load Modifi Modifi.Show End Sub Private Sub mover_mas_x_Click() posz = posz + inc posx = posx - inc espaciod.CameraFrame.SetPosition Nothing, posx, posy, posz espaciod.Render End Sub Private Sub mover_menos_x_Click() posz = posz - inc posx = posx + inc espaciod.CameraFrame.SetPosition Nothing, posx, posy, posz espaciod.Render End Sub

Page 295: Diseño y Simulación de un sistema mecánico subactuado

� ����

Private Sub rest_Click() posx = -67 posy = 18 posz = -62 espaciod.CameraFrame.SetPosition Nothing, posx, posy, posz espaciod.Render End Sub Private Sub natural_Click() cont = 0 nat = 1 natural.Enabled = False Controlado.Enabled = True End Sub Private Sub Option1_Click() slpd = 1 Frame12.Visible = True Check2.Value = 0 Check2.Enabled = False End Sub Private Sub Option2_Click() slpd = 0 Check2.Enabled = True Frame12.Visible = False End Sub Private Sub pend11_Click() angulo = 180 * deg2rad d_angulo_phi = 0 pos_x = 0 d_pos_x = 0 Timer1.Enabled = False angulo_teta = 0 * deg2rad angulo_phid = 180 * deg2rad d_angulo_phid = 0 d_angulo_teta = 0 pos_xd = 0 d_pos_xd = 0 Unload form2 Load ini ini.Show End Sub Private Sub refex_Change() x_refsimple = Val(refex.Value) / 10 Text13.Text = Val(refex.Value) / 10 End Sub

Page 296: Diseño y Simulación de un sistema mecánico subactuado

� ����

Private Sub Resspendo_Click() Unload form2 Load form2 form2.Show End Sub Private Sub sal_doble_Click() End End Sub Private Sub salir_Click() End End Sub Private Sub stopp_d_Click() Timer1.Enabled = False stopp_d.Visible = False ini_simud.Visible = True Command2.Enabled = True Command4.Enabled = True End Sub Private Sub subir_y_Click() posy = posy - inc espaciod.CameraFrame.SetPosition Nothing, posx, posy, posz ' -5 5 70 buena vista espaciod.Render End Sub Private Sub bajar_y_Click() posy = posy + inc espaciod.CameraFrame.SetPosition Nothing, posx, posy, posz espaciod.Render End Sub Private Sub Text1_Change() d_angulo_phid = Val(Text1.Text) * deg2rad sumavs = 0 End Sub Private Sub Text13_Change() Dim posxsbref, x_absref As Double If (StrComp(Text13.Text, "")) = 0 Then 'Text7.Text = "0" Else If (Abs(Val(Text13.Text)) <= carrgraf And Abs(Val(Text13.Text)) >= 0) Then posxsbref = refex.Value / 10 'Text8.Text = posxsb x_absref = Abs(posxsbref - posxref) 'Text9.Text = x_abs If (posxsbref < posxref) Then x_absref = -1 * x_absref

Page 297: Diseño y Simulación de un sistema mecánico subactuado

� ���

End If If posxsbref > carrera Then x_absref = carrera End If If posxsbref < -carrera Then x_absref = -carrera End If x_absref = (carrgraf / carrera) * x_absref If (Abs(posxsbref * carrgraf / carrera) > carrgraf) Then End If posxref = posxsbref carroc.AddTranslation D3DRMCOMBINE_BEFORE, x_absref, 0, 0 End If End If espaciod.Render End Sub Private Sub Text2_Change() d_angulo_teta = Val(Text2.Text) * deg2rad sumavs = 0 End Sub Private Sub Text3_Change() d_pos_xd = Val(Text3.Text) * deg2rad sumavs = 0 End Sub Private Sub Text4_Change() If (StrComp(Text4.Text, "")) = 0 Then Else If (Abs(Val(Text4.Text)) <= 360 And Abs(Val(Text4.Text)) >= 0) Then ejesen1.AddRotation D3DRMCOMBINE_BEFORE, 1, 0, 0, (Val(Text4.Text) * deg2rad - angulo_phid) angulo_phid = Val(Text4.Text) * deg2rad If Check1.Value = 1 Then d_angulo_phid = 0 d_angulo_teta = 0 d_pos_xd = 0 End If 'd_angulo_phid = 0 espaciod.Render Else Text4.Text = Atn(Sin(Val(Text4.Text)) / Sqr(-Sin(Val(Text4.Text)) * Sin(Val(Text4.Text)) + 1)) * rad2deg 'Arcsin(X) = Atn(X / Sqr(-X * X + 1))

Page 298: Diseño y Simulación de un sistema mecánico subactuado

� ���

End If End If sumavs = 0 End Sub Private Sub Text5_Change() If (StrComp(Text5.Text, "")) = 0 Then Else If (Abs(Val(Text5.Text)) <= 360 And Abs(Val(Text5.Text)) >= 0) Then ejesen2.AddRotation D3DRMCOMBINE_BEFORE, 1, 0, 0, (Val(Text5.Text) * deg2rad - angulo_teta) angulo_teta = Val(Text5.Text) * deg2rad If Check1.Value = 1 Then d_angulo_phid = 0 d_angulo_teta = 0 d_pos_xd = 0 End If 'd_angulo_teta = 0 espaciod.Render Else Text5.Text = Atn(Sin(Val(Text5.Text)) / Sqr(-Sin(Val(Text5.Text)) * Sin(Val(Text5.Text)) + 1)) * rad2deg End If End If sumavs = 0 End Sub Private Sub Text5_KeyUp(keyCode As Integer, Shift As Integer) If Not ((keyCode >= 96 And keyCode < 106) Or (keyCode >= 48 And keyCode < 58) Or keyCode = 110 Or (keyCode >= 37 And keyCode <= 40) Or keyCode = 46) Then End If End Sub Private Sub Text7_Change() If (StrComp(Text7.Text, "")) = 0 Then Else If (Abs(Val(Text7.Text)) <= carrera And Abs(Val(Text7.Text)) >= 0) Then posxsbd = Val(Text7.Text) 'Text8.Text = posxsb x_absd = Abs(posxsbd - pos_xd) 'Text9.Text = x_abs If (posxsbd < pos_xd) Then x_absd = -1 * x_absd End If

Page 299: Diseño y Simulación de un sistema mecánico subactuado

� ����

If posxsbd > carrera Then x_absd = carrera End If If posxsbd < -carrera Then x_absd = -carrera End If x_absd = (27 / carrera) * x_absd If (Abs(posxsbd * 27 / carrera) > 27) Then Unload Me Dialog1.Show End If pos_xd = posxsbd If Check1.Value = 1 Then d_angulo_phid = 0 d_angulo_teta = 0 d_pos_xd = 0 End If 'd_pos_xd = 0 carro.AddTranslation D3DRMCOMBINE_BEFORE, x_absd, 0, 0 Else Dialog1.Show Text7.Text = 0 Timer1.Enabled = False stopp_d.Visible = False ini_simud.Visible = True Command2.Enabled = True Command4.Enabled = True End If End If sumavs = 0 espaciod.Render End Sub Private Sub Timer1_Timer() Text10.Text = pos_xd Text9.Text = d_pos_xd Text6.Text = angulo_phid * rad2deg Text8.Text = d_angulo_phid * rad2deg Text12.Text = angulo_teta * rad2deg Text11.Text = d_angulo_teta * rad2deg If (angulo_teta > pi) Then angulo_teta = angulo_teta - 2 * pi End If If (angulo_teta <= -pi) Then

Page 300: Diseño y Simulación de un sistema mecánico subactuado

� ����

angulo_teta = angulo_teta + 2 * pi End If If (angulo_phid > pi) Then angulo_phid = angulo_phid - 2 * pi End If If (angulo_phid <= -pi) Then angulo_phid = angulo_phid + 2 * pi End If nnn = 2 Runge_kutta.recibo pos_xd, d_pos_xd, angulo_phid, d_angulo_phid, angulo_teta, d_angulo_teta, nnn ejesen1.AddRotation D3DRMCOMBINE_BEFORE, 1, 0, 0, (vy3d(1) - angulo_phid) ejesen2.AddRotation D3DRMCOMBINE_BEFORE, 1, 0, 0, (vy5d(1) - angulo_teta) 'Se calcula la pocisión absoluta que se debe mover el carro x_absd = Abs(vy1d(1) - pos_xd) If (vy1d(1) < pos_xd) Then x_absd = -1 * x_absd End If x_absd = (27 / carrera) * x_absd If (Abs(vy1d(1) * 27 / carrera) >= 27) Then natural.Enabled = False Controlado.Enabled = True End If carro.AddTranslation D3DRMCOMBINE_BEFORE, x_absd, 0, 0 graf2.dibujar vy1d(1), vy2d(1), vy3d(1), vy4d(1), vy5d(1), vy6d(1) pos_xd = vy1d(1) d_pos_xd = vy2d(1) angulo_phid = vy3d(1) d_angulo_phid = vy4d(1) angulo_teta = vy5d(1) d_angulo_teta = vy6d(1) vy1g(crk) = pos_xd vy2g(crk) = d_pos_xd vy3g(crk) = angulo_phid * rad2deg vy4g(crk) = d_angulo_phid * rad2deg vy5g(crk) = angulo_teta * rad2deg vy6g(crk) = d_angulo_teta * rad2deg vy1auxg(crk) = vy1aux(1) espaciod.Render End Sub Private Sub voltage_Change()

Page 301: Diseño y Simulación de un sistema mecánico subactuado

� ����

If (StrComp(voltage.Text, "")) = 0 Then Else If (Abs(Val(voltage.Text)) <= 24 And Abs(Val(voltage.Text)) >= 0) Then dpxsb = Val(voltage.Text) Else If (Val(voltage.Text)) < -24 Then dpxsb = -24 Else dpxsb = 24 End If End If End If voltagesb.Value = dpxsb End Sub Private Sub voltagesb_Change() voltage.Text = voltagesb.Value dpxsb = voltagesb.Value End Sub Private Sub zoom_mas_Click() posz = posz + inc posx = posx + inc espaciod.CameraFrame.SetPosition Nothing, posx, posy, posz espaciod.Render End Sub Private Sub zoom_menos_Click() posz = posz - inc posx = posx - inc espaciod.CameraFrame.SetPosition Nothing, posx, posy, posz espaciod.Render End Sub Private Sub cmdSalir_Click() Unload Me ini.Show End Sub Private Sub espaciod_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) m_bMouseDown = True acum1 = Y acum3 = X End Sub Private Sub Form_Resize() Me.WindowState = 2 End Sub

Page 302: Diseño y Simulación de un sistema mecánico subactuado

� ����

Private Sub manipular_Click() rota_Click End Sub Function rota_Click() manipular.Appearance = 1 rotar_click.Appearance = 0 rotar = True lupa = False Mover = False rotyd = 1 End Function Private Sub rotar_click_Click() rotar_click.Appearance = 1 manipular.Appearance = 0 rotar = True lupa = False Mover = False rotyd = 0 End Sub Private Sub pan_Click() rotar = False Mover = True lupa = False End Sub Private Sub espaciod_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If m_bMouseDown = False Then Exit Sub End If If rotar = True Then RotateTrackBalld CInt(X), CInt(Y) End If If Mover = True Then acum.X = ((X * -0.01) + (acum3 * 0.013) + 1.3) acum.Y = ((Y * 0.01) - (acum1 * 0.006) - 0.6) espaciod.CameraFrame.SetPosition Nothing, acum.X, acum.Y, acum.z End If If lupa = True Then acum2 = Y If acum1 < acum2 Then mov = mov - 1 Else mov = mov + 1 End If acum.z = (mov * 0.8) - 45 espaciod.CameraFrame.SetPosition Nothing, acum.X, acum.Y, acum.z

Page 303: Diseño y Simulación de un sistema mecánico subactuado

� ����

End If espaciod.Render End Sub Private Sub espaciod_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) m_bMouseDown = False End Sub Private Sub centrar_Click() manipular.Appearance = 0 rotar_click.Appearance = 0 todo1.AddTranslation D3DRMCOMBINE_REPLACE, 0, 0, 0 espaciod.CameraFrame.SetPosition Nothing, -87, 4, -82 ' -5 5 70 buena vista espaciod.Render centrar.Appearance = 0 posx = -87 posy = 4 posz = -82 End Sub Codigo del formulario Runge kutta Option Explicit Function pendulum() kt = 0.1475 kf = 0.1 pi = 3.14159265358979 grav = 9.81 mc = 0.5 ls = 0.5 area = pi * ((1.1 ^ 2) / 4) ms = (den * (ls * 100) * area) / 1000 iner = (ms * ls ^ 2) / 3 integral = 0 sumavs = 0 sumavsant = 0 ki = 3.1623 alpha = mc + ms beta = 0.5 * ms * ls gamma = iner + (ms * ls ^ 2) / 4 zita = 0.5 * ms * grav * ls h9 = km * km * kg * kg / ((rr * rr) * ra) h10 = km * kg / (rr * ra) w0 = (ms * grav * 0.5 * ls / iner) ^ (0.5) End Function Function v_in(ByVal T As Double, ByVal x1 As Double, ByVal x2 As Double, ByVal x3 As Double, ByVal x4 As Double) As Double Dim ys, ys_dot, ks, gs, alphas, ss1, ss, phis, sli As Double If (Abs(x3) < pi / 2) Then ys = (x1 - x_refsimple) + (4 * 0.5 * ls * (Log((1 + Tan(0.5 * x3)) / (1 - Tan(0.5 * x3)))) / (3)) ys_dot = x2 + (4 * 0.5 * ls * x4) / (3 * Cos(x3))

Page 304: Diseño y Simulación de un sistema mecánico subactuado

� ����

ks = ((4 * (mc + ms)) / 3) - ms * Cos(x3) * Cos(x3) gs = (9.81 * (ms * ((4 / 3) - Cos(x3) * Cos(x3)) + 4 * mc / 3) / ks) + ((4 * 0.5 * ls * x4 * x4) / (3 * Cos(x3))) alphas = 15 / gs ss1 = Tan(x3) + (ys + ys_dot) * alphas ss = x4 + alphas * Cos(x3) * Cos(x3) * (ys_dot + gs * Tan(x3)) + alphas * ss1 phis = 1 + (8 * 0.5 * ls * alphas * x4 * Sin(x3)) / 3 If mdsd = 1 Then sli = ss * phis Else sli = ss End If End If If Not (Form1.Controlado.Enabled) Then If swing_up = 1 Then x3_aux = x3 x3_aux1 = Abs(x3_aux) If ((x3_aux1 < 35 * deg2rad And x3_aux1 > 30 * deg2rad)) Then 'Or (x3 > 325 * deg2rad And x3 < 335 * deg2rad)) Then v_in = 0 Else If (x3_aux1 < 30 * deg2rad) Then 'Or x3 > 330 * deg2rad) Then If smc = 1 And lqrc = 0 Then If smclow = 0 Then If mdsd = 3 Then v_in = (ss + ((ms + mc) * 9.81 * Sin(x3) - ms * 0.5 * ls * x4 * x4 * Cos(x3) * Sin(x3))) / Cos(x3) Else If (sli > 0) Then v_in = (smcgain + ((ms + mc) * 9.81 * Sin(x3) - ms * 0.5 * ls * x4 * x4 * Cos(x3) * Sin(x3))) / Cos(x3) Else v_in = (-smcgain + ((ms + mc) * 9.81 * Sin(x3) - ms * 0.5 * ls * x4 * x4 * Cos(x3) * Sin(x3))) / Cos(x3) End If End If Else If (sli / 2) <= 1 Then v_in = (((sli / 2) * smcgain) + ((ms + mc) * 9.81 * Sin(x3) - ms * 0.5 * ls * x4 * x4 * Cos(x3) * Sin(x3))) / Cos(x3) Else If (sli / 2) > 0 Then v_in = (smcgain + ((ms + mc) * 9.81 * Sin(x3) - ms * 0.5 * ls * x4 * x4 * Cos(x3) * Sin(x3))) / Cos(x3) Else v_in = (-smcgain + ((ms + mc) * 9.81 * Sin(x3) - ms * 0.5 * ls * x4 * x4 * Cos(x3) * Sin(x3))) / Cos(x3) End If End If End If

Page 305: Diseño y Simulación de un sistema mecánico subactuado

� ����

Else v_in = -(gain1 * (x1 - x_refsimple) + gain2 * x2 + gain3 * x3_aux + gain4 * x4) End If Else 'SWING UP v_in = gains1 * (((0.5 * (x4 * x4) / (w0 * w0) - 1) + Cos(x3_aux)) - (0.5 * ms * ls * grav)) If (x4 * Cos(x3) < 0) Then v_in = -1 * v_in End If End If End If Else If lqrc = 0 And smc = 1 Then If smclow = 0 Then If mdsd = 3 Then v_in = (ss + ((ms + mc) * 9.81 * Sin(x3) - ms * 0.5 * ls * x4 * x4 * Cos(x3) * Sin(x3))) / Cos(x3) Else If (sli > 0) Then v_in = (smcgain + ((ms + mc) * 9.81 * Sin(x3) - ms * 0.5 * ls * x4 * x4 * Cos(x3) * Sin(x3))) / Cos(x3) Else v_in = (-smcgain + ((ms + mc) * 9.81 * Sin(x3) - ms * 0.5 * ls * x4 * x4 * Cos(x3) * Sin(x3))) / Cos(x3) End If End If Else If (sli / 2) <= 1 Then v_in = (((sli / 5) * smcgain) + ((ms + mc) * 9.81 * Sin(x3) - ms * 0.5 * ls * x4 * x4 * Cos(x3) * Sin(x3))) / Cos(x3) Else If (sli / 2) > 0 Then v_in = (smcgain + ((ms + mc) * 9.81 * Sin(x3) - ms * 0.5 * ls * x4 * x4 * Cos(x3) * Sin(x3))) / Cos(x3) Else v_in = (-smcgain + ((ms + mc) * 9.81 * Sin(x3) - ms * 0.5 * ls * x4 * x4 * Cos(x3) * Sin(x3))) / Cos(x3) End If End If End If Else x3_aux = x3 v_in = -(gain1 * (x1 - x_refsimple) + gain2 * x2 + gain3 * x3_aux + gain4 * x4) End If End If If v_in > 24 Then ' Se establece la saturación del voltaje v_in = 24

Page 306: Diseño y Simulación de un sistema mecánico subactuado

� ����

End If If v_in < -24 Then v_in = -24 End If Else v_in = 0 'Voltaje para respuesta natural End If vy1aux(1) = v_in End Function Function u(ByVal T As Double, ByVal x1 As Double, ByVal x2 As Double, ByVal x3 As Double, ByVal x4 As Double) As Double u = h10 * v_in(T, x1, x2, x3, x4) - h9 * x2 End Function ''X dot Function f(ByVal T As Double, ByVal x1 As Double, ByVal x2 As Double, ByVal x3 As Double, ByVal x4 As Double) As Double f = x2 End Function ''PHI dot Function g(ByVal T As Double, ByVal x1 As Double, ByVal x2 As Double, ByVal x3 As Double, ByVal x4 As Double) As Double g = x4 End Function ''X DOT dot Function m(ByVal T As Double, ByVal x1 As Double, ByVal x2 As Double, ByVal x3 As Double, ByVal x4 As Double) As Double 'm = (gamma * u(t, x1, x2, x3, x4) + gamma * beta * Sin(x3) * x4 ^ 2 + zita * bb * Cos(x3) * x4 - zita ^ 2 * Cos(x3) * Sin(x3) - gamma * cc * x2) / (alpha * gamma - zita * beta * Cos(x3) * Cos(x3)) m = (zita * Sin(x3) - bbb * x4 - gamma * p(T, x1, x2, x3, x4)) / (beta * Cos(x3)) 'm = (beta * Cos(x3) * zita * Sin(x3) - bb * x4 * beta * Cos(x3) - gamma * u(t, x1, x2, x3, x4) + gamma * beta * Sin(x3) * x4 * x4 - gamma * cc * x2) / (beta * beta * Cos(x3) * Cos(x3) - gamma * alpha) 'm = (beta * Cos(x3) * zita * Sin(x3) - bb * x4 * beta * Cos(x3) - gamma * u(t, x1, x2, x3, x4) + gamma * beta * Sin(x3) * x4 * x4 - gamma * cc * x2) / (beta * beta * Cos(x3) * Cos(x3) - gamma * alpha) End Function ''PHI DOT dot Function p(ByVal T As Double, ByVal x1 As Double, ByVal x2 As Double, ByVal x3 As Double, ByVal x4 As Double) As Double 'p = ((-bb * x4 + zita * Sin(x3)) / (gamma)) - beta * Cos(x3) * ((u(t, x1, x2, x3, x4) + beta * Sin(x3) * x4 * x4 - cc * x2) / (alpha * gamma - zita * beta * Cos(x3) * Cos(x3))) - beta * gamma * Cos(x3) * ((bb * Cos(x3) * x4 - zita * Cos(x3) * Sin(x3)) / (alpha * gamma * gamma - gamma * zita * beta * Cos(x3) * Cos(x3))) p = (beta * Cos(x3) * (u(T, x1, x2, x3, x4) + beta * Sin(x3) * x4 * x4 - ccc * x2) + alpha * (bbb * x4 - zita * Sin(x3))) / (beta * beta * Cos(x3) * Cos(x3) - alpha * gamma)

Page 307: Diseño y Simulación de un sistema mecánico subactuado

� ���

'p = (u(t, x1, x2, x3, x4) + beta * Sin(x3) * x4 * x4 - cc * x2 - alpha * ((beta * Cos(x3) * (zita * Sin(x3) - bb * x4) - gamma * (u(t, x1, x2, x3, x4) + beta * Sin(x3) * x4 * x4 - cc * x2)) / (beta * beta * Cos(x3) * Cos(x3) - gamma * alpha))) / (beta * Cos(x3)) 'p = ((-bb * x4 + zita * Sin(x3)) / (gamma)) - beta * Cos(x3) * ((u(t, x1, x2, x3, x4) + beta * Sin(x3) * x4 * x4 - cc * x2) / (alpha * gamma - beta * beta * Cos(x3) * Cos(x3))) - beta * beta * Cos(x3) * ((bb * Cos(x3) * x4 - zita * Cos(x3) * Sin(x3)) / (alpha * gamma * gamma - gamma * beta * beta * Cos(x3) * Cos(x3))) End Function Function kuta() Dim k11, k12, k13, k14 As Double 'los k1 para las ecuaciones Dim k21, k22, k23, k24 As Double 'los k2 para las ecuaciones Dim k31, k32, k33, k34 As Double 'los k3 para las ecuaciones Dim k41, k42, k43, k44 As Double 'los k4 para las ecuaciones Dim y1, y2, y3, y4, X, i As Double ReDim vx(N) ' REDIMENCIONAMOS LOS ARRAYS DINAMICOS ReDim vy1(N) ReDim vy2(N) ReDim vy3(N) ReDim vy4(N) ReDim vy1aux(N) y1 = y1inicial y2 = y2inicial y3 = y3inicial y4 = y4inicial For i = 0 To (N - 1) X = tmin + h * i vx(i) = X vy1(i) = y1 vy2(i) = y2 vy3(i) = y3 vy4(i) = y4 k11 = h * f(X, y1, y2, y3, y4) k12 = h * m(X, y1, y2, y3, y4) k13 = h * g(X, y1, y2, y3, y4) k14 = h * p(X, y1, y2, y3, y4) k21 = h * f(X + h / 2, y1 + k11 / 2, y2 + k12 / 2, y3 + k13 / 2, y4 + k14 / 2) k22 = h * m(X + h / 2, y1 + k11 / 2, y2 + k12 / 2, y3 + k13 / 2, y4 + k14 / 2) k23 = h * g(X + h / 2, y1 + k11 / 2, y2 + k12 / 2, y3 + k13 / 2, y4 + k14 / 2) k24 = h * p(X + h / 2, y1 + k11 / 2, y2 + k12 / 2, y3 + k13 / 2, y4 + k14 / 2) k31 = h * f(X + h / 2, y1 + k21 / 2, y2 + k22 / 2, y3 + k23 / 2, y4 + k24 / 2) k32 = h * m(X + h / 2, y1 + k21 / 2, y2 + k22 / 2, y3 + k23 / 2, y4 + k24 / 2) k33 = h * g(X + h / 2, y1 + k21 / 2, y2 + k22 / 2, y3 + k23 / 2, y4 + k24 / 2) k34 = h * p(X + h / 2, y1 + k21 / 2, y2 + k22 / 2, y3 + k23 / 2, y4 + k24 / 2)

Page 308: Diseño y Simulación de un sistema mecánico subactuado

� ���

k41 = h * f(X + h, y1 + k31, y2 + k32, y3 + k33, y4 + k34) k42 = h * m(X + h, y1 + k31, y2 + k32, y3 + k33, y4 + k34) k43 = h * g(X + h, y1 + k31, y2 + k32, y3 + k33, y4 + k34) k44 = h * p(X + h, y1 + k31, y2 + k32, y3 + k33, y4 + k34) y1 = y1 + (1 / 6) * (k11 + 2 * k21 + 2 * k31 + k41) y2 = y2 + (1 / 6) * (k12 + 2 * k22 + 2 * k32 + k42) y3 = y3 + (1 / 6) * (k13 + 2 * k23 + 2 * k33 + k43) y4 = y4 + (1 / 6) * (k14 + 2 * k24 + 2 * k34 + k44) Next i End Function Public Function recibo(ByVal y10 As Double, ByVal y20 As Double, ByVal y30 As Double, ByVal y40 As Double, y50 As Double) As Double tmin = 0 h = 0.01 crk = crk + 1 If crk > 120000 Then crk = 0 End If y1inicial = y10 y2inicial = y20 y3inicial = y30 y4inicial = y40 N = y50 Call kuta If vy1(1) >= carrera Then vy1(1) = carrera vy2(1) = 0 End If If vy1(1) <= -carrera Then vy1(1) = -carrera vy2(1) = 0 End If vxg(crk) = crk * 0.01 End Function Private Sub cmdSalir_Click() Unload Me End Sub Private Sub Form_Load() Call pendulum End Sub Private Sub Form_unload(cancel As Integer)

Page 309: Diseño y Simulación de un sistema mecánico subactuado

� ����

Call pendulum 'Unload grafica End Sub Codigo para formulario Runge_Kutta doble Option Explicit Function pendoble() pi = 3.14159265358979 grav = 9.81 mc = 0.5 'm1 = 0.1026 'm2 = 0.1026 me1 = 0.1 l1 = 0.4 l2 = 0.4 m1 = ((pi * 1.1 ^ 2 / 4) * l1 * 270) / 1000 m2 = ((pi * 1.1 ^ 2 / 4) * l2 * 270) / 1000 jj1 = m1 * l1 ^ 2 / 12 jj2 = m2 * l2 ^ 2 / 12 h1 = mc + m1 + m2 + me1 h2 = m1 * l1 * 0.5 + m2 * l1 + me1 * l1 h3 = m2 * l2 * 0.5 h4 = m1 * l1 * l1 * 0.5 * 0.5 + m2 * l1 * l1 + jj1 + me1 * l1 ^ 2 h5 = m2 * l1 * l2 * 0.5 h6 = m1 * l1 * 0.5 * grav + m2 * l1 * grav + me1 * l1 * grav h7 = m2 * l2 * l2 * 0.5 * 0.5 + jj2 h8 = grav * m2 * l2 * 0.5 h9 = km * km * kg * kg / ((rr * rr) * ra) h10 = km * kg / (rr * ra) w0 = (m1 * grav * 0.5 * l1 / (m1 * l1 * l1 / 3)) ^ (0.5) End Function Function v_ind(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double If Not (form2.Controlado.Enabled) Then kf = 0 If (x5d > 180 * deg2rad) Then x5d_aux = x5d - 2 * pi Else x5d_aux = x5d End If x5d_aux1d = Abs(x5d_aux) If (x3d > 180 * deg2rad) Then x3d_aux = x3d - 2 * pi Else x3d_aux = x3d End If x3d_aux1d = Abs(x3d_aux)

Page 310: Diseño y Simulación de un sistema mecánico subactuado

� ����

If slpd = 0 Then v_ind = -1 * (gd1 * (x1d - x_refsimple) + gd2 * x2d + gd3 * x3d + gd4 * x4d + gd5 * x5d + gd6 * x6d) Else v_ind = dpxsb End If Else kf = 0.1 v_ind = 0 End If If v_ind > 24 Then v_ind = 24 End If If v_ind < -24 Then v_ind = -24 End If vy1aux(1) = v_ind End Function Function u(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double u = h10 * v_ind(td, x1d, x2d, x3d, x4d, x5d, x6d) - h9 * x2d - ccc * x2d ' con rozamiento End Function ''AA Function aa(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double aa = ((h6 * Sin(x3d)) / (h5 * Cos(x5d))) + ((Sin(x5d) * (x4d + x6d) * (x4d + x6d)) / (Cos(x5d))) + bbb * x4d / h5 'con rozamiento End Function '' BB Function bb(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double bb = ((h4) / (h5 * Cos(x5d))) + 1 End Function '' CC Function cc(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double cc = (h2 * Cos(x3d)) / (h5 * Cos(x5d)) End Function ''DD Function dd(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double dd = (h8 * Sin(x3d + x5d) / h7) - (h5 * x4d * x4d * Sin(x5d)) / (h7) - bbb * x6d / h7 'con rozamiento End Function ''ee

Page 311: Diseño y Simulación de un sistema mecánico subactuado

� ����

Function ee(ByVal x5d) As Double ee = ((h5 * Cos(x5d)) / (h7)) + 1 End Function '' ff Function ff(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double ff = (h3 * Cos(x3d + x5d)) / (h7) End Function ''GG Function gg(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double gg = (h2 * Cos(x3d)) + (h3 * Cos(x3d + x5d)) End Function ''JJ Function jj(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double jj = h3 * Cos(x3d + x5d) End Function ''LL Function ll(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double ll = -h2 * x4d * x4d * Sin(x3d) - h3 * (x4d + x6d) * (x4d + x6d) * Sin(x3d + x5d) End Function ''F-C Function fmc(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double fmc = ff(td, x1d, x2d, x3d, x4d, x5d, x6d) - cc(td, x1d, x2d, x3d, x4d, x5d, x6d) End Function ''E-B Function emb(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double emb = ee(x5d) - bb(td, x1d, x2d, x3d, x4d, x5d, x6d) End Function ''DEN Function den(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double 'den = h1 - ((gg(td, x1d, x2d, x3d, x4d, x5d, x6d) * fmc(td, x1d, x2d, x3d, x4d, x5d, x6d)) / emb(td, x1d, x2d, x3d, x4d, x5d, x6d)) + jj(td, x1d, x2d, x3d, x4d, x5d, x6d) * ((ee(x5d) * fmc(td, x1d, x2d, x3d, x4d, x5d, x6d)) / (emb(td, x1d, x2d, x3d, x4d, x5d, x6d)) - ff(td, x1d, x2d, x3d, x4d, x5d, x6d)) den = h1 - gg(td, x1d, x2d, x3d, x4d, x5d, x6d) * fmc(td, x1d, x2d, x3d, x4d, x5d, x6d) / emb(td, x1d, x2d, x3d, x4d, x5d, x6d) + jj(td, x1d, x2d, x3d, x4d, x5d, x6d) * (ee(x5d) * fmc(td, x1d, x2d, x3d, x4d, x5d, x6d) / emb(td, x1d, x2d, x3d, x4d, x5d, x6d) - ff(td, x1d, x2d, x3d, x4d, x5d, x6d)) End Function ''num Function num(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double

Page 312: Diseño y Simulación de un sistema mecánico subactuado

� ����

'num = u(td, x1d, x2d, x3d, x4d, x5d, x6d) - gg(td, x1d, x2d, x3d, x4d, x5d, x6d) * (dd(td, x1d, x2d, x3d, x4d, x5d, x6d) - aa(td, x1d, x2d, x3d, x4d, x5d, x6d)) / emb(td, x1d, x2d, x3d, x4d, x5d, x6d) - jj(td, x1d, x2d, x3d, x4d, x5d, x6d) * dd(td, x1d, x2d, x3d, x4d, x5d, x6d) - jj(td, x1d, x2d, x3d, x4d, x5d, x6d) * ee(x5d) * (aa(td, x1d, x2d, x3d, x4d, x5d, x6d) - dd(td, x1d, x2d, x3d, x4d, x5d, x6d)) / emb(td, x1d, x2d, x3d, x4d, x5d, x6d) - ll(td, x1d, x2d, x3d, x4d, x5d, x6d) num = u(td, x1d, x2d, x3d, x4d, x5d, x6d) - gg(td, x1d, x2d, x3d, x4d, x5d, x6d) * (dd(td, x1d, x2d, x3d, x4d, x5d, x6d) - aa(td, x1d, x2d, x3d, x4d, x5d, x6d)) / emb(td, x1d, x2d, x3d, x4d, x5d, x6d) - jj(td, x1d, x2d, x3d, x4d, x5d, x6d) * dd(td, x1d, x2d, x3d, x4d, x5d, x6d) - jj(td, x1d, x2d, x3d, x4d, x5d, x6d) * ee(x5d) * (aa(td, x1d, x2d, x3d, x4d, x5d, x6d) - dd(td, x1d, x2d, x3d, x4d, x5d, x6d)) / emb(td, x1d, x2d, x3d, x4d, x5d, x6d) - ll(td, x1d, x2d, x3d, x4d, x5d, x6d) End Function ''X dot Function f(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double f = x2d 'f = x3d End Function ''PHI dot Function g(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double 'g=x4d g = x4d End Function ''TETHA dot Function m(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double m = x6d 'm = (c * Sin(x1d) + b * Cos(x1d) * Sin(x1d) * x4d ^ 2 - a * Cos(x1d) * p(td, x1d, x2d, x3d, x4d, x5d, x6d)) / b - kf * x3d End Function ''X DOT dot Function p(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double ''p = (u(td, x1d, x2d, x3d, x4d, x5d, x6d) + (a * Sin(x1d) * x3d ^ 2) - 2 * b * Cos(x1d) * Sin(x1d) * x4d * x3d - (a / b) * Cos(x1d) * (c * Sin(x1d) + b * Cos(x1d) * Sin(x1d) * x4d ^ 2)) / (d + b * Sin(x1d) ^ 2 - (a ^ 2 / b) * Cos(x1d) ^ 2) - kf * x4d 'p = (u(td, x1d, x2d, x3d, x4d, x5d, x6d) - (jj(td, x1d, x2d, x3d, x4d, x5d, x6d) * dd(td, x1d, x2d, x3d, x4d, x5d, x6d)) - ll(td, x1d, x2d, x3d, x4d, x5d, x6d) - ((gg(td, x1d, x2d, x3d, x4d, x5d, x6d) * (dd(td, x1d, x2d, x3d, x4d, x5d, x6d) - aa(td, x1d, x2d, x3d, x4d, x5d, x6d))) / (ee(x5d) - bb(td, x1d, x2d, x3d, x4d, x5d, x6d))) - (jj(td, x1d, x2d, x3d, x4d, x5d, x6d) * ee(x5d) * (aa(td, x1d, x2d, x3d, x4d, x5d, x6d) - dd(td, x1d, x2d, x3d, x4d, x5d, x6d))) / (ee(x5d) - bb(td, x1d, x2d, x3d, x4d, x5d, x6d))) / (h1 - (jj(td, x1d, x2d, x3d, x4d, x5d, x6d) * ff(td, x1d, x2d, x3d, x4d, x5d, x6d)) + ((jj(td, x1d, x2d, x3d, x4d, x5d, x6d) * ee(x5d) * (ff(td, x1d, x2d, x3d, x4d, x5d, x6d) - cc(td, x1d, x2d, x3d, x4d, x5d, x6d)) - gg(td, x1d, x2d, x3d, x4d, x5d, x6d) * (ff(td, x1d, x2d, x3d, x4d, x5d, x6d) - cc(td, x1d, x2d, x3d, x4d, x5d, x6d))) / (ee(x5d) - bb(td, x1d, x2d, x3d, x4d, x5d, x6d)))) p = num(td, x1d, x2d, x3d, x4d, x5d, x6d) / den(td, x1d, x2d, x3d, x4d, x5d, x6d) End Function ''PHI DOT dot

Page 313: Diseño y Simulación de un sistema mecánico subactuado

� ����

Function qq(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double ''qq = x4d qq = (dd(td, x1d, x2d, x3d, x4d, x5d, x6d) - aa(td, x1d, x2d, x3d, x4d, x5d, x6d) - p(td, x1d, x2d, x3d, x4d, x5d, x6d) * fmc(td, x1d, x2d, x3d, x4d, x5d, x6d)) / emb(td, x1d, x2d, x3d, x4d, x5d, x6d) End Function ''TETHA DOT dot Function rrr(ByVal td As Double, ByVal x1d As Double, ByVal x2d As Double, ByVal x3d As Double, ByVal x4d As Double, ByVal x5d As Double, ByVal x6d As Double) As Double ''rr = (c * Sin(x1d) + b * Cos(x1d) * Sin(x1d) * x4d ^ 2 - a * Cos(x1d) * p(td, x1d, x2d, x3d, x4d, x5d, x6d)) / b - kf * x3d 'rrr = (p(td, x1d, x2d, x3d, x4d, x5d, x6d) * (((ee(x5d) * (ff(td, x1d, x2d, x3d, x4d, x5d, x6d) - cc(td, x1d, x2d, x3d, x4d, x5d, x6d))) / (ee(x5d) - bb(td, x1d, x2d, x3d, x4d, x5d, x6d))) - ff(td, x1d, x2d, x3d, x4d, x5d, x6d))) + ((ee(x5d) * (aa(td, x1d, x2d, x3d, x4d, x5d, x6d) - dd(td, x1d, x2d, x3d, x4d, x5d, x6d))) / (ee(x5d) - bb(td, x1d, x2d, x3d, x4d, x5d, x6d))) + (dd(td, x1d, x2d, x3d, x4d, x5d, x6d)) rrr = dd(td, x1d, x2d, x3d, x4d, x5d, x6d) + ee(x5d) * (aa(td, x1d, x2d, x3d, x4d, x5d, x6d) - dd(td, x1d, x2d, x3d, x4d, x5d, x6d)) / emb(td, x1d, x2d, x3d, x4d, x5d, x6d) + p(td, x1d, x2d, x3d, x4d, x5d, x6d) * (ee(x5d) * fmc(td, x1d, x2d, x3d, x4d, x5d, x6d) / emb(td, x1d, x2d, x3d, x4d, x5d, x6d) - ff(td, x1d, x2d, x3d, x4d, x5d, x6d)) End Function Function kutad() Dim k11d, k12d, k13d, k14d, k15d, k16d As Double 'los k1 para las ecuaciones Dim k21d, k22d, k23d, k24d, k25d, k26d As Double 'los k2 para las ecuaciones Dim k31d, k32d, k33d, k34d, k35d, k36d As Double 'los k3 para las ecuaciones Dim k41d, k42d, k43d, k44d, k45d, k46d As Double 'los k4 para las ecuaciones Dim y1d, y2d, y3d, y4d, y5d, y6d, Xd, i As Double ReDim vxd(N) ReDim vy1d(N) ReDim vy2d(N) ReDim vy3d(N) ReDim vy4d(N) ReDim vy5d(N) ReDim vy6d(N) ReDim vy1aux(N) y1d = y1iniciald y2d = y2iniciald y3d = y3iniciald y4d = y4iniciald y5d = y5iniciald y6d = y6iniciald 'X es el tiempo que cambia de acuerdo al paso or i = 0 To (N - 1) Xd = tmind + h * i vxd(i) = Xd vy1d(i) = y1d vy2d(i) = y2d vy3d(i) = y3d

Page 314: Diseño y Simulación de un sistema mecánico subactuado

� ����

vy4d(i) = y4d vy5d(i) = y5d vy6d(i) = y6d k11d = h * f(Xd, y1d, y2d, y3d, y4d, y5d, y6d) k12d = h * p(Xd, y1d, y2d, y3d, y4d, y5d, y6d) k13d = h * g(Xd, y1d, y2d, y3d, y4d, y5d, y6d) k14d = h * qq(Xd, y1d, y2d, y3d, y4d, y5d, y6d) k15d = h * m(Xd, y1d, y2d, y3d, y4d, y5d, y6d) k16d = h * rrr(Xd, y1d, y2d, y3d, y4d, y5d, y6d) k21d = h * f(Xd + h / 2, y1d + k11d / 2, y2d + k12d / 2, y3d + k13d / 2, y4d + k14d / 2, y5d + k15d / 2, y6d + k16d / 2) k22d = h * p(Xd + h / 2, y1d + k11d / 2, y2d + k12d / 2, y3d + k13d / 2, y4d + k14d / 2, y5d + k15d / 2, y6d + k16d / 2) k23d = h * g(Xd + h / 2, y1d + k11d / 2, y2d + k12d / 2, y3d + k13d / 2, y4d + k14d / 2, y5d + k15d / 2, y6d + k16d / 2) k24d = h * qq(Xd + h / 2, y1d + k11d / 2, y2d + k12d / 2, y3d + k13d / 2, y4d + k14d / 2, y5d + k15d / 2, y6d + k16d / 2) k25d = h * m(Xd + h / 2, y1d + k11d / 2, y2d + k12d / 2, y3d + k13d / 2, y4d + k14d / 2, y5d + k15d / 2, y6d + k16d / 2) k26d = h * rrr(Xd + h / 2, y1d + k11d / 2, y2d + k12d / 2, y3d + k13d / 2, y4d + k14d / 2, y5d + k15d / 2, y6d + k16d / 2) k31d = h * f(Xd + h / 2, y1d + k21d / 2, y2d + k22d / 2, y3d + k23d / 2, y4d + k24d / 2, y5d + k25d / 2, y6d + k26d / 2) k32d = h * p(Xd + h / 2, y1d + k21d / 2, y2d + k22d / 2, y3d + k23d / 2, y4d + k24d / 2, y5d + k25d / 2, y6d + k26d / 2) k33d = h * g(Xd + h / 2, y1d + k21d / 2, y2d + k22d / 2, y3d + k23d / 2, y4d + k24d / 2, y5d + k25d / 2, y6d + k26d / 2) k34d = h * qq(Xd + h / 2, y1d + k21d / 2, y2d + k22d / 2, y3d + k23d / 2, y4d + k24d / 2, y5d + k25d / 2, y6d + k26d / 2) k35d = h * m(Xd + h / 2, y1d + k21d / 2, y2d + k22d / 2, y3d + k23d / 2, y4d + k24d / 2, y5d + k25d / 2, y6d + k26d / 2) k36d = h * rrr(Xd + h / 2, y1d + k21d / 2, y2d + k22d / 2, y3d + k23d / 2, y4d + k24d / 2, y5d + k25d / 2, y6d + k26d / 2) k41d = h * f(Xd + h, y1d + k31d, y2d + k32d, y3d + k33d, y4d + k34d, y5d + k35d, y6d + k36d) k42d = h * p(Xd + h, y1d + k31d, y2d + k32d, y3d + k33d, y4d + k34d, y5d + k35d, y6d + k36d) k43d = h * g(Xd + h, y1d + k31d, y2d + k32d, y3d + k33d, y4d + k34d, y5d + k35d, y6d + k36d) k44d = h * qq(Xd + h, y1d + k31d, y2d + k32d, y3d + k33d, y4d + k34d, y5d + k35d, y6d + k36d) k45d = h * m(Xd + h, y1d + k31d, y2d + k32d, y3d + k33d, y4d + k34d, y5d + k35d, y6d + k36d) k46d = h * rrr(Xd + h, y1d + k31d, y2d + k32d, y3d + k33d, y4d + k34d, y5d + k35d, y6d + k36d) y1d = y1d + (1 / 6) * (k11d + 2 * k21d + 2 * k31d + k41d) y2d = y2d + (1 / 6) * (k12d + 2 * k22d + 2 * k32d + k42d) y3d = y3d + (1 / 6) * (k13d + 2 * k23d + 2 * k33d + k43d) y4d = y4d + (1 / 6) * (k14d + 2 * k24d + 2 * k34d + k44d) y5d = y5d + (1 / 6) * (k15d + 2 * k25d + 2 * k35d + k45d) y6d = y6d + (1 / 6) * (k16d + 2 * k26d + 2 * k36d + k46d)

Page 315: Diseño y Simulación de un sistema mecánico subactuado

� ����

If (y3d > pi) Then y3d = y3d - 2 * pi End If If (y3d <= -pi) Then y3d = y3d + 2 * pi End If If (y5d > pi) Then y5d = y5d - 2 * pi End If If (y5d <= -pi) Then y5d = y5d + 2 * pi End If Next i End Function Public Function recibo(ByVal y10d As Double, ByVal y20d As Double, ByVal y30d As Double, ByVal y40d As Double, ByVal y50d As Double, ByVal y60d As Double, ByVal y70d As Double) As Double tmind = 0 h = 0.01 y1iniciald = y10d y2iniciald = y20d y3iniciald = y30d y4iniciald = y40d y5iniciald = y50d y6iniciald = y60d crk = crk + 1 If crk > 120000 Then crk = 0 End If N = y70d Call kutad If vy1d(1) >= carrera Then vy1d(1) = carrera vy2d(1) = 0 End If If vy1d(1) <= -carrera Then vy1d(1) = -carrera vy2d(1) = 0 End If End Function

Page 316: Diseño y Simulación de un sistema mecánico subactuado

� ����

Private Sub cmdSalir_Click() Unload Me End Sub Private Sub Form_Load() Call pendoble End Sub Private Sub Form_unload(cancel As Integer) Call pendoble End Sub Codigo para formulario modif. Private Sub Command1_Click() If (StrComp(Text3.Text, "")) = 0 Then l1 = l1 Else If (Val(Text3.Text)) = 0 Then l1 = l1 Else l1 = Val(Text3.Text) End If End If If (StrComp(Text4.Text, "")) = 0 Then l2 = l2 Else If (Val(Text4.Text)) = 0 Then l2 = l2 Else l2 = Val(Text4.Text) End If End If pi = 3.14159265358979 grav = 9.81 mc = 0.5 me1 = 0.1 m1 = ((pi * 1.1 ^ 2 / 4) * l1 * 270) / 1000 m2 = ((pi * 1.1 ^ 2 / 4) * l2 * 270) / 1000 jj1 = m1 * l1 ^ 2 / 12 jj2 = m2 * l2 ^ 2 / 12 h1 = mc + m1 + m2 + me1 h2 = m1 * l1 * 0.5 + m2 * l1 + me1 * l1 h3 = m2 * l2 * 0.5 h4 = m1 * l1 * l1 * 0.5 * 0.5 + m2 * l1 * l1 + jj1 + me1 * l1 ^ 2 h5 = m2 * l1 * l2 * 0.5 h6 = m1 * l1 * 0.5 * grav + m2 * l1 * grav + me1 * l1 * grav h7 = m2 * l2 * l2 * 0.5 * 0.5 + jj2 h8 = grav * m2 * l2 * 0.5

Page 317: Diseño y Simulación de un sistema mecánico subactuado

� ���

End Sub Private Sub Command111_Click() If (bbnuevo.Text = "") Then bbb = bbb Else bbb = Val(bbnuevo.Text) End If If (StrComp(ccnuevo.Text, "")) = 0 Then ccc = ccc Else ccc = Val(ccnuevo.Text) End If End Sub Private Sub Command2_Click() carrant = carrera If (StrComp(carr.Text, "")) = 0 Then carrera = carrera Else If (Val(carr.Text)) = 0 Then carrera = carrera Else carrera = Val(carr.Text) End If End If pos_x = carrera * pos_x / carrant pos_xd = carrera * pos_xd / carrant End Sub Private Sub Command3_Click() If (StrComp(Text1.Text, "")) = 0 Then ls = ls Else If (Val(Text1.Text)) = 0 Then 'carr.Text = Val(carrera) ls = ls Else ls = Val(Text1.Text) End If End If ms = (den * (ls * 100) * area) / 1000 iner = (ms * ls ^ 2) / 3 integral = 0 sumavs = 0 sumavsant = 0 alpha = mc + ms beta = 0.5 * ms * ls

Page 318: Diseño y Simulación de un sistema mecánico subactuado

� ���

gamma = iner + (ms * ls ^ 2) / 4 zita = 0.5 * ms * grav * ls w0 = (ms * grav * 0.5 * ls / iner) ^ (0.5) End Sub Private Sub Form_Load() carrant = carrera Form1.Enabled = False form2.Enabled = False End Sub Private Sub Form_unload(cancel As Integer) Form1.Enabled = True form2.Enabled = True End Sub Formulario Para Cagar Valores de LQR Option Explicit Private Sub cargar_doble_Click() If (StrComp(Text1_d1.Text, "")) = 0 Then gd1 = gd1 Else gd1 = Val(Text1_d1.Text) End If If (StrComp(Text2_d2.Text, "")) = 0 Then gd2 = gd2 Else gd2 = Val(Text2_d2.Text) End If If (StrComp(Text3_d3.Text, "")) = 0 Then gd3 = gd3 Else gd3 = Val(Text3_d3.Text) End If If (StrComp(Text4_d4, "")) = 0 Then gd4 = gd4 Else gd4 = Val(Text4_d4.Text) End If If (StrComp(Text5_d5.Text, "")) = 0 Then gd5 = gd5 Else gd5 = Val(Text5_d5.Text)

Page 319: Diseño y Simulación de un sistema mecánico subactuado

� ����

End If If (StrComp(Text6_d6.Text, "")) = 0 Then gd6 = gd6 Else gd6 = Val(Text6_d6.Text) End If If (StrComp(Text7_d7.Text, "")) = 0 Then gdi = gdi Else gdi = Val(Text7_d7.Text) End If Unload lqrr_doble End Sub Private Sub salir_double_Click() Unload lqrr_doble End Sub Private Sub Form_unload(cancel As Integer) form2.Enabled = True End Sub Private Sub Form_Load() form2.Enabled = False End Sub Formulario Para Cargar Valores de Swing Up Option Explicit Private Sub Command1_Click() Unload swing End Sub Private Sub Command111_Click() If (StrComp(text_swing, "")) = 0 Then gains1 = gains1 Else gains1 = Val(text_swing.Text) End If Unload swing End Sub Private Sub Form_unload(cancel As Integer) Form1.Enabled = True End Sub Private Sub Form_Load() Form1.Enabled = False

Page 320: Diseño y Simulación de un sistema mecánico subactuado

� ����

End Sub Formulario Para Cargar Valores de Modos Deslizantes Private Sub Command1_Click() Unload slidings End Sub Private Sub Command111_Click() If (StrComp(text_sliding, "")) = 0 Then smcgain = smcgain Else smcgain = Abs(Val(text_sliding.Text)) End If Unload slidings End Sub Private Sub Form_unload(cancel As Integer) Load Form1 Form1.Show End Sub Private Sub Form_Load() Form1.Enabled = True End Sub

ANEXO D2: CODIGO DE MATLAB Control por Realimentación del estado para péndulo simple den=2.7 area=pi*((1.1^2)/4) M=0.5; L=0.5; m=(den*(L*100)*area)/1000; b=0.001; c=0.1; I=(1/3)*m*L^2; g=9.81; Wo=sqrt((m*g*(L/2))/I); r=0.02; Ra=0.62; Kg=1; Km=0.0333; h1=( (Km*Kg)/(r*(Ra)) ); h2=( (Km^2*Kg^2)/((r^2)*Ra) ); E=M+m; F=0.5*m*L; G=0.25*m*(L^2)+I;

Page 321: Diseño y Simulación de un sistema mecánico subactuado

� ����

H=0.5*m*g*L; [A,B,C,D]=linmod('NOLINEALL') Cf=[1 0 1 0]; Au=[A zeros(4,1);-Cf, 0]; Bu=[B;0] Q=zeros(5); Q(1,1)=605; %605 %45 %90 Q(2,2)=100; %100 %15 %15 Q(3,3)=456; %456 %39 %390 Q(4,4)=15; %15 %25 %25 Q(5,5)=10; %10 %1 %15 U=5; %0.5 Ku = lqr(Au,Bu,Q,U) K=[Ku(1) Ku(2) Ku(3) Ku(4)]; Ki=Ku(5); Control por realimentación del estado para péndulo doble M=0.5; bbbb=0.001 cccc=0.1 L1=0.4; L2=0.4; l1=L1/2; l2=L2/2; m1=((pi*1.1^2/4)*L1*270)/1000; m2=((pi*1.1^2/4)*L2*270)/1000; men=0.1 J1=m1*L1^2/12; J2=m2*L2^2/12; g=9.81; r=2/100; Ra=0.62; kg=1; km=0.033; kma=km*kg/(r*Ra); kmb=km*km*kg*kg/(r*r*Ra); h1= M+m1+m2+men; h2=m1*l1+m2*L1+men*L1; h3=m2*l2; h4=m1*l1*l1+m2*L1*L1+J1+men*L1*L1; h5=m2*L1*l2; h6=m1*l1*g+m2*L1*g+men*L1*g h7=m2*l2^2+J2;

Page 322: Diseño y Simulación de un sistema mecánico subactuado

� ����

h8=g*m2*l2; h9=kmb; h10=kma; Calculo para control por realimentación del estado péndulo doble [A,B,C,D]= linmod('penduloecuaciones'); C=[1 0 1 0 1 0]; Q=diag([400,1000,0,0,0,40,1]); Zi=zeros(6,1); Zo=zeros(3,3); Aau=[A Zi;-C 0]; Bau=[B;0]; R=2; [Kgain,P,E]=lqr(Aau,Bau,Q,R); Kfedback=Kgain(1:6); Ki=Kgain(7);�

Page 323: Diseño y Simulación de un sistema mecánico subactuado

� ����

ANEXO E: MANUAL DE USUARIO �

Page 324: Diseño y Simulación de un sistema mecánico subactuado

� ����

TUTORIAL DE USO DEL VIRTUAL UMS

El Virtual UMS es un programa diseñado para realizar simulaciones de estrategias de

control aplicadas hacia los sistemas de péndulo invertido traslacional simple y doble

(UMS) por medio de un prototipo virtual de estos sistemas.

Las simulaciones realizadas en el Virtual UMS permiten conocer el comportamiento

aproximadamente real del sistema seleccionado ante la acción de un controlador

previamente diseñado, convirtiendo al Virtual UMS en una herramienta fundamental y

muy importante para los usuarios del UMS, ya que, además de poder trabajar con los

controladores prediseñados, pueden cambiar los parámetros de estos para así simular y

previamente afinar o sintonizar los controladores diseñados por el usuario antes de

implementarlos en el sistema real.

• Interfaz de VIRTUAL UMS

El Virtual UMS consta de tres pantallas funcionales, la primera, la “pantalla principal”, la

cual se accede a ella al ejecutar el programa, esta pantalla permite el acceso a las otras

dos de acuerdo a la necesidad del usuario, por medio de los botones laterales que posee,

además de dar la opción de salir totalmente del programa.

Las otras pantallas pertenecen a las dos configuraciones básicas del sistema, “Péndulo

Simple” y “Péndulo Doble”.

Page 325: Diseño y Simulación de un sistema mecánico subactuado

� ����

• Pantalla “Péndulo Simple”: Sobre esta pantalla se realiza todo lo que tiene que

ver con la simulación del péndulo simple. Para la adecuada utilización de esta

pantalla se deben seguir en orden los cuatro pasos fundamentales.

Page 326: Diseño y Simulación de un sistema mecánico subactuado

� ����

Paso 0 => Se selecciona el tipo de simulación a realizar, si es Swing Up que

significa controlarlo desde el rango completo o desde su posición inferior, o Lineal

que es controlarlo solo en su zona lineal o cercana a esta, también se escoge que

tipo de regulador prediseñado se quiere utilizar LQR, Modos Deslizantes y Low

Chattering.

Paso 0

Page 327: Diseño y Simulación de un sistema mecánico subactuado

� ���

Paso 1 => El paso 1 corresponde a las condiciones iniciales del sistema, las

cuales el usuario puede manipular para evaluar la eficiencia del controlador

diseñado, se puede inicializar la variable Phi, correspondiente a la posición angular

del péndulo y X, correspondiente a la posición lineal del carro

Paso 1

Page 328: Diseño y Simulación de un sistema mecánico subactuado

� ���

Paso 2 => En el paso dos se elige que acción que se llevara a cabo en la

simulación, si se desea una “dinámica natural” del sistema, es decir que se mueva

naturalmente sin acción de ningún tipo de controlador, o si se “activa control”, para

que el controlador seleccionado actué sobre el sistema.

Paso 2

Page 329: Diseño y Simulación de un sistema mecánico subactuado

� ����

Paso 3 => En el paso 3 se da inicio a la simulación, haciendo clic sobre el botón

de inicio o play, y al mismo tiempo poder detenerla haciendo clic en el botón de

stop.

Paso 3

Page 330: Diseño y Simulación de un sistema mecánico subactuado

� ����

También en el paso tres se encuentra las opciones de “Graficas en tiempo real”,

las cual nos da acceso a las graficas de las variables del sistema mientras se

realiza la simulación, esta da la libertad de escoger que variable se quiere

observar, haciendo clic en las opciones que se encuentra a la derecha de estas.

Page 331: Diseño y Simulación de un sistema mecánico subactuado

� ����

Además, en el paso tres se pueden observar las “graficas históricas” de todas la

simulaciones realizadas hasta el momento, también dando la opción de escoger

que variable se desea observar y analizar.

Page 332: Diseño y Simulación de un sistema mecánico subactuado

� ����

Una vez realizados los pasos anteriores para poner en marcha la simulación del

Virtual UMS en la modalidad de péndulo simple, se pueden utilizar otras

herramientas u “opciones adicionales” para verificar o probar el controlador que

esta funcionando.

Entre las “Opciones Adicionales” se encuentran “Ver Valores Actuales de las

Variables”, esta opción permite ver en tiempo real los valores de las variables del

sistema (posición del Carro, velocidad del carro, posición de péndulo, velocidad

del péndulo) en sus respectivas unidades.

Aquí se observan las variables del sistema

Se selecciona la opción

Page 333: Diseño y Simulación de un sistema mecánico subactuado

� ����

Otra opción a la que se puede acceder es la de “Otras Condiciones Iniciales = 0”,

esta es un complemento del paso 1, ya que, al ser seleccionada

automáticamente asigna cero a las variables correspondientes a la velocidad del

carro y del péndulo, y cuando sucede todo lo contrario, al no estar seleccionada,

se pueden inicializar estas dos variables. Por defecto esta opción siempre esta

seleccionada.

Se inicializan las variables

Page 334: Diseño y Simulación de un sistema mecánico subactuado

� ����

También dentro de las “Opciones Adicionales” se pueden observar los valores

constantes del sistema, seleccionando la opción con este nombre permite ver

valores como los coeficientes de fricción, las masas, las longitudes y las

constantes de los controladores prediseñados dentro del programa.

Se observan los valores constantes del sistema

Page 335: Diseño y Simulación de un sistema mecánico subactuado

� ����

La ultima opción que nos permite seleccionar es “Establecer Referencia del

Carro”, la cual permite por medio de una barra de desplazamiento mover un carro

fantasma para que el caro del péndulo tienda hacia el valor del dicho carro

fantasma, haciendo así con dicha perturbación una prueba a los controladores

diseñados en la zona lineal.

Carro Fantasma para mostrar la Referencia

Se establece la referencia

Page 336: Diseño y Simulación de un sistema mecánico subactuado

� ����

La barra de menú de la pantalla “péndulo simple” posee las opciones para

reestablecer los valores iniciales de los controladores y del sistema, también

posee el cambio de los parámetros de los controladores prediseñados y además

de los parámetros del sistema.

Reestablecer Valores

Page 337: Diseño y Simulación de un sistema mecánico subactuado

� ���

Para modificar los parámetros de los controladores se debe hacer clic en el menú

“controladores”, el cual despliega un menú donde se encuentra los controladores

prediseñados (Regulador Lineal, Swing Up, Sliding).

Al hacer clic en “Regulador Lineal” se despliega una ventana, en la cual se

pueden modificar cada una de las ganancias del regulador por realimentación de

estados diseñado para el sistema y posteriormente se cargan.

Ganancias de los controladores

Regulador Lineal

Page 338: Diseño y Simulación de un sistema mecánico subactuado

� ���

En la opción “Swing Up” se puede modificar la ganancia Ka del controlador y

cargarlo al sistema, para aumentar o atenuar según el valor la capacidad de

acción del controlador hacia el sistema.

Modificación de Parametros

Swing Up

Page 339: Diseño y Simulación de un sistema mecánico subactuado

� ����

Cuando se activa “Sliding” da la opción de modificar la constante Kd, la cual varía

el límite de voltaje que puede utilizar el controlador por modos deslizantes, el cual

por defecto es 24 voltios.

Modificación del Parámetro Kd

Sliding

Page 340: Diseño y Simulación de un sistema mecánico subactuado

� ����

También se encuentran las opciones “Superficie 1”, “Superficie 2” y “Superficie 3”,

las cuales se refieren a las diferentes superficies de control del controlador por

modos deslizantes.

La “Superficie 1” indica la superficie ( )Ψ⋅--��� , la “superficie 2” describe la

superficie ( )--��� y la “superficie 3” se refiere a la superficie - .

Superficies de Control

Page 341: Diseño y Simulación de un sistema mecánico subactuado

� ����

Las dos últimas opciones del menú son “Restablecer los Valores de los

Controladotes”, y “Salir”, la primera reactiva los valores por defecto de los

controladores y la otra sale completamente del programa.

La otra opción de la barra de menú es la de “Editar Parámetros”, en la cual se

pueden modificar los valores constantes del prototipo físico del sistema, tales

como, carrera efectiva, longitudes de los péndulos tanto como del sistema de

péndulo simple y doble y los coeficientes de rozamiento en el encoder y en el

carro, todo esto para ver el comportamiento de los controladores afectando las

propiedades físicas del sistema completo.

Modificación de parámetros del Sistema

Editar Parámetros

Page 342: Diseño y Simulación de un sistema mecánico subactuado

� ����

Se encuentran también opciones de manipulación visual del prototipo virtual tales

como girar alrededor de dos ejes, girar alrededor de un eje, ubicar vista frontal y

restaurar, las cuales se encuentran en la sección “Manipular”.

También hay opciones de movimiento sobre el plano frontal del prototipo y por

ultimo la opción de alejar y acercar “Zoom”.

Opciones Visuales

Page 343: Diseño y Simulación de un sistema mecánico subactuado

� ����

• Pantalla “Péndulo Doble”: Sobre esta pantalla se realiza todas las simulaciones

acerca del UMS en la modalidad de “Péndulo Doble”, los cuatro pasos esenciales

de funcionamiento de la pantalla del Péndulo Simple son los mismos para esta,

solo se encuentra pequeños cambios.

En el Paso 0 da la opción de escoger el controlador lineal prediseñado y otra

opción “Manual” la cual aplica un voltaje manejado por una barra de

desplazamiento para el funcionamiento del péndulo.

La diferencia en el Paso 1 radica a que el péndulo doble posee mas grados de

libertad con respecto al péndulo simple.

El Paso 3 a diferencia de la pantalla anterior, permite mediante un botón llamado

“Step”, mostrar la simulación del control paso a paso mientras se presione ese

botón.

Las “opciones adicionales”, las opciones visuales de “Movimiento”, “Manipular” y

“Zoom” y las opciones de la barra de menú exceptuando la opción de

“Controladores”, son similares a la anterior pantalla, ya que, en este se pueden

modificar solo las ganancias del controlador lineal, además de cargar dos

controladores por defecto que se encuentran dentro del software los cuales se

diferencian solo en los valores de las ganancias.

Page 344: Diseño y Simulación de un sistema mecánico subactuado

� ����

Paso 0

Paso 1 Paso 2 Paso 3

Opciones Visuales Menu

Voltaje Manual