Этот пример показывает, как аппроксимировать нелинейные зависимости термопары типа S.
Термопара является одним из популярных аналоговых преобразователей сегодня, наряду с другими устройствами, такими как датчики положения, тензодатчики, датчики давления и устройства температуры сопротивления (RTD). Действует по принципу эффекта Зеебека (a.k.a. термоэлектрический эффект), термопары имеют эмпирически определенное нелинейное поведение, которое хорошо известно в полезной рабочей области значений каждого типа соединения. Если вы запускаете модель, вы сможете увидеть совокупный эффект каждого компонента на точность динамических измерений. Этот пример сосредоточится на моделях для каждого из этих компонентов в динамической системе измерения температуры для Типа S (Платиновый Родий 10% (+) против Платины (-)): устройство термопары и собрание исследования, метод создания условий сигнала, аналого-цифровой преобразователь (ADC) и спецификация программного обеспечения для преобразования ADC произведены в температурное значение. В дополнительном разделе показано, как получить и использовать стандартные данные NIST ITS-90 термопар с моделями Simulink ®. Интерполяционные таблицы и полиномиальный блок используются в этом проекте, чтобы захватить нелинейное поведение термопары. Обратите внимание, что полиномиальный блок является жизнеспособной альтернативой интерполяционным таблицам для некоторых приложений, минимизируя использование ПЗУ за счет некоторых дополнительных расчетов для полного полиномиального представления.
open_system('sldemo_tc')
Фигура 1: Система измерения температуры: цепь компонентов от физического явления до значений программного обеспечения
Двумя основными функциями модели термопары являются динамика зонда и шарика и преобразование температуры термопары в милливольтный сигнал. Динамика зонда + шарика моделируется как система первого порядка 30 мс, и поведение нелинейных термопар моделируется с помощью полиномиальных данных сегмента 1 из стандартной базы данных NIST 60 для термопары типа S от -50 до 1063 ° C. Для численной устойчивости коэффициенты были масштабированы, чтобы вернуть микровольты из полиномиального блока. Выход Подсистемы модели термопары 1 Type S затем преобразуется в вольты с блоком Unit Conversion. Обратите внимание, что модули заданы во входных и выходных портах подсистемы и отображаются на значках подсистемы. Чтобы узнать больше об модулях, см. «Спецификация единиц измерения» в Модели.
Альтернативной реализацией использования полинома является интерполированная интерполяционная таблица. Данные таблицы могут использоваться в блоке интерполяционной таблицы вместо полиномиального блока. Выборочные данные был построены из стандартной базы данных NIST 60 для термопары типа S в файле sldemo_create_tc_tabledata.m
Доступ к этой базе данных описан ниже в разделе «Процедура загрузки и импорта справочных данных по термопарам».
АЦП в этой модели ожидает сигнал от 0 до 5 В, поэтому напряжение измерения необработанной термопары смещено и усилено, соответствующая область значений от -0,235 мВ до 18,661 мВ (от -50 ° С до 1765 ° С). Фильтр Баттерворта третьего порядка был разработан для Wn = 15 Гц с использованием Signal Processing Toolbox™:
[num,den] = butter(3, 15*2*pi, 'low', 's')
Выход сглаживающего фильтра подает устройство расчета и удержания, которое управляет моделью квантования. Поскольку период дискретизации составляет 20 мс в этом примере, время преобразования игнорируется, так как обычно это на 2 порядка величины меньше для устройств, доступных в настоящее время. (Примечание: если бы время преобразования было заметной долей периода дискретизации, это не могло быть проигнорировано, так как это значительно повлияло бы на динамику системы.)
Алгоритм квантования в модели принимает сигнал от 0 до 5 вольт и выводит 12-битное цифровое слово в 16-битном целом значении со знаком. Значение 0 соответствует 0 В, а значение 4096 соответствует 5 В. Изменение наименее значимого бита (LSB) составляет около 1,2 мВ. Поскольку 12 бит могут достигать только значения 4095, самое высокое напряжение, которое может считываться этим устройством, составляет приблизительно 4,9988 В. В порядок, чтобы иметь не более 1/2 ошибки LSB в рабочей области значений, квантователь изменяет значения посередине между каждой точкой напряжения, получая 1/2 интервала ширины на 0 В и 3/2 интервала ширины чуть ниже 5 В. Последний интервал имеет 1 полный LSB из-за его размера 3/2 ширины.
The sldemo_adc_quantize
модель позволяет исследовать A/D компонент конвертера более подробно:
open_system('sldemo_adc_quantize')
Фигура 2: Детали моделирования квантования АЦП (время преобразования нуля)
sim('sldemo_adc_quantize') set(gcf,'Color',[1,1,1]);
Фигура 3: Характеристика квантования АЦП.
ax = get(gcf,'Children'); set(ax(1), 'xlim', [4085, 4100]);
Фигура 4: Характеристика квантования АЦП: масштабируется до верхней части области значений, чтобы выявить поведение ошибки 1 LSB в верхнем конце (остальная часть области значений имеет только ошибку 1/2 LSB max).
Для подсистемы входного преобразования требуется 16 бит неподписанное целое число вход от АЦП, полная шкала области значений которого составляет от 0 до 4095 отсчётов, соответствующий напряжению на цикл -0,235 мВ и 18,6564 мВ. Лучшая точность и самый быстрый алгоритм для входа параметров - прямая интерполяционная таблица. Поскольку вход является целым числом от 0 до 4095, может быть составлена таблица, которая задает температуру термопары, соответствующую каждому возможному входному значению, поэтому процесс преобразования может быть сведен к индексации в таблицу. Однако для этого требуется один номер на выходное значение АЦП, и для 12-битного АЦП это может быть нагрузкой в окружениях с ограничениями памяти. Для данных двойной точности это требование к ПЗУ на 16 кБ. См. файл sldemo_create_tc_tabledata.m
для метода, используемого для создания прямой интерполяционной таблицы из справочных данных термопар типа S. Ошибка, связанная с этим подходом, полностью изолирована от процесса конструкции таблицы, поскольку существует выходное значение, сопоставленное со всеми возможными входными значениями - процесс просмотра во время выполнения не вносит дополнительной ошибки.
В модель была также помещена интерполированная таблица, использующая всего 664 байта. Это - большое сокращение необходимого ПЗУ по сравнению с прямым поиском таблицы, но вычислять его требуется бит больше времени, чем косвенный доступ к памяти, и вносит ошибку в измерение, которое снижается по мере числа точек в таблице увеличений.
open_system(sprintf('sldemo_tc/3 Software specification\nfor converting\nADC values to temperature'))
Используя ITS-90 базу данных термопар NIST (Стандартная справочная база данных 60 из NIST Monograph 175), можно получить доступ к стандартным справочным данным, описывающим поведение для восьми стандартных типов термопар. Эта база данных связывает выход термопар с Международной температурной шкалой 1990 года. Выполните следующие шаги, чтобы получить и прочитать данные, необходимые для полного выполнения файлов поддержки, включенных в этот пример:
1. Посетите сайт базы данных NIST Standard 60 в Интернете и загрузите файл all.tab в локальную директорию. Этот файл находится под гиперссылкой Все типы термопар. После завершения загрузки вернитесь на эту страницу.
2. cd в директорию, где вы загрузили базу данных термопар all.tab
3. Проанализируйте базу данных и преобразуйте ее в массив структур MATLAB с помощью инструмента преобразования readstdtcdata.m:
tcdata = readstdtcdata('all.tab'); save thermocouple_its90.mat tcdata;
(совет: выделите указанный выше код MATLAB и используйте для его выполнения менюитем правой мыши «Оценить выбор»)
У Вас теперь есть полный комплект температуры (T, degC) против напряжения (E, mV) данные, приближая многочленные коэффициенты, и обратные многочленные коэффициенты для стандартных типов B, E, J, K, N, R, S термопары и T в tcdata переменной файла thermocouple_its90.mat. Скрипт MATLAB в sldemo_create_tc_tabledata.m
использует эти данные для подготовки параметров блоков интерполяционной таблицы, используемых в модели примера.
Если вы просмотрите таблицы данных термопар в структуре tcdata или в all.tab, вы, вероятно, заметите несколько вещей:
Повторные температурные точки 0 ° C в данных
Повторные точки напряжения в данных из-за 3-значного выхода
Немонотонное поведение с двумя температурами, имеющими одинаковый выход, например, для термопары типа B, T (E) не работает, но E (T) работает
Процедура readstdtcdata () удаляет повторные температурные точки 0 ° C из данных, но повторные напряжения из-за формата данных и немонотонного поведения некоторых концов кривой должны рассматриваться в индивидуальном порядке. Образец модели с именем sldemo_tc_blocks
была построена с использованием sldemo_tc_blocks_data.mat. Он содержит интерполяционные таблицы с данными, заполненными из интерполяционных полиномов для восьми стандартных термопар в all.tab:
open_system('sldemo_tc_blocks')
Фигура 5: Полный диапазон 2 степень по Цельсию Интерполированные таблицы термопар, созданные из ITS-90 интерполяционных полиномов
1. URL-адрес базы данных ITS-90 термопар NIST: https://srdata.nist.gov/its90/main
2. «Функции Ссылки температурной электродвижущей силы и таблицы для буквенно-обозначенных типов термопар на основе ITS-90.» Монография 175 Национального института стандартов и технологий; 1993. 630 п.
3. Международная шкала температуры 1990 года (ИТС-90), Консультативный комитет по термометрии (ККТ) Международного комитета по весам и мерам (КМКПТ)
4. Термоэлектрические эффекты в металлах: термопары, С. О. Касап 1997
ПРИМЕЧАНИЕ: Для определения эмпирических отношений сложных систем, таких как двигатели и для подгонки моделей к измеренным данным, MathWorks ® предлагает Model Based Calibration Toolbox, который использует методологию Design of Experiments для оптимизированного создания базы данных таблицы, плюс извлечение значения и автоматизированные компоненты заполнения таблицы.