Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 20

Тема: Интерполяция кубическими сплайнами

  1. #1

    По умолчанию Интерполяция кубическими сплайнами

    Вот, сделал для себя. Вроде даже работает.
    Функциональный блок для интерполяции сплайнами. Сделан для массива в 11 точек (мне так надо было), но легко правится до произвольного кол-ва точек.
    Делал для расчета уставки отопления по кусочно заданной температурной кривой. Первое желание было сделать линейной интерполяцией, но, подумав, решил, что это не наш метод
    Собрано в Codesys 3.5.17, но несложно переносится на любую версию, даже на 2.3
    Проверил работу поверхностно - вроде работает.
    Если кому надо такое - берите и пользуйтесь свободно. Freeware.
    Панамку для конструктивной критики подставил
    Вложения Вложения
    Последний раз редактировалось SlavikP; Вчера в 07:28.
    Работа не волк, а work.

  2. #2

    По умолчанию

    Цитата Сообщение от SlavikP Посмотреть сообщение
    Вот, сделал для себя. Вроде даже работает.
    Функциональный блок для интерполяции сплайнами. Сделан для массива в 11 точек (мне так надо было), но легко правится до произвольного кол-ва точек.
    Делал для расчета уставки отопления по кусочно заданной температурной кривой. Первое желание было сделать линейной интерполяцией, но, подумав, решил, что это не наш метод
    Собрано в Codesys 3.5.17, но несложно переносится на любую версию, даже на 2.3
    Проверил работу поверхностно - вроде работает.
    Если кому надо такое - берите и пользуйтесь свободно. Freeware.
    Панамку для конструктивной критики подставил
    График уставки по отопления вроде примитивен (3 прямолинейных участка). Что там можно интерполировать ?
    Последний раз редактировалось IVM; 11.04.2025 в 12:54.

  3. #3

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    График уставки по отопления вроде примитивен (3 прямолинейных участка). Что там можно интерпретировать ?
    Решил сразу сделать универсальный инструмент, для которого у меня уже есть иные применения. Отопление - частный случай. Подумал, что может быть это интересно кому то, кроме меня.
    Кубические сплайны обеспечивают очень плавную результирующую кривую, без рывков и изломов. На современных процессорах разница в затратах на расчет между линейной аппроксимации и сплайнов - на уровне погрешности измерения.
    Работа не волк, а work.

  4. #4

    По умолчанию

    Интерполяция более востребована в станках ЧПУ. Для прогнозирования кривой, на основе измеренных физических величин, более востребована аппроксимация.

  5. #5

    По умолчанию

    Цитата Сообщение от GSA Посмотреть сообщение
    Интерполяция более востребована в станках ЧПУ. Для прогнозирования кривой, на основе измеренных физических величин, более востребована аппроксимация.
    На самом деле это не так.
    Интерполяция - это подбор функции между пары известных точек.
    Аппроксимация - это подбор функции, которая бы наилучшим образом ложилась бы на целую серию точек.
    Интерполяция - полное совпадение, а аппроксимация - приближённое. При этом аппроксимация не гарантирует, что результирующая функция даст в известных опорных точках точный результат, а интерполяция - гарантирует это.
    Последний раз редактировалось SlavikP; 11.04.2025 в 16:17.
    Работа не волк, а work.

  6. #6

    По умолчанию

    Если процесс стабилен, без разницы, что использовать. Если же нестабилен, интерполяция может сыграть злую шутку.
    Picture.JPG

  7. #7

    По умолчанию

    Никто не идеален. Интерполяция - всего лишь инструмент. А как его правильно использовать - совсем другая наука.
    Поэтому хорошо когда инструмент есть. Еще лучше, если есть два инструмента. Совсем хорошо - когда пять! Есть из чего выбрать.
    Работа не волк, а work.

  8. #8

    По умолчанию

    Полностью согласен.
    Каждый инструмент это время и труд, поэтому заслуживает благодарности. Но есть еще практика, где со временем начинаешь понимать, какой инструмент более менее подходит под твой процесс.

  9. #9

    По умолчанию

    Вот именно. Чтоб понять, подходит или нет - надо попробовать. Если не подходит под ваши задачи - то и не надо страдать.
    А если подходит, то почему бы и не да?
    Но мне бы хотелось услышать критику конкретной реализации, а не пустые рассуждения о применимости или нет тех или иных методов.
    Последний раз редактировалось SlavikP; 11.04.2025 в 16:25.
    Работа не волк, а work.

  10. #10

    По умолчанию

    У меня нет CoDeSys 3.5, посмотреть не смогу.
    Было бы хорошо, если бы исходники были опубликованы в тексте сообщения, было кратко приведено описание применения - ведь нет смысла в каждом цикле выполнять пересчёт полиномов, значит он происходит или в отдельном ФБ или по отдельной команде.
    Также интересно видеть формулы - как расчёта полиномов, так и вычислений функции, ограничения входных и выходных значений.

    Без этого - применение чужого кода - "прыжок веры" Индианы Джонса.

    В своё время хотел применить интерполяционные формулы Лагранжа и Ньютона для корнеизвлекающей зависимости расхода от перепада давления. Хорошо, что сначала построил график на компьютере - в узлах значения совпадали, а между ними формировались "вертикальные волны", т.е. между узлами результат интерполяции был со значительной ошибкой. Думал о кубических сплайнах, но не стал тратить время и сделал кусочно-линейной интерполяцией.
    Понятно, что со сплайнами будет лучше, но всё же есть смысл проверить.
    Была сетка значений:
    dP, кПа 0.610 2.450 5.540 9.860 14.100 22.400 30.500 39.800 50.300
    F, т/ч 5 10 15 20 25 30 35 40 45

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Линейная Интерполяция в пр200
    от Андрей 77 в разделе Среда программирования OWEN Logic
    Ответов: 41
    Последнее сообщение: 23.11.2023, 07:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •