Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

PID-Regler Kategorie: Programmierung (von krassos - 29.06.2004 17:48)
Ich nutze:
C-Control II Unit, CC2-ReglerBoard, OSOPT V3.0
Hallo zusammen,

ich zerbrech mir schon 'ne ganze Weile den Kopf, wie ich allgemeine Regelaufgaben
lösen kann, ohne die klassischen Nachteile eines Zweipunktreglers in Kauf nehmen
zu müssen.
Ich hab hier mal einen allgemeinen PID-Algorithmus zusammengebastelt, der theoretisch
in einer Excel-Simulation gut funktioniert.
Praktisch teste ich ihn gerade als allgemeinen Temperaturregler.
Die Doppelberechnungen in der function werde ich noch entfernen. Eine Autotuning-Funktion ist
noch geplant zur automatischen Berechnung der Regelparameter.

Gruss krassos


/******************************************************************/
/* PID-Regler                                                     */
/*                                                                */
/* Author    : Andreas Sperling                                   */
/* Vorlage   : Andreas Sperling                                   */
/* Versionen : 0.3                                                */
/* Datum     : 29. Juni 2004                                      */
/* geändert  :                                                    */
/* Getestet  : ja                                                 */
/* Benötigt  :                                                    */
/*                                                                */
/******************************************************************/
/*
w Sollwert
x istwert
ta abtastzeit
tv vorhaltezeit (D-Anteil)
tn nachstellzeit (i-anteil)
kp proportionalanteil
**********************************************************************
Ansatz zur Realisierung eines Software-PID-Reglers für die CC2
�nderungen, Verbesserungen und Beschleunigungen durchaus erwünscht
Der Stellwert ist hier auf 0...500 begrenzt. Diese Begrenzung kann
natürlich entfernt werden.
*/

const two = 2.0;
const tree = 3.0;
const zero = 0.0;
float ea;
float es,kd;

function pid (int w,int x,float ta,int tv,int tn,float kp) returns float
{
float e,y;string diff,integral;
float diff1,esold;
int y1;
e = w - x;//regelabweichung
esold=es;
es = es + ((ea + e) / two); //i-speicher
diff1=e-ea;
kd = (kd+tv / ta * diff1)/two;
if (ta / tn * es)*kp > 500 or (ta / tn * es)*kp < 0 es =esold;
y = kp * (e + (ta / tn * es) + kd);
if y>500 or y<0
{
if y>500 y1=500;
if y <0 y1=0;
}
else y1=y;
ea = e;
return y1;
}


    Antwort schreiben


Antworten:

Re: PID-Regler (von Martin Binder - 2.07.2004 21:37)
    Re: PID-Regler (von krassos - 2.07.2004 23:09)
        Re: PID-Regler (von krassos - 3.07.2004 22:32)
            Re: PID-Regler (von guido - 9.11.2004 18:35)
                Re: PID-Regler (von krassos - 9.11.2004 18:56)
                    Re: PID-Regler (von guido - 9.11.2004 20:49)
                       Re: PID-Regler (von krassos - 10.11.2004 7:54)
                          Re: PID-Regler (von guido - 10.11.2004 20:21)
                             Re: PID-Regler (von krassos - 11.11.2004 7:48)
                                Re: PID-Regler (von guido - 11.11.2004 19:38)
                                   Re: PID-Regler (von krassos - 12.11.2004 19:19)
                                     Re: PID-Regler (von guido - 12.11.2004 20:40)
                                       Re: PID-Regler (von krassos - 12.11.2004 20:55)
                                         Re: PID-Regler (von guido - 14.11.2004 17:06)
                                           Re: PID-Regler (von guido - 8.12.2004 19:58)
                                             Re: PID-Regler (von krassos - 8.12.2004 22:02)
                                               Re: PID-Regler (von guido - 9.12.2004 21:23)
                                                 Re: PID-Regler (von krassos - 9.12.2004 21:48)
                                                   Re: PID-Regler (von Guido - 1.03.2005 17:46)
                                                     Re: PID-Regler (von krassos - 7.03.2005 15:57)
                                                       Re: PID-Regler (von krassos - 7.03.2005 21:57)
                                                         Re: PID-Regler (von guido - 10.03.2005 17:37)
                                                           Re: PID-Regler (von guido - 13.03.2005 14:55)
                                                             Re: PID-Regler (von krassos - 16.03.2005 21:41)
                                                               Re: PID-Regler (von krassos - 8.04.2005 17:34)
                                                                 Re: PID-Regler (von Guido - 13.04.2005 21:21)
                                                                   Re: PID-Regler (von krassos - 14.04.2005 5:01)
                                                                     Re: PID-Regler (von Guido - 14.04.2005 19:50)
                Re: PID-Regler (von guido - 9.11.2004 18:48)