So ich bin nun endlich wieder dazugekommen, an meinem regelungsprogramm weiterzuarbeiten.
Leider funktioniert es immer noch nicht. Konkret schaut es nun so aus:
Ich hab mich dabei mit an dem Bascom Beispiel orientiert. Darum auch die 50ms Verzögerung am Anfang. Ich hab mir auch den anderen Beitrag im Forum zu dem Beispiel durchgelesen und weis, dass es nicht das beste ist. Mein Problem ist immer noch folgendes, dass der Stellwert teilweise negativ wird. Kp und Ki hab ich absichtlich weggelassen um ersteinmal Ki einzustellen. Nur wie bring ich jetzt den Stellwert in Verbindung mit dem PWM wert. Der Stellwert kann ja auch negativ werden. Ich wäre für vorschläge sehr dankbar. Achja: der Faktor 0.05 stellt die Abtastrate (50ms Verzögerung dar, und der Faktor 20 der Kehrwert)Code:Dim E As Single , Esum As Single , Ealt As Single Cls Start Adc Dim Sollwert As Single Dim Istwert As Single Dim Stellwert As Single Dim W As Word Stellwert = 0 Sollwert = 3.00 Ealt = 0 Cyclic: Waitms 50 Gosub Regulator Goto Cyclic Regulator: Pwm1a = Stellwert Const Kp = 0.0 Const Ki = 0.0 Const Kd = 1 Dim Panteil As Single Dim Ianteil As Single Dim Danteil As Single W = Getadc(0) Istwert = W / 1023 Istwert = Istwert * 50 E = Sollwert - Istwert Esum = Esum + E Panteil = Kp * E Ianteil = 0.05 * Esum Ianteil = Ianteil * Ki Danteil = E - Ealt Danteil = Danteil * Kd Danteil = Danteil * 20 '1 / Ta = 20, da Ta = 0.05ms' Stellwert = Panteil + Danteil Stellwert = Stellwert + Ianteil Ealt = E Locate 1 , 1 Lcd Stellwert Locate 2 , 1 Lcd Fusing(istwert , "#.##") Return
Vielen Dank für eure Hilfe.
Martin







Zitieren

Lesezeichen