Автор Тема: Логика за управление на помпа и хидравличен изравнител  (Прочетена 45439 пъти)

Неактивен EDM electronics

  • Global Moderator
  • Много Напреднал
  • *****
  • Публикации: 5 003
  • Z - Оркестър Вагнер
1. Първата стъпка на най-простия алгоритъм за навигация е да се направи корекция на магнитометъра да показва чист север. Корекцията става или с формули или с карта на магнитната деклинация, за района на Черно море корекцията е около +4 градуса, но с това около ще ти даде голямо отклонение и затова като се знае позицията по формули или много подробни карти се прави корекция.
2. Прочитат се две точки на траекторията от базата данни (GPS данни), от тях се изчислява ъгъла по това направление спрямо севера.
3. Завърташ руля, така че движението да стане по това изчислено направление, като се следи коригираното показанието на компаса да сочи това направление.
4. Тъйкато лодката е в движение, тя ще се движи по това направление, но курса няма да е верен, ще се движи паралелно на зададения курс, затова се четат GPS данни от приемника. Повтарят се точките 2 и 3 с това показание и с втората точка от данните ти. Тази точка от алгоритъма се повтаря или до достигането на втората точка или до някаква приемлива грешка между реалния курс и зададеният.
5. След като се стигне точка 2, се взима точка 3 от данните за траекторията и се повтаря същото.
За по точен навигатор могат да се използват и данните от акслерометъра. Трябва да се има в предвид, че тези данни трябва много добре да се филтрират, с филтри с малко закъснение.
Това не го очаквах.  :)
Не допусках, че някой от форума може да знае нещо по въпроса, но виждам, че има доста запознат с тази тема, щом и се споменават филтри.
Благодарсо колега dmitarp :) Много ми помогна.

Алгоритъма който представяш ми се вижда логичен, да призная нямах още толкова ясна идея, какъв трябва да бъде. Не ми е ясно обаче, как от координатите на две GPS точки ще определя отсечка, която съпоставена със севера, ще ми даде азимута. Но не съм и добре запознат все още с тая геометрия. Трябва да се пообразовам по въпроса.

Иначе за датчиците е точно така както казваш, значи си се занимавал?  :D
Прави се първо калибровка и после се поставя цифров филтър за средна стойност, да се премахне дребезга на датчиците. Ще ползвам филтър на Калман. Ще ползвам и комбиниран датчик за абсолютна ориентация, защото е по-стабилен от магнитометъра. Магнитометъра променя показанията, като се завърти по оста Z. Комбинирания отстранява този проблем с акселерометъра.

Не разбрах и накрая какво искаш да кажеш: да е малко закъснението на филтъра, т.е да е по-бърз или да има закъснение, да няма рязкост на показанията?

Неактивен epwpixieq-1

  • Сериозен Експериментатор
  • Много Напреднал
  • ****
  • Публикации: 2 029
  • Пол: Мъж
  • e^(π*ι)+1=0
Има друг проблем - котела и горелката също са инертни. Нямам гаранция че котела ще подава винаги една и съща температура., т.е. Т1 не е константа.
Променливостта на температурата на флуида от котела не виждам да е голям проблем, въпреки че определено прави "люшкането" в системата още по-силно. При положение че е възможно да се предположи че температурата на флуида от котела винаги ще е по-висока от температурата във съда, то променливостта единствено (предполагаемо) ще влияе върху това дали вие имате контрол и върху "силата" на горелката, като предполагам че контролирате скоростта на помпата.

Това което е основно в моя коментар, както вече сте забелязали, имайки в предвид въпроса ви, е че на база на "скоростта на промяна" при историята на температурата за даден интервал от време, вие теоретично (според мен) можете да минете само с един датчик.  Практически, при голям съд, и възможност за образуване на сравнително висок термопотенциал (като при сравнително еднородна температура на флуида това е излишно), един датчик в по-долната част и един в по-горната ще са необходими. С тази история на моментната промяна на температурите (от един или два датчика) вие всъщност имате това което бихте получили като история при диференциал на данните от 4-те датчика.  Въпроса е че при диференциал вземан директно от температурата на водата от едно (или две места) грешката може да дойде само от един (два) датчика, като единствено трябва да се напише логиката на алгоритъма как да се влияе помпата (и потенциално горелката) при определена скорост на нарастване или намаляване на температурата за избрания за наблюдение интервал от време. И тук трябва да се вземат под внимание характеристиките на горелката и на помпата за да се вложи в алгоритъма и тяхната "инертност'. Но важното при този модел е че вие само с една променлива времето на този интервал можете да оптимизирате решенията си като давате възможност на системата да взема по-плавни или по-бързи решения. И точно това е тънкия момент тук на настройките, с който вие предполагам сте до болка запознат.

Неактивен Радико

  • Много Напреднал
  • *****
  • Публикации: 7 263
  • Пол: Мъж
  • Потребителя не съществува
    • http://martinov-radiko.blogspot.com/
  • Скайп: radiko1a
Това не го очаквах.  :)
Не допусках, че някой от форума може да знае нещо по въпроса, но виждам, че има доста запознат с тази тема, щом и се споменават филтри.
Благодарсо колега dmitarp :) Много ми помогна.

Алгоритъма който представяш ми се вижда логичен, да призная нямах още толкова ясна идея, какъв трябва да бъде. Не ми е ясно обаче, как от координатите на две GPS точки ще определя отсечка, която съпоставена със севера, ще ми даде азимута. Но не съм и добре запознат все още с тая геометрия. Трябва да се пообразовам по въпроса.

Иначе за датчиците е точно така както казваш, значи си се занимавал?  :D
Прави се първо калибровка и после се поставя цифров филтър за средна стойност, да се премахне дребезга на датчиците. Ще ползвам филтър на Калман. Ще ползвам и комбиниран датчик за абсолютна ориентация, защото е по-стабилен от магнитометъра. Магнитометъра променя показанията, като се завърти по оста Z. Комбинирания отстранява този проблем с акселерометъра.

Не разбрах и накрая какво искаш да кажеш: да е малко закъснението на филтъра, т.е да е по-бърз или да има закъснение, да няма рязкост на показанията?

Разгледай това ако искаш:
https://github.com/mikalhart/TinyGPSPlus 

И между другото във библиотеките с които ардуиното комуникира с датчиците филтрите са си заложени. Ще ти трябват филтри ако създаваш собственна оригинална библиотека.

Неактивен juliang

  • Заинтригуван
  • Много Напреднал
  • *
  • Публикации: 7 019
Променливостта на температурата на флуида от котела не виждам да е голям проблем, въпреки че определено прави "люшкането" в системата още по-силно. При положение че е възможно да се предположи че температурата на флуида от котела винаги ще е по-висока от температурата във съда, то променливостта единствено (предполагаемо) ще влияе върху това дали вие имате контрол и върху "силата" на горелката, като предполагам че контролирате скоростта на помпата.
Имам чувството че не схващаш идеята на този изравнител... В него реално няма някакъв смислен обем вода. В моя случай най-вероятно "съда" ще е една тръба ф200 или 250 мм с височина 1 метър. В нея с мъка ще влезнат 20 литра вода. Това количество помпата го превърта за 2-3 секунди...
Идеята на този дивайс е да се развържат дебитите. Имаш една котелна помпа, и 10 помпи на консуматорите. Ако няма този изравнител, всяко пускане на помпа на консуматор прави вакуум след помпата на котела, защото тя е много по-голяма и съответно много по-инертна. Спирането е още по-зле - голямата помпа се опитва да натика една вода в инсталация, през която вече не може да мине това количество, и оставащите работещи помпи стават генератори.
А когато имаш изравнител, при спиране на консуматорска помпа котелната може да превърта малко дебит през него. При пускане пък ще се превърта малко студена вода.
Ако помпата няма управление, единствения начин за гарантиране на постоянно подаване на топла вода е котелната помпа гарантирано да има по-голям дебит от възможно най-голямата консумация която биха имали консуматорите. Т.е винаги да има някакъв безмислен поток между Т1 и Т3. Пък консуматорите колкото си дръпнат.... Ей така:

