Найти тему
Разумный мир

Нескучная метрология. А давайте я и вас сосчитаю. Измеряем считая

Оглавление

Давайте займемся более практическими вопросами. Математика предельно абстрактна, это изобретение (или открытие) человеческого разума. Но не менее абстрактна и простая арифметика, которая является самым простым разделом математики, и с которой начинается изучение математики. Более того, абстрактны даже числа и цифры. При этом количество чего-либо, а для обозначения количества и были придуманы цифры и числа, отнюдь абстрактным не является.

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

Точно так же сегодня поступим и мы. Будем считать импульсы, причем не важно, чему эти импульсы соответствуют. Нам будет важным лишь сам факт наличия импульса, как события, и, в некоторых случаях, его длительность.

Нескучная метрология. Что в импульсе тебе моем?
Разумный мир12 ноября 2022

Считаем количество чего угодно

И для этого нам даже не обязательно потребуется электричество. Счетчик может быть и механическим, например, таким

Такой счетчик считает механические импульсы. Для данного счетчика это ручные нажатия на рычажок над цифровым табло. Но механические счетчики могут быть самыми разными и механический импульс может создаваться, например, движущимся по ленте конвейера предметом. Когда то давно такие счетчики широко применялись, но позже их вытеснили электрические, а сегодня электронные.

Черная круглая ручка с правой стороны это колесико сброса счетчика. Перед началом счета мы сбрасываем счетчик - устанавливаем нулевые показания на табло. Когда счет закончен мы записываем отображаемое на табло число. Сколько времени занимает счет совершенно не важно. Мы просто считаем количество импульсов.

Ничего принципиального не изменится при замене счетных колес на колеса с перекидными цифрами, например, такими

-2

Мы можем сделать такой счетчик электро-механическим просто добавив электромагнит с подвижным сердечником, который будет нажимать на рычажок. Принцип счета останется механическим, но считать счетчик теперь будет электрические импульсы.

Можно сделать счетчик электронным. От этого он не перестанет быть счетчиком. Счетчик ведет подсчет событий поступающих на вход в виде импульсов. При этом мы можем разделить функции счета и отображения. Это для нас важно, так как кроме отображения мы можем передавать результат счета по каналам связи.

Функции счета и отображения это разные функции. Иллюстрация моя
Функции счета и отображения это разные функции. Иллюстрация моя

Вверху показан индикатор, который не только является отдельной функцией, со счетом не связанной, но и может быть заменен на канал связи, ввод в ЭВМ, и т.д. Нам сейчас совершенно не важна разрядность (количество цифр) индикатора.

Собственно счетчик имеет два сигнальных входа. Первый, и самый важный, это вход импульсов, которые мы считаем. Повторю, это могут быть любые импульсы, не обязательно электрические, в общем случае. Поскольку счетчик, в общем случае, может считать как вперед, так и назад, я показал, что этот вход изменяет состояние счетчика на "+1".
Счет назад, изменение состояния на "-1", нас сегодня интересовать не будет. Второй вход является входом импульсов сброса счетчика. Возможность установки начального состояния счетчика на отличное от 0 значение нас сегодня так же не будет интересовать.

Но многое ли мы можем измерить таким простейшим счетчиком? Не очень много, но не так и мало.

Измеряем расстояние счетчиком событий

Это лишь один из примеров использования простейшего счетчика. Что будет, если мы добавим к счетчику колесо, которое будет формировать поступающие на счетчика импульсы? Многие из старшего поколения вспомнят подобные счетчики

-4

Да, это простой велосипедный измеритель пройденного расстояния. В отличии от ручного счетчика событий, который мы видели ранее, здесь нет рычажка. Импульсное (механическое) воздействие здесь создает закрепленный на спице велосипедного колеса небольшой штифт. Его можно увидеть ниже и левее счетчика. Один оборот колеса - один импульс для счетчика.

Здесь есть небольшая особенность. Входной импульс-событие (один оборот колеса) увеличивает состояние счетчика не на "+1", а на дробное значение, которое зависит от количества зубцов на крыльчатке, которая закреплена на валу счетчика. В остальном все аналогично. Зная длину окружности колеса мы можем перевести количество оборотов в пройденное расстояние.

Можно избавиться от дробных приращений состояния счетчика выбрав диаметр колеса таким, что бы один оборот соответствовал единице младшего разряда счетчика. Можно заменить механический счетчик на электронный. Дробные приращения при этом тоже будут возможны, но уже с помощью входного счетчика-делителя.

Как измерить частоту?

В данном случае, механический счетчик уже не подходит (за редким исключением). Поэтому будем рассматривать использование электронного.

Как все помнят, частота это число событий, за определенный интервал времени. Строго говоря, мы можем говорить о частоте только периодических сигналов. Для сигналов случайных или апериодических мы можем говорить только о некоторой средней частоте. Такие сигналы мы сегодня не будем рассматривать.

Для простоты, все сигналы сегодня буду изображать в виде прямоугольных импульсов. В конечном итоге, нам все равно форма импульсов сегодня не важна.

В простейшем случае, нам нужен обычный счетчик и какой-нибудь способ формирования заданных (и стабильных!) интервалов времени. Для задания временных интервалов снова отлично подойдут импульсы, только нам будет важен не только факт существования импульса, но и его длительность, Алгоритм работы простейшего частотомера не менее простой:

  1. Выполняем сброс счетчика
  2. В течении заданного интервала времени производим счет поступающих на вход импульсов (событий).
  3. Останавливаем счет на время отведенное на индикацию
  4. Возвращаемся к пункту 1
Простейший частотомер. Иллюстрация моя
Простейший частотомер. Иллюстрация моя

Между входом счетчика и входом частотомера появился элемент "логическое И", который разрешает прохождение входных импульсов на счетчик по сигналу (импульсу) "Счет". Внутренний мир "Генератора сигналов синхронизации" мы сегодня не будем рассматривать, будем считать его черным ящиком, который просто выдает требуемые нам сигналы.

Что бы понять, как этот частотомер работает, давайте посмотрим на временнУю диаграмму

Временная диаграмма работы простейшего частотомера. Иллюстрация моя
Временная диаграмма работы простейшего частотомера. Иллюстрация моя

В начальный момент времени, сразу после включения питания частотомера, состояние счетчика не определено. Это длится очень недолго и никакой проблемы не представляет. Далее начинается цикл работы прибора. Счетчик частотомера сбрасывается в состояние 0. Как видно, сигнал сброса является типичным импульсом. Причем нам совершенно не важна длительность этого импульса. Она лишь должна быть достаточной для сброса счетчика.

После сброса начинается отсчет времени счета. Длительность импульса "Счет" очень важна, она должна быть максимально стабильной! Именно стабильность времени счета определяет точность измерения частоты. Сигнал счет тоже является самым обычным импульсом. Он разрешает прохождение импульсов на вход счетчика. И счетчик теперь может их посчитать. Ну а мы можем увидеть весь процесс счета на индикаторе, если частота входных импульсов не слишком велика.

С окончанием импульса "Счет" начинается отсчет времени индикации. Теперь входные импульсы не поступают на вход счетчика и его состояние остается неизменным. Как видно, отдельного импульса "Индикация" не требуется. Время индикации должно быть достаточным, что бы оператор успел считать результат измерения.

Далее цикл работы частотомера повторяется. Снова сброс счетчика, счет входных импульсов, индикация, и так по кругу. Как видите, частотомер устроен действительно просто. Для измерения частоты нам просто потребовалась пара вспомогательных импульсов.

Таким образом мы можем измерять частоту, в данном случае, электрических, импульсов. Но эти импульсы могут формироваться первичными преобразователями из механических величин. И тогда мы можем измерять, например, частоту вращения вала или грампластинки. Они могут формировать из оптических величин. И тогда мы можем измерять, например, частоту мерцания источника света или скорость вращения крыльчатки вентилятора. Импульсы могут формироваться из радиочастотных импульсов. И тогда мы сможем измерить, например, скорость движения автомобиля.

Но в частоту могут преобразовываться практически любые аналоговые (непрерывные) физические величины. И частотомер, с этой точки зрения, является почти универсальным компонентом многих измерительных приборов. Или даже не частотомер, а просто счетчик.

Откуда берется абсолютная погрешность ± 1 для счетчиков?

Если с погрешностью частотомера все более-менее понятно, то с погрешностью простого счетчика все не так очевидно. Давайте попробуем разобраться, как может ошибаться счетчик.

Если посмотреть на механический ручной счетчик, то совершенно непонятно, как он может ошибаться. Но давайте посмотрим повнимательнее на счет каких-либо реальных событий, которые имеют отличную от нуля длительность. Например, на подсчет проходящих по ленте конвейера бревен

Счет количества проходящих по ленте конвейера бревен. Иллюстрация моя
Счет количества проходящих по ленте конвейера бревен. Иллюстрация моя

Видите проблему? Она в последнем бревне (правое, на иллюстрации). Рассмотрим проблему подробнее. Датчик, первичный преобразователь, формирует во время прохождения каждого бревна импульс, который и поступает на счетчик. Подсчет импульсов счетчик может вести или по переднему фронту (нарастающему), который соответствует началу бревна, или по заднему (спадающему), который соответствует концу бревна. В первом случае игнорируется задний фронт, во втором передний.

