Разработка AI-системы анализа геологических изысканий для строительства
Инженерные геологические изыскания — дорогостоящий процесс, определяющий фундаментальные решения по проекту. AI анализирует данные изысканий, предсказывает свойства грунтов между скважинами и оценивает геотехнические риски.
Интерпретация данных инженерных изысканий
Обработка данных зондирования (CPT):
Статическое зондирование (CPTU/CPT) — наиболее информативный метод изысканий: конус измеряет сопротивление грунта (qc), трение по боковой поверхности (fs) и порового давления (u2) непрерывно по глубине.
import numpy as np
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
class CPTSoilClassifier:
"""Классификация грунтов по данным статического зондирования (СП 47.13330)"""
# Классификатор Robertson (1990) — международный стандарт
SOIL_CLASSES = {
1: 'sensitive_fine_grained',
2: 'organic_soil_peat',
3: 'clays',
4: 'silt_mixtures',
5: 'sand_silt_mixtures',
6: 'clean_sands',
7: 'gravelly_sand_to_dense_sand',
8: 'very_stiff_sand_to_gravelly_sand',
9: 'very_stiff_fine_grained'
}
def classify_robertson(self, qc, fs, depth_m, unit_weight=18):
"""
Классификация по методу Robertson (1990).
qc: МПа, fs: кПа
"""
# Normalization
Pa = 0.1013 # МПа (атмосферное давление)
sigma_v = unit_weight * depth_m / 1000 # МПа (вертикальное напряжение)
qt = qc # упрощение (без поправки на поровое давление)
# Normalized tip resistance
Qtn = (qt - sigma_v) / Pa * (Pa / sigma_v) ** 0.381
# Normalized friction ratio
Fr = fs / max(qt - sigma_v, 0.001) * 100 # %
# Soil Behaviour Type Index (Ic)
Ic = np.sqrt((3.47 - np.log10(Qtn))**2 + (1.22 + np.log10(Fr))**2)
# Классификация по Ic
if Ic > 3.60:
return 2 # торф/органика
elif Ic > 2.95:
return 3 # глины
elif Ic > 2.60:
return 4 # суглинки
elif Ic > 2.05:
return 5 # супеси/суглинки
elif Ic > 1.31:
return 6 # пески
else:
return 7 # гравийные пески
def derive_geotechnical_params(self, qc, soil_class):
"""Определение расчётных характеристик грунта по эмпирическим корреляциям"""
params = {}
if soil_class in [5, 6, 7]: # несвязные грунты
params['phi_degrees'] = 17.6 + 11.0 * np.log10(qc) # угол трения (Kulhawy & Mayne)
params['relative_density'] = 100 * (qc / 100) ** 0.5 # Dr, %
params['Es_MPa'] = 5 * qc # модуль деформации (ориентировочно)
elif soil_class in [3, 4]: # связные грунты
params['Su_kPa'] = qc / 0.01 / 15 # прочность без дренажа
params['OCR'] = (0.33 * qc) ** 1.15 # степень переуплотнения
return params
Пространственная интерполяция свойств грунтов
Кригинг геологических параметров:
Между скважинами данных нет. Геостатистика (кригинг) строит вероятностную модель поля параметра:
from pykrige.ok import OrdinaryKriging
import numpy as np
def interpolate_bearing_capacity(borehole_locations, bearing_capacity_values, grid_resolution_m=5):
"""
Построение карты несущей способности грунта по данным скважин.
borehole_locations: (n, 2) координаты xy скважин
bearing_capacity_values: (n,) несущая способность кПа
"""
x = borehole_locations[:, 0]
y = borehole_locations[:, 1]
z = bearing_capacity_values
# Ordinary Kriging с автоматическим подбором вариограммы
ok = OrdinaryKriging(
x, y, z,
variogram_model='spherical',
verbose=False,
enable_plotting=False
)
# Создать регулярную сетку
x_grid = np.arange(x.min(), x.max(), grid_resolution_m)
y_grid = np.arange(y.min(), y.max(), grid_resolution_m)
z_pred, z_variance = ok.execute('grid', x_grid, y_grid)
return z_pred, np.sqrt(z_variance) # предсказание + неопределённость
Оценка геотехнических рисков
Просадочность грунтов:
Для лёссовых грунтов Центральной России и юга — критический параметр:
- ML-классификатор по данным лабораторных исследований + CPT: просадочный/непросадочный
- Прогноз глубины просадочной толщи между скважинами
Риск разжижения при сейсмике:
Японский метод (Ishihara) + ML-коррекция:
- CRR (Cyclic Resistance Ratio) по CPT
- CSR (Cyclic Stress Ratio) по сейсмическим условиям
- Factor of Safety FL = CRR/CSR < 1.0 → разжижение вероятно
Набухающие грунты:
ML-регрессия давления набухания по минералогическому составу и влажности (актуально для юга РФ, Казахстана).
Генерация геологической документации
Автоматизация отчётов:
По данным изысканий + нормативной базе → автогенерация:
- Таблицы физико-механических характеристик грунтов (по СП 22.13330)
- Инженерно-геологические колонки (ГОСТ Р 59623)
- Текстовая часть отчёта: шаблон + ML-заполнение из данных измерений
3D-визуализация геологической модели:
PyVista/VTK + интерполированные данные → трёхмерная инженерно-геологическая модель:
- Слои грунтов по площадке
- Уровень грунтовых вод
- Зоны риска (просадки, разжижение)
Срок разработки: 4–6 месяцев для AI-системы интерпретации изысканий с пространственной интерполяцией и оценкой рисков.







