Montag, 15. Februar 2016

Revision 2 des TDCombat

Nichts ist so beständig wie der Wandel. Deshalb habe ich nach langem Hin und Her dazu entschlossen das alte Design nur abzuwandeln, aber die Dimensionierung gleich zu lassen. Das Ziel ist immer noch ein kleiner leichter BLDC-Umrichter für den Air Combat. Ohne zusätzliche Kühlung sollen 20A bei 6S kontinuierlich möglich sein.

Es hat ein BEC

BEC mit getrennten LDOs für Analog- und Digitalversorgung
Entgegen meines letzten Posts bekommt der TDCombat ein 5V 3,5A BEC, von welchem die 3V3 für den STM32 mit 2 TPS73233 abgeleitet werden. Wenn ich diesmal das Layout nicht verbocke, dann sollte die Versorgung gesichert sein.

Ein DRV830x sie zu knechten

Der DRV8305 integriert einen Großteil der Schaltung
Wenn man in diesen Tagen einen BLDC-Regler designed der halbwegs klein werden soll, kommt man um die DRV830x von TI nicht herum. Ich habe mich immer gescheut vor diesen ICs, weil gerade die DRV8301/2 sehr zickig sind, was Lagerung und Löten betrifft. Diese ICs von Hand mit dem Lötkolben zu bestücken ist unmöglich außer man macht sich das PowerPAD des ICs mit einem großen Via zugänglich, und genau das habe ich mit dem DRV8305 vor.

Warum der DRV8505 und nicht der 8301 oder 8302

Weil er neuer ist :). Und weil der 1,5A Stepdown des 8301 oder 8302 überflüssig ist durch das 3,5A BEC. Außerdem ist der DRV8305 noch weiter integriert als seine älteren Brüder. Wie an dem Schaltplan zu sehen ist braucht der 8305 keine Gatebeschaltung. Das Schaltverhalten soll sich laut Datenblatt mit 2 Parameter (IDRIVE und TDRIVE) einstellen lassen. 
Der etwas niedrigere maximale Gatestrom von ca. 1A ist für die kleinen Toshiba-FETs mehr als ausreichend. Dennoch bin ich gespannt wie sich der Treiber verhält und ob parallel geschaltete FETs Probleme machen können. 

Der größte Gewinn ist aber die Überwachung jedes FET-Paares auf Überstrom. Sollte ein FET durchschlagen oder ein Phasenschluss auftreten, so schaltet der DRV alle FETs ab und meldet den Fehler. Somit sollte ein Defekt in der Brücke keinen Totalausfall der BEC-Versorgung zur Folge haben und der Flieger sollte noch kontrollierbar sein.

Zusätzlich hat der DRV8305 einen dritten Verstärker für eine dreiphasige Strommessung. Damit kann der Regler mit 100% Duty fahren. Denn bei einer 3phasigen SVPWM ist immer nur eine der Phasen bei 100% Duty und die beiden haben einen so geringen Dutycycle, dass eine Strommessung in den Phasen möglich ist. Und wenn die Phase außerhalb dieses Bereiches sind kann die 3. Strommessung genutzt werden um jegliche Gleichtaktstörung auf den Strommessungen zu kompensieren, in dem die vollständige 3 phasige Clark-Transformation berechnet wird.

Das Hirn des Ganzen

Der STM32F446RE übernimmt die Steuerung und Regelung des Antriebs.
Zum entwickeln der Software habe ich gern etwas mehr Rechenleistung. Ein STM32F303RC reicht mit 72MHz eigentlich aus für die FOC, den Beobachter und die Zustandsüberwachung des Motors. Dennoch ist Leistung nur durch mehr Leistung zu ersetzen. Außerdem bietet der STM32F446 mit 180MHz so viel Luft nach oben, dass ich damit die Regelfrequenz von 10kHz auf 20kHz erhöhen kann und noch Luft nach oben habe für Telemetrie (z.B. Graupner HOTT)  und ggf. UAVCAN, falls ich den Regler auch für Copter einsetze. Zum debuggen und testen auf dem Schreibtisch habe ich noch 2 Taster-Eingänge und DAC-Ausgänge (Danke an Andreas für die Idee) vorgesehen. Außerdem leiste ich mir in der Software den Luxus eines RTOS (Chibios/RT). Das ist nicht wirklich notwendig, macht aber das Softwaredesign einfacher. Genauso erleichtert die Verwendung von C++ die Programmierung, sofern man sinnig mit den Sprachkonstrukten umgeht. 




Mittwoch, 3. Februar 2016

Warum eigendlich FOC oder das BEC fliegt raus!

Es gibt tausende von verschiedenen BLDC-Reglern auf dem Markt und recht viele sind sogar Opensource oder Openhardware Projekte aber nur ganz weniger benutzen feldorientierte Regelung.
Warum ist das so? Klar FOC ist wesentlich aufwändiger zum implementieren und die Hardware wird ebenfalls aufwändiger. Aber ein Hauptgrund ist die Entwicklung eines zuverlässigen Beobachters für die Lage des Rotors. Einem BLDC-Regler reichen 6 Zustände, die er entweder über die
Messung des Nulldurchgangs der BEMF des Motors ermittelt oder über 3 HALL-Sensoren.

Die feldorientierte Regelung braucht aber einen möglichst genauen Lagewinkel des Rotors um den Antrieb effizient zu regeln. Deshalb braucht man entweder einen Encoder an der Rotorwelle oder ein Modell mit dem die Rotorlage rechnerisch bestimmt wird. Und gerade dieser Punkt ist für mich als Regelungstechniker am interessantesten.

Genau wie konventionelle BLDC-Regler hat auch ein Umrichter der mit feldorientierter Regelung arbeitet, dass bei niedrigen Drehzahl die Gegenspannung des Motor zu gering ist um an ihr die Rotorlage zu bestimmen. Aber der große Vorteil der feldorientierten Regelung ist, dass das Motor-Modell so ausgelegt werden kann, dass der Beobachter aus dem Stillstand des Motors herraus eine halbwegs genaue Rotorlage ermitteln kann und so der Motor ohne Startroutine anläuft.

Benjamin Vedder demonstriert das gerade mit seinem VESC und diesem Beobachter und seine Ergebnisse sehen sehr gut aus. Sein erstes Vergleichsvideo zeigt sehr schön einen wesentlichen Vorteil der FOC.

Das ganze ist wesentlich leiser. Es gibt weniger Vibrationen auf dem Antrieb, weil die Ströme schön sinusförmig sind und wenn man die PWM-Frequenz auf 20kHz setzt hört man auch die PWM nicht mehr. Was bleibt sind entweder mechanische Geräusche der Lager und des Getriebes oder Schwingungen die durch eine schlecht eingestellte Regelung kommen. Aber das Verfahren ermöglicht einen sehr ruhigen und leisen Lauf der Maschine.
Besonders merkt man, unter Last. Wie mein Video hier mit meinem RES-Beobachter-System zeigt.
Die PWM ist mit 20kHz nicht zu hören und der Motor dreht sich ohne fiepen oder ähnliche Töne obwohl gerade 20A fließen. Was man hört ist der Lagerschaden des 6374 vorn im Bild :).

Aber was bringt der Aufwand jetzt?

Eine E-Maschine die nahezu lautlos und vibrationsarm läuft. Außerdem stellt eine Stromregelung auch eine sehr wirksame Strombegrenzung dar. Falls die Luftschraube zu groß ist und der Motor mit einem normalen BLDC-Regler überhitzen würde, ist das mit einem Umrichter der FOC verwendet,
nicht möglich (Wenn die Stromgrenze richtig gewählt ist.). Wenn 20A über die Fernbedienung vorgegeben werden, dann stellt der Regler sie ein. Mehr Strom fließt dann nicht.

Gerade für die Anwendung im Kopter ist außerdem wichtig, dass so ein Umrichter neue Sollwerte viel schneller anfahren kann. Damit steigt die mögliche Dynamik des Lageregelkreises einen Kopters. Damit fliegt der Kopter ruhiger und kann schneller seine Lage verändern. 

Für den Modellflug mit Flächen-Modellen ist die höhere Effizienz und der ruhige Lauf das beste Kriterium. Gerade in einem großen Schlepper mit 12-14S kann sich der Einsatz von FOC richtig lohnen. Das Modell ist leiser und nimmt bis zu 30% weniger Strom auf. (Zu gegebener Zeit werde ich Gerd Giese ein Exemplar des Umrichters schicken, damit er diese Behauptung mit Messergebnissen untermauern kann :). ) .

