Температура и давление в кофемашине
- Войдите на сайт для отправки комментариев
Чт, 30/03/2017 - 11:26
Здравствуйте товарищи. Мой уровень программирования начинающий.
Очень неспеша пишу программу автоматизации для кофемашины. Застрял на решении следующего вопроса:
На бойлере кофемашины установлен датчик температуры, с помошью которого я планирую поддерживать заданное давление в бойлере. Есть таблица зависимости температуры водяного пара и давления www.fptl.ru/spravo4nik/davlenie-vodyanogo-para.html
Задача- я задаю нужное давление P, контроллер расчитывает температуру T (в соответствии с таблицей) и поддерживает ее.
зависимость не линейная, мап не подходит.
График выглядит так
Подскажите как это можно реализовать?
Диапазон интересен от 70 до 115 градусов.
ну, и какое у тебя давление будет от 70 до 100 градусов - ответ:равное атмосферному.
реализовать - никак без ломания рецепта приготовления кофе.
например: наберёшь ты нужное давление и можно остывать до комнатной температуры.
вопрос: к чему это всё?
от 70 до 100 градусов манометр покажет от 0,3 до 1 бар давления, этот диапазон нужен для вывода информации на дисплей. выше 100 уже рабочая температура для бойлера, по сути я буду регулировать от 105 до 110 градусов, но задавать надо давление и видеть на дисплее его. вопрос как расчитать температуру имея давление (согласно таблице).
от 70 до 100 градусов манометр покажет от 0,3 до 1 бар давления
ты проверял?
я сомневаюсь - у тебя там вода герметично без воздушной подушки?
тогда это не кофемашина, а бомба получится - одно неверное движение и взрыв
Чето слабое давление, обычно заявляют типа 6-15 бар.
Чето слабое давление, обычно заявляют типа 6-15 бар.
Кофе готовят при давлении 9 бар.
Реч идет о паровом бойлере. там давление не превышает 1,5 бара.
Я бы хотел услышать пути решения вопроса не флуд о кофе.
Я бы хотел услышать пути решения вопроса не флуд о кофе.
я тебе ответил - ты себя убьёшь
Надеюсь благоразумные люди заглядывают в эту ветку.
Прошу помощи в математическом, программном решении задачи.
Надеюсь благоразумные люди заглядывают в эту ветку.
Прошу помощи в математическом, программном решении задачи.
да! все благие и разумные - сюда.
Надеюсь благоразумные люди заглядывают в эту ветку.
Прошу помощи в математическом, программном решении задачи.
да! все благие и разумные - сюда.
Помянем будущего новоприставленого?
Надеюсь благоразумные люди заглядывают в эту ветку.
Прошу помощи в математическом, программном решении задачи.
да! все благие и разумные - сюда.
Помянем будущего новоприставленого?
Иншаллах.
Реч идет о паровом бойлере
Хм, из него предварительно откачивается воздух? Т.к. давление 0,3 бара это ниже атмосферного давления (1,013 бар)
Хм, из него предварительно откачивается воздух? Т.к. давление 0,3 бара это ниже атмосферного давления (1,013 бар)
видимо, его датчик давления считает давление минус атмосферное.
Точно, я затупил.
Здравствуйте товарищи. Мой уровень программирования начинающий.
Очень неспеша пишу программу автоматизации для кофемашины. Застрял на решении следующего вопроса:
На бойлере кофемашины установлен датчик температуры, с помошью которого я планирую поддерживать заданное давление в бойлере. Есть таблица зависимости температуры водяного пара и давления www.fptl.ru/spravo4nik/davlenie-vodyanogo-para.html
Задача- я задаю нужное давление P, контроллер расчитывает температуру T (в соответствии с таблицей) и поддерживает ее.
зависимость не линейная, мап не подходит.
График выглядит так
Подскажите как это можно реализовать?
Диапазон интересен от 70 до 115 градусов.
ээ... а если очень неспешно, за чашечкой кофе, рассчитать нужную температуру T (в соответствии с таблицей), задать её контроллеру - и пусть поддерживает?
ээ... а если очень неспешно, за чашечкой кофе, рассчитать нужную температуру T (в соответствии с таблицей), задать её контроллеру - и пусть поддерживает?
это неспортивно - нужна формула
ээ... а если очень неспешно, за чашечкой кофе, рассчитать нужную температуру T (в соответствии с таблицей), задать её контроллеру - и пусть поддерживает?
Не наш метод!
а что уже напрямую измерять давление не интересно?
https://ru.aliexpress.com/item/foo/32622062762.html?spm=2114.10010208.1000023.10.wAMBXf
а что уже напрямую измерять давление не интересно?
я запретил.
ээ... а если очень неспешно, за чашечкой кофе, рассчитать нужную температуру T (в соответствии с таблицей), задать её контроллеру - и пусть поддерживает?
это неспортивно - нужна формула
тогда всё просто:
тогда всё просто:
расходимся - этот читер всё испортил.
тогда всё просто:
расходимся - этот читер всё испортил.
Какое там! С такой математикой все намного увлекательней. Правильность решения уравнения оцениваем по мощности взрыва бойлера.
Тут походу одна школота тусуется, поду на С++ форум, там бородатые дядьки в свитерах быстро раскатают все по полкам, а вы продолжайте взрывать бойлеры ))
Тут походу одна школота тусуется, поду на С++ форум, там бородатые дядьки в свитерах быстро раскатают все по полкам, а вы продолжайте взрывать бойлеры ))
Подобно вашей кофеварке работают и автоклавы стерилизационные. Там температура до 137С обычно. Задается температура стерилизации(например 121С или 134С) При 121 градусе водяной пар имеет давление ~1,2 Бара, при 134С-~ 2,1 Бара(приблизительно, точнее ,по-мойму, 2,04).Точно так-же и вам нужно задать температуру и давление пара будет соответствовать тому , что написано в таблице. Можно наоборот- задавать давление - и при достижении заданного давления температура должна соответствовать таблице.Конечно при нагревании до 102 гр необходимо стравить воздух из камеры . Иначе температура и давление не будут соответствовать.
На бойлере кофемашины установлен датчик температуры, с помошью которого я планирую поддерживать заданное давление в бойлере. Есть таблица зависимости температуры водяного пара и давления www.fptl.ru/spravo4nik/davlenie-vodyanogo-para.html
Задача- я задаю нужное давление P, контроллер расчитывает температуру T (в соответствии с таблицей) и поддерживает ее.
У вас есть датчик температуры . Так и задавайте температуру и контролируйте ее , а давление дополнительно визуально манометром смотрим или ,если есть датчик ,- контроллером.При изменении температуры на 0,1 гр - давление изменится незначительно . При изменении давления на 0,1 бара - температура может измениться на пару -тройку градусов..
Видимо задача не легко решается, буду тогда опираться чисто на показания температуры. Раз уж посчитать программным путем имея таблицу зависимости не просто.
чего ж непростого. просто линейно-кусочная апроксимация к примеру. Если уж формулу раскрутить страшно.
я как бы потому сюда и обратился что для меня это пока темный лес, про кусочную почитаю, спасибо за наводку
Читайте на здорове, токо ж смотрите чтоб в результате таки не отправится общатся с бородатым дядькой, только не в свитере, а в длинном белом. Нагревание жидкостей в ограниченом обеме в самоделках дело не безопасное.
Не учи отца… в программировании я не силен, но физику процессов и кофемашину прекрассно знаю. Мне нужны программные советы а не мамины переживания на пустом месте. К слову у машины есть пресостат для ограничения давления в бойлере и антивпкуумный клапан для спуска воздуха.
Кто ж тя знает, отец или школяр, а пятно кипятка на карму никому не хочется.
Мда странно. Ведь почему вода кипит при 100 градусах. Так наверно потому, что давление атмосферное. А вот повысьте давление в закрытой емкости вода будет кипеть при большем давлении. Почему емкость разрывается. Не потому что вода закипает, а скорее потому что закипеть не может из-за большого давления. Вот это давление и разрывает стенки. Так что поставьте предохранительный клапан на нужное давление и будет вам нужная температура. Вот только огонь надо убавить, когда начнет свистеть.
Я все ждал, что кто-то по делу ответит. Не судьба... Даже Евгений решил ответить реминисценцией к "Сказке о тройке".
----------------------
1. сама функция зависимости давления от температуры - имеет показательную форму. Но на это насрать в маленьком отрезке.
2. берем что-нибудь вогнутое, как на графике. Первый вогнутый многочлен: P = a*t^2 +b*t + c. Квдратный трехчлен, уж простите! ;)
3. Три неизвестных, значит нужно взять три уравнения. Это границы (70 и 120, если я правильно помню?) и что-то посередине. На свой вкус. Я бы взял точку не ровно по сердине, а ближе к концу, 100 или 105.
4. решаете систему из трех линейных уравнений - получаете полином 2-ого порядка (он же - вы не поверите! - "квадратный трехчлен"), интерполирующий вашу функцию.
5. можете проверить его на расхождения с таблицей, если они вас не устраивают, то берите 4 точки и третью степень и т.д.
6. Как опытный математик вам скажу, что, даже если вам не понравятся расхождения, я посоветую остановиться на второй степени, Вам точнее - точно нахер не нужно.
Я даже заикаться не стану про сплайн-интерполяцию. Там гладкость второго порядка обеспечивается, Вы ведь совсем не понимаете, что такое гладкость, и зачем она, если это не про женский зад? Ну и слава Б..гу! "Во многой мудрости - много печали".
короче в экселе есть возможность построить график по точкам. лучше со сглаживанием. а потом расчитать функцию из графика. эксель выдаст формулу, вставишь в код. гугли. зная формулу из температуры легко посчитаешь давление.
выберете 3 точки (P1,t1) (P2,t2) (P3,t3) Это уже известные величины . Осталось найти a,b,c
Система из трех линейных уравнений.
P1 = a*t1^2 +b*t1 + c.
P2 = a*t2^2 +b*t2 + c.
P3 = a*t3^2 +b*t3 + c. Решаем и получаем. Но это все упрощено. Можно подогнать к другой кривой. Можно решать методом наименьших квадратов. Так что если долго ковырять, то мозговую геморойку можно наковырять. Но как я сказал ранее: ТС ищет не решение проблему, нерешеную проблему, что бы забить на нее.
CTPAX, Вы бы написали, в чем именно у Вас проблемы.
Что касается зависимости давления насыщающих паров от температуры, то она имеет аналитическое выражение. Если мне не изменяет память - экспонента. У Вас какие-то проблемы с расчетом экспоненты?
Ладно, продположим, Вам хочется (непонятно, зачем, но раз хочется - чего уж) именно по таблице. Ну так делаете стандартную табличную функцию - и вперед. Лучше, конечно, сделать ее в логарифиах, а не как здесь предлагали - кусочно-линейной. Но если таблица подробная, то и кусочно-линейная подойдет. Но тогда по таблице лучше бинарный поиск. По поводу сплайна - соглашусь с wdrakula - не стоит, тем более, что это нефизично. А вот его оптимизма по поводу аппроксимации полиномом низкой степени не разделяю. Аппроксимирующая функция должна согласовываться с физикой. Поэтому в данном случае, если аппроксимировать - то экспонентой. А если делать табличную функцию - то в логарифмах.
Мда.
А зачем функция то? 70...120 градусов, игого 50 градусов. Там какое-то супер разрешение? Тык датчик вроде максимум что может - 0.1 градуса (также и по барам если пляшем от давления). So nah трехчлены-полиномы, только голову ломать. Запихал в массив и всё, EEPROM дешёвая...
Мда странно. Ведь почему вода кипит при 100 градусах. Так наверно потому, что давление атмосферное.
Ок, КЭП
Как Вы делали с массивом, не знаю, но, судя по Вашим впечатлениям, - неправильно.
Массив должен быть составной частью сеточной функции.
В Вашем случае нужно составить массив значений границ интервалов температуры. Для каждого из значений массива вычисляется соответствующее давление и находится его логарифм. Люгарифмы записываются в отдельный массив, размер которого равен размеру массива температур. Для вычисления давления:
1. находим интервал в массиве температур, внутри которого лежит нужная нам температура*,
2. линейной интерполяцией по значениям массива логарифма давлений в найденном интервале находим нужное нам значение,
3. экспоненцируем для получения значения давления.
* Если выбрана равномерная сетка, номер нужного интервала просто вычисляем. Если сетка неравномерная, и количество интервалов не более 20, ищем нужный обычным перебором. Если интервалов больше 20, ищем бинарным поиском.
В Вашем случае нужно составить массив значений границ интервалов температуры. Для каждого из значений массива вычисляется соответствующее давление и находится его логарифм. Люгарифмы записываются в отдельный массив, размер которого равен размеру массива температур. Для вычисления давления:
1. находим интервал в массиве температур, внутри которого лежит нужная нам температура*,
2. линейной интерполяцией по значениям массива логарифма давлений в найденном интервале находим нужное нам значение,
3. экспоненцируем для получения значения давления.
Принцип я понимаю, но для реализации этой схемы не достаточно опыта.
С формулами думаю будет проще, накопал такую https://planetcalc.ru/2161/
Кто-нибудь может ее разгадать в виде кода?
Вобще нужно бы сразу определится с требуемой точностью значения давления, затем посмотреть на погрешности измерения температуры. Таки подумать о давлении в бойлере при интервале 70-100С, а потом уже рассуждать с каким шагом массив нужен и достаточна ли квадратичная апроксимация.
Давление до сотых, рабочее будет 1,25 бара к примеру
решил делать через массив, а промежуточные значения высчитывать как в этой таблице эксель делается http://www.planetaexcel.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=237163&action=download
Продолжаю не понимать задачу.
СТРАХ, поясните (без программирования), пож. про кофе-машину.
Вам нужно одно конкретное давление поддерживать? или на разных этапах разное? или для разных кофе (кофий? кофиёв?) ?
Номинал задаете потенциометром/переключателем, или ещё как?
/2 Штирлиц, привет!
Была у меня любовь с автоклавами, сильная, но рне взаимная. Так там заданные температуры (108/112/120, рыба) держались по датчикам давления, оказалось, что точнее штатных pt100.
SLKH
Нужно поддерживать одно давление, пресостат это делает волнообразно (это тупо реле давление, замыкает сухие контакты). датчик температуры сможет держать давление постоянно на одном уровне (например с помощью ПИД регулятора) а пресостат останется в цепи как подстраховка.
так вот это давление иногда необходимо регулировать, снимая панели и залазия во внутрь машины (подкрутить пружину пресостата).
а давление необходимо высчитывать и выводить на дисплей, все бариста регулируют давление в бойлере, соотношение с температурой им не известно.
Кофемашина без панелей
Давление до сотых, рабочее будет 1,25 бара к примеру
решил делать через массив, а промежуточные значения высчитывать как в этой таблице эксель делается http://www.planetaexcel.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=237163&action=download
ну что там высчитывать?
вар1: предписать контроллеру держать температуру 106 цельсиевых градусов (что соответствует 1,25б). всё.
если на разных этапах нужны разные величины:
вар2: предписывать держать разные температуры. про давление вообще ничего ему не говорить, при отсутствии соотв. датчиков оно ему нафиг не нужно.
Ну да. Учитывая что при 105С будет 1,21Бар то задавать давление до сотых - значить держать температуру до 0,2С что не так просто, но решаемо.
В итоге - массив температур на 30 элеменотов от 1,00Бар до 1,29Бар для определения температур до десятой даже. Пусть 1,00Бар -100,0С, 1,01Бар 100,2С 1,02Бар -100,5С
const byte T_p[]={0, 2, 5,...}
и типа T=100.0+0.1*T_p[(int)((P-1)*100)]
А еще логичней сразу держать давление и температуру в форме с фиксированой точкой.
До 1,69Бар что соответствует 115С - надо всего 70 байт масива. Элементарно!
SLKH
Нужно поддерживать одно давление, пресостат это делает волнообразно (это тупо реле давление, замыкает сухие контакты). датчик температуры сможет держать давление постоянно на одном уровне (например с помощью ПИД регулятора) а пресостат останется в цепи как подстраховка.
так вот это давление иногда необходимо регулировать, снимая панели и залазия во внутрь машины (подкрутить пружину пресостата).
а давление необходимо высчитывать и выводить на дисплей, все бариста регулируют давление в бойлере, соотношение с температурой им не известно.
Что и предполагалось: на самом деле задача совсем другая, чем была заявлена - т.е. надо выводить на какой-то индикатор табличное значение давления, соответствующее измеренной температуре.
вариант прямой:
объявляем/заполняем байтовый массив: 21 элемент; значения - округленные до целых килопаскали из таблицы; диапазон 0-120 град.
если тепература (целые град. цельсия) больше 99, выводим на дисплей элемент массива с номером (t-100).
с точкой в первом знакоместе видим результат в барах.
всё.
Да уж, я не кофеман, но заварить кофе в турке, в мелкой галечке такой кайф, не то, что от бездушной машины