Hallo zusammen!! Habe einen mega8 den ich über Bascom programmiere, habe bereits schon einen Lüfter über PWM angesteuert, indem ich das Tastverhältnis des PWM-Signal "manuell" durch neu-programmierung des Controllers geändert habe. Dies klappt zu meiner Verwunderung auch einwandfrei!! Jetzt möchte ich gerne eine Temperaturregelung implementieren, die Temperatur lese ich natürlich über den ADC ein, habe den Wert dann als "echte" Temperatur in °C vorliegen. Habe mir jetzt folgendes überlegt bzw. ausprobiert: 1. Einlesen des ADC-Wertes (+ Umrechung) 2. Vergleich mit voreingestelltem Wert (z.B. "-30°C") 3. Wenn ADC-Wert > Vergleichswert: Tasteverhältnis "vergrößern" => Lüfter dreht schneller 4. Sonst Tastverhältnis "verkleinern" => Lüfter dreht langsamer Das ganze dann als Schleife (mit Display-Ausgaben zwischendurch), habe es mal ausprobiert, aber hatte irgendwie nicht den gewünschten Erfolg...gibt es da evtl. eine besser "Grundidee"? Wäre für jede Hilfe dankbar!
MONGO, dies ist die Code SAMMLUNG und nicht die bitte helft mir hab keinen Plan Abteilung. Hab es allmählich satt.
Danke für das "Mongo", Senf!! :-) Habe beim durchlesen des Forums diverse Beiträge mit Fragen gesehen, und mich dann "eingereiht"...aber man könnte diesen Thread ja auch sinnvoll nutzen, und alle Codes zu dem Thema hier einstellen, denn in der Suche habe ich nichts brauchbares gefunden HORNOCHSE!!!!!
Nun, im Grunde hat er ja recht, es heißt "Codesammlung" und nicht "Fragen-zu-Code-Sammlung". Zum Problem: Wie ich das verstanden habe, wird das Temperatursignal integriert und dann als PWM-Signal ausgegeben. Dies nennt sich Integralregler und fängt an zu schwingen, wenn zwischen Drehzahländerung und Reaktion der Temperatur darauf zu viel Zeit liegt. Du kannst entweder die Differenz durch einen bestimmten Wert teilen und dann erst dazuzählen oder du verwendest eine andere Reglerart. Literatur dazu: http://www.roboternetz.de/wissen/index.php/Regelungstechnik MfG
Mir ist zwar nicht ganz klar, wie du darauf kommst das ich etwas integriere, aber die "Grundlagen" der Regelungstechnik sind mir sehr wohl bekannt...doch leider nur als analoge Schaltung mit OP...:-/ Bzw. dann als Übertragungsfunktion und dergleichen... Doch leider ist mir etwas schleierhaft, wie ich das umsetzen kann, aber ich glaube ich muss mich da einfach mal wieder einlesen... Ich hatte meinen "Code" eigentlich als P-Regler aufgefasst, aber ist ja im Prinzip ja auch nicht richtig, weil er ja nicht die Regelabweichung multipliziert... :-( Dachte es hätte jemand einen "Tip" auf Lager...:-/
P-Regler: Die Stellgröße ist proportional zur Regelabweichung. Beispiel: Solltemp 10Grad. Isttemp: 15 Grad. Prop.-Faktor 1: Reglerausgabe -5. (Was immer "-5" jetzt auch bedeutet...). Also in jedem Schleifendurchlauf die Regeldifferenz bilden und den Ausgabewert danach berechnen. Bleibt die Regeldifferenz konstant, bleibt auch der Ausgabewert konstant. Du hast geschrieben: 3. Wenn ADC-Wert > Vergleichswert: Tasteverhältnis "vergrößern" => Lüfter dreht schneller 4. Sonst Tastverhältnis "verkleinern" => Lüfter dreht langsamer Wenn das wirklich so programmiert ist, dann ist es so etwas wie ein I-Regler: Bei konstanter Temperaturdifferenz veränderst du den Ausgabewert bei jedem Schleifendurchlauf. (ok, bei einem richtigen I-Regler wäre die "Veränderungsrate" proportional zur Regeldifferenz, ist aber jetzt egal). Praktisch wird dein Ausgabewert wahrscheinlich immer an der oberen oder unteren Begrenzung hängen (falls vorhanden). Oliver
Wenn man sich die Überschrift im Forum mal durchlesen würde könnte man dies lesen:" Forum - Codesammlung Wenn ihr eigene Programme oder Anleitungen geschrieben habt könnt ihr sie hier posten. Fragen werden gelöscht! " Also nicht wundern, wenn das Posting einfach mal weg ist...
Danke erstmal an die Mods für's verschieben!! Ich weiß dann jetzt bescheid, was wo hingehört... ;-) Zurück zum Thema: so wie du es erklärt hast Oliver klingt es jetzt auch logisch für mich, ich werde mich da nochmal richtig dran setzen, wozu hab ich schließlich eine Reglerdimensionierung gelernt?!?! ;-)
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.