Форум самогонщиков Сайт Барахолка Магазин Помощь солдатам

Доступная автоматика HelloDistiller на Ардуино Мега 2560

Форум самогонщиков Автоматика
1 ... 318 319 320 321 322 323 324 ... 795 321
Ayupakhomov Доктор наук Владимир 641 487
Отв.6400  02 Янв. 17, 11:01
мне пока не удалось добиться правды с пид
убегает вверх и сильно
имхо проще паузы сдвинуть вниз с поправкой на инерцию

сейчас экспериментировал, пид 110 10 20 , цель 65 град.
до 63 подается полное напряжение на тэн, затем снижается. рост до 67
засыпь, падение до 63, нагрев, в итоге получаю 67, на паузу. итого рост на 4 градуса.
по идее нужно добиться того, чтобы нагрев снимался как раз за 4 градуса до цели, но пока неясно, как этого добиться. как уже написал, проще поправку по паузам делать

п.с.
а можно как-то отдельно режим сбраживания включать, ну или режим периодического помешивания, а то после отключения электричества непонятно, как туда попасть, т.к. это конечные стадии режима варки зерна.
msg31 Научный сотрудник Барнаул 4.6K 2.5K
Отв.6401  02 Янв. 17, 11:07, через 6 мин
Это режим HLD Zator.
PavelSaratov Доктор наук Саратов 622 80
Отв.6402  02 Янв. 17, 14:23
to  Ayupakhomov
убегает вверх и сильно
Даже не зная программу автора - ну раз сильно убегает, значит П составляющая большая. Уменьшай.
*update Потер свою писанину, все равно мало толка, пока не проникнешься.
ИЗ скетча KtT=((long)PIDTemp[0]*NewErrTemp*8 + (long)PIDTemp[1]*ItTemp/10+(long)PIDTemp[2]*DtTemp*10)/10;
У тебя стоит 110 для PIDTemp[0]
То бишь KtT = 110 * (65-63) * 8 / 10 итого 176 (почти 20 процентов от мощности ТЭН в 3КВ!) У ТЭНа инерция + у тебя интегратор еще насчитал всякого (при отключенных И и Д (А И может не кисло подорвать процесс если верить автору она разгонит на 100% интегратором выход за 500 секунд).
В момент когда температура достигла 65 - И составляющая рубится, но только в этот момент.
Соответственно - 2 градуса твоих чисто на инерции закатываются на нужную планку.
Надо подправить скетч по идее а так же уменьшить планку. Тут И соствляющая вообще не отрегулирована - она ворочает мощнейшим теном - перерегулирование полюбому будет. Надо ТЭН еле греть на подступах. Пусть это будет чуть дольше.

   
// Если значение температуры превысило нужную, то сбрасываем интегральный коэффициент
// и убираем мощность.
if (FactTemp>=NeedTemp) {ItTemp=0 ;KtT=0;}

Елы палы... Ну и ПИД регулирование...

to to  AyupakhomovДруг у тебя инерция твоей установки больше 2-ч градусов (Вырубили полностью ТЭН а оно еще на 2 градуса как минимум разгонится). Скетч надо править. Тонкий регулятор для узкого диапазона + - 8 градусов от нужной уставки до нее разгонять на полной мощности. Для ПИД Заложить ошибку регулирования для твоего случая Т уставки - 2 градуса. Убрать нафиг пока И составляющую. Забыть вообще про Д составляющую. П уменьшить до 20 для начала эксперимента.
Скрытый текст


// Процедура осуществляет ПИД регулирование температуры.
// В качестве результата возвращается коэффициент мощности, умноженный на 1000, то есть
// 1000 - это 100% подача мощности на ТЭНы.
/* НЕ в обиду автору
*  это кусок из курсовой студента.
*  Подправлено таким же студентом ради примера для форума Улыбающийся
*  Использовать только когда точно понимаешь что делаешь на свой страз и риск
*  Мну ответственности не несет, вы за работу мне не платили Улыбающийся
*/

void ProcessPIDTemp(int NeedTemp, int FactTemp)
{  
/*Псевдорегулятор ниже начнет работать только если разница между уставкой и фактической меньше 8 градусов
    * до этого тянем на полной мощности ТЭН.
    */
 if ((NeedTemp-FactTemp)> 8 )
 {
   /*Гоним ТЭН на полную так как разница пока очень большая в температуре*/
   KtT = 1000;
 }
 else
 
 {
   /*вот тут че-то уже можно пытаться регулировать АККУРАТНЫМ П -регулятором.
А потом уже настраивать И регулятор. Тогда может и не придется тупо смещение относительно задания в -2 задавать.*/

   NewErrTemp=(NeedTemp-FactTemp);
   DtTemp=NewErrTemp-OldErrTemp;
   ItTemp=ItTemp+NewErrTemp;
   
   if (ItTemp<-1000) ItTemp=-1000;
     else
       if (ItTemp>1000) ItTemp=1000;
       
   
   OldErrTempOut=OldErrTemp; // Запоминаем старую ошибку.
   OldErrTemp=NewErrTemp; // Запоминаем старую ошибку.
   // Считаем коэффициент температуры
   KtT=((long)PIDTemp[0]*NewErrTemp*8 + (long)PIDTemp[1]*ItTemp/10+(long)PIDTemp[2]*DtTemp*10)/10;
   #ifdef TEST
     Serial.print("Ktt:");
     Serial.println(KtT);
   #endif
   if (KtT>1000) KtT=1000;  //Тут надо бы заузить 3КВ на ТЭН для пары градусов нехорошо
   if (KtT<0) KtT=0;
   // Если значение температуры превысило нужную, то сбрасываем интегральный коэффицциент
   // и убираем мощность.
   /*
    * Затычка -2 градуса : кривой способ убрать инерцию системы в 2 градуса. Где аукнется - не знаю - код не проверял.
    * Пометка с единственной целью - Эту функцию можно инлайнить в отдельных режимах, но надо четко понимать что делаешь.
    * Смысл inline - чутка поправить сию функцию только для одного требуемого места, для всего остального использовать
    * стандартную изначальную. За такое на производстве руки отрывают, но тут это совсем крайний вариант для
    * не шарящих. С другой стороны они как раз дров и наломают.. Вобщем забудьте про это -2.
    */

   if (FactTemp>=(NeedTemp/*- 2*/)) {ItTemp=0 ;KtT=0;}
 }
}

Добавлено через 4ч. 37мин.:

Что такое перерегурование и чего с ним делать.

По компонентам (как тут и столкнулся наш коллега Ayupakhomov).
П - у вас шарик еле качается а вы двинули рукой на метр! Конечно он пойдет качаться сильнее только. Это перерегулирование.
Почему мы вообще подбираем коэффициэнт? Да просто есть две крайности - на каждом цикле чуть чуть прямо почти незаметно подправлять рукой - вы конечно наверное загасите колебания, но доооолго. Вторая крайность - махнули рукой - шарик полетел в неведомые дали... И на каждом следующем движении такте вы или постоянно раскачиваете или наоброт успокаиваете наш злосчастный шарик (который блин с первого января уже качается никак не устаканится). Вот поэтому первым делом нам надо узнать П-составляющую. Она наиболее сильно действует. По идее в классическом регулировани - если вы попали в +/- 5 процентов от цели - считается вы отрегулировали. Для наших дел все хитрее, но это отдельным постом (суть на шкале от 0 до 100 +/- 5% это +/- 5 градусов что согласитесь полная херня) - решение - включать регулятор только в окрестностях нужной точки например на 60 градусах при 65 задания. Тогда +/-5% это доли градуса на шкале 60-70. Ну чето я отвлекся.
И - из-за долбаной пружинки - шарик перелетал недолетал до нужного, хотя П у нас уже настроена - чтобы компенсировать силу отклонения. Т.е. каждый раз вы двигали рукой - и был бы шарик на веревочке в вакууме - вы бы почти точно заглушили его колебания. Но вот пружинка сцуко привносит какую то ошибку на каждом шаге постоянно. Так вот чтобы сообразить какую именно - И составляющая. Причем на каждом такте качания воздействие этой составляющей потихоньку увеличивается - каждый так мы чутка прибавляем /убавляем движение нашей руки. Рано или позно , если действовать последовательно - мы таки успокоим этот шарик.
Перерегулирование по данной составляющей - предствавьте в вашей голове откуда то мысль - раз пружинка напружинила для шарика еще 10 см движения - дай ка я сразу буду прибавлять к П составляющей по полметра. Т.е. уже на третем шаге - вы двигаете рукой (согласно П составляющей на 30 сантиметров скажем, а вспомнив об ошибке вы добавляете каждый такт по полметра). Уже на 3-ем такте у вас рука будет двигаться 30 см+ 50см + 50см = 1 метр 30см! Да никуда не годно. Потому надо высчитывать мальенький коэффициент.
Тут я приторможу, потому как начинать объяснять длительности периодов полупериодов и прочего и какая связь - нуивонафиг. Самое главное - подберете большой коэффицент - система пойдет так же вразнос, маленький - будете долго ждать.
Д- да нуегонафиг.


Добавлено через 6мин.:

Question: это вообще кому то надо что я пишу? Я например вообще ни разу не согласен с применением ПИД регулятора вообще для дел автоматики работы ТЭН для самогонного аппарата - оно криво косо работать будет, но бред же - у вас нет вентилятора чтобы остужать - тут только нагрев включен или выключен, по сути у вас только полпериода (когда недогрев) регулятор работает. На кой нужно это здесь?. Куда проще и понятнее и легче настраивается тупой позиционный регулятор с табличкой воздействия, блин забыл как он правильно называется.. Суть в том что  при разности более 10 градусов - включай на полную, менее 5 - на 50 от мощности тэн, менее 10 - 5 от мощности и так далее.
seregin Магистр Бердск 208 231
Отв.6403  03 Янв. 17, 12:33
Суть в том что  при разности более 10 градусов - включай на полную, менее 5 - на 50 от мощности тэн, менее 10 - 5 от мощности и так далее.PavelSaratov, 02 Янв. 17, 14:23

вот я тоже про это думаю - что в наших делах, такой подход более к месту.

Добавлено через 1мин.:

это вообще кому то надо что я пишу?PavelSaratov, 02 Янв. 17, 14:23

мне - нада ))
Ayupakhomov Доктор наук Владимир 641 487
Отв.6404  03 Янв. 17, 13:43
Ну так может профи перепишут скетч? Улыбающийся
Вообще мне лично не хватает банальных поправок:
40 градусов - тормози за 2 градуса, догоняй по инерции с отключенным тэном.
50 градусов - тормози за 3 градуса, и так далее
Инерция при одинаковом объеме всегда будет одинаковой, задал поправки 1 раз и забыл.

