Forum: Mikrocontroller und Digitale Elektronik RC-Heli: Mehr Leistung an PWM-Motoranschluss bzw. PPM-Signal benötigt - Arduino?


von Michael S. (michael_hh)


Angehängte Dateien:

Lesenswert?

Ich versuche, zusammen mit meinem Bruder, für einen "Museums-Helicopter" 
einen funktionierenden Antrieb aufzubauen und das hübsche alte 
Schätzchen dadurch wieder zum Leben zu erwecken. Problematisch hieran 
ist die Steuerung des Gleichstrom-Motors, der den Heckrotor antreibt.

Ich versuche, das Problem möglichst präzise und eindeutig zu skizzieren.

- Im ersten Teil stelle ich ganz kurz Ausgangslage + 
Anforderungssituation am konkreten Modell vor, damit das zu lösende 
Problem unmissverständlich klar wird.
- Im zweiten Teil skizziere ich nur noch das elektronische Problem und 
meine Ideen zur Lösung. Wer mag, kann Teil 1 überspringen und direkt 
Teil 2 lesen.





== Teil 1: Ausgangslage und Anforderungssituation ==

0) Der Hauptrotor eines Helis erzeugt bekanntlich über seinen 
Luftwiderstand ein kräftiges Drehmoment am Modell. Ohne Heckrotor würde 
das Modell in der Luft kreiseln.

1) Das Drehmoment ändert sich obendrein ständig mit jeder Steuereingabe, 
die die Stellung der Rotorblätter verändert. Deshalb werden Helis heute 
mit einem elektronischen Gyro stabilisiert, dass kleinste Drehbewegungen 
erfasst und die Heckleistung über PIDs entsprechend SEHR EXAKT innert 
weniger Millisekunden nachregelt.

2) Für diese Leistungsregelung am Heck gibt es heute zwei gängige 
Lösungswege. Ich skizziere kurz beide, damit wir Missverständnisse 
vermeiden:

a) DAS PITCH-HECK: Hier hängt der Heckrotor menachnisch mit am 
Hauptmotor und dreht deshalb immer gleich schnell, während ein Servo 
über eine PPM-Signalsteuerung den Blattwinkel ("Pitch") am Heckrotor 
ändert. Je steiler das Blatt, umso höher die Leistung.
Zum Ausbalancieren des Hecks ermittelt die Bord-Elektronik mit Hilfe der 
Gyro-Messwerte und modellspezifisch angepasste PIDs alle 20ms ein 
PPM-Signal, das zwischen 0,5 ms und 2,5 ms lang ist und dem o.g. Servo 
so den Soll-Wert für die richtige Blattanstellung liefert.


b) DAS DIRECT-HECK: Ältere Modelle und Übungsmodelle wie der oben 
abgebildete Eco 7 haben eine mechanisch viel simplere Heckkonstruktion. 
Ihr Heck besitzt lediglich einen DC-Motor, auf dessen Welle eine 
Luftschraube mit festem Blattwinkel sitzt. Die Leistung dieses 
Heckventilators hängt deshalb von der Motordrehzahl ab - und die 
wiederum wird über PWM gesteuert.


3) Oft gibt es gute Gründe, ein PPM-Heck gegen ein PWM-Heck zu tauschen 
und anders herum. Es grenzt an Irrsinn, wieviel Geld und Schweiß viele 
Heli-Freaks für entsprechende Kits, Signalkonverter etc. opfern. 
Besonders oft wollen Bastler den Bürstenmotor gegen einen 
Brushless-Motor wechseln - was neben dem Speedcontroller ja vor allem 
einen abgestimmten PWM-auf-PPM-Konverter erfordert.



== Teil 2: Das elektronische Problem und Lösungsideen ==
Für das vorliegende Modell (Eco 7) muss eine All-in-one-Platine 
verwendet werden, die Empfänger, Gyro und den PWM-gesteuerten 
Motoranschluss für den DC-Heckmotor enthält.

