Научная статья на тему 'Метод и алгоритм вычисления объёма заданной дискретно 3D поверхности с помощью полиномов Лагранжа'

Метод и алгоритм вычисления объёма заданной дискретно 3D поверхности с помощью полиномов Лагранжа Текст научной статьи по специальности «Физика»

CC BY
638
79
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АЛГОРИТМЫ / ПОЛИНОМ ЛАГРАНЖА / РЕГУЛЯРНАЯ СЕТКА / ЧИСЛЕННЫЕ МЕТОДЫ / ALGORITHMS / LAGRANGE POLYNOMIAL / REGULAR GRID / NUMERICAL METHODS.

Аннотация научной статьи по физике, автор научной работы — Кошеков К.Т., Астапенко Н.В.

При хранении габаритных объектов с неровной поверхностью (например, сыпучих) на различных складах возникает задача вычисления объёма. В данной статье предлагается алгоритм расчёта объёма объекта на основе данных, полученных после сканирования поверхности. Данный алгоритм может использоваться в том случае, когда нет иных способов определения объёма. Результаты сканирования представлены в виде значений узлов регулярной сетки. В представленном алгоритме предлагается с помощью полиномов Лагранжа аппроксимировать значения высот объекта между узлами сетки с необходимым шагом и вычислять объем путём сложения прямоугольных параллелепипедов. Прямоугольные параллелепипеды, составляющие объект, имеют высоту, вычисленную с помощью полинома Лагранжа, и площадь основания, равную квадрату шага. Конечно, представленный алгоритм является не оптимизированным и в дальнейшем планируется его доработка. Тем не менее, алгоритм является рабочим и неплохо справляется с небольшими фрагментами. Суммировать объёмы для всех фрагментов объекта не составляет труда. Особая ценность представленного материала в том, что описанный алгоритм до сих пор не рассматривался в литературе.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Method and Algorithm for Calculating the Volume of Determined Discrete 3D Surface Using Lagrange Polynomials

When the overall objects with an uneven surface (e.g., bulk) are stored at various warehouses, there is a problem of calculating the volume. This article describes an algorithm for calculating the volume of the object based on the data obtained after the surface scanning. This algorithm may be used when there is no other method for volume determining. The scan results are presented as the values of the nodes of a regular grid. The presented algorithm uses the Lagrange polynomials to approximate the height values of the object between grid points with the step you need, and calculates the amount by adding cuboids. The cuboids composing object have the height calculated by using the Lagrange polynomial and the base area equal to the square of the step. Of course, the present algorithm is non-optimized and to be developed. However, the algorithm works well with small fragments. To summarize the volumes for all of the fragments of the object is not difficult. The special value of the material presented is that the algorithm has not yet been considered in the literature.

Текст научной работы на тему «Метод и алгоритм вычисления объёма заданной дискретно 3D поверхности с помощью полиномов Лагранжа»

структуры и моделирование 2016. №3(39). С. 86-92

УДК 004.421

МЕТОД И АЛГОРИТМ ВЫЧИСЛЕНИЯ ОБЪЁМА ЗАДАННОЙ ДИСКРЕТНО 3D ПОВЕРХНОСТИ С ПОМОЩЬЮ ПОЛИНОМОВ ЛАГРАНЖА

К.Т. Кошеков

профессор, д.т.н., заведующий кафедрой «Энергетики и радиоэлектроники»,

e-mail: kkoshekov@mail.ru Н.В. Астапенко

докторант специальности 6D075100 «Информатика, вычислительная техника и управление», e-mail: astankin@mail.ru

Северо-Казахстанский государственный университет имени М. Козыбаева

Аннотация. При хранении габаритных объектов с неровной поверхностью (например, сыпучих) на различных складах возникает задача вычисления объёма. В данной статье предлагается алгоритм расчёта объёма объекта на основе данных, полученных после сканирования поверхности. Данный алгоритм может использоваться в том случае, когда нет иных способов определения объёма. Результаты сканирования представлены в виде значений узлов регулярной сетки. В представленном алгоритме предлагается с помощью полиномов Лагранжа аппроксимировать значения высот объекта между узлами сетки с необходимым шагом и вычислять объем путём сложения прямоугольных параллелепипедов. Прямоугольные параллелепипеды, составляющие объект, имеют высоту, вычисленную с помощью полинома Лагранжа, и площадь основания, равную квадрату шага. Конечно, представленный алгоритм является не оптимизированным и в дальнейшем планируется его доработка. Тем не менее, алгоритм является рабочим и неплохо справляется с небольшими фрагментами. Суммировать объёмы для всех фрагментов объекта не составляет труда. Особая ценность представленного материала в том, что описанный алгоритм до сих пор не рассматривался в литературе.

Ключевые слова: алгоритмы, полином Лагранжа, регулярная сетка, численные методы.

Введение

В разных областях человеческой деятельности возникает задача исследования параметров габаритного объекта, в частности измерения объёмов сыпучих тел. Традиционно используются два метода измерения объёма неровных тел: вычисление объёма тела при помощи ёмкости с водой и вычисление объёма тела через разбиение его на правильные геометрические фигуры. Первый метод очень сложно организовать с габаритными объектами. Реализация второго

представляет собой сложную задачу, если нельзя явно выделить правильные геометрические фигуры. В данной статье предлагается алгоритм вычисления объёма габаритного объекта с неровной поверхностью, заданной дискретными значениями.

1. Метод вычисления объёма поверхности

В результате сканирования объекта мы получаем набор значений высот поверхности, расположенных в узлах регулярной сетки. На рисунке представлен фрагмент объекта размером метр на метр, расстояние между узлами 1 дм (см. рис. 1).

Объем данной фигуры можно представить как сумму объёмов прямоугольных параллелепипедов. Если мы возьмём прямоугольные параллелепипеды в соответствии с размерами регулярной сетки, то получим большую погрешность даже на представленном участке 1 дм х 1 дм. Найти точки, расположенные между узлов сетки, можно с помощью аппроксимации.

Наиболее целесообразно для аппроксимации сложных пространственных поверхностей, заданных координатами узловых точек, применять многомерные полиномы. В отличие от описания поверхности сплайн-функциями, данный метод позволяет исключить колебательный процесс, который возникает в результате совпадения точек поверхности в узловых точках и отсутствия гладкости полученного описания в промежутках между опорными точками поверхности. В данном случае аппроксимация поверхности между двумя точками основывается на знании координат опорной точки и частных производных в данной точке. Это не накладывает требований на гладкость поверхности между опорными точками.

Рассмотрим применение для этих целей многомерных полиномов Лагран-жа, зависимых от двух переменных. Определение объёма объекта тогда будет сведено к решению следующих задач:

1. Приближенное описание поверхности полиномами по заданным координатам опорных точек поверхности в системе координат (XYZ).

2. Определение значений точек поверхности с заданным шагом в соответствии с полученными полиномами Лагранжа.

3. Нахождение суммы объёмов прямоугольных параллелепипедов, установленных в рассчитанных точках.

Интерполяционные полиномы Лагранжа одной переменной позволяют аппроксимировать функцию у = /(х) в декартовой системе координат (XY), задаваемую координатами опорных точек (хг,уг). Аппроксимированная функция описана в формуле (см. формулу 1).

п п

/(х) = Р(х) = £р(хг) х Д (х - х,), (1)

г=0 3=0,3=г

где коэффициенты полиномов Лагранжа р(хг) определяются через значения хг, уг в опорных точках. Коэффициент полинома вычисляется по формуле (см. формулу 2).

Рис. 1. Фрагмент исследуемого объекта

Р(хг) = ™-У(~-), (2)

11]=0,]=г(Х Х3)

где г = 0..п, ] = 0..п, п — степень полинома. По аналогии с полиномом одной переменной можно описать полином Лагранжа двух переменных для поверхности, представленной в декартовой системе координат (ХУЕ):

п т

г = р(х,У) = ^^2Р(х»Уз) х П П (х - Хп)(У - Ут), (3)

г=0 ]=0 п=0,п=г т=0,т=]

где г = [0..п] — количество опорных сечений поверхности вдоль оси ОХ; ] = [0..п] — количество опорных сечений поверхности вдоль оси ОУ; р(хг,уг) — коэффициенты полинома, определяемые через соответствующие координаты опорных точек поверхности. При интерполяции поверхности полиномами двух переменных необходимо, чтобы опорные точки поверхности (узлы интерполяции) образовывали сетку. Наиболее удобной является прямоугольная сетка с равномерным распределением клеток. В этом случае поверхность, представляемая координатами узлов прямоугольной сетки (см. рис. 1), в зависимости от расположения текущих координат (х,у) поверхности последовательно «накрывается» прямоугольником. При этом для более точной аппроксимации необходимо, чтобы текущие координаты поверхности находились в области центра прямоугольника.

Постоянные коэффициенты полинома р(хг,уг) определяются для каждого элемента поверхности через координаты известных опорных точек поверхности и определяются по формуле (см. формулу 4).

Р (х ,У,)

-г,

Пп=0,п=Шт=0,ш=,(х хп)(у ут)

(4)

2. Алгоритм расчёта объёма 3D поверхности

Рассмотрим алгоритм работы программы, вычисляющей объем фигуры, заданной дискретными значениями.

Шаг 1. Исходные данные (результат сканирования) представлены двумерным массивом (см. рис. 2).

50.000 50.479 50. £41 50.997 50.909 ^

50.479 50.959 51.321 51.477 51. 369 с.

50.641 51.321 51.663 51.639 51.751 '

50.997 51.477 51.639 51.995 51.907 '

50.909 51.369 51.751 51.907 51.619 '

