PDA

Просмотр полной версии : Как сделать температурную компенсацию датчика?



ProRus
24.04.2023, 14:28
Здравствуйте, Уважаемые!

Есть датчик уровня, который работает по давлению жидкости, но он в зависимости от температуры показывает различные значения при одном и том же объеме.
Подскажите как сделать температурную компенсацию (наверное так называется) данного датчика?
Я записал порядка 15-ти значений при различной температуре.
Можно наверное сделать на основе диапазонов, но верно ли это?
Мне кажется что можно как то осуществить математически, но я не знаю как.
t1=11 оС, Объем = 27,2 литра
t2=12,3 оС, Объем = 28,6 литра
t3=13,2 оС, Объем = 29,5 литра
t4=14,6 оС, Объем = 29,6 литра
t5=15,5 оС, Объем = 30,2 литра
t6=15,9 оС, Объем = 30,7 литра
t7=16,8 оС, Объем = 31,2 литра
t8=17,8 оС, Объем = 31,4 литра
t9=19,1 оС, Объем = 31,8 литра
t10=21,2 оС, Объем = 31,8 литра
t11=22,7 оС, Объем = 31,9 литра
t12=23,8 оС, Объем = 32,2 литра
t13=24,5 оС, Объем = 32,4 литра
t14=25,3 оС, Объем = 32,6 литра
t15=26,8 оС, Объем = 34,5 литра
Заранее спасибо!

Sergej_
24.04.2023, 14:35
Так у Вас датчик давления или уровня? Вообще есть такая штука как температурный коэффициент расширения различных веществ.

ProRus
24.04.2023, 14:47
Так у Вас датчик давления или уровня? Вообще есть такая штука как температурный коэффициент расширения различных веществ.

