9
votes

Comparaison étendue entre Simulink et LabVIEW

J'essaie de déterminer lequel de ces deux à acheter pour mon travail. J'ai utilisé Simulink mais pas LabVIEW. Y a-t-il quelqu'un qui a utilisé les deux et aimerait fournir des détails? Mes critères d'enquête sont la convivialité, la disponibilité des bibliothèques et des fonctions de modèle, une installation de sondage en temps réel, une opportunité d'interfaçage matérielle de COTS, une qualité de la génération de code, une conception pour la qualification (facilité de génération de tests d'unité / d'acceptation), etc. Toutefois, si N'importe qui aimerait m'éduquer avec plus de critères, s'il vous plaît faites donc par tous les moyens!

Pour quiconque ne connaît pas Simulink et LabVIEW - Il s'agit des deux langues spécifiques à des domaines (DSL) destinées à la modélisation graphique de Dataflow (ainsi que la génération de code). Ce sont des outils multi-industriels et très fortement utilisés pour la conception et la modélisation de l'ingénierie.

important - Je suis assez intéressé à savoir si Simulink et LabVIEW offrent une sondage en temps réel. Par exemple, j'ai un modèle que je veux simuler. S'il existe des variables associées à certains blocs de construction dans ce modèle, puis-je les voir changer car la simulation se poursuit? Je sais que ce n'est certainement pas possible avec Simulink car il a un débogueur étape par étape. Je ne suis pas au courant de rien de similaire dans LabVIEW.

Je n'ai vraiment pas utilisé LabVIEW et je ne peux pas l'obtenir temporairement car mon réseau de travail contient des restrictions de téléchargement et des problèmes de privilège administratifs. C'est la raison pour laquelle je ne peux tout simplement pas utiliser uniquement le site Web de NI pour tirer des conclusions. S'il y a un papier blanc disponible qui aborde ce problème, j'aimerais également savoir :)

Mise à jour depuis le dernier message

J'ai utilisé le générateur de code MATLAB et ne dira pas que c'est le meilleur. Cependant, j'entends maintenant que le codeur intégré de Simulink est le meilleur générateur de code et presque l'un de son propre type. Quelqu'un peut-il confirmer s'il est bon ou non pour la conception du système critique de sécurité I.e. Code générant des modèles de sous-systèmes critiques de sécurité. Je sais que les mathworks essaient constamment de fermer l'écart pour obtenir une génération de code C / C ++ de niveau de production complètement flexible.

Je sais qu'une réponse idéale serait ", selon ce que vous essayez de faire, utilisez un peu des deux". Et de manière intéressante, je pense que je me dirige vers cette direction. Ateotd, il est beaucoup d'argent et doit être dépensé "bien".

Merci d'avance.


0 commentaires

6 Réponses :


-1
votes

Si je comprends bien (je ne l'ai jamais vraiment utilisé dans la colère), LabVIEW prend uniquement en charge le matériel NI et est plus axé sur le matériel. Simulink prend en charge le matériel à partir de plusieurs fournisseurs, que ce soit pour l'acquisition de données ou la mise en œuvre en temps réel, mais il peut nécessiter un peu plus de travail pour que l'utilisateur soit interface avec son propre matériel (moins plug & jeu que LabVIEW). D'autre part, Simulink fournit des outils permettant de prendre en charge tout le processus de conception basé sur le modèle, de la modélisation et de la simulation, la conception de la commande, la vérification et la validation, la génération de code, le matériel dans la boucle, etc.

Disclaimer: J'avais l'habitude de travailler pour Mathworks.


10 commentaires

Merci pour votre réponse! Lorsque vous dites Simulink Supporte le matériel de plusieurs fournisseurs, que voulez-vous dire? Pouvez-vous connecter un produit HARDWAR COTS à Simulink pour l'acquisition de données? Je n'étais pas au courant de ça.


De plus, pouvez-vous faire un sondage en temps réel dans Simulink pour afficher des valeurs en temps réel du code C utilisé dans les modèles?


@hagubear Pour l'acquisition de données avec Simulink, vous aurez besoin de la boîte à outils d'acquisition de données ( mathworks.co.uk / Produits / DAQ ), qui fournit des blocs d'E / S analogiques et numériques pour divers matériels ( mathworks.co.uk/products/daq/supported/.../a>).


@Hagubear pas sûr des valeurs en temps réel affichées. Je soupçonne que la réponse est oui avec une fonction S, mais gardez à l'esprit que Simulink fonctionne sur des fenêtres ou d'autres heures non réel en temps réel et donc il ne sera donc pas en temps réel "dur", mais "doux" temps réel.


@ AM304 - Il est vrai que si vous exécutez Simulink sur un non-RTO, les résultats ne seront pas en temps réel durement (et je ne suis pas sûr de pouvoir les appeler techniquement même en temps réel). Cela dit, il est possible d'exécuter des modèles Simulink en temps réel en utilisant cible XPC .


@grungetta True, mais la cible XPC exécute un noyau en temps réel sur une machine PC cible, ce n'est donc pas vraiment simulien, mais plutôt généré C code C de Simulink dont vous parlez. Dans ce cas, il est "difficile" en temps réel. Une autre option, qui ne nécessite pas de PC cible séparé, est la cible de Windows en temps réel.


Il n'est absolument pas vrai que LabVIEW prend uniquement en charge le matériel NI.


@nekomatic merci, je suis corrigé. Comme je l'ai dit, c'était ma compréhension, je n'ai jamais prétendu être un expert en LabVIEW, au contraire!


"LabVIEW ne prend en charge que le matériel NI" ---> très mal.


@kami vois mon commentaire à Nekomatic. La même chose s'applique.



8
votes

Je n'ai absolument aucune expérience avec Simulink, je ne vais donc pas commenter que sur LV, bien qu'une lecture rapide sur Simulink sur Wikipedia semble indiquer qu'elle est principalement axée sur la simulation et la modélisation, ce qui n'est certainement pas le cas avec LabVIEW. < / p>

OK, donc tout d'abord, LV n'est pas une DSL. Bien que vous ne souhaitiez pas l'utiliser pour un projet, c'est un langage de programmation à usage général et vous devez en tenir compte. Je sais que NI a une boîte à outils de simulation pour LV, ce qui pourrait vous aider si c'est ce que vous êtes après, mais je n'ai absolument aucune expérience avec elle. Les images que j'ai vues semblaient indiquer qu'il ajoute un type de diagramme spécial à LV pour la simulation.

Deuxièmement, LV n'est pas limitée à un type de matériel. C'est une langue générale, vous pouvez donc écrire du code qui n'utilisera aucun matériel, code qui utilisera ou exécutera sur le matériel ou le code de NI qui utilisera n'importe quel matériel (que ce soit via des appels DLL, des assemblages .NET, RS232, TCP, GPIB ou toute autre option que vous pouvez penser). Il y a une vaste collection de pilotes LV pour divers appareils et la qualité du conducteur dépend généralement de qui l'a écrit.

Troisième, vous pouvez certainement sonder en temps réel en LV. Vous écrivez votre code, comme vous le feriez dans C ou Java, et lorsque vous l'exécutez, vous avez plusieurs options de débogage:

  1. Single Pastping. Ce n'est pas réellement tout ce que commun, partiellement parce que LV est parallèle.
  2. Exécution de la surbrillance. Cela exécute le code au ralenti, tout en affichant toutes les valeurs des différents fils.
  3. sondes, qui vous montrent la dernière valeur que chaque fil avait, où les fils remplissent la même fonction que les variables font dans des langues à base de texte. Cette mise à jour en temps réel et je suppose est ce que vous voulez.
  4. Conservez des valeurs de fil, ce qui vous permet de sonder un fil même après que des données passées à travers elle. Ceci est similaire à ce que vous entrez dans des IDs basés sur des textes avec des variables. En général, vous ne l'avez généralement pas, car les valeurs de fil sont transitoires, la valeur n'est donc pas conservée à moins que vous ne le demandiez explicitement.

    Bien sûr, puisque vous parlez de code, vous pouvez également écrire le code pour afficher les valeurs à l'écran sur un graphique ou un indicateur numérique ou pour les enregistrer dans un fichier, il ne devrait donc pas y avoir de besoin de sondage réel. Vous pouvez également ajouter du code d'analyse, etc.

    quatrième, vous pouvez essayer de télécharger et d'exécuter LV dans un mode d'évaluation entièrement fonctionnel. Si je me souviens bien, NI vous donne actuellement 7 jours, puis 45 jours si vous vous inscrivez sur leur site. Si vous ne pouvez pas faire cela sur un ordinateur de travail, vous pourriez essayer à la maison. Si votre problème est uniquement avec le téléchargement, vous pouvez essayer de contacter votre bureau NI local et de leur demander de vous envoyer un DVD.

    Notez que je ne sais pas vraiment rien sur la modélisation et la simulation, je n'ai donc aucune idée du type de code que vous devriez réellement écrire pour faire ce que vous voulez. Je suppose que si NI a un module spécial pour cela, ce n'est pas quelque chose que vous pouvez couvrir complètement le code régulier (du moins pas si vous voulez la notation d'origine), mais je dirais que si vous pouviez écrire le code qui fait quoi Vous voulez en C, il n'y a aucune raison pour ne pas pouvoir l'écrire en LV (en supposant bien sûr que vous savez écrire du code dans LV).


5 commentaires

+1 Seulement parce que vous savez que vous savez :) ... Je vais certainement en désaccorder que LabVIEW n'est pas DSL. LabVIEW n'est pas une langue elle-même, mais enveloppe une autre langue de programmation appelée "G" qui n'est apparemment pas très connue telle que C / C ++ / Java. Je suis d'accord avec votre argument que, simplement parce qu'il n'a pas été essayé que de multiples choses ne signifie pas que ce n'est pas faisable. Tous les exemples de cas d'utilisation sur le site Web de NI suggèrent que le système de contrôle, l'acquisition des données, la mesure et les tests sont la zone clé de l'application. Votre réponse est bonne et avec des arguments valides! Merci!


Vous avez raison, ce n'est techniquement pas une langue du tout, car c'est le nom de l'IDE, mais l'argument passe simplement si g est une DSL ou non. Je crois comprendre qu'il y a des années, NI avait des problèmes juridiques avec l'utilisation de G comme nom pour la langue, c'est pourquoi vous ne le voyez pas beaucoup. En pratique, LV et G sont synonymes. Et alors que je conviens que LV n'est pas très bien connu et que c'est principalement utilisé dans des zones spécifiques, il est toujours techniquement une langue générale entièrement fonctionnelle (bien que, à nouveau, cela ne signifie pas que c'est bon pour tout).


LV est en fait très bien connu maintenant de nos jours et, en fait, a remplacé certaines infrastructures de conception basées sur Simulink dans les industries de l'aérospatiale et de la défense. Même le prix est plus raisonnable dans certains cas par rapport à Simulink :). J'ai vraiment besoin de prendre une décision comment je vais conserver ces outils. Je suppose que l'utilisation de LV est meilleure car elle prend en charge les entrées de modèle Simulink. Impossible de battre le support du conducteur pour Ni Matériel, mais cela ne signifie pas qu'ils n'ont pas de pilotes pour des tiers.


Je pensais que LV n'est pas très bien connu des programmeurs. Il est vrai que, dans certains endroits, il est bien connu (laboratoires, départements d'ingénierie de l'Académie, de l'aérospatiale, des constructeurs automobiles, etc.). En tout cas, vous pouvez également essayer de poser votre question dans le conseil de LabVIEW dans les forums NI, où je pense que certaines personnes utilisent Simulink. Si vous faites, assurez-vous de lier ici aussi. Je suppose que Simulink est meilleur pour certaines choses (interaction avec Matlab? Peut-être simulation?) Et que LV est meilleur dans d'autres choses (écrire le code personnalisé). Je n'ai aucune idée de laquelle on est plus approprié pour vous.


