Дабы избежать кривотолков от разных статей, просто приведу кусок кода.
error = Т_уставки - текущее значение Т Proportional = (error * pGain) temp_sum = (Integral + ( error * iGain)) Integral = temp_sum Differential = ( (prev_error - error) * dGain) pid = (Proportional + Integral + Differential) prev_error = error
Все стандартно и просто. Чем выше значение pid, тем больше скважность ШИМ, ну и выше температура, соответственно. Ну и и время между заходами в эту подпрограмму. Соответственно от времени зависит скорость накопления ошибки интегральной составляющей.
Дабы избежать кривотолков от разных статей, просто приведу кусок кода.
error = Т_уставки - текущее значение Т
Proportional = (error * pGain)
temp_sum = (Integral + ( error * iGain))
Integral = temp_sum
Differential = ( (prev_error - error) * dGain)
pid = (Proportional + Integral + Differential)
prev_error = error
Все стандартно и просто. Чем выше значение pid, тем больше скважность ШИМ, ну и выше температура, соответственно.
Ну и и время между заходами в эту подпрограмму. Соответственно от времени зависит скорость накопления ошибки интегральной составляющей.