Разработка математических моделей и численных методов планирования буровзрывных работ в условиях сложной анизотропии трещиноватости горной породы тема диссертации и автореферата по ВАК РФ 05.13.18, кандидат наук Коновалов Александр Владимирович

  • Коновалов Александр Владимирович
  • кандидат науккандидат наук
  • 2019, ФГАОУ ВО «Белгородский государственный национальный исследовательский университет»
  • Специальность ВАК РФ05.13.18
  • Количество страниц 144
Коновалов Александр Владимирович. Разработка математических моделей и численных методов планирования буровзрывных работ в условиях сложной анизотропии трещиноватости горной породы: дис. кандидат наук: 05.13.18 - Математическое моделирование, численные методы и комплексы программ. ФГАОУ ВО «Белгородский государственный национальный исследовательский университет». 2019. 144 с.

Оглавление диссертации кандидат наук Коновалов Александр Владимирович

Введение

1. Анализ современного состояния планирования буровзрывных работ

1.1. Вопросы математического моделирования трещиноватости горных пород

1.2. Вопросы измерения фракционного состава взорванной горной массы

1.3. Задача оптимизации параметров БВР при управлении процессами добычи руды открытым способом

1.4. Задачи исследования

2. Математическое моделирование фракционного состава

2.1. Математические модели отдельного куска твёрдого материала

2.2. Метод измерения кусковатости по данным лазерного 3Э сканера

2.3. Математическое моделирование распределения кусков по размерам

2.4. Результаты и выводы главы

3. Математическое моделирование и визуализация анизотропии трещиноватости пород

3.1. Визуализация анизотропии трещиноватости

3.2. Метод секторов направлений единичного круга

3.3. Результаты и выводы главы

4. Учёт анизотропии трещиноватости в геометрии сети буровзрывных скважин

4.1. Математическое моделирование сеток скважин

4.2. Метод построения в табличном виде зависимости между монотонно зависимыми случайными величинами по их функциям распределения

4.3. Влияние трещиноватости пород на качество взрывного разрушения

4.4. Постановка задачи поиска оптимальных параметров БВР в условиях трещиноватости

4.5. Математическое моделирование распределения энергии взрыва в анизотропной среде

4.6. Методика расчёта геометрии сеток скважин с учётом направления экстремумов трещиноватости

4.7. Результаты и выводы главы

5. Программная реализация и апробация

5.1. Структура программного обеспечения

5.2. Комплекс программ по оптимизации БВР

5.3. Система анализа снимков лазерного 3Э-сканера

5.4. Апробация работоспособности

5.5. Результаты и выводы главы

Заключение

Список использованных источников

ПРИЛОЖЕНИЕ 1 Фрагменты исходного текста комплекса программ по

оптимизации БВР в условиях анизотропии трещиноватости

ПРИЛОЖЕНИЕ 2 Свидетельства о государственной регистрации программ для ЭВМ

Рекомендованный список диссертаций по специальности «Математическое моделирование, численные методы и комплексы программ», 05.13.18 шифр ВАК

Введение диссертации (часть автореферата) на тему «Разработка математических моделей и численных методов планирования буровзрывных работ в условиях сложной анизотропии трещиноватости горной породы»

Введение

Актуальность темы исследования. В горной промышленности при открытой разработке полезных ископаемых для первичного измельчения скальных горных пород в основном применяется буровзрывной способ. Затраты на проведение буровзрывных работ (БВР) составляют значительную долю в стоимости добычи сырья, поэтому предприятия стремятся их сократить, управляя фракционным составом раздробленной породы на основе математических моделей дробления. Трещиноватость горных пород (форма и количество трещин в массиве) существенно влияет на качество их дробления. В настоящее время при планировании БВР методы расчёта удельного расхода взрывчатого вещества (ВВ) учитывают средний размер естественной отдельности (изотропную характеристику трещиноватости), а методы расчёта формы сети буровзрывных скважин - направление слоистости породы или направление наиболее выраженной системы трещин.

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

Для решения указанной задачи необходимы математические модели влияния сложной анизотропии трещиноватости на качество дробления породы и методы планирования БВР на их основе. Для получения высокоточных данных о качестве дробления породы, требуемых для определения параметров этих математических моделей, необходима также разработка математических моделей состава разрушаемых горных пород и методов обработки данных при оценке фракционного состава раздробленной породы.

Степень разработанности темы. Существует достаточно много

исследований по тематике определения рациональных параметров БВР и прогнозирования результирующего фракционного состава раздробленной породы. В этой области основополагающими работами являются работы Г. И. Покровского, В. Н. Мосинца, А. В. Абрамова, И. Ф. Оксанича, П. С. Миронова, Барона Л. И., и др., более современными - работы В. А. Фокина, В. Н. Тюпина, И. М. Игнатенко, А. В. Федосеева. В области моделирования анизотропии трещиноватости существенный вклад внесли работы Г. И. Баренблатта, М. В. Раца, С. Н. Чернышева, Г. М. Редькина. В области измерения кусковатости в настоящее время используются методы математической статистики и теории вероятности, линейной алгебры, фотограмметрии, различные алгоритмы обработки фотоизображений.

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

Таким образом, задача разработки математических моделей и методов планирования буровзрывных работ в условиях сложной анизотропии их трещиноватости является актуальной.

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

Для достижения поставленной цели были сформулированы и решены следующие задачи исследования:

1. Анализ методов планирования БВР, математических моделей процесса разрушения пород, математических моделей и методов измерения фракционного состава разрушенных пород с позиции адекватности их применения в условиях сложной анизотропии трещиноватости;

2. Разработка и численная реализация математических моделей распределения энергии взрывов в буровзрывном блоке, учитывающих сложную анизотропию трещиноватости, и методов расстановки скважин на их основе;

3. Разработка методов поиска экстремумов интенсивности трещиноватости и визуализации моделей анизотропии трещиноватости в задачах оптимизации БВР;

4. Разработка математических моделей сеток скважин, позволяющих учесть сложную анизотропию трещиноватости породы в задаче планирования БВР;

5. Разработка функции штрафа при оптимизации качества дробления и методов определения её параметров на основе экспериментальных данных о фракционном составе взорванной породы;

6. Повышение адекватности математических моделей фракционного состава применительно к задачам планирования БВР в условиях сложной анизотропии трещиноватости;

7. Разработка алгоритмов обработки снимков лазерного 3D-сканера при измерении фракционного состава раздробленной породы.

Научную новизну составляет следующее:

1. Математическая модель направлений экстремумов интенсивности трещиноватости;

2. Функция штрафа при оптимизации качества дробления на основе комбинирования сигмоидальных функций и метод определения её параметров с использованием гипотезы монотонной зависимости между случайными величинами энергии взрыва и размера раздробленного куска с известными функциями распределения;

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

4. Математическая модель, адекватно отражающая распределение энергии взрыва скважинных зарядов в массиве породы в условиях анизотропии трещиноватости.

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

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

Объект исследований - методы планирования БВР.

Предмет исследований - численные методы планирования БВР в условиях сложной анизотропии трещиноватости породы.

Методы диссертационного исследования: методы аналитической геометрии, линейной и векторной алгебр, математического и системного анализов, теории вероятностей и математической статистики, объектно-ориентированного и параллельного программирования, вычислительный эксперимент.

Область исследований. Содержание диссертации соответствует паспорту специальности 05.13.18 - «Математическое моделирование, численные методы и комплексы программ» по следующим областям исследований: п. 1. Разработка новых математических методов моделирования объектов и явлений; п. 4. Реализация эффективных численных методов и алгоритмов в виде комплексов проблемно-ориентированных программ для проведения вычислительного эксперимента; п. 7. Разработка новых математических методов и алгоритмов интерпретации натурного эксперимента на основе его математической модели.

Положения, выносимые на защиту:

1. Метод определения направлений экстремумов интенсивности трещиноватости для установления геометрии сети буровзрывных скважин;

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

3. Численный метод планирования БВР, основанный на математическом моделировании распределения энергии взрывов скважинных зарядов в массиве породы, позволяющий рассчитать рациональное расположение буровзрывных скважин в условиях сложной анизотропии трещиноватости породы;

4. Прототип программно-алгоритмической реализации разработанных численных методов планирования БВР.

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

Апробация результатов работы. Основные научные результаты работы были доложены на Международном научном симпозиуме «Неделя горняка -2013» (Москва, 2013), на 12-м и 13-м Международном симпозиумах «Освоение месторождений минеральных ресурсов и подземное строительство в сложных гидрогеологических условиях» (Белгород, 2013 и 2015), Международной научно-технической конференции молодых учёных БГТУ им. В.Г. Шухова (Белгород, 2014). Результаты работы внедрены в ОАО «ВИОГЕМ».

Публикации. По результатам диссертационной работы опубликовано 9 статей, в том числе 4 в изданиях, рекомендованных ВАК РФ. Получено 2 свидетельства о государственной регистрации программ для ЭВМ.

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

Структура и объём диссертации.

Диссертационная работа состоит из введения, пяти глав и заключения, содержит 129 страниц текста, 52 рисунка, 4 таблицы, 2 приложения и список литературы из 128 наименований.

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

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

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

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

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

1. Анализ современного состояния планирования буровзрывных работ

1.1. Вопросы математического моделирования трещиноватости горных пород

Под трещиноватостью обычно понимают совокупность трещин (разрывов сплошности) в массиве горных пород или других материалов [1,2,3]. Системой трещин называется множество трещин, примерно параллельных друг другу. Множество трещин, развитых в той или иной части массива, образуют пространственную сеть трещин, составленную несколькими системами трещин или хаотически ориентированными трещинами [1]. В геологии трещины классифицируются по морфологическому типу, генетическому типу, геологическому и локальному возрасту, механизму образования, геометрии. Приведём подробнее геометрическую классификацию сетей трещин [1]:

1) Системные сети (рис. 1.1a), состоящие из n (n = 1, 2, ...) систем различно ориентированных трещин.

2) Хаотические сети (рис. 1.1б), в которых системы не выделяются или число систем очень велико (n>10).

3) Полигональные сети (рис. 1.1в), когда трещины в определённой плоскости (обычно горизонтальной) образуют замкнутые многоугольники с числом сторон в среднем более четырёх.

Трещины разделяют массив на блоки, называемые естественными отдельностями. Средний размер естественной отдельности L существенно влияет на совокупную прочность горного массива [1] и учитывается во многих изотропных математических моделях разрушения пород [4,5,6,7,8,9,10,11,12,13].

Система трещин имеет следующие геометрические характеристики [2]:

1) ориентировка плоскости, параллельно которой лежат трещины системы -азимут линии простирания (A) и угол линии падения (5), либо эквивалентный им единичный вектор п нормали к плоскости трещин:

п = (— sin A sin S; cos A sin S; cos S ) (1.1)

= 1

а) б) в)

Рисунок 1.1 - Основные типы сетей трещин [1] а) системная, б) хаотическая, в) полигональная

2) частота трещин - среднее число трещин на погонный метр (или другую единицу длины) в направлении, перпендикулярном плоскости трещин (в направлении вектора п (1.1) );

3) интенсивность трещиноватости - среднее число трещин на погонный метр (или другую единицу длины) в выбранном направлении;

4) показатель трещиноватости (деформируемости массива) Ф [14] -величина, включающая в себя соотношение раскрытия трещин, расстояния между ними, площадь скальных контактов, и существенно влияющая на процессы разрушения горных пород.

В работе [2] вводится понятие вектора системы трещин, объединяющего в себе частоту трещин системы и их направление:

й/ = ш • п

где й/ - вектор системы трещин; w - частота трещин системы; п - единичный вектор нормали к плоскости системы трещин. Вектор й/ перпендикулярен плоскости системы трещин, и его модуль равен частоте трещин системы.

Системная сеть трещиноватости описывается [2] набором векторов:

Ш = {й/}, £ = 1,2,..., п где й/ - вектор ьтой системы трещин; п - число систем трещин.

Интенсивность Ь(е) трещиноватости в направлении единичного вектора е может быть рассчитана [2] по формуле:

п

е • и/,

(1.2)

¿=1

где - вектора присутствующих систем трещин; п - число систем. Индикатриса анизотропии интенсивности трещиноватости [2] (в сечении горизонтальной плоскостью) изображена на рис. 1.2а.

а) б)

Рисунок 1.2 - Диаграммы анизотропии трещиноватости. а) индикатриса анизотропии интенсивности трещиноватости [2] (радиус -интенсивность трещиноватости); б) диаграмма ориентировки трещин [15] (радиус - отклонение вектора трещины от вертикали, градусы; цвет - плотность векторов,

направленных в окрестность точки).

В работе [15] описан способ визуализации интенсивности трещиноватости путём проецирования векторов систем трещин на полусферу (рис. 1.2б). Плотность векторов трещин, попавших в окрестность выбранной точки, показывается цветом. Это позволяет выделить кластеры векторов трещин, образующие системы трещин.

1.2. Вопросы измерения фракционного состава взорванной горной массы

Для оценки качества дробления породы при проведении БВР исходными данными является гистограмма распределения кусков породы по их размерам (рис. 1.3а). На основе гистограммы распределения строится функция распределения Г(х) (рис. 1.3б), которая определяет долю породы, заключённую в кусках с размером меньшим или равным х (м).

Рисунок 1.3 - Данные о распределении кусков по размерам. а) гистограмма распределения с шагом 0.05м; б) функция распределения.

Физика процесса дробления такова, что распределение кусков хорошо аппроксимируется распределением Вейбулла [6,7]

F(x) = 1 - е-(х/Х)к или распределением Розина-Раммлера [4,7]:

F(x) = 1 - е-х/х где Я - средний размер куска (м).

Для получения количественных данных о кусковатости в развале взорванной горной массы используется тот или иной способ замеров кусков, среди которых можно выделить следующие:

1) Непосредственное измерение:

а. Подсчёт числа камней различных размеров, связанный с извлечением каждого камня из развала и измерения его размеров;

б. Линейный способ [16], заключающийся в следующем: на участок с измеряемыми кусками накладываются параллельные ленты (линейки) с определённым шагом, для каждого куска, которые пересекает лента, замеряется длина пересечения Ц и максимальный размер камня, далее строится гистограмма распределения камней по размерам, в которой в качестве весового коэффициента камня 1 используется Ц.

2) Дистанционные способы:

а. Фотографирование кусков (в развале, в кузове самосвала, либо на транспортной ленте), автоматическое или ручное их оконтуривание, для определения размеров кусков необходимо применение методов фотограмметрии;

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

Эти методы замеров различаются по точности, трудоёмкости, безопасности применения.

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

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

Рисунок 1.4 - Фотографии взорванной горной массы.

Фотопланиметрический метод (2а) [17-18], заключается в фотографировании развала и последующей обработке фотографий. Исходными данными для измерения кусковатости служат фотографии, на которых хорошо представлены различные размеры камней, присутствующие в развале, а также присутствуют измерительные линейки для оценки параметров перспективного преобразования фотографии (рис. 1.5). Затем выполняется ручное (рис. 1.6, 1.7) или автоматическое (рис. 1.8, 1.9) выделение контуров камней и обратное перспективное преобразование фото с контурами (рис. 1.7).

Ручное оконтуривание камней - достаточно трудоёмкий процесс. Чтобы ускорить выполнение этой задачи, в условиях производства обычно используют компьютерные программы, выполняющие выделение контуров кусков в автоматическом или автоматизированном режиме. Однако качество автоматического оконтуривания может быть неудовлетворительным (рис. 1.8, рис.1.9) из-за участков камня с различным цветом или различным освещением.

Рисунок 1.5 - Участок развала буровзрывного блока с измерительными линейками.

Рисунок 1.6 - Обведённые контура камней на исходной фотографии.

Рисунок 1. 7 - Обведённые контуры камней с обратным перспективным

преобразованием.

а) б)

Рисунок 1.8 - Фотоснимок развала взорванной горной массы до

фрагментации (а) и после фрагментации (б)

а) б)

Рисунок 1.9 - Фотоснимки поверхности взорванного блока до (а) и после (б) обработки их с применением алгоритма «линеаризации».

Обратное перспективное преобразование рассчитывается из координат линеек на фото и их фактических координат ({0;0},{Л;0},{Л;Б},{Б;0}), учитывая то, что линейки являются сторонами прямоугольника известных размеров (Л, В).

Пересчёт координат точек из координат растра (р,д) в координаты модели (х,у) выполняется путём умножения однородных координат (р^,1) на матрицу, обратную матрице перспективного преобразования М:

х = х'/2' У = У'

где х',у',7' - однородные координаты точки в пространстве модели.

(о1 Ь сА

Матрица М = I а2 Ь2 с2) находится [19] из уравнения

V а Ь 1/

и следующих из него формул расчёта координат (р^):

ах + Ьу + 1

Для составления системы линейных уравнений с целью определения 8-ми неизвестных (а1; Ь1; сь а2, Ь2, с2, а, Ь) необходимы 4 точки со значениями, известными в координатах модели (х1,у1,х2,у2,хз,уз,х4,у4) и координатах растра (рьдьр2Л2,РзЛз,Р4Л4). Координаты подставляются в формулы (1.3):

