Was verstehst du genau unter PID ? Software oder Hardware ? Hast du dazu einen Link?
ElEspanol:
Was verstehst du genau unter PID ? Software oder Hardware ? Hast du dazu einen Link?
http://rn-wissen.de/wiki/index.php/Regelungstechnik#PID-Regler
Was verstehst du gensu unter PID ? Software oder Hardware ? Hast du dazu einen Link?
PID = proportional–integral–derivative controller, also ein etwas komplexer Regelkreis-Controller.
Wenn ich @TheTraveler inzwischen richtig verstanden habe, gibt es keinen "externen" PID, sondern diese Aufgabe soll wohl der Arduino Due übernehmen. -> ist meine Annahme richtig?
Wenn ja, dann haben wir folgende Situation:
- der Gyro-Sensor liefert die "Lage-Daten" als 8-bit-Werte an den Arduino auf dem I2C Bus
- der Arduino Due berechnet daraus "PID"-kompatible Korrektur-Werte und sendet diese auf dem I2C Bus
- an die beiden Mikrocontroller, die ihrerseits dann die beiden Motoren (via DC-Motor-Treiber) drehen lassen
Ich weiss schon was ein PID ist, hatte aber bisher den Eindruck, der TE meint damit eine Hardware, die über i2c angesprochen wird und wollte Klarheit schaffen. Aus der Antwort kann ich dies immer noch nicht rauslesen.
8-bit als Lagedaten ist etwas wenig, das wären gerade mal so 1,4°. Das kann nicht sein, der muss 0,1° oder so auflösen.
Welche Werte kommen von dem Lagesensor? ist der korrekt zur Längsachse des Fahrrades ausgerichtet?
Welcher Wert bei senkrecht? Welche Werte bei z.B. 5° links und rechts?
Ausgehend das der PID code auf dem Arduino läuft, wo stammt der code her?
rpt007:
PID = proportional–integral–derivative controller, also ein etwas komplexer Regelkreis-Controller.Wenn ich @TheTraveler inzwischen richtig verstanden habe, gibt es keinen "externen" PID, sondern diese Aufgabe soll wohl der Arduino Due übernehmen. -> ist meine Annahme richtig?
Wenn ja, dann haben wir folgende Situation:
- der Gyro-Sensor liefert die "Lage-Daten" als 8-bit-Werte an den Arduino auf dem I2C Bus
- der Arduino Due berechnet daraus "PID"-kompatible Korrektur-Werte und sendet diese auf dem I2C Bus
- an die beiden Mikrocontroller, die ihrerseits dann die beiden Motoren (via DC-Motor-Treiber) drehen lassen
Deine Annahme sind ja richtig. ich möchte nur einen Winkel und zwar Y-winkel in minus und plus bereich ausrechnen. das hier weiß ich nicht wie ich den PID-regler sage , nimm diese Werte und rechne es aus und übermittle es an den Motorcontroller weiter
ElEspanol:
Ich weiss schon was ein PID ist, hatte aber bisher den Eindruck, der TE meint damit eine Hardware, die über i2c angesprochen wird und wollte Klarheit schaffen. Aus der Antwort kann ich dies immer noch nicht rauslesen.8-bit als Lagedaten ist etwas wenig, das wären gerade mal so 1,4°. Das kann nicht sein, der muss 0,1° oder so auflösen.
Welche Werte kommen von dem Lagesensor? ist der korrekt zur Längsachse des Fahrrades ausgerichtet?
Welcher Wert bei senkrecht? Welche Werte bei z.B. 5° links und rechts?Ausgehend das der PID code auf dem Arduino läuft, wo stammt der code her?
ich weiß das 8 Bits zu wenig sind aber es stehen 4 byte zur Verfügung.
1- Die Werte sensor sind in Minus und plus bereich
2- die Werte sind ja halt unterschiedlich und abhängig von der Bewegung des Sensor zurzeit.
3- ich möchte nur klarstellen, wie weiß die PID-Regler das diese Werte berechnen müssen.
Wenn die Werte von der Bewegung abhängig sind, sind es evtl. accelerator Werte. Lagewerte sind nur abhängig von der Neigung des Sensors und zeigen bei Stillstand den entsprechenden Wert an. acc. Werte sind bei Stillstand immer 0, Lagewerte nur in einer bestimmten Position.
Mir kommt nicht vor daß Du Dir damit im Klarem bist.
Der Sensor gibt Dir Daten über die Erdanziehung gemessen in 3 Richtungen und die Drehung in 3 Achsen. Aus dem Beschleunigungsmesser kann man errechenen um welchen Winkel etwas Steht, In Deinem Fall um wieviel das Rad zur Seite kippt. Mit dem Gyroskop kann man enentuel die Messung verfeinern.
Der PID-Regler errechnet aus den Ist- und Soll-Daten und einiger Kalibrationswerten wie die beiden Motore angesteuert werden (welche Drehzahl/Leistung) sie abgeben sollen.
Wo fehlts Dir also genau?
Grüße Uwe
Schau auch mal hier:
http://forum.arduino.cc/index.php?topic=261200.0
Sorry, aber ich bin raus.
Ich habe immer noch keine Klarheit, ob jetzt der Due den PID spielen soll, oder ob es noch einen Hardware-PID außerhalb des DUE gibt.
Warum keine Skizze, welche Teile tatsächlich im Spiel sind - dann wüsste man endlich, welches Teil welche Rolle spielt und wo was programmiert/angepasst werden soll ?
Meine letzte Frage, damit die Mitdiskutanten hier weiterkommen:
- Gibt es einen separaten PID oder soll der Due als PID die beiden Motor-Controller ansteuern?
uwefed:
Mir kommt nicht vor daß Du Dir damit im Klarem bist.Der Sensor gibt Dir Daten über die Erdanziehung gemessen in 3 Richtungen und die Drehung in 3 Achsen. Aus dem Beschleunigungsmesser kann man errechenen um welchen Winkel etwas Steht, In Deinem Fall um wieviel das Rad zur Seite kippt. Mit dem Gyroskop kann man enentuel die Messung verfeinern.
Der PID-Regler errechnet aus den Ist- und Soll-Daten und einiger Kalibrationswerten wie die beiden Motore angesteuert werden (welche Drehzahl/Leistung) sie abgeben sollen.
Wo fehlts Dir also genau?
Grüße Uwe
Hallo Uwe,
Was du schreibst, weiß ich schon und mir ist auch bewusst. aber ich steh in Mittelpunkt, Wie ich den PID-Regler initialisieren muss.?????
Mein Sollwert ist ja den Setpoint=0 oder etwa nicht?? und den IstWert ist ja aus dem Sensor bzw.die Winkel.
und mit welchem Befehl an den Sketch soll ich dann die Ausgabe übermitteln
ich kenn mich halt nicht mit alle Befehle von Arduino aus und bin noch neue
Hallo TheTraveler,
Du kommst hier nicht einen Centimeter- mit einer brauchbaren Information rüber.
Wenn Du Sketche, verwendete Hardware und deren Beeinflussung für Dich behalten möchtest, dann wird das
hier nichts!
Beispiel:
"Mein Sollwert ist ja den Setpoint=0"
Was soll das sein? "Sollwert" Reifendruck?, Kettenspannung
Und das, "Setpoint=0", Kette gerissen, keine Luft auf den Reifen? Du könntest auch "Milchkanne=0" schreiben.
Sei mir nicht böse, aber so kommst Du hier nicht weiter...
Gruß und Spaß
Andreas
P.S. lasse das quoten, wir haben nur selten ein Kurzzeitgedächnis
Mit kommt es so vor, als erwartet er das wir seine tests machen und ihm dann genau passende Einstellparameter für seinen PID geben. Er muss sie dann nur abtippen und uns sagen ob es klappt oder ob wir noch etwas nacharbeiten müssen.
@TheTraveller
Die Tests mit der Hardware musst du erstmal machen, also mit den Motoren, den Rad, welche Power du drauf geben musst damit das Rad zb bei 30° ausser Mitte genau in Balance ist. So haben wir dann zumindest mal 2 Punkte auf der Kurve welche die kräfte beschreibt die das fallende Rad ausübt.
Dein Setpoint dürfte wohl 255 sein wenn du PWM nutzt, oder vieleicht auch nicht, wenn du etwas anderes nutzt zum ansteuern.
Das ist nun auch für mich mein letzter versuch dir zu helfen. Solltest du also weiterhin nur meinen alles schon zu wissen und nur die PID parameter brauchst, dann mach dir mal klar das du garnichts weist, weil du sonst die PID-Parameter dabei selbst auftauchen würden. Vermutlich weist du nichtmal was PID eigentlich genau macht ausser das du mal Wikipedia dazu gelesen hast. Aber dann bei den Differenzialgleichungen aufgehört hast zu lesen.
Und ja, wenn man es mal gerafft hat was da passiert, kommt man dahinter wie man es einstellen muss. Aber welcher Wert bei den Tuningparametern nötig sind muss man explizit an seiner Anlage selbst rausfinden. Die können von min bis max gehen und alles kann genau das richtige oder völlig falsch sein. Das merkt man erst im Versuch.
Nur zum Versuch kommst du ja garnicht erst.
Also
Bilder des Aufbaus
Daten deiner Tests
Genaue Beschreibung was du beim test wie gemacht hast
Vorher ist Hilfe einfach nicht möglich.
Ich könnte ja nun auch einfach sagen schreib PID(0,6,100,3,4,7,REVERSE) und versuchs mal. Die wahrscheinlichkeit das diese Parameter stimmen liegt bei 1:100.000 oder weniger. Könnten aber auch zufällig genau die richtigen sein.
Hast du dir die Übungen bei der PID-Library schonmal angesehen?
Das hilft vielleicht.
du willst also die Lage eine Gegenstand regeln. Also die Abweichung von der Senkrechten.
Was genau bekommst du denn von deinen Sensoren?
Eine Beschleunigung? einen absoluten Winkel? eine Winkeländerung?
Hast du denn, unabhängig von der Programmierung, eine Idee, auf welche Werte genau du regeln willst?
Es gibt viele Arten einen Lageregler aufzubauen.
Aber generell zum PID:
du hast einen Sollwert, der wird mit einem Istwert verglichen.
Basierend auf den Parametern errechnet er daraus eine Stellgröße.
Mir ist nicht klar, was genau dein Sollwert ist. (ich meine damit nicht "0", sonder welche Größe, basierend auf welchen Sensorwerten.
edit: Ändere doch bitte mal den Betreff deines ersten Posts "Ich brauch eure Hilfe" ist nicht sehr aussagekräftig.
Hallo,
wo sollen wir denn weitermachen? Hier oder Hier #18
Gruß und Spaß
Andreas