Full text
Equation Chapter 1 Section 1 Trabajo de Fin de Grado Grado en Ingeniería Electrónica, Robótica y Mecatrónica Comparación y validación de arquitecturas de UAVs para la toma de muestras de difícil acceso y desarrollo del sistema de succión Autor: Juan Sandubete López Tutores: Francisco Perdigones Sánchez Alicia Arce Rubio Dep. Ingeniería Electrónica, Microsistemas Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019
2
Trabajo de Fin de Grado Grado en Ingeniería Electrónica, Robótica y Mecatrónica Comparación y validación de arquitecturas de UAVs para la toma de muestras de difícil acceso y desarrollo del sistema de succión Autor: Juan Sandubete López Tutores: Francisco Perdigones Sánchez Dep. de Ingeniería Electrónica, Microsistemas Escuela Técnica Superior de Ingeniería Universidad de Sevilla Alicia Arce Rubio Responsable del Laboratorio de Sistemas de Control Fundación Ayesa Sevilla, 2019
4
Trabajo de Fin de Grado: Comparación y validación de arquitecturas de UAVs para la toma de muestras de difícil acceso y desarrollo del sistema de succión El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2019 El Secretario del Tribunal Autor: Juan Sandubete López Tutores: Francisco Perdigones Sánchez Alicia Arce Rubio
6
A mi familia A Carmen
8
Agradecimientos Esta obra representa el ocaso de una etapa de mi vida. Esfuerzo e ilusión me impulsaron durante todo el camino para alcanzar mis metas, pero estaría mintiendo si dijera que he conseguido hacer siquiera la mitad de todo esto, sin ayuda. Mis padres estuvieron conmigo durante todo el camino. Desde el inicio de mi vida, estuvisteis dedicándome vuestro esfuerzo, apoyo y cariño sin pedir nunca nada a cambio. Gracias de corazón por todo lo que habéis hecho. Gracias a mis hermanos, Manuel e Ignacio. Se que no entendéis ni la mitad de lo que os cuento cuando os hablo de mis ideas, pero aún así, me gusta poder tener conversaciones poco transcendentales y divertirme con vosotros haciendo estupideces. Gracias por ayudarme a pensar en cosas sin circuitos. A Carmen, por estar conmigo en los momentos buenos y en los no tan buenos. Gracias por animarme a dar lo mejor de mí, por calmarme cuando se me hacía difícil seguir el ritmo y por hacerme reír cuando lo necesitaba. A mis amigos y a toda mi familia que, sin saberlo, consiguieron que la vida tuviera más sabor durante los años de duro estudio. A mi tutor, Francisco Perdigones, por haberme respondido a innumerables preguntas y consultas que no siempre estuvieron relacionadas con este trabajo. Gracias por trasnmitirme tu pasión por los microsistemas y por recibirme en el laboratorio para ayudarme con cada tarea del proyecto sin importar lo ocupado que estuvieras. A mi tutora, Alicia Arce, que, como Francisco, siempre ha tenido un hueco para responder a mis dudas y ayudarme a ver este trabajo con perspectiva. Gracias también por darme la oportunidad de conocer al maravilloso equipo de la Fundación Ayesa. Por último, gracias a todos aquellos que tuvieron la amabilidad y la paciencia para guiarme cuando les pedí ayuda. En especial al grupo de Microsistemas del Departamento de Electrónica de la ETSI de Sevilla y a Marcin Odelga, pues contribuyeron en mayor o menor medida a la elaboración de esta obra. Gracias a todos vosotros. Juan Sandubete López Sevilla, 2019
16 10 Trabajo Futuro 99 11 Anexo A 101 12 Anexo B 109 13 Referencias 123
ÍNDICE DE TABLAS Tabla 4-1 – Especificaciones físicas de los UAVs 35 Tabla 4-2 – Experimentos de movimientos básicos 36 Tabla 4-3 – Experimentos de movimientos básicos usando el mecanismo de inclinación 37 Tabla 4-4 – Experimentos de movimientos compuestos por combinación de movimientos básicos 37 Tabla 4-5 – Experimentos de movimientos compuestos incluyendo actuaciones sobre el mecanismo de inclinación 38 Tabla 4-6 – Experimentos de movimientos con cambios en las especificaciones del UAV 38 Tabla 4-7 – Datos de simulación UAV en X. Experimentos del 0 al 7 40 Tabla 4-8 – Datos de simulación UAV de rotores inclinables. Experimentos del 0 al 7 41 Tabla 4-9 – Datos de simulación UAV en X. Experimentos del 8 al 9 y del 14 al 19 42 Tabla 4-10 – Datos de simulación UAV de rotores inclinables. Experimentos del 8 al 9 y del 14 al 19 43 Tabla 4-11 – Datos de simulación UAV en X. Experimentos del 23 al 27 46 Tabla 4-12 – Datos de simulación UAV de rotores inclinables. Experimentos del 23 al 27 47 Tabla 4-13 – Datos de simulación UAV de rotores inclinables. Experimentos del 10 al 13 y 20 al 22 48 Tabla 5-1 – Resumen de volúmenes 57 Tabla 5-2 – Especificaciones físicas de los componentes 60 Tabla 5-3 – Potencia consumida por los subsistemas 61 Tabla 7-1 – Posibles estados de la máquina de estados finitos 81 Tabla 7-2 – Resumen de los pines usados 83
18
ÍNDICE DE FIGURAS Figura 2.1 – Sitio de Venecia 1849 16 Figura 2.2 – Primer barco controlado remotamente por Nikola Tesla 16 Figura 2.3 – Helicóptero Schiebel OE-VXX 17 Figura 2.4 – Cuadricóptero DJI Inspire 18 Figura 2.5 – Octacóptero de rotores coaxiales 18 Figura 2.5 – Configuración de hexacóptero con rotores inclinados 19 Figura 2.7 – Plataforma de micro mezcla autónoma 21 Figura 2.7 – Estructura de PCB 21 Figura 2.9 – Válvula de escape de imanes permanentes 22 Figura 2.10 – Sensor de presión 23 Figura 2.11 – Proceso de fabricación de bomba pasiva por capilaridad 23 Figura 2.12 – Esquema del LoPCB citómetro 24 Figura 2.1 - Esquema de quadrotor usual 25 Figura 2.2 - Esquema de Sistemas de Referencia 26 Figura 2.3 – Mecanismo de inclinación para los rotores 30 Figura 2.4 – Esquema de quadrotor de rotores inclinables 30 Figura 2.5 – Sistemas de referencia para el quadrotor de rotores inclinables 30 Figura 2.6 – Vista frontal esquemática del vuelo estático con cambio en la orientación 33 Figura 4.1 – Diagrama de bloques de Matlab Simulink. Modelo de UAV usual 39 Figura 4.2 – Diagrama de bloques de Matlab Simulink. Modelo de UAV de M. Odelga 39 Figura 4.3 – Desplazamientos diagonales realizados por el UAV de rotores inclinables 44 Figura 4.4 – Desplazamientos en arco realizados por el UAV de configuración usual 45 Figura 4.5 – Desplazamientos en arco con inclinación de los rotores 49 Figura 5.1 – Esquema de Extracción de Fluido 54 Figura 5.2 – Curva de volumen de un cilindro 56 Figura 5.3 – Primer esquema de la herramienta con medidas 56 Figura 5.4 – Vista Perfil-Planta 57 Figura 5.5 – Esquema del PCB-MEMS con actuadores – Retraído 59 Figura 5.6 – Esquema del PCB-MEMS con actuadores - Desplegado 59 Figura 5.7 – Variación de volumen absorbido en función de la temperatura ambiente para una temperatura alta de 75°C. En rojo se observa la recta correspondiente al volumen del tubo de extracción. El máximo volumen absorbible es de 130.86µL 62 Figura 5.8 – Característica estática de la NTC Murata 0603 150Ω seleccionada. Se relaciona el valor resistivo teórico frente al valor de temperatura del termistor. 63
20 Figura 5.9 – Linealización de la NTC mediante divisor resistivo. 64 Figura 5.10 – Circuito de acondicionamiento de señal para la NTC, RT. Captura en el software de simulación LTSpice. 65 Figura 5.11 – Variación de tensión de salida del amplificador (en azul) frente a la variación de tensión en la NTC (en amarillo). Los valores anotados, de izquierda a derecha, son: 1.67V (azul), 0.41V (amarillo), 3.44V (azul), 0.86V (amarillo). 66 Figura 5.12 – Diseño del PCB-MEMS con LEdit v8.30 67 Figura 5.13 – Detalle del serpentín 67 Figura 5.14 – Diseño del circuito de acondicionamiento 68 Figura 5.17 – Diseño de la carcasa de fijación al servomotor 69 Figura 5.15 – Diseño de la culata mayor de la estructura 69 Figura 5.16 – Diseño de la culata menor de la estructura 69 Figura 6.1 – Soluto para revelado (Concentrado de sosa cáustica) 72 Figura 6.2 – Botellas de ácido clorhídrico (aguafuerte) y peróxido de dihidrógeno (agua oxigenada) 72 Figura 6.3 – Máscara del circuito de acondicionamiento 73 Figura 6.4 – PCB antes de perforarla y soldar los componentes 73 Figura 6.5 – PCB de acondicionamiento 74 Figura 6.7 – PCB antes de soldar 75 Figura 6.8 – PCB tras los procesos de soldadura y lijado 75 Figura 6.9 – Detalle de soldadura de NTC bajo microscopio 76 Figura 6.10 – Medición de valor resistivo de NTC 76 Figura 6.11 – Medición de valor resistivo del calentador 76 Figura 6.12 – Fresado de circuito microfluídico en PMMA 77 Figura 6.13 – Circuito microfluídico fresado en PMMA sobre fondo marrón 77 Figura 6.14 – Superposición del circuito microfluídico al PCB-MEMS 78 Figura 6.15 – Canal inundado con plastilina blanca y pegamento termofusible aplicado parcialmente 78 Figura 6.16 – Pegado de PMMA con PCB usando pegamento termofusible 79 Figura 6.17 – PCB-MEMS finalizado 79 Figura 6.18 – Impresión 3D de la estructura. 80 Figura 7.1 – Diagrama de flujo de la máquina de estados 82 Figura 7.2 – Microcontrolador MSP430FR2433 de Texas Instruments 82 Figura 7.3 – Control de Servomotor mediante PWM. A la izquierda, PWM con diferentes Duty Cycles. A la derecha, protocolo de control del servomotor. 86 Figura 7.4 – Control Todo-Nada 88 Figura 8.1 – Temperatura, tensión e intensidad del calentador 91 Figura 8.2 – Característica estática aproximada a partir de tres puntos de operación 92 Figura 8.3 – Montaje para prueba de extracción de fluido. 92 Figura 8.4 – Despliegue del tubo de extracción servoactuado: a. posición retraída, b. posición extendida. 92
1 INTRODUCCION Y OBJETIVOS “That is the secret of happiness and virtue: liking what you've got to do.” Brave New World, Aldous Huxley 1.1 Motivación El uso de los vehículos aéreos no tripulados (UAVs) ha aumentado en aplicaciones comerciales de diferente índole. Sólo en Japón se espera un crecimiento del mercado de drones de los 30.000 millones de yenes (27 millones de dólares) en 2013 a los 1000.000 millones de yenes (900 millones de dólares) para el año 2030. Los usos van desde la fumigación de campos de cultivo hasta la inspección de líneas eléctricas [1]. Este incremento se debe principalmente a los avances en materia de hardware como es la mayor capacidad computacional de los ordenadores de a bordo, así como la precisión y fiabilidad de los "Sistemas Micro Electro-Mecánicos" o MEMS, que han permitido reducir costes y aumentar las posibilidades de estos sistemas. Las configuraciones o arquitecturas de UAVs han ido a su vez diversificándose, variando en gran medida según el problema que se desea afrontar con la máquina en cuestión. Grosso modo se pueden clasificar en tres grandes grupos [2] que son: 1. Fixed wing (Ala fija). Generalmente disponen de propulsión fija paralela a la línea de referencia. Alcanzan grandes velocidades y suelen tener mayor tiempo de autonomía gracias a la sustentación aerodinámica. 2. Rotatory wing (Ala rotatoria). Se consigue la sustentación aerodinámica gracias al uso de uno o varios rotores, que son alas o palas que giran alrededor de un eje fijo. Éstos tienen una mayor maniobrabilidad que las aeronaves de ala fija y la capacidad de realizar vuelo estático, o hovering. En contrapartida, tienen un mayor consumo y una consecuente menor autonomía de vuelo. Dejando de lado los autogiros y girodinos (por ser los menos frecuentemente empleados de este grupo) se pueden clasificar según el número de rotores principalmente en: 1. Helicóptero 2. Cuadricóptero 3. Hexacóptero 4. Octocóptero También existen otras muchas configuraciones posibles, resultantes de la variación de las anteriores, modificando el ángulo o la posición de los rotores. 3. Flapping wing (Ala batible u ornitóptero). El empuje se consigue batiendo las alas de forma análoga a como lo hacen las aves. Atendiendo a velocidad de vuelo y maniobrabilidad, se encuentra en un punto intermedio entre los dos grupos antes definidos. Además de las anteriores, también existen configuraciones que no respetan la anterior configuración. Según [3], estos UAVs híbridos pueden clasificarse en dos categorías:
12 A. Convertiplane o aeroplano-convertible. Son habitualmente capaces de despegar verticalmente, mantenerse en vuelo estáticamente (hovering), volar desplazándose y aterrizar manteniendo la línea de referencia horizontal. Ésto es, manteniendo la orientación del cuerpo de la aeronave inalterable respecto al suelo. B. Tailsitter o de "sentado sobre cola". Se diferencian de los anteriores en que éstos tienen una orientación (respecto a tierra) diferente para el despegue, aterrizaje y vuelo estático de la de vuelo de crucero. La presente obra se centra el estudio de una aplicación particular para estas micro-aeronaves no tripuladas. Se pretende estudiar el uso de un UAV para la extracción de muestras en lugares de difícil acceso. Esto podría ser, por ejemplo, para su uso en misiones de exploración planetaria como la misión “Mars 2020” de la NASA, permitiendo usar el drone para tomar muestras en zonas a las cuales el rover sería incapaz de llegar. Otra aplicación similar podría ser la de su uso en la supervisión de infraestructuras industriales, área en la que últimamente se han llevado a cabo proyectos en los cuales se pretende emplear UAVs para monitorizar fugas o monitorizar la contaminación del aire en lugares industriales de difícil acceso [4]. Basándose en lo descrito en la anterior clasificación, en este tipo de aplicaciones sería necesario emplear un UAV de un alto nivel de maniobrabilidad, por lo que se debería elegir entre ala rotatoria o aeroplano-convertible. No obstante, los segundos suelen ser de mayor tamaño debido a que es necesaria cierta superficie del ala para obtener sustentación aerodinámica notable. Así pues, se toma el quadrotor para esta aplicación ya que es un sistema maniobrable, de tamaño reducido y bien estudiado en la literatura. Por otro lado, se analizará el uso de una variación del quadrotor presentada por Odelga et al en “A Fully Actuated Quadrotor UAV with a Propeller Tilting Mechanism” [5] para comprobar si es justificable el incremento de complejidad de modelado y control, peso y otros aspectos en pos de alcanzar la controlabilidad completa del vehículo; es decir, tener control total sobre la posición (x, y, z) y sobre la orientación (roll, pitch, yaw). Para el caso de estudio de esta obra (como se ha dicho, extraer muestras líquidas en lugares de difícil acceso) se va ha desarrollar, además, un prototipo de herramienta de succión que, de emplearse en una aplicación real, iría montado bajo el UAV. En este contexto se introducen los PCB-MEMS, los cuales son MEMS fabricados empleando las comunes Placas de Circuito Impreso. Los dispositivos desarrollados mediante esta tecnología son numerosos actualmente. La compatibilidad del PCB con otros materiales como el polimetil metacrilato (PMMA) o el polidimetilsiloxano (PDMS) entre otros, hace que esta tecnología sea de utilidad para la manufactura de plataformas microfluídicas [6]. Algunos ejemplos relacionados con la aplicación que se estudia aquí son bombas termo-neumáticas, dispositivos autónomos de “micro-mezclado” o válvulas de escape realizadas con imanes permanentes [6, 7, 8, 9]. Se elige esta tecnología dado que su principal ventaja es la de basarse en una tecnología muy estudiada, fiable y barata, que se espera que facilite el prototipado del sistema. En estos PCB-MEMS, la capa de cobre se usa como material estructural para microcanales, como capa de sacrificio o para hacer conexiones eléctricas de la manera habitual, quedando el sistema finalmente sobre el sustrato de FR-4 [6]. Fabricando un actuador termo-neumático basado en estas tecnologías para el caso de estudio, se eliminarían partes móviles, se reduciría el peso y se simplificaría el diseño del sistema. Además, en los últimos años ha ido incrementando de manera exponencial la cantidad de artículos publicados sobre Lab-on-PCB, que son PCB-MEMS capaces de manejar microfluidos y obtener datos
del mismo, diseñados en gran parte para aplicaciones biomédicas [10], aunque muestran grandes posibilidades como tecnología base para el desarrollo de sistemas de análisis embarcados en robótica aérea, marítima o terrestre; pues son ligeros, baratos y fiables. Por ello, debería analizarse la posible confluencia de estas tecnologías de creciente uso con los también cada vez más empleados vehículos aéreos no tripulados. Con este propósito, se desarrollará una herramienta de extracción de muestras líquidas (PCB-MEMS) que muestre el potencial de dicha convergencia tecnológica. Dejando la puerta abierta a la implementación de Lab-on-PCB con una variación mínima del sistema desarrollado. 1.2 Objetivos y organización El objetivo principal del proyecto es el desarrollo de un sistema de extracción de muestras líquidas y el estudio dos arquitecturas de aeronaves no tripuladas que pudieran portar el sistema desarrollado en una aplicación real. Como objetivos secundarios se tienen: - Modelar dinámicamente dos o más arquitecturas de aeronaves. - Validar los anteriores modelos mediante simulación. - Explorar las ventajas e inconvenientes de los anteriores. - Desarrollar el sistema cumpliendo los siguientes requisitos: • Capacidad para absorber volúmenes del orden de 10-100µL. • Facilidad de fabricación. • Coste reducido. • Bajo consumo de potencia. • Rapidez de operación. - Facilidad de reutilización del trabajo realizado. Para la extracción de muestras líquidas en lugares de difícil acceso, se va estudiar el uso de un quadrotor con una configuración de rotores en “X” y además se analizarán ventajas y desventajas respecto al uso de un quadrotor con configuración de rotores como la descrita por Odelga et al [5], donde se consigue un UAV de seis grados de libertad (6 DOF) al añadir dos servomotores para el control de un mecanismo trapezoidal que actúa sobre la orientación de los rotores. Para hacer el análisis se desarrollarán los modelos de ambos tipos de UAV. El modelo clásico se toma del artículo de Mistler et al [11]. Por otro lado, el modelo del UAV novedoso se tomará del propio artículo del autor y se seguirá el mismo proceso para su modelado que el seguido en el artículo original. Con el fin de facilitar la comparación de ambos modelos dinámicos, se aplicará la nomenclatura empleada en [5] al modelo de Mistler et al, desarrollando paso a paso las ecuaciones. Tras ello, se validarán los modelos antes desarrollados mediante simulaciones que escalarán en complejidad, comenzando por movimientos básicos fáciles de predecir cualitativamente y finalizando por movimientos compuestos por varios de los anteriores. Por último, se diseñará, construirá y probará una herramienta ligera de extracción de fluidos basada en la tecnología Lab-on-PCB, que podría ser colocada en un UAV genérico, para mostrar el potencial que tienen este tipo de diseños al ser usados en micro-aeronaves no tripuladas. Se comenzará haciendo una introducción al concepto de “PCB-MEMS”, seguido por la fase de diseño
14 del sistema, su fabricación y su testeo, comentando ligeramente código implementado en el sistema embebido que controla el sistema de extracción en sí mismo.
2 ESTADO DEL ARTE 2.1 Introducción En este capítulo se verán con mayor profundidad los conceptos de Vehículo Aéreo No Tripulado (UAV) y PCB-MEMS en este mismo orden. En primer lugar, se dará su definición y se detallará qué tipos de aeronaves están incluidas en ella tras lo cual se realizará un breve resumen histórico de estas máquinas que permitan entender su origen, las tecnologías que han permitido su desarrollo y el potencial aún por extraer de ellas. A continuación, hará un repaso de las principales arquitecturas de las aeronaves que conciernen más de cerca a esta obra, los UAV de ala rotatoria, con el fin de intentar comprender en qué punto de desarrollo se encuentra esta área de la ingeniería actualmente. En segundo lugar, se profundizará en las ideas de MEMS y PCB-MEMS, dando su definición y haciendo como antes un repaso breve de su historia. Tras ello se explicarán las bases de los sensores y actuadores realizados con esta tecnología y se expondrán algunos ejemplos de estos, finalizando con el caso especial de los “Lab-on-PCB”. 2.2 Vehículos Aéreos No Tripulados (UAV) 2.2.1 Definición UAV es el acrónimo de Ummaned Aerial Vehicle en inglés, también conocidos por su acrónimo en castellano VANT de Vehículo Aéreo No Tripulado o comúnmente como dron, que se traduce literalmente del inglés como zángano, son aeronaves sin tripulación, reutilizables y capaces de mantener de manera autónoma un vuelo controlado y sostenido [referencia a la Wikipedia]. Existen otros términos similares como RPAS del inglés Remotely Piloted Aircraft System, esto incluye a la aeronave controlada remotamente más el sistema de control. Por otro lado, el acrónimo RPA sólo incluye a la aeronave controlada remotamente. La diferencia entre UAV y UAS es la análoga. Otra variante en cuanto a nomenclatura sería UCAV que se corresponde con los UAV de combate, capaces de portar armamento. No obstante, el uso de manera más generalizada de estos sistemas es relativamente reciente por lo que su regulación no está aun totalmente desarrollada. Por tanto, es posible que la terminología exacta cambie en los próximos años. 2.2.2 Historia La idea de aeronaves que funcionan sin tripulación no es nueva. Los primeros registros datan de 1849, cuando los austriacos intentaron bombardear Venecia empleando globos aerostáticos cargados con explosivos con temporizador. Los austriacos emplearon los vientos regulares que solían dirigirse desde el mar a la ciudad para “dirigir” los globos no tripulados. El logro del primer vehículo radio controlado fue de la mano del ingeniero Nikola Tesla en 1898 donde exhibió el funcionamiento de un pequeño barco controlado a distancia mediante una caja de radiotransmisión en la Madison Square Garden de Nueva York. A pesar de la importancia del suceso, no tuvo impacto sobre el público.
22 entre 10 y 100 micras. Para crear MEMS con los que trabajar en microfluídica a partir de las anteriores PCB suelen trazarse canales, por los cuales fluye el líquido o gas que se pretende guiar, y cámaras en las que acumularlo. Ello se consigue añadiendo la lámina de material sobre la PCB que sirva para sellar los surcos elaborados o bien, elaborando dichos canales y cámaras en la capa del material en cuestión superpuesta a la PCB. Así se puede fabricar el sistema eléctrico sobre la PCB y el sistema microfluídico queda sobre él. En la literatura existen multitud de casos de aplicación en los cuales se colocan diferentes tipos de capas sobre la PCB. Algunos de los materiales empleados son la resina SU-8 fotoresistiva negativa [6, 13], la silicona polidimetilsiloxano (PDMS) [14], el polimetacrilato de metilo (metacrilato o PMMA) [15] o incluso otra PCB [8]. Los métodos de fabricación para conseguir los surcos y cámaras en estos materiales varían enormemente. Por ejemplo, el PMMA puede ser fácilmente mecanizado, por lo que se suele recurrir al fresado tras lo cual se procede al pegado con la PCB aplicando pegamento (como Loctite) mediante un rodillo que permita la deposición de una capa uniforme de varias decenas de micras [15]. Por otro lado, la fabricación mediante SU-8 es realizada mediante la deposición de capas elaborando las estructuras que se desean. Una vez depositadas las capas, se sigue un proceso de curado del material que consiste en la exposición por pasos a radiación ultravioleta y un posterior horneado a diferentes temperaturas [6]. A continuación, se exponen diferentes PCB-MEMS a modo de ejemplo. - Válvula de escape con imanes permanentes La válvula que se expone pertenece al artículo Pressure Relief Valve with Permanent Magnets de Stefan Gassmann y Lienhard Pagel [9]. Bajo términos generales, una válvula de escape tiene la función de aliviar la presión de un determinado recipiente o circuito contenedor de un líquido o gas. El funcionamiento es sencillo: cuando la presión interna es mayor que un determinado umbral de presión, esta se abre hasta que la primera vuelve a estar por debajo del nivel umbral. Figura 2.9 – Válvula de escape de imanes permanentes. De la obra “Pressure Relief Valve with Permanent Magnets” Gassmann S., Pagel L. La fuerza ejercida por el fluido contenido será proporcional a la presión del mismo y al área sobre la cual actúa. Por otro lado, la fuerza del imán superior no se calcula de forma sencilla, aunque es inversamente proporcional al cuadrado de la distancia hacia el otro imán. - Sensor de presión capacitivo Este PCB-MEMS estima la distancia existente entre dos electrodos de oro a través de la capacidad medible entre ambos, separados por aire, que hace de dieléctrico. El electrodo superior está depositado sobre una fina lámina de polímero SU-8, a su vez colocada sobre FR-4 que hace de sustrato. Este
último tiene un orificio que permite a la lámina de SU-8 estar en contacto directo con el aire y elevarse o descender según varíe la presión [16]. Figura 2.10 – Sensor de presión. De la obra “Fabrication Process for PCBMEMS Capacitive Pressure Sensors Using the Cu Layer to Define the Gap” Souliah M. et al. - Microbomba basada en efecto de capilaridad A micro y nano escalas, el comportamiento de los fluidos difiere con respecto al que tienen en macro escala. Los efectos como la tensión superficial (y la capilaridad) predominan sobre los masas e inercias. La microbomba que se expone se basa en dichos factores para realizar su función. El flujo por capilaridad depende de la tensión superficial del fluido, la mojabilidad del canal y su geometría Esta bomba es totalmente pasiva y está compuesta por tres capas: la primera de FR-4, la siguiente de fotorresistivo seco y la última de tereftalato de polietileno. Mediante un proceso que incluye exposición a plasma de O2 y micromecanizado por láser, se elaboran los capilares encargados de absorber el fluido [17] Figura 2.11 – Proceso de fabricación de bomba pasiva por capilaridad. De la obra “High-performance PCB-based capillary pumps for affordable point-of-care diagnostics” Vasilakis N. et al. - Lab-on-PCB para citometría El último de los PCB-MEMS se trata de un Lab-on-PCB capaz de detectar y numerar la cantidad de células que pasan a través de un canal. Tal y como se comentaba, los LoPCB son capaces de medir magnitudes y parámetros del fluido cuyo movimiento regulan. En este caso se emplean dos electrodos situados cerca de un estrechamiento del microcanal por el cual circula el fluido. Midiendo la impedancia entre ambos electrodos continuamente, es posible detectar cuándo un cuerpo (célula) pasa
24 por dicha sección. A partir de esta información es posible estimar el número de células en el fluido [18]. Figura 2.12 – Esquema del LoPCB citómetro. De la obra “Lab-on-PCB-based micro-cytometer for circulating tumor cells detection and enumeration” Fu Y. et al.
3 DESCRIPCIÓN Y MODELADO DE LOS UAVS En este capítulo se describen y analizan físicamente las dos arquitecturas de aeronaves propuestas para el caso de estudio: quadrotor de configuración usual y quadrotor de rotores inclinables. Primero se describe la nomenclatura y el sistema, luego se analiza cinemáticamente y, por último, dinámicamente. Para poder comparar las ecuaciones de ambas aeronaves, se ha tomado el modelo considerado por (Mistler et al, 2001) y se le han obtenido las ecuaciones bajo la nomenclatura empleada por Odelga et al También se han desarrollado de manera más extendida las ecuaciones de estos últimos autores para una mejor comprensión de las mismas. Asimismo, se han corregido algunos errores menores encontrados en el artículo original. 3.1 Quadrotor de configuración usual El primero de los vehículos aéreos no tripulados que se analiza en esta obra es un cuadricóptero o quadrotor, cuyo nombre proviene del número de rotores integrados en él. La disposición espacial de éstos es la misma que se aprecia en la figura 2.1, donde dos barras cruzadas en forma de “x” o “+” sustentan los rotores en sus extremos. Esta aeronave es un sistema infra-actuado, ya que se dispone únicamente de cuatro variables de control, correspondientes a los cuatro rotores, con las cuales dirigirlo. La primera de las variables de control considerada es el empuje vertical respecto a la base del quadrotor, U1, que se consigue gracias a la suma del empuje de los cuatro rotores. Las siguientes variables, U2 y U3, se corresponden respectivamente con las actuaciones sobre los ángulos de alabeo o roll, y cabeceo o pitch, respectivamente y se controlan mediante la diferencia de empuje del cuarto y segundo rotor para el roll, y la diferencia de empuje del primer y tercer rotor para el pitch. Por último, el cambio en el ángulo de guiñada o yaw, es consecuencia de una suma de momentos total no nula producida por los rotores, los cuales giran por pares en sentido horario y sentido antihorario. Así, para realizar un movimiento frontal, deberá mantenerse la componente vertical de U1 constante para no perder altura, mientras se aumenta U3 haciendo que el sistema se incline hacia adelante y avance; se realizará un procedimiento análogo para los desplazamientos laterales, se variará la componente vertical de U1 según se quiera incrementar y reducir la altura y se variará el momento resultante, U4, para girar en torno al eje z respecto a la base del quadrotor. Figura 2.1 - Esquema de quadrotor usual
26 3.1.1 Notación, Sistemas de Referencia y Modelo Cinemático Previamente a la obtención del modelo del quadrotor deben definirse los sistemas de referencia empleados, así como las rotaciones y, en general, transformaciones que se aplicarán para pasar del sistema de referencia local de la aeronave a un segundo sistema global o inercial; obteniendo consecuentemente el modelo cinemático del helicóptero. Figura 2.2 - Esquema de Sistemas de Referencia Los sistemas de referencia considerados en este caso son, primero, el sistema global (World) W: {OW , XW , YW , ZW} y segundo, el sistema local del quadrotor y asociado al cuerpo (Body) del mismo B:{ OB , XB , YB , ZB} cuyo centro, OB, coincide con el centro de masas del aparato, que se asume idealmente situado en el centro geométrico entre los rotores, que son coplanarios. Considerando los anteriores sistemas de referencia, la posición relativa de B en W sería, por ejemplo: 𝑝 𝑊𝐵= 𝑂 𝑊𝐵 ∊ ℝ3. La posición y orientación absoluta del UAV se describe plenamente mediante un vector posición de tres coordenadas, WpB = (xW, yW, zW), de su centro de masas con respecto al sistema de referencia global y los tres ángulos de Euler WδB = (φB , θB , ψB), que se corresponden con los ángulos de Tait-Bryan (roll, pitch, yaw) y van entre -π/2 y π/2 sin alcanzar nunca estos valores para evitar los problemas que surgen por la singularidad en la rotación según el ángulo pitch en ±π/2. El sentido de giro se elige según la regla de la mano derecha. Para obtener la orientación del quadrotor respecto del sistema global, debe realizarse una rotación por cada ángulo, siendo la matriz de rotación completa: 𝑅𝐵= 𝑅 𝑊𝐵=𝑅𝑧(𝜓𝐵 )𝑅𝑦(𝜃𝐵 )𝑅𝑥(𝜑𝐵 ) (2.1) Donde Rx(·), Ry(·), Rz(·), denotan las matrices de rotación canónicas representando las rotaciones alrededor de los ejes X, Y, Z y que se definen como: • 𝑅𝑥 (·) es la rotación canónica según el eje X. Se aplica el ángulo de roll girado, φ: [𝑥1 𝑦1 𝑧1]=[1 0 0 0 𝑐𝑜𝑠𝜑 −𝑠𝑖𝑛𝜑 0 𝑠𝑖𝑛𝜑 𝑐𝑜𝑠𝜑][𝑥𝐵 𝑦𝐵 𝑧𝐵] (2.2)
• 𝑅𝑦 (·) es la rotación canónica según el eje Y. Se aplica el ángulo de pitch girado, θ: [𝑥2 𝑦2 𝑧2]=[cos𝜃 0 sin𝜃 0 1 0 −sin𝜃 0 cos𝜃][𝑥1 𝑦1 𝑧1] (2.3) • 𝑅𝑧 (·) es la rotación canónica según el eje Z. Se aplica el ángulo de yaw girado, ψ: [𝑥𝑤 𝑦𝑤 𝑧𝑤]=[cos𝜓 −sin𝜓 0 sin𝜓 cos𝜓 0 0 0 1][𝑥2 𝑦2 𝑧2] (2.4) La rotación completa incluye por tanto los giros correspondientes a cada ángulo de rotación de forma compacta en la misma matriz, 𝑅 𝑊𝐵: 𝑤𝑅𝐵=[cos𝜃cos𝜓cos𝜓sin𝜃sin𝜑−cos𝜑sin𝜓 cos𝜑cos𝜓sin𝜃+sin𝜑sin𝜓 cos𝜃sin𝜓 sin𝜃sin𝜑sin𝜓+cos𝜑cos𝜓cos𝜑sin𝜃sin𝜓−cos𝜓sin𝜑 −sin𝜃 cos𝜃sin𝜑 cos𝜃cos𝜑] La anterior matriz es ortonormal y su inversa será igual a su propia traspuesta, matriz que será empleada para pasar del sistema de referencia global al local. Por tanto, para obtener las coordenadas del sistema de referencia local, B, expresadas en el sistema de referencia global, W, habrá que aplicar la rotación completa determinada en (2.1) tal que: 𝑝= 𝑝𝐵= 𝑅 𝑊𝐵 𝑊𝑝𝐵 (2.5) A continuación, se derivan las expresiones de posición y orientación para obtener el modelo cinemático de la aeronave. Los ángulos de Euler están referidos respecto a los ejes x, y, z, fijados al centro de masas del quadrotor de forma que: 𝛿=[𝜓𝐵, 𝑊𝜃𝐵, 𝑊𝜑𝐵 𝑊]=[𝜓𝐵,𝜃𝐵,𝜑𝐵]=[𝜓,𝜃,𝜑] por lo que la relación entre sus derivadas y las velocidades angulares fijadas al sistema de referencia B, que aquí son 𝜔𝐵=[ꙍ𝑥,ꙍ𝑦,ꙍ𝑧]𝑇, se relacionan mediante una matriz antisimétrica [11][19]. 𝛿=𝑀(𝜓,𝜃,𝜑)𝜔𝐵 → [𝜓𝜃𝜑]=[0 sin𝜑sec𝜃 cos𝜑sec𝜃 0cos𝜑 −sin𝜑 1 sin𝜑tan𝜃cos𝜑tan𝜃][ꙍ𝑥 ꙍ𝑦 ꙍ𝑧] (2.6) Por otro lado, las velocidades lineales en el sistema de referencia global sí son el resultado directo de las derivadas de la posición en cada uno de los ejes: 𝑐𝑜𝑙(𝑥𝑤,𝑦𝑤,𝑧𝑤)=𝑉𝑤 → [𝑥𝑊 𝑦𝑊 𝑧𝑊]=[𝑢𝑊 𝑣𝑊 𝑤𝑊] (2.7) Si se obtiene la derivada respecto del sistema de referencia local, medible por ejemplo desde un quadrotor real, a estas se les debe aplicar la rotación (2.1) de forma análoga a como se hizo con la posición en (2.5) para obtener las velocidades lineales respecto del sistema de referencia global: 𝑉𝑊= 𝑅𝐵 𝑊𝑉𝐵 (2.8) El modelo cinemático de este modelo de UAV queda definido por las ecuaciones (2.6), (2.7) y (2.8). Se agrupan las variables de control directo, que son las velocidades angulares de los rotores, en el
28 siguiente vector (con 𝜔𝑖=𝜔𝑖|𝜔𝑖| ): 𝜔=[𝜔1𝜔2𝜔3𝜔4]𝑇 (2.9) 3.1.2 Modelo Dinámico El modelo dinámico de un sólido rígido sometido a fuerzas puede ser obtenido empleando la aproximación de Newton-Euler que describe la manera en que se relacionan las fuerzas, inercias y aceleraciones [20]. Esta aproximación se realiza mediante la combinación de la ecuación de Newton (2.10) y la ecuación de Euler (2.11). La primera relaciona la aceleración tangencial que se produce sobre un sólido al aplicar una fuerza, F, en su centro de masas. La segunda relaciona la aceleración angular que se produce en un sólido que gira a una velocidad angular ꙍ al aplicar un momento, N, sobre su centro de masas. I es el tensor de inercia el cual se considera aquí diagonal. 𝛴𝐹=𝑚𝑉 (2.10) 𝛴𝜏=𝐼𝜔+𝜔×𝐼𝜔 (2.11) Los sumatorio de fuerzas y torques incluyen todos los debidos al peso, fuerzas aerodinámicas y propulsión y torques producidos por los cuatro rotores. Las fuerzas y torques que influyen en la dinámica son de forma simplificada [11]: 𝑭 𝐵=[(𝑐𝑜𝑠𝜑𝑐𝑜𝑠𝜓𝑠𝑖𝑛𝜃+𝑠𝑖𝑛𝜑𝑠𝑖𝑛𝜓)𝑈1−𝐴𝑥 (𝑐𝑜𝑠𝜑𝑠𝑖𝑛𝜃𝑠𝑖𝑛𝜓−𝑐𝑜𝑠𝜓𝑠𝑖𝑛𝜑)𝑈1−𝐴𝑦 (𝑐𝑜𝑠𝜃𝑐𝑜𝑠𝜑)𝑈1−(𝐴𝑧+𝑚𝑔)] (2.12) 𝝉 𝐵=[𝑈2𝑑−𝐴𝑝 𝑈3𝑑−𝐴𝑞 𝑈4−𝐴𝑟] (2.13) Donde (para i=x, y, …, q, r) modelan los efectos aerodinámicos y son las señales de control explicadas en el apartado (2.1) y matemáticamente definidas: - 𝑈1 es la fuerza resultante de los cuatro rotores: 𝑈1=∑ 𝑓𝑃𝑖 4𝑖=1 (2.14) - 𝑈2 es la diferencia de fuerza entre el segundo y el cuarto rotor: 𝑈2=𝑓𝑃2−𝑓𝑃4 (2.15) - 𝑈3 es la diferencia de fuerza entre el rotor frontal y el rotor trasero: 𝑈3=𝑓𝑃1−𝑓𝑃3 (2.16) - 𝑈4 es la resultante de torques entre los cuatro rotores: 𝑈4=∑ 𝑚𝑃𝑖 4𝑖=1 (2.17) La fuerza producida por cada uno de los rotores, así como el torque de los mismos, pueden ser modelados como: 𝑓𝑃𝑖=(0 0 𝑘𝑓𝜔𝑖|𝜔𝑖|)𝑇, 𝑘𝑓>0 (2.18) 𝑚𝑃𝑖=(0 0 −𝑘𝑚𝜔𝑖|𝜔𝑖|)𝑇 , 𝑘𝑚>0 (2.19) En las anteriores expresiones, 𝜔𝑖 es la velocidad de giro del rotor i-ésimo y los factores 𝑘𝑓 y 𝑘𝑚
son respectivamente los coeficientes de fuerza y torque de los rotores que pueden ser estimados experimentalmente. Estos no incluyen efectos aerodinámicos, pero son aproximaciones dinámicas suficientemente precisas según [ 21]. Las expresiones (2.12) y (2.13) pueden expresarse como sigue introduciendo en ellas (2.18) y (2.19): 𝑭 𝐵=∑𝑓𝑃𝑖 4 𝑖=1 −𝑚𝒈−𝐴𝑓=𝐹𝜔𝜔−𝑚𝒈−𝐴𝑓=[0 0 0 0 0 0 0 0 𝑘𝑓𝑘𝑓𝑘𝑓𝑘𝑓][𝜔1 𝜔2 𝜔3 𝜔4]−[00 −𝑔]−[𝐴𝑥 𝐴𝑦 𝐴𝑧] (2.20) 𝝉 𝐵=𝜏𝜔𝜔−𝐴𝑡=[ 0 𝑑𝑘𝑓0 −𝑑𝑘𝑓 𝑑𝑘𝑓0 −𝑑𝑘𝑓0 −𝑘𝑚𝑘𝑚−𝑘𝑚𝑘𝑚][𝜔1 𝜔2 𝜔3 𝜔4]−[𝐴𝑝 𝐴𝑞 𝐴𝑟] (2.21) Donde 𝐴𝑡=(𝐴𝑥,𝐴𝑦,𝐴𝑧)𝑇 y 𝐴𝑎=(𝐴𝑝,𝐴𝑞,𝐴𝑟)𝑇 son los efectos aerodinámicos que provocan respectivamente fuerzas y torques, 𝑚 es la masa total del quadrotor, 𝒈=(0,0,−𝑔)𝑇 y 𝜔𝐵=𝜔 son las aceleraciones angulares. En ellas se observa que 𝐹𝑃=𝜕 𝑭 𝐵 𝜕𝜔𝜔=𝐹𝜔𝜔 y que 𝜏𝑃=𝜕 𝝉 𝐵 𝜕𝜔𝜔=𝜏𝜔𝜔, es decir, las fuerzas y momentos de los rotores se pueden expresar como la derivada de la fuerza y del momento resultante respecto de cada uno de los rotores multiplicado cada término por la velocidad al cuadrado con signo del rotor i-ésimo. Esta forma de expresarlo es equivalente a (2.12) y (2.13). Así, aplicando las ecuaciones (2.10) y (2.11) a (2.20) y (2.21) de forma matricial, despejando las aceleraciones tangenciales y angulares se obtiene el modelo dinámico del quadrotor: 𝑝 𝑊=(1𝑚 ⁄)( 𝑅𝐵 𝑊𝐹𝜔𝜔−𝐴𝑓−𝒈) (2.21) 𝜔𝐵=𝐼−1(−𝜔𝐵×𝐼𝜔𝐵+𝜏𝜔𝜔−𝐴𝑡) (2.22) Los términos aerodinámicos de este modelo no-lineal son a priori desconocidos durante un caso real, por lo que despreciarán de las ecuaciones y se tomarán como perturbaciones a la hora de aplicarle las técnicas de control. Agrupando (2.20) y (2.21): [𝑝 𝑊 𝜔𝐵]=[−𝒈 𝑐]+[1 𝑚𝑅𝐵 𝑊0 0 𝐼−1][𝐹𝜔 𝜏𝜔]𝜔= 𝒇+𝑱𝑅𝑱𝜔𝜔= 𝒇+𝑱 𝜔 (2.23) En la anterior expresión 𝑐=−𝐼−1(𝜔𝐵×𝐼𝜔𝐵) que se corresponde con el término de Coriolis, 𝒇=[−𝒈𝑇 𝑐𝑇]𝑇, 𝑱𝑅=[1𝑚 ⁄𝑅𝐵 𝑊0 0 𝐼−1], 𝑱𝜔=[𝐹𝜔 𝜏𝜔] y 𝑱 =𝑱𝑅𝑱𝜔 ∈ℝ6 es el jacobiano del sistema.
30 3.2 Quadrotor de rotores inclinables El segundo de los modelos de quadrotor que se va a analizar en esta obra es el presentado por Marcin Odelga, Paolo Stegagno y Heinrich H. Bülthoff del Departamento de Percepción, Cognición y Acción Humana del Instituto Max Planck de Cibernética Biológica en el artículo “Fully Actuated Quadrotor UAV with a Propeller Tilting Mechanism: Modeling and Control” [5]. Este modelo dispone de un mecanismo de dos grados de libertad con el cual se puede orientar la fuerza generada por los cuatro rotores, desacoplando así el movimiento lateral y las rotaciones de roll y pitch. El mecanismo, que se muestra en las figuras 2.3 y 2.4, está compuesto por una estructura que se encuentra bajo los cuatro brazos del UAV, un vínculo, por cada uno de los rotores, que los conecta con la estructura y vínculo central donde se conecta la estructura con los actuadores, formando cuatro paralelogramos acoplados, uno por brazo con los que se actúa sobre la orientación de los rotores simultáneamente. A efectos prácticos, el quadrotor presentado puede funcionar del mismo modo que lo hace el primero de los UAVs que se propuso con solo mantener la orientación de los rotores inalterable. Así pues, se debe analizar cómo cambia el modelo del quadrotor de configuración en “X” al añadir estas dos nuevas variables de control. ¹Las figuras 2.3, 2.4 y 2.5 pertenecen a la obra “A Fully Actuated Quadrotor UAV with a Propeller Tilting Mechanism: Modeling and Control” de Odelga M. et al. 3.2.1 Notación, Sistema de Referencia y Modelo Cinemático Como se observa en la figura 2.5, se añaden cinco sistemas de referencia: uno asociado a la estructura del mecanismo, M: {OM , XM , YM , ZM}, y otros cuatro fijados a los rotores, 𝑃𝑖:{𝑂𝑃𝑖,𝑋𝑃𝑖,𝑌𝑃𝑖,𝑍𝑃𝑖} con i=1 … 4. En estos últimos, el eje z está en la dirección en la que produce el rotor la fuerza. Para realizar la extracción del modelo dinámico (apartado 2.2.2) habrá que tener previamente definidas las transformaciones necesarias para expresar la fuerza de cada uno de los rotores respecto del sistema de referencia del cuerpo, B. Para ello, se hará primero una transformación de 𝑃𝑖 a M y después, de M a B. Los rotores tendrán la misma orientación que el mecanismo que actúa sobre ellos, por tanto, la transformación es directa: Figura 2.3 – Mecanismo de inclinación para los rotores. ¹ Figura 2.4 – Esquema de quadrotor de rotores inclinables. ¹
𝑅𝑃𝑖 𝐵= 𝑅𝑀 𝐵, 𝑖=1…4. (2.24) Figura 2.5 – Sistemas de referencia para el quadrotor de rotores inclinables. ¹ Por otro lado, la posición de cada uno de los rotores respecto del origen del sistema de referencia del mecanismo vendrá dada por la transformación: 𝑂𝑃𝑖= 𝑂𝑃𝑖 𝐵=𝑅𝑧((𝑖−1)𝜋 2)[𝑑00], 𝑖=1…4. (2.25) Donde 𝑅𝑧 es la rotación canónica alrededor del eje z (2.4). La expresión (2.24) determina el vector que une ambos orígenes para el i-ésimo rotor. Y, por último, se resuelve la transformación entre el sistema de referencia fijado al mecanismo, M, y el asociado al cuerpo del UAV, B: 𝑅𝑀 𝐵=𝑅𝑦(𝜃𝑚)𝑅𝑥(𝜑𝑚) (2.26) Las dos rotaciones canónicas se realizan según las nuevas variables de control que son dos ángulos, 𝜑𝑚 𝑦 𝜃𝑚, los cuales representan el giro de los rotores alrededor del eje x y alrededor del eje y respectivamente, de manera análoga a las rotaciones de rolling y pitching de ángulos 𝜑 𝑦 𝜃 del propio quadrotor y definen la posición relativa del sistema de referencia M en B. Con este mecanismo, los ángulos están limitados al intervalo [-π/6, π/6]. Para este quadrotor se mantienen las transformaciones definidas en el apartado 2.2.1, por lo que las últimas expresiones no intervienen en el modelo cinemático definido por (2.5), (2.6) y (2.7). Se agrupan ahora las acciones de control directas sobre el quadrotor, que son las velocidades angulares de los rotores y las derivadas de los ángulos del mecanismo, como sigue (con 𝜔𝑖=𝜔𝑖|𝜔𝑖| ): [𝜔 𝜔𝑚]= [ 𝜔1 𝜔2 𝜔3 𝜔4 𝜑𝑚 𝜃𝑚 ] (2.27) 3.2.2 Modelo Dinámico En este apartado se extraerá el modelo dinámico del quadrotor de rotores inclinables de forma análoga a como se hizo con el primer UAV con la diferencia de que primero se analizará la relación entre fuerzas y torques generados por los rotores y las velocidades angulares tanto de los rotores como del mecanismo de orientación siguiendo el procedimiento de (Marcin Odelga). La fuerza originada en los rotores se estima con la expresión (2.18), siendo 𝐹𝑃 la matriz que reúne los
38 Por último, en la tabla 4-5 se muestran los experimentos se realizarán exclusivamente con el segundo quadrotor poniendo a prueba el modelo combinando experimentos de movimientos básicos de la tabla 4-2 con los movimientos básicos de prueba del mecanismo de inclinación. Experimento Resumen descriptivo y resultados esperados 20. Ascensión con incremento del ángulo roll del mecanismo Se combinan los experimentos 2. y 10. incrementando el ángulo roll durante 0.3s y el desequilibrio de fuerzas durante 0.6s. Se espera un incremento de altura y desplazamiento en el sentido negativo del eje y con una variación nula de la orientación. 21. Incremento del ángulo roll del UAV y reducción del ángulo roll del mecanismo durante el hovering Se combinan los experimentos 4. y 11. manteniendo el desequilibrio entre momentos durante 0.3s. Idealmente se podría esperar una compensación de los efectos provocados por los cambios, dando lugar únicamente a un cambio en la orientación. No obstante, este no es un movimiento realimentado, por lo que se tendrá un movimiento similar a este con un desplazamiento lateral menor al obtenido en el experimento 4. 22. Incremento del ángulo roll del mecanismo y reducción de los ángulos pitch y yaw del UAV durante el hovering Se combinan los experimentos 7., 9. y 10. Se espera un desplazamiento siguiendo el arco de una circunferencia antihoraria de una menor curvatura que en el experimento 19. y con la misma variación angular según el eje z que en este último. Tabla 4-5 – Experimentos de movimientos compuestos incluyendo actuaciones sobre el mecanismo de inclinación Por último, se realizarán experimentos variando los parámetros físicos de los UAVs, como son la masa o las constantes de los motores, para observar cómo afectan estos cambios a la dinámica del quadrotor. Experimento Resumen descriptivo y resultados esperados 23. Ascensión con masa incrementada Manteniendo la fuerza total generada por los cuatro rotores como en el experimento 2., se aumenta en un 15% la masa del UAV. Ya que la fuerza de la gravedad será un 15% más fuerte, se espera una aceleración en el sentido negativo del eje z. 24. Incremento del ángulo roll durante el hovering con disminución de Se realiza el experimento 4. con un aumento previo de un 15% de las constantes de fuerza de los motores. Se espera un cambio más brusco en la orientación del quadrotor con una consecuente mayor disminución de la altura que en el experimento 4. y un mayor desplazamiento lateral que en el mismo. 25. Incremento del ángulo yaw durante el hovering con disminución de Se realiza el experimento 8. con una disminución previa de un 15% de las constantes de momento de los motores. Se espera un cambio en la orientación (giro) en el sentido positivo del eje z del sistema de referencia local de menor magnitud que en el experimento 8. 26. Incremento del ángulo pitch durante el hovering con incremento de la longitud d Se realiza el experimento 6. con un aumento previo de la longitud de los brazos del quadrotor en un 15%. Ya que la inercia no se ha cambiado junto con la longitud, se espera un giro más brusco que en el experimento 6. en el sentido positivo del eje y del sistema de referencia local. El desplazamiento frontal se espera mayor que el obtenido en el experimento previo. 27. Incremento del ángulo pitch durante el hovering con incremento de la masa Se realiza el experimento 6. con un aumento previo de la masa del quadrotor en un 15%. Se espera un giro en el sentido positivo del eje y del sistema de referencia local de magnitud similar al obtenido en el experimento 6. pero con un desplazamiento frontal menor que el obtenido en aquel último. Tabla 4-6 – Experimentos de movimientos con cambios en las especificaciones del UAV Las figuras 4.1 y 4.2 muestran los esquemas de Matlab Simulink en los que se implementan los
modelos desarrollados: Figura 4.2 – Diagrama de bloques de Matlab Simulink. Modelo de UAV de M. Odelga La realización se las simulaciones se han realizado mediante el Script “Simulaciones.m” en el cual se cambian los diversos parámetros y entradas de la simulación en base al tiempo de simulación. Figura 4.1 – Diagrama de bloques de Matlab Simulink. Modelo de UAV usual
40 4.1.2 Resultados de los experimentos A continuación, se muestran los resultados obtenidos con cada uno de los experimentos desarrollados con los modelos de quadrotor de configuración en X y de rotores inclinables. Las representaciones gráficas de las trayectorias seguidas solo se muestran en aquellos casos en los que sean necesarias para la comprensión adecuada de las conclusiones extraídas del experimento; a fin de obtener una mayor claridad en el documento. Los experimentos han sido diseñados para probar aspectos básicos e intuitivos asociados a las aeronaves reales de forma que, una vez verificados los comportamientos sencillos, pueda seguirse ascendiendo la complejidad de las pruebas realizando experimentos basados en una composición, por superposición, de los estímulos más básicos realizables a los modelos. Los resultados de coordenadas máxima y mínimo alcanzada en cada uno de los ejes, así como los valores de orientación se muestran en las siguientes tablas (4-7 a 4-13), con ángulos en grados y coordenadas en metros, presentando los datos según el experimento y el UAV simulado. Núm. 0 1 2 3 4 5 6 7 X máx. 0.0 0.0 0.0 0.0 0.195 0.0 1.419 0.0 X mín. 0.0 0.0 0.0 0.0 0.0 -0.195 0.0 -1.419 Y máx. 0.0 0.0 0.0 0.0 0.0 1.413 0.0 0.012 Y mín. 0.0 0.0 0.0 0.0 -1.413 0.0 -0.012 0.0 Z máx. 0.0 0.0 0.207 0.0 0.015 0.015 0.015 0.015 Z mín. -4.905 0.0 0.0 -0.207 -0.372 -0.372 -0.378 -0.378 Φ máx. 0.0 0.0 0.0 0.0 1.235 0.0 0.0 0.071 Φ mín. 0.0 0.0 0.0 0.0 0.0 -1.235 -0.071 0.0 Θ máx. 0.0 0.0 0.0 0.0 0.0 0.013 1.249 0.0 Θ mín. 0.0 0.0 0.0 0.0 -0.013 0.0 0.0 -1.249 Ψ máx. 0.0 0.0 0.0 0.0 0.039 0.039 0.0 0.0 Ψ mín. 0.0 0.0 0.0 0.0 0.0 0.0 -0.095 -0.095 Tabla 4-7 – Datos de simulación UAV en X. Experimentos del 0 al 7
Núm. 0 1 2 3 4 5 6 7 X máx. 0.0 0.0 0.0 0.0 0.020 0.0 1.440 0.0 X mín. 0.0 0.0 0.0 0.0 0.0 -0.020 0.0 -1.440 Y máx. 0.0 0.0 0.0 0.0 0.0 1.440 0.0 0.020 Y mín. 0.0 0.0 0.0 0.0 -1.440 0.0 -0.020 0.0 Z máx. 0.0 0.0 0.207 0.0 0.015 0.015 0.015 0.015 Z mín. -4.905 0.0 0.0 -0.207 -0.393 -0.393 -0.393 -0.393 Φ máx. 0.0 0.0 0.0 0.0 1.271 0.0 0.0 0.047 Φ mín. 0.0 0.0 0.0 0.0 0.0 -1.271 -0.047 0.0 Θ máx. 0.0 0.0 0.0 0.0 0.0 0.014 1.271 0.0 Θ mín. 0.0 0.0 0.0 0.0 -0.014 0.0 0.0 -1.271 Ψ máx. 0.0 0.0 0.0 0.0 0.040 0.040 0.0 0.0 Ψ mín. 0.0 0.0 0.0 0.0 0.0 0.0 -0.085 -0.085 Φm máx. 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 Φm mín. 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 Θm máx. 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 Θm mín. 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 Tabla 4-8 – Datos de simulación UAV de rotores inclinables. Experimentos del 0 al 7
42 Núm. 8 9 14 15 16 17 18 19 X máx. 0.0 0.0 0.0 0.0 1.320 0.0 2.278 0.0 X mín. 0.0 0.0 0.0 -1.891 0.0 -1.320 0.0 -2.405 Y máx. 0.0 0.0 0.0 0.049 0.0 1.320 0.128 0.238 Y mín. 0.0 0.0 0.0 0.0 -1.320 0.0 0.0 0.0 Z máx. 0.010 0.010 .873 0.0 0.030 0.030 0.113 0.108 Z mín. 0.0 0.0 0.0 -2.260 -0.712 -0.712 -10.060 -1.532 Φ máx. 0.0 0.0 0.0 30.095 1.846 0.0 2.913 2.873 Φ mín. 0.0 0.0 0.0 0.0 0.0 -1.846 0.0 0.0 Θ máx. 0.0 0.0 0.0 0.902 0.785 0.0 1.465 0.0 Θ mín. 0.0 0.0 0.0 -1.537 0.0 -0.785 0.0 -1.421 Ψ máx. 0.0 0.250 0.274 0.0 0.979 0.979 30.044 0.0 Ψ mín. -0.250 0.0 0.0 -3.145 0.0 0.0 0.0 -30.090 Tabla 4-9 – Datos de simulación UAV en X. Experimentos del 8 al 9 y del 14 al 19
Núm. 8 9 14 15 16 17 18 19 X máx. 0.0 0.0 0.0 0.0 1.336 0.0 2.285 0.0 X mín. 0.0 0.0 0.0 -1.882 0.0 -1.336 0.0 -2.384 Y máx. 0.0 0.0 0.0 0.082 0.0 1.336 0.214 0.401 Y mín. 0.0 0.0 0.0 0.0 -1.336 0.0 0.0 0.0 Z máx. 0.010 0.010 0.873 0.0 0.029 0.029 0.111 0.107 Z mín. 0.0 0.0 0.0 -2.295 -0.739 -0.739 -10.093 -1.559 Φ máx. 0.0 0.0 0.0 30.072 1.887 0.0 2.886 2.782 Φ mín. 0.0 0.0 0.0 0.0 0.0 -1.887 0.0 0.0 Θ máx. 0.0 0.0 0.0 .959 0.785 0.0 1.494 0.0 Θ mín. 0.0 0.0 0.0 -1.545 0.0 -0.785 0.0 -1.460 Ψ máx. 0.0 0.258 0.282 0.0 10.007 10.007 3.181 0.0 Ψ mín. -0.258 0.0 0.0 -3.286 0.0 0.0 0.0 -3.330 Φm máx. 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 Φm mín. 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 Θm máx. 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 Θm mín. 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 Tabla 4-10 – Datos de simulación UAV de rotores inclinables. Experimentos del 8 al 9 y del 14 al 19 Experimentos 0 - 3 Como se puede deducir de los datos presentados en las tablas 4-7 y 4-8 para los experimentos del 0 al 3, el comportamiento de los UAVs es el esperado. Si no se aplica ninguna fuerza en el eje z, el peso hace descender al quadrotor. Si se iguala la fuerza, este permanecerá estático (bajo condiciones ideales). Si se eleva o reduce la fuerza con la que se equilibra la gravedad, el UAV, efectivamente, experimentará una aceleración ascendente o descendente según el eje z del sistema de referencia local del aparato. Experimentos 4 – 7 La finalidad de estas pruebas era la de comprobar si, como se pensaba, el UAV modelado experimentaría un desplazamiento en el plano XY según el rotor al que se le aumentara la velocidad angular. Estos modelos parecen emular bien el comportamiento esperado. Se aprecia además el acoplamiento entre las diversas variables de estado de estas máquinas; por ejemplo, en el experimento 4 se esperaba un desplazamiento lateral hacia la derecha, pero al incrementar la velocidad del rotor correspondiente, también se descompensa el sumatorio de momentos de los rotores, provocando un cambio en la orientación. Exactamente, el quadrotor gira 00.039°, que se traduce en un relativamente pequeño desplazamiento en el sentido positivo del eje x del sistema de referencia local de 0.195m.
44 Además, como ya se comentó, al no tener un control sobre la altura, la fuerza en el eje z no es compensada adecuadamente durante el experimento, por lo que disminuye la altura del UAV. Experimentos 8 – 9 Se puede observar que los giros conseguidos en estas pruebas son menores que en las pruebas 4 – 7 para un cambio en las velocidades de una magnitud similar. Ello se debe a que el Yaw se controla mediante el sumatorio de momentos producidos por los rotores cuya constante Km es un par de órdenes menor a la constante de fuerza de cada rotor. Los resultados son válidos según lo esperado. Experimentos 14-19 El fin de estos experimentos era el de probar que los modelos emulan correctamente los movimientos compuestos; es decir, la superposición de varios de los movimientos básicos que ya se han evaluado como modelados correctamente. El primero de los experimentos se trataba de descompensar simultáneamente el sumatorio de fuerzas que crea una aceleración positiva en el eje z y el sumatorio de momentos que provoca un giro alrededor del mismo eje. Como se puede observar en las columnas correspondientes con dichas pruebas, los resultados son coherentes con lo esperado. En el experimento 15 se pretende que la aceleración en el eje z sea negativa (descenso) y a su vez, la fuerza del primer rotor sea mayor que la del resto de rotores, provocando un movimiento hacia atrás en tanto que la altura desciende. Aquí, el primer rotor gira un 10% más rápido que los demás rotores lo cual también provoca un desequilibrio de momentos, cuyo efecto se ve notablemente en el ángulo Yaw girado. No obstante, los resultados siguen coincidiendo con lo que se esperaba. Los experimentos 16 y 17 muestran el modo en que teóricamente se puede realizar un desplazamiento diagonal en el plano XY. Se aprecian bien en las siguientes imágenes: Figura 4.3 – Desplazamientos diagonales realizados por el UAV de rotores inclinables Los últimos experimentos pretenden probar la combinación del desplazamiento en uno de los ejes, que se consigue realizando un pequeño giro de roll o de pitch, con el giro de yaw a fin de realizar un movimiento aproximadamente circular. Se esperaban trayectorias en forma de arco que se han obtenido de forma aproximada. Puesto que los resultados han sido, de nuevo, muy similares para ambos modelos, se muestran las trayectorias seguidas por el quadrotor de arquitectura en X:
Figura 4.4 – Desplazamientos en arco realizados por el UAV de configuración usual Como se comentaba en los experimentos 8 – 9, es necesaria una mayor diferencia de velocidades angulares de los rotores para realizar un giro notable alrededor del eje z. Por ello, el arco es muy suave, avanzando 2.5m en el eje x frente a los 0.14m del eje y. Aún así, los resultados son afines a lo esperado. Los siguientes experimentos se realizan para probar los cambios en los movimientos al variar alguno de los parámetros de diseño de las aeronaves de forma que se termine de comprobar si se modelan coherentemente los parámetros de forma relativa a los primeros experimentos realizados. Esto es, que se obtengan resultados coherentes respecto a los experimentos básicos ya realizados. Experimento 23 Se mantiene la fuerza resultante de los cuatro rotores en el eje z del experimento 2. Al aumentar la masa un 15%, dicha fuerza debería ser menor a la del peso, resultando en una aceleración negativa según el eje z del sistema de referencia local; como efectivamente muestran los datos extraídos del experimento. El efecto de la masa está modelado coherentemente. Experimentos 24 y 25 Al reducir la constante de fuerza de los motores, son necesarias más revoluciones de cada rotor para conseguir la misma fuerza resultante que en el primer caso. Si esto se cumple, los resultados deben ser iguales que si esta constante no se redujera. Efectivamente, los datos del experimento 5 y los del experimento 24 son prácticamente idénticos. Lo mismo ocurre con la constante de torque de los motores, siendo similares los resultados del experimento 8 y los del 25.
46 Núm. 23 24 25 26 27 X máx. 0.0 0.0 0.0 1.591 1.234 X mín. 0.0 -0.023 0.0 0.0 0.0 Y máx. 0.0 1.412 0.0 0.0 0.0 Y mín. 0.0 0.0 0.0 -0.013 -0.010 Z máx. 0.0 0.015 0.010 0.013 0.0 Z mín. -0.640 -0.372 0.0 -0.509 -0.969 Φ máx. 0.0 0.0 0.0 0.0 0.0 Φ mín. 0.0 -1.232 0.0 -0.178 -0.071 Θ máx. 0.0 0.015 0.0 1.432 1.249 Θ mín. 0.0 0.0 0.0 0.0 0.0 Ψ máx. 0.0 0.046 0.0 0.0 0.0 Ψ mín. 0.0 0.0 -0.213 -0.201 -0.095 Tabla 4-11 – Datos de simulación UAV en X. Experimentos del 23 al 27
Núm. 23 24 25 26 27 X máx. 0.0 0.0 0.0 1.613 1.252 X mín. 0.0 -0.024 0.0 0.0 0.0 Y máx. 0.0 1.440 0.0 0.0 0.0 Y mín. 0.0 0.0 0.0 -0.023 -0.018 Z máx. 0.0 0.015 0.010 0.013 0.0 Z mín. -0.640 -0.393 0.0 -0.528 -0.981 Φ máx. 0.0 0.0 0.0 0.0 0.0 Φ mín. 0.0 -1.721 0.0 -0.147 -0.047 Θ máx. 0.0 0.016 0.0 1.457 1.271 Θ mín. 0.0 0.0 0.0 0.0 0.0 Ψ máx. 0.0 0.047 0.0 0.0 0.0 Ψ mín. 0.0 0.0 -0.220 -0.185 -0.085 Φm máx. 0.0 0.0 0.0 0.0 0.0 Φm mín. 0.0 0.0 0.0 0.0 0.0 Θm máx. 0.0 0.0 0.0 0.0 0.0 Θm mín. 0.0 0.0 0.0 0.0 0.0 Tabla 4-12 – Datos de simulación UAV de rotores inclinables. Experimentos del 23 al 27 Experimento 26 Al tener mayor longitud de brazo, d, el par generado por un desequilibrio en la fuerza de los rotores opuestos es mayor. Por ello, girará más en menos tiempo y mayor proporción de la fuerza resultante de los cuatro rotores se orientará en el sentido positivo del eje x, con ello, el visible mayor desplazamiento en el eje x que se observa en los datos del experimento 26 frente al obtenido en el experimento 6. Por el contrario, también se obtiene un mayor descenso en el eje z para el experimento 26 frente al experimento 6. Experimento 27 El experimento es el mismo que el anterior salvo que la variable incrementada es la masa en lugar de la longitud del brazo. Por ello, el quadrotor se desplaza una distancia menor en el eje x y desciende aún más en el eje z que en el experimento 6. Los resultados concuerdan con lo esperado. Realizados los anteriores experimentos, queda validar el funcionamiento del mecanismo de inclinación de los rotores del segundo de los helicópteros y que se corresponden con los experimentos 10 – 13 y 20 – 22.
54 Figura 5.1 – Esquema de Extracción de Fluido Además de lo dicho, puesto que se pretende que el dispositivo acceda a lugares de difícil acceso, es conveniente que la herramienta cuente con un mecanismo de retracción del tubo para evitar su rotura durante el desplazamiento y aumentar la operabilidad del UAV. Así, el tubo debe tener margen también para retraerse sin que sea dañado, manteniéndose holgado durante el proceso. Por ello, se deberían añadir otros 1-2cm aproximadamente a la longitud del tubo. El tubo tendrá una longitud de 20cm y como caso de aplicación, se excluirán situaciones con fluidos situados (en movimiento o no) sobre una superficie con un ángulo de inclinación mayor a 20°. Para el quadrotor de rotores abatibles el ángulo máximo para la superficie sobre la que se encuentre el líquido será de los anteriores 20° más el ángulo máximo que pueda girar la propia base de la aeronave, que serán 30° aproximadamente; resultando en una inclinación máxima de 50°. 5.1.2 Diámetro del tubo de extracción y volumen de la cámara El principio en el que se basa la bomba termo-neumática es en la ley de Charles. Según ésta, para presión y número de moles constantes, temperatura y volumen se relacionan proporcionalmente. 𝑉1 𝑇1=𝑉2 𝑇2 (5.2) El proceso funciona en dos pasos: primero la temperatura en el interior de la cámara se eleva, haciendo que se expanda el aire del interior para que se mantenga la presión constante; después, tras insertar el tubo de extracción en el fluido, se reduce la temperatura de la cámara, absorbiendo el líquido para que se mantenga la presión constante en el interior de la misma. La variación de volumen entre los dos estados, 𝑉1 (caliente) y 𝑉2 (frío), será la diferencia de los volúmenes: 𝛥𝑉=𝑉1−𝑉2 (5.3) Esta variación de volumen, 𝛥𝑉, debe ser equivalente al volumen del tubo más el volumen del canal microfluídico, que va de la inserción del tubo en la PCB a la entrada en la cámara. Por ello, se considera
en los cálculos 𝑉1 equivalente al volumen de la cámara, 𝑉𝐶, de forma que, al expandirse el aire interior de la cámara, se desplace todo el aire contenido en el microcanal y en el tubo; así, al enfriarse, el líquido fluirá hasta cubrir el volumen del tubo y el microcanal antes expulsado. Sustituyendo (5.3) en (5.2) y simplificando algebraicamente, se obtiene: 𝑉𝐶=𝑉1=𝛥𝑉 (𝑇1−𝑇2 𝑇1) (5.4) En la anterior expresión T1 se corresponde con la temperatura elevada, que es restringida por los materiales empleados y se toma en torno a 75° o 348K; T2 se corresponde con la temperatura ambiente, alrededor de los 25° o 298K. Quedando la expresión 5.4 tal que: 𝑉𝑐=𝛥𝑉 (348−298 348 )=6.96𝛥𝑉 (5.5) Por último, se sustituye 𝛥𝑉 por el volumen a desplazar antes definido. Este depende del diámetro interior del tubo de extracción, del ancho del canal, del alto y del largo. Puesto que estas variables no atienden a ninguna restricción, se toman de manera arbitraria evitando que el volumen a absorber tome valores demasiado altos. De esta forma, el diámetro del tubo afecta al volumen total siguiendo la fórmula de volumen de un cilindro como en la figura 5.2. En ella se representan diferentes longitudes de cilindro para poder compararlos de forma visual. El diámetro elegido ha sido 0.864mm de entre las opciones disponibles en el laboratorio atendiendo a la relación “volumen-pérdidas de carga”; dado que cuanto menor es el diámetro interior, el efecto de pérdida de carga es mayor. El volumen del tubo será, para 20cm, de 117.26mm3 o 117.26µL. Las dimensiones del canal, por otro lado, son totalmente arbitrarias. Por tanto, se toma un ancho de canal de 1.0mm. El largo se elige de forma que haya suficiente espacio para crear algunos pads con los que muestrear, mediante medición de impedancia, la posición del fluido antes de que llegue a la cámara. El canal tiene una longitud final cercana a 40mm. El volumen será de 40.0 x 1.0 x h mm3. Para h = 0.4mm se tendría un volumen de 16.0µL. Nota 1. Los esquemas son puramente conceptuales, hechos para poder entender la idea que se comenta de forma intuitiva. No son totalmente fieles al modelo real.
56 Figura 5.2 – Curva de volumen de un cilindro Figura 5.3 – Primer esquema de la herramienta con medidas
Figura 5.4 – Vista Perfil-Planta La forma elegida para la base es circular para evitar las pérdidas debidas a las esquinas y se redondeará hará una transición suave del canal a la cámara con el mismo fin. Como se verá más adelante, se pretende usar una célula Peltier de 30x30mm, por lo que el área de la cámara será menor que el de esta, a fin de evitar las zonas de menor temperatura en los extremos. Se toma un margen de 1.0mm respecto de los bordes de la célula Peltier, siendo, por tanto, el radio de la base de 14.5mm. Tomando la altura de 1.0mm para el canal, se obtiene un volumen a desplazar de 133.26µL y una cámara consecuentemente (ecuación 5.5) de 927.5µL. La altura de cámara se toma de 4.2mm, quedando un volumen superior al requerido, de forma que no haya problema asociado a las pérdidas de carga. La variación de temperatura se ajustará empíricamente para evitar inundar más que el tubo de absorción y el microcanal. En la tabla 5-1 se resumen los resultados de volumen. Tubo de extracción π x (0.864/2)2 x 200 mm3 117.26 µL Canal 40.0 x 1.0 x 0.4 mm3 16.0 µL Cámara π x (14.5)2 x 4.20 mm3 2774.1 µL Tabla 5-1 – Resumen de volúmenes 5.1.3 Sensores y actuadores de la herramienta. Mecanismo de despliegue-retracción del tubo extractor El PCB-MEMS debe ser capaz de desplegar el tubo de extracción, expulsar el aire interior de la cámara, succionar el fluido del que se pretende tomar la muestra, controlar cuándo ha terminado de succionar y retraer el tubo extractor. Atendiendo al anterior proceso, lo que se pide es que la herramienta sea capaz de cambiar la posición del tubo de una en la que ocupe poco espacio en la vertical a otra en la que llegue lo más lejos posible, que pueda elevar y disminuir la temperatura en el interior de la cámara y que pueda saber hasta dónde ha llegado el fluido en su recorrido interior.
58 5.1.3.1 Modificación de la temperatura interna Una de las ventajas del uso de tecnología PCB-MEMS es que se pueden elaborar actuadores de forma barata y fiable en la misma PCB. En este caso se va a realizar un serpentín en la capa de cobre que actuará a modo de resistencia para, aprovechando el efecto Joule, elevar la temperatura interior de la cámara [15]. La expresión del efecto Joule relaciona la resistencia del conductor con la potencia disipada por el mismo en forma de calor: 𝑃=𝐼2𝑅=𝐼2𝜌𝑙𝑆 (5.6) Donde 𝜌 es la resistividad del material expresada en [Ω·m], 𝑙 es la longitud del canal y 𝑆 es la sección del mismo. Se va a emplear una PCB de 5µm de cobre, el cual tiene una resistividad 𝜌=0.0171 [Ω·mm]. El serpentín tendrá pistas de 100µm de ancho, 𝑤𝑡𝑟𝑎𝑧𝑎, quedando una sección de 50.0·10−10 m2. Por último, el área ocupada por el serpentín con pistas de 100µm separadas unas de otras 100µm y de forma quasi-rectangular con área 18 x 15mm: 𝐴𝑠=𝑏·ℎ 2=18·15 2=270 𝑚𝑚2 (5.7) La longitud del serpentín será aproximadamente el número de trazas del serpentín por la longitud de cada uno: 𝑙= 𝐴𝑠 𝐴𝑡𝑟𝑎𝑧𝑎⋅𝑙𝑠=𝐴𝑠 𝑤𝑡𝑟𝑎𝑧𝑎 (5.8) Se tiene así una longitud de 2700mm o 2.7m del serpentín. Sustituyendo en la expresión (5.6) se estima una pista de resistencia de 9.31[Ω]. De forma heurística se sabe que las trazas del serpentín de esas dimensiones pueden soportar adecuadamente una intensidad de 0.150A, con lo cual se transferirá una potencia de 1.4 W, menos pérdidas, al aire de la cámara. Además del serpentín y por si no fuera suficiente con dicha potencia, se le añadirá una célula Peltier de 3x3cm de área, 5W, corriente máxima de 1.6A y tensión máxima de 7V. Con estos dos elementos de actuación se espera poder calentar el aire encerrado en la cámara de forma rápida, reduciendo el tiempo consumido en la extracción de la muestra y la autonomía necesaria para llevar a cabo el proceso. De forma alternativa a la Peltier se podría poner otro serpentín en una segunda capa, pero se dejará para futuras pruebas. Para reducir la temperatura de la cámara, se va a incorporar un ventilador apuntando al área donde se encuentra la misma. El ventilador elegido es de 12V y 0.150A Puesto que para que la célula Peltier funcione bien es necesario que haya una diferencia de temperatura entre ambas caras, la célula se colocará en el camino del flujo de aire, entre la cámara y el ventilador. Las dimensiones del mismo son irrelevantes puesto que se trata de un prototipo. Otro aspecto que se debe considerar son las conductividades térmicas de los materiales que componen la herramienta. Por un lado, el FR-4 es un mal conductor térmico, ya que está diseñado para resultar muy estable térmicamente. Su conductividad térmica tendrá un valor cercano a 0.29 𝑊𝑚−1𝐾−1 [Azar K.]. Por facilidad de fabricación, se va a emplear PMMA, el cual puede ser mecanizado. Este tiene una conductividad térmica de 0.167−0.25 𝑊𝑚−1𝐾−1 [MiT], menor aún que la del FR-4; por tanto, el calor debe transmitírsele desde la cara de la PCB. Se deja la puerta abierta a probar con otros materiales de fabricación de mejores características térmicas para esta aplicación. Acabando con los aspectos térmicos, se añadirán aletas en la cara fría de la célula Peltier para acelerar el enfriamiento de la superficie. Podría estudiarse la conveniencia de colocar aletas también en la zona circundante a la cámara, alrededor de la Peltier, por si el efecto fuera notable. 5.1.3.2 Mecanismo de despliegue-retracción La regulación del estado del tubo de extracción se realizará mediante la actuación directa de un
pequeño servomotor situado bajo la herramienta tal y como se muestra en la figura 5.5. El actuador tiene incorporada una ligera barra que proporciona rigidez al tubo que se pretende dirigir, de naturaleza flexible. Puesto que la célula Peltier y el ventilador ocupan el espacio situado bajo la cámara del PCBMEMS, el tubo quedará retraído al lado de estos de forma paralela al eje central del canal. Figura 5.5 – Esquema del PCB-MEMS con actuadores – Retraído En la figura 5.6 se observa el sistema con el tubo desplegado para la toma de muestras. El servomotor es sencillo de utilizar, barato y puede tener suficiente torque para la aplicación; ya que sólo debe mover un tubo delgado junto con la varilla a la cual se fija el mismo. El modelo elegido es un Micro Servo SG90 que tiene un par de , por lo que no debería tener ningún problema para mover el extractor, cuyo peso se puede estimar en unos 20g o inferior. El propio servo pesa , perfecto para cumplir con la restricción de ligereza. Figura 5.6 – Esquema del PCB-MEMS con actuadores - Desplegado 5.1.3.3 Sensores De cara a la extracción del fluido, lo primero que se debe resolver es el control del sistema de elevación de temperatura de la cámara. Para ello, debe muestrearse la temperatura de la misma. Será necesario colocar un sensor térmico en la propia cámara, cerca del serpentín fabricado. Las NTC elegidas son las Murata 0603 de 150Ω. Por otro lado, para detectar el avance del fluido, se medirá la impedancia en varios pads (pistas en circuito abierto), la cual variará al pasar el fluido conectando ambos terminales. Resumidamente, se colocará un sensor térmico en la cámara y tres lecturas de impedancia a lo largo del canal. El uso de un servomotor para el despliegue del tubo de extracción simplifica el problema, pues se evita
60 tener que colocar sensores para conocer la posición exacta del mismo; por lo que sólo restará conocer la situación del extremo del tubo extractor, es decir, si está o no inmerso en el fluido. Ello se podría conseguir mediante la colocación de dos filamentos conductores en circuito abierto colocados en el extremo de la varilla que sostiene al tubo, que se emplearían para medir la impedancia entre ambos. No obstante, como se trata de un prototipo, se realizará la aborción en bucle abierto, asumiendo su inserción en el fluido antes de iniciar el proceso. 5.1.4 Peso y volumen estimados del PCB-MEMS En la tabla 5-2 se muestra un resumen del peso aproximado de todos los componentes del PCBMEMS. Para calcular el peso de la PCB, se ha despreciado el peso del cobre, pues será poca cantidad tras la fabricación de las pistas, y se han estimado unas dimensiones de 70x40x3mm, iguales para el metacrilato. Componente Densidad (g·cm3) Volumen (cm3) Peso (g) PMMA 1.18 ~8.40 9.90 PCB 1.85 8.40 15.50 Célula Peltier - 3.60 13.62 Aletas - 36.75 31.58 Ventilador - 16.00 53.39 Servomotor - 9.00 9.00 Tabla 5-2 – Especificaciones físicas de los componentes Además de los anteriores pesos y volúmenes considerados, se debe considerar la posibilidad de que se requiera incluir una batería exclusivamente para la alimentación de la herramienta. También faltan por definir los sistemas de acondicionamiento, por ello, se revisará este apartado una vez finalizado el diseño del sistema. 5.1.5 Máxima potencia proporcionada al sistema durante vuelo El momento de máximo consumo de la herramienta se dará durante el calentamiento de la cámara, pues son los subsistemas de calefacción los que más potencia consumen. Si se supone que la cámara puede comenzar a calentarse antes del despliegue del tubo extractor, el consumo del servomotor debe ser incluido en la determinación de la máxima potencia consumida. En la tabla 5-3 se realiza el sumatorio de máximas potencias. Subsistema Potencia máxima consumida Célula Peltier 4.14V x 0.66A = 2.72W Ventilador 12.00V x 0.15A = 1.80W Calentador 4.00V x 0.40A = 1.60W Total 6.22W
Tabla 5-3 – Potencia consumida por los subsistemas Si durante la extracción, el UAV necesitara ceder una alta potencia a los rotores, por ejemplo, contrarrestando los efectos de una perturbación durante el vuelo estático, el consumo de la herramienta podría ocasionar un fallo crítico sobre el control del sistema, ya que el consumo de esta podría no ser despreciable frente a los recursos energéticos instantáneos de los que dispone un UAV de tamaño medio. Deberá considerarse el uso de la batería asociada o no en función de la capacidad energética del UAV en cuestión. 5.1.6 Máxima temperatura de operación El dispositivo realiza la extracción mediante un cambio en el volumen del aire interior a la cámara y dicho cambio se consigue mediante una variación de la temperatura interna, ya que se trata de una bomba termo-neumática. Por tanto, es de especial importancia analizar cómo afecta un cambio en la temperatura, especialmente la temperatura ambiente, a la eficacia de la herramienta. Esta herramienta se ha diseñado ajustándose los parámetros al límite de la tecnología, es decir, la máxima temperatura que pueden soportar las pistas de cobre sobre el FR-4 en buen estado es de alrededor de 80°C, por lo que se ha tomado 75°C como máxima temperatura de referencia. Además, para una variación de temperatura de 50°C, se tiene la máxima variación de volumen admisible. Una variación mayor implicaría la inundación del calentador por parte del fluido, pudiendo desembocar en un fallo crítico del sistema por cortocircuito. Es de suma importancia no sobrepasar los límites establecidos para el buen funcionamiento del PCB-MEMS. El volumen será constante siempre que sea posible una variación positiva de 50°C y se irá reduciendo a medida que se acorta dicha variación térmica. Es necesario que el fluido alcance el canal del PCBMEMS para extraer la muestra, pues esta podría desprenderse durante el regreso si se dieran cambios de temperatura por el camino, por ejemplo, al pasar de estar en la sombra a recibir la radiación solar. Queda la puerta abierta a un sistema de sellado de la muestra. En la figura 5.7 se tiene la relación entre volumen absorbido por la herramienta y la temperatura ambiente, respetando las restricciones antes descritas. Ya que es la máxima temperatura con la cual se asegura que el fluido cubra todo el volumen del tubo, se considera una temperatura ambiente de 304.6K o 31.45°C como máxima temperatura de operación, siendo el proceso más fiable para temperaturas ambiente menores a 25°C.
62 5.2 Diseño electrónico de la herramienta En este apartado se diseñan los circuitos electrónicos para el acondicionamiento de las señales provenientes de los sensores y se realizan los cálculos necesarios para su funcionamiento. También se diseña el PCB-MEMS y la PCB de acondicionamiento mediante el software de CAD LEdit. El microcontrolador seleccionado para esta aplicación ha sido el MSP430fr2433 debido a que tiene una capacidad de computación buena para el caso de estudio (funciona a 16MHz), tamaño es extremadamente reducido (4.1 x 4.1 x 1 mm), es fácil de programar, precio inferior al dólar por cada integrado, tiene un consumo de potencia despreciable frente a los demás componentes (126µA activo o 2.3µA en suspensión a 3V) y dispone de un convertidor analógico-digital (ADC) de 8 canales de 10 bits. Se necesitarán cinco de ellos para el prototipo, quedando tres disponibles para futuras ampliaciones. El ADC tiene un rango de entrada de {0, 3.6}V, siendo cada escalón de . Figura 5.7 – Variación de volumen absorbido en función de la temperatura ambiente para una temperatura alta de 75°C. En rojo se observa la recta correspondiente al volumen del tubo de extracción. El máximo volumen absorbible es de 130.86µL
5.2.1 Acondicionamiento de NTC Las NTC son un tipo de termistores, un tipo de sensores de temperatura resistivos cuya resistencia disminuye con el aumento de la temperatura: “Negative Temperature Coefficient”, NTC. Su característica estática Resistencia-Temperatura (R-T) exhibe una variación exponencial que se caracteriza mediante dos parámetros A y B. El fabricante usualmente proporciona el parámetro B y su valor resistivo a 25°C, de forma que obtener A sea trivial (ver ecuación 5.9). La característica estática de la NTC seleccionada (Murata 0603 de 150Ω) se muestra en la gráfica 5.8, determinada con 𝐴= 2.77·10−3𝛺 y 𝐵=3250𝐾. 𝑅(𝑇)=𝐴𝑒(𝐵𝑇 ⁄) (5.9) El circuito elemental para obtener el valor de resistividad de una NTC es un divisor resistivo alimentado por una tensión de referencia. Mediante este circuito sencillo, puede hacerse una linealización aproximada de la respuesta en tensión sobre la NTC seleccionando la resistencia pareja que cumpla la regresión lineal con el menor error posible. En este caso, por simplicidad, se ha realizado un gráfico con diferentes valores de resistencia pareja y se ha seleccionado el valor atendiendo visualmente a la anterior restricción. El valor elegido ha sido de 60Ω y se puede apreciar la curva correspondiente en la figura 5.9. Para la elaboración de la anterior gráfica se ha considerado una tensión de referencia de 1.2±00.042 V, proporcionada por el propio microcontrolador. De esta gráfica se obtiene también el rango de tensión a la salida del divisor resistivo es: . Figura 5.8 – Característica estática de la NTC Murata 0603 150Ω seleccionada. Se relaciona el valor resistivo teórico frente al valor de temperatura del termistor.
70
6 FABRICACIÓN DEL SISTEMA "It does not do to dwell on dreams and forget to live." J.K. Rowling En este capítulo se detallan los procedimientos llevados a cabo para la manufactura de las PCBs de acondicionamiento y potencia, la de alimentación y la del actuador; así como la estructura empleada para el ensamblaje de los subsistemas de la herramienta de succión. Se han excluido del montaje de la herramienta las placas de acondicionamiento y la de alimentaciones, pues al ser un prototipo, no es necesario trabajar en su colocación sobre una aeronave real. El conexionado se realizará, por tanto, mediante cables de prototipado. 6.1 Método de fabricación de circuitos impresos La manufactura de circuitos impresos se realiza mediante varios pasos bien definidos. Existen diferentes técnicas con dicho propósito. A continuación, se describen los pasos seguidos en este proyecto: 1. Elaboración de la máscara. Esta porta el diseño del circuito que es impreso mediante la técnica de fotograbado o photoplotter. Para imprimir el diseño en un fotolito a partir del diseño realizado en L-Edit se deben realizar los siguientes pasos: 1.1 En L-Edit, esconder las capas que no se correspondan con las pistas de cobre y elegir las medidas en mm. 1.2 File → Export Mask Data → (En pestaña de Export file type) GDSII → Export 1.3 En LinkCAD, pasar el anterior archivo a la extensión .gbr. 1.4 En “Convert Gerber into bitmap”, Import (se busca el archivo .gbr) → (En mapa) Ajustar el diseño a la esquina superior izquierda → Export (Lay_1, Resolution: 4064 Dpi, cambiar nombre si es necesario y save). 1.5 En Run_photo_USB, se elige la resolución 4064 x 8600 y, tras colocar el fotolito correspondiente a oscuras en el photoplotter, se pulsa “Plot”. 2. Insolación. Exposición UV de la placa virgen superponiendo la máscara producida en el paso anterior para conseguir la debilitación de la resina epoxi que cubre el cobre excedente para el diseño del circuito. Este proceso se realiza mediante dos pasos de 70s de duración. 3. Revelado. Se sumerge la placa en la mezcla compuesta por sosa cáustica y agua hasta que sea posible distinguir las pistas del diseño. Debe introducirse la placa en el líquido revelador tantas veces como sea necesario con tal fin, enjuagando esta tras cada inmersión. Si la mezcla reveladora se ha elaborado recientemente, debe tenerse especial atención al tiempo que se introduce la placa en la mezcla, pues se corre el riesgo de eliminar incluso la resina no expuesta al ultravioleta. Para hacer la mezcla de revelado, se vierte el contenido del sobre de la figura 6.1 en 1L de agua.
72 Figura 6.1 – Soluto para revelado (Concentrado de sosa cáustica) 4. Ataque químico. La placa se introduce en una mezcla de 1/4 de agua oxigenada, 1/4 de aguafuerte y 1/2 de agua; esta reacciona con el cobre al cual se le eliminó la capa de resina epoxi en el paso anterior, dejando el FR-4 al descubierto. Si todo sale bien, sólo deberían quedar las pistas del circuito diseñado. Figura 6.2 – Botellas de ácido clorhídrico (aguafuerte) y peróxido de dihidrógeno (agua oxigenada) 5. Eliminación de la resina restante. Se limpian con acetona las pistas del circuito para retirar los restos de resina. Este paso es importante antes de realizar las soldaduras necesarias para la inserción de los componentes discretos. Si no se va a soldar inminentemente, es preferible retrasar este paso al momento previo de la soldadura, evitando la oxidación de las pistas que también dificulta la adhesión del estaño.
6.2 Fabricación del circuito de acondicionamiento Se realiza la fabricación del circuito de acondicionamiento siguiendo los anteriores pasos explicados. La placa virgen seleccionada tiene un grosor de capa de cobre de 5 micras y debe aplicársele la resina epoxi de manera previa a la insolación. Para ello se aplica esta en forma de espray Positiv 20, el cual debe reposar, según las instrucciones, 24h a 20ᵒC o 15min a 70ᵒC. En la práctica, bastan 5min a 70ᵒC para que la resina solidifique. La máscara, la placa virgen tras ser atacada y el circuito impreso terminado pueden apreciarse en las figuras 6.1, 6.2 y 6.3 respectivamente. Figura 6.3 – Máscara del circuito de acondicionamiento Figura 6.4 – PCB antes de perforarla y soldar los componentes
74 Figura 6.5 – PCB de acondicionamiento
6.3 Fabricación del PCB-MEMS Antes de realizar el grabado de las pistas del circuito en el cobre como se realizó antes, es necesario llevar a cabo un paso previo que consiste en fresar tres ranuras en las que se inserten las NTC. Es importante hacerlo de forma previa para evitar que la fresa arrastre el pad al retirar el material cercano. En la figura 6.7 se aprecian los resultados con las NTC insertadas previa soldadura y en la 6.8 tras soldarlas y lijarlas. Figura 6.7 – PCB antes de soldar Figura 6.8 – PCB tras los procesos de soldadura y lijado En las imágenes se puede observar el arreglo que hubo que realizar en el calentador debido a que algunas pistas se encontraban cortadas posiblemente a razón de alguna imperfección en la placa virgen o alguna mancha sobre la máscara en el momento de la insolación.
76 Figura 6.9 – Detalle de soldadura de NTC bajo microscopio Para realizar las soldaduras se empleó un microscopio y un soldador de punta fina. También se comprobó la continuidad del circuito completo y se midió la resistencia tanto del calentador como de las NTC insertadas tal y como se ve en las siguientes figuras. Figura 6.10 – Medición de valor resistivo de NTC Figura 6.11 – Medición de valor resistivo del calentador Los valores de resistividad de las NTC se encuentran dentro de lo que establece el fabricante en el datasheet de los sensores (150Ω a 25ᵒC). El calentador, por otro lado, tiene una resistencia de 21.8Ω, por lo que habrá que aplicarle una tensión de 3.27V para que la corriente no supere los 0.15A, pues para valores mayores de corriente se correría el riesgo de que las pistas se retorcieran por efecto de la dilatación térmica. Durante las pruebas de detección de líquido usando las NTC se comprobó que este no era detectado por cambio de temperatura debido a que un muy bajo volumen de agua no tiene poder calorífico suficiente como para alterar notablemente la temperatura de los sensores. Por ello, se realizó una nueva PCB en la cual sólo se colocó la NTC que se encuentra sobre el calentador. La detección del fluido se
realiza ahora mediante la medición de la resistividad entre los dos pads previamente diseñados para la inserción de las resistencias termosensibles. El siguiente paso es mecanizar el circuito microfluídico hecho con PMMA. El canal se realiza con una fresa de 1.00mm de diámetro realizando tres pasadas de 0.10mm y una de 0.05mm obteniendo una altura del canal de 0.4mm. La cámara se mecaniza con una fresa de 2.0mm de diámetro haciendo una pasada de 0.2mm y ocho de 0.50mm consiguiendo una altura de 4.2mm. Los resultados se observan en las siguientes figuras: Figura 6.13 – Circuito microfluídico fresado en PMMA sobre fondo marrón Figura 6.12 – Fresado de circuito microfluídico en PMMA
78 Figura 6.14 – Superposición del circuito microfluídico al PCB-MEMS Para realizar el pegado del circuito microfluídico en PMMA con la PCB se empleó pegamento termofusible. Este tiene una temperatura de fusión cercana a los 100-110ᵒC, superior a los 75ᵒC que se esperan en el interior de la cámara. Para evitar la obstrucción del canal, primero se colocó plastilina (blanca) en este; luego se depositó el pegamento termofusible en las cercanías del circuito fluídico, extendiéndolo mientras estaba caliente para conseguir una capa aproximadamente lisa. Figura 6.15 – Canal inundado con plastilina blanca, para evitar la deposición del pegamento en su interior, y pegamento termofusible aplicado parcialmente Tras colocar pegamento en todas las zonas cercanas al canal y a la cámara, se retira la plastilina, se coloca la PCB sobre una superficie caliente y el PMMA sobre la placa alineándola bien desde el principio para evitar obstruir el canal con el pegamento y se coloca un peso para hacer presión sobre el pegamento diluido. Hay que hacer presión manualmente sobre las zonas con burbujas para desplazarlas hacia el canal. Si se hubiera diseñado una doble pared paralela al circuito fluídico, no existiría riesgo de inundarlo con el pegamento al presionarlo mientras este se encuentra diluido.
Figura 6.16 – Pegado de PMMA con PCB usando pegamento termofusible Como medida preventiva, se aplica pegamento termofusible por el perímetro del PMMA evitando el riesgo de fugas. Por último, se añade el tubo de extracción que conecta con el canal microfluídico a través del PCB. El agujero debe realizarse antes del pegado. El PCB-MEMS queda como se observa en la figura 6.16. Figura 6.17 – PCB-MEMS finalizado
86 7.3.5 Configuración del Timer A0 como salida PWM El servomotor SG90 se controla mediante pulsos de 1ms a 2ms de ancho, siendo la frecuencia del tren de pulsos de 50Hz. Para realizar, por tanto, la comunicación entre el microcontrolador y el servomotor, debe configurarse un Timer (el Timer A0 concretamente aquí) para que utilice este protocolo como si de una salida de PWM se tratara. Esto es, dado que por definición el PWM consiste en modular una onda modificando el ancho de los pulsos de una señal cuadrada, la comunicación con el servomotor será una señal PWM de periodo 20ms (50Hz) cuyo Duty Cycle quedará restringido al intervalo {5, 10} %. La librería DriverLib incluye una función útil y sencilla para este caso que permite configurar una salida de PWM configurable a través de una estructura que se le pasa por parámetro a la misma en la cual se establece cuál es la señal de reloj usada por el Timer, el divisor de frecuencia, el periodo de la señal, el modo de funcionamiento del registro, el modo de salida por el pin asociado y el Duty Cycle aplicado: Timer_A_outputPWMParam parampwm = {0}; parampwm.clockSource = TIMER_A_CLOCKSOURCE_SMCLK; parampwm.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_64; parampwm.timerPeriod = TIMER_A_PERIOD; parampwm.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_1; parampwm.compareOutputMode =TIMER_A_OUTPUTMODE_RESET_SET; parampwm.dutyCycle = DUTY_CYCLE; Timer_A_outputPWM(TIMER_A0_BASE, ¶mpwm); 7.4 Funciones para la regulación de la temperatura Se han elaborado tres funciones encargadas de realizar conjuntamente el anterior cometido: la primera para la lectura del valor de los sensores, la segunda para realizar un control Bang-Bang de los actuadores y la tercera para comprobar el establecimiento del sistema en torno a la referencia establecida. 7.4.1 Lectura de sensores Figura 7.3 – Control de Servomotor mediante PWM. A la izquierda, PWM con diferentes Duty Cycles. A la derecha, protocolo de control del servomotor.
El proceso de conversión de la señal analógica de un canal de entrada del convertidor a digital se inicia mediante el comando ADC_startConversion(ADC_BASE, ADC_SEQOFCHANNELS) tras lo cual se activa el modo de bajo consumo del microcontrolador en tanto que la conversión se realiza, pues tarda varios ciclos en acabarla. El ADC entonces comenzará la conversión de los canales uno a uno desde la entrada A7 (ver tabla 7-2 para saber los pines) hasta la A0, activando una interrupción de fin de conversión cada vez que termine con un canal. Así pues, debe realizarse un seguimiento de los canales convertidos para saber exactamente con qué sensor se corresponde cada una de las interrupciones. Los flags de la interrupción se limpian accediendo a la información almacenada en el registro correspondiente con el búfer de memoria del ADC, ADCMEM0, en la rutina de atención a la interrupción generada por el conversor. Este proceso además incluye a los canales no configurados como entrada del convertidor, por lo que habrá que leer y descartar los datos tomados en dichas lecturas para proseguir con la actualización del resto de valores de los sensores, los cuales son almacenados en un vector cuyas componentes se corresponden con cada sensor (vector de cinco elementos). De forma resumida, cuando se llama a la función readSensors(void) el programa se introduce en un bucle while del cual no se sale hasta que se leen todos los canales de entrada al conversor, iniciándose la conversión de la secuencia de canales e introduciendo al microcontrolador en el modo de bajo consumo. En la rutina de atención a la interrupción se actualizarán uno por uno los valores correspondientes a los sensores incrementando el contador de canales hasta llegar al último. 7.4.2 Controlador Todo-Nada Dentro de los estados en los cuales es necesario regular la temperatura de la cámara de extracción, se realiza un llamamiento a la función de control posteriormente a la actualización de los valores leídos en los sensores. Este llamamiento se hace a una frecuencia constante de unos 20Hz empleando el Timer A1 para despertar al microcontrolador del modo de bajo consumo y realizar dichas funciones. El controlador implementado es un controlador conocido como Bang-Bang o controlador por histéresis. Esta técnica es empleada cuando las únicas acciones de control que se pueden realizar sobre la planta son de encendido y apagado; muy frecuentes en los sistemas de calefacción. El seguimiento de una referencia mediante actuadores que solo pueden ser encendidos o apagados es problemático cuando el error (diferencia entre referencia para una variable de estado y su valor real) es muy pequeño, pues desencadena en un gran estrés para el actuador al ser encendido y apagado rápidamente de manera continuada cuando este error pasa se un valor positivo al negativo y viceversa. El efecto problemático del comportamiento oscilatorio descrito puede ser atenuado en gran medida mediante el control de histéresis, el cual toma la referencia pasada por argumento y controla, mediante encendido del actuador, hasta un valor superior a la referencia. Cuando se alcanza dicho valor, se controla la variable de estado hasta otro valor inferior a la referencia. Se tiene así un efecto, aunque oscilatorio, no tan dañino para el sistema de actuación. En la figura 7.3 se muestra gráfica que ilustra el método de control descrito. Eligiendo unos límites superior e inferior más cercanos al valor real de la referencia, se conseguirá un seguimiento más cercano al valor deseado a costa de un mayor estrés del actuador. Y, al contrario, no se seguirá tan bien la referencia, pero no habrá tanto impacto sobre el mismo.
88 Figura 7.4 – Control Todo-Nada El controlador está implementado en la función hystControl(int reference). Para calentar la cámara, enciende el calentador y la célula Peltier, así como el ventilador, que debe mantener la cara fría de la célula a la menor temperatura posible para incrementar su eficiencia. Para reducir la temperatura se queda activado el ventilador exclusivamente. Otros controladores Todo-Nada más complejos podrían realizarse incluyendo cierta predicción del comportamiento basada en el modelo o empleando la célula Peltier y el calentador como acciones de control independientes, consiguiendo una actuación algo más suave. Se deja la posibilidad abierta para futuras versiones. 7.4.3 Comprobación de establecimiento La comprobación del establecimiento de la variable de estado controlada permite saber cuándo se puede considerar que la referencia está siendo seguida correctamente. Para ello, se establecen un par de límites (uno ligeramente superior y otro ligeramente inferior) a los antes establecidos para el control por histéresis y cada vez que el controlador es llamado (cada 20Hz), se comprueba si los valores estimados de la variable controlada se encuentran entre los límites admisibles. Si es así, se incrementa el contador de ciclos. En caso contrario, se resetea. De esta forma, cuando se haya cumplido esta restricción durante un mínimo de ciclos definido previamente, se considerará que el sistema está siendo controlado de manera estable en torno a la referencia requerida. Pudiendo pasar al siguiente estado si es necesario. La función implementada hace siempre la comprobación sobre una variable pasada por referencia y respecto de unos límites establecidos en las cabeceras del programa en tiempo de compilación. La función en cuestión es settleCheck(int reference) que puede ser encontrada en el Anexo B. 7.5 Comentarios sobre el software implementado El archivo binario pasado al microcontrolador ocupa 4157 bytes (4.2kB aproximadamente) de los 15.5kB disponibles de memoria FRAM. Esto es, se ha ocupado un 27% de la memoria no volátil con este programa. En cuanto a la memoria RAM, se han usado 412 bytes de los 4k disponibles, es decir, alrededor de un 10% de su capacidad de memoria volátil. Sobre los pines empleados del microcontrolador, el primer puerto se ha utilizado por completo, pues eran los pines con funcionalidades especiales (salida PWM, entradas analógicas, etc.), han quedado libres siete pines del segundo puerto entre los cuales se encuentran dos con funcionalidad disponible
para comunicación serie; por lo que podrían usarse estos en lugar de P1.4 y P1.5 para la UART, teniendo disponibles sus otras funcionalidades. Del último puerto, solo ha quedado un pin libre de tres. Resumiendo, aunque con esta versión del programa aún queda más de un 70% de la memoria disponible, se han empleado prácticamente todos los pines con las funcionalidades necesarias. No obstante, si se quisiera incrementar, por ejemplo, la cantidad de sensores empleada, podría recurrirse a un ADC externo, realizando una comunicación I2C por la UART disponible. O bien, para controlar mediante PWM una mayor cantidad de actuadores, podría emplearse un módulo PCA9685 también por I2C. Por tanto, a pesar de haber empelado la mayor parte del Pinout del dispositivo, aún queda un gran margen de maniobra para realizar mejoras sobre el sistema.
90
8 PRUEBAS DE FUNCIONAMIENTO En este capítulo se explican las pruebas de funcionamiento realizadas para el chequeo de cada uno de los subsistemas y se comentan los resultados obtenidos en ellas. 8.1 Pruebas del calentador Antes de realizar el pegado del PMMA a la PCB se realizaron algunos pares de medidas Temperatura-Tensión con el fin de caracterizar aproximadamente el funcionamiento en régimen permanente del PCB-MEMS desarrollado; esto es, su característica estática aproximada. También se anotó el valor de intensidad para confirmar que era la esperada. El valor de resistencia del calentador es de 21.8Ω. En la siguiente figura se observa el valor de la temperatura en grados Celsius en el indicador del medidor rojo, así como los valores de tensión (izquierda) e intensidad (derecha) en el indicador de la fuente de alimentación. Figura 8.1 – Temperatura, tensión e intensidad del calentador
92 Figura 8.2 – Característica estática aproximada a partir de tres puntos de operación La tensión que alimentará al MOSFET que controla al calentador será de 4.5V. Puesto que se realiza un control en bucle cerrado, no existe riesgo de superar de forma continuada la temperatura máxima admisible de la PCB. Tras realizar el montaje del PMMA sobre la PCB del calentador y los sensores, se realizaron pruebas de succión del dispositivo controlando el actuador directamente mediante la fuente de alimentación regulada. Tras solucionar algunas fugas detectadas en el sistema, se consiguió realizar extracciones calentando la cámara, insertando el tubo de extracción manualmente en el fluido, y cortando la alimentación del calentador, absorbiendo el líquido a medida que se reducía la presión en el mismo. Mientras se realizaba esta última prueba descrita, se conectó el microcontrolador a los sensores de la placa a través del acondicionamiento electrónico para comprobar los valores leidos en la NTC de la cámara de succión. Figura 8.3 – Montaje para prueba de extracción de fluido. El fluido fue extraído satisfactoriamente. No obstante, el volumen de líquido extraído fue menor al esperado, por lo que se redimensionó la cámara de extracción a fin de superar las pérdidas de carga y otros volúmenes residuales (por ejemplo, debidos a un mal pegado) que pudieran reducir la capacidad efectiva del dispositivo. Se observó que la velocidad de extracción de fluidos sin asistencia, mediante ventilación, para la
disipación del calor tras la expulsión del aire de la cámara, resultó extremadamente lenta (del orden de 3-4 minutos); quedando patente la necesidad de dicho subsistema para agilizar la toma de la muestra. El tiempo de extracción es un factor limitante para el vuelo del UAV, caso de estudio de esta obra. 8.2 Pruebas de la electrónica de acondicionamiento y potencia En la anterior prueba se probaron también los circuitos de acondicionamiento de señal para los sensores (NTCs y pads de medición de impedancia) del PCB-MEMS. Tras ajustar la ganancia de los amplificadores a través de los potenciómetros que se les colocaron con tal fin, se consiguieron medidas satisfactorias. No obstante, hubo que realizar un cambio en las resistencias de los amplificadores para la lectura de impedancia (lecturas con y sin agua) pues fueron inicialmente diseñados para funcionar con NTCs. En segundo lugar, se realizaron pruebas de control sobre el calentador, la célula Peltier y el ventilador siendo controlados a través de los MOSFETs de potencia. El funcionamiento de estos subsistemas fue el esperado. 8.3 Pruebas de extracción Por ultimo, se realizaron pruebas de funcionamiento del sistema completo para la extracción de fluidos. Los resultados pueden verse en las figuras 8.4, donde se aprecian las posibles posiciones del tubo de extracción, y 8.5, donde se expone, mediante varias imágenes, un ejemplo de proceso de extracción.
94 Figura 8.4 – Despliegue del tubo de extracción servoactuado: a. posición retraída, b. posición extendida. Figura 8.5 – Proceso de extracción de la muestra fluídica: a. Se expulsa el aire calentando la cámara (el tubo está insertado en agua para apreciar la burbuja). b. Se extrae el líquido enfriando la cámara (líquido con tinta para mejor visualización). c. Se transporta el líquido en el tubo. d. Se expulsa el líquido calentando la cámara nuevamente. a. b. c. d. a. b.
9 CONCLUSIONES Y DISCUSIÓN El objetivo principal del proyecto es el desarrollo de un sistema de extracción de muestras líquidas y el estudio dos arquitecturas de aeronaves no tripuladas que pudieran portar el sistema desarrollado en una aplicación real. Como se vio en el capítulo de “Introducción y Objetivos”, los objetivos secundarios, junto con los resultados obtenidos en los mismos, han sido los que se muestran a continuación: - Modelar dinámicamente dos o más arquitecturas de aeronaves: Este objetivo se satisface, pues se modelaron dos arquitecturas diferentes de aeronaves. - Validar los anteriores modelos mediante simulación: Sus ecuaciones se pasaron a Matlab y se hicieron tests para su validación en la medida de lo posible. - Explorar las ventajas e inconvenientes de los anteriores: Se extrajeron conclusiones comparando ambos modelos, las cuales se resumen en este mismo apartado. - Desarrollar el sistema cumpliendo los siguientes requisitos: • Capacidad para absorber volúmenes del orden de 10-100µL: Se extrajeron alrededor de 50µL en las pruebas. • Facilidad de fabricación: Se logró siguiendo procesos sencillos como el wet etching para la fabricación de la PCB, fresado con CNC para el trazo de microcanales y cámara en el PMMA e impresión 3D para la fabricación de la estructura. • Coste reducido: Los materiales empleados (FR4, PMMA y PLA principalmente) son baratos. Podría haberse buscado alguna alternativa para el componente más caro, que fue la célula Peltier. • Bajo consumo de potencia: El consumo de pico del sistema es de, aproximadamente, 6W, durante el calentamiento de la cámara. Ello, frente a los 60-100W que consumen los rotores de un quadrotor de tamaño medio durante el vuelo estático, puede considerarse un consumo relativamente bajo. • Rapidez de operación: El tiempo de ejecución de la operación de extracción es de, aproximadamente, un minuto. Frente a los 15-20min de autonomía de un quadrotor de tamaño medio, puede considerarse un tiempo relativamente bajo. - Facilidad de reutilización del trabajo realizado: El proceso seguido en el proyecto puede ser usado como guión para otros trabajos de misma índole. Modificando diseños y modificando los estados de la máquina de estados, podría reutilizarse en otras aplicaciones. Los objetivos, como se puede ver, se han conseguido a lo largo de este trabajo. A continuación, se comentan algunos aspectos de la obra: En el capítulo de modelado se propuso el método de Newton-Euler con la nomenclatura de Odelga et al como método procedural generalizable para el modelado dinámico de aeronaves y se desarrollaron las ecuaciones para el UAV de arquitectura usual en ‘X’ y el UAV de rotores inclinables. Siguiendo el mismo procedimiento en ambos casos se obtuvieron modelos fácilmente comparables con los cuales se pudo razonar las aplicaciones en las que emplear la segunda de las arquitecturas era justificable. Tras ello, los modelos fueron puestos a prueba mediante diversos tests sencillos con los cuales se pudo validar de forma básica que el funcionamiento de los modelos era el esperado. El alcance de esta
102 % Todas las velocidades se quedan como el valor calculado para hacer vuelo % estatico. sim('ModeloUAVusualExtraido.slx',1) % Comenzar simulacion xmax(indice)=max(x); xmin(indice)=min(x); ymax(indice)=max(y); ymin(indice)=min(y); zmax(indice)=max(z); zmin(indice)=min(z); Phimax(indice)=max(Phi); Phimin(indice)=min(Phi); Thetamax(indice)=max(Theta); Thetamin(indice)=min(Theta); Psimax(indice)=max(Psi); Psimin(indice)=min(Psi); indice=indice+1; % Experimento 2. Ascension % Se aumenta a 105% del peso la fuerza generada por los cuatro rotores sim('ModeloUAVusualExtraido.slx',1) % Comenzar simulacion xmax(indice)=max(x); xmin(indice)=min(x); ymax(indice)=max(y); ymin(indice)=min(y); zmax(indice)=max(z); zmin(indice)=min(z); Phimax(indice)=max(Phi); Phimin(indice)=min(Phi); Thetamax(indice)=max(Theta); Thetamin(indice)=min(Theta); Psimax(indice)=max(Psi); Psimin(indice)=min(Psi); indice=indice+1; % Experimento 3. Descenso % Se disminuye a 95% del peso la fuerza generada por los cuatro rotores sim('ModeloUAVusualExtraido.slx',1) % Comenzar simulacion xmax(indice)=max(x); xmin(indice)=min(x); ymax(indice)=max(y); ymin(indice)=min(y); zmax(indice)=max(z); zmin(indice)=min(z); Phimax(indice)=max(Phi); Phimin(indice)=min(Phi); Thetamax(indice)=max(Theta); Thetamin(indice)=min(Theta);
Psimax(indice)=max(Psi); Psimin(indice)=min(Psi); indice=indice+1; % Experimento 4. Desplazamiento a derecha % Se aumenta a 105% fuerza generada por el segundo rotor sim('ModeloUAVusualExtraido.slx',1) % Comenzar simulacion xmax(indice)=max(x); xmin(indice)=min(x); ymax(indice)=max(y); ymin(indice)=min(y); zmax(indice)=max(z); zmin(indice)=min(z); Phimax(indice)=max(Phi); Phimin(indice)=min(Phi); Thetamax(indice)=max(Theta); Thetamin(indice)=min(Theta); Psimax(indice)=max(Psi); Psimin(indice)=min(Psi); indice=indice+1; (…) % Experimento 21. Intento de estaticidad sim('ModeloUAVComplejo.slx',1) % Comenzar simulacion xmax(indice-21)=max(x); xmin(indice-21)=min(x); ymax(indice-21)=max(y); ymin(indice-21)=min(y); zmax(indice-21)=max(z); zmin(indice-21)=min(z); Phimax(indice-21)=max(Phi); Phimin(indice-21)=min(Phi); Thetamax(indice-21)=max(Theta); Thetamin(indice-21)=min(Theta); Psimax(indice-21)=max(Psi); Psimin(indice-21)=min(Psi); Phimmax(indice-21)=max(Phim); Phimmin(indice-21)=min(Phim); Thetammax(indice-21)=max(Thetam); Thetammin(indice-21)=min(Thetam); indice=indice+1; % Experimento 22. Arco
104 sim('ModeloUAVComplejo.slx',1) % Comenzar simulacion xmax(indice-21)=max(x); xmin(indice-21)=min(x); ymax(indice-21)=max(y); ymin(indice-21)=min(y); zmax(indice-21)=max(z); zmin(indice-21)=min(z); Phimax(indice-21)=max(Phi); Phimin(indice-21)=min(Phi); Thetamax(indice-21)=max(Theta); Thetamin(indice-21)=min(Theta); Psimax(indice-21)=max(Psi); Psimin(indice-21)=min(Psi); Phimmax(indice-21)=max(Phim); Phimmin(indice-21)=min(Phim); Thetammax(indice-21)=max(Thetam); Thetammin(indice-21)=min(Thetam); dibujaXY(); dibujaRPY(); indice=indice+1; Script: “DeterminaEcuaciones.m” % Script que determina las ecuaciones dinámicas del modelo % Desarrollado por Juan Sandubete López como parte del Trabajo de Fin de % Grado en Ingeniería Electrónica, Robótica y Mecatrónica por la % Universidad de Sevilla y de Málaga. % Matriz de Giro - Body Frame respecto a Inertial Frame syms phi th psi; % rt = rotx(phi)*roty(th)*rotz(psi); % Matlab r2016b no acepta rotx() con syms como entrada, así que las defino % yo mismo Rx = [1 0 0; 0 cos(phi) -sin(phi); 0 sin(phi) cos(phi)]; Ry = [cos(th) 0 sin(th); 0 1 0; -sin(th) 0 cos(th)]; Rz = [cos(psi) -sin(psi) 0; sin(psi) cos(psi) 0; 0 0 1]; rt = Rz*Ry*Rx; wRb = rt(1:3,1:3); % Ecuación dinámica de traslaciones ppp = simplify( G + (1/m).*wRb*Fp*W2); % Que se corresponden con los valores de aceleración en cada uno de los % ejes, x,y,z, vistos respecto al sistema de referencia inercial.
% Cálculo de la matrix de Momentos syms p q r real; % p q r para el modelo de Mistler WB = [p; p; r]; % Abajo, km es positiva o negativa según el sentido de giro de la hélice. Mp= [0, 0, 0, 0; 0, 0, 0, 0; -km, km, -km, km]; D=[d; 0; 0]; %MATRIZ DE MOMENTOS en el sistema de ref del frame for i=1:4 rt = [cos((i-1)*PI/2) -sin((i-1)*PI/2) 0; sin((i-1)*PI/2) cos((i1)*PI/2) 0; 0 0 1]; rotyaw=rt(1:3,1:3); Mm(:,i)=cross(rotyaw*D,Fp(:,i)); end; Mm=simplify(Mm + Mp); % Ecuaciones dinámicas de velocidades rotacionales: p,q,r c = (-inv(IB)*(cross(WB,IB*WB))); Wp = simplify(simplify(c + inv(IB)*wRb*Mm*W2)); %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%% % Modelado UAV de rotores inclinables: Obtención de las ecuaciones individuales % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%% clear all; clc; % DEFINICIÓN de constantes, vectores y matrices % Constantes: % m = 1; % Masa % d = 0.3; % Longitud del brazo % kf = 1.6e-5; % Constante de fuerza % km = 2.5e-7; % Constante de momento % g = 9.81; % Aceleración gravitatoria syms m d kf km g real; PI = sym('pi'); % Vectores: syms xdt ydt zdt uo vo wo phidt thdt psidt po qo ro real; pp = [xdt; ydt; zdt]; % Vector derivada posición UAV V = [uo; vo; wo]; % Vector velocidades de traslación w = [phidt; thdt; psidt]; % Vector derivada orientación UAV W = [po; qo; ro]; % Vector velocidades angulares G = [0; 0; -g]; % C = ... Término de Coriolis
106 % Matrices: % Matriz de Inercia % Ixx = 0.015; % Iyy = 0.015; % Izz = 0.025; syms Ixx Iyy Izz real; IB = [Ixx, 0, 0; 0, Iyy, 0; 0, 0, Izz]; % Cambio de base - From Propeller to Body syms thm phim real; % Matriz de giro: Pitch bRy= [cos(thm), 0, sin(thm); 0, 1, 0; -sin(thm),0, cos(thm)]; % Matriz de giro: Roll bRx= [1, 0, 0; 0, cos(phim), -sin(phim); 0, sin(phim), cos(phim)]; bRpi=bRy*bRx; % Vector de fuerza en el sistema de referencia de la hélice syms w21 w22 w23 w24 real; Fp=[0, 0, 0, 0; 0, 0, 0, 0; kf, kf, kf, kf]; % En la anterior se han suprimido las w2i para evitar derivarla % Matriz de fuerzas en sistema del frame (Body) Fm=bRpi*Fp; W2 = [w21; w22; w23; w24]; % Vector de vel. ang. de cada hélice % ECUACIONES dinámicas del modelo % Matriz de Giro - Body Frame respecto a Inertial Frame syms phi th psi real; % rt = rotx(phi)*roty(th)*rotz(psi); % Matlab r2016b no acepta rotx() con syms como entrada, así que las defino % yo mismo Rx = [1 0 0; 0 cos(phi) -sin(phi); 0 sin(phi) cos(phi)]; Ry = [cos(th) 0 sin(th); 0 1 0; -sin(th) 0 cos(th)]; Rz = [cos(psi) -sin(psi) 0; sin(psi) cos(psi) 0; 0 0 1]; rt = Rz*Ry*Rx; wRb = rt(1:3,1:3); % Ecuación dinámica de traslaciones ppp = simplify( G + (1/m).*wRb*Fm*W2);
% Que se corresponden con los valores de aceleración en cada uno de los % ejes, x,y,z, vistos respecto al sistema de referencia inercial. % Cálculo de la matrix de Momentos syms wbx wby wbz real; % p q r para el modelo de Mistler WB = [wbx; wby; wbz]; % Abajo, km es positiva o negativa según el sentido de giro de la hélice. Mp= [0, 0, 0, 0; 0, 0, 0, 0; -km, km, -km, km]; D=[d; 0; 0]; %MATRIZ DE MOMENTOS en el sistema de ref del frame for i=1:4 rt = [cos((i-1)*PI/2) -sin((i-1)*PI/2) 0; sin((i-1)*PI/2) cos((i1)*PI/2) 0; 0 0 1]; rotyaw=rt(1:3,1:3); Mm(:,i)=cross(rotyaw*D,bRpi*Fp(:,i)); end; Mm=simplify(Mm + bRpi*Mp); % Ecuaciones dinámicas de velocidades rotacionales: p,q,r c = (-inv(IB)*(cross(WB,IB*WB))); Wp = simplify(c + inv(IB)*wRb*Mm*W2); %% % Determinación del JACOBIANO EXTENDIDO: Jext (pág. 28) % Para ejecutar esta sección, debe ejecutarse previamente la sección % superior, o bien, añadir la declaración de todas las variables % (simbólicas) y el cálculo de fuerzas y momentos, Fm, Mm, respectivamente. % Cálculo de las derivadas parciales: Fuerzas y Momentos según los ángulos % del mecanismo. for i=1:3 for j=1:4 dFmph(i,j) = diff(Fm(i,j),phim); dFmth(i,j) = diff(Fm(i,j),thm); dMmph(i,j) = diff(Mm(i,j),phim); dMmth(i,j) = diff(Mm(i,j),thm); end; end; % Producto de los elementos que conforman al jacobiano extendido: Z1 = zeros(3); Jext = simplify([(1/m).*wRb,Z1;Z1,inv(IB)]*[Fm, dFmph*W2, dFmth*W2; Mm, dMmph*W2, dMmth*W2]);
108
12 ANEXO B Programa: Implementación de la máquina de estados en el microcontrolador MSP430FR2433 //****************************************************************************** //! //! Description: Programa desarrollado por Juan Sandubete Lopez para el Trabajo //! de Fin de Grado en Ingenieria Electronica, Robotica y Mecatronica por //! la Universidad de Sevilla y de Malaga. //! //! El programa implementa una maquina de estados con la cual se controla el //! PCB-MEMS diseñado y construido para este trabajo. //! //! Pines: //! Sensores analogicos - P1.0 P1.2 P1.3 P1.6 P1.7 (Entradas Analogicas Ax) //! Actuaciones discretas - P2.0 P3.1 P3.2 (Vent, Calent, Peltier) //! Actuaciones analogicas - P1.1 (PWM 50Hz Servo) //! Comunicacion serie - P1.4 P1.5 (eUSCI UART) //! //****************************************************************************** #include "driverlib.h" #include "Board.h" #include "string.h" // Times #define SAMPLING_PERIOD 12500 #define TIMER_A_PERIOD 5000 // Pinout #define FAN 0x0001 #define HEATER 0x0002 #define PELTIER 0x0004 // Sensors, in order: P1.0 P1.2 P1.3 P1.6 P1.7 #define CHAMBER_S 0 #define CANAL_S1 1 #define CANAL_S2 2 #define CANAL_S3 3 #define WATER_S 4 // Possible states: 'Estado' values #define CONFIGURADO 1 #define CALENTAR 2 #define DESPLEGAR 3 #define ENFRIAR 4 #define RETRAER 5 #define ESPERAR 6 #define EXPULSAR 7 #define FINALIZAR 8 // Possible errors: 'Reg_error' values #define COMANDO_EQUIVOCADO1 20 #define COMANDO_EQUIVOCADO2 21 #define COMANDO_EQUIVOCADO3 22 #define REFERENCIA_NO_NULA1 23 #define REFERENCIA_NO_NULA2 24 // Control #define CELSIUS25 650 #define CELSIUS75 950 #define INCREMENT 200 #define HYST_THS 20
110 #define WATER_THS 850 #define STBTY_LMT 40 #define MIN_STB_CYCLES 60 //-------------------------------------------------------------- // GLOBAL VARIABLES //-------------------------------------------------------------- // CLK //uint32_t clockValue = 0; // PWM uint16_t DUTY_CYCLE=600; // ADC volatile uint8_t i=0, adc_cont=0; int16_t ADC_Results[5]={0,0,0,0,0}; // UART uint8_t RXData = 0; uint8_t j=0; char TXData[] = {"MSP430fr2433 configurado. Pulse 1 para iniciar"}; char TXData2[]= {"Muestra tomada. Pulse 2 para expulsar"}; char TXData3[]= {"Expulsion iniciada. Pulse 3 para finalizar"}; char TXRetorno[]={"\r\n"}; uint8_t check = 0; // Finite States Machine uint8_t Estado = 0, Reg_error; // Control int16_t Ref=0; // Referencia para el controlador int16_t Tamb=0; // Temperatura inicial en el sensor int16_t pass_ref=0; // Variable para guardar la referencia int8_t stbty_cont = 0; // Contador de ciclos en estabilidad //-------------------------------------------------------------- // FUNCTIONS PROTOTYPES //-------------------------------------------------------------- void configCLKS(void); void configPORTS(void); void configUART(void); void configPWM(void); void configADC(void); void readSensors(void); void instructions1(void); void instructions2(void); void instructions3(void); void hystControl(int reference); void settleCheck(int reference); // MAIN //-------------------------------------------------------------- void main(void) { //Stop Watchdog Timer WDT_A_hold(WDT_A_BASE); // Configuration functions configCLKS(); configPORTS(); configUART(); configPWM(); configADC(); // Enable global interrupts
__enable_interrupt(); // Se ha configurado satisfactoriamente Estado = CONFIGURADO; // Say hello to the user through UART instructions1(); __bis_SR_register(LPM0_bits+GIE); while (1) { // TOOL FSM //----------------------------------------------------------- switch (Estado) { case CONFIGURADO: //------------------------------------------------------- while(Estado==CONFIGURADO) { if(RXData!=0) { // Received command EUSCI_A_UART_transmitData(EUSCI_A0_BASE, RXData); while(check != 1); check=0; if(RXData == '1') { Estado = CALENTAR; RXData = 0; } else { Reg_error = COMANDO_EQUIVOCADO1; RXData = 0; } } else { LPM0; } } break; case CALENTAR: //------------------------------------------------------- while(Estado==CALENTAR) { readSensors(); // It will be stuck here until completion // If no reference has been calculated.. if(Ref==0) { readSensors(); // It will be stuck here until completion Tamb = ADC_Results[CHAMBER_S]; // First Temp as ambient temp // Reference for the controller if(ADC_Results[CHAMBER_S] < CELSIUS25) { Ref = ADC_Results[CHAMBER_S]+INCREMENT; }
118 void configUART(void) { // UART on P1.4, P1.5 //SMCLK = 16MHz, Baudrate = 115200 //UCBRx = 8, UCBRFx = 10, UCBRSx = 0xFB, UCOS16 = 1 EUSCI_A_UART_initParam paramuart = {0}; paramuart.selectClockSource = EUSCI_A_UART_CLOCKSOURCE_SMCLK; paramuart.clockPrescalar = 8; paramuart.firstModReg = 10; paramuart.secondModReg = 0xFB; paramuart.parity = EUSCI_A_UART_NO_PARITY; paramuart.msborLsbFirst = EUSCI_A_UART_LSB_FIRST; paramuart.numberofStopBits = EUSCI_A_UART_ONE_STOP_BIT; paramuart.uartMode = EUSCI_A_UART_MODE; paramuart.overSampling = EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION; if (STATUS_FAIL == EUSCI_A_UART_init(EUSCI_A0_BASE, ¶muart)) { return; } EUSCI_A_UART_enable(EUSCI_A0_BASE); EUSCI_A_UART_clearInterrupt(EUSCI_A0_BASE, EUSCI_A_UART_TRANSMIT_INTERRUPT); // Enable USCI_A0 TX interrupt EUSCI_A_UART_enableInterrupt(EUSCI_A0_BASE, EUSCI_A_UART_TRANSMIT_INTERRUPT); EUSCI_A_UART_clearInterrupt(EUSCI_A0_BASE, EUSCI_A_UART_RECEIVE_INTERRUPT); // Enable USCI_A0 RX interrupt EUSCI_A_UART_enableInterrupt(EUSCI_A0_BASE, EUSCI_A_UART_RECEIVE_INTERRUPT); } // PWM CONFIGURATION //------------------ void configPWM(void) { // PWM on P1.1 //Generate PWM - Timer runs in Up-Down mode Timer_A_outputPWMParam parampwm = {0}; parampwm.clockSource = TIMER_A_CLOCKSOURCE_SMCLK; parampwm.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_64; parampwm.timerPeriod = TIMER_A_PERIOD; parampwm.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_1; parampwm.compareOutputMode =TIMER_A_OUTPUTMODE_RESET_SET; parampwm.dutyCycle = DUTY_CYCLE; Timer_A_outputPWM(TIMER_A0_BASE, ¶mpwm); } // ADC CONFIGURATION //------------------ void configADC(void) { ADC_init(ADC_BASE, ADC_SAMPLEHOLDSOURCE_SC, ADC_CLOCKSOURCE_ADCOSC, ADC_CLOCKDIVIDER_1);
ADC_enable(ADC_BASE); /* * Base Address for the ADC Module * Sample/hold for 16 clock cycles * Do not enable Multiple Sampling */ ADC_setupSamplingTimer(ADC_BASE, ADC_CYCLEHOLD_16_CYCLES, ADC_MULTIPLESAMPLESDISABLE); //Configure Memory Buffer /* * Base Address for the ADC Module * Use input A2 * Use positive reference of Internally generated Vref * Use negative reference of AVss */ ADC_configureMemory(ADC_BASE, ADC_INPUT_A7, ADC_VREFPOS_AVCC, ADC_VREFNEG_AVSS); ADC_clearInterrupt(ADC_BASE, ADC_COMPLETED_INTERRUPT); //Enable Memory Buffer interrupt ADC_enableInterrupt(ADC_BASE, ADC_COMPLETED_INTERRUPT); // Configure TA1 to provide delay for sampling ~50ms ((16MHz/64_divider)/20Hz) -> counter to 12500 Timer_A_initUpModeParam initUpModeParam = {0}; initUpModeParam.clockSource = TIMER_A_CLOCKSOURCE_SMCLK; initUpModeParam.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_64; initUpModeParam.timerPeriod = SAMPLING_PERIOD; initUpModeParam.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_DISABLE; initUpModeParam.captureCompareInterruptEnable_CCR0_CCIE = TIMER_A_CAPTURECOMPARE_INTERRUPT_ENABLE; initUpModeParam.timerClear = TIMER_A_DO_CLEAR; initUpModeParam.startTimer = false; // No empezar hasta que sea necesario Timer_A_initUpMode(TIMER_A1_BASE, &initUpModeParam); } // INITIAL MESSAGE //---------------- void instructions1(void) { uint16_t MAX_long = sizeof(TXData); for(j=0;j<MAX_long;j++) { // Se le confirma al usuario que el MSP esta configurado EUSCI_A_UART_transmitData(EUSCI_A0_BASE, TXData[j]); while(check != 1); check=0; } MAX_long = sizeof(TXRetorno); // End of line for(i=0;i<MAX_long;i++) {
120 EUSCI_A_UART_transmitData(EUSCI_A0_BASE, TXRetorno[i]); while(check != 1); check=0; } } // SECOND MESSAGE //---------------- void instructions2(void) { uint16_t MAX_long = sizeof(TXData); for(j=0;j<MAX_long;j++) { // Se le confirma al usuario que el MSP esta configurado EUSCI_A_UART_transmitData(EUSCI_A0_BASE, TXData2[j]); while(check != 1); check=0; } MAX_long = sizeof(TXRetorno); // End of line for(i=0;i<MAX_long;i++) { EUSCI_A_UART_transmitData(EUSCI_A0_BASE, TXRetorno[i]); while(check != 1); check=0; } } // LAST MESSAGE //---------------- void instructions3(void) { uint16_t MAX_long = sizeof(TXData); for(j=0;j<MAX_long;j++) { // Se le confirma al usuario que el MSP esta configurado EUSCI_A_UART_transmitData(EUSCI_A0_BASE, TXData3[j]); while(check != 1); check=0; } MAX_long = sizeof(TXRetorno); // End of line for(i=0;i<MAX_long;i++) { EUSCI_A_UART_transmitData(EUSCI_A0_BASE, TXRetorno[i]); while(check != 1); check=0; } } // AUTOMATIC SENSORS LECTURE //-------------------------- void readSensors(void) { while (adc_cont != 8) { //Enable and Start the conversion ADC_startConversion(ADC_BASE, ADC_SEQOFCHANNELS); //LPM0, ADC_ISR will force exit
__bis_SR_register(CPUOFF + GIE); } // Reset of the counters adc_cont=0; i=0; } // HYSTERESIS CONTROL //------------------- void hystControl(int reference) { if(ADC_Results[CHAMBER_S]<(reference-HYST_THS)) { // Heat the chamber GPIO_setOutputHighOnPin(GPIO_PORT_P2,(HEATER|PELTIER)); GPIO_setOutputHighOnPin(GPIO_PORT_P3, FAN); } else if(ADC_Results[CHAMBER_S]>=(reference+HYST_THS)) { // Cool the chamber GPIO_setOutputLowOnPin(GPIO_PORT_P2,(HEATER|PELTIER)); GPIO_setOutputHighOnPin(GPIO_PORT_P3, FAN); } // Settle checking settleCheck(Ref); if(stbty_cont==MIN_STB_CYCLES) { Estado++; // TODO ver si debe hacerse de otra forma stbty_cont=0; } } // STABILITY CHECKING //-------------------- void settleCheck(int reference) { if( (ADC_Results[CHAMBER_S]>(reference-STBTY_LMT)) && (ADC_Results[CHAMBER_S]<(reference+STBTY_LMT)) ) { stbty_cont++; } else { stbty_cont=0; } }
122
13 REFERENCIAS [1] Eriksson S, Lundin M. The drone market in Japan. EU-Japan Centre. 2016;. [2] Shraim H, Awada A, Youness R. A Survey on Quadrotors: Configurations, Modeling and Identification, Control, Collision Avoidance, F ault Diagnosis and Tolerant Control. IEEE A&E SYSTEMS MAGAZINE. 2018;(10). [3] Saeed A, Bani Younes A, Islam S, Dias J, Seneviratne L. A Review on the Platform Design, Dynamic Modeling and Control of Hybrid UAVs. ICUAS. 2015;:806-815. [4] Alvear O, Zema N, Natalizio E, Calafate C. Using UAV-Based Systems to Monitor Air Pollution in Areas with Poor Accessibility. Journal of Advanced Transportation. 2017;. [5] Odelga M, Stegnano P, Bülthoff H. A Fully Actuated Quadrotor UAV with a Propeller Tilting Mechanism: Modeling and Control. AIM. 2016;:306-311. [6] Aracil C, Perdigones F, Moreno J, Luque A, Quero J. Portable Lab-on-PCB platform for autonomous micromixing. Microelectronic Engineering. 2015;(131):13-18. [7] Pagel L, Gassmann S. Integrated Fluidics in Printed Circuit Board Technology – Scaling Behavior. IEEE. 2010;:1543-1547. [8] Gassmann S, Pagel L. Fluidic Systems in Printed Circuit Boards. ISIE. 2009;:597-602. [9] Gassmann S, Pagel L. Pressure Relief Valve with Permanent Magnets. IEEE. 2011;:4074-4077. [10] Moschou D, Tserepi A. The lab-on-PCB approach: tackling the μTAS commercial upscaling bottleneck. Lab Chip [Internet]. 2017 [visitado 8 junio 2018];(17):1388-1405. Disponible en: https://pubs.rsc.org/en/content/articlelanding/2017/lc/c7lc00121e#!divAbstract [11] Mistler V, Benallegue A, M'Sirdi N. Exact linearization and noninteracting control of a 4 rotors helicopter via dynamic feedback. ROMAN. 2001;:586-593. [12] Mehmood H, Nakamura T, Johnson E. A Maneuverability Analysis of a Novel Hexarotor UAV Concept. ICUAS. 2016;:437-446. [13] Gassmann S, Luque A, Perdigones F, Quero J, Pagel L. Sensor structures generated with combination of SU8 and PCBMEMS. IEEE. 2013;:108-112. [14] Perdigones F, Luque A, Quero J. PDMS microdevice for precise liquid aspiration in the submicroliter range based on the Venturi effect. Microelectronic Engineering. 2010;(87):2103– 2109. [15] Almenara León E, Perdigones F (dir). Actuador térmico basado en PCB para el control de muestras líquidas [trabajo final de grado]. [Sevilla]: Universidad de Sevilla, 2017. [16] Souilah M, Chaabi A, Perdigones F, Quero J, Flores G, Ras Lain M. Fabrication Process for PCBMEMS Capacitive Pressure Sensors Using the Cu Layer to Define the Gap. IEEE Sensor Journal. 2016;16(5):1151-1157. [17] Vasilakis N, Papadimitriou K, Hywel Morgan H, Prodromakis T. High-performance PCB-based capillary pumps for affordable point-of-care diagnostics. Microfluid Nanofluid. 2017;21(103). [18] Fu Y, Yuan Q, Guo J. Lab-on-PCB-based micro-cytometer for circulating tumor cells detection and enumeration. Microfluid Nanofluid. 2017;21(20). [19] Vianna Raffo G, Rodríguez Rubio F (dir), Ortega Linares M (dir). Modelado y control de un
124 helicóptero Quadrator [trabajo final máster]. [Sevilla]: Universidad de Sevilla, 2007. [20] Craig J. Robótica. 3rd ed. México: Pearson Education; 2006. [21] Castillo P, Lozano R, Dzul A. Modelling and control of mini-flying machines. Springer; 2005. [22] Savio Martis M, Validation of Simulation Based Models: A Theoretical Outlook, The Electronic Journal of Business Research Methods Vol. 4 Issue 1, 2006;:39 -46. [23] Azar K, Graebner J. Experimental Determination of Thermal Conductivity of Printed Wiring Boards. IEEE. 1996;:169-182. [24] http://www.mit.edu/~6.777/matprops/pmma.htm