Zurück zur Startseite

FEM-Berechnung von Stäben auf Node.js React Three.js

Der Artikel beschreibt die Implementierung einer Cloud-Anwendung für FEM-Berechnung räumlicher Stabsysteme auf dem Node.js-, React.js-, Three.js-Stack. Euler-Bernoulli-Modell mit numerisch-analytischer SLAE-Lösung mittels konjugierter Gradientenmethode wird verwendet. Diagramme werden auf GLSL-Shadern visualisiert.

Cloud-FEM für Stabsysteme auf JavaScript
Advertisement 728x90

# Cloudbasierte FEA für Fachwerksysteme mit Node.js, React und Three.js

Diese cloudbasierte Single-Page-App (SPA), aufgebaut mit Node.js, Express.js, React.js, MobX und Three.js, simuliert 3D-Fachwerksysteme basierend auf dem Euler-Bernoulli-Träger-Modell. Das dünn besetzte Steifigkeitsmatrix-System wird mit der konjugierten Gradienten-Iterationsmethode gelöst. Innere Kraftlinien in den Fachwerkstäben werden auf der GPU mit GLSL-Vertex- und Fragment-Shadern visualisiert und ermöglichen sofortige Darstellung von Polynomen 5. Grades im 3D-Raum.

Die Client-Seite bietet eine responsive Single-Page-App mit Benutzerregistrierung, privaten Modellprofilen, einer öffentlichen Projektgalerie und einem 3D-Viewer. Die Navigationsleiste und die Three.js-Szene funktionieren nahtlos auf Desktops, Tablets und Mobilgeräten.

Mathematische Grundlage: Euler-Bernoulli-Träger-Theorie

Für einen Träger der Länge L mit Biegesteifigkeit EJ₃ unter Punktlasten F, Momenten M, verteilten Lasten q(x) = kx + q₀ und Momenten m(x) = rx + m₀ lautet die Bieglungleichung in lokalen Koordinaten (x₁ entlang des Trägers, x₂ vertikal, x₃ quer):

Google AdInline article slot

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

Allgemeine Lösung:

$$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

Randbedingungen v(0)=v¹, v'(0)=φ¹, v(L)=v², v'(L)=φ² bestimmen die Koeffizienten über Hermite-Polynome 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$$

Aus Lagrange-Variationsprinzipien ergibt sich die lokale Steifigkeitsgleichung:

$$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$$

Für ebene Biegung in der 0xy-Ebene lautet die Steifigkeitsmatrix:

$$\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$$

Transformation in globale Koordinaten

Lokale Verschiebungen werden über die orthogonale Transformationsmatrix a_ij (lokale Basis i,j,k in globalem System) mit dem globalen System verknüpft:

$$\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}$$

Das globale System wird für Knotenverschiebungen β gelöst. Rücktransformation liefert lokale Durchbiegungen und Drehungen sowie Kraftlinien:

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

Für axiale Dehnung-Kompression (i,j,m,n={1,2,3}) gilt die 6x6-Transformationsmatrix:

$$\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}$$

Lokale 6x6-Steifigkeitsmatrix inklusive EA/L für axiale u und EJ-Biegung:

$$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}$$

Beispiele für Kraftlinien und Visualisierung

  • Durchbiegungsdiagramme Uy für einen 3D-Rahmen unter Torsion M₃: Polynom 5. Grades bei linearer Last q(x).
  • Momentendiagramme in einem 3-gliedrigen Rahmen: Kubisches Polynom entlang jedes Trägers.

Die Diagramme werden analytisch aus Knotenverschiebungen berechnet und in Echtzeit pro Stab mit Shadern gerendert.

Wichtige Highlights

  • Hybrider numerisch-analytischer Solver kombiniert exakte Polynome mit konjugierter Gradienteniteration für große dünn besetzte Systeme.
  • GLSL-Shader ermöglichen GPU-beschleunigte 3D-Visualisierung von Kraftlinien.
  • Vollständiges 6-Freiheitsgrad-Modell: Biegung + Axial mit orthogonalen Transformationen.
  • Responsive SPA-Oberfläche auf React/MobX/Three.js, speziell für Ingenieure.
  • Cloud-gehostete öffentliche/privaten Modelle via Node.js/Express.js.

— Editorial Team

Advertisement 728x90

Weiterlesen