Этот пример показывает, как аппроксимировать нелинейные отношения термопары типа S.
Термопара является одним из популярных аналоговых преобразователей сегодня, наряду с другими устройствами, такими как датчики положения, сортаменты деформации, преобразователи давления и устройства температуры сопротивления (RTDs). Работа под принципом Эффекта Зеебека (a. k. a. термоэлектрический эффект), термопары имеют опытным путем решительное нелинейное поведение, которое известно в полезной операционной области значений типа каждого соединения. Если вы запустите модель, вы сможете видеть совокупный эффект каждого компонента на динамической точности измерения. Этот пример будет фокусироваться на моделях для каждого из этих компонентов в динамической системе измерения температуры для Типа S (Платиновый Родий 10% (+) по сравнению с Платиной (-)): устройство термопары и тестовый блок, метод создания условий сигнала, аналого-цифровой преобразователь (ADC) и требования к программному обеспечению для преобразования ADC вывод в температурное значение. Дополнительный раздел показывает, как получить и использовать стандартные данные NIST ITS 90 термопары с моделями Simulink®. Интерполяционные таблицы и полиномиальный блок используются в этом дизайне, чтобы получить нелинейное поведение термопары. Обратите внимание на то, что полиномиальный блок является жизнеспособной альтернативой интерполяционным таблицам для некоторых приложений, минимизируя использование ROM за счет некоторого дополнительного вычисления для полного полиномиального представления.
open_system('sldemo_tc')
Рисунок 1: система Измерения температуры: цепочка компонентов от физического явления до значений программного обеспечения
Две основных функции модели термопары являются зондом и украшают бисером динамику и преобразование термопары температуры в сигнал милливольта. probe+bead движущие силы моделируются как 30 систем первого порядка мс, и нелинейное поведение термопары моделируется с помощью данных многочлена сегмента 1 от Базы данных Стандарта NIST 60 для термопары Типа S от-50 до 1063 degC. Для числовой устойчивости коэффициенты масштабировались, чтобы возвратить микровольты в полиномиальный блок. Вывод 1 подсистемы модели Термопары Типа S затем преобразован в вольты с блоком Unit Conversion. Обратите внимание на то, что модули заданы на портах ввода и вывода подсистемы и отображены на значках подсистемы. Чтобы узнать больше о модулях в Simulink, см. Модули Simulink.
Альтернативная реализация к использованию многочлена является интерполированной интерполяционной таблицей. Табличные данные могли использоваться в блоке интерполяционной таблицы вместо полиномиального блока. Демонстрационные данные были созданы из Базы данных Стандарта NIST 60 для термопары Типа S в файле sldemo_create_tc_tabledata.m
, доступ к этой базе данных описан ниже в разделе, названном "Загрузка Справочных данных термопары и Процедура Импорта".
ADC в этой модели ожидает от 0 до сигнала на 5 вольт, таким образом, необработанное напряжение смысла термопары будет смещено и усилило соответствие области значений-0.235 мВ к 18,661 мВ (-50 degC к 1765 degC). Третий порядок фильтр сглаживания Баттерворта был разработан для Wn = 15 Гц с помощью Обработки сигналов Toolbox™:
[num,den] = butter(3, 15*2*pi, 'low', 's')
Вывод фильтра сглаживания подает устройство выбирать-и-содержать, которое управляет моделью квантования. Поскольку демонстрационный период составляет 20 мс в этом примере, время преобразования проигнорировано, когда это обычно - 2 порядка величины, меньшие для в настоящее время доступных устройств. Примечание: если бы время преобразования было заметной частью демонстрационного периода, оно не могло бы быть проигнорировано, когда оно значительно влияло бы на динамику системы.)
Алгоритм квантования в модели берет в от 0 до сигнала на 5 вольт и выходных параметров 12-битное цифровое слово в 16-битном целом числе со знаком. Значение 0 соответствует 0 вольтам, и значение 4 096 соответствовало бы 5 вольтам. Изменение в наименее значимом бите (LSB) составляет приблизительно 1,2 мВ. Когда 12 битов могут только достигнуть значения 4 095, самое высокое напряжение, которое может быть считано этим устройством, составляет приблизительно 4,9988 вольта. В порядке иметь не больше, чем 1/2 ошибку LSB в операционной области значений, квантизатор изменяет значения на полпути между каждой точкой напряжения, приводящей к 1/2-width интервал на уровне 0 вольт и 3/2-width интервал чуть ниже 5 вольт. Последний интервал имеет 1 полный LSB из-за 3/2-width размер.
Модель sldemo_adc_quantize
позволяет вам исследовать компонент конвертера A/D более подробно:
open_system('sldemo_adc_quantize')
Рисунок 2: Детали моделирования квантования ADC (обнуляют время преобразования),
sim('sldemo_adc_quantize') set(gcf,'Color',[1,1,1]);
Рисунок 3: характеристика Квантования ADC.
ax = get(gcf,'Children'); set(ax(1), 'xlim', [4085, 4100]);
Рисунок 4: характеристика Квантования ADC: увеличивший масштаб к верхней части области значений, чтобы показать 1 ошибочное поведение LSB на верхнем уровне (отдых области значений только имеет 1/2 максимальную погрешность LSB).
Входная подсистема преобразования требует входного параметра беззнаковых целых чисел на 16 битов от ADC, область значений полного масштаба которого от 0 до 4 095 количеств, соответствуя напряжению цикла термопары на 18,6564 мВ и на-0.235 мВ. Лучшая точность и самый быстрый алгоритм для входного преобразования являются прямой интерполяционной таблицей. Поскольку входной параметр является целым числом от 0 до 4 095, таблица может быть создана, который дает температуру термопары, соответствующую каждому возможному входному значению, таким образом, процесс преобразования может быть уменьшен до индексации в таблицу. Это, однако, требует одного номера на выходное значение ADC и для 12-битного ADC, это может быть нагрузкой в ограниченных средах памяти. Для данных двойной точности это - требование ROM на 16 Кбайт. Смотрите файл, sldemo_create_tc_tabledata.m
для метода раньше создавал прямую интерполяционную таблицу из справочных данных термопары Типа S. Ошибка, сопоставленная с этим подходом, полностью изолируется к табличному процессу конструкции, когда существует выходное значение, сопоставленное с каждым возможным входным значением - процесс поиска во время выполнения не представляет дополнительной ошибки.
Интерполированная таблица была также помещена в модель, с помощью только 664 байтов. Это - большое сокращение ROM, требуемого по сравнению с прямым поиском по таблице, но это берет немного дольше, чтобы вычислить, чем косвенный доступ к памяти и вводит ошибку в измерение, которое понижается как число точек в табличных увеличениях.
open_system(sprintf('sldemo_tc/3 Software specification\nfor converting\nADC values to temperature'))
Используя базу данных NIST ITS 90 Термопары (Стандартная Ссылочная База данных 60 от Монографии NIST 175), можно получить доступ к стандартным справочным данным, описывающим поведение для восьми стандартных типов термопары. Эта база данных связывает термопару вывод с Международной Температурной Шкалой 1 990. Выполните эти шаги, чтобы получить и читать в данных, должен был полностью осуществить файлы поддержки, включенные с этим примером:
1. Посетите базу данных NIST Standard 60 интернет-сайтов и загрузите файл all.tab на локальную директорию. Этот файл является тем под Всей гиперссылкой Типов Термопары. После того, как загрузка завершена, возвратитесь к этой странице.
2. CD к директории, где вы загрузили all.tab базу данных термопары
3. Проанализируйте базу данных и преобразуйте ее в массив структур MATLAB с помощью инструмента преобразования readstdtcdata. m:
tcdata = readstdtcdata('all.tab'); save thermocouple_its90.mat tcdata;
Совет: подсветите вышеупомянутый код MATLAB и пункт меню "Evaluate Selection" мыши права использования, чтобы выполнить его),
У вас теперь есть полный набор температуры (T, degC) по сравнению с напряжением (E, мВ) данные, аппроксимируя полиномиальные коэффициенты, и обратные полиномиальные коэффициенты для стандартных типов B, E, J, K, N, R, S термопары и T в tcdata переменной файла thermocouple_its90.mat. Скрипт MATLAB в sldemo_create_tc_tabledata.m
использует это данные, чтобы подготовить блочные параметры интерполяционной таблицы, используемые в модели в качестве примера.
Если вы рассмотрите таблицы данных термопары в tcdata структуре или в all.tab, вы, вероятно, заметите несколько вещей:
Повторная температура 0 degC указывает в данных
Повторное напряжение указывает в данных из-за 3-разрядного выходного формата
Немонотонное поведение с двумя температурами, выводом относительно того же самого, e. g., для термопары Типа B T не будет работать (E), но E (T) действительно работает
readstdtcdata () стандартная программа удалит повторные точки температуры 0 degC из данных, но с повторными напряжениями из-за формата данных и немонотонного поведения некоторых концов кривой нужно иметь дело на отдельной основе. Эталонная модель под названием sldemo_tc_blocks
была создана с помощью sldemo_tc_blocks_data.mat. Это содержит интерполяционные таблицы с данными, заполненными от интерполяционных многочленов для восьми стандартных термопар в all.tab:
open_system('sldemo_tc_blocks')
Рисунок 5: полный диапазон Интерполированные Таблицы Термопары на 2 градуса Цельсия создал из ITS 90 Интерполяционных многочленов
1. База данных термопары URL NIST ITS 90: http://srdata.nist.gov/its90/main
2. "Температурно-электродвижущие Функции Ссылки Силы и Таблицы для Определяемых Буквой Типов Термопары На основе ITS 90". Монография Национального института стандартов и технологий 175; 1993. 630 p.
3. Международная температурная шкала 1 990 (ITS 90), консультативный комитет по термометрии (CCT) международного комитета весов и мер (CIPM)
4. Термоэлектрические эффекты в металлах: термопары, С. O. Касап 1997
Примечание: для определения эмпирических отношений сложных систем, таких как механизмы и для подходящих моделей к результатам измерений, MathWorks® предлагает Основанный на модели Калибровочный Тулбокс, который использует Дизайн методологии Экспериментов для оптимизированного табличного создания базы данных плюс экстракция значения и автоматизированные табличные компоненты заполнения.