[an error occurred while processing this directive]
|
Реально работающий в одном большом механизме регулятор натяжения(на верхнюю площадку по железной лесенке лазить надо, я один раз нетрезвый поскользнулся, лоб разбил)
Частота дискретизации 100 Гц
void pid (void)
{
double Kp; //Коэффициент усиления линейного усилителя
double Ki; //Коэффициент усиления интегратора
double Kd; //Коэффициент усиления дифференциатора
double delta;
Kp=0.2;
Ki=0.00390625;
Kd=1.0;
delta=adc3-adc2; //Величина ошибки
//integ2 и difer2 - глобальные, тоже double
integ2=integ2+delta*Ki;
pwm=370.0+delta*Kp+integ2+(delta-difer2)*Kd;
//370.0 Это постоянное смещение, нужное конкретно мне.
//pwm - выходная величина
difer2=delta;
}
E-mail: info@telesys.ru