При измерениях и в контурах управления процессами часто используются 8-битные микроконтроллеры. Устройства недороги, широко доступны и могут программироваться на многих популярных языках высокого уровня, таких как C и Basic. Однако если в петле управления требуется использование нелинейного датчика, разработчик сталкивается с дополнительной проблемой, связанной с необходимостью разработки программного алгоритма линеаризации.
Одно из решений заключается в аппаратной реализации кривой для выполнения требуемой аппроксимации до того, как выходной сигнал датчика будет подан на вход аналого-цифрового преобразователя (АЦП) микроконтроллера. Это решение особенно привлекательно тогда, когда память процессора ограничена, а стоимость и количество компонентов нужно сохранить низкими. Дополнительным преимуществом является небольшая площадь печатной платы.
Рисунок 1. | Для выполнения требуемой аппроксимации кривой для нелинейного датчика вместо программного алгоритма линеаризации в этой схеме используется аппаратное решение. |
Примером может служить схема, показанная на Рисунке 1, в которой для измерения температур с ожидаемым диапазоном изменения от 0 °C до 500 °C используется термопара типа E. Выходной сигнал схемы изменяется в диапазоне от 0 до 5 В, в соответствии с полным диапазоном входных сигналов АЦП, и может быть выражен в виде уравнения линейной системы:
(1) |
Секция усилителя сигнала термопары состоит из компенсатора холодного спая IC1, операционного усилителя IC2 и сопутствующих цепей. IC1 отслеживает температуру окружающей среды TR и добавляет корректирующее напряжение VC для компенсации напряжения холодного спая VR, возникающего при присоединении выводов хромель-константановой термопары к медным контактным площадкам печатной платы. Затем IC2 усиливает зависящий от температуры сигнал термопары VM на 175 для получения VT перед линеаризацией. Коэффициент усиления 175 устраняет необходимость в дополнительном усилении во время подбора кривой.
Фильтр нижних частот C1-R2 с полюсом на частоте примерно 6 Гц подавляет шумы источника питания.
Таблица 1. | Термоэлектрические напряжения VM для различных значений температуры | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Для создания нелинейной математической зависимости между выходным сигналом усилителя термопары VT и входным сигналом АЦП VO можно использовать электронную таблицу Excel. В Таблице 1 для 11 температур (от 0 °C до 500 °C с шагом 50 °C) показаны соответствующие термоэлектрические напряжения VM. Значения напряжений VM были взяты из справочной таблицы для стандартной термопары типа E. Также показаны напряжения VT и VO, которые наносились на график с использованием программной функции рассеяния XY. Формула для VO создавалась с использованием линии тренда, полученной программным путем:
(2) |
Этот полином второго порядка реализуется аналоговым умножителем IC3 и пятью однопроцентными резисторами:
(3) |
Четыре входа (X и Y) микросхемы IC3 подключены таким образом, чтобы сформировать квадратичный член полинома, который на выходе будет масштабирован 1:10 внутренними цепями микросхемы. Сравнивая коэффициенты членов полинома, видим, что с должно быть равно 0.0165. Поскольку резисторы R3 и R4 образуют делитель, ослабляющий напряжение VT, с можно выразить как:
(4) |
Затем можно найти сопротивление R3, подставив c = 0.0165 и выбрав значение R4, которое для этой схемы было выбрано равным 10 кОм.
Резисторы R5, R6 и R7 образуют пассивный сумматор, формирующий член постоянного смещения полинома a и коэффициент при линейном члене b в формуле (3). Выходное напряжение пассивного сумматора подается непосредственно на вход Z микросхемы IC3, в результате чего к квадратичному члену добавляются смещение и коэффициент при линейном члене. Еще раз сравнивая коэффициенты членов полинома, видим, что a (3) должно быть равно 0.0342 В (2). Это можно выразить как:
(5) |
Чтобы спроектировать эту часть пассивного сумматора, стабильное опорное напряжение VREF было выбрано равным 2.500 В, сопротивление резистора R5 – 10 кОм, а затем из (5) было рассчитано значение R6.
И наконец, сравнив b в (3) с соответствующим значением 0.8703 в (2), можно выразить линейный коэффициент b как:
(6) |
Чтобы найти сопротивление последнего компонента R7, эта формула преобразована:
(7) |
Мы проверили схему, заменив термопару источником напряжения с низким выходным сопротивлением, чтобы имитировать VM. Погрешность выходного напряжения VO микросхемы IC3 составила в худшем случае около 3.4 °C при 0 °C (VO = 0.034 В) и –1.8 °C при 500 °C (VO = 4.982 В), то есть, при напряжении полной шкалы. При 250 °C было зарегистрировано среднее значение ошибки 0.2 °C (VO = 2.502 В).