50.596 51.076 51.440 51.596 51.506 Е

50.141 50.621 50.963 51.139 51.050 Е

49.649 50.129 50.491 50.647 50.559 Е

49.243 49.723 50.065 50.241 50.152 4

49.022 49.502 49.664 50.020 49.932 4

.ю п/11 гЮ йй5 ^п. пзо ло о1;^ а

Рис. 2. Фрагмент массива исходных данных

Номер строчки соответствует координате x в декартовой системе координат, а номер столбца — координате у. Значения х и у изменяются с шагом 1, что соответствует расстоянию 1 дм между точками съёмки. Размер массива 10x10, то есть представлен фрагмент площадью 1 м2. Таким образом, элементы представленной матрицы соответствуют высоте заданной точки или координате г в декартовой системе координат (XYZ).

Шаг 2. Вычисление элементов массива р(хг,уг) реализуется в соответствии с формулой 4. Алгоритм вычисления представлен блок-схемой (см. рис. 3).

На входе в подпрограмму подаётся массив исходных данных а[п,п]. В цикле с параметром к определяется знаменатель для очередного коэффициента полинома. В результате коэффициент определяется как отношение соответствующего элемента исходного массива к вычисленному знаменателю Ьтр.

Шаг 3. Теперь, когда коэффициенты Лагранжа получены, можно вычислить объем фигуры путём сложения прямоугольных параллелепипедов с квадратным основанием заданного размера. Коэффициенты выполняются в соответствии с формулой 3. На рисунке представлена блок-схема подпрограммы расчёта объёма объекта с заданным шагом ^ который определяет сторону квадратного основания прямоугольного параллелепипеда (см. рис. 4).

Рис. 3. Блок-схема подпрограммы расчёта коэффициентов полинома Лагранжа

Вычисление сводится к двум этапам:

- определение высоты прямоугольного параллелепипеда;

- добавление объёма очередного параллелепипеда в накопитель.

На входе в подпрограмму подаются размер шага h и матрица коэффициентов полинома Лагранжа p[n,n]. Начиная с точки (0,0,z00), определяется величина Zij, где i = [0..n] — значение координаты оси OX, а j = [0; n] — значение координаты по оси OY.

Объём прямоугольного параллелограмма вычисляется традиционно путём умножения высоты на ширину и длину (h ■ h ■ Zj).

После определения объёма очередного прямоугольного параллелограмма, полученная величина добавляется в накопитель V. В результате перебора всех точек (x,y) на заданном поле с шагом h в переменной V получаем искомый объём.

3. Заключение

Нами были проведены экспериментальные расчёты объёмов с помощью реализованного алгоритма. Для проведения эксперимента были получены данные сканирования четырёх фрагментов с площадями 1 м2. Для каждого фрагмента был рассчитан объём поверхности при разных размерах шага.

По полученным в результате проведённого эксперимента данным можно сде-

Рис. 4. Блок-схема подпрограммы расчёта объёма объекта с заданным шагом

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

Литература

1. Афонин В., Макушкин В. Учебный курс Интеллектуальные робототехнические системы / Национальный открытый университет «Интуит». URL: http://www. intuit.ru/ (дата обращения: 30.09.2015).

2. Демидович Б.П., Марон И.А. Основы вычислительной математики: учебное пособие. 6-е изд. М. : Наука, 1966. 672 с.

3. Колдаев В.Д. Численные методы и программирование: учебное пособие. М. : Форум. ИНФРА-М, 2008. 336 с.

METHOD AND ALGORITHM FOR CALCULATING THE VOLUME OF DETERMINED DISCRETE 3D SURFACE USING LAGRANGE

POLYNOMIALS

K.T. Koshekov

Dr.Sc. (Eng.), Professor, Head of the Department "Energy and Electronics",

e-mail: kkoshekov@mail.ru N.V. Astapenko

Doctoral Specialty 6D075100 "Computer Science, Computer Facilities and Management",

e-mail: astankin@mail.ru

M. Kozybayev North Kazakhstan State University

Abstract. When the overall objects with an uneven surface (e.g., bulk) are stored at various warehouses, there is a problem of calculating the volume. This article describes an algorithm for calculating the volume of the object based on the data obtained after the surface scanning. This algorithm may be used when there is no other method for volume determining. The scan results are presented as the values of the nodes of a regular grid. The presented algorithm uses the Lagrange polynomials to approximate the height values of the object between grid points with the step you need, and calculates the amount by adding cuboids. The cuboids composing object have the height calculated by using the Lagrange polynomial and the base area equal to the square of the step. Of course, the present algorithm is non-optimized and to be developed. However, the algorithm works well with small fragments. To summarize the volumes for all of the fragments of the object is not difficult. The special value of the material presented is that the algorithm has not yet been considered in the literature.

Keywords: algorithms, Lagrange polynomial, regular grid, numerical methods..

i Надоели баннеры? Вы всегда можете отключить рекламу.