Выбираемый делитель напряжения Оптимальная точка переключения

Я построил схему для измерения неизвестного сопротивления (в большом диапазоне), которая в основном выглядит следующим образом:

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Range_Select_1 и Range_Select_2 могут быть установлены микроконтроллером на GND или High-Impedance. При установке на GND они эффективно закорачивают делитель напряжения и удаляют резисторы ниже узла. Итак, в схеме выше.

  • Range_Select_1 = GND => Низкое сопротивление = 1 кОм
  • Range_Select_1 = Z, Range_Select_2 = GND => Низкое сопротивление = 11 кОм
  • Range_Select_1 = Z, Range_Select_2 = Z => Сопротивление нижней стороны = 111 кОм

Существует ли оптимальный способ выбора настроек Range_Select_1 и Range_Select_2 для получения наилучших результатов при измерении Rx?

Я полагаю, что получу 3 показания АЦП (по одному для каждого выбранного диапазона) и выберу одно из них как наилучшее. Как мне выбрать, какой из них, не зная истинного значения Rx заранее (что, в первую очередь, помешало бы проведению измерения).

Имейте в виду, что выход логического «0» не является точно 0 вольт, если он должен поглотить какой-либо ток. Это сделает ваши показания очень неточными на шкале с низким сопротивлением, где логический 0 может составлять 0,5 вольта или около того.
@JoeHass хорошее замечание, я не ожидаю утонуть больше, чем на миллиампер или около того.

Ответы (3)

Вопрос немного двусмысленный, поэтому я постараюсь правильно интерпретировать ваш вопрос.

Термин «оптимальный» нуждается в небольшом уточнении. Учитывая, что вы сделали три чтения р Икс значение, которое не меняется между показаниями, теперь вопрос в том, как определить, какое значение р Икс является. Хотя вы можете выбрать один из трех, наиболее близкий к истинному значению, это не единственный способ.

Выполнение преобразования АЦП отсекает младшие части цифр от аналогового чтения. Как я уверен, вы уже знаете, уравнение, чтобы найти р Икс как следует:

А "=" 2 н р л р Икс + р л

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

Диапазон значений, для которых р Икс будет производить то же самое А значение равно (путем простой перестановки терминов):

р Икс  ниже "=" ( 2 н А + 1 1 ) р л
р Икс  верхний "=" ( 2 н А 1 ) р л

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

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

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

В качестве примера рассмотрим выполнение трех значений чтения для истинного значения р Икс "=" 4424 . Это приведет к (при условии количества битов н "=" 10 ):

А 1 к "=" 188
А 11 к "=" 730
А 111 к "=" 984

Что соответствует расчетным диапазонам р Икс для каждого меньшего значения сопротивления:

р Икс  1k ниже "=" 4417,99
р Икс  1k верхний "=" 4446,81

р Икс  на 11к ниже "=" 4409.03
р Икс  11k верхний "=" 4430.13

р Икс  111k ниже "=" 4394,92
р Икс  111k верхний "=" 4512.20

Выбор нижней границы и верхней границы для нахождения наименьшего диапазона значений дает нам выбор р Икс  1k ниже и р Икс  11k верхний соответственно. Выбор средней точки из этого ограниченного диапазона дает нам:

р Икс  11k верхний р Икс  1k ниже 2 + р Икс  1k ниже  "=" 4424.06

Выбор средних точек для отдельных диапазонов даст р Икс  1к "=" 4461,37 , р Икс  11к "=" 4453,56 и р Икс  111к "=" 4419,58 соответственно. Обратите внимание, что я выбрал значение 4424 для иллюстрации этого примера.

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

Одна альтернатива, которая, возможно, больше похожа на то, что вы хотели в первую очередь, состоит в том, чтобы выбрать одно из показаний АЦП на основе средней абсолютной ошибки.

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

М "=" р Икс  верхний р Икс  ниже 2 + р Икс  ниже
Ошибка "=" р Икс  ниже М ( М Икс ) г Икс + М р Икс  верхний ( Икс М ) г Икс

То есть измерьте абсолютную (и немасштабированную) ошибку от средней точки диапазона.