Все еще не видите проблему? Предположим, у нас конвейер остановился в том состоянии, которое показано на иллюстрации. Причина остановки не важна. Последнее бревно (самое правое) уже прошло по ленте конвейера, или еще нет? Я не случайно показал, что оно не все еще находится на ленте.

Если подсчет бревен ведется по переднему фронту (началу бревна), то третье бревно будет учтено, хотя его еще нельзя считать прошедшим по конвейеру. Наш счетчик учтет лишнее бревно, допустит ошибку "+1" к результатам счета.

Если же счетчик работает по заднему фронту (концу бревна), то третье бревно учтено не будет, хотя его и можно считать прошедшим по ленте, так как больше 2/3 бревна уже на ленте. Наш счетчик допустит ошибку "-1"к результатам счета.

Несложно заметить, что в этой ситуации нет никакой вины счетчика! Проблема в нашей интерпретации вопроса, в каком случае бревно будет считаться прошедшим по конвейеру. Причем здесь не должно быть неопределенностей, что не так просто.

Предположим, что конвейер подает бревна на какой то станок, например, пилораму. И остановка была вызвана поломкой этого станка. Бревна на конвейер помещает рабочий, который не хочет долго поддерживать бревно пока станок ремонтируют. И он убирает последнее бревно с ленты. Но ведь оно уже посчитано!

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

И это касается любых счетчиков, хоть механических, хоть электронных. Тот же самый ручной механический счетчик считает нажатия именно по моменту нажатия (передний фронт), а не по моменту отпускания (задний фронт).

Этот же вопрос я рассматривал в статье

Нескучная метрология. Независимость измерений. Чем линейка отличается от расходомера?
Разумный мир17 мая 2022

но с несколько иной точки зрения. Хотя и наш счетчик бревен является расходомером.

Абсолютная погрешность ±1 не является проблемой при большом количестве посчитанных импульсов. Просто относительная погрешность при этом получается очень малой и ей можно пренебречь. Но для малых результатов счета это уже серьезная проблема.

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

Все сказанное касается и частотомеров, поскольку в их основе лежат счетчики. А импульс "Счет" никак не синхронизирован во времени с входными импульсами. И если начало импульса еще можно синхронизировать, то окончание принципиально невозможно. При этом для частотомеров количество посчитанных за время измерения входных импульсов обычно велико, поэтому ±1 не является проблемой. Основной вклад в погрешность частотомера вносит погрешность формирования времени счета.

Что измерять, частоту или период? Как измерять длительность импульсов?

Все знают, что частота обратно пропорциональна периоду колебаний. Причем это касается любых периодических сигналов, а не только гармонических. И, чисто теоретически, не имеет значения, что именно мы измеряем. Однако, если посмотреть документацию на частотомеры, то можно заметить, что в некоторых случаях они измеряют частоту, а в некоторых период. Причем это не выбор оператора. В чем же дело?

Для измерения частоты с достаточной точностью нам нужно, что бы за время счета поступило большое количество импульсов. Поскольку сигнал периодический (я говорил про это в начале статьи), можно сказать, что должно пройти большое количество периодов входного сигнала. Если частота входного сигнала высокая, то проблем не возникает.

Предположим, что частотомер выполняет измерения один раз в секунду. Если входной сигнал имеет частоту 1 кГц, то счетчик за секунду сосчитает 1000 импульсов (периодов). Это достаточно много. Но если частота входного сигнала всего 10 Гц? Мы зафиксируем только 10 импульсов (периодов), что уже очень мало. А для 1000 импульсов нам уже потребуется время измерения 100 секунд, что слишком долго даже для терпеливого оператора. А если частота еще ниже?

Решить проблему можно переходом от измерения частоты к измерению периода. При этом у нас меняются местами сигналы входных импульсов и импульсов "Счет". А в качестве источника входных импульсов будет использоваться стабильный генератор заданной частоты. Но как выделить длительность периода? Очень просто

Измерения длительности и периода входных импульсов. Формирование времени индикации не показано, для упрощения. Иллюстрация моя
Измерения длительности и периода входных импульсов. Формирование времени индикации не показано, для упрощения. Иллюстрация моя

Я не буду приводить временные диаграммы, здесь все довольно просто и очень похоже на работу частотомера. Но кратко опишу основные отличия и особенности работы.

Как я и говорил, теперь у нас два сигнала поменялись местами. Генератор сигналов синхронизации теперь формирует эталонную частоту Fэт. Прохождением этих эталонных импульсов на счетчик управляет входной сигнал.

