Ga naar inhoud

Behandeling van geometrische randvoorwaarden

De Newton-Raphson-methode lost bij elke iteratie de lineaire vergelijking \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) op, maar geometrische randvoorwaarden (verplaatsingsbeperkingen) zijn nog niet in deze vergelijking opgenomen. Dit hoofdstuk laat zien hoe de stijfheidsmatrix \(\boldsymbol{K}\) en residuvector \(\boldsymbol{R}\) worden gewijzigd voor vrijheidsgraden waarop verplaatsingsbeperkingen \(\boldsymbol{u} = \bar{\boldsymbol{u}}\) worden toegepast, zodat de verplaatsing na iteratie de voorgeschreven waarde bereikt. Meerpuntsbeperkingen (MPC's) en niet-lineaire beperkingen in verband met contact worden afzonderlijk behandeld; zie Meerpuntsbeperkingen en Contact.

Beleid voor het behouden van verplaatsingsbeperkingen als onbekende variabelen

De verplaatsing van een knooppunt waarop een geometrische randvoorwaarde van toepassing is, is niet langer een onbekende variabele maar ligt vast op de voorgeschreven waarde \(\bar{u}_i\). Deze vrijheidsgraden zouden als constanten kunnen worden behandeld en uit de lineaire vergelijking \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) kunnen worden geëlimineerd; FrontISTR legt de beperkingen echter op door \(\boldsymbol{K}\) en \(\boldsymbol{R}\) te wijzigen terwijl de beperkte vrijheidsgraden, net als de andere vrijheidsgraden, in de correctievector \(d\boldsymbol{u}\) behouden blijven.

Met deze aanpak veranderen de dimensies van de coëfficiëntenmatrix en de ordening van de vrijheidsgraden niet afhankelijk van de aanwezigheid van beperkingen, zodat variabelen niet hoeven te worden geëlimineerd en de vrijgekomen rijen en kolommen niet opnieuw hoeven te worden ingepakt. Omdat een dergelijke herindeling omslachtig is in een implementatie die de coëfficiëntenmatrix in ijle-matrixvorm opslaat, kiest FrontISTR voor de laatste aanpak, waarbij beperkingen uitsluitend worden opgelegd door de coëfficiëntenmatrix en de rechterzijde bij te werken.

Doelwaarde voor Newton-Raphson-correcties

Laat voor een door een verplaatsing beperkte vrijheidsgraad \(i\) de correctie \(du_i\) die in de Newton-Raphson-iteratie wordt verkregen gelijk zijn aan

\[ du_i = d\bar{u}_i \equiv \begin{cases} \bar{u}_i & (\text{1e iteratie}) \\ 0 & (\text{2e en volgende iteraties}) \end{cases} \]

Wijzig \(\boldsymbol{K}\) en \(\boldsymbol{R}\) zo dat de correctie deze waarde aanneemt. Hierdoor bereikt het verplaatsingsincrement in de eerste iteratie de voorgeschreven waarde \(\bar{u}_i\); vanaf de tweede iteratie wordt de correctie \(0\) en blijft de voorgeschreven waarde behouden.

Procedure voor het wijzigen van de matrix en residuvector

De in de vorige sectie beschreven doelwaarde wordt bereikt door de volgende twee wijzigingen, terwijl de vorm van de lineaire vergelijking \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) behouden blijft.

  1. Diagonalisatie van rij \(i\): Vervang de diagonaalterm \(K_{ii}\), de coëfficiënt van \(du_i\), door \(1\), vervang alle andere coëfficiënten \(K_{ij}\ (j \not= i)\) door \(0\) en stel de rechterzijde in op \(R_i \to d\bar{u}_i\). De vergelijking in rij \(i\) wordt dan \(du_i = d\bar{u}_i\).
  2. Overdracht vanuit rijen \(j(\not= i)\): Verplaats voor elke rij \(j(\not= i)\), als \(K_{ji} \not= 0\), de term \(K_{ji} du_i = K_{ji} d\bar{u}_i\) naar de rechterzijde. Trek dus \(K_{ji} d\bar{u}_i\) af van de rechterzijde en stel de coëfficiënt \(K_{ji}\) van \(du_i\) in op \(0\).

In componentvorm corresponderen de vergelijkingen vóór en na de wijziging als volgt.

\[ \begin{bmatrix} K_{11} & K_{12} & \cdots & K_{1i} & \cdots & K_{1N} \\ K_{21} & K_{22} & \cdots & K_{2i} & \cdots & K_{2N} \\ \vdots & \vdots & \ddots & \vdots & & \vdots \\ K_{i1} & K_{i2} & \cdots & K_{ii} & \cdots & K_{iN} \\ \vdots & \vdots & & \vdots & \ddots & \vdots \\ K_{N1} & K_{N2} & \cdots & K_{Ni} & \cdots & K_{NN} \\ \end{bmatrix} \begin{bmatrix} du_1 \\ du_2 \\ \vdots \\ du_i \\ \vdots \\ du_N \end{bmatrix} = \begin{bmatrix} R_1 \\ R_2 \\ \vdots \\ R_i \\ \vdots \\ R_N \end{bmatrix} \]
\[ \Longrightarrow \quad \begin{bmatrix} K_{11} & K_{12} & \cdots & 0 & \cdots & K_{1N} \\ K_{21} & K_{22} & \cdots & 0 & \cdots & K_{2N} \\ \vdots & \vdots & \ddots & \vdots & & \vdots \\ 0 & 0 & \cdots & 1 & \cdots & 0 \\ \vdots & \vdots & & \vdots & \ddots & \vdots \\ K_{N1} & K_{N2} & \cdots & 0 & \cdots & K_{NN} \\ \end{bmatrix} \begin{bmatrix} du_1 \\ du_2 \\ \vdots \\ du_i \\ \vdots \\ du_N \end{bmatrix} = \begin{bmatrix} R_1 - K_{1i} d\bar{u}_i \\ R_2 - K_{2i} d\bar{u}_i \\ \vdots \\ d\bar{u}_i \\ \vdots \\ R_N - K_{Ni} d\bar{u}_i \\ \end{bmatrix} \]

Laat de gewijzigde coëfficiëntenmatrix en rechterzijde respectievelijk worden aangeduid met \(\tilde{\boldsymbol{K}}, \tilde{\boldsymbol{R}}\). De uiteindelijk op te lossen lineaire vergelijking is

\[ \tilde{\boldsymbol{K}}\, d\boldsymbol{u} = \tilde{\boldsymbol{R}} \]

Als er meerdere beperkte vrijheidsgraden zijn, worden de wijzigingen 1 en 2 hierboven achtereenvolgens toegepast op elke beperkte vrijheidsgraad \(i\).

Reikwijdte van de verwerking in de ijle-matriximplementatie

In de implementatie wordt de coëfficiëntenmatrix \(\boldsymbol{K}\) in ijle-matrixvorm opgeslagen. Daarom wordt de verwerking van rijen \(j(\not= i)\) in procedure 2 van de vorige sectie alleen uitgevoerd voor rijen met niet-nulelementen in kolom \(i\), dat wil zeggen voor de vrijheidsgraden van knooppunten die via elementen verbonden zijn met de beperkte vrijheidsgraad \(i\). Voor niet-verbonden vrijheidsgraden geldt \(K_{ji} = 0\), zodat het overbrengen van de term de rechterzijde niet verandert. Door deze beperking kan de verwerking van de beperkingen worden voltooid met uitsluitend lokale bewerkingen ten opzichte van het totale aantal knooppunten.

Gerelateerde onderwerpen

AI-assisted translation May contain errors Official docs Status