Датчик уровня. (https://aliexpress.ru/item/33003863661.html)

Sergej_
24.04.2023, 15:00
Понятно, этот девайс скорее всего для скважины. В документации про погрешности , в т.ч. температурные ничего. Можно построить график и посмотреть линейная ли зависимость, можно ли ее описать формулой. В крайнем случае кусочно- линейная аппроксимация. Опять же уровень жидкости будет меняться, не факт что эта зависимость будет повторяться при других уровнях в той же зависимости.
А лучше (если возможно) поставить датчик давления с соответствующим диапазоном и понятной погрешностью.

Сергей0308
24.04.2023, 15:29
Здравствуйте, Уважаемые!

Есть датчик уровня, который работает по давлению жидкости, но он в зависимости от температуры показывает различные значения при одном и том же объеме.
Подскажите как сделать температурную компенсацию (наверное так называется) данного датчика?
Я записал порядка 15-ти значений при различной температуре.
Можно наверное сделать на основе диапазонов, но верно ли это?
Мне кажется что можно как то осуществить математически, но я не знаю как.
t1=11 оС, Объем = 27,2 литра
t2=12,3 оС, Объем = 28,6 литра
t3=13,2 оС, Объем = 29,5 литра
t4=14,6 оС, Объем = 29,6 литра
t5=15,5 оС, Объем = 30,2 литра
t6=15,9 оС, Объем = 30,7 литра
t7=16,8 оС, Объем = 31,2 литра
t8=17,8 оС, Объем = 31,4 литра
t9=19,1 оС, Объем = 31,8 литра
t10=21,2 оС, Объем = 31,8 литра
t11=22,7 оС, Объем = 31,9 литра
t12=23,8 оС, Объем = 32,2 литра
t13=24,5 оС, Объем = 32,4 литра
t14=25,3 оС, Объем = 32,6 литра
t15=26,8 оС, Объем = 34,5 литра
Заранее спасибо!


Датчик уровня. (https://aliexpress.ru/item/33003863661.html)

У вас датчик гидростатического давления.
Какая у вас максимальная высота столба воды что требуется измерять?
И какая у датчика, я так подозреваю что у Вас весь диапазон измерения менее погрешности датчика поэтому и показания такие, в смысле, датчик может измерять до 500 метров, Вы измеряете до 5-10 метров!
И ёмкость у вас должна быть под атмосферным давлением, в смысле, тогда может быть можно датчик избыточного давления применить или нет, в смысле, где Вы уровень измеряете?

1exan
24.04.2023, 15:47
Конечно точность никакая, но попробуйте так:
Vприв=(Vизм*(80+tприв))/(80+tизм)
tприв - это температура, к которой хотите привести измеренные значения

ProRus
25.04.2023, 06:48
У вас датчик гидростатического давления.
Какая у вас максимальная высота столба воды что требуется измерять?
От 0 до 1 метра.
На датчике написано 0-2 метра.
Емкость открытая.
Как таковая особая точность не нужна, +-2 литра нормально. Температура будет по возможности стабильная 20-24 градуса, но хочется уберечь себя и от холодной воды.

Sergej_
25.04.2023, 07:14
От 0 до 1 метра.
На датчике написано 0-2 метра.
Емкость открытая.
Как таковая особая точность не нужна, +-2 литра нормально. Температура будет по возможности стабильная 20-24 градуса, но хочется уберечь себя и от холодной воды.

Конечно лучше чтоб диапазон максимально близкий был. Сейчас у Вас 50% диапазона мимо. Этот датчик измеряет , если можно так выразиться ( измеряет) столб воды, не зависимо от объема. Т.е если Вы хотите получить объем в простейшем случае, если ёмкость правильной формы,надо площадь умножить на показания датчика ( высоту) , разумеется и погрешность в абсолютных цифрах тоже будет зависеть от площади. А что нормальный датчик не возможно установить, от температуры хотябы не врал. И с задокументированной погрешностью , тогда можно сразу оценить погрешность и устраивает ли она Вас.

1exan
25.04.2023, 08:21
От 0 до 1 метра.
На датчике написано 0-2 метра.
Емкость открытая.
Как таковая особая точность не нужна, +-2 литра нормально. Температура будет по возможности стабильная 20-24 градуса, но хочется уберечь себя и от холодной воды.

Поскольку это датчик абсолютного давления, то показания будут зависеть ещё и от атмосферного давления, что наверное тоже сказывается при таком диапазоне измерения

Сергей0308
25.04.2023, 08:42
От 0 до 1 метра.
На датчике написано 0-2 метра.
Емкость открытая.
Как таковая особая точность не нужна, +-2 литра нормально. Температура будет по возможности стабильная 20-24 градуса, но хочется уберечь себя и от холодной воды.

И что это за ёмкость, может она бетонная или яма в земле вырыта, почему нельзя установить в нижней точке измерения датчик избыточного давления, в смысле, бобышку приварить и датчик избыточного давления прикрутить?

67527

https://owen.ru/product/pd100i_datchik_davleniya_s_uvelichennim_mezhpovero chnim_intervalom_dlya_teploschetchikov/modifications

Он намного проще, надёжнее и дешевле датчика гидростатического давления, короче, мне непонятно, зачем делать хуже и в несколько раз дороже, если можно сделать лучше и в несколько раз дешевле?
Может Вы бюджет осваиваете, а у Вас всё так идеально, что просто некуда разумно потратить деньги?

ProRus
25.04.2023, 10:38
И что это за ёмкость, может она бетонная или яма в земле вырыта, почему нельзя установить в нижней точке измерения датчик избыточного давления, в смысле, бобышку приварить и датчик избыточного давления прикрутить?
Он намного проще, надёжнее и дешевле датчика гидростатического давления, короче, мне непонятно, зачем делать хуже и в несколько раз дороже, если можно сделать лучше и в несколько раз дешевле?
Обычная пластиковый бак для полива (https://irplast.ru/catalog/1_emkosti_irplast/1_1_emkosti/1_3_emkosti_pryamougolnye_uzkie/yemkost_k_200_l_belaya_s_otvodom_1_2/).
Если бы я понимал что вы мне рекомендуете, то я бы ответил. Но за совет спасибо, поизучаю что умеет данный датчик. Нашел на Алике датчик, купил, теперь пробую с ним работать. Как он измеряет, меня вполне устраивает. Думаю влияние температуры смогу осилить.

Может Вы бюджет осваиваете, а у Вас всё так идеально, что просто некуда разумно потратить деньги?
Ага, уже устал из кармана доставать. ;) Знания и опыт дорого стоят, поэтому деньги тут совсем не главное.

ProRus
25.04.2023, 10:40
Поскольку это датчик абсолютного давления, то показания будут зависеть ещё и от атмосферного давления, что наверное тоже сказывается при таком диапазоне измерения
Думаю да. Буду экспериментировать.

ProRus
25.04.2023, 10:45
Конечно лучше чтоб диапазон максимально близкий был. Сейчас у Вас 50% диапазона мимо. Этот датчик измеряет , если можно так выразиться ( измеряет) столб воды, не зависимо от объема.
Не знаю как он работает, но не от столба точно. Помещая в 10-ти литровое ведро с водой, он показывает 10 литров, помещая в бак 200 литров с тем-же уровнем воды, показывает 40 литров. Что этот уровень воды соответствует 40-ка литрам, точно, промерял мерной емкостью.

Т.е если Вы хотите получить объем в простейшем случае, если ёмкость правильной формы,надо площадь умножить на показания датчика ( высоту) , разумеется и погрешность в абсолютных цифрах тоже будет зависеть от площади. А что нормальный датчик не возможно установить, от температуры хотябы не врал. И с задокументированной погрешностью , тогда можно сразу оценить погрешность и устраивает ли она Вас.

Это какой считается нормальным? Буду рад за советы. Ультразвуковой мне не нравится, механические тоже, решил попробовать такой.

ProRus
25.04.2023, 10:48
Конечно точность никакая, но попробуйте так:
Vприв=(Vизм*(80+tприв))/(80+tизм)
tприв - это температура, к которой хотите привести измеренные значения

Ничего не понимаю, но попробую разобраться. :) Спасибо!

Sergej_
25.04.2023, 11:46
Не знаю как он работает, но не от столба точно. Помещая в 10-ти литровое ведро с водой, он показывает 10 литров, помещая в бак 200 литров с тем-же уровнем воды, показывает 40 литров. Что этот уровень воды соответствует 40-ка литрам, точно, промерял мерной емкостью.


Это какой считается нормальным? Буду рад за советы. Ультразвуковой мне не нравится, механические тоже, решил попробовать такой.

Ваще интересно :D
Давайте так, с каким выходом у Вас датчик, каким образом Вы определяете объем, с помощью какого прибора и алгоритма. Этот датчик фактически измеряет давление и переводит его в высоту столба. Скажем уровень 0 соответствует 4 ма, 2 метра 20 ма, если выход 4-20. Что то Вы не то делаете.
Нормальный датчик Сергей 308 Вам предложил как установить, Вам нужен с пределами измерения 0-10 кПа.
есть ещё различные варианты на такую глубину и таких нехитрых целей.
И да, точность +-2 литра, как Вы хотите в 200 литровой ёмкости , не совсем правильной формы , таким способом не получить.

ProRus
25.04.2023, 13:07
Ваще интересно :D
Давайте так, с каким выходом у Вас датчик, каким образом Вы определяете объем, с помощью какого прибора и алгоритма. Этот датчик фактически измеряет давление и переводит его в высоту столба. Скажем уровень 0 соответствует 4 ма, 2 метра 20 ма, если выход 4-20. Что то Вы не то делаете.
Нормальный датчик Сергей 308 Вам предложил как установить, Вам нужен с пределами измерения 0-10 кПа.
есть ещё различные варианты на такую глубину и таких нехитрых целей.
И да, точность +-2 литра, как Вы хотите в 200 литровой ёмкости , не совсем правильной формы , таким способом не получить.
Выход 4-20 мА. Принимаю на аналоговый порт ПР102. Настройки: Нижняя граница = 0, верхняя граница 200 (так понимаю 200 мм).
Видимо вы действительно правы. Сейчас все перепроверил, с сантиметрами от уровня заполнения водой сходится.
Теперь хоть примерно стало понятно как работает.
Пересчитать в объем жидкости, труда не составит.
Проверю, отпишусь...
Наверное с ведром я принял желаемое за действительное. :D

Сергей0308
25.04.2023, 13:22
Выход 4-20 мА. Принимаю на аналоговый порт ПР102. Настройки: Нижняя граница = 0, верхняя граница 200 (так понимаю 200 мм).
Видимо вы действительно правы. Сейчас все перепроверил, с сантиметрами от уровня заполнения водой сходится.
Теперь хоть примерно стало понятно как работает.
Пересчитать в объем жидкости, труда не составит.
Проверю, отпишусь...
Наверное с ведром я принял желаемое за действительное. :D

Может Вам достаточно уровень контролировать?
С вашими настройками уровень будет отображаться в процентах, в смысле, 0-100%, будет соответствовать уровню 0-1 метр(100 см)!

ProRus
25.04.2023, 13:38
Может Вам достаточно уровень контролировать?
С вашими настройками уровень будет отображаться в процентах, в смысле, 0-100%, будет соответствовать уровню 0-1 метр(100 см)!

Мне нужно количество литров, но вы правы, можно отталкиваться на уровень.

Sergej_
25.04.2023, 13:45
Мне нужно количество литров, но вы правы, можно отталкиваться на уровень.

Вы сами прикиньте, погрешность датчика, погрешность входа . Форма ёмкости, ее деформация различная при различных уровнях заполнения и температуре. О каких 2 литрах может идти речь. Наверное Вы делаете что то связанное с водоснабжением домашним. Зачем там точность, уровень знать более чем.

melky
26.04.2023, 08:53
Если емкость имеет одинаковую форму то можно и в литры перевести. Если речь о воде то там вроде не сильная погрешность будет, вот на солярке там да, от Т жидкости несколько литров погрешность легко играет. Но опять же для дома не критично.

ferret_maybe
26.04.2023, 10:29
Посмотрите в кабеле должна быть трубка(около 1 мм в диаметре, может меньше) компенсирующая атмосферное давление, с ней все нормально?
У вас датчик уже с показывающим прибором? Логично спросить у продавца ПО для конфигурирования датчика (для перевода объема в уровень часто используется простая формула площадь основания умноженная на высоту заполнения) или этого прибора, какие интерфейсы есть у него укажите.

ProRus
06.06.2023, 06:37
Посмотрите в кабеле должна быть трубка(около 1 мм в диаметре, может меньше) компенсирующая атмосферное давление, с ней все нормально?
У вас датчик уже с показывающим прибором? Логично спросить у продавца ПО для конфигурирования датчика (для перевода объема в уровень часто используется простая формула площадь основания умноженная на высоту заполнения) или этого прибора, какие интерфейсы есть у него укажите.
Трубка есть и с ней все визуально нормально.
Не догадался спросить у продавца, но сам, методом проб и ошибок пришел к именно тому пониманию о котором говорите вы. Высота столба по датчику умножается на площадь.

ProRus
06.06.2023, 06:53
История закончилась следующим.
Заливал в бак по одному литру воды при температуре 22 градуса. Ставил отметки маркером на баке. Воду перед этим наливал не только по метке в бутылке, но и взвешивал. Далее записывал чистые показания датчика без каких либо корректировок.
Бак оказался на 180 литров, итого записей получилось 180 штук.
Выявил взаимосвязь показаний.
68169
Там где бак имеет неровности (закругления) пришлось рассчитывать по усреднённым показаниям литры. Где имеет ровные очертания выявилась линейная зависимость от показаний датчика.
Таким образом у меня получилось 22 диапазона для пересчета:
1. Нижнее основание бака (закруглено) три диапазона.
2. Средняя выемка 8 диапазонов.
3. Прямая верхняя часть раздувается от давления - 8 диапазонов.
4. Верхняя часть бака три диапазона.
Теперь датчик показывает литры с погрешностью +-0,1 литра. Конечно может и больше, но очень точно показывает по меткам которые нарисовал при промерах маркёром.

Спасибо всем огромное! Я хотя бы примерно понял ка этот датчик работает.

Сергей0308
06.06.2023, 14:03
История закончилась следующим.
Заливал в бак по одному литру воды при температуре 22 градуса. Ставил отметки маркером на баке. Воду перед этим наливал не только по метке в бутылке, но и взвешивал. Далее записывал чистые показания датчика без каких либо корректировок.
Бак оказался на 180 литров, итого записей получилось 180 штук.
Выявил взаимосвязь показаний.
68169
Там где бак имеет неровности (закругления) пришлось рассчитывать по усреднённым показаниям литры. Где имеет ровные очертания выявилась линейная зависимость от показаний датчика.
Таким образом у меня получилось 22 диапазона для пересчета:
1. Нижнее основание бака (закруглено) три диапазона.
2. Средняя выемка 8 диапазонов.
3. Прямая верхняя часть раздувается от давления - 8 диапазонов.
4. Верхняя часть бака три диапазона.
Теперь датчик показывает литры с погрешностью +-0,1 литра. Конечно может и больше, но очень точно показывает по меткам которые нарисовал при промерах маркёром.

Спасибо всем огромное! Я хотя бы примерно понял ка этот датчик работает.

Как-то странно Вы сделали, мне кажется, надо было не метки рисовать, а показания датчика, в смысле мА/давление(высоту столба воды)! Тогда бы и зависимость появилась, в смысле, объёма от высоты столба воды(давления).

ProRus
07.06.2023, 11:28
Как-то странно Вы сделали, мне кажется, надо было не метки рисовать, а показания датчика, в смысле мА/давление(высоту столба воды)! Тогда бы и зависимость появилась, в смысле, объёма от высоты столба воды(давления).

Да как-то амперметра не было под рукой.
Имея данные можно и пересчитать в принципе.

ProRus
07.06.2023, 11:38
ексель выкладывайте, можно будет сократить код
Прикрепил.
Хотя в принципе пока и так устраивает.

capzap
07.06.2023, 14:02
впечатлить не получится, точность хромает, хотя математическое отклонение там 0.9999982297885517 Но возможно по количеству кода будет преимущество

ProRus
08.06.2023, 13:36
впечатлить не получится, точность хромает, хотя математическое отклонение там 0.9999982297885517 Но возможно по количеству кода будет преимущество

Круто!!! Я до ST еще не дорос...
У меня это все выглядит как на картинке, только еще три экрана вниз...
68224