IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Avis et conseil pour migrer un modele simulink en Stand Alone


Sujet :

MATLAB

  1. #1
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2014
    Messages : 82
    Points : 45
    Points
    45
    Par défaut Avis et conseil pour migrer un modele simulink en Stand Alone
    Bonjour
    J’ai développé une application assez complexe constituée d’un modele simulink et d’IHM qui permet d’interagir sur le modele. (En gros 1 an de travail en délai et 1000h en temps).
    Mon IHM est réalisée l’intérieur d’une S function (matlab level2 Sfunction) et utilise 2 grosses structures qui comportent la description de l’IHM (statique et dynamique).
    Ces structures (relativement complexes) ne peuvent pas être en entrée ou sorties de la S function (port simulink) ni être mise dans les variables d’état de la S function. Donc pour garder ces structures d’un pas vers le pas suivant, je les transfère dans le workspace en fin de S function avec ;
    assignin (‘base’, NomStructure, ’NomStructure’)
    et je retourne les chercher dans le workspace en début de Sfunction au pas suivant :
    NomStructure=evalin(‘base’, ‘NomStructure’) ;
    Entre temps la structure a peut être aussi été « travaillée » par les callbacks de l’IHM.
    Ca fonctionne fort bien (j’ai même une application avec une dizaine d’IHM et de S functions et ca marche…
    L’intérêt est que ma S function est un controleur que je peux l'interfacer avec un modèle physique de process.
    Mon souci est que je souhaite maintenant faire évoluer ce projet vers une application Standalone . La premiere étape est de transformer le modele simulink en dll. Puis de créer un environnement matlab que je puisse coder avec le matlab coder
    Et la je bute sur ma S function et les assignin et evalin qui ne sont pas compilables.
    Quelles solutions ?
    Mettre mes strutures en variable globales ? (ou persistent ?)
    Faire une application sans utiliser ni Simulink ni S function (ou donc les « structures » sont passées en paramètre pour chaque fonction (cela oblige à gérer manuellement les différentes fonctions etl’ordre de leur execution selon le temps ça parait possible, mais les difficultés vont venir des autres composants du modele simulink. (on perd les possibilités de simulink….)

    Par ailleurs j’ai 2 autres soucis du aux variables énumérées que j’ai utilisées.
    1) Je n’arrive pas à sortir les variables enumérées de la S function (matlab2 Sfunction) car je ne connait pas le DATATypeID des class que j’ai créé. C’est contourné avec un bloc simulink enumérated variable sur lequel la S function fait un « set_param « avec la sortie voulue. Ca marche mais le set_param n’est pas compilable donc c’est bloquant pour mon projet Stand alone.
    Pas d’idée pour contourner cela !

    2) Passer en parametre de dll (modele simulink compilé) une variable simulink ENUM parait possible mais le résultat est étrange, il semble que à l’interface dll on a des chaine des caractere et non des Simulink Enum, alors que dans le fichier header .h la viariable enumere semble reconnue. Ca va peut être marcher mais c’est étrange (je dois faire une erreur ?).

    Pour conclure j’ai vraiment une difficultés pour aller vers cette version StandAlone.
    Soit j’essaye d’adapter ce que j’ai avec les difficultés et limitations précédentes et en notant que le process création d’une Dll à partir de simulink puis intégration dans matlab pour ensuite passer par le matlad coder est un process complexe dont je maitrise très mal les limitations (ou possibilitées).
    Soit je repars sur un nouveau developpement tout « matlab » en essayant de n’utiliser que des fonctions compilables ?? mais dans ce cas comment je m’interface avec le modeles de process ?
    Un Avis SVP ???

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    salut

    Pour gérer les données de ton IHM je te suggère plutôt d'utiliser soit guidata soit setappdata plutôt que assignin et eval

    pour les variables enum je n'ai pas d'idée (je ne les utilise jamais)

    Fabien

Discussions similaires

  1. Vos conseils pour migrer une DB
    Par Sergejack dans le forum Administration
    Réponses: 6
    Dernier message: 16/10/2012, 09h08
  2. Demande d'avis et conseils pour choisir SGBD
    Par Ceddoc dans le forum Décisions SGBD
    Réponses: 10
    Dernier message: 18/01/2012, 11h38
  3. Composante pour stoquer un modele simulink dans un gui
    Par mihaispr dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 04/05/2009, 18h43
  4. Demande de Conseils pour migrer php4 vers php 5
    Par Apprentilinux dans le forum Langage
    Réponses: 1
    Dernier message: 31/03/2008, 19h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo