Jump to content

    

Recommended Posts

Добрый вечер. Появилась тут такая задачка. Имеется зависимость данных от нагрузки тензодатчика.

Шаг по оси х 100 кг и соответствующие ей значение. Необходимо ввести эту таблицу в EXCEL(или может есть еще программы), сделать интерполяцию, и вывести обратно таблицу, но с шагом 1 кг. В общем уменьшить шаг дискретизации. Возможно ли такое сделать?

Share this post


Link to post
Share on other sites

Если хотите именно интерполяцию, смотрите "Интерполяционный многочлен Лагранжа".
Но при большом количестве точек он может дать достаточно "волнистую" кривую.
При большом кол-ве точек лучше применять аппроксимацию или вообще кусочно-параболическую интерполяцию (но там будут изломы на стыках).
В общем, все зависит от необходимой точности.

Share this post


Link to post
Share on other sites
8 hours ago, Baser said:

Если хотите именно интерполяцию, смотрите "Интерполяционный многочлен Лагранжа".
Но при большом количестве точек он может дать достаточно "волнистую" кривую.
При большом кол-ве точек лучше применять аппроксимацию или вообще кусочно-параболическую интерполяцию (но там будут изломы на стыках).
В общем, все зависит от необходимой точности.

Все смешалось - интеполяция, аппроксимация. 

Поскольку функция монотонная, то сначала должна идти аппроксимация подобранной кривой по минимуму квадратичного отклонения. 
Там и выплывет минимально достижимая ошибка. 
И только потом делают интерполяцию, а лучше еще и эктраполяцию. 
В этом деле хорошо помогает кубическая кусочная интерполяция, но точно не многочлен Лагранжа. 
Идете в Matlab и смотрите там методы PCHIP или Makima Piecewise Cubic Interpolation

Share this post


Link to post
Share on other sites
01.03.2021 в 09:12, AlexandrY сказал:

Идете в Matlab и смотрите там методы PCHIP или Makima Piecewise Cubic Interpolation

Спасибо. А в маткаде есть такие функции не в курсе?

Share this post


Link to post
Share on other sites
1 hour ago, Evgeni said:

Спасибо. А в маткаде есть такие функции не в курсе?

тензодатчик штука относительно линейная, и простого полинома не сильно большой степени прям на весь диапазон скорее всего будет достаточно, а это даже excel делать умеет.

Share this post


Link to post
Share on other sites
04.03.2021 в 11:29, _pv сказал:

тензодатчик штука относительно линейная, и простого полинома не сильно большой степени прям на весь диапазон скорее всего будет достаточно, а это даже excel делать умеет.

О. Спасибо. А на счёт excell можно подробнее если не сложно.

Share this post


Link to post
Share on other sites

А вы так и не ответили по поводу необходимой точности.
Да и задача выглядит несколько странной. Вам действительно нужно получить таблицу с шагом 1 кг или все же нужно формулу для вычислений в любой точке?

А на счёт excel наберите "excel аппроксимация" и польется вода. Excel прямо из таблицы построит графики и выдаст формулу.

Share this post


Link to post
Share on other sites
2 минуты назад, Baser сказал:

А вы так и не ответили по поводу необходимой точности.
Да и задача выглядит несколько странной. Вам действительно нужно получить таблицу с шагом 1 кг или все же нужно формулу для вычислений в любой точке

Есть зависимость в виде таблицы с шагом 100. А нужно получить с шагом 1

Формула даёт гладкую функцию, что для мк тяжеловато

И.е нужно вернуть таблицу с меньшим шагом

Share this post


Link to post
Share on other sites
7 минут назад, Evgeni сказал:

Есть зависимость в виде таблицы с шагом 100. А нужно получить с шагом 1

Ну так и какая нужна точность? :smile:
Варианты для excel с грубого к более точным:
1. Может быть вам простой линейной интерполяции между вашими точками будет достаточно.
2. Строите график и аппроксимирующую формулу и оцениваете точность в точках таблицы. Если норм., строите по формуле таблицу с любым шагом.
3. Строите кусочно-полиномиальную интерполяцию по кускам из трех соседних точек таблицы. Выбираете подходящие по точности формулы и строите таблицу с любым шагом.

Share this post


Link to post
Share on other sites
1 час назад, Evgeni сказал:

Есть зависимость в виде таблицы с шагом 100. А нужно получить с шагом 1

Советую подобрать наиболее подходящий метод интерполяции для вашей последовательности значений; с помощью выбранного метода интерполяции получить массив точек с нужным шагом; сохранить его в виде таблицы в программе МК; в run-time использовать данные из этой таблицы с линейной интерполяцией между значениями таблицы. Впрочем - если памяти программ не жалко, то можно сохранить большую таблицу с шагом между значениями таким же как входные (преобразуемые) значения (без линейной интерполяции между).

Можно в Матлабе например прикинуть разные методы интерполяции, посмотреть графики и выбрать метод, дающий наиболее близкую кривую.

Здесь например описаны несколько методов со сравнением: https://habr.com/ru/post/130873/

Я у себя в проекте например использую сплайн Акимы - он даёт наилучшее приближение для моих данных (интерполяция характеристик термодатчиков).

Share this post


Link to post
Share on other sites
2 часа назад, Baser сказал:

Выбираете подходящие по точности формулы и строите таблицу с любым шагом.

А где и что нажимать?

Share this post


Link to post
Share on other sites
15 часов назад, Evgeni сказал:

А где и что нажимать?

В excel-е, кнопки. Но для этого его открыть надо, набить таблицу и построить график. А там и кнопки увидите :dirol:

Но в общем, у вас вся постановка задачи перевернута с ног на голову. Поэтому вы и нужную точность не знаете.
Методологически делают так:
1. Снимают с реального датчика таблицу с как можно большим значением точек. Для вас желательно через 1 кг. Ну, по меньшей мере несколько точек между вашими 100 кг. И желательно для нескольких разных датчиков.
2. По этим данным строят эталонную формулу датчика. Проверяют, есть ли гуляние формулы от датчика к датчику, какой разброс.
3. Теперь можно выбрать кол-во точек для калибровки датчика. Вполне возможно, что хватит всего двух точек в начале и конце шкалы.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.