<а1х1 + Ь1у1 + с1 = р1(ах1 + Ьу1 + 1) а1X2 + Ку2 + С1 = Р2(ах2 + Ьу2 + 1) 0-1X3 + Ьгуз + с± = Рз(ах3 + Ьу3 + 1) а1х4 + Ь1у4 + с1 = р4(ах4 + Ьу4 + 1) 0-1*1 + Ь2У1 + С2 = 41(0x1 + Ьу1 + 1) 0-2*2 + Ь2У2 + С2 = 42(0X2 + Ъу2 + 1) О1Х3 + Ь2Уз + С2 = 4з (ОХз + Ьуз + 1) <а1х4 + Ь2у4 + с2 = ц4 (ах4 + Ьу4 + 1)

<а1х1 + Ь1у1 + с1 — ар1х1 — Ьр1у1 = р1 О1Х2 + КУ2 + С1— ар2Х2 — Ър2У2 = Р2

О1Х3 + Ь1У3 + С1 — ар3Х3 — Ьр3У3 = Р3

а1х4 + Ь1у4 + с1 — ар4х4 — Ьр4у4 = р4 * а.1%1 + Ь2У1 + С2 — ац1Х1 — Ьц^ = Ц1 О2Х2 + Ь2У2 + С2 — ОЯ2Х2 — ЪЦ2У2 = 42

О1Х3 + Ь2У3 + С2 — Щ3Х3 — ЬЦ3У3 = Ц3

<а1х4 + Ь2у4 + с2 — ад4х4 — Ьд4у4 = д4

р = р'/г ц = ц!/т

%х + Ь1у + с1

ах + Ьу + 1 а2Х + Ь2У + С2

(1.3)

и полученная система решается относительно неизвестных (ai, bi, ci, a2, b2, c2, a, b) - элементов матрицы перспективного преобразования M.

Для точного измерения размеров по преобразованной фотографии необходимо, чтобы измеряемые объекты находились в плоскости измерительных линеек. Из-за объёма камней строгое выполнение этого условия невозможно, поэтому в ряде случаев в измерения вносится существенная погрешность. Для уменьшения этой погрешности необходимо, чтобы при съёмке ось фотоаппарата была перпендикулярной (либо близкой к перпендикулярной) плоскости развала. Если это правило не выполняется, в размеры по одной или сразу двум осям координат искажаются. Так, на рис. 1.7 сильно искажены размеры по вертикали, но размеры по горизонтали искажаются несущественно. Из-за такого неравномерного искажения в методике K-Mine [20] производится автоматический поиск границ только по горизонтали (рис. 1.9).

В качестве веса контуров берётся их линейный размер по координате X, а в качестве размера - их максимальный размер. Это соотвествует линейному методу измерений. При наличии искажений в расчёт принимается только размер контуров по X (горизонтали).

Средний размер куска при условии распределения кусков по закону Розина-Раммлера может считаться [4] как значение 1 - е-1 квантили распределения (квантили -0.628).

Точность измерения размеров кусков может снижаться в фотопланиметрическом методе (2а), т.к. для определения размеров необходимо обратное перспективное преобразование фотографии, параметры которого определяются по координатам предварительно расположенных на фото мерных линеек. Метод расчёта координат наиболее точен для объектов, находящихся в плоскости мерных линеек, однако не всегда удаётся разместить линейки требуемым образом, из-за чего в расчёты вносится погрешность. Этот недостаток имеет меньшее значение в случае фотографирования кусков в кузове или на транспортной ленте, т.к. мерными линейками служат борта кузова или части конвейера.

Метод непосредственного измерения камней (1а) имеет очень высокую трудоёмкость, из-за чего на практике применяется редко. Трудоёмкость остальных способов, за исключением фотографирования с автоматическим оконтуриванием камней, также остаётся довольно высокой из-за необходимости ручного учёта каждого измеряемого камня. Это ограничение весьма существенно для задач горнодобывающих предприятий, где нужен относительно быстрый замер кусковатости развала, поэтому предпочтение отдаётся способам с автоматическим оконтуриванием камней.

По безопасности применения имеют преимущество дистанционные способы (2а, 2б), позволяющие выполнить замеры без длительного нахождения в опасной зоне. Следует отметить, что необходимость размещения мерных линеек в способе 2а на камнях развала понижает безопасность работ.

Наиболее удобным (и часто применяемым на ГОК) в настоящее время является способ замера кусковатости на фотографии с автоматическим оконтуриванием, например программным обеспечением KMine [20]. Основные преимущества этого способа - быстрота измерений, доступность оборудования (фотоаппаратов), низкая трудоёмкость замеров (из-за автоматического оконтуривания). Основные недостатки - необходимость размещения мерных линеек в развале (снижается безопасность), погрешности при неудачном размещении мерных линеек, погрешности из-за ошибок автоматического выделения кусков.

Трёхмерные снимки (2б) получают с помощью специального оборудования - 3D сенсора (на основе дальномера и стереофотоаппарата, например, программное обеспечение и оборудование фирмы MotionMetrics [21,22]) или с помощью лазерного 3D сканера (например, фирм Riegl [23], Leica [24] и других). Использование таких снимков улучшает качество автоматического выделения кусков за счёт того, что получаемое трёхмерное облако точек содержит дополнительную информацию о глубине (расстояние от сканера до точки), которая отсутствует на фотографиях. Это повышает вероятность правильного автоматического оконтуривания по SD-снимку по сравнению с оконтуриванием

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

Похожие диссертационные работы по специальности «Математическое моделирование, численные методы и комплексы программ», 05.13.18 шифр ВАК

Список литературы диссертационного исследования кандидат наук Коновалов Александр Владимирович, 2019 год

Список использованных источников

1. Рац М. В. Трещиноватость и свойства трещиноватых горных пород / Рац М. В., Чернышев С. Н. // М.: Недра, 1970. - 164 с.

2. Редькин, Г. М. Нестационарное анизотропное математическое моделирование неоднородностей систем минерального сырья / Г. М. Редькин. -М.: Издательство Ассоциации строительных вузов, 2007. - 500 с.

3. Нейштадт Л. И. Методы инженерно-геологического изучения трещиноватости горных пород / Л. И. Нейштадт, И. А. Пирогов. - М.: Энергия, 1969. - 248 с.

4. Фокин, В. А. К вопросу оценки качества дробления взорванной горной массы при производстве буровзрывных работ в карьерных условиях / В.А.Фокин, М.Б. Тогунов, С.В. Сёмкин, Ю.А. Шитов // Горный журнал. 2013. № 12. С.54-58.

5. Коновалов А. В. Методика определения рациональных параметров буровзрывных работ на основе математической модели прогнозирования кусковатости взорванной горной массы / А. В. Коновалов, И. М. Игнатенко, А. Н. Овсянников, В. А. Фокин // Материалы XIII международного симпозиума «Освоение месторождений минеральных ресурсов и подземное строительство в сложных гидрогеологических условиях». Белгород, 25-29 мая 2015 г. - С. 171-176.

6. Ефремов Э. И. Прогнозирование дробления горных массивов взрывом / Э. И. Ефремов, В. Д. Петренко, А. И. Пастухов // Ин-т. технологической механики. - Киев : Наук. думка, 1990. - 120с.

7. Кузнецов, В. М. Математические модели взрывного дела / В.М. Кузнецов // Изд-во «Наука», Новосибирское отд., Новосибирск, 1977, - 264с.

8. Сапожников С. И. Информационная технология поддержки принятия решений для оптимизации технико-экономических показателей взрывных работ : дис. ... канд. техн. наук:05.13.18 / Сапожников Станислав Игоревич // Москва, 2009. - 174 с.

9. Кутузов, Б. Н. Физика взрывного разрушения горных пород (Раздел 1). / Б. Н. Кутузов, В. К. Рубцов // М . : МГИ, 1970. - 182 с.

10. Кутузов Б.Н. Разрушение горных пород под взрывом (взрывные технологии в промышленности): Учеб. для вузов. — Ч. 2. — 3-е изд., перераб. и доп. / Б.Н. Кутузов // М.: МГГУ, 1994. - 448 с.

11. Проектирование взрывных работ в промышленности / под ред. Б.Н. Кутузова // М.:Недра, 1983.

12. Кутузов Б.Н. Современные тенденции в теории, технике и технологии взрывного разрушения пород. в кн.: Материалы Международной конференции «Взрывное дело-99» / Б.Н. Кутузов // М.: изд.МГТУ, 1999, с 20-24.

13. Суханов, А.Ф. Разрушение горных пород взрывом. Учебник для вузов, 2-е изд., перераб. и доп. / А.Ф. Суханов, Б.Н.Кутузов. // М.: Недра, 1983, 344с.

14. Тюпин В. Н. Взрывные и геомеханические процессы в трещиноватых напряженных горных массивах. / Белгород: ИД «Белгород» «НИУ БелГУ», 2017. -192 с.

15. Серый С. С. Алгоритмическая основа и компьютерная технология моделирования решетки трещин в массивах скальных горных пород // Материалы седьмого международного симпозиума «Освоение месторождений минеральных ресурсов и подземное строительство в сложных гидрогеологических условиях». Белгород, ФГУП «ВИОГЕМ», 19-23 мая 2003 г. - С. 391-401.

16. Барон, Л. И. Кусковатость и методы её измерения /Л.И. Барон // М., Изд-во АН СССР, 1960.

17. Лобанов, А.Н.. Аналитическая фотограмметрия. / А.Н.Лобанов. // М.: Недра, 1972, 224с.

18. Бобир, И.Я. Фотограмметрия. / И.Я.Бобир, А.Н.Лобанов, Г.Д.Федорчук. // М.:Недра, 1974. 472с.

19. Платонов, А.К.. Определение параметров проективного отображения в зрительном канале робота / А.К.Платонов // Москва, 2007г.

20. K-MINE. Программный комплекс для геологов, маркшейдеров и горных инженеров / Электронный ресурс URL: http://kai.ua/ru/products/k-mine/ Дата обращения 6.10.2015.

21. MotionMetrics. Extending machine senses. / Электронный ресурс URL:

http://www.motionmetrics.com/ Дата обращения 6.10.2015.

22. PortaMetrics (ТМ) for portable analysis / Электронный ресурс URL: http://www.motionmetrics.com/files/brochures/PortaMetricsBrochure.pdf Дата обращения 6.10.2015.

23. RIEGL Laser Measurment Systems / Электронный ресурс URL: http://www.riegl.com/ Дата обращения 6.10.2015.

24. Leica Geosystems / Электронный ресурс URL: http://hds.leica-geosystems.com/en/index.htm Дата обращения 6.10.2015

25. Красильников Н. Н. Цифровая обработка 2D- и 3Б-изображений: учеб. пособие. // СПб.: БХВ-Петербург, 2011. — 608 с.: ил.

26. Canny J. A Computational Approach to Edge Detection // IEEE transactions on pattern analysis and machine intelligence, vol. PAMI-8, No. 6 November 1986, p.679-698.

27. Jos B.T.M. Roerdink The Watershed Transform: Definitions, Algorithms and Parallelization Strategies / Jos B.T.M. Roerdink and Arnold Meijster // Fundamenta Informaticae 41 (2001), IOS Press. p 187-228.

28. Hough Transform / Robert Fisher, Simon Perkins, Ashley Walker, Erik Wolfart // Электронный ресурс URL: http://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm Дата обращения 13.06.2016.

29. Оксанич, И.Ф. Закономерности дробления горных пород и прогнозирование гранулометрического состава / И.Ф. Оксанич, П.С. Миронов. // М.: Недра, 1982, -166 с.

30. Кутузов, Б. Н. Методы ведения взрывных работ. - Ч. 2. Взрывные работы в горном деле и промышленности: Учебник для вузов. / Б.Н.Кутузов // М.: Издательство «Горная книга», «Мир Горной книги», Издательство Московского государственного горного университета, 2008. - 512 с.

31. Кутузов Б. Н. Методы ведения взрывных работ. - Ч. 1. Разрушение горных пород взрывом: Учебник для вузов. - 2-е изд., стер. / Б.Н.Кутузов // М.: Издательство «Горная книга», Издательство Московского государственного горного университета, 2009. - 471 с.

32. Кутузов Б. Н. Взрывные работы: Учебник для техникумов. - 3-е изд., перераб. и доп. / Б.Н.Кутузов // М.: Недра, 1988. - 383 с.

33. Федосеев А. В. Обоснование размеров сетки скважинных зарядов при взрывном разрушении слоистых массивов железистых кварцитов: дисс. канд. техн. наук:25.00.20 / Федосеев Антон Владимирович // СПб., 2014. - 122 С.

34. Воробьев В. Д. Влияние анизотропии гранитов на выбор параметров сетки кважинных зарядов / В. Д. Воробьев, И. Л. Кратковский, Б. Н. Мяделец и др. // Горный журнал, 1977, №4. - С.46-48.

35. Власов. О.Е. Основы теории действия взрыва. / О.Е.Власов // Изд. ВИА, М., 1957.

36. Боровиков, В. А. Моделирование действия взрыва при разрушении горных пород. / В. А. Боровиков, И. Ф. Ванягин. // М. Недра, 1990. - 231 с.: ил.

37. Игнатенко И.М. Оценка взрываемости трещиноватых горных пород на карьерах : дис. ... канд. техн. наук:25.00.20 / Игнатенко Игнат Михайлович // Тула, 2011. - 136 С.

38. Гончаров, С. А. Определение оптимальной ориентации ряд скважинных зарядов при взрывной отбойке слоистых массивов железистых кварцитов. / Гончаров С. А., Гладаревский Р. А. // ГИАБ . 2005. №12.

39. ГОСТ 8267-93. Щебень и гравий из плотных горных пород для строительных работ. Технические условия. URL: http://docs.cntd.ru/document/gost-8267-93.

40. Pearson K. On lines and planes of closest fit to systems of points in space / Philosophical Magazine, 1901, №2, p.559—572.

41. Калиткин, Н.Н. Численные методы / Н.Н.Калиткин // М. :Наука, 1978 - 512с.

42. Marquardt D. An Algorithm for Least-Squares Estimation of Nonlinear Parameters / SIAM Journal on Applied Mathematics, 1963, 11 (2): p.431-441.

43. Гонсалес, Р.. Принципы распознавания образов. Пер. с англ. И.Б.Гуревича под ред. Ю.И.Журавлева / Дж. Ту, Р. Гонсалес // М.:Мир, 1978.

44. Роджерс Д. Математические основы машинной графики: Пер. с англ. / Роджерс Д., Адамс. Дж. // М.:Мир, 2001. - 604с.: ил.

45. Николаев, Д.П. Алгоритмы цветовой сегментации, применимые в условиях сложного освещения сцены: автореф. дис. ... канд. техн. наук:05.13.18 / Николаев Дмитрий Петрович // МОСКВА, 2004 г.

46. He K. Mask R-CNN / K. He, G. Gkioxari, P. Dollar, R. Girshick // International Conference on Computer Vision (ICCV), October 22, 2017. URL: https: //arxiv.org/abs/1703.06870v3

47. Ren Sh. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks / Sh. Ren, K. He, R. Girshick, J. Sun // URL: https://arxiv.org/abs/1506.01497v3

48. DeepLearning 0.1 Documentation - Convolutional Neural Network (LeNet) / LISA Lab // Электронный ресурс URL: http://deeplearning.net/tutorial/lenet.html Дата обращения 13.06.2016.

49. Николенко С. Глубокое обучение. / С. Николенко, А. Кадурин, Е. Архангельская // СПб.: Питер, 2018. — 480 с.: ил.

50. Goodfellow I. Deep Learning / Ian Goodfellow, Yoshua Bengio, Aaron Courville // MIT Press, 2016. - 800 с. Электронный ресурс URL: https://deeplearningbook.org

51. Keras: The Python Deep Learning library / URL: https://keras.io

52. TensorFlow: An open source machine learning framework for everyone / URL: https: //www.tensorflow. org

53. Коновалов А. В. Анализ способа представления гранулометрического состава в памяти ЭВМ в виде списка отдельных кусков [Электронный ресурс] / А. В. Коновалов, Г. М. Редькин // Сборник докладов «Международной научно-технической конференции молодых ученых БГТУ им. В.Г. Шухова» 2014г. -Белгород, 2014. - 1 электрон. опт. диск (CD-ROM).

54. Коновалов А. В. Сравнение способов построения функции распределения размера кусков во взорванной горной массе [Электронный ресурс] / А. В. Коновалов, Г. М. Редькин // Сборник докладов «Международной научно-технической конференции молодых ученых БГТУ им. В.Г. Шухова» 2014г. -Белгород, 2014. - 1 электрон. опт. диск (CD-ROM).

55. Каханер, Д. Численные методы и математическое обеспечение / Д.Каханер, К.Моулер, С.Неш // М.:Мир, 1998 - 575с.

56. Хорстманн, Кей С. Java. Библиотека профессионала, том 1. Основы. 9-е изд. : Пер. с англ. / Кей С. Хорстманн, Гари Корнелл М. // ООО «И.Д.Вильямс», 2014. -864 с.

57. Scala Электронный ресурс URL: http://scala-lang.org/ Дата обращения 6.10.2015.

58. Odersky, M. Scala By Example. / Martin Odersky // Programming Methods Laboratory, EPFL, Switzerland, 2014.

59. Odersky, M. An Overview of the Scala Programming Language. Second Edition. / Martin Odersky, Philippe Altherr, Vincent Cremet, Iulian Dragos, Gilles Dubochet, Burak Emir, Sean McDirmid, Stéphane Micheloud, Nikolay Mihaylov, Michel Schinz, Erik Stenman, Lex Spoon, Matthias Zenger // Technical Report LAMP-REPORT-2006-001. École Polytechnique Fédérale de Lausanne (EPFL), Switzerland.

60. SBT - The interactive build tool. Электронный ресурс URL: http://www.scala-sbt.org/ Дата обращения 6.10.2015.

61. Хорстманн, Кей С. Java. Библиотека профессионала, том 2. Расширенные средства. 9-е изд. : Пер. с англ. / Кей С. Хорстманн, Гари Корнелл М. // М. : ООО «И.Д.Вильямс», 2014. - 1008 с.

62. Gosling, J. The Java® Language Specification. Java SE 8 Edition. / James Gosling, Bill Joy, Guy Steele, Gilad Bracha, Alex Buckley // Oracle America, Inc., 2015. Электронный ресурс URL: http://docs.oracle.com/javase/specs/jls/se8/jls8.pdf Дата обращения 6.10.2015.

63. Lindholm, T. The Java® Virtual Machine Specification. Java SE 8 Edition / Tim Lindholm, Frank Yellin, Gilad Bracha, Alex Buckley // Oracle America, Inc., 2015. Электронный ресурс URL: http://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf Дата обращения 6.10.2015.

64. Редькин, Г. М. Математическое моделирование средней естественной отдельности / Г. М. Редькин, А. В. Коновалов, В. Ю. Алексанов // Горный информационно-аналитический бюллетень. - 2013. - №9. - С.351-357.

65. Редькин, Г. М. Тензор корреляции [Депонированная рукопись] / Г. М. Редькин, В. Ю. Алексанов А. В. Коновалов // Горный информационно-аналитический бюллетень. - 2013. - №9 - С.288.

66. Кнут, Д.Э. Искусство программирования = The Art of Computer Programming. — 3-е изд. / Дональд Э. Кнут // М.: Вильямс, 2000. — Т. 2. Получисленные алгоритмы. — 832 с..

67. Серый С.С. Дистанционная оценка ориентировки трещин в откосах уступов карьера с использованием лазерного сканера / С.С. Серый, И.Б. Агарков, А.В. Коновалов, Н.Б. Агарков // Маркшейдерия и недропользование. - 2016. - № 3 (83). - С.54-57.

68. Seismic Fracture Detection. Exploiting the Range of Seismic Signatures Using Rock Physics Principles Электронный ресурс URL: www.rocksolidimages.com Дата обращения 6.10.2015.

69. Редькин Г. М. Метод определения направлений экстремумов интенсивности трещиноватости / Г. М. Редькин, А. В. Коновалов // Вестник БГТУ им. В.Г. Шухова. - 2016. - №2. - С.121-127.

70. Брусенцев А. Г. Исследование операций и теория игр: учебн. пособие / А. Г. Брусенцев, В. И. Петрашев, Ю. Д. Рязанов. - Белгород: Изд-во БГТУ, 2012. -258 с.

71. Геолого-технологическое картирование попутно добываемых пород Лебединского, Стойленского и Оленегорского месторождений с целью использования их в промышленности строительных материалов: отчёт о НИР (заключит.): 86-Б-25 / Белгор. технол. инс-т строит. матер.; рук. Казикаев Д. М.; исполн. Кокунько В. К., Редькин Г. М. [и др.]. - Белгород, 1990. - 163 с. -№ ГР 0186011432.

72. Татарчук С. Автоматизированная расстановка скважин для неоднородных блоков с произвольной конфигурацией. В кн.: Сборник докладов международного семинара «Передовые технологии проектирования буровзрывных работ на карьерах», Кыргызская республика, озеро Иссык-Куль, 4-7 сентября 2006 г. КРСУ, Бишкек, - С. 20-26.

73. Engineering geology field manual, Second Edition, Vol. II. U.S. Department of the Interior, Bureau of Reclamation, 2001.

74. Gomes-Sebastiao G.L., de Graaf W.W. 2017. An investigation into the fragmentation of blasted rock at Gomes Sand. Journal of the Southern African Institute of Mining and Metallurgy, volume 117, April 2017. University of Pretoria: 321-328.

75. Коновалов А. В. Учёт анизотропии трещиноватости пород в математических моделях расстановки буровзрывных скважин / А. В. Коновалов, Г. М. Редькин // Научные ведомости Белгородского государственного университета. Серия: Экономика. Информатика. - 2018. - Т.45, №3. - С.523-536.

76. Ширяев А. Н. Вероятность в 2-х кн. - 3-е изд, перераб. и доп. / М.: МЦНМО, 2004. Кн.1. - 520 с.

77. Кремер Н. Ш. Теория вероятностей и математическая статистика: Учебник для вузов. - 2-е изд, перераб. и доп. / М.: ЮНИТИ-ДАНА, 2003. - 503 с.

78. Мосинец, В.Н. Разрушение трещиноватых и нарушенных горных пород. / В.Н.Мосинец, А.В.Абрамов // М.:Недра, 1982. 248с.

79. Мосинец, В.Н. Дробящее и сейсмическое действие взрыва в горных породах. / В.Н.Мосинец // М.: Недра, 1976. 271с.

80. Покровский, Г.И. Взрыв / Г.И. Покровский // М.: Недра, 1973.

81. Кузьменко, А.А. Сейсмическое действие взрыва в горных породах. /

A.А.Кузьменко, В.Д.Воробьев, И.И.Денисюк, А.А. Дауетас. - М.:Недра, 1990. -173с.

82. Падуков, В.А. Разрушение горных пород при ударе и взрыве / В.А.Падуков,

B.А. Антоненко, Д.С.Подозерский. // Изд-во «Наука» Ленингр. отд., Л.: 1971. -180с.

83. Друкованый, М.Ф. Управление действием взрыва скважинных зарядов на карьерах. / М.Ф. Друкованый, В.С.Куц, В.И. Ильин // М.:Недра, 1980. - 223с.

84. Ямщиков, В.С. Волновые процессы в массиве горных пород: Учебник для вузов. / В.С. Ямщиков //М.:Недра, 1984. 271с.

85. Рябинкин Л.А. Теория упругих волн. Учебн. пособие для вузов. / Л.А. Рябинкин // М.:Недра, 1987. - 182с.

86. Пестриков В.М. Механика разрушения твёрдых тел: курс лекций. // В.М.Пестриков, Е.М.Морозов // СПб.: Профессия, 2002. - 320с.

87. Хеллан К. Введение в механику разрушения: Пер. с англ. / К. Хеллан // М.: Мир, 1988. -364 с.

88. Кучерявый Ф.И. Разрушение горных пород. / Ф.И.Кучерявый, Ю.М. Кожушко // М.: Недра, 1972. 240с.

89. Бархатов, В.А. Решение динамических задач акустики методом конечных разностей во временной области. Основные соотношения. Анализ погрешностей. / Электронный ресурс.

90. Бархатов, В.А. Решение волновых уравнений методом конечных разностей во временной области. Двумерная задача. Основные соотношения. / Электронный ресурс.

91. Бархатов, В.А. Моделирование ультразвуковых волн методом конечных разностей во временной области. Двумерная задача. Оптимальные алгоритмы. Анализ погрешностей. Поглощающие области вблизи границ сетки. / Электронный ресурс.

92. Самарский А.А. Теория разностных схем / А.А. Самарский // М.:Наука, 1983.

93. Maerz, N. H. WipFrag image based granulometry system. / N. H. Maerz, T. C. Palangio, J. A. Franklin // Proceedings of the FRAGBLAST Workshop on Measurement of Blast Fragmentation, Montreal, Quebec, Canada, 23-24 Aug., 1996, pp. 91-99.

94. Virieux, J. W-wave propagation in heterogeneous finite-difference method / Jean Virieux // GEOPHYSICS. VOL.49. NO.II (NOVEMBER1984);P.1933-1957.

95. Virieux, J. P-SV wave propagation Velocity-stress in heterogeneous media: finite-difference method method / Jean Virieux // GEOPHYSICS. Volume 51 April 1986 Number 4; P.889-901.

96. Graves, R.W. Simulating Seismic Wave Propagation in 3D Elastic Media Using Staggered-Grid Finite Differences / Robert W. Graves // Bulletin of the Seismological Society of America, Vol. 86, No. 4, pp. 1091-1106, August 1996

97. Yanke, G. Methods for Seismic Wave Propagation on Local and Global Scales

with Finite Differences / Gunnar Yanke // Inaugural-Dissertation zur Erlangung des Doktorgrades der Fakultät für Geowissenschaften der Ludwig-Maximilians-Universität München. 17 September 2008.

98. Christoph T. Shröder, Waymond R. Scott. On the Stability of the FDTD Algorithm for Elastic Media at a Material Interface./ Submitted to the IEEE Transactions on Geoscience and Remote Sensing, 1999.

99. Aparapi. Open-source framework for executing native Java code on the GPU. / URL: http://aparapi.com/

100. The OpenMP® API specification for parallel programming / Электронный ресурс URL: http://openmp.org/ Дата обращения 5.10.2015.

101. CUDA: Материал из Википедии - свободной энциклопедии / Авторы Википедии // Википедия, свободная энциклопедия. - Сан-Франциско: Фонд Викимедия. Электронный ресурс URL: https://ru.wikipedia.org/wiki/CUDA

102. OpenCL The open standard for parallel programming of heterogeneous systems / Электронный ресурс URL: https://www.khronos.org/opencl/

103. Sentinel HASP - Отмеченное наградами готовое решение для защиты лицензирования программного обеспечения. SafeNet Inc. // Электронный ресурс URL: http://m.safenet-inc.com/software-monetization/sentinel-hasp/ Дата обращения 6.10.2015.

104. ISO/IEC 14977 : 1996(E). Information technology — Syntactic metalanguage — Extended BNF. URL: http://standards.iso.org/ittf/PubliclyAvailableStandards/ s026153_ISO_IEC_14977_1996(E).zip

105. Scala Parser Combinators. Simple combinator-based parsing for Scala. URL: https://github.com/scala/scala-parser-combinators

106. LAS Specification Version 1.0 / Электронный ресурс URL: http://www.asprs.org/a/society/committees/standards/asprs_las_format_v10.pdf

107. LAS Specification Version 1.1 / Электронный ресурс URL: http: //www. asprs. org/a/society/committees/standards/asprs_las_format_v 11. pdf

108. LAS Specification Version 1.2 / Электронный ресурс URL: http://www.asprs.org/a/society/committees/standards/asprs_las_format_v12.pdf

109. LAS Specification Version 1.3 / Электронный ресурс URL: http://www.asprs.org/a7society/committees/standards/LAS_1_3_r11.pdf

110. LAS Specification Version 1.4 / Электронный ресурс URL: http: //www. asprs. org/a/society/committees/standards/LAS_1_4_r 13. pdf

111. Object Files (obj) / Электронный ресурс URL: http: //www. martinreddy. net/gfx/3 d/OBJ. spec

112. The STL Format / Электронный ресурс URL: http: //www. fabbers. com/tech/STL_Format

113. PLY - Polygon File Format Also known as the Stanford Triangle Format/ Электронный ресурс URL: http://paulbourke.net/dataformats/ply/

114. Скворцов, А.В. Триангуляция Делоне и её применение. / А.В Скворцов // Томск: Изд-во Том. ун-та, 2002. - 128 с.

115. Самоорганизующаяся карта Кохонена / Википедия, свободная энциклопедия // URL: https: //ru. wikipedia. org/wiki/Самоорганизующаяся_карта_Кохонена

116. Борщ-Компониец В. И. Практическая механика горных пород. / В. И. Борщ-Компониец. // М. Издательство «Горная книга», 2013. - 322 с.: ил.

117. OpenCL: Материал из Википедии - свободной энциклопедии / Авторы Википедии // Википедия, свободная энциклопедия. - Сан-Франциско: Фонд Викимедия. Электронный ресурс URL: https://ru.wikipedia.org/wiki/OpenCL

118. OpenCL - NVIDIA OpenCL SDK Code Samples/ Электронный ресурс URL: https: //developer. nvidia. com/opencl

119. OpenCL Technology - Intel Developer Zone / Intel, Inc. // Электронный ресурс URL: https://software.intel.com/en-us/intel-opencl

120. OpenCL™ Zone - Accelerate Your Applications / Advanced Micro Devices, Inc. // Электронный ресурс URL: http://developer.amd.com/tools-and-sdks/opencl-zone/

121. Параллельные вычисления CUDA / Электронный ресурс URL: http: //www. nvidia. ru/obj ect/cuda-parallel-computing-ru.html

122. Боресков А. В. Параллельные вычисления на GPU. Архитектура и программная модель CUDA: Учебное пособие. / А. В. Боресков и др. Предисл.: В. А. Садовничий // Издательство Московского университета, 2012Перепелт, 336

стр. ISBN: 978-5-211-06340-2

123. Боресков А. В. Основы работы с технологией CUDA / А. В. Боресков, А. А. Харламов // 2010 г. Мягкая обложка, 232 стр. ISBN 978-5-94074-578-5

124. OpenMP: Материал из Википедии - свободной энциклопедии / Авторы Википедии // Википедия, свободная энциклопедия. - Сан-Франциско: Фонд Викимедия. Электронный ресурс URL: https://ru.wikipedia.org/wiki/OpenMP

125. Gerber, Richard. Начало работы с OpenMP / Richard Gerber // Электронный ресурс URL: http://www.webcitation.org/65t9vnMZf дата обращения 06.10.2015.

126. Игнатенко И. М. Компьютерная технология расчёта параметров буровзрывных работ на карьерах. / И. М. Игнатенко, А. В. Коновалов, А. Н. Овсянников // Материалы ХШ международного симпозиума «Освоение месторождений минеральных ресурсов и подземное строительство в сложных гидрогеологических условиях». Белгород, 25-29 мая 2015 г. - С. 167-171.

127. Серый, С.С. ГИС ГЕОМИКС - интегрированная информационная система геолого-маркшейдерского обеспечения открытых и подземных горных работ / С.С.Серый // В кн.: Вопросы осушения, горнопромышленной геологии и охраны недр, геомеханики, промышленной гидротехники, геоинформатики, экологии. -Белгород: ВИОГЕМ, 2003. с 391-401.

128. Коновалов А. В. Компьютерная технология прогнозирования кусковатости развала взорванной горной массы / А. В. Коновалов, С. Г. Кабелко, А. Н. Овсянников // Материалы Х11 международного симпозиума «Освоение месторождений минеральных ресурсов и подземное строительство в сложных гидрогеологических условиях». Белгород, 20-24 мая 2013 г. - С. 150-158.

ПРИЛОЖЕНИЕ 1 Фрагменты исходного текста комплекса программ по оптимизации БВР в условиях анизотропии

трещиноватости

SkvMain.scala: package research.skvgen

import java.awt.

import java.awt.image.Bufferedlmage import javax.swing.JFrame

import org.apache.commons.math3.analysis.MultivariateFunction import org.apache.commons.math3.geometry.euclidean.twod.Vector2D import org.apache.commons.math3.optim.

import org.apache.commons.math3.optim.nonlinear.scalar.noderiv.CMAESOptimizer import org.apache.commons.math3.optim.nonlinear.scalar.{GoalType, ObjectiveFunction}

import org.apache.commons.math3.random.JDKRandomGenerator import ru.geomix.anisotropicopt.WellNetworkMatrixModel import ru.geomix.lump.Solver

import ru.geomix.lump.Solver.OptimizationConsts

import ru.geomix.lump.distribution.LumpSizesDistributionFunction import ru.geomix.util.ParallelRunner.SeqExt import ru.geomix.util.gui.Indicator

import ru.geomix.util.spatial.{Index2D, Index2DRange, Vector2DExt} import ru.geomix.util.{BooleanExt, Logging} import scala.collection.mutable

object SkvMain extends JFrame with App with Logging {

import org.apache.commons.math3.util.{FastMath => math} type P = (Double, Double) type F = (Double, Double)

implicit class TupleExt(val v: P) extends AnyVal { @inline def length = math.hypot(v. 1, v. 2) @inline def sqLength = v. 1 * v. 1 + v. 2 * v. 2 @inline def to(v2: P) = (v2._1 -_v._1, v2._2 -_v._2) @inline def mul(k: Double) = (v. 1 * k, v.2 * k) def rotate(a: Double): P = rotate(math.cos(a), math.sin(a)) def rotate(cos: Double, sin: Double): P = { val x = v. 1 val y = v. 2

val x2 = cos * x - sin * y val y2 = sin * x + cos * y (x2, y2)

}

def scalarProd(v2: P) = v._1 * v2._1 + v._2 * v2._2

def cos(v2: P) = scalarProd(v2) / math.sqrt(sqLength * v2.sqLength)

}

implicit class Vector2DExt2(val v: Vector2D) extends AnyVal {

def rotate(a: Double): Vector2D = rotate(math.cos(a), math.sin(a)) def rotate(cos: Double, sin: Double): Vector2D = { val x = v.x val y = v.y

val x2 = cos * x - sin * y val y2 = sin * x + cos * y new Vector2D(x2, y2)

}

}

case class ResultMatrix(w: Int, h: Int) { val array = Array.ofDim[Double](h * w)

def apply(x: Int, y: Int) = array(w * y + x)

def update(x: Int, y: Int, v: Double) = array(w * y + x) = v lazy val imageWithLegend: BufferedImage = {

def logConvert(v: Double): Double = math.log10(v)

def expConvert(v: Double): Double = math.pow(10, v)

val arr = array map logConvert

val Threshold = 0.25

val Max = array.max

val Min = 0.01

val maxValue = math.ceil(logConvert(Max) / Threshold) * Threshold val minValue = math. floor(logConvert(Min) / Threshold) * Threshold val LevelsCount = math.round((maxValue - minValue) / Threshold).toInt def value2level(v: Double): Int = math.max(0, math.min(LevelsCount, math.floor((v - minValue) / Threshold).toInt))

def level2minValue(level: Int): Double = level * Threshold + minValue def level2color(level: Int): Int = {

val c = math.round(255.0 * level / LevelsCount).toInt c << 16 | c << 8 | c

}

val colorArray = arr map (value2level ).andThen(level2color) val legend = {

val leg = new BufferedImage(w, AlgContext.LegendHeight, BufferedImage.TYPE_INT_RGB)

val g = leg.getGraphics.asInstanceOf[Graphics2D] g.setFont(g.getFont.deriveFont(10f)) g.setColor(Color.WHITE)

g.fillRect(0, 0, leg.getWidth, leg.getHeight) val textWidth = 5 0 val legWidth = w - textWidth for (level <- 0 until (LevelsCount + 1)) { g.setColor(new Color(level2color(level)))

val left = level * legWidth / (LevelsCount + 1) + textWidth g.fillRect(left, 0, legWidth / (LevelsCount + 1) + 1, 15) g.setColor(Color.BLACK) g.drawLine(left, 15, left, 18) def format(v: Double) = { if (math.abs(v) < 0.1)

f"$v%.2f" else if (math.abs(v) < 10)

f"$v%.2g" else

f"$v%.3g"

}

g.drawString(format(expConvert(level2minValue(level))), left, 2 9) g.drawString(f"${level2minValue(level)}%.2g", left, 39)

}

g.drawString("E", 1, 29) g.drawString("log10(E)", 1, 39) val meters = 10

val scaleSize = meters * AlgContext.ImagePxPerMeter g.drawString(s"${meters}M", 4 + scaleSize, 53) g.drawRect(2, 48, scaleSize, 5) leg

}

val im = new BufferedImage(w, h + legend.getHeight, BufferedImage.TYPE_INT_RGB)

im.setRGB(0, 0, w, h, colorArray, 0, w) im.getGraphics.drawImage(legend, 0, h, null) im

}

}

@inline def putInto05(v: Double): Double = { val vv = v - math.floor(v)

if (vv > 0.5) vv - 1 else vv

case class OptimizedParams(d: Double, h: Double, beta: Double, penaltyAvg: Double, average: Double) trait RE {

def apply(r: P): Double

}

case class DoubleRE(v: Double) extends RE { override def apply(r: P): Double = v

}

case class VectRE(re1: P, re2: P) extends RE { override def apply(r: P): Double = { @inline def sqr(v: Double) = v * v (rel.length * re2.length) / math.sqrt(

(re2.sqLength - rel.sqLength) * sqr(r cos rel) + rel.sqLength)

}

}

object AlgContext {

val LegendHeight = 60

val ImageSizePx = 400

val IntegralStepCount = 20

val SkvRowsCount = 8

val ImagePxPerMeter = 20

val UseAparapiPenalty = false

val UseAparapiFill = true

}

case class SumResult(penaltyAvg: Double, average: Double) case class AlgContext(g: Double,

E0: Double, re: RE, k: Double,

fs: Array[Vector2D],

penaltyFunction: Double => Double) {

import AlgContext.

private lazy val aparapi = new AparapiComputations(this) def makeSkv(wells: WellNetworkMatrixModel): Seq[P] = { (for (ij <- Index2DRange(

Index2D(-SkvRowsCount, -SkvRowsCount),

Index2D(SkvRowsCount, SkvRowsCount))) yield wells coords ij ).map(v => (v.x, v.y)).toSeq

}

def makeSkv(a: Double, b: Double, h: Double, beta: Double): Seq[P] = { val cos = math.cos(beta) val sin = math.sin(beta)

for (k <- -SkvRowsCount to SkvRowsCount;

j <- -SkvRowsCount to SkvRowsCount) yield {

val cc = putInto05(h * j) * a val x = a * k + cc val y = b * j

val x2 = cos * x - sin * y val y2 = sin * x + cos * y (x2, y2)

}

}

def makeSkvABH(a: Double, b: Double, h: Double): Seq[P] = { for (k <- -SkvRowsCount to SkvRowsCount;

j <- -SkvRowsCount to SkvRowsCount) yield {

val cc = putInto05(h * j) * a val x = a * k + cc val y = b * j (x, y)

}

def makeSkvGDH(g: Double, d: Double, h: Double, beta: Double): Seq[P] = { makeSkv(g / d, g * d, h, beta)

}

def fracCount(fs: Seq[Vector2D], xy: P): Double = { var res = 0.0 for (f <- fs)

res += math.abs(f.x * xy. 1 + f.y * xy. 2) res

}

def energySum(skv: Seq[P], fs: Seq[Vector2D], p: P): Double = { var res = 0.0 for (s <- skv) { val r = p to s val d = r.length

res += E0 * math.exp(-d / re(r) + fracCount(fs, r) * math.log(k))

}

res

}

def energyDistribution(wells: WellNetworkMatrixModel): LumpSizesDistributionFunction = {

val a = wells.coords(Index2D(1, 0)) val b = wells.coords(Index2D(0, 1)) val skv = makeSkv(wells)

val es = for (i <- 0 until IntegralStepCount; x = a * (i.toDouble / IntegralStepCount);

j <- 0 until IntegralStepCount; y = b * (j.toDouble / IntegralStepCount)) yield {

val v = x + y

energySum(skv, fs, (v.x, v.y))

}

LumpSizesDistributionFunction(es map (e =>

LumpSizesDistributionFunction.Elem(size = e, weight = 1.0))) }

def penaltyIntegralW(wells: WellNetworkMatrixModel): SumResult = { var intSum = 0.0 var eSum = 0.0

val a = wells.coords(Index2D(1, 0)) val b = wells.coords(Index2D(0, 1)) val skv = makeSkv(wells)

for (i <- 0 until IntegralStepCount; x = a * (i.toDouble / IntegralStepCount);

j <- 0 until IntegralStepCount; y = b * (j.toDouble / IntegralStepCount)) {

val v = x + y

val sum = energySum(skv, fs, (v.x, v.y)) eSum += sum

val integral = penaltyFunction(sum) intSum += integral

}

SumResult(intSum / IntegralStepCount / IntegralStepCount, eSum /

IntegralStepCount / IntegralStepCount)

}

def penaltyIntegral(d: Double, h: Double, beta: Double, penaltyOnly: Boolean = false): SumResult = { val a = g / d val b = g * d

val skv = makeSkvABH(a, b, h)

val fsBeta = fs map ( .rotate(-beta))

if (UseAparapiPenalty) {

val ps = for (i <- 0 until IntegralStepCount; x = a * i / IntegralStepCount;

j <- 0 until IntegralStepCount; y = b * j /

IntegralStepCount) yield

new Vector2D(x, y) val r = aparapi.computeEnergy(skv,

fsBeta, ps,

outEnergyArray = false, outEnergyAvg = IpenaltyOnly, outPenaltyAvg =

true)

r.sums else {

var intSum = 0.0 var eSum = 0.0 for (i <- 0 until j <- 0 until

IntegralStepCount; x = a * i / IntegralStepCount; y = b * j /

fsBeta, (x, y))

IntegralStepCount; IntegralStepCount) {

val sum = energySum(skv, eSum += sum

val integral = penaltyFunction(sum) intSum += integral

}

SumResult(intSum / IntegralStepCount

IntegralStepCount / IntegralStepCount)

}

/ IntegralStepCount, eSum /

}

def fillMatrix(opt: OptimizedParams, level: Int): ResultMatrix = { fillMatrix(makeSkvGDH(g, opt.d, opt.h, opt.beta), level)

level: Int): ResultMatrix = {

ResultMatrix = ImageSizePx)

}

def fillMatrix(wells: WellNetworkMatrixModel, fillMatrix(makeSkv(wells), level)

}

def fillMatrix(skv: Seq[P], level: Int): val matrix = ResultMatrix(ImageSizePx, val cx = ImageSizePx / 2 val cy = ImageSizePx / 2 val sizeK = 1.0 / ImagePxPerMeter val step = 1 << level if (UseAparapiFill) {

val ps = for (j <- 0.until(ImageSizePx, step);

i <- 0.until(ImageSizePx, step)) new Vector2D(i - cx, j - cy) * sizeK val r = aparapi.computeEnergy(skv, fs, ps,

outEnergyArray = true, outEnergyAvg = false, outPenaltyAvg = false) var ir = 0

for (j <- 0.until(ImageSizePx, step);

i <- 0.until(ImageSizePx, step)) { val e = r.energy.apply(ir) // xscreen = y = j; yscreen = -x = until (j + step); until (i + step))

yield

= size-1-i

for

(jj <- j

ii <- i matrix(jj, ir += 1

ImageSizePx - 1 - ii) = e

}

else {

for (j <- 0.until(ImageSizePx, step).

i <- 0.until(ImageSizePx, step)) val xy = ((i - cx).toDouble, var sum = 0.0 for (s <- skv) { val r = xy to s val d = r.length sum += E0 * math.exp(-d / re(r)

par; {

(j - cy).toDouble) mul sizeK

+ fracCount(fs, r) * math.log(k))

}

// xscreen = y = j for (jj <- j until ii <- i matrix(jj,

yscreen = (j + step); until (i + step)) ImageSizePx - 1 -

= -x = size-1-i

ii) = sum

matrix

}

}

case class SigmoidPenalty(a1: Double, k1: Double,

a2: Double, k2: Double) extends (Double => Double) { override def apply(x: Double): Double = {

@inline def sigmoid(x: Double) = 1.0 / (1.0 + math.exp(-x)) sigmoid((x - a1) / -math.abs(k1)) + sigmoid((x - a2) / math.abs(k2))

}

}

case class SquareDiffPenalty(Eneed: Double) extends (Double => Double) { override def apply(x: Double): Double = { val diff = x - Eneed diff * diff

}

}

def removeDuplicates(ps: Seq[OptimizedParams]): Seq[OptimizedParams] = { val EpsParam = 1e-3 val EpsPenalty = 1e-9

def lt1(a: OptimizedParams, b: OptimizedParams) = if (math.abs(a.d - b.d) < EpsParam) {

if (math.abs(a.beta - b.beta) < EpsParam) {

a.h < b.h } else a.beta < b.beta } else a.d < b.d

def lt2(a: OptimizedParams, b: OptimizedParams) = a.penaltyAvg < b.penaltyAvg val sorted = ps.sortWith(lt1)

def eq1(a: OptimizedParams, b: OptimizedParams) =

math.abs(a.d - b.d) < EpsParam && math.abs(a.beta - b.beta) < EpsParam && math.abs(a.h - b.h) < EpsParam

def eq2(a: OptimizedParams, b: OptimizedParams) = math.abs(a.penaltyAvg -b.penaltyAvg) < EpsPenalty

val buf = mutable.Buffer(sorted.head) for (p <- sorted if !eq2(p, buf.last)) buf += p

println(s"removeDuplicates: ${ps.size}=>${buf.size}") buf

}

def optimizeByGradient(ctx: AlgContext) = { def func(point: Array[Double]): Double = { // val Array(d, h, beta) = point

require(point.length == 3) val d = point(0) val h = putInto05(point(1)) point(1) = h val beta = point(2)

ctx.penaltyIntegral(d, h, beta, penaltyOnly = true).penaltyAvg

}

implicit val optConsts = OptimizationConsts( MAX_STEP_COUNT = 500, PRINT_COUNT = 10, PRINT_ENABLED = false, PARTIALS_EPS = 1e-5, STEP = 0.05, STEP_EPS = 1e-3

)

val ds = (-3).to(3, 1) map (p => math.exp(p * 0.05)) val hs = (-3).to(4, 1) map (_ * 0.125)

val betas = 0.until(180, 45) map ( .toDouble.toRadians) val maxN = ds.size * hs.size * betas.size var i = 0

val elems = for (d <- ds; h <- hs; beta <- betas) yield (d, h, beta)

import ru.geomix.util.ParallelRunner.SeqExt val lock = new Object

val unsortedResults = elems.parmap { case (d, h, beta) => val j = lock.synchronized { i += 1 i

}

val initial = Array(d, h, beta)

val res = Solver.gradientOptimization(func, initial)

val Array(od, oh, obeta) = res.params

val fr = ctx.penaltyIntegral(od, oh, obeta)

val r = OptimizedParams(od, oh, obeta.toDegrees, fr.penaltyAvg, fr.average) if (j % 1 == 0) println(s"i=$j/$maxN d=$od h=$oh beta=$obeta r=$r") r

}

println("\n\nDONE.\n")

val rs = removeDuplicates(unsortedResults).sortBy( .penaltyAvg) rs take 10 foreach (r => log.debug(r.toString)) rs

}

def optimizeByCMAES(ctx: AlgContext)(implicit indi: Indicator = Indicator.Silent) = {

val func: MultivariateFunction = { point => require(point.length == 3) val d = point(0) val h = putInto05(point(1)) point(1) = h val beta = point(2)

ctx.penaltyIntegral(d, h, beta, penaltyOnly = true).penaltyAvg

}

val rng = new JDKRandomGenerator

val convChecker: ConvergenceChecker[PointValuePair] = new SimpleValueChecker(0.01, 0.001, 1000)

val ds = (-1).to(1, 1) map (p => math.exp(p * 0.1)) val hs = (-1).to(2, 1) map (_ * 0.25)

val betas = 0.until(180, 45) map ( .toDouble.toRadians)

val elems = for (d <- ds; h <- hs; beta <- betas) yield (d, h, beta)

log.debug(s"Optimization (${elems.size} runs)...")

indi.max = elems.size indi.progress = 0

val unsortedResults = elems.zipWithIndex.parmap { case ((d, h, beta), i) => (lindi.isCancelled) toOption {

val optimizer = new CMAESOptimizer(1000, 0.01, true, 20, 2, rng, false, convChecker)

val res = optimizer.optimize( new MaxEval(100000), new MaxIter(1000),

new InitialGuess(Array(d, h, beta)), new SimpleBounds(

Array(1.0 / 1.7, -0.5, 0), Array(1.7, 0.5, 180.toRadians)), new ObjectiveFunction(func), GoalType.MINIMIZE,

new CMAESOptimizer.Sigma(Array(0.4, 0.25, 20.toRadians)), new CMAESOptimizer.PopulationSize(200),

)

val Array(od, oh, obeta) = res.getPointRef val fr = ctx.penaltyIntegral(od, oh, obeta)

val r = OptimizedParams(od, oh, obeta.toDegrees, fr.penaltyAvg, fr.average)

indi.progress += 1 r

}.flatten log.debug("DONE")

val rs = removeDuplicates(unsortedResults).sortBy( .penaltyAvg) rs

}

}

EnergyKernel.java

package research.skvgen; import com.aparapi.Kernel; import com.aparapi.Range;

import org.apache.commons.math3.util.FastMath; import java.util.Arrays;

public class EnergyKernel extends Kernel {

private private private private private private private private private private private private private private private private private

float[] float[] float[] float[] float[] float[]

psX;

psY;

skvX;

skvY;

fsX;

fsY;

int fsCount; final float a1 float float float float float float out out

final final final final final final float[] float[]

k1 a2 k2; re; k; E0;

energy = new float[0]; penalty = new float[0]

static float[] addElement(float[] arr) {

return Arrays.copyOf(arr, arr.length + 1)

}

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.