lunes, 29 de marzo de 2010

PiD cOnTrOlLeR

This code is made for Dev C++
Save it as pid.c
#include {windows.h}
#include {stdio.h}
main(){
double alfa, e, r, u, x ;
int i = 0 ;
alfa = 0.1 ;
r = 0.3 ;
u = 1 ;
x = 0 ;
while(i{51){
e = u - r ;
r = alfa*x ;
x = 4*e ;
fflush(stdout);
sleep(50) ;
printf("%d\t %f\t %0.2f\t %0.2f\t %0.2f\t\n", i++, u, r, e, x) ;
}
//system("PAUSE") ;
double e1, in, Ki, Kd, Kp ;
int p = 4;
i = 0 ;
r = 0 ;
e1 = 0 ;
in = 0 ;
Ki = 0.7 ;
Kd = 0.8 ;
Kp = 7 ;
while(i{101){
e = u - r ;
in = in + e ;
x = Kp*e + (Ki*in) + Kd*(e - e1) ;
if(x>30) x = 30 ;
e1 = e ; //error previo
r = 0.1*x ;
fflush(stdout);
sleep(50) ;
printf("%d\t %f\t %0.2f\t %0.2f\t %0.2f\t\n", i++, u, r, e, x) ;
if(i}50) u = 1.2 ;
}
system("PAUSE") ;
}

xD
xDD

martes, 23 de marzo de 2010