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

Simulink Discussion :

Vérifier qu'il n'y a que certains types de blocs entre deux subsystems


Sujet :

Simulink

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Vérifier qu'il n'y a que certains types de blocs entre deux subsystems
    Bonjour à tous !!

    Voilà, dans le cadre de mon projet je dois, à l'aide d'un code dans une fonction, vérifier qu'il n'y a que certains types de blocs, que j'appellerai autorisés, entre deux subsystems.

    Par exemple, un bloc avec BlockType = Inport est autorisé mais si BlockType = LogicalPort ce n'est pas bon et je générerai une erreur dans un rapport.

    Pour tout ce qui est de la gestion du rapport, sachant que ce n'est pas la seule vérification du modèle simulink que j'effectue dans mon code, il n'y a pas de problème.

    Malheureusement, pour ce qui est de vérifier que je n'ai que certains types de blocs entre deux subsystems je ne vois absolument pas comment faire.

    Le modèle simulink est composé d'un subsytem dans lequel il y a d'autres subsystems et ainsi de suite jusqu'à ce qu'on atteigne un niveau dit de calcul où tous les blocs seront permis.

    A chaque fois le nombre de subsystems peut changer.

    Je ne sais pas trop quelle partie de code pourrait vous permettre de m'aider donc je ne mets rien pour le moment mais si besoin je préciserai mon code en fonction de vos besoins.

    J'ai pensé utiliser find_system et effectuer des comparaisons entre différents tabeaux !
    find_system('modele'), effectuer un traitement sur le tableau retourné et le comparer avec les tableaux traités retourner par les find_system('modele','BlockType','Inport'), etc...

    Mais cela semble laborieux du fait que le nombre de subsystem varie suivant le modèle étudier et que la taille des tableaux est différente...

    Merci d'avance pour votre aide !!

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Je suis pas sur d'avoir bien compris la question, tu veux vérifier que selon le niveau du Subsystem, il ne contient que certains blocs dits "autorisés"?

    Pourrais-tu mettre une capture d'écran d'un cas autorisé et d'un cas interdit pour qu'on puisse se rendre compte?

    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Tout d'abord merci de prendre de ton temps pour me répondre.

    Oui je ne savais pas trop comment expliquer ce que je recherche !

    Je joins les captures d'écran.

    Le cas autorisé 1 l'est car nous sommes dans un sous-système où il n'y a pas d'autres sous-système à l'intérieur. C'est un niveau de calcul pour moi, ç'est à dire que à ce niveau les calculs sont autorisés.

    Le cas autorisés 2 l'est car nous sommes dans un sous-système dans lequel il y a d'autres sous-systèmes et des blocs dit autorisés pour moi (Goto, From, DocBloc, Inport, Outport,...)

    Le cas interdit l'est car nous sommes dans un sous-système dans lequel il y a d'autres sous-systèmes, des blocs dit autorisés, mais il y a également un bloc interdit : Gain.

    Voilà, je ne vois vraiment pas comment faire pour ça...
    D'habitude j'arrive à peu près à trouver seul mais là je suis vraiment bloqué..

    Merci pour ton aide Duf !!
    Images attachées Images attachées    

  4. #4
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    As-tu essayer d'utiliser la propriété SearchDepth de FIND_SYSTEM? En parcourant tous tes sous-systèmes, si tu la mets à 0 tu dois pouvoir vérifier que dans chaque sous-système il n'y a pas de blocs non-autorisés.

    Ca donnerait (à tester...):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find_system('mon_modele/mon_soussysteme', 'BlockType', 'Gain', 'SearchDepth', 0);
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Aaaaaah nicquel !!!

    Je ne comprenais pas trop comment fonctionnait cette option mais avec ton code, j'ai compris !!

    Je teste tout ça mais cela devrait prendre du temps pour le code final car je crois que je vais devoir faire ton code pour toute la liste de blocs interdits... En gros quasiment toute la liste de bloc de matlab/simulink...

    Merci pour tout en tout cas !!

    Je note le sujet comme résolu car pour moi, c'est exactement la commande que je cherchais!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. cleartool liste que certains types de fichiers
    Par pcouas dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 01/02/2011, 08h04
  2. [VB6]N'afficher que certain type de fichier dans une FileListBox
    Par Misha dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 03/11/2008, 18h34
  3. Ne vérifier que certains champs de mon formulaire
    Par cdevl32 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/08/2008, 15h18
  4. [Oracle 8i] ne garder que certains enregistrements (COUNT ?)
    Par delphim dans le forum Langage SQL
    Réponses: 13
    Dernier message: 23/02/2005, 14h30
  5. 1 Table, Des doublons, ne rertenir que certains d'entre eux
    Par Dragano dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/01/2005, 12h06

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