PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Geschwindigkeitsreglung PI Regler



michi*
07.12.2012, 01:49
Guten Abend zusammen,

auf der Suche nach einer Problemlösung für mein Projekt bin ich auf eure Communitiy aufmerksam geworden.
Es handelt sich hierbei zwar nicht um einen Roboter aber vielleicht könnt ihr mir trotzdem ein wenig weiter helfen. Das würde mich sehr freuen.

Ich habe eine Seilwinde gebaut, mit der an beliebigen Stellen Wakeboard (Wasserski) gefahren werden kann. Bis jetzt gibt es fast nur Varianten mit Benzinmotor antrieben.
Ich treibe jetzt die Spule jedoch über einen Gleichstrommotor mit knapp 5 KW an. Angesteuert wird das ganze über einen Controller, der für Golf Karts und Elektro Autos gedacht ist.
Angesteuert wird dieser Controller mit einem Poti der zwischen 0V und 5V an den Steuereingang abgibt. Der Controller steuert den Motor dann proportional zu dieser Steuerspannung mit
max 48V an. ( 0V= stillstand 5V= Vollgas)
Dieses System funktioniert an für sich auch.

Jetzt würde ich jedoch gerne die Geschwindigkeit automatisch Regeln lassen. Ich möchte eine Geschwindigkeit vorgeben ( z.B. 30 km/h) und die Seilwinde soll nun die geschwindigkeit Kostant halten.
Dies geschieht bis jetzt manuell über den Potentiometer. Denn um so mehr Seil aufgespult wird, um so höher wird die Geschwindigkeit. Dazu kommt das bei Lastwechsel ( z.B. Sprung eines Fahrers aus dem Wasser)
der Motor auch kurzzeitig beschleunigt. Dies möchte ich versuchen nun auszugleichen.
Ich dachte da an einen PI Regler. Dieser bekommt die aktuelle Geschwindigkeit direkt vom Seil mit hilfe eines Sensors.

Jedoch weiß ich nicht ob es da Regler Systeme gibt die mit max 48V DC laufen oder ich aber ein Regler selbst programmieren muss. Vielleicht könnt ihr mir an diesem Punkt weiter helfen?

Wenn diese Reglung umgesetzt werden kann, würde ich gerne eine Startrampe programmieren und eine automatische Abschalltung. So das am Ende nur noch ein Start Knopf gedrückt werden muss und die Seilwinde fährt über
diese vorgegebene Rampe auf Nenngeschwindikeit und Stopt automatisch nach X Umdrehungen ( die die vorher abgespult wurden)

Hier eine einfache Skizze
23959

Übere eure Hilfe würde ich mich riesig freuen.
Michi

021aet04
07.12.2012, 20:44
Wilkommen im Forum,
Damit due die Drehzahl konstant halten kannst brauchst du einen Tacho oder einen Drehgeber, der die Drehzahl misst. Ein Tacho gibt ein Analogsignal zurück, besser wäre ein Drehgeber (es reicht eine Spur), da du auch die Umdrehungen messen kannst.

Das einfachste wird sein einen Regler zu programmieren, der den Sollwert zwischen 0 und 5V ausgibt. Die 5V für den µC (den Regler z.B. mit µC) erzeugst du aus der vorhandenen Spannung (am Besten die niedrigste zur Verfügung stehende). Wenn die Spannung zu groß wird kannst du auf einen Schaltregler zurückgreifen. Wenn du einen µC nimmst kannst du die Rampe im Programm anpassen/programmieren.

Du findest im Wissensbereich (RN-Wissen) einen Beitrag zum Thema Regelung.

MfG Hannes

ranke
08.12.2012, 15:11
Bei der technischen Realisation gibt es verschiedene Möglichkeiten. Nachdem der Motorcontroller mit einem Analogsignal angesteuert wird, wäre auch ein analoger Regler denkbar. Das hängt auch davon ab, was für ein Sensor gewählt wird. Ich denke, dass eine PI Charakteristik nicht nötig wäre, ein reiner P-Regler sollte genügen.
Wie bei allen Anwendungen bei denen Maschinenkräfte auf Menschen einwirken sollte man auch ein besonderes Augenmerk auf die Auswirkungen von Fehlfunktionen im System haben. Beispielsweise würde der Regler beim Ausfall des Sensorsignals auf maximale Leistung steuern und am Seilende auch nicht abschalten. In dieser Situation darf keine gefährliche Situation entstehen, möglichst unabhängig vom Eingreifen des Windenführers.

PICture
08.12.2012, 15:26
Hallo!

Genau ! Ein Typ und eine Art vom optimalen Regler kann erst nach detailierten Messungen und Analise des Vorhandenes und Gewünschtes gewählt werden. ;)

