Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Probleme mit PID Regler in BASIC++ Kategorie: Programmierung Basic (von Daniel - 3.08.2007 8:51)
 Als Antwort auf Re: Probleme mit PID Regler in BASIC++ von ManfredW - 2.08.2007 22:36
Daniel nutzt:  CC1-Station V2.0
Danke für deine Antwort Manfred,
aber hab dann doch noch mal eine Frage dazu.

Mein Aufbau:

In jedem Messinterval liefert ein Drucksensor 0-10V (=> 0-255 an A/D-Port)
=>   Regelkreis
=>   0-255 an D/A-Port ausgeben
=> Lüfter dreht schneller bzw langsamer

Mein Ziel ist es einen gewissen Druck aufrecht zuhalten. Wenn ich jetzt mit einem reinem P-Regler arbeiten würde, würde sich das Programm dann nicht so verhalten:

Sollwert = 30
Istwert 0

=> D/A-Port = 30 => Lüfter dreht schneller, um Druck aufzubauen

im nächsten Zyklus:

Sollwert = 30
Istwert = 10

=> D/A-Port = 20 => Lüfter dreht nicht mehr so schnell

nächster Zyklus:

Sollwert = 30
Istwert = 7

Wie soll man denn dann jemals den Sollwert erreichen? Muss die Verstärkung dann dementsprechend hoch sein?

Wenn ich das ganze jetzt mit einem PID-Regler machen will, wäre das dann richtig:

e = Sollwert - Istwert
Lüfter_aktl = e * KP + (Lüfter_aktl + e) * KI - (Istwert - Istwert_alt) * KD
Istwert_alt = Istwert

Ich habe unter http://www.roboternetz.de/wissen/index.php/Regelungstechnik#PID-Regler etwas anderes gefunden, der D-Anteil wird anders berechnet. Was ist richitg?

Danke schon mal
Daniel

 Antwort schreiben

Bisherige Antworten:

Re: Probleme mit PID Regler in BASIC++ (von ManfredW - 3.08.2007 10:03)
    Re: Probleme mit PID Regler in BASIC++ (von Daniel - 3.08.2007 13:59)
        Re: Probleme mit PID Regler in BASIC++ (von ManfredW - 3.08.2007 14:31)