Hallo miteinander Ich habe eine kleine Frage zu einer Positionsregelung für einen DC Motor: Der Motor wird über eine H-Brücke angesteuert, womit ich ihn vorwärts und rückwärts an bestimmte Positionen fahren kann. Respektive der Motor treibt über ein Untersetzungsgetriebe eine Welle an, die dann einen Schlitten an die Positionen fahren soll. Die momentane Position wird über ein Schleiferpotentiometer zum Prozessor zurückgegeben, womit ich weis, wo der Schlitten sich befindet. Die Daten zum Motor kenne ich: - Un 12V - P 11W - n0 9380 - Mn 14.2mN/m Das Getriebe kenne ich leider nicht, aber es wird sehr stark untersetzt, damit so dass der Motor nur noch etwa 5-10 Umdrehungen pro Minute macht. Zusätzlich zum analogen Positionssignal messe ich noch den Strom über einen ZXCT1009. Jetzt die grosse Quissfrage: Wie kann ich das ganze von einem Prozessor aus am besten realisieren, damit er mir die Positionen schön anfährt, aber nicht überfärht. Mit einem PID oder mit einem Rampenprinzip? Die H-Brücke habe ich direkt an einem kompatiblen PWM Port, womit ich auch noch die Geschwindigkeit regeln kann (Vorgabe ist zwischen 80-100%). Leider kenne ich mich mit diesem Bereich nicht so aus, habe zwar ein paar Kenntnisse von der Regeltechnik, aber so etwas ist absolut neu. PID: Scheint eine elegante Lösung zu sein (wenn der Regler abgeglichen ist), damit die Positionen sauber angefahren werden können, selbst bei ändernder Last (was bei mir der Fall ist). Aber so ist mir noch keine Idee gekommen, wie ich dann einen Sanftstart machen kann, weil die Leistung des Netzteils ist auf ~12W begrenzt. Rampe: Bis jetzt habe ich da die meisten Ideen, aber sobald problematische Zustände (Beschleunigung noch nicht abgeschlossen; wann Bremsphase einleiten, da die Distanzen und Belastungen nie gleich sind) eintreten, happerts dann mit den Lösungsideen. Ich währe dankbar, wenn Ihr mir ein paar Lösungsvorschläge machen könnt, respektive pro- contra Ansichte einbringen. Besten Dank MFG Patrick
:
Verschoben durch Moderator
Patrick B. schrieb: > Aber so ist mir noch keine > Idee gekommen, wie ich dann einen Sanftstart machen kann, weil die > Leistung des Netzteils ist auf ~12W begrenzt. In dem du zuerst einen Stromregler aufbaust der dir den Motorstrom regelt. Der Stromregler bekommt seinen Sollwert vom Drehzahlregler und der wiederum vom Positionsregler. Das ist die uebliche Loesung fuer Positionierantriebe. Also 3 Regler in einander geschachtelt. Stichwort Kaskadenregelung. Je nachdem koennstes du eventuell den Drehzahlregler rauslassen.
Was ist den absolut neu daran für dich? Ich verstehe nicht ganz wo dein Problem ist: 1. Du implementierst dir einen PD-Regler (PID ist nicht nötig, da deine Stecke schon integrierend ist) auf deinem Controller. 2. Die Führungsgrösse dieses Reglers kann nun eine von dir definierte Rampe sein um langsam anzufahren etc.. Da du wie ich vermute nicht alzu viele Daten von deiner Stecke etc. hast, würde ich einfach mal den Regler implementieren und dann empirisch oder eventuell unter der Verwendung von Einstellregeln die Parameter einstellen.
MB schrieb: > 1. Du implementierst dir einen PD-Regler (PID ist nicht nötig, da deine > Stecke schon integrierend ist) auf deinem Controller. Stimmt nicht, da die Störgröße nach dem integrierenden Streckenglied auftritt. Daher ist der I-Regler sinnvoll und je nach geforderter Genauigkeit auch nötig.
smatlok schrieb: > Stimmt nicht, da die Störgröße nach dem integrierenden Streckenglied > auftritt Ach Quatsch, die Position ist ja die rückgeführte Größe^^ und die Störgröße greift davor ein, damn ;-) - Trotzdem: PID Regler wennst du den Fehler unter Last auf 0 Regeln willst..
Oder PD wenn es schnell sein soll. Der I-Anteil regelt nicht nur auf 0-Fehler, sondern auch langsam!
Patrick B. schrieb: > so dass der Motor nur noch etwa 5-10 Umdrehungen pro Minute macht Das ist aber ein hochdynamisches System MfG Klaus
Klaus schrieb: > Patrick B. schrieb: >> so dass der Motor nur noch etwa 5-10 Umdrehungen pro Minute macht > > Das ist aber ein hochdynamisches System > > MfG Klaus Das ist eine grobbe Schätzung (Augenmass), da ich es bis jetzt weder messen konnte, noch irgendwelche Datenblätter gefunden habe. Eigentlich ist das ganze schon stabil, also immer die gleiche Drehzahl. MB schrieb: > Ich verstehe nicht ganz wo dein Problem ist: > > 1. Du implementierst dir einen PD-Regler (PID ist nicht nötig, da deine > Stecke schon integrierend ist) auf deinem Controller. > > 2. Die Führungsgrösse dieses Reglers kann nun eine von dir definierte > Rampe sein um langsam anzufahren etc.. Da komme ich jetzt nicht ganz mit: Mann kann ja den PID Wert errechnen, aber wie soll das dann mit der Rampe zusammenspielen? Also was ich bis jetzt so gelesen habe, empfehlt ihr nicht die H-Brücke über PWM anzusteuern?
Patrick B. schrieb: > Also was ich bis jetzt so gelesen habe, empfehlt ihr nicht die H-Brücke > über PWM anzusteuern? Sicher kannst du die H-Brücke mit PWM ansteuern. Dein PWM-Wert ist die Ausgangsgrösse deines Reglers. Wenn du jetzt einen Kaskadenregler baust also Positionsregler und dann Stromregler kannst du die Ausgangsgrösse des Stromreglers begrenzen und schon hast du deinen Sanftstart. Das ganze kannst du in Software auf einem AVR machen.
Steuere den Strom bzw. den PWM-Wert proportional zur Abweichung der Schlittens vom Sollwert. W.
OK, ich versuche das einmal etwas zusammenzufassen: Das analoge Geschwindigkeitssignal definiert mir ein PWM Wert von 80-100%. Dieser wiederum wird dann mit dem Strom Regler weiter verrechnet, welcher nochmals den neuen PWM Wert von 0-100% einstellt, damit die Anfahrrampe erreicht wird. Dazu noch eine Zwischenfrage: Wie steil darf diese Rampe sein? Zum Abbremsen übernehme ich einfach die Differenz zwischen Soll und Ist und gebe diese als PWM aus (ergibt 45° Rampe...), und das Maximum entspricht dem Analogsignal. Kann hierbei nicht das Problem auftreten, dass der Motor gar nicht das Soll erreicht, wenn die Führungsgrösse zu klein ist? Z.B der PWM steht noch bei 5%, aber die Last am Motor ist zu gross als dies noch reichen würde um den Motor zu drehen. Anders könnte man das Abbremsen über einen PID-Wert lösen, wodurch auch eine "Rampe" entsteht und die Position sicher erreicht wird. Das grösste Problem ist, dass die Soll-Position unter keinen Umständen überfahren werden darf, also ein Einschwingen darf nicht vorkommen.
Patrick B. schrieb: > Das grösste Problem ist, dass die Soll-Position unter keinen Umständen > überfahren werden darf, also ein Einschwingen darf nicht vorkommen. Du willst eine Präzisionspositionierung? Was für ein Poti verwendest Du denn als Geber? Gruss Harald
Keine Ahnung, was das Für ein Poti ist, da der mechanische Teil von einer externen Firma gemacht wird. Es ist ein "Band" auf dem es 5 Abnehmer hat sowie ein nachfolgendes mehrgang Poti zum Ableich. Ich bin arbeite mich gerade ein wenig in die PID Software-Version ein...
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.