Ну я пока просто паузы вниз сдвигаю в параметрах, и попадаю уже в нужные. Пока не особо много времени было на эксперименты, но предварительно - когда идем вверх, все работает неплохо, если сильно вниз провалились (после охлаждения каши) - уже хуже, т.к. баланс сбивается, в рубашке холодное, в кубе горячее, хрен попадешь, но это уже просто опытным путем надо вычислять.

Я не особо изучал написанное коллегами выше. Правка скетча с костылем в (-2) не имеет особо смысла, проще сами паузы сдвинуть и попадать в нужные.

А ПИД-регулирование на мой взгляд не работает, ну или работает, но не так как нужно. Я проверял на разных параметрах Д, И, - на воде просто, всяко убегает вверх. Тэн херачит  3 квт и только за 2 градуса начинает снижать мощность, как будто никаких коэффициэнтов и не задавал.
PavelSaratov Доктор наук Саратов 622 80
Отв.6405  03 Янв. 17, 14:03, через 20 мин
Правка скетча с костылем в (-2) не имеет особо смысла, проще сами паузы сдвинуть и попадать в нужные.
Ты так и не уловил самый цимес правки. Костыль -2 - его вообще стереть надо от греха. Там суть в другом вообще - включать ПИД регулятор только возле зоны требуемой температуры. Тогда регулировать тебе надо будет в гораздо меньшем диапазоне. П-коэффициэнт сильно уменьшится а И составляющая не начнет копить ошибку за час. Ну дело твое...
WarIock Студент В.Новгород 37 8
Отв.6406  03 Янв. 17, 15:33
Коллеги, подскажите. Ночью, в процессе перегонки, пару раз вставал для контроля, т к  были ошибки по датчику температуры, вроде третьему (точно было не понять, ошибка выскакивала на мгновенье раз в пол часа). Вроде бы решилось заменой блока питания на старый 9в, потом часа 4 ошибок не было. Так вот, в один из подъемов попал на стоп, когда температура стабилизации колонны была 76,9. Все бы ничего, но когда я ложился, она была 77,1. Причем именно на этом стопе колонна перестабилизировалась на 77,2. Наиболее вероятная причина - падение температуры воды охлаждения. Ночью изрядно похолодало, температура выходящей воды упала на 8 градусов, с 45 до 38. Вопросов, собственно, несколько.
1. Как температура стабилизации изменилась в меньшую сторону? Насколько я понимаю логику работы, это невозможно.
2. Что у меня в приемной емкости? Это съедобно или перегнать?
3. Как отловить глючащий датчик? Из-за него, как я где-то читал, остальные также могут давать неверные показания.
VladPP Доцент Новосибирск 1K 380
Отв.6407  03 Янв. 17, 16:10, через 37 мин
3. Как отловить глючащий датчик?WarIock, 03 Янв. 17, 15:33
Тоже часто датчики мрут, допустим показывает ошибку третий датчик, меняешь, а ошибка остается, видимо глючный датчик может на рабочий как то влиять, или хрен знает )) Поэтому пришлось сделать еще один комплект датчиков, тупо меняю все, ежли ошибка ушла, подкидываю по очереди по одному датчику, из тех что снял, пока не нарвусь на вредителя, мечу откладываю в сторону. Выбракованые датчики нормально работают в других устройствах ( например я в часы ставлю )
Зеленый змей Профессор регион 38 3K 1.1K
Отв.6408  03 Янв. 17, 18:55
Может кому пригодится.
Болтался свободный вход независимой системы безопасности (компараторы, RS-триггеры и реле, которое отрубает ТЭНы). Были задействованы датчик температуры на дефе, датчик перелива из ТСА, датчики разлития спирта.
Всё думал, что ещё подключить? Нашёл. Выход датчика давления, замечательно прижился.
Это на случай пробоя триака.
WarIock Студент В.Новгород 37 8
Отв.6409  04 Янв. 17, 01:34
Тоже часто датчики мрут,VladPP, 03 Янв. 17, 16:10
Выбракованые датчики нормально работают в других устройствах ( например я в часы ставлю )VladPP, 03 Янв. 17, 16:10
Еще день понаблюдал за датчиками температуры в режиме displaying - после замены блока питания на старый 9в (менял с месяц назад на 7в), ошибка не вылезала. Возможно у тебя сходная ситуация, проверь питание.
VladPP Доцент Новосибирск 1K 380
Отв.6410  04 Янв. 17, 02:46
проверь питаниеWarIock, 04 Янв. 17, 01:34
Автоматики две, вряд ли в обоих Б/П, но попробовать нужно, всетаки скорей всего именно датчики / т мрут, в основном в кубе, реже в колонне. Еще надо попробовать датчики от другого продована поставить, с болнее коротким  шлейфом.
terminal Бакалавр Челябинск 88 7
Отв.6411  05 Янв. 17, 09:01
Добавлю своих 5 копеек. ПИД- регулятор это очень хорошая вещь. Только очень много вычислений с плавающей точкой и подбором коофициэнтов. Делал что то близкое к ПИД получалось точность прядка+-0,2 градуса.
PavelSaratov Доктор наук Саратов 622 80
Отв.6412  05 Янв. 17, 09:48, через 47 мин
 Есть возражения по поводу точности, но не буду холивар разводить. Вам +/- 0,2 предположим даже и понадобиться но нужно быть уверенным для начала , что ваш датчик не врет на +/- 0,5 градуса. Микроскопом гвозди забиваете.
terminal Бакалавр Челябинск 88 7
Отв.6413  05 Янв. 17, 11:09
Это было для инкубатора. А цель создать унивирсальный блок по контролю процессов.
serg-hard Магистр Новосибирск 263 52
Отв.6414  05 Янв. 17, 18:59
А кто нибудь ПИД кофффициэнты для УПВК-50 от Самогон и Водки подбирал? Поделитесь плиз.
terminal Бакалавр Челябинск 88 7
Отв.6415  05 Янв. 17, 21:07
А кто нибудь ПИД кофффициэнты для УПВК-50 от Самогон и Водки подбирал? Поделитесь плиз.serg-hard, 05 Янв. 17, 18:59
ПИД коффициэнт вещь индивидуальная. Вот у Вас к примеру нагреватель 3000 Ватт а у кого то 500, объем фляги 40 а у кого то 10 от сюда и потери будут разные и соотвественно ошибки. Так что по хорошему их нужно подбирать под конкретную систему.

Добавлено через 18мин.:

коэффициент правильно Улыбающийся
roslav Специалист Россь 189 147
Отв.6416  05 Янв. 17, 23:48
Автоматики две, вряд ли в обоих Б/П, но попробовать нужно, всетаки скорей всего именно датчики / т мрут, в основном в кубе, реже в колонне. Еще надо попробовать датчики от другого продована поставить, с болнее коротким  шлейфом.VladPP, 04 Янв. 17, 02:46

