Расчет последствий возникновения селевых потоков
Селевой поток – это смесь воды и большого количества обломков горных пород (глины, камней, глыб), двигающаяся вдоль русла реки на большой скорости. |
Основными причинами возникновения селевых потоков являются:
селеформирующие грунты: плотные породы, глина
источники воды: ливни, ледники, снег, горные озера
Оценка параметров селевых потоков
Плотность селевого потока зависит от состава и содержания твердой составляющей:
ρ=1.2–1,9 103 (кг/м3)
Высота селевого потока:
H, м |
Характеристика |
1-2 2-3 3-5 5-10 |
маломощный поток поток средней мощности мощный поток катастрофический поток |
Скорость движения селевого потока:
V=11.4(H)1/2(sinα)1/3 (м/с)
V=2.5–7.5 (м/с)
Здесь:
α=10–27º – средний угол наклона селевого русла.
H=0.5–10 м – средняя глубина потока.
Пример 1. скорость движения селя
Определить скорость движения селевого потока для следующих условий:
α=20º, sin20=0.34
h=0.5 м
V=11.4*(0.5)1/2*(sin20)1/3=5.64 (м/c)
α=15º, sin15=0.26
h=1 м
V=11.4*(sin15)1/3=7.26 (м/c)
Комментарий:
Для тригонометрических функций в Visual Basic используется радианная мера угла. Переход от градусов к радианам производится по формуле:
Радианы = (3.141593/180)Градусы
Суммарное давление селевого потока на стены сооружений:
P=Pc+Pд (Па)
Статическое давление:
Pc=0.5ρgH
|
Здесь:
ρ – плотность потока.
g=9.81 – ускорение силы тяжести.
H – глубина потока.
Динамическое давление:
Pд=0.5ρV2 sin2λ
|
Здесь:
V – скорость движения.
λ – угол межу направлением движения селевого потока и стеной.
λ=0º – если стена расположена вдоль движения потока, λ=90º – если стена расположена перпендикулярно движению потока.
Пример 2. давление селя
Определить давление селевого потока для следующих условий:
ρ=1200 кг/м3
h=2 м
V=2.5 м/с
λ=90º, sin90=1
Pc=0.5*1200*9.81*2=11770 (Па) = 0.1177 105 (Па)
Pд=0.5*1200*(2.5)2=3750 (Па) = 0.0375 105 (Па)
P=0.1552 105 (Па)
Пример 3. параметры селя
Определить скорость и давление селевого потока по значению следующих параметров:
плотность потока, ρ
высота потока, H
средний угол наклона русла, α
Комментарий:
Ввести следующие ограничения на величину параметров:
ρ=1.2–1.9 103 (кг/м3)
H=1–10 (м)
α=10–27º
Воздействия селевых потоков на сооружения
Типы зданий и сооружений
Здания со стальными и железобетонными каркасами
Здания с легким металлическим каркасом
Железобетонные здания
Кирпичные здания
Деревянные здания
Здания ГЭС из монолитного железобетона
Резервуары для хранения нефтепродуктов
Водонапорные башни
Линии электропередач
Подземные трубопроводы диаметром до 35 см
Подземные трубопроводы диаметром свыше 35 см
Трубопроводы на металлических эстакадах
Сети коммунального хозяйства (водопровод, газопровод, канализация)
Железобетонные мосты
Деревянные мосты
Зависимость степени повреждения здания от величины суммарного давления (105 Па)
Тип объекта |
Слабое повреждение |
Среднее повреждение |
Сильное повреждение |
Разрушение |
1 |
0.45–0.75 |
0.75–0.81 |
0.81–0.9 |
0.9–1.5 |
2 |
0.15–0.30 |
0.30–0.45 |
0.45–0.75 |
0.75–1.05 |
3 |
0.15–0.30 |
0.30–0.45 |
0.45–0.60 |
0.60–1.90 |
4 |
0.20–0.30 |
0.30–0.53 |
0.53–0.68 |
0.68–0.98 |
5 |
0.09–0.12 |
0.12–0.18 |
0.18–0.30 |
0.30–0.45 |
6 |
0.75–1.50 |
1.50–3.0 |
3.0–4.5 |
4.5–5.0 |
7 |
0.23–0.30 |
0.30–0.45 |
0.45–0.60 |
0.60–0.68 |
8 |
0.15–0.30 |
0.30–0.60 |
0.60–0.90 |
0.90–0.98 |
9 |
0.38–0.45 |
0.45–0.75 |
0.75–1.05 |
1.05–1.13 |
10 |
9–15 |
15–23 |
23–30 |
30–34 |
11 |
3.0–5.5 |
5.5–9.0 |
9–15 |
15–18 |
12 |
0.30–0.50 |
0.50–0.60 |
0.60–0.75 |
0.75–0.90 |
13 |
2.5–6.0 |
6–15 |
15–23 |
23–25 |
14 |
1.5–2.3 |
2.3–3.0 |
3.0–3.8 |
3.8–4.5 |
15 |
0.6–0.9 |
0.9–1.6 |
1.6–2.5 |
2.5–3.0 |
Пример 4. Степень повреждения деревянных зданий
Определить степень повреждения деревянных зданий для селевого потока из примера 2.
P=0.1552 105 (Па)
Тип здания 5.
Здания получат среднее повреждение.
Пример 5. Степень повреждения кирпичных зданий
Определить степень повреждения кирпичных зданий по значению параметров селевого потока:
плотность потока, ρ
высота потока, H
угол наклона русла, α
направление движения селя, λ
Пример 6. Степень повреждения зданий
Определить степень повреждения разных типов зданий по значению параметров селевого потока.
Противоселевые сооружения
Такие сооружения предназначены для задержания селевых выносов, отвода селевого потока, защиты русла от размыва.
Противоселевые сооружения снижают давление селевого потока на стены сооружений. Эффективность противоселевого сооружения характеризуется коэффициентом снижения давления KCH:
Селезащитные сооружения |
KCH |
|
Запруды железобетонные |
три дамбы |
0.25 |
две дамбы |
0.35 |
|
одна дамба |
0.40 |
|
Запруды каменные |
три дамбы |
0.30 |
две дамбы |
0.40 |
|
одна дамба |
0.45 |
|
Запруды решетчатые металлические |
три стенки |
0.35 |
две стенки |
0.45 |
|
одна стенка |
0.50 |
|
Селесдерживающая плотина |
0.1 |
|
Селеотводящие сооружения |
0.05 |
|
Селеспускные сооружения |
0 |
|
Селенаправляющие |
железобетонные |
0.15 |
каменные |
0.25 |
|
бревенчатые |
0.35 |
|
Каменные холмы |
два ряда |
0.70 |
один ряд |
0.85 |
|
Грунтовые холмы |
два ряда |
0.80 |
один ряд |
0.90 |
|
Простейшие сооружения |
валы-канавы |
0.80 |
террасы |
0.70 |
|
Последствия воздействия селя на различные объекты с учетом селезащиты определяется по величине эффективного давления:
Pэ=КснP
Здесь:
P суммарное давление селевого потока без учета селезащиты.
При гарантированном отводе селевого потока KCH = 0.
При отсутствии селезащиты KCH = 1.
Пример 7. эффективное давление селя
Определить эффективное давление селевого потока на деревянное здание из примера 4 при наличии перед ним каменного холма в два ряда.
P=0.1552 105 (Па)
Ксн=0.70
Тип здания 5.
Pэ=0.7*0.1552 105 = 0.1086 105 (Па)
Здание получит слабые повреждения.
Пример 8. последствия селевого потока
Определить степень повреждения разных типов зданий по значению параметров селевого потока при учете селезащитных сооружений.
графическое представление результатов
Для графического представления результатов в языке Visual Basic используется объект управления PictureBox.
Основные методы объекта PictureBox:
Метод Scale позволяет задать масштаб графического окна
Picture1.Scale (X1, Y1)-(X2, Y2)
Здесь (X1, Y1) – координаты левого верхнего угла окна, (X2, Y2) – координаты правого нижнего угла.
Метод Line позволяет нарисовать линию
Picture1.Line (X1, Y1)-(X2, Y2)
Здесь (X1, Y1) – координаты начала линии, (X2, Y2) – координаты конца линии.
Метод PSet позволяет поставить точку в графическом окне
Picture1.PSet (X, Y), Color
Здесь (X, Y) – координаты точки, Color – цвет точки. Значения аргумента Color можно задать с помощью следующих констант:
Константа |
Описание |
vbBlack |
черный |
vbBlue |
синий |
vbGreen |
зеленый |
vbRed |
красный |
vbYellow |
желтый |
vbWhite |
белый |
Пример 9. график функции
Разместить на форме графическое поле, в котором построить графики функций:
5*Abs(Sin(X))
X^(1/2) + Log(X+1)
Код программы:
Private Sub Form_Load()
Line1.BorderColor = vbRed
Line2.BorderColor = vbGreen
End Sub
Private Sub Command1_Click()
Dim X As Single, Y As Single, I As Integer
Picture1.Scale (-0.6, 6)-(11, -1)
'Горизонтальная ось
Picture1.Line (0, 0)-(10.5, 0)
For I = 0 To 10
Picture1.Line (I, 0)-(I, 0.2)
Picture1.PSet (I - 0.3, -0.1), vbWhite
Picture1.Print I
Next I
'Вертикальная ось
Picture1.Line (0, 0)-(0, 5.5)
For I = 1 To 5
Picture1.Line (0, I)-(0.2, I)
Picture1.PSet (-0.6, I + 0.3), vbWhite
Picture1.Print I
Next I
'Графики
For X = 0 To 10 Step 0.01
Y = 5 * Abs(Sin(X))
Picture1.PSet (X, Y), vbRed
Y = X ^ (1 / 2) + Log(X + 1)
If Y >= 0 And Y <= 5 Then
Picture1.PSet (X, Y), vbGreen
End If
Next X
End Sub
Пример 10. скорость селевого потока
Построить графики для скорости селевого потока в функции угла и высоты потока:
V=11.4(H)1/2(sinα)1/3 (м/с)
Здесь:
α=0–25º – средний угол наклона селевого русла.
H=0.5, 1, 3. 5 м – средняя глубина потока.
создание интерактивных графиков
Для создания интерактивных графиков в объекте управления PictureBox используются следующие события мыши:
События мыши |
|
MouseDown |
Нажатие кнопки мыши |
MouseMove |
Передвижение курсора по объекту |
Синтаксис событий:
Private Sub НазваниеОбъекта_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
End Sub
|
параметры событий |
|
Button |
Число |
1 |
нажата левая кнопка мыши |
2 |
нажата правая кнопка мыши |
4 |
нажата средняя кнопка мыши |
Shift |
Число |
0 |
клавиша не нажата |
1 |
нажата клавиша [Shift] |
2 |
нажата клавиша [Ctrl] |
4 |
нажата клавиша [Alt] |
X, Y |
Пара чисел |
X |
горизонтальная координата курсора |
Y |
вертикальная координата курсора |
Пример 11. интерактивный график функции
Разместить на форме графическое поле, в котором построить графики функции
5*Abs(Sin(X))
Разместить на форме текстовое поле, в которое при движении курсора выводится текущая координата X, и два текстовых поля, в которые при щелчке мыши выводятся координаты X и Y.
Дополнения к коду программы:
Dim Verify As Boolean
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Verify = True Then
Text1.Text = Round(X, 1)
End If
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Verify = True Then
Text2.Text = Round(X, 1)
Text3.Text = Round(5 * Abs(Sin(X)), 1)
End If
End Sub
Private Sub Command2_Click()
Verify = True
End Sub
Пример 12. интерактивный график скорости селевого потока
Построить график для скорости селевого потока в функции угла наклона и высоты потока:
V=11.4(H)1/2(sinα)1/3 (м/с)
Обеспечить интерактивное вычисление скорости селевого потока с помощью нажатия клавиши мыши.
Код программы:
Dim Verify As Boolean
Private Sub Plot(H As Single, Color As Long)
Dim X As Single, Y As Single, I As Integer
For X = 0 To 25 Step 0.01
Y = 11.4 * (H) ^ (1 / 2) * (Sin(3.141593 * X / 180)) ^ (1 / 3)
If Y <= 14 Then
Picture1.PSet (X, Y), Color
End If
Next X
End Sub
Private Function V(H As Single, X As Single) As Single
V = 11.4 * (H) ^ (1 / 2) * (Sin(3.141593 * X / 180)) ^ (1 / 3)
End Function
Private Sub Command1_Click()
Picture1.Refresh
Picture1.Scale (-2.5, 15.5)-(27, -2)
'Горизонтальная ось
'Вертикальная ось
'Графики
Select Case Combo1.ListIndex
Case 0
Plot 1, vbGreen
Case 1
Plot 2, vbGreen
Case 2
Plot 3, vbGreen
Case 3
Plot 4, vbGreen
Case 4
Plot 5, vbGreen
Case 5
Plot 6, vbGreen
End Select
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Verify = True Then
Text1.Text = Round(X, 1)
End If
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Verify = True Then
Text2.Text = Round(X, 1)
Select Case Combo1.ListIndex
Case 0
Text3.Text = Round(V(1, X), 1)
Case 1
Text3.Text = Round(V(2, X), 1)
Case 2
Text3.Text = Round(V(3, X), 1)
Case 3
Text3.Text = Round(V(4, X), 1)
Case 4
Text3.Text = Round(V(5, X), 1)
Case 5
Text3.Text = Round(V(6, X), 1)
End Select
End If
End Sub
Private Sub Command2_Click()
Verify = True
End Sub
Применение панели меню при создании интерфейса
Чтобы создать на форме выпадающее меню используется пиктограмма Редактор меню панели инструментов:
Окно редактора меню:
Название (Caption) – надпись на строке меню или внутри выпадающего меню.
Имя (Name) – имя объекта, используемое в коде Visual Basic.
Правила именования:
Название – ObjectName
Имя – mnuObjectName
Элементы выпадающего меню ведут себя как командные кнопки.
Пример 13. география
Создать приложение, которое будет показывать площади следующих географических объектов:
Континенты
Африка – 11 700 000
Антарктика – 5 400 000
Азия – 17 300 000
Австралия – 2 900 000
Европа – 3 800 000
Северная Америка – 9 400 000
Южная Америка – 6 900 000
Океаны
Северный Ледовитый – 5 100 000
Атлантический – 33 400 000
Индийский – 28 400 000
Тихий – 64 200 000
Моря
Балтийское – 148 000
Берингово – 873 000
Черное – 196 000
Карибское – 971 000
Красное – 175 000
Фрагмент кода программы:
Private Sub Command1_Click()
Text1.Text = ""
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub mnuAfrica_Click()
Text1.Text = "11 700 000"
End Sub
Private Sub mnuAntarctica_Click()
Text1.Text = "5 400 000"
End Sub
End Sub
Применение диалоговых окон
Диалоговое окно используется для обмена информацией между программой и пользователем. Это отдельная форма, которая становится доступной при обращении к меню. Диалоговые окна обычно содержат стандартные элементы управления для ввода и отображения информации.
Для добавления в проект «дочерних» форм используется команда меню Проект | Добавить форму:
Для управления диалоговыми окнами используются следующие методы:
Hide |
Скрыть форму, не выгружая ее из памяти |
Show |
Показать форму (и загрузить ее в память, если она не загружена) |
и операторы:
Load |
Загрузить форму в память (не выводит форму на экран) |
Unload |
Выгрузить форму из памяти |
Для объявления глобальных переменных, функций и процедур, к которым можно обращаться в каждой форме, используется окно модуля класса. Для добавления в проект модуля класса используется команда меню Проект | Добавить модуль:
Пример 14. графики скорости селевого потока
С помощью меню и двух диалоговых локон построить графики для скорости селевого потока в функции угла наклона и высоты:
V=11.4(H)1/2(sinα)1/3 (м/с)
Здесь:
H –глубина потока
α – угол наклона русла
Интерфейс программы:
Окно проводник проекта:
Фрагменты кода формы 1:
Dim Verify As Boolean
Private Sub mnuPlotB_Click()
Form2.Show
Form1.Hide
End Sub
Private Sub Plot(H As Single)
'Нарисовать оси и график V(α)
End Sub
Private Sub Command1_Click()
Picture1.Refresh
Plot (Val(Text1.Text))
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Verify = True Then
Label5 = Round(X, 1) & " : " & Round(Y, 1)
End If
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Verify = True Then
Text2.Text = Round(X, 1)
Text3.Text = Round(Speed(Val(Text1.Text), X), 1)
End If
End Sub
Private Sub Command2_Click()
Verify = True
End Sub
Код модуля:
Function Speed(H As Single, X As Single) As Single
Speed = 11.4 * (H) ^ (1 / 2) * (Sin(3.141593 * X / 180)) ^ (1 / 3)
End Function
