Utilice MATLAB para aprovechar sus datos de IoT en vivo
Si alguna vez ha realizado algún análisis de datos de un sensor u otro tipo de fuente de datos, lo más probable es que haya seguido un proceso en el que recopila los datos, convierte los datos y luego usa MATLAB para procesar y analizar los datos. El uso de MATLAB para analizar los datos es una herramienta muy conocida para realizar esa tarea. Recopilar y convertir los datos, para que se puedan utilizar en MATLAB, puede llevar una enorme cantidad de tiempo. Gracias a una integración que fue completada por MathWorks, ahora es posible conectar fácilmente MATLAB con datos en vivo que se publican y se suscriben en DDS. Dado que MATLAB es una de las principales herramientas utilizadas para analizar datos y DDS se está convirtiendo rápidamente en el middleware de comunicaciones de datos de las aplicaciones IIoT, esta integración permitirá una rápida creación de prototipos y análisis de pruebas para los desarrolladores. Esta publicación de blog mostrará algunos ejemplos de cómo publicar datos DDS y también cómo suscribirse a datos DDS utilizando MATLAB.
Introducción
Para comenzar, deberá asegurarse de que tanto MATLAB como RTI Connext DDS estén instalados en su computadora. Para este conjunto de ejemplos, se utilizaron las siguientes versiones:
- MathWorks MATLAB R2016b
- MathWorks DDS Blockset 2.9.2
- RTI Connext DDS 5.2.3 (video tutorial:instalación para Linux y Windows)
- Aplicación de demostración RTI Shapes (instalada con Connext DDS; consulte el tutorial aquí)
- PC con Windows 10
Una vez que los tenga instalados, simplemente siga el video en este enlace para completar y verificar la instalación:Video de instalación
Inicialización
Una vez que tenga todo instalado y verificado, solo hay unos pocos pasos para configurar DDS adecuadamente dentro de MATLAB.
- Importe los tipos de datos que se utilizarán en su proyecto.
- Cree un participante del dominio DDS
- Cree un DDS DataWriter
- Cree un lector de datos DDS
Importar un tipo de datos en MATLAB es simple. En DDS, los tipos de datos se especifican mediante archivos IDL. La declaración de importación de MATLAB puede leer un archivo IDL directamente y creará los archivos ".m" necesarios para trabajar con ese tipo de datos dentro del intérprete de MATLAB. La siguiente llamada de MATLAB importará un tipo de datos llamado "ShapeType" del archivo ShapeType.idl ubicado en el directorio de trabajo actual:
>> DDS.import ('ShapeType.idl', 'matlab', 'f')
Ahora ese tipo de datos está disponible para usar al crear sus DataReaders y DataWriters de temas en DDS. También tenga en cuenta que una vez que se ha realizado la importación, este paso ya no tiene que ejecutarse en el futuro. El tipo estará disponible en MATLAB en el futuro. Lo siguiente que debe hacer para poner en marcha el descubrimiento de DDS es crear un participante de dominio de DDS. Eso se puede lograr en esta llamada:
>> dp =DDS.DomainParticipant;
Con este objeto DomainParticipant (dp), puede crear objetos DataWriter y DataReader. Los siguientes dos comandos agregarán un objeto de escritura de datos y un objeto de lectura de datos al dp especificando que su tipo será el "ShapeType" recién creado y sus temas serán "Triángulo" y "Cuadrado" respectivamente.
>> dp.addWriter ('ShapeType', 'Triangle')>> dp.addReader ('ShapeType', 'Square')
Suscripción a la demostración de Data in Shapes
ShapeType se utiliza para que se comunique con la aplicación estándar de demostración de formas de RTI (formas) proporcionada por RTI. Shapes permite la creación de DataWriters y DataReaders de temas "Square", "Circle" y "Triangle" que a su vez se basan en el tipo de datos "ShapeType". Para obtener más información sobre cómo usar la aplicación Shapes, haga clic aquí para ver nuestro video tutorial.
En Shapes, el siguiente paso es crear un suscriptor de Triangle. En la siguiente pantalla, deje todas las demás opciones de QoS como predeterminadas.
Publicación de datos en MATLAB
Ahora que tenemos la configuración de DataWriter en MATLAB para enviar ShapeType sobre el tema Triangle, y también tenemos la configuración de Shapes Demo para recibir la publicación, ejercitemos el escritor. Los siguientes comandos completarán los campos del ShapeType y luego publicarán los datos en el tema del triángulo:
%% crea una instancia de ShapeTypemyData =ShapeType; myData.x =int32 (75); myData.y =int32 (100); myData.shapesize =int32 (50); myData.color ='GREEN'; %% escribir datos en DDSdp.write (myData);
El resultado en el tema del triángulo dentro de la demostración de formas será un único triángulo verde que se muestra aquí:
Algunos casos de uso más interesantes de publicación de Triangle dentro de MATLAB son:
%% Publica Triángulos Verdes en una línea a 1 Hz para i =1:10 myData.x =int32 (20 + 10 * i); myData.y =int32 (40 + 10 * i); dp.write (myData); pause (1); end %% Publicar triángulos verdes en un patrón de círculo a 20 Hz para i =1:1000 ángulo =10 * pi * (i / 200); myData.x =int32 (100 + (50 * cos (ángulo))); myData.y =int32 (100 + (50 * sin (ángulo))); myData.shapesize =int32 (40); myData.color ='VERDE'; dp.write (myData); pause (0.05); end
La salida resultante en la demostración de formas son respectivamente:
Publicación de datos en demostración de formas
En la demostración de Formas, cree un editor de Square. En la siguiente pantalla, simplemente elija un color y deje todas las demás opciones de QoS como predeterminadas. La siguiente captura de pantalla muestra la pantalla de Publicación de Square. Para mi demostración, he elegido una Plaza Naranja. Esto publicará la posición X, Y en la pantalla cada 30 mseg.
Suscripción a datos en MATLAB
Si recuerda de antes, agregamos un lector de datos de tema cuadrado al participante del dominio en MATLAB. Usaremos este DataReader para suscribirnos a los datos que ahora publicamos de la demostración de formas. Los siguientes comandos en MATLAB leerán 10 muestras a 1 Hz.
%% read datafor i =1:10 dp.read () pause (1); end
La salida resultante en MATLAB serán 10 informes de lo siguiente:
Algo más interesante
Ahora que tenemos ambas direcciones yendo, hagamos algo que sea más creativo con los datos. Primero leeremos los datos de Square y los modificaremos para cambiar las coordenadas X e Y y luego los volveremos a publicar en un Triángulo ROJO. En segundo lugar, tomaremos los datos de posición resultantes y los trazaremos directamente dentro de MATLAB. Estos son los comandos que se deben usar en MATLAB para lograrlo.
%% asigna una matriz de 100 elementos xArray =ceros (1100); %% ejecuta un bucle para recopilar datos y almacenarlos en la matriz %% también cambia las coordenadas X e Y y luego vuelve a publicar en %% el tema del triángulo para i =1:100 [myData, estado] =dp.read (); si ~ está vacío (myData) x =myData (1) .x; y =myData (1) .y; xArray (i) =x; yArray (i) =y; myData (1) .y =x; myData (1) .x =y; myData (1) .color ='ROJO'; dp.write (myData (1)); end pause (0.05) end %% Graficar los datos de posición Xt =1:100; plot (t, xArray); legend ('xPos'); xlabel ('Time'), ylabel ('Position'); title ('X Postions ');
La salida resultante en la demostración de formas será un triángulo rojo que se mueve en el lado opuesto del cuadrado naranja y también se generará un gráfico dentro de MATLAB que muestra los datos de la posición X:
Como puede ver, la integración de DDS con MATLAB es muy simple de usar y hace que sea muy fácil recopilar datos, inyectar datos y analizar datos. Para esta demostración, usamos la aplicación Shapes simple, pero los datos usados pueden ser fácilmente los datos de su propia aplicación. Si desea obtener más información sobre la integración de MATLAB con RTI Connext DDS, visite este sitio en el sitio de MathWorks:Integración de MATLAB DDS. Si desea obtener más información sobre el uso de Connext DDS, haga clic aquí para obtener acceso a nuestros recursos para desarrolladores.
Tecnología de Internet de las cosas
- MQTT y DDS:comunicación de máquina a máquina en IoT
- Connext DDS y el IoT industrial:las cinco cosas principales que debe saber
- Lecciones de Hannover Messe:5 formas de aprovechar la TI para sus operaciones industriales
- Mantener la conformidad de los datos en IoT
- ¿Su sistema está listo para IoT?
- Democratizando el IoT
- Maximización del valor de los datos de IoT
- Hacer que los datos de IoT funcionen para su empresa
- IoT y su comprensión de los datos
- Principales plataformas de análisis de datos de IoT
- MATLAB - Tipos de datos