Home

capítulo 2 modelado matemático del pendubot

image

Contents

1. b Hex Line CLB CLB CLB CLB CLB c Double Line CLB T CLB CLB 2 2 0012 d Direct Lines Figura 9 Tipos de interconexiones entre CLBs en la Spartan III Proceso de configuraci n de la FPGA Spartan Ill La FPGA Spartan lll se programa por medio de la carga de los datos de configuraci n en celdas de memoria est tica las que colectivamente controlan todos los elementos funcionales y los recursos de interconexi n Luego de aplicar alimentaci n a la l mina se escribe la trama de configuraci n en dicha memoria utilizando uno de los siguientes modos Maestro Paralelo Esclavo Paralelo Maestro Serial Esclavo Serial o Boundary Scan JTAG Estos modos difieren en el origen del reloj proviene de la FPGA en los modos Maestro y es externo en 150 los modos Esclavo y en la forma en que se escriben los datos por lo que los modos paralelos son m s r pidos El modo Boundary Scan utiliza pines dedicados de la FPGA y cumple con los est ndares IEEE 1149 1 Test Access Port e IEEE 1532 para dispositivos n System Configurable ISC Este modo esta siempre disponible en la FPGA y al activarlo se desactivan los otros modos ya mencionados El proceso de configuraci n de la FPGA ocurre en tres etapas Primero la
2. FPGA VO E Memory amp FIFO a Search S Customize 1 a A search amp Customizer Timing LELA search S customize 5 VO Node IO Constant VI Defined Memory Met Memory Co Loop Timer Wait Tick Count YOMethod 10 Property User Control VI Defined FIFO Method FIFO Constant Timing FPGA I O Memory amp FIFO FPGA Math amp Analysis EJ S Search Y customizer E S search Sy Customizer search amp Customizer LE a gt E Generation Control Utilities High Throug alo DC RMS Mean Variar E N ms Buttemworth Notch Fil Scaled Wind as a IP Integration Node First Call ER Z Transform Synchronization FPGA Math amp Analysis Figura B 10 Funciones de la paleta Functions de LabVIEW FPGA Structures para el control del flujo de datos Array para crear y manipular conjunto de datos del mismo tipo y de tamano fijo Cluster amp Class para crear y manipular conjunto de datos de diferente tipo y de tama o fijo Numeric para
3. ea teta_grados Figura 5 20 Modulo de Conversi n de ngulos y estimaci n de velocidad 5 4 3 M DULO DE CONTROL LQR Y PD Este m dulo permitir calcular el valor de la sefial de control necesaria para el funcionamiento adecuado del sistema La forma de programaci n se realizar teniendo en cuenta el n mero de operaciones el tama o de la l gica y el mejor funcionamiento del sistema Para ello se realizar la l gica dentro de un lazo Timed Loop lo que permite reducir de forma substancial el tama o de memoria del FPGA y las operaciones algebraicas se realizar n en conjunto dentro de un lazo While Loop por las razones explicadas anteriormente La ejecuci n de este lazo se realizar cada 200000 ticks lo que equivale a 4 ms al igual que el m dulo de transformaci n de ngulos y estimaci n de velocidad f rex fea ft dTeta 1 rad seg ftdTeta 2 rad seg E frreta2 rad gt Figura 5 21 Modulo de control PD y LQR u_torque 70 lalanceo Tope ontrol Tope lalanceo Medio control Medio set point tetal up 1 5708 Figura 5 22 Control Tope a Control Balanceo b Control Equilibrio medio Kd medid ss 71 72 Balanceo Tope dav
4. SHIFTOUT SHIFTIN CIN DS099 2_05_062104 Figura 3 Arreglo de slices en un CLB La Figura 4 es un diagrama de una slice del par del lado izquierdo por lo tanto representa un s per conjunto de los elementos y conexiones que se encuentran el las slices El generador de funciones basado en RAM tambi n conocido como Look Up Table LUT es el recurso principal para implementar funciones l gicas dentro de 142 la FPGA M s a n las LUTs en cada par de slices del lado izquierdo pueden ser configuradas como RAM distribuida o como un registro de corrimiento de 16 bits Los generadores de funciones ubicados en las porciones superiores e inferiores de la slice son referidos como G LUT y F LUT respectivamente en la Figura 4 El elemento de almacenamiento el cual es programable tanto como un flip flop tipo D o como un latch sensible a nivel provee un medio para sincronizar datos a una se al de reloj entre otros usos Estos elementos de almacenamiento que se encuentran en las porciones superiores e inferiores de la slice son llamados FFY y FFX respectivamente Los multiplexores de funci n amplia combinan las LUTs para permitir operaciones I gicas m s complejas cada slice tiene dos de stos en la Figura 4 corresponden a F5MUX y F1MUX La cadena de carry en combinaci n con varias compuertas l gicas dedicadas soportan implementaciones r pidas de operaciones matem ticas La cad
5. Structures Array Cluster Clas 123 a gt gt Numeric Boolean String E gt El B k Comparison Timing Dialog amp Use FZ gt gt B fem FileVO Waveform Application Am P ur ERAN Jo 2 Bd Synchronizat Graphics amp S Report Gener Vision and Motion L Signal Processing Express mn FPGA Interface SEER Open FPGA VI Reference Real Time 3 LLIR 2 guo E C Generator OpenFPGA Read Write Invoke Meth Close FPGA Dynamic FPGA Interfa 2 58 gt 2 3e Scaling Advanced niP2P Figura 4 22 HOST_FPGA Open FPGA VI Reference 49 45 Configure Open FPGA VI Reference Open Build Specification ev Control LQR PendubotiDebounce Switch vi Bitfile 7 Run the FPGA gt Adq_encoder_x4 vi ls Ajuste Se al Trama DACvi ln Configuraci n DAC CHA vi Debounce Switch vi Detect Knob Rotation vi ie Control Convert Pulsos a rad grados vi Estimaci n Velocidad vi u FPG Ga Figura 4 23 Selecci n del FPGA VI 3 Se coloca la funci n Function gt gt FPGA Interface gt gt Read Write el cual hace referencia a los terminales de control del FPGA VI creado 4 Se hace click sobre la funci n Read Write y se selecciona los controles que se deseen observar y o manipular en el Host VI
6. set point tetal down 1 5708 set point teta2 down 3 1416 K Medio rxe Figura 5 23 Control Medio a Control Balanceo b Control Equilibrio 5 5 INTERFAZ DE USUARIO La programaci n de interfaz de las posiciones tope y media se realizar mediante el programa computacional LabVIEW v 10 0 Adem s se dise una interfaz desde la PC que cuenta con controles e indicadores para la ejecuci n del control tope y control medio y una interfaz desde el FPGA en el que se puede realizar ambos controles y variar el set point Se ha buscado crear un dise o que sea f cil de utilizar y manipular 5 5 1 INTERFAZ DESDE PC HOST PENDUBOT El programa de control desde PC permite al usuario manejar el Pendubot de manera sencilla adem s muestra las posiciones de cada eslab n en gr ficas respecto a la se al del set point indica la se al de control tambi n gr ficamente Este programa constar de varias etapas que en conjunto permiten un mejor manejo del sistema con lo cual permite variar el punto de equilibrio a los alrededores del punto linealizado 79 La pantalla principal se muestra en la figura 5 24 y la pantalla de control se muestra en la figura 5 25 La interfaz de usuario del computador tiene los siguientes controles Manual Automatico Control Medio Control Tope Detener el Control Continuar Regresar Pantalla Variaci n del Punto de Operaci n Set point Modelo L
7. gt Array Dependent Array Dependent s a Io E 5 a 4 BUFGMUX GCLK2 GCLKO GCLKS Figura 8 Red de distribuci n de se ales de reloj de la Spartan III Red de interconexiones de la FPGA La red de interconexi n conduce las se ales entre varios elementos funcionales de la Spartan 11 Hay cuatro tipos de interconexiones Long lines Hex lines Double lines y Direct lines 149 Long lines son aquellas que conectan una salida de cada seis CLBs Figura 9a Debido a su baja capacitancia estas l neas son adecuadas para conducir se ales de alta frecuencia Si las ocho entradas para las redes de reloj est n ocupadas estas l neas son adecuadas como alternativa Hex lines son las que conectan una salida de cada tres CLBs Figura 9b Son lineas que ofrecen mayor conectividad que las anteriores pero un poco menos de capacidad en alta frecuencia Las Double lines conectan todos los otros CLBs Figura 9c lo que las hace conexiones m s flexibles Las Direct lines entregan conexiones directas de cada CLB hacia cada uno de sus ocho vecinos figura 8d Estas lineas son usadas mas a menudo para conducir una senal proveniente de un CLB de origen hacia una Double line Hex line o Long line y desde esa ruta larga hacia otra Direct line que llevara la senal hacia el CLB de destino
8. y es el valor de 12 bits equivalente al voltaje an logo El Voltaje de referencia V depende de los canales utilizados esto es los canales A y B usan un voltaje de referencia de 3 3 V mientras que los canales C y D usan 2 5 V de referencia 4 3 2 CONECTORES DE EXPANSI N El m dulo Spartan 3E Starter Kit tiene una gran variedad de conectores de expansi n los cuales son e Un conector Hirose de 100 pines J3 los cuales est n asociados con 43 E S del FPGA incluidos 15 pares de entradas diferenciales e 3 conectores de 6 pines cada uno J1 J2 y e Conectores de prueba J6 35 Jumper JP9 I O Bank 0 Voltage Default is 3 3V set to 2 5V for differential O Hirose 100 pin FX2 Connector J3 43 VO connections high performance gt J1 6 pin Accessory Header J6 Probe Landing Pads Connectorless logic analyzer probes J2 6 pin Accessory Header 6 pin Accessory Header UG230_c12_01_030606 Figura 4 5 Conectores de expansi n 9 En este proyecto se necesitan 4 entradas se utiliza uno de los 3 conectores de 6 pines espec ficamente J1 La figura 4 6 muestra los 6 pines del conector J1 donde tiene 4 se ales que son compartidas con el conector J3 Hirose 100 pin tambi n se puede utilizar como una fuente de 3 3 V 1UG230_012_07_002406 Figura 4 6 Conector J1 9 44 APLICACIONES DE UNA FPGA Cualquier circuito de aplicaci n espec fica puede ser implementado en un FPGA siempre
9. 136 ANEXO D 0 1 ASSEMBLER LQCD eerte treten tnt 152 D 2 PROGRAMA PGD MADE iiit iei tees 165 RESUMEN Hoy en d a las FPGA Field Programmable Gate Array aparecen en dispositivos como instrumentos electr nicos autom viles artefactos a reos m quinas copiadoras hardware computacional de aplicaciones espec ficas en productos de control industrial etc La funcionalidad FPGA no ha sido previamente accesible para ingenieros de control industrial Programar las FPGA ha sido limitado a personas con experiencia y conocimiento profundo en los HDL u otras herramientas de dise o de bajo nivel las cuales requieren de un alto grado de profundidad en el aprendizaje En este trabajo se propone desarrollar un algoritmo de control para el Pendubot sistema no lineal subactuado utilizando la capacidad de procesamiento de un FPGA Field Programmable Gate Array en la cual se implementan los algoritmos de adquisici n de datos pre procesado algoritmo de control regulaci n del punto de operaci n y determinaci n de la salida del sistema as como tambi n el m dulo de comunicaci n con un computador para registrar los valores de las variables a controlar El algoritmo de adquisici n y control se desarrollar en un lenguaje de alto nivel utilizando el M dulo FPGA de LabVIEW se descarga en la tarjeta Spartan 3E Starter Kit Con el M dulo FPGA de LabVIEW se ha abierto la tecnolog a FPGA a un mayor rango de estudian
10. Bundle ByN Unbundle Bundle cu Array cru Array Array 202 Rotate Bo Ar Reverse 1D A ERE I Flat Sequenc Stacked Seq Diagram Dis Conditional E i E 8 Em M Cluster Cons Merge Errors Cluster To Ar Array To Clu T3 rj EIN I Split1D Array Interleave1D Decimate1D Array Consta Array To Clu ee Lal aj Ez Local Variable Global Varia Decorations Feedback No les GU RP LV Object Co Call Parent To More Spe To More Gen Numeric s Search Customize H Boolean Comparison E E gt b G Search amp Customizer F 4 Q Search S Customize 1 Add Subtract Multiply Divide 3e gt Hi gt E gt gt E gt gt And Or Eschrsve Or Not Compound Equal NotEqual Greater Less Quotent amp Conversion boat Re gt gt gt E gt E gt p Chie ere gt E gt gt Greater Or E Less Or Equal EqualTo0 Not Equal gt z d uci SA zn gt ge p Or Array Ele NumberTo Boolean Boolean To True Constant gt gt fe Round Round Towa Scale By Pow Square Root m reste Than Less Than OF OrE Less os Peas False C el 5 P gt E p s S p 20 P Square Negste Reciprocal Sign Select Max amp Min InRangeand Fixed Point gt EE Ez El Fixed Point Numeric Co Enum Const Ring Constant B 00 ean Comparison Numeric
11. El My Computer FPGA Target Dev1 Spartan 3E Starter Boi GJ Slide Switches Z Push Buttons fi NORTH Pis BTN WEST LS 5 BTN_SOUTH aaa ROT CENTER nu BTN_NORTH Z Discrete LEDs au LED2 5 Figura B 7 E S agregadas al Diagrama de Bloques 126 B 2 PALETA DE FUNCIONES LABVIEW FPGA Cuando se selecciona un proyecto con FPGA LABVIEW muestra solo las opciones disponibles para una FPGA espec fica esto es que solo muestra las funciones y subpaletas que se pueden utilizar con ese dispositivo como se muestra en la figura B 8 42 Functions Q Search Programming gt gt foal 2 Structures Array Cluster amp Cl 7 gt 7 wW Bg Numeric Boolean Comparison E o B dp Timing FPGAVO Memory amp F Gg foy ren ilk 43 FPGA Math amp Analysis Synchronizat FPGA Math Addons a gt a a gt BL B E mum 1 nea gt n e Generation Control Utilities High Throug Select a VL em 28 DC RMS Mean Varian Analog Period a BH E x Butterworth Notch Filter Rational Res l ais iz Scaled Wind FFT Z Transform Figura B 8 Paleta de Funciones FPGA Las funciones que incluye L
12. RECURSOS DISPONIBLE UTILIZADOS PORCENTAJE Registros Slices 9312 5132 55 1 Slices 4656 4654 99 9 LUTs 9312 7784 83 6 Bloques de RAM 20 1 5 0 Multiplicaciones 18 13 72 2 Tabla 6 1 Estimaci n de Recursos 82 Se observa que se utiliza una cantidad de recursos menor al m ximo disponible por lo que se puede implementar en la tarjeta Spartan 3E Finalizada la compilaci n se crean los archivos necesarios para descargar a la tarjeta El archivo que se descarga a la tarjeta tiene extensi n vbitx y se crea en la carpeta FPGA Bitfiles de la carpeta ra z donde se almacena el proyecto principal El estado de compilaci n se muestra en el cuadro de di logo y cuando se ha visualizado el mensaje de la figura 6 2 The compilation complete successfully el archivo estar generado close iv 6 Figura 6 2 Compilaci n terminada 6 2 DESCARGA LABVIEW FPGA permite descargar directamente el archivo a la tarjeta luego de haber terminado la compilaci n cabe indicar que se debe descargar el archivo a la memoria Flash de la tarjeta ya que este proyecto implica que el control se debe realizar sin utilizar la interfaz con la PC es decir que el programa de control se ejecuta directamente en la FPGA de manera aut noma Para ello se selecciona el FPGA VI que se desee descargar como se muestra en la figura 6 3 83 43 Project Explorer Proyecto_Pendubot_FPGA
13. 1 8182 x 3 3 5 Se al de Control amp N HORN up Salida del DAC Figura 5 16 Se al de control A continuaci n se da una descripci n del dise o de las tres etapas mencionadas La etapa de entrada para el voltaje de control est conformada por un amplificador seguidor 65 El objetivo de esta etapa es presentar una elevada impedancia de entrada a la se al de control Esta etapa permite adem s que la se al de control no sea referenciada al circuito de acondicionamiento del servoamplificador con la finalidad de proteger a la tarjeta Spartan 3E Starter Kit en caso de falla La segunda etapa consiste en un amplificador no inversor cuya ganancia est ajustada de acuerdo a la ecuaci n 5 1 que es de 1 8182 la ganancia de voltaje est dada por G 1 A cu R z Donde R 180 My R 2201 R R R 99 n v 1000 La tercera etapa consiste en un amplificador sumador no inversor el cual permite restar un valor de voltaje para obtener el valor deseado para el control del sistema de acuerdo a la ecuaci n 5 1 que es de 3 V La ganancia de esta etapa es igual a 1 R mog tisu 4 5 Donde R R R 3 3 EN para obtener V U Donde V es la salida de la etapa anterior y V es 3V La serial de 3V se tom de una fuente de voltaje de 5V realizada por un regulador de voltaje 7905 de acuerdo a las especificaciones del fabricante datasheet 7905
14. Bloques L gicos configurables Configurable Logic Blocks CLBs Contienen Look Up Tables basadas en tecnolog a RAM LUTs para implementar funciones l gicas y elementos de almacenamiento que pueden ser usados como flip flops o como latches Bloques de memoria RAM Block RAM Proveen almacenamiento de datos en bloques de 18 Kbits con dos puertos independientes cada uno Bloques de multiplicaci n que aceptan dos n meros binarios de 18 bit como entrada y entregan uno de 36 bits Administradores digitales de reloj Digital Clock Managers DCMs Estos elementos proveen funciones digitales auto calibradas las que se encargan de distribuir retrasar arbitrariamente en pocos grados desfasar en 90 180 y 270 grados dividir y multiplicar las sefiales de reloj de todo el circuito Los elementos descritos est n organizados como se muestra en la figura 4 1 Un anillo de IOBs rodea un arreglo regular de CLBs Atraviesa este arreglo una columna de Bloques de memoria RAM compuesta por varios bloques de 18 Kbit cada uno de los cuales est asociado con un multiplicador dedicado Los DCMs est n colocados en los extremos de dichas columnas Block RAM Multiplier 02099 1 01 Figura 4 1 Arquitectura de la Spartan 3 Para tener una descripci n m s detallada de cada uno de los elementos funcionales de la FPGA referirse al Anexo C 30 4 5 CARACTER STICAS Y COMPONENTES PRINCIPALES DE LA TARJETA DE DESARROLLO SPARTAN 3E
15. Remove from Project Rename F2 Help Properties Figura B 5 Agregar E S 125 43 New FPGA O gt stss Available Resources New FPGA I O Eh Slide Switches a Name Resource sw2 F swo Slide Switches SWO sv Slide Switches SW1 eae BTN EAST Push Buttons BTN EAST BTN WEST LED1 Discicte LEDs LED1 BTN_SOUTH E LED2 Discrete LEDs LED2 ROT_A DAC_CS Digital to Analog DAC DAC_CS ROT_B DAC_CL Digital to Analog ROT_CENTER G Discrete LEDs LEDO e LED3 LED4 LED5 LED6 LED7 G LCD z gim NM V Place new VO in folders Cancel Help Figura B 6 Selecci n de E S Estas entradas y salidas est n agregadas al proyecto ahora se las agrega al diagrama de bloques para su utilizaci n 1 Como ya se tiene el FPGA VI se abre el diagrama de bloques se arrastra y suelta la E S que se desee utilizar desde el Project Explorer hacia el diagrama de bloques Figura B 7 13 Untitled 1 Block Diagram on Untitled Project 1 FPGA Target gt Taux File Edit View Project Operate Tools Window Help 15pt Application Font gt For i SAE qe 43 Project Explorer Untitled Project 1 me Som File Edit View Project Operate Tools Window H OSH x m c x 9 els ke Rems Files E b Project Untitled Project 1
16. 7 CAP TULO 2 MODELADO MATEM TICO DEL PENDUBOT 9 24 MODELO DIN MICO DEL PENDUBOLI 9 24 1 DETERMINACI N DE 10 2 1 2 DETERMINACI N DEL MODELO NO 10 2 1 2 1 Representaci n en variables de estado 13 2 1 2 2 Puntos de equilibro uuu re Ria REESE 14 213 APROXIMACI N LINEAL DEL MODELO MATEM TICO 15 CAP TULO 3 DISENO DE LOS CONTROLADORES DEL SISTEMA PENDUBOT 17 3 1 DISE O DEL CONTROL J u u u 17 3 1 1 CONTROL DE EQUILIBRIO cene 17 3 1 2 CONTROL DE BALANCEO eene tnt 20 3 1 2 1 Linealizaci n Parcial 20 3 1 2 2 Controlador PI sim eh t iei e deco hu itd bc 22 3 1 2 2 1 Balanceo TODO eoe bee e bee b re ona Gb 23 3 1 2 2 2 Balanceo Medio 23 3 22 SISTEMA DE CONMUTACI N J u 25 CAP TULO 4 DESCRIPCI N DEL FPGA cocinero rre 27 4 1 EVOLUCI N DE LOS DISPOSITIVOS PROGRAMABLES 28 4 2 ARQUITECTURA DE LA FPGA SPARTAN 3 DE XILINX 28 4 3 CARACTER STICAS Y COMPONENTES PRINCIPALES DE LA TARJETA DE DESA
17. Control Figura 5 25 Interfaz con Tarjeta Spartan 3E Instanciar El crear en memoria un ejemplar de un conjunto de datos y c digo definido por una clase o estructura 78 5 5 2 4 Botones perilla Pulsadores y Switch Los pulsadores y la perilla permiten seleccionar el tipo de control encerar los eslabones en las posiciones iniciales detener el control y variar el set point gt BTN_NORTH Encerar los eslabones BTN_SOUTH Detener el control BTN_EAST Control Tope BTN_WEST Control Medio ROT_CENTER Encerar el Set point Perilla ROT_A y ROT_B Aumenta o disminuye el Set point ROT_A K18 BTN_NORTH ROT_B G18 v4 ROT CENTER V16 VV V V Y BTN WEST D18 BTN EAST H13 BTN SOUTH K17 Figura 5 26 Puladores y Perilla 9 Los Switch permiten iniciar el proceso de control permiten el control Manual Autom tico y mostrar en el LCD el Controlador Utilizado y la posici n de los eslabones HIGH LOW SW3 SW2 SW1 swo N17 H18 L14 L13 oi 021205 Figura 5 27 Switch 9 SWO Encender Control gt SW1 Control Manual Autom tico gt SW2 Mostrar posiciones de los eslabones gt SW3 Mostrar Ganancias del Control LQR 79 5 5 2 5 Tipo de control Se indica en el LCD el tipo de control y las posiciones de los eslabones en grados sexagesimales Figura 5 27 Control Tope _ L Figura 5 28 Control Medio Una vez terminado el programa de control en el
18. NI SoftMotion Coordinate Space NI SoftMotion Table SolidWorks Assembly Figura B 1 Creaci n de un proyecto Spartan 3E 123 3 Luego se abre la ventana Add Targets and Devices y se selecciona New target or device se expande Xilinx University Program y se selecciona la tarjeta Spartan 3E Starter Board y se presiona OK 43 Add Targets and Devices on My Computer Targets and Devices Existing target or device Disco Specif New target or device Targets and Device Types SHO Xilinx University Program m Refresh ok cancel Hep Figura B 2 Add Spartan 3E Target 13 Project Explorer Untitled Project 1 lS File Edit View Project Operate Tools Windows Help heudgixacoxeejsu m Items Files Er 18 Project Untitled Project 1 a 8 My Computer E KO OnboardClock A Dependencies Build Specifications h Dependencies Build Specifications Figura B 3 Dispositivo agregado al proyecto Ahora que se tiene agregado el dispositivo en el proyecto figura B 3 se crea una FPGA VI se da click derecho sobre el nombre del dispositivo agregado FPGA Target Dev1 Spartan 3E Starter Board y se selecciona New gt VI donde se tendr FPGA VI a adido al proyecto se debe notar que el FPGA VI esta en el rbol del dispositivo FPGA T3 Project Explorer Untitled Project 1 AE File Edit View Project Operat
19. 5 Se cierra el recurso abierto en la funci n funci n Function gt gt FPGA Interface gt gt Close FPGA VI Reference 6 El Host VI debe ser similar a la Figura 4 24 BTN_NORTH Figura 4 23 Host VI Este VI permite manipular los controles del FPGA VI en la tarjeta de desarrollo 50 Una vez que se programa la FPGA VI el dise o se compilar y se descargar en la FPGA Cap tulo 6 y por lo tanto funcionar independiente de un computador Dependiendo del dise o implementado interactuar con el exterior de distinta manera y se podr comprobar su correcto funcionamiento 51 CAP TULO 5 IMPLEMENTACI N DEL ALGORITMO En este cap tulo se hace referencia a la programaci n en la tarjeta Spartan 3E de Xilinx y los aspectos a tomarse en cuenta para el desarrollo del programa introduci ndose en cada una de las etapas que lo componen esto es los algoritmos de adquisici n de datos pre procesado algoritmo de control regulaci n del punto de operaci n y determinaci n de la salida del sistema as como tambi n la interfaz con el usuario y el m dulo de comunicaci n con un computador para registrar los valores de las variables Adicionalmente se indica el hardware necesario para la interfaz f sica entre el Pendubot y el FPGA ya que para llevar al Pendubot a las posiciones tope y media de equilibrio se controla el par aplicado al motor y para el control del motor se utiliza un servoamplificador en donde la e
20. 7 Dependencies VW Build Specifications Figura 4 15 FPGA VI anadido al proyecto necesiten para esto se siguen los siguientes pasos Una vez creado el proyecto se deben agregar las Entradas y o salidas que se 1 Se da click derecho en el nombre del dispositivo agregado FPGA Target Devi Spartan 3E Starter Board y se selecciona New FPGA I O como se muestra en la figura 4 16 2 Ahora se tendr una nueva ventana en la cual se encuentran todos las entradas y salidas del dispositivo adem s de las variables para configurar 44 los m dulos existentes en la tarjeta como son el conversor digital an logo conversor analogo digital LCD etc 3 Se selecciona el elemento a agregar y se lo anade en la tabla una vez seleccionado todos los elementos que se utilicen se presiona OK y se tiene como se muestra en la figura 4 17 T3 Project Explorer Untitled A mn lt File Edit View Project Operate Tools Window Help F Sa pam 7 p a wee R eso Items Files EE Project Untitled Project 1 5 8 My Computer II OnboardClod gt v 7 Dependencie Virtual Fold TP xS Start IP Generator plead Sata il Build Specific FUN Dependencies Execute Vion gt es 2 Build Specificati Library gt Class Arrange by Expand All FPGA Base Clock Collapse All FIFO Remove from Project P Rename Ai Help Properties Figura
21. A EL CTRICA Y ELECTR NICA Figura A 9 Pantalla principal La interfaz de usuario del computador tiene los siguientes controles 1 Manual Automatico 2 Control Medio 3 Control Tope 118 Detener el Control Continuar Regresar Pantalla Variaci n del Punto de Operaci n Set point Modelo Linealizado Control PD 9 Encerar o reset Encoders qe um Qi oS 10 Reset matriz de ganancia K 11 Led Indicador de sistema en L nea 12 Stop Interfaz 13 Manual de usuario dTeta1 rad seg dTeta 2 rad seg Figura A 10 Host FPGA y controles de interfaz Los controles anteriores excepto los botones de Modelo Linealizado y Control PD realizan las mismas acciones que si se presionaran los Pulsadores o Switch del FPGA El bot n Modelo Linealizado permite observar las Ecuaciones de Estado del Modelo Linealizado en un punto de operaci n adem s permite variar las matrices de ponderaci n y as modificar la matriz de Ganancias K del control LQR del 119 sistema asimismo se puede cambiar el punto de linealizaci n del sistema y poder as tener diferentes puntos de operaci n Las matrices de ponderaci n Q y R se determinan de la siguiente manera Los elementos de la matriz Q se seleccionan para ponderar la importancia relativa de los diferentes componentes del vector de estado La variaci n es en la diagonal de la matriz a matriz R se selecciona para ponderar el gasto de energ a en la acci n de contr
22. CALL LCD write data LOAD s5 character L CALL LCD write data LOAD s5 character I CALL LCD write data LOAD s5 character CALL LCD write data LOAD 85 character E CALL LCD write data LOAD s5 character C CALL LCD write data LOAD 55 character space CALL LCD write data LOAD s5 character CALL LCD write data LOAD s5 character A CALL LCD write data LOAD s5 character C CALL LCD write data RETURN Display gt TITULACION on LCD at current cursor position disp PROYTIT LOAD s5 character CALL LCD write data LOAD s5 character R CALL LCD write data LOAD s5 character O 161 CALL LCD write data LOAD s5 character Y CALL LCD write data LOAD s5 character stop CALL LCD write data LOAD s5 character space CALL LCD write data LOAD s5 character T CALL LCD write data LOAD s5 character I CALL LCD write data LOAD s5 character T CALL LCD write data LOAD s5 character U CALL LCD write data LOAD s5 character L CALL LCD write data LOAD s5 character A CALL LCD write data LOAD 85 character C CALL LCD write data LOAD s5 character I CALL LCD write data LOAD s5 character O CALL LCD write data LOAD s5 character N CALL LCD write data RETURN muestra CONTROL PENDUBOT en la actual posicion del cursor en el LCD disp ctrlpendu LOAD s5 character CALL LCD write data LOAD s5 character O CALL LCD write data LOAD s5 character CALL LCD write data LOAD s5 char
23. En el servoamplificador se encontr que ste amplifica las tensiones positivas m s que las tensiones negativas La amplificaci n debe ser uniforme para tener un mejor resultado Y en el motor al tener 40 delgas dispuestas sobre el eje del rotor implica que se tiene un cambio entre delga y delga de 9 podr a influir directam ente en el control fino que se requerir a aplicar adem s existe diferentes caracter sticas en cada sentido de giro del motor es decir que en sentido anti horario el motor presenta mayor velocidad que en sentido horario Estas caracter sticas se cree que es la causa de las oscilaciones observadas adem s de la alta no linealidad del sistema Pendubot 6 3 3 1 3 Comportamiento al variar el punto de operaci n del sistema Una vez equilibrado el sistema se variar el punto de operaci n para probar la robustez del control en plantas no lineales como lo es el Pendubot Paralos siguientes puntos de referencia 1 Punto de Referencia inicial 2 1 5708 rad 2 Punto de Referencia final 1 5347 rad 94 Contin a Teta 2 4126 4231 Eslab n 1 Eslab n 2 Figura 6 15 Posici n angular de los eslabones ante cambios del punto de referencia gt Para los siguientes puntos de referencia 1 Punto de Referencia inicial 1 5347 rad 2 Punto de Referencia final 1 6068 rad 95 Eslab n 1 Eslab n 2 Figura 6 16 Posici n angular de los eslabones ante cambios del punto de referencia Equilibrar
24. Hay tres pares de elementos de almacenamiento en cada IOB un par para cada uno de las tres rutas Es posible configurar cada uno de esos elementos como un flip flop D gatillado por flanco FD o como un atch sensible a nivel LD Estos elementos son controlados con la misma red de distribuci n de relojes que se utiliza para todo el sistema El par de elementos de almacenamiento tanto de la ruta de salida o de la del driver tri estado pueden ser usados en conjunto con un multiplexor especial para producir transmisi n de doble tasa de datos DDR Esto se logra tomando datos 139 sincronizados con el flanco de subida del reloj y convirti ndolos en bits sincronizados tanto con el flanco de subida como con el de bajada A esta combinaci n de dos registros y un multiplexor se le llama flip flop tipo D de doble tasa de datos FDDR Three state Path Vcco 01 co OTCLK1 gt A ESD Vo ex Pin OCE A Pull 02 Down A ESD OTCLK2 aJ Keeper Latch Output Path I 101 lt LVCMOS LVTTL PCI lt Single ended Standards using VREF ICLK1 ICE Differential Standards 102 lt Pin from Adjacent IOB ICLK2 gt gt REV gt Input Path Figura 2 Diagrama simplificado de un IOB de la Spartan III 140 Cada IOB cuenta adem s con otros elementos entre los cuales cuentan las resistencias de Pull Up y de Pull Down que tienen el objetivo de establecer niveles altos o bajos
25. Las ecuaciones din micas del sistema son _ df GL dtN86 50 mila mh 2ms l L cas80 Mal o lear Laza JO 2m l Losen8 0 mL l seng 0 ml 1 z migla cost m gl cos 6 6 magl cosh 13 0 m L L cos mala 1 8 1 2 1 8 m l m gl cos 8 Gz 2 6 2 1 2 1 Representaci n variables de estado Introduciendo las siguientes constantes en las ecuaciones anteriores py mila L tha fy mala Hyn Hg Mali Lo Ha mil ml Hs Mal cos 6 Y desacoplando las dos variables 6 y amp se tiene 127 pausen 0 0 5u 2sen 28 0 usha 8gcos6 us uscosb us sen 26 6 6 0 56 ugcos 8 8 uscosB 2 7 n ugc050 1 usen m 0 agcos us uscos8 us sen 26 6 6 6 0 56 9 65 n gacos6 2 8 Con lo cual el modelo din mico del Pendubot sin fricci n puede representarse en variables de estado al hacer la siguiente asignaci n de las variables de estados x B 14 Xy 8 u ct Con esta asignaci n la din mica del sistema Pendubot est dada por X t F x G x u t y t h x Donde o gG G x o s x h x a 2 AGO x y est n denotadas en 2 7 y 2
26. n de la energ a del sistema La determinaci n del modelo f sico se la obtiene completando los siguientes pasos 1 Determinaci n de todos los par metros f sicos del Pendubot 2 Determinaci n de las ecuaciones no lineales del sistema utilizando el m todo de Euler Lagrange 3 Linealizaci n del sistema no lineal 10 2 1 1 DETERMINACI N DE PAR METROS La figura 2 1 muestra un diagrama esquem tico del Pendubot y Eslab n Figura 2 1 Esquema del Pendubol 4 Donde qa desplazamiento angular del eslab n i T masa kg del enlace i l distancia del centro de masa del enlace i longitud del enlace en metros momento de inercia del enlace i Los par metros han sido tomados de 3 y se muestran a continuaci n m 0 17974 Kg my 0 260269 Kg 1 0 151 1 0 09 1 5 0 148 m La 0 0010624 Kg m L 0 002537 Kg m 21 2 DETERMINACI N DEL MODELO NO LINEAL De acuerdo a la ecuaci n de Euler Lagrange el sistema puede ser descrito de la siguiente manera 11 _ k a i 1 2 n 2 1 Donde el Lagrangiano L est formado por la diferencia entre la energ a cin tica K y la energ a potencial V esto es L K V 2 2 En el caso del Pendubot las coordenadas w representan las posiciones angulares de los enlaces mientras que 0 representa el vector de torques del sistema con lo cual la expresi n 2 1 queda EL _ t tat a
27. n de las posiciones para ello se ha empleado la derivada de la posici n y para poder disminuir o eliminar el ruido num rico que provoca la derivada se ha utilizado un filtro pasabajos digital de Butterworth de segundo orden La frecuencia de corte se ha elegido en forma experimental mediante pruebas realizadas en el funcionamiento del sistema Se debe tomar en cuenta el periodo de muestreo 55 Position PFXP ADQUISICION DE PULSOS DEL ENCODER Figura 5 4 SubVI de adquisici n de posici n de los eslabones Icono del subvi HAS ENCD Antes de realizar la estimaci n de las velocidades es necesario realizar la transformaci n de los pulsos a radianes de los eslabones 5 1 2 2 Subvi de conversi n de pulsos a radianes Permite convertir de pulsos a radianes se utiliza la siguiente relaci n a 21 8 pum 0 001533 Eshes _ 4096 651 8986 Se utilizara de esta forma para reducir el numero de multiplicaciones en las operaciones se debe a que el numero de estos operadores es limitado a 18 y al momento de compilar todo el programa da un error de programaci n La figura 5 5 muestra la implementaci n del subvi Teta pulsos 651 89862060546875 Teta rad FXP Figura 5 5 SubVI de conversi n de pulsos a rad TUUL Icono del subvi 56 5 1 2 3 Subvi de estimaci n de velocidad Como ya se menciono para obtener las velocidades angulares se realizar una estimaci n a
28. 1 then signo t1 tetal 9 tl_aux not tetal tl_aux tl_aux 1 else signo_tl 0 tl_aux tetal end if if teta2 9 1 then signo_t2 teta2 9 t2_aux not teta2 t2_aux t2_aux 1 else signo_t2 0 t2_aux teta2 end if Envio de datos control_aux pantalla amp control 6 downto 0 case port_id 3 downto 0 is when 0000 gt in_port lt control_aux tipo de control when 0001 gt in_port lt 000000 amp signo_t2 amp signo_tl signos when 0010 gt in_port lt t1_aux 7 downto 0 tetal when 0011 gt in_port lt 000000 amp t1_aux 9 downto 8 when 0100 gt in_port lt t2_aux 7 downto 0 teta2 when 0101 gt in_port lt 000000 amp t2_aux 9 downto 8 when others gt in_port lt XXXXXXXX end case end if end process input_ports end Behavioral 167
29. 8 respectivamente 2 1 2 2 Puntos de equilibrio Las condiciones de equilibrio se determinan a partir de las siguientes ecuaciones mila mh 2m l L cos8 Mal a tha Laza JO 2m l l sen8 0 0 mll sen8 m i l 2 0s f mal La 8 migla cost m gl cos 8 m gl cos mal ma ba Hye mala e Lz2 85 t ml l sen m gl cos 8 Los puntos de equilibrio son muy importantes debido a que cada una de estos puntos requiere una condici n de control diferente esto es que los valores del controlador varian Cuando el Pendubot es controlado en una configuraci n de equilibrio la velocidad y aceleraci n de cada eslab n son nulas esto es 15 T mila T m L gcos8 moagl cos 0 8 2 9 0 m gl cos 8 2 10 Los puntos de equilibrio del sistema se determinan a partir de las ecuaciones anteriores para que la ecuaci n 2 10 se cumpla se debe tener que cos 8 43 Sea Cero con esto se tiene 0 0 Al 2 11 Introduciendo la expresi n anterior 2 11 en 2 9 la se al de control requerida esta dada por la siguiente ecuaci n m la Mm gcos u gcos0 2 12 La se al de control en funci n de las ecuaciones param tricas se encuentran en unidades de voltaje 3 2 1 3 APROXIMACI N LINEAL DEL MODELO MATEM TICO La aproximaci n lineal se hace en los puntos de equilibrio ya que corresponde a aquell
30. 9457 ka 0 0359 se puede observar el control balanceo Posici n Media del Pendubot tambi n es resuelto de forma satisfactoria Seguidamente se implementa el algoritmo de control de equilibrio y se muestran las gr ficas de las respuestas para ambos eslabones figura 6 18 partiendo desde la posici n de equilibrio inestable medio donde se equilibra el sistema en esa posici n 97 Eslab n 1 Eslab n 2 Figura 6 18 Control Equilibrio Posici n Medio Utilizando las siguientes Matrices de ponderaci n 1 0 0 0 10 0 Q oo o 2 41 O El vector de control ptimo es 4 8134 K _ 7 3641 Medio 0 4950 1 0054 Se debe recalcar que el rango de control en la Posici n Media tambi n se limit De esta manera el rango de variaci n para el eslab n 1 est dada por 3m 01127 rad 6 z 0 1127 rad El movimiento del eslab n 2 es controlado por el movimiento del eslab n 1 a trav s de los algoritmos de control Con esto la variaci n del eslab n 2 est dada por la relaci n 8 3 que da un rango de 04127 rad lt rad E 0 1127 i 0396 rad E 01 01127 2 4689 rad 0 6727 1 een 2 F 12 id 4688 rad Figura 6 19 L mites de Control del Pendubot en Posici n Media 98 A continuaci n se muestra la respuesta del Pendubot al aplicarle la ley de control que resuelve el problema de bala
31. Cap tulo 6 se proceder a realizar las pruebas de funcionamiento del Control implementado en FPGA 80 CAP TULO 6 PRUEBAS Y RESULTADOS Terminadas las etapas de dise o de los controladores y la l gica del programa para ambas posiciones de control se realizar en este cap tulo las pruebas y resultados experimentales de los controladores en tiempo real ajuste de los controladores l mites de conmutaci n y rango de funcionamiento del sistema usando como sistema de control al FPGA La tarjeta Spartan 3E Starter Kit es donde se implementa toda la l gica y los controladores descritos en los cap tulos anteriores Adem s se lo utiliza como interfaz de usuario para el manejo del sistema subactuado ello implica desde la puesta en marcha del sistema visualizaci n de los par metros de los controladores e incluyendo el cambio del punto de referencia de funcionamiento del sistema y la comunicaci n con la PC para una interfaz gr fica con LABVIEW 6 1 CONFIGURACI N PARA COMPILACI N Para poder descargar el sistema de control al FPGA es necesario compilar el VI Al compilar el archivo LABVIEW FPGA determina el rea utilizada en el FPGA seg n el n mero de slices flip flops lookup tables LUTs multiplicadores y bloques de memoria RAM utilizados en el dise o para as conocer el tama o de implementaci n en la tarjeta Antes de compilar el archivo es necesario configurar el modo de la FPGA es decir se debe especificar
32. JP Block DC RMS Mean Varian Analog Period diio BU EJ Ud m IP Integration Node Butterworth Notch Filter Rational Res Fs F ERES Synch ronization Scaled Wind FFT Z Transform FPGA Math amp Analysis Figura 4 20 b Continuaci n de funciones de la paleta Functions 4 5 2 1 4 Creaci n HOST FPGA El Host se debe crear dentro del mismo proyecto del FPGA Se siguen los siguientes pasos 1 Se hace click derecho sobre My Computer en la ventana del proyecto y se selecciona New VI Se nota que el nuevo VI se encuentra bajo el rbol de My Computer 48 3 Project Explorer Proyecto Pendubot FPGA lvproj File Edit View Project Operate Tools Window Help Pb x 8 Re all se Rems Files E led Project Proyecto Pendubot FPGA lvproj E My Computer Control LQR Pendubot Devt Spartan 3E Starter Board E 8 Dependencies i X Build Specifications Figura 4 21 HOST_FPGA 2 Sobre el diagrama de bloques del nuevo VI se coloca la funci n gt gt Open FPGA VI Reference la funci n se encuentra en la paleta de funciones en la interfaz de FPGA El Open FPGA VI Reference se utiliza para hacer referencia al FPGA VI situado en el mismo proyecto Sobre sta funci n se hace click derecho y se selecciona el FPGA VI como se muestra en la Figura 4 23 2 Functions Q search Programming M Ea El
33. LA SIMULACION EN TIEMPO REAL DE UN SISTEMA SUBACTUADO PENDUBOT Maestr a en Tecnolog a Avanzada Instituto Polit cnico Nacional M xico 2007 7 KALIPEDIA http www kalipedia com tecnologia tema graficos encoder optico html x1220070821klpinginf 48 Ees amp x 20070821klpinginf 92 Kes amp x2 20070821klpinginf 89 Kes 8 National Instruments Notas de aplicaci n CONVERSION DE SE AL DE ENCODER DE CUADRATURA EN SENAL DE PULSOS Y DERECHA IZQUIERDA www highlights com ec Cuenca Ecuador 9 Spartan 3E FPGA Starter Kit Board User Guide Xilinx UG230 v1 1 June 20 2008 10 Cruz V Carlos A Gallegos Alvarez Villarreal C Miguel Redise o Param trico del Pendubot para posicionamiento vertical en tiempo m nimo Instituto Polit cnico Nacional M xico 2008 11 Jerome B Daniel MECHANICAL DESIGN AND CONTROL OF THE PENDUBOT B S University of Illinois 1991 12 National Instruments Introducci n a la tecnolog a fpga Los cinco beneficios principales http zone ni com devzone cda tut p id 8259 2011 109 13 L pez V M L Ayala R J FPGA Nociones b sicas e implementaci n Universidad Polit cnica de Madrid 2004 14 National Instruments Introducci n a la plataforma de LABVIEW Embedded http zone ni com w app doc p id wv 598 2008 15 National Instruments How to program FPGAs without any VHDL knowledge 16 Datasheet CD4050BC 17 Datasheet DAC 18 _Debounce_Switc
34. Pat C MT WHERE EU EOM pet LC ou SEL EA et 102 CAP TULO 7 CONCLUSIONES Y RECOMENDACIONES 105 7 4 CONCLUSIONES nhan ntn 105 7 2 RECOMENDACIONES u ua usa assqa ode vun d dua cvv 107 REFERENCIAS BIBLIOGR FICAS U U u u 108 ANEXO A MANUAL DE USUARIO u sv a sua 111 A 1 CONEXI N DE LOS 111 A 2 DESCARGAR EL PROGRAMA EN LA TARJETA SPARTAN 3E 113 EJECUCI N DEL PROGRAMA eene u uuu 114 A 3 1 INTERFAZ EPGJRA tetti bete tiere ote bete 115 A T Modo PCO MAU CO osa ce s a a d e e RC E CE DE e C ER 116 A 3 2 Modo Manta canta 117 A 3 1 INTERFAZ COMPUTADOR HOST etes 117 ANEXO B PROGRAMACI N CON LABVIEW FPQGA erret nnns 122 B 1 CREACI N DE UN FPGA VI carnero rro rre 122 B 2 PALETA DE FUNCIONES LABVIEW FPGA 126 CREACI N DE HOST vi I tnter ntn tette traen 128 B 4 COMPILACI N FPGA vi u u 131 B 5 DESCARGA FPGA vi U I u u u 133 ANEXO C ARQUITECTURA DE LA FPGA SPARTAN 3 DE XILINX
35. al Pendubot en otro punto de referencia es posible con ambos eslabones en la posici n Tope se observa que tambi n existe una oscilaci n alrededor del punto equilibrado Como se esperaba el algoritmo de control permite estabilizar al sistema en la posici n deseada cumpli ndose siempre la condici n de 6 0 Z 6 3 3 2 Control de Balanceo y Equilibrio del Pendubot en la Posici n Media Como en el caso anterior se muestra el control del Pendubot en la posici n media Se prueba el algoritmo de control para el balanceo figura 6 17 partiendo desde la posici n de equilibrio inferior y desde ah el sistema evoluciona hasta llegar a los alrededores del punto de equilibrio inestable para ambos eslabones 96 Como se indic en 3 1 2 2 2 es necesaria una se al inicial de referencia la cual es de 0 94 V que se aplica durante 0 5948 segundos para incrementar la energia del sistema Eslab n 1 Eslab n 2 Figura 6 17 Control Balanceo Posici n Medio Al igual que en el control anterior se puede observar que el segundo eslab n se mantiene durante un instante de tiempo en la posici n deseada posici n media en donde se puede conmutar a la segunda ley de control y luego oscila libremente siguiendo su propia din mica La referencia para esta posici n es un escal n de para el eslab n linealizado eslab n 1 Las ganancias del control PD para la Posici n Media se obtuvieron a prueba y error apartado 3 1 2 2 2 k 0
36. desconecte el host o se termine la ejecuci n del mismo se configura esta funci n por ello se selecciona Close VisibleItems i Help Description and Tip Breakpoint gt NI IMAQ VO Palette Replace Close and Reset if Last Reference y Close Properties pun CT Figura B 16 Configuraci n funci n Close FPGA VI Reference 6 El Host VI debe ser similar a la Figura B 17 ETN NORTH sep 3 8 Figura B 17 Host VI Este VI permite manipular los controles del FPGA VI en la tarjeta de desarrollo B 4 COMPILACI N FPGA VI Para poder descargar el sistema de control al FPGA es necesario compilar el VI Al compilar el archivo LABVIEW FPGA determina el rea utilizada en el FPGA seg n el numero de slices flip flops lookup tables LUTs multiplicadores y bloques de memoria RAM utilizados en el dise o para as conocer el tama o de implementaci n en la tarjeta Antes de compilar el archivo es necesario configurar el modo de la FPGA es decir se debe especificar que el FPGA VI corra o arranque autom ticamente cuando se descargue sobre el dispositivo ya que al no hacerlo no se tendr independencia con la PC 132 La configuraci n se muestra en la figura B 18 453 Project Explorer Proyecto_Pendubot_FPGA_May201 lt l File Edit View Project Operate Tools Window Help SETE ACERA imn Subvi Control_LQR_Pendubot Devl Spartan 3E Starter Board onent
37. dig32 00 load dig54 00 load datol sa load dato2 sb and sb 0F load sf 10 16 bits next bit 510 datol desplazamiento a la izquierda sla dato2 sla dig10 desplazamiento a la izquierda con carry sla dig32 desplazamiento a la izquierda con carry sla dig54 sub sf 01 jump z fin load temp 03 add temp dig10 test temp 08 jump z saltol load dig10 temp saltol load temp 30 add temp dig10 test temp 80 jump z salto2 load dig10 temp salto2 load temp 03 add temp dig32 test temp 08 jump z salto3 load dig32 temp salto3 load temp 30 add temp dig32 test temp 80 jump z salto4 load dig32 temp salto4 load temp 03 add temp dig54 test temp 08 jump z salto5 load dig54 temp salto5 load temp 30 add temp dig54 test temp 80 jump z salto6 load dig54 temp salto6 jump next bit fin load dig54 dig32 load dato1 dig32 load dig32 dig10 and dig10 0f srO dig32 srO dig32 srO dig32 srO dig32 and dig54 0f srO datol srO datol srO datol srO datol add dig10 30 add dig32 30 add dig54 30 add dato1 30 return digito 0 digito 1 digito 2 digito 3 164 165 D 2 PROGRAMA LCD VHDL library IEEE use IEEE STD_LOGIC_1164 ALL use IEEE STD_LOGIC_ARITH ALL use IEEE STD_LOGIC_UNSIGNED ALL entity control lcd is Port clk in std logic reset LCD in std logic strataflash oe out std logic strataflash_we out std logic d std logic vector 3 downto 0 rs out std logic led rw out s
38. espacial o un veh culo submarino Aqu las fuerzas de reacci n debido al movimiento del brazo est n acopladas a la plataforma que no puede ser considerada como un punto de referencia inercial Para este tipo de sistemas se usan controles adicionales para mantener el control de posici n de la base Sin embargo si estos actuadores fallan o son apagados para ahorrar enero a entonces el sistema completo es subactuado e Por modelo Una tercera forma en que surgen los sistemas subactuados es debida al modelo matem tico que se est usando para el dise o del controlador por ejemplo cuando la flexibilidad de la uni n se incluye en el modelo Los sistemas subactuados son sistemas en los que no es posible realizar un control directo sobre el grado de libertad no actuado lo que hace necesario implementar t cnicas de control especiales para este tipo de sistemas Este es un campo de gran inter s para la teor a de control moderna 1 2 PENDUBOT Un sistema subactuado ampliamente usado es el Pendubot debido a que permite ilustrar la aplicaci n validez y desempe o de diferentes t cnicas de control y su implementaci n en diferentes dispositivos electr nicos ademas que representa un banco de pruebas adecuado 1 2 1 DESCRIPCI N DEL SISTEMA En esta secci n se describira al sistema PENDUBOT de una manera somera particularizando las posiciones de equilibrio y los elementos de censado La informaci n de este sistema se basa en gran
39. memoria interna de configuraci n es borrada Luego los datos de configuraci n son cargados en dicha memoria y finalmente la l gica es activada por un proceso de partida ANEXO D PROGRAMACION LCD 151 152 D 1 ASSEMBLER LCD LLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLDLLLDLLLLLLLLELLLLLLLLLLLLLLELLLLLLI Definiciones de puertos A A AS I skotsky kok AS kok k IS RG AG GG EE Ee E LCD interface ports The master enable signal is not used by the LCD display itself but may be required to confirm that LCD communication is active This is required on the Spartan 3E Starter Kit if the StrataFLASH is used because it shares the same data pins and conflicts must be avoided CONSTANT LCD output port 00 LCD character module output data and control CONSTANT LCD E 01 active High Enable E bit0 CONSTANT LCD RW 02 Read 1 Write 0 RW bitl CONSTANT LCD RS 04 Instruction 0 Data 1 RS bit2 CONSTANT LCD drive 08 Master enable active High bit3 control para saber write read CONSTANT LCD DB4A 10 4 bit Data DB4 bit4 CONSTANT LCD DB5 20 interface Data DBS bit5 CONSTANT LCD DB6 40 Data DB6 bit6 CONSTANT LCD_DB7 80 Data DB7 bit7 NAMEREG s6 datol NAMEREG s7 dato2 NAMEREG s8 igl0 NAMEREG s9 ig32 NAMEREG sd dig54 NAMEREG se temp e K K K K K K K KK R K K ee e K ode K ode K K le ole K K e o od e K gt Useful data constants RI
40. nea DIG que sale de la slice Cada una de las dos LUTs F y G de una Slice tiene cuatro entradas l gicas A1 A4 y una nica salida D Esto permite programar cualquier operaci n l gica booleana de cuatro variables en este dispositivo Adem s los multiplexores de funci n amplia pueden usarse para combinar LUTs dentro del mismo CLB o incluso a trav s de diferentes CLBs haciendo posible funciones con mayor n mero de variables Las LUT de ambos pares de slices dentro de un CLB no s lo soportan las funciones descritas si no que tambi n pueden funcionar como ROM Read Only Memory con datos inicializados al momento de configurar la FPGA Las LUTs del lado izquierdo de cada CLB soportan adem s dos funciones adicionales primero es posible programarlas como RAM distribuida lo que permite contar con espacios de memoria de 16 bits en cualquier parte de la topolog a de la FPGA 145 Segundo es posible programar una de estas LUTs como un registro de desplazamiento de 16 bits con lo que se pueden producir retardos de hasta 16 bits o combinaciones de varias LUTs pueden producirlos de cualquier largo de bits Bloques dedicados de memoria RAM La Spartan Ill tiene 24 bloques de 18 Kbits de memoria RAM El ancho del bus de datos versus el de direcciones relaci n de aspecto de cada bloque es configurable y se puede combinar varios de stos para formar memorias m s anchas o de mayor profundidad Tal como se muestra en la F
41. o los circuitos se ejecutan m s r pido que en otros dispositivos ya que su ejecuci n es en paralelo por lo que los circuitos no necesitan competir por los mismos recursos Cada tarea de procesos se asigna a una secci n dedicada del dispositivo y puede ejecutarse de manera aut noma sin ser afectada por otros bloques de l gica Como resultado el rendimiento de una parte de la aplicaci n no se ve afectado cuando se agregan otros procesos 12 Adem s sus costes de desarrollo y adquisici n son mucho menor para peque as cantidades de dispositivos y el tiempo de desarrollo es tambi n menor Las FPGA son el resultado de la convergencia de dos tecnolog as diferentes los dispositivos l gicos programables PLDs Programmable Logic Devices y los circuitos integrados de aplicaci n espec fica ASIC application specific integrated circuit 1 28 41 EVOLUCI N DE LOS DISPOSITIVOS PROGRAMABLES Se entiende por dispositivo programable aquel circuito de prop sito general que posee una estructura interna que puede ser modificada por el usuario final El primer dispositivo que cumpli estas caracter sticas fue la memoria PROM luego los PLD s los cuales son una matriz de puertas AND conectadas a otra matriz de puertas OR m s biestables mas tarde aparecieron las PLA Programmable Logic Array estos dispositivos son muy simples y producen buenos resultados con funcionalidades sencillas s lo combinacional En la actualidad
42. obtener los valores del vector K de ganancias del controlador por realimentaci n de estados que estabilice el sistema se utiliza la instrucci n de MATLAB Iqrd el cual resuelve la ecuaci n de Riccati ademas se puede utilizar el archivo qrdpen m dadas en 3 Para no usar otro programa adicional se realiza un subvi para determinar los valores de K se detalla en el cap tulo 5 Las matrices utilizadas en la funci n de MATLAB son A y B que se obtienen del proceso de linealizaci n del sistema alrededor del punto de equilibrio y las matrices Q y R se determinan de la siguiente manera Los elementos de la matriz Q se seleccionan para ponderar la importancia relativa de los diferentes componentes del vector de estado Los estados de inter s corresponden a la posici n de los enlaces es decir a los estados x y La matriz Q empleada inicialmente es Posici n Tope ODO amp coo D ooo Posici n Media g eom cu La matriz R se selecciona para ponderar el gasto de energ a en la acci n de control es decir mientras mayor sea la ponderaci n asignada la magnitud de la se al de control ser menor La matriz R empleada inicialmente es gt Posici n Tope R 1 1 gt Posici n Media R 1 1 20 El vector obtenido de K para cada posici n es gt Posici n Tope K 10 7180 10 1647 2 1136 1 4222 gt Posici n Media K 4 8134 3641 0 495 1 0
43. que el FPGA VI corra o arranque autom ticamente cuando se descargue sobre el dispositivo ya que al no hacerlo no se tendr independencia con la PC La configuraci n se muestra en la figura 6 1 81 Project Explorer Proyecto Pendubot_FPGA_May201 EET File Edit View Project Operate Tools Window Help lasg xena e a s tems Files e El Project Proyecto Pendubot FPGA May2011 lvproj amp KM My Computer dG Subvi amp E Control LQR Pendubot Devi Spartan 3E Starter Board 8 00 Componentes 5 8 Subvis i 8 0 SubVi_lazo_for i Fi FPGA Pendubot_May2011 vi jubot_May2011_lazoFor vi Rebuild Estimate Resource Usage Check Signature Generate Intermediate Files Display Compilation Results Download Remove from Project Catego Source Files Build specification name FPGA Pendubot May2011 lazoFor Bitfile name ProyectoPendubot_ControlLQRPendub_FPGA PendubotMay_A08B2762 Ivbitx Destination directory D 20_05_2011 Pendubot_2011_FPGA FPGA Bitfiles Y Run when loaded to FPGA Version number Major Minor Fix Build A 1 o o o Configuraci n de descarga Build specification description Build Cancel Figura 6 1 Propiedades de configuraci n del VI Los recursos que se han utilizado en el sistema se resumen en la tabla 6 1 este resumen lo realiza el compilador de LabVIEW FPGA
44. realizar operaciones aritm ticas de tipo entero con signo y sin signo Boolean para realizar operaciones l gicas 128 gt Comparison para comparar valores booleanos aritm ticos arrays y clusters gt Timing para controlar el tiempo de ejecuci n de operaciones del FPGA gt FPGA I O para realizar operaciones de lectura escritura y configuraciones de los puertos de la tarjeta FPGA gt Memory amp FIFO para acceder a la memoria del FPGA y la funci n FIFO first input first output para transferir datos gt Synchronization para sincronizar tareas de ejecuci n en paralelo y pasar datos entre tareas en paralelo gt FPGA Math amp Analysis para realizar operaciones matem ticas de alto rendimiento HighThroughput Math y operaciones de control sobre el FPGA Las operaciones de alto rendimiento permiten realizar operaciones de punto flotante Las operaciones de Control permiten realizar an lisis de se ales generar se ales de onda cuadrada senoidales y cosenoidales y crear aplicaciones de control PID gt Ip Integration Node integra c digo IP intellectual property es decir se maneja c digo en VHDL dentro de LabVIEW como m dulos adicionales Antes de que se integre este c digo es necesario que este previamente compilado B 3 CREACI N DE HOST VI El Host se debe crear dentro del mismo proyecto del FPGA Se siguen los siguientes pasos 1 Se hace click derecho sobre My Computer en la ventana del pr
45. respectivamente en las salidas de los IOBs que no est n en uso un circuito de retenci n Keeper del ltimo nivel l gico que se mantiene despu s de que todos los drivers han sido apagados lo que es til para cuidar que las l neas de un bus no floten cuando los drivers conectados est n en alta impedancia un circuito de protecci n para descargas electro est ticas protecci n ESD que utiliza diodos de protecci n Finalmente cada cuenta con un control para el slew rate y para la corriente de salida m xima El primero otorga la posibilidad de elegir una tasa alta de cambio de nivel con bajo s ew rate o una tasa m xima menor pero con un control de transciente para la utilizaci n de los puertos en la integraci n a buses donde al pasar de alta impedancia a un nivel de voltaje suele producirse transiciones inesperadas El segundo entrega siete niveles deferentes de corrientes m ximas tanto para el est ndar CMOS como para el TTL lo que permite adaptarse a dispositivos que necesitan mayores corrientes para su activaci n en el caso del est ndar LVCMOS a 2 5V el rango de corrientes es de 2 a 24 mA 2 4 6 8 12 16 24 mA Los soportan 17 est ndares de se ales de salida de terminaci n nica y seis de se al diferencial tambi n cuentan con un sistema integrado para coincidir con la impedancia de las l neas de transmisi n que llegan a la FPGA llamado Control Digital de Impedancia DCI el que permite elegi
46. y cuando esta disponga de los recursos necesarios Las aplicaciones donde m s com nmente se utilizan las FPGA incluyen a los DSP procesamiento digital de se ales radio definido por software sistemas aeroespaciales y de defensa prototipos de ASICs sistemas de im genes para medicina sistemas de visi n para computadoras reconocimiento de voz bioinform tica emulaci n de hardware de computadora entre otras Cabe notar que su uso en otras reas es cada vez mayor sobre todo en aquellas aplicaciones que requieren un alto grado de paralelismo 36 Esta tarjeta se puede emplear para m ltiples aplicaciones Sin embargo resulta especialmente til en los siguientes campos Docencia en el campo de la electr nica y los lenguajes de descripci n hardware HDL como tambi n los lenguajes de programaci n gr fica Por ser una placa libre y estar disponibles todos los esquemas y planos de fabricaci n se puede ampliar su funcionalidad dise ndose placas a su medida realizaci n de pr cticas especiales proyectos fin de carrera trabajos de doctorado etc Conexi n con microcontroladores Puesto que puede funcionar en modo aut nomo resulta muy til para el desarrollo de perif ricos para microcontroladores controladores de sensores coprocesadores para hacer ciertas operaciones m s r pidamente etc Adem s es posible realizar la carga del bitstream desde el propio sistema microcontrolador posibilitando el desar
47. 054 3 1 2 CONTROL DE BALANCEO El control de balanceo consiste en llevar los eslabones desde su posici n de equilibrio estable a las posiciones inestables a trav s de los movimientos del primer eslab n para este problema se utilizar las t cnicas de linealizaci n parcial 2 El control de Balanceo se disefiar en dos pasos Linealizaci n Parcial La linealizaci n parcial permite transformar de forma parcial o total la din mica no lineal del sistema a controlar en una din mica lineal La idea principal del m todo de linealizaci n parcial por retroalimentaci n de estados es para tomar en cuenta el efecto no lineal del segundo eslab n sobre el primero Compensador PD Se usar un compensador PD sobre el sistema parcialmente linealizado para llevar al primer eslab n a su posici n tope o media a trav s de una trayectoria fija o se al de referencia donde el segundo eslab n se mover libremente sin ning n control Luego se emplear el esquema de prealimentaci n para asegurar que el segundo eslab n oscile de forma controlada indirectamente a trav s del primer eslab n hasta acercarse al punto de equilibrio superior y luego conmutar a la ley de control de equilibrio 3 1 2 1 Linealizaci n Parcial Dado que el segundo eslab n es no actuado esta parte de la din mica no se puede linealizar Sin embargo linealizar uno de los grados de libertad facilita el 21 dise o de un lazo de control externo qu
48. 4 16 Agregar E S Zhu ERU mmm gt P Available Resources New FPGA VO E Slide Switches 2 Resource sw2 swo Slide Switches SWO i swa swi Slide Switches SW1 m ee BTN_EAST Push Buttons BTN_EAST BTN WEST LEDL Discrete LEDs LED1 BTN SOUTH E LED2 Discrete LEDs LED2 ROTA DAC CS Digital to Analog DAC DAC CS ROT B DAC CL Digital to Analog DAC DAC_CL ROT_CENTER E Discrete LEDs mm LEDO J le LED3 LED4 LEDS LED6 LED7 LCD m 4 m Z Place new I O in folders Cancel Help Figura 4 17 Selecci n de E S Estas entradas y salidas est n agregadas al proyecto ahora se las agrega al diagrama de bloques para su utilizaci n 1 Como ya se tiene el FPGA VI se abre el diagrama de bloques se arrastra y se suelta la E S que se desee utilizar desde el Project Explorer hacia el diagrama de bloques Figura 4 18 45 13 Untitled 1 Block Diagram on Untitled Project 1 FPGA Target Q s Wi s File Edit View Project Operate Tools Window Help CHLC 15pt Application Font 2 85 4 2 d T3 Project Explorer Untitled Project 1 File Edit View Project Operate Tools Window O xu s t Items Files Project Untitled Project 1 amp E My Computer amp B FPGA Target Devi Spartan 3E Starter Boi Slide Switches gt Z Push Buttons j F BTN NORTH l BTN_
49. 8 3 3 Usando la siguiente notaci n 5 1 O z 2 A gcosB cos 8 B 1 B 6 07 0 E Se define una nueva variable para suprimir los t rminos no lineales v 3 4 El lazo control interno que linealiza din mica 8 se puede definir ahora como 8 e 8 3 5 Utilizando esta realimentaci n para la linealizaci n se describe un nuevo sistema din mico ya linealizado con las siguientes ecuaciones wu 3 6 E u cosd u v u senf u geos 0 8 3 7 3 1 2 2 Controlador PD El sistema dado por las ecuaciones 3 6 y 3 7 es ahora lineal respecto a amp donde es la salida del sistema y v es la nueva variable manipulada a partir de la cual se obtiene el torque En base a la nueva din mica del sistema dada por 3 6 y 3 7 se dise a el controlador PD con pre alimentaci n de la aceleraci n 5 como sigue 23 v G2 k 6 6 k 82 6 3 8 Donde 82 82 y 6f son la aceleraci n velocidad y posici n deseada o de referencia respectivamente k yk son las ganancias positivas que se deben sintonizar para la generaci n de la trayectoria 3 1 2 2 1 Balanceo Tope Gracias a la realimentaci n de la linealizaci n parcial es posible conseguir la posici n angular de con una se al de referencia est tica haciendo oscilar el sistema desde la posici n estable de equilibrio a su posici n tope P
50. ABVIEW FPGA son operaciones booleanas comparaciones y operaciones matem ticas b sicas Esta paleta ofrece todas las posibilidades de funciones que se pueden utilizar en el diagrama de bloques dentro del entorno de LabVIEW FPGA donde al hacer click se escoje y ubica dentro del programa Functions Q Search Programming gt col El Ye Structures Array Cluster amp Cl gt gt w gt Numeric Boolean Comparison 4 I Y b B iib Timing FPGAVO Memory amp F Fe F Pl n4 Synchronizat FPGA Math IP Integration Figura B 9 Paleta de Funciones 24 Las Funciones contenidas en esta Paleta Functions gt gt Programming son 127 Structures am Array DY A Cluster amp Class wass 4 SS search SS customizer zn yer Emm i 4t amp Search Y Customizer m Bg gl 5 E pa Array Size Index Array Replace Arra Insert Into Ar Delete From ad For Li While Loop Timed Struct Case Struct i EE wc gt Ibid WU EN E Unbundle
51. AD s4 FO Enable 0 RS 0 Instruction RW 0 Write E 0 OUTPUT s4 LCD output port Release master enable RETURN Reset and initialise display to communicate using 4 bit data mode Includes routine to clear the display Requires the 4 bit instructions 3 3 3 2 to be sent with suitable delays following by the 8 bit instructions to set up the display 28 001 Function set 0 4 bit mode 1 2 line 0 5x7 dot matrix xx 06 000001 Entry mode 1 increment 0 no display shift 00001 Display control 1 display on 0 cursor off 0 cursor blink off 01 00000001 Display clear Registers used s0 51 s2 53 s4 LCD reset CALL delay 20ms LOAD s4 30 wait more that 15ms for display to be ready CALL LCD write inst8 CALL delay 1ms CALL delay 1ms RETURN CALL LCD write inst4 send 3 CALL delay 20ms wait gt 4 1ms CALL LCD_write_inst4 send 3 CALL delay 1ms wait gt 100us CALL LCD write inst4 send 3 CALL delay 40us wait gt 40us LOAD s4 20 CALL LCD write inst4 send 2 CALL delay 40us wait gt 40us LOAD s5 28 Function set CALL LCD write inst8 LOAD s5 06 Entry mode CALL LCD write inst8 LOAD s5 0C Display control CALL LCD write inst8 LCD clear LOAD s5 01 Display clear wait gt 1 64ms for display to clear Position the cursor ready for characters to be written The display is formed of 2 lines of 16 characters and each position has a corresponding addr
52. Diagrama simplificado de una slice del lado izquierdo de un CLB Salir de la slice por la l nea X y volver a interconectarse Dentro de la slice X sirve como entrada al DXMUX que alimenta la entrada de datos D correspondiente al elemento de almacenamiento FFY La salida Q de este elemento maneja la ruta XQ que sale de la slice Controlar el multiplexor CYMUXF de la cadena de carry Con la cadena de carry servir como una entrada a la compuerta XORF que realiza operaciones aritm ticas y produce el resultado en X 144 Manejar el multiplexor FSMUX para implementar funciones l gicas m s anchas que 4 bits Las salidas D de los F LUT y G LUT sirven de entradas de datos para este multiplexor En suma a los caminos l gicos principales descritos reci n existen dos rutas de bypass que entran a la slice como BX y BY Una vez dentro de la FPGA BX en la parte de debajo de la slice o BY en la parte superior puede tomar cualquiera de varias ramas diferentes Hacer bypass de la LUT y del elemento de almacenamiento luego salir de la slice como BXOUT y volver a interconectarse Hacer bypass a la LUT y luego pasar a trav s del elemento de almacenamiento para luego salir como XQ Controlar el multiplexor F5MUX Servir como una entrada a la cadena de carry v a los multiplexores Manejar la entrada DI de la LUT BY puede controlar la entrada REV de FFY y de FFX Finalmente el multiplexor DIG_MUX puede derivar la ruta BY hacia la l
53. EL PROGRAMA EN LA TARJETA SPARTAN 3E Si la tarjeta utilizada no contiene el programa para el control del PENDUBOT se debe descargar el programa en la tarjeta Spartan 3E por medio del LABVIEW FPGA como se indica en la figura A 5 Project Explorer Proyecto_Pendubot_FPGA Ivproj b e gl x ta File Edit View Project Operate Tools Window Help xenia eale Items Files 8 My Computer 5 G Subvi i i lu Variables_ Control LQR i Gl Componer i eE SubVis a OnboardC Dependeni Build Spec Host Pendub 3 8 Dependencies PEE Control PD i job Draw Pendubot vi i F Lineal_LQR Pendubot vi b ml Texto Pasante vi El FPGA P i UR Build Specific b Project Proyecto Pendubot FPGA Ivproj Open Explore Show in Files View Ctrl E Print Run Find Save Save As Create Build Specification 114 Download VI To Flash Memory Remove from Project Rename F2 1 Properties Figura A 5 Descarga de programa a Spartan 3E Una vez revisada las conexiones y listo el programa se realiza la ejecuci n sea por medio de la interfaz en la FPGA o en el Computador A 3 EJECUCION DEL PROGRAMA El programa se inicia al momento de encender el FPGA deben tomarse en cuenta las siguientes consideraciones antes de ejecutar las opciones de control que se indican en la interfaz de la FPGA por medio del LCD o en la interfaz con el computador El Pendubot
54. ELLLLLLLLLLLLLLLLLELLLLLLLLLLLLLLLLLLLLLLLLLII gt Software delay routines R ole ole RR R SE ole SE ole RE SR SE ole ole RE K HE K SE RER RR HR SE K K K K OR KK E KK K K ok ok K ok ok ok ok gt Delay of lus Constant value defines reflects the clock applied to KCPSM3 Every instruction executes in 2 clock cycles making the calculation highly predictable The 6 in the following equation even allows for CALL delay 1us instruction in the initiating code delay lus constant clock rate 6 4 Registers used sO delay 105 LOAD 50 delay 105 constant wait lus SUB s0 01 JUMP NZ wait 105 RETURN Delay of 40us gt Registers used s0 s1 delay_40us LOAD 1 28 340 x lus 40us wait 40us CALL delay lus SUB s1 01 Where clock rate is in MHz 157 JUMP NZ wait_40us RETURN Delay of I ms Registers used 50 51 s2 delay 15 LOAD 2 19 25 4005 105 wait 1115 CALL delay 4005 SUB 52 01 JUMP NZ wait 1ms RETURN Delay of 20ms Delay of 20ms used during initialisation Registers used s0 51 s2 s3 delay_20ms LOAD s3 14 320 x Ims 20ms wait 20ms CALL delay 1ms SUB s3 01 JUMP NZ wait_20ms RETURN D Delay of approximately 1 second Registers used s0 51 s2 53 s4 delay 1s LOAD s4 32 50 2011 1000101 wait 1s CALL delay 20115 SUB s4 01 JUMP NZ wait 1s RETURN DIE HOROR IRR EG
55. ESCUELA POLIT CNICA NACIONAL FACULTAD DE INGENIER A EL CTRICA Y ELECTR NICA CONTROL DEL M DULO PENDUBOT UTILIZANDO UNA FPGA PROYECTO PREVIO A LA OBTENCI N DEL T TULO DE INGENIERO EN ELECTR NICA Y CONTROL RODRIGO ALEXANDER L PEZ ENCALADA Rodrigo_alexanderlopez hotmail com DIRECTOR PATRICIO CHICO MSc Patricio chico epn edu ec Quito AGOSTO 2011 DECLARACI N Yo Rodrigo Alexander L pez Encalada declaro bajo juramento que el trabajo aqu descrito es de mi autor a que no ha sido previamente presentada para ning n grado o calificaci n profesional y que he consultado las referencias bibliogr ficas que se incluyen en este documento A trav s de la presente declaraci n cedo mis derechos de propiedad intelectual correspondientes a este trabajo a la Escuela Polit cnica Nacional seg n lo establecido por la Ley de Propiedad Intelectual por su Reglamento y por la normatividad institucional vigente Rodrigo Alexander L pez Encalada CERTIFICACI N Certifico que el presente trabajo fue desarrollado por el se or Rodrigo Alexander L pez Encalada bajo mi supervisi n MSc Patricio Chico DIRECTOR DE PROYECTO AGRADECIMIENTO Nunca un a o se present con tantas pruebas y obst culos con seguridad puedo decir que los aprendizajes obtenidos en este proceso marcar n mi camino de hoy en adelante Quiero Agradecer a Dios por darme fortaleza para vencer los retos que se me han presentado y permitirme
56. I 18 el cual se ha adaptado para realizar la funci n descrita up down counter Set point 0 0009765625 Figura 5 23 Control del Encoder Rotatorio e Debounce Es un subvi de antirrebote e Detect Subvi que realiza la detecci n del sentido de giro de la perilla 5 5 22 Manejo del LCD Para el manejo del LCD se realizar la programaci n en VHDL ya que LABVIEW FPGA permite la integraci n entre IP Intellectual Property y programaci n gr fica 77 reset strataflash strataflash we Figura 5 24 Manejo del LCD Para realizar esta integraci n es necesario tener el c digo en vhdl y se realizar en el software de Xilinx ISE Design Suite 12 1 para mayor informaci n de programaci n en vhdl referirse a 20 y 21 El potencial de este dispositivo permite instanciar microprocesadores para programaci n en Assembler en el tutorial de Integrating a picoblaze processor in LabVIEW FPGA by use of IP node 22 indica c mo realizar este proceso y los programas utilizados para ello El programa en Assembler del LCD y el programa en vhdl se indican en el Anexo D 5 5 2 3 Manejo de la Interfaz en la Tarjeta Spartan 3E Para el manejo del Pendubot desde la tarjeta Spartan 3E se indica en las siguientes secciones Pulsadores Indicadores de control gt BTN_EAST Control Tope lt BTN_WEST Control Medio Control M A Tipos de Manual Autom tico
57. L LCD write data LOAD s5 character space CALL LCD write data LOAD 55 character space CALL LCD write data LOAD 55 character space CALL LCD write data LOAD s5 character space CALL LCD write data return control tope load s5 10 call LCD cursor call disp ctrltope load s5 20 call LCD cursor call tetal load s5 28 call LCD cursor call teta2 jump prog principal control medio load s5 10 call LCD cursor call disp ctrlmedio load s5 20 call LCD cursor call tetal load s5 28 call LCD cursor call teta2 jump prog principal tetal LOAD s5 character teta CALL LCD write data Muestra tetal LOAD 85 character 1 CALL LCD write data LOAD s5 character equals CALL LCD write data input s0 01 and s0 01 compare s0 01 call z negativo input sa 02 input sb 03 call binario bcd call disp numero LOAD 85 character space CALL LCD write data LOAD s5 character space CALL LCD write data return teta2 LOAD s5 character teta CALL LCD write data Muestra teta2 LOAD 85 character 2 CALL LCD write data LOAD s5 character equals CALL LCD write data input s0 01 and s0 02 compare s0 02 call z negativo input sa 04 input sb 05 call binario bcd call disp numero LOAD s5 character space CALL LCD write data LOAD s5 character space CALL LCD write data return gt negativo LOAD s5 character minus CALL LCD_write_data Muestra menu 2 return 156 LLLLLLLLLLLLLLLLLLLLLLELLLLLLLLLLLLLLDLLLELLLLL
58. O DE LA TARJETA DE MANEJO DE ENCODERS Y DE AJUSTE DE SENAL DE CONTROL Los codificadores pticos utilizados para sensar las posiciones angulares de los eslabones entregan una senal de 5V como 1L para lo cual se emplea un circuito adicional que entregue un voltaje de 3 3V como 1L est ndar LVTTL para no ocasionar danos a la tarjeta Secci n 5 1 Adquisici n de Se ales Adem s en la misma placa se ha situado el acondicionamiento de la sefial de control para obtener la se al adecuada Secci n 5 3 Salida de Se ales Se realizan las pruebas necesarias para comprobar que los ajustes fueron los adecuados y que se obtienen los voltajes necesarios para que el sistema funcione correctamente 6 3 2 FUNCIONAMIENTO DE LOS ALGORITMOS DE CONTROL Una vez verificado el desempe o adecuado del hardware se procede a la comprobaci n de los m dulos del contro y de los algoritmos de control implementados en la FPGA Para ello se probaron los algoritmos de control por separado con la finalidad de observar el comportamiento individual sobre el sistema y los efectos de la se al de control Considerando diferentes puntos de operaci n en el control de equilibrio y variando los diferentes controladores se procedi a experimentar con diferentes ganancias lo cual permitir la verificaci n de los algoritmos de control permitiendo adem s establecer los rangos de operaci n de la posici n angular de los enlaces alrededor de los puntos de equili
59. OpenFPGA Read Write Invoke Meth Close FPGA Hd E Dynamic FPGA Interfa asm pap NS 3e e Scaling Advanced niP2P resource name FPGA VI Reference Out error in error out No Target Figura B 12 HOST FPGA Open FPGA VI Reference 130 45 Configure Open FPGA VI Reference pd Open Build Specification Control_LQR_Pendubot Debounce_Switch vi Ga Bitfile Y Run the FPGA js Adg_encoder_x4 vi ie Ajuste_Sefial Trama DAC vi Bind FPGA hd Configuraci n_DAC_CHA vi Debounce Switch vi Detect Knob Rotation vi sl Control PD vi Convert Pulsos a rad grados vi n Velocidad vi Dynamic mol Figura B 13 Selecci n del FPGA VI 3 Se coloca la funci n Read Write Function gt gt FPGA Interface gt gt Read Write el cual hace referencia a los terminales de control del FPGA VI creado FPGA VI Reference In E seg P FPGA VI Reference Out error in error out b Unselected Figura B 14 Read Write 4 Se hace click sobre la funci n Read Write y se selecciona los controles que se deseen observar y o manipular en el Host VI 5 Se cierra el recurso abierto en la funci n funci n Function gt gt FPGA Interface gt gt Close FPGA VI Reference FPGA VI Reference In error in error out Figura B 15 Close FPGA VI Reference 131 Para que el HOST FPGA no aborte la ejecuci n sobre el FPGA cuando se
60. P8 FPGA gt DAC Asynchronous active Low reset input SPI_MISO N10 FPGA DAC Serial data Master Input Slave Output Tabla 5 1 Senales de Configuraci n 9 Signal Disabled Device Disable Value SPI_SS_B SPI serial Flash 1 AMP_CS Programmable pre amplifier 1 AD_CONV Analog to Digital Converter ADC 0 SF StrataFlash Parallel Flash PROM 1 FPGA INIT B Platform Flash PROM 0 Tabla 5 2 L gica para deshabilitar los dispositivos compartidos con el bus SPI 9 El subvi de configuraci n del DAC se lo realizar de acuerdo a las tablas anteriores y se muestra en la figura 5 11 61 w p CS Chip seteet Pnu AMP C Say 5 5 Figura 5 11 SubVI de configuraci n del DAC Da Icono del subvi p 6 5 3 1 2 Subvi de Ajuste de se al y Trama DAC El subvi ajusta la se al de control y realiza la trama SPI para la comunicaci n entre el DAC y el FPGA de la tarjeta Spartan 3E La figura 5 12 muestra un ejemplo de los tiempos del bus SPI Cada bit es transmitido o recibido con la se al de reloj SPI_SCK este bus soporta el reloj del FPGA que es de 50 MHz sin embargo se puede explorar los tiempos de comunicaci n en el data sheet del conversor LTC2624 17 DAC CS A D 22106 Figura 5 12 Formas de comunicaci n SPI 9 El protocolo de comunicaci n requerido interfaz entre el DAC el FPGA se muestra en la figura 5 13 Como se observa el pro
61. PD para trazar la trayectoria que debe seguir el eslab n uno y llevarlo a la posici n deseada y con ello tambi n llevar al eslab n dos El Cap tulo Cuatro Descripci n del FPGA se describe la FPGA su tecnolog a arquitectura evoluci n y aplicaciones luego se detalla el m dulo Spartan 3E Starter Kit el cual es el que se utiliza para este proyecto se describen los componentes que se utilizan y en el Anexo C se detallan todos los componentes del m dulo Tambi n se describe su programaci n en LABVIEW El Cap tulo Cinco Implementaci n del Algoritmo se detalla la programaci n del control as como tambi n la l gica de conmutaci n de cada controlador EI Cap tulo Seis Pruebas y Resultados muestra la ejecuci n del Algoritmo desde la interfaz gr fica y tambi n su ejecuci n sin interfaz gr fica Finalmente el Cap tulo Siete Conclusiones y Recomendaciones demuestra la utilizaci n de nueva tecnolog a en sistemas de control as como tambi n la utilizaci n de software adicional para una mejor y f cil abstracci n del algoritmo CAPITULO 1 FUNDAMENTOS BASICOS Los beneficios que la ingenieria de control aporta a la sociedad actual son indiscutibles ayudando significativamente a la mejora de la calidad de los productos fabricados al aumento de la eficiencia de los procesos a la minimizaci n del consumo de energ a al aumento de la seguridad de las plantas industriales entre otros 4 En la
62. RECOMENDACIONES Se desarroll una metodolog a que permita controlar llevar a la posici n de equilibrio y manejar cualquier perturbaci n de manera ptima y en tiempo real al Pendubot empleando t cnicas de control moderno y cl sico a trav s de una FPGA 7 4 CONCLUSIONES La adaptaci n del M dulo Pendubot para ser controlado por una FPGA y el dise o de los diferentes controladores controlador Cl sico para el Control del Balanceo y un controlador Moderno para el Control de Equilibrio que conforman el algoritmo de control han permitido el correcto funcionamiento del sistema cumpli ndose de esta manera con el objetivo del trabajo propuesto que es implementar algunas t cnicas de control sobre la FPGA utilizando LabVIEW como plataforma de desarrollo El algoritmo de control desarrollado para el Control de Balanceo se dise mediante la linealizaci n por realimentaci n parcial donde una vez linealizado se aplic un control PD control cl sico el cual permiti llevar al sistema alrededor del punto de operaci n y el algoritmo de control desarrollado para el Control de Equilibrio del sistema se dise mediante la t cnica del LQR control moderno el cual permiti estabilizar al Pendubot en las configuraciones tope y media de equilibrio mostrando su eficacia y robustez al momento de estabilizar al sistema y ante cualquier perturbaci n existente adem s se dise o una interfaz donde se puede variar la matriz ptima de c
63. RIA E aqo ESK E EIE O ol o ii Constant to define a software delay of lus This must be adjusted to reflect the clock applied to KCPSM3 Every instruction executes in 2 clock cycles making the calculation highly predictable The 6 in the following equation even allows for CALL delay 1us instruction in the initiating code delay lus constant clock rate 6 4 Where clock_rate is in MHz Example For a 50MHz clock the constant value is 10 6 4 11 OB Hex For clock rates below 10MHz the value of 1 must be used and the operation will become lower than intended CONSTANT delay 105 constant OB ASCII table CONSTANT character a 61 CONSTANT character b 62 CONSTANT character c 63 CONSTANT character d 64 CONSTANT character e 65 CONSTANT character f 66 CONSTANT character g 67 CONSTANT character h 68 CONSTANT character 1 69 CONSTANT character 6A CONSTANT character k 6B CONSTANT character 6C CONSTANT character m 6D CONSTANT character n 6E CONSTANT character o 6F CONSTANT character p 70 CONSTANT character q 71 CONSTANT character r 72 CONSTANT character s 73 CONSTANT character t 74 CONSTANT character u 75 CONSTANT character v 76 CONSTANT character w 77 CONSTANT character x 78 CONSTANT character y 79 CONSTANT character z 7A CONSTANT character A 41 CONSTANT character B 42 CONSTANT character C 43 CONSTANT character D 44 CONSTANT character E 45 CONSTANT c
64. RROLLO SPARTAN 3E STARTER KIT 9 30 vii 4 3 1 CONVERSOR DIGITAL ANALOGO 32 4 3 2 CONECTORES DE EXPANSI N asa 34 4 4 APLICACIONES DE UNA FPQA 35 45 PROGRAMACI N DE UNA FPGA cccccscessssssessssesescesesessevessevereesarens 36 4 5 1 PROGRAMACI N GR FICA DE ALTO 37 4 5 2 M DULO LABVIEW FPGA oococoniconconcnonocncnnnncocnononornnnononornnnenornnnoos 37 4 5 2 1 Entorno LABVIEW FPQA 39 4 5 2 1 1 Conceptos B SICOS inca aie 39 4 5 2 1 2 Programaci n B sica LABVIEW 41 4 5 2 1 3 Paleta de Funciones LabVIEW FPGA 45 4 5 2 1 4 Creaci n HOST FPQGA 47 CAP TULO 5 IMPLEMENTACI N DEL ALGORITMO u 51 5 1 ADQUISICI N DE SE ALES essere tenente tenentes 51 5 1 1 ACONDICIONAMIENTO DE SE ALES DE ENCODER 52 5 1 2 PROGRAMA DE ADQUISICION DE DATOS Y ESTIMACI N DE VELOCIDADES c 53 5 1 2 1 Subvi de adquisici n de datos del encoder 53 5 1 2 2 Subvi de conversi n de pulsos a radianes 55 5 1 2 3 Subvi de
65. SOUTH ROTA pd ROTA i d ROT CENTER nn BTN_NORTHS gt Z Discrete LEDs F LEDO E LEDI ram LED j Pd LEDS bis LEDO i LED7 H LCD Cd VGA Port Figura 4 18 E S agregadas al Diagrama de Bloques Funciones de la Paleta FPGA Cuando se selecciona un proyecto con FPGA LABVIEW muestra solo las opciones disponibles para una FPGA espec fica esto es que solo muestra las funciones y subpaletas que se pueden utilizar con ese dispositivo Las funciones que incluye LABVIEW FPGA son operaciones booleanas comparaciones y operaciones matem ticas b sicas 4 5 2 1 3 Paleta de Funciones LabVIEW FPGA Esta paleta ofrece todas las posibilidades de funciones que se pueden utilizar en el diagrama de bloques dentro del entorno de LabVIEW FPGA donde al hacer click se escoje y ubica dentro del programa Functions Q Search Programming Structures Array Cluster amp Cl har gt gt gt P BP Numeric Boolean Comparison Li is 3 o B iib Timing FPGAI O Memory amp F FE m Synchronizat FPGA Math IP Integration Figura 4 19 Paleta de Funciones 24 46 Las Funciones contenidas en esta Paleta Functions gt gt Programming son gt gt Structures para el control del flujo de datos Array para crear y manipular conjunto de datos del mismo tipo y d
66. STARTER KIT 9 La Tarjeta de desarrollo Spartan 3E Starter Kit contiene varios elementos que facilitan mucho el disefio de proyectos 9 Caracter sticas Principales gt Xilinx Devices Spartan 3E FPGA XC3S500E 4FG320C CoolRunner CPLD XC2C64A 5VQ44C Platform Flash XCF04S VO20C gt Clocks 50 MHz crystal clock oscillator Memory 128 Mbit Parallel Flash 16 Mbit SPI Flash 64 MByte DDR SDRAM Conectores e Interfaces Ethernet 10 100 Phy JTAG USB download Two 9 pin RS 232 serial port PS 2 style mouse keyboard port Rotary encoder with push button Four slide switches Eight individual LED outputs Four momentary contact push buttons 100 Pin expansion connection ports Three 6 pin expansion connectors VON ON V V V V V V WV Display 16 character 2 Line LCD La siguiente figura muestra el diagrama de bloques de la tarjeta Spartan 3E 31 Digilent Low Cost Parallel Portto JTAG Inguded Cable Low cost JTAG Download Cable Connector Parallel Cable V MutliPro Desktop Tool JTAG Conned or v A1 Expansion XILINX XCFES Abit Configuration A2 Expansion PROM Header PlatformFlash B1 Expansi 2568x16 Contigurati RES 256Kx16 PROGRAM tons SRAM XILINX Pushbutton color Configuration Seat ised FPGA Jumpers RS 232 Port 95 232 Serial Driver Auxiliary Osallator Socket ERE Osallator Display LCD 8 Slide Sw
67. Ya que el voltaje de salida en condiciones normales es 66 de 5V es necesario implementar un divisor de tensi n mediante el potenci metro RV1 de tal forma que se obtenga el valor deseado de 3V El circuito dise ado se muestra en la figura 5 17 DAC_CHA R3 100 Salida de acondicionamiento LM324 180 Figura 5 17 Circuito de acondicionamiento de voltaje La fuente de 15V utilizada para la alimentaci n de los amplificadores operacionales que realizan el acondicionamiento de la se al de control se la realiza con la del circuito de alimentaci n del servoamplificador m dulo de potencia del Pendubot 3 el cual cuenta con stas fuentes El circuito de la Fuente de poder y del servoamplificador se muestran en la figura 5 18 a y b respectivamente a las cuales no se les realizar n modificaciones de los circuitos originales CON_IN Ri EE igk 29000uF tt 29000uF Transformador a 67 STOCH Q LINZ gt cic ST FAIL NAWOS gt 55 Q va 3781573 ONS e o Sy JAJnz 2 so TS IND ga Ta b Figura 5 18 a Fuente de Poder 3 b Circuito del Servoamplificador 3 68 Con todas las se ales disponibles se realizar la l gica del programa utilizando el potencial del FPGA se realizar el programa en forma modular para que cada uno de los m dulos realice una funci n espec fi
68. Z 0 posici n estable de equilibrio El funcionamiento del control puede observarse al analizar las curvas de posici n de los enlaces realizando la conexi n entre la FPGA y la computadora 6 3 3 1 Control de Balanceo y Equilibrio del Pendubot en la Posici n Tope 86 A continuaci n se implementa el algoritmo de control para el balanceo y se muestran las gr ficas de las respuestas para ambos eslabones figura 6 5 partiendo desde la posici n de equilibrio inferior y desde ah el sistema evoluciona hasta llegar a los alrededores del punto de equilibrio inestable para ambos eslabones 1398 Eslab n 1 Eslab n 2 Figura 6 5 Control Balanceo Posici n Tope Esto es lo que se logra con el control PD con linealizaci n parcial La referencia de posici n es un escal n de para el eslab n linealizado eslab n 1 Como se puede observar el segundo eslab n se mantiene durante un instante de tiempo en la posici n deseada para la posici n tope en donde se puede conmutar a la segunda ley de control y luego oscila libremente siguiendo su propia din mica Las ganancias del control PD se obtuvieron a prueba y error apartado 3 1 2 2 1 k 1 0282 kg 0 0527 Como se puede observar el control de balanceo del Pendubot es resuelto en forma satisfactoria Seguidamente se implementa el algoritmo de control para el equilibrio y se muestran las gr ficas de las respuestas para ambos eslabones figura 6 6 partiendo desde l
69. _May201 Bab C pacha re File Edit View Project Operate Tools Window Help xo X SA m sis Items Files E ld Project Proyecto Pendubot FPGA May2011 lvproj B My Computer 8 Subvi E Control LQR Pendubot Devi Spartan 3E Starter Board G2 Componentes QJ SubVis lazo for Open le FPGA Pendubot Explore EEE Show in Files View Ctrl E OnboardCloc 5 Dependencies Print Build Specificatic L E FPGA Pendub F E Host Pendubot May Find gt amp Dependencies L Build Specifications Save Save As Create Build Specification Remove from Project Rename F2 Properties Figura 6 3 Descarga a la tarjeta Spartan 3E Starter Kit El mensaje que asegura la descarga del archivo es Download Successful como se indica en la figura 6 4 Spartan3E StatusDia 2 sss Status Download successful Figura 6 4 Descarga exitosa del archivo lvbitx a la tarjeta Spartan 3E Starter Kit Una vez descargado el archivo a la tarjeta se procede a realizar las pruebas necesarias para el funcionamiento del Pendubot con el FPGA 6 3 PRUEBAS Y AN LISIS DE RESULTADOS El funcionamiento adecuado del sistema depende de cada una de las partes integrantes del Pendubot siendo necesario realizar algunas pruebas que permitan verificar el correcto desempe o de cada una de ellas 84 6 3 1 FUNCIONAMIENT
70. a K gt Y V V V V V WV LEDO LED1 LED2 LEDS LED4 LED5 LED6 LED7 ON OFF Movimiento Encoder 1 Movimiento Encoder 2 Control en Ejecuci n Control Tope Control Medio Manual Automatico FPGA ON Tipo de Control Manual Autom tico M A Posiciones de los eslabones mr ae b Figura A 8 a LCD b Leds indicadores El sistema de control permite el control del sistema Pendubot en modo manual o automatico A 3 1 Modo Autom tico Esta opci n permite operar al sistema autom ticamente a la posici n media o a la posici n tope sin necesidad de intervenir en el balanceo del sistema Para ello el SW1 debe estar en bajo o en la posici n por default del switch 117 A 3 2 Modo Manual Esta opci n permite operar al sistema manualmente es decir que no funciona el control de balanceo y por ello se debe llevar manualmente a los eslabones alrededor del punto de operaci n y luego presionar el tipo de control ya sea este tope o medio Para ello el SW1 debe estar en alto A 3 1 INTERFAZ COMPUTADOR HOST Para la ejecuci n de la interfaz en el computador se requiere tener instalado LABIEW v10 0 y los ToolKits de Real Time y FPGA El archivo a ejecutarse esta en el proyecto Pendubot FPGA y el archivo a ejecutarse el HOST_Pendubot gt gt Project Proyecto_Pendubot_FPGA HOST_Pendubot La pantalla principal se muestra en la figura A 9 ESCUELA POLIT CNICA NACIONAL FACULTAD DE INGENIER
71. a posici n de equilibrio inestable superior donde se equilibra el sistema en esa posici n 87 Eslab n 1 Eslab n 2 Figura 6 6 Control Equilibrio Posici n Tope Utilizando las siguientes Matrices de ponderaci n 1000 Q R 11 1 0 0 0 0 0 El vector ptimo de control es 10 7180 k 7101647 Tape 2 1136 1 4222 Se debe recalcar que el rango de control en la posici n tope se ha limitado debido a que el sistema est linealizado a un solo punto de equilibrio De esta manera el rango de variaci n para el eslab n 1 est dada por TE 3r rad lt 0 lt rad 4 4 Esto tambi n permite variar el punto de operaci n dentro de este rango de control El movimiento del eslab n 2 es controlado por el movimiento del eslab n 1 a trav s de los algoritmos de control Con esto la variaci n del eslab n 2 est dada por la relaci n amp que da un rango de T T rad lt 0 lt rad 4 4 88 f Eslab n 1 Eslab n 2 Figura 6 7 L mites de Control del Pendubot en posici n Tope En seguida se muestra la respuesta del Pendubot al aplicarle la ley de control que resuelve el problema de balanceo y de equilibrio es decir el control h brido del sistema El control inicial es el control de Balanceo y cuando el sistema est cerca del punto de equilibrio inestable superior conmuta al segundo control la ley de control de equilibrio E
72. abled to prevent it conflicting with the LCD display strataflash oe lt 1 strataflash we lt 1 Control of read and write signal lcd rw lt lcd rw control and lcd drive use read write control to enable output buffers d lt Icd_output_data when Icd rw controlz 0 and Icd_drive 1 else ZZZZ Microprocesador lcd kcpsm3 kcpsm3 PORT MAP address gt address instruction gt instruction id gt id write strobe gt write strobe out port gt out port read strobe gt read strobe in port gt in port interrupt interrupt interrupt ack gt interrupt ack reset gt reset clk gt clk Memoria Icd led disp PORT MAP address gt address instruction gt instruction clk gt clk output ports process clk begin if clk event and clk 1 then if write_strobe 1 then if port_id 0 0 then output data lt out port 7 downto 4 drive lt out port 3 led rs lt port 2 led rw control lt out port 1 e lt port 0 end if end if end if end process input_ports process clk variable tl_aux std_logic_vector 9 downto 0 0000000000 variable t2_aux std_logic_vector 9 downto 0 0000000000 variable signo_tl std_logic 0 variable signo_t2 std_logic 0 variable control_aux std_logic_vector 7 downto 0 begin if clk event and clk 1 then Deteccion de signos if tetal 9
73. acter T CALL LCD write data LOAD s5 character R CALL LCD write data LOAD s5 character CALL LCD write data LOAD s5 character L CALL LCD write data LOAD s5 character space CALL LCD write data LOAD s5 character CALL LCD write data LOAD s5 character E CALL LCD write data LOAD s5 character CALL LCD write data LOAD s5 character D CALL LCD write data LOAD s5 character U CALL LCD write data LOAD s5 character B CALL LCD write data 162 LOAD s5 character_O CALL LCD_write_data LOAD s5 character CALL LCD write data RETURN muestra FPGA en la actual posicion del cursor en el LCD disp FPGA LOAD s5 character F CALL LCD write data LOAD s5 character P CALL LCD write data LOAD s5 character G CALL LCD write data LOAD s5 character A CALL LCD write data RETURN gt muestra gt Control Tope en la actual posicion del cursor en el LCD disp_ctrltope LOAD s5 character_mayor CALL LCD_write_data LOAD 5 character C CALL LCD write data LOAD s5 character t CALL LCD write data LOAD s5 character CALL LCD write data LOAD s5 character 1 CALL LCD write data LOAD s5 character space CALL LCD write data LOAD s5 character T CALL LCD write data LOAD s5 character o CALL LCD write data LOAD s5 character CALL LCD write data LOAD s5 character e CALL LCD write data LOAD s5 character space CALL LCD write data LOAD s5 character space CALL LCD write data LOAD s5 characte
74. ador de fase PS Adem s incluye cierta l gica para status La Figura 6 muestra un diagrama de bloques de este elemento funcional de la FPGA En L LI pspone Pscuk I Y Clod CLKIN T7 t Distribution ila 2 SL cuo Delay LIBE TS prr Suds idis ss Hr cuero SOTE l 3 BL 2 a 8 CLK2X180 CLKDV I prs 7 CLKFX DLL H CLKFX180 air Status Ha LOCKED Logic Hp STATUS 7 0 Figura 6 Diagrama de bloques de uno de los cuatro DCMs de la Spartan III El DCM realiza tres funciones principales Eliminaci n de skew de reloj El concepto de skew describe el grado al cual las se ales de reloj pueden bajo circunstancias normales desviarse del alineamiento de la fase cero Ello ocurre cuando peque as diferencias en los retardos de las rutas causan que la se al de reloj llegue a diferentes puntos del circuito en tiempos diferentes Este skew de reloj puede incrementar los requerimientos de set up time y de hold time lo que puede perjudicar el desempe o de aplicaciones de alta frecuencia El DCM elimina el skew de reloj alineando la salida de la se al de reloj que genera con otra versi n de la misma se al que es retroalimentada Como resultado se establece una relaci n de cero desfase entre ambas se ales 147 S ntesis de frecuencia Provisto de una se al de reloj de entra
75. brio 6 3 3 RESULTADOS Verificado el funcionamiento de cada controlador por separado se procede a realizar el control del Pendubot con la FPGA en las posiciones tope y medio 85 luego utilizando el control h brido es decir el control de balanceo y el control de equilibrio para cada una de las posiciones En esta secci n se muestra que con la llegada de los FPGA se tienen m s beneficios a parte del desarrollo r pido y de bajo costo Los FPGA pueden ser reconfigurados una y otra vez se puede dise ar hardware que pueden ser actualizados en el campo que las FPGA han incrementado la vida til y la confiabilidad de los sistemas ya que se aprovecha las ventajas de su capacidad de reprogramaci n Y se comprobar que se puede configurar un complejo sistema de computador como es desde la adquisici n de datos hasta la interfaz de usuario para un sistema de control en un solo circuito en donde se ha implementado los dos tipos de controles Para realizar las pruebas con ambos controladores es necesario que el Sistema se encuentre en la posici n inicial dependiendo si es control manual o autom tico Control Manual la posici n inicial debe ser de acuerdo al tipo de control Si se realiza el control Tope la posici n inicial debe ser alrededor del punto E 0 y en el control Medio la posici n inicial debe ser alrededor del punto gt Control Autom tico la posici n inicial es igual para ambos tipos de control
76. ca 5 4 L GICA DEL PROGRAMA El procesamiento de la FPGA es en paralelo por lo que cada uno de los m dulos puede funcionar independiente y a diferentes tiempos de ejecuci n 5 4 1 M DULO DE ADQUISICI N La adquisici n de datos de realizar por medio del conector J1 y su ejecuci n dentro de un lazo Timed Loop el cual permite la ejecuci n dentro de un ciclo de m quina es decir cada 20ns f 50MHz permitiendo adquirir los pulsos de forma r pida y precisa Adquisici n Pulsos Encoder Encoder 2 8 nnr FX2_IO4_J1_35 teta2 pulsos 5 nnr FX2_IO3_J1_2 pune DEXP UU FX2 0 tetal pulsos 8 nnr FX2 102 J1 15 P E g res E si B nu _ Figura 5 19 Modulo de Adquisici n de Datos 5 4 2 M DULO DE CONVERSI N A RADIANES Y ESTIMACI N DE VELOCIDAD La conversi n a radianes y la estimaci n se la realizar en un mismo lazo para ello se utilizar un lazo for loop reduciendo as la memoria utilizada del FPGA 69 Las operaciones algebraicas se realizar n dentro de un lazo While Loop debido a que las operaciones toman m s de un ciclo de m quina en realizarse La ejecuci n de este lazo se realizar cada 200000 ticks ciclos de m quina lo que equivale a 4 ms que corresponde al tiempo de muestreo del sistema Conversion de Pulsos a radianes Tetal rad Dal Teta2 rad PFXP Estimaci n de Velocidad dTeta 1 rad seg PFXP dTeta 2 rad seg
77. cionalmente se ha utilizado la tecnolog a FPGA con herramientas de programaci n avanzadas Sin embargo como los FPGA s se han vuelto m s r pidos y m s rentables en la actualidad se los puede programar con poca o ninguna experiencia en dise o de hardware digital aprovechando as a las FPGA s para crear soluciones personalizadas Para abarcar este creciente inter s los proveedores est n creando herramientas de m s alto nivel que hacen m s f cil programar FPGA s y brindar los beneficios de la tecnolog a FPGA a nuevas aplicaciones EI Modulo de LABVIEW FPGA de National Instruments extiende las capacidades de desarrollo gr fico de Labview a FPGA s en donde se puede crear sistemas de medici n y control personalizado en hardware sin tener que disefiar en lenguaje descriptor de hardware o a nivel de circuito 4 5 2 M DULO LABVIEW FPGA LabVIEW Laboratory Virtual Instrument Engineering Workbench es un lenguaje de programaci n grafica para el dise o de sistemas de adquisici n de datos instrumentaci n y control Con LABVIEW FPGA se puede crear Vl s que pueden correr en dispositivos reconfigurables como son las FPGA no se necesita tener conocimiento de HDL 38 Lenguaje de descripci n de hardware para dise ar sistemas de hardware personalizado El m dulo de LABVIEW FPGA es parte de la plataforma LABVIEW Embebida que esta compuesta por multiples componentes de software que permite a los usuarios programar hardware
78. ck RAM Proveen almacenamiento de datos en bloques de 18 Kbits con dos puertos independientes cada uno Bloques de multiplicaci n que aceptan dos n meros binarios de 18 bit como entrada y entregan uno de 36 bits 137 Administradores digitales de reloj Digital Clock Managers DCMs Estos elementos proveen funciones digitales auto calibradas las que se encargan de distribuir retrasar arbitrariamente en pocos grados desfasar en 90 180 y 270 grados dividir y multiplicar las se ales de reloj de todo el circuito Los elementos descritos est n organizados como se muestra en la Figura Un anillo de IOBs rodea un arreglo regular de CLBs Atraviesa este arreglo una columna de Bloques de memoria RAM compuesta por varios bloques de 18 Kbit cada uno de los cuales est asociado con un multiplicador dedicado Los DCMs est n colocados en los extremos de dichas columnas CLB Block RAM Multiplier Daces 1 Figura 1 Arquitectura de la Spartan 3 A continuaci n se hace una descripci n m s detallada de cada uno de los elementos funcionales de la FPGA y luego se describe el proceso de configuraci n de la misma Bloques de entrada salida IOB Los bloques de entrada salida IOB suministran una interfaz bidireccional programable entre un pin de entrada salida y la l gica interna de la FPGA Un diagrama simplificado de la estructura interna de un IOB aparece en la Figura 2 Hay tres rutas para se ale
79. culminar una etapa m s en mi vida A mis padres Rodrigo y Alexandra por la confianza y apoyo recibido hasta el final de mi carrera universitaria A mis hermanos Viviana Guido Bel n Paula y Nicole por su constante apoyo entusiasmo y comprensi n en cada semestre de estudio Al MSc Patricio Chico por su respaldo colaboraci n y apoyo constante para la elaboraci n del presente proyecto A mis amigos y compa eros de mil batallas que siempre han estado apoy ndome en altos y bajos Finalmente un agradecimiento muy sincero a la Escuela Polit cnica Nacional especialmente todos los profesores que cuyos conocimientos y experiencias fueron de vital importancia para mi formaci n universitaria Rodrigo DEDICATORIA Definitivamente debo dedicar este proyecto a todos aquellos que estuvieron los que est n y contin an a mi lado a mis amigos y especialmente a mi familia Rodrigo vi CONTENIDO CONTENIDO ni SEDE beso urne Eu Por uS por bus Fo Fus EU FO Fus vi RESUMEN MER rA a m x PRESENTACI N cu E t CER M CE E ro MANU DET UE xi CAP TULO 1 FUNDAMENTOS B SICOS eene rre 1 1 1 SISTEMAS SUBACTUADOS u u 2 12 PENDUBOT 3 1 21 DESCRIPCI N DEL SISTEMA 3 1 2 2 OBJETIVO DE CONTROL 6 1 3 SISTEMA DE CONTROL U uuu
80. da el DCM puede generar diferentes relojes de salida Ello se logra multiplicando y o dividiendo la frecuencia del reloj de entrada Corrimiento de fase El DCM puede producir desfases controlados de la se al de reloj de entrada y producir con ello relojes de salida con diferentes fases CLKO k e A CLK90 1 CLK480 CLK270 CLK2X CLKDV LOCKED Output Section Detection DS0922 08 041103 Figura 7 Diagrama funcional del Delay Locked Loop DLL EI DLL tiene como principal funci n eliminar el skew de reloj La ruta principal del DLL consiste en una etapa de entrada seguida por una serie de elementos de retardo discreto o taps los cuales conducen a una etapa de salida Esta ruta junto con l gica para detecci n de fase y control conforman un sistema completo con retroalimentaci n tal como se muestra en la Figura 7 La se al CLKO es entregada a la red de distribuci n de se ales de reloj de la FPGA que sincroniza todo los registros del circuito que ha sido configurado Estos registros pueden ser tanto internos como externos a la FPGA Luego de pasar por dicha red la se al de reloj retorna al DLL a trav s de la entrada CLKFB El bloque de control del DLL mide el error de fase entre ambas se ales que es una medida del skew de reloj que toda la red introduce El bloque de control activa el n mero apropiado de elementos de retardo para cancelar el skew de reloj Una vez que
81. debe ser ubicado en la posici n estable de equilibrio 5 0 se puede utilizar el nivel ubicado en el eslab n 1 para realizar esta acci n Se debe Encerar las posiciones presionando el bot n NORTH Luego de haber realizado las acciones anteriores se debe poner en l nea al sistema cambiando la posici n del SWO en donde se indicar con el LED on off 115 A 3 1 INTERFAZ FPGA Los pulsadores y la perilla ayudaran con el tipo de control encerar los eslabones en las posiciones iniciales detener el control y variar el set point gt BTN NORTH Encerar encoders gt BTN SOUTH Detener el control gt BTN_EAST Control Tope gt BTN_WEST Control Medio gt ROT_CENTER Encerar el Set point gt Perilla ROT A y ROT B Variaci n del punto de operaci n Set point BTN NORTH a ROT CENTER BTN WEST BTN EAST SOUTH Figura A 6 Puladores y Perilla 9 Los Switch ayudan a iniciar el proceso de control permitiendo el control Manual Autom tico y mostrar en el LCD el controlador utilizado y la posici n de los eslabones HIGH swa sw2 SW swo N17 L14 L193 nii E Figura A 7 Switch 9 gt SWO Encender Control gt SW1 Control Manual Autom tico gt SW2 Mostrar posiciones de los eslabones 116 gt SW3 Mostrar Ganancias del Control LQR Los Leds sirven como indicadores y el LCD permit observar el tipo de control las posiciones de los eslabones y la matriz de gananci
82. determinados momentos seg n sean las posiciones angulares de los eslabones como se mostr en los limites de conmutaci n Una vez que se tiene los controladores y sus l mites de conmutaci n se implementa en la FPGA en este dispositivo se puede programar toda la l gica que se necesita adem s de la interfaz para el usuario Se dise a el control con toda la informaci n del funcionamiento del sistema y para programar la FPGA se utiliza el entorno gr fico de LAVIEW 27 CAP TULO 4 DESCRIPCI N DEL FPGA En la ltima d cada se han desarrollado diferentes dise os de hardware orientados a control de sistemas subactuados Por un lado est n los que se basan en microprocesadores de prop sito general adecuadamente programados Por otro lado est n los que utilizan un hardware totalmente espec fico Ambos extremos tienen sus ventajas e inconvenientes En la actualidad existen dispositivos que contienen lo mejor de los dispositivos mencionados anteriormente como son las FPGA s Una FPGA Field Programmable Gate Array es un dispositivo semiconductor que contiene bloques de l gica cuya interconexi n y funcionalidad se puede programar La l gica programable puede reproducir desde funciones tan sencillas como las llevadas a cabo por una puerta l gica o un sistema combinacional hasta complejos sistemas en un chip 1 Las FPGA s tienen la ventaja de ser reprogramables lo que aumenta una enorme flexibilidad al flujo de dise
83. dulo de potencia tiene las conexiones de los terminales de alimentaci n para el motor y los encoders adem s del terminal del bus de datos para el FPGA la forma de conexi n se muestra en la figura A 1 conexiones evit ndose de esta manera su Conector USB Led On Off Encendido lt Sistema Terminal de Datos Encoder 1 Bus datos de Motor DC esses Entrada de poder e e e w Encoder 2 Figura A 1 Conexi n de Componentes en M dulo de Potencia parte inferior positivo cable negro negativo El bus de datos se debe conectar como se indica en el terminal en la tarjeta Alimentaci n DAG Figura A 2 Elementos de conexi n con la Tarjeta Spartan 3E Conector J1 Conector J2 Bus Datos 1 Conector Dac 2 Conector J1 y J2 112 Para la conexi n de los encoders pticos se debe observar que el conector del encoder 1 quede ubicado en la parte superior del terminal y el encoder 2 en la La conexi n del motor DC se siguen los colores de alimentaci n cable rojo Para la conexi n a la tarjeta Spartan 3E se muestra los terminales para las conexi n inadecuada y evitar da os 113 La conexi n de los conectores 1 y 2 se muestra en la siguiente figura Bus datos de FPGA Figura A 3 Bus de datos de FPGA Para realizar la comunicaci n con el computador se conecta al puerto USB de la tarjeta Figura A 4 Interfaz USB A 2 DESCARGAR
84. e hardware digital de bajo costo El acelerado desarrollo de nuevas tecnologias y la continua demanda de sistemas de control que exigen mayor precisi n rapidez escalabilidad y f cil programaci n hacen necesarios manipular tecnolog a avanzada como son las FPGA que permiten un mejor control para tareas dedicadas En la actualidad las FPGA est n siendo utilizadas ampliamente para tareas de control donde se las ha aprovechado al m ximo debido a su naturaleza reprogramable 1 1 SISTEMAS SUBACTUADOS Son aquellos que poseen un n mero menor de actuadores que grados de libertad La ausencia de un actuador representa un reto en el dise o de estrategias de control Los sistemas subactuados surgen de varias formas 6 e Por dise o Los sistemas subactuados por dise o m s comunes son prototipos de laboratorio como por ejemplo el robot brachiation de Fukuda el Acrobot el p ndulo invertido sobre un carro y el p ndulo invertido sobre un brazo rotatorio el Pendubot y m s recientemente el p ndulo con volante de inercia Estos sistemas son robots multieslabones que tienen motores actuadores s lo en algunas de las uniones e Sistemas m viles Existen una gran variedad de sistemas subactuados m viles como por ejemplo carros sat lites submarinos barcos Sin embargo se tienen sistemas subactuados m viles m s complejos al colocar un brazo manipulador montado sobre una plataforma m vil por ejemplo una plataforma
85. e tama o fijo Cluster amp Class para crear y manipular conjunto de datos de diferente tipo y de tama o fijo Numeric para realizar operaciones aritm ticas de tipo entero con signo y sin signo Boolean para realizar operaciones l gicas Comparison para comparar valores booleanos aritm ticos arrays y a ER mu Gal EP P gt while L Timed Struct m o ues EN P Unbundle By Bundle Unbundle Initialize Array Build Array Subset Rotate1D Reverse1D A X FlatSequenc Stacked Seq Diagram Dis Conditional Es pn ue dj ul E Cluster Cons Merge Errors Cluster To Ar Array To Clu X E Splt1D Array Interleave1D Decimate1D Array Consta Array Clu ou a ze zg Local Variable Global Varia Decorations Feedback No m Cluster To Ar Reshape Array LV Object Co Call Parent To More Spe To More Gen Numeric 4 A search Y Customizer H Boolean s Comparison a gt 3 S search Cust
86. e Ganancias K Figura 5 7 SubVI para determinar vector K Este VI est implementado en el Host de Interface con la PC y no se descargar al FPGA Los valores de la matriz Q se manipulan para ponderar la importancia relativa de los componentes del vector de estado y corresponden a las posiciones de los eslabones esto es los estados x1 y x2 Los valores de la matriz R se manipulan para ponderar el gasto de energ a en la acci n de control esta matriz tiene una relaci n inversa con la magnitud de la se al de control es decir mientras mayor sea la ponderaci n de la matriz menor ser la serial de control La sefial de control que se requiere es u k K x k 5 2 4 SUBVI DE CONTROL LQR El controlador LQR es el encargado de hacer que cada uno de los eslabones se mantengan en las posiciones de equilibrio dadas en la linealizaci n del sistema para ello se ha implementado el lazo de control mostrado en la Figura 5 8 en el 58 cual se realimentan la posici n y velocidad de cada eslab n mediante los subvi s de adquisici n de datos y estimaci n de velocidades dadas en la secci n anterior PENDUBOT Torque_Inicial NV pe Torque Tau tetat 1I Torque Inicial tetag p tetat inicial dtetal 1 Puntos equilibrio del Pendubot Puntos de equilibrio Figura 5 8 Esquema de control del sistema Como
87. e Tools Window Help x G az k E Iems Files kA Project Untitled Project 1 E N My Computer i w Dependencies iX Build Specifications Figura B 4 FPGA VI a adido al proyecto 124 Una vez creado el proyecto se deben agregar las Entradas y o salidas que se necesiten para esto se realizan los siguientes pasos 1 Se da click derecho en el nombre del dispositivo agregado FPGA Target Dev1 Spartan 3E Starter Board y se selecciona New FPGA I O como se muestra en la figura B 5 2 Ahora se observa una nueva ventana en la cual se encuentran todos las entradas y salidas del dispositivo adem s de las variables para configurar los m dulos existentes en la tarjeta como son el conversor digital an logo conversor an logo digital LCD etc 3 Se selecciona el elemento a agregar y se lo a ade en la tabla una vez seleccionado todos los elementos que se utilicen se presiona OK y se tiene como se muestra en la figura B 6 Bl Project cct ncm File Edit View Project Operate Tools Window Help xhox9 o h m ea llo sel Items Files Ee Project Untitled Project 1 5 8 My Computer Dependencie Vi s Start IP Generator AS Build Specific Dependencies Execute Vion Build Specificati Library Add Class Control Arrange by Expand All FPGA Base Clock Collapse All FIFO Memory Component Level IP
88. e ejecutar m ltiples tareas a la vez gt Figura 4 9 L gica del FPGA y LABVIEW 15 Un reto en la programaci n de tareas paralelas es pasar datos a trav s de m ltiples ciclos sin crear una dependencia de dato para ello se usan diferentes tipos de variables 4 5 2 1 Entorno LABVIEW FPGA El entorno de LABVIEW FPGA es similar a un entorno normal de LAVIEW es decir el VI tiene un panel frontal y un diagrama de bloques pero la diferencia est en las paletas que contienen opciones limitadas y diferentes a las que se emplean normalmente para crear y modificar los VIs 4 5 2 1 1 Conceptos B sicos El Panel Frontal de LabVIEW se comunica con el diagrama de bloques de la FPGA para cambiar el estado de los controles e indicadores EI Diagrama de Bloques contiene el c digo fuente del VI Las Paletas proporcionan las herramientas que se requiere para crear y modificar tanto el panel frontal como el diagrama de bloques 40 Las variables en LABVIEW son elementos del diagrama de bloques que permiten acceder o almacenar datos en otra localizaci n La localizaci n actual del dato var a dependiendo del tipo de variable Las variables locales almacenan datos en controles e indicadores del panel frontal para ser utilizados dentro del mismo VI Las variables globales y compartidas almacenan datos en localizaciones especiales que se puede acceder desde multiples VI s Las variables permiten saltar el flu
89. e seguir una trayectoria dada para el grado de libertad linealizado La idea es alimentar el sistema con un par modificado con el fin de cancelar la no linealidad Esto se hace a trav s de un lazo interno dentro del sistema y dar una nueva entrada de control llamada ver Figura 3 2 partial linearized system PD and feedforward V computed u Plant q E q acceleration torque oo control inner loop outer loop trajectory generation Figura 3 2 Diagrama de bloques del control por linealizaci n parcial 11 Los siguientes pasos muestran como linealizar parcialmente el sistema entre la entrada de control Las ecuaciones de movimiento del sistema dadas por 2 5 y 2 6 se escriben nuevamente mila m L 2 1 1 050 Mylo logy Leen Os 2m 4 lasent mL sen8 mal l cos0 malo 1 8 m gl magl cos 0 8 ma gl cost 8 1 mal l cos8 m L L 8 m L Laz mahlasenb 6 m gl cos 0 6 3 2 Despejando en la ecuaci n 3 2 la aceleraci n angular del eslab n dos amp y sustituyendo en 3 1 se obtiene una nueva ecuaci n para el torque y utilizando las constantes introducidas en el cap tulo anterior se tiene 22 T E u u sen 8 0 5 2 20 6 ugusgcosd cos 0
90. elo solo es v lido en su punto de operaci n Es de anotar que durante las pruebas ninguna de las t cnicas de control seleccionadas eran tiles cuando se ten an condiciones alejadas a las iniciales Ello debido a que las oscilaciones y la complejidad del sistema no coincid an con la condici n inicial del controlador La limitaci n principal en la implementaci n del algoritmo lo constituy la memoria del FPGA debido a que LabVIEW por ser un lenguaje de alto nivel genera lo que com nmente se llama c digo basura este problema se ha solucionado al reducir y optimizar el c digo de manera que los operadores matem ticos espec ficamente los multiplicadores sean reutilizados al incluir los lazos for dentro de los m dulos del algoritmo 107 La ventaja principal de programar en LabVIEW lenguaje de alto nivel es que permite programar a la FPGA sin tener conocimiento del HDL Lenguaje de Descripci n de Hardware adem s que permite resolver el problema de las operaciones de coma flotante facilitando asi la programaci n ya que al implementar estas operaciones en un lenguaje HDL resulta bastante complejo Los resultados experimentales validan a la FPGA para realizar control de sistemas obteni ndose un buen funcionamiento del algoritmo de control y adquisici n tanto a la facilidad de realizar cambios en el dise o como tambi n realizar m ltiples procesos 7 2 RECOMENDACIONES Se deja para desarrollos futuros la apl
91. embebido o personalizado con LABVIEW LabVIEW LabVIEW PDA S ee LabVIEW Real Time FPGA oucn Microprocessor Panel d R Touch ADI E BES Plataforma LabVIEW Embedded Figura 4 7 Plataforma de LABVIEW Embebida 14 Esto permite a los usuarios utilizar un ambiente de desarrollo com n para trabajar con cualquier hardware embebido esto es utilizarlo para un sistema de tiempo real o un FPGA en el mismo entorno Para lograr esta tecnologia National Instruments cre diferentes mecanismos para tomar los diagramas de LABVIEW y pasarlos a trav s de diferentes compiladores dependiendo del hardware final de ejecuci n LABVIEW utiliza diferentes tecnologias para compilar el c digo de LABVIEW en bitfiles o archivos de bits para descargarlo y ejecutarlo en un chip FPGA VHDL Generation Analysis Place and Route Generation Logic Reduction Timing Verification Download Run 0010100101010001010 1001010010010100101 0010010101010111101 0010110101010001010 1010010100101001001 0100100010010010000 Figura 4 8 Flujo de Compilacion de LABVIEW 2010 FPGA 23 Sistema Embebido Se entiende por sistema embebido a una combinaci n de hardware y software de computadora dise ado para tener una funci n espec fica 39 La l gica de LABIEW es similar a la l gica del FPGA ya que simplemente se necesita lazos en paralelo para poder realizar funciones en paralelo como se muestra en la figura 4 9 El paralelismo es una forma d
92. ena de carry entra a la slice como CIN y sale como COUT Cinco multiplexores controlan la cadena CYINIT CYOF y CYMUXF en la porci n inferior as como CY0G y CYMUXG en la porci n superior La l gica aritm tica dedicada incluye compuertas XOR y AND en cada porci n de la slice Con un rol central en la operaci n de cada slice se encuentran dos rutas de datos casi id nticas Para la descripci n que prosigue se usan los nombres de la parte inferior de la Figura 4 La ruta b sica tiene su origen en la matriz de switches de interconexi n colocada fuera del CLB Cuatro l neas F1 a F4 entran en la slice y se conectan directamente a la LUT Una vez dentro de la slice la ruta de los 4 bits inferiores pasa a trav s de un generador de funciones F que realiza operaciones l gicas La ruta de salida del generador de funciones D ofrece cinco posibles rutas posibles 143 SHIFTIN f i CYSELG YBMUX CYMUXG U ya 2 gt Y C FXINB gt xonc GYMUX and gt va L a E DIG gt BYOUT Top Portion Common Logic J XBMUX CYMUXF gt xB NIZA A FSMUX n nii i Hor gt C x F4 1 D H FXMUX CYINIT Bottom Portion v SHIFTOUT CIN FAND Bx C gt LEGEND Logic Functons UDistributec RAM and Shift Register Furetons D5295 2 06 041102 Figura 4
93. enus at launch maintains state for each instance T V Autopreallocate arrays and strings Cancel Help Figura 4 10 Modo de ejecuci n Reentrante La FPGA VI se carga directamente al dispositivo FPGA mientras que el host VI est cargada en la PC El host VI sirve como la interfaz entre la PC y la FPGA Pra BHAS A s Host Computer FPGA Figura 4 11 Modo de comunicaci n entre Host y FPGA VI 24 4 5 2 1 2 Programaci n B sica LABVIEW FPGA Para crear un proyecto con la Spartan 3E se siguen los siguientes pasos 1 Se abre un proyecto nuevo Empty Project 2 Se da click derecho sobre My Computer y en este se selecciona el dispositivo New Targets and Devices como se muestra en la figura 4 12 43 Project Explorer Untitled Project 1 42 B2 File Edit View Project Operate Tools Window Help Items Files E led Project Untitled Project 1 LE Build Spe Add Utilities Deploy Arrange by h Expand All Collapse All Help Properties Figura 4 12 Creaci n de Simulation Subsystem Virtual Folder Control Library Variable Server Class XControl NI SoftMotion Axis NI SoftMotion Coordinate Space NI SoftMotion Table SolidWorks Assembly un proyecto Spartan 3E Luego se abre la ventana Add Ta
94. es t Pendubot May2011 vi j y di Dependencies 2 Build Specifications Check Signature Generate Intermediate Files Display Compilation Results FPGA Pendubot May2011_lazoFor et Build specification name FPGA Pendubot_May2011_lazoFor Bitfilename ProyectoPendubot_ControILQRPendub_FPGA PendubotMay_A08B2762 Ivbitx l Destination directory D 20_05_2011 Pendubot_2011_FPGA FPGA Bitfiles V Run when loaded to FPGA Version number Major Minor Fix Build 1 Build specification description Selecci n de descarga Buia jJ ok Figura B 18 Propiedades de configuraci n del FPGA VI Finalizada la compilaci n se crean los archivos necesarios para descargar a la tarjeta El archivo que se descarga a la tarjeta tiene extensi n vbitx y se crea en la carpeta FPGA Bitfiles de la carpeta ra z donde se almacena el proyecto principal El estado de compilaci n se muestra en el cuadro de di logo y cuando se ha visualizado el mensaje de la figura B 19 The compilation complete successfully el archivo estar generado am M A Build Specifications 2 Status 7 FPGA Pendubot May2011 lazoFar Proyel Complete Reports 4 Final timing place and route 9 The compilation completed successfully B 5 DESCARGA FPGA VI Close w amp Figura B 19 Comp
95. esa posici n para ello se utilizan dos t cnicas de control descritas en este cap tulo 3 1 DISENO DEL CONTROL El control del Pendubot est dividido en dos problemas principales Balanceo Swing up y Equilibrio Estos dos problemas son resueltos con diferentes controladores 3 1 1 CONTROL DE EQUILIBRIO Para estabilizar el Pendubot en las posiciones de equilibrio se usa un Regulador Cuadratico Lineal Optimo LQR Linear Quadratic Regulator ya que este controlador da un control ptimo de estabilizaci n 18 Los par metros del controlador se derivan usando el sistema linealizado evaluado alrededor del punto de equilibrio Obteni ndose una realimentaci n de torque como T K x xp Donde K es la matriz de ganancia ptima de 1x4 se calcula reduciendo al m nimo el indice de desempe o cuadr tico J dado por la ecuaci n min f Ax Q Ax Au RAu Esto se realiza mediante la soluci n de la ecuaci n matricial de Riccati 0 Entonces est dada por ecuaci n El esquema de control resultante se muestra figura 3 1 PENDUBOT O Torque_Tau teta teta2 J Torque Inicial tetal inicial dtetat D tetaa2 inicial dieta Puntos de equilibrio del Pendubot Puntos de_equilibrio Figura 3 1 Esquema de control del sistema 19 Para
96. eset sinitialise LCD display LOAD s5 10 Line 1 position 0 CALL LCD cursor CALL disp EPN Display ESC POLITEC LOAD s5 20 Line 2 position 0 CALL LCD cursor CALL disp PROYTIT Display PROY TITILACION CALL delay 1s Espera 3 seg antes de cambiar de pantalla CALL delay 1s CALL delay 1s CALL LCD clear borrar el LCD y poner el cursor en linea 1 posicin 0 LOAD s5 10 Linea 1 posicion 0 CALL LCD cursor CALL disp ctrlpendu Muestra CONTROL PENDUBOT LOAD s5 26 Linea 2 posicion 7 CALL LCD cursor CALL disp FPGA Muestra FPGA CALL delay 1s Espera 3 seg antes de cambiar de pantalla CALL delay 1s CALL delay 1s call LCD clear Inicio load s5 10 call LCD cursor call disp ctrltope load s5 20 call LCD cursor call disp ctrlmedio TOMAR EN CUENTA QUE PRIMERO LEE LOS PUERTOS MAS ALTOS prog principal input s0 00 compare s0 01 jump z control tope compare s0 02 jump z control tope compare s0 03 jump z control medio compare s0 04 jump z control medio compare s0 00 jump z Inicio compare s0 80 jump z pantalla jump prog principal pantalla load s5 10 call LCD cursor call tetal call borrar 155 load s5 20 call LCD_cursor call teta2 call borrar jump prog_principal borrar LOAD s5 character space CALL LCD write data LOAD s5 character space CALL LCD write data LOAD s5 character space CALL LCD write data LOAD s5 character space CALL LCD write data LOAD 55 character space CAL
97. ess as indicated below Character position 01234567 8 9101112131415 Line 1 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8 8E 8F Line 2 CO C1 C2 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF This routine will set the cursor position using the value provided sin register 5 The upper nibble will define the line and the lower nibble the character position on the line Example s5 2B will position the cursor on line 2 position 11 160 Registers used s0 51 s2 53 s4 LCD cursor TEST s5 10 JUMP Z set_line2 AND s5 OF OR s5 80 CALL LCD_write_inst8 RETURN set_line2 AND s5 OF OR s5 CO CALL LCD_write_inst8 RETURN test for line 1 make address in range 80 to 8F for line 1 instruction write to set cursor make address in range CO to CF for line 2 instruction write to set cursor ee K K K K K K R KK E K K o K ode ole ode ode ole 2K e o ode e od ode ER ole ole od ole ole K e a le e e o ode ole ad K ole ole K K od ode K K ode ole K K gt LCD text messages NN ee EEOERORORORORROREROROER K FK K K K K K K K gt Display ESC POLITEC NAC on LCD at current cursor position disp EPN LOAD 5 character E CALL LCD write data LOAD 85 character S CALL LCD write data LOAD s5 character C CALL LCD write data LOAD s5 character stop CALL LCD write data LOAD 55 character space CALL LCD write data LOAD s5 character P CALL LCD write data LOAD s5 character
98. estimaci n de velocidad 56 5 2 CONTROL DEL PENDUBOIT A 57 5 2 1 SUBVI DE CONTROL LQR aaaaaaaaaaaaa 57 522 SUBVI CONTROL PD uu u rb tines 59 5 3 SALIDA DE SE ALES u u uuu uuu 59 5 3 1 SUBVI DEL CONVERSOR DIGITAL AN LOGO DAO 59 5 3 1 1 Subvi de Configuraci n 60 5 3 1 2 Subvi de Ajuste de se al y Trama DAC 61 5 3 2 ACONDICIONAMIENTO DE LA SE AL DE CONTROL 64 5 4 L GICA DEL PROGRAMA u uu tenentes 68 5 4 1 M DULO DE 68 542 MODULO DE CONVERSION A RADIANES Y ESTIMACI N DE VEPFOGIDAD Iesu u de eL ei oe 68 5 4 3 M DULO DE CONTROL LOR Y PD eee 69 5 5 INTERFAZ DE USUARIDO 72 5 5 1 INTERFAZ DESDE PC HOST_PENDUBOT 72 5 5 2 INTERFAZ DESDE TARJETA SPARTAN 3E STARTER KIT 76 5 5 2 1 Subvi de Control de la Perilla 76 viii 5 5 2 2 Manejo del MR UP 76 5 5 2 3 Manejo de la Interfaz en la Tarjeta Spartan 3E 71 5 5 2 4 Boto
99. ga exitosa del archivo lvbitx a la tarjeta Spartan 3E ANEXO C ARQUITECTURA FPGA 135 136 ARQUITECTURA DE LA FPGA SPARTAN 3 DE XILINX Las FPGA Spartan Ill de Xilinx est n conformadas por un conjunto de Bloques L gicos Configurables Configurable Logic Blocks CLBs rodeados por un perimetro de Bloques Programables de entrada salida Programmable Input Output Blocks IOBs Estos elementos funcionales estan interconectados por una jerarqu a de canales de conexi n Routing Channels la que incluye una red de baja capacitancia para la distribuci n de se ales de reloj de alta frecuencia Adicionalmente el dispositivo cuenta con 24 bloques de memoria RAM de 2Kbytes de doble puerto cuyos anchos de buses son configurables y con 12 bloques de multiplicadores dedicados de 18 X 18 bits Los cinco elementos funcionales programables que la componen son los siguientes Bloques de entrada salida Input Output Blocks IOBs Controlan el flujo de datos entre los pines de entrada salida y la l gica interna del dispositivo Soportan flujo bidireccional m s operaci n tri estado y un conjunto de est ndares de voltaje e impedancia controlados de manera digital Bloques L gicos configurables Configurable Logic Blocks CLBs Contienen Look Up Tables basadas en tecnolog a RAM LUTs para implementar funciones l gicas y elementos de almacenamiento que pueden ser usados como flip flops o como latches Bloques de memoria RAM Blo
100. h VI Ed Doering ECE Department Rose Hulman Institute of Technology doering rose hulman edu Created 26 Aug 2009 19 Detect Knob Rotation Vl Ed Doering ECE Department Rose Hulman Institute of Technology ed doering rose hulman edu Created 12 Sep 2009 20 Douglas L Perry VHDL Programming by Example Fourth Edition Mc Graw Hill 2002 21 Pardo Fernando Boluda Jos A VHDL Lenguaje para sintesis y modelado de circuitos Madrid Espana 22 Integrating a picoblaze processor in LabVIEW FPGA by use of CLIP node Vincent Claes 2009 23 LABVIEW FPGA and GPU Universidad de Oslo Spring 2011 Lectura11 24 FPGA User Manual LabVIEW National Instruments Abril 2003 ANEXO A MANUAL DE USUARIO 110 111 MANUAL DE USUARIO En el FPGA se desarroll una interfaz en la que se puede ejecutar los modos Manual y Autom tico que cuenta con controles e indicadores para la ejecuci n del control tope y control medio y una interfaz desde el computador en el que se puede realizar tambi n ambos tipos de control adem s de cambiar el punto de operaci n y el valor de la matriz de ganancias del controlador Para poner en funcionamiento al sistema se debe realizar las conexiones adecuadas A 1 CONEXI N DE LOS COMPONENTES La tarjeta Spartan 3E constituye el elemento central al cual se conectan el resto de componentes del sistema y el m dulo de potencia en donde se encuentran la alimentaci n del Sistema En el M
101. haracter F 46 CONSTANT character G 47 CONSTANT character H 48 CONSTANT character I 49 CONSTANT character J 4A CONSTANT character K 4B CONSTANT character L 4C CONSTANT character M 4D CONSTANT character N 4E CONSTANT character 4F CONSTANT character P 50 CONSTANT character Q 51 CONSTANT character 52 CONSTANT character S 53 CONSTANT character T 54 CONSTANT character U 55 CONSTANT character V 56 CONSTANT character W 57 CONSTANT character X 58 CONSTANT character Y 59 CONSTANT character Z 5A CONSTANT character 0 30 CONSTANT character 1 31 CONSTANT character 2 32 CONSTANT character 3 33 CONSTANT character 4 34 CONSTANT character 5 35 CONSTANT character 6 36 CONSTANT character 7 37 CONSTANT character 8 38 CONSTANT character 9 39 CONSTANT character colon 3A CONSTANT character stop 2E CONSTANT character semi colon 3B CONSTANT character minus 2D CONSTANT character divide 2F CONSTANT character plus 2B CONSTANT character comma 2C CONSTANT character less than 3C CONSTANT character mayor menor que gt CONSTANT character equals 3D CONSTANT character space 20 CONSTANT character CR 0D CONSTANT character question carriage return 153 154 CONSTANT character_dollar 24 CONSTANT character_exclaim 21 el CONSTANT character_BS 08 Back Space command character CONSTANT character teta F2 steta inicio_prog CALL delay 1s CALL LCD r
102. i n correspondiente se muestran a Eslab n 1 Eslab n 2 Figura 6 10 Posiciones angulares Tambi n se puede observar el efecto ante perturbaciones en el sistema AAN aS EN A SA NL NL ANS ONT Y yov Eslab n 1 Eslab n 2 Figura 6 11 Posici n angular de los eslabones ante perturbaciones Para este controlador se puede observar que la variaci n de la posici n de ambos enlaces oscila alrededor del punto de equilibrio deseado aproximadamente en 0 17 rad 93 91 1 gt Para Q 8 ii E 1 R 1 1 se tiene 26 4052 723 0227 ios 5 1425 3 2687 Las figuras del comportamiento correspondiente se muestran a continuaci n Eslab n 1 Eslab n 2 Figura 6 12 Posiciones angulares Tambi n se puede observar el efecto ante perturbaciones en el sistema Eslab n 1 Eslab n 2 Figura 6 13 Posici n angular de los eslabones ante perturbaciones Para este controlador se puede observar que la variaci n de la posici n de ambos enlaces tiene una oscilaci n menor alrededor del punto de equilibrio deseado aproximadamente en 0 09 rad 5 15 92 El Control de Balanceo Control PD es el mismo para cualquier cambio del controlador de equilibrio Como se esperaba el algoritmo de control de llevar los enlaces desde la posici n estable de equilibrio posici n inferior hasta la posici n inestable de equilibrio posici n tope se cumple siempre y c
103. icaci n de otras t cnicas de control como la l gica difusa la identificaci n con redes neuronales y control con visi n artificial para el control de este sistema utilizando el potencial del FPGA programando en Lenguaje HDL adem s de poder realizar el c lculo de la matriz de ganancia K en el mismo FPGA y as tener independencia total del sistema con un computador para ello se deber a utilizar una tarjeta con mayor memoria para ser programado en LabVIEW Debido a que los dispositivos utilizados son muy sensibles espec ficamente el FPGA y encoders es aconsejable tomar las precauciones necesarias para evitar dafios permanentes en los dispositivos Para ello se recomienda verificar las conexiones en el manual de usuario Anexo A 108 REFERENCIAS BIBLIOGR FICAS 1 WIKIPEDIA http es wikipedia org wiki FPGA 2 D Block D and M Spong Mechanical design and control of the pendubot in 46 Annual Earthmoving Industry Conference SAE technical paper series 1995 3 Andrade S Renato German An lisis Dise o y Construcci n del PENDUBOT TESIS DE INGENIER A EL CTRICA Y ELECTRONICA EPN 2000 4 Starkov Konstantin Ing Control de Movimiento en Sistemas Mecanicos Subactuados Maestria en Ciencias Digitales Instituto Polit cnico Nacional Mexico 2008 5 SLOTINE Jean Jacques and LI Weiping Applied Nonlinear Control Prentice Hall New Jersey 1991 6 Rojas P Adolfo AN LISIS E IMPLEMENTACI N DE
104. icas de alto rendimiento HighThroughput Math y operaciones de control sobre el FPGA Las operaciones de alto rendimiento permiten realizar operaciones de punto flotante Las operaciones de Control permiten realizar an lisis de se ales generar se ales de onda cuadrada senoidales y cosenoidales y crear aplicaciones de control PID gt Ip Integration Node integra c digo IP intellectual property es decir se maneja c digo en VHDL dentro de LabVIEW como m dulos adicionales Antes de que se integre este c digo es necesario que este previamente compilado FPGA VO amp E LELA search S customizer ALA Search amp Customizer Timing Search 9 Customizer 1 E1 Lari VI Defined Memory Met Memory Co E par m FEST Fay E Fel a dib evas Loop Timer Wait Tick Count VO Method VO Property User Control re tel E Timing FPGA I O Memory amp FIFO Synchronization FPGA Math amp Analysis 4 amp search St Customize ALA Search S Customizer z s El E a 4p lt EE 5 E ano ede FIFO Occurrences
105. igura 5 los bloques de RAM tienen una estructura de doble puerto Dos puertos id nticos llamados A y B permiten acceso independiente al mismo rango de memoria que tiene una capacidad m xima de 18 432 bits o 16 384 cuando no se usan las l neas de paridad Cada puerto tiene su propio set de lineas de control de datos y de reloj para las operaciones s ncronas de lectura y escritura Estas operaciones tienen lugar de manera totalmente independiente en cada uno de los puertos Write Read 3 4 Read Write lt Spartan 3 5 Dual Port amp BlockRAM Write 1 2 Read Read Figura 5 Diagrama de un bloque de RAM dedicado de la Spartan III Multiplicadores dedicados La Spartan Ill provee multiplicadores embebidos que aceptan palabras de 18 bits como entrada y entregan productos de 36 bits Los buses de entrada de estos multiplicadores aceptan datos en complemento dos tanto 18 bits con signo como 146 17 bits sin signo Para cada bloque de RAM hay un multiplicador inmediatamente colocado y conectado dicha proximidad permite manejo eficiente de los datos Digital Clock Manager DCM y red de distribuci n de relojes La Spartan Ill tiene 4 bloques para el control de todos los aspectos relacionados con la frecuencia la fase y el skew de la red de relojes de la FPGA Cada DCM tiene cuatro componentes funcionales El Delay Locked Loop DLL El Sintetizador Digital de Frecuencia DFS y el Desplaz
106. ilaci n terminada 133 LABVIEW FPGA permite descargar directamente el archivo a la tarjeta luego de haber terminado la compilaci n cabe indicar que se debe descargar el archivo a la memoria Flash de la tarjeta ya que este proyecto implica que el control se debe realizar sin utilizar la interfaz con la PC es decir que el programa de control se ejecuta directamente en la FPGA de manera aut noma Para ello se selecciona el FPGA VI que se desee descargar como se muestra en la figura B 20 Project Explorer Proyecto Pendubot FPGA May201 m A BN l File Edit View Project Operate Tools Window Help e me s 2 we Items Files Efl Project Proyecto_Pendubot_FPGA_May2011 lvproj W My Computer Subvi f Control LQR Pendubot Devi Spartan 3E Starter Board 00 Componentes SubVIs lazo for Open le FPGA Pendubot Explore Show in Files View Ctrl OnboardClock Dependencies Print Build Specificatio El FPGA Pendub Pun E Host Pendubot Ma ring 3 Dependencies L Build Specifications Save Save As 1 Create Build Specification Remove from Project Rename F2 m Properties j Figura B 20 Descarga 134 El mensaje que asegura la descarga del archivo es Download Successful como se indica en la figura B 21 ao o Figura B 21 Descar
107. inealizado Control PD 9 Encerar o reset Encoders Gud de DS 10 Reset matriz de ganancia K 11 Led Indicador de sistema en Linea 12 Stop Interfaz 13 Manual de usuario ESCUELA POLITECNICA NACIONAL FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA Figura 5 24 Pantalla principal 74 El control del Pendubot en las posiciones tope y media de equilibrio como se indica en el apartado 5 2 se realizar empleando la t cnica LQR Regulador cuadratico lineal Para ello se utilizar un VI en LABVIEW que permitir determinar el vector de control ptimo K de este sistema en cualquier posici n El cual esta integrado en el HOST principal de control como se indica en la figura 5 25 al presionar el Bot n de Modelo Linealizado Figura 5 25 Host FPGA y controles de interfaz El bot n Modelo Linealizado figura 5 26 a permite observar las Ecuaciones de Estado del Modelo Linealizado en un punto de operaci n adem s permite variar las matrices de ponderaci n y as modificar la matriz de Ganancias K del control LQR del sistema asimismo se puede cambiar el punto de linealizaci n del sistema y poder as tener diferentes puntos de operaci n figura 5 26 b El bot n Control PD permite observar el controlador PD utilizado para el balanceo del sistema adem s de poder ajustar las constantes Kp y Kd figura 5 27 75 a Modelo Linealizado Ecuaciones de Estado o 0 1 0 0 0 0 0 1i 0 dx
108. ismo encoder obteni ndose una resoluci n de 4096 pulsos por revoluci n Se dise a totalmente con circuitos digitales para su implementaci n en l gica reconfigurable Para el caso x4 se debe tener en cuenta los flancos de ambas se ales figura 5 3 Para detectar los flancos se utiliza la compuerta XOR en la cual se conecta el estado actual y el anterior y con ello determinar el flanco de subida o bajada Figura 5 3 Flancos para 4x Para determinar el sentido de giro se utiliza la se al actual del canal A y la se al anterior del canal B El subvi implementado se indica en la figura 5 4 Para 54 entender mejor el funcionamiento se ha de pensar que cuando se cambia de direcci n lo que antes era el flanco de subida pasa a ser flanco de bajada y viceversa gt Sise tiene flanco de subida en A o Si B 0 se desplaza un pulso en sentido antihorario o Si B 1 se desplaza un paso en sentido horario Sise tiene flanco de bajada en A o Si B 1 se desplaza un paso en sentido antihorario o Si B 0 se desplaza un paso en sentido horario Sise tiene flanco de subida en B o Si A 1 se desplaza un paso en sentido antihorario o Si A 0 se desplaza un paso en sentido horario gt Si se tiene flanco de bajada en B o Si A 0 se desplaza un paso en sentido antihorario o Si A 1 se desplaza un paso en sentido horario Para las velocidades angulares de cada eslab n se realiza una estimaci n debido a que solo se tiene realimentaci
109. itches Power On LED 4 Pushbuttons vooo ag 25 i2 Regulator Regulator Regulator 5 WDC 2A Supply 100 2404 AC Input C Wall Adapter 50 60 He PUE induded Figura 4 2 Diagrama de Bloques de la Spartan 3E Los pines de Entrada Salida de los puertos solo pueden recibir por defecto 3 3V como entrada y entregar 3 3V como salida esto es en est ndar LVTTL Baja Tensi n TTL Sin embargo se puede cambiar el voltaje a 2 5 V usando unos jumpers en el m dulo este voltaje es usado en algunas E S del FPGA Cualquier voltaje mayor a estos pueden da ar los puertos del m dulo e inclusive al mismo 32 dWMicron G TE si gt INSTRUMENTS f zu ba tie SQUE e ERA Li DIGILENT f 36 W q Intel smsc Figura 4 3 M dulo FPGA Spartan 3E Se dar una breve explicaci n de los componentes utilizados en este proyecto para m s detalle de la tarjeta referirse a 9 4 3 1 CONVERSOR DIGITAL AN LOGO DAC El FPGA Spartan 3E Starter Kit incluye 4 canales DAC con resoluci n 12 bits para comunicarse con cada canal se usa comunicaci n SPI Serial Peripheral Interface En la figura 4 4 a se muestra la localizaci n del conversor y en la figura 4 4 b se muestra la conexi n esquem tica del DAC con la FPGA Spartan 3E En la tabla 4 1 se muestra la lista de se ales que se deben configurar entre el FPGA y el DAC Como el bus SPI es compartido con otros dispositivos del m du
110. jo normal de datos al pasar datos desde un lugar a otro sin conectarlos con un cable Por esta raz n las variables son tiles en las arquitecturas paralelas LABVIEW permite encapsular secciones de c digo com n como son los SubV s para facilitar su reutilizaci n en el diagrama de bloques Los SubVI s se los puede configurar como subVI s reentrantes y no reentrantes esta diferencia es muy importante debido a que un subVI no reentrante no permite la ejecuci n en paralelo sino solo compartir el recurso mientras que un SubVI s reentrante adem s de permitir compartir el recurso se puede ejecutar en paralelo es decir que su ejecuci n dentro del un mismo diagrama de bloques es m ltiple y paralela Los SubVI s creados en el ambiente FPGA est n predeterminados como reentrantes Para hacer un subVI no reentrante se selecciona Ejecuci n en la Categor a en el men desplegable del cuadro de di logo de Propiedades del VI y se quita la marca de la casilla de verificaci n de ejecuci n reentrante 41 Bu Properties Category Execution gt Priority Preferred Execution System normal priority same as caller Allow debugging Y Enable automatic error handling y Reentrant execution E Run when opened Share clones between instances Suspend when called di m _ Clear indicators when called Preallocate clone for each instance V Auto handle m
111. l Figura 1 6 Diagrama de control El sistema de control dise ado trabaja en base al modelo matem tico La obtenci n de un buen modelado matem tico del sistema electromec nico subactuado Pendubot es importante para predecir su funcionamiento ya que la validez de la predicci n y el comportamiento de las estructuras de control dise adas depende en gran medida del modelo din mico utilizado 6 CAP TULO 2 MODELADO MATEM TICO DEL PENDUBOT El Pendubot es un sistema mec nico subactuado que fue creado para fines did cticos con el fin de ilustrar los diferentes conceptos de sistemas no lineales rob tica y teor a de sistemas de control El sistema electromec nico subactuado puede verse como un p ndulo invertido en el que el motor hace las veces del carro Este sistema es dif cil de controlar debido a que el segundo eslab n est libre y que su modelo es de fase no m nima es decir que el sistema tiene polos y ceros en el semiplano positivo El modelo din mico del sistema electromec nico subactuado se hace sin considerar la fricci n ya que este modelo se utiliza en todo el trabajo 2 1 MODELO DIN MICO DEL PENDUBOT De acuerdo a la naturaleza del sistema se puede obtener las ecuaciones diferenciales no lineales invariantes en el tiempo las cuales determinar n el comportamiento din mico Estas ecuaciones se las obtendr por el m todo de Euler Lagrange que est b sicamente enfocada en la descripci
112. la se al de control es u k K x k entonces se realizar el subvi que realiza esta operaci n se indica en la Figura 5 9 Se implementar utilizando un lazo for de esta forma tambi n permitir reducir los operadores dentro del algoritmo de control Este subvi permite mantener estable al Pendubot en la posici n de equilibrio inestable Para poder llevar los eslabones a esta posici n se utiliza el control PD el cual consiste en llevar los eslabones desde su posici n de equilibrio estable a las posiciones inestables a trav s de los movimientos del primer eslab n Teta 1 rad Velocity 1 rad seg FXP Velocity 2 rad seg Matriz K Figura 5 9 Subvi del control LOR Se al Icono del subvi JF uz kx 59 5 2 2 SUBVI CONTROL PD Este subvi realizar la operaci n del control PD para el balanceo del Pendubot es decir para llevar los eslabones a los puntos de equilibrio que se desee controlar En base a la ecuaci n 3 8 que se escribe nuevamente se realiza la programaci n del controlador PD con realimentaci n parcial como sigue figura 5 10 Cada uno de estos controladores emite un valor num rico el cual debe ser la se al del actuador motor para poder mantener estable al sistema y para tener la se al f sica se utiliza el conversor digital an logo del FPGA EA Figura 5 10 Subvi del control PD Icono del subvi 5 3 SALIDA DE SE ALES La ta
113. las FPGA s introducidas por Xilinx en 1984 son dispositivos programables por el usuario las cuales consisten en una matriz bidimensional de bloques configurables que se pueden conectar mediante recursos generales de interconexi n Estos recursos incluyen segmentos de pista de diferentes longitudes mas unos conmutadores programables para enlazar bloques a pistas o pistas entre si En realidad lo que se programa en una FPGA son los conmutadores que sirven para realizar las conexiones entre los diferentes bloques mas la configuraci n de los bloques 13 42 ARQUITECTURA DE LA FPGA SPARTAN 3 DE XILINX Las FPGA Spartan 3 de Xilinx estan conformadas por un conjunto de Bloques L gicos Configurables Configurable Logic Blocks CLBs rodeados por un per metro de Bloques Programables de entrada salida Programmable Input Output Blocks IOBs Estos elementos funcionales est n interconectados por una jerarqu a de canales de conexi n Routing Channels la que incluye una red de baja capacitancia para la distribuci n de se ales de reloj de alta frecuencia Los cinco elementos funcionales programables que la componen son los siguientes Bloques de entrada salida Input Output Blocks IOBs Controlan el flujo de datos entre los pines de entrada salida y la l gica interna del dispositivo Soportan 29 flujo bidireccional m s operaci n tri estado y un conjunto de est ndares de voltaje e impedancia controlados de manera digital
114. ldt 63 9961 622213 1 421096 14 0 125 572 63 3556 152 234 142109 14 0 221 32 1000 0 eet Control LQR Matriz de Ganancias K 10 718 10 1647 G3 21136 1 4222 Setpoint Par metros LQR tetal teta2 1 5708 0 R Localizaci n de los Polos Han J 0 0 9388 0 0293 i 0 9388 0 0293 i 0 9776 0 0024i Fecha 21 05 2011 0 9776 0 0024 i Hora 17 43 47 b Figura 5 26 a Bot n de Modelo Linealizado b Panel Frontal para determinar vector K Kp_tope Kp_medio 7 0 9781 y 0 9318 Kd tope Kd medio A y 0 0537 g 0 0518 RESET PD b Figura 5 27 a Bot n de Control PD b Panel Frontal de Control PD Es importante que el dispositivo que maneja directamente el sistema desde adquisici n la datos procesado y control sea tambi n utilizado como interfaz de 76 usuario sin necesidad de estar conectado a un computador por ello se realizar una interfaz con los recursos de la tarjera Spartan 3E Starter Kit 5 5 2 INTERFAZ DESDE TARJETA SPARTAN 3E STARTER KIT Para realizar la interfaz desde este dispositivo es necesario realizar subvi s adicionales que permitan configurar y manejar los recursos dados por esta tarjeta 5 5 2 1 Subvi de Control de la Perilla La Perilla permitir variar el set point se ha utilizado un VI de detecci n de sentido de giro de la perilla as como tambi n un VI de antirrebote Detect Knob Rotation VI 19 y Debounce Switch V
115. lo es importante que estos se deshabiliten cuando se utilice la comunicaci n entre el FPGA y el DAC La tabla 4 2 muestra la l gica y las se ales para deshabilitar estos dispositivos 6 pin DAC Header J5 33 Linear Tech LTC2624 Quad DAC SPI_MOSI T4 SPI_MISO N10 SPI_SCK U16 5 DAC CS 8 DAC CLR P8 UG230 c9 01 030906 a SPI MISO Ed 06230 c9 02 021806 b Figura 4 4 a Ubicaci n Conversor Digital An logo 9 b Conexi n Esquem tica del DAC con la Spartan 3E 9 Signal FPGA Pin Direction Description SPI MOSI T4 FPGA gt DAC Serial data Master Output Slave Input DAC CS N8 FPGA gt DAC Active Low chip select Digital to analog conversion starts when signal returns High SPI_SCK U16 FPGA gt DAC Clock DAC_CLR P8 FPGA gt DAC Asynchronous active Low reset input SPI MISO N10 FPGA DAC Serial data Master Input Slave Output Tabla 4 1 Se ales de Configuraci n del DAC 9 34 Signal Disabled Device Disable Value SPI SS B SPI serial Flash 1 AMP CS Programmable pre amplifier 1 AD CONV Analog to Digital Converter ADC 0 SF StrataFlash Parallel Flash PROM 1 FPGA INIT B Platform Flash PROM 1 Tabla 4 2 L gica para deshabilitar los dispositivos compartidos con el bus SPI 9 El voltaje especificado para la salida se describe con la siguiente ecuaci n ES Diro x put 4096 ref Donde
116. lol SR AR IE RR RCH e oo RR RR IRE le ol doloe RR RS e ke SEAE A LCD Character Module Routines LLLLLLLLLLLLLLLLLLLLLELELLLLLELLLLLLDLLLLLLLLLLLELLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLELLLLLLLLI gt LCD module is a 16 character by 2 line display but all displays are very similar The 4 wire data interface will be used DB4 to DB7 The LCD modules are relatively slow and software delay loops are used to slow down KCPSMG adequately for the LCD to communicate The delay routines are provided in a different section see above in this case Pulse LCD enable signal E high for greater than 230ns lus is used Register s4 should define the current state of the LCD output port Registers used s0 s4 LCD pulse E XOR s4 LCD E E OUTPUT s4 LCD_output_port CALL delay_lus XOR s4 LCD_E E 0 OUTPUT s4 LCD_output_port RETURN Write 4 bit instruction to LCD display gt The 4 bit instruction should be provided in the upper 4 bits of register s4 Note that this routine does not release the master enable but as it is only used during initialisation and as part of the 8 bit instruction write it should be acceptable gt Registers used s4 LCD_write_inst4 AND s4 F8 OUTPUT s4 LCD_output_port CALL LCD_pulse_E RETURN Enable 1 RS 0 Instruction RW 0 Write E 0 set up RS and RW gt 40ns before enable pulse Write 8 bit instruction to LCD display The 8 bit instruction should be provided in regi
117. mayor a de los sistemas mec nicos como robots articulados de enlaces r gidos existe una fuerza independiente actuando sobre cada articulaci n Existen una clase de sistemas donde una fuerza independiente actuador est ausente de por lo menos una de las articulaciones a este tipo de sistemas se le conoce como sistemas mec nicos subactuados 4 Los sistemas mec nicos subactuados son sistemas f sicos no lineales de gran complejidad y se caracterizan porque las t cnicas de control convencionales son ineficaces cuando se requiere que ellos est n en un punto de operaci n o posici n de equilibrio 5 Ante esta condici n se requiere la implementaci n de t cnicas de control para sistemas no lineales las cuales permiten manejar el sistema y adaptarse a los cambios en los puntos de equilibrio de la planta Un sistema ampliamente usado es el Pendubot debido a que permite ilustrar la aplicaci n validez y desempe o de diferentes t cnicas de control y su implementaci n en diferentes dispositivos adem s que representa un banco de pruebas adecuado Dise o de controladores basados en plataformas reconfigurables que permitan una mayor flexibilidad en la arquitectura y que operen de manera adecuada para sistemas subactuados han sido objeto de estudio desde hace varios a os las caracter sticas de flexibilidad y reconfigurabilidad de los dispositivos de l gica programable tipo FPGA resultan atractivos como plataforma de dise o d
118. medida en la siguiente fuente Andrade S Renato German An lisis Dise o y Construcci n del PENDUBOT 3 El Pendubot nombre formado por la contracci n de las palabras PENDULUM y ROBOT es un sistema electromec nico que consiste de dos eslabones r gidos interconectados por uniones o junturas rotacionales el cual tiene la estructura de un robot manipulador de dos grados de libertad tal como se muestra en la figura 1 1 e El primer eslab n est actuada un motor de DC y el segundo eslab n no est actuada es decir que se puede mover libremente e Tiene una gran variedad de modos de comportamiento Codificador 1 Codificador 2 Eslab n 2 Figura 1 1 Pendubot 6 El eslab n uno est acoplado directamente al eje del motor DC de im n permanente de 72 V y posee adem s el alojamiento para el eje del segundo eslab n el cual se mueve libremente y es controlado por acci n del primer eslab n Para la medici n de la posici n y velocidad angular de cada enlace se emplean codificadores encoder pticos incrementales de 1024 pulsos revoluci n Los encoder ptico incrementales figura 1 2 a proporcionan generalmente dos formas de ondas cuadradas y desfasadas entre si 90 el ctricos en cuadratura los cuales son canal A y canal B figura 1 2 b con la lectura de un solo canal canal A se dispone de la informaci n correspondiente a la posici n y velocidad de rotaci n mientras que
119. n la siguiente figura se muestra el funcionamiento completo en ambas or ficas el sistema inici desde la posici n inferior la posici n estable de equilibrio Eslab n 1 Eslab n 2 Figura 6 8 Control Balanceo y Equilibrio de la Posici n Tope La figura 6 9 muestra el Control Tope del Pendubot 89 Figura 6 9 Control en la posici n Tope Como se esperaba el algoritmo de control lleva los enlaces desde la posici n estable hasta la posici n inestable de equilibrio por medio del control de balanceo y lo mantiene en esa posici n utilizando el controlador de equilibrio Las ganancias del vector ptimo se pueden reajustar a trav s de la interfaz con el computador en tiempo real con la finalidad de observar el comportamiento del sistema a diferentes ganancias del vector ptimo de control A continuaci n se muestran diferentes comportamientos del sistema al variar el controlador en la posici n tope y su punto de operaci n 6 3 3 1 1 Comportamiento desde la posici n estable de equilibrio posici n inferior Se realizar n diferentes pruebas del sistema con la finalidad de observar el comportamiento del sistema ante diferentes controladores del vector ptimo las pruebas se realizar n a partir del punto de equilibrio estable posici n inferior 90 1 0 Q gt Para Q X E 1 y R 1 1 se tiene 0 O O 13 7134 _ 12 6425 Krope 7 26928 1 7778 Las figuras del comportamiento continuac
120. nceo y de equilibrio es decir el control h brido del sistema En la siguiente figura se muestra el modo de funcionamiento en ambas gr ficas el sistema inici desde la posici n inferior la posici n estable de equilibrio Tetal P oa E Teta 2 0 1042 Eslab n 1 Eslab n 2 Figura 6 20 Control Balanceo y Equilibrio de la Posici n Medio La figura 6 21 muestra el Control Medio del Pendubot Figura 6 21 Control en la Posici n Media Al igual que el caso anterior el algoritmo de control lleva los enlaces desde la posici n estable hasta la posici n inestable de equilibrio por medio del control de balanceo y lo mantiene en esa posici n utilizando el controlador de equilibrio Las ganancias del vector ptimo para esta posici n tambi n se pueden reajustar o cambiar a trav s de la interfaz con el computador en tiempo real con la finalidad 99 de observar el comportamiento del sistema a diferentes ganancias del vector ptimo de control A continuaci n se muestran diferentes comportamientos del sistema al variar el controlador para la posici n media 6 3 3 2 1 Comportamiento desde la posici n estable de equilibrio posici n inferior Todas las pruebas y consideraciones realizadas para la posici n tope han sido aplicadas de igual manera para la Posici n Media 0 0 0 gt Para Q e y 11 se tiene 4 8134 K _ 7 3641 Medio 10 4950 1 0054 Las figuras del comportamiento co
121. nes perilla Pulsadores y Switch 78 5 5 2 5 TIPO de CONTO uan 79 CAP TULO 6 PRUEBAS Y RESUETAD OS tans eaussanssaracciateuswausssasseiscaustansecussts 80 6 1 CONFIGURACI N PARA 80 6 2 DESCARGA conti 82 6 3 PRUEBAS Y AN LISIS DE RESULTADOS 83 6 3 1 FUNCIONAMIENTO DE LA TARJETA DE MANEJO DE ENCODERS Y DE AJUSTE DE SE AL DE CONTROL 84 6 3 2 FUNCIONAMIENTO DE LOS ALGORITMOS DE CONTROL 84 63 8 RESULTADOS stabat a a ats 84 6 3 3 1 Control de Balanceo y Equilibrio del Pendubot en la Posici n TODO Qum QS E NI itid et ue 85 6 3 3 1 1 Comportamiento desde la posici n estable de equilibrio BOSiCI n INS 89 6 3 3 1 2 Comportamiento desde la posici n inestable de equilibrio DOSICION TODO uu sua ua cc 92 6 3 3 1 3 Comportamiento al variar el punto de operaci n del sistema M M 93 6 3 3 2 Control de Balanceo y Equilibrio del Pendubot en la Posici n M dia ree cero A a A d a ore 95 6 3 3 2 1 Comportamiento desde la posici n estable de equilibrio posici n inferior ee on 99 6 3 3 2 2 Comportamiento desde la posici n inestable de equilibrio posici n A ha el E cire 101 6 3 3 2 3 Comportamiento al variar el punto de operaci n del sistema TIN IHE d D M
122. ntrada de ste es adaptada para la Spartan 3E Starter Kit El programa de control y la interfaz de usuario son realizados en el Software LABVIEW v10 0 Al programar en LABVIEW FPGA se dise an diferentes subVI s que realizan una tarea espec fica dentro del FPGA estos subVls son interconectados en un VI general de mayor jerarqu a que contiene toda la l gica necesaria para el funcionamiento del sistema 5 1 ADQUISICI N DE SE ALES La posici n de los eslabones del Pendubot se obtiene a trav s de encoders en cuadratura Los encoders permiten obtener la posici n velocidad y el sentido de giro de los eslabones por lo que se realizan diferentes Subvi s para obtener estas medidas f sicas Los encoders son alimentados con 5V pero el FPGA solo funciona con 3 3V ya que los pines de E S de los puertos de expansi n s lo permiten un m ximo de 52 3 3 V como 1L est ndar LVTTL por lo que es necesario un circuito adicional que permita esta conversi n de datos 5 11 ACONDICIONAMIENTO DE SE ALES DE ENCODER Para la captura de las se ales de los encoders se utilizar un circuito adicional para regular el voltaje de 5V a 3 3V que necesita la FPGA Para ello se adquirir n buffers para las entradas ya que ste utiliza un solo voltaje de referencia VDD para todos los buffers y las entradas en nivel alto pueden exceder el voltaje de referencia VDD cuando se lo utiliza como convertidor de niveles l gicos es decir proporci
123. o 88 Con esta expresi n se obtiene la din mica del sistema La energ a cin tica del sistema es la suma de las energ as cin ticas de los eslabones uno y dos esto es K k k tk Donde k Es la energ a cin tica del eslab n i k 1426 ZL 0 Loma Oy 6 Ky qe ci Ui 11 1 T ial 1 6 k Em 21 1 0058 1 2 211 056 21 2 6 0 1 26 Por lo tanto mS Sm G 21 1 00507 la 21 15 cos amp 21 8 6 1 6 1 1 24 1 1 y Ay 3 Mala amp i 61 T 1 a 8 12 La energ a potencial del sistema es la suma de la energ a potencial de cada enlace es decir V Zia i w 7 Donde v Es la energ a potencial del eslab n i v m gl senB m v mag sen0 Lasen 07 Por lo tanto V m gL sen8 m g l sen8 1 sen 6 Una vez determinadas las expresiones de energ as se reemplazar en 2 2 para obtener el Lagrangiano L L m 12 21 1 9 L2 21 1 20050 21 2 6 6 1 26 mala 1 6 MCA 6 y m gl sen m gl sen E sem 8 8 2 4 Reemplazando los valores de 2 4 dentro de la ecuaci n de Euler Lagrange 2 3 y haciendo los c lculos necesarios en varios pasos se obtienen las ecuaciones din micas del sistema y T donde 0 porque el enlace dos no tiene actuador Para mayor detalle en la obtenci n de las ecuaciones din micas referirse a 3
124. ol es decir mientras mayor sea la ponderaci n asignada la magnitud de la sefial de control ser menor La interfaz del Modelo Linealizado tiene los siguientes controles e indicadores Modelo Linealizado Ecuaciones de Estado 0 0 1 0 0 0 0 1 dt 63 0061 62 2213 14209 214 0 63 3556 152234 1 42109 14 0 1000 0 w 5 M p ut Control LQR 0 9388 0093 i 09776 00024 Fecha 21 05 2011 09776 00004 174347 Par meti R tel teta2 Q 15708 0 R Localizaci n de los Polos 100 000 000 000 n 00 100 000 000 7 09388 0 02931 00 Figura 11 Modelo Linealizado regreso pantalla Control Matriz R Matriz Q Visualizaci n del Modelo Linealizado Matriz de Ganancia K nuevo Bot n para cambiar a la nueva matriz K SU o mo XE x 0 Punto de linealizaci n del Sistema El bot n Control PD permite observar el controlador PD utilizado para el balanceo del sistema adem s de poder ajustar las constantes Kp y Kd 120 ONE Kp_tope Kp_medio n ny 19 09781 9 09318 Kd_tope Kd_medio n n 0 0537 Y 0 0518 RESET PD HHHH 4 D Figura A 12 Control PD La interfaz del Control PD tiene los siguientes controles Bot n de regreso a la pantalla de Control PD de Balanceo Tope PD de Balanceo Medio Regresar a valores por defecto p or pex Las ganancias del control PD se ajustan de la siguien
125. omizer Z EL O search amp Customize J ZP Add Subtract Multiply Divide D 3 B Hi gt gt p E IP quo Be p And Or Exclusive Or Not Compound Equal Not Equal Greater Less Quotient amp Conversion Increment Decrement t gt D gt gt gt Hi E i gt gt Not And NotOr Not Exclusiv Implies And Array El gt gt E gt E gt c Greater Or E Less Or Equal EqualTo0 Not Equal To Compound DatsMaripu Absolte Val Round To Na gt ED m a LES DERE EMI Or Array Ele Number To Boolean Boolean To True Constant h p E gt Ruwaq Round Toma SEE D PU Serre Root Greater Than LessThan0 Greater Or E Less Or Equa False C ELI P p b gt b Es Square Reciprocal Sigr Select amp Min In Range and Fixed Point Ea E El Fixed Point Numeric Co Enum Const Ring Constant Baderan Figura 4 20 Funciones paleta Functions Timing controlar el tiempo ejecuci n de operaciones del FPGA FPGA I O para realizar operaciones de lectura escritura y configuraciones de los puertos de la tarjeta FPGA Memory amp FIFO para acceder a la memoria del FPGA y la funci n FIFO first input first output para transferir datos Synchronization para sincronizar tareas de ejecuci n en paralelo y pasar datos entre tareas en paralelo 47 gt FPGA Math amp Analysis para realizar operaciones matem t
126. omo para que se alcance la posici n deseada Luego se afinan los par metros del controlador PD igual que el caso anterior vari ndolos poco a poco hasta que llegue a la posici n deseada Finalmente los valores que se obtuvo fueron k 0 9457 k 0 0359 a La se al inicial de referencia aplicada es de 0 94 V durante 0 5948 segundos como se muestra en la siguiente figura 0 5948 0 5949 1 5949 2 5949 Figura 3 3 Se al de referencia aplicada al Pendubot para el balanceo medio 25 3 2 SISTEMA DE CONMUTACI N Todos los controladores antes mencionados tienen su respectiva funci n los de balanceo llevar el Pendubot alrededor de los puntos de equilibrio inestables y los controladores de equilibrio mantener al Pendubot en equilibrio La figura 3 5 muestra los limites de conmutaci n desde el control de balanceo al control de equilibrio para la posici n tope mja 1 7406 12519 0 2334 z827 2 a Eslab n 1 b Eslab n 2 Figura 3 5 L mites de conmutaci n del Pendubot Balanceo Tope La figura 3 6 muestra los limites de conmutaci n desde el control de balanceo al control de equilibrio para la posici n media miz 1 37 164 r f2 o a Eslab n 1 b Eslab n 2 Figura 3 6 L mites de conmutaci n del Pendubot Balanceo Medio 26 Con el fin de que el sistema pueda ser controlado por los dos algoritmos dise ados estos deben actuar en
127. onar una conversi n de niveles l gicos para seguridad de la FPGA Los buffers que se adquirieron son los CD4050BC que son circuitos integrados que contienen seis buffers no inversores internos figura 5 1 CD4050BC L F F NC K E E 30 Vpop G A A H B B PI t Vss Figura 5 1 Configuraci n interna del CI CD4050BC 16 Funcionamiento El pin uno se lo alimenta con el voltaje de referencia de 3 3V del FPGA conector J1 de la Tarjeta Spartan 3E y cuando la entrada de un buffer reciba un voltaje l gico en alto de 5V se tendr a la salida como m ximo un voltaje l gico en alto de 3 3V permitiendo conectarla directamente como entrada a la Spartan 3E La figura 5 2 muestra parte de la interfaz f sica y el circuito utilizado que se dise a para el manejo de las entradas de los encoders al FPGA 53 ao FPGA_J1 CHAI CHB1 TBLOCK MB CHA2 CHB2 4050 Figura 5 2 Circuito de manejo de los encoders 5 1 2 PROGRAMA DE ADQUISICION DE DATOS Y ESTIMACI N DE VELOCIDADES 5 1 2 1 Subvi de adquisici n de datos del encoder Su funci n es capturar los pulsos desfasados de cada canal e interpretarlos para generar un conteo que indique al programa en qu posici n se encuentra cada eslab n Se presentar el dise o para un encoder incremental con resoluci n x4 es decir con resoluci n m xima Este dise o tiene como prop sito elevar la resoluci n de la sefial de retroalimentaci n empleando el m
128. ontrol K y as comprobar diferentes matrices ptimas de control y poder observar el comportamiento del sistema al cambiarlo en tiempo real Inclusive la interfaz permite variar el punto de operaci n del Pendubot ampliando as el desempe o de los controladores sobre un sistema altamente no lineal 106 Al realizar las pruebas sobre el Pendubot se observ que el sistema es incapaz de llegar a las posiciones deseadas para superar este inconveniente fue necesario agregar una oscilaci n al sistema en lazo abierto en direcci n contraria al movimiento con el fin de que el sistema gane inercia y luego conmutar a la ley de control de balanceo el cual permiti llevar a la posici n deseada El estudio de t cnicas hibridas de control son una herramienta til para el manejo de sistemas no lineales Estas permiten hacer una descripci n del sistema y establecer las regiones de operaci n de cada controlador con el fin de tomar una decisi n para ejecutar cada estrategia de control Los rangos de operaci n han sido ampliados para poder variar el punto de operaci n del sistema y as poder observar la robustez del controlador dentro de un mayor rango Los resultados obtenidos al realizar el control en la posici n tope muestra una oscilaci n permanente alrededor del punto de equilibrio debido a las imperfecciones del servoamplificador y a las caracter sticas del motor y a la fuerte no linealidad del Pendubot pues al linealizar el mod
129. ontrolador que se encarga de llevar las dos barras cerca de la posici n deseada mediante la oscilaci n del eslab n uno 2 y se desarrolla aplicando el m todo de Linealizaci n Parcial por Realimentaci n 5 la segunda estrategia mantiene estable el sistema en la posici n de equilibrio empleando una t cnica lineal para la realimentaci n ptima del estado del sistema Cada una de las estrategias se define en el siguiente cap tulo 17 CAP TULO 3 DISE O DE LOS CONTROLADORES DEL SISTEMA PENDUBOT Existen sistemas que son f ciles de controlar debido a que poseen un n mero adecuado de actuadores tales como robots autom viles m quinas de producci n sin embargo existen algunos sistemas que son dif ciles de controlar debido al n mero limitado de actuadores es decir tienen menor cantidad de actuadores que grados de libertad sistemas subactuados y surgen de varias formas por dise o por naturaleza propia o debido a la aplicaci n como son aviones helic pteros o sat lites El Pendubot tal y como ya se explic en el cap tulo 1 es un sistema electromec nico subactuado que consiste de dos eslabones r gidos interconectados La primera uni n est actuada por un motor de DC y la segunda se encuentra sin actuador figura 1 1 El problema es encontrar una ley de control que permita llevar a los eslabones desde la posici n estable de equilibrio a las posiciones de equilibrio inestables del Pendubot y mantenerlo en
130. or lo tanto para lograr llegar a la posici n tope se hace ajustando la sefial de referencia o trayectoria en gt Una vez llegado a esta posici n se debe conmutar al control de equilibrio para poder mantenerlo en esta posici n Los valores de las constates k han sido afinadas en orden para llegar a la posici n tope con una velocidad angular lo m s peque a posible para el eslab n dos 8 La parte proporcional tiene que ser afinada para conseguir la m xima respuesta del sistema hasta llegar a la saturaci n La parte derivativa se afina para tener un movimiento suave del eslab n dos Para el Pendubot se ha llegado a conseguir los siguientes valores para los par metros del controlador PD en la posici n tope k 1 0282 k 0 0527 d T af 3 1 2 2 2 Balanceo Medio El balanceo para la posici n media es mas complicado que la anterior Una se al de referencia estatica no es suficiente para llevar los eslabones a las pociones 24 deseadas La meta del balanceo medio es llevar al eslab n dos por una trayectoria adecuada hasta la posici n deseada y luego conmutar al controlador de equilibrio Para conseguir esto se debe almacenar energia para llevar el eslab n dos a la posici n deseada Por lo que adicionar una se al ayudar al sistema a conseguir esta posici n Esto es que la se al de referencia inicial debe ser una se al contraria al movimiento para inyectar energ a al sistema lo suficiente c
131. os en los cuales se quiere regular el sistema Para la aproximaci n lineal se emplear la expansi n de las ecuaciones en series de Taylor esto es diferenciando la ecuaciones 2 7 y 2 8 respecto a las variables de estado obteni ndose las matrices A y B 0 10 0 0 0 01 0 ape p amp amp 0 ol EN d 9 0 Fa Ex x cu 16 En la secci n anterior se obtuvieron las ecuaciones 2 11 y 2 12 las cuales permiten estudiar los puntos de equilibrio del Pendubot Para este proyecto los puntos de inter s son las posiciones tope E o y media 5 7 se eval a en los puntos de equilibrio cada Matriz y se obtienen los siguientes resultados Posici n media x Ax Bu 0 0 1 0 0 0 0 0 i p 0 63 9961 62 2213 0 0 129 5721 64 6366 27 7913 0 0 37 8246 Posici n tope x Ax Bu 0 0 1 0 0 0 0 o 1 p 0 639961 62 2213 Q0 of 129 5721 63 3556 1522339 0 0 221 3196 Estas matrices constituyen el modelo lineal del sistema en las configuraciones tope y media del Pendubot Como se puede observar cada punto de equilibrio tiene una linealizaci n diferente por lo que cada punto requiere que el control tenga diferentes valores de ganancia El objetivo del controlador es el de llevar los dos p ndulos de la posici n de equilibrio estable a una posici n de equilibrio inestable en donde el sistema se balancea La estrategia de control se divide en dos partes La primera de ellas emplea un c
132. oyecto y se selecciona New VI Se nota que el nuevo VI se encuentra bajo el rbol de My Computer 129 3 Project Explorer Proyecto Pendubo ET File Edit View Project Operate Tools Window Help PoSa l xo x 8SP uim all we Items Files E fe Project Proyecto Pendubot FPGA lvproj Er 8 My Computer amp D Subvi a amp PE Control LQR Pendubot Devi Spartan 3E Starter Board 2 Dependencies 15 Build Specifications i Figura B 11 HOST_FPGA Sobre el diagrama de bloques del nuevo VI se coloca la funci n gt gt Open FPGA VI Reference la funci n se encuentra en la paleta de funciones en la interfaz de FPGA El Open FPGA VI Reference se utiliza para hacer referencia al FPGA VI situado en el mismo proyecto Sobre sta funci n se hace click derecho y se selecciona el FPGA VI como se muestra en la Figura B 13 2 Functions Q Search Programming L El cel Ye Structures Array Cluster Clas G my ee gt Numeric Boolean String E 7 El B k Comparison Timing Dialog amp Use gt i ES gt B fem FlleVO Waveform Application Bio E D Ei Bd Synchronizat Graphics amp S Report Gener Vision and Motion gt Signal Processing ress Sum a VL 1 FPGA Interface Open FPGA VI Reference Real Time 4 ST FPGA Interface B m B C Generator Y
133. partir de las posiciones angulares El filtro que se utilizara est dado por la siguiente funci n de transferencia w T s a 52 20w s w Donde w 2x f f 20 Hz que es la frecuencia de corte y se utilizar un v2 para que el filtro tenga un comportamiento cercano al ideal El siguiente diagrama de bloques permitir estimar la velocidad a partir de la posici n angular La funci n de transferencia obtenida es d A q 52 420w s tw Discretizando la funci n de transferencia utilizando el m todo de tustin se obtiene la expresi n que permitir estimar la velocidad angular 2226337 q q 2 1 32079 q 0 49889 4 Se implementar esta ecuaci n en un subvi como se indica en la figura 5 6 Estimaci n de velocidad con Filtro pasabajos de segundo orden 57 Una vez obtenidas las se ales de las variables de estado se contin a con la programaci n de los controladores del Pendubot los cuales permitir n mantener en equilibrio al sistema 5 2 CONTROL DEL PENDUBOT El control del Pendubot en las posiciones tope y media de equilibrio se realiza empleando la t cnica LQR Regulador cuadr tico lineal Para ello se utilizar un VI en LABVIEW que permitir determinar el vector de control ptimo K de este sistema en cualquier posici n Modelo Linealizado Ecuaciones de Estado Transforming column matrix to vector Matriz d
134. r en la segunda articulaci n y s lo est restringido por el movimiento de la primera articulaci n debido al acoplamiento que existe entre ellas Algunos trabajos relacionados al respecto son Block y Spong 2 usando la t cnica de Swing Up y estabilizando el Pendubot por medio de un controlador lineal LQR Regulador Cuadr tico Lineal El reto de este mecanismo es que en ausencia de control las posiciones deseadas son puntos inestables del sistema Los cap tulos se encuentran distribuidos de la siguiente manera El Cap tulo Uno Fundamentos B sicos se hace una breve descripci n del sistema objetivos de control y el sistema de control El Cap tulo Dos Modelado Matem tico del Pendubot se presenta todo el modelo matem tico superficialmente debido a que su an lisis a profundidad se encuentra en Andrade S Renato German An lisis Dise o y Construcci n del xiii PENDUBOT 3 contiene el modelado din mico los puntos de equilibrio y su aproximaci n lineal El Cap tulo Tres Dise o de los Controladores del Sistema Pendubot se obtienen los controladores necesarios para el funcionamiento del sistema Pendubot se tiene un controlador diferente para cada posici n del Pendubot esto es el LQR para el equilibrio mientras que para el balanceo que es llevar el sistema al punto cercano de funcionamiento se realza una linealizaci n parcial retroalimentaci n de estados y se construye un controlador
135. r hasta 5 tipos diferentes de terminaciones utilizando una red de resistencias internas que se ajustan en serie o en paralelo dependiendo de las necesidades del est ndar elegido Bloques de L gica Configurable CLB El bloque b sico de la red que compone la FPGA es la slice Existen dos tipo de slice stas se diferencian en algunos elementos pero son muy parecidas ver m s adelante Luego estas slices se organizan en los bloques l gicos elementales que son los que se describen a continuaci n 141 os Bloques de Logica Configurable CLBs constituyen el recurso l gico principal para implementar circuitos s ncronos o combinacionales Cada CLB est compuesta de cuatro slices interconectadas entre si tal como se muestra en la Figura 3 Las cuatro slices que componen un CLB tienen los siguientes elementos en com n dos generadores de funciones l gicas dos elementos de almacenamiento multiplexores de funci n amplia l gica de carry y compuertas aritm ticas tal como se muestra en la Figura 4 Los dos pares de s ices usan estos elementos para entregar funciones l gicas y aritm ticas de ROM Adem s de lo anterior el par de la izquierda soporta dos funciones adicionales almacenamiento de datos usando RAM distribuida y corrimiento de datos con registros de 16 bits Left Hand SLICEM Logic or Distributed RAM or Shift Register Right Hand SLICEL Logic Only COUT Interconnect to Neighbors
136. r space CALL LCD write data LOAD s5 7E flecha derecha CALL LCD write data LOAD 55 character space CALL LCD write data LOAD s5 character space CALL LCD write data RETURN gt muestra gt Control Tope en la actual posicion del cursor en el LCD disp ctrlmedio LOAD s5 character mayor CALL LCD write data LOAD s5 character C 163 CALL LCD write data LOAD s5 character t CALL LCD write data LOAD s5 character CALL LCD write data LOAD s5 character 1 CALL LCD write data LOAD s5 character space CALL LCD write data LOAD s5 character M CALL LCD write data LOAD s5 character e CALL LCD write data LOAD s5 character d CALL LCD write data LOAD s5 character i CALL LCD write data LOAD s5 character CALL LCD write data LOAD s5 character space CALL LCD write data LOAD s5 character space CALL LCD write data LOAD s5 7F flecha izquierda CALL LCD_write_data LOAD s5 character_space CALL LCD write data LOAD s5 character space CALL LCD write data RETURN disp numero LOAD s5 dig54 CALL LCD write data LOAD s5 dig32 CALL LCD write data LOAD 85 dig10 CALL LCD write data RETURN LLLLLLLLLLLLLLLLLLLLLELELLLLLLLLLLLLLLLLLLLLLLELLLLLLLLLLLLLLLLLELLLLLLLLLLLLLLELLLLLLLLLLLII x i DE BINARIO A BCD DE 16 BITS SSH SEAE A E AE sk e AI I IS RAG E E I I A ISG e ll icol A EREE OE I A eR Convierte una entrada binaria de 16 bits a 5 num en BCD binario bcd load dig10 00 load
137. resenta el sistema Pendubot es que su modelo matem tico es altamente no lineal y por lo tanto es dificil encontrar una ley de control nica que resuelva los tres objetivos antes mencionados 13 SISTEMA DE CONTROL La tendencia actual de dise o de circuitos integrados es que estos realicen todas las funciones que se requieran en un solo chip por tal motivo se implementan en la FPGA los algoritmos de adquisici n de datos pre procesado algoritmo de control regulaci n del punto de operaci n y determinaci n de la salida del sistema as como tambi n el m dulo de comunicaci n con un computador para registrar los valores de las variables a controlar Para esto se utiliza la tarjeta Spartan 3E Starter Kit para que realice todas las funciones que son necesarias para el correcto funcionamiento del sistema La figura 1 5 muestra la tarjeta Spartan 3E Starter Kit de Xilinx 4 icron poui uJ 7 nm NUTT INSTRUMENTS sit 53 suo SE XILINX i DIGILENT t ESL n 3SPARTAN 3E L 4 idee mE vA Z a Figura 1 5 Spartan 3E de Xilinx 9 En la figura 1 6 se muestra el diagrama de control que generar la salida de control a partir de las entradas generadas por los sensores en el sistema El sistema tiene cuatro entradas dos entradas para cada encoder incremental que est n en cada enlace los leds indicadores del sistema los pulsadores y switch de control la comunicaci n con la PC y la salida del contro
138. rgets and Devices y se seleccina New target or device se expande Xilinx University Program y se selecciona Spartan 3E Starter Board y se presiona OK Add Targets and Devices on My Computer Targets and Devices Existing target or device Discover an existing target s Specify a target or device by IP New target or device r device s address Targets and Device Types EHO Xilinx University Program Figura 4 13 Add Spartan 3E Target Project Explorer Untitled Project 1 yo X File Edit View Project Operate Tools Window Help x X 2 els m Items Files Ele Project Untitled Project 1 a EH Computer OnboardClock 99 Dependencies Build Specifications Dependencies We Build Specifications Figura 4 14 Dispositivo agregado al proyecto 43 4 Ahora que se tiene agregado el dispositivo en el proyecto figura 4 14 se crea una FPGA VI se da click derecho sobre el nombre del dispositivo agregado FPGA Target Dev1 Spartan 3E Starter Board y se selecciona New VI y se tendr el FPGA VI afiadido al proyecto se debe notar que el FPGA VI est en el rbol del dispositivo FPGA figura 4 15 Project Explorer Untitled Project 1 kl XT 13 Proj File Edit View Project Operate Tools Window Help be e x es k FZ Items Files gt E Project Untitled Project 1 E My Computer
139. rjeta Spartan 3E Starter Kit incluye un conversor Digital An logo de cuatro canales con comunicaci n SPI Serial Peripheral Interface de 12 bits de resoluci n con una salida de 0 a 3 3 V o de 0 a 2 5 V dependiendo de la salida configurada 5 31 SUBVI DEL CONVERSOR DIGITAL AN LOGO DAC Se utiliza para convertir la se al de control digital a una se al de control anal gica 60 Para utilizar el DAC se realizar n dos Subvi s el primero para la Configuraci n del DAC que solo actuar al encender el FPGA es decir funciona nicamente cuando empieza el programa y el segundo Subvi que act a permanentemente este ajusta la se al de control y la env a al DAC por comunicaci n SPI 5 3 1 1 Subvi de Configuraci n El DAC de la tarjeta Spartan 3E Starter Kit de Xilinx se comunica a trav s del bus SPI Como el bus SPI es compartido con otros dispositivos del m dulo es importante que estos se deshabiliten cuando se utilice la comunicaci n entre el FPGA y el DAC de acuerdo con la tabla 4 2 y en la tabla 4 1 se muestra la lista de senales que se deben configurar se indican las tablas nuevamente en Tabla 5 2 y 5 1 respectivamente Signal FPGA Pin Direction Description SPI MOSI T4 FPGA gt DAC Serial data Master Output Slave Input DAC_CS N8 FPGA gt DAC Active Low chip select Digital to analog conversion starts when signal returns High SPI SCK U16 FPGA2DAC Clock DAC_CLR
140. rollo de sistemas de hardware reconfigurables Rob tica Posibilidad de dise ar CPUs espec ficas para aplicaciones de rob tica as como controladores para perif ricos unidades de PWM para mover servos temporizadores controladores para sensores de ultrasonidos de distancia controladores modernos inteligentes etc 4 5 PROGRAMACI N DE UNA FPGA La tarea para programar una FPGA primero es definir la funci n l gica que realizar cada uno de los CLB luego seleccionar el modo de trabajo de cada IOB e interconectarlos Para ello se tiene entornos de desarrollo especializados en el dise o de sistemas a implementarse en un FPGA Un disefio puede ser capturado ya sea como esquem tico o haciendo uso de un lenguaje de programaci n especial Estos lenguajes de programaci n especial son conocidos como HDL o Hardware Description Language Lenguajes de Descripci n de Hardware Los HDLs m s utilizados son Bitstream Este t rmino es frecuentemente utilizado para describir los datos de configuraci n que son cargados al FPGA 37 1 VHDL 2 Verilog 3 ABEL En un intento de reducir la complejidad y el tiempo de desarrollo en fases de prototipaje r pido y para validar un dise o en HDL existen varias propuestas y niveles de abstracci n del dise o Entre otras National Instruments con LabVIEW FPGA propone un acercamiento de programaci n gr fica de alto nivel 1 4 51 PROGRAMACI N GR FICA DE ALTO NIVEL Tradi
141. rrespondiente se muestran a continuacion Eslab n 1 Eslab n 2 Figura 6 22 Posiciones angulares Tambi n se puede observar el efecto ante perturbaciones en el sistema Eslab n 1 Eslab n 2 Figura 6 23 Posici n angular de los eslabones ante perturbaciones 100 Para este controlador se puede observar que la variaci n de la posici n de ambos enlaces esta alrededor del punto de equilibrio deseado aproximadamente en 0 03 rad 1 723 1 0 0 p00 2 O 0 T g 0 0 005 O y R 1 1 se tiene 0 0 0 0 7 5478 x 102754 an 0 7464 1 4329 Las figuras del comportamiento correspondiente se muestran a continuaci n Eslab n 1 Eslab n 2 Figura 6 24 Posiciones angulares Tambi n se puede observar el efecto ante perturbaciones en el sistema 3 6 3 5 34 Eslab n 1 Eslab n 2 Figura 6 25 Posici n angular de los eslabones ante perturbaciones 101 Para este controlador se puede observar que la variaci n de la posici n de ambos enlaces esta alrededor del punto de equilibrio deseado aproximadamente en 0 03 rad 1 723 El Control de Balanceo Control PD es el mismo para cualquier cambio del controlador de equilibrio Como se esperaba el algoritmo de control de llevar los enlaces desde la posici n estable de equilibrio posici n inferior hasta la posici n inestable de equilibrio posici n media se cumple siempre y cuando el sistema est en la posici n inicial y el algori
142. s en un IOB la ruta de salida la ruta de entrada y la 138 ruta tri estado Cada ruta tiene su propio par de elementos de almacenamiento que pueden actuar tanto como registros o como latches Las tres rutas principales son como sigue La ruta de entrada que lleva datos desde el pad que est unido al pin del package a trav s de un elemento de retardo opcional programable directamente a la linea Despu s del elemento de retardo hay rutas alternativas a trav s de un par de elementos de almacenamiento hacia las l neas IQ1 e IQ2 Las tres salidas del IOB todas conducen a la l gica interna de la FPGA La ruta de salida que parte con las l neas O1 y O2 lleva datos desde la l gica interna de la FPGA a trav s de un multiplexor y del driver tri estado hacia el pad del IOB En suma a esta ruta directa el multiplexor da la opci n de insertar un par de elementos de almacenamiento La ruta tri estado determina cuando el driver de salida est en alta impedancia Las l neas T1 y T2 llevan datos desde la l gica interna a trav s de un multiplexor hacia el driver de salida En suma a esta ruta directa el multiplexor da la opci n de entregar un par de elementos de almacenamiento Todas las rutas de se ales que entran al IOB incluidas aquellas asociadas con los elementos de almacenamiento tienen una opci n de inversi n Cualquier inversor colocado en la programaci n en estas rutas es autom ticamente absorbido dentro del IOB
143. s no lineales como el Pendubot Paralos siguientes puntos de referencia 1 Punto de Referencia inicial 1 5708 rad 2 Punto de Referencia final 1 6626 rad 103 1 1 25 15 Tetal 2 225 2 5 1 3468 Eslab n 1 Eslab n 2 Figura 6 27 Posici n angular de los eslabones ante cambios del punto referencia gt Para los siguientes puntos de referencia 1 Punto de Referencia inicial 1 6626rad 2 Punto de Referencia final 1 4595 rad Tetal 26 3577 3682 Eslab n 1 Eslab n 2 Figura 6 16 Posici n angular de los eslabones ante cambios del punto de referencia 104 Equilibrar al Pendubot en otro punto de referencia es posible con ambos eslabones en la posici n media Como se esperaba el algoritmo de control permite estabilizar al sistema en la posici n deseada cumpli ndose siempre la condici n de 8 8 7 Los resultados presentados muestran un funcionamiento adecuado del sistema en las posiciones tope y media a trav s del FPGA Los m dulos programados que se emplean para el algoritmo de este proyecto demuestran la gran versatilidad de la programaci n en alto nivel sobre los FPGA debido a que se puede realizar o alterar el programa principal de una manera f cil La adopci n de la tecnolog a FPGA contin a creciendo mientras que las herramientas de alto nivel evolucionan para ofrecer mejores beneficios del silicio reprogramable 105 CAP TULO 7 CONCLUSIONES Y
144. se ha eliminado el desfase se eleva la se al LOCKED que indica la puesta en fase del reloj con respecto a la retro alimentaci n Las sefiales de reloj tienen una red dedicada especial para su distribuci n Esta red tiene ocho entradas globales por medio de buffers La red tiene baja capacitancia y produce muy bajo skew de reloj lo que la hace adecuada para 148 conducir se ales de alta frecuencia Tal como se muestra en la Figura 8 las entradas GCLK0 a GCLK3 est n puestas en la parte inferior de la oblea de la FPGA mientras que las entradas GCLK4 a GCLK7 est n colocadas en la parte superior Se puede conducir cualquiera de dichas entradas hacia cada uno de los CLBs por medio de las l neas principales que se observan en negro grueso en la Figura 8 Las l neas m s delgadas representan l neas que conducen hacia los elementos s ncronos de cada una de las slices de los CLBs Las entradas a la red se distribuyen a trav s de 4 multiplexores 2 1 a cada lado de la red los que tambi n conducen las se ales provenientes de los DCMs Con el prop sito de minimizar la disipaci n de potencia din mica en la red de distribuci n de relojes el software de s ntesis autom ticamente deshabilita aquellas l neas que no son utilizadas en el dise o Esta red de distribuci n de se ales de reloj es completamente independiente de la malla de interconexiones entre CLBs GCLK7 GCLK5 T GCLK6 GCLK4 4 BUFGMUX LL LL LL
145. si se capta tambi n la otra se al canal B se tiene el sentido de giro Fotorreceptor Emisor de luz b Figura 1 2 a Representaci n Encoder ptico 7 b Pulsos de salida de un encoder desfasados 90 8 La posici n angular del enlace uno se mide con respecto a un sistema fijo de coordenadas 0 ubicado sobre el eje del enlace uno y del enlace dos con po Zn respecto a un eje que constituye la prolongaci n del enlace uno tal como se muestra en la figura 1 3 Figura 1 3 Posici n angular 3 De acuerdo al modelo din mico el sistema cuenta con cuatro puntos de equilibrio principales con entrada cero r 0 uno estable 0 y tres inestables 0 5 y 2 2 1 2 2 OBJETIVO DE CONTROL En este sistema los objetivos b sicos de control son e Control de Balanceo el cual consiste en llevar los enlaces desde su punto de equilibrio estable 72 0 a sus puntos de equilibrio inestables posici n tope z 0 y su posici n media 72 2 a trav s de los movimientos del primer eslab n e Control de Equilibrio que consiste en hacer estable los puntos inestables del sistema e Seguimiento el cual se trata de que el sistema una vez estabilizado siga una referencia de posici n variante en el tiempo Las posiciones inestables de equilibrio se ilustran en la figura 1 4 a b Figura 1 4 a Posici n media b Posici n tope 3 Uno de los problemas de control que p
146. ster s5 Instructions are written using the following sequence Upper nibble wait gt lus Lower nibble wait gt 40us Registers used s0 51 54 s5 LCD_write_inst8 LOAD s4 s5 AND s4 FO Enable 0 RS 0 Instruction RW 0 Write E 0 OR s4 LCD_drive Enable 1 CALL LCD_write_inst4 write upper nibble CALL delay_lus wait 1us LOAD s4 s5 select lower nibble with SLI s4 Enable 1 SLO s4 RS 0 Instruction SLO s4 RW 0 Write SLO s4 E 0 CALL LCD write inst4 write lower nibble CALL delay 40us wait gt 40us LOAD s4 FO Enable 0 RS 0 Instruction RW 0 Write E 0 OUTPUT s4 LCD output port Release master enable RETURN Write 8 bit data to LCD display The 8 bit data should be provided in register s5 Data bytes are written using the following sequence Upper nibble wait gt lus Lower nibble wait gt 40us Registers used s0 51 s4 s5 LCD_write_data LOAD s4 s5 AND s4 FO Enable 0 RS 0 Instruction RW 0 Write E 0 OR s4 0C Enable 1 RS 1 Data RW 0 Write E 0 OUTPUT s4 LCD_output_port set up RS and RW 40ns before enable pulse CALL LCD pulse E write upper nibble CALL delay 1us wait 1us LOAD s4 s5 select lower nibble with 511 s4 Enable 1 SLI s4 RS 1 Data SLO s4 RW 0 Write 158 SLO s4 CALL LCD_pulse_E CALL delay_40us 159 E 0 OUTPUT s4 LCD output port set up RS and RW 40ns before enable pulse write lower nibble wait gt 40us LO
147. td logic led e out std logic pantalla in std logic control 514 logic vector 7 downto 0 tetal in std_logic_vector 9 downto 0 teta2 in std_logic_vector 9 downto 0 end control lcd architecture Behavioral of control lcd is COMPONENT kcpsm3 PORT instruction IN std logic vector 17 downto 0 in port IN std logic vector 7 downto 0 interrupt IN std logic reset IN std logic clk IN std logic address OUT std logic vector 9 downto 0 port id OUT std logic vector 7 downto 0 write strobe OUT std logic out port OUT std logic vector 7 downto 0 read strobe OUT std logic interrupt OUT std_logic END COMPONENT COMPONENT lcd disp PORT address IN std logic vector 9 downto 0 clk IN std logic instruction OUT std logic vector 17 downto 0 END COMPONENT signal instruction std logic vector 17 downto 0 signal in port std logic vector 7 downto 0 signal interrupt std_logic 0 no se necesita interrupcion signal reset std_logic 0 reset en false signal address std_logic_vector 9 downto 0 signal port_id std_logic_vector 7 downto 0 signal write strobe std logic signal out port std logic vector 7 downto 0 166 Signal read_strobe std_logic signal interrupt ack std logic signal lcd rw control std logic signal lcd output data std logic vector 7 downto 4 signal led drive std logic StrataFLASH must be dis
148. te manera gt Si el sistema no logra llegar alrededor del punto de operaci n se debe disminuir Kd o aumentar Kp gt Siel sistema se pasa alrededor del punto de operaci n se debe aumentar Kd o dismiuir Kp La variaci n de las ganancias se realiza en el orden de las cent simas es decir peque as variaciones ANEXO B PROGRAMACI N B SICA FPGA VI 121 122 PROGRAMACI N CON LABVIEW FPGA El M dulo de LabVIEW FPGA de National Instruments extiende las capacidades de desarrollo grafico de LabVIEW Con el M dulo de LabVIEW FPGA se puede crear sistemas de medicion y control personalizados en hardware Requerimientos para trabajar con el M dulo LabVIEW FPGA y la tarjetaSpartan 3E M dulo de LABVIEW FPGA M dulo LabVIEW Real Time Driver de la Tarjeta Spartan 3E B 1 CREACI N DE UN FPGA VI Para crear un proyecto con la Spartan 3E se siguen los siguientes pasos 1 Se abre un proyecto nuevo Empty Project 2 Se da click derecho sobre My Computer y en este se selecciona el dispositivo New Targets and Devices como se muestra en la figura B 1 o T3 Project Explorer Untitled Project 1 MEET x9 ege mm e alls ae Items Files lg Project Untitled Project 1 L My Computer X Build Spe Aaa z Simulation Subsystem Virtual Folder Utilities gt Control Deploy Library Arrange by gt Expand All i Collapse All Help Properties NI SoftMotion Axis
149. tes que ahora pueden definir la l gica FPGA usando el desarrollo gr fico de LabVIEW Los estudiantes de control y medici n ahora pueden enfocarse primordialmente en las aplicaciones de prueba y control donde se debe insistir en la pr ctica Es importante se alar que el Pendubot mencionado se encuentra previamente construido y se adaptar el hardware existente para ser controlado por la FPGA xi PRESENTACION En el presente proyecto se pretende abordar una nueva tecnologia FPGA para ser utilizado en el control de sistemas programada a trav s del software LABVIEW FPGA Para su presentaci n se resuelve el problema de regulaci n del Pendubot La Spartan 3E es una FPGA Field Programmable Gate Array Arreglo de Compuertas Programables en Campo que por su bajo coste y facilidad de programacion permite que sea asequible para proyectos que vayan orientados a la ingenier a rob tica inform tica e industria Consta principalmente de perif ricos ya conocidos como puertos VGA PS 2 USB LCD Switch Pulsadores Ethernet etc Las FPGA fueron inventadas en 1984 por Ross Freeman y Bernard Vonderschmitt co fundadores de Xilinx y surgen como evoluci n de los CPLDs 1 Una FPGA es un dispositivo que est constituido por bloques de l gica interconectados cuya funcionalidad se puede programar Los circuitos son plenamente reprogramables y por lo tanto son muy flexibles en t rminos del rango de dise os pr cticos para los c
150. tmo de control permite estabilizar al sistema en la posici n deseada adem s que se cumple la condici n de 8 8 lo cual se verifica si se suman las se ales de las posiciones de cada eslab n 6 3 3 2 2 Comportamiento desde la posici n inestable de equilibrio posici n media Estas pruebas se realizar n con el sistema en la posici n media en donde se probar la rapidez de procesamiento del algoritmo de control implementado en la FPGA al cambiar el controlador de equilibrio cuando el sistema est en este punto de operaci n Se han probado los siguientes controladores para observar el comportamiento 1 4 8134 7 3641 0 4950 1 0054 eo R 11 Medio A e Il coo cora cocoa 7 5478 10 2754 0 7464 1 4329 R 11 Kuedio 7 o oo D cc oo 8 2517 11 4514 0 8016 1 595 a oc c B in e s 0 0 R 1 1 105 oy E E Medio 102 0 5 1 15 2 2 5 1 438 4629 Eslab n 1 Eslab n 2 Figura 6 26 Posici n angular de los eslabones ante cambios del controlador Al equilibrar al Pendubot en la posici n media se observa que esta posici n es m s estable que la posici n tope por lo que permite un mejor control del Pendubot 6 3 3 2 3 Comportamiento al variar el punto de operaci n del sistema Una vez equilibrado el sistema se variar el punto de operaci n para probar la robustez del control en planta
151. tocolo es de 32 bits y los datos son transmitidos respetando los tiempos de comunicaci n La transmisi n es bit a bit y en flanco positivo del reloj enviando primero el bit m s significativo MSB y termina en el bit menos significativo LSB 62 D Slave LTC2624 DAC 31 ix xpo o 1 2 4 5 7 9 101 lealea x Ex Dx Ex Ex x x iso med SPI MOSI DAC CS Don Care COMMAND uo 5 34 PON Figura 5 13 Protocolo de comunicaci n para el DAC LTC2624 9 Este subvi tendr un limitador de la se al de control debido a que solo se realizar el control entre los valores de 3 a 3 V respetando las recomendaciones dadas en 3 el cual indica los l mites de la se al de control con la finalidad de minimizar el esfuerzo producido por el actuador El Ajuste de la se al de control se realiza debido a que el DAC de la tarjeta Spartan 3E no emite valores negativos por lo que es necesario realizar un ajuste de la sefial transformando a valores positivos y en proporci n a la unidad para que en la salida se tenga una relaci n lineal de los valores respecto al valor m ximo entregado por el DAC esto es y x 6 1 2 4095 Ajuste de Se al x 6 1 2 4095 Bits Encoder Se al de Control Figura 5 14 Ajuste de Se al de Control 63 En la figura 5 15 se muestra el subvi que realiza el ajuste de la se al de control y s
152. u relaci n a los 12 bits del DAC adem s de la trama para la comunicaci n NODYINAWOD NH 119 iq ap uoisiuusue e ezaidwa ofeq ua S yq BANDE as opueN gt 6 ij e e opiande ap sopuajsued uos sojep 507 gusuuuuuuuu uuud uuuuuuuguuuuuuuuduuuduuuuuuuuuuguuuuuuui JVC P SoweyliqeH aed anbioy n Figura 5 15 SubVI de ajuste y trama del DAC Ajuste que rama DAC Tor T licono del subvi 64 El DAC entrega una se al positiva de 0 a 3 3V que tiene una relaci n lineal con la se al de control y para tener nuevamente la se al de control original se realizar la transformaci n de voltaje es decir de 3 a 3V de acuerdo a la se al dada por el algoritmo de control 5 3 2 ACONDICIONAMIENTO DE LA SE AL DE CONTROL Para la se al de control se dise un circuito adicional que permite convertir la se al de salida del conversor digital an logo de O a 3 3 V en una se al adecuada de 3V a 3V para el control del motor dc del Pendubot el cual se conectar a la entrada del sevoamplificador El circuito consta de tres etapas la primer etapa es un amplificador seguidor el cual permite acoplar el FPGA con el circuito de acondicionamiento la segunda etapa consta de un amplificador no inversor y la tercer etapa de un sumador no inversor que permite restar un voltaje para obtener el valor deseado de voltaje de acuerdo a la siguiente relaci n y 1 8182 x 5 1
153. uales pueden ser usadas son de f cil uso y programaci n y ofrecen un gran rendimiento Las FPGA ejecutan los bloques internos de forma concurrente es decir completamente en paralelo se puede crear un gran n mero de tareas espec ficas que se ejecutan como circuitos en paralelos dentro del chip Los microprocesadores microcontroladores y DSP s carecen de esta funcionalidad ya que est n forzados a procesar una instrucci n a la vez utilizando esquemas complejos manejo de hilos u otros para lograr un pseudoparalelismo xii e inclusive con nuevas tecnolog as como los procesadores multi nucleo no pueden lograr un procesamiento en paralelo como las FPGA Finalmente a diferencia de los ASIC Circuito Integrado para Aplicaciones Espec ficas los FPGA son reprogramables actualizar un sistema con alguna correcci n en el dise o es posible mientras que con los ASIC se tiene un dise o fijo y hacer un cambio es demasiado complejo El Pendubot fue desarrollado originalmente en Coordinated Science Laboratory University of Illinois at Urbana Champaign bajo la direcci n del Profesor Mark W Spong El Pendubot nombre formado por la contracci n de las palabras PENDULUM y ROBOT es un sistema electromec nico subactuado dise ado para educaci n investigaci n e implementaci n de algoritmos de control El Pendubot tiene la estructura de un robot manipulador de dos grados de libertad de enlaces r gidos pero no tiene actuado
154. uando el sistema est en la posici n inicial y el algoritmo de control permite estabilizar al sistema en la posici n deseada adem s se cumple la condici n de 8 lo cual se verifica si se suman las se ales de las posiciones de cada eslab n 6 3 3 1 2 Comportamiento desde la posici n inestable de equilibrio posici n tope Estas pruebas se realizar n con el sistema en la posici n tope en donde se probar la rapidez de procesamiento del algoritmo de control implementado en la FPGA al cambiar el controlador de equilibrio cuando el sistema est en funcionamiento gt Se han probado los siguientes controladores para observar el comportamiento 1 0 00 13 7134 _ 0 350 0 O _ _ 12 6425 0 0 O 1 7778 100 O 18 2538 _ 0 9 o O _ _ 16 3726 2 g Boa ub R 11 Krope pena 0 0 0 0 2 3134 1 0 o 0 26 4052 _ lo 2450 0 0 _ 23 0227 3 up ol R 11 Kt ope 5 1425 0 0 0 3 2687 93 0 5 d eN cs AS E 0 0 5 a 26272 22094 26285 Eslab n 1 Eslab n 2 Figura 6 14 Posici n angular de los eslabones ante cambios del controlador Al equilibrar al Pendubot en la Posici n Tope se observa que existe una oscilaci n alrededor del punto de equilibrio donde la amplitud depende del controlador utilizado Al investigar esto se han realizado varias mediciones sobre el motor y el servoamplificador

Download Pdf Manuals

image

Related Search

Related Contents

POUR RETROUVER FACILEMENT LES BONS CONSEILS  End-of-Quarter Collected Announcements and Deadlines  User Manual - Smart Witness    Saisie des résultats d`évaluation de 6ème sur Evasion  MANUEL D`UTILISATION CE Multitester MI2094  Acard ARS-2050P  1 ACRES - KellySolutions.com  Samsung HRM316EFC User Manual  TR6.8 TREADMILL OWNER`S MANUAL  

Copyright © All rights reserved.
Failed to retrieve file