Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Оптимизация проектных решений оснований и фундаментов с помощью Microsoft Excel и Visual Basic for Applications. Методические указания для самостоятел

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
714 Кб
Скачать

1 слой – насыпной слой толщиной 1,4 м: II = 17,6 кН/м3;

2 слой – песок крупный, средней плотности, влажный толщиной 5,7 м: II = 19,7 кН/м3, E = 42 МПа;

3 слой – гравийный плотного сложения толщиной 4,7 м: II = 22,1 кН/м3, E = 112 МПа;

4 слой – глина полутвердая, залегающая до разведанной глубины 15 м: II = 20,4 кН/м3, E = 19 МПа.

Подземные воды отсутствуют.

2. Подготовка к практическим занятиям.

Этот вид самостоятельной работы слушателей включает ознакомление с тематикой и содержанием практических занятий, знание пройденного теоретического материала.

Перечень тем практических занятий с указанием видов самостоятельной работы представлены в таблице 2.

При подготовке к практическим занятиям слушатель может пользоваться следующей литературой:

1.Кятов Н.Х. Оптимизация проектных решений оснований и фундаментов с помощью Microsoft Excel и Visual Basic for Applications (примеры расчета): Методические указания к практическим занятиям для слушателей повышения квалификации специалистов строительства и жилищно-коммунального комплекса по направлению «Строительство зданий и сооружений». – Черкесск: СевКавГГТА, 2013. – 40 с.

2.Олбрайт К. Моделирование с помощью Microsoft Excel и VBA: разработка систем поддержки принятия решений.: Пер. с англ. – М.: Издательский дом «Вильямс», 2005. – 672 с.: ил. – Парал. тит. англ.

3.СНиП 2.02.01-83*. Основания зданий и сооружений. – М.: ФГУП ЦПП, 2006. – 48 с.

Таблица 2 – Тематика практических занятий и перечень заданий.

Наименование

Перечень заданий для самостоятельной

практических

п/п

 

работы

 

занятий

 

 

 

 

 

 

 

 

 

 

Основы

Объектная модель Excel. Редактор Visual

 

программирования

Basic for Applications. Запись макросов.

1

на языке Visual Basic

Работа с

диапазонами.

Встроенные

for Applications

математические функции. Метки и

 

 

комментарии. Оператор присваивания.

 

 

Ввод-вывод

данных.

Условные

 

 

 

 

 

 

 

11

 

 

 

 

операторы и циклы. Операторы передачи

 

 

управления. Операторные функции.

 

 

Массивы. Пользовательские формы.

 

 

 

 

Основы

Приложение определения напряжений по

 

моделирования

глубине с учетом влияния соседнего

 

прикладных задач

фундамента.

Приложение

расчета

2

фундаментостроения

основания фундамента по

предельным

 

с помощью Microsoft

состояниям.

 

 

 

Excel и Visual Basic

 

 

 

 

for Applications

 

 

 

 

 

 

 

 

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

Приложения состоит из пяти рабочих листов и двух листов шаблона: Описание, Схема1Таб, Схема2Таб, Схема1Гр, Схема2Гр, Шаблон1 и Шаблон2. Приложение запускается также при помощи кнопки «Определить напряжения», расположенной на листе Описание (рис. 3).

Рис. 3. Лист Описание.

В приложение включены три пользовательские формы для выбора типа схемы взаимного расположения фундаментов и ввода исходных данных: InputsForm, RazmFundForm и IshDannForm.

12

Пользовательская форма InputsForm содержит командные кнопки и два переключателя ShemRasp1 и ShemRasp2, которые соответствуют первой и второй схемам взаимного расположения фундаментов (рис. 4).

Рис. 4. Вид формы InputsForm.

Процедура UserForm_Initialize устанавливает первый переключатель по умолчанию, так как это показано на рисунке. Пользователь в зависимости от типа схемы может выбрать любой переключатель. Процедура OKButton_Click сохраняет сведения о выбранном переключателе в глобальной переменной Shema, которая может принимать значения 1 или 2. Процедура CancelButton_Click выгружает пользовательскую форму и завершает выполнение программы.

Код пользовательской формы InputsForm с тремя обработчиками событий выглядит следующим образом

Private Sub CancelButton_Click() Unload Me

End

End Sub

Private Sub OKButton_Click() If ShemRasp1 Then

Shema = 1

Else

Shema = 2 End If

Unload Me End Sub

Private Sub UserForm_Initialize() ShemRasp1 = True

End Sub

В форму RazmFundForm включены командные кнопки и десять текстовых полей ShirinaBox, DlinaBox, Shirina1Box, Dlina1Box,

13

Shirina2Box, Dlina2Box, Shirina3Box, Dlina3Box, Shirina4Box и Dlina4Box,

сгруппированных в пяти рамках (рис. 5). Текстовые поля первой рамки предназначены для ввода ширины и длины подошвы рассчитываемого фундамента, а остальные – для размеров подошвы фиктивных фундаментов.

Рис. 5. Вид формы RazmFundForm.

Процедура UserForm_Initialize форматирует и очищает текстовые поля от ранее введенных значений. Процедура OKButton_Click сохраняет значения ширины и длины подошвы основного и фиктивных фундаментов в переменных Shirina, Dlina, Shirina1, Dlina1, Shirina2, Dlina2, Shirina3, Dlina3, Shirina4 и Dlina4 с областью действия Public, а

CancelButton_Click – выгружает форму и завершает выполнение программы.

Код формы RazmFundForm принимает следующий вид

Private Sub CancelButton_Click() Unload Me

End

End Sub

Private Sub OKButton_Click()

Shirina = Val(ShirinaBox) Dlina = Val(DlinaBox)

14

Shirina1 = Val(Shirina1Box) Dlina1 = Val(Dlina1Box) Shirina2 = Val(Shirina2Box) Dlina2 = Val(Dlina2Box) Shirina3 = Val(Shirina3Box) Dlina3 = Val(Dlina3Box) Shirina4 = Val(Shirina4Box) Dlina4 = Val(Dlina4Box) Unload Me

End Sub

Private Sub UserForm_Initialize() ShirinaBox = Format(Shirina, "0.00") DlinaBox = Format(Dlina, "0.00") Shirina1Box = Format(Shirina1, "0.00") Dlina1Box = Format(Dlina1, "0.00") Shirina2Box = Format(Shirina2, "0.00") Dlina2Box = Format(Dlina2, "0.00") Shirina3Box = Format(Shirina3, "0.00") Dlina3Box = Format(Dlina3, "0.00") Shirina4Box = Format(Shirina4, "0.00") Dlina4Box = Format(Dlina4, "0.00") ShirinaBox = ""

DlinaBox = "" Shirina1Box = "" Dlina1Box = "" Shirina2Box = "" Dlina2Box = "" Shirina3Box = "" Dlina3Box = "" Shirina4Box = "" Dlina4Box = ""

End Sub

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

15

Рис. 6. Вид формы IshDannForm.

Форма содержит командные кнопки и три текстовых поля: DavlenBox, GlubinaBox и ShagBox. В текстовое поле GlubinaBox можно вводить как любое значение глубины, так и кратное ширины или диаметра подошвы, например, 4∙2.7=10.8. Значением величины шага может быть любое число, но не более 0,4 ширины или диаметра подошвы фундамента, например, 0,2∙2,7 = 0.54 м, 0,3∙2,7 = 0.81 м или 0,4∙2,7 = 1.08

м.

Если в текстовые поля форм приложений вводится значение с десятичными знаками, то между целыми и десятичными знаками ставится точка, а не запятая. В противном случае программа выполнить не верные вычисления или выдаст сообщение об ошибке.

В приложении рассматривается два варианта взаимного расположения фундаментов (рис. 7). Первый вариант (рис. 7, а) соответствует случаю, когда продолжение одного из осей влияющего фундамента (рис. 7, 2) пересекает площадь рассчитываемого фундамента (рис. 7, 1), а второй вариант (рис. 7, б) – когда не пересекает.

a)

В

Г

 

 

Д

б)

 

 

 

 

 

 

 

Ж

 

В

 

 

 

Б

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ж

 

 

К

 

 

И

 

 

К

 

 

 

 

 

 

 

 

Д

 

 

Е

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Б

 

А

 

 

Е

А

И

 

Г

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 7. Примеры схем взаимного расположения фундаментов.

16

Лист Схема1Таб используется для вывода на экран результатов вычислений напряжений по первой схеме взаимного расположения фундаментов, а лист Схема2Таб – по второй схеме.

При запуске приложения открывается только лист Описание, а остальные рабочие листы скрыты и отображаются на экране по мере возникновения в них необходимости.

Большая часть приложения также как и для третьего варианта в предыдущеем параграфе разрабатывается в виде шаблонов с помощью интерфейса Excel без использования VBA-кода.

Шаблон листа Схема1Таб представлен на рис. 8, в ходе разработки которого выполняются следующие действия:

1. В ячейку В2 вводится текст названия выполняемых расчетов: Результаты определения напряжений с учетом влияния соседнего фундамента. В ячейку I3 – (по 1 схеме).

Рис. 8. Пример шаблона листа Схема1Таб.

2. В ячейки A6:M6 вводятся соответственно «Уровни», «z», «ξ», «ξ1», «ξ2», «ξ3», «ξ4», «σzp1», «σzp2», «σzp3», «σzp4», «σzp'» и «σzp». Уровни – это порядковые номера рассматриваемых глубин, где определяются напряжения. z – это расстояние от подошвы рассчитываемого фундамента до рассматриваемой глубины, где определяется напряжение. ξ – это относительна глубина расположения рассматриваемого уровня,

определяемая по формуле 2z b ,

где

b

- ширина

подошвы

рассчитываемого фундамента. ξ1 – то

же,

но

относится

к первому

17

 

 

 

 

фиктивному фундаменту. ξ2 – ко первому фиктивному фундаменту. ξ3 – к третьему фиктивному фундаменту. ξ4 – к четвертому фиктивному фундаменту. σzp' – это вертикальное нормальное напряжение от внешней нагрузки на глубине z по оси, проходящей через центр подошвы рассчитываемого фундамента, определяемая по формуле (3). σzp1 – это вертикальное нормальное напряжение от внешней нагрузки на глубине z под угловой точкой первого фиктивного фундамента, определяемая по формуле

 

 

P

 

 

 

 

 

 

 

1 1 2 2 12

 

 

z

 

 

arctg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

1

12 2

12 2 1 12 1 12 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где 1 zb , где b - ширина подошвы фиктивного фундамента.

σzp2 – то же, но относится ко второму фиктивному фундаменту. σzp3 – к третьему фиктивному фундаменту. σzp4 – к четвертому фиктивному фундаменту. σzp – это вертикальное нормальное напряжение от внешней нагрузки на глубине z по оси, проходящей через центр подошвы рассчитываемого фундамента с учетом влияния соседнего фундамента.

3.В ячейки О6:О17 вводятся соответственно «Давление», «Ширина», «Шаг», «Ширина1», «Ширина2», «Ширина3», «Ширина4», «η», «η1», «η2», «η3» и «η4». Ширина и η – это ширина и отношение длины к ширине подошвы рассчитываемого фундамента. Давление – это дополнительное уплотняющее давление на основание. Шаг – это шаг определения напряжений. Ширина1 и η1 – это ширина и отношение длины к ширине подошвы первого фиктивного фундамента. Ширина2 и η2 – второго фиктивного фундамента. Ширина3 и η3 – третьего фиктивного фундамента. Ширина4 и η4 – четвертого фиктивного фундамента.

4.В ячейку В7 вводится формула А7*$Р$8. При запуске приложения содержимое ячейки будет копироваться в нижние ячейки до заданного программой уровня.

5.В ячейку С7 вводится формула 2*В7/$Р$7 для последующего ее копирования в нижние ячейки, т.е. автоматически будут вноситься относительные глубины рассматриваемых уровней.

