Similar presentations:
Программа для прочностного расчета полов на основе бетона и фибробетона для промышленных зданий
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