Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter pid (pid-Regler) V1.0.x

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.0k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Test Adapter pid (pid-Regler) V1.0.x

Geplant Angeheftet Gesperrt Verschoben Tester
314 Beiträge 16 Kommentatoren 66.6k Aufrufe 14 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • HomoranH Homoran

    @mcm57 eine ganz große Bitte für die Doku:

    This adapter provides the functionality of a pid controller. Within one instance there could be more than one controller configured. The adpter supports configuring the paramaters (P, I, D components) and the cycle time used for calculation.

    Was um Alles in der Welt ist ein PID Regler?
    auch @Paul53 schreibt dauernd davon.

    Könnteyt du dazu einen Zweizeiler in die Doku nehmen?

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #12

    @homoran sagte: Was um Alles in der Welt ist ein PID Regler?

    Siehe Wiki

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    mcm1957M 1 Antwort Letzte Antwort
    1
    • HomoranH Homoran

      @mcm57 eine ganz große Bitte für die Doku:

      This adapter provides the functionality of a pid controller. Within one instance there could be more than one controller configured. The adpter supports configuring the paramaters (P, I, D components) and the cycle time used for calculation.

      Was um Alles in der Welt ist ein PID Regler?
      auch @Paul53 schreibt dauernd davon.

      Könnteyt du dazu einen Zweizeiler in die Doku nehmen?

      mcm1957M Online
      mcm1957M Online
      mcm1957
      schrieb am zuletzt editiert von
      #13

      @homoran
      Danke fürs Feedback.
      Hab zwar in der docu auf wikipedia verlinkt, werd aber ein paar Worte direkt ins Readme schreiben damit dem User klar ist um was es prinzipiell mal geht.

      Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
      Support Repositoryverwaltung.

      Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

      LESEN - gute Forenbeitrage

      Rene55R 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @homoran sagte: Was um Alles in der Welt ist ein PID Regler?

        Siehe Wiki

        mcm1957M Online
        mcm1957M Online
        mcm1957
        schrieb am zuletzt editiert von
        #14

        @paul53 said in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

        @homoran sagte: Was um Alles in der Welt ist ein PID Regler?

        Siehe Wiki

        Und bevor die Farge kommt - ja deutsche Doku mach ich auch. Aber erst wenn klar ist ob / was sich ändert und die englische dem IST STand entspricht. Wenn wer vorher Fragen hat - es muss ja nicht jeder english können - bitte melden !

        Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
        Support Repositoryverwaltung.

        Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

        LESEN - gute Forenbeitrage

        1 Antwort Letzte Antwort
        1
        • mcm1957M mcm1957

          @homoran
          Danke fürs Feedback.
          Hab zwar in der docu auf wikipedia verlinkt, werd aber ein paar Worte direkt ins Readme schreiben damit dem User klar ist um was es prinzipiell mal geht.

          Rene55R Online
          Rene55R Online
          Rene55
          schrieb am zuletzt editiert von
          #15

          @mcm57 Ich versuche gerade mal, was mit dem Adapter zu machen. Hab als 'Regler-ID' die Produktion meines Solarkraftwerks eingegeben. Dann dachte ich, dass hier im Adapter unter 'akt' der gerade aktuelle Wert stehen müsste und dann sollte ja irgendwo auch der berechnete Wert mit den Faktoren aus PID zu finden sein. Bei mir ist alles 0. Wo hab ich den Denkfehler?

          Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
          ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
          Wetterstation: Froggit WH3000SE V1.6.6

          mcm1957M 1 Antwort Letzte Antwort
          0
          • HomoranH Homoran

            @mcm57 eine ganz große Bitte für die Doku:

            This adapter provides the functionality of a pid controller. Within one instance there could be more than one controller configured. The adpter supports configuring the paramaters (P, I, D components) and the cycle time used for calculation.

            Was um Alles in der Welt ist ein PID Regler?
            auch @Paul53 schreibt dauernd davon.

            Könnteyt du dazu einen Zweizeiler in die Doku nehmen?

            mcm1957M Online
            mcm1957M Online
            mcm1957
            schrieb am zuletzt editiert von
            #16

            @homoran
            Hab mal eine Kurzbeschreibung ins Readme eingefügt. Wenn du Zeit / Lust hast schaus dir an.
            Link zu Wikipedia ist inder docu (docs/en/pid.md)

            Eine Kopie von wikipedia im Readme ist sicher übertrieben. Aber ich glaube die Ergänzung informiert den User mal ausreichend damit er entscheiden kann ob er sich weiter hinein vertieft oder das Ding für ihne uninteressant ist.

            Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
            Support Repositoryverwaltung.

            Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

            LESEN - gute Forenbeitrage

            HomoranH 1 Antwort Letzte Antwort
            1
            • Rene55R Rene55

              @mcm57 Ich versuche gerade mal, was mit dem Adapter zu machen. Hab als 'Regler-ID' die Produktion meines Solarkraftwerks eingegeben. Dann dachte ich, dass hier im Adapter unter 'akt' der gerade aktuelle Wert stehen müsste und dann sollte ja irgendwo auch der berechnete Wert mit den Faktoren aus PID zu finden sein. Bei mir ist alles 0. Wo hab ich den Denkfehler?

              mcm1957M Online
              mcm1957M Online
              mcm1957
              schrieb am zuletzt editiert von mcm1957
              #17

              @rene55
              Der Adapter ist stand alone. Regler ID dient nur dazu die Namen der States zu definieren. Hier kannst du z.B.1 oder auch einen (kurzen) Namen eintragen

              Für die Benutzung musst du (neben den Paramatern) den Sollwert in den State 'set' und den Ist-Wert in den state 'act' schreiben, z.B. per js, blockly, rules, ... Siehe Beschreibung der states in en/pid.md

              Im Prinzip wär es natürlich denkbar, dass sich der Adapter an existierende States "anhängt". Könnt ev. als Feature eingequeued werden wenn es gewiunschen ist. Frage ist da nur wie das zu konfigurieren geht und ob es ausreicht act und y dann mit was zu verknüpfen ....

              Erstell einen Feature Request wenn es dir wichtig ist mit möglich genauer Info was da geunschen ist. Aber bitte bedenk, dass der Adapter kein Steuerungsdesign_und_Stromlaufplan-Werkzeug werden kann (und soll).

              Für V0.0.1 quetsch ich das aber nicht mehr rein.

              Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
              Support Repositoryverwaltung.

              Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

              LESEN - gute Forenbeitrage

              Rene55R 1 Antwort Letzte Antwort
              0
              • mcm1957M mcm1957

                @homoran
                Hab mal eine Kurzbeschreibung ins Readme eingefügt. Wenn du Zeit / Lust hast schaus dir an.
                Link zu Wikipedia ist inder docu (docs/en/pid.md)

                Eine Kopie von wikipedia im Readme ist sicher übertrieben. Aber ich glaube die Ergänzung informiert den User mal ausreichend damit er entscheiden kann ob er sich weiter hinein vertieft oder das Ding für ihne uninteressant ist.

                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #18

                @mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                Eine Kopie von wikipedia im Readme ist sicher übertrieben.

                denk ich auch.
                Hab's gera mal auf Wikipedia überflogen. Das mit einem Zweizeiler zu schaffen war wohl zu optimistisch :cry:

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                mcm1957M 1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                  Eine Kopie von wikipedia im Readme ist sicher übertrieben.

                  denk ich auch.
                  Hab's gera mal auf Wikipedia überflogen. Das mit einem Zweizeiler zu schaffen war wohl zu optimistisch :cry:

                  mcm1957M Online
                  mcm1957M Online
                  mcm1957
                  schrieb am zuletzt editiert von
                  #19

                  @homoran
                  Nö - das Beispiel der Geschwindigkeitsregelung beim Auto beschreibt das eigentlich sehr gut.
                  Aber DANKE dass du was gesagt hast. Wenn man den Begriff kennt ist es einem nicht bewußt dass andere "Bahnhof" verstehen.

                  Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                  Support Repositoryverwaltung.

                  Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                  LESEN - gute Forenbeitrage

                  1 Antwort Letzte Antwort
                  0
                  • mcm1957M mcm1957

                    @rene55
                    Der Adapter ist stand alone. Regler ID dient nur dazu die Namen der States zu definieren. Hier kannst du z.B.1 oder auch einen (kurzen) Namen eintragen

                    Für die Benutzung musst du (neben den Paramatern) den Sollwert in den State 'set' und den Ist-Wert in den state 'act' schreiben, z.B. per js, blockly, rules, ... Siehe Beschreibung der states in en/pid.md

                    Im Prinzip wär es natürlich denkbar, dass sich der Adapter an existierende States "anhängt". Könnt ev. als Feature eingequeued werden wenn es gewiunschen ist. Frage ist da nur wie das zu konfigurieren geht und ob es ausreicht act und y dann mit was zu verknüpfen ....

                    Erstell einen Feature Request wenn es dir wichtig ist mit möglich genauer Info was da geunschen ist. Aber bitte bedenk, dass der Adapter kein Steuerungsdesign_und_Stromlaufplan-Werkzeug werden kann (und soll).

                    Für V0.0.1 quetsch ich das aber nicht mehr rein.

                    Rene55R Online
                    Rene55R Online
                    Rene55
                    schrieb am zuletzt editiert von
                    #20

                    @mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                    Steuerungsdesign_und_Stromlaufplan-Werkzeug

                    Soetwas hatte ich eigentlich erwartet.

                    @mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                    Adapter an existierende States "anhängt"

                    Sah aber schon sehr gut aus, da er den Quelldatenpunkt schön aufgedröselt hatte.

                    Ok, dann werde ich mal die Werte über die States eingeben und mal weiter schauen.

                    Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
                    ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
                    Wetterstation: Froggit WH3000SE V1.6.6

                    mcm1957M 1 Antwort Letzte Antwort
                    0
                    • Rene55R Rene55

                      @mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                      Steuerungsdesign_und_Stromlaufplan-Werkzeug

                      Soetwas hatte ich eigentlich erwartet.

                      @mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                      Adapter an existierende States "anhängt"

                      Sah aber schon sehr gut aus, da er den Quelldatenpunkt schön aufgedröselt hatte.

                      Ok, dann werde ich mal die Werte über die States eingeben und mal weiter schauen.

                      mcm1957M Online
                      mcm1957M Online
                      mcm1957
                      schrieb am zuletzt editiert von
                      #21

                      @rene55 said in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                      @mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                      Steuerungsdesign_und_Stromlaufplan-Werkzeug

                      Soetwas hatte ich eigentlich erwartet.

                      OK, als V1.x.x mach ich das auch noch.
                      Und im Ernst - schreib wirklich in einen Feture Request rein was du brauchst. iob ist zwar kein Wunschkonzert und ich kann und will nicht versprechen was ich einbau, aber je besser kalr ist was gewunschen wird, desto eher kannman überlegen ob und wie das geht.

                      Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                      Support Repositoryverwaltung.

                      Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                      LESEN - gute Forenbeitrage

                      Rene55R 1 Antwort Letzte Antwort
                      0
                      • mcm1957M mcm1957

                        @rene55 said in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                        @mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                        Steuerungsdesign_und_Stromlaufplan-Werkzeug

                        Soetwas hatte ich eigentlich erwartet.

                        OK, als V1.x.x mach ich das auch noch.
                        Und im Ernst - schreib wirklich in einen Feture Request rein was du brauchst. iob ist zwar kein Wunschkonzert und ich kann und will nicht versprechen was ich einbau, aber je besser kalr ist was gewunschen wird, desto eher kannman überlegen ob und wie das geht.

                        Rene55R Online
                        Rene55R Online
                        Rene55
                        schrieb am zuletzt editiert von
                        #22

                        @mcm57 Lass mich erst noch etwas damit rumspielen, bevor ich neue Wünsche äußere. Möglicherweise macht der Adapter schon jetzt was ich brauche.

                        Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
                        ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
                        Wetterstation: Froggit WH3000SE V1.6.6

                        1 Antwort Letzte Antwort
                        0
                        • mcm1957M mcm1957
                          Aktuelle Test Version 1.0.0
                          Veröffentlichungsdatum 11.3.2024
                          Github Link https://github.com/iobroker-community-adapters/ioBroker.pid

                          Adapter Beschreibung, Changelog

                          [INFO]

                          Die aus der ersten Diskussionrunde resultierenden Änderungen wurden umgesetzt.

                          Zur aktuellen Diskussion gehts hier: https://forum.iobroker.net/topic/64250/test-neuer-adapter-pid-pid-regler-v0-0-x/206

                          Dieser Adapter stellt einen konfigurierbaren pid Regler zur Verfügung.

                          Je Instanz können beliebig viele Regler konfiguriert werden. Im Einstellungsmenu stehen die wichtigsten Reglerparamater (P, I, D Anteil, Zykluszeit sowie Minimum und Maximumwerte zur Verfügung. Aktuelle Werte werden via Zuständen übergeben.

                          Zusätzlich kann der Regler angehalten (Zustand 'run ') und resetted (Zustand 'rst') werden.

                          Weiters kann der Regler via manuellem Eingabewert (Zustände 'man' und 'man_inp') übersteuert werden, falls dies in einer Anwendung benötigt wird.

                          Eine Beschreibung findet sich hier:

                          https://github.com/iobroker-community-adapters/ioBroker.pid/blob/master/docs/de/pid_de.md

                          https://github.com/iobroker-community-adapters/ioBroker.pid/blob/master/docs/en/pid.md

                          Changelog

                          1.0.0

                          • BREAKING: Adapter benötigt nun node.js 18 oder neuer
                          • BREAKING: Adapter erfordert jetzt js-controller 5.x.x und admin 6.x.x oder neuer
                          • Offset war nicht funktionsfähig. Das Problem wurde behoben. (#105)
                          • Die falsche Fehlermeldung, wenn keine Controller fehlerhaft sind, wurde entfernt. (#68)
                          • State-Roles wurden überprüft und angepasst. (#88)
                          • Abhängigkeiten wurden aktualisiert.",

                          0.0.7

                          • geändert: Die Zykluszeit muss nun mindestens 100ms betragen
                          • geändert: Neuberechnungen werden nur mehr durch den Taktgeber gesteuert, es werden keine zusätzlichen Updates durchgeführt (#62)
                          • geändert: Abhängigkeiten wurden aktualisiert

                          0.0.6

                          • behoben: Die fehlerhafte Berechnung bei Erreichen der max/min Limits wurde korrigiert

                          0.0.5

                          • Adapter ist nun via npm verfügbar

                          0.0.4

                          • Zustand last_upd_str wurde entfernt
                          • Diverse Roles wurden angepasst

                          0.0.3.alpha.0

                          • neu: Eine optionale Ordnerstruktur für Zustände wurde implementiert.
                          • geändert: Timer wird bei Neustart nach Pausierung nun resetted.
                          • geändert: Werte für act und set werden nun gespeichert und beim Starten des Adapters verwendet
                          • geändert: Zustandsänderungen mit ack=true werden gelogged
                          • geändert: Falsche Updates beim Schreiben des act Zustands werden nun verhindert
                          • geändert: Funktionsfehler des Invert-Flags wurden behoben
                          • geändert: Die Fehleranzeige beim Erreichen der Limits wurde entfernt.
                          • geändert: q-Flag-Handling wurde korrigiert
                          • geändert: Unerwartetes Verhalten des sup-Parameters wurde behoben
                          • geändert: Der Eingabe-Zustand 'run' wurde auf 'hold' umbenannt."

                          0.0.2.alpha.2

                          • geändert: die Werte von kp, xp und sup werden nun auch überprüft falls diese mittels Zuständen verändert werden
                          • geändert: Werte von min und max werden nun auch überprüftfalls diese mittels Zuständen verändert werden
                          • geändert: Aktivierung von man atzualisiert nun y mit aktuellem Wert von man_inp
                          • geändert: min Wert wird nun beim Neustart der Instanz nicht neu initialisiert
                          • geändert: Umrechnung zwischen kp und xp wurde an mehreren Stellen korrigiert
                          • geändert: kp oder xp werden jetzt gemäß Modeauswahl schreibgeschützt"

                          0.0.2-alpha.1

                          • (McM19157) zweite Testversion nach Diskussionsrunde

                          zur aktuellen Diskussion gehts hier: https://forum.iobroker.net/topic/64250/test-neuer-adapter-pid-pid-regler-v0-0-1-alpha-x/63

                          0.0.1-alpha.x
                          (McM19157) erste Testversion

                          Bitte Probleme / Fragen hier im Forum deponieren oder auch als Issues direkt im Adapter repository anlegen:
                          https://github.com/iobroker-community-adapters/ioBroker.envertech-pv/issues

                          Danke für eure Zeit beim Testen und für jedes Feedback / Kritik / Anregung.

                          McM57

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von paul53
                          #23

                          @mcm57
                          Du berechnest nach der theoretischen Methode (auf die Regelabweichung bezogen)

                          this.y = this.data.off + this.k_p * this.err + this.k_i * this.sumErr + this.k_d * this.diffErr;
                          

                          Das wird in der Praxis selten angewendet. Man arbeitet mit Xp (Proportionalband), Tn (Nachstellzeit) und Tv (Vorhaltezeit).

                          y = diff * (max - min) / Xp * (1 + Summe(dt / Tn) + Tv/dt) + offset
                          

                          Habe ich es nur nicht gefunden oder ist eine Umkehr der Regelrichtung (Stichwort: Heizen/Kühlen) nicht vorgesehen?

                          Den selten gebrauchten D-Anteil sollte man nur auf den Istwert anwenden, da der Sollwert meist große Sprünge macht.

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          mcm1957M 1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @mcm57
                            Du berechnest nach der theoretischen Methode (auf die Regelabweichung bezogen)

                            this.y = this.data.off + this.k_p * this.err + this.k_i * this.sumErr + this.k_d * this.diffErr;
                            

                            Das wird in der Praxis selten angewendet. Man arbeitet mit Xp (Proportionalband), Tn (Nachstellzeit) und Tv (Vorhaltezeit).

                            y = diff * (max - min) / Xp * (1 + Summe(dt / Tn) + Tv/dt) + offset
                            

                            Habe ich es nur nicht gefunden oder ist eine Umkehr der Regelrichtung (Stichwort: Heizen/Kühlen) nicht vorgesehen?

                            Den selten gebrauchten D-Anteil sollte man nur auf den Istwert anwenden, da der Sollwert meist große Sprünge macht.

                            mcm1957M Online
                            mcm1957M Online
                            mcm1957
                            schrieb am zuletzt editiert von mcm1957
                            #24

                            @paul53
                            Ja das hast du richtig erkennt. Ich habe die Funktion ident zum hier an anderer Stelle schon erwähnten node-pid-controller (https://github.com/Philmod/node-pid-controller) umgesetzt. Da wird die D Komponente auch auch den Error angewendet. Deine Anregung bezüglich Sprungverhalten versteh ich aber.

                            Eine Invertierung des Ausgangs hab ich nicht vorgesehen. Diese wäre leicht außerhalb machbar, kann ich aber auch im Regler vorsehen wenn Bedarf besteht (wär ja trivial :-) ). Bitte ggF. Feature Request einstellen.

                            Im Prinzip ist es aber trivial auch eine andere Funktion umzusetzen, d.h. auf Nachstellzeit / Vorhaltezeit zu wechseln. Nur beide Optionen will ich nicht anbieten :-).

                            BITTE UM EURE MEINUNG: Soll ich auf tn/tv umstellen gemäß obiger Formel? Oder das Verhalten analog zu node-pid-controller beibehalten???

                            Wobei ich bei einer Umstellung noch Nachhilfe bei der Formel brauch. (Will meine Scripten aus den 80ern nicht im Keller suchen gehen). Summe(dt/Tn) ist irgendwie nicht stimmig im I Anteil muss doch die Summe der Fehler auftreten.

                            Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                            Support Repositoryverwaltung.

                            Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                            LESEN - gute Forenbeitrage

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • mcm1957M mcm1957

                              @paul53
                              Ja das hast du richtig erkennt. Ich habe die Funktion ident zum hier an anderer Stelle schon erwähnten node-pid-controller (https://github.com/Philmod/node-pid-controller) umgesetzt. Da wird die D Komponente auch auch den Error angewendet. Deine Anregung bezüglich Sprungverhalten versteh ich aber.

                              Eine Invertierung des Ausgangs hab ich nicht vorgesehen. Diese wäre leicht außerhalb machbar, kann ich aber auch im Regler vorsehen wenn Bedarf besteht (wär ja trivial :-) ). Bitte ggF. Feature Request einstellen.

                              Im Prinzip ist es aber trivial auch eine andere Funktion umzusetzen, d.h. auf Nachstellzeit / Vorhaltezeit zu wechseln. Nur beide Optionen will ich nicht anbieten :-).

                              BITTE UM EURE MEINUNG: Soll ich auf tn/tv umstellen gemäß obiger Formel? Oder das Verhalten analog zu node-pid-controller beibehalten???

                              Wobei ich bei einer Umstellung noch Nachhilfe bei der Formel brauch. (Will meine Scripten aus den 80ern nicht im Keller suchen gehen). Summe(dt/Tn) ist irgendwie nicht stimmig im I Anteil muss doch die Summe der Fehler auftreten.

                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von paul53
                              #25

                              @mcm57 sagte: Summe(dt/Tn) ist irgendwie nicht stimmig im I Anteil muss doch die Summe der Fehler auftreten.

                              Ja natürlich, ist eine vereinfachte Darstellung. Es ist bezüglich Deiner Berechnung nur zu beachten, dass kp als Multiplikator in alle 3 Komponenten (PID) eingeht: Tn und Tv sind auf den Ausgang bezogen. Tn ist die Zeit, um die sich der Ausgang nochmal um den gleichen Betrag ändert wie durch den P-Anteil.

                              Formel:

                              PID-Formel.JPG

                              mit

                              Kp = (MaxOut - MinOut) / Xp
                              

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              mcm1957M 2 Antworten Letzte Antwort
                              0
                              • paul53P paul53

                                @mcm57 sagte: Summe(dt/Tn) ist irgendwie nicht stimmig im I Anteil muss doch die Summe der Fehler auftreten.

                                Ja natürlich, ist eine vereinfachte Darstellung. Es ist bezüglich Deiner Berechnung nur zu beachten, dass kp als Multiplikator in alle 3 Komponenten (PID) eingeht: Tn und Tv sind auf den Ausgang bezogen. Tn ist die Zeit, um die sich der Ausgang nochmal um den gleichen Betrag ändert wie durch den P-Anteil.

                                Formel:

                                PID-Formel.JPG

                                mit

                                Kp = (MaxOut - MinOut) / Xp
                                
                                mcm1957M Online
                                mcm1957M Online
                                mcm1957
                                schrieb am zuletzt editiert von mcm1957
                                #26

                                @paul53
                                OK, dann wart ich mal ab ob / was zu dem Thema noch kommt. In github hat fu-zhou auch einigen Input / Anregungen gegeben. Möchte gerne warten was er schreibt (außer du bist eh fu-zhou - forum / github / telegram = multiple Persönlichkeiten :-) )

                                Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                                Support Repositoryverwaltung.

                                Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                                LESEN - gute Forenbeitrage

                                paul53P 1 Antwort Letzte Antwort
                                0
                                • mcm1957M mcm1957

                                  @paul53
                                  OK, dann wart ich mal ab ob / was zu dem Thema noch kommt. In github hat fu-zhou auch einigen Input / Anregungen gegeben. Möchte gerne warten was er schreibt (außer du bist eh fu-zhou - forum / github / telegram = multiple Persönlichkeiten :-) )

                                  paul53P Offline
                                  paul53P Offline
                                  paul53
                                  schrieb am zuletzt editiert von
                                  #27

                                  @mcm57 sagte: außer du bist eh fu-zhou

                                  Nein, das von fu-zhou erwähnte NPM-Modul "pi-controller" stammt von mir.

                                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                  1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

                                    @mcm57 sagte: Summe(dt/Tn) ist irgendwie nicht stimmig im I Anteil muss doch die Summe der Fehler auftreten.

                                    Ja natürlich, ist eine vereinfachte Darstellung. Es ist bezüglich Deiner Berechnung nur zu beachten, dass kp als Multiplikator in alle 3 Komponenten (PID) eingeht: Tn und Tv sind auf den Ausgang bezogen. Tn ist die Zeit, um die sich der Ausgang nochmal um den gleichen Betrag ändert wie durch den P-Anteil.

                                    Formel:

                                    PID-Formel.JPG

                                    mit

                                    Kp = (MaxOut - MinOut) / Xp
                                    
                                    mcm1957M Online
                                    mcm1957M Online
                                    mcm1957
                                    schrieb am zuletzt editiert von mcm1957
                                    #28

                                    @paul53 said in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                                    @mcm57 sagte: Summe(dt/Tn) ist irgendwie nicht stimmig im I Anteil muss doch die Summe der Fehler auftreten.

                                    Ja natürlich, ist eine vereinfachte Darstellung. Es ist bezüglich Deiner Berechnung nur zu beachten, dass kp als Multiplikator in alle 3 Komponenten (PID) eingeht: Tn und Tv sind auf den Ausgang bezogen. Tn ist die Zeit, um die sich der Ausgang nochmal um den gleichen Betrag ändert wie durch den P-Anteil.

                                    Formel:

                                    PID-Formel.JPG

                                    mit

                                    Kp = (MaxOut - MinOut) / Xp
                                    

                                    Das bedeutet also:
                                    MaxOut und MinOut Werte werden obligatorisch.

                                    Kp = (MaxOut-MinOut) / Xp
                                    e = act - set  
                                    (Integral e) ... e + e[t-1] + e[t-2] .... Summe aller Differenzen, sumErr derzeit
                                    de = e - e[t-1]
                                    
                                    Input
                                    act ... aktueller IST Wert (Input)
                                    set ... aktueller SOLL Wert (Input)
                                    
                                    Parameter
                                    Xp ... Parameter für Verstärkung (und damit auch Proportionalanteil)
                                    Tn ... Nachlaufzeit (ms) - Parameter für Integralanteil
                                    Tv ... Vorhaltezeit (ms) - Parameter für Differentialanteil
                                    dt ... Zeitdifferenz zu letzter Berechnung (ms), ca Zykluszeit od Zeit zw 2 manuellen Triggern
                                    
                                    Output
                                    u ... output, derzeit y
                                    

                                    Den Sinn des Max-Min Terms versteh ich nur bedingt. Die Begrenzung des Ausgangswertes auf Max bzw. Min erspart das jedenfalls nicht. Die Differenz zwischen Act und Set kann ja "beliebig" sein. Ergo könnte man max und min ja auch in Xp berücksichtigen. Da brauch ich noch ne Erklärung.

                                    Offset wird in jedem Fall noch dazu gerechnet.

                                    Und Invertierung wäre ja einfache Invertieren des Ausgangswerte ( y = -y). Oder überseh ich da was?

                                    Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                                    Support Repositoryverwaltung.

                                    Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                                    LESEN - gute Forenbeitrage

                                    paul53P 1 Antwort Letzte Antwort
                                    0
                                    • mcm1957M mcm1957

                                      @paul53 said in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                                      @mcm57 sagte: Summe(dt/Tn) ist irgendwie nicht stimmig im I Anteil muss doch die Summe der Fehler auftreten.

                                      Ja natürlich, ist eine vereinfachte Darstellung. Es ist bezüglich Deiner Berechnung nur zu beachten, dass kp als Multiplikator in alle 3 Komponenten (PID) eingeht: Tn und Tv sind auf den Ausgang bezogen. Tn ist die Zeit, um die sich der Ausgang nochmal um den gleichen Betrag ändert wie durch den P-Anteil.

                                      Formel:

                                      PID-Formel.JPG

                                      mit

                                      Kp = (MaxOut - MinOut) / Xp
                                      

                                      Das bedeutet also:
                                      MaxOut und MinOut Werte werden obligatorisch.

                                      Kp = (MaxOut-MinOut) / Xp
                                      e = act - set  
                                      (Integral e) ... e + e[t-1] + e[t-2] .... Summe aller Differenzen, sumErr derzeit
                                      de = e - e[t-1]
                                      
                                      Input
                                      act ... aktueller IST Wert (Input)
                                      set ... aktueller SOLL Wert (Input)
                                      
                                      Parameter
                                      Xp ... Parameter für Verstärkung (und damit auch Proportionalanteil)
                                      Tn ... Nachlaufzeit (ms) - Parameter für Integralanteil
                                      Tv ... Vorhaltezeit (ms) - Parameter für Differentialanteil
                                      dt ... Zeitdifferenz zu letzter Berechnung (ms), ca Zykluszeit od Zeit zw 2 manuellen Triggern
                                      
                                      Output
                                      u ... output, derzeit y
                                      

                                      Den Sinn des Max-Min Terms versteh ich nur bedingt. Die Begrenzung des Ausgangswertes auf Max bzw. Min erspart das jedenfalls nicht. Die Differenz zwischen Act und Set kann ja "beliebig" sein. Ergo könnte man max und min ja auch in Xp berücksichtigen. Da brauch ich noch ne Erklärung.

                                      Offset wird in jedem Fall noch dazu gerechnet.

                                      Und Invertierung wäre ja einfache Invertieren des Ausgangswerte ( y = -y). Oder überseh ich da was?

                                      paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von paul53
                                      #29

                                      @mcm57 sagte: Die Begrenzung des Ausgangswertes auf Max bzw. Min erspart das jedenfalls nicht.

                                      Das ist die Begrenzung des Ausgangswertes. Stellglieder haben einen begrenzten Stellbereich, meist 0 ... 100 %. Darauf bezieht sich das Proportionalband Xp.
                                      Beispiel für P-Anteil: Xp = 4; Offset = 50 = (Max + Min) / 2; e = -1 --> y = 25 %

                                      @mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                                      Und Invertierung wäre ja einfache Invertieren des Ausgangswerte ( y = -y).

                                      Invertierung von Kp oder e.

                                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                      fu_zhouF mcm1957M 2 Antworten Letzte Antwort
                                      0
                                      • paul53P paul53

                                        @mcm57 sagte: Die Begrenzung des Ausgangswertes auf Max bzw. Min erspart das jedenfalls nicht.

                                        Das ist die Begrenzung des Ausgangswertes. Stellglieder haben einen begrenzten Stellbereich, meist 0 ... 100 %. Darauf bezieht sich das Proportionalband Xp.
                                        Beispiel für P-Anteil: Xp = 4; Offset = 50 = (Max + Min) / 2; e = -1 --> y = 25 %

                                        @mcm57 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                                        Und Invertierung wäre ja einfache Invertieren des Ausgangswerte ( y = -y).

                                        Invertierung von Kp oder e.

                                        fu_zhouF Offline
                                        fu_zhouF Offline
                                        fu_zhou
                                        schrieb am zuletzt editiert von
                                        #30

                                        Boah, jetzt geht's ja ganz schön ab hier, sehr schön! Hier mal mein Input:

                                        @paul53 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                                        @mcm57
                                        Du berechnest nach der theoretischen Methode (auf die Regelabweichung bezogen)

                                        this.y = this.data.off + this.k_p * this.err + this.k_i * this.sumErr + this.k_d * this.diffErr;
                                        

                                        Das wird in der Praxis selten angewendet. Man arbeitet mit Xp (Proportionalband), Tn (Nachstellzeit) und Tv (Vorhaltezeit).

                                        y = diff * (max - min) / Xp * (1 + Summe(dt / Tn) + Tv/dt) + offset
                                        

                                        Habe ich es nur nicht gefunden oder ist eine Umkehr der Regelrichtung (Stichwort: Heizen/Kühlen) nicht vorgesehen?

                                        Den selten gebrauchten D-Anteil sollte man nur auf den Istwert anwenden, da der Sollwert meist große Sprünge macht.

                                        Ich gebe paul53 da Recht, auch wenn ich nur Regler-Anwender, nicht Regler-Programmierer bin. Bei der Optimierung eines Regelkreises, z.B. nach Ziegler-Nichols, berechnet man über die Formel tatsächlich die Nachstellzeit Tn und (wo notwendig) die Vorhaltezeit Tv in Sekunden, was ich auch irgendwie greifbarer finde - weil ich das halt kenne.

                                        Zum Heizen/Kühlen: Das ist eine Split-Range-Regelung, lässt sich über MIN MAX out (LL, LH) realisieren, z.B. MIN = -100%, MAX = 100%. Der Regler startet bei 0% (=kein Energieverbrauch), bei positiver Regelabweichung (w-x > 0) schiebt der Regler den Ausgang Richtung 100%, also wird mit 0-100% ein Heizventil angesteuert und bei negativer Regelabweichung schiebt der Regler Richtung -100% und damit wird dann ein Kühlventil angesteuert. Habe ich nur ein Stellglied, in meinem Fall wieder die Wallbox, die 1,4 - 11 kW kann, ist MIN 0 und MAX 11, wobei ich MAX mit Blockly bestimme: Nachts, wenn die Hausbatterie leer ist, darf die Wallbox mit 11 kW laden, tagsüber max. mit dem PV-Überschuss. Das hilft, den Regler entsprechend schnell zu begrenzen, wenn eine Wolke drüber zieht, der Regler muss dann nicht mit den eingestellten Parametern zurückregeln.

                                        Synology DS920+ VM, S7-315 PN mit ET200S

                                        mcm1957M 1 Antwort Letzte Antwort
                                        0
                                        • fu_zhouF fu_zhou

                                          Boah, jetzt geht's ja ganz schön ab hier, sehr schön! Hier mal mein Input:

                                          @paul53 sagte in Test neuer Adapter pid (pid-Regler) V0.0.1-alpha.x:

                                          @mcm57
                                          Du berechnest nach der theoretischen Methode (auf die Regelabweichung bezogen)

                                          this.y = this.data.off + this.k_p * this.err + this.k_i * this.sumErr + this.k_d * this.diffErr;
                                          

                                          Das wird in der Praxis selten angewendet. Man arbeitet mit Xp (Proportionalband), Tn (Nachstellzeit) und Tv (Vorhaltezeit).

                                          y = diff * (max - min) / Xp * (1 + Summe(dt / Tn) + Tv/dt) + offset
                                          

                                          Habe ich es nur nicht gefunden oder ist eine Umkehr der Regelrichtung (Stichwort: Heizen/Kühlen) nicht vorgesehen?

                                          Den selten gebrauchten D-Anteil sollte man nur auf den Istwert anwenden, da der Sollwert meist große Sprünge macht.

                                          Ich gebe paul53 da Recht, auch wenn ich nur Regler-Anwender, nicht Regler-Programmierer bin. Bei der Optimierung eines Regelkreises, z.B. nach Ziegler-Nichols, berechnet man über die Formel tatsächlich die Nachstellzeit Tn und (wo notwendig) die Vorhaltezeit Tv in Sekunden, was ich auch irgendwie greifbarer finde - weil ich das halt kenne.

                                          Zum Heizen/Kühlen: Das ist eine Split-Range-Regelung, lässt sich über MIN MAX out (LL, LH) realisieren, z.B. MIN = -100%, MAX = 100%. Der Regler startet bei 0% (=kein Energieverbrauch), bei positiver Regelabweichung (w-x > 0) schiebt der Regler den Ausgang Richtung 100%, also wird mit 0-100% ein Heizventil angesteuert und bei negativer Regelabweichung schiebt der Regler Richtung -100% und damit wird dann ein Kühlventil angesteuert. Habe ich nur ein Stellglied, in meinem Fall wieder die Wallbox, die 1,4 - 11 kW kann, ist MIN 0 und MAX 11, wobei ich MAX mit Blockly bestimme: Nachts, wenn die Hausbatterie leer ist, darf die Wallbox mit 11 kW laden, tagsüber max. mit dem PV-Überschuss. Das hilft, den Regler entsprechend schnell zu begrenzen, wenn eine Wolke drüber zieht, der Regler muss dann nicht mit den eingestellten Parametern zurückregeln.

                                          mcm1957M Online
                                          mcm1957M Online
                                          mcm1957
                                          schrieb am zuletzt editiert von
                                          #31

                                          OK, das es n unmehr 3:0 steht treffe ich die Entscheidung

                                          Es wird auf Tn/Tv umgestellt

                                          (aber nicht mehr heute :-))

                                          Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                                          Support Repositoryverwaltung.

                                          Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                                          LESEN - gute Forenbeitrage

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          689

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe