Niks13 писал(а):из такого количества прошивок, я 100% смогу подобрать ту, которая меня устроит
Да, вариантов получилось много, надеюсь, что-то да подойдет.
И тем не менее. Немного доработал последний 4.2. Сместил в меньшую сторону диапазоны установки коэффициентов и добавил возможность установки параметра Pr. В статье это iMax, iMin (iMax = Pr, iMin = -Pr). Там же читайте описание, что это такое.
Чтобы понятнее было, поясню ху из ху.
position - измеренная температура. У меня без запятой. То есть, если температура 25,3 град, то везде в расчетах берется 253, а запятая просто выводится на индикатор в нужном месте. Так мне удобнее и проще, а в расчетных формулах я это учитываю.
error - разница между заданной температурой и измеренной. Величины тоже без запятой. Если заданная 30,0 град, а измеренная 25,3, то error = 300-253=47.
dState - предыдущая измеренная температура. После завершения расчета коррекции мощности принимает значение текущей (dState = position), то есть запоминает текущую для следующего вычисления.
iState - накопление ошибки. Новая ошибка (с учетом знака) все время прибавляется к этому параметру. Накопленная ошибка не может стать бесконечно большой или малой, она ограничена параметрами iMax, iMin. Таким образом, если в начале расчета iState = 5, а error = 47, то iState = 5+47 = 52. По умолчанию Pr=10, то есть iState будет ограничено 10. iState = 10.
Дальше.
pTerm = pGain * error; пропорциональная составляющая.
iTerm = iGain * iState; интегральная составляющая.
dTerm = dGain * (position - dState); дифференциальная составляющая.
Результат вычислений (pTerm + iTerm - dTerm) прибавляется (с учетом знака) к текущей выходной мощности. Тут тоже есть ограничения: 0% - минимальная мощность, 100% - максимальная. Шаг изменения мощности - 1%.
Если что непонятно по формуле или вычислениям спрашивайте, попробую объяснить по-другому.
Если что непонятно по настройке регулятора - у меня не спрашивайте, "мануальчик" я не напишу. Я всего лишь прописал формулу из статьи в прошивку.
----------
Вс мар 04, 2012 16:05
Перезалил прошивку, исправил мелкие ошибки.