Forum: Mikrocontroller und Digitale Elektronik Vektorregelung / FOC mit Hobby uC


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Robert M. (molle_ghc)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mich etwas in das Thema Vektorregelung eingelesen und man 
findet ja viele Informationen zu den theoretischen Grundlagen der 
Vektorregelung. Ich bin am überlegen, ob ich so etwas mal als Bastel 
Projekt für einen BLDC Motor umsetzen. Wenn jetzt die Frage kommt, für 
welchen Einsatzzweck und warum nicht U/f? Es ist einfach Interesse an 
dieser Regelung.

Bezüglich praktischer Umsetzung habe ich jetzt nicht so viel gefunden. 
In den Application Notes werden häufig Anwendungen mit darauf 
spezialisierten Controllern oder speziellen SDK, z. B. STM. Was ich noch 
gefunden habe ist, dass die FOC viel Rechenpower erfordert, wenn sie in 
Software umgesetzt hat und es deswegen dedizierte Controller gibt.
Ich habe jetzt aber kaum Informationen oder DIY Seiten gefunden, wo eine 
Vektorregelung mit einem Standard Controller, als der für Hobbyzwecke 
geeignet ist, umgesetzt wurde und beschrieben wird.

Deswegen die Frage, hat jemand von euch schon mal eine Vektorregelung 
für einen BLDC mit einem Standard Controller, z. B. STM32F103C8 oder AVR 
umgesetzt? Idealerweise sensorlos.

Falls das keinen Sinn macht, woran hapert es? ADC Speed? PWM Speed? 
Rechenpower?

Grüße,
Robert

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Bewertung
0 lesenswert
nicht lesenswert
Robert M. schrieb:
> Deswegen die Frage, hat jemand von euch schon mal eine Vektorregelung
> für einen BLDC mit einem Standard Controller, z. B. STM32F103C8 oder AVR
> umgesetzt?

Aber sicher. Mega88, XMega192 und STM32F100. Allerdings haben unsere 
Motoren Sensoren.
Das Prinzip wird in Application Note AVR447 von Microchip/Atmel 
beschrieben. Es wird also nicht trigonometrisch gerechnet, sondern mit 
Tabelle gearbeitet.   Ein paar dieser Chips haben recht brauchbare 
Hardware Unterstützung wie die AWEX des XMega oder die Advanced Timer 
bei STM32. Nur der kleine Mega88 muss halt alle Timer opfern.

von Motorroller (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich hab das mit nem S12X mal gemacht. 16Bit Rechner, 48MHz.

Also STM32 schafft das locker.

Du schreibst doch selbst, dass Du das SDK für STM32 gefunden hast, 
deshalb versteht ich die Frage noch nicht ganz. Das wäre doch genau das 
passende für Dich.

von Al3ko -. (al3ko)


Bewertung
0 lesenswert
nicht lesenswert
Robert M. schrieb:
> Deswegen die Frage, hat jemand von euch schon mal eine Vektorregelung
> für einen BLDC mit einem Standard Controller, z. B. STM32F103C8 oder AVR
> umgesetzt? Idealerweise sensorlos

Mit dem STM32F103C8 sehe ich keine Probleme, eine FOC zu implementieren.

Rechnerei:
Clarke - Park Transformation,
2x PI Regler,
Inverse Clarke - Park Transformation

Die PWM kannst du sogar mit dem internen PWM Modul des STM32F103C8 
generieren.

Gruß,

: Bearbeitet durch User
von Robert M. (molle_ghc)


Bewertung
0 lesenswert
nicht lesenswert
Danke schon mal für die Antworten und Hinweise.

Matthias: Kann es aber sein, dass in der AVR447 die Blockkommutierung 
und nicht die Vektorregelung beschrieben wird?

Motorroller :
>Du schreibst doch selbst, dass Du das SDK für STM32 gefunden hast,
>deshalb versteht ich die Frage noch nicht ganz. Das wäre doch genau das
>passende für Dich.

Wundert mich halt, warum es dafür extra eines SDK benötigt....

Ansonsten würde ich mir mal so einen STM32f103c8t6 bestellen und mal 
Ausschau halten nach nem Motor und überlegen, ob ich die LE selber löte 
oder nen fertigen Treiber finde.

Grüße,
Robert

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Bewertung
0 lesenswert
nicht lesenswert
Robert M. schrieb:
> Kann es aber sein, dass in der AVR447 die Blockkommutierung
> und nicht die Vektorregelung beschrieben wird?
Nö.
Der Titel der Application Note lautet:"AVR447: Sinusoidal driving of 
three-phase permanent magnet motor using ATmega48/88/168"

von John P. (brushlesspower)


Bewertung
0 lesenswert
nicht lesenswert
Robert M. schrieb:
> Wundert mich halt, warum es dafür extra eines SDK benötigt....

ST's Motor SDK beinhaltet 2 Dinge

- Bibliotheken für den ganzen Motor Control Code (Park/Clark/config 
usw.)
- und eine grafische oberfläche um deine ganzen Motor/Hardware parameter 
einzugeben. Auf dieser grundlage wird dann der Code entsprechend 
angepasst.

Du kannst aber auch nur die Lib nehmen ohne die SDK. Ist aber 
umständlich weil da keiner durchsieht.

von MiMa (Gast)


Bewertung
0 lesenswert
nicht lesenswert
In Instaspin von TI wurde genau das umgesetzt. Ist zwar kein 
Bastelprojekt aber dafür gut dokumentiert.

von vcbnvc (Gast)


Bewertung
0 lesenswert
nicht lesenswert
ein weiteres Projekt:
https://github.com/vedderb/bldc/

von Nils P. (ert)


Bewertung
1 lesenswert
nicht lesenswert
Robert M. schrieb:

> ... dass die FOC viel Rechenpower erfordert,...


Die FOC braucht nicht viel Leistung... Das Problem ist eine schnelle 
drei Phasen-PWM mit einer guten Auflösung.

Bei meinem 160MHz F4 Stm32 hatte ich ~12Bit PWM bei 18kHz (wenn ich mich 
richtig erinnere :-) )

Der STM hat gute Features für PMSM. Die (PWM-) mittenzentrierte 
Strommessung direkt via DMA ist geilo, denke aber das kann jeder 
aktuelle Cortex F4 mit ein bisl Wumms.

Greez Ert

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]
  • [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.