Der Heckmotoranschluss liefert bis zu 3,6 Ampere bei max. 11 Volt, also 
rund 36 Watt. Es ist nicht bekannt, wie das Tastverhältnis p 
(https://www.mikrocontroller.net/articles/Pulsweitenmodulation) hierbei 
aussieht; der DC-Motor pfeift beim Anlaufen aber mit exakt 2000Hz. Das 
ist zwar unangenehm hörbar, aber die PWM-Schaltungsverluste bleiben 
adäquat.
Die Elektronik liefert indes nur dann eine messbare Spannung, wenn ein 
Verbraucher angehängt ist. Warum das so ist, habe ich noch nicht ganz 
verstanden (https://www.heise.de/select/make/2016/6/1482398401198797).

36 Watt sind für den Eco 7 indes zu wenig. Ermittelt habe ich rund 58 
Watt Leistungsbedarf. Gesucht werden funktionale Ideen, um diese 
Mehrleistung zu ermöglichen UND ZU KONTROLLIEREN! Die Lösung bietet 
idealer Weise
- möglichst wenig Gewicht
- wenig Verlustleistung
- Optionen, um die Leistungskurve /-linie anzupassen (sonst haben wir 
einen Brummkreisel statt einem Heli)

Das sind meine Sorgen:
- Die Lösung liefert zu wenig oder zuviel Leistung im Mittelwert: Heli 
rotiert im/gegen den Uhrzeigersinn.
- Die Lösung reagiert zu langsam oder zu schwach: Heck dreht sich weg.
- Die Lösung reagiert zu heftig/unkontrolliert: Das Heck schlägt aus und 
pendelt. (= Probleme mit Flankensteilheit, PIDs stimmen nicht mehr,..)


Das ist meine erste Lösungsidee:

a) Ich hänge einen Widerstand an den Motoranschluss und lese mit einem 
Arduino Nano das PWM-Signal mit analogRead(Pin) ein. In C++ programmiere 
ich dann eine entsprechende Skala und erzeuge dann ein geeignetes 
PPM-Signal für einen Standard-Brushed-Regler.

Problematisch daran finde ich:
?: Ich weiß ja gar nicht, wie das PWM-Signal wirklich aussieht. Die 
angenommenen 2000 Hz sind ja nur mit Smart Oscilloscope/Tongenerator 
ermittelt. Wie realistisch ist diese Vermutung?
?: Ist der Arduino wirklich schnell genug, um die Einschaltdauer des 
PWM-Signals korrekt zu lesen? Wäre es nicht schlauer, statt der 
Einschaltdauer direkt via Spannungsteiler die effektiv eingestellte 
Spannung am PWM-Anschluss zu messen und daraus das PPM-Signal zu 
errechnen?


Mich würde interessieren, was ihr darüber denkt.
Hoffentlich war alles verständlich!


Herzlich!
Michael

von Mark S. (voltwide)


Lesenswert?

Michael S. schrieb:
> Ist der Arduino wirklich schnell genug, um die Einschaltdauer des
> PWM-Signals korrekt zu lesen? Wäre es nicht schlauer, statt der
> Einschaltdauer direkt via Spannungsteiler die effektiv eingestellte
> Spannung am PWM-Anschluss zu messen und daraus das PPM-Signal zu
> errechnen?

Das glaube ich schon. Wobei eine direkte Zeitmessung innerhalb eines 
PWM-Zyklus fertig wird, die Messung eines Mittelwertes aber erst einen 
analogen Tiefpaß (Mittelwertfilter) durchlaufen muß (etliche 
PWM-Zyklen!) um dann anschließend AD- gewandelt zu werden.

von Michael S. (michael_hh)


Lesenswert?

Mark S. schrieb im Beitrag #5093638 (Zitat von TO gekürzt):
> [erfordferlich sind] analoger Tiefpaß (Mittelwertfilter,
> etliche PWM-Zyklen!),
> um dann anschließend AD- gewandelt zu werden.

Hm, stimmt. Ein artverwandtes Problem hatte ich mit der Auswertung von 
Messdaten eines Farbsensors am Arduino. Erst 20-35 Messungen zusammen 
erlaubten valide Mittelwerte. Das bremste das Programm natürlich 
erheblich.

Verzögerungen sind nun gerade das, was man am Heli-Heck nicht gebrauchen 
kann. Je später das Heck reagiert, umso schwieriger wird es, den Fehler 
wieder auszubügeln. Messfehler, also ungeeignete Mittelwerte, wären 
ggfs. sogar fatal = no go.


Nur by the way: Sehe ich das richtig, dass man hier 
(http://funduino.de/nr-11-spannung-messen) zwei Wiederstände als 
"Spannungssensor-Modul" teuer weiterverkauft?! Ist ja witzig... ;-)

von Michael S. (michael_hh)


Lesenswert?

Mark S. schrieb:
> Das glaube ich schon. Wobei eine direkte Zeitmessung innerhalb eines
> PWM-Zyklus fertig wird, die Messung eines Mittelwertes aber erst einen
> analogen Tiefpaß (Mittelwertfilter) durchlaufen muß (etliche
> PWM-Zyklen!) um dann anschließend AD- gewandelt zu werden.

@Mitleser/Google-Reisende: hilfreiche Lektüre zu Marks Hinweis über den 
Tiefpass-Filter bspw. hier: Beitrag "Tiefpassfilter für PWM Signal"

Inwiefern ich ohne richtiges Oszilloskop überhaupt einen g'scheiten 
Tiefpassfilter basteln kann, mag ich gar nicht einschätzen.

von Andreas Rückert (Gast)


Lesenswert?


von Michael S. (michael_hh)


Lesenswert?

Danke für den rconline-Tipp, aber denen geht es darum, den Hauptantrieb 
wieder fit zu kriegen, weil deren Hauptzahnrad defekt ist. Da braucht 
man aber nix drucken oder fräsen - das HZR vom Logo 600 passt ohne 
Bohren 100% auf das Freilauflager und hat das gesuchte Modul 0,5.

In DIESEM Thread geht es dagegen allein um die Frage, wie man eine 
größere elektrische Last an ein vorgegebenens Gyrosystem hängen kann, 
das eine PWM-gesteuerte Spannung für einen nur halb so großen Motor 
ausgibt.

@Mark Space: Du hast an Spulen gedacht, als du vom Tiefpass geschrieben 
hast?
Wenn ich das recht verstehe, sorgt eine Spule über ihre Kapazität und 
elektromagnetische Gegeninduktion dafür, dass Spannungen oberhalb einer 
Grenzfrequenz erheblich gedämpft werden. Hier wäre die Grenzfreuquenz 
vermutlich rund 3000 Hz; darunter soll alles durchlaufen. In 
Schaltbildern sehe ich immer einen zusätzlichen Kondensator (Filter für 
hochfrequentere Spannungen); wozu der gut ist, muss ich noch verstehen.

Danke erstmal! :-)

