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 :

possibilité d'écrire un modèle Simulink/Simscape à partir d'un script?


Sujet :

Simulink

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 70
    Points : 49
    Points
    49
    Par défaut possibilité d'écrire un modèle Simulink/Simscape à partir d'un script?
    Bonjour,

    Je souhaiterais savoir s'il est possible d'écrire un modèle à partir de certains blocs précis (existants dans une librairie) et d'un script.
    L'idée est de paramétrer le nombre d'éléments Simscape d'un certain type présent dans mon modèle.

    Je souhaite éviter d'utiliser les switch. Je crains en effet que le temps de calcul ne dépende que du nombre total d'éléments présents dans le modèle et non pas du nombre d'éléments connectés.

    Cordialement,

  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,

    Oui tu peux utiliser les fonctions ADD_BLOCK et ADD_LINE pour ajouter des blocs et des lignes dans un omdèle Simulink.

    Ceci étant dit, pourrais-tu préciser quel est ton besoin car je ne suis pas sûr que ce soit la meilleure solution.

    Duf
    Simulink & Embedded Coder

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

  3. #3
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Salut,
    si tu cherches à optimiser le temps d'un simulink, le profiler (que tu trouveras dans les menus) te montreras quels blocs prennent du temps d’exécution.
    Le choix du solveur est souvent déterminant, et je te conseille de tarnsformer les "warning" de présence de NaN ou Inf à "error" dans les options de simulation.

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 70
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Merci pour vos réponses.

    Je n'ai pas encore eu le temps de me renseigner sur le temps de simulation, mais ça va venir.

    Je souhaitais pouvoir paramétrer le nombre de cellules présentes dans une batterie. Plutôt que de remettre les composants à la main qd je change le nombre de cellules, je préfère cliquer sur un bouton.

    J'ai un peu galéré pour l'ajout et la suppression de lignes et l'ajout de composant non simulink (simscape,...)
    Ces liens m'ont permis de surmonter les difficultés rencontrées :
    ouvrir une librairie
    supprimer des lignes entre les blocs


    Voici un petit résumé des infos glanées sur ces sites :
    La modification d'un modèle nécessite d'ouvrir ou de charger le modèle nommé ici 'mdl'. Lle chargement agit comme l'ouverture mais sans afficher le modèle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    %ouverture
    open_system(mdl)
     
    %chargement
    load_system(mdl)
    pour charger les composants des bibliothèques SimHydraulics et Simscape, il faut écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sh_lib %SimHydraulics
    simscape %Simscape

    Pour connecter deux blocs (nommés "bloc1" et "bloc2") dans un modèle nommé "mdl"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    add_line('mdl', 'bloc1/1', 'bloc2/1', 'autorouting', 'on') %bloc simulink
     
    add_line('mdl', 'bloc1/RConn1', 'bloc1/LConn1', 'autorouting', 'on') %bloc simscape
    1 représente le numéro de l'entrée considéré
    pour les "entrées"/"sorties" des blocs simscape, il faut utiliser "LConn1", "LConn2", "LConn3",... et "RConn1", ... pour les connexions situées respectivement à gauche et à droite du bloc et où 1,2,3 représentent les numéros des entrées considérées.


    Pour supprimer les lignes autour d'un bloc, on peut utiliser la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    function removeAndReconnectBlock(blockHandle)
    %Get port handles and parent system
    portHandles = get_param(blockHandle,'PortHandles');
    sys = get_param(blockHandle,'Parent');
    %Get source port
    srcSignal = get_param(portHandles.Inport,'Line');
    srcPort = get_param(srcSignal,'SrcPortHandle');
    %Get destination port
    destSignal = get_param(portHandles.Outport,'Line');
    destPort = get_param(destSignal,'DstPortHandle');
    %Remove
    delete_line(destSignal);
    delete_line(srcSignal);
    delete_block(blockHandle);
    %Reconnect
    add_line(sys,srcPort,destPort)


    Cordialement,

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/10/2014, 14h06
  2. Réponses: 4
    Dernier message: 02/05/2013, 17h56
  3. Réponses: 2
    Dernier message: 10/12/2011, 15h52
  4. Réponses: 1
    Dernier message: 06/06/2009, 11h34
  5. [DOM] [Débutant(e)] écrire sur un fichier XML à partir de java
    Par Samanta dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 05/02/2008, 11h13

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