Към съдържанието

Обработка на геометрични гранични условия

Методът на Нютон–Рафсън решава линейното уравнение \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) при всяка итерация, но геометричните гранични условия (ограниченията на преместването) все още не са включени в това уравнение. Тази глава показва как да се модифицират матрицата на коравината \(\boldsymbol{K}\) и векторът на остатъка \(\boldsymbol{R}\) за степените на свобода, към които са приложени ограничения на преместването \(\boldsymbol{u} = \bar{\boldsymbol{u}}\), така че преместването след итерацията да достигне предписаната стойност. Многоточковите ограничения (MPC) и нелинейните ограничения, свързани с контакт, се обработват отделно; вижте Многоточкови ограничения и Контакт.

Подход за запазване на ограничените премествания като неизвестни променливи

Преместването на възел, подложен на геометрично гранично условие, вече не е неизвестна променлива, а е фиксирано на предписаната стойност \(\bar{u}_i\). Тези степени на свобода биха могли да се третират като константи и да се елиминират от линейното уравнение \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\); FrontISTR обаче налага ограниченията чрез модифициране на \(\boldsymbol{K}\) и \(\boldsymbol{R}\), като запазва ограничените степени на свобода във вектора на корекцията \(d\boldsymbol{u}\) по същия начин като останалите степени на свобода.

При този подход размерите на матрицата на коефициентите и подредбата на степените на свобода не се променят в зависимост от наличието на ограничения, така че не е необходимо да се елиминират променливи и да се преподреждат освободените редове и колони. Тъй като такова преподреждане е неудобно при реализация, която съхранява матрицата на коефициентите в разреден матричен формат, FrontISTR използва втория подход, при който ограниченията се налагат единствено чрез актуализиране на матрицата на коефициентите и дясната страна.

Целева стойност за корекциите на Нютон–Рафсън

За степен на свобода \(i\) с ограничено преместване нека корекцията \(du_i\), получена при итерацията на Нютон–Рафсън, бъде

\[ du_i = d\bar{u}_i \equiv \begin{cases} \bar{u}_i & (\text{1-ва итерация}) \\ 0 & (\text{2-ра и следващи итерации}) \end{cases} \]

Модифицирайте \(\boldsymbol{K}\) и \(\boldsymbol{R}\) така, че корекцията да приема тази стойност. Така при първата итерация прирастът на преместването достига предписаната стойност \(\bar{u}_i\); от втората итерация нататък корекцията става \(0\) и предписаната стойност се запазва.

Процедура за модифициране на матрицата и вектора на остатъка

Целевата стойност, описана в предишния раздел, се постига чрез следните две модификации, като се запазва формата на линейното уравнение \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\).

  1. Диагонализиране на ред \(i\): Заменете диагоналния член \(K_{ii}\), коефициента пред \(du_i\), с \(1\), всички останали коефициенти \(K_{ij}\ (j \not= i)\) — с \(0\), и задайте дясната страна като \(R_i \to d\bar{u}_i\). Тогава уравнението в ред \(i\) става \(du_i = d\bar{u}_i\).
  2. Прехвърляне от редовете \(j(\not= i)\): За всеки ред \(j(\not= i)\), ако \(K_{ji} \not= 0\), преместете члена \(K_{ji} du_i = K_{ji} d\bar{u}_i\) в дясната страна. Тоест извадете \(K_{ji} d\bar{u}_i\) от дясната страна и задайте коефициента \(K_{ji}\) пред \(du_i\) на \(0\).

В компонентен вид уравненията преди и след модификацията съответстват по следния начин.

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

Нека модифицираната матрица на коефициентите и дясната страна се означават съответно с \(\tilde{\boldsymbol{K}}, \tilde{\boldsymbol{R}}\). Линейното уравнение, което в крайна сметка трябва да се реши, е

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

Ако съществуват няколко ограничени степени на свобода, модификации 1 и 2 по-горе се прилагат последователно към всяка ограничена степен на свобода \(i\).

Обхват на обработката при реализация с разредена матрица

В реализацията матрицата на коефициентите \(\boldsymbol{K}\) се съхранява в разреден матричен формат. Следователно обработката на редовете \(j(\not= i)\) в процедура 2 от предишния раздел се извършва само за редове с ненулеви елементи в колона \(i\), тоест за степените на свобода на възли, свързани чрез елементи с ограничената степен на свобода \(i\). За несвързани степени на свобода \(K_{ji} = 0\), така че прехвърлянето на члена не променя дясната страна. Това ограничение позволява обработката на ограниченията да се завърши само чрез локални операции спрямо общия брой възли.

Свързани теми

AI-assisted translation May contain errors Official docs Status