Bastelstunde: PID, pressure-, flowcontroll Bluetooth mod...

Diskutiere Bastelstunde: PID, pressure-, flowcontroll Bluetooth mod... im Espresso- und Kaffeemaschinen Forum im Bereich Maschinen und Technik; Das ssr und die Relais zum Bezugsstart habe ich schon so weit weg wie möglich verbaut, auch das netzteil. Auf der Platine ist nur noch 5v...

  1. #41 flo_ffb, 21.04.2021
    flo_ffb

    flo_ffb Mitglied

    Dabei seit:
    13.08.2017
    Beiträge:
    184
    Zustimmungen:
    156
    Das ssr und die Relais zum Bezugsstart habe ich schon so weit weg wie möglich verbaut, auch das netzteil. Auf der Platine ist nur noch 5v Spannung und Sensoreingänge, die ganzen Pins (Löcher) habe ich für zusätzliche Kondensatoren und Widerstände vorgehalten.
    Sollte klappen. In 10 - 15 Tagen gibt's neue Infos.
    Bis dahin wird das Gehäuse beschichtet.
     
    00nix gefällt das.
  2. #42 flo_ffb, 24.04.2021
    flo_ffb

    flo_ffb Mitglied

    Dabei seit:
    13.08.2017
    Beiträge:
    184
    Zustimmungen:
    156
    Heute war das Gehäuse dran. Teile V2A Ausgangsbasis, Teile gestrahlt, Fettfrei warten auf das Pulver, Schwarz gepulvert fertig zum Verbauen.
    Die Platinen sind auf dem Postweg, jetzt heißt es weiter warten.



    Teile_V2a.jpg Teile_gestrahlt.jpg Teile_vor_Beschichten.jpg

    Teile_beschichtet.jpg
     
    00nix, Phenyl und Pflunz gefällt das.
  3. #43 ThisAmplifierIsLoud, 24.04.2021
    ThisAmplifierIsLoud

    ThisAmplifierIsLoud Mitglied

    Dabei seit:
    20.12.2020
    Beiträge:
    316
    Zustimmungen:
    454
    Selbst gepulvert ?
     
  4. #44 flo_ffb, 25.04.2021
    flo_ffb

    flo_ffb Mitglied

    Dabei seit:
    13.08.2017
    Beiträge:
    184
    Zustimmungen:
    156
    Ja,
    Das mach ich aber in der Werkstatt, nicht im Wohnzimmer:rolleyes:.
     
    00nix, Phenyl und ThisAmplifierIsLoud gefällt das.
  5. #45 flo_ffb, 25.04.2021
    flo_ffb

    flo_ffb Mitglied

    Dabei seit:
    13.08.2017
    Beiträge:
    184
    Zustimmungen:
    156
    Die Ansteuerung des SSR macht nacvh wie vor Probleme.
    Irgendwann kommt der Punkt, da schickt der Arduino nichts mehr ans SSR oder High bleibt aktiv.
    Es liegt nicht am SSR, der Arduino stürtzt auch nicht ab, alle anderen Funktionen gehen noch.
    Ich hab den Code langsam in Verdacht.
    Ich habe auf zwei vorhanden Libaries

    #include <PID_v1.h>
    #include <Relay.h>
    zurück gegriffen für die Temperaturregelung und mich drauf verlassen, das es funktioniert.

    Ich blicke in den libaries nur nicht durch, was wo passiert.

    Bei der Druckregelung habe ich den Regler selbst aufgebaut, das läuft. Ich nutze den PWM Ausgang und schicke Werte bis 255 raus.

    Kann mir jemand sagen, wie ich das SSR am sinnvollsten über den Reglerausgang takte? Das Relais erwartet ja nur High und low. Dann schmeiß ich die libaries raus.
     
    Phenyl gefällt das.
  6. Pflunz

    Pflunz Mitglied

    Dabei seit:
    24.01.2017
    Beiträge:
    1.108
    Zustimmungen:
    1.763
    Wie ist denn dein Code grundsätzlich aufgebaut?

    Ich kann dir sagen wie wir das in Geschäft machen.

    Es gibt immer einen Grundtakt, der mit einem Timer erzeugt wird. Das ist der "Servotakt". Zu Beginn werden die Sensor Werte eingelesen, dann werden die Ausgänge berechnet, und anschließend ausgegeben (teilweise werden die Werte auch erst im nächsten Servotakt ausgegeben, damit man weniger Jitter hat).
    In der Übrigen Zeit werden andere Funktionen abgearbeitet wie Kommunikation.

    Dann ist ein Regler sehr einfach aufzubauen. Für die Temperatur kannst du für das erste eine einfache PI Regelung benutzen. Das sind im wesentlichen 3 Zeilen Code. Wichtig ist bei der Temperatur dass du sie relativ langsam ausgeben musst .also du kannst keine PWM mit 1kHz auf das SSR geben, sondern beispielsweise nur jede Sekunde das Signal ändern. Bei einer Servorate von beispielsweise 100Hz kannst du beispielsweise die Temperaturregelung selbst nur jedes 100. Mal im Servotakt ausführen.
     
    00nix und Phenyl gefällt das.
  7. #47 flo_ffb, 25.04.2021
    flo_ffb

    flo_ffb Mitglied

    Dabei seit:
    13.08.2017
    Beiträge:
    184
    Zustimmungen:
    156
    ? Ich versteh nur Bahnhof.
    Der Code ist so aufgebaut, dass in einer Schleife alle Funktionen der Reihe nach ablaufen.
    Den Regler aufzubauen ist ja nicht das Problem. Das habe ich ja schon für den Druck gemacht. Da schicke ich die Werte des Reglerausgangs (bis 255) aber dirkt über den PWM Ausgang raus und steuer die Pumpe über ein Phasenanschnittmodul an. Das erwartet auch Werte bis 255. passt.
    Bei der Temperatur würde ich vom Prinzip den gleichen Regler wieder hernehmen. Nur wie mache ich aus 0-255 für das SSR ein HIGH und LOW (je nach Reglerausgang).
    Bestimmt total einfach, ich sitz nur grad auf dem Schlauch.
     
    Phenyl gefällt das.
  8. Pflunz

    Pflunz Mitglied

    Dabei seit:
    24.01.2017
    Beiträge:
    1.108
    Zustimmungen:
    1.763
    Ein Regler brauch zwingend einen Takt. Denn auch die Werte des Reglers ändern sich mit diesem Takt.

    Wenn du alles in der Main-Schleife abarbeitest, dann ändert sich dein "Takt" mit jeder Zeile Code und somit müssten sich auch deine Reglerparameter ändern.

    Wenn sich dein SSR Ausgang nur jede Sekunde ändern soll, dann kannst du diese Funktion jede Sekunde aufrufen. Wenn dann beispielsweise dein Reglerausgang von 0 bis 1 geht, und er über "0.5" ist, dann setzt du deinen SSR-Pin, und wenn er kleiner 0.5 ist, dann setzt du den Pin auf 0.

    Du möchtest auf keinen Fall einen PWM Ausgang dafür nutzen, denn das SSR ist hierfür viel zu langsam.
     
    00nix gefällt das.
  9. #49 flo_ffb, 25.04.2021
    flo_ffb

    flo_ffb Mitglied

    Dabei seit:
    13.08.2017
    Beiträge:
    184
    Zustimmungen:
    156
    So schaut der Regler für den Druck aus. Den Takt gibt die interne Zeit milis vor

    //********************************************++Regelung p
    PID_error_1 = Solldruck - p; //Berechnung PID Fehler
    vorst = kv*Solldruck; // Berechnung Vorsteuerung
    if(PID_error_1 > 1.5) //i Anteil nur bei kleinen Abweichungen
    {PID_i_1 = 0;}

    PID_p_1 = kp_1 * PID_error_1; //Berechnung P Anteil
    PID_i_1 = PID_i_1 + (ki_1 * PID_error_1); //Berechnung I Anteil
    timePrev = Time; // Zeit Speichern
    Time = millis(); // Takt einlesen
    elapsedTime = (Time - timePrev) / 1000;
    PID_d_1 = kd_1*((PID_error_1 - previous_error_1)/elapsedTime); //Berechnung D Anteil
    PID_value_1 = PID_p_1 + PID_i_1 + PID_d_1 + vorst; //Berechnung PID Wert inkl. Vorsteuerung

    if(PID_value_1 < 0)
    { PID_value_1 = 0; }
    if(PID_value_1 > 255)
    { PID_value_1 = 255; }

    previous_error_1 = PID_error_1;

    analogWrite(PWM_PIN, PID_value_1); // Schreiben des PID Wert auf PWM Ausgang

    *************************************++
    Hier würde ich die gleiche Berechnung ansetzen.
    Das ich das SSR nicht mit dem PWM Signal ansteuern kann ist mir klar.
    Nur wie schaut die letzte Zeile dann aus? Ich schreibe auf den SSR Ausgang ja nur HIGH oder LOW.
    Hast du ein Beispiel?
     
    00nix und Phenyl gefällt das.
  10. Pflunz

    Pflunz Mitglied

    Dabei seit:
    24.01.2017
    Beiträge:
    1.108
    Zustimmungen:
    1.763
    00nix und Phenyl gefällt das.
  11. #51 Dale B. Cooper, 25.04.2021
    Dale B. Cooper

    Dale B. Cooper Mitglied

    Dabei seit:
    24.01.2009
    Beiträge:
    9.194
    Zustimmungen:
    3.934
    irgendwas über Schwellwert XY ist an, irgendwas darunter ist aus. :)

    Du machst nicht sowas wie pwm mit nem SSR, das Ding schaltet einfach nur langsam an oder aus.
     
    Phenyl gefällt das.
  12. #52 Yoku-San, 25.04.2021
    Yoku-San

    Yoku-San Mitglied

    Dabei seit:
    23.08.2017
    Beiträge:
    2.768
    Zustimmungen:
    2.929
    Ich glaub das kann man schon machen.

    Eine andere Möglichkeit wäre so ein Modul:
    Dimmer module for 16/24A 600V High Load, 1 Channel, 3.3V/5V logic

    Damit kannst Du mit Hilfe der verfügbaren Library auf dem Arduino recht einfach eine Phasenanschnittsteuerung für hohe Lasten realisieren.

    Aber ich bin längst nicht so ein Experte wie Du. Du brauchst das eventuell gar nicht weil Du die meisten Komponenten schon hast.
     
  13. #53 Pflunz, 25.04.2021
    Zuletzt bearbeitet: 26.04.2021
    Pflunz

    Pflunz Mitglied

    Dabei seit:
    24.01.2017
    Beiträge:
    1.108
    Zustimmungen:
    1.763
    Hi,
    das geht bei dem Regler so nicht. Stell dir Mal vor du nimmst bei diesem Regler eine Schwelle von 125 ab der das SSR eingeschaltet sein soll. Am Anfang ist der Fehler groß, also wird schnell eine hohe Zahl ausgegeben, also ist das SSR an. Soweit so gut. Langsam nimmt der Fehler ab un der Wert, den der Regler ausgibt wird immer kleiner. Irgendwann erreicht er 124 und das SSR geht aus. Die Temperatur steigt noch etwas weiter und der Fehler wird kleiner. Das SSR ist weiterhin aus. Die Temperatur fällt irgendwann wieder und der Fehler wird größer und das SSR geht an. Dann wieder von vorne. Man erreicht die Temperatur also nie.

    Was in dem Codebeispiel gemacht wird ist, dass man den Ausgang des Reglers (0-255) auf eine Zeitspanne (4 Sekunden) herunterrechnet. Also 4 Sekunden geteilt durch 255 * Ausgang Regler.

    Bei einem Ausgang von 100 von Regler, wird das SSR gut 1.5s angeschaltet und den Rest der Zeit aus.

    Das würde zwar gehen, ist aber bei etwas so trägem wie einer Heizung nicht nötig und erzeugt unnötig EMV (bis zu fast 9A Spitzenstrom schlagartig zu starten ist schon etwas)
     
    Phenyl und Dale B. Cooper gefällt das.
  14. #54 ThisAmplifierIsLoud, 26.04.2021
    ThisAmplifierIsLoud

    ThisAmplifierIsLoud Mitglied

    Dabei seit:
    20.12.2020
    Beiträge:
    316
    Zustimmungen:
    454

    Genau. Also auch eine PWM, nur eben seeehr langsam.
     
  15. Pflunz

    Pflunz Mitglied

    Dabei seit:
    24.01.2017
    Beiträge:
    1.108
    Zustimmungen:
    1.763
    :D
     
    00nix gefällt das.
  16. #56 Dale B. Cooper, 26.04.2021
    Dale B. Cooper

    Dale B. Cooper Mitglied

    Dabei seit:
    24.01.2009
    Beiträge:
    9.194
    Zustimmungen:
    3.934
    Stimmt @Pflunz - jetzt erinnere ich mich wieder, war mit ner Taktung implementiert. Wie oben beschrieben, hab auch diese Arduino-library verwendet. Aber scheinbr nur recht schwächliche Erinnerungen. :)
     
  17. #57 flo_ffb, 26.04.2021
    flo_ffb

    flo_ffb Mitglied

    Dabei seit:
    13.08.2017
    Beiträge:
    184
    Zustimmungen:
    156
    Das schlimme an der Sache ist ja, dass im Normalfall die Temperaturregelung sehr sauber und zufriedenstellend läuft. Die Motivation den Code zu ändern ist die Hoffnung auf das "nicht mehr hängen bleinben".

    Wobei es nur der Hauch von Hoffnung ist, da die verwendeten
    #include <PID_v1.h>
    #include <Relay.h>
    libaries eigentlich funktionieren sollten. Bin ja nicht der Erste der die verwendet.

    Vielleicht kann mal jemand mit Ahnung über meinen Sketch schauen.
    Ich will ihn hier nur nicht rein stellen, solange es noch hackt und nicht fertig ist.
     
    00nix gefällt das.
  18. Pflunz

    Pflunz Mitglied

    Dabei seit:
    24.01.2017
    Beiträge:
    1.108
    Zustimmungen:
    1.763
    Stelle ihn einfach rein. Oder auch nur die wichtigsten Zeilen.

    Du hast noch nicht gesagt wie du das Relais mit dem Regler "verbindest"
     
  19. #59 flo_ffb, 27.04.2021
    flo_ffb

    flo_ffb Mitglied

    Dabei seit:
    13.08.2017
    Beiträge:
    184
    Zustimmungen:
    156
    nein, das mache ich nicht. erst wenn es geht und fertig ist.
    Der Fehler liegt ja meistens im vermeintlich nicht relevanten Teil, wo dann irgendeine Bedingung erfüllt ist (oder auch nicht) und dann was nicht geht.

    Ich kommentiere mal meinen Sketch weiter, falls sich jemand findet soll er einigermaßen durchblicken :)
     
    00nix gefällt das.
  20. #60 Dale B. Cooper, 27.04.2021
    Dale B. Cooper

    Dale B. Cooper Mitglied

    Dabei seit:
    24.01.2009
    Beiträge:
    9.194
    Zustimmungen:
    3.934
    realy.h ist auf jeden Fall ein Muss.: sekdiy/Relay

    :D :D

    Ich hab auch nen halben Tag oder so dran herumgedoktert bis die komische pid-Lib. so funktioniert hat, dass ich die Ergenisse verstanden habe.

    Zum schnell mal Testen hast du ein Test-System? Ich hatte nen Temp.-Sensor auf ne alte herumliegende 60W-Glühlampe geklebt und dann auf 25°C oder so versucht zu regeln. Da kann man entspannter testen als wenn man große Sachen hin- und herheizt..

    Beste Grüße - drücke die Daumen,
    Dale.

    /edit: achso - du regelst ja den Druck, das sollte ja auch so schnell gehen. Sorry.. Man kann den Beitrag dann eigentlich vergessen, ich lass ihn mal stehen.
     
