Глава 2. Основная часть
2.1. Используемые технологии
Залогом успешного и реалистичного моделирования результатов взрыва, в следствии детонации взрывного устройства или утечки газа, является высокая детализация моделей зданий и прочих объектов, подлежащих исследованию. В частности, здания должны быть представлены не в качестве обычных полых или сплошных блоков, а как минимум, сложные модели с учетом несущих стен и межэтажных плит. При этом необходимо использовать действительные планы зданий. Моделирование должно вестись либо с использованием реальных данных о габаритах отдельных элементов в СИ или любых других системах единиц. Важным является сохранение пропорций размеров элементов относительно друг друга. Таким образом, автоматическое создание зданий на основе карт openstreetmap видится некорректным решением, поскольку данные открытые карты хранят информацию об этажности зданий, при этом высота этажей не указана. Помимо этого, отсутствует информация о несущих стенах, колонах, ребрах жесткости и т.д. Более того, заявленная ранее целевая аудитория данного симулятора будет заинтересована в многостороннем изучение объектов своих исследований. В случае с утечкой природного газа можно поставить вопрос о расположении кухни относительно ключевых опорных сооружений для каждой отдельной квартиры на этажной площадке. Таким образом можно будет выбрать такие расположения, при которых разрушения от взрыва будут минимальным. Для этого пользователь должен обладать свободой моделирования объектов исследования.
Моделировать элементы сцены можно как во внутреннем 3D редакторе Unity, так и в сторонних. К сожалению, собственный 3D редактор Unity является достаточно ограниченным и неудобным. Он не приспособлен для моделирования сложных составных объектов. Основной его целью является выстраивание композиции из уже готовых моделей. Поэтому особое внимание разработчики уделили возможностям импорта 3D решений из сторонних сред разработки [11]. В частности, для таких всемирно признанных и популярных 3D редакторов как 3ds Max и Blender есть возможность импорта моделей из файлов с собственными форматами. В остальных же случаях разработчикам предлагается пользоваться форматом .FBX. Несмотря на то, что он является проприетарным недокументированным форматом [18], данный тип файлов обрел широкую популярность благодаря FBX Extensions SDK, доступному на языках C++ и Python. FBX может хранится на диске в виде бинарных или ASCII данных. FBX SDK поддерживает оба формата. Оба формата не задокументированы, однако формат ASCII имеет древовидную структуру с чёткими обозначениями идентификаторов [18].
Таким образом, пользователь может пользоваться любым привычным ему 3D редактор и в дальнейшем импортировать собственный модели в предлагаемый симулятор. Для целей демонстрации возможностей симулятора был выбран 3D редактор 3ds Max 2017, поскольку он обладает удобными и эффективными встроенными функциями, а также множеством полезных сторонних плагинов, таких как RayFire, GhostTown и т.д.
Моделирование начинается с создания плоскости, на которой выставляется, выбранный ранее кусок карты (рис. 1.3.1.). В первую очередь будет создана 3D модель дома №108, а после противоположный дом на ул. Клары Цеткин. На финальной стадии проектирования для данных моделей будут созданы фрагментированные копии с разным уровнем фрагментации, для демонстрации влияния количества осколков на реалистичность и точность разрушения. Для создания 3D модели дома №108 необходимо расположить карту на плоскости соответствующим образом (рис. 2.1.1.). Далее задачу моделирования можно решить двумя способами. Первый заключается в том, чтобы контур здания, то есть фасадные стены отметить на плоскости с помощью линий, которые должны замыкаться в определенной точке. Тогда пространство между двумя замкнутыми площадями можно заполнить и поднять на определенную высоту. Таким образом будут созданы несущие стены.
Рис. 2.1.1. Рабочая область программы 3ds Max 2017 c объектом «Плоскость».
Второй способ заключается в использовании плоскости, которую необходимо расположить в одном из углов здания. Тогда можно с помощью зажатой кнопки Shift создавать новую плоскость, выходящую из ребра предыдущей под любым углом. В этом случае замыкать плоскости в конечном итоге нет необходимости. После того, как схема здания будет воспроизведена на карте, необходимо преобразовать готовые плоскости в формат Editable Poly и в окне Modifier List выбрать функцию Extrude, которая превратит плоскость в куб или параллелограмм нужной высоты в метрах, если в 3ds Max выбрана система единиц СИ. Это можно сделать в окне Customize. После ряда несложных операций в редакторе создана основа модели здания (рис. 2.1.2.). Высота стен равна 3 метрам. Таким образом, это модель одного этажа, для которой требуется создать межэтажное перекрытие.
Необходимо отметить, что использование карты как подложки, не только облегчает процедуру моделирования, но также позволяет сохранить отношения габаритов зданий их отдельных элементов. В данном случае расстояния на плоскости как видно из рис. 2.1.1 задаются в метрах. В таком случае остальные параметры в симуляторе, в частности силу взрыва будет рассчитываться в реальных единицах. В противном случае, необходимо масштабировать силу взрыва и прочие параметры.
Рис. 2.1.2. Смоделированные фасадные и несущие стены здания в 3D редакторе 3ds Max.
Для создания межэтажного перекрытия используем объект «Линия». После того, как замкнутый контур межэтажного перекрытия будет нарисован, будет создана плоскость в пределах этого контура. На следующем этапе, как и прежде, будет использована функция extrude. В итоге будет создана вторая ключевая единица, необходимая для моделирования целого здания рис. 2.1.3. Для облегчения работы с окончательной моделью здания можно объединить множество разрозненных объектов с помощью встроенного плагина Compound objects. Тип объекта выбрать ProBoolean. В появившемся окне нажать на кнопку Unit, после успешной настройки необходимо приступить к выбору объектов, которые требуется объединить, предварительно кликнув на кнопку Start Picking.
Рис. 2.1.3. Готовая модель одного этажа здания с учетом межэтажного перекрытия в рабочем окне редактора 3ds Max
Таким образом 3ds Max позволяет достаточно быстро моделировать здания. Использования схем или карт, облегчают процесс создания моделей, а встроенный набор плагинов позволяют проводить различные сложные трансформации в несколько шагов. Принимая во внимание тот факт, что .FBX является собственностью компании Autodesk и широкие возможности импорта из данного 3D редактора в сцену Unity, можно заключить, что выбор 3ds Max является рациональным решением.
Разрушение происходит путем замены модели здания на фрагментированную копию. Процесс замены одного объекта на другой во время симуляции будет описан в следующих разделах. Фрагментировать модель в 3ds Max можно без особого труда с помощью плагина RayFire. В окне Object данного плагина нужное внести объекты, подлежащие фрагментации. После чего перейти в окно Fragments. Выбрать количество фрагментов, форму, размеры и т. д. Как только все необходимые настройки будут проведены, нужно запустить процесс фрагментации кликнув на кнопку Fragment. В результате вместо исходного объекта будет отображаться фрагментированный.
Рис. 2.1.4. Пример процесса фрагментации с помощью плагина RayFire. Сверху до фрагментации, снизу после.
2.2. Разработка математической модели
Важнейшей компонентой предлагаемого симулятора является скрипт на языке C# Explosion.cs, описывающий физическую составляющую взрыва. Движок Unity располагает удобными решениями для реализации проекта, например, взаимодействие объектов сложной формы. Однако, для написания скрипта для исследовательских целей необходимо разработать математическую модель, основанную на приказе Ростехнадзора от 11.03.2013 N 96 «Об утверждении Федеральных норм и правил в области промышленной безопасности «Общие правила взрывобезопасности для взрывопожароопасных химических, нефтехимических и нефтеперерабатывающих производств» [19]. Для расчетов зон поражения существует две методики:
методика оценки зон поражения, основанная на "тротиловом эквиваленте" взрыва опасных веществ;
методика, учитывающая тип взрывного превращения (детонация/дефлаграция) при воспламенении ТВС.
Согласно Приложению «Расчет последствий взрыва и критерии взрывоустойчивости зданий» приказа Ростехнадзора [19] расчет зон поражения при взрывах твердых и жидких химически нестабильных соединений, а также для приближенного расчета последствий взрыва ТВС внутри замкнутых объемов (помещений) следует проводить согласно методике, основанной на "тротиловом эквиваленте" [19].
Тротиловый эквивалент является мерой энерговыделения высокоэнергетических событий, выраженная в количестве тринитротолуола (ТНТ), выделяющем при взрыве равное количество энергии [20]. Удельная энергия взрывного разложения тринитротолуола в зависимости от условий проведения взрыва варьирует в диапазоне 980—1100 кал/г. Для сравнения различных видов взрывчатых веществ условно приняты значения 1000 кал/г и 4184 Дж/г. Тротиловый эквивалент рассчитывается по формуле:
где - масса твердых и жидких химически нестабильных соединений, определяемая по их содержанию в технологической системе, блоке, аппарате, кг;
- удельная энергия взрыва твердых и жидких химически нестабильных соединений, кДж/кг;
- удельная энергия взрыва тринитротолуола (далее - ТНТ), кДж/кг.
Зоной разрушения считается площадь с границами, определяемыми радиусами R, центром которой является место расположение взрывчатого вещества. Границы каждой зоны характеризуются значениями избыточных давлений на фронте падающей ударной волны и соответственно безразмерным коэффициентом K. Классификация зон разрушения приводится в таблице 2.1.1.
Методика для определения радиуса зон поражения при взрыве, приведенная в ФНП, использует формулы 1 и 2, полученные путем аппроксимации границ различных степеней разрушения кирпичных зданий в результате бомбардировок Великобритании во время Второй мировой войны [9].
При массе вещества менее 5000 кг.
где K - безразмерный коэффициент, характеризующий воздействие взрыва на объект.
При массе вещества более 5000 кг.
Таблица 2.2.1. Классификация зон разрушения типовых зданий и оборудования
Класс зоны разрушения
|
K
|
, кПа
|
Возможные последствия, характер повреждений зданий и сооружений
|
1
|
3,8
|
100
|
Полное разрушение зданий с массивными стенами
|
2
|
5,6
|
70
|
Разрушение стен кирпичных зданий толщиной в 1,5 кирпича; перемещение цилиндрических резервуаров; разрушение трубопроводных эстакад
|
3
|
9,6
|
28
|
Разрушение перекрытий промышленных зданий; разрушение промышленных стальных несущих конструкций; деформации трубопроводных эстакад
|
4
|
28
|
14
|
Разрушение перегородок и кровли зданий; повреждение стальных конструкций каркасов, ферм
|
5
|
56
|
2
|
Граница зоны повреждений зданий; частичное повреждение остекления
|
Основной недостаток данного подхода в том, что модель «тротилового эквивалента» при большой массе вещества, участвующего во взрыве, показывает зоны поражения с «запасом», так как не учитывает агрегатное состояние вещества, характеристики окружающего пространства и положение точки инициирования взрывоопасного облака. Однако при оценке ликвидации последствий взрывного воздействия такой подход представляется более приемлемым, не требующим сложных вычислительных алгоритмов [9].
Таким образом, создаваемый симулятор будет рассчитывать зоны поражения согласно Федеральным стандартам [19]. Для каждой из указанных зон будет расписан свой сценарий действия. В частности, от этого зависят настройки отдельных фрагментов и условия их разрушения.
2.3. Практическая реализация симуляции разрушения зданий
Разработка решения делится на разработку двух основных модулей программы:
Физический модуль – в основном это скрипты C#, отвечающие за реалистичную симуляцию взрыва и разрушение зданий с учетом выбранной математической модели.
Модуль взаимодействия пользователя с приложением – в первую очередь речь идет о грамотном выстраивании пользовательского интерфейса программы, а также о согласовании и оптимизации работы отдельных скриптов таким образом, чтобы снизить время необходимое на настройку симуляции. Иными словами, необходимо разработать множество отдельных небольших скриптов, отвечающих за передачу значений переменных из одних методов в другие с учетом обстоятельств симуляции. Также необходимо уделить особое внимание механизмам проверки данных на случай, если пользователь будет в ручном режиме менять значения переменных, во избежание ненужных ошибках. Сведения об ошибках необходимо записывать и отображать в журнал событий движка Unity3d.
Рис. 2.3.1. Интерфейс запущенного симулятора взрывов.
На рис. 2.3.1. приведен интерфейс разрабатываемого симулятора. Пользовательский интерфейс представляет собой панель Canvas с установленным режимом рендеринга Screen Space Overlay. Для более четкого и сглаженного рендеринга объектов на панели Canvas можно активировать пункт Pixel Perfect. Далее на данную панель были добавлены два объекта: Button, InputField. Стоит отметить, что для корректного отображения объектов панели Canvas вне зависимости от разрешения экрана необходимо использовать специальные якоря Anchors, доступные в инспекторе объектов в графе Rect Transform, иначе при разных режимах экрана и их разрешения положение кнопок будет различным. В данном случае для элемента Button выбран якорь, устанавливающий его всегда в нижней точке экрана по центру, а для InputField якорь установлен в нижнем левом углу экрана. Таким образом, вне зависимости от ситуации данные элементы всегда будут отображаться одинаково. Также в центре обзора камеры, оказывается взрывное устройство, которое пользователю нужно будет перетащить в интересующую его точку. Нужно отметить, что данный элемент имеет длину 0.5 м. Это сделано для того, чтобы пользователь, учитывая масштаб зданий мог легче находить объект на сцене.
Перед запуском симуляции, нажатием кнопки СТАРТ, пользователю необходимо внести значение мощности взрывного устройство в тротиловом эквиваленте. Введенное значение сохраняется в публичной переменной типа float TNTequivalent, объявленной в скрипте InputScript.cs, которая привязана к объекту InputField. В данном скрипте учтены несколько важных вещей. Во-первых, значение сохраняется в переменную только после того, как пользователь закончит редактирование, то есть нажмет на клавишу Enter или кликнет мышкой в любую точку окна программы за исключением самого поля. Это описывает строка кода input.onEndEdit.AddListener(SubmitName). Класс SubmitName, указанный в скобках, является приватным. В нем описана структура данных, которые он должен сохранить, как только событие «конец редактирования» произойдет. Причем изначально данные записываются как строка, поскольку в поле InputField можно указывать любые символы. В связи с последним фактом, необходимо рассматривать два случая:
пользователь вводит некоторое число, используя только цифры. Тогда значение указанное в строке конвертируется из типа string в тип float и сохраняется в переменной TNTequivalent.
пользователь помимо цифр, вводит другие символы. Тогда необходимо оповестить пользователя об ошибке в строке журнала событий, которая находится под сценой (рис. 2.3.1.).
В данном случае такое поведение программы обеспечивается использованием конструкции if else, где условием будет float.TryParse(arg, out TNTequivalent). TryParse возвращает значение типа bool. То есть либо true, если конвертация string arg в float TNTequivalent прошла успешно, либо false, если конвертация невозможна. В последнем случае в журнале событий выводится сообщение "ОШИБКА! Введите значение мощности взрыва в тротиловом эквиваленте". Полный код данного скрипта приведен на рис. 2.3.2.
Рис. 2.3.2. Код скрипта InputScript.cs, прикрепленный к объекту InputField.
В случае корректного ввода данных и установления взрывчатого вещества в определенной точке. Пользователь может запустить симуляцию кликнув на кнопку СТАРТ. Для данной кнопки был создан обработчик событий, который вызывает публичный метод StartButtonClicked(). Указанный обработчик создается в инспектора объекта кнопки. В графе Button (Script) необходимо выбрать режим работы кнопки: Editor and Runtime и Runtime Only. В первом случае кнопка будет работать как в режиме редактирования, так и в режиме симуляции, во втором только в режиме симуляции. После необходимо выбрать объект, к которому прикреплен скрипт с вызываемым методом и указать метод в поле function. Таким образом организован вызов метода StartButtonClicked() из класса Explosion. Вызов указанного метода приводит к том, что значение переменной типа bool isStartButtonClicked, изначально равной false, заменяется на true. Значение мощности взрыва, введенного пользователем в InputField, сохраняется в локальную переменную TNTequivalent (рис. 2.3.3.). Стоить отметить, что одноименная переменная сохраненная в скрипте InputScript, является статичной, иначе передача значения из одного класса в другой без ссылки на объект будет невозможной.
Рис. 2.3.3. Часть кода скрипта Explosion.cs, прикреплённого к объекту Exploder.
Перед запуском расчетов зон, реализации симуляции проводится проверка входных параметров. В частности, проверяется значение переменной TNTequivalent. Если она равна нулю, то выдается сообщение об ошибке «Мощность взрыва не установлена! Установите значение мощности взрыва в поле ввода в нижнем левом углу». Запуск симуляции происходит тогда и только тогда, когда выполняются следующие условия:
переменная isStartButtonClicked принимает значение true
значение переменной TNTequivalent больше нуля
На рис. 2.3.3. можно заметить публичную переменную DrawRadius типа float. Это переменная необходима для того, чтобы рисовать сферу заданного радиуса, исходящую из центра объекта, к которому привязан скрипт Explosion.cs. В данном случае сфера прикреплена к взрывному устройства. Таким образом у пользователя появляется дополнительный инструмент с помощью, которого можно мерить габариты объектов на сцене в режиме редактирования. Поскольку линии Gizmos не отображаются в режиме воспроизведения.
«Физическим ядром» симулятора является метод Detonate и класс CanBeDestroyed. В указанном методе, в первую очередь, рассчитываются радиусы зон поражения согласно методике, описанной в параграфе 2.2. Далее создается массив hitColliders, состоящий из объектов типа Collider, в который заносятся все объекты, которые входят в зону поражения. После чего создается цикл, который перебирает каждый объект из массива hitColliders. Внутри этого цикла вычисляется расстояние от объекта Exploder (взрывчатое вещество) до i-го объекта hitColliders (объект, входящий в зону поражения) для того, чтобы определить в какую именно зону поражения он входит, согласно классификации, приведенной в таблице 2.2.1, от этого зависит сценарий разрушения. Например, если объект находится в зоне поражения 1-го класса, то он должен испытывать избыточное давление больше 100кПа, что приведет к полному разрушению здания. В случае попадания в зону поражения 5-го класса здание получит незначительные разрушения.
После того, как зона поражения была предварительно определена, вызывается метод Dead() из класса CanBeDestroyed, который прикреплен к объекту, который должен взаимодействовать с взрывом. Если к зданию не прикрепить данный скрипт, то во время симуляции оно не будет реагировать на взрыв. При прикреплении скрипта к зданию, необходимо в инспекторе объекта указать фрагментированную копию здания. Метод Dead во время запуска сцены удаляет целый объект и в место него создает фрагментированную копию. Далее для каждого фрагмента здания устанавливается компонент MeshCollider со свойством convex равным true. После в зависимости от зоны поражения, типа элементов, входящих в зону поражения устанавливаются Rigidbody. Например, в случае попадания объекта в зону класса 1 и радиуса этой зоны, компонента Rigidbody устанавливается всем фрагментам. В других случаях, для фрагментов, которые не входят в зону поражения и не могу быть разрушены взрывной волной, устанавливается Rigidbody со свойством Kinematic. Для фрагментов, которые должны под действием силы взрыва приобрести начальную скорость и ускорение скрипт в компоненте Rigidbody включает учет силы гравитации (Use Fravity), а collisionDetectionMode выставляется равным ContinuousDynamic. Далее движок Unity каждому фрагменту, к которому прикладывается определенное значение силы, начинает присваивать значение скорости и ускорения в каждом кадре, а также просчитывает взаимодействия фрагмента с другими фрагментами. Как уже было отмечено ранее, выбранная методика проводит расчет с запасом мощности взрыва, поэтому реальный объем повреждений не будет превышать, полученных результатов симуляции.
В скрипте Explosion также объявлены три публичные переменные типа GameObject, в которых хранятся объекты FireBall, Shockwave и BaseSmoke. Это сделано для того, чтобы была возможность управлять анимацией. Только после запуска процесса детонации запускается визуальная часть путем вызов объекта к которому она прикреплена gameObject.GetComponent
().Play(). Также в самом скрипте есть приватная переменная Delay. Это время определяет время детонации после запуска симуляции пользователем.
Таким образом, от пользователя требуется импорт моделей зданий в Unity. После чего пользователь сможет провести неограниченное количество симуляций. Для этого необходимо указывать мощность взрыва и положение взрывного устройства. Далее предлагаемое решение произведет симуляцию в режиме реального времени. Также в самом коде есть дополнительные инструменты влияния на процесс для продвинутых пользователей. Более того к симулятору прикладывается скрипт SetCollider, который устанавливает коллайдре указанного типа зданию или множеству зданий на сцене. Демонстрация реализации симуляции приведена в следующем параграфе.
Для демонстрации возможностей программы был выбран район, указанный на рис. 1.3.1. В частности, дом №108 на ул. Большая и дом №33 на ул. Клары Цеткин. В первую очередь программа была отлажена на прямоугольной стене. На рис. 2.4.1-2.4.3. приведены итоги симуляции взрыва в зависимости от положения. В данном случае стены оказывались в зоне класса 3-4. Из рисунков видно, что в тех случаях, когда в зону поражения, не являющейся зоной 1-го класса, входит верхняя половина стены то, стена разрушается частично. Если же подрывается основание стены, как показано на рис. 2.4.3., то стена разрушается полностью.
Рис. 2.4.1. Сцена подрыва верхней части стены. Слева – сцена до взрыва (красная сфера, описывает зону поражения), справа – сцена после взрыва.
Рис. 2.4.2. Сцена подрыва боковой части стены. Слева – сцена до взрыва (красная сфера, описывает зону поражения), справа – сцена после взрыва.
Рис. 2.4.3. Сцена подрыва основания стены. Слева – сцена до взрыва (красная сфера, описывает зону поражения), справа – сцена после взрыва.
Таким образом, физика процесса была отработана на этой простой модели. Далее испытания проводились на сцене с моделями зданий. В первую очередь с зданием №108 рис. 2.4.3. Взрывное устройство располагалось ближе к дальней части дома. Расстояние от взрывного устройства до центра масс здания равно 50 метрам, до ближайшей точки около 7 метров. Сила взрыва равна 50 кг в тротиловом эквиваленте. Радиус зоны поражения пятого класса чуть больше 52 метров, третьего класса 9 метров, четвертого класса 26 метров. Урон зданию нанесен колоссальный. При таком взрыве смогла устоять задняя лицевая стена и ближняя часть дома. Перегородки между этажами разрушены практически полностью. Если применить взрывное устройство подобной мощности ближе к центру здания, тогда здания разрушается полностью.
Рис. 2.4.3. Результат симуляции взрыва здания №108. Сила взрыва в 50 кг. в тротиловом эквиваленте. Черная точка соответствуют центру взрыва.
Стоит отметить, что симулятор очень требователен к ресурсам компьютера, поскольку приходится рассчитывать взаимодействия большого количества маленьких фрагментов с одной стороны, с другой стороны программа производит настройку фрагментов в процессе реализации. Поэтому исследовать более двух зданий с высоким уровнем детализации на бюджетном компьютере может быть проблематичным. Оптимизация вычислительных процессов и использование параллельных вычислений может быть одной из следующих задач развития проекта. Также остается сложность с вычислениями расстояний до объекта. В частности, при определении расстояния между объектами стандартными методами возвращается объект типа Vector3. Свойство magnitude данного объекта есть расстояние. У этих методов есть ряд недостатков. Во-первых, для вычисления расстояния требуется вычисление корней. Частое вычисление корней сильно перегружает процессор. Во-вторых, расстояние рассчитывается путем вычитания из координат центра масс одного объекта координат центра масс других объектов. То есть полученное расстояние не совсем корректно использовать для определения класса зоны поражения в который попадает объект. Простейшим решения данного вопроса заключается в создании пяти сфер с радиусами, соответствующими рассчитанным радиусам зон поражения разных классов. Определение классов зон поражения для объекта можно выбирать с помощью метода Physics.OverlapSphere(Vector3 position, float radius), но этот вопрос также может быть в дальнейшем доработан, например, путем вычисления длины луча испускаемого из центра взрыва.
Рис. 2.4.4. Сцена взрыва дома №108. Сила взрыва 10 кг тротилового эквивалента.
На рис. 2.4.4. приведен подрыв дома №108 с использованием взрывчатого устройства. Мощность взрыва - 10 кг тротилового эквивалента. Зоны поражения приведены в табл. 2.4.1. Радиус зон поражения для всех классов растет нелинейно. Симуляции при значениях мощности более 50 кг в тротиловом эквиваленте разрушали здания полностью находясь между двумя зданиями.
На рис. 2.4.5 приведен результат подрыва дома №108. Мощность взрыва 100 кг в тротиловом эквиваленте. В результате подобного взрыва указанный дом разрушен полностью. Дом напротив получил значительные повреждения. Фасадная стена на дальней части дома разрушена, пострадали также бетонные перекрытия между этажами. Также заметны трещины на сохранившейся стороне. Таким образом, можно заключить, что симулятор работает корректно в соответствии с заявленными возможностями.
Табл. 2.4.1. Результаты расчета радиусов зон поражения для разных классов.
Мощность взрыва в тротиловом эквиваленте, кг
|
Радиус зоны поражения, м
|
Класс 1
|
Класс 2
|
Класс 3
|
Класс 4
|
Класс 5
|
1
|
0.3
|
0.4
|
0.7
|
1.9
|
3.8
|
5
|
0.8
|
1.1
|
1.9
|
5.6
|
11.1
|
10
|
1.2
|
1.8
|
3
|
8.8
|
17.7
|
50
|
3.5
|
5.2
|
8.9
|
25.8
|
51.7
|
100
|
5.6
|
8.2
|
14.1
|
41
|
82
|
Рис. 2.4.5. Сцена взрыва дома №33. Сила взрыва 100 кг тротилового эквивалента. Взрывчатое устройство было расположено у здания №108, которое в следствие взрыва разрушено полностью.
Заключение
В ходе выпускной квалификационной работы был создан симулятор взрывов, основанный на современном движке Unity3d. При реализации данного проекта были учтены федеральные стандарты расчета взрывоустойчивости зданий. Для удобства пользователей разработан простой и удобный интерфейс. Также обеспечен вывод данных в журнал событий для возможности дальнейшего анализа. В соответствии с заданными требованиям симуляция происходит в режиме реального времени. Для тестирования данной системы в 3D редакторе 3ds Max были созданы 3D модели реальных зданий. С использованием созданных моделей были проведены симуляции для разных значений мощности взрыва. Таким образом основная задача выпускной квалификационной работы выполнена успешно. Предлагаемая кроссплатформенная программа может быть использована обширной аудиторией, хотя основными целевыми группами являются инженеры, архитекторы, сотрудники строительных компаний, сотрудники МЧС, аспиранты и студенты.
Список литературы
1.Global terrorism database [Электронный ресурс] // https://www.start.umd.edu/gtd/
2.Nukemap [Электронный ресурс] // https://nuclearsecrecy.com/nukemap/
3.Unity 3D. Базовый курс [Электронный ресурс] // http://www.realtime.ru/courses/unity-3d/
4.Лапин А.И. Руководство по Unity 3D. - Интернет-издательство, 2013. — 77 с.
5.Miles Jere. Unity 3D and PlayMaker Essentials: Game Development from Concept to Publishing. – CRC Press, 2016. – 507 p.
6.Creighton R.H. Unity 3D Game Development by Example. Beginner's Guide. - Packt Publishing, 2010. - 384 с.
7.Unity [Электронный ресурс] // https://unity3d.com/ru
8.OpenStreetMap [Электронный ресурс] // https://www.mapbox.com/blog/mapping-3d-buildings/
9.Деркачев Н. В., Деркачев В. И., Быльев Ю. В., Медведева А. Н., Афанасьев Р. В. Расчет зон разрушений зданий и сооружений при взрывах на опасных производственных объектах / Проблемы современной науки и образования, 2015 - № 10 (40). – С. 42-46
10.Рыженко А.А. Механизм моделирования сколов и осколков разрушенных объектов сложной формы / Труды Кольского научного центра РАН, 2014. - №5 (24). – С. 204-214
11.Руководство Unity [Электронный ресурс] // https://docs.unity3d.com/ru/current/Manual/UnityManual.html
12.LS-DYNA [Электронный ресурс] // http://www.dynaomd.ru/explosion.htm
13.NUKEMAP3D [Электронный ресурс] // http://nuclearsecrecy.com/nukemap3d/
14.Announcing deprecation of the Google Earth API [Электронный ресурс] // https://maps-apis.googleblog.com/2014/12/announcing-deprecation-of-google-earth.html
15.LS-DYNA [Электронный ресурс] // http://www.lstc.com/products/ls-dyna
16.LS-DYNA [Электронный ресурс] // https://ru.wikipedia.org/wiki/LS-DYNA
17.Valcartier C.R. Numerical Study of Soil Modelling Approaches using LS-DYNA: Part 2 / Defence R&D Canada - Valcartier Contract Report DRDC, 2009.
18.FBX [Электронный ресурс] // https://ru.wikipedia.org/wiki/FBX
19.Приказ Ростехнадзора от 11.03.2013 N 96 «Об утверждении Федеральных норм и правил в области промышленной безопасности «Общие правила взрывобезопасности для взрывопожароопасных химических, нефтехимических и нефтеперерабатывающих производств» [Электронный ресурс] // http://www.consultant.ru/cons/cgi/online.cgi?req=doc&base=LAW&n=194477&rnd=261745.556910475&from=145465-37#0
20. Тротиловый эквивалент [Электронный ресурс] // https://ru.wikipedia.org/w/index.php?title=Тротиловый_эквивалент&oldid=83070840
|