966 resultados para C (programming language)
Resumo:
While logic programming languages offer a great deal of scope for parallelism, there is usually some overhead associated with the execution of goals in parallel because of the work involved in task creation and scheduling. In practice, therefore, the "granularity" of a goal, i.e. an estimate of the work available under it, should be taken into account when deciding whether or not to execute a goal concurrently as a sepárate task. This paper describes a method for estimating the granularity of a goal at compile time. The runtime overhead associated with our approach is usually quite small, and the performance improvements resulting from the incorporation of grainsize control can be quite good. This is shown by means of experimental results.
Resumo:
Compile-time program analysis techniques can be applied to Web service orchestrations to prove or check various properties. In particular, service orchestrations can be subjected to resource analysis, in which safe approximations of upper and lower resource usage bounds are deduced. A uniform analysis can be simultaneously performed for different generalized resources that can be directiy correlated with cost- and performance-related quality attributes, such as invocations of partners, network traffic, number of activities, iterations, and data accesses. The resulting safe upper and lower bounds do not depend on probabilistic assumptions, and are expressed as functions of size or length of data components from an initiating message, using a finegrained structured data model that corresponds to the XML-style of information structuring. The analysis is performed by transforming a BPEL-like representation of an orchestration into an equivalent program in another programming language for which the appropriate analysis tools already exist.
Resumo:
En todo proceso de desarrollo de un dispositivo electrónico o equipo cabe la necesidad de evaluar la fiabilidad de sus componentes, es decir, cual es el porcentaje de equipos que tras un determinado periodo de vida mantiene todas sus funcionalidades dentro de especificaciones. La evaluación de la fiabilidad mediante ensayos acelerados es la herramienta que permite una estimación de la vida del dispositivo o equipo de forma previa a su comercialización. La cuantificación de la fiabilidad es crítica para identificar los costos de un determinado periodo de garantía, y para ofrecer a los clientes el nivel de calidad deseado. El objetivo de este Proyecto Fin de Carrera, es el diseño de un sistema automático de instrumentación versátil, para la realización y caracterización de ensayos acelerados, el cual nos sirva para abordar una amplia gama de ensayos con los que evaluar la fiabilidad de los dispositivos electrónicos o equipos. Además del uso industrial donde se evaluará la fiabilidad de forma previa a la comercialización, este sistema se podrá emplear en la docencia de esta área, y fundamentalmente para la realización de ensayos acelerados en investigación de dispositivos electrónicos. La versatilidad de nuestro hardware y aplicación software es un punto a favor, ya que con este sistema de instrumentación se pueden realizar numerosos tipos de ensayos acelerados, sin el problema de tener que cambiar toda la instrumentación, cada vez que se quiera realizar otro ensayo distinto. Los componentes que se elijan para realizar el ensayo acelerado, serán sometidos a un estrés (tensión, corriente, humedad, temperatura…) y se podrá ir observando cómo envejecen, lo que nos permite evaluar la vida del dispositivo en un corto periodo, emulando sus condiciones de trabajo, además de estudiar la fiabilidad también se puede identificar como se degradan sus características principales antes del fallo. El Software utilizado en este Proyecto se ha implementado con un lenguaje de programación gráfico para instrumentación, LabVIEW. La aplicación software se explica de manera muy detallada a lo largo de la memoria, para que su uso y adaptación si fuese necesario no suponga ningún problema para el usuario. En la última parte de esta memoria se encuentra la guía de usuario y un ensayo acelerado planteado como ejemplo. Explicaremos como se han interconectado los equipos a los componentes en los que se va a realizar el ensayo y así se comprobará el correcto funcionamiento del software tomando las medidas necesarias. ABTRACT In all process of development of an electronic device or equipment, we have the need to evaluate the reliability of its components, that is to say, what percentage of equipment that after a certain period of life keeps all of its functionalities within specifications. The evaluation of reliability by means of accelerated tests is the tool that allows an estimation of the lifetime of the device or equipment prior to its marketing. The quantification of reliability is critical to identify the costs of a specific warranty period, and to offer customers the desired quality level. The objective of this Thesis is the design of an automatic very versatile instrument for the realization and characterization of accelerated tests, which will help us to address a wide range of tests to assess the reliability of the devices or electronic equipment. In addition to industrial use where test the reliability before its commercialization, use it can be used in teaching of this area, fundamentally for the realization of accelerated testing in the investigation of electronic devices. The versatility of our hardware and software implementation is a plus, given that this instrumentation system can perform numerous types of accelerated tests, without the problem to have to change everything, every time you want to make another different test. The components that will be chosen to perform the accelerated test, will be subjected to stress (voltage, current, humidity, temperature ...) and you can observe how they age, allowing us to evaluate the life of the device in a short period, emulating their working conditions. In addition to studying the reliability it can also identify how its main characteristics are degraded before failure. The software used in this Thesis has been implemented with a graphical programming language for instrumentation, LabVIEW. This software is explained in great detail throughout the Thesis, so that its use and adaptation, if necessary, will not be a problem for the user. In the last part of this memory we will expose a user guide and test that we have done. We will explain how the equipment has been interconnected to the components in which we are going to perform the test and so we will check the correct operation of the software taking the necessary measures.
Resumo:
El objetivo de este proyecto de investigación es analizar el conjunto de las diez series temporales, relativas a los precios de diez metales (plata, aluminio, oro, cobre, níquel, paladio, plomo, platino, estaño y zinc), comprendidos en el periodo de enero de 2008 a septiembre de 2013, con el objetivo de reducir la dimensionalidad del conjunto de datos y facilitar la comparación de los mismos y la predicción de valores futuros. Para ello pretendemos aplicar una metodología, que nos permitirá deducir, a partir de una serie resumen y de unos coeficientes multiplicativos, la evolución del comportamiento de cualquier otro metal. Pese a la escasísima documentación existente al respecto, se valorará e intentará aplicarse una reciente metodología denominada “Metodología del haz de rectas” Como herramienta de trabajo para los programas informáticos desarrollados y para representar las gráficas asociadas al proyecto, se utilizó Matlab®, habida cuenta de su enorme potencia y por disponer de un lenguaje de programación sencillo y lo suficientemente versátil para las tareas que necesitamos. Abstract. The objective of this research project is to analyze the set of ten time series on prices of the ten metals (silver, aluminum, gold, copper, nickel, palladium, lead, platinum, tin and zinc), included in the period January 2008 to September 2013, with the aim of reducing the dimensionality of the data set and to facilitate comparison of the data and the prediction of future values To apply this methodology, allowing us to predict, from a series summarizes the evolution of the behavior of any other metal. This methodology is called "straight beam Methodology" As a tool for developing computer software and associated graphs to represent the project, Matlab® was used in view of its enormous power and have a simple programming language and versatile enough for the tasks we need
Resumo:
Este proyecto se ha enmarcado en la línea de desarrollo del Laboratorio Virtual de electrónica, desarrollado en la Escuela Universitaria de Ingeniería Técnica de Telecomunicación (EUITT), de la Universidad Politécnica de Madrid (UPM). Con el Laboratorio Virtual los alumnos de la universidad, de cualquiera de las escuelas de ingeniería que la componen, pueden realizar prácticas de forma remota. Es decir, desde cualquier PC con el software adecuado instalado y a través de Internet, sin requerir su presencia en un laboratorio físico. La característica más destacable e importante de este Laboratorio Virtual es que las medidas que se realizan no son simulaciones sobre circuitos virtuales, sino medidas reales sobre circuitos reales: el alumno puede configurar una serie de interconexiones entre componentes electrónicos, formando el circuito que necesite, que posteriormente el Laboratorio Virtual se encargará de realizar físicamente, gracias al hardware y al software que conforman el sistema. Tras ello, el alumno puede excitar el circuito con señales provenientes de instrumental real de laboratorio y obtener medidas de la misma forma, en los puntos del circuito que indique. La necesidad principal a la que este Proyecto de Fin de Carrera da solución es la sustitución de los instrumentos de sobremesa por instrumentos emulados en base a Tarjetas de Adquisición de Datos (DAQ). Los instrumentos emulados son: un multímetro, un generador de señales y un osciloscopio. Además, existen otros objetivos derivados de lo anterior, como es el que los instrumentos emulados deben guardar una total compatibilidad con el resto del sistema del Laboratorio Virtual, o que el diseño ha de ser escalable y adaptable. Todo ello se ha implementado mediante: un software escrito en LabVIEW, que utiliza un lenguaje de programación gráfico; un hardware que ha sido primero diseñado y luego fabricado, controlado por el software; y una Tarjeta de Adquisición de Datos, que gracias a la escalabilidad del sistema puede sustituirse por otro modelo superior o incluso por varias de ellas. ABSTRACT. This project is framed in the development line of the electronics Virtual Laboratory, developed at Escuela Universitaria de Ingeniería Técnica de Telecomunicación (EUITT), from Universidad Politécnica de Madrid (UPM). With the Virtual Laboratory, the university’s students, from any of its engineering schools that is composed of, can do practices remotely. Or in other words, from any PC with the correct software installed and through the Internet, without requiring his or her presence in a physical laboratory. The most remarkable and important characteristic this Virtual Laboratory has is that the measures the students does are not simulations over virtual circuits, but real measures over real circuits: the student can configure a series of interconnections between electronic parts, setting up the circuit he or she needs, and afterwards the Virtual Laboratory will realize that circuit physically, thanks to the hardware and software that compose the whole system. Then, the student can apply signals coming from real laboratory instruments and get measures in the same way, at the points of the circuit he or she points out. The main need this Degree Final Project gives solution is the substitution of the real instruments by emulated instruments, based on Data Acquisition systems (DAQ). The emulated instruments are: a digital multimeter, a signal generator and an oscilloscope. In addition, there is other objectives coming from the previously said, like the need of a total compatibility between the real instruments and the emulated ones and with the rest of the Virtual Laboratory, or that the design must be scalable and adaptive. All of that is implemented by: a software written in LabVIEW, which makes use of a graphical programming language; a hardware that was first designed and later manufactured, then controlled by software; and a Data Acquisition device, though thanks to the system’s scalability it can be substituted by a better model or even by several DAQs.
Resumo:
Este proyecto tiene como objetivo el desarrollo de una interfaz MIDI, basada en técnicas de procesamiento digital de la imagen, capaz de controlar diversos parámetros de un software de audio mediante información gestual: el movimiento de las manos. La imagen es capturada por una cámara Kinect comercial y los datos obtenidos por ésta son procesados en tiempo real. La finalidad es convertir la posición de varios puntos de control de nuestro cuerpo en información de control musical MIDI. La interfaz ha sido desarrollada en el lenguaje y entorno de programación Processing, el cual está basado en Java, es de libre distribución y de fácil utilización. El software de audio seleccionado es Ableton Live, versión 8.2.2, elegido porque es útil tanto para la composición musical como para la música en directo, y esto último es la principal utilidad que se le pretende dar a la interfaz. El desarrollo del proyecto se divide en dos bloques principales: el primero, diseño gráfico del controlador, y el segundo, la gestión de la información musical. En el primer apartado se justifica el diseño del controlador, formado por botones virtuales: se explica el funcionamiento y, brevemente, la función de cada botón. Este último tema es tratado en profundidad en el Anexo II: Manual de usuario. En el segundo bloque se explica el camino que realiza la información MIDI desde el procesador gestual hasta el sintetizador musical. Este camino empieza en Processing, desde donde se mandan los mensajes que más tarde son interpretados por el secuenciador seleccionado, Ableton Live. Una vez terminada la explicación con detalle del desarrollo del proyecto se exponen las conclusiones del autor acerca del desarrollo del proyecto, donde se encuentran los pros y los contras a tener en cuenta para poder sacar el máximo provecho en el uso del controlador . En este mismo bloque de la memoria se exponen posibles líneas futuras a desarrollar. Se facilita también un presupuesto, desglosado en costes materiales y de personal. ABSTRACT. The aim of this project is the development of a MIDI interface based on image digital processing techniques, able to control several parameters of an audio software using gestural information, the movement of the hands. The image is captured by a commercial Kinect camera and the data obtained by it are processed in real time. The purpose is to convert the position of various points of our body into MIDI musical control information. The interface has been developed in the Processing programming language and environment which is based on Java, freely available and easy to used. The audio software selected is Ableton Live, version 8.2.2, chosen because it is useful for both music composition and live music, and the latter is the interface main intended utility. The project development is divided into two main blocks: the controller graphic design, and the information management. The first section justifies the controller design, consisting of virtual buttons: it is explained the operation and, briefly, the function of each button. This latter topic is covered in detail in Annex II: user manual. In the second section it is explained the way that the MIDI information makes from the gestural processor to the musical synthesizer. It begins in Processing, from where the messages, that are later interpreted by the selected sequencer, Ableton Live, are sent. Once finished the detailed explanation of the project development, the author conclusions are presented, among which are found the pros and cons to take into account in order to take full advantage in the controller use. In this same block are explained the possible future aspects to develop. It is also provided a budget, broken down into material and personal costs.
Resumo:
VladBot es un robot autónomo diseñado para posicionar en interiores un micrófono de medida. Este prototipo puede valorar la idea de automatizar medidas acústicas en interiores mediante un robot autónomo. Posee dos ruedas motrices y una rueda loca. Ésta rueda loca aporta maniobrabilidad al robot. Un soporte extensible hecho de aluminio sostiene el micrófono de medida. VladBot ha sido diseñado con tecnologías de bajo coste y bajo una plataforma abierta, Arduino. Arduino es una plataforma electrónica libre. Esto quiere decir que los usuarios tienen libre acceso a toda la información referente a los micro-controladores (hardware) y referente al software. Ofrece un IDE (Integrated Development Environment, en español, Entorno de Desarrollo Integrado) de forma gratuita y con un sencillo lenguaje de programación, con el que se pueden realizar proyectos de cualquier tipo. Además, los usuarios disponen de un foro donde encontrar ayuda, “Arduino Forum”. VladBot se comunica con el usuario a través de Bluetooth, creando un enlace fiable y con un alcance suficiente (aproximadamente 100 metros) para que controlar a VladBot desde una sala contigua. Hoy en día, Bluetooth es una tecnología implantada en casi todos los ordenadores, por lo que no necesario ningún sistema adicional para crear dicho enlace. Esta comunicación utiliza un protocolo de comunicaciones, JSON (JavaScript Object Notation). JSON hace que la comunicación sea más fiable, ya que sólo un tipo de mensajes preestablecidos son reconocidos. Gracias a este protocolo es posible la comunicación con otro software, permitiendo crear itinerarios en otro programa externo. El diseño de VladBot favorece su evolución hasta un sistema más preciso ya que el usuario puede realizar modificaciones en el robot. El código que se proporciona puede ser modificado, aumentando las funcionalidades de VladBot o mejorándolas. Sus componentes pueden ser cambiados también (incluso añadir nuevos dispositivos) para aumentar sus capacidades. Vladbot es por tanto, un sistema de transporte (de bajo coste) para un micrófono de medida que se puede comunicar inalámbricamente con el usuario de manera fiable. ABSTRACT. VladBot is an autonomous robot designed to indoor positioning of a measurement microphone. This prototype can value the idea of making automatic acoustic measurements indoor with an autonomous robot. It has two drive wheels and a caster ball. This caster ball provides manoeuvrability to the robot. An extendible stand made in aluminium holds the measurement microphone. VladBot has been designed with low cost technologies and under an open-source platform, Arduino. Arduino is a freeFsource electronics platform. This means that users have free access to all the information about micro-controllers (hardware) and about the software. Arduino offers a free IDE (Integrated Development Environment) with an easy programming language, which any kind of project can be made with. Besides, users have a forum where find help, “Arduino Forum”. VladBot communicates with the user by Bluetooth, creating a reliable link with enough range (100 meters approximately) for controlling VladBot in the next room. Nowadays, Bluetooth is a technology embedded in almost laptops, so it is not necessary any additional system for create this link. This communication uses a communication protocol, JSON (JavaScript Object Notation). JSON makes the communication more reliable, since only a preFestablished kind of messages are recognised. Thanks to this protocol is possible the communication with another software, allowing to create routes in an external program. VladBot´s design favours its evolution to an accurate system since the user can make modifications in the robot. The code given can be changed, increasing VladBot´s uses or improving these uses. Their components can be changed too (even new devices can be added) for increasing its abilities. So, VladBot is a (low cost) transport system for a measurement microphone, which can communicate with the user in a reliable way.
Resumo:
El objetivo de esta Tesis ha sido la consecución de simulaciones en tiempo real de vehículos industriales modelizados como sistemas multicuerpo complejos formados por sólidos rígidos. Para el desarrollo de un programa de simulación deben considerarse cuatro aspectos fundamentales: la modelización del sistema multicuerpo (tipos de coordenadas, pares ideales o impuestos mediante fuerzas), la formulación a utilizar para plantear las ecuaciones diferenciales del movimiento (coordenadas dependientes o independientes, métodos globales o topológicos, forma de imponer las ecuaciones de restricción), el método de integración numérica para resolver estas ecuaciones en el tiempo (integradores explícitos o implícitos) y finalmente los detalles de la implementación realizada (lenguaje de programación, librerías matemáticas, técnicas de paralelización). Estas cuatro etapas están interrelacionadas entre sí y todas han formado parte de este trabajo. Desde la generación de modelos de una furgoneta y de camión con semirremolque, el uso de tres formulaciones dinámicas diferentes, la integración de las ecuaciones diferenciales del movimiento mediante métodos explícitos e implícitos, hasta el uso de funciones BLAS, de técnicas de matrices sparse y la introducción de paralelización para utilizar los distintos núcleos del procesador. El trabajo presentado en esta Tesis ha sido organizado en 8 capítulos, dedicándose el primero de ellos a la Introducción. En el Capítulo 2 se presentan dos formulaciones semirrecursivas diferentes, de las cuales la primera está basada en una doble transformación de velocidades, obteniéndose las ecuaciones diferenciales del movimiento en función de las aceleraciones relativas independientes. La integración numérica de estas ecuaciones se ha realizado con el método de Runge-Kutta explícito de cuarto orden. La segunda formulación está basada en coordenadas relativas dependientes, imponiendo las restricciones por medio de penalizadores en posición y corrigiendo las velocidades y aceleraciones mediante métodos de proyección. En este segundo caso la integración de las ecuaciones del movimiento se ha llevado a cabo mediante el integrador implícito HHT (Hilber, Hughes and Taylor), perteneciente a la familia de integradores estructurales de Newmark. En el Capítulo 3 se introduce la tercera formulación utilizada en esta Tesis. En este caso las uniones entre los sólidos del sistema se ha realizado mediante uniones flexibles, lo que obliga a imponer los pares por medio de fuerzas. Este tipo de uniones impide trabajar con coordenadas relativas, por lo que la posición del sistema y el planteamiento de las ecuaciones del movimiento se ha realizado utilizando coordenadas Cartesianas y parámetros de Euler. En esta formulación global se introducen las restricciones mediante fuerzas (con un planteamiento similar al de los penalizadores) y la estabilización del proceso de integración numérica se realiza también mediante proyecciones de velocidades y aceleraciones. En el Capítulo 4 se presenta una revisión de las principales herramientas y estrategias utilizadas para aumentar la eficiencia de las implementaciones de los distintos algoritmos. En primer lugar se incluye una serie de consideraciones básicas para aumentar la eficiencia numérica de las implementaciones. A continuación se mencionan las principales características de los analizadores de códigos utilizados y también las librerías matemáticas utilizadas para resolver los problemas de álgebra lineal tanto con matrices densas como sparse. Por último se desarrolla con un cierto detalle el tema de la paralelización en los actuales procesadores de varios núcleos, describiendo para ello el patrón empleado y las características más importantes de las dos herramientas propuestas, OpenMP y las TBB de Intel. Hay que señalar que las características de los sistemas multicuerpo problemas de pequeño tamaño, frecuente uso de la recursividad, y repetición intensiva en el tiempo de los cálculos con fuerte dependencia de los resultados anteriores dificultan extraordinariamente el uso de técnicas de paralelización frente a otras áreas de la mecánica computacional, tales como por ejemplo el cálculo por elementos finitos. Basándose en los conceptos mencionados en el Capítulo 4, el Capítulo 5 está dividido en tres secciones, una para cada formulación propuesta en esta Tesis. En cada una de estas secciones se describen los detalles de cómo se han realizado las distintas implementaciones propuestas para cada algoritmo y qué herramientas se han utilizado para ello. En la primera sección se muestra el uso de librerías numéricas para matrices densas y sparse en la formulación topológica semirrecursiva basada en la doble transformación de velocidades. En la segunda se describe la utilización de paralelización mediante OpenMP y TBB en la formulación semirrecursiva con penalizadores y proyecciones. Por último, se describe el uso de técnicas de matrices sparse y paralelización en la formulación global con uniones flexibles y parámetros de Euler. El Capítulo 6 describe los resultados alcanzados mediante las formulaciones e implementaciones descritas previamente. Este capítulo comienza con una descripción de la modelización y topología de los dos vehículos estudiados. El primer modelo es un vehículo de dos ejes del tipo chasis-cabina o furgoneta, perteneciente a la gama de vehículos de carga medianos. El segundo es un vehículo de cinco ejes que responde al modelo de un camión o cabina con semirremolque, perteneciente a la categoría de vehículos industriales pesados. En este capítulo además se realiza un estudio comparativo entre las simulaciones de estos vehículos con cada una de las formulaciones utilizadas y se presentan de modo cuantitativo los efectos de las mejoras alcanzadas con las distintas estrategias propuestas en esta Tesis. Con objeto de extraer conclusiones más fácilmente y para evaluar de un modo más objetivo las mejoras introducidas en la Tesis, todos los resultados de este capítulo se han obtenido con el mismo computador, que era el top de la gama Intel Xeon en 2007, pero que hoy día está ya algo obsoleto. Por último los Capítulos 7 y 8 están dedicados a las conclusiones finales y las futuras líneas de investigación que pueden derivar del trabajo realizado en esta Tesis. Los objetivos de realizar simulaciones en tiempo real de vehículos industriales de gran complejidad han sido alcanzados con varias de las formulaciones e implementaciones desarrolladas. ABSTRACT The objective of this Dissertation has been the achievement of real time simulations of industrial vehicles modeled as complex multibody systems made up by rigid bodies. For the development of a simulation program, four main aspects must be considered: the modeling of the multibody system (types of coordinates, ideal joints or imposed by means of forces), the formulation to be used to set the differential equations of motion (dependent or independent coordinates, global or topological methods, ways to impose constraints equations), the method of numerical integration to solve these equations in time (explicit or implicit integrators) and the details of the implementation carried out (programming language, mathematical libraries, parallelization techniques). These four stages are interrelated and all of them are part of this work. They involve the generation of models for a van and a semitrailer truck, the use of three different dynamic formulations, the integration of differential equations of motion through explicit and implicit methods, the use of BLAS functions and sparse matrix techniques, and the introduction of parallelization to use the different processor cores. The work presented in this Dissertation has been structured in eight chapters, the first of them being the Introduction. In Chapter 2, two different semi-recursive formulations are shown, of which the first one is based on a double velocity transformation, thus getting the differential equations of motion as a function of the independent relative accelerations. The numerical integration of these equations has been made with the Runge-Kutta explicit method of fourth order. The second formulation is based on dependent relative coordinates, imposing the constraints by means of position penalty coefficients and correcting the velocities and accelerations by projection methods. In this second case, the integration of the motion equations has been carried out by means of the HHT implicit integrator (Hilber, Hughes and Taylor), which belongs to the Newmark structural integrators family. In Chapter 3, the third formulation used in this Dissertation is presented. In this case, the joints between the bodies of the system have been considered as flexible joints, with forces used to impose the joint conditions. This kind of union hinders to work with relative coordinates, so the position of the system bodies and the setting of the equations of motion have been carried out using Cartesian coordinates and Euler parameters. In this global formulation, constraints are introduced through forces (with a similar approach to the penalty coefficients) are presented. The stabilization of the numerical integration is carried out also by velocity and accelerations projections. In Chapter 4, a revision of the main computer tools and strategies used to increase the efficiency of the implementations of the algorithms is presented. First of all, some basic considerations to increase the numerical efficiency of the implementations are included. Then the main characteristics of the code’ analyzers used and also the mathematical libraries used to solve linear algebra problems (both with dense and sparse matrices) are mentioned. Finally, the topic of parallelization in current multicore processors is developed thoroughly. For that, the pattern used and the most important characteristics of the tools proposed, OpenMP and Intel TBB, are described. It needs to be highlighted that the characteristics of multibody systems small size problems, frequent recursion use and intensive repetition along the time of the calculation with high dependencies of the previous results complicate extraordinarily the use of parallelization techniques against other computational mechanics areas, as the finite elements computation. Based on the concepts mentioned in Chapter 4, Chapter 5 is divided into three sections, one for each formulation proposed in this Dissertation. In each one of these sections, the details of how these different proposed implementations have been made for each algorithm and which tools have been used are described. In the first section, it is shown the use of numerical libraries for dense and sparse matrices in the semirecursive topological formulation based in the double velocity transformation. In the second one, the use of parallelization by means OpenMP and TBB is depicted in the semi-recursive formulation with penalization and projections. Lastly, the use of sparse matrices and parallelization techniques is described in the global formulation with flexible joints and Euler parameters. Chapter 6 depicts the achieved results through the formulations and implementations previously described. This chapter starts with a description of the modeling and topology of the two vehicles studied. The first model is a two-axle chassis-cabin or van like vehicle, which belongs to the range of medium charge vehicles. The second one is a five-axle vehicle belonging to the truck or cabin semi-trailer model, belonging to the heavy industrial vehicles category. In this chapter, a comparative study is done between the simulations of these vehicles with each one of the formulations used and the improvements achieved are presented in a quantitative way with the different strategies proposed in this Dissertation. With the aim of deducing the conclusions more easily and to evaluate in a more objective way the improvements introduced in the Dissertation, all the results of this chapter have been obtained with the same computer, which was the top one among the Intel Xeon range in 2007, but which is rather obsolete today. Finally, Chapters 7 and 8 are dedicated to the final conclusions and the future research projects that can be derived from the work presented in this Dissertation. The objectives of doing real time simulations in high complex industrial vehicles have been achieved with the formulations and implementations developed.
Resumo:
El objetivo de este proyecto de investigación es comparar dos técnicas matemáticas de aproximación polinómica, las aproximaciones según el criterio de mínimos cuadrados y las aproximaciones uniformes (“minimax”). Se describen tanto el mercado actual del cobre, con sus fluctuaciones a lo largo del tiempo, como los distintos modelos matemáticos y programas informáticos disponibles. Como herramienta informática se ha seleccionado Matlab®, cuya biblioteca matemática es muy amplia y de uso muy extendido y cuyo lenguaje de programación es suficientemente potente para desarrollar los programas que se necesiten. Se han obtenido diferentes polinomios de aproximación sobre una muestra (serie histórica) que recoge la variación del precio del cobre en los últimos años. Se ha analizado la serie histórica completa y dos tramos significativos de ella. Los resultados obtenidos incluyen valores de interés para otros proyectos. Abstract The aim of this research project is to compare two mathematical models for estimating polynomial approximation, the approximations according to the criterion of least squares approximations uniform (“Minimax”). Describes both the copper current market, fluctuating over time as different computer programs and mathematical models available. As a modeling tool is selected main Matlab® which math library is the largest and most widely used programming language and which is powerful enough to allow you to develop programs that are needed. We have obtained different approximating polynomials, applying mathematical methods chosen, a sample (historical series) which indicates the fluctuation in copper prices in last years. We analyzed the complete historical series and two significant sections of it. The results include values that we consider relevant to other projects
Resumo:
We present an undergraduate course on concurrent programming where formal models are used in different stages of the learning process. The main practical difference with other approaches lies in the fact that the ability to develop correct concurrent software relies on a systematic transformation of formal models of inter-process interaction (so called shared resources), rather than on the specific constructs of some programming language. Using a resource-centric rather than a language-centric approach has some benefits for both teachers and students. Besides the obvious advantage of being independent of the programming language, the models help in the early validation of concurrent software design, provide students and teachers with a lingua franca that greatly simplifies communication at the classroom and during supervision, and help in the automatic generation of tests for the practical assignments. This method has been in use, with slight variations, for some 15 years, surviving changes in the programming language and course length. In this article, we describe the components and structure of the current incarnation of the course?which uses Java as target language?and some tools used to support our method. We provide a detailed description of the different outcomes that the model-driven approach delivers (validation of the initial design, automatic generation of tests, and mechanical generation of code) from a teaching perspective. A critical discussion on the perceived advantages and risks of our approach follows, including some proposals on how these risks can be minimized. We include a statistical analysis to show that our method has a positive impact in the student ability to understand concurrency and to generate correct code.
Resumo:
Se presenta el estado actual del proyecto URBANO, que en la versión 8.02 es una arquitectura distribuida de componentes orientada al diseño de aplicaciones en robots sociales. Se utiliza SOAP como mecanismo de integración remota. Se han diseñado nuevos componentes que permiten diferentes formas de aprendizaje. Por un lado, se ha diseñado una aplicación Android que posibilita la integración del móvil o tablet al control del robot. Por otro se ha desarrollado una ontología que permite representar, no solo conceptos, sino el aprendizaje propiamente dicho y se suman a los ya disponibles para la sintetización y reconocimiento de voces, gestión de gestos de cara y brazos, generación de trayectorias y navegación segura, modelo de estado de ánimo del robot y ejecución de tareas definidas por el usuario mediante el lenguaje propio UPL (Urbano Programming Language).
Resumo:
Se presenta el estado actual del proyecto URBANO, que en la versión 8.02 es una arquitectura distribuida de componentes orientada al diseño de aplicaciones en robots sociales. Se utiliza SOAP como mecanismo de integración remota. Se han diseñado nuevos componentes que permiten diferentes formas de aprendizaje. Por un lado, se ha diseñado una aplicación Android que posibilita la integración del móvil o tablet al control del robot. Por otro se ha desarrollado una ontología que permite representar, no solo conceptos, sino el aprendizaje propiamente dicho y se suman a los ya disponibles para la sintetización y reconocimiento de voces, gestión de gestos de cara y brazos, generación de trayectorias y navegación segura, modelo de estado de ánimo del robot y ejecución de tareas definidas por el usuario mediante el lenguaje propio UPL (Urbano Programming Language)
Estudio preliminar acerca del uso de protocolos y actos comunicativos FIPA en el sistema COMPUTAPLEX
Resumo:
Este trabajo corresponde con la implementación de componentes software dentro de la Plataforma COMPUTAPLEX, la cual tiene como objetivo facilitar a los investigadores la realización de tareas del proceso experimental de ingeniería de software. Uno de los aportes a esta plataforma tecnológica corresponde con el desarrolló de los componentes necesarios para la recuperación de datos experimentales disponibles en diversas fuentes de datos, para ello se hizo uso de un mecanismo capaz de unificar la extracción de información de MySQL, ficheros excel y ficheros SPSS. Con ello diferentes grupos de investigación asociados pueden compartir y tener acceso a repositorios experimentales que se mantienen tanto de manera local como externa. Por otra parte, se ha realizado un estudio de la tecnología de agentes en la que se describe sus definiciones, lenguajes de comunicación, especificación FIPA, JADE como implementación FIPA y parser XML. Además para este trabajo se ha definido e implementado una ontología de comunicación entre agentes, la misma que fue diseñada en la herramienta Protégé. En lo que se refiere al desarrollo de componentes se hizo uso de una amplía variedad de tecnologías que incluye lenguaje de programación Java, framework JADE para el desarrollo de agentes, librería JENA para manejo de ontologías, librería SAXParser para lectura de archivos XML y patrón de diseño Factory. Finalmente se describe la metodología de trabajo utilizada en el proyecto, la cual por medio de la realización de varios ciclos iterativos permitió obtener prototipos que poco a poco fueron cubriendo las necesidades del producto software.----ABSTRACT---- This work relates to the implementation of software components within the platform Computaplex, which aims to enable researchers to conduct experimental software engineering process tasks. One of the contributions to this platform technology corresponds to the development of components which are necessary for the recovery of experimental data available in different data sources, to archive this goal a mechanism able to unify the extraction of information from MySQL, Excel and SPSS files was made. Therefore, associated research groups can share and access experimental repositories that remain both locally and externally. Moreover, it has been conducted a study of agent technology in its definition is described, languages communication, FIPA, JADE and FIPA implementation and XML parser. In addition to this work, it has been defined and implemented an ontology for communication between agents, the same as was designed in the Protégé tool. In what refers to the development of components, a wide range of technologies have been made which includes Java programming language, framework JADE for agent development, JENA library for handling ontologies, SAXParser for reading XML files and Factory design pattern. Finally, describing the work methodology used in this project, which through the implementation of several iterative cycles allowed to obtain prototypes were gradually meeting the needs of the software product.
Resumo:
Actualmente son una práctica común los procesos de normalización de métodos de ensayo y acreditación de laboratorios, ya que permiten una evaluación de los procedimientos llevados a cabo por profesionales de un sector tecnológico y además permiten asegurar unos mínimos de calidad en los resultados finales. En el caso de los laboratorios de acústica, para conseguir y mantener la acreditación de un laboratorio es necesario participar activamente en ejercicios de intercomparación, utilizados para asegurar la calidad de los métodos empleados. El inconveniente de estos ensayos es el gran coste que suponen para los laboratorios, siendo en ocasiones inasumible por estos teniendo que renunciar a la acreditación. Este Proyecto Fin de Grado se centrará en el desarrollo de un Laboratorio Virtual implementado mediante una herramienta software que servirá para realizar ejercicios de intercomparación no presenciales, ampliando de ese modo el concepto e-comparison y abriendo las bases a que en un futuro este tipo de ejercicios no presenciales puedan llegar a sustituir a los llevados a cabo actualmente. En el informe primero se hará una pequeña introducción, donde se expondrá la evolución y la importancia de los procedimientos de calidad acústica en la sociedad actual. A continuación se comentará las normativas internacionales en las que se soportará el proyecto, la norma ISO 145-5, así como los métodos matemáticos utilizados en su implementación, los métodos estadísticos de propagación de incertidumbres especificados por la JCGM (Joint Committee for Guides in Metrology). Después, se hablará sobre la estructura del proyecto, tanto del tipo de programación utilizada en su desarrollo como la metodología de cálculo utilizada para conseguir que todas las funcionalidades requeridas en este tipo de ensayo estén correctamente implementadas. Posteriormente se llevará a cabo una validación estadística basada en la comparación de unos datos generados por el programa, procesados utilizando la simulación de Montecarlo, y unos cálculos analíticos, que permita comprobar que el programa funciona tal y como se ha previsto en la fase de estudio teórico. También se realizará una prueba del programa, similar a la que efectuaría un técnico de laboratorio, en la que se evaluará la incertidumbre de la medida calculándola mediante el método tradicional, pudiendo comparar los datos obtenidos con los que deberían obtenerse. Por último, se comentarán las conclusiones obtenidas con el desarrollo y pruebas del Laboratorio Virtual, y se propondrán nuevas líneas de investigación futuras relacionadas con el concepto e-comparison y la implementación de mejoras al Laboratorio Virtual. ABSTRACT. Nowadays it is common practise to make procedures to normalise trials methods standards and laboratory accreditations, as they allow for the evaluation of the procedures made by professionals from a particular technological sector in addition to ensuring a minimum quality in the results. In order for an acoustics laboratory to achieve and maintain the accreditation it is necessary to actively participate in the intercomparison exercises, since these are used to assure the quality of the methods used by the technicians. Unfortunately, the high cost of these trials is unaffordable for many laboratories, which then have to renounce to having the accreditation. This Final Project is focused on the development of a Virtual Laboratory implemented by a software tool that it will be used for making non-attendance intercomparison trials, widening the concept of e-comparison and opening the possibility for using this type of non-attendance trials instead of the current ones. First, as a short introduction, I show the evolution and the importance today of acoustic quality procedures. Second, I will discuss the international standards, such as ISO 145-5, as well the mathematic and statistical methods of uncertainty propagation specified by the Joint Committee for Guides in Metrology, that are used in the Project. Third, I speak about the structure of the Project, as well as the programming language structure and the methodology used to get the different features needed in this acoustic trial. Later, a statistical validation will be carried out, based on comparison of data generated by the program, processed using a Montecarlo simulation, and analytical calculations to verify that the program works as planned in the theoretical study. There will also be a test of the program, similar to one that a laboratory technician would carry out, by which the uncertainty in the measurement will be compared to a traditional calculation method so as to compare the results. Finally, the conclusions obtained with the development and testing of the Virtual Laboratory will be discussed, new research paths related to e-comparison definition and the improvements for the Laboratory will be proposed.
Resumo:
Esta tesis estudia la reducción plena (‘full reduction’ en inglés) en distintos cálculos lambda. 1 En esencia, la reducción plena consiste en evaluar los cuerpos de las funciones en los lenguajes de programación funcional con ligaduras. Se toma el cálculo lambda clásico (i.e., puro y sin tipos) como el sistema formal que modela el paradigma de programación funcional. La reducción plena es una técnica fundamental cuando se considera a los programas como datos, por ejemplo para la optimización de programas mediante evaluación parcial, o cuando algún atributo del programa se representa a su vez por un programa, como el tipo en los demostradores automáticos de teoremas actuales. Muchas semánticas operacionales que realizan reducción plena tienen naturaleza híbrida. Se introduce formalmente la noción de naturaleza híbrida, que constituye el hilo conductor de todo el trabajo. En el cálculo lambda la naturaleza híbrida se manifiesta como una ‘distinción de fase’ en el tratamiento de las abstracciones, ya sean consideradas desde fuera o desde dentro de si mismas. Esta distinción de fase conlleva una estructura en capas en la que una semántica híbrida depende de una o más semánticas subsidiarias. Desde el punto de vista de los lenguajes de programación, la tesis muestra como derivar, mediante técnicas de transformación de programas, implementaciones de semánticas operacionales que reducen plenamente a partir de sus especificaciones. Las técnicas de transformación de programas consisten en transformaciones sintácticas que preservan la equivalencia semántica de los programas. Se ajustan las técnicas de transformación de programas existentes para trabajar con implementaciones de semánticas híbridas. Además, se muestra el impacto que tiene la reducción plena en las implementaciones que utilizan entornos. Los entornos son un ingrediente fundamental en las implementaciones realistas de una máquina abstracta. Desde el punto de vista de los sistemas formales, la tesis desvela una teoría novedosa para el cálculo lambda con paso por valor (‘call-by-value lambda calculus’ en inglés) que es consistente con la reducción plena. Dicha teoría induce una noción de equivalencia observacional que distingue más puntos que las teorías existentes para dicho cálculo. Esta contribución ayuda a establecer una ‘teoría estándar’ en el cálculo lambda con paso por valor que es análoga a la ‘teoría estándar’ del cálculo lambda clásico propugnada por Barendregt. Se presentan resultados de teoría de la demostración, y se sugiere como abordar el estudio de teoría de modelos. ABSTRACT This thesis studies full reduction in lambda calculi. In a nutshell, full reduction consists in evaluating the body of the functions in a functional programming language with binders. The classical (i.e., pure untyped) lambda calculus is set as the formal system that models the functional paradigm. Full reduction is a prominent technique when programs are treated as data objects, for instance when performing optimisations by partial evaluation, or when some attribute of the program is represented by a program itself, like the type in modern proof assistants. A notable feature of many full-reducing operational semantics is its hybrid nature, which is introduced and which constitutes the guiding theme of the thesis. In the lambda calculus, the hybrid nature amounts to a ‘phase distinction’ in the treatment of abstractions when considered either from outside or from inside themselves. This distinction entails a layered structure in which a hybrid semantics depends on one or more subsidiary semantics. From a programming languages standpoint, the thesis shows how to derive implementations of full-reducing operational semantics from their specifications, by using program transformations techniques. The program transformation techniques are syntactical transformations which preserve the semantic equivalence of programs. The existing program transformation techniques are adjusted to work with implementations of hybrid semantics. The thesis also shows how full reduction impacts the implementations that use the environment technique. The environment technique is a key ingredient of real-world implementations of abstract machines which helps to circumvent the issue with binders. From a formal systems standpoint, the thesis discloses a novel consistent theory for the call-by-value variant of the lambda calculus which accounts for full reduction. This novel theory entails a notion of observational equivalence which distinguishes more points than other existing theories for the call-by-value lambda calculus. This contribution helps to establish a ‘standard theory’ in that calculus which constitutes the analogous of the ‘standard theory’ advocated by Barendregt in the classical lambda calculus. Some prooftheoretical results are presented, and insights on the model-theoretical study are given.