Hallo zusammen!! Habe einen mega8, mein Programm läuft auch prima soweit, es soll jedoch eine Temperaturregelung implementiert werden. Diese soll wie folgt ablaufen: Einlesen des Sollwertes (Poti am ADC) Einlesen des Istwertes ( Temp.-Fühler am ADC) Regelung (PI-Regler) Stellgröße = PWM-Signal für Lüfter Im Prinzip läuft die Regelung auch, hier mal der Code-Auszug: W = Getadc(2) Kp = 18 Ki = 60 Ta = 0.01 X = Getadc(0) E = W - X 'Vergleich Esum = Esum + E 'Integration I-Anteil If Esum < -400 Then Esum = -400 End If 'Begrenzung I -anteil If Esum > 400 Then Esum = 400 End If Y = Kp * E Z = 0.6 * Esum Y = Y + Z 'Reglergleichung If Y < 0 Then Y = 0 'Begrenzung Stellgröße End If If Y > 750 Then Y = 750 End If Pwm1a = Y So, Problem ist nun: das ganze läuft irgendwie nicht, der Lüfter müsste ja bei Y = 750 sehr langsam laufen (macht er auch wenn ich es "manuell" vorgebe z.B.), bei Y = 0 auf "volle Pulle", aber das will irgendwie nicht so ganz?!?! Wo liegt der Fehler? Danke schonmal für eure Hilfe!!
Was läuft den nicht so ganz? Bitte nähere Angaben. Die Werte für kp und ki sind sehr kritisch und müssen ziemlich genau passen, damit der Regler gut regelt und nicht schwingt. evtl. musst Du noch umrechnen, dass der Lüfter bei 750 max läuft und bei 0 aus ist: Pwm1a = 750 - Y oder geht PWM überhaupt nicht, auch mit manuellen Eingaben?
Hallo Nils. Irgendwie hast du das von http://www.roboternetz.de/wissen/index.php/Regelungstechnik zusammenkopiert, und es geht nicht? Poste doch mal den ganzen Code, um zu sehen, ob eine Schleife vorhanden ist, die Variablen vom Typ int sind, ...
Also, ich habe es wie gesagt vom Roboternetz, habe jetzt mal ein wenig mit den Werten für Kp und Ki "rumgespiel", jetzt läuft es WESENTLICH besser!! PWM an sich funktioniert, das hatte ich glaube ich auch erwähnt! Habe auch vorher die beiden Werte angeglichen, so dass beide eine Temperatur in °C widerspiegeln! Ich danke euch trotzdem für eure Hilfe, werde also noch ein wenig mit den Konstanten "experimentieren", und dann sehen wie's läuft!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.