michi*
09.12.2012, 16:37
Hi
Ich werde gleich mal den Beitrag im RN-Wissen durcharbeiten. Ich dachte der I Anteil hilft mir dabei, dass wenn die Nenngeschwindigkeit erreicht ist diese Gehalten wird.
Mein " Wunsch" ist ja soweit denke ich klar, leider weiß ich noch nicht welche Messung ich hierzu vornehmen sollte.

Vielen Dank für die Antworten!
Michi

oberallgeier
09.12.2012, 17:15
... Ich dachte der I Anteil hilft mir dabei, dass ... die Nenngeschwindigkeit ... Gehalten wird ...Dazu tragen alle Anteile bei. Der I-Anteil sollte übrigens in einem Band um den Sollwert herum abgeschaltet werden, um ein ständiges Zittern möglichst zu verhindern.


... leider weiß ich noch nicht welche Messung ich hierzu vornehmen sollte ...Ich habe bei der Ausarbeitung der Regelung zu meinem MiniD0 hier über erste Messungen (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=404730&viewfull=1#post404730) berichtet. Das geht dann im Thread weiter bis über dieses Posting hinaus.
(https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=427784&viewfull=1#post427784)

wkrug
09.12.2012, 18:04
Wenn bei deiner Seilwinde Zahnräder verwendet werden, kannst Du als Drehzahlnehmer Zahnrad ( Geartooth ) Sensoren verwenden, wie sie z.B. im Auto als ABS Sensoren verwendet werden.

Ich meine eine P-Regelung sollte für deine Aufgabe eigentlich ausreichend sein, weil 1/2 Stundenkilometer hin oder her wird wohl hier nichts ausmachen.
Wenn die Sollwert Abweichung dann doch zu groß ist, kannst Du immer noch einen I-Anteil dazu mischen.

Die Parameter für die Regelung wirst Du wohl nur experimentell ermitteln können und vermutlich wird es je nach Lastzustand ein Kompromiss sein müssen ( Wechselnde Lasten bei unterschiedlichen Stunt's ) .

Ich würde so eine Regeelung mit einem Controller machen, weil man hier die Regelparameter ohne Austausch von Bauteilen ändern kann.
Alle größeren Controller unterstützen die Möglichkeit eines Bootloaders. Damit ließen sich die geänderten Quelldateien problemlos auf den Controller übertragen.
Ich würde da die serielle Schnittstelle verwenden.
Zudem kannst Du über diese Schnittstelle die aktuellen Drehzahldaten ( + Leistungseinstellung +... ) zum Laptop übertragen lassen und somit den Antrieb optimieren.
Wenn die Datenübertragung keine zu hohe Bitrate hat, sollten somit um die 20m Abstand zwischen Regelung und Laptop möglich sein.

Ob Du zum Anfahren eine " Rampe " brauchst, oder ob da gleich mit Vollast angezogen werden darf solltest Du eigentlich jetzt schon aus der Praxis wissen.

ranke
09.12.2012, 19:17
Ich dachte der I Anteil hilft mir dabei, dass wenn die Nenngeschwindigkeit erreicht ist diese Gehalten wird.

Der I-Anteil hilft die bei einem P-Regler unvermeidliche bleibende Sollwertabweichung zu minimieren. Bleibende Sollwertabweichung bedeutet, dass die tatsächlich durch den P-Regler erzielte Geschwindigkeit leicht von dem Wasserwiderstand abhängt. Muss die Winde stark ziehen, dann kommt sie z.B. nur auf 29,9 km/h, geht es leicht, dann zieht sie mit 30,1 km/h, jeweils bei Sollwert 30 km/h. Dieses Verhalten kann mit dem I-Anteil insofern verhindert werden, dass der Regler, wenn er über eine längere Zeit so eine Abweichung feststellt entsprechend nachregelt, so dass nach einer längeren konstanten Zugstrecke tatsächlich auf den Sollwert geregelt wird. Ich glaube aber, dass man das für diese Anwendung nicht braucht.
Da hier eine Geschwindigkeit mit einer Zugkraft geregelt wird (die Regelstrecke hat also integrierendes Verhalten), wird man die Regelverstärkung des P-reglers ziemlich hoch machen können, ohne dass der Regler instabil wird. Damit wird die bleibende Sollwertabweichung automatisch klein. Aus dieser Überlegung kam mein Vorschlag mit dem P-Regler (der PI-Regler bringt auch einige Probleme mit sich, wie der oberallgeier schon angedeutet hat).


Wenn bei deiner Seilwinde Zahnräder verwendet werden, kannst Du als Drehzahlnehmer Zahnrad ( Geartooth ) Sensoren verwenden, wie sie z.B. im Auto als ABS Sensoren verwendet werden.

Das gerade geht nicht, weil die Seilwinde keinen konstanten Wickeldurchmesser hat. Man müsste schon direkt am Seil eine Rolle mitlaufen lassen oder ein anderes Meßprinzip finden. Um ein Rutschen des Seils zur Meßrolle sicher zu verhindern wäre es günstig das Seil einmal um die Meßrolle zu schlagen. Selbst hier wird es kritisch, wenn man das Seil nicht ständig auf Zug hält (zum Beispiel beim Ausgeben des Seils, oder wenn der Boarder ausläßt). Allenfalls für die Endabschaltung könnte ich mir vorstellen, dass man die Umdrehungen der Wickelrolle zählt.

wkrug
09.12.2012, 19:43
Das gerade geht nicht, weil die Seilwinde keinen konstanten Wickeldurchmesser hat.
Das kann nur michi beantworten.
Die Bilder von den Wasser Ski Winden die ich bis jetzt gesehen habe, werden über einen Rundkurs geführt - ähnlich wie eine Seilbahn.
Notfalls könnte man eine federbelastete Rolle am Seil anbringen, die einen wie auch immer gearteten Drehzahlsensor antreibt.

michi*
10.12.2012, 12:37
Wow, erstmal Danke für die Vielen Antworten und Hilfestellungen

Hier ein Bild der schon funktionierende Seilwinde mit dem Benzin Motor. Mit der klassichen Wasserskiseilbahn hat dies weniger zu tun.
Es geht viel mehr darum, an außergewöhnlichen und unüblichen Stellen zu fahren.
23991

Bis jetzt war es so, dass bei jeder Seilwinde die gebaut wurde ein Bezinmotor verwendet wurde und dieser von Hand gesteuert wird. Ich dachte mir man könnte jetzt bei der Elektro version die Vorteile des Elektromotors
nutzen und eine solche Reglung versuchen, ob es klappt werde ich ja dann sehen:)
Fest steht das man momentan durchaus merkt, wenn sich die Spule immer weiter aufwickelt. Man kann dies zwar mit einem geübten Auge ausgleichen, trotzdem ist es beim fahren Spürbar.

Deswegen ist es denke ich wichtig die Geschwindigkeit direkt am Seil zu messen. Hierzu dachte ich an eine Rolle die vom Seil angetrieben wird. Mit 2 Bohrungen versehen, damit ich dann mit einem
Kapazitiven oder induktiven Sensor die Umdrehungen der Rolle erfassen kann.
Bei einem Durchmesser von 40mm wären das denke ich knapp 140 Impulse pro Sekunde ( Die meisten Sensoren die ich bis jetzt gesehen habe konnten über 500Hz, ich denke das sollte für den Sensor kein Problem sein).
Den genauen mechanichen Aufbau schau ich mir dann noch genauer an, wenn ich weiß wie die elektrische Umsetzung
aussehen sollte.

Ich werde mich also jetzt erstmal an dem P Regler halten und testen. Wenn nötig, kann ich ja immernoch von diesem Stand weiter programmieren und versuchen.

Ihr habt ein fertigen Controller mit Bootloader empohlen. Wäre ein Arduino Board dieser Aufgabe gewachsen?
Von der Hardware bräuchte ich also dieses Arduino Board und einen passenden Sensor. ( Evtl einen 2ten um die Umdrehungszahl der Winde zu überwachen und die Auto Stop funktion sicher umzusetzen)

Danke für eure Hilfe

021aet04
10.12.2012, 22:26
Von der Rechenleistung würde ein Arduino reichen. Du musst aber darauf achten das die µCs (auch der Arduino ist einer) mit max. 5V betrieben werden darf (je nach Typ). Wenn du einen Sensor mit mehr als 5V an den Eingang anschließt wird dieser zerstört (z.B. induktiver Näherungssensor).

MfG Hannes

michi*
21.12.2012, 20:43
Heute ist mein arduino Board angekommen, habt ihr evtl eine Empfehlung für einen 5V Sensor ? Ich finde bis jetzt nichts passendes.

Frohe Fest Tag
Michi

deko
22.12.2012, 09:01
Was spricht gegen eine IR-LED und einen Fototransistor am ICP-Pin des AVR?

Die Led bringst du so an das das Licht durch das Loch des Rades fällt.
Der Transistor schaltet dann den ICP-Pin nach Masse, Pullup Widerstand nicht vergessen.

So kommst du schon mal auf die Drehzahl... und günstiger gehts nicht --> 50ct