В этом примере показано, как аппроксимировать нелинейные отношения термопары типа 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.
Альтернативная реализация к использованию полинома является интерполированной интерполяционной таблицей. Табличные данные могли использоваться в блоке интерполяционной таблицы вместо полиномиального блока. Выборочные данные были созданы из Базы данных Стандарта NIST 60 для термопары Типа S в файле sldemo_create_tc_tabledata.m
. Доступ к этой базе данных описан ниже в разделе, названном "Загрузка Справочных данных термопары и Процедура Импорта".
ADC в этой модели ожидает от 0 до сигнала на 5 вольт, таким образом, необработанное напряжение смысла термопары будет смещено и усилило соответствие области значений-0.235 мВ к 18,661 мВ (-50 degC к 1765 degC). Третий порядок фильтр сглаживания Баттерворта был спроектирован для Wn = 15 Гц с помощью Signal Processing 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. База данных NIST ITS-90 термопары
2. "Температурно-электродвижущие Функции Ссылки Силы и Таблицы для Определяемых Буквой Типов Термопары На основе ITS-90". Монография Национального института стандартов и технологий 175; 1993. 630 p.
3. Международная температурная шкала 1 990 (ITS-90), консультативный комитет по термометрии (CCT) международного комитета весов и мер (CIPM)
4. Термоэлектрические эффекты в металлах: термопары, С. О. Касап 1997
ПРИМЕЧАНИЕ: для определения эмпирических отношений сложных систем, таких как механизмы и для того, чтобы подбирать модели к результатам измерений, MathWorks® предлагает Основанный на модели Калибровочный Тулбокс, который использует Проект методологии Экспериментов для оптимизированного табличного создания базы данных плюс экстракция значения и автоматизированная таблица, заполняющая компоненты.