- LiFePO4 Speicher Test         
Ergebnis 1 bis 4 von 4

Thema: Verständnisprobleme mit Regler und Kaskadenregler

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2004
    Beiträge
    12

    Verständnisprobleme mit Regler und Kaskadenregler

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Erst mal herzlichen Glückwunsch zum gelungenen Grundlagen Wiki Regelungstechnik. Der Einstieg ist mir gut gelungen und ich konnte damit einen PID Regler sowohl in C für einen Fahrmotor wie auch jetzt in Javascript unter NodeRed selbst erstellen. Der Fahrmotor wird über einen Inkrementalgeber bislang allerdings nur auf Geschwindigkeit und nicht auf Position geregelt. Dazu habe ich mal gehört, daß man zwei Regler als Kaskade benötigt. Das Positionierbeispiel im Wiki verstehe ich da auch nicht wirklich.

    Neben dem Antrieb möchte ich nun auch noch den Füllstand eines Akkus ausregeln. Dieser wird tags über Solarzellen geladen. Da sich die Sonne von einem Reglerausgang nicht beeindrucken lässt, ist die Stellgröße der Stromverbrauch welcher von min bis max eingetellt werden kann. Die Führungsgröße wäre der SOC (State Of Charge) des Akkus. Das Akku Monitor IC kann seinen SOC aus dem Coulomb Zähler zurückmelden.

    Also: Gewünschter SOC ist höher als aktueller SOC. D.h. der Antrieb muß angehalten werden um Strom zu sparen, damit vitale Funktionen auch über Nacht nicht ausfallen.
    Oder: Gewünschter SOC ist niedriger als aktueller SOC. D.h. der Antrieb kann jetzt eine gute Fahrstrecke zurücklegen. Der maximal Strom der Solarzelle ist höher als der Motor verbraucht. Deshalb muß der Akku genügend Aufnahmekapazität haben, damit später keine Energie verlorengeht was die gesamte Fahrstrecke beeinträchtigen würde.

    Der Regler läuft soweit und gibt auch den Stromverbrauch für das System vor. Das schwankt aber immer zwischen min und max, bzw. geht in aller Regel am Anschlag in die Sättigung. Grund dafür ist, daß die Rückmeldung des Ladezustands SOC vom Akku mit vollen Prozenten nicht nur ungenau sondern auch extrem träge ist. Ohne Regelabweichung macht der Regler gar nichts mehr. Eine Auflösung von 1% ist aber viel zu grob.

    Deshalb bin ich auf die Idee gekommen, einen zweiten Regler zu nehmen, welcher aktiviert wird wenn Soll und Istwert identisch sind. Der zweite Regler bekommt nun den Batteriestrom als Rückmeldung welchen er über den Verbrauch auf Null ausregelt. D.h. es muß genauso viel verbraucht werden wie die Solarzelle erzeugt. In dieser Situation fliesst kein Batteriestrom womit der Ladezustand ja bekanntlich gleich bleiben müsste. Im Gegensatz zum SOC ist die Strommessung allemal deutlich schneller als jeder Wolkenzug der aufkommen kann und den Ladestrom beeinträchtigt. Muß ich die beiden Regler hierzu nun in Reihe oder parallel zum Umschalten machen? ist das eine Kaskadenregelung oder irgendwas anderes? Kaskadenregelung wäre ja auch bei der Lageregelung. Ein Regler macht die Geschwindigkeit, der zweite die Position. Es gibt zwei Rückkopplungen, nämlich die Gesdhwindigkeit und (daraus integriert) die Position. Ebenso hätte ich als Rückmeldungen den Ladestrom und (den über den Coulomb Zähler daraus erzeugten) Ladezustand SOC. Oder bei der Heizungsregelung die Raum und die Aussentemperatur zur Beeinflussung der Vorlauftemperatur. Alle Erklärungen und Vergleiche sind mir vermutlich behilflich um einer praktikablen Lösung näher zu kommen.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    904
    Zuallererst:
    https://de.wikipedia.org/wiki/Kaskadenregelung
    Die Kaskadenregelung regelt den Sollwert des nachfolgenden Gliedes.
    Hier also: Die Lageregelung regelt die Sollgeschwindigkeit des Geschwindigkeitsreglers.

    Das kann man sich auch bildlich für einen Motor einfach vorstellen:
    Wenn der Lagezielpunkt immer näher kommt, muss die Geschwindigkeit von der Lageregelung artgerecht gedrosselt werden - sonst geht's über den Zielpunkt hinaus.

    Für zwei Motoren beim Roboter (Differenzialantrieb) wird's schwieriger, weil beide Motoren "irgendwie" synchronisiert werden müssen.
    Entweder entwirft der Lageregler für beide Motoren eine Bahn aus Punkten und berechnet die Motorgeschwindigkeiten dazu ...

    ...oder (einfacheres Modell)
    der Lageregler bildet z.B. laufend Winkel- und Streckendifferenz zum Zielpunkt und regelt beides aus.
    (da könnte man z.B. sagen, es sind zwei getrennte, parallel liegende Regelglieder, die durch Addition die passenden Geschwindigkeiten für die Motoren generieren).
    Letztlich hat das aber alles kaum noch mit PID zu tun.



    Auch wichtig:
    Kaskadenregler sind in der Regel so aufgebaut, dass die Regelzyklen von innen nach außen langsamer werden.
    Wenn also die Geschwindigkeit jede 4ms geregelt wird, passiert eine Neuberechnung der Lageregelung vielleicht im 16ms-Zyklus.

    Da kommen wir jetzt auf 2 Probleme:
    1. Bei den einfacheren Modellen sitzen die Encoderscheiben auf den Radachsen. Mit vielleicht 20 Impulsen pro Umdrehung bekommt man da nicht viel Signal, wenn der Geschwindigkeitsregelzyklus zu fix ist.
    Besser wäre hier eine schnellere Messmethode für die Geschwindigkeit, wie z.B. die Messung der Generatorspannung am Motor in den Pulspausen der PWM. Das hat zusätzlich auch den Vorteil: Wo wir vorher vielleicht 0..30 Encoderschritte pro Zyklus messen konnten, messen wir nun mit voller ADC-Auflösung die Generatorspannung des Motors viel feiner (auch, wenn's rauscht).

    2. Auch mit Encodern vor dem Getriebe (höhere Auflösung) kann man die Ziellage nicht mehr mit der Auflösung in Encoderschritten vorgeben, weil der Geschwindigkeitsregler in seinen 4 Zyklen pro Lagereglerzyklus keine 1/4 Schritte als Geschwindigkeit messen kann.
    Also: Von der Genauigkeit her kommt man da an andere Grenzen, als gedacht.


    Die Akkuspannungsidee:
    Strom und Geschwindigkeit sind nur bedingt proportional. Anlaufströme sind ein Vielfaches der Nennströme, dazu kommt beim Roboter das Losbrechmoment beim Anfahren, unterschiedliche Untergründe, sowie Steigungen, Gefälle, also jede Art von Lastwechsel.
    Wenn Du das versuchen willst, ohne den Akku zu belasten, bräuchtest Du meiner bescheidenen Ansicht nach einen Puffer im Bereich von Amperesekunden und das wäre schon fast wieder ein Akku.
    Geändert von Holomino (Heute um 15:12 Uhr)

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2004
    Beiträge
    12
    Vielleicht habe ich das Problem nicht genau genug beschrieben. Während der Formulierung scheint mir das aber auch klarer zu werden. Die Fahrsteuerung funktioniert soweit auch ohne Positionsregler als reine Steuerung. Anstelle einer Fahrpositionierung möchte ich den Akku steuern. Der Motor dient hierzu einfach als steuerbare Last. Er fährt nicht von Position A nach B sondern eben nur soviel wie Energie zur Verfügung steht. Momentan funktioniert das so, daß er erst losfährt wenn die Batterie voll ist. 100% volle Batterie sind schlecht für deren Lebensdauer. Ausserdem geht Energie verloren, wenn die Solarzelle mehr liefert wie der Motor verbraucht weil sie nicht mehr zwischengespeichert werden kann. Vergleiche auch Marsroboter Spirit/Curiosity o.ä. Die bekommen Marstäglich eine unbekannte Menge Energie in einen Akku fester Größe geliefert. Damit sollen sie eine maximale Fahrstrecke bewältigen, möglichst viele Versuche mit ihren Sensoren machen. Beim Losfahren ist aber meist noch gar nicht klar was und wohin. Irgendwann geht der Akku zu 'Ende weil die Sonne nichts mehr liefert. Es ist jetzt Aufgabe des Reglers dem Motor zu sagen, daß er seine Leistungsaufnahme drosseln soll.Vielleicht nur noch aus einem Loch rausfahren so daß die Position am nächsten Sonnenaufgang ideal ist um frühzeitig mit der Akkuladung zu starten. Insgesamt muß aber ein gutes Sicherheitspolster im Akku verbleiben, so daß der Funkverkehr auch bei Nachtfrost niemals ausfallen wird. Deshalb wird beim Sonnenaufgang mit einer absichtlich pessimistischen Prognose noch immer etwas Akkuladung vorhanden sein. Mit dieser kann man dann frühzeitig losfahren um den Akku auf minimalen Ladezustand zu entleeren. Möglichst kurz bevor er während des anstehenden Tags sowieso wieder geladen werden wird und dabei eine maximale Energiemenge aufnehmen muß.

    Also: Der Encoder liefert bei einer Fahrpositions Kaskade das Geschwindigkeitssignal in den inneren Regler und aufsummiert das Positionssignal in den äusseren Positionsregler.
    Jetzt: Der Strom-Shunt des Akkus liefert dem inneren schnellen Stromregler ein Stromsignal. Der Coulomb Zähler im Batterie Monitor IC summiert die Ampereskunden auf, was den Istwert-Ladezustand SOC für einen äusseren langsamen Regelkreis gibt.

    Der innere Regelkreis beeinflusst den Istwert des äusseren Regelkreises indirekt, weil ja bekannt ist, daß der Akku Ladezustand bei Entladestrom irgendwann kleiner wird und bei Ladestrom irgendwann größer wird. Der schnelle innere Stromregler kann aber längst reagieren, bevor der Akku einen geänderten Ladezustand viel zu spät zurückmeldet. Nähert sich der Akku Ladezstand seinem Ende, so gibt der übergeordnete langsame äussere SOC Regler einen niedrigeren Strom für den inneren Stromregler vor. Der Roboter kann solange noch mit einer verringerten Motorleistung langsam irgendwo hinfahren. Bei hohem SOC kann er umgekehrt maximale Geschwindigkeiten und Beschleunigungen fahren, weil der Strom sonst wegen zu vollem Akku sowieso verloren gehen würde.

    Die Anfahrströme sollten im Sekundenbereich kein Problem sein. Die liefert der Akku problemlos wozu ich auch nur max 0,3-0,4C veranschlage. Eher zu hohe Dauerströme denn er soll wenigstens einen Tag autark fahren können. Das geht nur <<0,1C. Verringert man die Stromentnahme gegen Entladeende, geht die Spannung wegen der Entlastung mitunter wieder etwas nach oben ohne daß der Coulomb Zähler den Ladezustand deshalb korrigiert. Man sollte sich also nicht mit maximaler Last an das Entladeende rantasten um etwas mehr aus dem Akku rausholen zu können (Peukert-Exponent) Es ist also eher eine Leistungsbetrachtung als reiner Strom. Die Akkuspannung ist nahezu konstant. Die Motorspannung nicht. D.h. der Motor kann auch mit kleiner Geschwindigkeit, kleiner Spannung aber hohem Strom einen hohen Drehmoment bringen aber eben nur bei langsamer Geschwindigkeit. Aber ich werde das alles selbst ausprobieren müssen.
    Geändert von Janvi (Heute um 16:56 Uhr)

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.701
    Grüß Dich Janvi.
    Vielleicht habe ich das Problem nicht genau genug beschrieben ...
    Ohh, das ist schon sehr ausführlich, mir brummt grad der Schädel.

    Ich hatte vor längerer Zeit etliches über Regelung meiner zweirädrigen Coladose geschrieben, jedes Rad mit separatem Antrieb, Encoder und Regelungsroutine. Ich glaube das ist, im Prinzip, auch Deine Aufgabe. Mein Ziel war dabei, die beiden >unabhängig voneinander angetriebenen und geregelten< Motore so zu regeln, dass eine halbwegs saubere Geradeausfahrt über ne halbwegs überschaubare Strecke möglich wird.

    Einer meiner ersten Beiträge zur Regelung hier (klick), mehr dazu im Laufe dieses Threads.

    Im Thread "Autonom in kleinen Dosen: R2_D03 + Nachfolger R3D01" hatte ich zu MEINEM Vorgehen/Arbeiten bei der Regelung meiner zwei Dosenantriebe mehr geschrieben, etwa ab hier (klick wieder).

    Zum Regelungsproblem eines Kollegen im Forum hatte ich den darauf hingewiesen, erstmal eine Skizze zu machen (klick), darin der Hinweis auf den verlinkten Threadabschnitt und die Fachkunde "Regelungstechnik" (klick wieder) im Forum.

    Vielleicht hilft Dir das etwas weiter?

    Viel Erfolg.
    Geändert von oberallgeier (Heute um 23:07 Uhr)
    Ciao sagt der JoeamBerg

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 13.05.2013, 12:47
  2. I2C Verständnisprobleme
    Von Ezalo im Forum Robby RP6
    Antworten: 24
    Letzter Beitrag: 01.05.2011, 17:06
  3. Verständnisprobleme -> Drehmomentrechner
    Von selan im Forum Motoren
    Antworten: 9
    Letzter Beitrag: 13.11.2006, 14:25
  4. Syntax - Verständnisprobleme
    Von R2D3212 im Forum C - Programmierung (GCC u.a.)
    Antworten: 8
    Letzter Beitrag: 05.07.2006, 01:41
  5. Serielle Verständnisprobleme
    Von steffenvogel im Forum Software, Algorithmen und KI
    Antworten: 6
    Letzter Beitrag: 09.04.2006, 13:23

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen