Asservissement Moteur Matlab
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Asservissement Moteur Matlab



  1. #1
    Horus6322

    Asservissement Moteur Matlab


    ------

    Bonjour,
    Je suis débutant dans la programmation Matlab, j’ai un problème pour réaliser une application .
    Cela consiste à asservir un moteur ( Faulhaber 2342S012CR) grâce à une carte arduino ( ATMEGA 2560 ) et un Motor Shield Arduino . Cependant il doit être entièrement commandé par Matalb et non par Arduino.
    On doit pouvoir contrôler la vitesse et la direction du moteur et récupérer sa position grâce à un codeur incrémental (HEDS-5540).
    J’ai réussi à faire cette application via Arduino mais impossible de trouver un tutoriel ou des explications compréhensibles sur internet pour réaliser cela sous Matlab .
    Vu que je n’ai quasiment aucune bases dans la programmation sous Matlab, je requiers votre aide pour m’aider ou me guider dans la réalisation de cette application.
    Je suis à votre disposition pour toute autre information complémentaire.

    J’espère que vous pourrez m’aider.

    Merci d’avance.

    -----

  2. #2
    lou_ibmix_xi

    Re : Asservissement Moteur Matlab

    Cependant il doit être entièrement commandé par Matalb
    Par simple curiosité, mais pourquoi !!!! ça semble un peu abscon comme exigence...

    Ceci étant, il faut trouver le moyen de communiquer entre l'arduino et matlab... Quels sont les moyens de communiquer de l'arduino ? je pense qu'il n'y a que le port série (du moins exploitable simplement pour communiquer avec un ordinateur)... Donc tu mets au point un protocol simple pour envoyer des ordres à l'arduino par la liaison série. Conseil, un protocol textuel genre "POWER=90;" pour régler le PWM à 90%. Et tu tests avec un émulateur de terminal (hyperterminal par exemple, sous windows s'il existe toujours).
    Une fois que c'est au point côté arduino, il te restes à "brancher" matlab sur le port série et c'est là que les choses peuvent se compliquer...
    Tu es sous UNIX (linux, MacOS...), fastoche, si je me rappelle bien "!" permet de lancer une commande système depuis matlab, et sous UNIX écrire sur une interface série est une simple redirection, par exemple
    Code:
    !echo "POWER=90;" > /dev/ttyS0"
    (il faut juste régler le port série avec stty avant mais ce n'est pas méchant)
    Tu n'est pas sous UNIX... peut-être existe-t'il une "toolbox" pour communiquer par liaison série, ou alors trouver les commandes systèmes windows pour écrir sur le port série (en les invoquant avec !), et si elles n'existent pas il te faudra les développer...

    Remarque, si l'arduino possède une liaison ethernet, tu peux utiliser "netcat" à la place de la redirection sur le port série (et il existe peut-être sous windows)

  3. #3
    Jack
    Modérateur

    Re : Asservissement Moteur Matlab

    J'ai l'impression qu'il faut remplacer l'arduino par un PC. Dans ce cas il faudra une carte munie d'ADC et de DAC, typiquement une carte à base de dsp.

  4. #4
    Horus6322

    Re : Asservissement Moteur Matlab

    Salut et merci de ta réponse .

    Je dois t'avouer que je n'ai pas tout compris ^^' .
    Programmer via Matlab est une contrainte qu'on m'as donné , je ne suis pas censer programmer par Arduino.

    Enfaite pour faire la liaison entre l'arduino et Matlab , après avoir chercher sur Internet , j'ai eu à installer une librairie "ArduinoIO" ce n'est qu'après que j'ai réussi a faire la liaison entre les deux en tapant a=arduino('COM3') sur Matlab et que là , Matlab me dit que la connexion est réussi , sinon avant que des échecs . Mais pour cela , on doit charger un programme fourni avec le package 'ArduinoIO' , mais je ne sais pas quel effet il a sur le moteur et si il prend le dessus sur le programme de Matlab ou non ..

    Du côté Arduino , le programme marchait niquel , les touches programmées permettaient de ralentir/accélérer et de changer de direction le moteur .
    Mais du côté de Matlab , aucun programme ou schéma sur Simulink n'a eu l'air de marcher. J'ai essayer de suivre plusieurs tuto , plusieurs vidéos mais rien n'y fait ...

    Voici le schéma Simulink , constant1 est censer faire varier la direction et constant2 faire varier la vitesse mais aucun n'effectuent ce qui leur est demandé . J'ai trouvé ce schéma sur Internet et il avait l'air assez correcte dans sa logique mais après je ne suis pas certain qu'il soit totalement juste non plus.

    ####################

    Image supprimée conformément aux règles de ce forum:
    http://forums.futura-sciences.com/pr...ges-forum.html
    Dernière modification par Jack ; 17/10/2014 à 15h09.

  5. A voir en vidéo sur Futura
  6. #5
    Horus6322

    Re : Asservissement Moteur Matlab

    Salut Jack ,

    Dans cette application , j'ai seulement accés au matériel dont j'ai parlé .
    On doit passer par le motor shield arduino donc après par la carte ATMEGA 2560 . Donc la solution de passer par le PC n'est pas envisageable ^^'

  7. #6
    mathilde.degranrut

    Talking Re : Asservissement Moteur Matlab

    Salut! j'ai exactement le même travail à faire que toi Horus6322, et j'ai le même problème pour ce qui est d'exploiter les signaux de sortie de mon codeur directement avec MATLAB..as-tu trouvé une solution?
    ça m'aiderait beaucoup parce que je rame un peu là ^^
    merci!

Discussions similaires

  1. Asservissement moteur CC
    Par bast28 dans le forum Électronique
    Réponses: 7
    Dernier message: 06/05/2010, 21h41
  2. Asservissement moteur
    Par invite7ca89fc6 dans le forum Électronique
    Réponses: 4
    Dernier message: 27/04/2009, 20h40
  3. Asservissement Moteur pas à pas
    Par invite06caf16f dans le forum Électronique
    Réponses: 6
    Dernier message: 15/03/2009, 16h03
  4. Asservissement d'un moteur
    Par invite08a45f6c dans le forum Électronique
    Réponses: 1
    Dernier message: 17/02/2009, 11h27
  5. asservissement d'un moteur DC
    Par ABN84 dans le forum Électronique
    Réponses: 1
    Dernier message: 06/05/2007, 09h15