Но това е съпроводено със загуби на топлина и с безмислено харчене на ел. енергия. Идеята е възможно в най-голям период от време да се работи в първия режим:

Да, като се спре консуматор за малко ще сме във втория, като се пусне за малко ще сме в третия ...
Но пак повтарям - изравнителя изравнява дебити, в него не се съхранява топлина, той не е акумулатор. Няма обем за това.
Точно поради тази причина и не ми трябва PID или PD регулатор конкретно в тази програма, не че нямам няколко готови и един дет си го писах аз. Няма какво да се предвижда при едно такова управление. Не мига да предвидя кога някой ще отвори кран или ще пусне помпа откъм консуматорите, за да действам превантивно. А отвори ли го ... промяната настъпва за секунда-две - за колкото могат да отчетат сензорите (затова и ще ползвам платини, дето са директно потопени във водата, а не разни никелови сенозри, дет се слагат в сух джоб на тръбата...)

Неактивен mind

  • Сериозно Активен
  • ***
  • Публикации: 382
juliang, бях ви писал по-рано, това което може да направите само с 4 сензора е да следите ΔT на Т1-Т3 и Т2-Т4 да не мърда. При намаляване на консумацията под някакъв праг се следи само Т1-Т3 да остане помпата в "авариен" режим на някакви минимални обороти.
Да следите Т1-Т2 и Т3-Т4 не е много удачно, нямате толеранс, разликите са десети и флуктоациите на потока могат да внесат значителни грешки. А това, че Т2 ще има моменти в които ще е по-високо от Т1 не може да се случи (не че има значение).

По-доброто решение е, ако се знаят и следят дебитите и консумацията на помпите общо, да съвпадат с тази на котелната, но както казахте - врътва лелката крана да мие пода и ойде цялата логика  :)

Неактивен Иван Димов

  • Експериментатор
  • Сериозен
  • ***
  • Публикации: 1 048
  • Пол: Мъж
  • Невъзможно нещо е да докажеш, че нещо е невъзможно
   juliang, прочети какво съм писал тук -
Re: Микрочастиците - самонавиващи се часовничета с топлината от Нулевата точка
« Отговор #57 -: Днес 19.03.2019 в 01:02:49 pm »

   Има аналогия между формулите в термодинамиката и електромагнетизма. Така разликата в температурите на топлата и студената тръба на радиатора може да се разглежда като топлинно напрежение dT. Топлинният ток пък е просто дебитът Ф. Като умножим ток по напрежение и получаваме мощност. В термодинамиката е същото само трябва да внимаваме в мерните единици.
   Сега за нашата схема - прилагам моя рисунка. Следим температурната разлика dT вход - това е разликата в температурите на топлата и студената тръба към котела. Следим и температурната разлика dT изход - това е разликата в температурата на топлата и студената тръба откъм радиатора. Ако входното и изходното dT са различни, то трябва да са различни и потоците Ф вход и Ф изход. И то точно според формулата най-горе на картинката, а именно:
    Ф вход . dT вход = Ф изход . dT изход
   А ако се отвори кранът най-вдясно за топлата вода, тогава от водопровода в котела ще влезе студена вода и тогава се предполага, че горелката автоматично ще се засили.
п. п. А този топлообменник-изравнител е нещо като трансформаторите в електромагнетизма. Имаме първична намотка откъм котела и вторична намотка откъм радиатора. И първичната входна мощност трябва да е равна на вторичната изходна мощност. И това най-лесно се смята като умножим ток по напрежение на входа и го приравним на ток по напрежение на изхода. Само че не ток по напрежение, а поток Ф по топлинно напрежение dT.

