Forum: Mikrocontroller und Digitale Elektronik Kontroller für zwei BLDC-Motoren


von Alexander (Gast)



Lesenswert?

Hallo zusammen,

ich möchte einen Kontroller für zwei BLDC-Motoren für ein Modellschiff 
aufbauen. 2x PWM-Signale von der Fernsteuerung sollen eingelesen werden 
(Gas + Ruder). Bei geringer Geschwindigkeit und vollem Ruderanschlag 
sollen sich die Antriebe in unterschiedliche Richtungen drehen. 
Zusätzlich soll der maximale Ruderanschlag programmtechnisch begrenzt 
werden ( + 1x PWM Ausgang). Würde ein Atmega168 mit diesen Aufgaben 
zurechtkommen?
Mir ist nicht klar, wie viele PWM-Kanäle pro Motor benötigt werden. Kann 
eventuell ein PWM-Kanal  auf mehrere Ausgänge verteilt und getrennt 
gesteuert werden oder braucht man  tatsächlich 6x PWM-Kanäle pro Motor?
B-EMF-Signale sollen mit dem Mittelwert verglichen werden 
(Sternschaltung). Um den Mikrokontroller zu entlasten habe ich vor 
externe Komparatoren einzusetzen, s. „Komparator-Schaltung.png“. Würde 
hier der gewählte Optokoppler 2N25 ausreichen (Frequenz)?
Würden die gewählten Transistoren Q4, Q6 2N2222 und Q5, Q7 2N2907 bei 
100mA Stromimpulsen (s. „Treiber – Schaltung.png, Kollektorstrom 
Q4-Q7.png“) nicht zu warm werden?

Mfg,
Alexander

von Crazy Harry (crazy_h)


Lesenswert?

Willst du damit lenken ? Hab ich auch mal versucht, aber der praktische 
Test war ernüchternd. Der Wendekreis war riesig.

von Alexander (Gast)


Lesenswert?

Ja, ich will damit die Heckruder unterstützen, da der Wendekreis z.Z. 
(nur mit Heckruder) relativ groß ist. Theoretisch soll sich das Model ja 
fast auf der Stelle wenden, dachte ich.

von Crazy Harry (crazy_h)


Lesenswert?

Ich habe damals nur die Vorwärtsbewegung genutzt (2 Jetantriebe). Wenn 
du tatsächlich einen Motor rückwärts laufen läßt sollte es deutlich 
besser sein ..... was dir aber deine ursprüngliche Frage leider auch 
nicht beantwortet. Ich habe das mit der Mischerfunktion der 
Fernsteuerung realisiert.

von Andreas T. (skycurve)


Lesenswert?

Wenn du die Steuerung mit einer Block-Kommutierung realisieren willst, 
reicht ein PWM-Ausgang für beide Motoren.

siehe:
http://www.mikrocontroller.net/articles/Brushless-Controller_f%FCr_Modellbaumotoren

"Beispiel einer Halbbrücke inklusive Strommessung"


Die Kommutierung wird ausgelöst, in dem man die mittlere Spannung der 
drei Phasen des Motos mit der BEMF der nicht-bestromten Phase 
vergleicht.
Dies wird denke ich, meistens vom ADC Comparator des Controllers 
übernommen.

Hier taucht das Problem auf. Beim ATMega kannst du nur 2 Spannungen mit 
dem ADC Comparator vergleichen. Die mittlere Spannung (deine 
Sternschaltung) MUSS am AIN0 angeschlossen sein. Die anderen analogen 
Eingänge werden dann mit dieser verglichen.
Deshalb brauchst du pro Motor einen uC.

Bitte berichtigen, wenn ich selbst falsch liege, bin noch kein Profi :)

Edit: ein PWM-Ausgang pro Motor! Habe nicht daran gedacht, dass die 
Motoren sich wahrscheinlich auch unterschiedlich schnell drehen 
können/müssen.

Grüße
Andreas

: Bearbeitet durch User
von Alexander (Gast)


Lesenswert?

Andreas True schrieb:
> Die Kommutierung wird ausgelöst, in dem man die mittlere Spannung der
> drei Phasen des Motos mit der BEMF der nicht-bestromten Phase
> vergleicht.

Ja, so ist geplant. Nur die Signale von den externen Komparatoren kommen 
beim Mikrokontroller bereits digital an, sie müssen nicht von ADC 
verglichen werden.

>Edit: ein PWM-Ausgang pro Motor!
D.h. Atmel kann PWM-Modulierte Signale gleichzeitig an 12 Ausgängen 
ausgeben? Wenn nicht, dann könnte man noch mit zusätzlichen UND-Gatter 
Ausgänge steuern (PWM & Freigabe).

Oh, der Atmega168 hat nicht einmal genug Ein-/Ausgänge für mein 
Vorhaben.

von Andreas T. (skycurve)


Lesenswert?

Man benötigt keine 12 PWM modulierte Ausgänge, sondern einen modulierten 
Ausgang und 6 digitale Ausgänge pro Motor.

Hier ist es gut erklärt
http://www.mikrocontroller.net/articles/Brushless-Controller_f%FCr_Modellbaumotoren
unter dem Punkt "Beispielschaltung".

Grüße
Andreas

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

