Watch videos with subtitles in your language, upload your videos, create your own subtitles! Click here to learn more on "how to Dotsub"

SystemModeler y Arduino

0 (0 Likes / 0 Dislikes)
En esta charla, les voy a mostrar las diferentes maneras en las que se puede interactuar con los modelos generados con SystemModeler. SystemModeler tiene varias alternativas para integrar componentes externos, o controlar modelos de simulación. Por ejemplo, es posible controlar un modelo de simulación a través de TCP/IP, llamar a funciones escritas en lenguaje C/C ++; también podemos conectar nuestros modelos a simulación la placa Arduino usando la librería Modem Plug; y por último, podemos exportar modelos para usar en otros simuladores. Una de las maneras en las que podemos controlar nuestra simulación, es mediante el Protocolo de red de TCP/IP, mediante ese protocolo podemos controlar nuestro modelo de simulación de forma remota y, por ejemplo, leer valores de la salida de nuestro modelo, o escribir valores de entrada. El mejor ejemplo de uso de Protocolo TCP/IP es Mathematica. Con Mathematica podemos controlar cualquier modelo de SystemModeler de manera muy sencilla, cuando usamos Mathematica para controlar modelos lo que sucede internamente es que Mathematica se conecta al ejecutable a través de TCP/IP, y puede escribir y leer valores para generar los gráficos. Gracias a que la información del protocolo está disponible, es posible crear nuestra propia aplicación y controlar la simulación. Enseguida, les voy a mostrar un ejemplo de este caso. En este ejemplo, tenemos un modelo que consiste de un circuito RC, el cual podemos variar el voltaje de la resistencia a través de una entrada, y podemos monitorear dos señales: el voltaje pulsante y el voltaje filtrado. Si simulamos el modelo, podemos ver el comportamiento de los dos voltajes. Y una vez que estamos satisfechos con el modelo, podemos exportarlo como ejecutable. Una vez teniendo el ejecutable, necesitamos lanzarlo a un nuevo servidor. Después podemos conectarnos a él. En este caso, hemos hecho una pequeña aplicación usando Processing, la cual nos permite visualizar los voltajes y controlar el valor de la resistencia, usando mouse de la computadora. Cuando inicia la Aplicación, se conecta a la Simulación y podemos visualizar e interactuar con el modelo. Hacia a la izquierda reducimos el valor de la resistencia, y hacia la derecha la incrementamos. SystemModeler también nos permite crear modelos que llaman funciones escritas en lenguaje C, o que se encuentran en DLLs. Ahora les voy a mostrar algunos ejemplos. El modelo C de Circuit, incluido en la documentación, usa la función Chirp, que está definida en lenguaje C. Al simular el modelo, SystemModeler localiza la función y la compila como parte del ejecutable, y aquí podemos ver el resultado. Otro ejemplo que usa funciones externas pero que están almacenadas en una DLL, es la librería ModelPlug, la cual nos permite usar una tarjeta Arduino, o compatible para leer o escribir señales a un sistema electrónico. ModelPlug nos permite usar entras y salidas digitales o analógicas y controlar Servos. En este ejemplo, tenemos una tarjeta de Arduino conectada al puerto USB de mi computadora. En esta tarjeta, estamos leyendo una entrada analógica, después pasamos esa señal a un filtro para remover ruido, y después enviamos esa señal como posición a un cero conectada a la misma tarjeta. Cuando lanzamos la simulación, nuestro modelo se va a conectar con el Arduino y configurarlo. En el siguiente video, vamos a poder ver el resultado en el cual la posición de un Slider define el ángulo del servo. La librería ModelPlug es ideal para hacer prototipos de manera sencilla. Por ejemplo, aquí tenemos un robot que consiste en una barra la cual puede moverse mediante un Servo y un sensor de distancia que nos indica la posición de la bola. El SystemModeler hemos hecho de un modelo para controlar el rebote. El modelo consiste de una entrada analógica para leer la posición de la bola y un Servo para controlar el ángulo. También agregamos componentes extra para filtrar las señales y limitar el mínimo y máximo del ángulo de la barra. Después conectamos el robot a un control PID, el cual calibramos usando Mathematica. Y, en el siguiente video, vamos a poder ver el resultado, en el cual el robot intenta mantener la bola en la posición central. ModelPlug nos permite usar tantos Arduinos, como puertos USB tengamos en nuestra computadora, en este caso me gustaría ver como se comporta el sistema de control cuando cambia la posición deseada de la bola. Para ello, usamos un segundo Arduino conectado a un Slider, cuyo valor usaremos como desplazamiento de la referencia. Por ultimo, me gustaría mostrar como podemos exportar modelos hechos en SystemModeler y usarlos en otros simuladores. SystemModeler puede exportar modelos bajo el estándar FMI, cuyo nombre viene de las siglas en inglés (Functional Mock-up Interface). Este estándar lo usan más de 30 herramientas de simulación, con la cuales es posible intercambiar modelos. En este ejemplo, vamos a exportar el modelo de un tanque y después importar en la NI VeriStand. Aquí podemos ver el modelo del tanque, el cual tiene una salida mostrando el nivel y otra mostrando el flujo. Una vez que el modelo está listo podemos exportarlo. Una vez importado el modelo en VeriStand, podemos crear una interfaz que nos permite monitorear el modelo. Dentro de VeriStand conectamos un controlador PID para regular el nivel del tanque y desde esta interfaz podemos probar nuestro control. Por ejemplo, variar el nivel deseado del tanque o variar el flujo. Como resumen, en esta presentación, hemos visto varios ejemplos de: Cómo controlar modelos de SystemModeler remota, cómo usar funciones en lenguajes C/C++, cómo usar la librería ModelPlug para conectar nuestros modelos al mundo real. Y, finalmente, cómo exportar modelos Arduinos a otros simuladores. Gracias por su atención.

Video Details

Duration: 7 minutes and 5 seconds
Country:
Language: English
License: Dotsub - Standard License
Genre: None
Views: 42
Posted by: wolfram on Jun 1, 2015

SystemModeler y Arduino

Caption and Translate

    Sign In/Register for Dotsub above to caption this video.