Forum: Mikrocontroller und Digitale Elektronik PID-Regler, ACR221 P-Anteil verhält sich komisch


von Michael S. (damicha82)


Lesenswert?

Hallo,

ich habe vor eine Temperaturregelung mit einem AVR zu implementieren. 
Die Temperatur wird von einem LM35 über einen 12bit ADC gelesen. Die 
Heizung wird über PWM mit dem 16bit Timer1 angesteuert.

Ich will gerne die Atmel Aplication Note 221 verwenden, da sie mit 
Integerwerten arbeitet und deshalb sehr schnell ist. Die ganzen Regler 
die ich finde sind alle in Fließkomma und ich brauche 36 parallel 
Laufende Regler, somit fällt float aus.

Nun zu meinem Problem wo ich etwas auf dem Schlauch stehe. Mit der 
AVR221 Regelung funktioniert der I-Anteil wunderbar. Er regelt von Null 
sauber auf 100% (32767) in einer einstellbaren Zeit. Aber wenn ich nur 
den P-Anteil setze Ki und Kd sind null, dann bekomme ich als 
Rückgabewert maximal 255.
1
measurementValue = adc_sample(SS_0, adc_channel_mux, ADC_SAMPLES);
2
  measurementValue += adc_offset;
3
  inputValue = pid_Controller(referenceValue, measurementValue, &pid_data_0[0]);
4
5
  l298_set_param(inputValue);

von Bastian W. (jackfrost)


Lesenswert?

Hast du es im Atmel Studio mal simuliert und geschaut wo er ggf auf 8 
Bit Integer limitiert ist ?

Wie sind sein Soll-, Istwerteind die Parameter für den Regler ? Nur mit 
dem Schnipsel wie du das aufrufst kann man dir schwer helfen.


Gruß JackFrost

von Amateur (Gast)


Lesenswert?

>Ich will gerne die Atmel Aplication Note 221 verwenden, da sie mit
>Integerwerten arbeitet und deshalb sehr schnell ist. Die ganzen Regler
>die ich finde sind alle in Fließkomma und ich brauche 36 parallel
>Laufende Regler, somit fällt float aus.
Ich habe zwar schon Gerüchte gehört, nach denen Regler, im Zusammenhang 
mit Temperaturen, kurze Reaktionszeiten benötigen, habe aber, in freier 
Wildbahn, noch keinen gesehen.
Die meisten mir untergekommenen Regler "standen" auf Minuten, bei extrem 
geringen Massen auch mal einer auf Sekunden. Darunter kenn ich aber 
keinen. Wohl gemerkt: Beim Temper Athur.

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
Noch kein Account? Hier anmelden.