Помогите с переводом импульсов с датчика сбм20 в мкР/ч
- Сообщения: 7
- Зарегистрирован: Сб мар 26, 2022 13:12:32
Доброго времени суток )помогите пожалуйста не могу понять уже перелистал кучу информации даже пытался исходники смотреть дозиметров но не пойму как преобразовываются импульсы с датчика СБМ20 в микро рентгены в час (в режиме радиометра )(без длительных измерений как в дозиметре микрон или тера или нанит ) сигнал приходит на вывод МК и в прерывании инкрементируется переменная а что дальше не могу понять хоть убей, подскажите как получить текущий фон в микрорентген в час ???? из одних исходников видел что заполняется в прерывании нулевой элемент массива из [49] но потом код написан через одно место и непонятно что там происходит вообщем HELP HELP??? нашел ещё такую формулу R=3600*n/t/78 где R= уровень радиации в мкР/ч t время измерения n количество импульсов с датчика 78 с паспорта количество импульсов на микрорентген ну и 3600 это секунд в часе (НО КАК ЭТМ ПОЛЬЗОВАТСЯ В РЕАЛЬНОМ ВРЕМЕНИ Я Не понимаю(помогите ???
- Реклама
Чтобы что-то показывать мк должен увадеть хотя бы два импульса, измеряет длительность между ними, прикинуть - а сколько их может быть за час, ввести коэф, на датчик - вот и првое поксзание. А дальше по мере накопления замеров, усредняем
разве не так?
разве не так?
- Сообщения: 12867
- Зарегистрирован: Сб дек 18, 2021 19:25:32
[uquote="BGlike",url="/forum/viewtopic.php?p=4204154#p4204154"]нашел ещё такую формулу R=3600*n/t/78 где R= уровень радиации в мкР/ч t время измерения n количество импульсов с датчика 78 с паспорта количество импульсов на микрорентген ну и 3600 это секунд в часе (НО КАК ЭТМ ПОЛЬЗОВАТСЯ В РЕАЛЬНОМ ВРЕМЕНИ Я Не понимаю(помогите ???[/uquote]
Не умеете засекать временные интервалы? Видели когда-нибудь у спортсменов секундомер? Тренер нажал кнопку, спортсмен побежал, и побежал в реальном времени, и секундомер тренера в реальном времени, и когда тренер скажет Стоп и нажмёт секундомер, то секундомер покажет время измерения, а количество шагов, которое бегун успеет сделать, эквивалентно количеству импульсов. А Ваша программа - это тренер.
Изучайте таймеры.
Не умеете засекать временные интервалы? Видели когда-нибудь у спортсменов секундомер? Тренер нажал кнопку, спортсмен побежал, и побежал в реальном времени, и секундомер тренера в реальном времени, и когда тренер скажет Стоп и нажмёт секундомер, то секундомер покажет время измерения, а количество шагов, которое бегун успеет сделать, эквивалентно количеству импульсов. А Ваша программа - это тренер.
Изучайте таймеры.
- Сообщения: 7
- Зарегистрирован: Сб мар 26, 2022 13:12:32
Таймеры я знаю! Но веть измерять интервал между частицами неправильно потому что они могут прилетать хоотично езё и не сколько сразу ? правильно нет?
- Сообщения: 12867
- Зарегистрирован: Сб дек 18, 2021 19:25:32
Конечно хаотично. И что? Более того, Вы не в состоянии сосчитать их все, так как эти гады летают до измерения и летают после измерения, и даже когда мы сдохнем они будут летать и хаотично притом (хотя насчёт хаоса это спорно).
Сколько времени требуется для замера бытовом прибором?
https://radbez.bsmu.by/library/pribori.pdf
Спортсмен в предыдущем примере тоже неодинаковые шаги делал, а посередине дистанции ваще поссать остановился. И что? Это помешало сосчитать количество шагов за определённый период? Или определить скорость увеличения количества шагов? Совершенно нет.
Сколько времени требуется для замера бытовом прибором?
https://radbez.bsmu.by/library/pribori.pdf
Спортсмен в предыдущем примере тоже неодинаковые шаги делал, а посередине дистанции ваще поссать остановился. И что? Это помешало сосчитать количество шагов за определённый период? Или определить скорость увеличения количества шагов? Совершенно нет.
- Реклама
- Сообщения: 7
- Зарегистрирован: Сб мар 26, 2022 13:12:32
Прочитал я и как называется смотрю в книгу вижу фигу я всё равно не понял как тогда радиометр производит показания в реальном времени да ещё и в мкР/ч если измерения происходят интервалами например по 20сек. Догда если пришло например 8 импульсов то как это дело перевести в рентгены и как потом следующий раз производить счёт обнулять переменную счёта а на дисплее отображать результат предедущего измерения но радиометр так не работает
- Сообщения: 12867
- Зарегистрирован: Сб дек 18, 2021 19:25:32
Вы имеете ввиду под реальным временем текущий момент? Но в таком случае, даже обычный вольтметр не показывает в реальном времени. А градусники не показывают температуру в реальном времени. Единственное их отличие от дозиметра - временная задержка очень мала, что даёт право считать измерение мгновенным.
А вот в случаях, если частица регистрируется в среднем раз в секунду (предположим),то как обнулять переменную, с какой точностью считать и как долго и какими методами - это всё зависит от Вас. В документе, на который я дал ссылку, максимальное время измерения несколько десятков секунд!
Что сложного сделать сначала первый вариант: сосчитать количество частиц за 20 секунд?
Следующий этап это предположить, что возможна ситуация, когда частиц так много, что считать их за 20 секунд нет смысла. Что тогда надо сделать? Считать время между частицами.
Далее приходим к мысли, что надо всё это делать одновременно и бесконечно. И результат будет некое среднее за некий период. А если хочется совсем хорошо, то можно выкинуть и некоторые случайные всплески, портящие статистику, но эти методы на данном этапе Вам не нужны, просто помните, что потом, когда-нибудь имеет смысл о них задуматься и узнать, как избавиться.
Добавлено after 3 minutes 57 seconds:
Вот Вы написали: R=3600*n/t/78 ( я не знаю, истинная формула или не, но пусть)
Предположим, 8 импульсов прилетело за 20 секунд.
R = 3600*8/20/78
Что сложного-то? Счёт не останавливается, и через секунду на приборе показывается R = 3600*(число импульсов за последние 20 секунд)/20/78 и так бесконечно.
Добавлено after 4 minutes 20 seconds:
Можете вообще для начала сделать самым простым методом: массив из 20 ячеек, первая начинает подсчитывать импульсы за от 0 до 20 секунд, вторая от 1 до 21 секунды и так далее. Когда наступит время 21-й секунды, счётчик массива снова на ячейку № 0.
Через 20 секунд после начала измерений на дисплей раз в секунду выводить ячейки массива по очереди, по кругу.
А вот в случаях, если частица регистрируется в среднем раз в секунду (предположим),то как обнулять переменную, с какой точностью считать и как долго и какими методами - это всё зависит от Вас. В документе, на который я дал ссылку, максимальное время измерения несколько десятков секунд!
Что сложного сделать сначала первый вариант: сосчитать количество частиц за 20 секунд?
Следующий этап это предположить, что возможна ситуация, когда частиц так много, что считать их за 20 секунд нет смысла. Что тогда надо сделать? Считать время между частицами.
Далее приходим к мысли, что надо всё это делать одновременно и бесконечно. И результат будет некое среднее за некий период. А если хочется совсем хорошо, то можно выкинуть и некоторые случайные всплески, портящие статистику, но эти методы на данном этапе Вам не нужны, просто помните, что потом, когда-нибудь имеет смысл о них задуматься и узнать, как избавиться.
Добавлено after 3 minutes 57 seconds:
Вот Вы написали: R=3600*n/t/78 ( я не знаю, истинная формула или не, но пусть)
Предположим, 8 импульсов прилетело за 20 секунд.
R = 3600*8/20/78
Что сложного-то? Счёт не останавливается, и через секунду на приборе показывается R = 3600*(число импульсов за последние 20 секунд)/20/78 и так бесконечно.
Добавлено after 4 minutes 20 seconds:
Можете вообще для начала сделать самым простым методом: массив из 20 ячеек, первая начинает подсчитывать импульсы за от 0 до 20 секунд, вторая от 1 до 21 секунды и так далее. Когда наступит время 21-й секунды, счётчик массива снова на ячейку № 0.
Через 20 секунд после начала измерений на дисплей раз в секунду выводить ячейки массива по очереди, по кругу.
- Сообщения: 7
- Зарегистрирован: Сб мар 26, 2022 13:12:32
Хорошо, я всё равно не понимаю, если я сделаю вот так
Int mas[49];// 49 секунд
Int sec;
Int sumimp;
Int Doze;
Interrupt input mk{
mas[sec]++;
}
Interrupt timer sec{
If(sec!=49)sec++;
}
For(int i;i<49;i++){
sumimp+=mas;
}
Потом
Sumimp считать по формуле но вот как отнимать от масива с импульсами ?
Doze
Добавлено after 4 minutes:
Хорошо попробую как вы говорите, понемногу начинает доходить
Int mas[49];// 49 секунд
Int sec;
Int sumimp;
Int Doze;
Interrupt input mk{
mas[sec]++;
}
Interrupt timer sec{
If(sec!=49)sec++;
}
For(int i;i<49;i++){
sumimp+=mas;
}
Потом
Sumimp считать по формуле но вот как отнимать от масива с импульсами ?
Doze
Добавлено after 4 minutes:
Хорошо попробую как вы говорите, понемногу начинает доходить
- Сообщения: 12867
- Зарегистрирован: Сб дек 18, 2021 19:25:32
Код: Выделить всё
Int mas[49];// 49 секунд
Int sec = 0;
Int sumimp = 0;
Int Doze = 0;
Interrupt input mk // срабатывает от частицы на датчике
{
++mas[sec]; //подсчёт числа импульсов за секунду
}
Interrupt timer sec // срабатывает раз в секунду
{
If (++sec > 48) // ротация секунд-позиции массива
{
sec = 0;
}
sumimp = 0; // обнуляем старое число импульсов, которое было секунду назад
For(int i = 0; i < 49; i++)
{
sumimp += mas[i]; // суммирование импульсов за 49 секунд
}
mas[sec] = 0; // подготовка новой ячейки
}[uquote="BGlike",url="/forum/viewtopic.php?p=4204338#p4204338"]Хорошо попробую как вы говорите, понемногу начинает доходить[/uquote]
Ваш вариант гораздо оптимальней, надо было сразу его опубликовать, потому что я не понял без него суть вопроса и предложил более сложный, но, как мне казалось, гораздо наглядней, вариант.
в начале измериний заполните весь массив значением одного замера и можете отображать не дожидаясь 50-ой секунды.
- Сообщения: 12867
- Зарегистрирован: Сб дек 18, 2021 19:25:32
Ага. Сравните варианты, при фактическом числи импульсов в среднем 10 в 50 секунд. (от балды).
Если вначале массив обнулен, (это эквивалентно первый замер равен 0), показывать будет 0, а потом потихоньку добегать будут до 10, если начинать отображать сразу.
Если в первом замере 1, то итогом сразу станет 50, и будет потихоньку уменьшаться к 10, если начинать отображать сразу. Уже как-то не очень.
Если в первом замере 2, то итогом сразу станет 100, и это вообще уже не не очень. А две частицы почти рядом прилететь вполне могут.
Если вначале массив обнулен, (это эквивалентно первый замер равен 0), показывать будет 0, а потом потихоньку добегать будут до 10, если начинать отображать сразу.
Если в первом замере 1, то итогом сразу станет 50, и будет потихоньку уменьшаться к 10, если начинать отображать сразу. Уже как-то не очень.
Если в первом замере 2, то итогом сразу станет 100, и это вообще уже не не очень. А две частицы почти рядом прилететь вполне могут.
По ссылке:BGlike писал(а):Прочитал я и как называется смотрю в книгу вижу фигу я всё равно не понял как тогда радиометр производит показания в реальном времени да ещё и в мкР/ч если измерения происходят интервалами например по 20сек.
Сейчас в "рентгенах" никто не измеряет, измеряют в ЗИВЕРТАХ!!1.5 Порядок работы
1.5.1 Режим «Измерение мощности дозы»
Переведите переключатель режимов работы в положение МД
(крайнее левое положение) и нажмите кратковременно кнопку
ПУСК. При этом на цифровом табло должны появиться точки
после каждого разряда и начинается счёт импульсов.
Примерно через 20 с измерение закончится, о чем
сигнализирует звуковой сигнал, а на табло фиксируется число с
одной точкой. Это показание прибора представляет собой значение
МД в мкЗв/ч.
А, как я понял, число на индикаторе- количество "импульсов", поступивших со счётчика за 20 секунд..
Перевод единиц радиации
https://allcalc.ru/converter/radiation
допустимые дозы радиации в микрозивертах-
https://www.google.com/search?channel=n ... 0%B0%D1%85
Если уж так хочется на МК- делаете частотомер с временем измерения 20 секунд (чтобы всё по фен-шую было)- и получаете то, что нужно..Безопасным считается уровень радиации до величины, приблизительно 0,5 мкЗв/ч (микрозивертов в час) или до 50 микрорентген в час. Наиболее безопасный уровень внешнего облучения тела человека, когда «радиационный фон в норме», - это до 0,2 мкЗв/ч (соответствует значениям до 20 микрорентген в час).
сори, полагал sumimp далее усредняется к секунде.
(хоть число 49 мне было не понятно)
(хоть число 49 мне было не понятно)
- Сообщения: 7
- Зарегистрирован: Сб мар 26, 2022 13:12:32
Вообщем искал искал и наткнулся я на вот это http://forum.rhbz.org/topic.php?forum=62&topic=22 там предлагается считать частоту импульсов и тупо умножать сначала на 36 и при увеличении частоты меняется число умножения но частотомер на детекторе частиц это так себе тоесть нужно зделать масив с измерением частоты например 50 элементов потом вывести среднее а это средние умножить на число предлогаемое там в принципе если считать на калькуляторе то вроде как совподает но вот а если прилетело несколько частиц сразу то получается скачак частоты от 0.3Гц до 700гц ну даже если там будет 100 элементов то это будет не одэкватное значение ну как то так или всё же этот вариант лучше? Что скажете? Кстати та формула которую я нашол в самом первом посте я писал её так вот если верить паспорту датчика то считая по той формуле получается завышение при чем не слабое а если считать по p=импульсов в секунду (частота)*36 то получается как в паспорте
- Сообщения: 12867
- Зарегистрирован: Сб дек 18, 2021 19:25:32
Это там убирают какую-то нелинейность счётчика. Ничего не могу сказать, я думал, что всякая погрешность у них возникает в случае, когда два и более импульса приходят настолько быстро, что определяются как один.
Чтобы разбираться, что там за нелинейность, и есть ли она, надо искать и читать документацию по этому счётчику.
Чтобы разбираться, что там за нелинейность, и есть ли она, надо искать и читать документацию по этому счётчику.
- Сообщения: 7
- Зарегистрирован: Сб мар 26, 2022 13:12:32
Да дело в том что документации я полной не нашел а только стандартну
- Сообщения: 12867
- Зарегистрирован: Сб дек 18, 2021 19:25:32
Да, такое бывает. Надо изучать литературу не просто об этом счётчике, но вообще об измерении радиационного фона, где, возможно, что-то выяснится. Например, вот: определение мёртвого времени счётчика.
ага... ясно, откуда нелинейность.
там (где график нелинейности), кстати, тоже была ссылка на подобный документ:
там (где график нелинейности), кстати, тоже была ссылка на подобный документ:
[uquote="BGlike",url="/forum/viewtopic.php?p=4204590#p4204590"]получается скачак частоты от 0.3Гц до 700гц[/uquote]
Чтобы такого не случалось, используют метод "скользящего окна". Заполняем массив, положим, из 64 элементов (безразлично - режим измерения частоты (при большой интенсивности) или периода (при малой)). Усредняем. Умножаем на нужный коэффициент. При получении очередного отсчёта (числа импульсов за очередную секунду - если измеряется частота, или периода - поступил очередной импульс, имеем очередной период) помещаем новый отсчёт на место самого "старого", опять усредняем, умножаем на нужный коэффициент и т.д. Такой метод плохо работает на быстродействующих процессах (уже прекратилось, а показания всё ещё медленно снижаются), но в данном случае радиационный фон не может меняться скачком (атомный взрыв не рассматриваем), зато резких скачков показаний не будет.
В этом случае хорошо использовать кольцевой буфер - результат помещаем по текущему указателю и перемещаем указатель по кольцу на следующий элемент.
Чтобы такого не случалось, используют метод "скользящего окна". Заполняем массив, положим, из 64 элементов (безразлично - режим измерения частоты (при большой интенсивности) или периода (при малой)). Усредняем. Умножаем на нужный коэффициент. При получении очередного отсчёта (числа импульсов за очередную секунду - если измеряется частота, или периода - поступил очередной импульс, имеем очередной период) помещаем новый отсчёт на место самого "старого", опять усредняем, умножаем на нужный коэффициент и т.д. Такой метод плохо работает на быстродействующих процессах (уже прекратилось, а показания всё ещё медленно снижаются), но в данном случае радиационный фон не может меняться скачком (атомный взрыв не рассматриваем), зато резких скачков показаний не будет.
В этом случае хорошо использовать кольцевой буфер - результат помещаем по текущему указателю и перемещаем указатель по кольцу на следующий элемент.
- Сообщения: 7722
- Зарегистрирован: Вс июл 24, 2011 11:38:09
Количество импульсов за 45с на сколько помнится, это и есть число мкР/ч он же 1/100 мкЗв/час.
Всё остальное конвертация по известным форулам.
Для быстрого замера надо считать импульсы и время за которое они появились, и пропорционально делить с отображением результата, хотябы раз в секунду для наглядности.
Замерять всё что что попало за секунду и складывать в кучу, а потом брать всё что накапало за последние 45с и на экран.
Ну а для дозы просто всё подрят складывать и делить на время которое прибор включен.
Замерять частоту ардуиной то ещё извращение.
Не проще готовые проекты открыть ?
Я просто много тыкался в попытке замерить частоту ниже 10гц и это невозможно. Большую часть времени контролер просто стоит и много других пакостей уже и не вспомню.
Всё остальное конвертация по известным форулам.
Для быстрого замера надо считать импульсы и время за которое они появились, и пропорционально делить с отображением результата, хотябы раз в секунду для наглядности.
Замерять всё что что попало за секунду и складывать в кучу, а потом брать всё что накапало за последние 45с и на экран.
Ну а для дозы просто всё подрят складывать и делить на время которое прибор включен.
Замерять частоту ардуиной то ещё извращение.
Не проще готовые проекты открыть ?
Я просто много тыкался в попытке замерить частоту ниже 10гц и это невозможно. Большую часть времени контролер просто стоит и много других пакостей уже и не вспомню.
- Сообщения: 12867
- Зарегистрирован: Сб дек 18, 2021 19:25:32
У меня в 99.9% проектов контроллер спит. Почему это - пакость?
И можно замерить частоту даже для 1 импульса в 10 лет (лень переводить это в пикоГерцы какие-то)
И можно замерить частоту даже для 1 импульса в 10 лет (лень переводить это в пикоГерцы какие-то)



