Cette question a en fait deux aspects principaux. Dès le début, je dois admettre que je suis totalement novice en modélisation physique et que je serais heureux d'être corrigé également, et pas seulement d'obtenir une réponse. Pour ceux qui trouvent trop long à lire, je peux donner un résumé bref:
1) Simulink vs Modelica
2) Simscape vs Modelica
1) Le premier est la comparaison des approches de modélisation. Classiquement, les deux approches principales que je souhaite comparer sont nommées différemment:
# _ Approche par flux de signaux/modélisation par blocs/modélisation causale ...: modèles typiques dans Simulink. Il y a des boîtes avec des entrées et des sorties et des fonctions de transfert entre les deux.
contre
# _ {Modélisation par approche réseau/basée sur les composants/modélisation non causale ...: Il existe des ports physiques au lieu d'E/S de signal et les entités de flux (courant, chaleur, etc.) peuvent circuler dans les deux sens.
Dans cette comparaison, j'ai lu des opinions sur le Web et cherché des articles. Cela revient à comparer les environnements de développement basés sur Modelica et Simulink (par exemple) , autant que je sache. Les inconvénients et les avantages de ces deux aspects sont plus clairs pour moi que l’autre point que je veux poser.
2) Après avoir lu beaucoup de choses sur la première comparaison, il était préférable pour moi de choisir une modélisation à base de composants. Cependant, Modelica n'est pas la seule option ici. Il existe également Simscape , à l'aide duquel vous pouvez combiner des ports physiques (comme dans Modelica) avec la modélisation par blocs de Simulink.
Je voudrais connaître les avantages et les inconvénients de cette comparaison Simscape vs Modelica. Pour éviter tout malentendu, je dois souligner que Modelica est un langage. Par conséquent, il serait plus judicieux de comparer n’importe quel environnement Modelica avec Simscape, par exemple OpenModelica vs Simscape.
Eh bien, puisque personne ne semble répondre à cette question, je vais tenter ma chance.
Il semble que vous semblez avoir compris la question à votre première question. La réponse de base est que la modélisation causale implique beaucoup de travail initial de you qui pourrait autrement être effectué par le compilateur. Pire encore, si vous souhaitez prendre en charge différentes causalités, vous devez soit réimplémenter votre composant et/ou disposer de plusieurs versions prenant en charge différentes causalités. Il est assez difficile de modéliser une physique complexe combinant des comportements continus et discrets sans avoir à effectuer tout ce travail fastidieux, fastidieux et sujet aux erreurs, pour résoudre les problèmes de causalité.
Cela m'amène à votre deuxième question SimScape vs. Modelica. SimScape semble être une reconnaissance des problèmes que j'ai mentionnés dans le paragraphe précédent. Honnêtement, il sera difficile pour une tierce partie de vous fournir une analyse de SimScape par rapport à Modelica car tout dépend de facteurs qui peuvent être différents pour vous par rapport à d'autres personnes.
De plus, je n’ai pas beaucoup utilisé SimScape, je ne peux donc pas en dire autant. Mais je peux certainement vous dire la force de Modelica. Modelica a été développé par un groupe de conception composé à parts égales de développeurs, d'utilisateurs et d'universitaires. Je pense que c'est en fait sa grande force cachée de Modelica. En tant que tels, les nouvelles fonctionnalités devaient bénéficier du soutien de tous les groupes pour réussir. Trop d'influence d'un groupe est, à mon avis, préjudiciable.
L’ouverture de Modelica signifie que vous pouvez obtenir le support de Modelica à partir de nombreux outils (gratuits et commerciaux). Ceci, à son tour, signifie qu'il existe de nombreuses bibliothèques différentes. Cette ouverture ne concerne pas seulement la spécification elle-même, mais l'éco-système (outils ouverts, bibliothèques ouvertes, etc.).
Enfin, la preuve, c’est vraiment de voir tous les types de problèmes que les gens résolvent. Modelica est utilisé dans un large éventail de domaines d'ingénierie pour résoudre des problèmes très divers. Ceci, à mon avis, témoigne de la solidité de la conception du langage et des bibliothèques. Ce succès ne résulte pas de beaucoup d’argent de marketing, mais plutôt du fait que la technologie est fondamentalement puissante et que les gens du monde entier l’ont reconnu et l’ont utilisée pour résoudre maintes et maintes fois.
Je vous encourage à parcourir les documents des conférences Modelica précédentes. Tous les articles sont disponibles gratuitement en ligne à l'adresse suivante: modelica.org .
Prise sans scrupule: si vous souhaitez apprendre Modelica à l'aide d'exemples issus d'un large éventail de disciplines de l'ingénierie, consultez le livre gratuit, interactif et en ligne Modelica by Example .
Pour cette comparaison, un point de conflit peut être la capacité d'importation/exportation FMI.
Interface fonctionnelle de maquette est une solution très prometteuse pour le transfert et le partage de modèles entre différents environnements de modélisation. Les unités de maquette fonctionnelle (UMA) extraites peuvent être importées dans un autre environnement ou simulées numériquement à l'aide d'outils tiers.
La plupart des plates-formes Modelica offrent une fonctionnalité adéquate d'importation/exportation FMI. Je peux, au moins, par exemple pour OpenModelica, JModelica.org et MapleSim. Pour plus d'informations sur la disponibilité, veuillez voir ici .
Dans quelle mesure Matlab/Simulink vous soutient-il? On dit qu'ils offrent cette disponibilité, mais il n'y a pas de paquet officiel que l'on peut télécharger depuis MathWorks. Il existe des packages tiers tels que FMI Toolbox et Cible FMI pour Simulink Coder , mais ils semblent être commerciaux. J'ai essayé la version de démonstration du package de Modelon, FMI Toolbox, mais en utilisant la version de démonstration, on ne peut travailler que sur les modèles fournis avec la version de démonstration.
Il existe en fait un autre package FMI officiel pour Simulink selon this link . Je les ai contactés et leur ai demandé si je pouvais jeter un coup d'œil et l'essayer pour un projet de recherche (aucun mensonge, c'était un projet de recherche). L'outil ne peut être acquis qu'en envoyant un courrier électronique à l'équipe mentionnée dans le lien et il n'y a que la fonction d'importation FMI (pas d'exportation). En tant qu'outil commercial, Simulink ne veut pas laisser les modèles s'enfuir dans les autres environnements. Remarque importante, comme on peut le voir dans les commentaires, ce paquet peut maintenant être trouvé dans la version officielle de Simulink R2017b publiée le 20.09.2017.
En général, les plates-formes Modelica apportent beaucoup plus de soutien à FMI, ce qui peut résoudre beaucoup de problèmes à l'avenir. Bien que je devrais explicitement dire que je n’ai pas eu beaucoup d’expérience dans l’utilisation de FMI pour résoudre mes modèles jusqu’à présent. Il est parfois extrêmement lent et il existe des divergences entre les résultats de OpenModelica et la solution utilisant une FMU extraite du même modèle. Les options du solveur sont limitées pour Model Exchange. En ce qui concerne la co-simulation, j'ai peut-être commis une erreur. Cependant, c'est un outil très prometteur nécessitant des améliorations, à mon humble avis.
Une étude sur les problèmes que le standard FMI rencontrait en 2012 peut être trouvée ici . Après la publication de FMI 2.0, la plupart de ces problèmes seraient résolus. Je remercie ici Christian Bertsch de m'avoir corrigé pour les informations éventuellement mal adressées que j'ai postées. En général, le FMI est un excellent outil qui devient beaucoup plus important dans l’industrie. Ses avantages et les outils supportant FMI sont disponibles sur son site Web.
Mon expérience personnelle en tant que co-auteur de Physiolobrary et actuellement Physiolibrary.models.
Dans notre groupe, nous avons conclu que la combinaison d’approches causale et orientée sur le signal était appropriée dans Modelica. L'approche causale est appropriée pour combiner des composants modélisant les lois physiques de base d'un système modélisé - de tels composants sont plus réutilisables. L’approche du signal est appropriée pour ajouter des composants propriétaires au système modélisé où la causalité est connue ou supposée (contrôle de la fréquence cardiaque, etc.). Nous avons discuté des détails à https://doi.org/10.1016/j.compbiomed.2014.08.025 ou récemment sur https://doi.org/10.1016/j.bbe.2017.08.001
L'un des inconvénients de Simscape est l'absence de bibliothèques. Pour modéliser par exemple système cardiovasculaire, vous devrez peut-être utiliser l'analogie du circuit électrique. Bien que cette simplification soit généralement acceptée dans la recherche ou dans l’industrie, vous risquez de perdre de la précision et d’accroître la probabilité d’erreurs. C'était un problème également dans Modelica jusqu'à ce que la bibliothèque tierce Physiolibrary soit disponible.
Cependant, il est beaucoup plus facile de reproduire (réimplémenter) le modèle Simscape dans Modelica, comme nous l'avons fait par exemple. dans paper http://mj.mefanet.cz/mj-04140914 que n'importe quel modèle orienté bloc - peu importe que ce soit dans Modelica ou Simulink.