Forum: Analoge Elektronik und Schaltungstechnik BLDC BEMF messen


von Chris (Gast)


Angehängte Dateien:

Lesenswert?

Guten Morgen.
Ich habe ein Verständnisproblem bezüglich der BEMF-Messung eines 
Brushless Antriebes. Folgendes:

Vor ca. drei Wochen hat mich das Thema Brushless Motoren gepackt, 
zunächst mehr der Langeweile wegen, weil der Spaß aber nicht ganz so 
locker von der Hand ging wie ich mir das vorstellte, habe ich mich daran 
etwas festgebissen.

Das Objekt der Begierde ist eine alte Festplatte, die ich recht "unrund" 
zum rotieren gezwungen habe.
Für die FET's der Halbbrücke benutze ich zur Zeit IRF3717 und gesteuert 
wird der Antrieb durch einen ATMega16.
Bisher bin ich noch nicht über die das Stadium der starren 
Blockkommutierung hinaus gekommen, weil ich ein paar unbeantwortete 
Fragen habe, die leider auch durch Recherche in diversen Foren nicht 
beantwortet sind.
Meine erste Anlaufstelle waren mehrere Multikopterforen, jedoch gibt man 
da nur sehr ungern Wissen bezüglich Details der Steuerung raus, was bei 
kommerziellen Ambitionen der Forenbetreiber auch nachvollziehbar ist.
Soweit dazu...
Das Prinzip der Erfassung der BEMF ist soweit klar.

- Beim Schalten eines Kommutierungsschrittes, Spannung der unbestromten 
Wicklung messen, mit der Wicklungsmittelspannung vergleichen und Timer 
starten.
- Wenn die Spannung der unbestromten Wicklung = Wicklungsmittelspannung,
Timer stopen, und nach der gleichen Zeit umschalten zum nächsten 
Kommutierungsschritt.
- Dann das gleiche wieder von vorne.

Ich möchte mich jetzt mal auf die als GIF-Dateien angehängten 
Schaltungen berufen.
In beiden Schaltungen ist die Wicklungsmittelspannung auf den 
AnalogComparatorPin AIN0 gelegt.
Warum macht man das? Das hat doch totsicher einen bestimmten Grund.
Ich hatte mir eine ähnliche Schaltung ausgedacht, hätte aber die 
Wicklungsmittelspannung auf AREF geklemmt. Da ich aber bei meiner 
Recherche auf diese Schaltungen gestoßen bin und das jetzt mal als 
Referenz bezeichen möchte, dachte ich mir, es sei besser vorher mal 
nachzufragen warum die das so machen.

Danke schonmal im Voraus für Hilfe. Ich hoffe, dieser Beitrag ist nicht 
zu dämlich, aber ich habe trotz intensiver Recherche noch keine Antwort 
gefunden und weiß dieses Forum und seine Nutzer durch ihre 
fachkundigkeit zu schätzen.

mfg
Chris

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Chris schrieb:
> In beiden Schaltungen ist die Wicklungsmittelspannung auf den
> AnalogComparatorPin AIN0 gelegt.
> Warum macht man das? Das hat doch totsicher einen bestimmten Grund.
> Ich hatte mir eine ähnliche Schaltung ausgedacht, hätte aber die
> Wicklungsmittelspannung auf AREF geklemmt.

Hierfür gibt es mehrere Gründe:

1. Im Allgemeinen können A/D-Wandler nur Spannungen messen, die maximal 
der Referenzspannung (minus 1 Inkrement) entsprechen. Die abgegriffenen 
Spannungen der Phasen können jedoch höher liegen. Dies bekäme man aber 
mit jeweils einem Spannungsteiler in den Griff.

2. A/D-Wandler, insbesondere die in Microcontrollern üblicherweise 
eingesetzten SAR-Typen, funktionieren nur dann einwandfrei, wenn die 
Referenzspannung konstant bzw. zeitlich sehr langsam veränderlich ist. 
Dies ist im Falle des Mittensignals nicht der Fall. Man darf es hier 
aber auch nicht allzu stark glätten.

3. Bei den meisten A/D-Wandler darf sich die Referenzspannung nur in 
einem recht eingeschränkten Bereich bewegen. Dies wäre aber bei solch 
einem Motorregler auch nicht immer gegeben.

von kaffeedoktor (Gast)


Lesenswert?

Hallo Chris,

die Nulldurchgangserkennung funktioniert mit Hilfe des Analog Comparator 
des ATmega. Auf AIN0 liegt fest die Mittelspannung, während über den 
ADMUX der zu vergleichende Wert entsprechend der gerade unbestromten 
Spule an den AC gelegt wird.

Die Erkennung verwendet bei diesen Schaltungen also nicht den 
AD-Wandler, wie auch in manchen AppNotes von Atmel beschrieben, sondern 
den AC. Wobei ich glaube, dass es auch AppNotes von Atmel gibt, die auch 
den AC verwenden.

Allerdings musst Du bei den Schaltungen die Phasenverschiebung durch den 
Tiefpass in der Schaltung zur Nulldurchgangserkennung berücksichtigen, 
also nicht wie Du schriebst "nach der gleichen Zeit umschalten".

Grüße,

kaffeedoktor.

von Chris (Gast)


Lesenswert?

Danke für die Antworten, das erklärt mir einiges.
Aber wie kann man denn den Analogcomparator über den Admux führen?
Dazu steht ja rein gar nichts im Datenblatt...

von kaffeedoktor (Gast)


Lesenswert?

Hallo Chris,

wenn Du Dir mal das Blockschaltbild des AC im Datenblatt der ATmegas 
anschaust siehst Du, dass statt AIN1 auch ADC Multiplexer Output als 
negativer Eingang des AC möglich ist. Dort findest Du auch wie der 
ATmega konfiguriert sein muss.

Grüße,

kaffeedoktor.

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.