pwm avec duty cycle variable (pendant un temps donné)
Bonjour,
Je suis entrain d'essayer de piloter un moteur DC avec une PWM variable un peu spécifique, dans le but de préserver des batteries. Je n'ai pas besoin de boucle de retour pour le contrôle automatique. Je cherche juste à élaborer une PWM un peu spécifique et je dois me rendre à l'évidence que je n'y arrive pas...:(
je souhaite générer, quand le signal de commande est = '1', une PWM qui a un duty cycle à 50 % pendant 200 ms et après un duty cycle à 10 % jusqu’à ce que le signal de commande =0. La PWM a une fréquence fixe.
schéma général
http://img4.hostingpics.net/pics/883426image001.png
schéma PWM
http://img4.hostingpics.net/pics/631225image002.png
dans la FCN, J'ai essayé plusieurs codes mais aucuns n'a marché (je ne sais pas si c'est le meilleur moyen de réaliser mon besoin)
Code:
1 2 3 4 5 6 7 8 9
| function y = fcn(u)
%#eml
if (u >= 1)
y = 0.5; %duty cycle a 50%
%Je voudrais attendre 200ms ici avant de changer le duty cycle a 10%
y = 0.1;
else
y=0;
end |
j'ai essayé de mettre un 'wait()' mais il ne semble pas apprécier. J'ai essayé aussi de compter les front montant jusqu'à une certain valeur (représentant 200ms) mais je n'ai pas réussi générer un compteur (j'ai essayé de la même manière qu'en C mais MATLAB ne semble pas apprécier)
Est ce que quelqu'un aurait une idée, des explications ou aurait déjà fait ce genre de PWM?
merci d'avance pour votre aide
p.s : j'utilise MATLAB R2009a