Просмотр полной версии : Выбор отрезка аппроксимации
Владислав Г.
20.10.2015, 10:15
В кусочно-линейной аппроксимации необходимо определить к какому отрезку привязать текущее значение параметра. Например, наш массив абсцисс будет иметь такие значения: Х1=0, Х2=1, Х3=2, Х4=3. Входная величина Хi=1.5. Получается: (Х2=1)<(Xi=1.5)<(X3=2).
Как в КДС на CFC решить эту задачу?
изучайте как использовать "прыжки" либо переходите к изучению ST
spectrum48k
20.10.2015, 11:06
А что мешает выполнять в CFC n сравнений вхождения в диапазон, и результат операции выводить на вход en блока MOVE, который по данному условию нужной переменной присвоит, например, номер отрезка? Раз уж нужно в CFC
Владислав Г.
20.10.2015, 15:06
А что мешает выполнять в CFC n сравнений вхождения в диапазон, и результат операции выводить на вход en блока MOVE, который по данному условию нужной переменной присвоит, например, номер отрезка? Раз уж нужно в CFC
После n сравнений у меня не получается выделить необходимый номер отрезка.
После n сравнений у меня не получается выделить необходимый номер отрезка.
А если так?
20450
x=1.5
20451
x=2.2
20452
x=4.35
20453
А если ...
а если будет 100 точек?
А что мешает выполнять в CFC n сравнений вхождения в диапазон,
Ну вот если n и будет входным параметром n
Владислав Г.
21.10.2015, 10:25
а если будет 100 точек?
Хорошее решение для небольшого количества точек. Но у меня таких точек будет около 45.
Задействовал CHARCURVE в количестве 6 шт. Хотя, наверняка, есть другие варианты.
Владислав Г.
21.10.2015, 10:27
А если так...
Спасибо за наглядный пример!
Владислав Г.
21.10.2015, 10:30
изучайте как использовать "прыжки"
Что такое "прыжки"? )
Например, наш массив абсцисс будет иметь такие значения: Х1=0, Х2=1, Х3=2, Х4=3.С такими массивами ваша задача сводится к отбрасыванию дробной части из Хi=1.5. Может, и с реальными данными хватит простой арифметики?
Хорошее решение для небольшого количества точек. Но у меня таких точек будет около 45.
Задействовал CHARCURVE в количестве 6 шт. Хотя, наверняка, есть другие варианты.
А не проще изменить количество точек в ФБ CHARCURVE, например до 45
20486
и импортировать его в свой проект?
20487
А не проще изменить количество точек в ФБ CHARCURVE, например до 45
20486
и импортировать его в свой проект?
20487
да, Вы,батенька обленились )))
взяли бы да потренировались как делать цикл for на CFC и человеку помогли и сами навыки повторили
да, Вы,батенька обленились )))
взяли бы да потренировались как делать цикл for на CFC и человеку помогли и сами навыки повторили
А какой смысл в цикле, судя по всему ТС хочет определить в какой из шести отрезков попадает входная величина для того, чтобы затем определить какой из шести ФБ CHARCURVE задействовать для этой входной величины?
Не проще ли сразу использовать всего один ФБ CHARCURVE.
Владислав Г.
21.10.2015, 11:46
С такими массивами ваша задача сводится к отбрасыванию дробной части из Хi=1.5. Может, и с реальными данными хватит простой арифметики?
Этот пример был упрощен, на самом деле значения будут выглядеть по другому.
Эдуард_Н
21.10.2015, 19:54
А не проще изменить количество точек в ФБ CHARCURVE, например до 45
20486
и импортировать его в свой проект?
20487
Выдаёт ошибку.
Выдаёт ошибку.
Какую ошибку?
https://www.youtube.com/watch?v=kQL5UEFpObQ
Вы должны обязательно подключить библиотеку Util.lib, т.к. для CHARCURVE_45 нужен тип данных "POINT". А этот тип прописан в библиотеке Util.lib.
На самом ютубе качество лучше https://www.youtube.com/watch?v=kQL5UEFpObQ
Эдуард_Н
22.10.2015, 04:21
Всё нормально, нет никакой ошибки. Извините, сам проморгал.
Владислав Г.
22.10.2015, 07:28
А не проще изменить количество точек в ФБ CHARCURVE, например до 45...
Все получилось. Большое спасибо!
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot