Sin-Signal von PWM

  • Ich habe ein Programm geschrieben, um mit Pulsweitenmodulation ein Sinussignal zu simulieren.

  • Ein Tiefpassfilter wurde hinzugefügt, um das Rauschen und die Spuren davon, dass es sich um ein diskretes Signal handelt, zu beseitigen.

  • Ein Einweggleichrichter wurde hinzugefügt, um den negativen Teil des Signals zu löschen, jedoch wurden nur 20 % statt der beabsichtigten 50 % gelöscht.

Fragen:

  1. Warum passiert das, wie werde ich die anderen 30 % los? Hat es etwas mit der hohen Frequenz der PWM zu tun?

  2. Was kann ich tun, um die Ausgangswechselspannung von 3 V auf 10 V oder 100 V zu erhöhen? (Ich kenne Spannungsvervielfacher), aber ich suche nach einem anderen Weg.

  3. Kann dies verwendet werden, um Schaltkreise einzuschalten, ohne sie zu beschädigen?

  4. Wie kann ich 10 A Strom zu meinem endgültigen AC-Ausgang hinzufügen?

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Warum machen Sie sich die "Mühe", mit dem PWM Ihres Arduino eine vollständige Sinuswelle zu erzeugen, nur um zu versuchen, die Hälfte davon extern mit einer Diode abzuschneiden? Wäre es nicht einfacher, nur die gewünschte Halbsinuswelle zu erzeugen?
Ich bin einfach mit dem Strom gegangen, aber ja, Sie haben Recht, es scheint einfacher zu sein, nur die positive Seite der Sinuswelle zu erzeugen

Antworten (3)

Um alle Ihre Fragen zu beantworten:

  1. Siehe die Erklärung von @JonRB, kurz gesagt: Sie erzeugen mit dem Arduino eine Welle von 0 V bis 3 V, da das Arduino keine negative Schiene besitzt, mit der es arbeiten kann. Sie müssen also das Signal relativ zu einer Masse machen, anstatt seinen aktuellen DC-Offset von etwa 1,5 V

Wie machst du das?

Sie können zwei Dinge tun:

  1. A: Sie können eine virtuelle Masse bei etwa 1,5 V erzeugen und alle Ihre Messungen darauf beziehen und Ihre Diode in einen Widerstand leiten lassen, der mit dieser virtuellen Masse verbunden ist, damit sie als Gleichrichter fungiert. Beachten Sie jedoch, dass Sie immer noch etwa 0,7 V vom Signal verlieren, da dies die Spannung ist, die die Diode abfällt oder "funktionieren muss".
  2. B: Sie können den Gleichstrom mit einem Kondensator vom Signal entkoppeln:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Der Widerstand dient dazu, den Kondensator auf der anderen Seite auf einen Gleichstrompegel von Masse zu ziehen. Der Kondensator lässt keine Gleichspannungen auf der anderen Seite zu, aber für ein bewegtes Signal wird er zu einer frequenzabhängigen Impedanz. Beachten Sie, dass dadurch niedrigere Frequenzen gedämpft werden, da die Impedanz des Kondensators bei niedrigeren Frequenzen höher ist. Je größer Ihr Kondensator ist, desto besser wird er niedrigere Frequenzen hemmen, also wenn Sie 10uF oder 47uF bekommen können. Wenn Sie möchten, dass 50 Hz die untere Grenze ist (z. B. für hörbar), reichen die gezeichneten Werte problemlos aus.

  1. Dafür braucht man einen Verstärker. Für solch große Erhöhungen sollten Sie in Audioverstärker- oder Leistungsverstärker-Designhandbücher schauen. Aber ich würde letzteres nur empfehlen, wenn Sie Signale, Frequenzen, Transistoren, Operationsverstärker, Kondensatoren und Induktivitäten sehr gut verstehen. Alternativ könnten Sie die Spannung erhöhen, die Sie mit Ihrer PWM-Stufe schalten. Dazu benötigen Sie eine externe Stromquelle mit der gewünschten Spannung und eine anständige Transistor-Halbbrücke (BJT, MOST oder IGBT), die für die Arbeitsspannung und -ströme ausgelegt ist.

  2. Das hängt von den Schaltungen ab, die Sie mit Strom versorgen möchten und wofür. Ich habe den Eindruck, dass Sie eine Art Power Frequency Driver / Chopper bauen möchten. Ich werde keine vollständige Anleitung zum Bau dieser Elemente wiederholen, aber Sie sollten wirklich in Betracht ziehen, diese zu googeln, wenn Sie nicht etwas sehr Gefährliches tun möchten (in Bezug auf Schaden oder Gesundheit). Beachten Sie auch, dass dies ein schwieriger und langer Weg ist, verglichen mit dem Anschließen eines Arduino an eine Reihe von Filtern.

  3. Siehe Punkt 2: Verstärkung vor oder nach AC-Filterung.

Meine ursprüngliche Idee war, mehrere Mikroschrittmotoren damit zu steuern, da ich möchte, dass sie einen konsistenten Fluss haben, den ein normaler Schrittmotor nicht kann, aber selbst wenn ich das Signal so arrangieren kann, wie ich es dafür brauche, könnte ich am Ende Probleme haben mit Der Strom, den ich an die Lasten liefern muss, danke für Ihre Antwort, das sind eine Menge Informationen, die ich landen muss
@GZeromostro Sie können das einfach tun, indem Sie einen ausreichend schnellen Halb-H-Brückentreiber mit beispielsweise 12 V verwenden und diesen mit Ihrem PWM-Signal steuern, dann filtern und ein Signal von 10 Vp-p bis 12 Vp-p erhalten, aber Sie würden müssen Sie bei Ihrer Filterung auch die Induktivität und den Widerstand des Motors berücksichtigen. Was Sie nicht vergessen sollten, ist zu prüfen, ob ein MicroStepper-Treiber, zB von Allegro, nicht am Ende kostengünstiger ist.

Hier ist, was ich empfehlen würde: Anstatt eine volle Sinuswelle zu erzeugen und sie dann mit einer Diode gleichzurichten, erzeugen Sie die gleichgerichtete Sinuswelle direkt in der Software. Anstatt das Signal dann direkt mit dem I/O-Pin des Mikrocontrollers zu erzeugen, treiben Sie ein Paar Leistungs-MOSFET-Transistoren an, um den benötigten Strom zu erhalten. Das Hinzufügen eines zusätzlichen Treiber-MOSFET mit einem Pull-up-Widerstand sollte die Verwendung höherer Spannungen ermöglichen. Bauen Sie im Grunde einen CMOS-Inverter mit einem N-Kanal- und einem P-Kanal-MOSFET und treiben Sie den Eingang davon mit einem N-Kanal-MOSFET mit einem Pullup-Widerstand am Ausgang. Dann folgen Sie dem mit Ihrem LC-Filter. Achten Sie nur darauf, Induktoren zu bekommen, die kräftig genug für den Strom sind.

Aus einem Teil der Abfrage implizieren Sie, dass das resultierende Wechselstromsignal 3 V korrekt ist?

Was Sie erstellen, ist eine 3-V-pk-pk-Sinuswelle, die auf einem 1,5-V-Signal sitzt, das mit dem E / A eines Arduino mit 3v3-Spannung übereinstimmt, sodass 100% Einschaltdauer (z. B. die Spitze) nur 3,3 V und 0 betragen können % Pflicht (z. B. der Trog) kann nur 0 V betragen

Bei einem Vorwärtsspannungsabfall von 0,7 V an der Diode werden die 1,5-V-Spitzensignale auf 0,8 V reduziert, was einer Reduzierung um 30 % entspricht

Wenn Sie ein gleichgerichtetes Halbwellensignal erzeugen möchten, müssen Sie entweder den Ausgang AC-koppeln, damit das Signal negativ schwingen kann, ODER eine zusätzliche Referenz bereitstellen

Ich habe weder den AC-Kopplungsteil noch die zusätzliche Referenz verstanden
Sie erzeugen eine DC-Sinuswelle. Ihr Arduino erzeugt eine Welle zwischen 0 V und höchstens 3,3 V. Wechselstrom bedeutet, dass er zwischen einer positiven und einer negativen Spannung wechselt, sodass der Strom die Richtung wechseln kann, oder "Wechselstrom". Ihre Diode arbeitet mit der Referenz Ihrer 0 V, denn dorthin geht der Pulldown-Widerstand an ihrer Kathode, sodass sie die oberen 70% Ihres Signals leiten kann. Wenn Sie möchten, dass nur die oberen 50% leiten, müssen Sie den Ausgang der Diode auf eine Spannung beziehen, die dieser entspricht. Oder entfernen Sie den DC-Offset aus Ihrem Signal, um es mit AC-Kopplung zu echtem AC zu machen.