Вот часто на форуме жалуются что выдают ошибку термодатчики, или мрут.
Себе сделал автоматику, несколько друзьям. Ни у кого ни когда датчики не умирали. Брал их у разных производителей. Провод подсоединения сигнальный 4 жилы,что при установки сигнализаций используетсяа,одна жила не используется.Каждый датчик в свое гнездо на блоке, провода 1,5 метра.
Никогда не использую импульсные блоки питания , только трансформаторные.
Один раз датчики глючили ,выдавали ошибку, все криво работало. Оказалось симисторы клапанов впаял развернутыми на 180 градусов , ошибся. Перевернул их и все глюки пропали.
Точно не уверен ,но по моему сбои происходят там где стоят импульсные блоки питания.
PavelSaratov Доктор наук Саратов 622 80
Отв.6417  06 Янв. 17, 05:20
Автоматики две, вряд ли в обоих Б/П, но попробовать нужно, всетаки скорей всего именно датчики / т мрут, в основном в кубе, реже в колонне. Еще надо попробовать датчики от другого продована поставить, с болнее коротким  шлейфом.
Выскажу крамольную мысль. А они у вас влагой не напитаны по самое микрокороткое замыкание? Какие датчики используете?

Точно не уверен ,но по моему сбои происходят там где стоят импульсные блоки питания.
По поводу датчиков. Ошибки происходят не там где импульсные питания - они происходят там где вообще есть примитивная шина с возможными помехами.
Как вообще работает 1-wire? Да просто - прижимаем к земле или отпускаем шину (т.е. тупо "коротим" на землю и отпускаем обратно с разными временными интервалами). Как себя поведет чудо от китайцев мне лично неизвестно. Более того - один "залипший" датчик закоротит всю шину - все датчики отъехали.

Как сделано в серьезных проектах - цифровые шины вообще запрещено использовать для аварийных сигналов (ПАЗ) в соответствии с нашими ПБ. Используются токовые петли 4-20мА везде или тупо на разрыв при обесточении.
К несчастью - токовые 4-20 мА или термопары/сопротивления с компенсацией (те же 3-4 провода и выходят кстати) - тоже тот еще геморой использовать для наших целей (цена и гемор с наладкой если не знаешь как и что).
serg-hard Магистр Новосибирск 263 52
Отв.6418  06 Янв. 17, 06:24
ПИД коффициэнт вещь индивидуальная. Вот у Вас к примеру нагреватель 3000 Ватт а у кого то 500, объем фляги 40 а у кого то 10 от сюда и потери будут разные и соотвественно ошибки. Так что по хорошему их нужно подбирать под конкретную систему.

Добавлено через 18мин.:

коэффициент правильноterminal, 05 Янв. 17, 21:07

Для справки - УПВК-50 и есть конкретная система. С определенным нагревателем и конкретными теплопотерями, если не в курсе, что это - лучше промолчать.
VladPP Доцент Новосибирск 1K 380
Отв.6419  06 Янв. 17, 06:44, через 20 мин
Какие датчики используете?PavelSaratov, 06 Янв. 17, 05:20
обычные китайские
img_20170106_102011.jpg
Img_20170106_102011. Доступная автоматика HelloDistiller на Ардуино Мега 2560. Автоматика.

Каждый датчик в свое гнездо на блоке, провода 1,5 метраroslav, 05 Янв. 17, 23:48
img_20170106_102135.jpg
Img_20170106_102135. Доступная автоматика HelloDistiller на Ардуино Мега 2560. Автоматика.

так же каждый датчик имеет свою маму, на гильзу натянут гандончик из пяти мм силиконовой трубочки, все это плотно входит в гильзу. Датчики туда сюда не дергаю, живут в колонне, кубе ... пока не начинают выпендриваться.