- •«Дальневосточный федеральный университет»
- •Выпускная квалификационная работа
- •Г. Владивосток
- •Введение
- •Проектирование резервуара
- •Исходные данные
- •1.2 Выбор материала конструкции
- •1.3 Расчет оптимальных габаритов резервуара
- •1.4 Расчет толщины стенки резервуара
- •1.4.1 Расчет стенки на прочность
- •1.4.2 Проверка стенки на прочность при гидроиспытаниях
- •1.5 Определение нагрузок, действующих на резервуар
- •1.6 Расчет на устойчивость
- •1.7 Конструкция и расчет покрытия резервуара
- •1.7.1 Расчет настила
- •1.7.2 Расчет поперечных ребер щита
- •1.7.3 Расчет радиальных ребер щита
- •1.8 Расчет колец жесткости
- •1.9 Конструкция и расчет днища
- •1.10 Расчет сопряжения стенки с днищем
- •(79) 1.11 Подбор эксплуатационного оборудования
- •Анализ существующих методов поверки резервуаров
- •Поверка резервуаров объемным методом
- •2.2 Поверка резервуаров геометрическим методом
- •3 Разработка программы поверки резервуаров с использованием технологии лазерного сканирования
- •Принцип работы трехмерных сканеров
- •Методика поверки резервуаров с использованием технологии трехмерного лазерного сканирования
- •3.3 Имитация данных сканирования в среде разработки matlab
- •Программа обработки результатов 3d сканирования
- •3.4.1 Вычисление объема слоев модели
- •Результаты тестирования программы обработки данных сканирования
- •Безопасность жизнедеятельности
- •4.1 Безопасная эксплуатация резервуара
- •4.2 Безопасная эксплуатация оборудования комплекса поверки
- •4.2.1 Безопасность при работе с механическими узлами
- •Экономическая часть
- •Заключение
- •Список литературы
Программа обработки результатов 3d сканирования
Для разработки программы для обработки результатов сканирования была использована среда разработки MATLAB и одноименный язык программирования.
Алгоритм действий программы состоит из следующих пунктов:
Чтение облака точек из файла в массив;
Модель «нарезается» на горизонтальные слои с задаваемым шагом;
Вычисляется объем каждого слоя;
Составляется градуировочная таблица и записывается в файл с заданным форматом.
Далее будет подробнее рассмотрен третий пункт алгоритма – вычисление объема каждого слоя модели.
3.4.1 Вычисление объема слоев модели
Для облегчения вычисления объема слоя, воспользуемся методом построения выпуклой замкнутой поверхности (выпуклой оболочки) из точек этого слоя.
Выпуклой оболочкой конечного набора точек является выпуклый многогранник, причем его вершины являются подмножеством вершин исходного набора точек. [27] Существует множество алгоритмов для создания выпуклой оболочки из набора точек. Одним из самых оптимальных способов является алгоритм быстрой оболочки (quickhull), использующий идею быстрой сортировки Хоара и основанный на принципе разделяй и властвуй [29].
В описании алгоритма будут использованы следующие понятия:
Симплекс, или n-мерный тетраэдр – геометрическая фигура, являющаяся n-мерным обобщением треугольника.
Многогранник – замкнутая поверхность, составленная из многоугольников.
Выпуклый многогранник – частный случай многогранника, обладающий таким свойством, что при разбиении пространства одной из его граней он целиком лежит в одном из полупространств.
Параллелотоп – обобщение плоского параллелограмма и объемного параллелепипеда.
Ребро – пересечение двух граней. [27]
Алгоритм быстрой оболочки состоит из этапа подготовки и главного цикла. На этапе подготовки производятся следующие операции:
Построение некоего стартового симплекса из (D+1) независимых друг от друга точек, где D – размерность пространства. То есть в нашем случае с трехмерным пространством нужно выбрать любые 4 точки, трехмерный симплекс (тетраэдр). Начав со стартового симплекса, с каждым последующим шагом мы будем расширять его, получая все больший и больший многогранник, чьим неизменным свойством будет его выпуклость;
Распределение оставшихся точек в так называемые списки внешних точек граней – точки, находящиеся по другую сторону от грани, нежели внутренность симплекса;
Создание списка соседних граней. Для каждой грани он будет содержать ровно D элементов.
В главном цикле, стартовый симплекс «достраивается», захватывая все больше и больше пространства, а вместе с ним и точек исходного множества. Цикл повторяется для каждой грани до тех пор, пока не останется точек ни в одном из внешних списков. Алгоритм главного цикла описывается таким образом:
Выбирается грань, в списке внешних точек которой самая дальняя точка находится дальше от грани, чем аналогичные точки у других граней.
Выбранная грань удаляется из списка граней, как не являющаяся гранью конечного многоугольника. Из списка внешних точек данной грани находится самая дальняя от нее точка, присоединение которой к многограннику не нарушает его выпуклости.
Создаются грани, образованные ребрами соседних граней и выбранной точкой в качестве вершины.
После создания выпуклой оболочки слоя нужно посчитать ее объем. Если объем элементарных фигур, таких как сфера, пирамида, призма, можно выразить как функцию их геометрических размеров, то объем сложных многоугольников вычисляется только разделением их на меньшие элементарные фигуры.
Для расчета объема выпуклого многогранника нужно разделить его на пирамиды с основанием на грани многогранника и вершиной в его центре. В общем случае объем может быть выражен как:
|
(3.1) |
где
– точка на грани F,
– единичный вектор, перпендикулярный
грани F и направленный в
противоположную от многогранника
сторону
– площадь грани F.
В языке MATLAB уже есть реализация функции образования и подсчета объема выпуклых многогранников, поэтому будем использовать ее в целях оптимизации.
Также при расчете объема нужно учитывать поправку к вместимости за счет гидростатического давления жидкости, которую вычисляют по формуле (3.4.2):
|
(3.2) |
где
– высота и толщина стенки первого пояса;
– высота и толщина
-го
вышестоящего пояса;
i – номер наполняемого пояса;
А2 – постоянный коэффициент для проверяемого резервуара, вычисляемый по формуле:
|
(3.3) |
где
– ускорение свободного падения, м/с2
(
)
– плотность хранимой жидкости;
- длина внутренней
окружности первого пояса;
– модуль упругости материала.
Программа составления градуировочной таблицы содержит 2 функции:
Main – главная исполняемая функция. По завершении исполнения записывает готовую градуировочную таблицу в формате xls в корень проекта.
convhull – считает объем слоя модели. В качестве аргументов принимает матрицу координат слоя.
