Proportionalventil 24V mit Arduino Mega ansteuern

OP #6747223
Hallo zusammen,

ich möchte folgendes Proportionalventil mittels eines Arduino Mega 
ansteuern. 
(https://www.burkert.com/en/Media/plm/DTS/DS/DS2871-Standard-DE-DE.pdf)

Die Eckdaten aus dem Datenblatt:
-24V Betriebsspannung
-max 200 mA Spulenstrom bei 5W und 24V
-PWM 1500Hz
Nach einiger Zeit Recherche und Überlegen habe ich mich zu diesem 
Schaltplan
durchgerungen (siehe Anhang).

Ist der Schaltplan in euren Augen so plausibel? Die softwareseitige PWM 
Ansteuerung für 1500Hz habe ich hinbekommen.
Angehängte Dateien:
Max M. schrieb:
> Die Eckdaten aus dem Datenblatt:
> -24V Betriebsspannung
> -max 200 mA Spulenstrom bei 5W und 24V
> -PWM 1500Hz
> Nach einiger Zeit Recherche und Überlegen habe ich mich zu diesem
> Schaltplan
> durchgerungen (siehe Anhang).

Einmal reicht.

Wozu ein Optokoppler? Der ist so überflüssig wie ein Kropf. Und wenn du 
kein Huhn bist, brauchst du den nicht. Für 200mA reicht ein einfacher 
Transistor, siehe

Relais mit Logik ansteuern.

Die Schaltungen machen auch 1500Hz PWM mit.
Gast
Max M. schrieb:
> Hallo zusammen,
>
> ich möchte folgendes Proportionalventil mittels eines Arduino Mega
> ansteuern.
> (https://www.burkert.com/en/Media/plm/DTS/DS/DS2871-Standard-DE-DE.pdf)
>
> Die Eckdaten aus dem Datenblatt:
> -24V Betriebsspannung
> -max 200 mA Spulenstrom bei 5W und 24V
> -PWM 1500Hz
> Nach einiger Zeit Recherche und Überlegen habe ich mich zu diesem
> Schaltplan
> durchgerungen (siehe Anhang).
>
> Ist der Schaltplan in euren Augen so plausibel? Die softwareseitige PWM
> Ansteuerung für 1500Hz habe ich hinbekommen.

Servus, wenn ich es auf die Schnelle richtig sehe, hängt der Opokoppler 
zwischen Ventil und Masse, nur etwas ungewöhnlich gezeichnet.
Die Funktion von R2 erschliesst sich mir nicht wirklich.
Ich würde statt eines Optokopplers einen normalen NPN-Transistor (oder 
N-FET) verwenden. Für 1,5 kHz und 200mA ist einen "Wald- und Wiesen" 
Optokoppler grenzwertig. Zudem gibt es hier keine galvanische Trennung. 
==> Optokoppler bringt nichts sondern schafft nur Probleme.


Was mir fehlt ist die Möglichkeit den Spulenstrom zu messen/regeln.
Ich würde zwischen Transistor und GND noch einen (z.B. 1 Ohm) Shunt 
einfügen, und den dann auf einen A/D Eingang führen. Dann kann man 
zumindest bei PWM-on den Strom messen. Oder man spendiert noch ein 
RC-Glied und verrechnet den A/D-Wert mit dem Duty-Cycle. Damit kann man 
z.B. den Temperaturabhänigen Spulenwiderstand "austrixen".

Aber: Da es vermutlich Dein erstes HW-Projekt ist: nicht entmutigen 
lassen. Es sieht nicht schlecht aus, und die Grundüberlegung passen.

Gruß
Gast
Der Da schrieb:
> Was mir fehlt ist die Möglichkeit den Spulenstrom zu messen/regeln.
> Ich würde zwischen Transistor und GND noch einen (z.B. 1 Ohm) Shunt
> einfügen, und den dann auf einen A/D Eingang führen.

Warum sollte man das tun?
Das ist doch kein DC-Motor, welcher blockieren kann


Nimm doch lieber den Widerstand, oder einen etwas größeren, und setze 
ihn in Reihe zur Freilaufdiode, damit die in der Spule gespeicherte 
Arbeit schneller abgebaut wird.
Arduino Fanboy D. schrieb:
>> Was mir fehlt ist die Möglichkeit den Spulenstrom zu messen/regeln.
>> Ich würde zwischen Transistor und GND noch einen (z.B. 1 Ohm) Shunt
>> einfügen, und den dann auf einen A/D Eingang führen.
>
> Warum sollte man das tun?

Weil man ggf. den STROM genau einstellen will. Die PWM mit ihrem 
Tastverhältnis gibt nur die SPANNUNG vor.

> Das ist doch ein DC-Motor

Nö. Das ist ein Art von Hubmagnet, bei welchem der Öffnungsgrad 
proportional zum Spulenstrom ist. Also sollte man diesen möglichst genau 
vorgeben können. Stellbetrieb mit PWM an Konstantspannung macht das 
nicht, wenn die Spule warm wird und damit der ohmsche Widerstand steigt. 
Für einige Anwendungen mag das reichen, für die besseren nicht.
Gast
Falk B. schrieb:
> Also sollte man diesen möglichst genau
> vorgeben können.

Naja....

Der Stößel muss zucken, dafür sind Stromwechsel und auch die 1500Hz 
nötig.
Denn ein gleich bleibender Strom bringt die Haftreibung, mit ihrem 
Losbrechmoment, ins Spiel.
Ein gleich bleibender Strom ist also eher kontraproduktiv.
Gast
Max M. schrieb:
> Also steuert nicht das Tastverhältnis der PWM das Ventil, sondern der
> Ankerstrom?

Natürlich der Ankerstrom, dessen Mittelwert.
Denn er ist es, welche die Kraft, zum Öffnen, letztendlich ausübt
Aber der Strom darf nicht gleich sein, sondern muss mit hoher Frequenz 
pulsieren, damit das Ventil summt.
Max M. schrieb:
>> Weil man ggf. den STROM genau einstellen will. Die PWM mit ihrem
>> Tastverhältnis gibt nur die SPANNUNG vor.
>
> Also steuert nicht das Tastverhältnis der PWM das Ventil, sondern der
> Ankerstrom?

U_Mittel = U-Versorgung * Tastverhältnis
I_Mittel = U_Mittel / R_Spule
Öffnungsgrad = I_Mittel * Proportionalitätsfaktor
OP
Arduino Fanboy D. schrieb:
> Natürlich der Ankerstrom, dessen Mittelwert.
> Denn er ist es, welche die Kraft, zum Öffnen, letztendlich ausübt
> Aber der Strom darf nicht gleich sein, sondern muss mit hoher Frequenz
> pulsieren, damit das Ventil summt.


Okay ja klar, durch das schnelle Ein- und Ausschalten des PWM Signal 
passiert ja genau das mit dem Strom.
Also war die Frage vorher von mir quasi quatsch, weil das Tastverhältnis 
die Spannung und damit das "brummen" des Strom beinflusst. (Spannung ein 
--> Strom steigt, Spannung aus --> Strom fällt)
OP
Der Da schrieb:
> Was mir fehlt ist die Möglichkeit den Spulenstrom zu messen/regeln.
> Ich würde zwischen Transistor und GND noch einen (z.B. 1 Ohm) Shunt
> einfügen, und den dann auf einen A/D Eingang führen. Dann kann man
> zumindest bei PWM-on den Strom messen. Oder man spendiert noch ein
> RC-Glied und verrechnet den A/D-Wert mit dem Duty-Cycle. Damit kann man
> z.B. den Temperaturabhänigen Spulenwiderstand "austrixen".

Ja das stimmt, mein Ziel ist es das Ventil später als Stellglied in 
einem Regelkreis mit Drucksensor zu nutzen. Dazu muss ich dann also den 
Ankerstrom genau bestimmen können und diesen abhängig von den 
Sensordaten anpassen. (Regelkreis)

Wie genau würde ich den Ankerstrom denn messen bzw beeinflussen können?
Gast
Max M. schrieb:
> habe ich mich zu diesem Schaltplan
> durchgerungen

Unsinn.
 Dein Optokoppler trennt nichts, deine Anschsltung arbeitet 
unsymmetrisch.

Wenn wir mal davon aus gehen, dass du nicht deren hübsch einfach zu 
verwendende Ansteuerelektroniken mit PWM verwenden möchtest, sondern du 
deine Schwierigkeiten daher hast, weil du aus Sprsamkeit eigene 
Elektronik konstruieren willst, nimm einen L293D, der kann gleich 2 
Ventile steuern.
Gast
Max M. schrieb:
> (Spannung ein
> --> Strom steigt, Spannung aus --> Strom fällt)
Richtig!
Die Anstiegsgeschwndigkeit wird maßgeblich von der Induktivität der 
Spule bestimmt.

Die abfallende Flanke vom Ohmschen Widerstand und von der Induktivität. 
Das einzige Rädchen welches man da drehen kann ist der evtl. vorhandene 
Widerstand im Freilaufkreis
Gast
Max M. schrieb:
> Ja das stimmt, mein Ziel ist es das Ventil später als Stellglied in
> einem Regelkreis mit Drucksensor zu nutzen. Dazu muss ich dann also den
> Ankerstrom genau bestimmen können und diesen abhängig von den
> Sensordaten anpassen. (Regelkreis)
>
> Wie genau würde ich den Ankerstrom denn messen bzw beeinflussen können?

Das sehe ich nicht so.

Das ist meistens unnötig...
Denn der mittlere Spulenstrom ergibt sich zwangsläufig aus der Pulsweite 
und den Schaltungseigenschaften.

Es kommen ja auch noch ein paar Störgrößen ins Spiel.
Der Spulenwiderstand und auch die Viskosität des Mediums ändern sich mit 
der Temperatur.

Willst du die auch alle mit in die Regelung übernehmen?
OP
Ich hatte mir das eigentlich so vorgestellt, dass ich meine Regelung 
habe (Stellglied und Sensor) und nur abhängig vom Sensorwert das PWM 
Signal anpasse und sich der gewünschte Durchfluss im Ventil einstellt 
(PID Regler evtl an dieser Stelle).
Das PWM Signal steuert also einen Transistor oder ähnliches, welcher die 
24V Betriebsspannung vom Ventil schaltet.
Aber die Regelung möchte ich erstmal aussen vor lassen und erstmal "nur" 
das Ventil über PWM des Arduino ansteuern.

>Willst du die auch alle mit in die Regelung übernehmen?

Die Temperatur und die Viskosität (Druckluft) können auf jeden Fall 
vernachlässigt werden.
Gast
Max M. schrieb:
> Ich hatte mir das eigentlich so vorgestellt, dass ich meine Regelung
> habe (Stellglied und Sensor) und nur abhängig vom Sensorwert das PWM
> Signal anpasse und sich der gewünschte Durchfluss im Ventil einstellt
> (PID Regler evtl an dieser Stelle).

Richtig!
Vollkommen ausreichend.
OP
MaWin schrieb:
> Max M. schrieb:
>> habe ich mich zu diesem Schaltplan
>> durchgerungen
>
> Unsinn.
>  Dein Optokoppler trennt nichts, deine Anschsltung arbeitet
> unsymmetrisch.
>

Ja der war unnötig

> Wenn wir mal davon aus gehen, dass du nicht deren hübsch einfach zu
> verwendende Ansteuerelektroniken mit PWM verwenden möchtest, sondern du
> deine Schwierigkeiten daher hast, weil du aus Sprsamkeit eigene
> Elektronik konstruieren willst, nimm einen L293D, der kann gleich 2
> Ventile steuern.

Die Ansteuerelektronik vom Hersteller kostet schon einiges, daher würde 
ich diese gerne selbst übernehmen

Der L293D hört sich gut an. Das heißt einfach einen über den PWM Ausgang 
vom Arduino ansteuern und ich habe eigentlich alles was ich erreichen 
will?
Gast
Max M. schrieb:
> Das heißt einfach einen über den PWM Ausgang vom Arduino ansteuern und
> ich habe eigentlich alles was ich erreichen will?

Ja.
Der Strom kann nicht über 220mA steigen, die Spannung am Ventil pendelt 
sich auf 24V*PWM ein weil symmetrisch angesteuert und der Strom auf 
Spannung/109.
OP
Arduino Fanboy D. schrieb:
> Max M. schrieb:
>> Ich hatte mir das eigentlich so vorgestellt, dass ich meine Regelung
>> habe (Stellglied und Sensor) und nur abhängig vom Sensorwert das PWM
>> Signal anpasse und sich der gewünschte Durchfluss im Ventil einstellt
>> (PID Regler evtl an dieser Stelle).
>
> Richtig!
> Vollkommen ausreichend.

Das heißt meine ursprüngliche Schaltung mit einem geeigneten Transistor 
anstatt dem Opto-Koppler und ohne R2 sollte für mein vorhaben 
ausreichen?
OP
MaWin schrieb:
> Max M. schrieb:
>> Das heißt einfach einen über den PWM Ausgang vom Arduino ansteuern und
>> ich habe eigentlich alles was ich erreichen will?
>
> Ja.
> Der Strom kann nicht über 220mA steigen, die Spannung am Ventil pendelt
> sich auf 24V*PWM ein weil symmetrisch angesteuert und der Strom auf
> Spannung/109.

Ok vielen Dank, ich versuche das dann mal. Alternativ würde ich trotzdem 
gerne eine "eigene" Schaltung zu Lernzwecken entwerfen.
OP
Arduino Fanboy D. schrieb:
> MaWin schrieb:
>> die Spannung am Ventil pendelt
>
> Da pendelt sich keine Spannung ein.
> und ein L293D ist an der Stelle 4 fach übertrieben, und hat keine
> Freilaufdioden im Körper.
>
> Arduino Fanboy D. schrieb:
>> Ja.
> War also falsch, es fehlt der Freilauf.

Ja der Freilauf fehlt, das stimmt. Den kann ich ja aber ganz einfach 
selbst hinzufügen mittels einer Diode, wie in dem ursprünglichen 
Schaltplan. Oder soll ich lieber ganz die Finger von dem L293 lassen und 
es so versuchen?


>Das heißt meine ursprüngliche Schaltung mit einem geeigneten Transistor
>anstatt dem Opto-Koppler und ohne R2 sollte für mein vorhaben
>ausreichen?
Gast
Max M. schrieb:
> Oder soll ich lieber ganz die Finger von dem L293 lassen und
> es so versuchen?

Es spielt keine Rolle, ob du einen Transistor oder den L293 verwendest.
Nimm was du hast.

Leitsatz:
Die einfachere Lösung, von zwei funktional gleichwertigen, ist die 
Bessere.
Arduino Fanboy D. schrieb:
> Max M. schrieb:
>> Ich hatte mir das eigentlich so vorgestellt, dass ich meine Regelung
>> habe (Stellglied und Sensor) und nur abhängig vom Sensorwert das PWM
>> Signal anpasse und sich der gewünschte Durchfluss im Ventil einstellt
>> (PID Regler evtl an dieser Stelle).
>
> Richtig!
> Vollkommen ausreichend.

Hier stimmt das, aber das war bisher nicht bekannt.
Arduino Fanboy D. schrieb:
> und ein L293D ist an der Stelle 4 fach übertrieben, und hat keine
> Freilaufdioden im Körper.

Doch, die D-Version hat interne Freilaufdioden. Aber ein uralter L293 
hat ~2V Spannungsabfall über jeder Schaltstufe, d.h. in Brückenschaltung 
würden ~4V weniger am Ventil ankommen.

Ein einfacher Transistor + Freilaufdiode reicht und hat <0,5V 
SPannungsabfall.
Gast
Arduino Fanboy D. schrieb:
> Da pendelt sich keine Spannung ein.

Selbstverständlich. Simuliere doch einfach mal 50% PWM an einer 
Induktivität

> und ein L293D ist an der Stelle 4 fach übertrieben, und hat keine
> Freilaufdioden im Körper

Natürlich doch, schau doch einfach mal in ein Datenblatt und wundere 
dich, warum ich D hintendran hing.

Das 4-fach-übertrieben passt nicht ganz zu deinem Gemeckere über den 
Spannungsaufall, der ist nämlich auch geringer bei weniger als 
Maximalstrom. Das ist alles schon durchüberlegt.

Immer so ein hanebüchener Stuss, den du in deiner Ahnungslosigkeit hier 
postest.
Gast
MaWin schrieb:
> Das 4-fach-übertrieben passt nicht ganz zu deinem Gemeckere über den
> Spannungsaufall, der ist nämlich auch geringer bei weniger als
> Maximalstrom. Das ist alles schon durchüberlegt.
>
> Immer so ein hanebüchener Stuss, den du in deiner Ahnungslosigkeit hier
> postest.

Ok, das D welche allerdings hier nicht auftaucht:
Max M. schrieb:
> Oder soll ich lieber ganz die Finger von dem L293 lassen und
> es so versuchen?

Dann habe ich keinerlei Worte über irgendeinen Spannungsabfall 
verlautbaren lassen.
Du siehst Geister
Tipp:
Zuviel Schaum vorm Mund behindert die Sicht.

MaWin schrieb:
> Arduino Fanboy D. schrieb:
>> Da pendelt sich keine Spannung ein.
>
> Selbstverständlich. Simuliere doch einfach mal 50% PWM an einer
> Induktivität
Bla bla bla...

Es ist nicht sinnvoll, dass sich an einem Proportionalventil eine 
Spannung einpendelt.
Darum muss das vermieden werden.
Begründung gabs schon vorher.

Also: Du doof, ich schlau!
Oder?
Gast
MaWin schrieb:
> Arduino Fanboy D. schrieb:
>> Da pendelt sich keine Spannung ein.
>
> Selbstverständlich. Simuliere doch einfach mal 50% PWM an einer
> Induktivität

Hör Du mal bitte lieber auf zu simulieren und schau dir die Resultate 
eines realen Aufbaus an. Ähnliches hatten wir hier schon mal...

Permanent erregter Gleichstrommotor (Scheibenwischermotor) sollte 
angeblich bei PWM-Ansteuerung die gleiche Kraft bei niedriger Drehzahl 
entwickeln können, wie beim betrieb an gesteuerter Gleichspannung. Weil 
ja während der PWM Lücken der Strom über die Freilaufdiode weiter 
fließt...

Nix da, Pustekuchen! Ich habs seinerzeit mit Kofferwaage am Achsschenkel 
nachgemessen. Bei gleicher Leerlaufdrehzahl, deutlich weniger Drehmoment 
mit PWM. Egal wie man an deren Frequenz kurbelt...
chefkoch schrieb:
> Permanent erregter Gleichstrommotor (Scheibenwischermotor) sollte
> angeblich bei PWM-Ansteuerung die gleiche Kraft bei niedriger Drehzahl
> entwickeln können, wie beim betrieb an gesteuerter Gleichspannung. Weil
> ja während der PWM Lücken der Strom über die Freilaufdiode weiter
> fließt...

Das ist auch so, wenn man es richtig macht.

> Nix da, Pustekuchen! Ich habs seinerzeit mit Kofferwaage am Achsschenkel
> nachgemessen. Bei gleicher Leerlaufdrehzahl, deutlich weniger Drehmoment
> mit PWM. Egal wie man an deren Frequenz kurbelt...

Dann war da was faul, vermutlich war dein PWM-Schalter zu hochohmig. 
Oder die PWM-Frequenz falsch. Oder eine RC-Entstörschaltung im Motor, 
welche die PWM ausgebremst hat. Auch das hatten wir hier schon.

https://www.mikrocontroller.net/articles/Motoransteuerung_mit_PWM#Wahl_der_PWM-Frequenz
Gast
Max M. schrieb:
> Ja das stimmt, mein Ziel ist es das Ventil später als Stellglied in
> einem Regelkreis mit Drucksensor zu nutzen. Dazu muss ich dann also den
> Ankerstrom genau bestimmen können und diesen abhängig von den
> Sensordaten anpassen. (Regelkreis)

Warum möchtest du den Spulenstrom genau messen, wenn du den Druck regeln 
willst?
Du kannst dich doch sicher ziemlich gut drauf verlassen, dass der 
Spulenstrom steigt und sich der Druck in eine Richtung ändert, wenn du 
das Tastverhältnis vom PWM-Signal vergrößerst.
Gast
MaWin schrieb:
> Es ist für eine Regelstrecke immer gut, wenn das Ansprechverhalten
> symmetrisch und linear ist.

Und genau das wirst du nicht erreichen, wenn sich die Spannung am Ventil 
auf einen Wert einpendelt.
Da beißt keine Maus einen Faden von ab.
Egal, wie du versuchst mich zu beleidigen oder abzuwerten.

Dein Versuch fehlende Fachkompetenz mit Beleidigungen auszugleichen, 
wird dir nicht gelingen.

Es tut mir auch etwas leid, wenn du in Physik und Regelungstechnik nicht 
aufgepasst hast, kann es aber nicht ändern.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 5 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.