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 :

Créer un train d'impulsion


Sujet :

Simulink

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut Créer un train d'impulsion
    Bonjours,

    Je vous présente donc mon problème. je souhaite crée un train d'impulsion de période fixe et d'amplitude fixe mais avec un nombre précis d'impulsions.

    En effet pour un projet scolaire je doit contrôler un potentiomètre numérique ( ref radiospare : 518-378) et pour cela je doit pouvoir crée un nombre d'impulsion définie.

    par exemple durant un temp t0 je doit crée 3 impulsions puis durant un temps t1 je doit en crée 100.

    Pour réaliser une solution vous pouvez prendre en entrée une constante (3 par exemple pour crée 3 impulsions)

    Si vous désirez plus d'information sur mon problème je reste à la disposition de mes bienfaiteur.

    Merci d'avance.

    MarZz

  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.
    Un début de piste :

  3. #3
    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.
    Plus proche du besoin :

    Avec pour Fcn : u(1)<u(2) ==1

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup pour ce début de réponse. Seulement deux petites questions se pose a moi. La première est que j'obtiens seulement la moitié des impulsions que je désire (par exemple seulement 6 avec en entrée 12) De plus, ma deuxième question est de savoir si je peut transposer ce code en C avec le "real time window target" ( n'étant pas à mon travail je ne peut pas tester pour savoir si cela fonctionne).

    Merci encore de votre réponse

    Bonne fêtes

    MarZz

  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.

    la moitié des impulsions
    Réglage Pulse Generator :
    Pulse type = Sample based
    Amplitude = 1
    Period = 100
    Pulse width = 50
    Phase = 1
    Sample time = 0.01

    Pour le C je ne l'ai jamais fait.
    Tu peux aussi coder sous matlab puis passer en C.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    ok merci bien ca fonctionne parfaitement.

    Bonne journée et bon weekend

    MarZz

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Je revient demander un peu d'aide car à présent (simulations finit) je doit passer en temps réel (Real Time window target : rtwin.tlc) car je doit insérez mon programme dans un DSP.

    Plus précisément, je suis bloquer au niveaux du train d'impulsion. En effet, une foit en temps réel,la clock ne cesse de s'incrémenter mais je reçoit une nouvelle valeur d'impulsion toutes les secondes.

    J'ai tous d'abord penser à bloquer la valeur que je reçoit par un échantillonneur bloqueur par exemple ( pour pouvoir traiter entièrement cette consigne et ensuite reprendre la prochaine valeur). A la première seconde du temps réel, tous se passe bien mais une fois cette première valeurs passer quand l'on reçoit la seconde la clock ne démarre pas de 0 et on ne peut pas obtenir le nombre d'impulsion voulue ( on en obtient plus)

    En fait si on remet la clock à 0 à chaque fois qu'une nouvelle valeur arrive, alors cela pourrait fonctionner. Malheureusement je n'ai pas encore réussi à faire cela.

    Ou alors crée un compteur que l'on vient reseter à chaque nouvelle valeurs.

    Si vous avez une réponse pour moi avec le real time window targer ( avec comme solveur fixed step en auto) je suis preneur.

    Merci d'avance

    MarZz

  8. #8
    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.
    Tu peux remplacer la clock par un générateur de dents de scies :
    http://img121.imageshack.us/img121/9913/scie.gif
    param :
    [0 20]
    [0 20]
    Simulation 0 à 30s

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    c'est très intérésent comme solution. Merci beaucoup pour ce début de résolution. Cependant (il y a toujours un mais ), j'ai par exemple chiosit le bloc "random number" bloc qui me permet d'avoir une valeur différentes toutes les secondes (positive ou négative).

    Je doit dabord séparer valeurs positive et négative mais pour ca pas de soucis un petit if qui compare par rapport à zeros et hop le tour est jouer.

    On à maintenant des valeur (imaginons juste positive) qui arrive toutes les secondes. Si j'utilise le bloc "repeating sequance" j'obtient bien la premiere valeur mais par la suite plus aucune impulsions ne sort. J'ai donc penser que je devait bloquer la valeur qui arrive (mais le bloc "zeros holder" ne marche pas :s).

    Mon nouveau problème est donc de réussir à bloquer une valeur (qui change toutes les secondes mais bon on peut en sauter quelque une le temps de traiter la valeur qui est présente), la traiter corectement, et reseter une fois le traitement finit le compteur de départ (le repeating sequence par exemple). Sachant que mes valeur d'entrée positive vont de 1 à 100.

    Une fois celà régler je pourait transposer le tous pour des valeurs négative. Mais bon celà est une autre histoire.

    Merci d'avance de ta réponse phryte ou bien quelq'un d'autre.

    Bone journée

    MarZz

  10. #10
    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.
    Pour bloquer la valeur aléatoire. Ici pendant 1s :
    Simulation :
    0 30s
    fixed step = 0.01
    Pulse generator :
    A = 1
    period = 100
    pulse width = 1
    sample time : 0.01
    Uniform random :
    max = 100
    sample = 0.01


  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    c'est parfait comme téchnique. Sa fonctionne très bien pour le temps réel.

    Seulement comme on en aurat jamais finit il me reste juste à savoir comment remmetre à 0 le compteur après un travail sur une valeur. Pour aisni crée le nombre d'impulsion corespondant à une vcaleur alétoire toutes les secondes.

    Si on à 5 à la premiere seconde => On bloque (plusieur valeurs passe mais on les négliges) => faire 5 impulsions
    Si on à 10 juste après => On bloque (On néglige les valeurs qui passe)=> on fait 10 impulsions
    Ainsi de suite

    Merci d'avance

    MarZz

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/05/2015, 09h34
  2. [Débutant] je suis une étudiante en train de créer mon application
    Par mounaansia dans le forum Visual Studio
    Réponses: 3
    Dernier message: 27/11/2013, 17h43
  3. génerer train d'impulsion
    Par mannoutech dans le forum Signal
    Réponses: 1
    Dernier message: 02/03/2012, 15h27
  4. Comment créer une impulsion dirac
    Par bela1280 dans le forum Signal
    Réponses: 2
    Dernier message: 08/11/2008, 18h48
  5. [LabVIEW 8.5] Mettre en pause un train d'impulsion
    Par geoffrey.ru dans le forum LabVIEW
    Réponses: 2
    Dernier message: 25/06/2008, 10h22

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