PID Regler

  • 1
  • 2
  • Page 1 of 2
Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 310
Registered: 07 / 2003
Subject:

PID Regler

 · 
Posted: 11.05.2022 - 20:23  ·  #1
Hallo,
gibt's zum E-LAB PID-Regler ein paar praktische Beispiele?
Habe nichts gefunden.
Soll eine Temperaturregelung werden.
Oder gibt's noch eine andere Möglichkeit der Regellung?

Danke

Gruß
Mathias
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: PID Regler

 · 
Posted: 12.05.2022 - 10:06  ·  #2
Hi Mathias,

das kommt darauf an, was du regeln willst? Wie schnell/träge das ist, Temperaturbereich, Genauigkeit?

Gruss
Harry
Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 310
Registered: 07 / 2003
Subject:

Re: PID Regler

 · 
Posted: 12.05.2022 - 22:05  ·  #3
Das Temperaturverhalten ist recht träge.
Der Temperaturbereich ist ca. +50 bis +60°C für die ersten Versuche.
Der Einsatzort später ist bei einer Umgebungstemperatur von ca. -60°C bis + 30°C und das Objekt soll auf ca. + 40°C geheizt werden. Genauigkeit ca. 1°C.
Attachments
Heizkurve, 450 W, 50 %
Filename: Heizkurve, 450 W, 50 %.JPG
Filesize: 54.77 KB
Title: Heizkurve, 450 W, 50 %
Download counter: 192
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: PID Regler

 · 
Posted: 13.05.2022 - 16:19  ·  #4
Ich hab sowas mal einfach zu Fuss gemacht ..... sicher 10 Jahre her, also nicht wundern :D
War aber auf 1° genau. Heizung waren 5 parallele 9W Zementwiderstände, die mit einem Lüfter in der Kammer zwecks Umwälzung angeblasen wurden.

Hab noch ein Foto vom Aufbau gefunden.
Attachments
Filename: Klimakammer.zip
Filesize: 2.49 KB
Title:
Download counter: 44
PID Regler
Filename: Klima03.jpg
Filesize: 43.61 KB
Title:
Download counter: 159
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: PID Regler

 · 
Posted: 13.05.2022 - 20:34  ·  #5
Hallo Mathias,

ich habe mir gerade mal den PID Regler (PIDcontrol) angeschaut, sieht doch eigentlich gut aus und die Beschreibung passt mit einem PID-Regler.

Wenn Du die Regelvorgaben iLimit (I Anteil) oder dIntVal (D-Anteil) auf 0 lässt hast Du einen einfachen PI- oder PD-Regler und kannst dann nach und nach die D und I zum regeln anpassen.

Sieht für mich einfach aus, habe es aber auf dem AVRco noch nicht benutzt, ich habe da aktuell keine Anwendung für sowas. In der Vergangenheit habe ich das sehr oft auf SPS/PLC Systeme zur Klima- und Heizungssteuerung benutzt. Ich habe es auch immer so gemacht, immer erst den einfachen Regler und dann nach und nach die anderen Anpassungen gemacht bis die Reglung meinen Bedarf entsprochen hat.

Du kannst es halt auch recht gut einstellen und das reagieren, Steigung und einschwingen anpassen.

Gruß
Thorsten
Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 310
Registered: 07 / 2003
Subject:

Re: PID Regler

 · 
Posted: 20.05.2022 - 01:38  ·  #6
@Harry
Danke für den Quellcode und Foto.
Es wird auf einen PID-Regler hinauslaufen.
Deinen Code hebe ich mir auf zum Lernen.
Ist interessant zu sehen wie andere programmieren.

Compiler Rev: 5.11.00
Bei Import "Pids" eingefügt und habe gleich eine Fehlermeldung.
Was braucht es für eine Hardware?

Danke

Gruß
Mathias
Attachments
PID Regler
Filename: PID Hardware.JPG
Filesize: 20.83 KB
Title:
Download counter: 139
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: PID Regler

 · 
Posted: 20.05.2022 - 09:13  ·  #7
Quote by Mathias

....
Compiler Rev: 5.11.00
Bei Import "Pids" eingefügt und habe gleich eine Fehlermeldung.
Was braucht es für eine Hardware?

Danke

Gruß
Mathias


Hallo Mathias,

der Import dort ist falsch, deswegen bekommst Du diese Fehlermeldung.

Probier mal das ganze unter FROM System Import ...., PIDs; zu machen,

Beispiel:
Code
Import SysTick,SerPortD0,TWI_E, WatchDog, SysLEDblink, ADC_B, FAT16_32, USBsmart;

From System Import SystemTime32, PIDs;


Gruß
Thorsten
Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 310
Registered: 07 / 2003
Subject:

Re: PID Regler

 · 
Posted: 20.05.2022 - 13:19  ·  #8
Danke.

Habe es für meine ersten Veruche zusammengezimmert.
Die Parameter werden über die serielle Schnittstelle einstellbar sein.
Da kann der Kunde experimentieren bis er eine gute Einstellung gefunden hat.

Lassen sich "iLimit" und "dIntVal" zur Laufzeit verändern?
Var Pid1 : PIDcontrol[iLimit, dIntVal];

Code

procedure pHK_Regelung;
begin
  Case CASE_HK1_Regelung Of            // HK1 Regelung.
    0  : PID_HK1.pFactor:= 1000;       // Verrechnungs-Faktor für den P-Wert.
         PID_HK1.iFactor:= 2500;       // Verrechnungs-Faktor für den I-Wert.
         PID_HK1.dFactor:= 678;        // Verrechnungs-Faktor für den D-Wert.
         PID_HK1.sFactor:= 10000;      // Verrechnungs-Faktor für den Stell-Wert (Ergebnis).
         CASE_HK1_Regelung:= 1;
       |
    1  : If (HK1_EinAus = Ein) and (FehlerHK1 = Nein) Then
           LED_HK1:= Ein;
           CASE_HK1_Regelung:= 2;
         ElsIf (HK1_EinAus = Ein) and (FehlerHK1 = Ja) Then
           LED_HK1:= blinke;
           HK1_Leistung:= 0;
         Else
           LED_HK1:= Aus;
           HK1_Leistung:= 0;
         EndIf;
       |
    2  : PID_HK1.Actual := Integer(fTempIstHK1*100);  // Ist-Wert,  10,00°C = 10000.
         PID_HK1.Nominal:= Integer(fTempSollHK1*100); // Soll-Wert, 10,00°C = 10000.
         HK1_Leistung:= word(PID_HK1.Execute);        // Ergebnis.
         If HK1_Leistung > 1000 Then                  // 1000 = 100%
           HK1_Leistung:= 1000;
         EndIf;
         CASE_HK1_Regelung:= 1;
       |
  EndCase;
  • 1
  • 2
  • Page 1 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 18 · Cache Hits: 15   144   159 · Page-Gen-Time: 0.039383s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI