Bonjour !
Je suis étudiant en système embarqué. J'ai pour projet de créer un banc d'essai avec MATLAB.
L'objectif est de pouvoir tester un asservissement contenu dans un microcontrôleur ou un FPGA via à un model implanté sur Simulink
Dans mon cas, j'ai un FPGA avec un PID pour asservir un moteur en vitesse. J'ai modélisé mon moteur de deux manières sur Simulink : dans le domaine de laplace et avec la "librairie" Simscape. Je dispose d'une carte d'acquisition NI myDAQ. La carte transmet le retour en vitesse et la consigne grâce à une tension image de ces dernières et elle reçoit une PWM pour contrôler le moteur grâce à Data Acquisition Toolbox.
Voilà pour la description du projet !
Cela fait 3 semaines que je travaille dessus mais j'ai quelques difficultés. Pour le moment, j'ai modélisé mon moteur et j'arrive à renvoyer la tension image de la vitesse du moteur.
Déjà première question : Le projet vous semble-t-il réalisable sur MATLAB ? (LABView est-il plus adapté par rapport à MATLAB selon vous ?)
Je n'arrive pas à récupérer ma PWM (ou au moins le rapport cyclique) sur Simulink avec la carte acquisition, connaissez-vous une solution ?
J'ai crée un script pour récupérer le rapport cyclique, il fonctionne mais je ne sais pas comment le transcrire sur Simulink, comment faire ?
Merci pour vos réponse
J'espère avoir été claire ^^
Mon script pour le rapport cyclique : (ici on renvoi une tension image du rapport cyclique)
Code:clear Fpwm = 20000; %Hz Tpwm=1/Fpwm; %s s = daq.createSession('ni'); ch = addCounterInputChannel(s,'myDAQ1','ctr0','PulseWidth'); ch.ActivePulse = 'High'; ch1 = addAnalogOutputChannel(s,'myDAQ1','ao0','Voltage'); while(1) Tlow = s.inputSingleScan; DC = (Tlow / Tpwm)*100 Tension = DC/20
-----