PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linearmotor Motorsteuerung Algorithmus S-Kurve ?



stochri
06.01.2007, 06:57
Hallo Zusammen,

hat hier schon eimmal jemand einen Motorsteuerungsalgorithmus für einen Linearmototr + Encoder realisert, der eine Beschleunigungsprofil abfährt?

Bei Motorsteuerungen gibt es sogenannte S-Kurven für Beschleunigung und Verzögerung. Mich würde interessieren, ob es so etwas schon fertig für einen Atmega gibt.

Gruss,
stochri

sigo
25.01.2007, 21:22
Hi Storchi, da sich noch niemand gemeldet hat, schreib ich mal,was ich weiß.

Fertig hab ich leider auch nichts anzubieten. Aber ich hab das mal vor viiielen Jahren für einen 80KC196 gemacht.

Und zwar mit einer Look-up-Table. Also einer normierten Sin²-Kurve mit 256 Stützpunkten o.ä.

Man konnte dann einfach die mittlere Beschleunigung und Endgeschwindigkeit angeben. Und die Sin²-Rampe wurde dann so skaliert, dass es passte. Zwischen den Stützpunkte einfach linear interpoliert..

Die S-Kurve ist jedenfalls eine sinus²-Kurve, sie verhindert, dass es beim Übergang in die konstante Geschwindigkeit ruckelt..

Das Prinzip ist immer ein Rampengenerator erzeugt das Geschwindigkeits-Zeitprofil, bzw. besser noch das Weg-Zeit-Profil. Und ein PID-Regler sorgt dafür, dass der Motor das auch macht..

In einem ersten Schirtt könntest du z.B. mit einem "Multiprozessorsystem" arbeiten, indem du 2 AVR-Controller nimmst.

Der 1. erzeugt das Weg-Zeit-Profil
Der 2. regelt dann den Motor

Da es den 2. auch fertig gibt, bräuchtest du nur den Rampengenertor zu proggen, was nicht soo schwer ist. Hardware statt Hirnschmalz eben..
Natürlich dürfte er AVR das auch locker allein schaffen..

Ein paar Infos über die Funktion gibt z.B. das Datenblatt des LM629 von National Semiconductor..

Gruß Sigo