Используя это, вы можете получить решение в закрытой форме для каждого диапазона значений и рассчитать абсолютную ошибку для каждой комбинации резисторов. Я сделал это и использовал GNUPLOT для создания красивой картинки (предполагается, что преобразование АЦП будет 10-битным):

введите описание изображения здесь

Обратите внимание, что это построено в логарифмическом масштабе. Глядя на график, кажется, что 3316 и 34943 являются подходящими точками пересечения.

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

Пожалуйста, дайте мне знать, если я сделал какой-либо анализ по ошибке.

это невероятно тщательно, большое спасибо! Я думаю, что выбор значения АЦП, который приближает меня к АЦП среднего масштаба, подходит для моих целей, но это все же фантастический ответ.

Показание будет прямо на краю шкалы для неправильных диапазонов. В неправильной шкале слишком маленькое сопротивление дает показание почти 5 В, а слишком большое снижает показание почти до 0 В.

Например, резистор 500 Ом рядом с 111К не имеет большого значения, поэтому делитель будет выдавать почти 5В. Или 200K Rx рядом с 1K захлестнет 1K. Показание будет около 0В.

Выберите диапазон, в котором показание ближе всего к среднему значению 2,5 В. Показание составляет ровно 2,5 В, когда сопротивление диапазона равно Rx, что является идеальным.

Кстати, я чувствую, что вы заново изобретаете цифровую кастрюлю. Вы можете заменить R1, R2 и R3 цифровым потенциометром, который переходит от 0 до 100K за 256 шагов, используя его как реостат. Чтобы обнаружить Rx, который находится в диапазоне, скажем, от 500 Ом до 100 кОм, вы можете просто сдвинуть цифровой потенциометр (наоборот, в случае короткого замыкания Rx!) до тех пор, пока не получите показание около 2,5 В (реостат примерно 1 :1 с резистором). Затем Rx напрямую получается из значения реостата. Некоторая дополнительная логика может иметь дело с побочными случаями в разумных пределах. Например, если Rx - мегаом, то напряжение, когда потенциометр установлен на полные 100 кОм, составляет всего 0,455 В. В этот момент вы останавливаетесь и делаете вывод, что Rx в десять раз больше.

Я не изобретаю цифровой потенциометр заново, но я понимаю, что вы имеете в виду, я в основном сделал нелинейный цифровой потенциометр с двумя отводами, лол ... по иронии судьбы у меня действительно есть настоящий цифровой потенциометр в другом месте моей схемы.
Не вызовет ли это проблем с любым значением Rx около 1000 Ом? И это только для абсолютного максимума импульсного тока, когда отводы цифрового потенциометра близки к 0 (50 мА). Большинство цифровых потенциометров имеют значительно низкий максимальный рекомендуемый ток через стеклоочиститель и верхний/нижний конец потенциометра, например, от 2 до 10 мА! Любой значительно низкий (менее ~ 800 Ом) резистор Rx поджарит цифровой горшок.

По сути, вы реализуете то же самое, что и мультиметр с автоматическим выбором диапазона.

Вам нужно решить, насколько высокое или низкое сопротивление вы хотите измерить, а затем разделить его на несколько диапазонов. Затем решите, что каждый диапазон представляет в АЦП, как таблица истинности.

Если Rx/RangeX дает значение АЦП ниже 1 В, переключитесь на следующий более низкий диапазон. Если это все еще происходит, то переключитесь на следующий более низкий диапазон. Повторяйте до тех пор, пока диапазон АЦП не станет чем-то полезным, с чем вы сможете работать.

Из вопроса:

Они используют резисторную лестницу, например, 9 МОм + 900 кОм + 90 кОм + 10 кОм. Это дает вам в общей сложности 10 M и касания в 1:10, 1:100 и 1:1000. Они существуют в однокомпонентных сетях с жесткими относительными допусками (более важными, чем абсолютные допуски).

Единственное, что я бы посоветовал, это убедиться, что вы используете точный омметр для проверки выбранных вами резисторов, и выбрать тот, который ближе к выбранному вами значению. Из-за допусков резистор 100 кОм 10% может иметь отклонение до 10 кОм в любом направлении. Так что вам нужно точно измерить и отметить, что это на самом деле.

См. ответ на Как работает автоматический выбор диапазона в мультиметре? Что такое схема? Больше подробностей.