Projekt 41: Temperaturregelkreis: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 35: Zeile 35:




== '''Dokumentation''' ==
 




Zeile 44: Zeile 44:
Der Temperraturregelkreis ist ein Versuch, mit dem unterschiedliche Reglertypen mit unterschiedlicher Parametrierung analysiert werden können.
Der Temperraturregelkreis ist ein Versuch, mit dem unterschiedliche Reglertypen mit unterschiedlicher Parametrierung analysiert werden können.
Zu regeln ist ein 5V Standard Computerlüfter, der indirekt die Heizseite eines Peltierelementes regeln soll. Die Solltemperatur ist über ein Potentiometer frei einstellbar, genau wie die einzelnen Anteile des PID - Reglers über Potentiometer parametrierbar sind.
Zu regeln ist ein 5V Standard Computerlüfter, der indirekt die Heizseite eines Peltierelementes regeln soll. Die Solltemperatur ist über ein Potentiometer frei einstellbar, genau wie die einzelnen Anteile des PID - Reglers über Potentiometer parametrierbar sind.
Das Ziel des Projekt 41: Temperaturregelkreis ist, dass man die Auwirkung verschiedener Regler in Verbindung mit unterschiedlich großen Regelwerten einfach zeigen kann.
Das Peltierelement wird dauerhaft mit 5V DC versorgt, sodass dieses Bauteil stetig volle Leistung abgibt. Durch den steuerbaren Lüfter wird der zuvor eingestellte Sollwert geregelt.


== Versuchsaufbau ==
== Versuchsaufbau ==
Zeile 72: Zeile 76:




===Elektrischer Aufbau===
===Elektrotechnischer Aufbau===


Aufgrund der Problematik der vorherigen Dokumentation konnte nur der Klemmbelegungsplan erstellt werden.
Aufgrund der Problematik der vorherigen Dokumentation konnte nur der Klemmbelegungsplan erstellt werden.
Zeile 228: Zeile 232:


Zusätzlich kann [[http://193.175.248.171/wiki/index.php/Datei:V41_Klemmbelegung_H%C3%B6tzel_Osthoff_V2.xlsx  hier]] der Klemmbelegungsplan als Exceldatei heruntergeladen werden.
Zusätzlich kann [[http://193.175.248.171/wiki/index.php/Datei:V41_Klemmbelegung_H%C3%B6tzel_Osthoff_V2.xlsx  hier]] der Klemmbelegungsplan als Exceldatei heruntergeladen werden.
===Bauteile des Systems===


Um einen kleinen Überblick des Systems zu bekommen werden hier im Nachfolgenden die zu Verfügung stehenden Bauteile aufgelistet:
Um einen kleinen Überblick des Systems zu bekommen werden hier im Nachfolgenden die zu Verfügung stehenden Bauteile aufgelistet:
Zeile 244: Zeile 245:




==Projektziel==


Das Ziel des Projekt 41: Temperaturregelkreis ist, dass man die Auwirkung verschiedener Regler in Verbindung mit unterschiedlich großen Regelwerten einfach zeigen kann.
Das Peltierelement wird dauerhaft mit 5V DC versorgt, sodass dieses Bauteil stetig volle Leistung abgibt. Durch den steuerbaren Lüfter wird der zuvor eingestellte Sollwert geregelt.




==Projektdurchführung==
===Theoretische Lösung===




====Regelkreis====
 
==Entwurf des Regelkreises==
 


Nachfolgend der Entwurf des Regelkreises:
Nachfolgend der Entwurf des Regelkreises:
Zeile 261: Zeile 259:




====Vorgehen zur Auslegung====
==Systemidentifikation==
 
* Übertragungsfunktion des Systems bestimmt ([http://193.175.248.171/wiki/images/e/eb/Projekt_41_Abk%C3%BChlkurve.jpg hier])
 
==Vergleich und Bewertung von verschiedenen Lösungsansätzen==
 
===Reglerauslegung mit Schwingungsmethode nach Ziegler/Nichols===


Da die Aufgabe ist, eine Reglersteuerung für die Temperaturregelung zu erstellen wurden folgende Schritte durchgeführt, um letztendlich die unterschiedlichen Regler vergleichen zu können:
Da die Aufgabe ist, eine Reglersteuerung für die Temperaturregelung zu erstellen wurden folgende Schritte durchgeführt, um letztendlich die unterschiedlichen Regler vergleichen zu können:


* Übertragungsfunktion des Systems bestimmt ([http://193.175.248.171/wiki/images/e/eb/Projekt_41_Abk%C3%BChlkurve.jpg hier])
* Schwingungsmethode nach Ziegler/Nichols mit Simulink
* Schwingungsmethode nach Ziegler/Nichols mit Simulink
* Reglerwerte nach Ziegler Nichols  
* Reglerwerte nach Ziegler Nichols  
Zeile 271: Zeile 274:
** PI:  KR:0.45  TI:170s   
** PI:  KR:0.45  TI:170s   
** PID: KR:0.72  TI:100s  TD 24s
** PID: KR:0.72  TI:100s  TD 24s
===Vergleich der verschiedenen Reglertypen===
* Vergleich der verschiedenen Reglertypen: P,PI,PID ([http://193.175.248.171/wiki/images/c/c5/Projekt_41_Auswertung_P_PI_PID.jpg hier])
* Vergleich der verschiedenen Reglertypen: P,PI,PID ([http://193.175.248.171/wiki/images/c/c5/Projekt_41_Auswertung_P_PI_PID.jpg hier])
* Zusätzlich kann über die Potentiometer ein anderer Parameterwert eingestellt werden
* Zusätzlich kann über die Potentiometer ein anderer Parameterwert eingestellt werden




===Umsetzung in Arduino-Code===
==Programmcode Arduino-Mikrocontroller==


Im Folgenden werden die wichtigsten Ausschnitte der Programmierung:
Im Folgenden werden die wichtigsten Ausschnitte der Programmierung:

Version vom 20. Januar 2015, 22:12 Uhr


Autoren: Lars Osthoff, David Hötzel
Betreuer: Prof. Göbel


Aufgabe

Erstellung einer Regelung für ein Heizfläche-Lüfter-System. Der Laborversuch ist bereits mechanisch wie elektrisch fertig.


Erwartungen an Ihre Projektlösung

  • Darstellung der Theorie
  • Entwurf eines Regelkreises
  • Recherche zu bestehenden Lösungen
  • Systemidentifikation (Übertragungsfunktion der Regelstrecke bestimmen)
  • Vergleichen und bewerten Sie verschiedene Regleransätze (2-Punkt, 3-Punkt, P, I, D), Darstellung der Soll-/Istgrößen.
  • Programmiersprache: C
  • Test und wiss. Dokumentation
  • Live Vorführung während der Abschlusspräsentation



Schwierigkeitsgrad

Anspruchsvoll (***)



→ zurück zum Hauptartikel: Fachpraktikum Elektrotechnik (WS 14/15)






Einführung

Der Temperraturregelkreis ist ein Versuch, mit dem unterschiedliche Reglertypen mit unterschiedlicher Parametrierung analysiert werden können. Zu regeln ist ein 5V Standard Computerlüfter, der indirekt die Heizseite eines Peltierelementes regeln soll. Die Solltemperatur ist über ein Potentiometer frei einstellbar, genau wie die einzelnen Anteile des PID - Reglers über Potentiometer parametrierbar sind.


Das Ziel des Projekt 41: Temperaturregelkreis ist, dass man die Auwirkung verschiedener Regler in Verbindung mit unterschiedlich großen Regelwerten einfach zeigen kann. Das Peltierelement wird dauerhaft mit 5V DC versorgt, sodass dieses Bauteil stetig volle Leistung abgibt. Durch den steuerbaren Lüfter wird der zuvor eingestellte Sollwert geregelt.

Versuchsaufbau

Mechanischer Aufbau

Abb.1: Aufbau Temperaturregelkreis vorne
Abb.2: Aufbau Temperaturregelkreis hinten


Wie man der Abbildung 1 entnehmen kann ist der mechanische Aufbau des Versuches Temperaturregelkreis einfach gestaltet. Von außen erkennt man lediglich die veränderbaren PID-Anteile [2,3,4], den einstellbaren Sollwert [5] in °C, das Peltierelement [5], eine Aluminiumkühlrippe [6], den Lüfter [8] und den NTC-Widerstand [8]. Aus der Abbildung 2 kann man die Verbindung zwischen des Arduinos und des Systems erkennen [1], zusätzlich ist die Spannungsversorgung und der Netzschalter auf der Rückseite [2,3,4]. Anzumerken ist, dass das Poti neben dem Sollwert ohne Funktion ist.

Die komplette Verkabelung verbirgt sich im Inneren des Gehäuses und wird über ein SUB-D Stecker/Buchse System mit dem Arduino verbunden.







Elektrotechnischer Aufbau

Aufgrund der Problematik der vorherigen Dokumentation konnte nur der Klemmbelegungsplan erstellt werden.


Bauteilbeschreibung Art des I/O Pin an Arduino Pin an Sub-D Buchse -- Pin ab Sub-D Stecker Ziel intern
Ground GND 1 1 L0
Digital OUT PWM Lüfter-Ansteuerung Digital OUT PWM 3 5 5 L1
Analog IN Poti 4 Analog IN A3 7 7 L2
Digital OUT LCD Digital OUT 4 9 9 gelb/tot
Digital OUT LCD Digital OUT 5 10 10 Display2 orange
Digital OUT LCD Digital OUT 6 11 11 Display2 rot
Digital OUT LCD Digital OUT 7 12 12 Display2 grün
Analog IN Temperatursensor Analog IN A5 16 16 L3
Analog IN Poti 3 Analog IN A5 16 16 L3
LED 1 (Digital OUT) Digital OUT 11 26 26 L5
LED 2 (Digital OUT) Digital OUT 12 27 27 L6
LED 3 (Digital OUT) Digital OUT 13 28 28 L7
Digital OUT LCD Digital OUT 8 42 42 Display1 blau
Digital OUT LCD Digital OUT 9 43 43 Display1 gelb
Digital OUT LCD Digital OUT 10 44 44 Display2 gelb
Analog IN Poti 2 Analog IN A1 48 48 L9
Analog IN Poti 1 Analog IN A0 50 50 L10


Zusätzlich kann [hier] der Klemmbelegungsplan als Exceldatei heruntergeladen werden.

Um einen kleinen Überblick des Systems zu bekommen werden hier im Nachfolgenden die zu Verfügung stehenden Bauteile aufgelistet:


  • 5V Computerlüfter
  • Peltierelement
  • 3 LED's
  • NTC-Temperatursensor(Link zu conrad.de)
  • 5 Potentiometer
  • LCD_Display
  • Arduino Uno





Entwurf des Regelkreises

Nachfolgend der Entwurf des Regelkreises:


Systemidentifikation

  • Übertragungsfunktion des Systems bestimmt (hier)

Vergleich und Bewertung von verschiedenen Lösungsansätzen

Reglerauslegung mit Schwingungsmethode nach Ziegler/Nichols

Da die Aufgabe ist, eine Reglersteuerung für die Temperaturregelung zu erstellen wurden folgende Schritte durchgeführt, um letztendlich die unterschiedlichen Regler vergleichen zu können:

  • Schwingungsmethode nach Ziegler/Nichols mit Simulink
  • Reglerwerte nach Ziegler Nichols
    • P: KR:0.6
    • PI: KR:0.45 TI:170s
    • PID: KR:0.72 TI:100s TD 24s

Vergleich der verschiedenen Reglertypen

  • Vergleich der verschiedenen Reglertypen: P,PI,PID (hier)
  • Zusätzlich kann über die Potentiometer ein anderer Parameterwert eingestellt werden


Programmcode Arduino-Mikrocontroller

Im Folgenden werden die wichtigsten Ausschnitte der Programmierung:

void Tiefpass(float Wert_unfilt_f, float dt_f, float T0_f, float Wert_filt_alt_f , float &Wert_filt_neu_f) {

 float k_f = dt_f/(T0_f+dt_f);
 Wert_filt_neu_f = (1-k_f) * Wert_filt_alt_f + k_f * Wert_unfilt_f;

}

void setup() {

 Wert_filt_alt_f = 1/((log((21 - ((27/58.5)*(931.5-analogRead(I_PIN_Temp))))/10000)/3976)+(1/25));                                                                                                                                                             Serial.begin(9600); 
 myPID.SetMode(AUTOMATIC);

}

void loop() {

 roh_P = analogRead(I_PIN_Poti_P);
 roh_I = analogRead(I_PIN_Poti_I);  
 roh_D = analogRead(I_PIN_Poti_D);
 roh_Temp = analogRead(I_PIN_Temp);
 roh_Soll = analogRead(I_PIN_Soll);
 
 Rt = (11700 - ((7220/177.5)*(931.5-roh_Temp)));
 T = (1/((log(Rt/10000)/3976)+(1/298.15))) - 273.15;
   
 Wert_unfilt_f = T;
 Tiefpass(Wert_unfilt_f, dt_f, T0_f, Wert_filt_alt_f, Wert_filt_neu_f); 
 Wert_filt_alt_f = Wert_filt_neu_f;
  
 
 Input = Wert_filt_neu_f;
 Setpoint = map(roh_Soll,0,1023,21,48);                                                                                                              
 Kp = roh_P*1/960;                                      
 Kp-->Min=0/Max=5                                                                                         
 Ki = roh_I*200/868;                                         
 Kd = (roh_D-230)*50/710;                                         
 myPID.SetTunings(Kp, Ki, Kd);
 myPID.Compute();
 
 if (Output < 150)
 {
   Output2 = 0;
   analogWrite(O_PIN_Luefter_PWM,Output2); 
 }
 else
 {
   analogWrite(O_PIN_Luefter_PWM,Output);  
 }
 Serial.print("Soll[°C]: "); 
 Serial.print(Setpoint);
 Serial.print("     Ist[°C]: "); 
 Serial.print(T);
 Serial.print("     P-Ant.: "); 
 Serial.print(Kp); 
 Serial.print("     I-Ant.: "); 
 Serial.print(Ki); 
 Serial.print("     D-Ant.: "); 
 Serial.print(Kd); 
 Serial.print("     Luefter_PWM: "); 
 Serial.println(Output); 

}

hierkann das komplette Programm als Datei heruntergeladen werden.


Fazit/Reflexion

Die vorgegebene Aufgabenstellung wurde bearbeitet und erledigt. Aufgrund des Erlenten in den Bereichen Mess- und Regelungstechnik, sowie Elektrotechnik konnte in diesem Projekt praktisch umgesetzt werden. Aufgrund einiger Unklarheiten bezüglich des vorherigen Aufbaues war es schwer Einzelheiten sofort nachzuverfolgen und zu verstehen. Nach Ist-Aufnahme und Fehlerbehebung konnte die Reglerauswertung zum Abschluss gebracht werden.


Ausblick

Von der Grundidee ist das Projekt abgeschlossen. Lediglich die Displayansteuerung ist noch nicht implementiert. Zum weiteren Verständnis ist es sinnvoll, die Dokumentation zu vervollständigen.