Hallo, ich möchte noch einmal auf deinen anfänglichen Beitrag zurückkommen: Die Regleralgorithmen ergeben einen Wert für die Stellgröße. Ich würde zum ersten Erproben zunächst nur den P-Anteil verwenden:
Y=kp*e. Wenn der P-Anteil richtig funktioniert, bleibt zwar eine Regeldifferenz , aber du weisst, dass die Funktion schon mal da ist.
Da du mit Puls-Weiten-Modulation arbeitest, musst du aus dem Wert von Y die Pulsdauer gewinnen (deine eigentliche Frage?)
Das müsste m.E so funktionieren:
Die Max Pulsdauer hat einen bestimmten Wert, z.B. 50ms.
Wenn Y seinen max.Wert hat (z.B. entsprechend dem Wertebereich deiner Variablen Y), dann entspricht dies der max. Einschaltimpulsdauer = 50ms.
Andere Werte von Y werden dann linear umgerechnet: TPuls = TPulsmax * Y / Ymax.
KP musst du jetzt durch experimentieren so einstellen, dass der Regler ohne zu schwingen möglichst weit an den Sollwert heranregelt.
Wenn das funktioniert, bist du ein ganzes Stück weiter, denn du weisst, dein Regler funktioniert grundsätzlich.
Jetzt programmierst du dir den I-Anteil wie im ersten Beitrag dazu und stellst ki so ein, dass möglichst schnell der Sollwert erreicht wird, ohne kp nocheinmal zu verändern.
Ob du dann noch den D-Anteil brauchst, musst du erproben. Wahrscheinlich nicht.
Viel Glück - Grüße von Jens