Forum: Mikrocontroller und Digitale Elektronik BLDC Ansteuerung


von grundschüler (Gast)


Angehängte Dateien:

Lesenswert?

zwecks eigener Ansteurung meines BLDC-Kompressors versuche ich, die 
werksmäßige Ansteurung auszumessen. Mit meinem Oszi komm ich da schnell 
an Grenzen. Sieht in etwa so aus wie auf dem Bild und zwar bei allen 
sechs Treiber-Eingängen in etwa gleich. Scheint jewils 2/3 überwiegend 
low zu 1/3 überwiegend high zu sein. Hätte ich eher umgekehrt erwartet, 
da der Treiber aktiv low ist? Kann man daraus schon die richtige 
Ansteuerung des Treiberbausteins ableiten?

Um genaue Zeiten zu bekommen, würde ich das ganze gerne mit einem LA 
ausmessen. Problem ist, die Schaltung ist nicht galvanisch getrennt. An 
der USB-Masse des LA liegt Spannung an (230VAC oder eher 305VDC). Meinen 
Laptop betreibe ich mit Schaltnetteil. Müsste galvanisch getrennt sein. 
Frage ist, besteht Gefahr für den Laptop, wenn ich ihn mit dem LA 
verbinde?


Danke für jede Unterstützung.

von Stefan F. (Gast)


Lesenswert?

Dann brauchst du galvanisch getrennt Tastköpfe. Kann man kaufen, wenn 
man viel Geld hat.

Als Lösung für Arme reichen vielleicht NF Übertrager.

von Martin S. (led_martin)


Lesenswert?

grundschüler schrieb:
> besteht Gefahr für den Laptop, wenn ich ihn mit dem LA
> verbinde?

Ja, und nicht nur für den Laptop, sondern auch für den Bediener - also 
für Dich. Alternativ zum Vorschlag von Stefan Us (stefanus) wäre auch 
ein, entsprechend guter, USB-Isolator eine Möglichkeit, ist aber auch 
nicht zu 100% sicher.

Mein Vorschlag: Besorg Dir einen Modellbau BL-Motor, und einen passenden 
Steller (ESC) dazu, zur Ansteuerung noch einen Servotester. Das kann man 
dann am Labornetzteil, oder einem Akku, in Betrieb nehmen. Da kann man 
sich, bei ungefährlichen 10 .. 15V in die Technik der BLDC-Ansteuerung 
einarbeiten, und nach Herzenslust messen. Wenn Du das dann verstanden 
hast, kannst Du dich an Größeres heranwagen.

Mit freundlichen Grüßen - Martin

von grundschüler (Gast)


Angehängte Dateien:

Lesenswert?

Versuch macht kluch, sowohl TO wie auch Laptop haben überlebt.
Signale in der Reihenfolge VL-wl-vh-wh-ul. uh fehlt.

Signal sieht völlig anders aus, als ich dies erwartet hatte. Scheint ein 
sich kontinuierlich veränderndes - vermutlich Sinus-Signal - zu sein. 
Hat jemand einen Vorschlag, wie ich an die tabelle komme, ohne das ganze 
ausmessen zu müssen?

von Martin S. (led_martin)


Lesenswert?

Vermutlich hast Du da keinen BLDC, mit Permanentmagneterregung, sondern 
einen Frequenzumrichter, der einen Drehstrom-Asynchronmotor betreibt. Da 
wird ein 3-phasiger Sinus erzeugt (Drehstrom). Frequenz und Spannung 
werden passend zueinender geführt, meist gibt es keiner Rückführung vom 
Motor. Einen Sinus musst Du nicht herausmessen, solch eine Tabelle 
erzeugt man sich selber, Excel oder Open Office Calc sind da sehr 
hilfreich.

Vorsicht bei der Messerei, Neugierde ist gut, sollte aber die 
Wahrnehmung von Gefahren nicht völlig ausschalten. Bei einem Laptop sind 
die Innereien nicht ausreichend isoliert, sind an eineigen Stellen 
(Anschlussbuchsen) sogar direkt berührbar, dort hast Du, während der 
Tests, Netzspannung!

Mit freundlichen Grüßen  - Martin

von grundschüler (Gast)


Lesenswert?

Martin S. schrieb:
> Vermutlich hast Du da keinen BLDC, mit Permanentmagneterregung,

Der Kompressor ist ein  GMCC DA110S1C-30FZ /Motorart DC-Inverter. Er 
wird über einen STK621-Chip angesteuert. Im manual heißt es zu 
Application:
3-pase inverter Motor/ induction motor/ bldc motor

Martin S. schrieb:
> Da wird ein 3-phasiger Sinus erzeugt (Drehstrom).
Guter Tip. Wenn die Ansteuerung einem FU entsprechen würde, könnte ich 
den code von Matthias Schoeldgens FU übernehmen, das würde das weitere 
sehr vereinfachen.
Es sind offenbar 72cyclen, high und low jeweils invertiert.

Martin S. schrieb:
> dort hast Du, während der Tests, Netzspannung!
Ich hab mal zwei Wochen Elektriker gelernt. Kenn mich mit Netzspannung 
einigermaßen aus.

Danke für deinen Beitrag, insbesondere für den Hinweis auf die 
FU-Ansteuerung!

von Martin S. (led_martin)


Lesenswert?

grundschüler schrieb:
> Ich hab mal zwei Wochen Elektriker gelernt. Kenn mich mit Netzspannung
> einigermaßen aus.

Das war, bis jetzt, nicht bekannt, da werde ich mir weitere 'Vorsicht 
Netzspannung' Kommentare sparen.

Der Begriff 'induction motor' im Manual deutet auch auf einen 
Asynchronmotor hin.

Dann noch viel Erfolg.


Mit freundlichem Gruß - Martin

von Bild (Gast)


Lesenswert?

Wieso sind die Vorschaubilder nicht verfügbar, Fehler 404? Wurden die 
gelöscht?

von MiWi (Gast)


Lesenswert?

Bild schrieb:
> Wieso sind die Vorschaubilder nicht verfügbar, Fehler 404? Wurden die
> gelöscht?

Forum ist noch bissi kaputt weil letztens Festplatte(n) ausgefallen 
sind. Wird vielleicht wieder, vielleicht auch nicht...

Bilder anklicken geht (bei mir), Vorschau anklicken geht nicht.

MiWi

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


Lesenswert?

grundschüler schrieb:
> Wenn die Ansteuerung einem FU entsprechen würde

Wenn der Motor keine Sensoren hat, wirds wohl ein FU sein. Sensorless 
BLDC a là Modellbau in einem Kompressor passt einfach nicht.

: Bearbeitet durch User
von grundschüler (Gast)


Lesenswert?

Ich bin verwirrt. Gegen Drehstrom spricht, dass der STK621 explizit für 
BLDC-Motoren ist. Wenn er drehstromgeeignet wäre, wäre er für rund 10€ 
der ideale Treiberbaustein für FUs und Inverter.

Der Bootstrap-Teil ist auf der Platine vorgesehen aber nicht ausgeführt.

Für Drehstrom spricht, dass die LA-Werte nicht zu einer DC-Ansteuerung 
passen. Allerdings schwankt der Dutycycle im Bereich 30-70%. Bei 
Drehstrom müsste er ja eigentlich auch mal auf Null gehen.

Habe die LA-Werte für einen Cyclus jetzt mal ausgemessen und werde sie 
in Excel eingeben um mir eine Grafik anzeigen zu lassen.

ich überlege, ob ich den Kompressor testweise mal an einen FU 
anschließen kann.

von grundschüler (Gast)


Angehängte Dateien:

Lesenswert?

grafische Darstellung des dutycycle.

von Martin S. (led_martin)


Lesenswert?

Die Aussage von Matthias Sch. (Firma: Matzetronics) (mschoeldgen) würde 
ich unterstützen, sensorloser Anlauf wie bei Modellbau BLDC funktioniert 
nur an Lasten, die bei kleinen Drehzahlen kaum Drehmoment brauchen z.B. 
Propeller, Lüfter, ... Ein Kompresser ist da schwierig. Wobei es heute 
durchaus Tricks gibt, für den sensorlosen Anlauf gegen Last. Für 
Asynchronmotor spricht ebenfalls, daß der Hersteller diesen Kompressor 
auch mit Kondensatormotor verkauft, da könnte er dann für beide 
Varianten den gleichen Motor verwenden, vielleicht mit unterschiedlicher 
Windungszahl. Ein BL-Motor wäre da komplatt anders, und damit 
aufwendiger.

Interessant ist, daß Deine letzte Messung einen annähernd trapezförmigen 
Verlauf zeigt, ein Sinus ist das nicht. Das muss nicht zwangsläufig viel 
bedeuten, kann auch einfach eine Optimierung sein, ist für einen FU aber 
ungewöhnlich.

Daß nicht zu 100% ausgesteuert wird, kann sein, schließlich will man mit 
der Elektronik ja die Spannung wariieren können.

Mit freundlichen Grüßen - Martin

von grundschüler (Gast)


Lesenswert?

Erstmal Danke für die bisherige Unterstützung von Martin und Matthias. 
Also Drehstrommotor- vielleich auch wie Drehstrom, nur mit Gleichstrom 
betrieben.

Ich habe mein Programm jetzt soweit, dass ich meine timer anhand einer 
Tabelle modelliert bekomme.

Frage zur deadtime: Diese muss verhindern, dass lowside und higside 
eines Mosfet-Paares gleichzeitig geöffnet werden, was zu einem 
Kurzschluss führen würde. Bei der per la ausgemessenen Ansteuerung 
scheint das aber keine Rolle zu spielen. l und h sind immer zu mindest 
mit 30% offen. Der Flankenwechsel erfolgt immer zeitgleich.

Ich interpretiere das so, dass die deadtime im stk621 intern 
berücksichtigt wird und dass man sie bei der Ansteuerung nicht 
berücksichtigen muss???

von Karl (Gast)


Lesenswert?

Was bezweckst Du mit der eigenen Ansteuerung? (Ganz ernst gemeint, evtl. 
führt da ein leichterer Weg hin)

Ohne Kenntnis des Motors und dessen Art ist die Ansteuerung ziemlich 
müßig. An erster Stelle stünde mal herauszufinden, was Du vor Dir hast. 
Kannst Du den Motor drehen und die induzierte Spannung messen?

Die reine Steuerung (wie von Dir anscheinend geplant) kann auch ganz 
schnell nach hinten losgehen. Nicht ohne Grund wird da im echten Leben 
geregelt. Heutzutage öfter mal mit Hilfe einer feldorientierten 
Regelung. (Das solltest Du mal googeln ;-))

