mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik BLDC BEMF messen


Autor: Chris (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Schweigstill (Firma: Schweigstill IT) (schweigstill) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: kaffeedoktor (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: kaffeedoktor (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.