Статья опубликована в рамках: Научного журнала «Студенческий» № 15(101)
Рубрика журнала: Технические науки
Секция: Моделирование
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3
МОДЕЛИРОВАНИЕ ФОРМЫ ПЛАСТИНЫ ПРИ УДАРНОМ ВОЗДЕЙСТВИИ НА ГРАФИЧЕСКОМ ПРОЦЕССОРЕ
АННОТАЦИЯ
Отдельные пластины и разные конструкции из пластин широко используются в конструировании радиоаппаратуры. На пластинчатые конструкции могут воздействовать механические процессы. Одним из примеров такого процесса служит удар. В статье представлено моделирование формы пластины при воздействии удара и ускорение вычислительных процессов на граффическом процессоре.
Ключевые слова: бигармоническое уравнение, моделирование, колебания, CUDA.
В конструировании радиоаппаратуры широко применяются отдельные пластины и различные конструкции из пластин, прежде всего печатные платы. При эксплуатации, транспортировке, монтаже и т.д. радиоаппаратура может подвергаться ударным воздействиям. Малая толщина пластин по сравнению с ее другими размерами позволяет строить гипотезы о деформации по толщине, при этом, исключив одно измерение, перейти от трехмерной задачи к двухмерной.
Основной задачей при определении формы пластинчатых конструкций при ударах является численное решение бигармонического уравнения. Для решения этой задачи хорошо зарекомендовал себя разностный метод, который состоит из двух этапов:
- Построение разностной схемы, которая аппроксимирует данную непрерывную задачу;
- Получение решения разностной задачи.
Бигармоническое уравнение в частных производных имеет вид
, (1)
где ρ — плотность материала пластины, — толщина пластины, D — цилиндрическая жесткость, которая рассчитывается как
где E — модуль Юнга, — толщина пластины, n — коэффициент Пуассона.
После замены частных производных в уравнении (1) конечными разностями, разностное уравнение примет следующий вид
(2)
При определении формы пластины при ударных воздействиях решалась задача падения жестко закрепленной по контуру с помощью двух рамок пластины на жесткую поверхность. Предполагается, что в момент времени t = 0 нижняя из рамок касается поверхности и останавливается. Также останавливаются и защемленные края пластины и остаются неподвижными. Для упрощения расчетов был выбран шаг по осям x и y одинаковым, т.е. .
Чтобы разностный шаблон мог действовать для всех узловых точек пластины, в которых рассчитывается прогиб, было введено два слоя законтурных узлов, в которые записаны нулевые значения прогибов.
Начальные условия заданы в виде двух матриц, которые соответствуют моментам времени k = 1 и k = 2. При этом предполагается для простоты расчётов, что за шаг до удара расстояние от пластины до поверхности равна -1 (k = 1), а в момент соприкосновения с поверхностью пластина еще не деформировалась, и все прогибы равны нулю (k = 2).
Решение уравнения (2) производится относительно неизвестного прогиба на верхнем временном слое (k+1):
,
где
В вычислительных экспериментах рассчитывалась деформация квадратной платы со стороной 0,14 м и толщиной =0,00133м. Материал платы — стеклотекстолит, Па, , . Рассчитанное значение цилиндрической жесткости составило . Шаг по времени — = 4,9 мкс.
Программная реализация алгоритма помимо задания начальных и граничных условий содержит основной цикл вычислений, реализующий итерационный процесс вычислений прогибов пластины. В этом цикле выполняется расчет матрицы прогибов на временном слое k+1 на основе данных о временных слоях k-1 и k. После выполнения очередной итерации вычислений полученная матрица прогибов на слое k+1 на следующей итерации используется для расчетов как данные о временном слое k, а матрица, которая содержала данные о прогибах пластины слоя k, на новой итерации будет определять слой k-1. Сохранение результата, полученного на следующей итерации, теперь выполняется в матрицу, которая на предыдущей итерации содержала данные о слое k-1. Итерационный процесс продолжается до достижения заданного времени t.
Достичь более высоких показателей аппроксимации формы пластины можно за счет уменьшения шага дискретизации, то есть увеличения количества расчетных узлов модели. Все это ведет к увеличению времени вычислений. Вычисление элемента на k+1 временном слое представляет собой операцию с высокой степенью параллелизма, которую для всех элементов модели можно выполнить независимо. Такие операции можно реализовать на графическом процессоре с поддержкой CUDA [3], представляющую собой платформу параллельных вычислений общего назначения и модель программирования. CUDA — платформа параллельных вычислений общего назначения и модель программирования, которая использует параллельный вычислительный движок в графических процессорах NVIDIA [4].
Функция ядра, имеющая атрибут __global__ организует вычисление элемента на k+1 временном слое. Эта функция принимает в качестве аргументов указатели на матрицы начальных условий, соответствующих моментам времени k = 1 и k = 2, и матрицу временного слоя k+1. Также параметрами функции являются размеры расчетной модели пластины. В теле функции элемент индексируется с помощью переменной
tid = threadIdx.x + blockIdx.x * blockDim.x,
где threadIdx.x — номер потока в блоке, blockIdx.x — номер блока в сетке и blockDim.x — размер блоков. В теле функции организуется цикл по времени с заданным временным шагом . В цикле после вычисления элемента на k+1 временном слое выполняется синхронизация по всем потокам, для того, чтобы каждый из них закончил расчет своего элемента до выполнения следующей итерации. По окончании цикла выполнялась запись результата в элемент матрицы, которая первоначально определяла k+1 временной слой, индексируемый переменной tid.
В основной функции выполняется задание граничных и начальных условий, выделение в видеопамяти места для размещения матриц временных слоев, копирование начальных данных из основной памяти в видео память и вызов функции ядра. При вызове функции ядра были заданы размеры блоков, равные 32 потокам, и размеры сетки, которые рассчитывались исходя из размеров матриц и размеров блоков.
Программная реализация определения формы пластины при ударном воздействии была выполнена на языке C++, CUDA C и скомпилированы с помощью компиляторов gcc 7.3.0 и nvcc V10.0.130. Эксперименты с программой проводились на компьютере на базе процессора Intel Core i7-3770, 3,4 ГГц, 8 Гб ОЗУ, видеокарта NVIDIA GXT 1050Ti, под управлением операционной системы Ubuntu 18.04. Ниже на рисунке представлен результат работы программы, которая определяла форму пластины при падении на жесткую поверхность. В расчетной модели пластины было задано 100×100 узловых элементов.
Рисунок 1. Форма пластины после падения на жесткую поверхность
В ходе эксперимента также были оценены временные показатели выполнения программы на центральном и графическом процессорах, при этом, размеры моделей пластин задавались равными 1000×1000, 2000×2000 и 4000×4000. В параллельной программе фиксировалось время на только непосредственно вычислений, но и то, которое затрачено на копирование исходных данных из основной памяти в видеопамять и обратно результата. Результаты представлены таблице.
Таблица 1
Время работы (в секундах) последовательной и параллельной программ
Размер модели |
Последовательная реализация |
Параллельная реализация |
Ускорение |
1000×1000 |
26,7 |
2,5 |
10,68 |
2000×2000 |
105,2 |
10,4 |
10,11 |
4000×4000 |
429,8 |
40,9 |
10,5 |
Как видно из таблицы, время на выполнение программы на графическом процессоре было затрачено меньше, чем при выполнении последовательной программы. Графические процессоры можно рассматривать как системы с массивным параллелизмом, которые позволяют одновременно выполнять множество потоков.
Список литературы:
- Талицкий Е.Н. Механические воздействия и зашита электронной аппаратуры: учеб. пособие: в 3 ч. Ч. 2. / Е. Н. Талицкий; Владим. гос. ун-т. - Владимир: Ред.-издат. комплекс ВлГУ. 2005. -124 с.
- Маквецов Е. Н., Тартаковский А. М. Механические воздействия и защита радиоэлектронной аппаратуры: Учебник для вузов. — М.: Радио и связь, 1993.— 200 с.
- Боресков А. В., Харламов А. А. и др. Параллельные вычисления на GPU. Архитектура и программная модель CUDA: учебное пособие / Предисл.: В. А. Садовничий. – 2-е изд. – М.: Издательство Московского университета, 2015.
Оставить комментарий