96 resultados para Arduino (Programmable controller) - programming
em Universidad Politécnica de Madrid
Resumo:
El presente proyecto tiene como objetivo la creación de un controlador MIDI económico que haga uso de la tecnología actual, y partiendo de la idea del instrumento clásico, el Theremin, desarrollado por Lev Serguéievich Termen. Para ello se ha dividido el proyecto en dos principales bloques, el primero, hardware y el segundo, software. En la parte del hardware, se explica cual ha sido la razón de la utilización del microprocesador Arduino Uno, sus características técnicas y el uso de sensores de ultrasonido, ya que proporcionan la característica de poder interactuar con el controlador a través de gestos con las manos, al igual que un Theremin clásico. Se explica el montaje de los dispositivos que conforman el controlador, así como la mejora realizada, con la utilización de 4 de estos sensores, para dar más capacidades de interactuación con el controlador MIDI. También se ve en ese apartado, como se programa la tarjeta de Arduino, para que se encargue de realizar medidas con los sensores y enviarlas por el puerto serial USB. En el apartado del software se da una introducción al entorno de programación Max/MSP. Se ve el plug in desarrollado con este lenguaje, para poder comunicar el controlador MIDI con un software de audio profesional (Ableton Live) y se explica con detalle los bloques que conforman el plug in de control de sensores y como es transformada la información que entrega el microprocesador Arduino por el puerto USB, en datos MIDI. También, se da una explicación sobre el manejo correcto del controlador a la hora de mover las manos sobre los sensores y de donde situar el instrumento para que no se produzcan problemas de interferencias con las señales que envían los ultrasonidos. Además, se proporciona un presupuesto del coste de los materiales, y otro del coste del desarrollo realizado por el ingeniero. ABSTRACT The aim of this Project is the creation of an economical MIDI controller that uses nowadays technology and that is based on the idea of the Theremin, a classical instrument conceived by Lev Serguéievich Termen. In order to accomplish this, the project has been divided into two sections: hardware and software. The hardware section explains why the microprocessor Arduino Uno has been chosen, sets out its technical specifications and the use of ultrasonic sensors. These sensors enable the user to interact with the controller through hand gestures like the Theremin. The assembly of the devices is exposed as well as the improvements made with the use of four of these sensors to offer more interactive capabilities with the MIDI controller. The Arduino singleboard programming that performs the measurements with the sensors and sends these measurements through the USB serial port is also explained here. The software section introduces Max/MSP programming environment as well as the plug in developed with this language that connects the MIDI controller with professional audio software (Ableton Live). The blocks that build the sensor controller plug in are explained in detail along with the way the Arduino delivers the information through the USB port into MIDI data. In addition, an explanation of the correct handling of the MIDI controller is given focusing on how the user should move his hands above the sensors and where to place the instrument to avoid interference problems with the signals sent. Also, a cost estimation of both materials and engineering is provided.
Resumo:
Este proyecto fin de carrera tiene como finalidad el diseño e implementación de un sistema multicanal de medida de temperaturas con termopares con procesado digital. Se ha realizado un prototipo de cuatro canales con conexión de termopar, que es el tipo de sensor utilizado para realizar dichas medidas. La tensión generada por el termopar es procesada mediante un conversor de termopar a digital con salida en interfaz modo serie o SPI (Serial Peripheral Interface). El control de dicha comunicación se realiza por medio de un Array de Puertas Lógicas Programables o FPGA (Field Programmable Gate Array), en concreto se ha utilizado una plataforma de desarrollo modelo Virtex-5 de la empresa Xilinx. Esta tarjeta se ha programado también para el procesado software y la posterior comunicación serie con el PC, el cual consta de una interfaz de usuario donde se muestran los resultados de las medidas en tiempo real. El proyecto ha sido desarrollado en colaboración con una empresa privada dedicada principalmente al diseño electrónico. La finalidad de este prototipo es el estudio de una actualización del bloque de medida para el control de las curvas de temperatura de un equipo de reparación aeronáutica. En esta memoria se describe el proceso realizado para el desarrollo del prototipo, incluye la presentación de los estudios realizados y la información necesaria para llevar a cabo el diseño, la fabricación y la programación de los diferentes bloques que componen el sistema. ABSTRACT. The aim of this project is to implement a multichannel temperature measurement system with digital processing, using thermocouples. A four-channel prototype with thermocouple connection has been built. The thermocouple voltage is converted to digital line using a Thermocouple-to-Digital Converter with a Serial Perpheral Interface (SPI) output. The master which controls this communication is embedded in a Field Programmable Gate Array (FPGA), specifically the Xilinx Virtex-5 model. This FPGA also has the code for software temperature processing and the prototype to PC serial communication embedded. The PC user interface displays the measurement results in real time. This project has been developed at a private electronics design company. The company wants to study an update to change the analogue temperature controller equipment to a digital one. So this prototype studies a digital version of the temperature measurement block. The processes accomplished for the prototype development are detailed in the next pages of this document. It includes the studies and information needed to develop the design, manufacturing process and programming of the blocks which integrate with the global system.
Resumo:
Este proyecto consiste en el diseño y construcción de un sintetizador basado en el chip 6581 Sound Interface Device (SID). Este chip era el encargado de la generación de sonido en el Commodore 64, ordenador personal comercializado en 1982, y fue el primer sintetizador complejo construido para ordenador. El chip en cuestión es un sintetizador de tres voces, cada una de ellas capaz de generar cuatro diferentes formas de onda. Cada voz tiene control independiente de varios parámetros, permitiendo una relativamente amplia variedad de sonidos y efectos, muy útil para su uso en videojuegos. Además está dotado de un filtro programable para conseguir distintos timbres mediante síntesis sustractiva. El sintetizador se ha construido sobre Arduino, una plataforma de electrónica abierta concebida para la creación de prototipos, consistente en una placa de circuito impreso con un microcontrolador, programable desde un PC para que realice múltiples funciones (desde encender LEDs hasta controlar servomecanismos en robótica, procesado y transmisión de datos, etc.). El sintetizador es controlable vía MIDI, por ejemplo, desde un teclado de piano. A través de MIDI recibe información tal como qué notas debe tocar, o los valores de los parámetros del SID que modifican las propiedades del sonido. Además, toda esa información también la puede recibir de un PC mediante una conexión USB. Se han construido dos versiones del sintetizador: una versión “hardware”, que utiliza el SID para la generación de sonido, y otra “software”, que reemplaza el SID por un emulador, es decir, un programa que se comporta (en la medida de lo posible) de la misma manera que el SID. El emulador se ha implementado en un microcontrolador Atmega 168 de Atmel, el mismo que utiliza Arduino. ABSTRACT. This project consists on design and construction of a synthesizer which is based on chip 6581 Sound Interface Device (SID). This chip was used for sound generation on the Commodore 64, a home computer presented in 1982, and it was the first complex synthesizer built for computers. The chip is a three-voice synthesizer, each voice capable of generating four different waveforms. Each voice has independent control of several parameters, allowing a relatively wide variety of sounds and effects, very useful for its use on videogames. It also includes a programmable filter, allowing more timbre control via subtractive synthesis. The synthesizer has been built on Arduino, an open-source electronics prototyping platform that consists on a printed circuit board with a microcontroller, which is programmable with a computer to do several functions (lighting LEDs, controlling servomechanisms on robotics, data processing or transmission, etc.). The synthesizer is controlled via MIDI, in example, from a piano-type keyboard. It receives from MIDI information such as the notes that should be played or SID’s parameter values that modify the sound. It also can receive that information from a PC via USB connection. Two versions of the synthesizer have been built: a hardware one that uses the SID chip for sound generation, and a software one that replaces SID by an emulator, it is, a program that behaves (as far as possible) in the same way the SID would. The emulator is implemented on an Atmel’s Atmega 168 microcontroller, the same one that is used on Arduino.
Resumo:
En este proyecto fin de carrera se ha diseñado y construido un equipo de medida automático que permite realizar la medida de la constante de Planck utilizando los principios de Funcionamiento de los diodos LED. El equipo de medida es totalmente automático gracias a la utilización de una placa controladora Arduino MEGA 2560, que se encarga de realizar la iluminación secuencial de cada LED, medir sus tensiones de funcionamiento, y de realizar los cálculos necesarios para hallar la constante de Planck. Todos los datos se muestran por una pantalla LCD de 16 caracteres por 2 lineas. Para comprender el funcionamiento del sistema de medida automático se ha realizado un estudio detallado de cada uno de los sistemas que componen el equipo de medida. Se ha explicado el funcionamiento teórico de los diodos LED y el funcionamiento de los semiconductores. Se ha explicando los diversos tipos de semiconductores que se utilizan para los LED y las modificaciones que se les aplica para mejorar su eficiencia. Para poder comprender en qué consiste la constante de Planck se ha explicado los principios teóricos en que se basa, y se ha realizado una pequeña demostración de su cálculo. Una vez visto todos los principios teóricos se ha pasado a realizar la explicación de cada uno de los grandes bloques que componen el sistema de medida automático. Estos bloques son la placa controladora Arduino, el sistema de iluminación LED, el sistema de control mecánico de LEDs, la pantalla LCD, el sistema de interrupciones y el sistema de alimentación. Para poder observar el espectro de emisión de cada uno de los LED se ha utilizado un analizador de espectros óptico (OSA), el cual ha sido explicado con detenimiento. El código de programación de Arduino ha sido explicado en forma de diagrama de flujo para una mayor facilidad de comprensión. Se ha desarrollado un manual de usuario para facilitar el uso del sistema a cualquier usuario, en el que se ha introducido un ejemplo completo de funcionamiento. ABSTRACT. In this final Project has designed and built an automatic measuring equipment which is able to measure the Planck`s constant using the operation principles of the LEDs. The measuring equipment is fully automated thanks to the use of an Arduino Mega 2560 controller board, which is responsible for conducting sequential illumination of each LED, measure their operating voltages, and perform the necessary calculations of find the Planck constant. All data is displayed by a LCD screen 16 character by 2 lines. To understand the operation of the automatic measuring system has been made a detailed study of each of the systems that make the measurement equipment. It develops the theoretical performance of the LED and the operation of semiconductors. It explains the different types of semiconductors that are used for LEDs and the changes applied to improve efficiency. In order to understand what is the Planck constant has been explained the theoretical principles in which it is based, and a small demonstration of its calculation has been performed. After seeing all the theoretical principles has been made the explanation of each of the main blocks that compose the automatic measuring system. These blocks are the Arduino controller board, LED lighting system, the mechanical control system LEDs, LCD screen, the interrupt system and feeding system. To observe the emission spectrum of each of the LED has been used optical spectrum analyzer (OSA), which has been explained in detail. The Arduino programming code has been explained in flowchart form for an easy understanding. It has developed a manual to facilitate the use of system to any user, which has introduced a complete example of operation.
Resumo:
El principal objetivo del proyecto es intentar reducir los costes de algunas de las operaciones de vigilancia llevadas a cabo por agencias o instituciones de seguridad. El proyecto consiste en diseñar y desarrollar un sistema informático que permita el manejo a distancia de un cuadricóptero a través de un ordenador, utilizando el teclado y visualizando las imágenes recibidas del módulo de la videocámara. Cada cuadricóptero estará compuesto de diferentes módulos y cada módulo tiene una funcionalidad característica. Se desarrollará un sistema de gestión de aeronaves para poder añadir nuevas unidades de cuadricópteros, así como un sistema de gestión de usuarios para administrar los usuarios en el sistema. Adicionalmente, se construirá un prototipo de cuadricóptero y se implementará su unidad controladora para poder realizar las pruebas del sistema desarrollado con ello. ---ABSTRACT---The aim of this project is to attempt to reduce the costs of some surveillance services offered by security agencies or institutions. The project consists in designing and developing a computer system to remotely control a drone or quad-copter through a computer, manipulating the drone through the keyboard and watching the images captured from the camera module. Each drone is built with one or more modules, and each module has its own functionality. Both new drones and new users can be added to the computer system through the drone management system and the user management system, respectively. Both of management systems are going to be developed. The project also includes the making of a quad-copter prototype and a controller unit implementation.
Resumo:
Quizás el campo de las telecomunicaciones sea uno de los campos en el que más se ha progresado en este último siglo y medio, con la ayuda de otros campos de la ciencia y la técnica tales como la computación, la física electrónica, y un gran número de disciplinas, que se han utilizado estos últimos 150 años en conjunción para mejorarse unas con la ayuda de otras. Por ejemplo, la química ayuda a comprender y mejorar campos como la medicina, que también a su vez se ve mejorada por los progresos en la electrónica creados por los físicos y químicos, que poseen herramientas más potentes para calcular y simular debido a los progresos computacionales. Otro de los campos que ha sufrido un gran avance en este último siglo es el de la automoción, aunque estancados en el motor de combustión, los vehículos han sufrido enormes cambios debido a la irrupción de los avances en la electrónica del automóvil con multitud de sistemas ya ampliamente integrados en los vehículos actuales. La Formula SAE® o Formula Student es una competición de diseño, organizada por la SAE International (Society of Automotive Engineers) para estudiantes de universidades de todo el mundo que promueve la ingeniería a través de una competición donde los miembros del equipo diseñan, construyen, desarrollan y compiten en un pequeño y potente monoplaza. En el ámbito educativo, evitando el sistema tradicional de clases magistrales, se introducen cambios en las metodologías de enseñanza y surge el proyecto de la Fórmula Student para lograr una mejora en las acciones formativas, que permitan ir incorporando nuevos objetivos y diseñar nuevas situaciones de aprendizaje que supongan una oportunidad para el desarrollo de competencias de los alumnos, mejorar su formación como ingenieros y contrastar sus progresos compitiendo con las mejores universidades del mundo. En este proyecto se pretende dotar a los alumnos de las escuelas de ingeniería de la UPM que desarrollan el vehículo de FSAE de una herramienta de telemetría con la que evaluar y probar comportamiento del vehículo de FSAE junto con sus subsistemas que ellos mismos diseñan, con el objetivo de evaluar el comportamiento, introducir mejoras, analizar resultados de una manera más rápida y cómoda, con el objetivo de poder progresar más rápidamente en su desarrollo, recibiendo y almacenando una realimentación directa e instantánea del funcionamiento mediante la lectura de los datos que circulan por el bus CAN del vehículo. También ofrece la posibilidad de inyectar datos a los sistemas conectados al bus CAN de manera remota. Se engloba en el conjunto de proyectos de la FSAE, más concretamente en los basados en la plataforma PIC32 y propone una solución conjunta con otros proyectos o también por sí sola. Para la ejecución del proyecto se fabricó una placa compuesta de dos placas de circuito impreso, la de la estación base que envía comandos, instrucciones y datos para inyectar en el bus CAN del vehículo mediante radiofrecuencia y la placa que incorpora el vehículo que envía las tramas que circulan por el bus CAN del vehículo con los identificadores deseados, ejecuta los comandos recibidos por radiofrecuencia y salva las tramas CAN en una memoria USB o SD Card. Las dos PCBs constituyen el hardware del proyecto. El software se compone de dos programas. Un programa para la PCB del vehículo que emite los datos a la estación base, codificado en lenguaje C con ayuda del entorno de desarrollo MPLAB de Microchip. El otro programa hecho con LabView para la PCB de la estación base que recibe los datos provenientes del vehículo y los interpreta. Se propone un hardware y una capa o funciones de software para los microcontroladores PIC32 (similar al de otros proyectos del FSAE) para la transmisión de las tramas del bus CAN del vehículo de manera inalámbrica a una estación base, capaz de insertar tramas en el bus CAN del vehículo enviadas desde la estación base. También almacena estas tramas CAN en un dispositivo USB o SD Card situado en el vehículo. Para la transmisión de los datos se hizo un estudio de las frecuencias de transmisión, la legislación aplicable y los tipos de transceptores. Se optó por utilizar la banda de radiofrecuencia de uso común ISM de 433MHz mediante el transceptor integrado CC110L de Texas Instruments altamente configurable y con interfaz SPI. Se adquirieron dos parejas de módulos compatibles, con amplificador de potencia o sin él. LabView controla la estación que recoge las tramas CAN vía RF y está dotada del mismo transceptor de radio junto con un puente de comunicaciones SPI-USB, al que se puede acceder de dos diferentes maneras, mediante librerías dll, o mediante NI-VISA con transferencias RAW-USB. La aplicación desarrollada posee una interfaz configurable por el usuario para la muestra de los futuros sensores o actuadores que se incorporen en el vehículo y es capaz de interpretar las tramas CAN, mostrarlas, gráfica, numéricamente y almacenar esta información, como si fuera el cuadro de instrumentos del vehículo. Existe una limitación de la velocidad global del sistema en forma de cuello de botella que se crea debido a las limitaciones del transceptor CC110L por lo que si no se desea filtrar los datos que se crean necesarios, sería necesario aumentar el número de canales de radio para altas ocupaciones del bus CAN. Debido a la pérdida de relaciones con el INSIA, no se pudo probar de manera real en el propio vehículo, pero se hicieron pruebas satisfactorias (hasta 1,6 km) con una configuración de tramas CAN estándar a una velocidad de transmisión de 1 Mbit/s y un tiempo de bit de 1 microsegundo. El periférico CAN del PIC32 se programará para cumplir con estas especificaciones de la ECU del vehículo, que se presupone que es la MS3 Sport de Bosch, de la que LabView interpretará las tramas CAN recibidas de manera inalámbrica. Para poder probar el sistema, ha sido necesario reutilizar el hardware y adaptar el software del primer prototipo creado, que emite tramas CAN preprogramadas con una latencia también programable y que simulará al bus CAN proporcionando los datos a transmitir por el sistema que incorpora el vehículo. Durante el desarrollo de este proyecto, en las etapas finales, el fabricante del puente de comunicaciones SPI-USB MCP2210 liberó una librería (dll) compatible y sin errores, por lo que se nos ofrecía una oportunidad interesante para la comparación de las velocidades de acceso al transceptor de radio, que se presuponía y se comprobó más eficiente que la solución ya hecha mediante NI-VISA. ABSTRACT. The Formula SAE competition is an international university applied to technological innovation in vehicles racing type formula, in which each team, made up of students, should design, construct and test a prototype each year within certain rules. The challenge of FSAE is that it is an educational project farther away than a master class. The goal of the present project is to make a tool for other students to use it in his projects related to FSAE to test and improve the vehicle, and, the improvements that can be provided by the electronics could be materialized in a victory and win the competition with this competitive advantage. A telemetry system was developed. It sends the data provided by the car’s CAN bus through a radio frequency transceiver and receive commands to execute on the system, it provides by a base station on the ground. Moreover, constant verification in real time of the status of the car or data parameters like the revolutions per minute, pressure from collectors, water temperature, and so on, can be accessed from the base station on the ground, so that, it could be possible to study the behaviour of the vehicle in early phases of the car development. A printed circuit board, composed of two boards, and two software programs in two different languages, have been developed, and built for the project implementation. The software utilized to design the PCB is Orcad10.5/Layout. The base station PCB on a PC receives data from the PCB connected to the vehicle’s CAN bus and sends commands like set CAN filters or masks, activate data logger or inject CAN frames. This PCB is connected to a PC via USB and contains a bridge USB-SPI to communicate with a similar transceiver on the vehicle PCB. LabView controls this part of the system. A special virtual Instrument (VI) had been created in order to add future new elements to the vehicle, is a dashboard, which reads the data passed from the main VI and represents them graphically to studying the behaviour of the car on track. In this special VI other alums can make modifications to accommodate the data provided from the vehicle CAN’s bus to new elements on the vehicle, show or save the CAN frames in the form or format they want. Two methods to access to SPI bus of CC110l RF transceiver over LabView have been developed with minimum changes between them. Access through NI-VISA (Virtual Instrument Software Architecture) which is a standard for configuring, programming, USB interfaces or other devices in National Instruments LabView. And access through DLL (dynamic link library) supplied by the manufacturer of the bridge USB-SPI, Microchip. Then the work is done in two forms, but the dll solution developed shows better behaviour, and increase the speed of the system because has less overload of the USB bus due to a better efficiency of the dll solution versus VISA solution. The PCB connected to the vehicle’s CAN bus receives commands from the base station PCB on a PC, and, acts in function of the command or execute actions like to inject packets into CAN bus or activate data logger. Also sends over RF the CAN frames present on the bus, which can be filtered, to avoid unnecessary radio emissions or overflowing the RF transceiver. This PCB consists of two basic pieces: A microcontroller with 32 bit architecture PIC32MX795F512L from Microchip and the radio transceiver integrated circuit CC110l from Texas Instruments. The PIC32MX795F512L has an integrated CAN and several peripherals like SPI controllers that are utilized to communicate with RF transceiver and SD Card. The USB controller on the PIC32 is utilized to store CAN data on a USB memory, and change notification peripheral is utilized like an external interrupt. Hardware for other peripherals is accessible. The software part of this PCB is coded in C with MPLAB from Microchip, and programming over PICkit 3 Programmer, also from Microchip. Some of his libraries have been modified to work properly with this project and other was created specifically for this project. In the phase for RF selection and design is made a study to clarify the general aspects of regulations for the this project in order to understand it and select the proper band, frequency, and radio transceiver for the activities developed in the project. From the different options available it selects a common use band ICM, with less regulation and free to emit with restrictions and disadvantages like high occupation. The transceiver utilized to transmit and receive the data CC110l is an integrated circuit which needs fewer components from Texas Instruments and it can be accessed through SPI bus. Basically is a state machine which changes his state whit commands received over an SPI bus or internal events. The transceiver has several programmable general purpose Inputs and outputs. These GPIOs are connected to PIC32 change notification input to generate an interrupt or connected to GPIO to MCP2210 USB-SPI bridge to inform to the base station for a packet received. A two pair of modules of CC110l radio module kit from different output power has been purchased which includes an antenna. This is to keep away from fabrication mistakes in RF hardware part or designs, although reference design and gerbers files are available on the webpage of the chip manufacturer. A neck bottle is present on the complete system, because the maximum data rate of CC110l transceiver is a half than CAN bus data rate, hence for high occupation of CAN bus is recommendable to filter the data or add more radio channels, because the buffers can’t sustain this load along the time. Unfortunately, during the development of the project, the relations with the INSIA, who develops the vehicle, was lost, for this reason, will be made impossible to test the final phases of the project like integration on the car, final test of integration, place of the antenna, enclosure of the electronics, connectors selection, etc. To test or evaluate the system, it was necessary to simulate the CAN bus with a hardware to feed the system with entry data. An early hardware prototype was adapted his software to send programed CAN frames at a fixed data rate and certain timing who simulate several levels of occupation of the CAN Bus. This CAN frames emulates the Bosch ECU MS3 Sport.
Resumo:
We show a method for parallelizing top down dynamic programs in a straightforward way by a careful choice of a lock-free shared hash table implementation and randomization of the order in which the dynamic program computes its subproblems. This generic approach is applied to dynamic programs for knapsack, shortest paths, and RNA structure alignment, as well as to a state-of-the-art solution for minimizing the máximum number of open stacks. Experimental results are provided on three different modern multicore architectures which show that this parallelization is effective and reasonably scalable. In particular, we obtain over 10 times speedup for 32 threads on the open stacks problem.
Resumo:
Although there has been a lot of interest in recognizing and understanding air traffic control (ATC) speech, none of the published works have obtained detailed field data results. We have developed a system able to identify the language spoken and recognize and understand sentences in both Spanish and English. We also present field results for several in-tower controller positions. To the best of our knowledge, this is the first time that field ATC speech (not simulated) is captured, processed, and analyzed. The use of stochastic grammars allows variations in the standard phraseology that appear in field data. The robust understanding algorithm developed has 95% concept accuracy from ATC text input. It also allows changes in the presentation order of the concepts and the correction of errors created by the speech recognition engine improving it by 17% and 25%, respectively, absolute in the percentage of fully correctly understood sentences for English and Spanish in relation to the percentages of fully correctly recognized sentences. The analysis of errors due to the spontaneity of the speech and its comparison to read speech is also carried out. A 96% word accuracy for read speech is reduced to 86% word accuracy for field ATC data for Spanish for the "clearances" task confirming that field data is needed to estimate the performance of a system. A literature review and a critical discussion on the possibilities of speech recognition and understanding technology applied to ATC speech are also given.
Resumo:
El cálculo de relaciones binarias fue creado por De Morgan en 1860 para ser posteriormente desarrollado en gran medida por Peirce y Schröder. Tarski, Givant, Freyd y Scedrov demostraron que las álgebras relacionales son capaces de formalizar la lógica de primer orden, la lógica de orden superior así como la teoría de conjuntos. A partir de los resultados matemáticos de Tarski y Freyd, esta tesis desarrolla semánticas denotacionales y operacionales para la programación lógica con restricciones usando el álgebra relacional como base. La idea principal es la utilización del concepto de semántica ejecutable, semánticas cuya característica principal es el que la ejecución es posible utilizando el razonamiento estándar del universo semántico, este caso, razonamiento ecuacional. En el caso de este trabajo, se muestra que las álgebras relacionales distributivas con un operador de punto fijo capturan toda la teoría y metateoría estándar de la programación lógica con restricciones incluyendo los árboles utilizados en la búsqueda de demostraciones. La mayor parte de técnicas de optimización de programas, evaluación parcial e interpretación abstracta pueden ser llevadas a cabo utilizando las semánticas aquí presentadas. La demostración de la corrección de la implementación resulta extremadamente sencilla. En la primera parte de la tesis, un programa lógico con restricciones es traducido a un conjunto de términos relacionales. La interpretación estándar en la teoría de conjuntos de dichas relaciones coincide con la semántica estándar para CLP. Las consultas contra el programa traducido son llevadas a cabo mediante la reescritura de relaciones. Para concluir la primera parte, se demuestra la corrección y equivalencia operacional de esta nueva semántica, así como se define un algoritmo de unificación mediante la reescritura de relaciones. La segunda parte de la tesis desarrolla una semántica para la programación lógica con restricciones usando la teoría de alegorías—versión categórica del álgebra de relaciones—de Freyd. Para ello, se definen dos nuevos conceptos de Categoría Regular de Lawvere y _-Alegoría, en las cuales es posible interpretar un programa lógico. La ventaja fundamental que el enfoque categórico aporta es la definición de una máquina categórica que mejora e sistema de reescritura presentado en la primera parte. Gracias al uso de relaciones tabulares, la máquina modela la ejecución eficiente sin salir de un marco estrictamente formal. Utilizando la reescritura de diagramas, se define un algoritmo para el cálculo de pullbacks en Categorías Regulares de Lawvere. Los dominios de las tabulaciones aportan información sobre la utilización de memoria y variable libres, mientras que el estado compartido queda capturado por los diagramas. La especificación de la máquina induce la derivación formal de un juego de instrucciones eficiente. El marco categórico aporta otras importantes ventajas, como la posibilidad de incorporar tipos de datos algebraicos, funciones y otras extensiones a Prolog, a la vez que se conserva el carácter 100% declarativo de nuestra semántica. ABSTRACT The calculus of binary relations was introduced by De Morgan in 1860, to be greatly developed by Peirce and Schröder, as well as many others in the twentieth century. Using different formulations of relational structures, Tarski, Givant, Freyd, and Scedrov have shown how relation algebras can provide a variable-free way of formalizing first order logic, higher order logic and set theory, among other formal systems. Building on those mathematical results, we develop denotational and operational semantics for Constraint Logic Programming using relation algebra. The idea of executable semantics plays a fundamental role in this work, both as a philosophical and technical foundation. We call a semantics executable when program execution can be carried out using the regular theory and tools that define the semantic universe. Throughout this work, the use of pure algebraic reasoning is the basis of denotational and operational results, eliminating all the classical non-equational meta-theory associated to traditional semantics for Logic Programming. All algebraic reasoning, including execution, is performed in an algebraic way, to the point we could state that the denotational semantics of a CLP program is directly executable. Techniques like optimization, partial evaluation and abstract interpretation find a natural place in our algebraic models. Other properties, like correctness of the implementation or program transformation are easy to check, as they are carried out using instances of the general equational theory. In the first part of the work, we translate Constraint Logic Programs to binary relations in a modified version of the distributive relation algebras used by Tarski. Execution is carried out by a rewriting system. We prove adequacy and operational equivalence of the semantics. In the second part of the work, the relation algebraic approach is improved by using allegory theory, a categorical version of the algebra of relations developed by Freyd and Scedrov. The use of allegories lifts the semantics to typed relations, which capture the number of logical variables used by a predicate or program state in a declarative way. A logic program is interpreted in a _-allegory, which is in turn generated from a new notion of Regular Lawvere Category. As in the untyped case, program translation coincides with program interpretation. Thus, we develop a categorical machine directly from the semantics. The machine is based on relation composition, with a pullback calculation algorithm at its core. The algorithm is defined with the help of a notion of diagram rewriting. In this operational interpretation, types represent information about memory allocation and the execution mechanism is more efficient, thanks to the faithful representation of shared state by categorical projections. We finish the work by illustrating how the categorical semantics allows the incorporation into Prolog of constructs typical of Functional Programming, like abstract data types, and strict and lazy functions.
Resumo:
The run-of-river hydro power plant usually have low or nil water storage capacity, and therefore an adequate control strategy is required to keep the water level constant in pond. This paper presents a novel technique based on TSK fuzzy controller to maintain the pond head constant. The performance is investigated over a wide range of hill curve of hydro turbine. The results are compared with PI controller as discussed in [1].
Resumo:
The ITER CODAC design identifies slow and fast plant system controllers (PSC). The gast OSCs are based on embedded technologies, permit sampling rates greater than 1 KHz, meet stringent real-time requirements, and will be devoted to data acquisition tasks and control purposes. CIEMAT and UPM have implemented a prototype of a fast PSC based on commercial off-the-shelf (COTS) technologies with PXI hardware and software based on EPICS
Resumo:
The purpose of this study is to set up the basis needed to develop real applications designed for the control and management of heterogeneous fleets. This paper tries to present some programming patterns which will lead to the design and development of good quality applications. The premise for this purpose should be the design of scalable, platform independent, modular and user friendly programs which require very small maintenance and if possible to give the ability to nonprogrammer users the ability to extend the application beyond their original design. To achieve it, a web design with the use of content management system following a model-view-controller architectural pattern has been purposed.
Resumo:
The ITER CODAC design identifies slow and fast plant system controllers (PSC). The gast OSCs are based on embedded technologies, permit sampling rates greater than 1 KHz, meet stringent real-time requirements, and will be devoted to data acquisition tasks and control purposes. CIEMAT and UPM have implemented a prototype of a fast PSC based on commercial off-the-shelf (COTS) technologies with PXI hardware and software based on EPICS
Resumo:
Irregular computations pose sorne of the most interesting and challenging problems in automatic parallelization. Irregularity appears in certain kinds of numerical problems and is pervasive in symbolic applications. Such computations often use dynamic data structures, which make heavy use of pointers. This complicates all the steps of a parallelizing compiler, from independence detection to task partitioning and placement. Starting in the mid 80s there has been significant progress in the development of parallelizing compilers for logic programming (and more recently, constraint programming) resulting in quite capable parallelizers. The typical applications of these paradigms frequently involve irregular computations, and make heavy use of dynamic data structures with pointers, since logical variables represent in practice a well-behaved form of pointers. This arguably makes the techniques used in these compilers potentially interesting. In this paper, we introduce in a tutoríal way, sorne of the problems faced by parallelizing compilers for logic and constraint programs and provide pointers to sorne of the significant progress made in the area. In particular, this work has resulted in a series of achievements in the areas of inter-procedural pointer aliasing analysis for independence detection, cost models and cost analysis, cactus-stack memory management, techniques for managing speculative and irregular computations through task granularity control and dynamic task allocation such as work-stealing schedulers), etc.
Resumo:
Compilation techniques such as those portrayed by the Warren Abstract Machine(WAM) have greatly improved the speed of execution of logic programs. The research presented herein is geared towards providing additional performance to logic programs through the use of parallelism, while preserving the conventional semantics of logic languages. Two áreas to which special attention is given are the preservation of sequential performance and storage efficiency, and the use of low overhead mechanisms for controlling parallel execution. Accordingly, the techniques used for supporting parallelism are efficient extensions of those which have brought high inferencing speeds to sequential implementations. At a lower level, special attention is also given to design and simulation detail and to the architectural implications of the execution model behavior. This paper offers an overview of the basic concepts and techniques used in the parallel design, simulation tools used, and some of the results obtained to date.