Если переключатель находится в правом положении "Длительность", то импульсы эталонной частоты будут поступать на счетчик пока на входе присутствует импульс. То есть, мы сможем посчитать количество эталонных импульсов за время действия входного импульса. Это и есть длительность входного импульса.

Если переключатель находится в левом положении "Период", то управлять прохождением эталонных импульсов будет входной сигнал прошедший через делитель на 2. То есть, меандр с длительностью импульса и паузы равными периоду входных импульсов. Мы по прежнему измеряем длительность импульса, но не входного, а длительностью равной периоды входного сигнала. Подчеркну еще раз, что это верно только для периодических сигналов!

Мы решили проблему измерения периода, а заодно и проблему измерения длительности импульсов. Но получили новую проблему. Дело в том, что при измерении частоты у нас импульс "Счет" одновременно, как побочный эффект, формировал и время индикации. Теперь мы не можем использовать этот подход, так как длительность времени индикации оказывается зависящей от скважности или периода входных импульсов. Поэтому придется добавить формирование импульсов управления индикацией в генератор сигналов синхронизации. Это не является сложным, поэтому я не стал показывать сигнал "Индикация" на иллюстрации.

Улучшаем наш частотомер

Простейший частотомер вполне работоспособен, но имеет один заметный недостаток. Во время счета отображаемая на индикаторе информация непрерывно изменятся. Она замирает только на "время индикации". Давайте устраним этот недостаток. Одновременно мы сможем совместить индикацию и счет. Для это просто нужно добавить немного памяти, в виде регистра, между счетчиком и индикатором

Частотомер с совмещением времени счета и времени индикации. Иллюстрация моя
Частотомер с совмещением времени счета и времени индикации. Иллюстрация моя

Работает это так, я покажу только сигналы (импульсы) управления

Работа частотомера с совмещение времени счета и индикации. Иллюстрация моя
Работа частотомера с совмещение времени счета и индикации. Иллюстрация моя

Импульс "Индикация" формируется сразу после окончания импульса "Счет". Он обеспечивает копирование состояния счетчика в регистр. Индикатор подключен в регистру, поэтому отображает результат скопированный в регистр, а не текущее состояние счетчика. Длительность импульса "Индикация" не важна, она просто должна быть достаточной.

Сразу после копирования состояния счетчика в регистр мы можем сбросить счетчик, это никак не повлияет на индикацию. И снова начать счет импульсов. Он будет проходить одновременно с индикацией.

Это улучшение применимо и для измерения длительности/периода.

Лирическое отступление о методах реализации счетчика частотомера

Не секрет, что сегодня весьма популярны различные микроконтроллеры. Поэтому возникает соблазн реализовать весь частотомер в виде программы. Увы, это редко удается сделать. Дело в том, что для счета импульсов требуется несколько шагов программы (машинных команд). И это без учета затрат времени на вывод на индикатор и управление индикацией, на обработку кнопок и прочих органов управления. В результате, максимальная частота, которую можно измерить программно, оказывается низкой. Она редко будет превышать пару десятков килогерц. И это еще хороший результат.

Гораздо большие шансы на успех имеет аппаратно-программная реализация. При этом используется аппаратный счетчик, обычно, одного из таймеров микроконтроллера. И максимальная измеряемая частота будет определяться быстродействием этого аппаратного счетчика и точностью (во временной области), с которой мы сможем управлять работой этого счетчика из программы.

Можно найти много примеров такой аппаратно-программной реализации частотомеров, на разных микроконтроллерах, с разной степенью точности и удобства. Мы же сегодня не будем углубляться в тему разработки таких частотомеров.

Заключение

Сегодня мы рассматривали только импульсы и их использование для измерений. Не смотря на то, что говорили мы только о счетчиках и частотомерах, с использование счета импульсов можно измерять самые разные физические величины, которые преобразуются в импульсы. Позже мы увидим некоторые примеры.

Коснулись мы и вопросов погрешности, без которых метрология не была бы метрологией. Может показаться, что счет бревен к метрологии имеет весьма опосредованное отношение, но это не так. По сути, такой счетчик является расходомером, а это уже на 100% вопрос метрологии. Да и к использованию в измерительных приборах с число-импульсными преобразованиями это имеет прямое отношение.

Обратите внимание, что все рассмотренные сегодня измерительные приборы, пусть и в виде функциональных схем, являются цифровыми! Даже механический счетчик.

В следующей статья мы посмотрим, как можно стать цифровым. Разумеется, речь пойдет не о приборах, а о сигналах. Но ведь эти сигналы в измерительных приборах используются.

До новых встреч!

Наука
7 млн интересуются