Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года

Ошибка в методах пользовательской калибровки в библиотеке C#

Вы не вошли.

 Поиск | Регистрация | Вход 

30.05.2019 08:20:56
#1

Участник
Здесь с 11.04.2019
Сообщений: 14

Ошибка в методах пользовательской калибровки в библиотеке C#

Здравствуйте, можете проверить методы
hltr22.fillUserCalibOffset(0, hltr22.FreqDiscretizationIndex, ltr22api.AdcRange.Range_0_3, -0.027f);
hltr22.fillUserCalibScale(0, hltr22.FreqDiscretizationIndex, ltr22api.AdcRange.Range_0_3, 1.00000f);

Как мне кажется они не корректно работают. Исходное значение 0.483 переводят в 48300, хотя в Lgrath2 эти коэфф переводят корректно

30.05.2019 15:19:52
#2

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,288

Re: Ошибка в методах пользовательской калибровки в библиотеке C#

Добрый день.
Тут скорее вопрос в том, что UserCalib в ltr22api и пользовательская калибровка  LGraph не совсем одно и то же.

LGraph2 для выполнения того, что там называется пользовательская калибровка, не использует какие-либо функции модулей, а просто для всех модулей хранит заданные коэффициенты на каждый канал и уже сам их явно применяет к результатам функции. Т.е. для LTR22 в частности эти коэффициенты применяются вручную уже к полученным данным из LTR22_ProcessData() и соответственно они переводят измерения из Вольт в пользовательские величины. LGraph2 никак не использует указанные Вами функции, оставляя коэффициенты UserCalib из ltr22api без изменения.

Коэффициенты UserCalib в API LTR22 используются по умолчанию для перевода из калиброванных кодов АЦП в Вольты, но API позволяет их заменить на другие коэффициенты для перевода не в Вольты, а в другие физические величины (хотя эта возможность есть далеко не во всех API модулей). Т.е. по умолчанию шкала у этих коэффициентов не 1, а  2 *Range / 65536 (где Range - значение предела выбранного поддиапазона, в вашем случае - 0.3 В, 65536 - количество кодов АЦП от -Range до +Range), для Вашего диапазона 0.3 получаем 2 * 0.3 / 65536 = 1./109226,66666.., соответственно, если Вы установили этот коэффициент в значение 1, то у Вас результат увеличился в 109226,66666 раз (по идее у Вас должно было получится ~52764, а не явно 48300).

Т.е. коэффициенты в LGraph2 применяются к Вольтам с сохранением коэффициентов перевода в Вольты в ltr22api, а в ltr212api функции заменяют коэффициенты перевода в Вольты на заданные пользователем, и применяются они к кодам.
Соответственно, Вы можете реализовать либо как в LGraph2 ручной пересчет Вольт в Ваши величины со своими коэффициентами после ProcessData, либо учитывать, что коэффициенты применяются к кодам и  домножить Ваши коэффициенты (как смещения, так и шкалы) на  ( 2 *Range / 65536).

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск