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érification de logique


Sujet :

Simulink

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 76
    Points : 54
    Points
    54
    Par défaut vérification de logique
    Bonjour à tous,
    Voici un schéma sous simulink censé représenter le fonctionnement de charge/décharge de batteries qui fonctionnent de la façon suivante:

    Si l'énergie initiale (Eini) des batteries est supérieure (stricte) à 0.2*Emax alors on fait le traitement 1. Sinon on fait le traitement 2 jusqu'à ce que les batteries soient chargées à 80% de leur charge maximale.

    J'aimerais savoir si vous lui trouvez des défauts, si oui, lesquels?
    Et surtout j'aimerais savoir s'il est valable pour toute une simulation et pas seulement pour un seul pas de calcul (ce que je crains).

    Merci pour votre temps et 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,

    Pour contrôler ton modèle, tu peux utiliser le raccourci Ctrl+D. Dans ton cas, il devrait te donner une erreur car tu n'as pas le droit d'avoir plusieurs blocs Goto avec le même nom dans un même modèle.

    Duf

    EDIT: Un petit exemple qui respecte ton cahier des charges
    Images attachées Images attachées  
    Simulink & Embedded Coder

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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 76
    Points : 54
    Points
    54
    Par défaut
    Merci Duf42,

    En fait j'aimerais réussir à représenter le mode de fonctionnement suivant où:
    E0= énergie dans les batteries à l'instant t=0
    soit "dt" le pas de calcul
    E(i) l'énergie à l'instant i*dt

    E0 est comparée à 0.2, et va subir le traitement 1 ou le traitement 2 et on aura E(1).
    Puis E(1) est comparée à 0.2 et va subir le traitement 1 ou le traitement 2 et on aura E(2).
    etc

    Le problème c'est que comme tu le soulignes je ne peux pas utiliser des GOTO multiples avec le même nom.

    Sur le papier c'est vraiment simple mais dans la pratique

  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
    Ben c'est un peu l'idée que je t'ai mis en pièce jointe de mon message précédent.

    Après il faut tester et ajuster...
    Simulink & Embedded Coder

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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 76
    Points : 54
    Points
    54
    Par défaut
    Je m'excuse, quand j'ai posté je n'avais pas fait attention à ta pièce jointe..

    Merci beaucoup en tout cas

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 76
    Points : 54
    Points
    54
    Par défaut
    Après quelques tests il s'avère que je n'arrive pas à obtenir le fonctionnement que je veux, et c'est normal puisque je pense ne pas avoir correctement décrit le fonctionnement du système.
    Avec les notations suivantes E_input(i) (énergie d'entrée) et E_exit(i) (énergie de sortie):

    Si E_input(i) > 0.2 on fait le traitement 1, on obtient E_exit(i)
    Puis on compare E_exit(i)=E_input(i+1) à 0.2 etc

    Si E_input(i) <= 0.2 on fait le traitement 2, on obtient E_exit(i)
    Puis E_exit(i)=E_input(i+1) que l'on compare à 0.8 et si E_input(i+1) >0.8 on sort du traitement 2 et l'on fait le traitement 1, sinon on continue le traitement 2.

    La différence (et la difficulté?) réside dans le "énergie initiale" (ici E_input) que je n'arrive pas à faire évoluer comme je le désire.

    Merci beaucoup pour votre aide.
    Bonne soirée.

  7. #7
    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
    Je pense que tu pourrais utiliser un bloc "From Workspace" pour charger le vecteur de ton énergie initiale (en fonction du temps évidemment).

    C'est peut-être juste une question de vocabulaire, mais je trouve bizarre d'avoir une énergie initiale qui évolue au cours du temps...
    Simulink & Embedded Coder

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

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 76
    Points : 54
    Points
    54
    Par défaut
    Je reconnais que si j'avais écrit "énergie début de cycle" et "énergie fin de cycle" à la place de "énergie initiale" et "énergie finale" ca aurait été plus clair.
    Et pour le 1er cycle "énergie début de cycle"="énergie initiale".

    En plus je ne peux pas charger un vecteur "énergie initiale" (ou "énergie début de cycle" du workspace car je ne la connais que pour le 1er cycle, je la calcule (traitement1 ou traitement2) pour les cycles suivant, puis j'applique les principes que j'ai expliqué dans mon post précédent.

    Est-ce que je suis assez clair ou pas?

  9. #9
    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
    Euh je crois que la tu m'as perdu...

    Je pense qu'il serait une bonne chose que tu mettes ton problème en équation, cela permettrait de le clarifier grandement à mon avis et de partir sur de bonnes bases...
    Simulink & Embedded Coder

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

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 76
    Points : 54
    Points
    54
    Par défaut
    Je pense aussi que je m'emmêle les pinceaux.. Je vais passer à une autre partie de mon fichier, et je re-posterais si je n'y arrive toujours pas

    Merci en tout cas.

Discussions similaires

  1. Vérification logique d'un job
    Par rauxf dans le forum Développement de jobs
    Réponses: 6
    Dernier message: 09/07/2013, 19h26
  2. [Débutant] vérification d'un programme logique floue
    Par catrina13 dans le forum Signal
    Réponses: 0
    Dernier message: 05/06/2013, 16h41
  3. [VB.NET] Vérification d'existance d'une table
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/05/2004, 10h17
  4. Un lecteur logique caché!!!
    Par Cyberman dans le forum Composants
    Réponses: 3
    Dernier message: 05/10/2003, 23h16
  5. JavaScript de vérification de formulaire
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/02/2003, 13h48

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