Что-то у меня не то с твоими вычислениями на давлении 50 тор. То-ли я накосячил, то-ли у тебя бага.Rudy
У меня вот что получается - см. скриншоты во вложении. А у тебя что?
van_Laar_Arduino_50mmHg.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.van_Laar_Ubuntu_50mmHg.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.
Rudy
Академик
Питер
5.8K 1K
Отв.161 18 Дек. 16, 19:39 (через 50 мин)
Ага, проверил и нашел свою багу - стоял вызов не той функции. Посмотрел разницу с VLE-саlc (в отдельных точках) - вроде довольно прилично, по температуре порядка 0.5*С, по концентрации в паре - несколько сотых (молярная доля).
Но, по скорости, получается довольно медленно за счет поиска корня. Большой разницы с интерполяцией нет.
Добавлено через 3ч. 29мин.:
Может ты знаешь. Можно конечно самоучитель по VBA скачать... Но сам понимаешь...Чапаев1945, 18 Дек. 16, 18:40
Лучше скачать. Т.е. я что-то могу нарисовать в VBA, но его логика со мной абсолютно несовместима. За каждую запятую приходится бороться с матом и дикими затратами времени. Нужно несколько дней, чтобы перекосячить мозги на этот кретинизм.
Чапаев1945
Научный сотрудник
Петрозаводск
1.9K 1.4K
Отв.162 18 Дек. 16, 23:48
Rudy, понятно))) Тогда это на период свободного времени отложу. Сейчас в цейтноте полном. Смысл этого действа представляю, стратегию тоже, а вот воплощение и детали, нужно глянуть литературу. Еще раз повторюсь - языками не владею, поэтому буду с нуля))) Но... придется
За каждую запятую приходится бороться с матом и дикими затратами времени.Rudy, 18 Дек. 16, 19:39
ибо не привык к другому языку и буду воспринимать этот как базу))) Когда писал моды к любимой игре, разобрался в коде. Тут тоже постараюсь. Тебе же спасибо за помощь. У нас просто очень разный уровень, я влезаю в область мне абсолютно несвойственную, но вот ведь парадокс необходимую... Поимей немного терпения и направь если пойду не тем путем)))) Пока тогда основной буду иметь тему по уточнению К рект. А остальное второй эшелон.
Esc
Профессор
Москва
2.2K 2.2K
Отв.163 16 Янв. 17, 11:18
... Во вложении варианты утилит для расчета концентрации спирта в паровой фазе и температуры кипения для бинарной смеси этанол - вода в зависимости от спиртуозности жидкой фазы и давления... ... скетч для ардуинок... ... Проверял на UNO... ... неплохо, если бы кто-нибудь попроверял на других моделях...OldBean, 18 Дек. 16, 16:14
И на других модельках ардуинок, табличка для 50мм.рт.ст. бьется с твоей. Zaymnaya_tablica. Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.
... И написал бы, если что не так...OldBean, 18 Дек. 16, 16:14
Сущий пустяк, ... лишняя "фи" в имени математической функции возведения в заданную степень.
Добавлено через 13мин.:
Еще бы понять, как это применить на практике?
OldBean
Доцент
Красноярск
1K 1.4K
Отв.164 17 Янв. 17, 05:24
Esc, спасибо за информацию! В обычном Си буква f в конце функции из стандартной библиотеки (с math.h) подразумевает линковку функции с типом float, а без буквы - double. Видимо разработчики ардуино еще что-то лишнее наворотили? Для упрощения жизни одним программистам и усложнения другим :)))) А что, powf не линкуется?
Еще бы понять, как это применить на практике?Esc, 16 Янв. 17, 11:18
Можно попытаться реализовать алгоритм управления ректификацией по спиртуозности. Ну, для начала, может быть что-нибудь типа старт-стопа, только не по температуре, а по спиртуозности флегмы в нижней части колонны. Правда не знаю что из этого получится - сам еще не пробовал. Пока только такие совсем "сырые" задумки.
Kotische
Академик
Саратов
8.1K 2.6K
Отв.165 17 Янв. 17, 05:43 (через 20 мин)
В обычном Си буква f в конце функции из стандартной библиотеки (с math.h) подразумевает линковку функции с типом float, а без буквы - double.OldBean, 17 Янв. 17, 05:24
С буквой f - float, С буквами lf - double, Без букв - integer. Не?
Esc
Профессор
Москва
2.2K 2.2K
Отв.166 17 Янв. 17, 09:39
Видимо разработчики ардуино еще что-то лишнее наворотили? Для упрощения жизни одним программистам и усложнения другим ))) А что, powf не линкуется?OldBean, 17 Янв. 17, 05:24
Угу. "Ардуиновский" компилятор понимает встроенную функцию pow. Oshibka_powf. Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы. powf для него банальная переменная. А раз она не объявлена в нужной области - компилятор ругается.
Добавлено через 2ч. 15мин.:
Можно попытаться реализовать алгоритм управления ректификацией по спиртуозности. Ну, для начала, может быть что-нибудь типа старт-стопа, только не по температуре, а по спиртуозности флегмы в нижней части колонны. Правда не знаю что из этого получится - сам еще не пробовал. Пока только такие совсем "сырые" задумки.OldBean, 17 Янв. 17, 05:24
Я попробую пофантазировать, а ты да линейкой по моим шаловливым ручкам. Идет?
В твою утилитку с соответствующих датчиков вводим: • Атмосферное давление; • ИМХО наверное стоить учесть и давление в контролируемой точке колоны (например оттолкнувшись от кубового); • По кубовой температуре вычисляем (кстати как?) переменную ха(мольная концентрация этанола в жидкой фазе, или раствор этанола в воде). Все переменные из кода предоставленного тобою чуть выше;
На выходе утилиты имеем: • Значение переменной ya (мольная концентрация этанола в паре нижней части колонны). Которая нам в алгоритме управления особо и не нужна, просто приятный показометр; • Значение переменной Tb (температура пара в колонне на интересующем нас участке);
Имея расчетные данные по температуре в "нижней части колонны" и реальные с температурного датчика в "нижней части колонны" мутим: • простецкий старт-стоп (температура с датчика подошла к расчетной - стопорим отбор, опустилась - возобновляем); • или плавно манипулируя ФЧ (например изменяя отбор продукта ШИМом) держим в низу колоны "правильную" спиртуозность пара (та же температура с датчика).
И предваряя вопросы: - "Мол, а зачем такой изврат, если есть проверенная веками, добрая дельта?" ИМХО скажу: - "К сожалению дельта не учитывает изменчивое атмосферное давление".
А для солидности тисну реальный график мониторинга атмосферы во время двух, последовательных погонов браги (время погонов отметил на оси абсцисс). Atmosfernoe_davlenie. Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы. Что характерно? Из-за низкой атмосферы температура кипения оставшейся в кубе воды естественно снизилась. Тупо, без попугая, дожидаясь заветных 100˚С, около получаса дистиллировал в приемную емкость воду. Этот атмосферный глюк и сподвиг меня изменить алгоритм завершения погона бражки в моей автоматике. [сообщение #12916957]
OldBean
Доцент
Красноярск
1K 1.4K
Отв.167 17 Янв. 17, 13:18
С буквой f - float, С буквами lf - double, Без букв - integer. Не?Kotische, 17 Янв. 17, 05:43
Не. Если говорить о стандартной библиотеке языка Си (не C++, а просто С, где мы подключаем заголовочный файл math.h), то там просто имя функции (например, pow, sin, exp и т.д.) означает double (и аргумент функции и возвращаемое значение), если постфикс f (например, powf, sinf, expf), то и аргумент и возвращаемое значение должно быть float, а l - означает long double. Целочисленных значений там нет (точнее, только для некоторых функций).
В C++ там иначе, там есть полиморфизм и такой проблемы не возникает. Имя одно и то же, без постфиксов. Компоновщик по типу аргумента уже сам подключает нужный вариант (тип) функции.
А вот как это реализовано в ардуинке - точно не знаю. Что там пришло на ум разработчикам? Про заголовочные файлы, похоже, они вообще гордо забыли. Поэтому и непонятно, что и как они подключают. Отдельно разбираться надо.
Добавлено через 47мин.:
powf для него банальная переменная. А раз она не объявлена в нужной области - компилятор ругается.Esc, 17 Янв. 17, 09:39
Странно. У меня-то все собирается нормально (с powf). Одна гипотеза есть. Но сначала уточним - Вы в какой операционной системе (на рабочей станции) работаете?
Дельта действительно зависит от давления. Но, при колебаниях атмосферного давления в пределах разумного (для сохранения жизни на земле ))), зависит линейно и очень-очень слабо. Поэтому дельта - вполне приемлемый способ контроля. Другое дело, если дельта мала, а сами температуры не очень стабильны (скажем, датчики установлены неудачно). Управлять установкой при помощи малой разности двух относительно больших и зашумленных величин уже не так просто.
ИМХО, в управлении установкой не по температуре, а по спиртуозности что-то есть интересное. Но тут поэкспериментировать нужно - пока трудно судить какие грабли могут там валяться. Но в любом случае датчик атомосферного давления на установке - вещь полезная. Снимает много вопросов при непонятках. Как при дистилляции, так и при ректификации.
Kotische
Академик
Саратов
8.1K 2.6K
Отв.168 21 Марта 19, 23:27
Котище, глянь на такой вариантRudy, 24 Нояб. 16, 19:48
игорь223, я не знаю в чем могут быть сложности в работе именно с PDF-файлами, ??? но, проверка Рудиной формулы посредством Exel-я дает довольно красивые цыфирки и графики. Лайфхак заключается только в том, что в самой формуле используется функция exp по натуральному основанию ( e=2.71828 ), а ось Х масштабируется при помощи десятичного логарифма. ::)
По оси Х - абсолютное давление в атмосферах (масштаб логарифмический). По оси Y - температура в °С (масштаб линейный).
Сверил цыфирьки с калькулятором Руди, вроде бьются вполне прилично. ;D
Обрати внимание, что в логарифмических координатах график выглядит как почти что прямая линия, с уменьшением давления на каждый градус температуры приходится всё меньшая дельта абсолютного давления, т.е. с понижением давления потребная точность измерение давления экспоненциально увеличивается.
Graph1.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.Graph2.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.Graph1.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.Graph2.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.
1. Твой эксель не работает, везде пишет "имя" вместо цифр. Что включай макросы, что не включай. Поэтому не могу проверить твою формулу, к сожалению, по таблицам.
2. Можно ли не в уродских атмосферах получить ФОРМУЛУ (график мне не нужен абсолютно), а в мм. рт. и температуру в гр. Цельсия. И в линейном, а не в логарифмическом масштабе.
Просто формулу С=F(D) где С - это температура кипения воды, в градусах Цельсия а D это давление, в мм. рт.? в пределах 0-900 мм.рт. или 0-120кПа если угодно
П.С. Проверил формулу OldBean - она не бьется с данными импортного калькулятора, не бьется с новым калькулятором Руди - бьется со старым, который забракован.
OldBean, можешь ли ты поправить программу, в соответствии с более точными табличными данными?
Kotische
Академик
Саратов
8.1K 2.6K
Отв.170 27 Марта 19, 21:07
эксель не работает, везде пишет "имя" вместо цифр. Что включай макросы, что не включай.игорь223, 27 Марта 19, 16:51
Функция написана на VBA, по этому разрешать нужно не только макросы но и VBA.
Можно ли не в уродских атмосферах получить ФОРМУЛУигорь223, 27 Марта 19, 16:51
Чтоб было не в барах, а в мм.рт.ст нужно всего лишь поделить Р в мм на 750.062.
Конечная формула которую ты алчешь: Tкип.воды = y0 + A1 * Exp(-t1 * X) + A2 * Exp(-t2 * X) + s1 * X + s2 * X ^ 2 - 273.16
где Ln - натуральный логарифм, а Exp - экспонента т.е. е в степени
Вот тебе для проверки несколько значений по формуле:
P(бар)
P(мм.рт)
Tформ(°C)
TCalc(°C)
0,100
75,006
45,524
45.5233
0,115
86,257
48,278
48.1045
0,120
90,007
49,129
48.9649
0,130
97,508
50,744
50.6856
0,140
105,009
52,258
52.1127
0,150
112,509
53,683
53.3935
0,200
150,012
59,798
59.7971
0,300
225,019
68,917
68.5961
0,400
300,025
75,773
75.7718
0,500
375,031
81,329
80.6649
Слева температура посчитана по формуле справа по калькулятору Руди
ExcelSec.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.
Kotische
Академик
Саратов
8.1K 2.6K
Отв.171 27 Марта 19, 22:55
Залез на сайт VLE-calc, взял из первоисточника данные для воды, запихнул их в MSExcel и построил две апроксимации P(T) и T(P)
Вот тебе две формулы, для воды, которые ты так хотел:
P = Exp( 9,875587 - 2546,932/T - 425144/(T^2) ) T = 1000/( 2,679512 - 0,205959*Ln(P) - 0,002989*Ln(P)^2 ) где T[°K], P[бар]
Вроде с калькулятором Руди неплохо бъется
Как ты помнишь: T[°K] = 273,2 + T[°C] P[мм.р.с] = 750,061246 * P[бар] Exp() это экспонента, ex Ln() это натуральный логарифм, по основанию e
А шоб совсем как ты хочешь: P = 750,061246 * Exp( 9,875587 - 2546,932/(T+273,2) - 425144/((T+273,2)^2) ) T = 1000/( 2,679512 - 0,205959*Ln(P/750,061246) - 0,002989*Ln(P/750,061246)^2 ) - 273,2 где T[°С], P[мм.рт.ст]
На втором скрине сделал проверку этих [°С]/[мм.рт.ст] формул. Вроде кузяво получилось.
ЗЫ: рекомендую считать функцию Т(Р) она даст большую точность чем Р(Т)
MyFormulas.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.Proverka.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.
Kotische
Академик
Саратов
8.1K 2.6K
Отв.172 28 Марта 19, 20:11
Полазил по сайту VLE-calc Нашел готовую формулу для воды (нижние 4 строки). И не нужно мудохаться и интерполяцию по точкам строить!!!
Гы, если сравнить погрешность их формулы и их же данных, то погрешность получается гораздо меньше, нежели у моей интерполяционной формулы
Screenshots_2019-03-28-21-11-44.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.Water1.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.
m16
Научный сотрудник
Тамбов
1.9K 1K
Отв.173 28 Марта 19, 21:05 (через 54 мин)
Залез на сайт VLE-calc, взял из первоисточника данные для воды,Kotische, 27 Марта 19, 22:55
всем хорош VLE-calc но смущает расчёт температуры кипения воды = 100.497°C при атмосферном = 760мм ртути. есть мысли?
Kotische
Академик
Саратов
8.1K 2.6K
Отв.174 28 Марта 19, 21:14 (через 10 мин)
при атмосферном = 760мм ртути.m16, 28 Марта 19, 21:05
Дык а кто сказал что атмосферное именно 760мм? ::)
Water1.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.Water1.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.Water1.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.
m16
Научный сотрудник
Тамбов
1.9K 1K
Отв.175 28 Марта 19, 21:36 (через 23 мин)
Дык а кто сказалKotische, 28 Марта 19, 21:14
к чему разговоры? это как бы аксиома - темп. кип. воды = 100°C при атм. давл. = 760мм ртути, не?
Kotische
Академик
Саратов
8.1K 2.6K
Отв.176 28 Марта 19, 21:57 (через 21 мин)
В химии стандартным атмосферным давлением с 1982 года по рекомендации IUPAC считается давление, равное 100 кПа[11]. Атмосферное давление является одной из наиболее существенных характеристик состояния атмосферы. В покоящейся атмосфере давление в любой точке равно весу вышележащего столба воздуха с единичным сечением. В системе СГС 760 мм рт. ст. эквивалентно 1,01325 бар (1013,25 мбар) или 101 325 Па в Международной системе единиц (СИ).
Water1.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.
m16
Научный сотрудник
Тамбов
1.9K 1K
Отв.177 28 Марта 19, 22:13 (через 16 мин)
ок, 100кпа говоришь, пусть будет по твоему. темп кип воды = 100.118°C при Р=100кпа. и что там в Греции?
ок-2, калькулятор Руди Water. Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.
игорь223
Академик
таганрог
30.7K 20.9K
Отв.178 28 Марта 19, 22:51 (через 39 мин)
Есть две таблицы, одна из Стабникова, вторая из импортного калькулятора. Кое-где они сходятся, кое - где прилично отличаются.
Меня это уже порядком заебало, если честно; у меня в контроллере их уже две, грубо говоря и четвертая, и пятая версия калькулятора Руди. И по какой мерять я не знаю, потому что нет калиброванного термометра под рукой...
Добавлено через 2мин.:
Самое смешное, что твою формулу, Котище, мы забили в контроллер, и она показывает третьи значения, не попадающие ни в один, ни в другой калькулятор)))
А ту новую, что ты нашел, я даже не открывал, потому что она не та, которая мне нужна. Не С=F(t) и не в мм ртути а в барах(((
Что касаемо нормальных условий kipenie_vodi.gif Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.
с этим бьется как раз старый калькулятор
И на 10 мм ртути, и на 100мм ртути тоже бьется. Блядь...придется включать куб с водой внутри...скажем на 10кпа, шоб долго не ждать...
игорь223
Академик
таганрог
30.7K 20.9K
Отв.179 29 Марта 19, 00:08
Провел эксперимент. Взял кастрюлю, налил воды, и начал кипятить на разных давлениях. В качестве датчиков использованы: - примерно калиброванный аналоговый промышленный китаец - и автомобильный китаец, о котором расскажу чуть позже в другой ветке В качестве термометра мой серийный ЭТС 223 с нулевым смещением (со склада) Регулятор и термометр рисовали температуру, регулятор вычисленную по таблице старого калькулятора, термометр по факту в паре Калькулятором вычислял значения по старому и новому (без галочки и с галочкой)
Вот что получилось
eksperiment.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.
Добавлено через 6мин.:
Регулятор ошибся в одном измерении, НО! мой автомобильный датчик работает точно от 10 кПа, так что в том диапазоне ему не место. Хотя есть огрех видимо формулы, все же, но 0,3-0,4С терпимо На моем рабочем диапазоне 10-30 кПа (и выше) разница между вычисленным регулятором и реального термометра, которому я ввел в мозг поправку 0,1С - практически нулевая. По СТАРОМУ калькулятору Руди - разница в округлениях, грубо говоря и на нужды винокура не влияет.
Фух, неужели конец моим метаниям?!)))
Осталось молярные доли перевести в проценты спиртуозности куба и пара, и (вроде) все идет к тому, что я получу очередной электронный попугай)))