Pereiti prie turinio

Geometrinių kraštinių sąlygų apdorojimas

Newton-Raphson metodas kiekvienoje iteracijoje sprendžiama tiesinių lygčių sistema \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) dar neapima geometrinių kraštinių sąlygų (poslinkio suvaržymų). Šiame skyriuje parodoma, kaip tiems laisvės laipsniams, kuriems duotas poslinkio suvaržymas \(\boldsymbol{u} = \bar{\boldsymbol{u}}\), reikia modifikuoti standumo matricą \(\boldsymbol{K}\) ir liekamąjį vektorių \(\boldsymbol{R}\), kad po iteracijos poslinkis pasiektų suvaržytąją reikšmę. Daugtaškiai suvaržymai (MPC) ir su kontaktu susiję netiesiniai suvaržymai apdorojami atskirai; žr. Daugtaškiai suvaržymai ir Kontaktas.

Poslinkio suvaržymo palikimas tarp nežinomųjų

Mazgų, kuriems nustatytos geometrinės kraštinės sąlygos, poslinkiai nebėra nežinomieji ir yra fiksuojami nurodytomis reikšmėmis \(\bar{u}_i\). Juos galima laikyti konstantomis ir pašalinti iš tiesinės lygčių sistemos \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\), tačiau FrontISTR suvaržytus laisvės laipsnius palieka tame pačiame korekcijos vektoriuje \(d\boldsymbol{u}\) kaip ir kitus laisvės laipsnius, o suvaržymą įgyvendina modifikuodamas \(\boldsymbol{K}\) ir \(\boldsymbol{R}\).

Taikant šį būdą koeficientų matricos dimensija ir laisvės laipsnių tvarka nesikeičia priklausomai nuo suvaržymų buvimo, todėl pašalinus kintamuosius nereikia iš naujo sutankinti atsilaisvinusių eilučių ir stulpelių. Įgyvendinant koeficientų matricą retintosios matricos formatu toks pertvarkymas būtų sudėtingas, todėl FrontISTR naudoja pastarąjį būdą, kuriame suvaržymas pasiekiamas tik atnaujinant koeficientų matricą ir dešiniąją pusę.

Newton-Raphson korekcijos tikslinė vertė

Suvaržytam poslinkio laisvės laipsniui \(i\) Newton-Raphson iteracijoje apskaičiuojama korekcija \(du_i\) turi būti

\[ du_i = d\bar{u}_i \equiv \begin{cases} \bar{u}_i & (\text{1-oji iteracija}) \\ 0 & (\text{2-oji ir vėlesnės iteracijos}) \end{cases} \]

\(\boldsymbol{K}\) ir \(\boldsymbol{R}\) modifikuojami taip, kad būtų gautos šios reikšmės. Todėl jau per pirmąją iteraciją poslinkio prieaugis pasiekia suvaržytąją reikšmę \(\bar{u}_i\), o nuo antrosios iteracijos korekcija tampa \(0\) ir suvaržytoji reikšmė išlaikoma.

Matricos ir liekamojo vektoriaus modifikavimo procedūra

Ankstesniame skyriuje nurodytas korekcijos tikslas pasiekiamas išlaikant tiesinės lygties \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) formą ir atliekant dvi toliau nurodytas transformacijas.

  1. \(i\)-osios eilutės diagonalizavimas: \(du_i\) koeficientas, t. y. įstrižainės narys \(K_{ii}\), pakeičiamas į \(1\), visi kiti koeficientai \(K_{ij}\ (j \not= i)\) – į \(0\), o dešinioji pusė nustatoma \(R_i \to d\bar{u}_i\). Taip \(i\)-osios eilutės lygtis tampa \(du_i = d\bar{u}_i\).
  2. Perkėlimas iš \(j(\not= i)\)-osios eilutės: kiekvienai \(j(\not= i)\) eilutei, jei \(K_{ji} \not= 0\), narys \(K_{ji} du_i = K_{ji} d\bar{u}_i\) perkeliamas į dešiniąją pusę. Kitaip tariant, iš dešiniosios pusės atimama \(K_{ji} d\bar{u}_i\), o \(du_i\) koeficientas \(K_{ji}\) nustatomas į \(0\).

Komponentine forma lygtys prieš ir po transformavimo atitinka viena kitą taip.

\[ \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} \]

Modifikuotą koeficientų matricą ir dešiniąją pusę žymint atitinkamai \(\tilde{\boldsymbol{K}}, \tilde{\boldsymbol{R}}\), galutinė spręstina tiesinė lygtis yra

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

Kai yra keli suvaržyti laisvės laipsniai, pirmiau aprašytos 1 ir 2 transformacijos nuosekliai taikomos kiekvienam suvaržytam laisvės laipsniui \(i\).

Taikymo sritis retintojoje matricoje

Įgyvendinime koeficientų matrica \(\boldsymbol{K}\) saugoma retintosios matricos formatu, todėl ankstesnės procedūros 2 žingsnyje \(j(\not= i)\) eilutės apdorojamos tik tada, kai \(i\)-ajame stulpelyje yra neneulinis elementas, t. y. tik laisvės laipsniams tų mazgų, kurie per elementą sujungti su suvaržytu laisvės laipsniu \(i\). Nesusietiems laisvės laipsniams \(K_{ji} = 0\), todėl perkėlus narį dešinioji pusė nekinta. Dėl šio apribojimo suvaržymų apdorojimas užbaigiamas atliekant tik lokalias operacijas, nepriklausančias nuo viso mazgų skaičiaus.

Susijusios temos

AI-assisted translation May contain errors Official docs Status