Wenn wirklich 300 VDC im Spiel sind, tu dir einen Gefallen und trage 
eine Schutzbrille. Teile von Leistungshalbleitern fliegen ziemlich weit, 
wenn das Silizium verdampft.

von grundschüler (Gast)


Lesenswert?

ich vermute, dass Motor und Ansteuerung diesem entspricht:
http://www.toshiba-klima.net/images/content/file/Techniklexikon/INVERTER_allgemeine_Infos.pdf

Der Inverter auf S. 19 könnte zumindest den gleichen stk621 zu haben.

Aufmachen und drehen geht nicht, da hermetisch geschlossen und nicht 
zerstörungsfrei zu öffnen.

Was will ich erreichen? Bau einer Wärmepumpe mit möglichst effektivem 
Kompressor. Es gibt copeland-Drehstrom-scrolls  für 700€ neu. Die sind 
sicher nicht schlecht, ein BLDC müsste aufgrund des höheren 
Motorwirkungsgrads aber noch besser sein.

von MaWin (Gast)


Lesenswert?

grundschüler schrieb:
> Ich bin verwirrt. Gegen Drehstrom spricht, dass der STK621 explizit für
> BLDC-Motoren ist.

Hat man dir in der Grundschule noch nicht das Lesen beigebracht ?
Da steht kein Wort über brushless bzw. BLDC, sondern nur Drehstrom:

http://www.onsemi.com/pub_link/Collateral/ENA1032A-D.PDF

> Wenn er drehstromgeeignet wäre, wäre er für rund 10€
> der ideale Treiberbaustein für FUs und Inverter.

Daher haben sie ihn wohl auch dort eingebaut. Teuer ist er.

von grundschüler (Gast)


Lesenswert?

MaWin schrieb:
> Hat man dir in der Grundschule noch nicht das Lesen beigebracht ?

Lesen gehört dort schon zur Grundausbildung. In
http://pdf1.alldatasheet.com/datasheet-pdf/view/115549/SANYO/STK621-015.html
heißt es:

"2.Application
  3-Phase Inverter Motor. Induction Motor. Brushless-DC Motor"

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


Lesenswert?

Im Datenblatt von OnSeni steht ganz klar '3-Phase Motor Drive Inverter 
Hybrid IC'. Damit treibt man Drehstrom Motoren an - das Dings ist eine 
komplette FU Endstufe. Drehstrom oder Block Kommutierung ist dem Teil 
völlig wurscht, das bestimmt der ansteuernde Teil.

grundschüler schrieb:
> ein BLDC müsste aufgrund des höheren
> Motorwirkungsgrads aber noch besser sein

Als ein Drehstrom Motor? Warum das?

von MaWin (Gast)


Lesenswert?

grundschüler schrieb:
> "2.Application
>   3-Phase Inverter Motor. Induction Motor. Brushless-DC Motor"

Aber grundschüler, das war ein
tantative = vorläufiges
Datenblatt von Sharp und es redet von
blushless
also Motoren ohne rosa.

von grundschüler (Gast)


Lesenswert?

Matthias S. schrieb:
> Als ein Drehstrom Motor? Warum das?

Ich firmiere hier als grundschüler, damit ich dumme Fragen stellen darf. 
Ich ging bislang davon aus, dass permanent-Magnet das non-plus-ultra in 
Sachen Wirkungsgrad ist. Nicht?


Aus dem Toshiba-Prospekt:
Der Umformer wandelt den Wechselstrom in Gleichstrom um
• Der Gleichstrom (GS)-Inverter wandelt den GS in ein künstlich
en 3 Phasen- Strom
um und führt die richtige Frequenz und Amplitude dem GS-Verd
ichter zu, dieser
passt die Drehzahl der benötigten Leistung an
• Der künstliche 3-Phasen Strom ist die Summe der Gleichströ
me, deren Bandbreite
oder Bandhöhe moduliert wird
230V 50Hz
WS
GS
INVERTER
Pseudo
3-Phase WS
Bürstenloser
Gleichstrom-
Verdichter
I

Dort ist sogar der Magnet-Rotor dargestellt. Passt eigentlich alles. 
Auch die Diagramme über die Ansteuerung. Toshiba scheint auch mit GMCC 
zusammenzuhängen. Der Kompressor sieht exact aus wie meiner. Aber ich 
bin insoweit wirklich nur Grundschüler.



MaWin schrieb:
> Aber grundschüler, das war ein
> tantative = vorläufiges
> Datenblatt von Sharp und es redet von
> blushless
> also Motoren ohne rosa.


>Hat man dir in der Grundschule noch nicht das Lesen beigebracht ?
>Da steht kein Wort über brushless bzw. BLDC, sondern nur Drehstrom:

Da steht   "3-Phase Inverter Motor"
Drehstrom? Gleichstrom? Les ich da nicht. 3Phasen kann wohl beides sein.

> tantative = vorläufiges
Die haben also zuerst für BLDC entwickelt und das dann am Ende 
umgestellt, so dass BLDC nicht mehr abgedeckt wird?


Ich werde das ausprobiere, d.h. einen Drehstrommotor an den Inverter 
anschließen und schauen ob das funktioniert

von Karl (Gast)


Lesenswert?

grundschüler schrieb:
> Ich werde das ausprobiere, d.h. einen Drehstrommotor an den Inverter
> anschließen und schauen ob das funktioniert

