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 :

Shift d'un signal


Sujet :

Simulink

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 59
    Points : 21
    Points
    21
    Par défaut Shift d'un signal
    Bonjour !

    J'ai un problème avec Simulink ! Je dois décaler un signal 2D de la façon suivante. J'ai donc les paramètres suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Y = [0 0 3 3 0 0]
    X = [0 60 115 270 330 360]
    Le signal X d'entrée va linéairement de 0 à 360 puis reviens à 0. Donc quand je plot ceci j'obtiens une courbe presque comme un signal pulsé, ce qui est correct.

    Maintenant j'aimerais pouvoir shifter le signal Y en fonction d'une valeur de X. Par exemple si je veux shifter le tout de "50", voici ce que j'aimerais obtenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Y = [0 0 0 3 3 0]
    X = [20 50 110 165 320 360]
    Malheureusement je n'arrive pas à obtenir ce résultat. Voici mon schéma bloc :



    L'angle vilo va de 0 à 720, je le transforme donc pour qu'il aille de 0 à 360, puis j'essaye de le shifter !

    Merci en tout cas de votre aide par avance, ça fait un moment que je me casse la tête là-dessus !

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    Normalement Simulink est fait pour gérer des signaux temporels, du coup c'est un peut bizarre ce que tu essayes de faire, mais tu peux utiliser les blocks transport delay de la librairie continuous ou delay de la librairie discrete

    Sinon dans ton diagramme tu as une erreur :
    tu soustrais 360 au signal de sortie de ta look up table (cad Y) qui a priori n'est pas en degrés.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 59
    Points : 21
    Points
    21
    Par défaut
    En fait le problem avec le "transport delay" c'est que ça va décaler le signal mais pas lui faire faire une "boucle". Par exemple en reprenant le même exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Y = [0 0 3 3 0 0]
    X = [0 60 115 270 330 360]
    Si j'applique un shift de 130 en X par exemple (X est en degré et Y en mètres), voici ce que je voudrais avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Y = [3 0 0 0 3 3]
    X = [40 100 130 190 245 360]
    En fait je veux que le signal "carré" s'en aille donc sur la droite par exemple, mais qu'il continue à gauche. Voici ce que j'ai actuellement :



    On voit bien que non seulement le signal est "écrasé" sur 0.03, et que la descente vers la fin devrait normalement se prolonger au début.

    J'aimerais faire un "shift" du signal. Je ne sais pas si c'est clair

  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
    Bonjour,

    Ton problème n'est pas très clair.

    Qu'est-ce que tu veux dire par "shift"?

    Comment un shift de 130 peut te transformer le vecteur X de X = [0 60 115 270 330 360] à X = [40 100 130 190 245 360]?

    Duf

    EDIT: En pièce jointe j'ai mis un sous-système qui fait ce que je comprends comme un "shift"
    Images attachées Images attachées  
    Simulink & Embedded Coder

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

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 59
    Points : 21
    Points
    21
    Par défaut
    En fait le shift me permetterait de décaler mon signal. Mais en le décalant, il n'y a pas de compensation. Sur l'image du graph que j'ai posté au-dessus on voit que le signal tombe à 0 en arrivant à 0.03s. Or c'est faux ! Il devrait rester à sa valeur de 3.5e-3 et continuer à cette valeur depuis 0. En gros il devrait y avoir un bout de signal au début, puis on tombe à 0, puis on remonte au signal.

    J'aimerais faire un décallage, mais qui ne supprime aucun point de ma fonction.


  6. #6
    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
    Et le modèle que je t'ai mis ne te convient pas?
    Simulink & Embedded Coder

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

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 59
    Points : 21
    Points
    21
    Par défaut
    Exact c'est magnifique, ça fonctionne !

Discussions similaires

  1. "Phase shift " d'un signal module en matlab
    Par mihaispr dans le forum Signal
    Réponses: 2
    Dernier message: 02/08/2009, 10h28
  2. [VB6] [MDI] Signaler la fermeture d'une fille à la mère
    Par cpri1shoot dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/04/2004, 08h57
  3. SHIFT + 1
    Par Invité dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/11/2003, 18h34
  4. Dxdiag me signale que j'ai 510M de ram
    Par Goetz dans le forum DirectX
    Réponses: 1
    Dernier message: 29/09/2003, 14h33
  5. Interception du signal SIGINT
    Par macleod dans le forum MFC
    Réponses: 2
    Dernier message: 01/07/2003, 18h39

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