Калибровка. Часть 1

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

Цифро-аналоговый преобразователь SD2421G производства SDIC с токовым выходом 4…20 мА

Позвольте мне начать с возвращения к школьной математике. Мы знаем, что график прямой линии имеет вид

  (1)

где m – наклон линии, а b – точка пересечения с осью Y (Рисунок 1). На этом сайте развернулась оживленная дискуссия о том, является ли это линейной функцией. Не вдаваясь в подробности этой дискуссии, я для удобства буду называть график прямой линии линейной функцией, так что можете подать на меня в суд, если вам это не нравится. Типичный график показан ниже.

Уравнение прямой выводится следующим образом:

  (2)

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

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

Если только вы не проектируете какую-то совсем примитивную систему, вам потребуется учесть этот разброс, а сделать это можно с помощью калибровки. Калибровка позволяет системе определить характеристику преобразования при известном входном воздействии. Если система линейна, то, задав две известные входные точки (X1 и X2 на Рисунке 1) и измерив соответствующие им выходные значения (Y1 и Y2), вы сможете по измеренному значению y определить соответствующую входную величину x.

График, демонстрирующий линейную зависимость.
Рисунок 1. График, демонстрирующий линейную зависимость.

Начнем с простого – с ЦАП. Предположим, что ЦАП в системе представляет собой 12-разрядное устройство с опорным напряжением 5 В (следовательно, максимальное выходное напряжение составляет 5 В при входном коде 0xFFF). Выход ЦАП управляет операционным усилителем; нам нужен диапазон выходных сигналов 0–10 В (Рисунок 2). Я делаю это так: устанавливаю коэффициент усиления операционного усилителя чуть больше 2, чтобы гарантировать, что максимальное выходное напряжение всегда будет выше 10 В при любых возможных отклонениях опорного напряжения ЦАП и сопротивлений резисторов в цепи операционного усилителя. (Само собой разумеется, что операционный усилитель должен питаться от источника с напряжением более 10 В).

График, демонстрирующий линейную зависимость.
Рисунок 2. Выходное напряжение ЦАП 0-5 В подается на операционный усилитель,
чтобы получить диапазон напряжений 0-10 В.

Такой подход сужает динамический диапазон ЦАП, но это небольшая цена за то, чтобы избавиться от одного-двух подстроечных резисторов. В рамках разработки программы (проектирование для испытания) я создам метод увеличения или уменьшения выходного сигнала в режиме калибровки, чтобы настройка ЦАП корректировалась до тех пор, пока выходное напряжение (измеренное с помощью откалиброванного цифрового вольтметра) не составит 1 В. (Конечно, существует соответствующий допуск). Это число затем обозначается как N1. Повторите процесс регулировки в верхней части диапазона, чтобы получить значение 10 В, и результатом будет N2. Эти значения сохраняются, предпочтительно в энергонезависимой памяти.

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

Если воспользоваться уравнением (2), можно сделать подстановку:

  (3)

Это можно свести к следующему:

  (4)

Извлекая x, получаем:

  (5)

Величина (N2–N1) является константой для данной калибровки и для ускорения выполнения даже может быть рассчитана заранее. Выполняя умножение, а затем деление, я обнаружил, что обычно можно обойтись целочисленной арифметикой. В конце вычислений вы записываете значение x в ЦАП с уверенностью, что это даст вам желаемое выходное напряжение.

Давайте теперь изменим поток данных и посмотрим на АЦП, показанный на Рисунке 3. Токовая петля 0-20 мА – это редкий вариант петли 4-20 мА, но я хочу использовать ее, чтобы лучше донести свою мысль. Поскольку в токовой петле можно последовательно соединить несколько приемников, желательно, чтобы падение напряжения в приемнике было низким, и приемник был способен работать с плавающим входом. В противном случае достаточно было бы просто подключить резистор 250 Ом к земле. Выберем входной резистор 22.1 Ом, чтобы максимальное падение напряжения составляло 442 мВ. Коэффициент усиления инструментального усилителя равен 10, поэтому мы получаем 4.42 В.

Схема на основе инструментального усилителя для преобразования тока петли 0-20 мА во входное напряжение АЦП 0-5 В.
Рисунок 3. Схема на основе инструментального усилителя для преобразования тока петли 0-20 мА
во входное напряжение АЦП 0-5 В.

Я выберу для калибровки значения 0 мА и 20 мА. Нижний диапазон выбран неслучайно – как вы увидите, разумный выбор может упростить расчет (как я уже отмечал выше). Сначала в процессе калибровки ток не подается (i = 0 мА), и определяется соответствующее выходное значение АЦП N1. Затем калибратор переключается на i = 20 мА, и верхнее значение берется и сохраняется как N2. Снова возвращаемся к уравнению (2):

  (6)

Как я уже говорил, выбор нуля упростит это выражение до

  (7)

И, наконец,

  (8)

Когда АЦП выполняет преобразование, ток (i) можно просто рассчитать. Опять же, умножение всех числителей перед вычислением знаменателя обычно позволяет мне ограничиться целочисленной арифметикой, особенно если я соответствующим образом масштабирую показания. Например, вместо работы с током 20 мА я мог бы выразить его как 20,000 мкА или в каком-либо промежуточном масштабе.

При калибровке я пришел к выводу, что гораздо лучше использовать калибратор, специально предназначенный для этой цели. Использование датчика может давать ненадежные результаты. Однажды мы продали модуль RTD с выходом 4-20 мА, настроенный на диапазон 0-100 °C. Клиент попытался откалибровать его, поместив сначала в ледяную воду, а затем в кипящую. Как определить, что измеряемые температуры одинаковы для всей жидкости и что терморезистор стабилизировался, не говоря уже о том, что высота над уровнем моря и примеси влияют на обе точки перехода? Использование калибратора позволяет обеспечить согласованные настройки в процессе производства, однако это означает, что вариации характеристик датчика будут влиять на общие характеристики системы.

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

До сих пор мы рассматривали подход, который я использую в подавляющем большинстве своих аналоговых проектов. Он хорошо себя зарекомендовал, но есть как минимум еще один подход, который я рассмотрю в Части 2.

  1. Datasheet Analog Devices AD626AR
  2. Datasheet Microchip MCP3201

ООО «Мегател», ИНН 3666086782, ОГРН 1033600037020

Добавить свое объявление

* заполните обязательные данные

Статистика eFaster:

посетило сегодня 650
сейчас смотрят 24
представлено поставщиков 1186
загружено
позиций
25 067 862

Продолжая использовать веб-сайт без изменения настроек браузера, вы выражаете согласие на использование cookie-файлов в соответствии с настоящей Политикой использования cookie-файлов.