Projekt 41: Temperaturregelkreis: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(93 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Projekte]]
[[Kategorie:Projekte]]
→ zurück zum Hauptartikel: [[Fachpraktikum_Elektrotechnik_(WS_14/15)|Fachpraktikum Elektrotechnik (WS 14/15)]]
Autoren: [[Benutzer:Lars Osthoff| Lars Osthoff]],[[Benutzer:David Hoetzel| David Hötzel]]


Autoren: Lars Osthoff, David Hötzel<br/>
Betreuer: [[Benutzer:Mirekgoebel| Prof. Göbel]]
Betreuer: [[Benutzer:Mirekgoebel| Prof. Göbel]]


Zeile 18: Zeile 21:
*Test und wiss. Dokumentation  
*Test und wiss. Dokumentation  
*Live Vorführung während der Abschlusspräsentation
*Live Vorführung während der Abschlusspräsentation
== Schwierigkeitsgrad ==
Anspruchsvoll (***)
== Einführung ==
Der Temperraturregelkreis ist ein Versuch, mit dem das Verhalten unterschiedlicher Reglertypen und unterschiedlicher Parametrierungen analysiert werden kann.
Zu regeln ist die Temperatur des Aluminiumblocks auf der Oberseite des Versuchsaufbaus, welcher durch die Heißseite des Peltierelementes erwärmt und durch den Lüfter gekühlt wird.
Die Solltemperatur ist über ein Potentiometer auf der Oberseite des Gehäuses einstellbar. Des Weiteren sind die 3 Potentiometer auf der Vorderseite zur Änderung der P-, I- und D-Anteile des Reglers vorgesehen. Erfasst wird der Istwert der Temperatur des Aluminiumblocks durch einen NTC-Widerstand der sich zwischen Heißseite des Peltierelements und dem Block befindet
Zur Verdeutlichung ist [https://www.youtube.com/watch?v=bt6Yu4r6Bzk hier] Video hinterlegt.
== Versuchsaufbau ==
=== Mechanischer Aufbau ===
[[Datei:Mechanischer Aufbau Tempregelung.jpg|300px|thumb|left|Abb.1: Aufbau Temperaturregelkreis vorne]]
[[Datei:Mechanischer Aufbau Tempregelung hinten.jpg|300px|thumb|right|Abb.2: Aufbau Temperaturregelkreis hinten]]
In Abbildung 1 ist der mechanische Aufbau des Versuches zusehen. Von außen erkennt man die Potentiometer [1, 2, 3, 4], das Peltierelement [5], den Aluminiumblock [6], den Lüfter [7] sowie den NTC-Widerstand [8].
Abbildung 2 zeigt die Verbindung zwischen dem Arduino [1] und dem Versuchsaufbau. Ebenfalls findet man doch die Buchsen zum Anschluss der Spannungsversorgung [2,3] und den Netzschalter [4].
Anzumerken ist, dass das Potentiometer neben dem Potentiometer [1] ohne Funktion ist.
Die komplette Verdrahtung verbirgt sich im Inneren des Gehäuses des Versuchsaufbaus und wird über ein SUB-D Stecker/Buchse System mit dem Arduino verbunden.
===Elektrotechnischer Aufbau===
Hier ein Überblick zu den verbauten Bauteilen:
* Computerlüfter 5V DC
* Peltierelement
* 3 LED's
* NTC-Temperatursensor[[http://193.175.248.171/wiki/index.php/Datei:Projekt_41_NTC.pdf  Datenblatt]]
* 5 Potentiometer (10kOhm)
* LCD-Display
* Arduino Uno
Folgender Klemmbelegungsplan wurde anhand des bereits fertigen Versuchsaufbaus erstellt:
{| border="1"
! width="28%" | Bauteilbeschreibung
! width="20%" | Art des I/O
! width="11%" | Pin an Arduino
! width="11%" | Pin an Sub-D Buchse
! width="11%" | --
! width="11%" | Pin ab Sub-D Stecker
! width="16%" | 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
|-
|}
==Entwurf des Regelkreises==
Nachfolgend der Entwurf des Regelkreises:
[[Datei:Regelkreis.JPG|thumb|left|500px|Abb.3: Regelkreis]]








== Schwierigkeitsgrad ==
Anspruchsvoll (***)






----
→ zurück zum Hauptartikel: [[Fachpraktikum_Elektrotechnik_(WS_14/15)|Fachpraktikum Elektrotechnik (WS 14/15)]]


==Systemidentifikation==
[[Datei:Projekt_41_Abkühlkurve.jpg|thumb|right|500px|Abb.4: Bestimmung Übertragungsfunktion]]
Um die Sprungantwort aufzeichnen zu können und die Übertragungsfunktion zu bestimmen, wurde ein Einheitssprung auf die Regelstrecke gegeben.
Da das Peltierelement mit Dauerspannung versorgt wird, wurde der Aluminiumblock auf Maximaltemperatur aufgeheizt, um danach einen Einheitssprung auf die Stellgröße zugeben. Dieser wurde durch die maximale Lüfterdrehzahl umgesetzt. In Abbildung 4 ist die Sprungantwort zu sehen. Anhand dieser Sprungantwort kann auf ein PT1-Verhalten geschlossen werden. Die dazugehörigen Parameter wurden aus den Rohdaten des Diagramms berechnet.
*Kp = 20,6°C
*T  = 135s
'''→''' G(s) = Kp/(Ts+1)
==Vergleich und Bewertung von verschiedenen Lösungsansätzen==
===Reglerauslegung mit Schwingungsmethode nach Ziegler/Nichols===
[[Datei:Projekt_41_Schwingung_Bild.JPG|thumb|right|400px|Abb.5:Simulinkmodell]]
Zur Bestimmung der optimalen Reglerparameter wurde die Schwingungsmethode nach Ziegler/Nichols <ref>[1] Mess- und Regelungstechnik Vorlesungsunterlagen, Prof. Dr.-Ing Mirek Göbel, Hochschule Hamm-Lippstadt, Wintersemester 2014/2015</ref> eingesetzt. Die Bedingung zum EInsatz dieser Methode sind gegeben: Zum Einen ist das System schwingungsfähig und zum Anderen handelt es sich um einen geschlossenen Regelkreis. Da das System aufgrund der großen Zeitkonstante (T=135s) sehr träge ist, war es nicht möglich, die kritische Verstärkung Kr zu finden. Somit wurde der Regelkreis in Simulink simuliert. In Abbildung 5 ist das Model (Kr,krit = 1,2) zu sehen.
[[Datei:Projekt 41 Dauerschwingen 2.JPG|thumb|right|400px|Abb.6:Auswertung Scope]]




Zeile 35: Zeile 317:




== '''Dokumentation''' ==








== Einführung ==
In Abbildung 6 sieht man die Dauerschwingung mit der entsprechenden Periodendauer (Tr,krit=200s).


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.


== Versuchsaufbau ==
* Reglerwerte nach Ziegler Nichols
** P:  KR:0.6
** PI:  KR:0.45  TI:170s 
** PID: KR:0.72  TI:100s  TD 24s


=== Mechanischer Aufbau ===
===Vergleich der verschiedenen Reglertypen===


[[Datei:Mechanischer Aufbau Tempregelung.jpg|300px|thumb|left|Abb.1: Aufbau Temperaturregelkreis vorne]]
In Abbildung 7 ist der Vergleich der verschiedenen Regler (P, PI, PID) zu sehen. Das Rauschen der Signale ist auf das Fehlen eines Tiefpassfilters zurückzuführen.
[[Datei:Mechanischer Aufbau Tempregelung hinten.jpg|300px|thumb|right|Abb.2: Aufbau Temperaturregelkreis hinten]]
Man kann hier sehen, dass zwischen PI- und PID-Regler nur ein geringer Unterschied besteht.




[[Datei:Projekt_41_Auswertung_P_PI_PID.jpg|700px|Abb.7:Reglerauswertung]]


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].
==Programmcode Arduino-Mikrocontroller==
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.
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);
}


[http://193.175.248.171/wiki/index.php/Datei:V41_PID-Poti-parametrierbar.ino hier]kann das komplette Programm als Datei heruntergeladen werden.




==Fazit/Reflexion==


Die vorgegebene Aufgabenstellung wurde bearbeitet und erledigt. Aufgrund des Erlernten in den Bereichen Mess- und Regelungstechnik, sowie Elektrotechnik konnte dieses Projekt praktisch umgesetzt werden. Explizit hat die Vorlesung Mess- und Regelungstechnik entscheidend zum Erfolg dieses Projekts beigetragen. Somit wurde das theoretische Wissen vertieft und konkret angewendet.
Aufgrund der fast komplett fehlenden Dokumentation bezüglich des fertigen Versuchsaufbaues war der Einstieg in das Projekt recht schwer. Nach Aufnahme des Istzustandes und der Fehlerbehebung konnte die Übertragungsfunktion des Systems ermittelt werden. Im Anschluss konnten mit der Schwingungsmethode nach Ziegler/Nichols die Parameter zur Berechnung der P-, I- und D-Anteile ermittelt werden. Zuletzt konnten wie laut Ziel gewünscht die verschiedenen Reglertypen P, PI und PID verglichen werden.


==Ausblick==


Von der Grundidee her ist das Projekt abgeschlossen. Sinnvoll ist es noch einen Tiefpassfilter vor die Regelung zu schalten.
Möglich wäre es noch das Display zur Anzeige von Soll- beziehungsweise Istwert und P-, I- und D-Anteil zu nutzen.
Zum weiteren Verständnis ist es sinnvoll, die Dokumentation zu vervollständigen. Hier wäre es wichtig die CAD-Daten des Konstrukteurs zu besorgen, die Layouts der beiden Platinen im inneren des Versuchsaufbaus anzufertigen und einen Schaltplan zu zeichnen. Zuletzt müssten noch die fehlenden Bauteilunterlagen besorgt werden




==Downloads==


*[[http://193.175.248.171/wiki/index.php/Datei:V41_Klemmbelegung_H%C3%B6tzel_Osthoff_V2.xlsx  Klemmbelegungsplan]]
*[[http://193.175.248.171/wiki/index.php/Datei:V41_PID-Poti-parametrierbar.ino Arduinoprogramm]]
*[[http://193.175.248.171/wiki/index.php/Datei:Schwingungsmethode_bestimmen.zip Simulinkmodell]]
*[[http://193.175.248.171/wiki/index.php/Datei:Pr%C3%A4sentation_Temp_Regelung_V2.0.pptx Powerpointpräsentation]]
*[[http://193.175.248.171/wiki/index.php/Datei:Datenblaetter.zip Datenblätter_NTC]]


===Elektrischer Aufbau===


Aufgrund der Problematik der vorherigen Dokumentation konnte nur der Klemmbelegungsplan erstellt werden.
==Quellen==
<references />








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.
----
→ zurück zum Hauptartikel: [[Fachpraktikum_Elektrotechnik_(WS_14/15)|Fachpraktikum Elektrotechnik (WS 14/15)]]

Aktuelle Version vom 17. Januar 2019, 17:11 Uhr

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


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 (***)


Einführung

Der Temperraturregelkreis ist ein Versuch, mit dem das Verhalten unterschiedlicher Reglertypen und unterschiedlicher Parametrierungen analysiert werden kann. Zu regeln ist die Temperatur des Aluminiumblocks auf der Oberseite des Versuchsaufbaus, welcher durch die Heißseite des Peltierelementes erwärmt und durch den Lüfter gekühlt wird.

Die Solltemperatur ist über ein Potentiometer auf der Oberseite des Gehäuses einstellbar. Des Weiteren sind die 3 Potentiometer auf der Vorderseite zur Änderung der P-, I- und D-Anteile des Reglers vorgesehen. Erfasst wird der Istwert der Temperatur des Aluminiumblocks durch einen NTC-Widerstand der sich zwischen Heißseite des Peltierelements und dem Block befindet


Zur Verdeutlichung ist hier Video hinterlegt.


Versuchsaufbau

Mechanischer Aufbau

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


In Abbildung 1 ist der mechanische Aufbau des Versuches zusehen. Von außen erkennt man die Potentiometer [1, 2, 3, 4], das Peltierelement [5], den Aluminiumblock [6], den Lüfter [7] sowie den NTC-Widerstand [8].

Abbildung 2 zeigt die Verbindung zwischen dem Arduino [1] und dem Versuchsaufbau. Ebenfalls findet man doch die Buchsen zum Anschluss der Spannungsversorgung [2,3] und den Netzschalter [4]. Anzumerken ist, dass das Potentiometer neben dem Potentiometer [1] ohne Funktion ist.

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







Elektrotechnischer Aufbau

Hier ein Überblick zu den verbauten Bauteilen:

  • Computerlüfter 5V DC
  • Peltierelement
  • 3 LED's
  • NTC-Temperatursensor[Datenblatt]
  • 5 Potentiometer (10kOhm)
  • LCD-Display
  • Arduino Uno

Folgender Klemmbelegungsplan wurde anhand des bereits fertigen Versuchsaufbaus erstellt:


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

Entwurf des Regelkreises

Nachfolgend der Entwurf des Regelkreises:

Abb.3: Regelkreis





















Systemidentifikation

Abb.4: Bestimmung Übertragungsfunktion

Um die Sprungantwort aufzeichnen zu können und die Übertragungsfunktion zu bestimmen, wurde ein Einheitssprung auf die Regelstrecke gegeben. Da das Peltierelement mit Dauerspannung versorgt wird, wurde der Aluminiumblock auf Maximaltemperatur aufgeheizt, um danach einen Einheitssprung auf die Stellgröße zugeben. Dieser wurde durch die maximale Lüfterdrehzahl umgesetzt. In Abbildung 4 ist die Sprungantwort zu sehen. Anhand dieser Sprungantwort kann auf ein PT1-Verhalten geschlossen werden. Die dazugehörigen Parameter wurden aus den Rohdaten des Diagramms berechnet.

  • Kp = 20,6°C
  • T = 135s

G(s) = Kp/(Ts+1)









Vergleich und Bewertung von verschiedenen Lösungsansätzen

Reglerauslegung mit Schwingungsmethode nach Ziegler/Nichols

Abb.5:Simulinkmodell


Zur Bestimmung der optimalen Reglerparameter wurde die Schwingungsmethode nach Ziegler/Nichols [1] eingesetzt. Die Bedingung zum EInsatz dieser Methode sind gegeben: Zum Einen ist das System schwingungsfähig und zum Anderen handelt es sich um einen geschlossenen Regelkreis. Da das System aufgrund der großen Zeitkonstante (T=135s) sehr träge ist, war es nicht möglich, die kritische Verstärkung Kr zu finden. Somit wurde der Regelkreis in Simulink simuliert. In Abbildung 5 ist das Model (Kr,krit = 1,2) zu sehen.

Abb.6:Auswertung Scope





In Abbildung 6 sieht man die Dauerschwingung mit der entsprechenden Periodendauer (Tr,krit=200s).


  • 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

In Abbildung 7 ist der Vergleich der verschiedenen Regler (P, PI, PID) zu sehen. Das Rauschen der Signale ist auf das Fehlen eines Tiefpassfilters zurückzuführen. Man kann hier sehen, dass zwischen PI- und PID-Regler nur ein geringer Unterschied besteht.


Abb.7:Reglerauswertung

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 Erlernten in den Bereichen Mess- und Regelungstechnik, sowie Elektrotechnik konnte dieses Projekt praktisch umgesetzt werden. Explizit hat die Vorlesung Mess- und Regelungstechnik entscheidend zum Erfolg dieses Projekts beigetragen. Somit wurde das theoretische Wissen vertieft und konkret angewendet. Aufgrund der fast komplett fehlenden Dokumentation bezüglich des fertigen Versuchsaufbaues war der Einstieg in das Projekt recht schwer. Nach Aufnahme des Istzustandes und der Fehlerbehebung konnte die Übertragungsfunktion des Systems ermittelt werden. Im Anschluss konnten mit der Schwingungsmethode nach Ziegler/Nichols die Parameter zur Berechnung der P-, I- und D-Anteile ermittelt werden. Zuletzt konnten wie laut Ziel gewünscht die verschiedenen Reglertypen P, PI und PID verglichen werden.

Ausblick

Von der Grundidee her ist das Projekt abgeschlossen. Sinnvoll ist es noch einen Tiefpassfilter vor die Regelung zu schalten. Möglich wäre es noch das Display zur Anzeige von Soll- beziehungsweise Istwert und P-, I- und D-Anteil zu nutzen. Zum weiteren Verständnis ist es sinnvoll, die Dokumentation zu vervollständigen. Hier wäre es wichtig die CAD-Daten des Konstrukteurs zu besorgen, die Layouts der beiden Platinen im inneren des Versuchsaufbaus anzufertigen und einen Schaltplan zu zeichnen. Zuletzt müssten noch die fehlenden Bauteilunterlagen besorgt werden


Downloads


Quellen

  1. [1] Mess- und Regelungstechnik Vorlesungsunterlagen, Prof. Dr.-Ing Mirek Göbel, Hochschule Hamm-Lippstadt, Wintersemester 2014/2015




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