von Andreas Rückert (Gast)


Lesenswert?

Was ich nicht verstehe: warum reicht die Leistung des Originalreglers 
nicht? Ist er defekt? Bei uns ist einige Mal ein Eco 7 mit 
Originalplatine geflogen, und dort hat die Leistung am Heck gereicht.

von MRaw (Gast)


Lesenswert?

Wenn Du bereits über einen geregelten PWM-Ausgang verfügst, wäre es dann 
nicht das Beste wenn man diesen einfach verstärkt? Eine 
Polaritätsänderung hat man ja nicht vorliegen, da der Motor immer nur in 
einer Drehrichtung betrieben wird.

Mein Vorschlag wäre den Open-Drain-Ausgang des Reglers als Ansteuerung 
für einen stärkeren MOSFET zu nutzen. Einfach Variante würde nur aus 
MOSFET, PNP- oder NPN-Transistor und zwei Widerständen bestehen:


IN      +Ub        +Ub
         |          \-------  +
        /                         Ausgang zum Motor
--R1---< PNP       /-------   -
        \          |
         |         |
         |---------<   N-ch MOSFET
        R2         |
         |         |
         GND     GND

von MaWin (Gast)


Lesenswert?

Michael S. schrieb:
> In DIESEM Thread geht es dagegen allein um die Frage, wie man eine
> größere elektrische Last an ein vorgegebenens Gyrosystem hängen kann,
> das eine PWM-gesteuerte Spannung für einen nur halb so großen Motor
> ausgibt.