Viel Spaß bei der Suche nach dem Wirkungsgrad.
Drehen wird sich das vielleict sogar, weil im Prinzip alle Motoren dem 
Drehfeld folgen wollen (sogar der DC-Motor ;-D).

Wenn du basteln möchtest, ok. Das mag ich auh manchmal. Aber erwarte von 
dir keine Wunder. Ausgemessene Ansteuermuster sorgen im besten Fall 
dafür, dass die Kiste irgendwie dreht und nicht gleich durchbrennt oder 
abschaltet.

von Benjamin T. (cyberben)


Lesenswert?

Ich bin mittlerweile selber seit einem gutem Jahr an einer eigenen BLDC 
Steuerung zu arbeiten, nur bin ich jetzt bei der Software auf ein 
kleineres Hindernis gestoßen.
Da ich zum Anfahren einen Momentregler benütze, will ich ja im Endeffekt 
den Strom, der in den Motor hinein geht regeln. Nur habe ich das 
Problem, dass mein digitaler PI-Regler zu schnell integrieren will.
Weiß jemand von euch, wie ich die Regler-Koeffizienten für meinen Motor
allgemein bestimmen kann?

Vielen Dank im Voraus

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Suchst Du so was?
https://de.wikipedia.org/wiki/Faustformelverfahren_%28Automatisierungstechnik%29#Empirische_Dimensionierung

Dafür wäre ein eigener Thread geeigneter gewesen, da Du Dich auch auf 
Nichts aus diesem Thread beziehst.
Selbst wenn, wäre eine Verlinkung auf die entsprechende Stelle sinniger, 
als einem betagtem Thread die gegönnte Ruhe streitig zu machen.

MfG

von grundschüler (Gast)


Lesenswert?

habe mir zwischenzeitlich einen 100€-Inverter zugelegt:
https://www.ebay.de/itm/VFD-2-2KW-220V-3HP-Frequenzumrichter-Variable-Frequency-Drive-Inverter/263121934289?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

Das Teil dürfte im Wesentlichen dem Ausbau des hier im Forum 
vorgestellten MS-FU entsprechen.

Habe diesen Inverter mal probeweise an den bldc-Kompressor 
angeschlossen. Er läuft nicht an. Also kein Sinus

Meine Idee ist jetzt, an die 6 im Inverter verbauten Optokoppler eine 
mittels avr erzeugte PWM anzulegen und den oben dargestellten 
Frequenzverlauf nachzubilden.

Dieser ist:
1. 23 Takte 33% dutycycle
2. 12 Takte linear rauf auf 66%
3. 23 Takte 66% dutycycle
4. 12 Takte linear runter auf 33%

Was ich mir nicht erklären kann, ist der Sinn des Sockels von 33%. Warum 
ist der dutycycle in diese Bereich nicht 0% wie ich es für einen bldc 
erwarten würde?

von MaWin (Gast)


Lesenswert?

grundschüler schrieb:
> Er läuft nicht an.

Sag mal, hast du trotz der Beiträge im Forum immer noch nicht den 
Unterschied zwischen BLDC, PESM, und Drehstrommotor, für den dein 
Frequenzumrichter ist, begriffen ?

grundschüler schrieb:
> den oben dargestellten Frequenzverlauf nachzubilden

Hast du immer noch nicht verstanden, dass ein BLDC NICHT dem von aussen 
aufgezwungenen Frequenzverlauf folgen wird, sonst würde er am FU für 
Drehstrommotoren laufen, sondern ER durch seine Drehposition bestimmt 
wann der Controller die Phasen umschalten muss (daher im einfachen Fall 
Hallsensoren) ?

http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.10.1

von grundschüler (Gast)


Lesenswert?

MaWin schrieb:
> sondern ER durch seine Drehposition bestimmt
> wann der Controller die Phasen umschalten muss

Danke für den Beitrag. Das Teil hat nur drei Anschlüsse und ist damit 
sensorlos.

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


Lesenswert?

Das bedeutet trotzdem nicht, das er zwangsgeführt läuft wie eine 
Asynchron/Synchronmaschine. Die Kommutierung wird da über die Gegen-EMK 
gesteuert, bei der der MC aus den Spulenspannungen herausfindet, wie die 
Position des Rotors ist (mal etwas vereinfacht).
Siehe z.B. Application Note AVR444.

von grundschüler (Gast)


Lesenswert?

Matthias S. schrieb:
> Application Note AVR444

Danke für den Hinweis. Ich brauche also einen blmc. Es gibt dazu ein 
Projekt von Ulrich Radig. Lieber wär mir was fertiges. Gefunden habe ich 
ml4425cs.
Noch lieber wär mir ein fertig aufgebautes Gerät. Wäre für Empfehlungen 
dankbar.

von Viktor B. (coldlogic)


Lesenswert?

Hey grundschüler,
Wenn in dem Kompressor wirklich ein BLDC stecken sollte, müsstest du 
einen ganz normalen Regler aus dem Modellbau nutzen können - die gibt es 
in Hülle und Fülle bei z.B. EBay. Dazu noch einen Servoregler - und du 
bist good to go.

von Norbert S. (norberts)


Lesenswert?

Moin,

Vergiss bitte den ML4425. Das Ding ist seit Ewigkeiten ausgelaufen und 
war einfach nur ein Krampf.
Mit Deinen Kenntnissen bekommst Du den auch nicht zum Laufen.

Gruß,
Norbert

von Johann Klammer (Gast)


Lesenswert?

Vorsicht. Laptops sind IdR nicht galvanisch getrennt.

von grundschüler (Gast)


Lesenswert?

Norbert S. schrieb:
> Vergiss bitte den ML4425. Das Ding ist seit Ewigkeiten ausgelaufen und
> war einfach nur ein Krampf.

Gibts Alternativen? Irgendwie muss es doch möglich sein, einen bldc zum 
Laufen zu bekommen.


> Mit Deinen Kenntnissen bekommst Du den auch nicht zum Laufen.

Der thread ist ja schon ein bischen älter. Ich bin in Bezug auf fehlende 
Kenntnisse lernfähig. Wenn ich es richtig verstanden habe, ist das erste 
Problem der Anlauf.

Ich muss zunächst nacheinander an die drei Phasen eine kleine Spannung 
anlegen und dann - über adc - den Stromfluss/Spannung messen. Daraus 
kann man dann die Stellung des Rotors berechnen und durch gezieltes 
Anlegen von Strom eine Bewegung des Rotors erreichen.

Um das ganze auszuprobieren, brauche ich zunächst einen anderen - nicht 
hermetisch geschlossenen - Motor, den man bewegen kann  und eine 
Stromquelle, mittels der ich die drei Phasen beliebig varrieren kann.

Besser wäre natürlich ein fertiges Projekt zum Nachbauen. Aber das 
scheint es nicht zu geben.

von Christian B. (luckyfu)


Lesenswert?

insbesondere bei kleineren Kompressoren bzw. auch regelbaren mit höheren 
Leistungen sind durchaus BLDC im Einsatz. In unseren Geräten geht das 
bis 4kW Kühlleistung. Das Anlaufproblem ergibt sich nur, wenn der 
Kompressor gegen bestehenden Druck anfahren soll. Das muss vermieden 
werden. (Ist aber nicht so schwierig, eine einfache Wiederanlaufsperre, 
welche dafür sorgt, daß der Kompressor nach abschalten einige Minuten 
nicht neu gestartet werden kann genügt hier). Problematischer ist der 
Fall, daß der Kompressor die Wärme nicht aus dem Wärmetauscher bekommt, 
denn dann steigt die Leistung, welche der Motor aufnimmt sehr stark an. 
Dieser Überlastfall muss unbedingt erkannt werden und der Kompressor 
abgeschalten.

Üblicherweise gibt es aber entsprechende Steuerboards für derartige 
Kompressoren, welche nur einen Spannungseingang für die Soll Drehzahl 
und einen Enable Eingang haben. Die kann man dann mit einer einfachen 
Analogspannung steuern.
z.B. kannst du bei Aspen mal schauen. die werden bei uns verbaut.

von grundschüler (Gast)


Lesenswert?

Christian B. schrieb:
> bei Aspen mal schauen

Danke, das ginge schon in die richtige Richtung. Allerdings hat Aspen 
anscheinend nur relativ kleine Kühlschrankkompressoren. Meiner hat ca 
1kW Aufnahme. Da habe ich bei Aspen Compressor nichts gefunden.


Es gibt diesen 10Jahre alten thread:

Beitrag "BLDC, Synchronmaschine, Drehfeld Experimentierschaltung":

> Autor: Benedikt K. (benedikt) (Moderator)
> Datum: 16.08.2007 13:22
> Ich bin dabei !
> Sowas suche ich schon lange.

Endet aber leider trotz hochkarätiger Besetzung im MC-Nirwana.

Habe jetzt einen kleinen 310V-DC-30Watt-3Phasen-Lüftermotor. werde mal 
versuchen, phasenweise eine Kleinspannung anzulegen und dann die 
Phasenspannung mit ADC zu messen.

von grundschüler (Gast)


Lesenswert?

Habe jetzt an1946/stm gefunden. dort wird die bldc-Ansteuerung mit bemf 
ganz gut erklärt. Der Motoranlauf geht ja ohne bemf, weil bei Stillstand 
die Rotorstellung ohne Sensorenn nicht gemessen werden kann.

erster Schritt ist also der Start des Motors ohne bmf. Das müsste noch 
mit einem avr gehen.

Für die bemf-Auswertung ist dann sicher ein ARM erforderlich. Von STM 
gibt es spezielle f7-evual-motor-kits ab 800€ aufwärts. Das übersteigt 
das vorgegebene budget. Was ist der Sinn dieser 800€-kits? wer kauft 
sowas? Es geht doch sicher auch deutlich kleiner, z.B. f407?

von Norbert S. (norberts)


Lesenswert?

Moin,

Wenn es unbedingt Sinus-Kommutierung sein soll ist ein AVR-8-Bitter wohl 
zu knapp aber Blockkommutierung geht locker damit. Die meisten günstigen 
Modellbauregler haben genau sowas drin.
Ich hab selbst sowas inkl. MPP-Tracking in einen Tiny861 gequetscht. 
Dazu noch einen I2C Slave, was ziemlich eklig war.
Wenn Du mit 300V und im kW-Bereich agieren willst (da liegt auch mein 
Controller) muss ich Dir jetzt schon sagen, daß Du Dir die Zähne 
ausbeissen wirst. Da sausen Dir Effekte um die Ohren, von denen Du nur 
träumst.
Versuche es erstmal deutlich kleiner.

Gruß,
Norbert

von grundschüler (Gast)


Lesenswert?

Norbert S. schrieb:
> Versuche es erstmal deutlich kleiner.

Der 300V Lüftermotor ruckelt beim Anlegen von 19V deutlich. Vielleicht 
reichen auch schon 12V. Ich fang also ganz klein an. Als mc verwende ich 
zunächst einen m328pb mit 5 timern.Das erspart Klimmzüge, da ja schon 
drei timer für die PWM benötigt werden.

von gerrit (Gast)


Lesenswert?

Martin S. schrieb:
> ein, entsprechend guter, USB-Isolator eine Möglichkeit, ist aber auch
> nicht zu 100% sicher.

Was wäre denn so ein "entsprechend guter"? Ohne eine konkrete Angabe ist 
die Aussage für den TO gar nichts wert, sogar nur negativ und hättest 
sie besser für dich behalten.

von Norbert S. (norberts)


Lesenswert?

grundschüler schrieb:

> Der 300V Lüftermotor ruckelt beim Anlegen von 19V deutlich. Vielleicht
> reichen auch schon 12V. Ich fang also ganz klein an. Als mc verwende ich
> zunächst einen m328pb mit 5 timern.Das erspart Klimmzüge, da ja schon
> drei timer für die PWM benötigt werden.

Moin,

Versuche mal den Tiny861, der hat beim Timer1 sechs PWM-Ausgänge, wobei 
jeweils zwei komplementär sind. Das ist gemacht für so eine 
3-Phasenbrücke.
Der Timer mit der 3Ph-PWM ist zwar deutlich komplizierter als die 
normalen Timer aber vermutlich weit weg von einem 32-Bitter.
Mit normalen Timern (M328) geht das zwar auch aber das ist Quälkram.
8k Flash ist allerdings nicht sehr viel.
Für ne Bastellösung würde ich selbst wohl einen Boliden nehmen, um mir 
darüber und die Timer keine Gedanken machen zu müssen. Z.B. Arduino Mega 
2560.

Welche Feldfrequenz wird das?

Gruß,
Norbert

von E-Bastler (Gast)


Lesenswert?

Hallo,

suche doch mal nach STM32-FOC. Da gibt es fertige Software für BLDC von 
ST.
Diese kann man mit einigen Nucleo-Boards betreiben. Dazu gibt es eine
Benutzeroberfläche wo man die ganzen Parameter vom Motor eingeben kann.

Es gibt auch einige IGBT-Boards von ST, die man direkt anschließen kann.

grundschüler schrieb:
> Für die bemf-Auswertung ist dann sicher ein ARM erforderlich. Von STM
> gibt es spezielle f7-evual-motor-kits ab 800€ aufwärts. Das übersteigt
> das vorgegebene budget. Was ist der Sinn dieser 800€-kits? wer kauft
> sowas? Es geht doch sicher auch deutlich kleiner, z.B. f407?

Es gibt auch billigere, z.B. Nucleo-F303RE und STEVAL-IPM10B für 
zusammen
vielleicht 100€. Diese Kombination wird auch von oben genannter
Software unterstützt.

von grundschüler (Gast)


Lesenswert?

Norbert S. schrieb:
> Tiny861

Ich bleib erstmal beim 328pb weil ich den hab und weil der zumindest den 
Anlauf schaffen müsste. für bemf - bei z.b. 100hz 300 adc-messungen pro 
sec - dürfte ein avr ohnehin zu langsam sein.

Er soll ja nur die Blockkommutierung bei um die 1Hz machen, damit ich 
den Starkstromteil testen kann.

mit der software geht es recht flott voran:
1
#define u_set_h DDRD|=(1<<5)
2
#define u_set_l DDRD|=(1<<6)
3
#define u_set_z DDRD&=~(3<<5)
4
5
#define v_set_h DDRB|=(1<<2)
6
#define v_set_l DDRB|=(1<<1)
7
#define v_set_z DDRB&=~(3<<1)
8
9
#define w_set_h DDRD|=(1<<3)
10
#define w_set_l DDRB|=(1<<3)
11
#define w_set_z DDRB&=~(1<<3);DDRD&=~(1<<3)
12
13
14
void stepper (void){
15
 switch (step)
16
  {
17
    case (0):
18
      step++;
19
    w_set_z;
20
    v_set_l;
21
    u_set_h;
22
      break;
23
24
    case (1):
25
      step++;
26
    v_set_z;
27
    w_set_l;
28
    u_set_h;
29
      break;
30
31
    case (2):
32
      step++;
33
    u_set_z;
34
    w_set_l;
35
    v_set_h;
36
      break;
37
    case (3):
38
      step++;
39
    w_set_z;
40
    u_set_l;
41
    v_set_h;
42
      break;
43
44
    case (4):
45
      step++;
46
    v_set_z;
47
    u_set_l;
48
    w_set_h;
49
      break;
50
51
    case (5):
52
      step=0;
53
    u_set_z;
54
    v_set_l;
55
    w_set_h;
56
    led1_tog;
57
    zlx++;
58
      break;
59
  }
60
61
}
62
63
v u32 zly;
64
//===================================================
65
ISR(TIMER4_COMPA_vect)
66
{//120kHz
67
68
zly++;
69
if (zly>3000){
70
//1000=12hz
71
zly=0;
72
stepper();
73
}
74
 
75
 }

