Tarkibga o'tish

Geometrik chegaraviy shartlarni qayta ishlash

Newton-Raphson usuli har bir iteratsiyada \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) chiziqli tenglamani yechadi, biroq geometrik chegaraviy shartlar (siljish cheklovlari) bu tenglamaga hali kiritilmagan. Ushbu bobda \(\boldsymbol{u} = \bar{\boldsymbol{u}}\) siljish cheklovi qo‘yilgan erkinlik darajalari uchun qattiqlik matritsasi \(\boldsymbol{K}\) va qoldiq vektori \(\boldsymbol{R}\) qanday o‘zgartirilib, iteratsiyadan keyingi siljish berilgan qiymatga yetkazilishi ko‘rsatiladi. Ko‘p nuqtali cheklovlar (MPC) va kontaktga oid nochiziqli cheklovlar alohida ishlanadi; Ko‘p nuqtali cheklovlar va Kontakt ga qarang.

Siljish cheklovini noma’lum o‘zgaruvchi sifatida saqlash siyosati

Geometrik chegaraviy shart qo‘yilgan tugunning siljishi endi erkin noma’lum emas, balki berilgan \(\bar{u}_i\) qiymatga mahkamlangan. Bunday DOF ni konstanta sifatida ko‘rib \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) dan chiqarib tashlash mumkin, ammo FrontISTR cheklangan DOF ni boshqa DOF lar kabi \(d\boldsymbol{u}\) tuzatish vektori ichida qoldirib, \(\boldsymbol{K}\) va \(\boldsymbol{R}\) ni o‘zgartirish orqali cheklovni bajaradi.

Bu usulda koeffitsiyent matritsasining o‘lchami va DOF tartibi cheklov bor-yo‘qligiga qarab o‘zgarmaydi; o‘zgaruvchilarni chiqarib, bo‘shagan satr va ustunlarni qayta joylashtirish talab qilinmaydi. Sparse matritsa saqlashida bunday qayta joylashtirish noqulay bo‘lgani uchun FrontISTR faqat koeffitsiyent matritsa va o‘ng tomonni yangilash usulidan foydalanadi.

Newton-Raphson tuzatishining maqsad qiymati

Siljishi cheklangan \(i\) DOF uchun Newton-Raphson iteratsiyasida olinadigan \(du_i\) tuzatish

\[ du_i = d\bar{u}_i \equiv \begin{cases} \bar{u}_i & (\text{1st iteration}) \\ 0 & (\text{2nd and subsequent iterations}) \end{cases} \]

bo‘lishi uchun \(\boldsymbol{K}\) va \(\boldsymbol{R}\) o‘zgartiriladi. Natijada birinchi iteratsiyada siljish inkrementi berilgan \(\bar{u}_i\) qiymatga yetadi; ikkinchi va keyingi iteratsiyalarda tuzatish \(0\) bo‘lib, berilgan qiymat saqlanadi.

Matritsa va qoldiq vektorini o‘zgartirish tartibi

Oldingi bo‘limdagi maqsad qiymat \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) shaklini saqlagan holda ikki o‘zgartirish bilan amalga oshiriladi.

  1. \(i\) satrni diagonallashtirish: \(du_i\) koeffitsiyenti bo‘lgan \(K_{ii}\) ni \(1\) ga, qolgan \(K_{ij}\ (j \not= i)\) larni \(0\) ga almashtiring va o‘ng tomonni \(R_i \to d\bar{u}_i\) qiling. Shunda \(i\) satr tenglamasi \(du_i = d\bar{u}_i\) bo‘ladi.
  2. \(j(\not= i)\) satrlardan o‘ng tomonga ko‘chirish: har bir \(j(\not= i)\) satr uchun \(K_{ji} \not= 0\) bo‘lsa, \(K_{ji} du_i = K_{ji} d\bar{u}_i\) hadini o‘ng tomonga ko‘chiring. Ya’ni o‘ng tomondan \(K_{ji} d\bar{u}_i\) ni ayirib, \(du_i\) koeffitsiyenti \(K_{ji}\) ni \(0\) ga qo‘ying.

Komponentlarda o‘zgartirishdan oldingi va keyingi tenglamalar quyidagicha mos keladi.

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

O‘zgartirilgan koeffitsiyent matritsa va o‘ng tomon mos ravishda \(\tilde{\boldsymbol{K}}, \tilde{\boldsymbol{R}}\) deb belgilansa, yechiladigan chiziqli tenglama

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

bo‘ladi. Bir nechta cheklangan DOF bo‘lsa, yuqoridagi 1 va 2 amallar har bir \(i\) DOF uchun ketma-ket bajariladi.

Sparse matritsa implementatsiyasidagi ishlov sohasi

Implementatsiyada \(\boldsymbol{K}\) koeffitsiyent matritsa sparse formatda saqlanadi. Shuning uchun oldingi bo‘limning 2-amalidagi \(j(\not= i)\) satrlarni qayta ishlash faqat \(i\) ustunda noldan farqli komponenti bor satrlarga, ya’ni elementlar orqali cheklangan \(i\) DOF bilan bog‘langan tugunlarning erkinlik darajalariga qo‘llanadi. Bog‘lanmagan DOF lar uchun \(K_{ji} = 0\), shuning uchun hadni ko‘chirish o‘ng tomonni o‘zgartirmaydi. Bu cheklash constraint processing ni jami tugunlar soniga nisbatan faqat lokal amallar bilan bajarish imkonini beradi.

Bog‘liq bo‘limlar

AI-assisted translation May contain errors Official docs Status