st ein MCP4725 DAC mit OPA551 Op-Amp eine gute Lösung für präzise 0-10V Ventilsteuerung?

OP #7754284

Hallo zusammen,

ich arbeite an einem Projekt, bei dem ich ein 0-10V Ventil (stufenlos von 0% bis 100% geöffnet) über einen Arduino möglichst präzise steuern möchte. Mein Ziel ist es, eine sehr feine und stabile Regelung zu erreichen, um z.B. den Wasserfluss und die Temperatur genau einzustellen.

Meine bisherige Lösung sieht wie folgt aus:

1
MCP4725 DAC (12-Bit) für die Erzeugung eines präzisen 0-5V analogen Signals.
2
OPA551 Op-Amp, um das 0-5V Signal des DAC auf 0-10V zu verstärken.
3
Ein rauscharmes Netzteil und präzise Widerstände (0,1% Toleranz) zur Verstärkung.
4
Optional ein Tiefpassfilter, um eventuelles Rauschen oder Welligkeiten im Signal zu glätten.

Meine Fragen:

1
Ist diese Schaltung eine gute Lösung, um eine maximale Präzision zu erreichen?
2
Gibt es bessere Alternativen zur Verstärkung von 0-5V auf 0-10V für dieses Ventil?
3
Sollte ich an irgendeiner Stelle zusätzliche Filter oder Stabilisatoren hinzufügen, um die Genauigkeit zu verbessern?
4
Hat jemand praktische Erfahrungen mit dem MCP4725 DAC und könnte Tipps geben, wie ich das Beste aus der Schaltung herausholen kann?

Vielen Dank für eure Hilfe!

Beitrag #7754289 wurde von einem Moderator gelöscht.

Tricker schrieb:

Mein Ziel ist es, eine sehr feine und stabile Regelung zu erreichen, um z.B. den Wasserfluss und die Temperatur genau einzustellen.

Da Du eh regeln willst, und zwar nicht die Ventilöffnung oder den Wasserfluß, sondern die Temperatur, muß der DAC und der OPV sich sowieso mit in der Regelschleife befinden. D.h., deren Ungenauigkeiten werden automatisch mit ausgeregelt. D.h., der Kram muß nicht genau sein. Hier kommt es eher nur auf gewisse Randbedingungen an, z.B. Aussteuerbarkeit bei gegebener Betriebsspannung z.B. Nicht jeder läßt sich am Ein- und Ausgang bis auf 0V runterdrücken, wenn keine neg. Betriebsspannung vorhanden ist. Aber wird sowas nicht sowieso eher mit PWM gemacht, statt analog?

Tricker schrieb:

Ist diese Schaltung eine gute Lösung, um eine maximale Präzision zu erreichen?

Was heist "maximale Präzision"? Dein 12bit-DAC macht ja auch keine max. Präzision, sondern kann nur auf max. 1/4096stel genau sein.

1
Gibt es bessere Alternativen zur Verstärkung von 0-5V auf 0-10V für

dieses Ventil?

Tja, wir wissen ja noch nichtmal, ob das nur ein Ansteuersignal ist mit wenigen µA, oder ob da etliche mA oder gar A geliefert werden müssen.

1
Sollte ich an irgendeiner Stelle zusätzliche Filter oder

Stabilisatoren hinzufügen, um die Genauigkeit zu verbessern?

Nö, wenn das eine Regelung werden soll, dann sorgt die Regelung eben schon für die nötige Stabilität. Und irgendwelches Rauschen im µV/mV-Bereich stört so ein Ventil ja sicherlich nicht.

Welche Eingangsimpedanz hat das anzusteuerne Ventil? Sind lange Kabel zwischen der Steuerung und dem Ventil? Sind störende Gerätschaften (Motoren, Schaltnetzteile, ...) in der Nähe?

Falls du einen Tiefpass verwenden willst dann würde ich den direkt nach dem DAC einbauen. (ggf. Spannungsfolger zwischen DAC Ausgang und Tiefpass oder gleich ein aktiver Tiefpass mit OPV)

Persönliche Seite

Letztlich möchtest du die Temperatur regeln. Zwischen Temperatur und Stellwert hängt dein DAC, dein Verstärker, der temperaturabhängige Spulenwiderstand, die Ventilkennlinie, der Wasserdruck, die Wassertemperaturen. Bei allem dazwischen ist der DAC dein kleinstes Problem. Daher wie schon vorgeschlagen einfach PER und alles in einen Regelkreis packen.

Tricker schrieb:

OPA551 Op-Amp, um das 0-5V Signal des DAC auf 0-10V zu verstärken. Ein rauscharmes Netzteil und präzise Widerstände (0,1% Toleranz) zur Verstärkung. Optional ein Tiefpassfilter, um eventuelles Rauschen oder Welligkeiten im Signal zu glätten.

Ob das eine gute Idee ist, hängt vom Ventiltyp ab. Bei einem Kolbenventil wäre das mit Sicherheit kontraproduktiv.

Für eine schnelle und stabile Regelung kommt es meiner Erfahrung nach weniger auf Rauschen & Genauigkeit beim Stellglied (also die Spannung zur Ventilsteuerung), sondern viel mehr auf die gute thermische Anbindung und geringe Totzeit des Sensors an. Also wie schnell siehst Du eine ansteigende Temperatur an Deinem Sensor wenn Du gerade das Ventil mit dem warmen Wasser aufgemacht hast.

Joachim B. schrieb:

kurz und schmerzlos, du brauchst kein DAC mit all seinen Fehlern um ein Ventil zu steuern, PWM reicht aus.

Ich habe eine geregelte Last mit MCP4725 aufgebaut Im Gegensatz zu PWM kommt da eine statisch stabile Spannung heraus, ich muß nichts integrieren und / oder filtern. Du darfst es anders machen, ich halte ihn für eine gute Wahl.

Tricker schrieb:

Ist diese Schaltung eine gute Lösung, um eine maximale Präzision zu erreichen?

Eine gute Idee wäre, realistisch zu bauen. Dem Ventil ist Rauschen egal und 5%-Widerstände sind vermutlich genauer als das Ventil. Baue den Verstärker von 5 auf 10 Volt mit einem beliebig schlechten Operationsverstärker, das regelt der Arduino aus.

Interessanter wird der Regelalgorithmus, ohne große Überschwinger zu agieren.

Gerd E. schrieb:

Für eine schnelle und stabile Regelung kommt es meiner Erfahrung nach weniger auf Rauschen & Genauigkeit beim Stellglied (also die Spannung zur Ventilsteuerung), sondern viel mehr auf die gute thermische Anbindung und geringe Totzeit des Sensors an. Also wie schnell siehst Du eine ansteigende Temperatur an Deinem Sensor wenn Du gerade das Ventil mit dem warmen Wasser aufgemacht hast.

Gut ausgedrückt.

Tricker schrieb:

Ein rauscharmes Netzteil und präzise Widerstände (0,1% Toleranz) zur Verstärkung.

Das ist Quatsch mit Soße. Das Hauptproblem wird das Ventil sein. Das ist sowas von ungenau und nichtlinear. Außerdem haben viele Ventile eine riesen Hysterese. In der Praxis werden daher Ventile oft gepulst. Quasi eine sehr langsame PWM, nennt man auch Stotterbetrieb.

Für eine Anwendung mit einem Dosierventil zum Gaseinlaß haben wir einen Algorithmus entwickelt, der das Ventil ganz langsam öffnet. Wird der Druck zu hoch, dann wird mit einem definierten Spannungseinbruch das Ventil wieder etwas geschlossen und langsam neu hochgefahren. Die Steuerung erfolgt also immer nur von einer Richtung aus.

Nenne mal den Link auf das konkrete Ventil, damit man sich dessen Daten anschauen kann.

Das Hauptproblem wird das Ventil sein. Das ist sowas von ungenau und nichtlinear.

Hihi, das hab ich gerade auch gedacht. Solange das nicht irgendwelche krassen Spezialventile aus der Medizintechnik in der >1000Euro Klasse sind, braucht man sich keine weiteren Gedanken um die Feinheit der Ansteuerung zu machen.

Die Steuerung erfolgt also immer nur von einer Richtung aus.

Und das Ventil hat dadurch immer etwas Bewegung. Die Teile haengen sonst auch gerne etwas wenn man sie nur 0.1mm bewegen will.

Vanye

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 2 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.