Simple-Scada forum
Simple-Scada 2 => Ваши вопросы => Тема начата: lystas от 19 Октября 2024, 16:32:06
-
Добрый день!
Прошу помощи в поиске наиболее эффективного метода вычисления параметра по калибровочным таблицам с двумя аргументами.
Если точнее, то нужно вычислять энтальпию пара/воды по давлению и температуре. Пример таблицы приложил.
У существующей функции GetCalibrationValue есть поддержка только одной пары "Ключ-значение". Ключ при этом целочисленный, что не совсем удобно.
-
Здравствуйте.
Двумерная калибровка включает следующие действия:
- чтение таблицы калибровки из файла в динамический массив при запуске проекта. Значений параметров температуры и давления хранятся столбце и строке с нулевым индексом;
- поиск для давления и температуры пары индексов интервала значений параметров, включающих давление и температуру;
- вычисление интерполированного значения из таблицы: совпадение индексов в обоих парах - выборка из таблицы, при одной совпадающей паре индексов - линейная интерполяция, индексы в обоих парах различны - двумерная интерполяция. Значения температуры и/или давления вне таблицы считаютcя соответствующими граничными значениями.
Пример таблицы калибровки, комментарии строк показаны исключительно для описания структуры, в файле комментарии не допускаются:
фрагмент таблицы из https://studfile.net/html/2706/401/html_WtevgQQelM.i4K9/img-S7y52D.png // заголовок, игнорируется при загрузке файла
000 1.0 1.1 1.5 2.0 5.0 15.0 // 000 - исключительно для сохранения числа переменных в строке, переменные это значения давления для соответствующего столбца
60 219.1 213.9 218.6 218.5 216.6 208.0 // первое число - значение температуры, далее значения энтальпии для соответствующих значений температуры и давления
70 223.5 223.3 223.0 222.9 221.1 213.3 // разделитель чисел - пробел, пробелы перед числом игнорируются, для всех строк обязательно одинаковое количество чисел
Пример во вложении. Вывод отладочной информации позволяет изучить алгоритм проекта.
-
Благодарю Вас!
-
Здраствуйте.
Во вложении проект исправленный для чтения из CSV-файла, имена параметров обезличены от физического смысла и называются "Параметр для верхней строки" и "Параметр для первого столбца".