Es gibt da ein älteres Programm von waste, das die Vorgehensweise beim PID-Regler gut zeigt:
https://www.roboternetz.de/phpBB2/ze...&highlight=pid
https://www.roboternetz.de/phpBB2/vi...=285825#285825

Den entscheidenden Teil des Programms, der den PID-Regelalgorithmus abbildet, ziehe ich heraus:
Code:
   x = don - doff;  	  // Abweichung

   yp = x * kp;           // P-Anteil berechnen
 
  isum += x;
                                 // Begrenzung um Überlauf zu vermeiden  
   if (isum >  16000)     isum =  16000;         
   if (isum < -16000)     isum = -16000;
   yi = isum / 625 * ki;  	 // I-Anteil berechnen
  
   yd = (x - xalt) * kd + drest;    // D-Anteil berechnen                
   if      (yd >  255)    drest = yd - 255;     
   else if (yd < -255)    drest = yd + 255;
   else                   drest = 0; 	  
   y = yp + yi + yd;  	  //Stellgröße des PID-Reglers