Forum: Analoge Elektronik und Schaltungstechnik Signalaufbereitung BEMF


von Christoph S. (bensko)


Lesenswert?

Guten Tag allerseits,

ich möchte die induzierte Gegenspannung eines BLDC Motors nutzen um die 
Rotorposition bestimmen zu können. Nun würde ich gerne diese zuvor 
mittels eines Tiefpassfilters glätten.

Nun zu meiner eigentlichen frage: Wie dimensioniere ich R und C ? Bzw. 
auf welche Grenzfrequenz möchte ich hinaus?

Ich habe kann die Spannung mit einem ADC mit einer 10Bit (1024Stufen) 
Auflösung erfassen. Sprich bei 5V Referenzspannung ergibt das 4,88mV 
oder?

Kann ich nun R und C so dimensionieren, dass ich sage V_Ripple < 4,88mV?
Sprich anhand eines Bsp.
V_cc = 10V
T_PWM = (1/15000Hz)
V_Ripple = 4mV

R*C = 0,042

Für C wähle ich 100nF, somit brauche ich einen 416KOhm Widerstand.

Das würde einer Grenzfrequenz von 3,82Hz entsprechen.

Die müsste doch viel höher liegen? Sprich das Signal ist zu langsam 
oder?

Sprich ich denke die Annahme oben ist falsch. Daher kann mir jmd vlt 
"kurz" erklären anhand welche Werte ich mein Tiefpass dimensioniere?

Ich wäre echt dankbar wenn mir jm helfen könnte. Dankö

: Bearbeitet durch User
von Sascha (Gast)


Lesenswert?

Den TP würde ich nur als AAF dimensionieren und dann danach per FIR 
nochmal in Software glätten.

Dabei kann man dann auch den ADC mit 1Mhz Takt laufen lassen und per 
ADLAR auf 8 Bit Auflösung umstellen, das macht das AAF dann sehr simpel. 
Sind dann 76kS/s und eine Nyqistrate von 38kS/s. Ergo kannst du dein AAF 
auf 30-35kHz dimensionieren.

Wie sieht die induzierte Gegenspannung aus, Sinus + Gleichspannung?

von Christoph S. (bensko)


Lesenswert?

Das mit dem AAF ist ein guter Ansatz. Vielen Dank hierfür!

Als Mikrocontroller verwende ich einen ATmega48 so nebenbei.

Wieso macht es simpler eine 8 Bit Auflösung einzustellen?

Im Datenblatt des ATmega finde ich folgendes:

"Up to 76.9kSPS (Up to 15kSPS at maximum resolution)"

Ist damit gemeint dass der die ADC mit 76,9KHz abtastet? Wenn ja muss 
ich diese Abtastrate nicht noch durch 8 teilen, da 8 Kanale zur Verfügen 
stehen?
Sprich das pro Kanal mit 9,6kHz.

Nach den Abtasttheorem fa < 2 * fmax, wäre somit fmax = 9,6kHz/2

besser wäre es fmax = 9,6kHz/5 = 1,9kHz

Sprich ich würde dann also

Für C würde ich ein 100nF nehmen und R ergibt sich dann zu 830Ohm oder?

In Schaltungen im Netz sehe ich öfters das 4,7kOhm verwendet wird. Kann 
mir jmd sagen weshalb?

Danke nochmals!

Ps: morgen stelle ein Bild von der induzierten Gegenspannung rein.

: Bearbeitet durch User
von Sascha (Gast)


Lesenswert?

Die 76kS/s bekommst du bei 2MHz ADC Takt. Ich wusste gar nicht, dass 
Atmel ne Aussage zu ADC Takten über 500kHz trifft, bisher stand da immer 
nur dass alles über 500kHz die Auflösung reduziert und das wars.

Hier hats mal einer getestet: 
http://www.hilltop-cottage.info/blogs/adam/avr-adc-2-experiments-in-operating-the-adc-at-its-extremes-attiny85/

Das ist natürlich alles weit von dem entfernt wo Atmel noch seine Hand 
für ins Feuer legt, aber den Hobbybastler interessiert das ja normal 
nicht.

Bei den 8 Bit schleifst du die 2 extra Bit nicht immer herum. Das sind 2 
Bit Information + Rauschen die aber ein Byte mit 8 Bit belegen und jede 
Rechenoperation schonmal auf mindestens 24Bit aufweiten.

Besser ist es, das durch ein FIR laufen zu lassen wo dann am Ende eine 8 
oder 16Bit Zahl bei rausspringt, denn für FIR haben die Atmega 
tatsächlich eine eigene Rechenoperation, Multiply and Accumulate.
Sofern der Compiler das auch tatsächlich verwendet, ist das recht 
performant.

Mit der "gleichzeitigen" Messung auf 8 Kanälen wäre ich vorsichtig, 
jedesmal wenn du MUX änderst, braucht die AVR Elektronik erstmal nen 
Moment sonst wird die nächste Wandlung ungenau. Das steht auch irgendwo 
im Datenblatt.
Also musst du da noch 1-2 zusätzliche ADC Takte abziehen.

Letzten Endes ist es vermutlich am besten einen Kanal 2 - 4 Mal zu 
messen, diese Werte in den FIR zu schieben und dann den Kanal zu 
wechseln. Dann fällt die erhöhte Messungenauigkeit beim MUX-Wechsel kaum 
ins Gewicht.

TP:
http://sim.okawa-denshi.jp/en/CRtool.php

100µF und 1,6kOhm für 1 kHz Grenzfrequenz müssten in Ordnung sein. Aus 
dem ersten Link geht hervor dass die Impedanz für den ADC unter 10, 
besser unter 4,7kOhm liegen sollte sonst steigt die Messungenauigkeit 
bei ADC Takten über 1Mhz recht stark. Parallel zum 100µF Elko noch nen 
Keramikkondensator zu schalten schadet auch nicht, schließlich reden wir 
hier über maximal 1µs für die Sample&Hold Schaltung.

Ich gehe stark davon aus dass es völlig reicht den TP auf 0.1dB Dämpfung 
bei Maximaldrehzahl des BLDC auszulegen aber bei 1kHz Grenzfrequenz ist 
das schon bei ca. 200Hz der Fall.
Wenn in deinem Signal noch höherfrequente Anteile sind die du auch gern 
erkennen würdest, sieht es mit nem AVR allein schon düster aus.

von Sascha (Gast)


Lesenswert?

Nachtrag: Ich hatte dich so verstanden dass du auf 8 Kanälen 
gleichzeitig messen willst, aber dem ist ja scheinbar gar nicht so?

Dann brauchst du natürlich nicht durch 8 teilen.

von Christoph S. (bensko)


Lesenswert?

Vielen vielen Dank für die schnelle Antwort.

Danke auch für die Erklärung, hilft mir ungemein weiter.

Ich hatte was anderes gemeint mit den 8 Kanälen. Und zwar habe ich 
gedacht, dass ich durch 8 teilen muss wenn der ATmega 8 ADC Eingänge zur 
Verfügung stellt.

Ich muss mit dem ATmega drei BEMF Signale messen und ein Signal der den 
Sternpunkt bildet. Sprich 4 Signale insgesamt messen.

Danke du hast mir schon weiter helfen können.

von Sascha (Gast)


Lesenswert?

Dann teilt sich deine Abtastrate auf 4 Kanäle auf. Nur weil der AVR 8 
Multiplex-Eingänge für den ADC hat, heisst das ja nicht dass du die auch 
alle nutzen musst.

Bei 4 Kanälen hast du eine Nyquist Frequenz von 9,5kHz. Da scheinen 
Signalfrequenz und Grenzfrequenz jetzt wieder einen komfortbalen Abstand 
zu haben.

Aber wie gesagt: Guck mal ins Datenblatt was bezüglich MUX-Umschaltung 
gesagt wird, Atmel garantiert dir nicht dass die erste AD Wandlung 
danach auch einen sinnvollen Wert liefert. Imho schreiben die sogar, 
dass man die erste Messung komplett ignorieren sollte.
Das senkt die Samplerate dann auch wieder ein.

Oszi Bild wäre jetzt ganz gut, vllt. sogar mit FFT.

