www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Regelkreis, aber bitte kein pid-fachchinesich


Autor: Philipp D. (thejoker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe Hobby-Regelungstechniker.
Ich habe einen tiny 2313 von Atmel, einen l298 Treiber und diese ( 
http://www.shop.robotikhardware.de/shop/catalog/pr... 
) Drehgeber hier. Beschaltung Auslesen der drehgeber und Ausgabe der PWM 
hab ich im griff, mir fehlt nur eine Idee zu folgendem Problem:

Der Controller soll über SPI Geschwindigkeiten für die beiden Motoren 
erhalten, außerdem sind die beiden Drehgeber angeschlossen.
Die Geschwindigkeit soll aber mit einer moderaten Beschleunigung 
geregelt werden um schlupf beim Anfahren und hohe Anlaufströme zu 
vermeiden.
Wichtig ist es, dass der Roboter genau geradeaus fährt, wenn er für 
beide Motoren den gleichen speed erhält.

Was momentan vom Roboter schon existiert könnt ihr hier sehen:
http://letsmakerobots.com/node/5984

Bitte kein pid-Fachchinesisch, bin kein studierter 
Automatisationstechniker

Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch wenn Du kategorisch dagegen bist, ist ein PID-Regler die beste 
Lösung und wird bei sowas auch am häufigsten verwendet. Man muss auch 
kein studierter Automatisationstechniker sein, um einen PID-Regler zu 
verstehen. Eine gute Beschreibung findest Du auf 
http://www.roboternetz.de/wissen/index.php/Regelungstechnik .

MfG Mark

Autor: Philipp D (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, vielleicht habe ich das ein wenig überbetont.
Danke für den Link, die Basics sind da ja ganz gut beschdieben, aber 
eine konkretere Antwort währe mir trotzdem lieber ;-)

Autor: Axel Düsendieb (axel_jeromin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Philipp,

1. erkennen ob Geradeausfahrt
2. beide Radumdrehungen pro Zeiteinheit zählen
3. sollwert rechter Motor = Sollwert + Faktor*Umdrehungsdifferenz
4. sollwert linker Motor = Sollwert

Auf die Vorzeichen aufpassen, da die Abweichung positiv oder negativ 
werden kann.

Das währe mit einfachen Worten ein P-Regler. Damit kannst Du  erst mal 
ins Rennen gehen. Der Faktor muss durch Probieren herausgefunden werden. 
Ist er zu groß, gibt es hecktische Korrekturen. Ist er zu klein bleibt 
etwas Schieflauf.

Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du Beispielcode suchst kann ich Dir 
http://www.henkessoft.de/Roboter/ASURO.htm empfehlen. Auf der Seite ist 
ziemlicch weit unten ein Programm enthalten, welches den ASURO mit einem 
PID-Regler einer Linie folgen lässt. Man könnte es als Basis für eine 
Geschwindigkeitsregelung verwenden, in dem man die aktuelle 
Geschwindigkeit anstatt die Daten der Helligkeitssensoren verarbeitet.

MfG Mark

Autor: Philipp D. (thejoker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ axel: Ja danke, genau so habe ich mir das auch gedacht, nur dass hier 
die Beschleunigung umso grösser ist, je weiter der Sollwert vom Istwert 
entfernt ist oder verstehe ich das falsch? das würde ja bedeuten erst 
mal mit vollgas aus dem stand los

Übrigens Danke für die schnelle Antworten ihr beiden

@ mark : danke, werds mir mal anschauen

Autor: *.* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann musst du halt eine Rampe vorgeben anstatt gleich die volle 
Endgeschwindigkeit draufzuknallen.

Autor: Axel Düsendieb (axel_jeromin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, der P-Regler bedeutet, dass der Motor der zu langsam ist etwas zu 
seinem Sollwert addiert bekommt. Oder ist er zu schnell bekommt er etwas 
von Sollwert abgezogen.

Axel

Autor: Philipp D. (thejoker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, wie währe das: Ich fahre eine Rampe bis zur ungefähr gewünschten 
Geschwindigkeit und zähle einfach alle Inkremente, wer als erster 
überläuft kriegt weniger saft?

edit: vergesst das, ich nehm den p-regler

Autor: Philipp D. (thejoker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, danke für die schnellen antworten, kriegt man sonst nirgends so fix. 
ich werde jetzt erstmal versuchen einen p-regler zu implementieren. 
Falls weitere Probleme auftauchen mach ich nen neuen Thread auf, aber 
jetzt schmeiß ich erstmal das avr-studio an, danke nochmal

Autor: Michael K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Nein, der P-Regler bedeutet, dass der Motor der zu langsam ist etwas zu
> seinem Sollwert addiert bekommt. Oder ist er zu schnell bekommt er etwas
> von Sollwert abgezogen.

Das ist ein klassischer I - Anteil bei einem Regler ...

Grüße,
Michael

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.