Keri sisuni

Geomeetriliste piirtingimuste käsitlemine

Newton-Raphsoni meetod lahendab igal iteratsioonil lineaarvõrrandi \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\), kuid geomeetrilisi piirtingimusi (siirdepiiranguid) ei ole selles võrrandis veel arvesse võetud. Selles peatükis näidatakse, kuidas muuta jäikusmaatriksit \(\boldsymbol{u} = \bar{\boldsymbol{u}}\) ja jääkvektorit \(\boldsymbol{K}\) nende vabadusastmete jaoks, millele rakendatakse siirdepiirang \(\boldsymbol{R}\), nii et iteratsiooni järel saavutaks siire etteantud väärtuse. Mitmepunktipiiranguid (MPC) ja kontaktiga seotud mittelineaarseid piiranguid käsitletakse eraldi; vt Mitmepunktipiirangud ja Kontakt.

Põhimõte: siirdepiirangud jäetakse tundmatuteks

Geomeetrilise piirtingimusega sõlme siire ei ole enam tundmatu, vaid on fikseeritud etteantud väärtusele \(\bar{u}_i\). Neid vabadusastmeid võiks käsitleda konstantidena ja elimineerida lineaarvõrrandist \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\); FrontISTR rakendab aga piiranguid \(d\boldsymbol{u}\) ja \(\boldsymbol{K}\) muutmisega, jättes piiratud vabadusastmed parandvektorisse \(\boldsymbol{R}\) samamoodi nagu teised vabadusastmed.

Selle lähenemise puhul ei muutu koefitsiendimaatriksi mõõtmed ega vabadusastmete järjestus sõltuvalt piirangute olemasolust, mistõttu ei ole vaja muutujaid elimineerida ega vabanenud ridu ja veerge ümber pakkida. Kuna selline ümberpakkimine on hõreda maatriksi kujul talletatud koefitsiendimaatriksi korral rakenduslikult tülikas, kasutab FrontISTR viimast lähenemist: piirangud kehtestatakse ainult koefitsiendimaatriksi ja parema poole uuendamisega.

Newton-Raphsoni paranduse sihtväärtus

Olgu siirdega piiratud vabadusastme \(i\) Newton-Raphsoni iteratsioonis saadav parandus \(du_i\)

\[ du_i = d\bar{u}_i \equiv \begin{cases} \bar{u}_i & (\text{1. iteratsioon}) \\ 0 & (\text{2. ja järgnevad iteratsioonid}) \end{cases} \]

Muutke \(\boldsymbol{K}\) ja \(\boldsymbol{R}\) nii, et parandus omandaks selle väärtuse. Nii jõuab siirdeinkrement esimesel iteratsioonil etteantud väärtuseni \(\bar{u}_i\); alates teisest iteratsioonist on parandus \(0\) ja etteantud väärtus säilib.

Maatriksi ja jääkvektori muutmise protseduur

Eelmises jaotises kirjeldatud sihtväärtus saavutatakse järgmise kahe muudatusega, säilitades lineaarvõrrandi \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) kuju.

  1. Rea \(i\) diagonaliseerimine: asendage \(du_i\) koefitsiendiks olev diagonaalliige \(K_{ii}\) väärtusega \(1\), kõik ülejäänud koefitsiendid \(K_{ij}\ (j \not= i)\) väärtusega \(0\) ning parem pool väärtusega \(R_i \to d\bar{u}_i\). Rea \(i\) võrrand muutub siis kujule \(du_i = d\bar{u}_i\).
  2. Liikmete üleviimine ridadest \(j(\not= i)\): iga rea \(j(\not= i)\) korral, kui \(K_{ji} \not= 0\), viige liige \(K_{ji} du_i = K_{ji} d\bar{u}_i\) paremale poole. See tähendab, et paremast poolest lahutatakse \(K_{ji} d\bar{u}_i\) ja \(du_i\) koefitsient \(K_{ji}\) seatakse väärtusele \(0\).

Komponentkujul vastavad võrrandid enne ja pärast muutmist teineteisele järgmiselt.

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

Tähistame muudetud koefitsiendimaatriksi ja parema poole vastavalt \(\tilde{\boldsymbol{K}}, \tilde{\boldsymbol{R}}\). Lõplikult lahendatav lineaarvõrrand on

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

Kui piiratud vabadusastmeid on mitu, rakendatakse ülaltoodud muudatusi 1 ja 2 järjest igale piiratud vabadusastmele \(i\).

Töötlemisulatus hõreda maatriksi rakenduses

Rakenduses hoitakse koefitsiendimaatriksit \(\boldsymbol{K}\) hõreda maatriksi kujul. Seetõttu tehakse eelmise jaotise protseduuri 2 ridade \(j(\not= i)\) töötlemist ainult nendel ridadel, mille veerus \(i\) on nullist erinev element, st nende sõlmede vabadusastmetel, mis on elementide kaudu ühendatud piiratud vabadusastmega \(i\). Ühendamata vabadusastmete korral on \(K_{ji} = 0\), mistõttu liikme üleviimine paremat poolt ei muuda. See piirang võimaldab piirangute töötlemise teha kogu sõlmede arvu suhtes ainult lokaalsete operatsioonidega.

Seotud teemad

AI-assisted translation May contain errors Official docs Status