Exploitez les données IoT en direct dans MATLAB avec l'intégration RTI Connext DDS
Lors de l'analyse de données de capteurs, le flux de travail typique implique la collecte de données brutes, leur conversion en format utilisable, puis l'exploitation des puissantes capacités analytiques de MATLAB. Cependant, l'étape de conversion des données peut être chronophage. Grâce à l'intégration récente de MathWorks, MATLAB peut maintenant souscrire et publier directement des données via DDS, le middleware de facto pour les communications IIoT. Cela permet aux développeurs de prototyper et tester de l'analytique temps réel avec un surcoût minimal.
Mise en route
Avant de commencer, assurez-vous que MATLAB et RTI Connext DDS sont installés. Les versions suivantes ont été utilisées dans les exemples :
- MathWorks MATLAB R2016b
- MathWorks DDS Blockset 2.9.2
- RTI Connext DDS 5.2.3 (Linux & Windows)
- Application RTI Shapes Demo (installée avec Connext DDS)
- PC Windows 10
Regardez la vidéo d'installation pour vérifier que tous les composants sont correctement configurés : Vidéo d'installation.
Initialisation
Après l'installation, initialisez DDS dans MATLAB avec les étapes suivantes :
- Importez le(s) type(s) de données IDL requis pour votre projet.
- Créez un Participant de Domaine DDS.
- Créez un DataWriter DDS.
- Créez un DataReader DDS.
L'importation d'un fichier IDL génère automatiquement les fichiers .m correspondants pour MATLAB. Par exemple, pour importer ShapeType.idl :
> DDS.import('ShapeType.idl','matlab','f') Une fois importé, le type de données est disponible pour la création ultérieure de DataReader/DataWriter. Créez un Participant de Domaine :
> dp = DDS.DomainParticipant;
Attachez des writers et readers pour le type de données ShapeType sur les topics Triangle et Square :
> dp.addWriter('ShapeType','Triangle') > dp.addReader('ShapeType','Square') Souscription aux données dans Shapes Demo
RTI Shapes Demo fournit des topics préconfigurés pour Square, Circle et Triangle, tous basés sur ShapeType. Utilisez la démo pour créer un souscripteur pour le topic Triangle ; laissez les paramètres QoS par défaut.

Publication de données depuis MATLAB
Avec le DataWriter configuré, publiez un triangle vert :
%% Créer une instance de ShapeType myData = ShapeType; myData.x = int32(75); myData.y = int32(100); myData.shapesize = int32(50); myData.color = 'GREEN'; %% Écrire les données vers DDS dp.write(myData);
Shapes Demo affiche un unique triangle vert comme montré ci-dessous :

Autres motifs de publication :
%% Triangles verts en ligne à 1 Hz for i=1:10 myData.x = int32(20 + 10*i); myData.y = int32(40 + 10*i); dp.write(myData); pause(1); end %% Triangles verts en cercle à 20 Hz for i=1:1000 angle = 10*pi * (i/200); myData.x = int32(100 + (50 * cos(angle))); myData.y = int32(100 + (50 * sin(angle))); myData.shapesize = int32(40); myData.color = 'GREEN'; dp.write(myData); pause(0.05); end
La démo visualise ces motifs comme montré :

Publication de données dans Shapes Demo
Dans Shapes Demo, créez un éditeur pour le topic Square. Sélectionnez une couleur (ex: orange) et conservez les QoS par défaut. La démo diffusera la position X,Y du carré toutes les 30 ms.

Souscription aux données dans MATLAB
Utilisez le DataReader Square pour consommer les données de Shapes Demo. Lisez dix échantillons à intervalles d'une seconde :
%% Lire les données for i=1:10 dp.read() pause(1); end
MATLAB affiche dix messages similaires à la capture d'écran ci-dessous :

Cas d'usage avancé : Transformer et visualiser
Après avoir établi la communication bidirectionnelle, transformez les données de carré reçues en échangeant ses coordonnées X et Y, republiez-les comme triangle rouge, et tracez les positions X au fil du temps. Le script MATLAB ci-dessous démontre ce flux de travail :
%% Allouer un tableau pour 100 échantillons xArray = zeros(1,100); %% Collecter, transformer, republier for i=1:100 [myData, status] = dp.read(); if ~isempty(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 = 'RED'; dp.write(myData(1)); end pause(0.05); end %% Tracer la position X t = 1:100; plot(t,xArray); legend('xPos'); xlabel('Temps'); ylabel('Position'); title('Positions X'); Shapes Demo affiche maintenant un triangle rouge miroir du carré orange, tandis que MATLAB rend le graphique de position X :

L'intégration de DDS avec MATLAB rationalise l'ingestion, l'injection et l'analyse de données. Bien que cette démo utilise l'application simple Shapes, la même approche fonctionne pour toute source de données IoT basée sur DDS. Pour plus de détails sur l'intégration DDS de MATLAB, visitez la page MATLAB DDS Integration sur MathWorks. Pour explorer Connext DDS plus avant, accédez aux ressources développeur ici.
Technologie de l'Internet des objets
- Leçons de Hannover Messe : 5 stratégies éprouvées pour exploiter l'IT dans les opérations industrielles
- Assurer la conformité des données dans l'Internet des objets
- Votre usine est-elle prête pour l'IoT ? Guide pratique
- Démocratiser l'Internet des objets : la prochaine génération satellite IoT apporte connectivité universelle, abordable
- Libérer la valeur des données IoT : stratégies sécurisées et pilotées par les insights
- Transformer les données IoT en valeur business : guide pratique
- Exploiter les données IoT pour l'excellence manufacturière
- Principales plateformes d'analytique IoT basées sur le cloud pour 2026
- Types de données MATLAB : Guide complet