Implementación Hardware de un Sistema de Control Digital para un Sistema de Péndulo Invertido



Documentos relacionados
Regulador PID con convertidores de frecuencia DF5, DV5, DF6, DV6. Página 1 de 10 A Regulador PID

ESTUDIO DE LA ESTABILIDAD EN EL DOMINIO FRECUENCIAL

Introducción a los sistemas de control

TIPOS DE RESTRICCIONES

Sistemas de numeración

Un filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i.

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

INDICE 1. Introducción 1.2. Qué es Realimentación y Cuáles son sus Efectos? 1.3. Tipos de Sistemas de Control Realimentado

Motores de Corriente Continua...3 Motores Paso a Paso...7 Bibliografía...9

x

Qué es PRESS-SYSTEM?

Análisis de los datos

La ventana de Microsoft Excel

CAPITULO II CARACTERISTICAS DE LOS INSTRUMENTOS DE MEDICION

Práctica 4 Diseño de circuitos con puertas lógicas.

Una vez descrita la constitución general de un robot, podemos empezar con la

Manual de Introducción a SIMULINK

Tema 2. Espacios Vectoriales Introducción

3.1 JUSTIFICACION E IMPORTANCIA DEL PRESENTE TRABAJO DE

Anexo B. Comunicaciones entre mc y PC

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

a < b y se lee "a es menor que b" (desigualdad estricta) a > b y se lee "a es mayor que b" (desigualdad estricta)

Nociones básicas sobre adquisición de señales

Aproximación local. Plano tangente. Derivadas parciales.

Señal de Referencia: Es el valor que se desea que alcance la señal de salida. SET POINT.

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

CONTROL DE VELOCIDAD PARA UN MOTOR SRM UTILIZANDO SISTEMAS DE SIMULACIÓN INTERACTIVA Y PROTOTIPADO RÁPIDO

Problemas resueltos. Consideramos despreciable la caída de tensión en las escobillas, por lo que podremos escribir:

CONCEPTOS DE LA FUERZA

Análisis de medidas conjuntas (conjoint analysis)

Cálculo Simbólico también es posible con GeoGebra

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

Seminario Universitario Material para estudiantes. Física. Unidad 2. Vectores en el plano. Lic. Fabiana Prodanoff

EXAMEN DE INGENIERÍA DE SISTEMAS Y AUTOMÁTICA 02/09/2008

Cálculo de las Acciones Motoras en Mecánica Analítica

35 Facultad de Ciencias Universidad de Los Andes Mérida-Venezuela. Potencial Eléctrico

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

Ejercicio de estadística para 3º de la ESO

WINDOWS : TERMINAL SERVER

6. DESCRIPCIÓN DEL SOFTWARE

FUENTES DE ALIMENTACION

6. Análisis en el dominio de la frecuencia. Teoría de Control

TEMA 1.- SISTEMAS AUTOMÁTICOS Y DE CONTROL.

Circuito RL, Respuesta a la frecuencia.

MCBtec Mas información en

PROGRAMACIÓN LINEAL Introducción Inecuaciones lineales con 2 variables

CAPÍTULO III. FUNCIONES

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

SISTEMA. Figura 3 Esquema general de un sistema

Ecuaciones de primer grado con dos incógnitas

U.T. 2 Planificación de Proyectos

Centro de Capacitación en Informática

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: = =8245,97

Introducción. Culminación de todos los anteriores capítulos. Tipos de compensación. Acción de control. Tipos de acción:

CAPÍTULO 4. DISEÑO CONCEPTUAL Y DE CONFIGURACIÓN. Figura 4.1.Caja Negra. Generar. Sistema de control. Acumular. Figura 4.2. Diagrama de funciones

DESCRIPCION DEL SITEMA MASTER.

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama.

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ideas básicas sobre movimiento

Conclusiones, aportaciones y sugerencias para futuros trabajos

El amplificador operacional en bucle abierto (sin realimentar) se comporta como un comparador analógico simple.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

Funciones de varias variables

LÍMITES Y CONTINUIDAD DE FUNCIONES

DETERMINACIÓN DEL VOLUMEN DE PEDIDO.

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

CONVERTIDORES DIGITAL ANALÓGICO Y ANALÓGICO - DIGITAL

Cursos de Perfeccionamiento

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

Estadística con Excel Informática 4º ESO ESTADÍSTICA CON EXCEL

2. SISTEMAS LINEALES DE PRIMER ORDEN (I)

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

6. SISTEMAS CAD-CAM (CAM) 6.1. CONCEPTO DE CAM

Creación de Funciones de Conducción

Ingeniería en Informática

TEMA 8: SISTEMA DE COSTES POR PROCESOS. INDICE. 1.- Caracteristicas generales de los sistemas de costes por procesos.

H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS

Capitulo V Administración de memoria

Capítulo I. Convertidores de CA-CD y CD-CA

18 OTROS SISTEMAS DE CONTROL

Roberto Quejido Cañamero

SERVOMOTORES. Los servos se utilizan frecuentemente en sistemas de radiocontrol, mecatrónicos y robótica, pero su uso no está limitado a estos.

UNIVERSIDAD DE SALAMANCA

RESOLUCION DE ESTRUCTURAS POR EL METODO DE LAS DEFORMACIONES

CAPÍTULO 7 7. CONCLUSIONES

2.2 Transformada de Laplace y Transformada Definiciones Transformada de Laplace

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Automá ca. Ejercicios Capítulo7.2.AnálisisFrecuencial(Parte2)

Las ecuaciones que nos dan la posición (x) de la partícula en función del tiempo son las siguientes: ( )

UNLaM REDES Y SUBREDES DIRECCIONES IP Y CLASES DE REDES:

I. RELACIONES Y FUNCIONES 1.1. PRODUCTO CARTESIANO { }

Interoperabilidad de Fieldbus

❷ Aritmética Binaria Entera

18. Camino de datos y unidad de control

Diagrama y Nomenclatura del sistema de lazo cerrado

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

FÍSICA 2º BACHILLERATO EL OSCILADOR ARMÓNICO. PROBLEMAS RESUELTOS

Elementos requeridos para crearlos (ejemplo: el compilador)

Transcripción:

Implementación Hardware de un Sistema de Control Digital para un Sistema de Péndulo Invertido AUTOR: Joan Marc Berga Cabello DIRECTORES: Enrique Cantó Navarro, Abdelali El Aroudi FECHA: Marzo / 2012

Índice general 1. MEMORIA... 5 1.1 Objeto del Proyecto... 6 1.2 Alcance del Proyecto... 6 1.3 Antecedentes... 6 1.4 Definiciones y abreviaturas... 7 1.5 Descripción de la planta... 8 1.6 Modelado de la planta... 9 1.6.1.1 Obtención de las ecuaciones diferenciales: El conjunto carro-pendulo... 9 1.6.1.2 Obtención de las ecuaciones diferenciales: El motor de CC... 12 1.6.2 Transformación al plano s: Obtención de la función de transferencia de la planta H(s)... 13 1.6.3.1 Transformación al plano z: Obtención de la función de transferencia de la planta H(z).... 16 1.6.3.2 Transformación al plano z: La transformada z modificada... 19 1.6.4.1 Representación en el espacio de estados en tiempo continuo... 21 1.6.4.2 Representación en el espacio de estados en tiempo discreto... 23 1.7 Diseño de sistemas de control... 25 1.7.1 Control mediante el LGR... 25 1.7.1.1 Estabilización de la planta... 27 1.7.1.2 Introduciendo especificaciones: Contornos y error en estado estacionario... 28 1.7.1.3 Ejemplo de controlador... 32 1.7.1.4 Simulaciones de la planta-controlador con retardos de transporte.... 38 1.7.2 Control en el espacio de estados: método de ubicación de polos.... 44 1.7.2.1 Controlabilidad y observabilidad... 45 1.7.2.2 Obtención de la matriz de ganancia de realimentación de estado K... 48 1.8 El hardware... 50 1.8.1 Sistema electrónico... 51 1.8.1.1.1 Eligiendo el microcontrolador... 51 1.8.1.1.2 La familia dspic30f... 54 1.8.1.1.3 El dspic30f4011... 56 1.8.1.1.3.1 El QEI... 56 1.8.1.1.3.2 El módulo PWM... 63 2

1.8.1.2 El motor de DC... 71 1.8.1.3 El codificador incremental... 72 1.8.1.4 La placa de circuito impreso... 74 1.8.2 Sistema mecánico: El conjunto péndulo-carro-soporte... 78 1.9 El software... 81 1.9.1 Entorno de programación y consideraciones previas... 81 1.9.2 Configurando los periféricos: el QEI... 82 1.9.3 Configurando los periféricos: el módulo PWM... 83 1.9.4 Subrutinas relativas al cálculo de la posición del péndulo... 85 1.9.5 Programa principal... 88 1.10 Resultados... 91 1.11 Bibliografía... 92 2. ANEXOS... 93 2.1 Ficheros de MATLAB... 94 2.2 Código fuente... 98 2.3 Levantamiento del péndulo... 101 2.4 Manual de prácticas... 108 2.4.1 Consideraciones previas... 108 2.4.2 Creando un proyecto en MPLAB... 109 2.4.3 Breve descripción del sistema... 109 2.4.4 Ejercicios propuestos: Estudio previo... 112 2.4.5 Ejercicios propuestos: Implementación de controladores en la maqueta... 113 3. PLANOS... 115 3.1 Carro: C1... 116 3.2 Piezas 1: P4,.., P9... 117 3.3 Piezas 2: C2... 118 3.4 Piezas 3: C3... 119 3.5 Soporte: P16... 120 3.6 Maqueta: Conjunto... 121 3.7 Esquema eléctrico... 122 3.8 Aspecto de las mascaras de C.I... 123 4. PRESUPUESTO... 125 4.1 Mediciones... 126 4.1.1 Capítulo 1: Componentes electrónicos... 126 3

4.1.2 Capítulo 2: Cables y conectores.... 129 4.1.3 Capítulo3: Elementos mecánicos de la maqueta.... 131 4.1.4 Capítulo 4: Placas de circuito impreso.... 133 4.2 Presupuesto... 134 4.2.1 Capítulo 1: Componentes electrónicos... 134 4.2.2 Capítulo 2: Cables y conectores.... 136 4.2.3 Capítulo 3: Elementos mecánicos de la maqueta.... 137 4.2.4 Capítulo 4: Placas de circuito impreso.... 139 4.3 Resumen del presupuesto... 140 4

1. MEMORIA

1.1 Objeto del Proyecto El objetivo de este proyecto, es realizar una maqueta de péndulo invertido preparada para experimentar con algoritmos de control en tiempo discreto. Se realizará también, el estudio de la planta y se aplicará un sistema regulador entorno a la posición de equilibrio superior del péndulo. 1.2 Alcance del Proyecto Para la resolución de este reto se pueden emplear diversos algoritmos de control, más o menos sofisticados, con variedad de respuestas o prestaciones. Este proyecto presentará estudios y realización de algoritmos de control mediante métodos clásicos y modernos. En concreto se usará el método del lugar geométrico de las raíces y el método de ubicación de polos. Estos se complementaran mediante el empleo de herramientas de MATLAB para obtener y simular los controladores. Finalmente se implementará en la maqueta un sistema regulador mediante el método del lugar geométrico de las raíces, entorno de la posición de equilibrio superior. 1.3 Antecedentes Este proyecto es conocido en el mundo del control y abarca diversas aplicaciones, desde el control de posición de un propulsor primario espacial, hasta el equilibrio de maquinaria y robots, como el patín eléctrico (tipo Segway). No obstante, el objetivo de este proyecto no es la aplicación comercial, sino el estudio de algoritmos de control. En nuestro caso, se ha optado por una planta cuyo péndulo puede realizar movimientos en el plano X y en el plano Y. No obstante, existen diversas variantes del experimento, como el mismo pero con 3 grados de libertad, el péndulo de Furuta, varios péndulos acoplados uno encima del otro,..etc. Al construir esta maqueta, dejo abierto el camino para el estudio de todo tipo de algoritmos y facilito el estudio a quién pudiera aprovechar el prototipo para fines parecidos. 6

1.4 Definiciones y abreviaturas RISC: (Reduced Instruction Set Computer) Arquitectura de los microcontroladores caracterizados por un juego de instrucciones sencillo, y alta velocidad de ejecución de estas. Planta en equilibrio: Según [1] y cito textualmente: Un sistema de control está en equilibrio si, en ausencia de cualquier perturbación o entrada, la salida permanece en el mismo estado. Estabilidad absoluta: Para referirme a ella usaré el término estabilidad a lo largo del proyecto. Según [1] y cito textualmente: Un sistema de control lineal e invariante con el tiempo es estable si la salida termina por regresar a su estado de equilibrio cuando el sistema está sujeto a una condición inicial. DSP: (Procesador Digital de Señales) Es un sistema basado en un procesador o microprocesador que posee un juego de instrucciones, un hardware y un software optimizados para aplicaciones que requieran operaciones numéricas a muy alta velocidad. Debido a esto es especialmente útil para el procesado y representación de señales en tiempo real. MCU: Abreviación de microcontrolador. PWM: (Modulación por ancho de pulsos) Es una técnica en la que se modifica el ciclo de trabajo de una señal periódica, para controlar la cantidad de energía que se envía a una carga. ICD2: (MPLAB ICD 2 In-Circuit Debugger) Debugger y programador para microcontroladores y DSP s de Microchip. PICkit 2 : Debugger y programador para microcontroladores y DSP s de Microchip, de bajo coste. ZOH: (zero-order hold) Retenedor que construye una señal en tiempo continuo a partir de una seña discreta, manteniendo constante el valor de cada muestra. OrCAD: Grupo de programas de Cadence, entre los cuales se encuentran programas para el diseño y simulación de placas de circuito impreso. cpr: (cuentas por revolución o pulsos por revolución) Hace referencia a los pulsos que ocurren en una corona de un encoder, por revolución. Se ha de tener en cuenta que cada pulso genera dos flancos. 7

1.5 Descripción de la planta Para realizar un control sobre algún sistema se requiere conocer bien la planta. Según el problema y el resultado deseado podremos ser más o menos restrictivos a la hora de modelar la planta y difícilmente hallaremos un análisis que incorpore todas las características del mundo real al que nos enfrentamos. Tras la experimentación, veremos una relación clara entre el modelo empleado para la planta junto con el control realizado y la respuesta real. Esta planta se compone por un carro, que se mueve libremente dentro de un segmento en el plano x. Sujeto a este, está una barra (péndulo) con una articulación rotacional. Nuestra entrada es la fuerza que se aplica al carro horizontalmente y la salida que deseamos controlar es el ángulo del péndulo. Si aplicamos una condición inicial al péndulo, la barra alcanza la posición de equilibrio inferior (definida como ±180º) en régimen permanente. Podemos imaginar con una respuesta de segundo orden. Es por lo tanto una posición estable del péndulo. No obstante, buscamos elevar el péndulo hasta la posición de equilibrio superior (0º), que es una posición de equilibrio inestable, puesto que en aplicar al sistema una condición inicial no vuelve a su posición de reposo inicial. Como actuador usaremos un motor de cc, unido al carro con un sistema engranaje-correa. Por lo tanto tratamos con un sistema inestable, y como mas adelante observaremos, un sistema no lineal. Tanto los estudios que se presentan en este proyecto mediante las técnicas clásicas, como las modernas trataran con un sistema regulador monovariable. En ambos casos se trabajará con sistemas discretos. 8

