Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter pid (pid-Regler) V1.0.x

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • mcm1957
      mcm1957 @mcm1957 last edited by

      Ansatz zur Einstellung via States:
      In der Config Maske Flag "Use states for Config"
      Ist dieses gesetzt, gibts keine Config für P,I,D, ... in der Maske und die States sind schreibbar bzw. werden verwendet. Ist es nicht gesetzt, so gelten die Eingaben in der Maske.

      Damit können auch User die via Blockly / Rules arbeiten den Regler benutzen ohne sich mit übermäßgen setStattes die sie vielleicht gar nicht brauchen zu quälen. Und wer VIS / JS-Script verwendet um die Warte zu setzeb kann das auch.

      Einwände?

      Rene55 Homoran 2 Replies Last reply Reply Quote 1
      • Rene55
        Rene55 @mcm1957 last edited by

        @mcm57 Ich wollte mich gerade mal ein wenig einlesen in die Doku, bekomme aber nur "The 'iobroker-community-adapters/ioBroker.pid' repository doesn't contain the 'docs/en/envertech.md' path in 'master'. "

        Meine persönliche Meinung: beim 'last_upd_str' gefällt mir das Datum nicht besonders - oder liegt das an meinen Einstellungen (ich hab Deutsch)?

        mcm1957 1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @mcm1957 last edited by

          @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?

          paul53 mcm1957 3 Replies Last reply Reply Quote 0
          • mcm1957
            mcm1957 @Rene55 last edited by mcm1957

            @rene55
            Also die Docu liegt bei mir auf github:
            https://github.com/iobroker-community-adapters/ioBroker.pid/blob/master/docs/en/pid.md

            Wo hast du den Link her der nicht geht?

            6bc4fa11-0172-4887-b3ed-5d7f00051e73-image.png


            Schon gefunden. S... copy & Paste des Dokugerüsts 🙂

            Soory, sollte gefixed sein

            Rene55 1 Reply Last reply Reply Quote 0
            • Rene55
              Rene55 @mcm1957 last edited by Rene55

              @mcm57 Ich hatte auf Github unter english documentation is available here geklickt.

              Nachtrag: Yes, gefixt.

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @Homoran last edited by

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

                Siehe Wiki

                mcm1957 1 Reply Last reply Reply Quote 1
                • mcm1957
                  mcm1957 @Homoran last edited by

                  @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.

                  Rene55 1 Reply Last reply Reply Quote 0
                  • mcm1957
                    mcm1957 @paul53 last edited by

                    @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 !

                    1 Reply Last reply Reply Quote 1
                    • Rene55
                      Rene55 @mcm1957 last edited by

                      @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?

                      mcm1957 1 Reply Last reply Reply Quote 0
                      • mcm1957
                        mcm1957 @Homoran last edited by

                        @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.

                        Homoran 1 Reply Last reply Reply Quote 1
                        • mcm1957
                          mcm1957 @Rene55 last edited by 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.

                          Rene55 1 Reply Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators @mcm1957 last edited by

                            @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 😢

                            mcm1957 1 Reply Last reply Reply Quote 0
                            • mcm1957
                              mcm1957 @Homoran last edited by

                              @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.

                              1 Reply Last reply Reply Quote 0
                              • Rene55
                                Rene55 @mcm1957 last edited by

                                @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.

                                mcm1957 1 Reply Last reply Reply Quote 0
                                • mcm1957
                                  mcm1957 @Rene55 last edited by

                                  @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.

                                  Rene55 1 Reply Last reply Reply Quote 0
                                  • Rene55
                                    Rene55 @mcm1957 last edited by

                                    @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.

                                    1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @mcm1957 last edited by 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.

                                      mcm1957 1 Reply Last reply Reply Quote 0
                                      • mcm1957
                                        mcm1957 @paul53 last edited by 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.

                                        paul53 1 Reply Last reply Reply Quote 0
                                        • paul53
                                          paul53 @mcm1957 last edited by 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
                                          
                                          mcm1957 2 Replies Last reply Reply Quote 0
                                          • mcm1957
                                            mcm1957 @paul53 last edited by 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 🙂 )

                                            paul53 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            622
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            16
                                            314
                                            38565
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo