В данной статье (а возможно цикле статей) речь пойдет о собственной разработке облачного SPA приложения по моделированию пространственных стержневых систем методом конечных элементов с численно-аналитическим решением для инженеров-проектировщиков в основе которого математическая модель Эйлера-Бернулли, вариационные принципы и итерационный метод сопряжённых градиентов применяемый для большеразмерных СЛАУ с разреженной матрицей жёсткости с одной стороны, и JavaScripts экосистема облака, выполненного в стеке Node js, Express js бэкенд части, и React js, MobX, Three js, glsl shaders фронтенд части с другой стороны. Отображение эпюр усилий в пространственных стержневых элементах реализовано на шейдерах vertexShader и fragmentShader. Это позволяет вычислять эпюры для каждого стержня на лету и выполнять отображение графиков (в общем случае полиномов 5 степени) в пространстве мгновенно.
Клиентская часть представляет собой одностраничное SPA приложение с возможностью регистрации новых пользователей, профиля пользователя для управления приватными моделями, списком публичных моделей и основного интерфейса приложения, который состоит из навигационной панели и окна 3Д сцены. Веб приложение построено на адаптивной вёрстке. Это позволяет организовать удобное отображение элементов интерфейса на мониторах, планшетах и смартфонах.
Математическая модель Эйлера-Бернулли
Тех кого мало интересует математическая или механическая основа модели, обыкновенные дифференциальные уравнения и различные формульные выкладки советую пропустить этот раздел. Как было упомянуто выше, в основе численно-аналитического решения пространственных стержней (балок, ферм, рам, пространственных связей) методом конечных элементов лежит механическая модель изогнутой балки или стержня длиной L с заданной изгибной жёсткостью EJ на которую действуют сосредоточенная сила F или момент M, а также распределённая сила q(x) или момент m(x) по длине стержня, продольная ось которого x1, вертикальная x2 проходит через начало стержня и x3 направлена на нас из точки пересечения x1, x2. Полагая сечения плоскими до и после изгиба, а также одноосное деформированное состояние, то уравнение изогнутой оси стержня записывается в виде обыкновенного неоднородного дифференциального уравнения 4-го порядка:
общее решение которого состоит из частного решения правой части (первые два слагаемых) и решения однородного дифференциального уравнения:
Если записать граничные условия
то неизвестные коэффициенты можно выразить через свёртку (сумму произведений) прогибов вдоль x2 и поворотов вокруг x3 на концах изгибаемой балки с эрмитовыми полиномами N:
В случае одноосного деформированного состояния для изотропного материала из функционала Лагранжа можно получить СЛАУ относительно прогибов и углов поворота на концах для данного стержневого элемента:
Здесь Fp, Mp - узловые силы и моменты, заданные изначально. При этом СЛАУ записаны в локальной системе координат в плоскости 0xy. Аналогичные уравнения можно выписать в плоскости 0zx. Для связи локальной и глобальной области обычно используется матрица ортогональных преобразований (для которой обратная матрица равна транспонированной), компоненты которой являются координатами i,j,k локального базиса в глобальной системе координат. Матрицу жёсткости К в глобальной системе координат можно получить из локальной, если выписать квадратичную часть функционала Лагранжа в терминах глобальных прогибов и поворотов:
Таким образом можно составить глобальную СЛАУ и найти неизвестные узловые прогибы (перемещения) и повороты. В этом и заключается основная идея метода конечных элементов. Далее, зная узловые перемещения и повороты в глобальной системе координат можно с помощью матрицы (a) транспонированной перейти к локальным перемещениям (прогибам) и поворотам в узлах и восстановить аналитическую функцию прогиба, функцию момента и поперечной силы:
Кто более подробно интересуется построением данной математической модели может оставить комментарий.
В качестве примера представлена иллюстрация одной из публичной конечно-элементной модели с эпюрами прогибов, моментов и поперечных сил, найденных численно-аналитическим методом в рамках гипотезы Эйлера-Бернулли.


В следующем разделе речь пойдёт об особенности построения архитектуры SPA приложения, база которой представлена стеком React js, MobX, Three js...