Здравствуйте.
Двумерная калибровка включает следующие действия:
- чтение таблицы калибровки из файла в динамический массив при запуске проекта. Значений параметров температуры и давления хранятся столбце и строке с нулевым индексом;
- поиск для давления и температуры пары индексов интервала значений параметров, включающих давление и температуру;
- вычисление интерполированного значения из таблицы: совпадение индексов в обоих парах - выборка из таблицы, при одной совпадающей паре индексов - линейная интерполяция, индексы в обоих парах различны - двумерная интерполяция. Значения температуры и/или давления вне таблицы считают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 // разделитель чисел - пробел, пробелы перед числом игнорируются, для всех строк обязательно одинаковое количество чисел
Пример во вложении. Вывод отладочной информации позволяет изучить алгоритм проекта.