INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Irgendwie bekomm ich das nicht richtig hin... Also als ich nur den I-Teil hatte, regelte das ganze noch am besten. Der Versuch erst einen P-Teil einzustellen und dann den I-Teil dazu zunehmen ist nicht gut gegangen. Ein reiner P-Regler hat entweder nie den Sollwert erreicht, oder hat ihn überschritten. Dadurch lief der Lüfter immer stark an -> bremste ganz ab -> lief stark an... Ich weiß nicht, wie ich das beheben soll. Hier deswegen noch meine Haupt-Routine: DO 'Druckmessung Istwert = PCF8591_GET_AD(PCF8591, 00000000b) 'Wenn Daten vom PC kommen IF RXD THEN EVAL_EVENT() END IF 'I-Regler + Senden an den DA-Port PCF8591_SET_DA(PCF8591, I_REGULATION(Istwert, Sollwert)) PAUSE Intervall 'Intervall vordefiniert mit 50 => 1 Sekunde LOOP und meine I-Regulation: FUNCTION I_REGULATION(Istwert AS BYTE, Sollwert AS BYTE) Luefter_aktl = Luefter_aktl + (Sollwert - Istwert) / 5 'Luefter_aktl ist eine Word-Variable 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 |
Antwort schreiben |