Download - Diseño y Control del Péndulo Invertido
-
8/2/2019 Diseo y Control del Pndulo Invertido
1/142
Proyecto Integrador Profesional
Diseo y Control del Pndulo Invertido
Alumno: Alexey Sidenko
Ingeniera Electrnica
Legajo N 100233
Tutor: Dr. Ing. Ruben H. Milocco
Facultad de Ingeniera
Universidad Nacional del Comahue
Neuqun 2011
-
8/2/2019 Diseo y Control del Pndulo Invertido
2/142
-
8/2/2019 Diseo y Control del Pndulo Invertido
3/142
-
8/2/2019 Diseo y Control del Pndulo Invertido
4/142
-
8/2/2019 Diseo y Control del Pndulo Invertido
5/142
Diseo y Control del Pndulo Invertido
I
Resumen
El modelo del pndulo invertido es un ejemplo clsico en la literatura de control ya que permite
exponer de forma clara y didctica una de las aplicaciones ms importantes del control automtico:
el control de sistemas mecnicos inestables. El mismo tiene mltiples aplicaciones, como la
estabilizacin de misiles, cargas transportadas en gras, vehculos y robots. El sistema consiste en
un carro sobre el cual se encuentra un pndulo invertido sujetado mediante un pivote sin friccin. El
carro es movido por un motor que ejerce una fuerza en sentido horizontal, siendo esta la accin de
control. El presente trabajo describe el diseo, construccin y ensayo de un pndulo invertido apto
para ser utilizado en prcticas de laboratorio de la ctedra de Sistemas Controlados por
Computadora. El mismo permiti experimentar con diversos tipos de control, as como tambin,aplicar diversas tcnicas de identificacin y modelado de sistemas.
Palabras Clave:
Pndulo invertido, control, sistemas controlados por computadora, variables de estado, control
polinomial, filtro de Kalman, control por energa, MATLAB, USB, PIC, encoder
-
8/2/2019 Diseo y Control del Pndulo Invertido
6/142
Diseo y Control del Pndulo Invertido
II
-
8/2/2019 Diseo y Control del Pndulo Invertido
7/142
Diseo y Control del Pndulo Invertido
III
Abstract
The inverted pendulum model is a classic example in control literature as it allows a clear teaching
one of the most important applications of automatic control: the control of unstable mechanical
systems. It has many applications, such as missile, crane, vehicle and robot stabilization. The
system consists of a cart on which is attached an inverted pendulum by a frictionless pivot. The cart
is powered by a motor that exerts a force in the horizontal direction, this being the control action.
This paper describes the design, construction and testing of an inverted pendulum suitable for use in
the laboratory practices of the department of Computer Controlled Systems. It has aloud to
experiment with different types of control, and also to apply different identification and system
modelling techniques.
Key words:
Inverted pendulum, control, computer controlled systems, state variables, polynomial control,
Kalman filter, energy control, MATLAB, USB, PIC, encoder
-
8/2/2019 Diseo y Control del Pndulo Invertido
8/142
Diseo y Control del Pndulo Invertido
IV
-
8/2/2019 Diseo y Control del Pndulo Invertido
9/142
Diseo y Control del Pndulo Invertido
V
Agradecimientos
Este trabajo esta dedicado a todas las personas que hicieron posible esta
realidad. A mi familia, que me dio su apoyo durante toda la carrera. A mi
novia Victoria, por soportarme y estar siempre a mi lado. A mi tutor, Dr.
Rubn Milocco por su direccin. A la Facultad de Ingeniera y a todos los
amigos que encontr adentro. Gracias a todos.
-
8/2/2019 Diseo y Control del Pndulo Invertido
10/142
Diseo y Control del Pndulo Invertido
VI
-
8/2/2019 Diseo y Control del Pndulo Invertido
11/142
Diseo y Control del Pndulo Invertido
VII
ndice
CAPTULO 1 - INTRODUCCIN Y OBJETIVOS ................................................................... 1
1.1. Introduccin..................................................................................................................... 11.2. Objetivos.......................................................................................................................... 11.3. Fundamentacin............................................................................................................... 21.4. Estructura del Trabajo ..................................................................................................... 2
CAPTULO 2 - DISEO DEL PNDULO INVERTIDO .......................................................... 3
2.1.DISEO DE LA MECNICA ...................................................................................................... 42.1.1. Pndulo ......................................................................................................................... 42.1.2. Rieles y Carro................................................................................................................ 52.1.3. Gabinete........................................................................................................................ 5
2.2.DISEO DE LA ELECTRNICA ................................................................................................. 72.2.1. Microcontroladores....................................................................................................... 72.2.2. Encoders ....................................................................................................................... 92.2.3. Arquitectura Maestro-Esclavo..................................................................................... 122.2.4. Protocolo Paralelo ...................................................................................................... 132.2.5. Lmites de Carrera....................................................................................................... 142.2.6. Comunicacin USB...................................................................................................... 142.2.7. Puente H...................................................................................................................... 162.2.8. Fuente de alimentacin................................................................................................ 172.2.9. Placa de Circuito Impreso ........................................................................................... 172.2.10. Software .................................................................................................................... 182.2.11. Rutinas de inicializacin............................................................................................ 19
2.3.INTERFAZ EN MATLAB...................................................................................................... 212.3.1. Subrutinas ................................................................................................................... 21
2.3.2. Estructura.................................................................................................................... 212.3.3. Normalizacin de las Variables ................................................................................... 222.3.4. Perodo de muestreo.................................................................................................... 222.3.5. Linealizacin del motor ............................................................................................... 24
CAPTULO 3 - MODELADO E IDENTIFICACIN .............................................................. 27
3.1.MODELADO......................................................................................................................... 273.1.1. Modelado del pndulo invertido................................................................................... 283.1.2. Modelado del pndulo no invertido.............................................................................. 293.1.3. Modelado del Motor .................................................................................................... 303.1.4. Modelo Completo ........................................................................................................ 313.1.5. Discretizacin.............................................................................................................. 32
3.2.IDENTIFICACIN MEDIANTE SIMULACIN ............................................................................ 33
-
8/2/2019 Diseo y Control del Pndulo Invertido
12/142
Diseo y Control del Pndulo Invertido
VIII
3.2.1. Identificacin de la Funcin de Transferencia del Motor............................................. 343.2.2. Identificacin de la Funcin de Transferencia del pndulo .......................................... 36
3.3.IDENTIFICACIN MEDIANTE CLCULO MATRICIAL............................................................... 373.3.1. Identificacin de la Funcin de Transferencia del motor ............................................. 383.3.2. Identificacin de la Funcin de Transferencia del Pndulo.......................................... 393.3.3. Identificacin del Sistema en Variables de Estado ....................................................... 41
3.4.IDENTIFICACIN MEDIANTE ENSAYO ................................................................................... 45
3.5.COMPARACIN DE LOS MTODOS DE IDENTIFICACIN .......................................................... 46
CAPTULO 4 - CONTROL DEL PNDULO INVERTIDO.................................................... 49
4.1.CONTROL EN VARIABLES DE ESTADO................................................................................... 494.1.1. Vector de Realimentacin............................................................................................ 49
4.1.2 Observador de Estados................................................................................................. 504.1.3. Controlabilidad y observabilidad del sistema .............................................................. 524.1.4. Valor deseado.............................................................................................................. 534.1.5. Algoritmo de Diseo.................................................................................................... 534.1.6. Implementacin ........................................................................................................... 544.1.7. Resultados................................................................................................................... 56
4.2.CONTROL EN ENFOQUE POLINOMIAL.................................................................................... 584.2.1. Funcin de Transferencia de la Realimentacin de Estados........................................ 584.2.2. Funcin de Transferencia de la planta................................................................ ......... 584.2.3. Asignacin de Polos .................................................................................................... 59
4.2.4. Algoritmo de Diseo.................................................................................................... 604.2.5. Implementacin ........................................................................................................... 624.2.6. Resultados................................................................................................................... 64
4.3.FILTRO DE KALMAN ............................................................................................................ 664.3.1. Ganancia ptima ........................................................................................................ 664.3.2. Caracterizacin del Ruido ........................................................................................... 684.3.3. Algoritmo de Diseo.................................................................................................... 714.3.4. Implementacin ........................................................................................................... 734.3.5. Resultados................................................................................................................... 74
4.4.CONTROL NO LINEAL .......................................................................................................... 77
4.4.1. Control Basado en Energa.......................................................................................... 774.4.2. Implementacin ........................................................................................................... 794.4.3. Resultados................................................................................................................... 81
4.5.CONTROL CON COEFICIENTES VARIANTES............................................................................ 864.5.1. Modelado .................................................................................................................... 864.5.2. Discretizacin de ...................................................................................................... 874.5.3. Implementacin ........................................................................................................... 884.5.4. Resultados................................................................................................................... 89
4.6.COMPARACIN DE LOS MTODOS DE CONTROL .................................................................... 92
5. CONCLUSIONES................................................................................................................... 955.1. Propuestas de Mejora y Futuras Lneas de Trabajo................................ ........................ 97
-
8/2/2019 Diseo y Control del Pndulo Invertido
13/142
Diseo y Control del Pndulo Invertido
IX
BIBLIOGRAFA ........................................................................................................................ 98
REFERENCIAS.......................................................................................................................... 99
ANEXOS ................................................................................................................................... 101
ANEXOIMANUAL DE USUARIO........................................................................................... 101
ANEXOIIGUAS DE LABORATORIO ..................................................................................... 102
ANEXOIIICDIGO FUENTE DE LOS MICROCONTROLADORES ............................................... 109
ANEXOIVCDIGO FUENTE EN MATLAB........................................................................... 119
ANEXOVCIRCUITOS ESQUEMTICOS.................................................................................. 123
-
8/2/2019 Diseo y Control del Pndulo Invertido
14/142
Diseo y Control del Pndulo Invertido
X
-
8/2/2019 Diseo y Control del Pndulo Invertido
15/142
Captulo 1 Introduccin y Objetivos
1
Captulo 1 - Introduccin y Objetivos
1.1. Introduccin
El pndulo invertido es uno de los problemas ms clsicos del control ya que permite exponer de
forma clara y didctica una de las aplicaciones ms importantes del control automtico: el control
de sistemas mecnicos inestables. El mismo consiste de pndulo, libremente articulado, que se
encuentre montado sobre un carro capaz de desplazarse horizontalmente a voluntad mediante un
motor elctrico.
El control de un pndulo invertido posee mltiples aplicaciones, como por ejemplo en la
construccin de dispositivos de transporte auto-balanceados (Segway [1], Honda U3-X [2]), en la
estabilizacin de cohetes [3], estabilizacin de robots bpedos [4], en la estabilizacin de oscilaciones
de cargas transportadas en gras [5], en movilidad sobre sillas de rueda [6], etc.
1.2. Objetivos
El objetivo del presente trabajo es el diseo y desarrollo de un equipamiento didctico, del tipo
pndulo invertido, apto para ser utilizado en prcticas de laboratorio de la ctedra de Sistemas
Controlados por Computadora, as como tambin, la implementacin y ensayo de diferentes
tcnicas de control e identificacin de sistemas.
La idea es que desde la computadora puedan experimentarse distintas estructuras de control tanto de
la inclinacin angular del pndulo, como de su posicin sobre el eje horizontal, controlando la
corriente del motor de comando del pndulo. De esta forma se busca que el estudiante pueda
-
8/2/2019 Diseo y Control del Pndulo Invertido
16/142
Captulo 1 Introduccin y Objetivos
2
familiarizarse con distintas estrategias de control programando en alto nivel, pudiendo graficar las
variables importantes para su anlisis y poder hacer procesamiento posterior de la informacin.
1.3. Fundamentacin
El inters para desarrollar un equipo didctico de experimentacin surgi de la necesidad, dentro
del rea de Control Automtico de la Facultad de Ingeniera de la Universidad Nacional del
Comahue, de disponer de dicho material para realizar las prcticas de laboratorio de las materias del
rea. El mismo permite experimentar con diversos tipos de controles como PID, realimentacin de
estados, control polinomial, control lineal cuadrtico (LQR) y Gaussiano (LQG), redes neuronales,
control no lineal y muchas otras variantes, as como tambin, aplicar diversas tcnicas de
identificacin y modelado de sistemas. Se espera que este equipamiento sea de gran utilidad para
los alumnos durante el cursado de la materia Sistemas Controlados por Computadora.
1.4. Estructura del Trabajo
El presente trabajo se divide en cinco captulos: en el captulo 2 se presenta la descripcin detallada
del diseo del sistema. En el captulo 3 se realiza el modelado y la identificacin de los parmetros
del sistema, que sern luego utilizados en el captulo 4 para el diseo de los distintos controladores.
Finalmente, en el captulo 5, se presentan las conclusiones del trabajo.
-
8/2/2019 Diseo y Control del Pndulo Invertido
17/142
Captulo 2 Diseo del Pndulo Invertido
3
Captulo 2 - Diseo del Pndulo Invertido
El propsito del equipo que se pretende disear es la implementacin y ensayo fsico de diferentes
modelos matemticos y estructuras de control, as como tambin, la evaluacin de sus desempeos.
Para esto es necesario poder controlar, desde una computadora, el motor que acta sobre el pndulo
y, al mismo tiempo, poder leer la informacin de la posicin y el ngulo del mismo. La funcin de
los circuitos electrnicos del equipo es solamente la de crear un vnculo entre la PC y la parte
mecnica, a travs de los sensores y un puente H. De esta forma es posible implementar cualquier
algoritmo de control en la PC para hacer experimentos con el mecanismo.
En la figura 2.1 puede observarse un diagrama general de las partes que componen el sistema.
El mismo puede dividirse en tres grandes bloques: la parte mecnica, la parte electrnica y la
interfaz de MATLAB [7] en la computadora. En el presente captulo se explicar en detalle, el
funcionamiento de cada uno de dichos bloques y las partes que los componen.
Figura 2.1: Esquema general del sistema
-
8/2/2019 Diseo y Control del Pndulo Invertido
18/142
Captulo 2 Diseo del Pndulo Invertido
4
2.1. Diseo de la Mecnica
La primera etapa del trabajo consisti en el diseo, fabricacin y ensamblaje de la parte mecnica
del equipo. El paradigma del pndulo invertido exige la confeccin de un mecanismo tal que el
pndulo, libremente articulado, se encuentre montado sobre un carro capaz de desplazarse
horizontalmente a voluntad. Se requiere, adems, la capacidad de medir con gran exactitud, tanto el
ngulo de desviacin del pndulo, como la posicin del carro.
Figura 2.2: Diagrama esquemtico del Sistema Mecnico
2.1.1. Pndulo
Para que el pndulo pueda rotar libremente es necesario montarlo sobre una articulacin con muy
bajo rozamiento. Para resolver este inconveniente se decidi utilizar el rodamiento de un disco
rgido de PC. Este rodamiento resulta ideal debido a su pequeo tamao y rozamiento casi
despreciable.
El pndulo en si mismo no es ms que una masa cuyo centro de gravedad se encuentra a cierta
distancia de su eje de rotacin. La implementacin del mismo consisti simplemente de una
planchuela de aluminio de 15x3.5 cm y 3 mm de espesor. El corte y mecanizado del mismo se
realiz sin dificultad con herramientas manuales.
-
8/2/2019 Diseo y Control del Pndulo Invertido
19/142
Captulo 2 Diseo del Pndulo Invertido
5
El montaje entre el pndulo y el rodamiento se realizo exitosamente mediante tres pequeos
tornillos.
2.1.2. Rieles y Carro
Para efectuar el desplazamiento horizontal del eje del pndulo, el mecanismo del carro de una
impresora resulta ideal. Se desensambl una impresora EPSON antigua para extraer los rieles, el
carro y la correa, y se monto todo el conjunto sobre una base de MDF. Se mont el pndulo sobre el
carro y se reemplaz el motor paso a paso de la impresora por un motor de corriente continua de
imn permanente. El motor de corriente continua es ms adecuado para los requerimientos del
paradigma del pndulo invertido.
2.1.3. Gabinete
Para proteger los mecanismos y circuitos del sistema, de los factores del ambiente, se decidi
construir un gabinete especial que los contenga. Se decidi utilizar Fibrofcil en la construccin del
gabinete debido a la facilidad de mecanizado y ensamblaje. Este material adems, aade peso al
gabinete, lo que resulta ideal para absorber las fuerzas y vibraciones generadas por el mecanismo.
Se decidi dividir el gabinete en dos compartimientos:
un compartimiento frontal para alojar todos los mecanismos del pndulo un compartimiento posterior para alojar todo el cableado y la electrnica
El compartimiento frontal, de 64x30x15 cm, se diseo con una compuerta superior para acceder a
los mecanismos del pndulo y un panel frontal de vidrio para poder apreciar su funcionamiento
desde el exterior. El compartimiento posterior tambin posee una compuerta para acceder a los
circuitos en caso de necesitar efectuar reparaciones. Las dimensiones totales del gabinete son
67x33x30 cm.
-
8/2/2019 Diseo y Control del Pndulo Invertido
20/142
Captulo 2 Diseo del Pndulo Invertido
6
Figura 2.3: Fotografa del Conjunto Mecnico
-
8/2/2019 Diseo y Control del Pndulo Invertido
21/142
Captulo 2 Diseo del Pndulo Invertido
7
2.2. Diseo de la Electrnica
Como se dijo anteriormente, la funcin de los circuitos electrnicos del equipo es solamente la de
crear un vinculo entre la PC y la parte mecnica, a travs de los sensores, el puente H y el motor.
En la figura 2.4 puede apreciarse un esquema general de la arquitectura electrnica elegida.
Figura 2.4: Esquema general de la arquitectura electrnica
El esquema utiliza dos microcontroladores: el microcontrolador Maestro se encarga de realizar las
comunicaciones USB [8] con la PC y controlar el motor mediante el puente H, mientras que la tarea
de administrar los encoders de posicin y de ngulo se delega a un microcontrolador Esclavo por
razones que se explican en la Seccin 2.2.3.
2.2.1. Microcontroladores
Para la implementacin del microcontrolador maestro, se decidi utilizar el microcontrolador
PIC18F4550 [9] principalmente por su capacidad para la conexin USB. El mismo pertenece a la
familia de microcontroladores de alta gama PIC18F y posee una serie de caractersticas que lo
hacen ideal para esta aplicacin:
-
8/2/2019 Diseo y Control del Pndulo Invertido
22/142
Captulo 2 Diseo del Pndulo Invertido
8
Conexin al puerto USB Modulo PWM Terminales para la programacin in-circuit (ICSP) 32KB de memoria de programa Flash 2KB de memoria RAM Reloj de hasta 48 MHz (12 MIPS) 35 pines de entradas y salidas, distribuidas en 5 puertos (A, B, C, D y E)
Figura 2.5: Pinout del microcontrolador utilizado [9]
Para la implementacin del microcontrolador esclavo, se decidi utilizar el mismo
microcontrolador, por cuestiones de simplicidad. Esto hizo ms fcil la tarea de programacin ya
que los programas de maestro y esclavo podan compartir las mismas libreras y configuraciones.
Adems, si se desea disponer de un stock de repuestos para el equipo solo hace falta comprar un
microcontrolador y no dos diferentes.
En la Tabla 5 del ANEXO V se detalla la funcin de cada uno de los puertos y pines utilizados del
microcontrolador Maestro y Esclavo.
-
8/2/2019 Diseo y Control del Pndulo Invertido
23/142
Captulo 2 Diseo del Pndulo Invertido
9
2.2.2. Encoders
Los encoders angulares disponibles en el mercado, adems de costosos y voluminosos, tienen una
resolucin muy baja, llegando hasta 100 niveles por revolucin como mximo. Por esta razn se
decidi la fabricacin de un encoder casero hecho a medida.
La configuracin elegida fue la de encoder ptico incremental en cuadratura, por su simplicidad,
precisin y bajo rozamiento. El mismo consiste de un disco de material transparente sobre el cual se
encuentra impreso un patrn de franjas equiespaciadas. Dicho disco, solidario al pndulo,
interrumpe alternativamente un haz de luz infrarroja, que emite un diodo LED sobre un fotodiodo
receptor doble. Con un dimetro de 114 mm se pueden disponer 256 franjas sobre el permetro del
disco (512 flancos) lo que, con los sensores en cuadratura, permite discriminar hasta 1024 niveles
por revolucin. Los sensores en cuadratura, adems de duplicar la resolucin, permiten discernir el
sentido de giro del disco.
Figura 2.6: Discos transparentes con franjas equiespaciadas
Se utiliz un fotodiodo doble, que incluye los dos fotodiodos en un mismo encapsulado. Con esta
disposicin los fotodiodos se encuentran muy cerca uno del otro, lo que permite discernir patrones
de lneas muy finas, del orden de 0,5 mm.
-
8/2/2019 Diseo y Control del Pndulo Invertido
24/142
Captulo 2 Diseo del Pndulo Invertido
10
Como la fotocorriente de los fotodiodos es muy baja, del orden de los 50uA, es necesario
amplificarla. Esto se logra mediante el circuito de la figura 2.7, el cual normaliza las seales de los
fotodiodos a los valores lgicos de 0 y 5 V
Figura 2.7: Circuito amplificador de los fotodiodos de los encoders
A medida que el disco gira, se generan dos seales de onda cuadrada a la salida del circuito. Estas
seales se leen por el microcontrolador como palabras de dos dgitos. Conociendo la palabra
presente y la anterior, se puede determinar si hubo cambios en la posicin del disco usando la Tabla
1. Usando esta tabla, el microcontrolador incrementa o decrementa un contador interno, de esta
forma se puede conocer en todo momento la posicin del disco.
Figura 2.8: Disposicin esquemtica del
disco ranurado y los fotodiodos
Figura 2.9: Seales generadas a la
salida del circuito amplificador
-
8/2/2019 Diseo y Control del Pndulo Invertido
25/142
Captulo 2 Diseo del Pndulo Invertido
11
Anterior Presente Resultado
00 001 +111 E
00
10 -100 -101 011 +1
01
10 E00 E01 -111 0
11
10 +100 +101 E11 -1
10
10 0
0 No hubo cambios+1 incremento-1 decremento
E - error
Tabla 1: Tabla de decisin en base a las seales de los fotodiodos
Debido a la simplicidad y gran desempeo del encoder angular fabricado para la medicin del
ngulo, se decidi utilizar la misma tcnica para la medicin de la posicin, instalando un encoder
angular en el eje del motor. En este caso la precisin angular no es un factor tan importante, como si
lo es, la gran velocidad de rotacin. Es entonces necesaria una reduccin de la resolucin angular
para evitar que se supere el ancho de banda del sensor. Al tener una resolucin angular mas baja, se
hace posible tambin la reduccin del dimetro del disco. Es por esto que se utiliz un disco de 35
mm de dimetro y 8 franjas, con lo que se obtiene una resolucin de 32 niveles por revolucin, lo
que equivale aproximadamente a una resolucin de 1 mm en la posicin.
Se realizaron algunos ensayos preliminares para verificar el correcto funcionamiento de los
encoders. Se midieron las seales de salida con un osciloscopio, bajo diferentes condiciones de
funcionamiento. Los resultados fueron completamente satisfactorios, algunos de ellos se muestran
en las figuras 2.10 y 2.11.
-
8/2/2019 Diseo y Control del Pndulo Invertido
26/142
Captulo 2 Diseo del Pndulo Invertido
12
Figura 2.10: Pndulo girando a 232RPM Figura 2.11: Motor girando a 5640 RPM
2.2.3. Arquitectura Maestro-Esclavo
Debido a que los encoders usados son del tipo incremental, estos requieren constante atencin por
parte del microcontrolador. Es necesario que las seales provenientes del encoder sean actualizadas
por lo menos una vez cada 10us para evitar que el disco avance dos niveles y perder as el valor de
referencia. El microcontrolador maneja la comunicacin USB mediante interrupciones, es decir que
puede ser retirado de sus tareas habituales para atender tareas correspondientes a la comunicacin.
Se hace imposible entonces garantizar la adecuada atencin a los encoders usando un solo
microcontrolador.
Para resolver este inconveniente se decidi utilizar dos microcontroladores en configuracin
Maestro-Esclavo. El microcontrolador Maestro se encarga de todas las tareas necesarias para el
funcionamiento del sistema excepto la de atender peridicamente a los encoders. Esta funcin se
delega al microcontrolador Esclavo el cual se encarga de leer peridicamente las seales de los
encoders, actualizar los contadores segn la Tabla 1 y de entregarle la informacin correspondiente
al microcontrolador Maestro cuando ste la solicite.
-
8/2/2019 Diseo y Control del Pndulo Invertido
27/142
Captulo 2 Diseo del Pndulo Invertido
13
2.2.4. Protocolo Paralelo
Para establecer una comunicacin rpida y segura entre los microcontroladores maestro y esclavo,
se decidi disear un protocolo paralelo especial, interconectando los pines de los puertos B y D de
ambos microcontroladores (ver ANEXO V). De esta forma el microcontrolador maestro puede leer
los datos desde los puertos, simulando ser un registro de memoria interno.
Se incluyeron dos pines (RC6 y RC7) para actuar como banderas en la comunicacin. Una bandera
solicita el envi del datox (posicin del carro), mientras la otra solicita el envo del datof (ngulo
de desviacin del pndulo). En caso de que las dos banderas se encuentren bajas, el esclavo no
escribe datos nuevos en los puertos, lo que permite una lectura segura por parte del maestro.
En la Figura 2.12 se observan las conexiones fsicas entre los pines de ambos microcontroladores.
Los pines de datos se encuentran cruzados para evitar puentes en el circuito impreso (PCB). La
reinversin de los datos se realiza mediante software en el microcontrolador maestro.
Figura 2.12: Conexiones fsicas entre los pines de los microcontroladores Maestro y Esclavo
La secuencia de eventos que ocurren durante una transferencia de datos se observa en la figura 2.13.
Inicialmente el microcontrolador maestro solicita el envi del dato x levantando la bandera 1. El
microcontrolador esclavo responde en un tiempo de hasta 5 us, escribiendo los datos en el puerto.
Luego de 8 us de levantada la bandera 1 el microcontrolador maestro la baja y lee los datos del
puerto. La secuencia se repite idnticamente para leer el datofcon la Bandera 2.
-
8/2/2019 Diseo y Control del Pndulo Invertido
28/142
Captulo 2 Diseo del Pndulo Invertido
14
Figura 2.13: Secuencia de eventos durante una trasferencia de datos entre el microcontrolador Maestro y Esclavo
La lectura de ambos datos se completa 24 us luego de iniciada la transferencia.
2.2.5. Lmites de Carrera
Para evitar que el carro, en su movimiento horizontal, colisione con alguno de los extremos del riel,
se aadieron lmites de carrera pticos a ambos lados del mismo. Los mismos consisten
simplemente de un diodo LED infrarrojo enfrentado con un fototransistor y la seal del mismo se
conecta a dos pines (RB6 y RB7) del microcontrolador.
Una subrutina especial dentro del microcontrolador Maestro se encarga de revisar peridicamente el
estado de los lmites de carrera y desactivar el motor en caso de que sea necesario.
Estos lmites de carrera se usan, adems, para determinar la posicin absoluta del carro al momento
de encender el equipo (ver seccin 2.2.11.).
2.2.6. Comunicacin USB
Se decidi utilizar el Bus USB para la comunicacin entre el microcontrolador maestro y la PC
debido a su gran aceptacin y masivo uso. De esta forma se puede controlar el pndulo y realizar
experimentos desde cualquier PC de escritorio o notebook.
-
8/2/2019 Diseo y Control del Pndulo Invertido
29/142
Captulo 2 Diseo del Pndulo Invertido
15
Este protocolo permite el envo de paquetes de datos desde la PC, y permite, a continuacin, recibir
una respuesta desde el microcontrolador. De esta forma se puede enviar, en un paquete, la seal de
control en un instante dado, y recibir luego las lecturas de los sensores. Desde la PC, todo el
conjunto electrnico-mecnico que conforma el pndulo, es visto como un sistema dinmico de una
entrada y dos salidas.
El modo de operacin escogido es el de BULK TRANSFER debido a su capacidad para transmitir
paquetes de datos a altas velocidades. Para la programacin del microcontrolador se utilizaron las
libreras provedas por CCS (Custom Computer Services Inc.) [10] para trabajar en conjunto con la
librera mpusbapi.dll de MICROCHIP [11]. Estas libreras fueron modificadas de acuerdo a las
necesidades de la aplicacin, cambiando los tamaos de los buffer y los descriptores del dispositivo
( VID 0x04D8 PID 0x1011 ). Para la programacin de la interfaz de PC se utiliz la librera
_mpusbapi.h provista por MICROCHIP, la cual permite acceder al puerto USB desde el cdigo de
programacin en MATLAB[12].
En la figura 2.14 se observa un esquema de la trama de 8 bytes utilizada en la comunicacin USB.
Figura 2.14: Trama USB
Variable Tamao Descripcin Valores
us 1 byte Signo de la seal de control de 0 a 1
u1-u0 2 bytes Amplitud de seal de control de 0 a 1024
f1-f0 2 bytes ngulo de desviacin del pndulo de 0 a 1024
x1-x0 2 bytes Posicin del carro de 0 a 1024
lim 1 byte Estado de los limites de carrera de 0 a 2
Tabla 2: Descripcin de los Bytes de la trama USB
-
8/2/2019 Diseo y Control del Pndulo Invertido
30/142
Captulo 2 Diseo del Pndulo Invertido
16
2.2.7. Puente H
Una vez recibida la seal de control desde la PC, es necesario aplicarla al motor. Una forma de
hacer esto es a travs de un puente H, utilizando una seal PWM. La figura 2.15 muestra la
disposicin adoptada. La misma consiste de 4 MOSFET canal-N (IRF540) [13] (Q1 Q2 Q3 Q4) y 2
MOSFET canal-P (IRF9530) [14] (Q5 Q6).
Figura 2.15: Circuito esquemtico del Puente H
El sentido de giro positivo se habilita aplicando 5V sobre el borne G4 y la seal PWM sobre el
borne G1. El sentido de giro negativo se habilita aplicando 5V sobre el borne G3 y la seal PWM
sobre el borne G2. En ambos casos, los bornes restantes se ponen a masa para evitar cortocircuitos.
La seal PWM se genera utilizando los mdulos especiales que incorpora el microcontrolador a tal
fin. La frecuencia base escogida es de 11,7 khz y el ciclo de trabajo se establece a partir del valor
absoluto de la seal de control.
-
8/2/2019 Diseo y Control del Pndulo Invertido
31/142
Captulo 2 Diseo del Pndulo Invertido
17
2.2.8. Fuente de alimentacin
Por razones de simplicidad y conveniencia, se decidi utilizar una fuente de PC estndar. La misma
provee los 5V necesarios para la alimentacin de toda la electrnica y los 12V para la alimentacin
del motor.
2.2.9. Placa de Circuito Impreso
Para la implementacin fsica del circuito se fabric una placa de circuito impreso (PCB), en la cual
se incluyen los dos microcontroladores, el puente H, los conectores de alimentacin y el Puerto
USB. La misma puede verse en la figura 2.16. Se aadieron dos conectores ICSP para poder
programar los microcontroladores. Por una cuestin de reduccin de ruido, los circuitos
amplificadores de los encoders se ubican en placas separadas, junto con los fotodiodos, y se
conectan a la placa principal por medio de dos conectores IDC-10.
Figura 2.16: Placa de Circuito Impreso
-
8/2/2019 Diseo y Control del Pndulo Invertido
32/142
Captulo 2 Diseo del Pndulo Invertido
18
2.2.10. Software
La estructura del software implementado en el microcontrolador se muestra en la figura 2.17.
Figura 2.17: Estructura del software implementado en el microcontrolador Maestro
A continuacin se describen brevemente cada una de las funciones y subrutinas que aparecen en la
figura anterior:
inicializacion: se encarga de configurar, los puertos, los pines, los contadores y todas las
variables necesarias para el funcionamiento del equipo.
usb_task: es una rutina que debe ejecutarse peridicamente, incluye tareas necesarias para
la operacin del puerto USB.
-
8/2/2019 Diseo y Control del Pndulo Invertido
33/142
Captulo 2 Diseo del Pndulo Invertido
19
usb_kbhit: es una funcin que verifica si se envi un paquete de datos desde la PC.
usb_get_packet: es una funcin que recibe la trama de datos desde la PC y la almacena en
variables internas del microcontrolador.
datos: es una subrutina que se encarga de realizar la comunicacin con el microcontrolador
esclavo, obtiene las lecturas de los encoders y las almacena en variables internas del
microcontrolador
usb_put_packet: es una subrutina que enva los datos ledos de los encoders por el puesto
USB, contestando el mensaje transmitido por la PC.
pwm: es una subrutina que se encarga de aplicar la seal de control sobre el motor,
actualizando el ciclo de trabajo de los mdulos PWM.
limites: es una subrutina que se encarga de revisar el estado de los lmites de carrera y
detener el motor en caso de que sea necesario, para evitar una colisin del carro con los
lmites del riel.
El cdigo fuente del bucle principal y de las subrutinas puede verse en el ANEXO III.
2.2.11. Rutinas de inicializacin
Debido a la configuracin incremental de los encoders es necesario conocer el valor inicial de los
parmetros del ngulo y la posicin.
En el caso del ngulo, si el equipo se pone en funcionamiento mientras se encuentra detenido, esfactible suponer que el pndulo se encuentra en la posicin vertical inferior. El valor inicial
escogido ser entonces depi radianes, pudiendo determinar luego el valor del ngulo en cualquier
momento a partir de los incrementos detectados.
En el caso de la posicin del carro, en cambio, es imposible conocer directamente la posicin inicial
del mismo en el momento de la puesta en funcionamiento del equipo. Para resolver este problema,
se incluy una rutina especial a tal fin en las rutinas de inicializacin. La misma aplica una seal de
-
8/2/2019 Diseo y Control del Pndulo Invertido
34/142
Captulo 2 Diseo del Pndulo Invertido
20
control constante sobre el motor haciendo que el mismo se desplace hacia uno de los extremos de su
recorrido. El carro contina este movimiento hasta accionar el lmite de carrera correspondiente, en
ese momento el carro se encontrar en uno de los extremos de su recorrido y se asigna entonces el
valor inicial -1 en la posicin.
Figura 2.18: Rutina de inicializacin para determinar la posicin inicial del carro
-
8/2/2019 Diseo y Control del Pndulo Invertido
35/142
Captulo 2 Diseo del Pndulo Invertido
21
2.3. Interfaz en MATLAB
La interfaz de PC consiste simplemente de un programa principal y una serie de subrutinas,
implementadas en el editor de MATLAB. El mismo, como se mencion anteriormente, permite
acceder al puerto USB mediante el uso de la librera _mpusbapi.h, provista por MICROCHIP [11].
2.3.1. Subrutinas
Para simplificar la programacin y operacin de la interfaz se agrup el cdigo necesario en tres
subrutinas.
usb_start.m incluye todo el cdigo necesario para cargar las libreras, declarar e inicializarlas variables, e iniciar la comunicacin USB,
usb_com.m incluye todo el cdigo para enviar la seal de control al microcontrolador,recibir su respuesta y normalizar las variables. Tambin se encarga de realizar una pausa de
h segundos.
usb_stop.m incluye todo el cdigo para finalizar la comunicacin, descargar las libreras yliberar la memoria.
2.3.2. Estructura
Con las subrutinas antes descriptas, se arm una estructura de cdigo, simple y efectiva, en la cual
se puede insertar cualquier cdigo de control.
-
8/2/2019 Diseo y Control del Pndulo Invertido
36/142
Captulo 2 Diseo del Pndulo Invertido
22
Figura 2.19: Diagrama de Flujo y Cdigo Fuente de la estructura principal
2.3.3. Normalizacin de las Variables
Para trabajar de forma ms cmoda, se normalizaron las variables del sistema a valores
adimensionales dentro de los siguientes rangos:
1)(1 ku
1)(1 kx
)(k
2.3.4. Perodo de muestreo
Para averiguar la frecuencia de muestreo mxima admisible, se realizaron ensayos para determinar
los tiempos demora en la comunicacin USB, es decir, cuanto tiempo se tarda en enviar una trama
de 8 bytes al microcontrolador y recibir su respuesta. Los resultados se muestran en la Figura 2.20,
en la cual se observa un histograma de los tiempos de demora para 1000 iteraciones.
-
8/2/2019 Diseo y Control del Pndulo Invertido
37/142
Captulo 2 Diseo del Pndulo Invertido
23
Figura 2.20: Histograma de Tiempos de demora en la comunicacin USB
Se realiz un anlisis estadstico que revel una media de 1.2ms y una desviacin estndar de
0.6ms, aunque con valores pico de hasta 16ms.
Para que la frecuencia de muestreo sea estable, es necesario incluir una demora en el bucle principal
del programa, de forma que dicho bucle se ejecute una vez por cada perodo de muestreo. Para esto
se hizo uso de los comandostic ytoc. El comandotoc simplemente devuelve el tiempo transcurrido
a partir del ltimo comando tic. En la figura 2.21 se muestra el diagrama de flujo del segmento de
cdigo utilizado para realizar la demora. Esta demora se incluy en la subrutina usb_com.m. De
esta forma, siempre transcurre un perodo de tiempo h entre cada comunicacin con el
microcontrolador.
Figura 2.21: Diagrama de flujo del cdigo de demora
-
8/2/2019 Diseo y Control del Pndulo Invertido
38/142
Captulo 2 Diseo del Pndulo Invertido
24
Para que los tiempos de demora de la comunicacin USB no influyan negativamente en la
estabilidad de la frecuencia de muestreo, el tiempo h debe ser mayor que el valor pico de dichos
tiempos de demora. Es por esto que se eligi un tiempo h de 0.02 s. Este es el perodo de muestreo
utilizado siempre, de ahora en adelante.
2.3.5. Linealizacin del motor
Se detect un comportamiento no lineal del motor, presentando una zona muerta para valores bajos
de la seal de control. Se realizaron ensayos adicionales para determinar la respuesta del motor en
funcin de la seal de control. Para esto se inyectaron pulsos de 200 ms de duracin, y amplitud
variable, a la entrada del sistema, y se midi el desplazamiento total del carro para cada pulso.
Figura 2.22: Respuesta no lineal del motor
Luego se elabor un algoritmo que reduce la alinealidad, aplicando una funcin lineal a trozos
especialmente definida. La funcin tiene tres tramos y diferentes pendientes para cada uno de ellos.
El cdigo implementado es el siguiente
-
8/2/2019 Diseo y Control del Pndulo Invertido
39/142
Captulo 2 Diseo del Pndulo Invertido
25
donde u0 es la seal deseada, proveniente del controlador y u1 es la seal linealizada que se habr
de aplicar al motor. En la figura 2.23 se observa una grfica de dicha funcin y en la figura 2.24 se
muestra la respuesta que se obtiene luego de aplicar la funcin linealizadora a la seal de control. Se
ve claramente una respuesta ms lineal.
Figura 2.23: Funcin linealizadora a trozos Figura 2.24: Respuesta linealizada
-
8/2/2019 Diseo y Control del Pndulo Invertido
40/142
Captulo 2 Diseo del Pndulo Invertido
26
-
8/2/2019 Diseo y Control del Pndulo Invertido
41/142
Captulo 3 Modelado e Identificacin
27
Captulo 3 - Modelado e Identificacin
Este capitulo estar dedicado a la determinacin de un modelo matemtico para el pndulo
invertido, y a la determinacin de sus parmetros, los cuales sern luego necesarios para el diseo
del controlador en el Captulo 4.
3.1. Modelado
Se considerar para el anlisis, un modelo simplificado en el cual, el pndulo es representado por un
cuerpo rgido, montado sobre una articulacin sin rozamiento. Se desprecia tambin el rozamiento
del pndulo con el aire.
Debido a que la masa del motor y del carro es mucho mayor que la masa del pndulo,
consideraremos despreciables los efectos del movimiento del pndulo sobre el carro. De esta forma
se simplifica el trabajo de modelado, ya que podemos modelar el pndulo y el carro por separado,
para luego acoplarlos como dos sistemas en serie.
Figura 3.1: Modelo en Cascada
Esta simplificacin se verifica de una forma sencilla, ya que si le damos un impulso al pndulo y lo
hacemos girar libremente, no se observa movimiento en el carro.
-
8/2/2019 Diseo y Control del Pndulo Invertido
42/142
Captulo 3 Modelado e Identificacin
28
3.1.1. Modelado del pndulo invertido
En la figura 3.2 vemos el modelo del pndulo simplificado en donde las nicas fuerzas que actan
sobre el mismo son las correspondientes a la gravedad y a la aceleracin horizontal del carro.
Figura 3.2: Modelo Simplificado del Pndulo Invertido
Aplicando las leyes de la mecnica clsica [15] obtenemos
cosxmsenmgJ
Haciendo las aproximaciones sen y 1cos llegamos a
J mg mx
Estas ltimas aproximaciones son validas nicamente cuando el pndulo se encuentra muy cerca de
su posicin vertical superior. Luego, aplicando transformada de Laplace, puede obtenerse la funcin
de transferencia entre la aceleracin horizontal y el ngulo de desviacin del pndulo.
2 2s J mg s mx
J
mgs
J
m
sx
2
2
Escrito en forma compacta
2
2
s dc
x s c
Donde c y d son parmetros a determinar mediante la identificacin.
-
8/2/2019 Diseo y Control del Pndulo Invertido
43/142
Captulo 3 Modelado e Identificacin
29
3.1.2. Modelado del pndulo no invertido
Cuando el pndulo se encuentra en la posicin vertical inferior, ya no son validas las
aproximaciones hechas anteriormente. Es necesario entonces recalcular el modelo, cambiando el
origen de medicin del ngulo . La nueva variable cuyo origen es el eje vertical inferior, la
llamaremos *.
Figura 3.3: Modelo Simplificado del Pndulo No Invertido
Aplicando nuevamente las leyes de la mecnica clsica, obtenemos
* * cos * J mg sen mx
Se puede demostrar que la funcin de transferencia resulta
2
2
* s dc
x s c
La diferencia entre ambos sistemas corresponde a una inversin en el signo del parmetro c . Esto
es equivalente a una rotacin de 90 en la ubicacin de los polos y una inversin del signo en la
ganancia.
Figura 3.4: Ubicacin de polos y ceros para el pndulo invertido (izq.) y el pndulo no invertido (der.)
-
8/2/2019 Diseo y Control del Pndulo Invertido
44/142
Captulo 3 Modelado e Identificacin
30
3.1.3. Modelado del Motor
El circuito equivalente de un motor de corriente continua consiste de una fuente electromotriz,
proporcional a la velocidad de giro del motor, en serie con la resistencia interna del devanado.
Figura 3.5: Modelo Simplificado del motor de CC
De aqu tenemos que
R
kVi i
1
Tambin sabemos que la cupla motora es proporcional a la corriente y que la aceleracin angular es
proporcional a la cupla motora menos el rozamiento (que se considera proporcional a la velocidad
angular).
ikm 2 3kr rmJ
remplazando obtenemos
3122 k
R
kkV
R
kJ i
aplicando transformada de Laplace
iVskR
kksJs
k
R
3
122
2
312
2
kR
kksJRs
k
Vi
-
8/2/2019 Diseo y Control del Pndulo Invertido
45/142
Captulo 3 Modelado e Identificacin
31
Como el ngulo del motor es proporcional a la posicin del carro y la tensin de entrada es
proporcional a la seal de control, resulta
312
24
kR
kksJRs
kk
u
x
o en forma compacta
x ba
u s s a
Donde a y b son parmetros a determinar mediante la identificacin.
3.1.4. Modelo Completo
A partir de estas funciones de transferencia podemos armar un sistema multi-variable, con una
entrada y dos salidas. En la figura 3.6 se observan dos posibles formas de representacin del sistema
en diagramas de bloques.
Figura 3.6: Posibles representaciones del sistema en diagramas de bloques
Tambin es posible expresar el sistema como un sistema de cuarto orden en variables de estado
( ) 0 0 0 ( )
( ) 1 0 0 0 ( ) 0( )
( ) 0 0 ( )
( ) 0 0 1 0 ( ) 0
x t a x t ba
x t x t u t
t dca c t badc
t t
)()(
)(
)(
1000
0010)(
tt
tx
tx
ty
-
8/2/2019 Diseo y Control del Pndulo Invertido
46/142
Captulo 3 Modelado e Identificacin
32
o en forma compacta
)()()( tuBtXAtX
)()( tXCty
donde )(ty representa el vector de salidas
)(
)(
t
tx
3.1.5. Discretizacin
Visto desde la computadora, debido a la forma discreta de medir y aplicar la seal de control, el
sistema se ve como un sistema discreto. Existen varias tcnicas para derivar un modelo discreto del
sistema a partir del modelo continuo de forma analtica [16], pero debido al alto grado de
complejidad, inherente a un sistema de cuarto orden, la discretizacin se realiz en forma numrica
mediante la funcin c2d de MATLAB.
El tipo de discretizacin utilizado es la discretizacin con mantenedor de orden cero, la cual
consiste en suponer que la entrada se mantiene constante durante todo el perodo de muestreo (lo
cual es cierto en esta aplicacin). La misma es exacta en el sentido de que todas las variables de
estado de ambos sistemas (continuo y discreto) coinciden en el instante de muestreo. De esta forma
se obtiene un sistema discreto equivalente al continuo.
)(
)(
)(
)(
)(
)1(
)1(
)1(
)1(
4
3
2
1
44434241
34333231
24232221
14131211
ku
k
k
kx
kx
k
k
kx
kx
)(
)(
)(
)(
1000
0010)(
k
k
kx
kx
ky
o en forma compacta
)()()1( kukXkX
)()( kXCky
-
8/2/2019 Diseo y Control del Pndulo Invertido
47/142
Captulo 3 Modelado e Identificacin
33
3.2. Identificacin Mediante Simulacin
Para la identificacin de los parmetros del sistema se implement un algoritmo en MATLAB para
simular respuestas de sistemas y compararlas, mediante una funcin de costo cuadrtico, con la
respuesta del sistema real. En la Figura 3.7 se puede ver un diagrama en bloques del algoritmo.
Figura 3.7: Diagrama en bloques del algoritmo de Identificacin por Simulacin
Existen muchos algoritmos de minimizacin basados en este criterio, como por ejemplo los que se
describen en [17]. En este trabajo se utiliz el mtodo de la grilla que, si bien tiene un alto costo
computacional, nos garantiza encontrar la solucin con una precisin arbitraria. El mismo se
describe a continuacin.
-
8/2/2019 Diseo y Control del Pndulo Invertido
48/142
Captulo 3 Modelado e Identificacin
34
3.2.1. Identificacin de la Funcin de Transferencia del Motor
Para empezar, se defini una entrada arbitraria )(ku y se ejecut el equipo para obtener la respuesta
real del sistema a dicha entrada.
Figura 3.8: Respuesta real del sistema ante una entrada pulso
Luego, se defini arbitrariamente una grilla inicial de valores para los parmetros a y b, cubriendo
una regin de inters
Figura 3.9: Grilla de valores para los parmetros a y b
Posteriormente se utiliz la funcin filter de MATLAB para simular un conjunto de respuestas )( kx
de sistemas del tipo
ba
s s apara cada par de valores (a, b) dentro de la grilla.
-
8/2/2019 Diseo y Control del Pndulo Invertido
49/142
Captulo 3 Modelado e Identificacin
35
A continuacin se calcul, para cada par de valores (a, b), el valor de la sumatoria del error
cuadrtico entre la respuesta real y la respuesta simulada.
22 )()(),( kxkxbae
Finalmente de se seleccion el par (a, b) que produce el error mnimo utilizando la funcin min de
MATAB.
Debido a que este es un problema cuadrtico lineal, est garantizado que es convexo y por lo tanto
tiene un solo mnimo. Consecuentemente, si el error mnimo se encuentra en el interior de la grilla,
esta asegurado que el mismo es la solucin del problema. El algoritmo puede luego repetirse
reduciendo el rango de variacin de la grilla, para obtener estimaciones de mayor exactitud.
Por otro lado, si el mnimo se encuentra sobre el borde de la grilla, significa que la solucin puede
encontrarse fuera de la misma, por lo tanto habr que redefinir la grilla con rangos de variacin ms
amplios para repetir los clculos.
Algunos de los resultados obtenidos pueden verse en las Figuras 3.10 y 3.11
Figura 3.10: Error cuadrtico en
funcin de los parmetros a y b
Figura 3.11: Contornos de la funcin de error
cuadrtico alrededor del punto mnimo
El par de parmetros que produjeron el error mas bajo fueron 3.25a y 98.5b
-
8/2/2019 Diseo y Control del Pndulo Invertido
50/142
Captulo 3 Modelado e Identificacin
36
3.2.2. Identificacin de la Funcin de Transferencia del pndulo
Una vez identificados los parmetros del motor, se procedi con la identificacin de los parmetros
del pndulo. Debido a que resulta demasiado complicada la identificacin del pndulo en la
posicin superior (ya que es un sistema inestable), se realiz la identificacin del pndulo en la
posicin inferior (pndulo no invertido). Luego, ya que los parmetros son los mismos, se puede
obtener la funcin de transferencia del pndulo invertido realizando los correspondientes cambios
de signo. Debido a que
2
2
* s dc
x s c
y x ba
u s s a
la funcin de transferencia entere la seal de control y el ngulo de desviacin del pndulo resulta
2* s abcd
u s c s a
Luego, se procedi de la misma forma que en el caso anterior, esta vez para determinar los
parmetros c y d, con una funcin de transferencia de tercer orden
Figura 3.12: Respuesta real del Pndulo ante una entrada Pulso
En este caso, los parmetros obtenidos fueron 2.80c y 017.0d
-
8/2/2019 Diseo y Control del Pndulo Invertido
51/142
Captulo 3 Modelado e Identificacin
37
3.3. Identificacin Mediante Clculo Matricial
Otra forma de aplicar el mtodo de mnimos cuadrados, a la identificacin de los parmetros del
sistema, es mediante el clculo matricial [16] [17].
Supongamos que queremos identificar los parmetros de una funcin de transferencia discreta de
segundo orden
1 02
1 0
b z bx u
z a z a
A partir de una secuencia de entradas conocida u(k) y una secuencia de mediciones x(k) afectadas
por ruido.
La funcin de transferencia puede reescribirse en forma de ecuacin en diferencias, para calcular la
prediccin de x(k+1) dados los datos hasta el instante k
1 0 1 0( 1) ( ) ( 1) ( ) ( 1)x k a x k a x k b u k b u k
O en forma matricial
1
0
1
0
( 1) ( ) ( 1) ( ) ( 1)
a
ax k x k x k u k u k
b
b
Repitiendo recursivamente, obtenemos
1
0
1
0
(2) (1) (0) (1) (0)(3) (2) (1) (2) (1)
(4) (3) (2) (3) (2)
a x x x u ua x x x u u
b x x x u u
b
Y
El conjunto de parmetros que mejor se ajusta a los datos, es el que minimiza la sumatoria del
cuadrado del error de prediccin
-
8/2/2019 Diseo y Control del Pndulo Invertido
52/142
Captulo 3 Modelado e Identificacin
38
2 2 ( ) ( ( ) ( )) ( ) ( ) ( ) ( )T Tk
e x k x k Y Y Y Y Y Y
El mnimo se obtiene igualando a cero la expresin de la derivada del error
2 ( ) ( ) ( ) 0T Te Y Y
( ) 0T Y
1 ( )T TY
Usando esta expresin es posible calcular una estimacin de los parmetros del sistema discreto a
partir de los datos experimentales u(k) y x(k).
3.3.1. Identificacin de la Funcin de Transferencia del motor
El proceso de identificacin de la funcin de transferencia del motor comienza inyectando una seal
de prueba al equipo, en este caso una seal binaria pseudo-aleatoria, y registrndose los datos de
salida.
Figura 3.13: Entradas u(k) y salidas x(k) para una seal de prueba binaria pseudo-aleatoria
-
8/2/2019 Diseo y Control del Pndulo Invertido
53/142
Captulo 3 Modelado e Identificacin
39
A continuacin se ensamblan las matrices Y y siguiendo la forma
(3) (2) (1) (2) (1)
(4) (3) (2) (3) (2)(5) (4) (3) (4) (3)
x x x u u
x x x u uY
x x x u u
El vector de parmetros se calcula como
1
1.2024
0.20240.0391
0.0299
T TY
20.0391 0.0299
1.202 0.202
zx u
z z
A partir de estos resultados es posible calcular el modelo continuo equivalente utilizando la funcin
d2c de MATLAB, con lo cual se obtiene
0.423 816.6
79.89 0.003
sx u
s s
Haciendo algunas simplificaciones llegamos a
345.4
79.89x u
s s
79.9 4.32a b
3.3.2. Identificacin de la Funcin de Transferencia del Pndulo
El mismo procedimiento puede aplicarse para la identificacin de la funcin de transferencia delpndulo, esta vez con una funcin de transferencia de tercer orden. Al igual que en la seccin 3.2.2.
la identificacin se realiza con el pndulo en la posicin inferior, por lo que se trabajar con la
variable de salida *( )k .
Se inicia el experimento con el pndulo en la posicin inferior y se aplica la seal de prueba binaria
pseudo-aleatoria. En la Figura 3.14 vemos el comportamiento de *( )k al aplicar la seal de
prueba.
-
8/2/2019 Diseo y Control del Pndulo Invertido
54/142
Captulo 3 Modelado e Identificacin
40
Figura 3.14: Entradas u(k) y salidas *(k) para una seal de prueba binaria pseudo-aleatoria
A continuacin se ensamblan las matrices Y y siguiendo la forma
*(4) *(3) *(2) *(1) (3) (2) (1)
*(5) *(4) *(3) *(2) (4) (3) (2)
*(6) *(5) *(4) *(3) (5) (4) (3)
u u u
u u uY
u u u
Y se calcula vector de parmetros como
1 T TY
Obteniendo as
2.099
1.266
0.1380.051
0.0005
0.0471
2
3 20.051 0.0005 0.047*
2.099 1.267 0.138z z u
z z z
A partir de estos resultados se calcula el modelo continuo equivalente utilizando la funcind2c de
MATLAB, con lo cual se obtiene
21.58 355.5 1.716* 98.6 0.296 85.03s s us s s
-
8/2/2019 Diseo y Control del Pndulo Invertido
55/142
Captulo 3 Modelado e Identificacin
41
Despreciando algunos trminos de menor valor, llegamos a
2561.7
*98.6 85.03
su
s s
De donde pueden extraerse los valores de los parmetros
98.6 85.03 0.016a c d
3.3.3. Identificacin del Sistema en Variables de Estado
El mtodo de Mnimos Cuadrados mediante Clculo Matricial puede extenderse a la identificacin
de sistemas en variables de estado.
A partir del modelo del sistema en Variables de Estado
)()()1( kukXkX
Podemos expresar la prediccin de x(k+1) a partir de los datos hasta el instante k, de la siguiente
forma
( 1) ( ) ( )T
T T T
T X k X k u k
Luego, repitiendo recursivamente, tenemos que
(1) (0) (0) (1) (1)(2)
(2) (2)(3)
T T T
T T TT
T T TT
X X u
X uX
X uX
Y
-
8/2/2019 Diseo y Control del Pndulo Invertido
56/142
Captulo 3 Modelado e Identificacin
42
A partir de ahora, es posible aplicar el mtodo de Mnimos Cuadrados, de la misma forma que en
los casos anteriores. Suponiendo que todos los estados y las entradas son conocidos, la matriz de
parmetros puede estimarse mediante
1 T TY
De donde pueden extraerse la estimacin de la matriz de transicin y del vector de entadas del
sistema bajo identificacin.
T
T
Las variables de estado ( )x k y ( )k son directamente medibles y sus valores son conocidos. Por
otro lado ( )x k y ( )k no lo son, pero pueden ser estimadas mediante un operador de derivacin,
por ejemplo:
( 1) ( 1)( )
2
x k x k x k
h
( 1) ( 1)( )
2
k kk
h
Al igual que en los casos anteriores, la identificacin se realiza con el pndulo en la posicin
inferior, por lo que se trabajar con la variable *( )k en lugar de ( )k . Se comienza inyectando
una seal de prueba pseudo-aleatoria u(k) al sistema, y registrando las salidas ( )x k y *( )k . Luego
se estiman los valores de ( )x k y * ( )k utilizando los operadores de derivacin. En la Figura 3.15
se muestran algunos de los valores registrados para ( )u k , ( )x k , ( )x k , *( )k y * ( )k durante un
ensayo de identificacin.
-
8/2/2019 Diseo y Control del Pndulo Invertido
57/142
Captulo 3 Modelado e Identificacin
43
Figura 3.15: Entradas y salidas del sistema para una seal de prueba binaria pseudo-aleatoria
A continuacin se ensamblan las matrices Y y siguiendo la forma
(1) (0) (0)
(2) (1) (1)
(3) (2) (2)
T T T
T T T
T T T
X X u
X X uY
X X u
Y se calcula la matriz de parmetros como
1 T TY
Obteniendo as
0.375 0.014 0.846 0.007
0.013 1.000 0.008 0.000
0.000 0.000 0.981 0.020
0.013 0.000 1.659 0.9831.978 0.027 2.809 0.037
-
8/2/2019 Diseo y Control del Pndulo Invertido
58/142
Captulo 3 Modelado e Identificacin
44
Luego
0.375 0.013 0.000 0.013
0.014 1.000 0.000 0.000
0.846 0.008 0.981 1.659
0.007 0.000 0.020 0.983
1.978
0.027
2.808
0.037
A partir de estos resultados se calcula el modelo continuo equivalente utilizando la funcind2c de
MATLAB, con lo cual se obtiene
49.01 0.985 0.058 0.963
1.126 0.006 0.000 0.008
66.69 0.918 0.062 83.99
0.204 0.007 1.006 0.012
A
155.07
0.078
218.2
0.019
B
Luego de hacer algunas simplificaciones, obtenemos
49.01 0 0 0
1 0 0 0
66.69 0 0 83.99
0 0 1 0
A
155.07
0
218.2
0
B
De donde, por comparacin con el modelo terico
( ) 0 0 0 ( )
( ) 1 0 0 0 ( ) 0( )
* ( ) 0 0 * ( )
* ( ) 0 0 1 0 * ( ) 0
x t a x t ba
x t x t u t
t dca c t badc
t t
Podemos extraer
49 3.16 84 0.016a b c d
-
8/2/2019 Diseo y Control del Pndulo Invertido
59/142
Captulo 3 Modelado e Identificacin
45
3.4. Identificacin Mediante Ensayo
Una vez conocidos los valores aproximados de los parmetros, es posible realizar una identificacin
ms fina realizando ensayos con el equipo.
Para esto, se asigna un valor al parmetro que se quiere determinar, se calcula el modelo y el
controlador (ver Captulo 4) en base a dicho valor, y luego se realiza el ensayo. Calculando la
varianza de x(k), es posible obtener una medida de en cuanto se ajusta el modelo al sistema real.
Repitiendo el ensayo para valores sucesivos del parmetro, es posible trazar una curva. El punto de
varianza mnima corresponder entonces al valor verdadero del parmetro en cuestin.
Figura 3.16: Varianza de x(k) en funcin de los parmetros a, b, c y d
Los parmetros obtenidos con este mtodo fueron
60a 4b 85c y 0.016d
-
8/2/2019 Diseo y Control del Pndulo Invertido
60/142
Captulo 3 Modelado e Identificacin
46
3.5. Comparacin de los Mtodos de Identificacin
En esta seccin se presentan los resultados obtenidos por los diferentes mtodos de identificacin y
se realiza una breve comparacin en base a los errores obtenidos con cada mtodo.
Si bien es posible calcular una cota de error para los parmetros discretos obtenidos mediante los
mtodos de identificacin por mnimos cuadrados [16], debido a la gran cantidad de clculos
involucrados, resulta prcticamente imposible realizar la propagacin de dicho error a los valores de
los parmetros continuos (a, b, c y d). Las cotas de error de dichos parmetros resultan entonces ser
desconocidas.
Por esta razn, se elige uno de los mtodos de identificacin (el de mejor desempeo) como mtodo
de referencia. Luego, la comparacin entre los diferentes mtodos de identificacin, se realiza
contrastando los resultados obtenidos contra los valores del mtodo de referencia.
El mtodo de Identificacin Mediante Ensayo (Seccin 3.4.) fue el que mostr el mejor desempeo
(minima varianza), por lo que los valores obtenidos con este mtodo se toman como valores de
referencia y se presumen como verdaderos.
-
8/2/2019 Diseo y Control del Pndulo Invertido
61/142
Captulo 3 Modelado e Identificacin
47
A continuacin se muestran resumidos en la Tabla 3, los resultados obtenidos con los diferentes
mtodos de identificacin. Al lado del valor de cada parmetro se presenta el error porcentual con
respecto al valor verdadero presunto.
a b c d
valor e% valor e% valor e% valor e%
Identificacin MedianteSimulacin
25.3 -58% 5.98 +49% 80.2 -4% 0.017 +6%
Clculo Matricial en
Funcin de Transferencia79.9 +33% 4.32 +8% 79.9 -4% 0.016 0%
Clculo Matricial en
Variables de Estado49 -18% 3.16 -21% 84 -1% 0.016 0%
Valor Verdadero Presunto 60 4 85 0.016
Tabla 3: Comparacin de los mtodos de identificacin
Podemos observar que el mtodo de Clculo Matricial en Variables de Estado presenta los menores
errores porcentuales, frente a los otros dos mtodos.
Vemos que los valores de los parmetros c y d fueron identificados prcticamente sin error por los
tres mtodos. Por otro lado, existe gran incertidumbre con respecto a los valores de los parmetros a
y b. Ensayos posteriores demostraron que existe una fuerte dependencia de estos dos parmetros
con el tipo de seal de prueba utilizada, lo que evidencia la persistencia de un comportamiento no
lineal en el motor. Se propone para trabajos futuros, la implementacin de un lazo de
realimentacin local, para reducir los efectos no lineales indeseados del motor.
-
8/2/2019 Diseo y Control del Pndulo Invertido
62/142
Captulo 3 Modelado e Identificacin
48
-
8/2/2019 Diseo y Control del Pndulo Invertido
63/142
Captulo 4 Control del Pndulo Invertido
49
Captulo 4 - Control del Pndulo Invertido
Este captulo estar dedicado al diseo e implementacin de diferentes controladores para el
pndulo invertido, as como tambin, del anlisis de su desempeo.
4.1. Control en Variables de Estado
4.1.1. Vector de Realimentacin
Dado un sistema discreto del tipo
)()()1( kukXkX
si aplicamos una realimentacin de la forma
)()( kXLku
donde L es un vector, obtenemos un sistema nuevo sistema, de lazo cerrado, sin entradas
)()()1( kXLkX
La matriz de transicin de este nuevo sistema es )( L . Escogiendo adecuadamente el vector L
se pueden ubicar arbitrariamente los autovalores de )( L y por lo tanto los polos del sistema de
lazo cerrado. Para esto es necesario que el sistema sea controlable.
Si los polos de lazo cerrado se ubican dentro del crculo unitario, el vector de estados converger a
cero, lo que implica que el pndulo tender a moverse hacia su posicin de equilibrio vertical
superior.
Existen muchos mtodos para calcular el vector de realimentacin L, algunos de ellos se describen
en la bibliografa citada [16]. Debido al alto grado de complejidad, inherente a un sistema de cuarto
orden, el calculo del vector L se realiz en forma numrica mediante la funcin place de
MATLAB.
-
8/2/2019 Diseo y Control del Pndulo Invertido
64/142
Captulo 4 Control del Pndulo Invertido
50
Para la implementacin de la realimentacin en variables de estado, primero es necesario conocer,
en tiempo real, el vector de estados del sistema. Como no todos los estados del sistema son
medibles, se hace necesaria la estimacin de los mismos mediante un Observador de Estados.
4.1.2 Observador de Estados
Un Observador de Estados es un algoritmo que estima los valores del vector de estados a partir de
los valores de las entradas y las mediciones de las salidas del sistema.
Un observador dinmico es un algoritmo que genera un sistema simulado, idntico al sistema real.
Si el sistema real y su simulacin son sometidos a la misma entrada, y tienen las mismas
condiciones iniciales, se puede esperar que, en todo momento, sus variables de estado sean las
mismas. De este modo, el estado interno de la simulacin se puede usar como una aproximacin del
estado interno del sistema real.
Figura 4.1: Observador de Estados Libre
En caso de que los dos sistemas no tengan las mismas condiciones iniciales (ya que estas
generalmente son desconocidas) si el sistema es estable, la influencia de las condiciones iniciales ir
disminuyendo a medida que pase el tiempo. Por lo tanto, si bien al principio tendrn valores
diferentes, las variables de estado de ambos sistemas terminarn convergiendo asintticamente a
medida que transcurra el tiempo.
Para acelerar la convergencia del estado del sistema simulado al estado del sistema real, se puede
estimular a la simulacin con una realimentacin del error entre la salida de los dos sistemas. Deeste modo, se logra modificar la dinmica del error de modo que converja ms rpido. Otra ventaja
-
8/2/2019 Diseo y Control del Pndulo Invertido
65/142
Captulo 4 Control del Pndulo Invertido
51
de esta configuracin es que hace posible estimaciones de estados en sistemas inestables, como es el
caso del pndulo invertido.
Figura 4.2: Observador de Estados Realimentado
Supongamos que se tiene un observador de la forma:
( 1) ( ) ( )X k X k u k K y k C X k
)( kX es la estimacin de )(kX y su diferencia es el error de estimacin:
)()()(~
kXkXkX
Restando la ecuacin del observador de la ecuacin del sistema
( 1) ( 1) ( ) ( ) ( ) ( )X k X k X k u k X k u k K y k C X k
Obtenemos
)(~)1(~ kXKCkX
Vemos que si se escoge K de forma que los polos de KC sean estables, el error de estimacin
siempre converger a cero sin importar sus condiciones iniciales. Para esto es necesario que el
sistema sea observable.
Los mtodos para el clculo del vector K son similares a los utilizados para el clculo del vector L,
algunos de ellos se describen tambin en la bibliografa citada [16]. Al igual que en el caso anterior,
el clculo del vector K se realiz en forma numrica mediante la funcinplace de MATLAB.
-
8/2/2019 Diseo y Control del Pndulo Invertido
66/142
Captulo 4 Control del Pndulo Invertido
52
Si en la ley de realimentacin, ahora se reemplaza los valores del vector de estados por su
estimacin, tenemos:
( ) ( )u k L X k
( ) ( ) ( )u k L X k X k
El sistema ahora incluye la dinmica del error. El sistema resultante puede expresarse como:
( 1) ( )
( 1) 0 ( )
X k L L X k
X k KC X k
4.1.3. Controlabilidad y observabilidad del sistema
La controlabilidad del sistema se verific calculando el rango de la matriz de controlabilidad.
2 3CW
4Crango W
Ya que el rango de dicha matriz es igual al orden del sistema, significa que el sistema es
completamente controlable, lo que permite ubicar arbitrariamente los polos de lazo cerrado.
De forma similar, se verific la observabilidad del sistema, calculando el rango de la matriz de
observabilidad.
2
3
O
C
CW
C
C
4Orango W
Ya que el rango de dicha matriz es igual al orden del sistema, significa que el sistema es
completamente observable, lo que permite ubicar arbitrariamente los polos del observador.
-
8/2/2019 Diseo y Control del Pndulo Invertido
67/142
Captulo 4 Control del Pndulo Invertido
53
4.1.4. Valor deseado
Si en vez de alimentar el observador con los valores medidos de la posicin, se lo alimenta con una
diferencia entre la misma y un valor de referencia, se obtiene un sistema como el de la Figura 4.3.
Figura 4.3: Esquema de Control en Variables de Estado con Regulacin de la Posicin Deseada
Esto resulta equivalente a desplazar el centro de coordenadas de la posicin del carro, y por lo tanto,
el esquema de realimentacin tratar de llevar a cero la diferencia entre la posicin y la posicin
deseada
( ) 0d x k x ( ) d x k x
Es decir, que llevar la posicin del carro, a su valor deseado. Ya que la dinmica del sistema no se
ve afectada, frente a variaciones en la posicin deseada, el sistema responder entonces, de la
misma forma que ante la imposicin de una condicin inicial.
4.1.5. Algoritmo de Diseo
Para facilitar el proceso de diseo del controlador, se implement un programa en MATLAB. El
mismo ensambla el sistema, realiza la discretizacin y calcula los vectores K y L de forma
automtica a partir de los parmetros a, b, c, y d. (ver modelado2.m en el Anexo IV)
Figura 4.4: Algoritmo de diseo del controlador en Variables de Estado
-
8/2/2019 Diseo y Control del Pndulo Invertido
68/142
Captulo 4 Control del Pndulo Invertido
54
De esta forma resulta muy fcil recalcular los vectores del controlador en caso de modificarse los
parmetros del sistema o los valores deseados para los polos.
4.1.6. Implementacin
La implementacin resulta muy sencilla utilizando el esquema visto en la seccin 2.3.2.
Simplemente se agregaron las lneas de cdigo correspondientes al control y a la estimacin del
vector de estados, dentro del bucle principal.
Figura 4.5: Diagrama de Flujo del Algoritmo de Control en Variables de Estado
-
8/2/2019 Diseo y Control del Pndulo Invertido
69/142
Captulo 4 Control del Pndulo Invertido
55
h=0.02;
N=1000;
usb_start;
for (i=1:N)
u(i)=-L*xe(:,i);
usb_com;
xe(:,i+1)=(F-K*C)*xe(:,i)+G*u(i)+K*[x(i);f(i)];
end
usb_stop;
Figura 4.6: Cdigo fuente en MATLAB del algoritmo de control por Variables de Estado
El algoritmo se debe iniciar con el pndulo en proximidades de la posicin vertical superior, ya que
de lo contrario, no son vlidas las aproximaciones hechas en la deduccin del modelo y por lo tanto
el sistema resultara ser no lineal.
-
8/2/2019 Diseo y Control del Pndulo Invertido
70/142
Captulo 4 Control del Pndulo Invertido
56
4.1.7. Resultados
A continuacin se presentan los resultados de algunos de los ensayos realizados con el equipo y se
los compara con simulaciones del modelo terico del sistema. En la figura 4.7 se muestra la
respuesta del sistema ante una condicin inicial 0.6 en la posicin del carro.
Figura 4.7: Respuesta del sistema con control en Variables de Estado ante una condicin inicial en la posicin
Se observa la presencia de oscilaciones de alta frecuencia de aproximadamente 10 Hz, producidas
por la interaccin entre el ruido la dinmica del observador (ver Seccin 4.3.5 y 4.6.).
-
8/2/2019 Diseo y Control del Pndulo Invertido
71/142
Captulo 4 Control del Pndulo Invertido
57
En la Figura 4.8 podemos observar la simulacin y la respuesta del sistema real ante una entrada de
onda cuadrada en la posicin deseada del carro.
Figura 4.8: Simulacin y respuesta del sistema real ante variaciones en la posicin deseada
Aqu vemos la presencia de oscilaciones de baja frecuencia de aproximadamente 0.5 Hz, producidas
por la dinmica del observador (ver Seccin 4.3.5 y 4.6.).
-
8/2/2019 Diseo y Control del Pndulo Invertido
72/142
Captulo 4 Control del Pndulo Invertido
58
4.2. Control en Enfoque Polinomial
Esta seccin trata el problema del control del pndulo invertido utilizando funciones de
transferencia discreta, en transformada z.
4.2.1. Funcin de Transferencia de la Realimentacin de Estados
A partir del controlador basado en variables de estado desarrollado en la seccin anterior, es posible
obtener un controlador equivalente en funcin de transferencia.
Aplicando transformada Z a la ecuacin del observador y combinando con la ley de realimentacin
de estados, obtenemos:
( 1) ( ) ( )X k X k u k K y k C X k
zX KC X L X K y
zI KC L X K y
1 X zI KC L K y
1u LX L zI KC L K y
1u
L zI KC L K y
Utilizando esta funcin de transferencia es posible calcular directamente la seal de control u(k) a
partir de las mediciones de la salida y(k). El funcionamiento y desempeo de este controlador es
igual al del controlador de variables de estado de la seccin anterior ya que es en realidad, una
realizacin alternativa del mismo controlador.
4.2.2. Funcin de Transferencia de la planta
A partir del modelo de variables de estado es posible obtener un modelo en funcin de trasferenciaaplicando transformada Z.
-
8/2/2019 Diseo y Control del Pndulo Invertido
73/142
Captulo 4 Control del Pndulo Invertido
59
( 1) ( ) ( ) X k X k u k
zX X u
( ) zI X u
1( ) X zI u
1( ) y CX C zI u
1 y BA u
Donde
1 1
( )C zI BA
Siendo A y B matrices de polinomios en z de 1x1 y 2x1 respectivamente. La matriz polinomial A
puede calcularse como
det( ) A zI
Mientras que B se calcula mediante
1( ) B C zI A
4.2.3. Asignacin de Polos
Si aplicamos un controlador de la forma
1 1cu R S y R T u
Con R, S y T siendo matrices de polinomios en z de 1x1, 1x2 y 1x1 respectivamente, obtenemos el
siguiente sistema de lazo cerrado:
1 1 1cu R S BA u R T u
1 1 11 c R SBA u R T u
c AR SB u AT u
1
cu AR SB AT u
11
c y BA u B AR SB T u
-
8/2/2019 Diseo y Control del Pndulo Invertido
74/142
Captulo 4 Control del Pndulo Invertido
60
1
c y BT AR SB u
Las conmutaciones realizadas, son posibles debido a que A, R y SB resultan ser escalares. Podemos
ver que los polos del sistema de lazo cerrado son las races del polinomio AR SB
. Este resulta
ser el polinomio caracterstico del sistema. Igualando el mismo, al polinomio caracterstico deseado,
podemos despejar los valores de los polinomios R y S necesarios para ubicar arbitrariamente los
polos de lazo cerrado.
1 2( )( )...( )k AR SB z p z p z p
4.2.4. Algoritmo de Diseo
Al igual que en el caso del diseo en variables de estado, se implement un programa en MATLAB
para facilitar el proceso de clculo de los coeficientes del controlador. El mismo ensambla el
sistema, realiza la discretizacin, calcula los coeficientes de las matrices A y B, y resuelve la
ecuacin de diseo de forma automtica a partir de los parmetros a, b, c, y d. (ver modelado7.m en
el Anexo IV)
Figura 4.9: Algoritmo de diseo en enfoque polinomial
De esta forma resulta muy fcil recalcular los coeficientes del controlador en caso de modificarse
los parmetros del sistema o los valores deseados para los polos.
Debido a que MATLAB no presenta funciones especficas para resolver ecuaciones diofnticas
polinomiales, como lo es la ecuacin de diseo, se hizo necesario elaborar un algoritmo propio a tal
fin.
-
8/2/2019 Diseo y Control del Pndulo Invertido
75/142
Captulo 4 Control del Pndulo Invertido
61
Para esto se ensambla una ecuacin matricial, que representa el sistema de ecuaciones lineales, que
resulta de igualar los coeficientes de mismo grado a ambos lados de la igualdad. El primer paso es
determinar el grado de los polinomios contenidos en R y S, para esto se iguala el nmero de
ecuaciones del sistema con la cantidad de incgnitas.
Ecuaciones Incgnitas
1 1 2 1grA grR grR grS
El grado mnimo de los polinomios que satisfacen esta condicin resulta
1grR grS
Entonces
4 3 24 3 2 1 0 1 0AR a z a z a z a z a r z r
3 2 3 213 12 11 10 11 10 23 22 21 20 21 20SB b z b z b z b s z s b z b z b z b s z s
5 4 3 21 2 5 5 4 3 2 1 0( )( )...( )P z p z p z p q z q z q z q z q z q
Expresando la ecuacin de diseo en forma matricial
AR SB P
4 51
3 4 13 23 40
2 3 12 13 22 23 311
101 2 11 12 21 22 2
210 1 10 11 20 21 1
200 10 20 0
0 0 0 0 0
0 0
0 0 0
a qr
a a b b qr
a a b b b b qs
sa a b b b b q
sa a b b b b q
sa b b q
-
8/2/2019 Diseo y Control del Pndulo Invertido
76/142
Captulo 4 Control del Pndulo Invertido
62
La solucin del sistema de ecuaciones se obtiene invirtiendo la matriz
1
4 51
3 4 13 23 40
2 3 12 13 22 23 311
10 1 2 11 12 21 22 2
21 0 1 10 11 20 21 1
20 0 10 20 0
0 0 0 0 0
0 0
0 0 0
a qr
a a b b qr
a a b b b b qs
s a a b b b b q
s a a b b b b q
s a b b q
4.2.5. Implementacin
La implementacin resulta muy sencilla agregando las lneas de cdigo correspondientes al clculo
de la seal de control en el esquema visto en la seccin 2.3.2.
Figura 4.10: Diagrama de Flujo del Algoritmo de Control Polinomial
-
8/2/2019 Diseo y Control del Pndulo Invertido
77/142
Captulo 4 Control del Pndulo Invertido
63
La implementacin de la funcin de transferencia del controlador se realiz mediante el esquema
Directo I, multiplicando los valores presentes y pasados de las seales ( ), ( ) ( )x k k y u k por los
respectivos coeficientes de la funcin de transferencia.
Figura 4.11: Implementacin de la Funcin de Transferencia
h=0.02;
N=1000;
usb_start;
for (i=1:N)
u(i)=-1*(S1(1)*x(i-1)+S1(2)*x(i-2)+S2(1)*f(i-1)+S2(2)*f(i-2))-R(2)*u(i-1);
usb_com;
end
usb_stop;
Figura 4.12: Cdigo fuente en MATLAB del algoritmo de Control Polinomial
Al igual que en el caso del control en variables de estado y por las mismas razones, algoritmo se
debe iniciar con el pndulo en proximidades de la posicin vertical superior.
-
8/2/2019 Diseo y Control del Pndulo Invertido
78/142
Captulo 4 Control del Pndulo Invertido
64
4.2.6. Resultados
En la Figura 4.13 se muestra la respuesta del sistema ante una condicin inicial de 0,6 en la
posicin.
Figura 4.13: Respuesta del sistema con control polinomial ante una condicin inicial en la posicin
Se observa un mejor desempeo en comparacin con el control en Variables de Estado, presentando
un comportamiento ms amortiguado.
-
8/2/2019 Diseo y Control del Pndulo Invertido
79/142
Captulo 4 Control del Pndulo Invertido
65
En la Figura 4.14 podemos observar la simulacin y la respuesta del sistema real ante una entrada
de onda cuadrada en la posicin deseada del carro.
Figura 4.14: Simulacin y respuesta del sistema real ante variaciones en la posicin deseada
Vemos un mejor desempeo en comparacin con el control en Variables de Estado, oscilaciones
ms amortiguadas y con una menor varianza en estado estacionario (ver Seccin 4.6.)
-
8/2/2019 Diseo y Control del Pndulo Invertido
80/142
Captulo 4 Control del Pndulo Invertido
66
4.3. Filtro de Kalman
El filtro de Kalman[18] es un algoritmo desarrollado por Rudolf E. Kalman en 1960 que sirve para
poder identificar el vector de estados de un sistema dinmico lineal (de forma similar al observador
de estados) cuando el sistema est sometido a ruido blanco aditivo. La ventaja que presenta el filtro
de Kalman es que la ganancia de realimentacin del error puede ser calculada de forma ptima
cuando se conocen las varianzas de los ruidos que afectan al sistema.
4.3.1. Ganancia ptima
Supongamos que modelo del si