6.В ячейки D7:G7 вводится соответственно формулы В7/$Р$9, В7/$Р$10, В7/$Р$11и В7/$Р$12 также для их последующего копирования

внижние ячейки.

7.В ячейки H8:K8 вводятся формула (143), которая в строке формул принимает соответственно следующий вид:

- для первого фиктивного фундамента

=$L$7/(2*ПИ())*(ATAN($P$14/(D8*КОРЕНЬ(1+D8^2+$P$14^2)))+(D8)

*$P$14*(1+P$14^2+2*D8^2))/((D8^2+$P$14^2)*(1+D8^2)*

*КОРЕНЬ(1+D8^2+$P$14^2)))

18

- для второго фиктивного фундамента

=$L$7/(2*ПИ())*(ATAN($P$15/(E8*КОРЕНЬ(1+E8^2+$P$15^2)))+ +(E8*$P$15*(1+$P$15^2+2*E8^2))/((E8^2+$P$15^2)*(1+E8^2)* *КОРЕНЬ(1+E8^2+$P$15^2)))

- для третьего фиктивного фундамента

=$L$7/(2*ПИ())*(ATAN($P$16/(F8*КОРЕНЬ(1+F8^2+$P$16^2)))+ +(F8*$P$16*(1+$P$16^2+2*F8^2))/((F8^2+$P$16^2)*(1+F8^2)* *КОРЕНЬ(1+F8^2+$P$16^2)))

- для четвертого фиктивного фундамента

=$L$7/(2*ПИ())*(ATAN($P$17/(G8*КОРЕНЬ(1+G8^2+$P$17^2)))+ +(G8*$P$17*(1+$P$17^2+2*G8^2))/((G8^2+$P$17^2)*(1+G8^2)* *КОРЕНЬ(1+G8^2+$P$17^2)))

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

8. В ячейку L8 вводится формула (140), которая в строке формул принимает следующий вид

=2*$L$7/ПИ()*(ATAN($P$13/(C8*КОРЕНЬ(1+C8^2+$P$13^2)))+ +(C8*$P$13*(1+$P$13^2+2*C8^2))/((C8^2+$P$13^2)*(1+C8^2)*

*КОРЕНЬ(1+C8^2+$P$13^2)))

9.В ячейку М7 вводится формула =L7+H7+I7-J7-K7. Данная формула суммирует результаты вычислений напряжений по оси, проходящей через угловые точки подошв фиктивных фундаментов и через центр подошвы рассчитываемого фундамента.

10.С помощью мастера диаграмм строится шаблон графика (рис. 7). После запуска приложения и ввода необходимых данных с помощью пользовательских форм в столбцах В7:В27 и L7:M27 появятся значения z,

σzp' и σzp и мгновенно появится и сам график.

Шаблон второго листа Схема2Таб разрабатывается также как и шаблон листа Схема1Таб. В ячейку М7 вводится формула =L7+H7-I7- J7+K7, которая также суммирует результаты вычислений напряжений по оси, проходящей через угловые точки подошв фиктивных фундаментов и через центр подошвы рассчитываемого фундамента.

В качестве примера на рис. 9 приведены исходные данные и результаты расчета напряжений по глубине через каждые 0,84 м для случая первой схемы взаимного расположения фундаментов.

19

Рис. 9. Пример определения напряжений с учетом влияния соседнего фундамента.

График распределения напряжений по глубине можно вывести на экран, щелкнув на кнопке «Показать график».

Код главной процедуры Main с двумя вспомогательными процедурами Raschet и Ochistka имеет следующий вид

Sub Main() InputsForm.Show IshDannForm.Show RazmFundForm.Show

Otnosh = Dlina/Shirina: Otnosh1 = Dlina1/Shirina1: Otnosh2 = Dlina2/Shirina2

Otnosh3 = Dlina3/Shirina3: Otnosh4 = Dlina4/Shirina4 Call Ochistka

If Shema = 1 Then

With Worksheets("Таблица1")

.Visible = True

.Activate

End With Call Raschet

Else

With Worksheets("Таблица2")

.Visible = True

.Activate

End With Call Raschet

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]