
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
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 |