Неактивен Радико

  • Много Напреднал
  • *****
  • Публикации: 7 263
  • Пол: Мъж
  • Потребителя не съществува
    • http://martinov-radiko.blogspot.com/
  • Скайп: radiko1a
Иван Димов така както си го нарисувал изглежда, че съдът е топлообменник.  Въобще не е така. ако направим някаква аналогия със електрическа схема този съд може да го разглеждаме като уинстонов мост:

само дето схемата трябва да се завърти на 90 градуса.

Неактивен epwpixieq-1

  • Сериозен Експериментатор
  • Много Напреднал
  • ****
  • Публикации: 2 029
  • Пол: Мъж
  • e^(π*ι)+1=0
Имам чувството че не схващаш идеята на този изравнител...
...
Но пак повтарям - изравнителя изравнява дебити, в него не се съхранява топлина, той не е акумулатор. Няма обем за това.
Тук сте прав, представях си че гоните друга цел, като мислех че съда е някакъв буфер.

Имайки в предвид тази схема съм съгласен че можете да минете теоретично с два датчика следящи за разликата в температурите, единия на входа на бойлера и другия на входа към консуматорите да не пада под определени параметри (разликата трябва да е максимално възможна), като логиката е, че падайки под опредлено ниво имате дисбаланс на динамиката представена в първия случай.
« Последна редакция: Февруари 01, 2020, 10:56:30 pm от epwpixieq-1 »

Неактивен Радико

  • Много Напреднал
  • *****
  • Публикации: 7 263
  • Пол: Мъж
  • Потребителя не съществува
    • http://martinov-radiko.blogspot.com/
  • Скайп: radiko1a
Аз го виждам така:
следиш Т1 и Т2 да има някаква минимална разлика в температурата. при увеличение на разликата което значи, че консуматорите дърпат по голям дебит от колкото дава котела се подава сигнал за увеличаване на оборотите. също така се следи разликата в температурите на Т3 и Т4 когато се повиши тази разлика означава, че намалява консумацията и котела започва да върти на байпас подава се сигнал за намаляване на оборотите.
как ти се вижда това решение на проблема.
От чиста спортна злоба:
единият сензор може да бъде спестен примерно Т4
следи се промяна в разликата Т1,Т3 и Т1,Т2. Ефекта е същия със един сензор по малко.

Неактивен juliang

  • Заинтригуван
  • Много Напреднал
  • *
  • Публикации: 7 019
От чиста спортна злоба:
единият сензор може да бъде спестен примерно Т4
следи се промяна в разликата Т1,Т3 и Т1,Т2. Ефекта е същия със един сензор по малко.
И как ще различа 1 от 2 случай на горната картинка? Консуматорите не винаги ми връщат констатно студена вода, и само Т3 не е меродавно за това дали въртя на байпас или просто ми връщат малко по-топла вода. Някои консуматори връщат 90 градуса, други - 60, зависи и дали оборудването вече е загрято или току-що е измито със студена вода...

Да, мога да работя на принципа на ламбда сондата на колата - да намалявам дебите на помпата докато не почна да връщам студена вода към консуматорите (Т2 < Т1), после да качвам докато Т2 = Т1, после пак да почвам да намалявам докато Т2 < Т1, но ... защо да причинявам това на помпата и на потребителите? За една платина от 100-тина лева...

Неактивен Радико

  • Много Напреднал
  • *****
  • Публикации: 7 263
  • Пол: Мъж
  • Потребителя не съществува
    • http://martinov-radiko.blogspot.com/
  • Скайп: radiko1a