Eigentlich gar nicht. Man kann keinen Verstärker nachschalten denn

Michael S. schrieb:
> Die Elektronik liefert indes nur dann eine messbare Spannung, wenn ein
> Verbraucher angehängt ist. Warum das so ist, habe ich noch nicht ganz
> verstanden

Ist bei gebootstrappten H-Brücken normal.

Einziger Weg: Die vorhandene Brücke (oder dreht der Heckrotor womöglixh 
nur in eine Richtung und es ist gar keine H-Brücke sondern nur ein 
einzelner PWM Transistor) verstärken, d.h. für den gewünschten Strom 
auslegen.
Variante a) Kühlung der Endtransistoren verbessern, durch grössere 
Lühlbleche/Kühlkörper.
Variante b) dem oder den Teansistoren der Endstufe je einen weiteren 
parallel schalten.
Variante c) bessere Transistoren mit höherer Strombelastbarkeit 
einbauen.
Ja, Variante d) an vorhandene Endstufe eine kleinere aber ausreichende 
Last anklemmen und dann die Spannungen mit einer zweiten Endstufe 
verstärken ist nicht sinnvoll.

von Michael S. (michael_hh)


Lesenswert?

Im Heli wird das Board aus einem WLToys V950 verwendet; es leistet (wie 
sein Vorgänger Master CP von Walkera) max. 40 Watt am Heck. Es hat 
gewichtige Gründe, warum dieses Board eingesetzt werden soll und kein 
Vstabi/Original etc. Auch ein Pitchheck eines 500ers kommt nicht in 
Frage.

Back 2 Topic!

von Michael S. (michael_hh)


Lesenswert?

MRaw schrieb:
> Wenn Du bereits über einen geregelten PWM-Ausgang verfügst, wäre es dann
> nicht das Beste wenn man diesen einfach verstärkt? Eine
> Polaritätsänderung hat man ja nicht vorliegen, da der Motor immer nur in
> einer Drehrichtung betrieben wird.

Ganz genau so ist es.

> Mein Vorschlag wäre den Open-Drain-Ausgang des Reglers als Ansteuerung
> für einen stärkeren MOSFET zu nutzen.

Ah, ein Mosfet! Ich Dussel hatte über elektronische Relais nachgedacht, 
dabei ist ein Mosfet doch naheliegend! Peinlich! :-/

>Einfach Variante würde nur aus
> MOSFET, PNP- oder NPN-Transistor und zwei Widerständen bestehen:
>
>
> IN      +Ub        +Ub
>          |          \-------  +
>         /                         Ausgang zum Motor
> --R1---< PNP       /-------   -
>         \          |
>          |         |
>          |---------<   N-ch MOSFET
>         R2         |
>          |         |
>          GND     GND

Wenn ich die Schaltskizze richtig verstehe, dann schaltet der PNP für 
die Pulsdauer einfach das Mosfet durch, und die beiden Widerstände 
stellen den Spannungsteiler dar? +Ub bedeutet hier wohl 
Betriebsspannung, also die 11,1V vom LiPo. Ganz herzlichen Dank für die 
tolle und einfache Idee! :-)

von Michael S. (michael_hh)


Lesenswert?

MaWin schrieb:
> Ist bei gebootstrappten H-Brücken normal.

Nur am Rande: Danke für solche kleinen Randkommentare. Da weiß man, wo 
sich das Nachlesen nochmal lohnt.

N8! :-)

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.