Fahrtregler auf Arduino Basis

    • Offizieller Beitrag

    Als MOSFET empfehle ich den IRL1004. Gibt's beim Reichelt ganz preisgünstig und das Ding ist ein echtes Arbeitstier.

    Der MOSFET hat eine maximale Betriebsspannung von 40V. Ich setze parallel zu Drain und Source immer noch eine Supressordiode ein. In Sperrichtung bzw. bei einer Bidirectionalen ist's egal. Die Supressordiode hat 33V und wird dann bei ca. 35V ziemlich gut leitend. Heißt: Die Body-Diode von dem MOSFET kriegt nicht viel zu tun. ;)

    Wie Heiko schon geschrieben hat, braucht man bei Verwendung von N-FETs im High-Zweig dann einen separaten Treiber-IC. Ich glaube, der LT1161, den ich immer verwendete, ist inzwischen vom Hersteller abgekündigt.

    Nacheil diese HIgh-Side-TReibers war: Er hatte eine Schutzschaltung bezüglich der Betriebsspannung. Ist die Akku-Versorgungsspannung auf unterhalb 8V zusammengebrochen, hat der IC den MOSFET schützen wollen... und keine Ausgangssignale zur Verfügung gestellt. Der Bot ruckelte dann. Abhilfe: Ein DC/DC-Wandler, der aus der Akkuspannung (7-14V) immer eine 12V-Konstantspannung macht. => Also aufwändig.

    Wenn Dir die PWMs ausgehen, dann mach' den gleichen Trick wie ich:
    - Steuere mit dem PWM-Signal grundsätzlich nur die LOW-Side von den MOSFETs an.
    - Verwende einen PWM-Ausgang des Controllers für beide MOSFETs gleichzeitig. Dazu brauchst Du nur ein UND-Gater vor jedem Gate (bzw dem Treiber-Eingang). Ein Eingang des UND-Gatters ist mit dem PWM verbunden. Mit dem zweiten UND-Eingang schaltets Du entweder den linken oder rechten MOSFET frei für das PWM-Signal.

    Ich hoffe, Du hast bei meinen Schaltplänen einen aktuellen Stand erwischt? Der hier wäre ganz brauchbar. http://www.robots.ib-fink.de/fahrtregler_3/…_Schaltplan.pdf

    Wenn Du Dir das Leben einfacher machen willst, dann verzichte auf die MOSFETs und nimm fertige Brücken-ICs her. Zu empfehlen: BTN7960 . Da schließt Du einen PWM-Ausgang an eine Halbbrücke an und fertig. Mit einem zweiten Pin (=Portausgang) nur noch bestimmen, ob an diesem MOSFET-Halbbrücken-IC die High- oder Low-Side durchgeschaltet bzw. gepulst werden soll. Das wars. Der zweite zugehörige MOSFET-Halbbrücke ist ohne PWM und entweder "offen", "High" oder "Low" durchgeschaltet.
    In Summe braucht man vier Portausgänge (davon einen PWM) pro Power-Kanal.

    Damit kannst Du sowohl eine normale Power-Steuerung bauen, als auch eine Bremse realisieren.
    Die N-Seite dieser MOSFET-Halbbrücke ist von den Schaltgeschwindigkeiten als auch vom RDS besser. Also beim Bremsen die LOW-Side benutzen.

    Vorsichtig, wenn Du jetzt doch MOSFETs verwenden willst und P-FETs einsetzt. Um den P-FET durchzusteuern, muss das Gate im Prinzip mit GND verbunden werden. Dabei entspricht aber die Spannung am Gate der vollen Betriebsspannung (UGS, die Source ist aber VDD). Bei den Ants habe ich mit dem Ant-Fahrtregler im ersten Design übersehen, dass die P-FETS zwar eine Betriebsspannung von 20V haben, die Spannung am Gate aber nur 8V sein darf. Du brauchst, je nach verwendeten MOSFETs, einen Spannungsteiler am Gate. => Nicht vergessen. ;)

    Wie gesagt, mein Tipp: mach' Dir das Leben einfach und verwende die BTN7960. Sind zwar für den normalen Sterblichen etwas schwer zu kriegen, aber dafür kriegst Du wesentlich weniger graue Haare, bis der Fahrtregler läuft.
    (Ich könnte Dir BTNs aus meinem Fundus geben, aber ich habe nur die Version, die mit der Rückseite auf der Platine festgelötet wird. TO220 habe ich leider nicht für Dich)

    Optokoppler habe ich bei den ersten Versionen der Fahrtregler verwendet, um eventuelle Defekte vom Prozessor fernzuhalten. Bei Verwendung der BTN7960 brauchst Du keine Optokoppler mehr.
    Das einzige Mal, wo ein Optokoppler geholfen hätte, war ein defekter Treiber-IC bei einem Schaltkanal (Fahrtregler4_3). Da hat der Treiber-IC dann 12V an den Portausgang des Prozessors gelegt. => Abhilfe schaffen jetzt zwei einfache Vorwiderstände, die den Strom auf 20mA (maximaler Strom beim PIC-Prozessor) begrenzen. Mit ein paar Vorsichtsmaßnahmen kannst Du also auf die Optokoppler verzichten.

    Falls Du doch Optokoppler einsetzen willst: Bei der Ansteuerung der PWM brauchst Du "schnelle" Optokoppler. Ich hatte im ersten Design auch "standard" verwendet. Die waren zu langsam und haben dafür gesorgt, dass das Gate viel zu langsam angesteuert wurde. Statt eines flotten Rechtecks kam sozusagen eine kleine "Tau-Kurve" an das Gate. Der MOSFET ist dann bei etwas sportlicheren Belastungen ziemlich heiß geworden.


    //Edit:
    @Mike: Hab' Dir eine EMail mit einem Schaltplan geschickt. ;)

  • Heißt also ich brauche pro H-Brücke 4 IO Kanäle und 1PWM Kanal?
    Um vorwärts zu fahren müssen die PWM mit dem IO(1) auf ein Undgatter und dann auf Mosfet 1 --- PWM mit IO(3) auf andes Undgatter nach Mosfet 3.
    Hab ich das so richtig verstanden?

    Würde heißen PWM verwendbar für vorwärts rückwärts bremsen.

    VORWÄRTS
    1 = 1
    2 = 0
    3 = 1
    4 = 0
    PWM 80%

    RÜCKWÄRTS
    1 = 0
    2 = 1
    3 = 0
    4 = 1
    PWM 80%

    BREMSEN
    1 = 0
    2 = 0
    3 = 1
    4 = 1
    PWM 50%

    MOSFETS

    1................3
    |.................|
    X-----M-----X
    |.................|
    2................4

    (Punkte sind Platzhalter)

    Hab ich das jetzt richtig verstanden?

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    2 Mal editiert, zuletzt von Krümmel (10. Mai 2013 um 11:18)

    • Offizieller Beitrag

    hm... irgendwie verstehe ich deine nullen und einsen nicht ;-P

    wenn du dir das leben leicht machen willst, nimm halbbrücken-treiber für N-Fets
    z.B.:
    IRS21094 (max. EIN FET pro quadrant, ist etwas schwachbrüstig mit dem treiberstrom)
    IRS21844 (max. ZWEI FET)
    gibts bei z.B. RS...

    jede Halbbrücke hat einen eingang für die PWM (steuert ABWECHSELND highside und lowside-FET, Totzeit ist über widerstand einstellbar) und einen shutdown-eingang, der beide fets sperren lässt.

    du brauchst dann pro halbbrücke einen PWM-Pin (also zwei pro vollbrücke) und für die gesamte brücke EINEN shutdown pin (die shutdowns beider halbbrücken können verbunden werden)

    die genannten treiber bibt es auch im DIL-gehäuse (lochrasterfreundlich) und sie können 1-2 FETS halbwegs vernünftig treiben.

    also brauchst du für jede vollbrücke drei pins, zwei davon müssen pwm können (wobei für eine fahrrichtung immer nur eine PWM pro brücke aktiv ist, die andere wird auf high oder low gesetzt)

    bremsen geht automatisch, wenn du die pwm mit einer rampe auf 0 (oder in gegenrichtung) fährst.

    vorteile: nur N-Fets, bootstrap-fähig, logik-level-eingänge. programmierbare totzeit usw usw... :D:D:D

    EDIT:
    zur verdeutlichung, wie die treiber schalten:

    ON heist: FET leitet
    OFF heisst: FET leitet nicht

    1. SHDN (shutdown-pin) = OFF (im datenblatt nachsehen, ob das low oder high sein muss)

    2. vorwärts: 4=ON, 1 und 2 abwechselnd ON/OFF, indem an den IN-Pin von halbbrücke 1/2 die PWM angelegt wird

    3. rückwärts: 2=ON, 3 und 4 abwechselnd ON/OFF, indem an den IN-Pin von halbbrücke 3/4 die PWM angelegt wird

    die PWM bestimmt, wie lange 1/2 bzw 3/4 jeweils ON oder OFF sind

    • Offizieller Beitrag

    j

    Zitat

    jede Halbbrücke hat einen eingang für die PWM (steuert ABWECHSELND highside und lowside-FET, Totzeit ist über widerstand einstellbar) und einen shutdown-eingang, der beide fets sperren lässt.

    Kurz zur Funktion des BTN7960: Er hat zwei wichtige Eingänge. (Mit meinen eigenen Worten erklärt):
    - Den "Enable"-Eingang. Damit legst Du fest, ob die Halbbrücke "aktiv" ist, oder "nichts tut". Beim "nichts tun" sind beide MOSFETs in der Halbbrücke gleichzeitig inaktiv, also offen.
    - Den "Direction"-Eingang. Damit legst Du fest, ob die High-Side oder Low-Side der aktiven Halbbrücke durchgesteuert wird.

    Zum Einschalten eines der beiden MOSFETs in der Halbbrücke musst Du also wissen, welcher der beiden MOSFETs geschaltet werden soll (=Direction) und dann die Brücke scharf schalten (=Enable).

    Zwischen Heiko und mir ist da jetzt ein Unterschied bei der Belegung bzw. der Philosophie, wie man die Brücke ansteuert:
    1)
    Heiko schaltet mit einem Portausgang den "Enable"-Eingang ein und legt den PWM an den "Direction"-Eingang. Das heißt, dass hier im Takt zu der PWM wechselweise die High-Side oder Low-Side durchgeschaltet wird. Der Motor reagiert dann ziemlich "direkt" auf Gasänderungen, da er eigentlich keinen "Leerlauf" hat. Denn wenn z.B. die Highside für die Bewegung des Motors zuständig ist, dann wird beim Rest des Pulses (=0) der Motor wieder kurzgeschlossen.
    2)
    Ich lege den PWM auf den "Enable"-Eingang und belege den "Direction"-Eingang fest mit 1 oder 0. Damit steht also bei mir schon von vorneherein fest, welcher MOSFET in der Halbbrücke mit dem Puls gemeint ist.
    Durch die PWM wird also nur bei aktivem Puls der MOSFET (z.B. High-side) durchgeschaltet, beim Rest des Pulses ist der MOSFET offen, der Motor "rollt" durch den Eigenschwung vor sich hin.


    Zitat

    Heißt also ich brauche pro H-Brücke 4 IO Kanäle und 1PWM Kanal?


    Nein, nicht ganz. In Summe brauchst Du pro Powerkanal (also zwei Halbbrücken) vier Portausgänge am Prozessor. Von diesen vier Portausgängen muss ein Portausgang von einem PWM belegbar/angesteuert sein.

    Wenn Du keine Halbbrücken-ICs, sondern einzelne MOSFETs benutzt, deren Gate (=4 Treiberausgänge) vom Prozessor gesteuert werden, ergibt sich nach meiner Systematik folgender Portbedarf:
    Port 1: Output für (1) Highside links oben
    Port 2: Output PWM für Lowside links unten und rechts unten (2 oder 4) . => umgeschaltet mit einem UND-Gater
    Port 3: Output für (3) Highside rechts oben
    Port 4: Steuert das UND-Gatter an, um die Umschaltung zwischen des PWM-Ausgangs an die beiden Low-Side-MOSFETs zu realisieren.

    Hinweis zur Umschaltung des PWM: Dieser Port 4 geht an einen Eingang es UND-Gatters. Gleichzeitig auch an einen Eingang eines Inverters. Der Inverter-Ausgang geht an den Eingang des zweiten UND-Gatters.
    Somit bestimmt der Portausgang, welches der beiden UND-Gatter durchgeschaltet wird.

    • Offizieller Beitrag
    Zitat

    beim Rest des Pulses ist der MOSFET offen


    der mosfet schon, die body-diode des FET's leitet dann aber... das ist die beste art, die BTS/BTN heiss zu fahren... *grins*

    reiner: SYNCHRONE ansteuerung einer halbbrücke bitte...... :rolleyes:

    der enable-pin ist NUR zum ein-Ausschalten der halbbrücken gedacht!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    (jaja... ich weiss... "geht doch so..." aber mir rollen sich immer die zehennägel hoch, wenn ich sowas sehe... genauso wie bei 1kHz-PWM... *ganztiefduck*)


    EDIT: bitte nicht auf den schlips getreten fühlen.... 8)

    • Offizieller Beitrag
    Zitat

    aber mir rollen sich immer die zehennägel hoch, wenn ich sowas sehe...


    Tja, ...siehste.... und mir dreht sich der Magen um, wenn ich sehe, dass jemand beim Autofahren für eine bestimmte Geschwindigkeit wechselweise "gasgibt"/"bremst"/"gasgibt"/"bremst"/...

  • Ich verstehe nicht wie ich mit zwei irs2844 eine Halbbrücke ansteuern soll. Wie lege ich Prozessorpins an die ICs und wie steuer ich die an? Wenn das IC mit der PWM immer high und low im wechsel schaltet. Meine PWMs sind alle phasengleich.

    Ich hatte mir eine Ansteuerung so gedacht:
    Ist jetzt erstmal nur ein Logikplan.

    Jetzt redet mal bitte Deutsch mit mir :rolleyes: . Ich blicke durch die Datenblätter nicht gerade durch.

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    Einmal editiert, zuletzt von Krümmel (10. Mai 2013 um 14:12)

    • Offizieller Beitrag
    Zitat

    Original von UnskilledWorker
    *grins* der ist gut... :D

    nur gut, dass der strom in einer H-Brücke kein autofahrer ist ;)

    :D

    Darum hat es in der Lehrzeit beim Ausbildungsabschnitt "Installationstechnik" immer geheißen, die Kabel zwar 90Grad um die Zimmerecke verlegen, aber den Radius nicht zu scharfkantig machen: Damit der Strom nicht aus der Kurve fliegt.

    Zitat

    EDIT: bitte nicht auf den schlips getreten fühlen....


    Nönö,.... im Laufe der Jahre lernt man sich ja kennen, .... zu schätzen ... und gegenseitig anzuzwicken.

    Dass hier im "Leerlauf" des Pulses ein Strom fließen soll, der die Diode belastet (bei mir sind ja externe Supressordioden parallelgeschaltet), da bin ich überrascht. Ich hatte mal den Strom am Oszi gemessen (indirekte Strommessung), da floß "nichts". Hm.... ich check das nochmal nach, bevor hier wieder die judäische Volksfront gegen die Volksfront von Judäa kämpft.... ;)

    • Offizieller Beitrag

    Ich hatte es so gemeint. => siehe Skizze

    Zwischen den Ports und den Gates der MOSFETs fehlen noch die Treiber-Stufen. (Habe ich mir der Übersichtlichkeit gespart)

    (Mit dieser Schaltung geht aber das System von Heiko nicht, dass eine Halbbrücke wechselweise durchschaltet.)

    "Bremsen" geht in diesem Fall nur so, dass Du die beiden Low-MOSFETs öffnest (PWM = 0) und dann (nach ein paar Mikrosekunden Wartezeit) die beiden High-Sides gleichzeitig schließt.

  • Ich habs jetzt nur mal überflogen,
    in die Programierung / steuerung misch ich mich jetzt mal nicht ein. :D
    Aber ein schönes Projekt.
    20 A aushalten?
    Wirds ein Raptorregler? ;)
    Ansonsten ist Arduino echt cool, ich hole mir bald einen für das ansteuern meines Pinballs, aber mit shields bis 80 Kanäle für licht etc.

    Wenns fertig wird auf jeden fall ein Video mit etwas fahrbarem hochladen! bin gespannt! ;)

    Warum einfach?
    Wenns auch kompliziert geht??? ;)

  • PWM auf 0 und Port 4 auf 1 oder 0 gleich lowside/s auf null.
    Port 1 und 2 auf 1 gleich Vollbremse oder nicht?
    Kann man die Highside immer eingeschaltet lassen? Also Dauerbremse?
    Aber die Highside ist nicht mit einer PWM gesteuert. War da nicht was mit den Bodydioden?

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    • Offizieller Beitrag
    Zitat

    Original von Krümmel
    PWM auf 0 und Port 4 auf 1 oder 0 gleich lowside/s auf null.
    Port 1 und 2 auf 1 gleich Vollbremse oder nicht?

    Genauso funktioniert die Vollbremse.

    Zum Bremsen nehme ich ohnehin immer längere Pulse her, als der PWM liefert. (Bewegt sich im 10 - 50ms-Bereich. Warum? Keine Ahnung, aber da war der Funkenflug bei den Kohlen noch erträglich. Also empirisch herangetastet: den Puls so lange wie möglich, wo es noch nicht so brutal funkt wie bei einer Vollbremsung.

    Zitat

    Original von Krümmel
    Kann man die Highside immer eingeschaltet lassen? Also Dauerbremse?

    Ja, das sollst Du sogar. :D Denn dann blockieren die Motoren und der Bot läuft nicht "nach", wenn man (z.B. nach einer Drehung) angehalten hat.

    Meine Vorgehensweise:
    - Im Stand: Motoren blockieren
    - Kommando trifft ein: Losfahren
    - Bremse lösen (alle beiden Highsides auf Null)
    (-kurz warten)
    - Anhand der Fahrtrichtung: Betreffende High-Side bestimmen und aktivieren
    - Anhand der Fahrtrichtung: Betreffende Low-Side bestimmen und über den o.g. Port 4 den Zugang zum PWM ermöglichen.
    - PWM mit 0 starten und dann erhöhen, bis die gewünschte Geschwindigkeit erreicht ist.
    => Fahrbewegung

    - Kommando trifft ein: Anhalten
    - PWM auf 0 setzen
    (-kurz warten => Bot "rollt" im Prinzip)
    - High-Sides gepulst kurzschließen (=> Stotterbremse)
    - High-Sides geschlossen lassen

    Das liest sich jetzt etwas aufwändig, aber ich hab's "modulweise" programmiert, damit ich die einzelnen Zustandswechsel in der richtigen Reihenfolge hinkriege, ohne jedesmal "Sonderbehandlungen" machen zu müssen.

    Beispiel:
    Du fährst vorwärts und möchtest jetzt rückwärts fahren. Ein plötzlicher Richtungswechsel (also H-Brücke einfach umsteuern) wäre eine brutalte Belastung für die Endstufen und Motoren.
    Also:
    Erst mal bremsen, dann stoppen (alle Highsides geschlossen), dann die neue Fahrtrichtung ausführen. Dabei wird jedesmal die o.g. Prozedur zum Anhalten/Bremsen bzw. Anfahren benutzt. Ich hab' dafür im Programm sogenannte "Fahr-Stati" eingeführt. 0 = Stillstand (also Dauerbremse) : 1 = vorwärts ; 2 = rückwärts; 3 = gerade beim Bremsen.

    Wenn ich also "1" bin und geh vom Gas, dann müßte das Ziel "0" sein. Geht über den Zustand "3". Wenn es mir in Zustand "3", also beim Bremsen, einfällt, gleich wieder Gas zu geben, dann kann ich vom Zustand 3 gleich wieder in Zustand "1" wechseln, denn es ist die gleiche Fahrtrichtung.
    Wenn ich aber von Zustand "1" in Zustand "2" will, muss ich zunächst Zustand "3", dann "0" durchlaufen, bevor mein Kommando zum Gasgeben bis an die H-Brücke durchgereicht wird.

    • Offizieller Beitrag
    Zitat

    im Laufe der Jahre lernt man sich ja kennen, .... zu schätzen ... und gegenseitig anzuzwicken


    guuut... dann muss ich mir ja keine sorgen machen, dass ich dich zu sehr verärgert habe... ;)

    reiner, zu deinem "verlorenen" strom:
    http://www.thsengineering.com/2009/04/bidire…-motor-control/
    schau mal bei bild vier, dass ist der fall "alle FETS offen"
    bei einmaligen ereignissen ok, repetierend mit 1kHz nicht ganz so elegant, wegen der höheren verluste in den body-dioden


    mike? wie gut ist dein englisch? wenn du die h-brücke verstehen möchtest, empfehle ich die artikel auf der seite hier:
    http://modularcircuits.tantosonline.com/blog/articles/h-bridge-secrets/
    auf deutsch habe ich leider nichts brauchbares gefunden.
    interessant sind "basics" und "sign-magnitude-drive"
    8)

  • Ok viel Lesestoff für ruhige Stunden.
    Ich denke die Bremse werde ich über eine Rampe machen 0-255 PWM also innerhalb von 50mS von 0 auf 100% bremsen und dann erst die Fahrtrichtung wechseln. Ist glaube ich die sanfteste Methode.
    Ich sehe schon ich fange gerade erst an den Regler zu programmieren. Aber immerhin das Grundgerüst steht schonmal.

    Also bis jetzt reichen meine Englischkentnisse. Bis jetzt ist der nicht so schwer zu lesen.

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...

    Einmal editiert, zuletzt von Krümmel (10. Mai 2013 um 19:41)

    • Offizieller Beitrag
    Zitat

    Bis jetzt ist der nicht so schwer zu lesen.


    deshalb hab ich ihn rausgesucht 8)
    die "old hbridge secrets" (in der menüleiste unter "artikel") sind auch nicht schlecht fürs verständnis.

    wenn du sowieso mit rampen arbeitest, überleg dir, ob du nicht JEDE sollwertänderung über eine rampe laufen lässt.
    das ist der sanfteste weg überhaupt und spart zu 90% überlegungen zur strombegrenzung.

    also knüppelstellung merken, nächste knüppelstellung lesen und von der alten zur neueneinen schritt auf der rampe machen. der PWM-wert ist dann der neue "alte" wert. knüppelstellung lesen, von dem alten wert zum neuen einen schritt auf der rampe machen.... usw...

    hintergedanke:
    sprunghafte änderungen der knüppelstellung werden sanfter verarbeitet, bremsen geht automatisch, der strom bleibt schön niedrig usw

    am besten kann man sich das vorstellen, wenn man an knüppel von voll vorwärts auf voll rückwärts denkt. das ist überhaupt kein problem, die rampe wird bis null runtergefahren (z.b. in 250ms), von null bis vollgas rückwärts wird in 250ms wieder hochgefahren.

    auch 500ms sind für die rampe denkbar (vorteilhafter für den strom), bei kleinen änderungen (z.b. von pwm 0 auf pwm 50 oder von pwm 100 auf pwm 150, das sind jeweils ca. 50ms verzögerung bei einer 250ms-Rampe) fällt auch eine 500ms rampe vom fahrverhalten her kaum auf.
    der motor und der regler danken es einem aber :D

    • Offizieller Beitrag
    Zitat

    guuut... dann muss ich mir ja keine sorgen machen, dass ich dich zu sehr verärgert habe...


    zugegebenerweise war ich schon manchmal etwas vor den Kopf gestoßen, wenn "jahrelange" Entwicklungsarbeit mit einem Satz plötzlich nichts mehr wert sein sollen. Aber ein paar klärende Worte brachten es dann schon wieder in's Lot.

    Im Prinzip kann's ja nicht schaden, wenn zwei Oberlehrer versuchen, unseren Nachwuchs bezüglich Fahrtregler fit zu kriegen. ;)

    Wie gesagt, mit dem "verlorenen Strom" möchte ich noch einmal nachmessen, warum das damals vertretbar ausgesehen hat und nach jetziger Literatur nicht.

    • Offizieller Beitrag

    >>> "war ich schon manchmal etwas vor den Kopf gestoßen"
    beim nochmaligen überlesen meiner posts kam ich auf den gleichen gedanken, deshalb die "entschärfung"... ;)

    >>> "wenn "jahrelange" Entwicklungsarbeit mit einem Satz plötzlich nichts mehr wert sein sollen."
    SO war das definitiv nicht gemeint!!!
    es liegt mir fern, deine arbeit und mühen abwerten zu wollen! (ausserdem baust du wenigstens regler, im gegensatz zu mir *grins*)
    allerdings erlaube ich mir kundzutun, wenn ich der meinung bin, das etwas besser geht. *zwinker*
    mehr sollten meine anmerkungen nicht aussagen!

    >>> "oberlehrer" tja... so sind wir beide halt... starrköpfig, rechthaberisch, von uns selbst überzeugt...
    jeder von uns ist einfach der beste... *schenkelklopf*

    es sieht ja ganz einfach so aus:
    viele wege führen nach rom und es gibt unendlich viele möglichkeiten einen "fahrtenregler" mehr oder weniger gut zu bauen,
    jeder hat seine eigenen vorstellungen, was "gut" oder "das beste" ist und was nicht und zwei ingenieure haben sowieso immer unterschiedliche meinungen...
    (wobwei ich IMMER recht habe... ;-P)

    ok, mal wieder was technisch gehaltvolles:
    in dem ersten link, den ich weiter oben gepostet habe, ist der fall deines "verlorenen" stroms recht gut beschrieben: "fast decay mode"
    der strom fliesst nach öffnen aller FETS über zwei body-dioden in die batterie + stützkondensator zurück.
    allerdings nur solange, bis das magnetfeld der induktivität (in diesem fall der motorwicklung) kollabiert ist.
    das geht in diesem speziellen fall und bei "langsamer" PWM (500Hz bis 2kHz) und geringer induktivität recht schnell!!!
    und zwar VIEL schneller, als bei Freilauf (freewheeling) über beide High- oder lowside FET's.
    Wenn du nur etwas zu spät gemessen hast, ist der Strom schon auf 0 abgefallen, weil das magnetfeld schon kollabiert ist.
    deshalb heisst das ja auch "fast decay".

    wenn man jetzt meint: "alles ist doch gut, wenn der Strom so schnell abfällt, entsteht ja garkeine verlustleistung in den dioden"
    sollte man sich vor augen führen, dass auch dieser (kurze) strompuls eine gehörige portion verlustleistung (als beispiel: ca. 1,1V x 20A) in den dioden produziert.
    tritt dieses ereignis einmalig auf (z.b. bei einem lastabwurf im fehlerfall, also notfallabschaltung), ist das natürlich kein so grosses problem,
    da der mittelwert der verlustleistung gering bleibt!
    nutzt man diese art der brücken-ansteuerung allerdings repetierend (z.b mit 1kHz), so kommt als mittelwert schon einiges an verlustleistung zusammen.
    wenn man einen grossen kühlkörper verwenden kann, ist das unter umständen völlig uninteressant. uns kommt es aber meist auf das gewicht an!
    also, warum soll ich nicht die verlustleistung verringern (strom über FET schicken, anstelle über die body-diode), wenn ich die möglichkeit dazu habe?


    noch eine kleine anmerkung zu den oben geposteten links:
    in beiden wird davon ausgegangen, dass der strom INNERHALB eines PWM-Pulses auf 0 zusammenbricht (und dann unter bestimmten betriebszuständen sogar die richtung ändert)
    dies tritt normalerweise nur auf, wenn niedrig-induktive motoren und eine extrem langsame PWM (500Hz - 2kHz) verwendet werden!

    wird die PWM-frequenz höher gewählt (8-15kHz) und eine synchrone ansteuerung der h-brücke gewählt, so fällt der strom garnicht bis auf 0 ab, sondern bleibt schön dreieck-förmig um einen mittelwert herum, der > 0 ist!!!
    dazu kommt, dass die höhe des strom-dreiecks in bezug auf den mittelwert (=stromripple) bei hohen PWM-frequenzen kleiner ist, als bei niedrigen.
    damit wird die verlustleistung in den FETS reduziert (höhere schaltverluste durch höhere frequenz nicht berücksichtigt!!!) und die FET's müssen nicht für so hohe spitzenströme ausgelegt werden. ausserdem ist diese ansteuerung normalerweise "ohren-schonender" ;)

    das es anders natürlich auch geht, zeigen reiners schon recht robuste regler!


    ok, ich packe wieder den "anzwicker" aus: eventuell geht es mit einer anderen ansteuerung NOCH eleganter... *DUCK* :D:D:D:D:D

    • Offizieller Beitrag

    @UW: Danke für die sehr umfangreiche Rückmeldung !

    Vielleicht braucht man in technischer Hinsicht manchmal eine gewisse "Sturheit", damit man sein Ziel erreicht. ;) Im Beruf gibt es den ganzen Tag irgendwelche Leute, die einem erklären wollen, was man "besser" tun soll. Hat aber meist nur den Hintergrund, dass die Jungs ihre eigenen Ziel von jemand anders realisiert haben wollen. (TEAM = Toll-Ein-Anderer-Machts).

    Für Rückmeldungen und Verbesserungsvorschläge bin ich hier im Forum ja auch immer offen. Nur stellenweise passt das mit den Erfahrungen, die man beim Bauen und Testen gemacht hat, nicht ganz zusammen. Genau wie Du möchte ich dann auch gerne meine Meinung dazu äussern. (... muss ja, wie bei Dir, auch nicht unbedingt der Weisheit letzter Schluss sein...) :D . Aber lieber zwei Oberlehrer als zwei Streithansel ohne technischen Background, oder?

    Zitat

    (wobwei ich IMMER recht habe... ;-P)


    *lol* :D


    In der Richtung denke ich, dass wir im Laufe der Jahre schon unserer Friedenspfeife geraucht haben und man hier auch einmal die Finger in Wunden legen darf, ohne dass der Andere beleidigt sein muss.

    Soweit mal zum Umgang mit technischen Diskussionen. :D Die Erläuterungen mit dem Zurückfließen des Stroms in den Akku bzw. den Pufferelkos ( Ich habe zwischen 2000uF und 5000uF dran hängen.) passt. Auch dass es ein kurzer Puls sein kann, das würde auch passen. Denn eventuell hatte ich einen kleinen und kurzen "Unterschwinger" am Oszi, der so klein ist, dass ich ihn als Fliegendreck auf dem Display abgetan hatte. (= nicht beachtet). Ehrlich gesagt hätte ich nämlich schon eine gewisse "Sehenswertigkeit" des Stroms erwartet, wenn die Energie vom Motor (=Generatorbetrieb) durch den Fahrtregler vernichtet werden muss. Die von Dir disponierten 1.1V * 20A dürften den Motor auch zum Stehen bringen.

    Bei der Programmierung der Stotterbremse ist mir das sehr deutlich aufgefallen, als mal "lange" Pulspausen eingestellt waren.

    Was für die Erläuterungen spricht: In der ersten Version der Fahrtregler war die Strombegrenzung noch hardwaremäßig gemacht. Heißt: Sobald der Strom überschritten war, hat die Schaltung ganz brutal den Eingang des Treiberbausteins auf Low gezogen (=ausgeschaltet). Egal bei welcher "Zeitposition" der aktive Puls des PWM gerade war. Die MOSFETs waren deutlich erwärmt. Ein Zeichen, dass hier etwas nicht so funktioniert, wie es sein sollte. (Darum bin ich auch bei den nachfolgenden Fahrtregler-Generationen von der hardwaremäßigen Strombegrenzung auf eine softwaregesteuerte Strombegrenzung umgestiegen. Mittlerweile baue ich gar keine mehr ein, weil sie von den Anwendern ohnehin nicht benutzt wird.

  • So nachdem ich mir jetzt selbst ein Arduino gebaut habe (das was ich jetzt habe ist nur von der Schule geliehen) habe ich bei ebay jetzt eins für 15€ gekauft. Ironie des lebens.
    Einkaufsliste: Atmega328P, 10MHz Quarz und ein paar 22pF Kondensatoren. Der Rest kommt aus meinem sortiertem Chaos. Programmiert wird über einen USB/RS232 adapter. Aber seht selbst.

    Erfahrungen sind was sehr nützliches, leider macht man sie erst kurz nachdem man sie gebraucht hätte...