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 :

Problème petit script


Sujet :

Simulink

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Par défaut Problème petit script
    Bonsoir,

    j'ai un petit script (Matlab 2019b) qui permet de faire varier un paramètre pour voir son influence.

    Je ne vois pas ce qui bloque.

    J'ai essayé une première version en déclarant la variable Ktab dans matlab :


    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    %Cette fonction permet de simuler un diagramme Simulink en faisant varier un
    %paramètre K
     
    %Pour pouvoir l'utiliser il faut :
    % - Déclarer une variable globale K dans Matlab (Syntaxe : global K)
    % - Déclarer les valeurs de K à simuler dans Matlab (Syntaxe : Ktab = [5 10
    % 13]) (Maxi 24 valeurs)
    % - Remplacer une constante par K dans le diagramme Simulink
    % - Configurer le scope du diagramme Simulink (Menu Parameters/Data
    % history/Save Data to Workspace / Structure with time)
    % - Lancer la commande Matlab suivante : simuler( 'Nom du fichier
    % Simulink',Ktab )
     
     
    function simuler(nom_fichier, Ktab)
    hold on ; %Permet de superposer les courbes
    global K ; %Permet de piloter la variable K de simulink
     
    colors = {'blue', 'green', 'red', 'cyan', 'magenta','black','blue', 'green', 'red', 'cyan', 'magenta','black'};
     
    for i = 1:length(Ktab)
       K = Ktab(i);
       sim(nom_fichier); %Lance la simulation avec K(i)
       Scope(i) = ScopeData ; %Sauvegarde les résultats de Simulink de la structure ScopeData dans un tableau
       if(i<7)
            plot(Scope(i).time, Scope(i).signals.values, 'color', colors{i},'DisplayName',sprintf('K = %d', K) ) ; %trace en trait fort
       else
            plot(Scope(i).time, Scope(i).signals.values, 'color', colors{i},'DisplayName',sprintf('K = %d', K) , 'LineWidth',2,'LineStyle',':') ; %trace en pointillés
       end
    end
    legend('show'); %Affiche la légende
    hold off ;
    end
    Nom : a.PNG
Affichages : 300
Taille : 4,5 Ko

    Le schéma est le suivant :
    Nom : b.PNG
Affichages : 283
Taille : 7,4 Ko

    Quand je lance le programme simuler(testSB, Ktab), j'ai le message d'erreur suivant :
    Nom : c.PNG
Affichages : 297
Taille : 9,6 Ko


    Si je déclare Ktab dans le script :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    %Cette fonction permet de simuler un diagramme Simulink en faisant varier un
    %paramètre K
     
    %Pour pouvoir l'utiliser il faut :
    % - Déclarer une variable globale K dans Matlab (Syntaxe : global K)
    % - Déclarer les valeurs de K à simuler dans Matlab (Syntaxe : Ktab = [5 10
    % 13]) (Maxi 24 valeurs)
    % - Remplacer une constante par K dans le diagramme Simulink
    % - Configurer le scope du diagramme Simulink (Menu Parameters/Data
    % history/Save Data to Workspace / Structure with time)
    % - Lancer la commande Matlab suivante : simuler( 'Nom du fichier
    % Simulink',Ktab )
     
     
    function simuler(nom_fichier, Ktab)
    hold on ; %Permet de superposer les courbes
    global K ; %Permet de piloter la variable K de simulink
    Ktab = [1 5 10] ;
    colors = {'blue', 'green', 'red', 'cyan', 'magenta','black','blue', 'green', 'red', 'cyan', 'magenta','black'};
     
    for i = 1:length(Ktab)
       K = Ktab(i);
       sim(nom_fichier); %Lance la simulation avec K(i)
       Scope(i) = ScopeData ; %Sauvegarde les résultats de Simulink de la structure ScopeData dans un tableau
       if(i<7)
            plot(Scope(i).time, Scope(i).signals.values, 'color', colors{i},'DisplayName',sprintf('K = %d', K) ) ; %trace en trait fort
       else
            plot(Scope(i).time, Scope(i).signals.values, 'color', colors{i},'DisplayName',sprintf('K = %d', K) , 'LineWidth',2,'LineStyle',':') ; %trace en pointillés
       end
    end
    legend('show'); %Affiche la légende
    hold off ;
    end
    J'ai le message suivant :
    Nom : d.PNG
Affichages : 275
Taille : 9,6 Ko

    Je n'ai pas trop d'idées. Je suis "débutant" en programmation.

    Si certains ont des idées, je suis preneur ...

    Merci d'avance

    Sébastien

    PS : Modèles en PJ
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Petit problème de script shell
    Par Mainman dans le forum Linux
    Réponses: 4
    Dernier message: 11/12/2007, 08h07
  2. Problème execution script perl
    Par 00sebbe dans le forum Apache
    Réponses: 1
    Dernier message: 29/08/2005, 14h43
  3. [Débutant] Problème de Script
    Par FREMY dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 26/08/2005, 14h00
  4. [MS-DOS] Problème avec Script
    Par bliml dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 24/05/2005, 13h52
  5. [DOS] Problème de script bat
    Par Philzegore dans le forum Windows
    Réponses: 3
    Dernier message: 04/04/2005, 12h35

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