Ни фига себе, я Вас достал. Уже до ПИД дошли. Класс!!!! Быстрей бы домой. Ужасно хочется испытать.
Soir писал(а):
Соответствие коэффициентов условным обозначениям при индикации (в скобках величины по умолчанию): Tint -> in (20) Tquant -> ti (2) Tdiff -> di (5) Zp -> Pr (1) St (5) как был, так и остался.
А кто такие in, ti, di и Pr? Это теперь нужно пятью установками оперировать? Ладно, сейчас поиском пошарю. Я знаю что ПИД, это круто, но в принцип работы, не вникал. Не думал, что мы до него докатимся. Что-то мне подсказывает, что на изучение этих пропорционально- интегрально-дифференциальных составляющих, у меня уйдут годы
P.S. Для таких как я нашел интересную статейку. Кстати там и какой-то полный код ПИД контроллера приведен А еще, если я правильно понял, они говорят что для терморегулятора, дифференциальная составляющая не нужна
В связи с возрастом и недостатком специального образования мало что понял.
Это неважно. В EEPROM все записано правильно. Ошибок здесь нет. В Proteus точно все работает корректно? Может я логику где-то неправильно прописал? Я не помню зачем, но в прошивке прописано при включении устройства Out_1 логический ноль, а Out_2 единица. Дальше (примерно через 2 секунды) по температуре... Это правильно? Я увеличил время инициализации датчика при включении. Первое считывание данных с датчика дает 85 градусов. В прошивке это учтено, но на всякий случай еще добавил одно измерение перед запуском алгоритма работы реле.
Чтобы нам не запутаться распишу все заново. Процесс это нагрев с испарением и конденсацией.
По Т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 20:40:34
Открыл глаза
Зарегистрирован: Ср сен 14, 2011 21:00:14 Сообщений: 68 Откуда: Тюмень
Рейтинг сообщения:0
Soir Здравствуйте уважаемый Терморегулятор Ваш прошёл полевые испытания.Сейчас готовится маленькая серия с эстетическим внешним видом. Однако в ходе испытаний выявился мелкий недочёт, а именно - мигает цифра, младшего разряда ( думаю если она задерживается дольше,чем период измерения или такта или что то в этом духе). Может может как нибудь исправить этот недостаток ?.
To Soir! Все стало ОК! Спасибо. Пару вопросов: 1. Пробовал подключать Выв 4 МК и общий и на +5 через 1к не заметил разницы, как правильнее? 2. МК прошит на индикатор ОА. Если поставить ключи n-p-n и индикатор ОК будет правильно работать?
1. Пробовал подключать Выв 4 МК и общий и на +5 через 1к не заметил разницы, как правильнее?
В последнем варианте вывод 4 никуда подключать не надо. Если подключили ошибки не будет, будет лишняя трата одного резистора.
variaevg писал(а):
2. МК прошит на индикатор ОА. Если поставить ключи n-p-n и индикатор ОК будет правильно работать?
Не совсем так. Надо ставить инверторы на все выводы индикатора. А инверторы можно собрать на тразисторах как одной, так и другой проводимости, а также и на другой элементной базе. Дабы не заморачиваться, Вы мне просто скажите, надо прошивку под ОК? Программно это все решается гораздо проще и не требует материальных затрат.
To Soir! Решил вообще не ставить ключи, плата зажатая и разводка усложняется. Если не сложно хотелось ба прошивку на ОК. С интересом слежу за Вашей доводкой прошивки совместно с Nics13, завтра-послезавтра подключусь к испытаниям.
Здравствуйте, Уважаемый Soir! Дома ИНЕТ пропал. Игрался 2 дня, последней версией. Со своей системой, пока результатов не добился. Уж очень она у меня тормознутая и после каждого изменения установок, требуется уйма времени на проверку. Зато, с более быстрыми системами, работает, просто изумительно. Быстро стабилизируется и держит до 0,2*С. Со своей, я уверен, тоже со временем добьюсь результата. Только напишите, пожалуйста, как у Вас будет время, краткий мануальчик, для этой прошивки. Я так и не разобрался, где там чего, и в чем измеряется. Tint -> in (20) - это наверное интегральная составляющая Tquant -> ti (2) -? Tdiff -> di (5) - это я так понимаю дифференциальная Zp -> Pr (1) - ? St (5) - это время (как и было) Можно ли в нашем варианте, использовать тот способ настройки, что предлагается в статье, которую я приводил раньше? СТАТЬЯ
Можно ли в нашем варианте, использовать тот способ настройки, что предлагается в статье, которую я приводил раньше?
Я пробовал реализовать формулу из статьи, но что-то плохо получается. Там есть явная ошибка, может есть и скрытые, копаться во всем этом нет ни времени ни желания. Кроме того, пределы установки коэффициентов нужно адаптировать под текущую задачу... Какого-то результата добился, можете поэкспериментировать, вдруг на Вашем устройстве все пойдет. Соответствие коэффициентов из статьи символам индикатора: pGain -> PG iGain -> 1G dGain -> dG St назначение тоже самое. Будет время, может еще позанимаюсь. Или может Вы мне скажете, что вот такого коэффициента недостаточно...
СПАСИБО ВАМ ОГРОМНОЕ!!!!! В любом случае, из такого количества прошивок, я 100% смогу подобрать ту, которая меня устроит. Главное, потом записать с какой прошивкой и с какими установками, работала моя система, чтоб к следующему году не забыть. Вы и так сделали столько работы, что мне уже, ей богу, стыдно. Завтра приеду с дачи, залью эту прошивку и поиграюсь, хотя у меня еще с предыдущей куча вариантов. Как я уже говорил, предыдущая, на более быстрых системах работает отлично, причем найти подходящие коэффициенты, довольно легко. Она совсем не капризна. Еще раз, СПАСИБО ВАМ!!!
Для Soir. Здраствуйте. Благодарю за прошивку. Сейчас собрал примерно механику и установил регулятор на котел (кому интересно - в архиве фото, печатка самого контроллера без дисплея). Все работает нормально, но опять же есть вопрос по поводу времени импульсов St: не могли бы Вы добавить еще один импульс длительностью в 0.5 секунды, так как на даном редукторе 1 секунда многовато, сейчас ищу подходящий редуктор, этот для проверки работы "слепил" из старого будильника. Еще раз спасибо Вам за прошивку.
из такого количества прошивок, я 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 Перезалил прошивку, исправил мелкие ошибки.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения