Hallo, ich möchte den Pegel eines Signals (z.B. PWM) entsprechend anpassen. Ein normales PWM-Signal sieht ja folgendermaßen aus: 5V ---- ---- | | | | | | | | 0----- ----- ----- Nun möchte ich das Signal so anpassen, das der "Low-Pegel" nicht ganz auf null geht, sondern noch einen gewissen Reststrom besitzt. Also so: 5V ---- ---- | | | | | | | | 1V ----- ----- ----- 0---------------------------------- Wie kann man so etwas realisieren? Gruß Max
@Max > Nun möchte ich das Signal so anpassen, das der "Low-Pegel" nicht ganz > auf null geht, sondern noch einen gewissen Reststrom besitzt. a) wieso? b) Ein PWM Signal hat keinen RestSTROM, bestenfalls eine Offsetspannung. MfG Falk
>> a) wieso? Möchte einen Servomotor über PWM-Steuern. Klappt soweit schon ganz gut, aber im nidrigen Drehzahlbereich hat der Motor keine Kraft. >> b) Ein PWM Signal hat keinen RestSTROM, bestenfalls eine Offsetspannung. Ja, hast Recht. Offsetspannung wäre das richtige Wort gewesen. So etwas suche ich aber. Hab gelesen das könnte man über eine NPN/PNP-Transistor-Kombination machen. Doch der Aufbau ist mir nicht ganz klar. Vielleicht kann mir das einer kurz erklären?
@Max > Möchte einen Servomotor über PWM-Steuern. Klappt soweit schon ganz gut, > aber im nidrigen Drehzahlbereich hat der Motor keine Kraft. Und wieso glaubst du, dass durch den Spannungsoffset im PWM Signal der Servo dann Kraft hat? > Doch der Aufbau ist mir nicht ganz klar. Vielleicht kann mir das einer > kurz erklären? Ich denke du braucht keinen derartigen Offset. Bei der PWM ist das Tastverhältnis der Informationsparameter, nicht die Spannung. MfG Falk
Der Spannungsoffset wird an Deinem Schalttransistor (oder womit auch immer Du den Motor ansteuern willst) schön viel Verlustleistung erzeugen. Ne PWM nimmt man doch grad deswegen, damit die Schaltelemente nur "Volle Pulle" und "Null" abkriegen und außer beim Umschalten die Verlustleistung sehr gering ist. Wenn Du nen Arbeitspunkt irgendwo mittendrin wählst, haste im ungünstigsten Fall ne Heizung gebaut. Und mehr Drehmoment kriegste nur durch mehr Strom, den Du über einen nicht voll durchgeschaltetes Schaltelement aber wieder begrenzt und verheizt. Wenn Du den Motor wirklich einigermaßen linear von 0...100% betreiben willst, musste ne Drehzahlregelung spendieren, die das Tastverhältnis der PWM entsprechend anpasst, um das erforderliche Drehmoment für die jeweils gewünschte Drehzahl zu erreichen.
Und wie bekomme ich es dann hin, dass der Servo bei einer niedrigen Drehzahl mehr Kraft erzeugt? Gruß Max
> Wenn Du den Motor wirklich einigermaßen linear von 0...100% betreiben > willst, musste ne Drehzahlregelung spendieren, die das Tastverhältnis > der PWM entsprechend anpasst, um das erforderliche Drehmoment für die > jeweils gewünschte Drehzahl zu erreichen. Hört sich gut an! Wie muss ich da vorgehen?
Indem Du das Tastverhältnis nichtlinear veränderst (was nur dann wirklich funktionieren kann, wenn die Last konstant ist) oder, wie oben schon gesagt, mit einer Drehzahlregelung.
> Und wie bekomme ich es dann hin, dass der Servo bei einer niedrigen > Drehzahl mehr Kraft erzeugt? Dazu müsstest du den Servo aufreissen und modifizieren. Vielleicht reicht einfach eine etwas höhere Spannungsversorgung? Was für ein Servo ist es denn? MfG Falk
Mein Posting von 15:16 bezog sich natürlich auf das von 15:13...
> Hört sich gut an! Wie muss ich da vorgehen?
Du musst die Drehzahl erfassen, eine Regeldifferenz (Sollwert - Istwert)
bilden, die Regeldifferenz über einen entsprechenden Regelalgorithmus
(PI-Regler wäre in so einem Fall ratsam) in ein PWM-Tastverhältnis
umwandeln und ausgeben. Das ist mit einem µC im Prinzip recht einfach,
das größte Problem dürfte die Erfassung der Drehzahl (Istwert) sein...
Wenn das zu kompliziert ist (was ich aufgrund der Fragestellung mal
vermute), kannst Du wie gesagt das Tastverhältnis nichtlinear ändern
(also bei niedriger Drehzahl mehr Spannung draufgeben, im Prinzip deinen
Offset digital erzeugen). Das ist zwar keine sonderlich präzise Lösung
(gerade bei sehr geringen Drehzahlen), aber immer noch besser, als
Transistoren zu Heizkörpern zu degradieren und dabei nicht mal den
gewünschten Effekt erzielen...
@johnny.m > Du musst die Drehzahl erfassen, eine Regeldifferenz (Sollwert - Istwert) >bilden, die Regeldifferenz über einen entsprechenden Regelalgorithmus Gehts nicht um Servos? MfG Falk
@Falk:
Zitat OP:
> ...aber im nidrigen Drehzahlbereich hat der Motor keine Kraft...
Gut, dann werde ich mal die Variante mit dem Regler angehen. Werd ich schon irgendwie hinbekommen. Von nix kommt nix ;-) > Das ist mit einem µC im Prinzip recht einfach, > das größte Problem dürfte die Erfassung der Drehzahl (Istwert) sein... Wie erfasse ich denn die Drehzahl am besten?
So, das mit dem Regler ist soweit klar! Hab ich verstanden und den Code auch schon soweit umgesetzt. Nun hat jonny oben geschrieben, das schwierigste wäre die Erfassung des Istwertes, also der Drehzahl. Ist denn aber der geregelte Wert, den ich dem PWM Signal am Ende der Regelung zuweise, nicht dann meine Drehzahl? Oder hab ich da nen Denkfehler?
@Max > das mit dem Regler ist soweit klar! Hab ich verstanden und den Code auch > schon soweit umgesetzt. Du bist ja von der schnellen Sorte ... > Nun hat jonny oben geschrieben, das schwierigste wäre die Erfassung des > Istwertes, also der Drehzahl. Ist denn aber der geregelte Wert, den ich > dem PWM Signal am Ende der Regelung zuweise, nicht dann meine Drehzahl? Oder auch nicht. ;-) Nein, dein PWM Signal ist die Stellgrösse, aus der die Regelstrecke (Motor) dann hoffentlich die gewünschte Drehzahl macht. Da das aber Last- und drehzahlabhängig ist, wird die Drehzahl nochmal explizit gemessen und ggf. die Stellgröse angepasst. Regelungstechnik versteht man nicht mal so hoppla hopp. MfG Falk
Ok, kapiert! Das heißt ich müsste eigentlich erstmal die Sprungantwort der Regelstrecke(Motor) messen. Anhand derer entscheide ich, was ich für einen Regler verwende. Die Drehzahl bestimme ich dann z.B. über einen Drehzahlmesser, der am Motor hängt. Dieser Wert wird A/D gewandelt(falls nötig) und im Programm vom Mikrocontroller alls Istwert verwendet. Dann muss ich den Regler dimensionieren bzw. die Parameter richtig einstellen. Dachte noch drüber nach vielleicht mit Matlab Simulink diesen Regelkreis zu simulieren um so die einigermaßen optimale Parameter zu finden. Dann noch ein Bodediagramm um die Stabilität festzustellen und dann müsste das doch eigentlich passen. Soweit alles richtig?
Man kann alles übertreiben... Für Dein Servomotörchen brauchste sicher keine Sprungantwort zu messen und auch kein Bodediagramm, es sei denn, Du hast irgendwas bestimmtes vor. Abgesehen davon wirst Du allein aus der Messung der Sprungantwort sicher nicht alle Parameter der Regelstrecke ermitteln können, die Du für eine Simulation benötigst. Bau Dir einfach nen PI-Regler (bzw. nen PI-Algorithmus im Controller, was recht einfach ist) und spiel ein wenig mit den Parametern (Nachstellzeit, Verstärkung) rum, bis es passt. Das sollte für einen Experimentalaufbau mit einem Standard-Motor dicke reichen.
Kann ich den Istwert eventuell irgendwie umgehen, wenn ich im Moment keinen Drehzahlmesser oder ähnliches zur Hand habe. Was gibt es da für Möglichkeiten? > Abgesehen davon wirst Du allein aus > der Messung der Sprungantwort sicher nicht alle Parameter der > Regelstrecke ermitteln können, die Du für eine Simulation benötigst. Was wäre dazu denn noch nötig?
@Max > Soweit alles richtig? Ja. > Kann ich den Istwert eventuell irgendwie umgehen, wenn ich im Moment > keinen Drehzahlmesser oder ähnliches zur Hand habe. Was gibt es da für > Möglichkeiten? uhhhh, und schon wieder verrissen. :-( Regelung ohne ISTwert ist keine Regelung. MfG Falk P.S. Und der ganze Aufwand nur wegen eines falsch ausgewähltem/dimensioniertem Servo?
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.