Frage dazu: Brauche ich Totzeiten? Es gibt ja kein direktes 
Durchschalten der einzelnen Phasen von low auf high, es ist immer zero 
dazwischen?

von Norbert S. (norberts)


Lesenswert?

Moin,

Einfach so ohne PWM volle Pulle die Phasen bestromen? Na denn man los.

grundschüler schrieb:
> Ich bleib erstmal beim 328pb weil ich den hab und weil der zumindest den
> Anlauf schaffen müsste. für bemf - bei z.b. 100hz 300 adc-messungen pro
> sec - dürfte ein avr ohnehin zu langsam sein.
>
> Er soll ja nur die Blockkommutierung bei um die 1Hz machen, damit ich
> den Starkstromteil testen kann.

Was willst Du denn mit ADC-Messungen? Du nimmst Komparatoren und wertest 
den Durchgang der offenen Phase durch den virtuellen Sternpunkt aus. Mit 
PCint oder einfaches Pollen.

Was Du da programmierst hat mit Anlauf noch nichts zu tun. Du musst 
zwingend mit PWM regeln, sonst wird das nichts.

PWM mit dem 328 ist etwas blöd, weil Du damit alle 3 Timer belegen 
musst. Geht zwar aber ist nicht sehr komfortabel. Deswegen Tiny861, der 
ist dafür gemacht.

Gruß,
Norbert

von grundschüler (Gast)


Lesenswert?

Norbert S. schrieb:
> PWM mit dem 328 ist etwas blöd, weil Du damit alle 3 Timer belegen
> musst. Geht zwar aber ist nicht sehr komfortabel. Deswegen Tiny861, der
> ist dafür gemacht.

Die PWM wird von den timern 0-2 erzeugt und durch den timer4 ein- und 
ausgeschaltet. Der 328pb hat 5 timer.
1
void init_timer0_pwm (void){//A:pd6 B:pd5
2
TCNT0=0;
3
  // Start  timers.
4
TCCR0B = ti_prescaler_8;//1
5
6
  //Sets  timers in inverted pair mode.
7
TCCR0A =0
8
    | (1 << COM0A1) 
9
//    | (1 << COM0A0) 
10
    | (1 << COM0B1) 
11
    | (1 << COM0B0)
12
//    | (1 << WGM01)
13
    | (1 << WGM00)
14
  ;
15
16
17
  
18
  OCR0A = wert_x;//d6
19
  OCR0B = wert_x;//d5
20
 
21
  DDRD |= 1<<6|1<<5;
22
23
  }

von Norbert S. (norberts)


Lesenswert?

Moin,

Oh, "PB", der ist ja ganz anders!

Na dann hau rein, der schafft das locker und Flash ist auch reichlich.

Für die PWM brauchst Du zwingend eine Deadtime. Normalerweise im Bereich 
von wenigen µs. Wenn Du auf dem unteren Fet die PWM machst, wird der 
obere Fet der Phase eingeschaltet wenn der untere aus ist. Sonst läuft 
der Strom über die Diode des oberen Fets, mit den entsprechend hohen 
Verlusten.
Deswegen sind die 6 komplemäntären PWM-Ausgänge mit Deadtime des Tiny861 
so schön.
Mit dem M328pb musst Du die Deadtime manuell erzeugen.
Alternativ nimmst Du einen Treiber (brauchst Du sowieso), der die 
Deadtime macht. Die ist aber oft sehr knapp bemessen. Bei einigen kann 
man die einstellen.

Ich fürchte aber, daß Dir die Endstufe irgendwo ab 50-100V um die Ohren 
fliegt. Da wird das Layout langsam wichtig und da kann man viel falsch 
machen.

Gruß,
Norbert

von grundschüler (Gast)


Angehängte Dateien:

Lesenswert?

Erster Versuch mit stk621/12V. Der Motor ruckelt kräftig, dreht aber 
nicht.
So als ob jeweils der 2.Schritt in die falsche Richtung ginge. kann dies 
an den fehlenden bootstrap-kondensatoren liegen? Jemand eine Idee?

von Norbert S. (norberts)


Lesenswert?

Moin,

Fehlende Bootstrap Kondensatoren?
Wie soll das bitte ohne gehen?
Da sind aber doch welche drin, sogar die Dioden?

Ansteuerung nicht vertausch, bei dem Drahtverhau?

Gruß,
Norbert

von grundschüler (Gast)


Lesenswert?

Norbert S. schrieb:
> Ansteuerung nicht vertausch, bei dem Drahtverhau?

Nein, alles äußerst korrekt. Aber Lötzinn zwischen zwei Leiterbahnen. 
Der Motor dreht jetzt - sehr ruckhaft, aber er dreht. hätte ich nicht 
mehr gedacht.

Ich habe jetzt ein im Prinzip funktionirenden Ansteuerungsteil und einen 
im Prinzip funktionierenden Leistungsteil.

Vielen Dank für Interesse und Unterstützung!

von grundschüler (Gast)


Lesenswert?

Problem Deadtime:
1
v u8 tmpul_old,tmpvl_old,tmpwl_old;
2
v u8 wtstep;
3
v u8 wavetable[48]={  255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
4
            255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
5
            };