Bonne suggestion! Je pense que ce sera une combinaison de toute façon, car certaines des données que j'utilises sont à Simulink, mais ne causent pas de préjudice pour les utiliser dans LabVIEW. La bonne chose Aboug LabVIEWE est que je peux envelopper les modèles LV avec des appels de fonction C afin que je puisse les utiliser dans mon logiciel principal sans avoir à générer de code pour les modèles.



2
votes

Beaucoup de meilleures réponses devraient dépendre de vos besoins de conception ultimes. Développez-vous un produit? Si oui, dans quelle étape de développement êtes-vous? Ou faites-vous des recherches?

J'ai récemment fait une comparaison comme vous le faites. Je sais que LV, mais je voulais vous déplacer vers une option plus efficace du matériel, car NI HW est très coûteux en volume. C'est-à-dire que mon entreprise souhaitait se déplacer vers un produit. Quels lv et NI HW vous donnent une flexibilité. Vous pouvez modifier le code très rapidement comparé à C. D'autre part, LV ne fonctionne pas presque autant de plates-formes HW différentes que c. Donc, je souhaitais trouver une plate-forme peu coûteuse qui fonctionnerait bien pour le contrôle en temps réel et l'acquisition de données, Telle que si nous voulions vendre un produit pour, disons, 30 000 dollars, notre contrôleur ne coûterait pas 15 000 $ de cela. Nous avons fini par des systèmes Diamond Systems Linux SBC. Fait intéressant, Simulink a fini par utiliser le matériel le plus cher ! Il a eu beaucoup de flexibilité et pourrait générer du code, ainsi que des installations modèles et des contrôleurs. Mais alors, lv peut le faire aussi.

Comme Yair a écrit, LV a beaucoup de bons outils de débogage. L'un des outils les plus intéressants qui ne sont pas si connus est le Suspendre lorsque vous appuyez sur option pour un subvi. Cela vous permet de jouer avec les entrées et les sorties d'une subvi autant que vous le souhaitez pendant que l'exécution est en pause.


6 commentaires

Je pense que vous pouvez utiliser des emballages autour de vos modèles / bibliothèques de LabVIEW pour assurer une bonne interface avec votre code C ou FORTRAN LEGACY. En fait, une société appelée Keenan Simulation aux États-Unis a rénové l'ancien lien unique FFS pour les aéronefs McDonnell Douglas DC-9. Vous pouvez trouver l'histoire du site Web de National Instruments.


Peut-être que LV ne dispose pas de la fiabilité et de la "testée" de C. Dans notre cas, LV était le code hérité, et nous sommes passés vers C.


Vraiment! C'est un peu étrange que j'entends des personnes dans la modélisation et la simulation que LV fait le travail! Mais bien sûr, votre cas d'utilisation ne sont pas nécessairement les mêmes.


Ouais, nous parlons de la NASA-fiable. Ne se bloque trop souvent. En fait, la voie que nous avons prise est à peu près exactement la même voie que la NASA a pris pour l'un de leurs projets. Ils utilisaient LV, mais leurs ingénieurs de fiabilité ont pris un coup d'œil à LV et ont dit: "Pas assez stable." Ils ont donc déménagé sur Diamond Systems Linux avec C pour se déplacer vers un système prêt à vol. Au fait, un chemin typique vers un produit est LV ou Simulink, puis C, puis personnalisé PCB.


