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.
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.
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
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?
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
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!
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
Wieso sind die Vorschaubilder nicht verfügbar, Fehler 404? Wurden die gelöscht?
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
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
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.
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
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???
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.
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.
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.
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"
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?
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.
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
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.
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
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
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?
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
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.
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.
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.
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.
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
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.
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.
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.
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?
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
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.
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.
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
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.
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?
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
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 | }
|
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
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?
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
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!
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?
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.
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.
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
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.
Wir haben zwar keine 400V BLDC-Motoren gesteuert, aber vielleicht hilft das was wir aufgeschrieben haben etwas.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.