PID Regler

  • 1
  • 2
  • Seite 1 von 2
Mathias
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Weingarten - Baden
Beiträge: 315
Dabei seit: 07 / 2003
Betreff:

PID Regler

 · 
Gepostet: 11.05.2022 - 20:23 Uhr  ·  #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
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Re: PID Regler

 · 
Gepostet: 12.05.2022 - 10:06 Uhr  ·  #2
Hi Mathias,

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

Gruss
Harry
Mathias
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Weingarten - Baden
Beiträge: 315
Dabei seit: 07 / 2003
Betreff:

Re: PID Regler

 · 
Gepostet: 12.05.2022 - 22:05 Uhr  ·  #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.
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Re: PID Regler

 · 
Gepostet: 13.05.2022 - 16:19 Uhr  ·  #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.
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
pvs-deck
PowerUser
Avatar
Geschlecht:
Alter: 54
Beiträge: 1344
Dabei seit: 02 / 2009
Betreff:

Re: PID Regler

 · 
Gepostet: 13.05.2022 - 20:34 Uhr  ·  #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
Geschlecht: keine Angabe
Herkunft: Weingarten - Baden
Beiträge: 315
Dabei seit: 07 / 2003
Betreff:

Re: PID Regler

 · 
Gepostet: 20.05.2022 - 01:38 Uhr  ·  #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
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
pvs-deck
PowerUser
Avatar
Geschlecht:
Alter: 54
Beiträge: 1344
Dabei seit: 02 / 2009
Betreff:

Re: PID Regler

 · 
Gepostet: 20.05.2022 - 09:13 Uhr  ·  #7
Zitat geschrieben von 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
Geschlecht: keine Angabe
Herkunft: Weingarten - Baden
Beiträge: 315
Dabei seit: 07 / 2003
Betreff:

Re: PID Regler

 · 
Gepostet: 20.05.2022 - 13:19 Uhr  ·  #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
  • Seite 1 von 2
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 8 · Cache Hits: 14   140   154 · Page-Gen-Time: 0.017454s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI