www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Signalpegel anpassen


Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ein pull-up-Widerstand und ein bis zwei Dioden zum PWM-Ausgang

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> 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?

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie bekomme ich es dann hin, dass der Servo bei einer niedrigen 
Drehzahl mehr Kraft erzeugt?


Gruß Max

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@johnny.m

> Du musst die Drehzahl erfassen, eine Regeldifferenz (Sollwert - Istwert)
>bilden, die Regeldifferenz über einen entsprechenden Regelalgorithmus

Gehts nicht um Servos?

MfG
Falk

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Falk:
Zitat OP:
> ...aber im nidrigen Drehzahlbereich hat der Motor keine Kraft...

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.