Powrót do strony głównej

MES-obliczenia prętów na Node.js React Three.js

Artykuł opisuje realizację chmurowej aplikacji do MES-obliczeń przestrzennych układów prętowych na stosie Node.js, React.js, Three.js. Stosowany jest model Eulera-Bernoulliego z numeryczno-analitycznym rozwiązaniem SLU metodą sprzężonych gradientów. Epury są wizualizowane na GLSL-shaderach.

Chmurowy MES dla układów prętowych na JavaScript
Advertisement 728x90

Realizacja chmurowych obliczeń MES dla układów prętowych z wykorzystaniem stosu JavaScript

Chmurowa aplikacja SPA oparta na Node.js, Express.js, React.js, MobX i Three.js implementuje modelowanie przestrzennych układów prętowych zgodnie z modelem Eulera-Bernoulliego. Rozwiązanie SLAU z macierzą sztywności rzadką jest wykonywane iteracyjną metodą sprzężonych gradientów. Wykresy sił w prętach są wizualizowane na GPU za pomocą shaderów GLSL vertexShader i fragmentShader, zapewniając natychmiastowe wyświetlanie wielomianów 5. stopnia w przestrzeni 3D.

Część kliencka to adaptacyjna aplikacja jednostronicowa z rejestracją, profilem dla prywatnych modeli, katalogiem publicznych projektów i oknem 3D. Panel nawigacyjny i scena na Three.js obsługują pracę na komputerach stacjonarnych, tabletach i urządzeniach mobilnych.

Podstawa matematyczna: model Eulera-Bernoulliego

Dla pręta o długości L ze sztywnością zginania EJ_3 pod działaniem sił skupionych F, momentów M, obciążeń rozłożonych q(x) = kx + q_0 i m(x) = rx + m_0 równanie ugięcia w lokalnym układzie współrzędnych (x1 — oś podłużna, x2 — pionowa, x3 — poprzeczna):

Google AdInline article slot

$$EJ_3 \dfrac{d^4v}{dx^4} = q(x) - \dfrac{dm}{dx}, \quad x\in[0,L]$$

Rozwiązanie ogólne:

$$v(x)=\dfrac{kx^5}{120EJ_3}+\dfrac{(q_0-r)x^4}{24EJ_3}+a_4x^3+a_3x^2+a_2x+a_1$$

Google AdInline article slot

Warunki brzegowe v(0)=v^1, v'(0)=φ^1, v(L)=v^2, v'(L)=φ^2 określają współczynniki za pomocą wielomianów Hermite'a N_p^i:

$$v(x) = \dfrac{k}{EJ_3}(\dfrac{x^5}{120}-\dfrac{x^3L^2}{40}+\dfrac{x^2L^2}{60})+\dfrac{q_0-r}{EJ_3}(\dfrac{x^4}{24}-\dfrac{x^3L}{12}+\dfrac{x^2L^2}{24})+N_p^i\alpha_i^p$$

$$N_p^1\alpha_1^p=(2\dfrac{x^3}{L^3}-3\dfrac{x^2}{L^2}+1)v^1 + (-2\dfrac{x^3}{L^3}+3\dfrac{x^2}{L^2})v^2$$

Google AdInline article slot

$$N_p^2\alpha_2^p=(x^3/L^2-2x^2/L+x)φ^1 + (x^3/L^2-x^2/L)φ^2$$

Z wariacyjnych zasad Lagrange'a wynika lokalne SLAU:

$$K_{pq}^{ij}\alpha_j^q=F_p^i,\quad K_{pq}^{ij}=EJ_3 \int_0^L N_{p,11}^i N_{q,11}^j dx$$

$$F_p^i = \int_0^L [q(x) N_p^i + m(x) N_{p,1}^i] dx + f_p^i$$

Dla zginania w płaszczyźnie 0xy macierz sztywności:

$$\dfrac{EJ_3}{L^3}\begin{bmatrix} 12&6L&-12&6L\\ 6L&4L^2&-6L&2L^2\\-12&-6L&12&-6L\\6L&2L^2&-6L&4L^2\end{bmatrix} \left\lbrace \begin{matrix}v^1\\ \varphi^1\\v^2\\ \varphi^2 \end{matrix}\right\rbrace=\left\lbrace \begin{matrix} F_1\\M_1\\F_2\\M_2 \end{matrix}\right\rbrace$$

Przejście do globalnego układu współrzędnych

Lokalne przemieszczenia są powiązane z globalnymi macierzą transformacji ortogonalnych a_ij (współrzędne lokalnej bazy i,j,k w układzie globalnym):

$$\alpha_i^p = a_{im} \beta_m^p \Rightarrow \mathbb{K}_{pq}^{mn} = a_{im}^T K_{pq}^{ij} a_{jn}$$

$$a_{ij}=\begin{bmatrix}ix&iy&iz\\jx&jy&jz\\kx&ky&kz\end{bmatrix}$$

Globalne SLAU jest rozwiązywane dla przemieszczeń węzłowych β. Przejście odwrotne: lokalne ugięcia i obroty, odtworzenie wykresów:

$$M_3(x)=-EJ_3\dfrac{d^2v}{dx^2}, \quad Q(x) = -\dfrac{dM}{dx} - m(x)$$

Dla uwzględnienia rozciągania-ściskania wzdłużnego (i,j,m,n={1,2,3}) macierz transformacji 6x6:

$$\begin{bmatrix} ix & iy & iz & 0 & 0 & 0 \\ jx & jy &jz & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & ix & iy & iz \\ 0&0&0&jx&jy&jz\\0&0&0&0&0&1\end{bmatrix}$$

Lokalna macierz sztywności 6x6 z członami EA/L dla przemieszczeń wzdłużnych u i zginania EJ:

$$K_{pq}^{ij} = \begin{bmatrix} \frac{EA}{L} & 0 & 0 & -\frac{EA}{L} & 0 & 0 \\ 0 & \frac{12EJ}{L^3} &\frac{6EJ}{L^2} & 0 & -\frac{12EJ}{L^3} &\frac{6EJ}{L^2}\\ 0 & \frac{6EJ}{L^2} & \frac{4EJ}{L} & 0 & -\frac{6EJ}{L^2} & \frac{2EJ}{L} \\ -\frac{EA}{L} & 0 & 0 &\frac{EA}{L} & 0 & 0 \\ 0 & -\frac{12EJ}{L^3} &-\frac{6EJ}{L^2} & 0 & \frac{12EJ}{L^3} &-\frac{6EJ}{L^2}\\ 0 & \frac{6EJ}{L^2} & \frac{2EJ}{L} & 0 & -\frac{6EJ}{L^2} & \frac{4EJ}{L}\end{bmatrix}$$

Przykłady wykresów i wizualizacja

  • Wykresy ugięć Uy dla przestrzennej ramy pod momentem skręcającym M3: wielomian 5. stopnia przy liniowym obciążeniu q(x).
  • Wykresy momentów w 3-elementowej ramie: wielomian 3. stopnia wzdłuż pręta.

Wykresy są obliczane analitycznie na podstawie przemieszczeń węzłowych, renderowane w czasie rzeczywistym na shaderach dla każdego pręta.

Co jest ważne

  • Rozwiązanie numeryczno-analityczne łączy dokładne wielomiany z iteracyjną metodą sprzężonych gradientów dla dużych rzadkich SLAU.
  • Shadery GLSL zapewniają GPU-przyspieszoną wizualizację wykresów sił w 3D.
  • Pełny model 6-DOF: zginanie + rozciąganie-ściskanie z transformacjami ortogonalnymi.
  • Adaptacyjny interfejs SPA na React/MobX/Three.js dla inżynierów.
  • Publiczne i prywatne modele w chmurze na Node.js/Express.js.

— Editorial Team

Advertisement 728x90

Czytaj dalej