Exemple de code

Transition des nœuds MathScript aux nœuds de script MATLAB dans LabVIEW - Exemples de tests étalons

Products and Environment

This section reflects the products and operating system used to create the example.

To download NI software, including the products shown below, visit ni.com/downloads.

    Software

  • LabVIEW

    Other

  • Module LabVIEW MathScript 2018 (32 bits) ou version ultérieure, MATLAB 2018a ou version ultérieure

Code and Documents

Attachment

Description

Il est recommandé d'utiliser les nœuds de script MATLAB LabVIEW en remplacement de MathScript LabVIEW pour les ordinateurs sous Windows. Les nœuds de script MATLAB peuvent être utilisés pour une grande variété de tâches, notamment l'analyse de données, l'ajustement de courbe, l'analyse spectrale, le traitement du signal, les statistiques et l'apprentissage automatique. Le code graphique LabVIEW peut être associé aux nœuds de script MATLAB et utilisé pour la programmation système, l'automation et les E/S.

Ce document décrit les différences entre les nœuds de script MATLAB et les nœuds MathScript dans LabVIEW. Il présente également les options permettant d'abandonner les nœuds MathScript sur les ordinateurs de bureau et les cibles temps réel, ainsi que des exemples de VIs étalons pour plusieurs tâches de calcul. Les exemples de VIs sont fournis dans un fichier zip joint à ce document.

 

Principales différences entre les nœuds de script MATLAB et les nœuds MathScript

Les exemples de VIs étalons joints contiennent des nœuds de script MATLAB et des nœuds MathScript. Le tableau suivant met en évidence certaines différences clés entre les nœuds. Les nœuds de script MATLAB effectuent des appels ActiveX au logiciel MATLAB installé sur le même ordinateur pour exécuter des scripts. Vous devez disposer de copies sous licence de LabVIEW et de MATLAB sur votre ordinateur sous Windows pour pouvoir utiliser les nœuds de script MATLAB dans LabVIEW. Cette approche présente plusieurs avantages. Vous aurez un accès complet à toutes les boîtes à outils, tous les objets et types de données inclus dans votre licence MATLAB. Vous aurez également une compatibilité syntaxique et numérique complète avec MATLAB.

 

Principales différences entre les nœuds de script MATLAB et les nœuds MathScript

 

Options de migration vers les méthodes de communication EDI-EDI avec MATLAB ou vers le code MATLAB compilé

L'arbre de décision ci-dessous met en évidence certaines options supplémentaires permettant d'abandonner les nœuds MathScript pour migrer vers des méthodes de communication EDI vers EDI avec MATLAB ou vers des options de code compilé développées avec le logiciel de compilation de code MathWorks. Vous devez d'abord examiner votre application pour déterminer s'il s'agit d'une application de bureau ou si elle exploite également MathScript sur des cibles en temps réel. S'il s'agit d'une application de bureau, vous pouvez passer des nœuds MathScript aux nœuds de script MATLAB dans LabVIEW ou vous pouvez basculer vers LabVIEW NXG et l'Interface pour MATLAB. Si vous envisagez d'utiliser LabVIEW NXG, assurez-vous que le reste de votre application est également prêt à être porté et que votre matériel est entièrement pris en charge.

 

L'arbre de décision décrit également les options pour les applications LabVIEW Real-Time et pour les ordinateurs de bureau sous Mac/Linux. Pour les applications LabVIEW Real-Time, envisagez le toolkit Model Interface associé au code MATLAB compilé comme une alternative au nœud MathScript. Vous pouvez prendre votre script et le placer dans un bloc de fonction MATLAB dans un diagramme Simulink. Le modèle Simulink peut comprendre principalement un ou plusieurs blocs de fonctions MATLAB ainsi que des ports d'entrée et de sortie. Si votre modèle Simulink n'inclut aucun composant temps continu, au lieu de choisir un solveur temps continu, vous pouvez choisir un solveur discret à incréments fixes pour votre application temps réel. Le document Running Compiled Simulink® Models in LabVIEW and in VeriStand contient un exemple avec un bloc de fonction MATLAB dans un diagramme Simulink.

 

Si vous avez une application temps réel mais n'avez pas accès à Simulink et à Simulink Coder, vous pouvez utiliser un nœud Appeler une fonction d'une DLL dans LabVIEW Real-Time avec votre code MATLAB compilé.



 

Exemples de VIs étalons pour les nœuds de script MATLAB et les nœuds MathScript

Trois VIs sont joints à ce document. Ils comprennent des exemples de test pour les nœuds de script MATLAB et les nœuds MathScript, ainsi que du code graphique LabVIEW. Chacune des approches est présentée dans une condition distincte d'une structure Condition. Les trois VIs comprennent les tâches suivantes :

  • Transformée de Fourier rapide (FFT) d'un tableau en entrée
  • Factorisation LU d'une matrice en entrée
  • Solution numérique d'une équation différentielle ordinaire (ÉDO) spécifiée dans un exemple de script (secondord.m)

Ces exemples de VIs exécutent les calculs plusieurs fois et déterminent le temps de calcul moyen. Vous pouvez spécifier le nombre de calculs à exécuter ainsi que le nombre de calculs de "mise en route" à exclure. L'option permettant d'exclure les calculs de "mise en route" a été créée pour tenir compte du lancement de la communication avec MATLAB pour le nœud de script MATLAB.

 

Les exemples de VIs étalons pour les calculs de FFT et LU utilisent tous deux respectivement le même tableau en entrée et la même matrice pour chaque méthode. L'exemple de VI étalon pour le calcul de l'ÉDO utilise la même équation différentielle et les mêmes conditions initiales pour chaque méthode.

 

Bien que les moteurs de calcul sous-jacents soient différents pour le nœud de script MATLAB et les nœuds MathScript, les paramètres pour chaque méthode sont choisis pour fournir des résultats numériques similaires. Remarque sur le test ÉDO : le nœud de script MATLAB ne permet pas à l'utilisateur de choisir un incrément de temps minimal pour le solveur à incrément variable. Une vérification du nombre de points pour la solution MATLAB a révélé un nombre de points légèrement supérieur par rapport à MathScript, respectivement 121 et 112, mais le temps moyen de calcul de la solution MATLAB était toujours inférieur à celui de MathScript.

 

Le tableau ci-dessous montre les résultats de l'exécution des trois VIs sur un ordinateur sous Windows. Pour chaque VI, le nombre d'essais choisi était de 20, en excluant 2 essais de mise en route du temps de calcul moyen pour chaque méthode. Le nœud de script MATLAB est plus rapide que le nœud MathScript pour les tâches LU et ÉDO. Il est plus lent pour la tâche FFT.

 



Tableau des résultats des tests Windows, 20 exécutions avec 2 exécutions de mise en route exclues

(Intel Core i7-7600U CPU @ 2,80 GHz)

 

Vous pouvez modifier les exemples de VIs étalons avec votre propre code et des entrées appropriées afin de réaliser des tests étalons personnalisés pour votre application.

 

Ni les résultats en sortie de chaque nœud, ni le code graphique ne sont présentés dans les exemples de VIs étalons. Vous pouvez copier le code de chaque condition dans de nouveaux VIs pour examiner les résultats et les comparer. Les tracés de réponse pour les calculs de l'ÉDO sont présentés dans des exemples supplémentaires dans un fichier zip séparé joint à ce document.

 

Vous trouverez ci-dessous des captures d'écran des VIs et du script secondord.m.

 

Capture d'écran pour l'exemple de test étalon FFT

Capture d'écran pour l'exemple de test étalon LU

Capture d'écran pour l'exemple de test étalon ÉDO

 

Secondord.m :

function dydt = secondord(t, y);

dydt = [y(2); -2*y(1) - y(2)];

 

 

 

 

 

Utilisation

Installation des exemples et définition du chemin dans MATLAB :

Placez les trois exemples de VIs étalons suivants et le script correspondant (à partir du fichier zip Example Benchmarks for MATLAB Script and MathScript) dans le dossier Documents > LabVIEW Data sur votre ordinateur Windows :

  • VI Benchmarking FFT
  • VI Benchmarking LU
  • VI Benchmarking ODE
  • secondord.m

Assurez-vous également d'ajouter le chemin vers le dossier LabVIEW Data dans votre environnement MATLAB sur le même ordinateur.

Exécution des exemples de VIs étalons :

Vous pouvez exécuter chaque exemple de VI étalon et observer les résultats. Si vous le souhaitez, vous pouvez modifier le nombre d'exécutions et le nombre d'exécutions de mise en route à exclure de la durée moyenne de chaque calcul.

 

 

 

 

 

Liens Associés

 

 

 

 

 

Carli S.
Troubleshooting & Maintenance Digital Business Manager - National Instruments

Example code from the Example Code Exchange in the NI Community is licensed with the MIT license.

Contributors