Hallo! Zu Folgendem braeuchte ich mal ein paar Sinnvolle Ratschlaege: Hab einen 12V DC Getriebemotor. Am Ende des Getriebes befindet sich ein Potentiometer welches logischerweise den aktuellen Stand der Welle angibt. Das ganze wird ueber eine der beiden H-Bruecken des lm298 angesteuert. Der Enable Eingang des Motortreibers liegt am PWM Ausgangs meines ATMEGA32. Das Potentiometer von der Welle liegt an 5V und der Schleifer geht auf den ADC1 Eingang des Controllers. Der Aufbau funktioniert soweit recht wuenschenswert. SOLL: Der Motor soll 2 Stellungen, ca. 90 Grad entfernt voneinander, anfahren. Muss nicht besonder genau sein (ca. +-3Grad). ADC Wert hab ich schon auf 6Bit gekuerzt. Mein Frage dazu: Hat jemand eine Idee wie ich die Regelung in Software durchfuehren kann? Doch nach welchem System soll ich die Regelstrecke ausfuehren? P? I? PI oder vll PID? Leider habe ich nicht gerade viel Erfahrung in der Regelungstechnik. ASM Beispielcode waere gut. Oder wenigstens einen Loesungsansatz. Thx in advance. Frank PS:Bitte nicht einfach nen Link fuer Regelungstechnik I + II posten, das hab ich schon probiert.
>Doch nach welchem System soll ich die Regelstrecke ausfuehren? P? I? PI Die RegelSTRECKE hast du doch schon vorgegeben. Lageregler ist immer was mit I. >Leider habe ich nicht gerade viel Erfahrung in der Regelungstechnik. Das ist schlecht. Denn das ist ein sehr komplexes Thema und nicht mal schnell in einem Thread beschrieben. >Loesungsansatz. Was willst du erreichen? Sollen die beiden Positionen (abwechselnd) angefahren werden, also interessieren NUR die beiden Positionen, oder willst du dazwischen auch genau sein? Also ne "Umschaltung" zwischen A und B oder ist es wichtig, dass, wenn du am Soll-Poti drehst, die Ist-Position auch immer stimmt? Danach muss der Regler ausgelegt werden. Du brauchst somit entweder einen P oder PI-Regler. (Das ergibt zwar ein I2, also schwingfähiges Verhalten, aber sonst können Sollrampen nicht ausgeregelt werden) >ASM Beispielcode waere gut Ich würde dir C raten. Sonst musst du dich zusätzlich zur Regelungstechnik noch damit beschäftigen, wie du die Differenzengleichung in ASM umsetzt. >Muss nicht besonder genau sein Warum nimmst du nicht einfach einen Fensterkomparator. Wenn die Istposition weniger als x Grad von Soll entfernt ist, wird einfach der Motor (über die H-Brücke) kurzgeschlossen. Er steht dann praktisch sofort still. Weils ja ein Getriebe hat, dreht er sich nicht besonders weiter...
Danke erstmal
Zum Fensterkomperator:
Im Moment funktioniert mein Programm mit einem Fensterkomperator.
Doch ich dachte mir das muss doch auch eleganter gehen, und wollte eben
das Projekt gleich als Einstieg in die Regelungstechnik benutzen und
somit einen Regler nachbilden.
Meine erste Version funktioniert soweit. Jetzt moechte ich das ganze
erweitern:
Am ADC2 moechte ich nun ein Poti anschliesen, mit dem man die Grenzwerte
A und B vorgeben kann.
>>Also ne "Umschaltung" zwischen A und B oder ist es wichtig, dass, wenn
du am Soll-Poti drehst, die Ist-Position auch immer stimmt?
Ja es ist wichtig.
Danach muss der Regler ausgelegt werden. Du brauchst somit entweder
einen P oder PI-Regler.
Ok! gut. Und welchen?
Der erste Schritt ist geschafft.
Zwischen Errorsignal, Sollposition und Reglerausgang gibt es bei Servos keinen direkten Zusammenhang. Daher ist eine Regelung mit einem einfachen PID Regler nicht einfach (stabil) hinzubekommen, denn: - das Fehlersignal (Soll-Ist Position) erzeugt einen Stellgroesse = Strom in den Motor - der Strom bewirkt eine Beschleunigung - die Beschleunigung über die Zeit ergibt eine Geschwindigkeit - die Geschwindigkeit integriert über die Zeit ergibt eine Rotorposition = neue Ist-Position Daher sollte man in einem Regler diese zweifache Integration in der Reglerauslegung berücksichtigen um eine schwingungsfreie Regelung hinzubekommen. Wie das geht kann man z.B. hier sehen (wenn auch etwas knapp beschrieben): ELM - DC Servomotor Controller http://elm-chan.org/works/smc/report_e.html ELM - Home Built Laser Projector Fig.5 How Servo Works http://elm-chan.org/works/vlp/report_e.html
>- der Strom bewirkt eine Beschleunigung
soll natürlich lauten:
- der Strom bewirkt ein Drehmoment das zu einer Beschleunigung führt
>Daher sollte man in einem Regler diese zweifache Integration in der >Reglerauslegung berücksichtigen um eine schwingungsfreie Regelung >hinzubekommen. Ja. Die Wurzelortskurve muss den Punkt (-1;0) links liegen lassen ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.