Страница 76 из 98

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Чт мар 01, 2012 02:15:19
Niks13
Soir писал(а): версия 4.3 - ПИД регулятор.
Ни фига себе, я Вас достал.Изображение Уже до ПИД дошли. Класс!!!!Изображение Быстрей бы домой. Ужасно хочется испытать.
Soir писал(а):Соответствие коэффициентов условным обозначениям при индикации (в скобках величины по умолчанию):
Tint -> in (20)
Tquant -> ti (2)
Tdiff -> di (5)
Zp -> Pr (1)
St (5) как был, так и остался.
Изображение А кто такие in, ti, di и Pr?Изображение Это теперь нужно пятью установками оперировать?Изображение
Ладно, сейчас поиском пошарю. Я знаю что ПИД, это круто, но в принцип работы, не вникал. Не думал, что мы до него докатимся. Что-то мне подсказывает, что на изучение этих пропорционально- интегрально-дифференциальных составляющих, у меня уйдут годыИзображение

P.S. Для таких как я нашел интересную статейку. Кстати там и какой-то полный код ПИД контроллера приведен
А еще, если я правильно понял, они говорят что для терморегулятора, дифференциальная составляющая не нужнаИзображение

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Чт мар 01, 2012 13:50:00
Soir
variaevg писал(а):В связи с возрастом и недостатком специального образования мало что понял.
Это неважно. В EEPROM все записано правильно. Ошибок здесь нет.
В Proteus точно все работает корректно? Может я логику где-то неправильно прописал? Я не помню зачем, но в прошивке прописано при включении устройства Out_1 логический ноль, а Out_2 единица. Дальше (примерно через 2 секунды) по температуре... Это правильно?
Я увеличил время инициализации датчика при включении. Первое считывание данных с датчика дает 85 градусов. В прошивке это учтено, но на всякий случай еще добавил одно измерение перед запуском алгоритма работы реле.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Чт мар 01, 2012 16:38:57
variaevg
To Soir!

Чтобы нам не запутаться распишу все заново.
Процесс это нагрев с испарением и конденсацией.

По Т1 управляется Out1
Out1 = 0 вода на конденсацию выключена
Out1 = 1 клапан включает воду
По Т2 управляется Out2
Out2 = 0 нагрев разрешен
Out2 = 1 нагрев блокируется
Выв 2 МК (BUZ) назовем его Out3 управляет кулером тиристора
Out3 = 0 кулер включен
Out3 = 1 кулер выключен

Алгоритм работы:

Рост температуры
Т меньше Т1
Out1 = 0
Out2 = 0
Out3 = 0
Т достигло Т1
Out1 = 1
Out2 = 0
Out3 = 0
Т достигло Т2
Out1 = 1
Out2 = 1
Out3 = 0
Через 1 мин
Out1 = 0
Out2 = 1
Out3 = 1
Дальнейшее снижение Т на работу не влияет до перевыключения питания, т.е. до следующего цикла работы.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Чт мар 01, 2012 17:21:28
variaevg
To Soir!

PS. При несправности датчика Out2 = 1
Первое считывание данных с датчика дает 85 градусов.
Наверное это не нужно. Пусть все зависит только от Т1 и Т2.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Чт мар 01, 2012 18:14:05
Soir
variaevg писал(а):Чтобы нам не запутаться распишу все заново.
Очень правильное решение, я проверю, что и как...
variaevg писал(а):
Soir писал(а):Первое считывание данных с датчика дает 85 градусов.
Наверное это не нужно. Пусть все зависит только от Т1 и Т2.
Тут не спрашивается нужно или не нужно, это особенность датчика. Вы не проверяли прошивку, эффект памяти остался?

Чт мар 01, 2012 17:32:31
P.S.
В общем просмотрел, алгоритм соответствует, кроме состояния выходов непосредственно при включении. Изменил. Проверьте.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Чт мар 01, 2012 19:09:18
variaevg
To Soir!
Прогнал последнюю прошивку на макетке, результат:
1-е включение - все как положено.
2-е включение (T меньше Т1):
Out1 = 1
Out2 = 1
Out3 = 0
Через 1 мин
Out1 = 0
Out2 = 1
Out3 = 1
Отключаю датчик
Out1 = 1
out2 = 1
Out3 = 1

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Чт мар 01, 2012 19:58:51
Soir
variaevg писал(а):Прогнал последнюю прошивку на макетке, результат...
Иду включать паяльник...

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Чт мар 01, 2012 20:40:34
evum
Soir Здравствуйте уважаемый :)
Терморегулятор Ваш прошёл полевые испытания.Сейчас готовится маленькая серия с эстетическим внешним видом. Однако в ходе испытаний выявился мелкий недочёт, а именно - мигает цифра, младшего разряда ( думаю если она задерживается дольше,чем период измерения или такта или что то в этом духе). Может может как нибудь исправить этот недостаток ?.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Пт мар 02, 2012 06:50:58
Soir
evum писал(а):мигает цифра, младшего разряда...
Дайте ссылку, с какого поста брали прошивку. Посмотрю обязательно на днях, быстро не обещаю, на работе завал. Вчера так и не дошел до паяльника.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Пт мар 02, 2012 13:12:51
Soir
Soir писал(а):
variaevg писал(а):Прогнал последнюю прошивку на макетке, результат...
Иду включать паяльник...
Попробуйте вот этот вариант. Похоже снова Proteus не обращает внимание на грехи компилятора.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Пт мар 02, 2012 14:09:05
variaevg
To Soir!
Все стало ОК! Спасибо.
Пару вопросов:
1. Пробовал подключать Выв 4 МК и общий и на +5 через 1к не заметил разницы, как правильнее?
2. МК прошит на индикатор ОА. Если поставить ключи n-p-n и индикатор ОК будет правильно работать?

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Пт мар 02, 2012 18:53:21
variaevg
To Soir!
МК прошит на индикатор ОА. Если поставить ключи n-p-n и индикатор ОК будет правильно работать?
Извеняюсь за глупый вопрос. Поразбирался и пришел к выводу:
Если прошивка ОА, то ключи p-n-p и инвертировать вызоды D.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Пт мар 02, 2012 19:06:00
Soir
variaevg писал(а):1. Пробовал подключать Выв 4 МК и общий и на +5 через 1к не заметил разницы, как правильнее?
В последнем варианте вывод 4 никуда подключать не надо. Если подключили ошибки не будет, будет лишняя трата одного резистора.
variaevg писал(а):2. МК прошит на индикатор ОА. Если поставить ключи n-p-n и индикатор ОК будет правильно работать?
Не совсем так. Надо ставить инверторы на все выводы индикатора. А инверторы можно собрать на тразисторах как одной, так и другой проводимости, а также и на другой элементной базе. Дабы не заморачиваться, Вы мне просто скажите, надо прошивку под ОК? Программно это все решается гораздо проще и не требует материальных затрат.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Пт мар 02, 2012 20:09:17
variaevg
To Soir!
Решил вообще не ставить ключи, плата зажатая и разводка усложняется.
Если не сложно хотелось ба прошивку на ОК.
С интересом слежу за Вашей доводкой прошивки совместно с Nics13, завтра-послезавтра подключусь к испытаниям.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Пт мар 02, 2012 22:23:33
Soir
variaevg писал(а):Решил вообще не ставить ключи, плата зажатая и разводка усложняется.
Ключи могут понадобиться, если недостаточная яркость индикатора.
variaevg писал(а):Если не сложно хотелось ба прошивку на ОК.
Несложно. Во вложении.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Сб мар 03, 2012 13:09:57
Niks13
Здравствуйте, Уважаемый Soir!
Дома ИНЕТ пропал. Игрался 2 дня, последней версией. Со своей системой, пока результатов не добился. Уж очень она у меня тормознутая и после каждого изменения установок, требуется уйма времени на проверку. Зато, с более быстрыми системами, работает, просто изумительно. Быстро стабилизируется и держит до 0,2*С. Со своей, я уверен, тоже со временем добьюсь результата. Только напишите, пожалуйста, как у Вас будет время, краткий мануальчик, для этой прошивки. Я так и не разобрался, где там чего, и в чем измеряется.
Tint -> in (20) - это наверное интегральная составляющая
Tquant -> ti (2) -?
Tdiff -> di (5) - это я так понимаю дифференциальная
Zp -> Pr (1) - ?
St (5) - это время (как и было)
Можно ли в нашем варианте, использовать тот способ настройки, что предлагается в статье, которую я приводил раньше?
СТАТЬЯ

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Сб мар 03, 2012 22:57:13
Soir
Niks13 писал(а): Можно ли в нашем варианте, использовать тот способ настройки, что предлагается в статье, которую я приводил раньше?
Я пробовал реализовать формулу из статьи, но что-то плохо получается. Там есть явная ошибка, может есть и скрытые, копаться во всем этом нет ни времени ни желания. Кроме того, пределы установки коэффициентов нужно адаптировать под текущую задачу... Какого-то результата добился, можете поэкспериментировать, вдруг на Вашем устройстве все пойдет.
Соответствие коэффициентов из статьи символам индикатора:
pGain -> PG
iGain -> 1G
dGain -> dG
St назначение тоже самое.
Будет время, может еще позанимаюсь. Или может Вы мне скажете, что вот такого коэффициента недостаточно...

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Вс мар 04, 2012 02:51:45
Niks13
Soir писал(а): копаться во всем этом нет ни времени ни желания.
СПАСИБО ВАМ ОГРОМНОЕ!!!!! В любом случае, из такого количества прошивок, я 100% смогу подобрать ту, которая меня устроит. Главное, потом записать с какой прошивкой и с какими установками, работала моя система, чтоб к следующему году не забыть. :)))
Вы и так сделали столько работы, что мне уже, ей богу, стыдно. Завтра приеду с дачи, залью эту прошивку и поиграюсь, хотя у меня еще с предыдущей куча вариантов. Как я уже говорил, предыдущая, на более быстрых системах работает отлично, причем найти подходящие коэффициенты, довольно легко. Она совсем не капризна. Еще раз, СПАСИБО ВАМ!!!

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Вс мар 04, 2012 09:34:17
solovey33
Для Soir.
Здраствуйте. Благодарю за прошивку. Сейчас собрал примерно механику и установил регулятор на котел (кому интересно - в архиве фото, печатка самого контроллера без дисплея). Все работает нормально, но опять же есть вопрос по поводу времени импульсов St: не могли бы Вы добавить еще один импульс длительностью в 0.5 секунды, так как на даном редукторе 1 секунда многовато, сейчас ищу подходящий редуктор, этот для проверки работы "слепил" из старого будильника. Еще раз спасибо Вам за прошивку.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Добавлено: Вс мар 04, 2012 10:50:02
Soir
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
Перезалил прошивку, исправил мелкие ошибки.