Show Posts
Pages: [1]
1  International / Deutsch / Re: Temperaturmessung bei PI-Regler spielt verrückt on: July 24, 2012, 05:17:23 am
@mkl0815 Danke, hab die anderen analogen Kanäle mal auf Masse gelegt, bringt leider nichts.

@circuit99 Hast du vollkommen recht! Zu der Sache mit dem 0.00 will ich aber anmerken, dass das Absicht war, ich will erstmal Kp-kritisch für den P-Regler bestimmen und hab deswegen mit der 0 Multiplikation das I-Glied rausgenommen.

Gestern ist mir per Twitter noch der reingeflogen den 2k Ohm Widerstand für den LM335 durch 2 1k Ohm Widerstände zu ersetzen und zwischen den Widerständen einen 1uF Kondensator an Masse zu legen. Auch das ist leider ohne Erfolg.

Viele Grüße, sodaholic
2  International / Deutsch / Re: Temperaturmessung bei PI-Regler spielt verrückt on: July 23, 2012, 05:47:46 am
Code:
int pwm = 0;
int Tsoll = 30;
int esum = 0;
int Kp = 3;
int Begrenzer = 200;
int y = 0;
int Tabt = 0.1;
int Tempin = 0;
int PwmOut = 5;

void setup(){
  Serial.begin(9600);
  pinMode(PwmOut, OUTPUT);
  pinMode(Tempin, INPUT);
}

void loop(){
  y = PIR();
  luefterspeed(y);
  delay(100);
}

int PIR(){
  float e = Tempmess() - Tsoll;
  esum = esum + e;
  if(esum < Begrenzer*(-1)){
    esum = Begrenzer * (-1);
  }
  if(esum > Begrenzer){
    esum = Begrenzer;
  }
  int pwm = Kp * e + 0.00 * Kp * esum * Tabt;
  if(pwm > 255){
    pwm = 255;
  }
  if(pwm < 0){
    pwm = 0;
  }
  return pwm;
}
  
//Messen der Temp in Celsius
float Tempmess(){
  float Celsius = 0;
  Celsius = analogRead(Tempin) * 0.004882812 * 100 - 273.15;
  Serial.println(Celsius);
  return Celsius;
}

//PWM-Signal Verarbeitung und Einstellung
void luefterspeed(int speed){
  speed = 255 - speed;
  analogWrite(PwmOut, speed);
}
3  International / Deutsch / Temperaturmessung bei PI-Regler spielt verrückt on: July 23, 2012, 05:16:39 am
Hey Arduino Board,

hab gerade ein Problem das mich schon seit ein paar Tagen zum verzweifeln bringt:

Ich bau gerade einen PI-Regler für eine mobile Wasserstoffbrennzelle. Temperatur messen, funktioniert. Lüfter per PWM ansteuern ist auch kein Problem. Wenn ich beides aber in einem Projekt reinhacke und nebenbei meinen geschriebenen PI-Regler laufen lasse bekomm ich auf einmal seltsame Ergebnisse für die Temperatur per Serial.print. Der erste Wert, den ich erhalte macht Sinn, die anderen darauffolgenden Werte sind alle ca. 8 Grad Celsius zu hoch. Das Ganze sieht dann zum Beispiel so aus:

16.89
25.19
25.19
25.19
25.19
25.68
25.19
25.19
25.19
25.19
25.68
25.68
.
.
.

Woran liegt das und wie kann ich das Problem umgehen?

Vielen Dank schonmal, sodaholic
Pages: [1]