3.95M
Category: ConstructionConstruction

Программа для прочностного расчета полов на основе бетона и фибробетона для промышленных зданий

1.

Программа для прочностного расчета полов на основе
бетона и фибробетона для промышленных зданий
Выполнила: Садчиков А.В. гр.0018-1
Руководитель: к.т.н., доцент каф. ПМ Мещеулов Н.В.
Томск – 2022

2.

Цель работы: создание программы для прочностного расчета полов на основе
бетона и фибробетона для промышленных зданий и сооружений.
Актуальность работы: заключается в оптимизации времени расчета полов с
учетом фибрового армирования.
Задачи:
1. Выполнить литературный обзор. Проанализировать состояние вопроса.
2. Выполнить ручной расчет по сформированному алгоритму.
3. Создать программу для прочностного расчета полов промышленных зданий на
основе бетона и фибробетона.
4. Выполнить сопоставительный анализ.
Типы решаемых задачи:
1) Проверка прочности
2) Подбор армирования
а) Б и ЖБ сечения
а) Б и ЖБ сечения
б) ФБ и ФЖБ сечения
б) ФБ и ФЖБ сечения
2

3.

Определение фибробетона
Перемешанная однородная смесь вяжущего, заполнителей, равномерно
распределенной по объему фибры и воды с добавлением или без добавления
химических и минеральных добавок, которая после уплотнения, схватывания и твердения
превращается в фибробетон.
3

4.

Основные используемые нормативные документы
СП 63.13330.2018
СП 297.1325800.2017
СП 29.13330.2011
4

5.

Таблица для проверки алгоритма
5

6.

Таблица для проверки алгоритма
6

7.

Таблица для проверки алгоритма
7

8.

Таблица для проверки алгоритма
8

9.

Блок схема
9

10.

Ярлык программы
10

11.

Выбор задачи
11

12.

Подбор армирования для железобетонного пола
12

13.

Подбор армирования для железобетонного пола
1.4
13

14.

15.

Подбор армирования для железобетонного пола
1.6
15

16.

Подбор армирования для железобетонного пола
1.7
16

17.

Подбор армирования для железобетонного пола
1.8
17

18.

Подбор армирования для железобетонного пола
1.9
18

19.

Подбор армирования для железобетонного пола
1.10
19

20.

Подбор армирования для железобетонного пола
1.11
20

21.

Результат подбора армирования для железобетонного пола
21

22.

Результат трещиностойкости, смятия и продавливания для железобетонного пола
1.13
1.14
1.15
1.16
1.17
22

23.

Подбор армирования для железобетонного пола
23

24.

Справка задачи по подбору армирования для железобетонного пола
24

25.

Справка задачи по подбору армирования для железобетонного пола
25

26.

Табличные значения
26

27.

Подбор армирования для железобетонного пола
27

28.

Проверка прочности фиброжелезобетонного пола
28

29.

Проверка прочности фиброжелезобетонного пола
1.5
29

30.

Проверка прочности фиброжелезобетонного пола
1.6
30

31.

Проверка прочности фиброжелезобетонного пола
1.7
31

32.

Проверка прочности фиброжелезобетонного пола
1.15
32

33.

Результаты проверки прочности фиброжелезобетонного пола
33

34.

Результат трещиностойкости, смятия и продавливания для фиброжелезобетонного пола
1.17
1.18
1.19
1.20
1.21
34

35.

Справка задачи по проверке прочности для фиброжелезобетонного пола
35

36.

Справка задачи по проверке прочности для фиброжелезобетонного пола
36

37.

Табличные значения
37

38.

Сравнительные таблицы
Задача по подбору армирования железобетонного пола
Mult
h0
Rfb
As
Rs
x
(МПа)
(мм)
Yb1
(кН*м)
(мм)
(МПа)
(мм2)
Результаты ручного
расчета
128.804
214
11.5
3421
435
69.41
0.239
0.425
1
Результаты расчета
созданного по
программе
128.804
214
11.5
3420.9
435
69.4095
0.240
0.425
1
Разница значений %
0
0
0
0.002923
0
0.00072
0.41841
0
0
38

39.

Сравнительные таблицы
Задача по проверке прочности фиброжелезобетонного пола
Mult
h0
Rfb
As
Rs
x
(кН*м)
(мм)
(МПа)
(мм2)
(МПа)
(мм)
Результаты ручного
расчета
324.270
307.5
22
137.5
435
44.969
0.146
0.500
1
Результаты расчета
созданного по
программе
324.246
307.5
22
137.2
435
44.966
0.146
0.496
1
Разница значений %
0.007
0
0
0.21
0
0.006
0
0.8
0
Yb1
39

40.

Вывод:
• Создана программа для прочностного расчета полов на основе бетона и фибробетона
для промышленных зданий и сооружений.
• Выполнено сравнение результатов ручного расчета и расчета с помощью
программы.
• Погрешность между расчетами составила менее 0.8%
Планы и перспективы развития программы:
Создание расширенного комплекса для расчета полов промышленных зданий:
1.
Расчет изгибающего момента в зависимости от расположения оборудования.
2.
Расчет изгибающего момента в зависимости от используемой техники.
40

41.

лох
41

42.

Код задачи «Подбор армирования железобетонного пола»
Табличные значения
double[] arrayRb = new double[11]
{6.0,
8.5,
11.5,
14.5,
17.0,
19.5,
22.0,
25.0,
27.5,
30.0,
33.0};
double[] arrayRbt = new double[11]
{0.56,
0.75,
0.9,
1.05,
1.15,
1.3,
1.4,
1.5,
1.6,
1.7,
1.8};
int[] arrayRs = new int[5]
{210,
350,
435,
435,
415};
double[] arrayar = new double[]
{0.425,
0.390,
0.372,
0.376,
0.376};
42

43.

Код задачи «Подбор армирования железобетонного пола»
Таблица сортамента стержневой арматуры
double[,] arraySortA = new double[18, 5]
{
/*3*/
{0, 0, 0, 1, 1},
/*4*/
{0, 0, 0, 1, 1},
/*5*/
{0, 0, 0, 1, 1},
/*6*/
{1, 1, 0, 1, 0},
/*7*/
{0, 0, 0, 0, 0},
/*8*/
{1, 1, 0, 1, 0},
/*10*/
{1, 1, 1, 1, 0},
/*12*/
{1, 1, 1, 1, 0},
/*14*/
{1, 1, 1, 0, 0},
/*16*/
{1, 1, 1, 0, 0},
/*18*/
{1, 1, 1, 0, 0},
/*20*/
{1, 1, 1, 0, 0},
/*22*/
{1, 1, 1, 0, 0},
/*25*/
{1, 1, 1, 0, 0},
/*28*/
{1, 1, 1, 0, 0},
/*32*/
{1, 1, 1, 0, 0},
/*36*/
{1, 1, 1, 0, 0},
/*40*/
{1, 1, 1, 0, 0}};
43

44.

Код задачи «Подбор армирования железобетонного пола»
Описание переменных
b = Int32.Parse(textBox1.Text);
h = Int32.Parse(textBox2.Text);
// Коэффициент условия работы бетона
double Yb1 = double.Parse(textBox3.Text);
// Присваивание выбранного (бетона, арматуры, количества стержней)
int indexB = comboBox1.SelectedIndex;
int indexA = comboBox2.SelectedIndex;
int indexAkol = comboBox3.SelectedIndex + 1;
//Присваивание Rb и Rbt из табличных значений
double Rb = arrayRb[indexB];
double Rbt = arrayRbt[indexB];
double Rs = arrayRs[indexA];
44

45.

Код задачи «Подбор армирования железобетонного пола»
Выбор положения растянутой зоны сечения
private void radioButton3_CheckedChanged_1(object sender, EventArgs e)
{
// арматура в нижней зоне
comboBox6.Text = "";
comboBox5.Text = "";
Pol_arm = 1;
pictureBox2.Visible = true;
pictureBox1.Visible = false;
}
private void radioButton4_CheckedChanged_1(object sender, EventArgs e)
{
// арматура в верхней зоне
comboBox6.Text = "";
comboBox5.Text = "";
Pol_arm = 0;
pictureBox1.Visible = true;
pictureBox2.Visible = false;
}
45

46.

Код задачи «Подбор армирования железобетонного пола»
double am = M / (Rb*Yb1 * b * Math.Pow(h0, 2));
double ar = arrayar[indexA];
if (am > ar)
{
MessageBox.Show("am > ar. " + "Необходимо усилить сжатую зону постановкой в нее
арматуры, увеличить размеры поперечного сечения элемента или
повысить класс
бетона");
textBox9.Text = am.ToString();
textBox10.Text = ar.ToString();
textBox5.Text = " ";
textBox4.Text = " ";
textBox11.Text = " ";
textBox12.Text = " ";
textBox13.Text = " ";
label28.Visible = false;
}
46

47.

Код задачи «Подбор армирования железобетонного пола»
Площадь требуемой арматуры
//Определение требуемой площади рабочей арматуры As
double As = Rb* Yb1 * b * h0 * (1 - Math.Sqrt(1 - (2 * am))) / (Rs * Ys3);
textBox8.Text = (As).ToString();
//Подбор арматуры по As
double As_1 = 0;
for (int i = 0; As_1 < As; i++)
{
if ( i == 18)
{
MessageBox.Show("По данным условиям невозможно подобрать арматуру.
Измените класс арматуры или количество стержней");
textBox4.Text = " ";
textBox11.Text = " ";
textBox12.Text = " ";
textBox13.Text = " ";
label28.Visible = false;
return;
}
if (arraySortA[i, indexA] > 0)
{
As_1 = arrayAs[i, indexAkol];
textBox4.Text = (arrayAs[i, 0]).ToString();
d = arrayAs[i, 0];
}
As = As_1;
47

48.

Код задачи «Подбор армирования железобетонного пола»
Определение толщины защитного слоя
if (Pol_arm == 1)
{
if (comboBox6.Text == "По изолирующему слою ПП")
{a1 = 40;}
else
{a1 = 70;}
}
if (Pol_arm == 0)
{
if (comboBox4.SelectedIndex == 0) //открытая среда
{a1 = 30;}
else
//закрытая среда
{
if (comboBox8.SelectedIndex == 1 || comboBox8.SelectedIndex == 2)
//средняя и малая влажность
{a1 = 20;}
else
//большая влажность
{a1 = 25;}
}
}
48

49.

Код задачи «Подбор армирования железобетонного пола»
Определение рабочей высоты бетона и сжатой зоны
бетона
// рабочая высота бетона
if (d > a1)
{
a1 = d;
a = a1 + (d / 2);
h0 = h - a;
}
else
{
a = a1 + (d / 2);
h0 = h - a;
}
// сжатая зона x
double x = (Rs * Ys3 * As) / (Rb* Yb1 * b);
49

50.

Код задачи «Подбор армирования железобетонного пола»
Определение и вывод несущей способности
// определения несущей способности элемента Mult
double Mult = Rb*Yb1 * b * x * (h0 - (0.5 * x));
if (M < Mult)
{
label28.Text = "Прочность обеспечена";
label28.Visible = true;
textBox9.Text = (am).ToString("f3");
textBox10.Text = (ar).ToString();
textBox5.Text = (Mult / Math.Pow(10, 6)).ToString("f3");
textBox12.Text = ((M / Mult) * 100).ToString("f2") + "%";
textBox11.Text = h0.ToString();
textBox13.Text = a.ToString();
}
else {
MessageBox.Show("По данным условиям невозможно подобрать арматуру. Измените
класс
арматуры или количество стержней");
textBox4.Text = " ";
textBox11.Text = " ";
textBox12.Text = " ";
textBox13.Text = " ";
label28.Visible = false;
return;
}
50

51.

Код задачи «Подбор армирования железобетонного пола»
Определение и вывод процента армирования
//
Процент армирования
double nu_min = 0.1;
double nu_max = As / (b * h0) * 100;
if (nu_min < nu_max)
{
label59.Text = "Условие выполнено";
label59.Visible = true;
label59.ForeColor = Color.Black;
}
else
{
label59.Text = "Требуется увеличить количество арматуры";
label59.Visible = true;
label59.ForeColor = Color.Red;
}
textBox24.Text = nu_max.ToString("f2") + "%";
51

52.

Код задачи «Подбор армирования железобетонного пола»
Определение геометрических характеристик
//
Определение геометрических параметров
double Eb = arrayEb[indexB];
double alfa = (Es / Eb);
double Sred = ((b * Math.Pow(h, 2) / 2) + alfa * As * a);
double Ared = (b * h) + (alfa * As);
double yt = Sred / Ared;
double Ired = ((b * Math.Pow(h, 3)) / 12) + b * h * (0.5 * h - yt) + alfa * As *
Math.Pow(yt - a, 2);
double Wred = Ired / yt;
double FiBCr = arrayFiBCr[comboBox8.SelectedIndex, indexB + 1];
if (Yb1 == 1)
{
Eb1 = 0.85 * Eb;
}
else
{
Eb1 = Eb / (1 + FiBCr);
}
double D = (Eb1 * Ired);
52

53.

Код задачи «Проверка прочности фиброжелезобетонного пола»
Табличные значения
public double[] arrayEb = new double[11]
{19000,
//B10
24000,
//B15
27500,
//B20
30000,
//B25
32500,
//B30
34500,
//B35
36000,
//B40
37000,
//B45
38000,
//B50
39000,
//B55
39500};
//B60
int[] arrayRs = new int[5]
{210,
350,
435,
435,
415};
public double[] arrayRfbt3 = new double[11]
{0.77,
//Bft3-1i
1.15,
//Bft3-1,5i
1.54,
//Bft3-2i
1.92,
//Bft3-2,5i
2.31,
//Bft3-3i
2.69,
//Bft3-3,5i
3.08,
//Bft3-4i
3.46,
//Bft3-4,5i
3.85,
//Bft3-5i
4.23,
//Bft3-5,5i
4.62};
//Bft3-6i
double[] arrayar = new double[]
{0.425,
0.390,
0.372,
0.376,
0.376};
53

54.

Код задачи «Проверка прочности фиброжелезобетонного пола»
//определение высоты сжатой зоны x
double x = (Rs * As + Rfbt3 * h * b * Yb1) / ((Rfb * Yb1 + Rfbt3) * b);
//Определение ksi
double ksi = x / h0;
// Определение ksir
double ksir = 0.8 / (1 + ((Rs / Es) / 0.0035));
// Сравнение ksi <= ksir
if (ksi > ksir)
{
ksi = ksir;
x = ksir * h0;
}
54

55.

Код задачи «Проверка прочности фиброжелезобетонного пола»
Определение несущей способности
if (ksi >= x)
{
Mult = Rfb * Yb1 * b * x * (h0 - (0.5 * x))
- Rfbt3 * Yb1 *b* (h - x) * (((h - x) / 2) - a);
}
else
{
Mult = Rfb * Yb1 * b * x * (h0 - (0.5 * x))
- Rfbt * 0.25 * Yb1 * b * (h - x) * (((h - x) / 2) a);
}
55

56.

Код задачи «Проверка прочности фиброжелезобетонного пола»
Сравнение Изгибающего момента и несущей способности
//Сравнение моментов M и Mult
if (M > Mult)
{
label10.Text = "Прочность не обеспечена";
label10.Visible = true;
label10.ForeColor = Color.Red;
}
else
{
label10.Text = "Прочность обеспечена";
label10.Visible = true;
label10.ForeColor = Color.Black;
}
textBox3.Text = (Mult / Math.Pow(10, 6)).ToString("f3");
textBox4.Text = x.ToString("f3");
textBox6.Text = ksi.ToString("f3");
textBox8.Text = ksir.ToString("f3");
textBox7.Text = ((M / Mult) * 100).ToString("f2") + "%";
textBox12.Text = a.ToString();
textBox13.Text = h0.ToString();
56

57.

Код интерфейса
Проверка на пустоту окон
foreach (var tb in this.Controls.OfType<TextBox>())
{
if (tb.Text == "")
{
tb.BackColor = Color.Red;
check = false;
}
}
foreach (var cb in this.Controls.OfType<ComboBox>())
{
if (cb.Text == "")
{
cb.BackColor = Color.Red;
check = false;
}
}
57

58.

Код интерфейса
Ограничение вводимых символов
private void comboBox6_KeyPress(object sender, KeyPressEventArgs e)
{
char number = e.KeyChar;
if ((e.KeyChar <= 47 || e.KeyChar >= 58) && number != 8)
{
e.Handled = true;
}
}
private void comboBox4_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
58
English     Русский Rules