Und hier kommt mein Dilemma mit dem TD Combat. Für den kleinen 3S Miefquirl lohnt sich solch ein Aufwand nicht. Ab 6S wird das Thema eigentlich erst interessant, Deshalb habe ich auch beschlossen, Das BEC fliegt raus! Ein externes BEC oder eine andere Empfängerstromversorgung ist in diesem Bereich durch aus üblich, und ich brauche keinen ineffizient arbeitenden viel zu groß ausgelegten Schaltregler für 5-8,4V auf dem Umrichter vorsehen. Das spart Platz und sorgt für eine bessere Spannungsversorgung der restlichen Bauteile.

  

Ein neues Design ist notwendig.

Das aktuelle Design von TD Combat ist so leider nicht in Betrieb zu nehmen. Ich habe den DRC von KiCAD nicht explizit drüber laufen lassen, sondern nur den pseudo DRC welcher immer mit läuft.
Man lernt nie aus...

Aber ein paar Erkenntnisse konnte ich gewinnen.

Die ACS711 im EX Gehäuse lassen sich ohne Stencil nicht sonderlich schön von Hand bestücken. Ich bestücke aber gern von Hand und ohne Ofen, weil ich so die Platine Stück für Stück in Betrieb nehmen kann.

Die Toshiba-Fets und andere Fets in einem SO-8 ähnlichen Gehäuse sind weit billiger als D2PAK-Fets und lassen eine länglichere Platine mit 3 parallel geführten Phasen wunderbar zu. Die gleiche Brücke mit 12 Fets wie im Layout vom TD Combat wäre in D2PAK ca. 50x50mm groß in SO-8 weniger als 30x30mm. Außerdem ist mir die TPW Serie von Toshiba aufgefallen.
Quelle: http://toshiba.semicon-storage.com/content/dam/toshiba-ss/asia-pacific/image/product/mosfet/power-mos01e.png
Wenn solche Fets einseitig, wie bei dem Layout des TD Combat einseitig bestückt werden, kann die Platine flach auf eine Alu-Platte geschraubt/geklebt werden. Damit ist eine sehr gute Kühlkörper Anbindung gewährleistet. Der Kühlkörper muss aber leider elektrisch isoliert werden weil die Kühlflächen der Fets auf Source-Potential liegen. 

Somit sind die eigentlichen Probleme, die Überlappungen in den Boards und das EX-Gehäuse der ACS711. Mit dem DRC sind die Überlappungen schnell korrigiert, aber was ist mit dem ACS711. 
Das Design mit den 2 parallel geschalteten Sensoren hat seinen Charme zu mal es so flach ist das die Sensoren ebenfalls auf der Seite mit den FETs bestückt werden können und so auch gekühlt werden.
Jedoch hat der Sensor in SO-8 nur einen Messbereich von +/- 25A, womit ohne zusätzlichen Shunt parallel zu dem oder denn Sensoren nur +/- 50A Spitze möglich sind. In Anbetracht der Leistung, die die FETs mit Alternativ-Bestückung treiben können ist das zu wenig und zu unflexibel.

Eine Messung über einen Shunt erscheint mir hier viel variabler und vielseitiger zu sein. So kann die Messung für +/- 50A dimensioniert werden oder aber auch für +/- 200A Spitze. Diese 200A sind alles andere als utopisch mit sauberem Design und 4xTPWR8004PL parallel liegt der RDSon je phase bei weniger als 0,25mR. 

Aber ein Shunt lässt sich nur in der low-side einsetzen und kann nur gesampled werden, wenn in der jeweilige Phase der low-side FET leitend ist. Außerdem ist direkt nach dem Schalten des FETs mit Oberwellen zurechnen, folglich muss der FET für 1-2µs mindestens leitend sein. Das beschränkt aber wieder den maximalen Duty des Reglers und damit die Ausnutzung der Akkuspannung. 

Deshalb muss der Shunt in die einzelnen Phasen oder es muss eine hochdynamische Batteriestrom-Messung erfolgen. Dafür müssen aber die PWM-Muster so beeinflusst werden das zum Messzeitpunkt immer ein Strom einer bekannten Phasen fließt. 

Das schöne an der single Shunt-Messung ist, dass man gleich eine Überstromüberwachung hat, die auch einen geschossenen FET erkennt. Das ist bei der Phasenstrommessung nicht möglich. Die Frage ist aber verbaut man sich damit die Möglichkeit INFORM zu implementieren?