mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Regelung mit anfangs starkem Überschwinger


Autor: Stefan G. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe mir einen PI Regler für meine Durchflussregelung gebastelt,
der eigentlich auch schon ganz gut funktioniert.
Nur habe ich zu Beginn immer einen ziemlich riesigen Überschwinger. Ich
frage mich, ob es ein Hardwareproblem sein könnte (A/D Wandler oder
Gasflussensor), oder ob ich da noch etwas an der Regelung probieren
müßte. Mit unterschiedlichen k_p Werten habe ich schon gearbeitet (s.
excel file). Habt ihr noch eine Idee?

(ps: Durchflussregelung müßte eigentlich auch ohne D-Anteil möglich
sein, ich habe gehört, daß die D-Anteile immer relativ schwer
einzustellen sind.)

Gruß,
Stefan

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

evtl. hilft es die Regelabweichung die du errechnest auf einen gewissen
Maximalwert zu begrenzen. Dann dauert es zwar etwas länger bis der
Sollwert erreicht wird aber die Überschwinger sind lange nicht so
heftig.

Matthias

Autor: Tassilo Heinrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Stefan

1. Ich würde mit einem D-Anteil arbeiten!
2. In deinem Fall ist aber der I-Anteil viel zu groß! Setze ihn mal um
0,6 runter und lasse den P-Anteil mal wie er ist!

Liebe Grüße
Tassilo

Autor: Stefan G. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tassilo,
danke für die Tipps. Einen D-Anteil habe ich bisher nicht eingebaut,
ich habe nur mal etwas am I-Anteil gedreht. Sieht aber nicht besonders
viel besser aus, einen Überschwinger bekomme ich immer, ist jedoch
immer nur genau ein AD Wert. Frage mich ob das vielleicht irgendwie mit
dem Messrauschen des Sensors zusammenhängen könnte. Nur je kleiner ich
den I-Anteil mache, desto größer wird die bleibende Regelabweichung
(irgendwie logisch). Ich habe das Bild nochmal mit angehängt.
Gruß,
Stefan

Autor: Tassilo Heinrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat Du die Source von deinem Regler?
Kannst Du die Mal Posten?
LG
Tassilo

Autor: Tassilo Heinrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber es schaut ja schon besser aus! - oder?
Setze den P-Antel mal runter! Und der D-Antel mal hoch!
LG
Tassilo

Autor: Stefan G. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist der wesentliche Sourcecode: (D-Anteil habe ich noch nicht
eingebaut)

unsigned int v_ist;
int e_k;    // Regelabweichung
float k_i =0.05;
float k_p =0.002;    // 1.446 Verstärkungsfaktor
int u_i = 0;
int u_p = 0;
int u_g = 0;
volatile unsigned int v_soll;
char istwert[4];
char wert[4];


#define ADC_VREF_TYPE 0x00
// ADC interrupt service routine
interrupt [ADC_INT] void adc_isr(void)
{
unsigned int adc_data;  //in adc_data wird das Ergebnis gespeichert
// Read the AD conversion result
adc_data=ADCW;

  // aktuelle Spannung einlesen (Wert zwischen 0 und 1023):
  v_ist = adc_data;


  // Regelabweichung e_k berechnen:
   e_k = v_soll - v_ist;


   // Begrenzung der Regelabweichung:
   if (e_k > 600) u_p = 600;
       else if (e_k < -600) u_p = -600;


   // P-Anteil
   u_p = (int) (e_k * k_p);

   // I-Anteil
    u_i += (int) (e_k * k_i);

    // gesamte Stellgröße (Summe aus P und I)
    u_g = u_i + u_p;


      // Stellgrößenbegrenzung:
       //if (u_p > 600) u_p = 600;
       //else if (u_p < 400) u_p = 400;

       // Stellgröße in entsprechenden PWM Wert umrechnen und
       // Pulsbreite setzen:
       OCR1A = (int) u_g;

       itoa(v_ist,istwert);
         puts(istwert);
     }

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.