Винаги ще имаш някаква несигурност в цялата работа. този начин на контрол въобще не може да се нарече най елегантното решение. При положение, че си писал, че съдът ще дойде, демек ще бъде направен по поръчка а не се ползва нещо съществуващо вече то, определено има по лесно и прецизно решение. аз бих поискал да монтират по средата на съда един фланец вътрешен, играещ ролята на бленда. и ще поставя един диференциален манометър следящ налягането от двете страни на блендата. От там насетне мисля всичко ти е ясно няма какво да ти обяснявам. но за останалите, някои от които не са наясно:
ако помпата на котела върти повече от необходимото манометъра ще отчете повишение в горната част на съда. Ако помпите на консуматорите въртят повече от главната помпа ще има повишение на налягането в долната част на съда. Просто и елегантно решение.
Примерно нещо като това:
http://control-hvac.com/transmiter-za-diferencialno-naljagane.html

Неактивен juliang

  • Заинтригуван
  • Много Напреднал
  • *
  • Публикации: 7 019
Да, вероятно иима и други решения освен това. А и не знам колко ще струва такъв уред, който да мери 1 или 10 паскала разлика при налягане от 3 бара в системата. Не ми се иска и да слагам някаква преграда, защото при първоначален пуск и загряване на котела помпата работи на 100%, а консуматорите са изключени до достигане на работна температура.

Неактивен Радико

  • Много Напреднал
  • *****
  • Публикации: 7 263
  • Пол: Мъж
  • Потребителя не съществува
    • http://martinov-radiko.blogspot.com/
  • Скайп: radiko1a
уреда от горния линк има дадена цена. Преградата не е необходимо да е с диаметър по малък от диаметъра на тръбите на входовете и изходите. този начин на измерване на дебит е масова утвърдена практика по тецове вецове химически заводи и къде ли не още.
http://control-hvac.com/pub/media/wysiwyg/file-page1.jpg
това е описанието.
има и един друг със три обхвата според нуждите.
е тука вторият:
http://control-hvac.com/senzori-datchici-preobrazuvateli/senzori-za-naljagane.html

Неактивен juliang

  • Заинтригуван
  • Много Напреднал
  • *
  • Публикации: 7 019
Най-"тежкия" е за 20 000 паскала, т.е. 200 милибара. Аз имам 3 бара в системата. Работната му температура е до 60 градуса, аз имам понякога 105.
Разбери, дори 0.1 м/сек вертикален поток за мен вече е проблем. Ти смятай каква диференциална разлика ще има при такъв поток при отвор 100 мм.
Разбираш ли ... при налягане от 3 бара е много трудно, да не кажа невъзможно да отчиташ диференциално налягане от 1 паскал. Да, има доплерни дебитомери, но ... там вече говорим наистина за големи пари.
Да, бих могъл да сложа в средата нещо като предпазен вентил ф100 и байпасна тръбичка ф10, да следя потока през тръбичката с лопатков дебитомер (тип "водомер"), а големия дебит да отваря вентила ф100 и да пуска потока... но защо по дяволите да изобретявам такъв Франкещайн като от десетилетия се ползва хидравличния изравнител в този му вид? Аз просто искам да го направя малко по-интелиентен. Ако щеш - искам да ми покзва 4 цифри и огняра с една врътка да регулира ръчно помпата, или да отвива и завива един кран с който да регулира дебита.

Неактивен ppipilica

  • Сериозно Активен
  • ***
  • Публикации: 417
  • говори на жаргон и пише на "старобългарски"
Една идея да ти дам. Що ще ползваш температурни датчици да регулираш главната помпа, не е ли по-лесно да ползваш сигнал от помпите на консуматорите. Те са при котела предполагам нали, е ако е така е лесно. Една помпа тръгва и главната си вдига леко оборотите, тръгва и втора още малко вдига и така докато работят всичките и главната е на максимум. Ако не са еднакви, някой консуматор иска повече топло, ще предвидиш тая помпа да вдига повечко оборотите на главната.