Verkehrte Welt, Parameter PI-Regler!

Gast #2763049
servus,
ich arbeite mich gerade in das thema regelungstechnik ein.
ich möchte den wasserdruck (0-2 bar) mit einer pumpe (1-5V bzw 0- 16300 
DA Wandler) regeln die errechneten parameter stimmen jedoch nicht mit 
den funktionierenden parametern überein.
realisiert wird das ganze mittels sps (codesys) und ethercat klemmen, 
sowie einer kreiselpumpe.

zuerst nehme ich die sprungantwort in einem array auf.
250 druckwerte, wenn die pumpe von 8000-12000 erhöht wird und 5 sekunden 
läuft.
aus den messwerten errechne ich dann mittels wendetangente die werte kp 
und ki.
die parameter gebe ich dann an einen pi-reglerbaustein aus der 
oscat-lib.
die erechneten werte liegen bei kp ca 1 , ki ca 117.

wenn ich nun aber mit diesen werten den regler betreibe er ist super 
langsam.

mit werten wie ki = 10000 und kp = 0.5 läuft alles prima.

was übersehe ich? was mache ich falsch?
helft mir azubi auf die sprünge!
#2763067
Liegt bestimmt an der Unschärfe ;-P .... kleiner Witz am Rande auf 
Kosten des Gastes...
Mein Vorredner hat schon gesagt ohne mehr Infos geht da nix. Das einzige 
STichwort was mir spontan einfällt analog-digital richtig umgerechnet?
Gast #2763134
ok hier etwas quellcode, scheint vom prinzip aber ja schon mal richtig 
gedacht zu sein.
1
(****Regelstrecke aufnehmen****)
2
IF isAufnahme = true THEN
3
  DuoPumpe:=6000;
4
  MyTrigger(IN:= DoTrig , PT:= T#5S , Q=> OutTrig, ET=> Zeit2);
5
  DoTrig:= TRUE;
6
  IF OutTrig = TRUE AND Messdurchgang <=250 THEN
7
    DuoPumpe:= 12000;
8
    Regelstrecke[Messdurchgang]:= Druck1;
9
    Messdurchgang := Messdurchgang +1;
10
    ELSE
11
    DuoPumpe:=0;
12
  END_IF
13
END_IF
14

15
(****Regelparameter errechnen****)
16
IF isBerechnung = TRUE AND SollDruck > 0 THEN
17
//Messdurchgang := 200;
18
ZEIT := TIME_TO_LREAL(Zeit2); //Gesamtzeit umwandeln
19
//Zeit:= 2;
20
tangente_m:=0;
21
tangente_t:=0;
22
tangente_wert:=0;  
23
    
24
    FOR i:=0 TO Messdurchgang BY 1 DO 
25
        steigung := Regelstrecke[i+1]-Regelstrecke[i];
26
        IF tangente_m<steigung THEN
27
            tangente_m:=steigung;
28
            tangente_t:=i;
29
            tangente_wert:=Regelstrecke[i];
30
        END_IF;
31
     END_FOR;
32
    
33
    
34
    tu_t:=(Regelstrecke[0]+tangente_m*(tangente_t)-tangente_wert)/tangente_m;
35
    tu_tg_t:=(Regelstrecke[Messdurchgang-1]+tangente_m*(tangente_t)-tangente_wert)/tangente_m;
36
    
37
    tu:= tu_t/(Messdurchgang)*ZEIT;
38
    
39
    tg:= tu_tg_t/(Messdurchgang)*ZEIT - tu;             
40
    delta_x:=Regelstrecke[Messdurchgang-1]-Regelstrecke[0];    
41
    delta_y := SollDruck;    
42
    ks:=delta_x/delta_y;    
43
    k_welle:= tg / (ks*tu);
44
  
45
  //Faktoren siehe http://de.wikipedia.org/wiki/Faustformelverfahren_(Automatisierungstechnik)
46
  kp:= 0.7 *k_welle;
47
  tn:=  2.3* tu;
48
  //ki:= 1 / kp; //?
49
  ki:= tn/kp;
50

51
(****Regler****)
52
IF isRegler = TRUE THEN
53

54

55

56
PiRegler(
57
    ACT:= Druck1, 
58
    SET:= SollDruck, 
59
    SUP:= 0.02, 
60
    OFS:= 6000, 
61
    M_I:=0 , 
62
    MAN:= FALSE, 
63
    RST:= FALSE, 
64
    KP:= kp , 
65
    KI:= ki, 
66
    LL:= 0, 
67
    LH:= 16300 , 
68
    Y=> Regelgroesse, 
69
    DIFF=> , 
70
    LIM=> );
71
    
72
DuoPumpe := REAL_TO_INT(Regelgroesse);
73
END_IF;
74
END_IF;

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.