@Adriankeister Vous semblez être assez proche de mon industrie. Je suis surpris que LV fait toutes ces publicités et ne pas être réellement utiles lorsqu'il s'agit de quelque chose de plus complexe que la NASA ou l'avionique interservice. +1 pour ajouter le bit "par le chemin" à la fin :) vraiment utile.


BTW .... Nasa Mars Rover Occasion LabVIEW Software and NI Hardware ..... se souvient juste de :)



18
votes

J'ai utilisé LabVIEW de 1995 et Simulink à partir de 2000. Maintenant, je suis impliqué dans la conception du système de contrôle et la simulation de systèmes robotiques utilisant LabVIEW et Automotive ECUS à l'aide de Matalab / Simulink / dspace.

LabVIEW est l'accent sur les systèmes de mesure et Matlab / Simulink en simulation dynamique, donc

Si vous exécutez des simulations complexes, et votre travail est créé / débogage des modèles de simulation complexes de contrôleurs ou d'usines, utilisez Simulink + Realtimeworkshop + StateflowChart. LabVIEW n'a pas de générateurs de code eficiient pour la simulation dynamique. RTW génère un code plus petit et plus rapide.

Si votre travail principal est de développer des systèmes avec des contrôleurs et une interface graphique pour les machines, ou si vous souhaitez déployer les contrôleurs sur le terrain, utiliser LabVIEW.

Si votre travail principal développe des systèmes HIL ou SIL flexibles, avec une bonne interface graphique, vous pouvez utiliser Veristand. Veristand peut mélanger le code Simulink et LabView.

Et si vous avez un grand budget (très grand) et que vous travaillez dans les prototypes de contrôle de l'automobile, le matériel DSPACE est un très bon choix pour le développement rapide des écus automobiles, ou OPAL pour développer des circuits électriques. Mais uniquement pour le test de prototype ou de test de contrôleurs.

du point de vue du matériel COTS: Mathworks ne fabrique pas de matériel -> MaLab / Simulink Support Hardware de plusieurs fournisseurs.

Les instruments nationaux produisent / vendre du matériel-> LabVIEW en temps réel est axé sur le matériel des nationalistres de soutien. Il n'y a pas de remplacement complet des lits.


0 commentaires

-1
votes

Vous pouvez vraiment être intéressé par Contrôle design Adn Module de simulation pour LabVIEW . Il fait beaucoup de simulations et à l'avenir peut être compétitif pour Simulink. Je ne suis pas un ingénieur de contrôle mais je l'utilise parfois pour des tests simples et je suis heureux que je n'ai pas besoin d'apprendre Simulink du début pour faire du travail depuis que je connais la philosophie LabVIEW.


1 commentaires

Pourriez-vous élaborer ce module?



2
votes

Matlab et Simulink sont la norme DEFACTO pour la conception et la simulation du système de contrôle. Les modèles de contrôleur Simulink peuvent être utilisés pour la simulation hors ligne conjointement avec des modèles végétaux, tout en fonction de la mise en œuvre en temps réel sur des cibles intégrées. C'est un cadre de simulation générale avec de nombreuses bibliothèques intégrées ainsi que des bibliothèques spéciales à la carte et peuvent être étendues grâce à la création de blocs personnalisés (blocs de fonction S) en C et dans d'autres langues. Il inclut la possibilité d'afficher des valeurs dans les graphiques, les affichages numériques, les gages, etc., tandis qu'une simulation non rayé a lieu. La prise en charge de la cible en temps réel des mathworks comprend X86 (cible XPC) et plusieurs cibles intégrées (MPC555, etc.), et il existe un soutien de la tierce partie pour d'autres objectifs. Le DSPACE DSPACE susmentionné fournit des contrôleurs de prototypage complets, y compris la prise en charge de leur matériel assez puissant. La cible XPC inclut la prise en charge de cartes d'acquisition de données PLETHORA de COTS PC. La prise en charge de la cible en temps réel comprend des éléments d'interface graphique tels que des graphiques, des affichages numériques des gages, etc.


0 commentaires