1.6 Modelado de la planta En este apartado se realizarán estudios referentes al modelado de la planta, para su posterior uso en la obtención y simulación de controladores. En los apartados 1.6.1.1 y 1.6.1.2 se obtendrán las ecuaciones diferenciales descriptoras del sistema. En el apartado 1.6.2 se obtendrá la función de transferencia de la planta HH(ss). En los apartados 1.6.3.1 y 1.6.3.2 se discretizará la función HH(ss) a HH(zz) y HH(zz, mm) respectivamente. Esta última incluye el efecto del retardo en la ejecución del programa del controlador. Finalmente en los apartados 1.6.4.1 y 1.6.4.2 se obtendrán las ecuaciones del sistema continuo y discreto en el espacio de estados. 1.6.1.1 Obtención de las ecuaciones diferenciales: El conjunto carropendulo Primeramente obtendremos las ecuaciones que describen el comportamiento de la planta en lazo abierto, sin el controlador ni el motor. Para modelar la planta existen diversos métodos. Se ha optado por incluir el método expuesto en [1] (p.68-70), dada su elegancia y simplicidad: Figura 6-1. Diagrama de cuerpo libre de la planta 9

Sea θθ el ángulo de la barra respecto de la línea vertical. Sean además las coordenadas (xx, yy) del centro de gravedad de la barra del péndulo (xx GG, yy GG ). De este modo, xx GG = xx + ll sin θθ yy GG = ll cos θθ Para obtener las ecuaciones de movimiento para el sistema, considérese el diagrama de cuerpo libre que aparece en la Figura 6-1 (b). El movimiento rotacional de la barra del péndulo alrededor de su centro de gravedad se describe mediante IIθθ = VVVV sin θθ HHHH cos θθ (6.1) donde II, es el momento de inercia de la barra alrededor de su centro de gravedad. El movimiento horizontal del centro de gravead de la barra del péndulo se obtiene mediante mm dd2 ddtt 2 (xx + ll sin θθ) = HH (6.2) El movimiento vertical del centro de gravedad de la barra del péndulo es mm dd2 ddtt 2 (ll cos θθ) = VV mmmm (6.3) El movimiento horizontal del carro se describe mediante MM dd2 xx ddtt 2 = uu HH (6.4) Como se debe mantener el péndulo invertido en posición vertical, se puede suponer que θθ(tt) y θθ (tt) son pequeños, de forma que sin θθ 0, cos θθ = 1 y θθθθ 2 = 0. Entonces, las Ecuaciones (6.1) a (6.3) se linealizan del modo siguiente: IIθθ = VVVVVV HHHH (6.5) 10

mm xx + llθθ = HH 0 = VV mmmm (6.6) (6.7) A partir de las Ecuaciones (6.4) a (6.7), se obtiene (MM + mm)xx + mmmmθθ = uu (6.8) IIθθ = mmmmmmmm HHHH = mmmmmmmm ll mmxx + mmmmθθ o bien (II + mmll 2 )θθ + mmmmxx = mmmmmmmm (6.9) Eliminando la inercia respecto del centro de gravedad del péndulo, simplificaremos considerablemente las ecuaciones de estado, tanto como la función de transferencia del sistema. Si esto fuera un problema a la hora de aplicar el controlador, podemos concentrar la masa en el extremo superior del péndulo, añadiendo una bola. Estas son las ecuaciones resultantes: (MM + mm)xx + mmmmθθ = uu (6.10) mmll 2 θθ + mmmmxx = mmmmmmmm (6.11) 11

1.6.1.2 Obtención de las ecuaciones diferenciales: El motor de CC El motor elegido como actuador para la planta es un motor de CC de imanes permanentes, y se controla actuando sobre la tensión de armadura. Debemos encontrar la ecuación que describa la relación entre la tensión de armadura y la fuerza que aplica el motor al carro. La Figura 6-2 describe el comportamiento de la malla del rotor del motor. Figura 6-2. Circuito equivalente del motor DC La ecuación diferencial del motor de la Figura 6-2 es VVVV = RRRRRRRR + LLLL dddddd dddd + EE (6.12) Para hallar la fuerza, primero debemos encontrar la ecuación que describa el par motor en función de la velocidad del motor y de la tensión de armadura aplicada. Teniendo en cuenta que la excitación de flujo es constante (dado a los imanes permanentes), tenemos EE = KK nn ; (6.13) TTTT = PPPP nn, PPPP = EE IIII (6.14) TTTT = EE IIII nn = KKKKKK (6.15) 12

Si tomamos en consideración solo los efectos en estado estacionario, puesto que los polos del motor son mucho más rápidos que los de la planta del conjunto carro-péndulo, podemos eliminar la derivada de (6.12). Si juntamos la ecuación resultante con (6.13) y (6.15) tenemos TTTT = KK KK2 VVVV RRRR RRRR nn; (6.16) Con el par motor y el radio del eje de este, podemos calcular la fuerza que se aplica sobre el carro. Aprovechemos el radio para convertir la velocidad angular a lineal uu = TTTT rr = KK KK2 VVVV RRRRRR RRRRRR nn = KK KK2 VVVV RRRRRR RRRRrr 2 xx (6.17) 1.6.2 Transformación al plano s: Obtención de la función de transferencia de la planta H(s) Una vez obtenidas las ecuaciones que describen el comportamiento del motor y del péndulo observando los parámetros deseados, ya hay lo necesario para obtener la función de transferencia que relacione la diferencia de ángulo con la tensión aplicada al motor. Retomando las ecuaciones del sistema (6.10) y (6.17) obtenidas previamente y eliminando la variable uu se obtiene (MM + mm)xx + mmmmθθ = KK KK2 VVVV RRRRRR RRRRrr 2 xx (6.18) Al transformar (6.11) y (6.18) al dominio s, considerando condiciones iniciales nulas se obtiene (MM + mm)ss 2 XX(ss) + mmmmss 2 θθ(ss) = KK KK2 VV(ss) RRRRRR RRaarr 2 ssss(ss) (6.19) mmll 2 ss 2 θθ(ss) + mmmmss 2 XX(ss) = mmmmmmmm(ss) (6.20) 13

Ordenando (6.19) por variables y reformulando (6.20) para sustituirla en (6.19) y eliminar XX(ss), tenemos (MM + mm)ss 2 + Sustituyendo (6.22) en (6.21) KK2 RRRRrr 2 ss XX(ss) + mmmmss2 θθ(ss) = KK RRRRRR VV(ss) XX(ss) = mmmmmmmm(ss) mmll2 ss 2 θθ(ss) mmmmss 2 gg llss2 = θθ(ss) ss 2 (6.21) (6.22) (MM + mm)ss 2 + KK2 llss2 ss gg RRRRrr2 ss 2 θθ(ss) + mmmmss 2 θθ(ss) = KK RRRRRR VV(ss) Operando (MM + mm)gg (MM + mm)llss 2 + KK2 gg RRRRrr 2 ss KK2 ll RRRRrr 2 ss + mmmmss2 θθ(ss) = KK RRRRRR VV(ss) MMMMss 3 KK2 ll RRRRrr 2 ss2 + (MM + mm)gggg + KK2 gg RRRRrr2 θθ(ss) = KK RRRRRR ssss(ss) Finalmente, la función de transferencia HH(ss) queda: HH(ss) = θθ(ss) VV(ss) = KK RRRRRR ss ; MMMMss 3 + KK2 ll RRRRrr 2 ss2 (MM + mm)gggg KK2 gg RRRRrr 2 (6.23) A simple inspección, se puede observar la característica inestable de la planta. El símbolo negativo de la ganancia, es debido al sentido elegido en el diagrama de solido libre del ángulo del péndulo θθ. Observar que si la tensión 14

aplicada es positiva, la fuerza del motor (según el sentido impuesto de uu) actúa hacia la derecha y el péndulo giraría en sentido anti horario (θθ negativo). Para una mayor comprensión de los elementos de la planta se adjunta la función de transferencia del péndulo sin el motor: HH(ss) = θθ(ss) UU(ss) = 1 MMMM ss + MM + mm MMMM gg ss MM + mm MMMM gg La Figura 6-3 muestra el LGR de la función de transferencia (6.24). (6.24) Figura 6-3. LGR de la planta compuesta por el péndulo En esta figura, se puede observar la dinámica del péndulo. De estar la planta en lazo abierto, en aplicar una perturbación se obtendría una respuesta exponencial inestable. De aplicar una realimentación proporcional y tomando el sentido del ángulo contrario al establecido, se obtendrían oscilaciones no amortiguadas (Figura 6-4). 15

