Positionsregelung

OP #1059906
Hallo Forengemeinde,

ich möchte auf Basis eines Atmel-µC (evtl. Atmega8) einen Regler für 
eine Positionsregelung realisieren.
Die Programmierung soll in C erfolgen.

Leider habe ich mit dieser Art von Regelung (digital) noch wenig bis gar 
keine Erfahrungen.
Mein Vorhaben sieht wie folgt aus:

Mit einem Modellbauservo möchte einen bestimmten Winkel verfahren. Den 
Sollwert gebe ich in Form einer Spannung von 2V - 5V vor (AI-µC). Ein 
induktiver Wegsensor gibt mir den Istwert auch wieder als Analogsignal 
(AI-µC) zurück.

Ich habe Wissen über die Theorie der Regelungstechnik, habe jedoch noch
nie einen realen Regler ausgelegt.

- Welche Fragen sollte man sich im Vorfeld stellen um ein gutes Ergebnis
  zu erreichen ?
- Kenne verschiedene Verfahren zur Auslegung diverser Regler, wie siehts
  mit der Methode - Sprungantwort aus ?? Ist sie Empfehlenswert ?
- Wie finde ich heraus welcher Regler der Beste für diese Anwendung ist 
?

Sowohl im Forum als auch im Netz bin ich durch die Suche nur Teilweise 
voran gekommen.

Hoffe jemand kann mir helfen!
Danke
Gast #1060070
Hallo,

wir haben mal versucht, einen defekten Analogregler eines 
Modellbauservos mit einem µC zu ersetzen. Alle konventionellen Regler 
laufen schlechter als der analoge, der vorher drin war. Wir haben 
letztenendes einen Regler programmiert, der viele Sonderfälle 
berücksichtigt und sich damit dynamisch parametriert.

Probleme waren unter anderem:

DC-Motor hat hohes Anlaufmoment.
Getriebespiel.
Poti hat Spiel und rauscht.
Versorgungsspannung ist nicht stabil, wird auch von anderen Servos 
beeinträchtigt.
Innenwiderstand der Akkus ändert sich mit dem Entladezustand.

Und und und...


Das Ding ist alles andere als ein lineares oder linearisierbares System 
und wir haben ein halbes Jahr immer Abends dran gebatelt, bis es 
zufriedenstellend funktioiert hat.

Also merke, wenn dein Servo nicht mehr geht, kauf einfach einen neuen...


Grüße,

Peter
Persönliche Seite #1060234
Also das geht schon digital ich hab das gerade mit nem Atmel Arm 7 
gemacht. Aber auch schon mal mit nem Atmel Can Mikrocontroller (CC01) 
auf 8051 Basis.

Ich habe jeweils einen H-Brückenbaustein mit PWM und Richtungsignal 
verwendet.
Die Richtung hab ich mit nem Graycodegeber erfasst. Lochscheibe mit 2 
Gabellichtschranken.
Ne Positionsregelung mach man am besten mit 2 hintereinander 
geschalteten Reglern. Erstmal Geschwindigkeit regeln. Dann aus soll und 
ist position die Sollgeschwindigkeit machen.
Ich habs mit PID Reglern gemacht.
Ich leg mir die Regelabweichung in eine Variable. Daraus leite ich mir 
den P-Anteil (Faktor ab) Dann summiere ich den I-Anteil auf. Den Alten 
I-Anteil muss man halt immer in ner Globalen Variablen merken. Die alte 
Regelabweichung auch. zur Bildung des D-Anteil. Diff zwischen aktueller 
und alter Regelabweichung. Das ganze mit geeigneten Faktoren 
(Regelparametern) versehen und Summieren ergibt die Stellgröße.

Das ganze wird dann halt zyklisch (Timer ISR) aufgerufen.

Soweit die Theorie.....Das Optimieren heißt entweder viel probieren oder 
eben die regelstrecke analysieren und dann die Regelparameter berechnen 
(wers mag.....)


Gruß Bernd

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.