Учебный пример НДМ: косое внецентренное сжатие вручную
Страница показывает расчёт прямоугольного железобетонного сечения по нелинейной деформационной модели (НДМ) со всеми промежуточными числами — так, чтобы его можно было повторить в Excel, а отдельные шаги — на калькуляторе. Решаются две задачи:
- НДС от заданных усилий — найти плоскость деформаций, отвечающую
N,Mx,My(метод Ньютона); - предел несущей способности — найти, во сколько раз можно пропорционально увеличить те же
усилия, пока бетон в самом сжатом углу не достигнет предельной деформации
εb2.
К странице приложена книга Excel без макросов, в которой каждая итерация — отдельный лист с таблицей волокон и формулами: ndm-tutorial.xlsx. Жёлтые ячейки листа «Исходные» можно менять — все итерации пересчитаются.
Учебная модель упрощена
Сетка намеренно крупная (6 × 10 волокон), площадь бетона под стержнями не вычитается, бетон на растяжение не работает, диаграммы двухлинейные. Этого достаточно, чтобы увидеть устройство алгоритма; влияние сетки на результат показано ниже. Как та же задача решается в OpenCS, описано на страницах Фибровый метод и Предельные усилия.
Исходные данные
| Величина | Значение |
|---|---|
| Сечение | b = 0,30 м (вдоль x), h = 0,50 м (вдоль y), начало координат в центре |
| Бетон B25 | Rb = 14,5 МПа; двухлинейная диаграмма: εb1,red = 0,0015, εb2 = 0,0035 (СП 63, п. 6.1.20) |
| Приведённый модуль | Eb,red = Rb / εb1,red = 14,5 / 0,0015 = 9666,67 МПа |
| Арматура A500 | Rs = Rsc = 435 МПа (табл. 6.14), Es = 200 000 МПа, εs0 = Rs/Es = 0,002175, εs2 = 0,025 (п. 6.2.14) |
| Стержни | 4 ⌀20, As = π·0,02²/4 = 0,000314159 м² каждый, в точках (±0,10; ±0,20) м |
| Усилия | N = −800 кН, Mx = −160 кН·м, My = −50 кН·м |
Знаки и единицы
Плоскость деформаций задаётся тремя числами u = (ε0, kx, ky):
Сжатие отрицательно. Усилия — суммы по волокнам:
Это та же конвенция, что в OpenCS (см. Оси, знаки и единицы):
отрицательный Mx сжимает верхнюю грань (y > 0), отрицательный My — правую (x > 0).
Поэтому при заданных усилиях сильнее всего сжат угол (+0,15; +0,25).
Длины — в метрах, напряжения — в МПа. Произведение σ·A получается в МН; умножение на 1000 даёт
кН, а σ·A·y·1000 — кН·м. Кривизны kx, ky — в 1/м.
Сетка волокон
Сечение разбито на 6 × 10 = 60 квадратных волокон 0,05 × 0,05 м, площадь каждого
A = 0,0025 м². Центр волокна с индексами i = 0…5, j = 0…9:
Волокна нумеруются построчно снизу вверх: №1 — (−0,125; −0,225), №6 — (0,125; −0,225),
№60 — (0,125; 0,225). Стержни — №61…64: (−0,10; −0,20), (0,10; −0,20), (−0,10; 0,20),
(0,10; 0,20).
Диаграммы
Для каждого волокна нужны напряжение σ(ε) и касательный модуль Et = dσ/dε.
Бетон (растяжение не учитывается, площадка не обрывается — выход за εb2 проверяется отдельно):
Арматура (симметрично при растяжении и сжатии):
В Excel это одна формула на ячейку, например для бетона (в русской версии Excel):
=ЕСЛИ(e>=0; 0; ЕСЛИ(e>=-eb1; Ebr*e; -Rb)), где e — ячейка с деформацией волокна, а eb1,
Ebr, Rb — именованные ячейки листа «Исходные».
Задача 1. Плоскость деформаций от заданных усилий
Система уравнений
Нужно найти u = (ε0, kx, ky), при котором внутренние усилия равны внешним:
Это три нелинейных уравнения с тремя неизвестными. Метод Ньютона на каждом шаге заменяет их линейными:
где D — касательная матрица жёсткости сечения. Поскольку ∂ε/∂u = (1, y, x), она собирается
по волокнам так же просто, как усилия:
Систему 3 × 3 удобно решать правилом Крамера: Δu_k = det(D_k) / det(D), где D_k — матрица D,
у которой k-й столбец заменён на R, а
Итерации прекращаются, когда ‖R‖ / ‖F_зад‖ < 10⁻⁶.
Начальное приближение — упругое
Начинать с u = 0 нельзя. В точке ε = 0 бетон находится на ветви растяжения, его Et = 0, и в
матрице D остаются только четыре стержня. Первый шаг Ньютона на такой «арматурной» жёсткости
даёт кривизны kx = −0,016, ky = −0,020 1/м — в несколько раз больше правильных, на втором
шаге невязка вырастает, затем кривизны уходят к 10¹⁴…10¹⁶ и матрица вырождается.
Правильный старт — упругое решение, в котором весь бетон, включая растянутую зону, работает с
модулем Eb,red. Для симметричного сечения матрица получается диагональной:
(например, d11 = 1000·(9666,67·60·0,0025 + 200 000·4·0,000314159) = 1 450 000 + 251 327,41), и
начальное приближение считается делением:
Это лист «Н0» книги Excel.
Итерация 1 подробно
Подставляем u0 в каждое волокно. Три волокна для самопроверки:
| Волокно | ε = ε0 + kx·y + ky·x |
Участок | σ, МПа |
σ·A·1000, кН |
|---|---|---|---|---|
№1 (−0,125; −0,225) |
−0,00047022 + 0,00090092 + 0,00047760 = +0,00090830 |
растяжение | 0 | 0 |
№60 (0,125; 0,225) |
−0,00047022 − 0,00090092 − 0,00047760 = −0,00184874 |
площадка | −14,50 | −36,25 |
№64, стержень (0,10; 0,20) |
−0,00047022 − 0,00080081 − 0,00038208 = −0,00165311 |
упругий | −330,62 | −103,87 |
Полная таблица волокон итерации 1 — в раскрывающемся блоке:
Таблица 64 волокон на итерации 1 (лист «Н1»)
| № | тип | x, м | y, м | A, м² | ε | σ, МПа | Et, МПа | σ·A, кН |
|---|---|---|---|---|---|---|---|---|
| 1 | бет. | −0,125 | −0,225 | 0,002500 | 0,000908 | 0,00 | 0 | 0,00 |
| 2 | бет. | −0,075 | −0,225 | 0,002500 | 0,000717 | 0,00 | 0 | 0,00 |
| 3 | бет. | −0,025 | −0,225 | 0,002500 | 0,000526 | 0,00 | 0 | 0,00 |
| 4 | бет. | 0,025 | −0,225 | 0,002500 | 0,000335 | 0,00 | 0 | 0,00 |
| 5 | бет. | 0,075 | −0,225 | 0,002500 | 0,000144 | 0,00 | 0 | 0,00 |
| 6 | бет. | 0,125 | −0,225 | 0,002500 | −0,000047 | −0,45 | 9667 | −1,13 |
| 7 | бет. | −0,125 | −0,175 | 0,002500 | 0,000708 | 0,00 | 0 | 0,00 |
| 8 | бет. | −0,075 | −0,175 | 0,002500 | 0,000517 | 0,00 | 0 | 0,00 |
| 9 | бет. | −0,025 | −0,175 | 0,002500 | 0,000326 | 0,00 | 0 | 0,00 |
| 10 | бет. | 0,025 | −0,175 | 0,002500 | 0,000135 | 0,00 | 0 | 0,00 |
| 11 | бет. | 0,075 | −0,175 | 0,002500 | −0,000056 | −0,54 | 9667 | −1,36 |
| 12 | бет. | 0,125 | −0,175 | 0,002500 | −0,000247 | −2,39 | 9667 | −5,97 |
| 13 | бет. | −0,125 | −0,125 | 0,002500 | 0,000508 | 0,00 | 0 | 0,00 |
| 14 | бет. | −0,075 | −0,125 | 0,002500 | 0,000317 | 0,00 | 0 | 0,00 |
| 15 | бет. | −0,025 | −0,125 | 0,002500 | 0,000126 | 0,00 | 0 | 0,00 |
| 16 | бет. | 0,025 | −0,125 | 0,002500 | −0,000065 | −0,63 | 9667 | −1,58 |
| 17 | бет. | 0,075 | −0,125 | 0,002500 | −0,000256 | −2,48 | 9667 | −6,19 |
| 18 | бет. | 0,125 | −0,125 | 0,002500 | −0,000447 | −4,32 | 9667 | −10,81 |
| 19 | бет. | −0,125 | −0,075 | 0,002500 | 0,000308 | 0,00 | 0 | 0,00 |
| 20 | бет. | −0,075 | −0,075 | 0,002500 | 0,000117 | 0,00 | 0 | 0,00 |
| 21 | бет. | −0,025 | −0,075 | 0,002500 | −0,000074 | −0,72 | 9667 | −1,80 |
| 22 | бет. | 0,025 | −0,075 | 0,002500 | −0,000265 | −2,57 | 9667 | −6,41 |
| 23 | бет. | 0,075 | −0,075 | 0,002500 | −0,000456 | −4,41 | 9667 | −11,03 |
| 24 | бет. | 0,125 | −0,075 | 0,002500 | −0,000648 | −6,26 | 9667 | −15,65 |
| 25 | бет. | −0,125 | −0,025 | 0,002500 | 0,000107 | 0,00 | 0 | 0,00 |
| 26 | бет. | −0,075 | −0,025 | 0,002500 | −0,000084 | −0,81 | 9667 | −2,02 |
| 27 | бет. | −0,025 | −0,025 | 0,002500 | −0,000275 | −2,65 | 9667 | −6,64 |
| 28 | бет. | 0,025 | −0,025 | 0,002500 | −0,000466 | −4,50 | 9667 | −11,25 |
| 29 | бет. | 0,075 | −0,025 | 0,002500 | −0,000657 | −6,35 | 9667 | −15,87 |
| 30 | бет. | 0,125 | −0,025 | 0,002500 | −0,000848 | −8,19 | 9667 | −20,49 |
| 31 | бет. | −0,125 | 0,025 | 0,002500 | −0,000093 | −0,90 | 9667 | −2,24 |
| 32 | бет. | −0,075 | 0,025 | 0,002500 | −0,000284 | −2,74 | 9667 | −6,86 |
| 33 | бет. | −0,025 | 0,025 | 0,002500 | −0,000475 | −4,59 | 9667 | −11,47 |
| 34 | бет. | 0,025 | 0,025 | 0,002500 | −0,000666 | −6,44 | 9667 | −16,09 |
| 35 | бет. | 0,075 | 0,025 | 0,002500 | −0,000857 | −8,28 | 9667 | −20,71 |
| 36 | бет. | 0,125 | 0,025 | 0,002500 | −0,001048 | −10,13 | 9667 | −25,32 |
| 37 | бет. | −0,125 | 0,075 | 0,002500 | −0,000293 | −2,83 | 9667 | −7,08 |
| 38 | бет. | −0,075 | 0,075 | 0,002500 | −0,000484 | −4,68 | 9667 | −11,70 |
| 39 | бет. | −0,025 | 0,075 | 0,002500 | −0,000675 | −6,53 | 9667 | −16,31 |
| 40 | бет. | 0,025 | 0,075 | 0,002500 | −0,000866 | −8,37 | 9667 | −20,93 |
| 41 | бет. | 0,075 | 0,075 | 0,002500 | −0,001057 | −10,22 | 9667 | −25,55 |
| 42 | бет. | 0,125 | 0,075 | 0,002500 | −0,001248 | −12,07 | 9667 | −30,16 |
| 43 | бет. | −0,125 | 0,125 | 0,002500 | −0,000493 | −4,77 | 9667 | −11,92 |
| 44 | бет. | −0,075 | 0,125 | 0,002500 | −0,000684 | −6,61 | 9667 | −16,53 |
| 45 | бет. | −0,025 | 0,125 | 0,002500 | −0,000875 | −8,46 | 9667 | −21,15 |
| 46 | бет. | 0,025 | 0,125 | 0,002500 | −0,001066 | −10,31 | 9667 | −25,77 |
| 47 | бет. | 0,075 | 0,125 | 0,002500 | −0,001257 | −12,15 | 9667 | −30,38 |
| 48 | бет. | 0,125 | 0,125 | 0,002500 | −0,001448 | −14,00 | 9667 | −35,00 |
| 49 | бет. | −0,125 | 0,175 | 0,002500 | −0,000693 | −6,70 | 9667 | −16,76 |
| 50 | бет. | −0,075 | 0,175 | 0,002500 | −0,000884 | −8,55 | 9667 | −21,37 |
| 51 | бет. | −0,025 | 0,175 | 0,002500 | −0,001075 | −10,40 | 9667 | −25,99 |
| 52 | бет. | 0,025 | 0,175 | 0,002500 | −0,001266 | −12,24 | 9667 | −30,61 |
| 53 | бет. | 0,075 | 0,175 | 0,002500 | −0,001457 | −14,09 | 9667 | −35,22 |
| 54 | бет. | 0,125 | 0,175 | 0,002500 | −0,001649 | −14,50 | 0 | −36,25 |
| 55 | бет. | −0,125 | 0,225 | 0,002500 | −0,000894 | −8,64 | 9667 | −21,59 |
| 56 | бет. | −0,075 | 0,225 | 0,002500 | −0,001085 | −10,48 | 9667 | −26,21 |
| 57 | бет. | −0,025 | 0,225 | 0,002500 | −0,001276 | −12,33 | 9667 | −30,83 |
| 58 | бет. | 0,025 | 0,225 | 0,002500 | −0,001467 | −14,18 | 9667 | −35,44 |
| 59 | бет. | 0,075 | 0,225 | 0,002500 | −0,001658 | −14,50 | 0 | −36,25 |
| 60 | бет. | 0,125 | 0,225 | 0,002500 | −0,001849 | −14,50 | 0 | −36,25 |
| 61 | арм. | −0,100 | −0,200 | 0,000314 | 0,000713 | 142,53 | 200000 | 44,78 |
| 62 | арм. | 0,100 | −0,200 | 0,000314 | −0,000051 | −10,30 | 200000 | −3,24 |
| 63 | арм. | −0,100 | 0,200 | 0,000314 | −0,000889 | −177,79 | 200000 | −55,85 |
| 64 | арм. | 0,100 | 0,200 | 0,000314 | −0,001653 | −330,62 | 200000 | −103,87 |
Суммы по таблице:
Касательная матрица (волокна в растянутой зоне и на площадке в неё не входят):
По Крамеру:
Ход итераций
В строке — плоскость, с которой начинается итерация, внутренние усилия при ней и невязка
R = F_зад − F.
| Лист | ε0 |
kx, 1/м |
ky, 1/м |
N, кН |
Mx, кН·м |
My, кН·м |
R_N |
R_Mx |
R_My |
‖R‖/‖F‖ |
|---|---|---|---|---|---|---|---|---|---|---|
| Н1 | −0,000470 | −0,004004 | −0,003821 | −924,33 | −131,48 | −37,47 | 124,328 | −28,525 | −12,528 | 1,6·10⁻¹ |
| Н2 | −0,000289 | −0,005763 | −0,006169 | −825,04 | −153,12 | −47,90 | 25,038 | −6,884 | −2,104 | 3,2·10⁻² |
| Н3 | −0,000230 | −0,006324 | −0,006843 | −800,83 | −159,35 | −49,93 | 0,831 | −0,652 | −0,069 | 1,3·10⁻³ |
| Н4 | −0,000226 | −0,006389 | −0,006906 | −800,00 | −160,00 | −50,00 | 0,000 | 0,000 | 0,000 | 0 |
Матрицы D по итерациям:
| Лист | d11 |
d12 |
d13 |
d22 |
d23 |
d33 |
det D |
|---|---|---|---|---|---|---|---|
| Н1 | 1 266 327,4 | 42 291,7 | 13 291,7 | 26 275,0 | −4 259,4 | 9 551,8 | 2,68326·10¹⁴ |
| Н2 | 976 327,4 | 42 291,7 | 13 291,7 | 21 260,4 | −3 776,0 | 7 437,2 | 1,19151·10¹⁴ |
| Н3 | 768 495,6 | 29 725,3 | −3 866,5 | 16 239,8 | −4 791,0 | 5 751,6 | 4,99181·10¹³ |
| Н4 | 768 495,6 | 29 725,3 | −3 866,5 | 16 239,8 | −4 791,0 | 5 751,6 | 4,99181·10¹³ |
На третьей итерации ни одно волокно уже не переходит на другой участок диаграммы, матрица перестаёт меняться, и для кусочно-линейных диаграмм следующий шаг Ньютона попадает в решение точно. С криволинейной диаграммой такого «точного попадания» не будет: вблизи решения число верных знаков у метода Ньютона примерно удваивается с каждой итерацией, и остановку определяет допуск по невязке.
Проверка найденного состояния
Равновесие само по себе ещё не означает прочность: площадка бетона в модели не обрывается, и
Ньютон найдёт равновесие и при деформациях больше εb2. Поэтому после сходимости обязательно
сравнить деформации с предельными:
| Проверка | Значение | Предел | Итог |
|---|---|---|---|
Самый сжатый угол бетона (0,15; 0,25) |
−0,00047 − 0,00160 − 0,00104 = −0,00286 |
−0,0035 |
выполнено |
| Наиболее растянутый стержень №61 | +0,00174 |
+0,025 |
выполнено |
| Наиболее сжатый стержень №64 | −0,00219 |
−0,025 |
выполнено (стержень текучий: |ε| > εs0) |
Деформация угла сечения, а не центра углового волокна: предел достигается на границе сечения.
Задача 2. Предельный коэффициент к усилиям
Постановка
Ищется множитель λ, при котором усилия λ·F_зад доводят сечение до предела. В предельном
состоянии в самом сжатом углу (xc, yc) деформация бетона равна −εb2:
Это условие линейно, поэтому ε0 просто выражается через кривизны, и неизвестных остаётся три —
v = (kx, ky, λ) — на три уравнения равновесия:
Шагов нагрузки не требуется: λ — такая же неизвестная, как кривизны. Тем же способом работает
быстрый решатель OpenCS (см. Предельные усилия).
Выбор угла. Самый сжатый угол — там, где kx·y + ky·x минимально. По упругому решению
kx0 < 0, ky0 < 0, значит yc = −sign(kx0)·h/2 = +0,25, xc = −sign(ky0)·b/2 = +0,15.
Начальное приближение. Упругое решение u0 из задачи 1 даёт в этом углу
ε = −0,00047022 − 0,0040041·0,25 − 0,0038208·0,15 = −0,00204436. Масштабируем его так, чтобы
угол дошёл до −εb2:
Якобиан. Первые два столбца проще всего получить численно: увеличить kx (или ky) на
δ = 10⁻⁵ 1/м, пересчитать ε0 из условия в углу, заново просуммировать волокна и разделить
разность усилий на δ. Третий столбец получается точно: ∂G/∂λ = −F_зад = (800; 160; 50).
Аналитический вариант
Поскольку ε0 линейно зависит от кривизн, производные можно взять из той же касательной
матрицы D задачи 1: первый столбец J равен D·(−yc; 1; 0), второй — D·(−xc; 0; 1).
Для кусочно-линейных диаграмм оба способа совпадают, пока ни одно волокно не пересекает излом
диаграммы на отрезке δ.
Ход итераций
| Лист | kx, 1/м |
ky, 1/м |
λ |
ε0 |
N, кН |
Mx, кН·м |
My, кН·м |
G_N |
G_Mx |
G_My |
‖G‖/‖F_зад‖ |
|---|---|---|---|---|---|---|---|---|---|---|---|
| П0 | −0,006855 | −0,006541 | 1,71203 | −0,000805 | −1287,50 | −173,06 | −42,50 | 82,12 | 100,86 | 43,10 | 1,7·10⁻¹ |
| П1 | −0,007312 | −0,008769 | 1,10863 | −0,000357 | −916,09 | −167,13 | −56,16 | −29,19 | 10,25 | −0,72 | 3,8·10⁻² |
| П2 | −0,007669 | −0,008687 | 1,07727 | −0,000280 | −864,36 | −172,14 | −53,96 | −2,55 | 0,22 | −0,10 | 3,1·10⁻³ |
| П3 | −0,007687 | −0,008683 | 1,07729 | −0,000276 | −861,83 | −172,37 | −53,86 | 0,00 | 0,00 | 0,00 | 0 |
Якобиан и приращения первой итерации (лист «П0»):
Результат
Предельные усилия: N = −861,8 кН, Mx = −172,4 кН·м, My = −53,9 кН·м. Плоскость:
ε0 = −0,000276, kx = −0,007687, ky = −0,008683 1/м.
Остаётся проверить арматуру: наиболее растянутый стержень №61 имеет εs = +0,00213 < εs2 = 0,025,
значит предел определяет бетон. Если бы условие по арматуре нарушилось (это бывает при малом
сжатии или при растяжении), задачу следовало бы решить ещё раз с условием εs = εs2 в наиболее
растянутом стержне вместо условия в углу и принять меньший из двух λ.
Влияние сетки
Тот же расчёт на более мелких сетках (площадь бетона под стержнями также не вычитается):
| Сетка волокон | λ |
|---|---|
| 6 × 10 (учебная) | 1,0773 |
| 12 × 20 | 1,0813 |
| 30 × 50 | 1,0826 |
| 60 × 100 | 1,0827 |
Крупная сетка занижает предел примерно на 0,5 %: для понимания алгоритма её достаточно, для проектных расчётов сетку мельчат или интегрируют бетон по контуру, как это делает OpenCS (контурное интегрирование).
Почему решение «уходит в разнос»
| Причина | Что происходит | Что делать |
|---|---|---|
Старт с u = 0 |
В D нет бетона (на ветви растяжения Et = 0), первый шаг в разы больше нужного |
Начинать с упругого решения, в котором весь бетон работает с Eb,red |
| Нагрузка больше несущей способности | Ньютон сходится к состоянию с деформациями за пределом (при 1,1·F_зад угол получает εb = −0,0041) либо, при 1,3·F_зад, кривизны растут на порядки и det D → 0 |
После сходимости проверять εb и εs; предел искать задачей 2, а не увеличением нагрузки |
Вырожденная матрица D |
Весь сжатый бетон на площадке, стержни текучие — касательной жёсткости нет | det D ≈ 0 — признак исчерпания; в задаче 2 эта ситуация не возникает, потому что предел задан деформацией |
| Перепутаны знаки | Момент сжимает не ту грань, где ожидается; сечение «держит» нагрузку только растянутой арматурой | Сверить знаки Mx, My с формулами Mx = Σσ·A·y, My = Σσ·A·x |
| Единицы | σ·A в МН, моменты в МН·м, а заданные усилия в кН |
Привести всё к одной системе (здесь множитель 1000) |
Короткие ответы на частые вопросы
Как дойти до предела? Двумя способами. Первый — показанный выше: предельная деформация в
самой сжатой точке задаётся как условие, а λ ищется вместе с кривизнами методом Ньютона.
Второй — перебор: решать задачу 1 для λ·F_зад и сужать интервал λ делением пополам, проверяя
деформации; он надёжнее, но требует десятков решений.
Нужен ли линейный поиск? В этом примере нет. Он полезен как страховка: если после шага невязка выросла, шаг уменьшают вдвое и пересчитывают.
Касательные или секущие модули? Метод Ньютона использует касательные — так сходимость самая
быстрая (здесь 3 шага), но на площадках Et = 0, и вблизи предела матрица может выродиться.
Секущие модули Esec = σ/ε не обращаются в ноль на площадках, итерация u ← D_sec⁻¹·F_зад
устойчивее, но медленнее: на этом же примере — 22 итерации до той же точности 10⁻⁶.
Нужна ли нисходящая ветвь на двух- и трёхлинейных диаграммах? Нет. Диаграммы СП 63 имеют
горизонтальную площадку до εb2 и εs2, а предел определяется деформацией, а не максимумом
напряжения. Обрывать стоит только работу бетона на растяжение (здесь она не учитывается вовсе).
Нужно ли нагружать шагами? Для монотонной диаграммы без разгрузки — нет: упругого начального приближения и итераций достаточно. Шаги нужны там, где важна история — разгрузка, преднапряжение по стадиям, ползучесть.