BLDC Ansteuerung

Gast #4658466
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.
Angehängte Dateien:
#4658521
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
Gast #4658827
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?
Angehängte Dateien:
#4658877
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
Gast #4658913
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!
Gast #4659287
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
Gast #4659447
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.
#4659684
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
Gast #4666912
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???
Gast #4666980
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.
Gast #4667084
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.
Gast #4667128
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.
(Firma: matzetronics) #4667315
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?
Gast #4667468
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
Gast #4667531
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.
#4997526
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
#4997876
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
Gast #5194875
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?
Gast #5194904
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
(Firma: matzetronics) #5195550
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.
Gast #5201716
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.
#5201772
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.
Gast #5201869
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.
Gast #5205025
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?
#5205388
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
Gast #5205776
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.
Gast #5205777
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.
#5206231
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
Gast #5206497
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.
Gast #5207045
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?
#5207171
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
Gast #5207198
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
  }
#5207211
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
Gast #5208643
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?
Angehängte Dateien:
Gast #5209254
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!
Gast #5213145
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?
Gast #5213268
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.
#5213448
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
Gast #5237332
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.
Angehängte Dateien:
Gast #5278479
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren