Gast
#2381627
Hallo! Ich benutze den Code vom AVR221 Beispiel. Mir geht es aber nicht um den Regelalgorithmus selbst, sondern eher um die Skalierung auf meinen gewünschten Stellwert. Beschreibung: Eine Konstantstromquelle wird über eine PWM eingestellt. Wobei der Wert 2806 der Maximalwert ist(entspricht 400mA, aber nur 78% der PWM). Ein Temperatursensor liefert mir den aktuellen Temperaturwert in Grad C. Mein Grenzwert(Sollwert) ist auf 85 GradC eingestellt. Ich möchte nun, dass die Konstantstromquelle bis 60 GradC mit dem maximalen Strom läuft und dann pro Grad in ca. 10mA-Schritten(entspricht ca. einer 2% Verminderung der PWM) fällt und bei >=85GradC nur mehr 200mA hat. Wenn ich nun eine einfache Proportionalregelung verwende, wie muss ich die Skalierung vornehmen damit ich vernünftige PWM-Werte erziele? Mein maxError ist auf 25 eingestellt, damit der Regler erst bei einer Temperatur von 60 GradC anfängt zu regeln. Der Faktor P_Factor ist auf 0,5 eingestellt. Mir ist nicht ganz klar wie mit welchen Faktor x ich (P_Factor error x) multiplizieren muss um ein p_term zu bekommen was meiner PWM entspricht. Bsp.: bei 60GradC error = 85 - 60 = 25 p_term = 0,5 * 25 = 12,5 um nun den PWM Wert 2734 für 76% zu erhalten muss p_term mit 218 multipliziert werden. bei 61GradC error = 85 - 61 = 24 p_term = 0,5 * 24 = 12 um nun den PWM Wert 2662 für 74% zu erhalten muss p_term mit 221 multipliziert werden usw. Wie realisiere ich das am besten? Ich kann doch nicht für jedes GradC mit if Abfragen den richtigen Faktor suchen. Es geht sicher noch einfacher...
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
Bitte um einwenig Hilfestellung... lg