Du kannst auch mal bei ATXMega schauen. Da gibts einige mit mehreren 
Komparatoren. Damit könnte es möglich sein, zwei Motoren mit einem µC zu 
steuern. Oder du nimmst zwei Attiny 441, die können die PWM-Ausgänge auf 
unterschiedliche Pins legen. Also nicht wie beim Atmega168, dass das PWM 
Signal immer starr auf einem Pin liegt.

Oder du nutzt eine Schaltung aus Widerständen. Du nimmst 3 Widerstände 
und legst auf die eine Seite der drei Widerstände das PWM-Signal. Die 
anderen Seiten legst du pro Widerstand auf einen Pin des Atmega's. Je 
nachdem, wie du diese drei Pins schaltest, liegt dort dann Low, High 
oder PWM an. So hab ich es gemacht und es funktioniert gut.


Dennis

von Martin (Gast)


Lesenswert?

Alexander,
Hast Du Dir schon Motoren ausgesucht? Welche Felddrehzahl mußt du mit 
den 2 Motoren erreichen? Auch wenn's nicht viel ist, ein bischen was muß 
der µC auch rechnen. Vielleicht sind ja 2 kleine µC mit 
Standard-Software + einer für die Sollwerte die insgesamt einfachere 
Lösung.

Welche Wellenanordnung hat Dein Schiff? Unter welchem Winkel stehen die 
Wellen? Es gab durchaus Schiffe die darauf getrimmt waren daß man mit 
nur einem Propeller noch gerade aus fährt (AFAIR Wellen so angestellt 
daß sich der gedachte Schnittpunkt halbwegs mittschiffs befindet), und 
andere die darauf getrimmt waren, mit den Props zu lenken (AFAIR so daß 
sich der gedachte Schnittpunkt hinter dem Heck befindet)

von Alexander (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe folgende Motoren ausgesucht:

https://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=19023
https://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=18170

Maßstabsgeschwindigkeit: 3 m/s (Originalschiff schafft 80 km/h, M 1:50)
Berechnete Drehzahl mit 55mm Schrauben, 4 Blätter (grob errechnete 
Steigung 60 mm), um die Maßstabsgeschwindigkeit zu erreichen:  ca. 4000 
U/min. Ich denke 3000 U/min wären auch ausreichend. Modell ist ca. 1.2 m 
lang und mit Akkus 6 kg schwer.

Zu der Wellenanordnung kann ich nicht viel sagen, Schiffsrumpf ist in 
der Abbildung zu sehen.Das mit Gegenseitig laufenden Schiffsschrauben 
werde ich noch testen, ob das bei diesem Modell funktioniert. Die 
Motoren müssen ohnehin wegen der Positionsbestimmung des Rotors getrennt 
angesteuert werden. Und für die maximale Anschlagbegrenzung der 
Heckruder, und evtl. geschwindigkeitsabhängige Heckrudersteuerung (bei 
voller Fahrt langsamer oder begrenzt regeln, bzw. Gas wegnehmen, um ein 
Umkippen zu vermeiden) muss die Ruderposition von dem Empfänger 
eingelesen werden.

von Michael D. (etzen_michi)


Lesenswert?

Alexander schrieb:
> Und für die maximale Anschlagbegrenzung der
> Heckruder, und evtl. geschwindigkeitsabhängige Heckrudersteuerung (bei
> voller Fahrt langsamer oder begrenzt regeln, bzw. Gas wegnehmen, um ein
> Umkippen zu vermeiden) muss die Ruderposition von dem Empfänger
> eingelesen werden.

Oder das wird vom Empfänger / hinter dem Empfänger geregelt.

von Crazy Harry (crazy_h)


Lesenswert?

so ein klasse Schiff und kein Querstromruder ?

von Alexander (Gast)


Lesenswert?

Querstromruder bei Schlachtschiffen habe ich noch nie gesehen.

von Crazy Harry (crazy_h)


Lesenswert?

das würde man unter Wasser auch nicht sehen ;o) aber die Steuerung wäre 
sicher einfacher/besser.

von Martin (Gast)


Lesenswert?

Alexander schrieb:
> Ich habe folgende Motoren ausgesucht:
>
> https://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=19023
> https://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=18170
> ...

Hmm, anscheinend keine Angabe zur Polzahl. Aber bei 4000RPM sollte das 
schon mit einem AVR machbar sein, selbst wenn der Motor ein 28P24N wäre, 
was er vermutlich nicht ist.

von Alexander (Gast)


Lesenswert?

Meinen Sie einen AVR mit 16Mhz? Oder soll ich lieber gleich zu einem 
Xmega mit  32Mhz greifen?  Ich denke, der Motor wird nicht mehr als 14 
Pole haben. Es muss nicht berechnet werden, ich bin mir aber nicht 
sicher, ob der MK mit der Frequenz zurechtkommt:

B-EMF
–--------------
6x Interrupts (keine AD-Umwandlung nötig, da externe Komparatoren)

Motoransteuerung
----------------
2x PWM für beide Motoren (Hardware)
12x Ausgänge umschalten

PWM vom Empfänger einlesen
----------------
2x Interrupts, 2x Zähler

Rudersteuerung
----------------
1x PWM (Hardware)

von Alexander (Gast)


Lesenswert?

Alexander schrieb:
> Es muss nicht berechnet werden
ich meinte: nicht viel berechnet werden

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.