6
7
timer_proc_100us_x(){
8
u8 tmpul,tmpvl,tmpwl,tmpuh,tmpvh,tmpwh;
9
tmpuh=wavetable[wtstep];
10
tmpul=wavetable[wtstep+12];
11
tmpvh=wavetable[wtstep+8];
12
tmpvl=wavetable[wtstep+20];
13
tmpvh=wavetable[wtstep+16];
14
tmpvl=wavetable[wtstep+4];
15
16
if(!tmpul || tmpul_old)OCR0A = tmpul;
17
if(!tmpvl || tmpvl_old)OCR1A = tmpvl;
18
if(!tmpwl || tmpwl_old)OCR2A = tmpwl;
19
20
 OCR0B = tmpuh;
21
 OCR1B = tmpvh;
22
 OCR2B = tmpwh;
23
24
if(tmpul && !tmpul_old){_delay_us(10);OCR0A = tmpul;}
25
if(tmpvl && !tmpvl_old){_delay_us(10);OCR1A = tmpvl;}
26
if(tmpwl && !tmpwl_old){_delay_us(10);OCR2A = tmpwl;}
27
28
29
tmpul_old=tmpul;
30
tmpvl_old=tmpvl;
31
tmpwl_old=tmpwl;
32
wtstep++;
33
if(wtstep>23)wtstep=0;
34
}
35
36
37
ISR(TIMER3_COMPA_vect){
38
timer_proc_100us_x();
39
}

Um das Ganze universaler einsetzen zu können, möchte ich auf eine 
Wavetable
 umstellen.

Deadtime brauche ich nur, wenn lowside eingeschaltet wird weil dann die 
entsprechende highseide schon durchgeschaltet sein muss??? Code so 
brauchbar? Wie gehts besser?

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

grundschüler schrieb:
> Das Teil hat nur drei Anschlüsse und ist damit sensorlos.

grundschüler schrieb:
https://www.mikrocontroller.net/attachment/347360/DSCF2118.PNG

Also ich sehe da noch fünf weitere Strippen. Die könnten VCC, GND und 
drei Ausgänge von Hallsensoren sein.

von grundschüler (Gast)


Lesenswert?

Magnus M. schrieb:
> lso ich sehe da noch fünf weitere Strippen. Die könnten VCC, GND und
> drei Ausgänge von Hallsensoren sein.

Das ist der Lüftermotor. Der hat einen integrierten Controller - daher 
die fünf Strippen. Ich habe ihn aufgemacht und drei Kabel vor dem 
controller angelötet - zum testen. Der Kompressor hat definitiv drei 
Anschlüsse.

von Norbert S. (norberts)


Lesenswert?

grundschüler schrieb:
> Deadtime brauche ich nur, wenn lowside eingeschaltet wird weil dann die
> entsprechende highseide schon durchgeschaltet sein muss???

Moin,

Die Frage ab "weil" macht irgendwie keinen Sinn.
Nein, immer wenn Du von einem zum anderen umschaltest, ob nun High zu 
Low oder umgekehrt, brauchst Du die Deadtime. Das passiert bei PWM auf 
einer Phase ständig. Das Datenblatt empfiehlt >=2µs, ich würde 4 nehmen, 
nicht 10.

Gruß,
Norbert

von grundschüler (Gast)


Angehängte Dateien:

Lesenswert?

habe dem stk621 jetzt eine bootstrap-Schaltung spendiert und den code 
stark vereinfacht und auf m328 - ohne pb - umgestellt.

Ergebnis ist ein Testboard, dass mit 15V in einem kleinen 
Frequenzbereich gut funktioniert. Im Prinzip müsste das board durch 
Anpassung der Wavetable universal vom Drehstrom-FU bis zum 
400V-BLDC-Motor geeignet sein.

Nächster Schritt wäre dann eine möglichst einfache bemk-Schaltung.

von grundschüler (Gast)


Angehängte Dateien:

Lesenswert?

kleiner bug bei der deadtime behoben + rechts/linkslauf ergänzt...

von Edgar M. (edgar)


Angehängte Dateien:

Lesenswert?

Wir haben zwar keine 400V BLDC-Motoren gesteuert, aber vielleicht hilft 
das was wir aufgeschrieben haben etwas.

von grundschüler (Gast)


Lesenswert?

Edgar M. schrieb:
> Wir haben zwar keine 400V BLDC-Motoren gesteuert, aber vielleicht
> hilft das was wir aufgeschrieben haben etwas.

Danke für diesen Beitrag. Genau das - Umbau eines Driverboards - hatte 
ich auch versucht. Die Hardware mit dem stk621 ist aber flexibler - 
3Phasen AC/DC bis 400V - leichter zu löten und billiger.

Vom AVR bin ich abgekommen weil mein code bei höheren Frequenzen 
Aussetzer hat.

Den STM-code
clockwise rotation generates 6 times these sequence:
1
0
0
1  1  0
0  1  0
0  1  1
0  0  1
1  0  1

möchte ich nicht verwenden, weil damit nur Block-Ansteuerung geht.

Ich brauche für den Kompressor aber was sinusartiges - also kleine 
Tabelle.

Konzept ist jetzt stm-m3 mit tim2,3,4 zur Erzeugung der pwm für die drei 
Brücken, tim1 zur sychronen Steuerung der drei Timer. Der ganze Rest - 
Lcd-Anzeige und ir-Tastatur funktioniert zumindest brauchbar.

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.