avatar_Игорь

Малюк та Карлсон. Останні зміни.

Автор Игорь, 14-05-2022, 11:49:14

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

ИгорьTopic starter

Малюк та Карлсон по суті однакові пристрої, різниця між ними лише в кольорі кнопки :) та у конструкціі силовой частини. Малюк керує насосом 12 вольт, Карлсон - вентилятором 220 вольт.
Єдина відмінність у алгоритмі - карлсону зовсім не потрібні оберти в режимі очікування, але це слабий привід робити для нього окрему прошивку. Тому нова прошивка буде загальною для Малюка та Карлсона, а вибирати тип пристрою буде сам користувач.


В "інших" налаштуваннях (під трьома крапками) з'явилось багато змін.
[attach=1]
Йдемо згори донизу.
Спочатку пункт "Режим". Завдяки йому користувач сам вибирає назву пристрою.
Нижче - номер пристрою (від 1 до 9). Буде корисним якщо використовується два чи більше однакових малюків чи карлсонів. Якщо змінити тип та підтвердити зміни, пристрій перезагрузиться вже з новим ім'ям. Аналогічне ім'я буде мати точка доступу, що пристрій підійме.
Далі вже знайомі налаштування - оберти при відмові або відсутності датчика, та в режимі очікування. Нагадаю, що оберти очікування треба робити нульовим не тільки для керування вентилятором, а й  для керування дефлегмацією.


Далі  - три галочки з малозрозумілими назвами.
Пендель - це тимчасова назва втручання в режим ПІД, що дозволяє якщо не позбутися ефекту першого зашкалу температури, то суттєво його зменшити.
В чому суть.
Кому не цікаво - минайте синій текст.
При класичному алгоритмі ПІД, перший зашкал, тобто превищення температурою завданного порогу, неминучій.
Дивіться... Якщо у ході процесу температура зафіксувалася на завданному рівні (а це - наша мета), то помилка нульова, тому є нульовою і  пропорційна складова. Температура не змінюється, тому є нульовою й диференційна складова. Але ж оберти не нульові, отже остання складова - інтегральна - не дорівнює нулю, а має додатне (тобто плюсове) значення.
Про що це свідчить?  Інтегральна складова збільшується тільки тоді, коли є додатня помилка, тобто для того, щоб наш процес стабілізувався, температура мусе деякий час протриматись вище завданної величини.  Іншого варианту ПІД не передбачає.
Тому я й придумав "пендель" або копняк :)
Коли температура вперше перетинає рівень завдвння, інтегральна складова дорівнює нулю (по классиці - навіть є від'ємним).
Саме в цей момент я даю йому копняка - примусово роблю интегральну складову такою, щоб оберти дорівнювали обертам при аварії.
Оберти міттєво ростуть, зашкал або трошки зменшується, або зупиняється, або температура стрімголов падає. Це залежить від "сили пенделя".
Нажаль, у минулій прошивці я припустився помилки, сила пенделя завжди була занадтою. Зараз я, здається, цієї помилки позбувся.
Зробив так, що налаштування аварійних обертів (а це і є сила пенделя) автоматично підлаштовується в той час, коли температура гарно стабілізувалась.
В результаті "сила копняка", тобто аварійні оберти,стають саме такими, як потрібно  в цих умовах роботи. Це дозволяє не тільки оптимізувати копняк, а й покращити роботу в разі якщо датчик перестане працювати.
 
Отже, дозвіл на Пендель дозволяє зменшити початковий зашкал, а автокорекція пенделя покращує його, робить його силу оптимальною. Тому якщо будуть проблеми з цим пенделем, або не сподобається автопідлаштування аварійних обертів, можна вимкнути їх у налаштуваннях. 

I ще... якщо наступний сеанс роботи пристрою передбачаеться в значно інших умовах, ніж попередній, є сенс змінити силу пенделя (тобто аварійні оберти), привести їх у відповідність з звичайними робочими обертами в таких умовах.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

ИгорьTopic starter

#1
Наступна зміна, що потребує уваги, це можливість не тільки дистанційно бачити основні параметри процесу, а й отримувати термінові сповіщення якщо щось пішло не так.
Для цього треба підключити пристрій до роутера та завантажити на смартфон додаток, що розробив колега ivan_fd. Згодом я дам посилання на гілку обговорення цього додатку. А зараз - те, що треба налаштувати на Малюку чи на Карлсоні.
Налаштування сповіщення сидять під кнопкою "Аlarm", вона друга з правого боку.
[attach=1]
Якщо сповіщення не активоване, віконце має такий вигляд.
[attach=2]
Якщо активізувати сповіщення, відкриваються додаткові налаштування.
[attach=3]
Це три причини, що викликають вповіщення, з ними, вважаю, все ясно.
Ще є два віконця, на яких я закцентую увагу.
Перше - це ідентификатор пристрою. Завдяки йому сервер буде знати куди саме надсилати сповіщення. Цей ідентификатор треба буде переписати в налаштування додатку.
Увага! Змінити ідентифікатор на свій розсуд не вийде - сервер не прийме не валідний ID. Якщо ідентификатор буде змінений випадково - з`явиться кнопка, що дозволить повернути старий ID.
[attach=4]
Останній пункт треба теж переписати в налаштування додатку. Кому стане цікаво, хто має власний сервер - можна буду переселити обслуговання сповіщення на нього.


Є невеличкі доповнення у налаштуваннях вайфай - з'єднання.
Якщо замість імені роутера поставити три мінуса, пристрій не буде при старті витрачати час на встановлення зв'язку.
Якщо роутер використовується без паролю, то в віконце пароля треба написати таке...
111bez111
Все це написано у вкладці WiFi.
[attach=5]


Останнє що потребує уваги, це поведінка таблиці.
Коли таблиця має більше рядків, ніж може вміститися на екрані, з'являється можливість прокрутки.
Якшо повзунок прокрутки дотягнути донизу, то прокрутка буде відбуватись автоматично, на таблиці завжди будуть останні рядки.
Якщо змістити прокрутку з нижньої позиції, нові рядки будуть додаватися позв межами видимої частини екрану. 



Iнші налаштування суттєвих змін не зазнали... але мені ще писати та писати.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

ИгорьTopic starter

#2
Нове у роботі з пристроєм.
Може десь вже викладав...
При включенні пристрій намагається підключитись до роутера (якщо у назві не три мінуси). У разі успішного підключення процес виглядає так...
Тут приховано відео.
Для підключення до пристрою, достатньо на телефоні або на компі, що підключений до того самого роутера, в браузері набрати IP-адресу, що світиться на екрані. Цей спосіб зручний тим, що дозволяє спостерігати за процесом не відключаючись від інтернету.


Якщо підключення не відбудеться, процес виглядає ось так.
Тут приховано відео.
Підключитись по пристрою в такому разі можна, обрав точку доступа "малюк" або "карлсон", та написав у браузері IP 192.168.4.1, тобто ту адресу, що в цей час світиться на екрані.
Нагадаю, що навіть якщо пристрій підключився до роутера, власна точка доступу теж працює, а доступ через неї завжди працює.


Після того, як пристрій або під'єднався, або не під'єднався до роутеру, пристрій починає виконувати свою роботу, але картинка не екрані не змінюється, бо користувачеві треба побачити айпішник.
Щоб перейти к робочому відображенню, треба натиснути кнопку. Це перша функція кнопки.


Далі. Як показала практика, постійна робота екрана на повній яскравості призводить до деградації пікселів. Тому через деякий час після останнього натискання копки, або користування крутилкою, яскравість зменшується. Друга функция кнопки - це вивід екрана з економного режиму.
Третя функция - це перемикання екрану з режима відображення температури на режим показу графіка, та назад.


НОВЕ. При відсутності чи псуванні датчика температури, оберти насоса чи вентилятора переводяться на аварійні налаштування, а на екрані з'являлися знаки питання, а крутилка продовжувала змінювати налаштування температури.
Зараз за 5 секунд після вимикання датчика, коли насос переходить на аварійні оберти, на екрані замість температури світяться цифри обертів, а крутилка дозволяє їх змінювати. Це зробило дуже зручною роботу в ручному режимі стабілізації обертів.


Ще нове.
Всі пам'ятають спосіб зміни налаштуваннь за допомогою крутилки? Згоден, це було не дуже зручно. Час забувати. Зараз все по іншому.
Доки крутилка не дісталася до країв, налаштування температури (обо аварійних обертів) йде звично. Крутиш - змінюється, запинився - стало. Але коли крутилка дійде лівого чи правого краю, покази починають бігти, і щоб їх зупинити, треба змістити крутилку від краю. Тут приховано відео.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

ИгорьTopic starter

Далі. Дуплети на черзі. Бо помилка в них така сама, як і в малюках. Двічі.
Фанкойли, графіки яких можна дивитись на сервері, помилки не мають,  але вони не мають i "чарівного пенделя".
Нова. безсерверна, версія Дуплета та Фанкойла на черзі. Замість вивода  графіка на сервер там будуть сповіщення через застосунок Iвана.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

ГОГа

Круто!
Я у захваті, як простий пристрій стає «навороченим». Супер!
Единственный "грех" на земле - это глупость

Beaton

 Цікаво!
А коли в продажі буде і чи буде?
Бо вже був сів програмувати ПІД регулятор для насоса 12в :)))
Розумію, що малюки - то як бензин, всі хочуть, але купити ніде, але з пальним хоч якісь анонси «покращення» з екранів чутно  O0 :angel: :P :P :P :P

vova0869

А можно будет циркуляционным насосом для систем отопления на 220 вольт управлять ?

ИгорьTopic starter

Забув написати про додатковий датчик температури. Його підключення  передбачено не тільки у нових, а й у вже працюючих пристроях. Його обслуговування запрограмоване, але без наворотів. Це просто додаткова цяцька, корисність якої я побачив вчора чи позавчора. Він ні на що не впливає, на графіку не відображається. Суто показометр. Його покази можна побачити лише на екранчику дрібним шрифтом, на веб-сторінці не відображується. Побачу необхідність - щось зміню.
На квладці налаштуваннь є його вмикання - вимикання. Це теж ні на що крім показів не впливає. Якщо увімкнути цю опцію не маючи датчика, він буде показувати три наки питання замість температури.
Якщо датчик буде стояти, а у налаштуваннях він буде відключений, його покази не будуть відображатись.
Як підключити датчик у вже працюючих екзкмплярах, покажу згодом.
І, нарешті, головне.
Файла прошивки досі нема по двом причинам.
По-перше, я ще не впевнився, що всі косяки знайдени та знищені. Але я не сильно переймаюсь, бо перепрошивка не викликає проблем. Знайдуться вади - виправлю.
По-друге, перепрошивка може зламати існуючі налаштування, їх мабуть треба переписати заздалегідь щоб відновити при потребі. Крім того, при першому запуску Малюк може може вимагати пін-код. Якщо він не написаний на корпусі, його можна буде отримати у мене, Малюк дасть номер мого телефону ;)

Цитата: vova0869 від 14-05-2022, 23:24:10А можно будет циркуляционным насосом для систем отопления на 220 вольт управлять ?
Власне кажучи, Карлсон має успішно керувати таким насосом, але треба перевіряти. Я таких перевірок не робив, але деякі спроби робів ЮраБарський. Запитай його.

Цитата: Beaton від 14-05-2022, 23:07:12А коли в продажі буде і чи буде?
Є проблема з блоками живленя. Я замовив десяток, вони прийшли в Україну 23-го лютого. Подальша їх доля досі невідома :) 
Ті блоки живлення, що я брав в Україні, у постачальника закінчились :(.
Тобто є, але розмір не той. Не лізе в мій корпус.
Я можу зробити Малюка для роботи з зовнішним блоком живлення. Один для колеги Serhiy зробив, але вже декілька тижнів не відправляю - доводжу до розуму прошивку. Вона мене вже задовбала. Але справа вже доходить щасливого кінця. :)
Якщо ти маєш насос та блок живлення - нема проблем.
Цитата: Beaton від 14-05-2022, 23:07:12Розумію, що малюки - то як бензин,
Ти про ціну :)
Ні, я не рвуся підіймати ціни. Але... Мушу визнати. Всі деталі добрали від 20 до 40 відсотків вартості. Але я маю деякі запаси, придбані по старих цінах, і не маю наміру накручувати на них. Але дещо доводиться купляти по новим цінам. Тому ціна буде зростати поступово.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

ИгорьTopic starter

У друге повідомлення додав декілька відео.
Щоб не перекривати пів-екрану, зробив яскраві кольорові посилання. Ось такі.
[attach=1]
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

ИгорьTopic starter

Зміна деяких налаштувань призводить до примусової перезагрузки пристрою.
Це...
- ім'я або пароль точки доступу (роутера);
- тип або номер приладу;
- ID або хост для додатку - сповіщення;
- перемикач сповіщення.
Тобто... Малюк (чи Карлсон) приймає та запам'ятовує нові налаштування, а потім перезагружається вже з новими параметрами.
Все решта - температури, коефіцієнти, "пенделі", тощо, сприймають зміни на льоту без зупинки роботи.
За годину викладу прошивку
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

ИгорьTopic starter

Нагадаю... Нова прошивка може призвести до втрати налаштувань. Замість "рідних" можуть з'явитись iнші.
Є сенс попередньо записати мінімум-максимум ШІМ та параметри свого роутера - ім'я та пароль. Коефіцієнти П,І,Д можна теж зберігти, але iх треба буде корегувати.
Далі. Після прошивки Малюк може запросити пін-код. На деяких малюках иа карлсонах я писав пін на зворотньому боці, Якщо ні - не проблема. Малюк повідомить мій номер телефону, я дам код.
Ось прошивка.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

ИгорьTopic starter

Про налаштування коефіцієнтів ПІД.


Дуже бажано притримуватись саме такого порядку.
По-перше, треба визначитись з мінімумом ШІМ. Для цього вмикаєм пристрій, під'єднуємось через внутрішню точку доступа, або через роутер, датчик температури не підключаєм.
Крутилкою накручуємо один відсоток обертів. Або встановлюємо на сторінці у аварійних обертах 1 відсоток. Насос чи вентилятор має крутитись на мінимальних обертах.
Треба знайти таку цифру мінімальних обертів, при якій насос чи вентилятор обертається дуже повільно, але надійно. Для насоса це зазвичай 150-200 одиниць, для вентилятора - 450-600. Це не догма, все індивідуально.
На черзі - максимум ШІМ. Для початку треба поставити максимум на 1024. Після цього треба повернути крутилку ліворуч, накрутивши 100%. Якщо оберти будуть занадто великими, максимум можна зменшити. Коли пристрій попрацює в реальному процесі, якщо робочі оберти будуть нижче 10-20%, треба буде максимум зменшувати
Переходимо до налаштування Кп - пропорційного коефіцієнта. Робити це треба в реальному процесі охолодження. При цьому Кі та Кд треба зробити нульовими, а температуру встановити на 15-20 градусів менше за звичайну. Для початку Кп встановимо явно завеликим, скажемо, 20 одиниць.
На браузері спостерігаємо за температурою.


[attach=1]


Швидше за все каринка буде такою...
Тобто буде ритмічно перетинати лінію завдання.

[attach=2]


Кп треба зменшувати. Це треба робите енергічно, широкими мазками. Раза в півтора-два.
Це призведе ло того, що крива перестане перетинати лінію завдання та переміститься вище за неї.

[attach=3]

Нарешті лінія стане трохи хвилястою. Тут треба зменшити зміни. Чим менше буде коефіцієнт Кп, тим вище за лінію завдання буде коливатись реальна температура. Це нормально

[attach=4]

Нарешті треба зупинитись на такому коефіцієнти, при якому коливання вже невеликі, не більше за пів-, чи за чверть градуса.
На цьому налаштування Кп можна вважати закінченим.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

ИгорьTopic starter

Тепер час братись за диференційну складову. Вона відповідає за гасіння коливань. Незалежно від того, є помилка чи нема, незалежно від того, перетнула температура порог, чи ні, диференційна складова розраховується однаково. Вираховується зміна температурі за один період, та множиться на коефіцієнт Кд. Тобто, якщо температура росте, ми додаємо обертів насосу, падає - зменшуємо. Мені довелось трохи пошаманити, розтягнути період керування, але це не суттєво. До справи.
Ми маємо температуру, що в невеличких иежах коливається трохи (чи значно) вище завдання.
Ми підбираємо Кд таким чином, щоб коливання зменшились. Починаємо з 0,5. Не буде змін - подвоюємо. І ще. І ще. Нарешті ми передамо куті меду. Це позначиться виникненням коливань перерегулювання. Це буде сигналом зменшити коефіцієнт.
Нарешті ми отримаємо майже ту ж картинку, але коливання температури зменшиться.
Пора братись за інтегральну складову.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

ИгорьTopic starter

Я вже трохи писав про інтегральну складову. Вона поступово накопичує частку пропорційної, й таким чином притягує температуру до лінії завдання.
мі зупинились на більш-менш рівній лініі, що сидить вище за завдання (саме тому для початкових налаштувань треба зтавити порог нижче за завданнч - щоб не нарватись на перегрів).
Тепер додаємо Кі - замість нуля робимо для початку один відсоток. Спостерігаємо на верхньому графіку за приближенням температури до завдання, а на нижньому - за зменшенням пропорційної складової та збільшенням диференційної.
Я нагадаю. Наша мета - ідеал - повне співпвдіння фактичної температури з завдвнням. При цьому помилки нема, тому пропорцийна - нуль. Коливань теж нема - тому й диференційна - нуль. Всі оберти містяться в інтегральної складової.
Тому зменшення пропорційной та збільшення інтегральної складовой - це норма.
Якщо процес притягання факту до завдання продовжується задовго, треба збільшити Кі. Теж широкими мазками.
Коли температура прийде до завдання, можливий перескок температури нижче. Це не страшно. Треба поспостерігати, коливання мають швидко заспокоїтись. Якщо коливання продовжаться, швидше за все це  інтегральне перерегулювання, треба зменшити Кі.
Майже все... Майже.
Ми вже дотягли температуру до занизького завдання. Саме час подняти завдання градусів на 15-20, поспостерігати за швидкістю підскока температури, за висотою зашкалу, за амплітудою коливаннь та за швидкістю їх затухання. Завдяки впливу диференційної складової, на фазі швидкого росту температури можуть буті призупинення росту. Це корисно, бо не дає температурі занадто розігнатися та нарешті - зашкалити занадто високо. Але ці призупинки не мають переходити на зниження. Якщо переходять - зменшуємо Кд.
Треба ще визначитись чи дозволити "пендель". Але трохи згодом.
Спочатку треба дати системі попрацювати в стандартних умовах , та коли температура стабілізується, запам'ятати фактичні оберти та встановити їх як аварійні. Пендель не дозволяти.
Потім зменшити налаштування градусів на 15-20, а коли температура зменшиться, повернути звичайні налаштування. Запам'ятати амплітуду та кількість коливань, що будуть передувати стабілізації. як нанижньому, так і на верхньому рівні.
Потім дозволити "пендель" та порівняти параметри вихода не режим без пенделя та з ним. Порівняти та зробити висновки про використання пенделя... чи копняка?
Потім
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

ИгорьTopic starter

#14
Нагадаю. Пенделем я назвал примусову накачку диференційної складової такими саме обертами, які приблизно потрібні для нормальної роботи в стабільному режимі. Першого разу ми приблизно їх побачили та ввели у налаштування аварійних обертів. А далі?
Далі можна доручити цю роботу малюкові. Він сам може відстежувати власну стабільну роботу, та потихеньку корегувати величину "пенделя". Для цього достатньо дозволити автокорегування пенделя.


Ну й на останок.
Я вже писав, що класичний ПІД має певні вади. Деякі з низ має усунути пендель. Але це не все.
Коли температура значно відрізняється від завдання, можна дозволити собі енергічне втручання, це дасть змогу швидко подолати великі помилки.
Коли мі вже близько до мети, енергічне втручання призводить до перерегулювання. Тому в алгоритмі я використав хитрість. Коли помилка стає менше за 2 градуси, пропорційна та диференційна складові зменшуються в два рази.
Ну все, здається, всі секрети розповів... Майже  :) 
Нш, не тому, що приховую, може щось забув...
Ну ось, наприклад. Пропорційну складову я обмежую плюс-мінус 70-ю відсотками, не дозволяю інтегральній складовій  бути від'ємною, "Пендель" вважаю необхідним не тільки один раз після пуску, а ще й тоді, коли температура відхилилась від завдання більш ніж на 5 градусів. Диференційна складова робиться рівній полусумі пенделя та існуючої складової
Ну й ще я хитро рахую базу для диференційної складової - накопичую п'ять циклів поспіль методом ковзної суми. 
Ну й корекция пенделя... Досить. Відчуваю, задовбав. :)

Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

SMF spam blocked by CleanTalk