von m.n. (Gast)


Lesenswert?

Sascha schrieb:
> Imho schreiben die sogar,
> dass man die erste Messung komplett ignorieren sollte.
> Das senkt die Samplerate dann auch wieder ein.

Ja, ja. Wenn nach der ersten Messung noch eine Millionen Messungen 
folgen, sinkt die Abtastrate genau um 1 ppm.

von Sascha (Gast)


Lesenswert?

m.n. schrieb:
> Sascha schrieb:
>> Imho schreiben die sogar,
>> dass man die erste Messung komplett ignorieren sollte.
>> Das senkt die Samplerate dann auch wieder ein.
>
> Ja, ja. Wenn nach der ersten Messung noch eine Millionen Messungen
> folgen, sinkt die Abtastrate genau um 1 ppm.

Du scheinst die genauen Anforderungen des TE ja gut zu kennen. Dann 
erzähl mal, welche Mindestabtastrate muss für jeden Kanal vorhanden 
sein?

Wie viele Abtastungen können pro Kanal kombiniert werden bevor der 
Multiplexer auf den nächsten schalten muss?

Deine Rechnung ist übrigens falsch, 1/1.000.001 kommt raus. Wenn man 
klugscheissen will, dann sollte man den eigenen Text nochmal ganz genau 
fehlerprüfen sonst wird das peinlich.

von Sascha (Gast)


Lesenswert?

Und was noch viel wichtiger ist: Welche Genauigkeit ist für jede 
Einzelmessung bzw. einen Satz Messungen pro Kanal gefordert?

Muss später nur die Frequenz des Spannungsverlaufs erkennbar sein oder 
muss man auch den absoluten Wert genau kennen?

von m.n. (Gast)


Lesenswert?

Sascha schrieb:
> Deine Rechnung ist übrigens falsch, 1/1.000.001 kommt raus. Wenn man
> klugscheissen will, dann sollte man den eigenen Text nochmal ganz genau
> fehlerprüfen sonst wird das peinlich.

Ich weiß ja nicht, was das für eine Zahl sein soll: 1.000.001? Binär? 
Oktal? Blinkt da noch irgendetwas?
Eine zusätzliche Messung zu 1000000 ist genau 1 ppm mehr.

von Christoph S. (bensko)


Lesenswert?

Sascha schrieb:
> Dann teilt sich deine Abtastrate auf 4 Kanäle auf. Nur weil der AVR 8
> Multiplex-Eingänge für den ADC hat, heisst das ja nicht dass du die auch
> alle nutzen musst.

Danke, das wollte ich wissen !


> Oszi Bild wäre jetzt ganz gut, vllt. sogar mit FFT.

Würde ich gerne machen, nur funktioniert mein Oszi doch nicht. Habe es 
für das Projekt gekauft und da vom Verkäufer "voll funktionsfähig" 
beschrieben wurde, dachte ich das es auch so ist. :/
Evtl kann ich mir einen ausleihen vom Labor

von Christoph S. (bensko)


Lesenswert?

> Und was noch viel wichtiger ist: Welche Genauigkeit ist für jede
> Einzelmessung bzw. einen Satz Messungen pro Kanal gefordert?

Ich vermute mal das die Genauigkeit eine große Rolle hier spielt, da ich 
den genauen Zeitpunkt erfassen sollte um den nächsten 
Kommutierungsschritt einzuleiten. Oder?

> Muss später nur die Frequenz des Spannungsverlaufs erkennbar sein oder
> muss man auch den absoluten Wert genau kennen?

Es geht nur darum zu erkennen wenn der nächste Kommutierungsschritt 
erfolgen soll. Das klappt bisher auch ganz "ok" aber ich habe die 
Abtastrate, sowie die Dimensionierung nicht richtig eingestellt. Ich 
habe bisher ein Kondensator mit 100nF und ein Widerstand von 4,7KOhm 
benutzt.

Meine MOSFETs werden bisher noch zu heiß. Evtl erfolgt die Kommutierung 
nicht wie sein sollte.

Sorry das ich mich erst heute wieder melde. Ging leider nur nicht 
anders.

Gruß

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.