Figura 6-4. LGR de la planta sin el motor (invirtiendo la realimentación 1.6.3.1 Transformación al plano z: Obtención de la función de transferencia de la planta H(z). Dado que nuestro controlador es discreto, se debe trabajar en el dominio z. Para hallar la función de transferencia HH(zz) que relacione el ángulo del péndulo con la tensión aplicada al motor, se transformará la función HH(ss) al plano z HH(ss) = θθ(ss) VV(ss) = KK RRRRRR ss ; MMMMss 3 + KK2 ll RRRRrr 2 ss2 (MM + mm)gggg KK2 gg RRRRrr 2 (6.23) Para simplificar el cálculo, se sustituyen las variables por los valores de la planta que se pretende controlar, en la ecuación (6.23). K=0.14 (V*s)/rad Ra=10 Ω r=0.005 m l=0.25 m M=0.0742 Kg m=0.0238 Kg g=9.81 Kg/(m*s 2 ) 16

Sustituyendo valores, se obtiene HH(ss) = 2.8ss 0.01855ss 3 + 19.6ss 2 0.9614ss 769.1 = 150.94ss (ss + 6.27)(ss 6.27)(ss + 1056.62) ; (6.25) Se observan el par de polos provenientes del péndulo y la influencia del motor mediante un polo y un zero. Se ha eliminado el polo del motor ss = 1056.62, ya que es mucho más rápido que los demás elementos de la planta HH(ss) 150.94ss ss 2 (6.27 2 ) ; (6.26) Para discretizar la planta se debe elegir el tiempo de muestreo TT. La elección de este dependerá del control deseado, no obstante se tiene que poder entender lo que ocurre en la planta y por lo tanto, una primera aproximación es hacer TT x veces más grande que el polo más lento de la planta. De ser TT muy grande, podría haber problemas al reconstruir las señales observadas. Por el contrario de ser TT muy pequeño, se podría necesitar una ganancia muy elevada en la realimentación. También se debe de tener en cuenta TT en consideración de interferencias y errores de cuantificación de parámetros. En cualquier caso, de momento se ha elegido TT = 20 mmmm, es decir aproximadamente 32 veces más rápido que el polo más lento de la planta (ss = 6.27). No obstante, en el ejercicio de encontrar el controlador adecuado mediante ensayo, se podría retomar esta consideración y hallar un tiempo de muestreo más idóneo. Todo sistema discretizado consta de al menos un muestreador y un retenedor. El muestreador representa el hecho de que nuestro controlador no interpreta la información de forma continua y el retenedor cumple la función de convertir la señal de control discreta a tiempo continuo. En nuestro caso, se ha considerado un retenedor de orden cero, cuya función es la de sostener el ultimo valor durante TT segundos. ZZZZZZ(ss) = 1 ee TTTT ss ; 17

Como se puede observar, su respuesta impulsional es el resultado de restar una función escalón unitario desplazada TT segundos hacia la derecha a otra función escalón unitario. Llegados a este punto, ya se tiene todo lo necesario para transformar la planta HH(ss) a términos que incluyan la acción de un controlador discreto. La planta en lazo abierto es 150.94ss HH(ss)ZZZZZZ(ss) = (1 ee TTTT ) ss(ss + 6.26)(ss 6.27) (6.27) Transformando HH(ss) al dominio z, se obtiene zz = ee TTTT (1 ee TTTT ) = (1 zz 1 ) 150.94 HH(zz) = ZZ[HH(ss)ZZZZZZ(ss)] = (1 zz 1 )ZZ (ss + 6.26)(ss 6.27) (6.28) Se desarrolla el término en corchetes de (6.28) en fracciones parciales 150.94 (ss + 6.26)(ss 6.27) = 12.05 ss + 6.26 12.05 ss 6.27 y se transforma al dominio z mediante tablas 150.94 ZZ (ss + 6.26)(ss 6.27) = 12.05 1 ee 6.26TT zz 1 12.05 1 ee 6.27TT zz 1 = 12.05 1 ee 0.1252 zz 1 12.05 1 ee 0.1254 zz 1 (6.29) 18

Sustituyendo (6.29) en (6.28) se tiene HH(zz) = (1 zz 1 12.05 ) 1 ee 0.125 zz 1 12.05 1 ee 0.125 zz 1 = 3.027zz + 3.027 zz 2 2.016zz + 1 (6.30) 1.6.3.2 Transformación al plano z: La transformada z modificada La transformada z modificada, es un método alternativo para la transformación del plano s al plano z descrito en [2] (p.691-696). Este método tiene la peculiaridad de añadir un retardo ficticio puro o retardo de transporte de valor (1 mm)tt segundos, donde TT es el periodo de muestreo y mm toma valores entre 0 y 1. Esto nos permite introducir al modelo de la planta, el tiempo que tarda el programa del controlador en ejecutarse, y ver cómo influye el tiempo de instrucción en el control de la planta. La transformada z modificada se aplica con la siguiente fórmula: HH(zz, mm) = zz 1 Σ rrrrrrrrrrrrrr dddd HH(ss) eemmmmmm zz zz ee TTTT pppppppp dddd GG(ss) Si se añade al sistema un retenedor de orden cero, se tiene HH(zz, mm) = zz 1 Σ rrrrrrrrrrrrrr dddd HH(ss) 1 ee TTTT ss eemmmmmm zz pppppppp dddd GG(ss) zz eetttt simplificando HH(zz, mm) = zz 1 (1 z 1 )Σ rrrrrrrrrrrrrr dddd HH(ss) ss eemmmmmm zz pppppppp dddd GG(ss) zz eetttt (6.31) 19

A continuación, se retoma la función de transferencia HH(ss): HH(ss) 150.94ss ss 2 (6.27 2 ) (6.26) Sustituyendo (6.26) en (6.31), se tiene 150.94 ee mmmmmm zz HH(zz, mm) = zz 1 (1 z 1 )Σ rrrrrrrrrrrrrr dddd pppppppp dddd GG(ss) (ss + 6.26)(ss 6.27) zz eetttt = zz 1 (1 z 1 ) lim (ss + 6.26) 150.94 ee mmmmmm zz ss 6.26 (ss + 6.26)(ss 6.27) zz ee TTTT +zz 1 (1 z 1 ) lim (ss 6.27) 150.94 ee mmmmmm zz ss 6.27 (ss + 6.26)(ss 6.27) zz ee TTTT = zz 1 (1 z 1 ) 150.94 12.53 e 6.26mT z 150.94 e 6.27mT z z e 6.26T 12.53 z e 6.27T Considerando TT = 20 mmmm (véase apartado 1.6.3.1) = zz 1 (1 z 1 ) 12.05e 0.125m z z ee 0.125 12.05e0.125m z z ee 0.125 (6.32) Se observa que si m = 0, por lo tanto se tiene un retardo de valor T s, la función obtenida mediante la transformada z modificada es igual a la obtenida mediante la transformación z, más un retardo de T s o zz 1. HH(zz) = zz lim HH(zz, mm) = (1 zz 1 12.05 ) mm 0 1 ee 0.125 zz 1 12.05 1 ee 0.125 zz 1 20

1.6.4.1 Representación en el espacio de estados en tiempo continuo A continuación, se retoman las ecuaciones diferenciales que describen el comportamiento de la planta compuesta por el péndulo y el motor: (MM + mm)xx + mmmmθθ = uu mmll 2 θθ + mmmmxx = mmmmmmmm uu = (6.10) (6.11) KK KK2 VVVV RRRRRR RRRRrr 2 xx (6.17) Aislando las derivadas segundas de (6.10) y (6.11) θθ = (MM + mm)gg MMMM θθ uu MMMM xx = uu MM mmmm MM θθ Substituyendo en estas la variable uu (6.17), se tiene (MM + mm)gg θθ = θθ KK MMMM MMMMMMMMMM VVVV + KK2 MMMMMMMMrr 2 xx ; (6.33) xx = KK MMMMMMMM VVVV KK2 mmmm xx MMMMMMrr2 MM θθ (6.34) 21

Sean las variables de estado x 1, x 2, x 3 y xx 4 siguientes: x 1 = θ x 2 = θ x 3 = x x 4 = x Sea la entrada del sistema uu = VVVV se obtiene xx 1 = xx 2 xx 2 = xx 3 = xx 4 (MM + mm)gg xx MMMM 1 + xx 4 = mmmm MM xx 4 KK2 MMMMMMMMrr 2 xx 4 KK2 MMMMMMrr 2 xx 4 + KK MMMMaaaa uu KK MMMMMMMMMM uu Con esto, se puede hacer la siguiente representación del sistema en el espacio de estados: donde xx = AAAA + BBBB (6.35) xx = xx 1 xx 2 xx, AA = 3 xx 4 0 1 0 0 (MM + mm)gg KK 2 0 0 MMMM MMMMMMMMrr 2 0 0 0 1 mmmm 0 0 KK2 MM MMMMMMrr 2, BB = 0 KK MMMMMMMMMM 0 KK MMMMMMMM 22

1.6.4.2 Representación en el espacio de estados en tiempo discreto A continuación se discretizará la ecuación (6.35) a (6.36): xx (kk + 1)TT = GG(TT)xx(kkkk) + HH(TT)uu(kkkk) (6.36) donde xx 1 (kkkk) TT xx xx(kkkk) = 2 (kkkk), GG(TT) = ee xx 3 (kkkk) AAAA = LL 1 [(ssss AA) 1 ], HH(TT) = ee AAAA dddd 0 xx 4 (kkkk) BB siendo LL 1 la transformada inversa de Laplace. Las formulas para calcular GG(TT) y HH(TT) han sido extraídas de [2] (p.312-315). En ellas, se considera que se introduce en la planta un retenedor de orden cero. Para facilitar la obtención de (6.36), se sustituirán en (6.35) los valores de la planta que se usaran en este proyecto K=0.14 (V*s)/rad Ra=10 Ω r=0.005 m l=0.25 m M=0.0742 Kg m=0.0238 Kg g=9.81 Kg/(m*s 2 ) dando lugar a xx 0 1 0 0 1 _xx 1 0 xx 2 51.82 0 0 4226.41 xx 2 150.94 = xx 3 0 0 0 1 xx 4 3.15 0 0 1056.6 xx + uu 3 0 xx 4 37.73 (6.37) 23

Dado que con una matriz de cuarto orden hacer los cálculos a mano resulta laborioso y fácilmente nos podemos equivocar, se ha usado MATLAB para la resolución de estos. Para ello, se pueden usar las siguientes funciones: GG = eeeeeeee(aa TT) [GG, HH] = cc2dd(aa, BB, TTTT); : Calcula la matriz exponencial ee AAAA (matriz de transición de estados). : Calcula las matrices GG(TT) i HH(TT). Por defecto usa un ZOH, pero podría usar otros retenedores. Considerando TT = 20 mmmm (véase el apartado 1.6.3.1), se obtiene 1.0081 0.0201 0 0.0764 0.7981 1.0081 0 4.0294 GG(0.02) = 0.0001 0 1 0.0009 0.0030 0.0001 0 0.0002 (6.38) 0.0027 0.1439 HH(0.02) = 0.0007 0.0357 (6.39) 24

1.7 Diseño de sistemas de control 1.7.1 Control mediante el LGR En este apartado, se encontrará un controlador que cumpla unas características deseadas, mediante el método del lugar geométrico de las raíces propuesto por W. R. Evans. Se parte de la función de transferencia de la planta discreta, que se obtuvo en la sección 1.6. En ella se consideran las siguientes aproximaciones: -Linealización entorno a la posición 0º del péndulo. -Eliminación de la inercia del péndulo. -No se consideran fricciones. -Efectos del motor de cc en estado estacionario. -Eliminación de un polo del motor de cc, cuyo valor es: ss = 1056.62. (Para un análisis más detallado de las aproximaciones véase la sección 1.6) Se retoma la función de transferencia HH(zz), para más comodidad HH(zz) = 3.027zz + 3.027 zz 2 2.016zz + 1 ; (7.1) Si consideramos esta planta para el LGR, obtendremos un LGR de una planta con realimentación positiva. Esto es debido, como ya se habló antes, al sentido establecido en el modelado del ángulo del péndulo (positivo o negativo entorno de 0). Si se quiere controlar el péndulo, se debe trabajar en un LGR con realimentación negativa. Entonces, de ahora en adelante se considerara HH(zz) como HH(zz). A la hora de implementar el sistema regulador en la realidad, se tendrá que definir la posición angular del péndulo teniendo esto en consideración. El sistema ha diseñar pretende mantener el péndulo en la posición 0º, por lo tanto la consigna es 0 y el sistema que se quiere realizar es un sistema regulador. El controladorr se ubicara en la trayectoria directa, como se puede ver en la Figura 7-1. 25

θ(kt) T Controlador digital u(kt) ZOH Planta θ(kt) Gc(z) H(z) Figura 7-1. Sistema regulador y planta Mediante la función de MATLAB rootlocus se ha obtenido la gráfica del LGR de HH(zz): Figura 7-2. LGR de H(z) 26

1.7.1.1 Estabilización de la planta Antes de buscar unas especificaciones concretas para la respuesta deseada, se debe encontrar una solución para estabilizar la planta. Para ello se ha seguido el siguiente método. Si se cancela el cero en el origen, se tienen polos complejos conjugados cerca del eje imaginario (aumentando la ganancia del compensador). Con ello, el sistema sigue siendo inestable, pero se está más cerca de estabilizar el sistema. Figura 7-3. Compensación con integrador puro En la Figura 7-3 se observa que no llegamos al límite de la estabilidad, como se deseaba. No obstante, con el siguiente paso se llevará la planta a la estabilidad. 27

Finalmente, se introduce un cero en el semiplano izquierdo, arrastrando los polos complejos conjugados hacia este. Figura 7-4. Planta estabilizada Se puede observar como se ha estabilizado la planta, con un controlador basado en un polo en el origen y un cero en el semiplano izquierdo del LGR. 1.7.1.2 Introduciendo especificaciones: Contornos y error en estado estacionario Ahora que ya se tiene la planta estabilizada, se deben establecer unos contornos que garanticen el buen funcionamiento de la planta. A partir de estos, se hará el ejercicio de encontrar un controlador que de unas características concretas. En cuanto a los contornos, se sabe que el modelo obtenido es válido para variaciones de la posición del péndulo cercanas a la posición 0. Teniendo en cuenta esto, se debería minimizar la sobre-elongación y el error generado por las perturbaciones en estado estacionario. En cuanto al tiempo de 28

establecimiento, se pueden jugar con varios valores, siempre que la posición del carro no exceda los límites de la maqueta. Esto último se deberá controlar mediante el ensayo en la planta y posterior corrección del controlador. Póngase un sobre-pico inferior al 15% y un tiempo de establecimiento inferior a los 4 s. Utilizando la notación polar y la fórmula de Euler, se tiene zz = aa + iiii = rree iiii, ssssssssssss θθ = ttgg 1 bb aa yy rr = aa2 + bb 2 En base a esta, se aplica la fórmula del tiempo de establecimiento para una función de segundo orden TTTT = 4 ln rr Entonces TTTT 4 ssssss => ln rr 1 (7.2) Por lo tanto, nos sirve todo el círculo unitario alrededor del origen del LGR. Para un sobre-pico inferior al 16%, se tiene ππππ SSSS = ee 1 ξξ 2 => ξξ 0.5 (7.3) Se ha de tener en cuenta, que esta fórmula solo es aplicable en el caso en que la planta en lazo abierto, disponga solamente de dos polos. En la mayoría de plantas, se deberá simular el controlador hasta minimizar el sobre-pico a un valor establecido. La relación entre el factor de amortiguamiento relativo y los polos en el LGR para una planta discreta, se expresa mediante la siguiente fórmula: ln rr ξξ = ln 2 rr + θθ 2 La siguiente gráfica sobrepone una rejilla con valores de ξξ, con la planta compensada mediante un polo en el origen y un zero en zz = 0.8. Se ha remarcado el contorno ξξ 0.5. Este límite, al ser más restrictivo, incluye también el contorno de TTTT 4 ss. Se ha elegido el valor del polo de forma 29

simbólica, para representar una posible solución que entrara en los límites establecidos. Figura 7-5. Contorno de ξξ 0.5 Hasta ahora se ha hablado de sobre-elongación, del factor de amortiguamiento relativo y del tiempo de establecimiento. Estos valores, se relacionan con el régimen transitorio de la planta y proceden de evaluar la ecuación característica de la planta en realimentación. En la construcción de un sistema regulador, para esta planta de péndulo invertido, interesa minimizar las perturbaciones ocasionadas en el camino que discurre entre el actuador y la planta de péndulo invertido a controlar. Tanto las perturbaciones como la entrada de referencia tendrán las mismas características transitorias, puesto que comparten la ecuación característica del sistema. Por lo tanto, las características transitorias evaluadas hasta ahora se aplican también a las perturbaciones. A la hora de calcular el error en estado estacionario. Se debería modificar la Figura 7-1 a un diagrama que separe el actuador de la planta a 30

controlar. Si se llama HH a la planta (sin el actuador) y GG CC al controlador junto con el actuador, se tiene YY = GG CCHH 1 + GG CC HH RR + HH 1 + GG CC HH NN donde N es la perturbación y R la entrada del sistema. Entonces el error es EE = RR GG CCHH 1 + GG CC HH RR HH 1 + GG CC HH NN (7.4) Aplicando el TVF para sistemas discretos a (7.4), se obtiene el error en estado estacionario EE(zz) = lim (1 zz 1 ) RR GG CCHH zz 1 1 + GG CC HH RR HH 1 + GG CC HH NN En nuestro sistema, se cumple que la entrada de referencia RR es nula, por lo tanto HH EE(zz) = lim (1 zz 1 ) zz 1 1 + GG CC HH NN (7.5) Para minimizar este error, sin modificar la ruta del compensador, se debe hacer GG CC HH Para ello, se podría aumentar la ganancia del controlador o introducir un polo cerca de límite de la estabilidad z=1 (compensador de retraso de fase). También, se podrían introducir polos en el límite de la estabilidad, aumentando el tipo del sistema. 31

1.7.1.3 Ejemplo de controlador En este apartado, se encontrará un ejemplo en concreto dentro del marco establecido por los apartados 1.7.1.1 y 1.7.1.2. Póngase, por ejemplo, un factor de amortiguamiento relativo de ξξ 0.6 y un tiempo de establecimiento de TTTT 0.4 s. Se hará que GG CC para zz = 1, sea 10 veces más grande mediante un compensador de retardo. TTTT = 4 ξξξξξξ => WWWW = 4 16.67 rad/s 0.6 0.4 zz = ee ξξξξξξ ±wwww 1 ξξ 2 => zz 1,2 = 0.79 ± 0.216jj Nuestro controlador tendrá una función de transferencia como el siguiente modelo: GG CC1 (zz) = KK(zz aa) zz 1 Reordenando la función de la planta (7.1), se tiene (7.7) HH(zz) = 3.027zz + 3.027 zz 2 2.016zz + 1 = 3.027(zz 1) (zz 0.88)(zz 1.13) Entonces, la ecuación característica es 1 + TT(zz) = 1 + GG CC1 (zz)hh(zz) = 1 + 3.027KK(zz aa) (zz 0.88)(zz 1.13) = 0 (7.8) Para que se cumpla la ecuación característica, se tienen que cumplir las condiciones de módulo i argumento. Condición de argumento: arg(zz aa) arg(zz 0.88) arg(zz 1.13) zz=0.79±0.216jj = 180 (7.9) 32

arg(zz aa) 180 tg 1 0.216 0.09 180 tg 1 0.216 0.34 zz=0.79±0.216jj = 180 arg(zz aa) 260.19 = 180 => arg(zz aa) = 80.19 ttgg 1 0.216 = 80.19 => aa 0.753 0.79 aa Condición de módulo: zz 0.753 3.027KK (zz 0.88) (zz 1.13) zz=0.79±0.216jj = 1 (7.9) KK = (zz 0.88) (zz 1.13) 3.027 zz 0.753 zz=0.79±0.216jj = 0.142 Con esto, nuestro controlador queda definido GG CC1 (zz) = 0.142(zz 0.753) zz 1 (7.10) Si se evalúa la ganancia que introduce este controlador en estado estacionario, suponiendo una entrada escalón unitario, se tiene GG CC1eeeeee (zz) = lim zz 1 0.142(zz 0.753) = 0.035 (Se ha eliminado el polo en zz = 1, puesto que este se compensa con el cero en zz = 1 del actuador). Con el fin de incrementar esta ganancia en un factor 10, se introduce una pareja cero-polo cercana al límite de la estabilidad zz = 1, donde se debe de cumplir GG CC2 (zz) = 0.142(zz 0.753) zz aa zz 1 zz bb zz aa lim zz 1 zz bb = 10 33

Para ello, se ha elegido aa = 0.9 y b=0.99 zz aa zz bb Se debe estudiar si la adición de este controlador modifica demasiado la dinámica de la planta y, de ser así, suavizar la diferencia entre los valores de la pareja cero-polo. Finalmente, se tiene GG CC2 (zz) = 0.142(zz 0.753)(zz 0.9) (zz 1)(zz 99) (7.11) A continuación, veamos los resultados obtenidos de la simulación. Para simular el sistema, se ha empleado la herramienta sisotool de MATLAB: Controlador de primer orden GG CC1 (zz) Figura 7-6. LGR de GG CC1 (zz) 34

Figura 7-7. Respuesta a uu(kkkk) de GG CC1 (zz) En la Figura 7-6, se puede observar como la localización de los polos es bastante cercana a la calculada. Se tiene y la localización teórica era zz 1,2 rreeeeee = 0.793 ± 0.218jj zz 1,2 tttttttt = 0.79 ± 0.216jj También, se puede observar mediante la rejilla, como el factor de amortiguamiento relativo es ξ 0.6. En cuanto al tiempo de establecimiento, parece que se acerca a su diseño teórico: Ts 0.4. Controlador de segundo orden GG CC2 (zz) Como antes se habló, el compensador de retardo minimiza el error en estado estacionario (en este caso con un factor 10). No obstante, se debe observar si modifica la dinámica de la planta sustancialmente o no. 35

Figura 7-8. LGR de GG CC2 (zz) Como se observa, se tiene un LGR parecido al de la Figura 7-6. Ahora los polos son zz 1,2 rrrrrrrr = 0.84 ± 0.273jj y ξξ 0.4 Aumentando la ganancia, se reubican los polos en la trayectoria de ξξ = 0.6, 00. 222222(zz 0.753)(zz 0.9) GG CC2 (zz) = ; (zz 1)(zz 0.99) (7.12) 36

Figura 7-9. LGR de GG CC2 (zz) a la vez que aumenta la frecuencia natural, haciendo la respuesta un poco más rápida Figura 7-10. Respuesta a uu(kkkk) de GG CC2 (zz) 37

En el apartado anterior, se comentó que al incrementar la ganancia del controlador en estado estacionario (para una entrada uu(kkkk)) se reduce el error frente a las perturbaciones. Como se puede observar, con esto se reduce también el error frente a la entrada de referencia. Finalmente, se añaden las dos graficas de las respuestas de los dos controladores Figura 7-11. Respuestas a uu(kkkk) de GG CC1 (zz) y GG CC2 (zz) 1.7.1.4 Simulaciones de la planta-controlador con retardos de transporte. En este apartado se hace uso de la transformada z modificada para simular un retardo de transporte de valor (1 mm)tt (donde TT es el tiempo de muestreo), con los controladores obtenidos en el apartado anterior. Este retardo representa el tiempo que tarda el programa en ejecutarse. Los resultados serán de utilidad, a la hora de elegir el tiempo de instrucción del controlador. Figura 7-12. Transformada z modificada (Extraído de [2]) 38

Retomemos la ecuación de la planta con retardo de transporte, obtenida en el apartado 1.6.3.2. HH(zz, mm) = zz 1 (1 z 1 ) 12.05e 0.125m z z ee 0.125 12.05e0.125m z z ee 0.125 ; (7.13) A continuación, veamos las simulaciones de los controladores de primer y segundo orden, para distintos retardos de transporte: Controlador de primer orden GG CC1 (zz) mm = 1 => tiempo de retardo= 0 s, polos dominantes: zz 1,2 = 0.793 ± 0.218jj Figura 7-13. Simulación de GG CC1 (zz) con tiempo de retardo nulo 39

mm = 0.9 => tiempo de retardo= 2 ms, polos dominantes: zz 1,2 = 0.790 ± 0.226jj Figura 7-14. Simulación de GG CC1 (zz) con tiempo de retardo de 2 ms mm = 0.8 => tiempo de retardo= 4 ms, polos dominantes: zz 1,2 = 0.788 ± 0.235jj Figura 7-15. Simulación de GG CC1 (zz) con tiempo de retardo de 4 ms 40

mm = 0.5 => tiempo de retardo= 10 ms, polos dominantes: zz 1,2 = 0.783 ± 0.266jj Figura 7-16. Simulación de GG CC1 (zz) con tiempo de retardo de 10 ms Como conclusión, siendo TT RRRRRR el tiempo de retardo y usando mi propio criterio establezco: Para TT RRRRRR 2 mmmm TT RRRRRR es despreciable Para 2mm ss < TT RRRRRR 4 mmss TT RRRRRR modifica ligeramente los polos del sistema. Para TT RRRRRR > 4 mmmm tenemos que considerar TT RRRRRR en el diseño del controlador. En cualquier caso, siempre que TT RRRRRR no supere el tiempo de muestreo (20 ms), y no se aumente la ganancia mucho más de lo previsto, no se tiene el peligro de llevar a la planta a la inestabilidad. No obstante de ser TT RRRRRR mayor que 4 ms, no se puede despreciar este factor con facilidad. 41

Controlador de segundo orden GG CC2 (zz) mm = 1 => tiempo de retardo= 0 s, polos dominantes: zz 1,2 = 0.696 ± 0.279jj Figura 7-17. Simulación de GG CC2 (zz) con tiempo de retardo nulo mm = 0.9 => tiempo de retardo= 2 ms, polos dominantes: zz 1,2 = 0.685 ± 0.297jj Figura 7-18. Simulación de GG CC2 (zz) con tiempo de retardo de 2 ms 42

mm = 0.85 => tiempo de retardo= 3 ms, polos dominantes: zz 1,2 = 0.678 ± 0.308jj Figura 7-19. Simulación de GG CC2 (zz) con tiempo de retardo de 3 ms mm = 0.5 => tiempo de retardo=10 ms, polos dominantes: zz 1,2 = 0.658 ± 0.429jj Figura 7-20. Simulación de GG CC2 (zz) con tiempo de retardo de 10 ms Haciendo memoria, en el apartado anterior, se aumentó la ganancia moviendo los polos dominantes un poco más a la izquierda del LGR, para compensar la adición de un polo y un cero y reubicar los polos en la trayectoria ξξ 0.6. Al hacer esto, los polos deseados se encuentran en una posición más sensible a TT RRRRRR, como se puede observar en las simulaciones. Por eso, se debe de ser un poco más restrictivos con las consideraciones de TT RRRRRR. En este caso, establezco bajo mi criterio: 43

Para TT RRRRRR < 2 mmmm TT RRRRRR es despreciable Para 2mm ss TT RRRRRR < 3 mmmm TT RRRRRR modifica ligeramente los polos del sistema. Para TT RRRRRR 3 mmmm tenemos que considerar TT RRRRRR en el diseño del controlador. 1.7.2 Control en el espacio de estados: método de ubicación de polos. En esta sección, se presentará el diseño de un sistema regulador para una planta de péndulo invertido mediante el método de ubicación de polos. Este método consiste en realimentar todas las variables de estado para mover los polos del sistema, en lazo cerrado, a una posición deseada. El problema, es parecido al que se trataba en el método del LGR, pero con un enfoque mayor. En este caso, se tratan con todos los polos de la planta, en lugar de solo tener en cuenta los dominantes. Además se controlarán todas las variables de estado. Figura 7-21. Sistema de control con realimentación de estado Con la ubicación de polos, se modificará la dinámica de todas las variables de estado. Dada la siguiente configuración, para un sistema regulador mediante la técnica de ubicación de polos, de elegir una localización de los polos estable para el sistema, se logrará que todas las variables tiendan a 0 cuando el tiempo tiende a infinito. Debido a la complejidad de los cálculos con matrices de 4 orden, en este capítulo se realizaran los cálculos mediante herramientas de MATLAB. En la sección 1.6 se obtuvieron las ecuaciones en el espacio de estado. En ellas se consideraban las siguientes aproximaciones: -Linealización entorno a la posición 0º del péndulo. -Eliminación de la inercia del péndulo. -No se consideran fricciones. -Efectos del motor de cc en estado estacionario. (Para un análisis más detallado de las aproximaciones véase la sección 1.6) 44

A continuación, se retoman las matrices que describen el sistema en el espacio de estados: y el modelo en tiempo discreto es 1.0081 0.0201 0 0.0764 0.7981 1.0081 0 4.0294 GG = 0.0001 0 1 0.0009 0.0030 0.0001 0 0.0002 0.0027 0.1439 HH = 0.0007 0.0357 xx (KK + 1)TT = GGGG(KKKK) + HHHH(KKKK) (7.14) (7.15) (7.16) donde uu(kkkk), es un escalar (tensión de armadura aplicada al motor), el tiempo de muestreo es 20 ms (véase el apartado 1.6.3.1) y las variables de estado son xx 1 = θθ xx 2 = θθ xx 3 = xx xx 4 = xx 1.7.2.1 Controlabilidad y observabilidad Un primer paso para realizar un sistema mediante realimentación de estado, es analizar las condiciones de observabilidad y controlabilidad. Si el sistema es de estado completamente controlable, se cumple que se pueden transferir los polos del sistema a cualquier posición deseada. Para un sistema de orden nn, se cumple la condición de controlabilidad si la matriz de controlabilidad de nn xx nn es del mismo rango que variables de estado posea el sistema (rango nn). La matriz de controlabilidad se construye de la siguiente forma: CCCC = [HH GGGG GG nn 1 HH] 45

donde nn es el orden del sistema. En nuestro caso CCCC = [HH GGGG GG 2 HH GG 3 HH] Mediante la función ctrb de MATLAB, usando (7.14) y (7.15), se obtiene la matriz de controlabilidad 0.0027 0.0029 0.0030 0.0031 0.1439 0.0033 0.0056 0.0080 CCCC = 0.0007 0.0007 0.0007 0.0007 0.0357 0 0 0 (7.19) Para evaluar el rango, se ha usado rrrrrrrr(cccc) y se ha obtenido nn = 4. Por lo tanto, el sistema es de estado completamente controlable. Evaluemos ahora la observabilidad del sistema. La observabilidad es una condición que ha de cumplir el sistema para poder reconstruir variables de estado no medibles a partir de variables de estado que sí lo son. En nuestro caso, se tendrían que poder estimar las variables xx, xx y θθ a partir de la variable θθ, para poder controlar el sistema. Ya que, como se avanza, la maqueta solo medirá la posición angular del péndulo θθ. Figura 7-22. Sistema de control con realimentación de estado observado Para construir la matriz de observabilidad, se debe de especificar la salida del sistema 46

YY(KKKK) = CCCC(KKKK) + DDDD(KKKK) (7.20) Puesto que la salida es la variable de estado xx 1 = θθ, se tiene CC = [1 0 0 0] DD = 0 Para un sistema de orden nn, se cumple la condición de observabilidad si la matriz de observabilidad de nn xx nn es del mismo rango que variables de estado posea el sistema (rango nn). La matriz de observabilidad se construye de la siguiente forma: CC CCCC OOOO = = [CC GG CC (GG nn 1 ) CC ] CCGG nn 1 donde nn es el orden del sistema y la notación GG indica la matriz traspuesta (de GG en este caso). En nuestro caso OOOO = [CC GG CC (GG 2 ) CC (GG 3 ) CC ] Finalmente, mediante la función obsv de MATLAB, se obtiene la matriz de observabilidad 1 0 0 0 1.0080 0.0200 0 0.0764 OOOO = 1.0319 0.0404 0 0.1578 1.0721 0.0614 0 0.2417 (7.21) Para evaluar el rango, se ha usado rrrrrrrr(oooo) obteniendo nn = 3. Por lo tanto, el sistema es parcialmente observable y no se pueden medir las variables xx, xx y θθ, como se deseaba. No obstante, aunque no se pueda llevar a la práctica este sistema en la maqueta, se presentará el diseño de un sistema regulador mediante realimentación de estado como material didáctico o para una futura ampliación de la maqueta. 47

1.7.2.2 Obtención de la matriz de ganancia de realimentación de estado K El sistema regulador mediante realimentación de estado sigue el diagrama de la Figura 7-21, donde la señal de control uu(kkkk) es uu(kkkk) = KKKK(kkkk); Entonces, resolver el sistema es encontrar la matriz de ganancia de realimentación de estado KK, para unos polos del sistema deseados. Para encontrar la matriz KK, se ha usado la fórmula de Ackermann donde KK = [0 0 0 1][HH GGHH GG nn 1 HH] 1 φφ(gg) siendo el valor de los polos deseados φφ(gg) = GG nn + αα 1 GG nn 1 + + αα nn 1 GG + αα nn II y la ecuación característica del sistema z = μ 1, z = μ 2,, z = μ n zzzz GG + HHHH = (zz μμ 1 )(zz μμ 2 ) (zz μμ nn ) = zz nn + αα 1 zz nn 1 + αα 2 zz nn 2 + + αα nn 1 zz + αα nn = 0 Una técnica para elegir los polos de la planta, es considerar dos de ellos dominantes y alejar los demás lo suficiente para que no afecten demasiado. Si se alejan mucho, la matriz de ganancia de realimentación podría tomar valores demasiado grandes (posible saturación), conviene simular los valores y ensayar en la planta hasta encontrar unos idóneos. Mediante el ensayo, se han elegido los siguientes polos para el sistema: ZZ 1,2,3,4 = JJ = [0.97 + 0.05j 0.97 0.05j 0.9 0.85] Para obtener la matriz KK, se ha usado la función acker de MATLAB. Se ha obtenido KK = [ 16.8 2.7 4.54 30.94] 48

Finalmente, la señal de control es uu = KKKK = 16.8θθ + 2.7θθ + 4.54xx + 30.94xx (7.22) (Se ha de tener en cuenta el sentido tomado en el modelado de la planta, de las variables de estado. Para más información, véase el capítulo 1.6) Figura 7-23. Respuesta a una condición inicial de θ(0)=1 49

1.8 El hardware En este apartado se detallará el diseño de la maqueta. El grueso del diseño reside básicamente en el sistema electrónico, compuesto por el controlador, el actuador y el sensor de la variable de salida. En el apartado 1.8.1 se trataran temas de elección de componentes, descripciones de estos y la forma en que interactúan en la planta. El segundo apartado del capítulo (el apartado 1.8.2) describe la construcción de la maqueta de la planta a controlar: el conjunto péndulo-carro y su soporte. Este apartado, revisa el proceso de construcción de la maqueta, sin incidir mucho en temas de diseño. No obstante, hace hincapié en la importancia de ser rigurosos en la construcción de esta. Al construir la maqueta se tuvieron en cuenta los requisitos siguientes: - La maqueta debe de estar preparada para implementar en ella controladores discretos con cierta facilidad. - Debe de ser reducida y transportable. Teniendo en cuenta estas premisas, se propuso hacer uso de un microcontrolador como núcleo del sistema electrónico, dando lugar a un esquema parecido al de la Figura 8-1. Figura 8-1. Diagrama del sistema electrónico 50

1.8.1 Sistema electrónico 1.8.1.1.1 Eligiendo el microcontrolador Se ha decidido elegir un controlador PIC por las siguientes razones: - En el DEEEA se disponen de programadores que permiten programar una gran cantidad de modelos. - Su programación es relativamente sencilla y muy usada. Su fabricante nos ofrece muchos recursos (códigos de ejemplo, librerías, resolución de dudas ), - Su coste es reducido, es un producto que se puede adquirir con facilidad. El alumno que lo desee podría adquirir un programador a bajo coste. - Nos ofrece un abanico de posibilidades más que suficientes para realizar un sistema que nos permita experimentar controladores para el péndulo invertido. Una vez decida la marca, veamos que familias podemos usar: Figura 8-2. Familias de microcontroladores de Microchip Dado que el programador del que dispone el DEEEA, el ICD2, abarca casi todos los dispositivos menos algunos de los más nuevos (los realizados después de Septiembre del 2010), no resulta una gran restricción. Se ha considerado oportuno usar un microcontrolador de 16 bits, puesto que la cantidad de valores que leerá el sensor de posición angular será al menos 51

superior a 360 posibles valores (un error en la lectura de medio grado no sería adecuado para realizar un control cerca del ángulo 0). Se ha decidido programar en C en lugar de en ensamblador. Esto se debe a que, una vez hecho el programa para realizar el control del péndulo, el alumno podrá introducir algoritmos de forma sencilla sin verse obligado a aprender la estructura del microcontrolador. También podrá entender el código más fácilmente y si se requiere se podría ampliar/mejorar con más facilidad. De esta forma también se podría aprovechar para otros microcontroladores distintos al elegido. Trabajar con registros de 16 bits será más cómodo y más rápido que usar microcontroladores de 8 bits, no obstante, no significa que no sea posible usar un microcontrolador de 8 bits para controlar el péndulo. Para esto último, se añade, que el coste entre un microcontrolador y otro varia muy poco y puesto que no se pretende fabricar este proyecto en grandes cantidades, mas bien su uso está orientado a un entorno didáctico reducido, se ha optado por dar buenas prestaciones al producto más que abaratar pequeños costes. Como se verá a continuación, la familia de 16 bits ofrece más que suficientes prestaciones para plantearse usar un microcontrolador de 32 bits. Buscando dentro de la gama de PIC de 16 bits, se encuentran familias optimizadas para el control de motores en los dspic (véase Figura 8-3). Figura 8-3. Familias optimizadas para el control de motores 52

A elegir entre las dos familias de dspic se tienen los dspic de gama alta (dspic33f/e) y los dspic sencillos. La familia de los dspic33f/e, da más velocidad de operación, más conversores AD, más periféricos y soporta mejor la temperatura. No obstante, se tiene más que suficiente con lo que ofrece la familia dspic30f. Figura 8-4. Familias dspic30f y dspic33f/e de Microchip Dentro de esta, se ha elegido el dspic30f4011, ya que es uno de los microcontroladores de la familia dspic30f orientado al control de motores. Cualquiera otra elección, dentro de los mencionados en la Figura 8-5, seria correcta. Se ha elegido el dspic30f4011 en concreto, por su disponibilidad. Figura 8-5. Microcontroladores de la familia dspic30f orientados al control de motores 53

1.8.1.1.2 La familia dspic30f Sin entrar demasiado en la arquitectura, a continuación se exponen algunas de sus características más relevantes: -Arquitectura Harvard modificada. -Memoria de datos dividida en dos bloques, llamados X y Y, con unidades generadoras de dirección (AGU) independientes. Normalmente se usa el bloque X (MCU), pero determinadas instrucciones del DSP acceden simultáneamente a ellos para realizar operaciones complejas como MAC (multiplicar-acumular). -Operaciones hasta 30 MIPS. -16 registros de trabajo (W) de 16-bit. -Instrucciones optimizadas parar compiladores de C con modos de direccionamiento flexibles. -Unidad divisora que opera con números fraccionales con signo de 16/16-bit (punto fijo Q15) o números enteros de 32/16-bit o 16/16-bit. -Modulo DSP. El cual consta de: -Un multiplicador a alta velocidad de 17-bit x 17-bit que puede entregar números enteros de 32-bit o fraccionales con el formato Q31 (punto fijo). -Un registro de desplazamiento -Un sumador/restador de 40-bits, con dos registros acumuladores y lógica de redondeo y saturación. 54