Zpět na domů

MKP-výpočet tyčí na Node.js React Three.js

Článek popisuje implementaci cloudové aplikace pro MKP-výpočet prostorových tyčových systémů na stacku Node.js, React.js, Three.js. Používá se model Euler-Bernoulli s číselně-analytickým řešením SLAU metodou konjugovaných gradientů. Epury se vizualizují na GLSL shaderech.

Cloudový MKP pro tyčové systémy na JavaScript
Advertisement 728x90

Implementace cloudového výpočtu prutových systémů metodou konečných prvků na JavaScriptovém stacku

Cloudová SPA aplikace na Node.js, Express.js, React.js, MobX a Three.js implementuje modelování prostorových prutových systémů podle Euler-Bernoulliho modelu. Řešení SLAÚ s řídkou maticí tuhosti se provádí iterační metodou sdružených gradientů. Diagramy sil v prutech jsou vizualizovány na GPU pomocí GLSL shaderů vertexShader a fragmentShader, což zajišťuje okamžité zobrazení polynomů 5. stupně v 3D prostoru.

Klientská část je adaptivní jednostránková aplikace s registrací, profilem pro soukromé modely, katalogem veřejných projektů a 3D oknem. Navigační panel a scéna na Three.js podporují práci na desktopech, tabletech a mobilních zařízeních.

Matematický základ: Euler-Bernoulliho model

Pro prut délky L s ohybovou tuhostí EJ_3 pod účinkem soustředěných sil F, momentů M, rozloženého zatížení q(x) = kx + q_0 a m(x) = rx + m_0 je rovnice ohybu v lokální souřadnicové soustavě (x1 — podélná osa, x2 — vertikální, x3 — příčná):

Google AdInline article slot

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

Obecné řešení:

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

Okrajové podmínky v(0)=v^1, v'(0)=φ^1, v(L)=v^2, v'(L)=φ^2 určují koeficienty přes Hermitovy polynomy 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 variačních principů Lagrange vyplývá lokální SLAÚ:

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

Pro ohyb v rovině 0xy matice tuhosti:

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

Přechod k globální souřadnicové soustavě

Lokální posuny jsou spojeny s globálními maticí ortogonálních transformací a_ij (souřadnice lokální báze i,j,k v globální soustavě):

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

Globální SLAÚ se řeší pro uzlové posuny β. Obrácený přechod: lokální průhyby a natočení, obnova diagramů:

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

Pro zahrnutí podélného tahu-stlačení (i,j,m,n={1,2,3}) matice transformací 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}$$

Lokální matice tuhosti 6x6 s členy EA/L pro podélné posuny u a ohyb 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}$$

Příklady diagramů a vizualizace

  • Diagramy průhybů Uy pro prostorový rám pod kroutícím momentem M3: polynom 5. stupně při lineárním zatížení q(x).
  • Diagramy momentů v 3-prvkovém rámu: polynom 3. stupně podél prutu.

Diagramy jsou vypočítány analyticky na základě uzlových posunů, renderovány v reálném čase na shaderech pro každý prut.

Co je důležité

  • Numericko-analytické řešení kombinuje přesné polynomy s iterační metodou sdružených gradientů pro velké řídké SLAÚ.
  • GLSL shadery zajišťují GPU-akceleraci vizualizace diagramů sil v 3D.
  • Úplný 6-DOF model: ohyb + tah-stlačení s ortogonálními transformacemi.
  • Adaptivní SPA rozhraní na React/MobX/Three.js pro inženýry.
  • Veřejné a soukromé modely v cloudu na Node.js/Express.js.

— Editorial Team

Advertisement 728x90

Číst dál