Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Probleme mit PID Regler in BASIC++ Kategorie: Programmierung Basic (von Daniel - 31.07.2007 11:19)
Daniel nutzt:  CC1-Station V2.0
Hi @ all,

ich habe ein Problem mit der Verwirklichung eines PID-Reglers auf meiner C-Control 1 Station 2.0. Leider finde ich im Internet nicht die Tipps/Tricks und Lösungen, die mir weiterhelfen könnten. Ich versuche ein Programm zu schreiben, dass ein gewisser Druck, den ich per Programm festlege, aufrecht erhalten bleibt und auf Druckabfall o.ä. reagiert.

Mein Aufbau:

Ein Druckmesser gibt eine Spannung an einen A/D-Port (8-Bit-Auflösung) der Station. Dieser Wert (0-255) ist mein Istwert und soll dann mit dem eingestellten Sollwert verglichen werden. Anschließend soll je nach dem wie Abweichung ist ein Lüfter (angesteuert über einen D/A-Port) schneller bzw langsamer laufen, um den eingestellten Soll-Druck zu erreichen.

Leider weiß ich nicht wie ich den PID-Regler implementieren soll mit Basic++ oder ob das überhaupt möglich ist, da die Formel für einen PID-Regler schon komplex ist für Basic++.

Ich habe im Moment einfach eine P-Regler implementiert:


FUNCTION P_REGULATION(Istwert AS BYTE, Sollwert AS BYTE)

         Luefter_aktl = Luefter_aktl + Sollwert - Istwert        
                             
         IF Luefter_aktl > 255 THEN
            Luefter_aktl = 255
         END IF
         
         IF Luefter_aktl < 0 THEN
            Luefter_aktl = 0
         END IF

         RETURN Luefter_aktl
       
END FUNCTION


Dieser regelt mir aber zu ungenau und schwankt recht stark. Wenn ein PID-Regler nicht möglich ist, würde mir auch ein PI-Regler reichen.

Danke

 Antwort schreiben

Bisherige Antworten:

Re: Probleme mit PID Regler in BASIC++ (von ManfredW - 2.08.2007 22:36)
    Re: Probleme mit PID Regler in BASIC++ (von Daniel - 3.08.2007 8:51)
        Re: Probleme mit PID Regler in BASIC++ (von ManfredW - 3.08.2007 10:03)
            Re: Probleme mit PID Regler in BASIC++ (von Daniel - 3.08.2007 13:59)
                Re: Probleme mit PID Regler in BASIC++ (von ManfredW - 3.08.2007 14:31)
Re: Probleme mit PID Regler in BASIC++ (von Peter Grzeschik - 1.08.2007 8:29)
    Re: Probleme mit PID Regler in BASIC++ (von Daniel - 1.08.2007 13:33)