PWM-Arbeitszyklus-Drehzahlregelung über die Erfassung des DC-Motorstroms

Ich habe einen Gleichstrommotor, der drehzahlgeregelt werden muss, dh er muss sich unabhängig von der Last mit konstanter Drehzahl drehen. Ich habe gelesen, dass dies erreicht werden kann, indem der Strom durch die Motorwicklungen überwacht und die Motorantriebsspannung entsprechend linear erhöht wird.

Ich habe einen Dreieckoszillator und einen Komparator, um die PWM zu erzeugen. Die Referenzspannung (geht von 0 bis 10 V) am Komparator „wählt“ den gewünschten Arbeitszyklus aus. PWM läuft mit 20 kHz. Der Motor wird von dieser PWM über PMOS angetrieben, wobei die Low-Side-Strommessung über OPAMP erfolgt.

Ein linearer Stromanstieg erhöht linear die Referenzspannung, was wiederum das Tastverhältnis linear erhöht.

Das Problem besteht darin, dass bei ausgeschaltetem PMOS kein Strom fließt, also keine Spannung erfasst und keine Referenzspannung eingestellt ist (für den Arbeitszyklus). Ich möchte, dass das vorherige Tastverhältnis (Referenzspannung) für ein paar PWM-Impulse (sagen wir vorerst 5 ms) unverändert bleibt und dann auf einen neuen Wert wechselt.

Ich könnte OPAMP mit Strommessung mit Offset haben, um einen allgemeinen Arbeitszyklus (Referenzspannung) ohne Strom zu erzeugen. Aber das würde immer noch zu Einbrüchen im Arbeitszyklus führen, wenn PMOS ausgeschaltet wird.

Ich denke, PI-Regler mit OPAMP-Integrator, würde das funktionieren, wie würde ich es implementieren?

Mit freundlichen Grüßen!

BEARBEITEN: Es ist ein PMOS mit Motor und Strommesswiderstand auf der unteren Seite.

klingt ein bisschen so, als würde das Ganze mit einem Mikrocontroller, der auf das Problem geworfen wird, einfacher werden :)
Wenn Sie eine geregelte Motordrehzahl wünschen, messen Sie den Strom NICHT, da der Strom von der Last abhängt. Messen Sie die Rotationsgeschwindigkeit entweder als einen Impuls pro Umdrehung oder über einen Multiimpulssensor. Sie erhöhen dann den PWM-Einschaltzyklus, um die Geschwindigkeit konstant zu halten. Messen Sie den Strom nur, wenn Sie eine Überstromerkennung wünschen.
Wenn Sie keine Drehzahl erfassen möchten, steuern Sie die Ankerspannung. Die Ankerspannung ist proportional zur Drehzahl. Zur besseren Drehzahlregelung können Sie mit dem Stromsensor eine Spannungsaddition berechnen, um den Spannungsabfall durch den Ankerwiderstand zu kompensieren.
@MarcusMüller Ich habe nur 8bit AVRs, ADC mit 15 kSa/s was zu langsam ist.
@JackCreasey Ich habe keinen Zugang zur Welle und kann den Encoder nicht montieren.
@CharlesCowie Das mache ich bereits, das Problem ist, wenn PMOS ausgeschaltet ist. Es würde große Änderungen im Arbeitszyklus zwischen dem Schalten verursachen und zu unregelmäßigem Fahren führen (glaube ich?)

Antworten (1)

Wie @JackCreasey betonte, gibt der Stromsensor selbst keine korrekte Drehzahl an, da der Strom von einer Last abhängt.

Aus Ihrem Kommentar haben Sie keinen Zugriff auf die Motorwelle und können keinen Encoder darauf setzen. Aber jeder Motor soll etwas antreiben . Wenn Sie Zugriff darauf haben, können Sie dort die Drehzahl messen.

  • Beispielsweise können induktive Näherungssensoren mit Metallgetriebe oder Turbine verwendet werden.
  • Hall-Effekt-Sensoren können mit rotierenden Eisenteilen oder mit Kunststoffteilen verwendet werden, wenn Sie winzige Magnete darin einbetten können.
  • Infrarot- oder Laserdioden können praktisch mit allem verwendet werden. Normalerweise benötigt man zwei Flächen mit unterschiedlicher Reflexion (zB durch Aufkleben von Reflexfolie irgendwo), aber bei sorgfältiger Anordnung von Brennpunkten und Empfindlichkeit geht es auch ohne. Eine andere Konfiguration besteht darin, einen direkten Lichtweg zu haben, der durch einen rotierenden Teil unterbrochen wird.
  • Schließlich können Sie möglicherweise einen Encoder am rotierenden Teil anbringen. Wenn Sie ein Getriebe haben und die Drehzahl viel langsamer als die Motorwelle ist, bedeutet dies nur, dass Sie einen Encoder mit mehr PPR benötigen.

Wenn nichts davon für Sie funktioniert, gibt es möglicherweise eine Möglichkeit, entweder einen Strom- oder einen Spannungssensor zu verwenden, allerdings nicht durch Messen des Effektivwerts, sondern durch Messen und Filtern von Schwankungen.

Sie haben erwähnt, dass Sie sich Sorgen um den Zustand machen, wenn PMOS ausgeschaltet ist. Aber genau dann setzt die Gegen-EMK ein und kann gemessen werden, um die Kommutierung der Bürsten zu erkennen.

Siehe hier und hier für Beispiele und Theorie.

Update: Habe noch ein paar Beispiele für Sie gefunden. Diese zählen keine Kommutierungsschwankungen, sondern messen einfach die Gegen-EMK während der FET-Ausschaltzeit: AB-021 , AN893