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 :

S-function recherche Time Peak


Sujet :

Simulink

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 186
    Points : 61
    Points
    61
    Par défaut S-function recherche Time Peak
    Bonsoir,

    J'ai un problème avec Simulink, en fait j´ai un script-Matlab (recherche le temps de dépassement des peaks d'un signal par rapport à une constante) qui fonctionne très bien.
    Maintenant j'aimerai modéliser cela avec Simulink. J'ai fait un premier système, que j'aimerais intégrer avec mon script MATLAB, mais je ne sais pas quelle S-function pourrait faire ca, et comment l'intégrer.

    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour.
    intergrer avec mon script matlab
    Une function matlab est appelée par simulink avec "MATLAB Fcn".
    Das ce cas là, simulink ne sert pas à grand chose !

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 186
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par phryte Voir le message
    Bonjour.

    Une function matlab est appelée par simulink avec "MATLAB Fcn".
    Das ce cas là, simulink ne sert pas à grand chose !
    .

    Bonjour
    c´est cette Fcn , que j´aimerai faire.Mais je me pose aussi la question est ce que se serait possible avec les blocks de Simulink de resoudre mon Probleme sans passée par ces Functions.?
    Sinon quelle Fcn serait adapte pour resoudre ce probleme.?
    Je rappele que mon probleme est de pourvoir determiner le temps que fait un peak, apres depassement d´une certaine valeur(constante) predefinie.

    Merci

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 186
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par jokenjo Voir le message
    .

    Bonjour
    c´est cette Fcn , que j´aimerai faire.Mais je me pose aussi la question est ce que se serait possible avec les blocks de Simulink de resoudre mon Probleme sans passée par ces Functions.?
    Sinon quelle Fcn serait adapte pour resoudre ce probleme.?
    Je rappele que mon probleme est de pourvoir determiner le temps que fait un peak, apres depassement d´une certaine valeur(constante) predefinie.

    Merci

    Voici une figure de mon signal avec une constante .J´aimerai faire avec Simulink combien de temps la courbe reste au dessus de mes differents peaks.Et en faire une matrice.

    Merci
    Images attachées Images attachées  

  5. #5
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour.
    Une idée :
    Période d'échantillonnage = 0.01
    Durée u1 > 0 = 628*0.01 secondes

    Body :

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 186
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par phryte Voir le message
    Bonjour.
    Une idée :
    Période d'échantillonnage = 0.01
    Durée u1 > 0 = 628*0.01 secondes

    Body :

    Bonjour
    merci de votre reponse , j´ai essaye le schema , qui marche et pourtant je ne comprend pas bien assez .car j´ai fait un scope la dessu, modifier la constante , mais je ne´arrive pas a interpreter le resultat, est til possible de faire une optique telle que la durre superieur a ma constante soit d´une autre couleur que le signal d´entrée.
    Images attachées Images attachées  

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour.
    Je ferais comme ça :

  8. #8
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 186
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par phryte Voir le message
    Bonjour.
    Je ferais comme ça :
    Hi

    je n'arrive pas a faire le graphe X(2Y), je veux dire input...

    merci

  9. #9
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    e n´arrive pas a faire le graphe X(2Y), je ve dire input...
    Il est dans "Neural Network Blockset"
    "Control Systems"

  10. #10
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 186
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par phryte Voir le message
    Il est dans "Neural Network Blockset"
    "Control Systems"
    Merci bien j'ai pu l´insérer, mais cela me donne une autre figure, voici en faite , ce dont j'ai besoin, les parties en rouges sont les dépassements du signal de la ligne(y=1), et j'aimerais avoir des valeurs de durée de ces dépassement. Ici on a 3 dépassements.

    Merci
    Images attachées Images attachées  

  11. #11
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    j´aimerai avoir des valeurs de duration de cet depassement
    Tu veux la valeur sur le graphe ?

  12. #12
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 186
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par phryte Voir le message
    Tu veux la valeur sur le graphe ?
    Non, j'aimerais recueillir ces valeurs sur le display par exemple, ou dans le workspace.
    Sinon la figure que j´obtiens est totalement différente de celle-là.

    Merci

  13. #13
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Tu peux dériver le signal et le sauver sur le workspace :

    puis exécuter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     n=1:length(simout)-1;a=find(simout(n+1)-simout(n) ~=0)*0.01

  14. #14
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 186
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par phryte Voir le message
    Tu peux dériver le signal et le sauver sur le workspace :

    puis exécuter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     n=1:length(simout)-1;a=find(simout(n+1)-simout(n) ~=0)*0.01

    Bonjour phryte

    merci du coup de main , mais j´ai quelque questions,Pourquoi je dois faire le produit de la sortie avec une constante encore , alors que j´ai deja fait le produit avec ma constante (dans le Subsysteme-Body)?
    Par ailleurs est obligatoire prendre une periode d´echantillonage (0.01) ?

    merci

  15. #15
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 186
    Points : 61
    Points
    61
    Par défaut
    Bonjour
    et si j´aimerai que le compteur de temps soit remise a zero , quand le signal n´est pas superieur a ma constante , il y aura til un block pour ca ?,Ou comment je peux utiliser le ELSE ?

    Merci

  16. #16
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour.
    Pourquoi je dois faire le produit de la sortie avec une constante
    Le produit ne sert qu'à convertir en secondes. On effectue ce calcul où l'on veut.
    obligatoire prendre une periode d´echantillonage (0.01) ?
    Non, on prend ce que l'on veut.. Mais plus la période est faible, meilleure est la précision.

  17. #17
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 186
    Points : 61
    Points
    61
    Par défaut
    Hi
    merci pour l´info ,mon signal marche bien,mais je n´arrive toujours pas a remttre a zero quand la condition de if n´est pas remplie .
    J´ai fait le "reset" de SUbAction If , mais ces toujours la meme..
    Pour une idee, toujours prenable.

    Merci

  18. #18
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Pour faire un reset de l'intégrateur il faut un signal impulsionnel externe :

    contenu du if :

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/11/2020, 14h55
  2. Embedded Matlab Function sous Real-Time Workshop!
    Par javjouv2011 dans le forum Simulink
    Réponses: 2
    Dernier message: 14/06/2012, 22h45
  3. Function recherche dans un autre classeur
    Par Beaudelicius dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/06/2011, 21h52
  4. Time function
    Par Soulama dans le forum Langage
    Réponses: 5
    Dernier message: 28/03/2006, 16h40

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