Bonjour,
Des nouvelles du front
Le coeur du prog_µC est écrit. Il s'agit d'une interruption cadencée à 25 µs.
Je gère 4 pwm, si bien que le pulse de pilotage d'un booster apparait toutes
les 100 µs. Je me suis basé en cela sur les travaux réalisés sur le site "mu tracer".
Contrairement au système d'origine, je module la largeur du pulse en fonction de
la mesure de tension: trop faible, j'augmente, trop forte, je diminue.
A noter que le temps réel n'intervient que dans le cadencement des pulses.
Tout le reste est en temps non contraint. Y compris la mesure des tensions.
De toute manière, il n'y avait pas le choix, une mesurée ADC prenant environ 60 µS.
Pour évaluer prog_µC, j'ai bricolé une alim basse tension type booster qui donne
une tension fonction de la largeur du pulse. Oh, le domaine de variation est maigre.
Cela va de 2V à 3V, mais cela suffit pour illustrer l'affaire.
Donc, ça avance, Il y a du bon, il y a du moins bon, c'est normal, c'est le début.
Commençons par le moins bon.
J'ai eu un mal de chien à avoir une routine stable. Parfois, sans raison
évidente, le système partait en butée, le pulse était au plus large et
plus rien ne se passait. Après investigations, je me suis aperçu que le problème
venait des 3 autres pwm. Comme elles ne sont raccordées à rien, les mesures
donnaient des valeurs aléatoires entrainant des situations critiques.
J'ai donc tordu le cou au problème en reliant les mesures des 3 pwm à Vcc.
Pour le bon:
Le temps réel est respecté, un dialogue minimaliste avec le PC fonctionne également.
Reste à mettre en place une régulation digne de ce nom. Pour cela, nous avons le choix.
Différents types de régulations
PID
Proportionnelle Intégrale Dérivée. On élabore un signal d'erreur, son intégrale et sa dérivée.
Le signal d'erreur, c'est l'écart entre la consigne et la valeur mesurée.
Pour le reste, le signal de correction (la nouvelle largeur d'impulsion) est donnée par
la belle formule qui suit:
correction = Gp x erreur + Gi x intégrale_erreur + Gd x dérivée_erreur.
Reste à mettre au point les 3 gains afin d'avoir un asservissement rapide, stable et sans trop
d'erreur fixe. Là, ça dépend grandement du comportement du booster et c'est plus ou moins facile,
sachant que la mesure n'est pas faite en temps réel. (et puis ça fait bien 30 ans que j'ai vu
ça et déjà, à l'époque, je n'avais pas tout compris)
Réglage + maintien
Autre possibilité, le réglage "lent", sans risque d'instabilité puis, une fois la tension
atteinte, maintien de la commande.
Table de valeurs
Autre possibilité encore, établir une table de correspondance largeur de pulse - tension.
Incrément
Et enfin, la solution bête: on fait varier la largeur du pulse et on constate la tension réalisée.
Quelle régulation pour quelle tension?
Vfil: réglage + maintien.
Inutile de faire du PID, une fois trouvé, le réglage n'a pas lieu d'évoluer pour un tube donné.
VA: table ou incrément.
Va est la valeur qui va varier le plus rapidement. Inutile de se positionner sur une tension
bien précise. Le tout est de la mesurer précisément et d'explorer le domaine.
Vg2: PID
Comme il pratique pour une pentode de fixer la tension écran à une valeur connue et
comme cette tension peut varier en fonction du courant, le PID s'impose.
Vg1: PID ou réglage + maintien ou table.
Même remarque que pour Vg2 sauf si on n'explore pas les tensions de grille positives.
Donc maintien + table si Vg1<0 (pas de courant de grille), sinon PID.
L'idée derrière tout cela est de faire une exploration rapide et sans risque d'instabilité.
Ci joint 2 vidéos minables (faites avec un APN).
Vidéo1
Le PC envoie un changement de consigne toutes les secondes.
Trace du haut: l'un des 4 pulses (100µs entre 2 pulses)
Trace du bas: la tension pilotée.
Vidéo2
Idem mais zoomé, on voit que la largeur du pulse varie en permanence
sous l'effet du changement de consigne et de la regulation (proportionnelle)
http://dl.free.fr/qd9N0XZAK