Thema:

Bastelstunde: PID, pressure-, flowcontroll Bluetooth mod...

Die Seite wird geladen...

Bastelstunde: PID, pressure-, flowcontroll Bluetooth mod... - Ähnliche Themen

  1. Lelit Glenda PID, lange Aufheizzeit nach Bezug

    Lelit Glenda PID, lange Aufheizzeit nach Bezug: Hallo, eigentlich bin ich auch nach einigen Monaten mit meiner Glenda und der DF64 gen2 wunschlos glücklich und mit den Ergebnisssen im Rahmen...
  2. Ascaso steel duo pid, Magnetventile Brühgruppe / Dampfkreislauf

    Ascaso steel duo pid, Magnetventile Brühgruppe / Dampfkreislauf: Hallo zusammen :) Nach langjähriger Nutzung und Modifikationen der Delonghi EC 680 (gedrehte Dampflanze aus Edelstahl, neues Sieb, abgesägter...
  3. Einkreiser, PID, Flow Control - Gibts sowas?

    Einkreiser, PID, Flow Control - Gibts sowas?: Hallo! Meine Pavoni braucht wieder mal ein großes Service. Rost am Standfuß, Dichtungen überall undicht, Presso verstellt… Kurzum es macht...
  4. Kaufberatung: DB oder ZK mit E61 BG, Rotationspumpe, PID, Edelstahlkessel ...

    Kaufberatung: DB oder ZK mit E61 BG, Rotationspumpe, PID, Edelstahlkessel ...: Hallo euch allen! Ich habe im letzten Jahr wegen Zeitmangel den ganzen "Kaffeekram". Nun ist wieder mehr Zeit vorhanden und es steht der Kauf...
  5. Ascaso Steel DUO PID, kein Dampf

    Ascaso Steel DUO PID, kein Dampf: Hallo zusammen, ich habe die Maschine ca. 7 Monate und als ich heute eine Cappu machen wollte, kam da kein Dampf mehr. Vorab habe ich den Dampf...