В данной статье (а возможно цикле статей) речь пойдет о собственной разработке облачного 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) транспонированной перейти к локальным перемещениям (прогибам) и поворотам в узлах и восстановить аналитическую функцию прогиба, функцию момента и поперечной силы:
Стоит сделать уточнение. Если рассматривается краевая задача на плоскости, то индексы матрицы ортогональных преобразований i,j,m,n = {1,2}. Но часто эта задача дополняется энергией упругих деформаций продольного растяжения-сжатия стержня, наряду с изгибной энергией. В таком случае i,j,m,n = {1,2,3}:
где u1, u2 - перемещения вдоль оси стержня для 1-го и 2-го узла. При этом связь локальной и глобальной матрицы жёсткости будет иметь вид:
Для данной краевой задачи локальная матрица жёсткости примет вид:
Кто более подробно интересуется построением данной математической модели может оставить комментарий.
В качестве примера представлена иллюстрация одной из публичной конечно-элементной модели с эпюрами прогибов, моментов и поперечных сил, найденных численно-аналитическим методом в рамках гипотезы Эйлера-Бернулли.


В следующем разделе речь пойдёт об особенности построения архитектуры SPA приложения, база которой представлена стеком React js, MobX, Three js...
Rev1le
Выглядит как туториал/ИИ слоп. Не увидел проблематики, а также если это вводная часть - описание почему такой стек был выбран. В общем, есть вопросики....
atomicra Автор
Нет, это не слоп ИИ, это часть материала из моего учебного курса по математическому моделированию изгибаемых стержней методом конечных элементов. Основная проблематика в нахождении функции прогиба аналитическим методом в рамках одного конечного элемента. Возможно из-за того, что статья короткая, материал представлен сжато.
atomicra Автор
Если есть вопросики, задавайте. Постараюсь поделиться своим опытом.