Je recherche la meilleure constante de temps RC et sa raison dans un PWM pour convertir le signal numérique en analogique en fonction du rapport cyclique et de la fréquence et d'autres paramètres. La fréquence PWM est de 10 kHz.
Je recherche la meilleure constante de temps RC et sa raison dans un PWM pour convertir le signal numérique en analogique en fonction du rapport cyclique et de la fréquence et d'autres paramètres. La fréquence PWM est de 10 kHz.
Réponses:
Le meilleur RC est infini, alors vous avez une sortie DC parfaitement sans ondulation. Le problème est qu'il faut également une éternité pour répondre aux changements du cycle de service. C'est donc toujours un compromis.
Un filtre RC de premier ordre a une fréquence de coupure de
et une atténuation de 6 dB / octave = 20 dB / décennie. Le graphique montre la caractéristique de fréquence pour une fréquence de coupure de 0,1 Hz (bleu), de 1 Hz (violet) et de 10 Hz (l'autre couleur).
Nous pouvons donc voir que pour le filtre 0,1 Hz, la fondamentale de 10 kHz du signal PWM est supprimée de 100 dB, ce n'est pas mal; cela donnera une ondulation très faible. Mais!
Ce graphique montre la réponse échelonnée pour les trois fréquences de coupure. Un changement de rapport cyclique est une étape dans le niveau DC, et certains changements dans les harmoniques du signal 10 kHz. La courbe avec la meilleure suppression de 10 kHz est la plus lente à répondre, l'axe des x correspond aux secondes.
Ce graphique montre la réponse d'un temps RC de 30 µs (fréquence de coupure 5 kHz) pour un signal à 50% de rapport cyclique 10 kHz. Il y a une énorme ondulation, mais elle répond au changement du cycle de service de 0% en 2 périodes, soit 200 µs.
Celui-ci est un temps RC de 300 µs (fréquence de coupure 500 Hz). Encore une certaine ondulation, mais le passage d'un cycle d'utilisation de 0% à 50% prend environ 10 périodes, soit 1 ms.
Augmenter davantage la RC en millisecondes réduira encore l'ondulation et augmentera le temps de réaction. Tout dépend de la quantité d'ondulation que vous pouvez vous permettre et de la vitesse à laquelle vous souhaitez que le filtre réagisse aux changements de rapport cyclique.
Cette page Web calcule que pour R = 16 kΩ et C = 1 µF, nous avons une fréquence de coupure de 10 Hz, un temps de stabilisation à 90% de 37 ms pour une ondulation crête à crête de 8 mV à 5 V maximum.
modifier
Vous pouvez améliorer votre filtre en passant à des ordres supérieurs:
La courbe bleue était un simple filtre RC avec un roll-off de 20 dB / décade. Un filtre de second ordre (violet) a un atténuation de 40 dB / décade, donc pour la même fréquence de coupure, il y aura une suppression de 120 dB à 10 kHz au lieu de 60 dB. Ces graphiques sont assez idéaux et peuvent être mieux atteints avec des filtres actifs, comme une clé Sallen.
Équations
Tension d'ondulation crête à crête pour un filtre RC de premier ordre en fonction de la fréquence PWM et de la constante de temps RC:
E&OE. "d" est le rapport cyclique, 0..1. L'ondulation est la plus grande pour d = 0,5.
La réponse échelonnée à 99% de la valeur finale est 5 x RC.
Fréquence de coupure pour le filtre Sallen-Key:
Pour un filtre Butterworth (plat maximum): R1 = R2, C1 = C2
Comme Steven l'a dit, c'est un compromis entre l'atténuation de la fréquence PWM et le temps de réponse. C'est pourquoi une telle décision doit commencer par une spécification de ce que vous voulez du signal analogique résultant. Quel rapport signal / bruit doit-il être, ou du moins combien de bruit à la fréquence PWM pouvez-vous tolérer? À quelle vitesse doit-il s'installer au niveau du bruit de fond? Ou inversement, quelle est la fréquence supérieure qui vous tient à cœur?
Notez qu'il peut ne pas être possible de répondre à un ensemble particulier de critères avec une sortie PWM particulière. Disons que vous vouliez une sortie vocale de bonne qualité. Nous dirons que c'est jusqu'à 8 kHz et 60 dB de signal sur bruit. Cela ne se produira pas avec un filtre analogique raisonnablement maniable avec 20 kHz PWM, et certainement pas avec quelque chose d'aussi simple qu'un simple R et C.
À titre d'exemple, travaillons en arrière et voyons ce que les caractères PWM devraient être pour prendre en charge l'exemple vocal ci-dessus avec un seul filtre R, C. Nous avons déjà dit que la fréquence d'atténuation de -3 dB est de 8 kHz, c'est donc à cela que nous avons réglé le R et le C. La fréquence d'atténuation d'un seul filtre R, C est:
F = 1 / (2 π RC)
Lorsque R est en Ohms, C en Farads, alors F est en Hertz. Il devrait être évident que cette équation peut être réorganisée pour être résolue pour n'importe lequel des R, C ou F étant donné les deux autres. Je garde 1 / (2 π) = .15915 toujours dans un registre dans ma calculatrice car ce calcul revient régulièrement en électronique. Ensuite, je divise simplement cela par deux de R, C ou F pour obtenir le troisième.
Nous avons deux degrés de liberté et l'équation ci-dessus ne cloue que l'un d'eux. L'autre peut être considéré comme l'impédance souhaitée pour le signal résultant. Tirons pour environ 10 kΩ, c'est ce que nous ferons R juste pour voir à quoi C sort:
1 / (2 π 8 kHz 10 kΩ) = 1,99 nF
C'est essentiellement la valeur standard du condensateur de 2 nF, nous allons donc simplement y aller. S'il n'avait pas atteint une valeur commune, nous en aurions choisi une proche, puis nous aurions reculé et ajusté R en conséquence. Les résistances sont disponibles dans des variations beaucoup plus fines et à des tolérances plus élevées que les condensateurs ordinaires, vous trouverez donc généralement une valeur de condensateur proche, puis laissez-la piloter la valeur de résistance exacte.
Nous avons donc choisi R = 10 kΩ et C = 2 nF. Notez que cela vient de l'exigence de fréquence supérieure de 8 kHz. Nous n'avons plus de choix à faire, donc le temps de stabilisation et le rapport signal / bruit seront ce qu'ils seront. Tout ce que nous pouvons faire maintenant est de déterminer si ce sera suffisant, ou inversement, quelles caractéristiques PWM seraient nécessaires pour prendre en charge les spécifications du signal de sortie.
Étant donné que la spécification était un rapport signal / bruit de 60 dB, cela signifie que le bruit doit être inférieur à 1 partie sur 1000 de la tension, ce qui signifie que la fréquence PWM doit être atténuée d'autant. Un seul filtre R, C atténue inversement proportionnellement à la fréquence après la fréquence de décroissance. Il s'agit d'une approximation qui se casse près de la fréquence de rolloff et en dessous, mais elle est assez bonne dans la plupart des cas après une octave ou deux après la fréquence de rollof. En d'autres termes, 16 kHz seront atténués de 2 avec une certaine erreur, 32 kHz par 4 avec moins d'erreur, et après cela, vous pouvez à peu près simplement diviser la fréquence d'intérêt par la fréquence de rolloff pour obtenir une atténuation. Nous voulons que la fréquence PWM soit atténuée de 1000, ce qui signifie qu'elle doit être de 8 MHz ou plus. C'est élevé mais faisable avec certains processeurs. Par exemple,
Voyons maintenant la résolution PWM. Encore une fois, cela est entraîné par la spécification de signal à bruit de 60 dB, que nous savons déjà signifier 1: 1000. Cela nécessiterait une résolution PWM d'au moins 999 (vous obtenez toujours un niveau de sortie de plus que la résolution PWM). Cela signifie que l'horloge de tranche PWM interne doit fonctionner 999 fois la fréquence de sortie PWM 8 MHz, ou essentiellement 8 GHz. Cela ne se produira pas avec des pièces disponibles sur le marché raisonnablement disponibles.
Cependant, il existe un moyen de contourner ces limitations, et c'est d'utiliser plus qu'un simple filtre R, C. Quand je veux un joli signal analogique, j'en utilise généralement deux ou trois successivement. Voyons comment l'utilisation de trois filtres R, C successifs change les choses.
Nous avions initialement indiqué que notre fréquence d'intérêt supérieure était de 8 kHz, ce qui implique que nous pouvons tolérer une baisse de 3 dB, sauf indication contraire. Un seul filtre R, C s'atténuera de 3 dB à la fréquence d'atténuation, nous le mettons donc à 8 kHz. Nous ne pouvons pas avoir trois filtres à 8 kHz car ils s'atténueraient de 9 dB combinés. Donc, nous déplaçons les filtres par le nombre de pôles (filtres R, C séparés dans ce cas).
Les trois filtres R, C (trois pôles) sont donc à 24 kHz. Il semble que nous ayons perdu du terrain en faisant cela, mais le gros avantage est que les fréquences ci-dessus sont maintenant atténuées par le rapport au cube au lieu de simplement le rapport comme avec un seul pôle. Encore une fois, nous voulons que la fréquence PWM soit atténuée de 1000, ce qui est de 10 ^ 3, donc nous devons seulement être 10x au-delà des fréquences de coupure du filtre, ce qui signifie que 240 kHz est suffisamment élevé. C'est une grande différence par rapport à 8 MHz. Désormais, l'horloge PWM interne ou la fréquence de tranche PWM ne doit plus être que de 240 MHz. C'est encore élevé mais réalisable.
J'espère que cela vous a donné un aperçu des problèmes. Si vous fournissez des spécifications concrètes, nous pouvons travailler à travers des valeurs spécifiques pour votre cas.
Il est possible d'améliorer les performances sur un seul RC en utilisant des étages RC en cascade. On ne peut pas obtenir des performances aussi bonnes dans un filtre passif RC multi-étages pur que celles obtenues avec des filtres actifs, mais les performances peuvent néanmoins être meilleures qu'avec un seul étage. Malheureusement, je ne connais pas de bonnes méthodes particulières pour calculer les valeurs RC optimales.
Une autre chose à noter est que, bien que la modulation de la largeur d'impulsion soit la forme la plus courante de modulation du rapport cyclique, elle n'est pas la seule. Une approche simple qui peut être très utile dans les cas où la tension de sortie cible ne changera pas trop souvent et où la sortie est plus susceptible d'être près du centre de la plage qu'aux bords, consiste à générer un ensemble de signaux en calculant (la valeur actuelle du compteur "et non" la valeur précédente du compteur), et en ANDant ce signal avec les bits de la valeur de données souhaitée, dans l'ordre inverse (de sorte que le MSB de la valeur de données soit ET 'avec le xor du compteur actuel) LSB et le précédent). L'utilisation d'une telle approche avec, par exemple, une modulation de cycle de service de six bits signifierait qu'une onde de cycle de service 32/64 sera représentée par une fréquence de la moitié de l'horloge PWM, plutôt qu'une onde carrée avec une fréquence 1/64 de l'horloge PWM. Un rapport cyclique 33/64 serait représenté principalement par une fréquence de la moitié de l'horloge PWM, mais avec quelques impulsions très élevées.
Voici une démo de ce dont je parle.
Toutes les bonnes réponses données jusqu'à présent, bien écrites et pertinentes, mais souvent la meilleure réponse nécessite une meilleure question.
Lorsque vous considérez "la meilleure quantité de RC?", Quelles hypothèses doivent être prises en compte pour toute conception;
Quelle est l'impédance du filtre par rapport à l'impédance de la source et de la charge?
Si ce n'est pas critique, choisissez R entre la source et la charge. Mais disons que si le pilote CMOS a une valeur de 10 ~ 100 Ω et que la charge est de 100KΩ, mais que vous voulez une précision de 0,3% sur la perte de courant continu, choisissez R << 0,3% de la charge R, ou comme je l'appelle "méthode du rapport d'impédance" pour des considérations de chargement alors voici R <0,003 * 1e5 = 300Ω. Ce choix de R n'est pas critique, mais vous devez faire attention à ne pas charger le filtre, vous pouvez donc choisir par des rapports d'impédance pour un calcul rapide sur la perte DC et la réjection AC.
En supposant que vous connaissez l'impédance d'un critère de rapport d'impédance de condensateur est une solution simple. Sinon, pour trouver une impédance au milieu de la source et de la charge, considérons une méthode Rf = √ (Rs * Rl), où Rf est la valeur RC du filtre pour la source, Rs et la charge Rl comme une méthode pour la plage moyenne.
La bonne chose à propos du design, c'est en fonction de vos critères, il y a souvent plusieurs "meilleures" réponses pour la valeur RC. :)
Déterminer la meilleure constante de temps RC dans le filtre passe-bas numérique / analogique PWM?
La meilleure réponse dépend de différentes questions;
? Quel est le spectre des données d'origine? BW =? ? Dans quelle mesure le rejet du support PWM est-il acceptable? Atten = 40 dB? 60? dix??
Concevoir un filtre basé uniquement sur une constante de temps néglige la plus grande importance de comprendre la conservation des données. Il est préférable de définir le signal d'origine afin que l'on puisse concevoir un simple "filtre adapté optimal". Nous devons nous soucier de la préservation du signal d'origine et du rejet du signal porteur (PWM f).
Vous pouvez choisir n'importe quel LPF d'ordre N pour faire correspondre le filtre au signal d'origine. Des filtres à condensateur commutés simples ou des filtres actifs donneront les meilleurs résultats. Le type de LPF dépend des critères de correspondance avec le signal d'origine.
Choisir le meilleur = fréquence maximale plate. réponse, ou retard de groupe mf ou jupes les plus raides ou un filtre de Nyquist à 1/2 PWM f.
Ensuite, la meilleure méthode suivante:
définir la quantité de gigue dans la tension des filtres RC imparfaits.
Si l'on concevait un PLL VCXO pour RF et utilisait PWM pour contrôler la boucle, vous pourriez vous soucier des bandes latérales parasites du PWM, vous devez donc envisager un LPF avec une encoche au PWM, ce qui est facile une fois que vous obtenez la réponse;
Quelle quantité de rejet du support PWM est acceptable