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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
II
II
sb
II
sb
II
sb
78,09,32,02,0 bh
i
2. В открывшемся подменю выберите Исходные данные.
3. В открывшемся диалоговом окне откройте вкладку Ряд и выделите ряд σz.
4. В окне Значения х вручную измените $A$8 на $A$10, а в окне Значения у - $B$8 на $B$10.
5. Щелкните левой клавишей мыши на кнопке ОК. В результате на графике σz не будут отражены значения вычислений в первых трех точках, т.е. значения, расположенные в ячейках В8 и В9.
На рисунке 1 в диапазоне B8:C24 показаны результаты вычислений
напряжений по формулам (1) и (3) и их графическое представление. Курсором выделена ячейка С8, а в строке формул - формула (4).
Пример 2. Требуется определить осадку фундамента механического
цеха с полным железобетонным каркасом с помощью электронной таблицы Excel. Фундаменты прямоугольные с размерами подошвы: L = 4,2 м; b = 3,9 м. Глубина заложения подошвы фундамента – d = 2,1 м. Среднее давление под подошвами фундаментов – Р = 340,1 кПа.
Грунтовые условия:
1 слой – насыпной слой толщиной 1,8 м:
= 17,9 кН/м3;
2 слой – песок средней крупности, средней плотности, насыщенный
водой толщиной 3,6 м:
= 19,5 кН/м3,
= 9,9 кН/м3, E= 32 МПа;
3 слой – песок пылеватый, средней плотности, насыщенный водой
толщиной 2,4 м:
= 19,7 кН/м3,
= 10,1 кН/м3, E= 21 МПа;
4 слой – супесь пластичная, залегающая до разведанной глубины 13 м:
= 19,9 кН/м3,
= 10,3 кН/м3, E= 14 МПа.
Уровень подземных вод расположен на глубине 2,7 м. Основание, начиная от подошвы фундамента, разбивается на
элементарные слои толщиной (рис. 2)
м.
Для 1, 5 и 8 элементарных слоев определяем средневзвешенные
значения удельного веса и модуля деформации грунтов: для 1-го слоя:



  кН/м3;
для 5-го слоя:






  кН/м3;
  кПа;
для 8-го слоя:






  кН/м3;
  кПа.
11
Насыпной
слой
Песок средней
крупности
Песок
пылеватый
Супесь пластичная Грунт
γ
II
= 17,9
кН/м
3
γ
II
= 19,5 кН/м
3
,
γ
sb
= 9,9 кН/м
3
,
Е = 32 МПа
γ
II
= 19,7 кН/м
3
,
γ
sb
= 10,1 кН/м
3
,
Е = 21 МПа
γ
II
= 19,9 кН/м
3
,
γ
sb
= 10,3 кН/м
3
,
Е = 14 МПа
Свойства
грунта
1 2 3
4 5
6
0
WL
7
σ
zp
σ
zq
d =2,11,8
3,6
2,4
2,7
0,6
0,78
0,18
0,78 0,78
0,18
0,6 0,78
0,78
0,54
0,24
0,78 0,78
0,78 0,78
0,78 0,78
8 9
10 11
12 13
14
Рис. 2. Схема для
определения
осадки
фундамента.
ссылки, а переменные zi, γi, Ei, σ
B8:I8 - переменные, в ячейку А8 – уровни, а в ячейку H25 – S= (суммарную осадку).
подведите указатель мыши к маркеру заполнения табличного курсора.
маркер заполнения, перетащите его до конца диапазона (до появления в рамке экранной подсказки числа 14), в которую нужно ввести последовательность целых чисел (уровни).
ячеек А9: А23 заполнится числами от 1 до 14.
клавишей мыши.
щелкните на ней левой клавишей мыши.
мыши.
Константы L, b, P, σ
zq,o
, σ
, hi, η и β оформляются как абсолютные
zp,o
zq,i
, ξi, σ
и Si – как относительные ссылки.
zp,i
Рабочий лист оформляется также как и в примере 1. В диапазон ячеек B5:I5 набираются константы, в диапазон ячеек
Далее выполните следующую последовательность действий.
1. Введите в ячейку А9 число 0. Активизируйте ячейку А9 и
2. Нажмите клавишу Ctrl и левую клавишу мыши. «Ухватившись» за
3. Отпустите сначала кнопку мыши, а затем клавишу Ctrl. Диапазон
4. Введите в ячейку B9 число 0.
12
5. Введите в ячейку B10 формулу: =B9+$G$5
6. Поместите указатель мыши на ячейку B10 и щелкните правой
7. В открывшемся подменю выберите команду Копировать и
8. Выделите диапазон ячеек B11:B23 и щелкните правой клавишей

 
 
22222
22
22
11
21
1
2

arctg
P
zp
bL
bz2
9. В открывшемся подменю выберите команду Вставить и щелкните на ней левой клавишей мыши. В результате в диапазоне ячеек B11:B23 также появятся результаты вычислений по введенной в них формуле.
10. Наберите в диапазон ячеек C10:C23 D10:D23 соответствующие значения удельного веса и модуля деформации грунтов основания по элементарным слоям.
11. Введите в ячейку E9 формулу:
=$E$5
а в ячейку E10 формулу:
=E9+C10*(B10-B9)
12. Поместите указатель мыши на ячейку E10 и щелкните правой клавишей мыши.
13. Далее повторите действия 7, 8 и 9 для диапазона ячеек E11:E23. В
результате в диапазоне ячеек E11:E23 также появятся результаты вычислений по введенной в них формуле.
14. Введите в ячейку F9 формулу:
=2*B9/$C$5
15. Поместите указатель мыши на ячейку F9 и щелкните правой клавишей мыши.
16. Далее повторите действия 7, 8 и 9 для диапазона ячеек F10:F23. В результате в диапазоне ячеек F10:F23 также появятся результаты вычислений по введенной в них формуле.
17. Введите в ячейку F9 формулу:
=$F$5
18. Выделите ячейку F10. Подведите указатель мыши к строке формул, активизируйте ее нажатием левой клавиши мыши и введите знак равенства. Наберите формулу для определения дополнительных вертикальных нормальных напряжений по глубине по оси, проходящей через центр подошвы фундамента
(5)
где
- отношение длины L к ширине b подошвы фундамента;
- относительная глубина расположения уровня, на которой
определяется напряжение; P - дополнительное вертикальное давление на основание. В строке формул формула (5) будет иметь следующий вид
=2*$F$5/ПИ()*(ATAN($H$5/(F10*КОРЕНЬ(1+F10^2+
+$H$5^2)))+F10*$H$5*(1+$H$5^2+2*F10^2)/((F10^2+ (6)
+$H$5^2)*(1+F10^2)*КОРЕНЬ(1+F10^2+$H$5^2)))
13
izqizp ,,
2,0
7,272,025
12,12,
zqzp
После окончания набора формулы щелкните левой клавишей мыши на кнопке Ввод (√) в строке формул. В выделенной ячейке появится результат вычислений по введенной в нее формуле, а сама формула останется в строке формул до тех пор, пока активна ячейка, в которую она введена.
19. Поместите указатель мыши на ячейку G10 и щелкните правой
клавишей мыши.
20. Далее повторите действия 7, 8 и 9 для диапазона ячеек G11: G23. В результате в диапазоне ячеек G11: G23 также появятся результаты вычислений по введенной в них формуле.
21. Введите в ячейку H9 формулу:
=0,2*E9
22. Поместите указатель мыши на ячейку H9 и щелкните правой клавишей мыши.
23. Далее повторите действия 7, 8 и 9 для диапазона ячеек H10: H23. В результате в диапазоне ячеек H10: H23 также появятся результаты вычислений по введенной в них формуле.
24. Введите в ячейку I10 формулу:
=$I$5*(G9+G10)/2*(B10-B9)/D10*100
25. Поместите указатель мыши на ячейку I10 и щелкните правой клавишей мыши.
26. Далее повторите действия 7, 8 и 9 для диапазона ячеек I11: I23. В результате в диапазоне ячеек I11: I23 также появятся результаты вычислений по введенной в них формуле.
Расчет основания фундамента по деформациям выполняется до
нижней границы сжимаемой толщи, где выполняется условие
.
Данное условие выполняется в пределах 12 элементарного слоя, т.е.
кПа.
В подобных случаях рекомендуется включать в расчетную осадку
основания фундамента и осадку этого элементарного слоя, которая не внесет существенных погрешностей в результаты расчета.
27. Введите в ячейку I25 формулу:
=СУММ(I10:I21)
28. После окончания набора формулы щелкните левой клавишей мыши на кнопке Ввод (√) в строке формул и в ячейке I25 появится величина суммарной осадки основания, равная 3,54 см. Таким образом, максимальная осадка основания фундамента, полученная с помощью электронной таблицы Excel, практически совпадает с результатом, полученным обычным способом и равным 3,55 см.
14
Рис. 3. Результаты определения осадки фундамента.
На рис. 3 показаны результаты вычисления напряжений по глубине
и осадки каждого элементарного слоя для фундамента с прямоугольной подошвой и графики изменения напряжений по оси фундамента с глубиной.
3. Базовые структуры языка VBA.
Базовыми структурами языка VBA являются процедуры, операторы
Dim и Public, окна ввода данных и вывода результатов и комментарии.
В VBA процедурами называются подпрограммы, макросы и
процедуры. Подпрограмма – это логические фрагменты кода, которые выполняют определенную задачу. Процедура содержит код, выполняющую также определенную задачу. При написании приложения (программы), как правило, следует создать основную управленческую процедуру, из которой по необходимости будут вызываться остальные вспомогательные процедуры или формы. Основную процедуру и вспомогательные процедуры можно располагать в пределах одного или более модулей.
Каждая процедура должна иметь собственное имя, например,
RaschetOsadki, которая, как правило, должна отражать назначение процедуры. Все процедуры должны начинаться с ключевого слова Sub и заканчиваться строкой End Sub. После ключевого слова Sub указывается название процедуры, и обязательно вводятся скобки, например
Sub RaschetOsadki ()
Операторы
End Sub
15
В скобках указываются аргументы процедуры. Если процедура не
требует аргументов, то в скобках ничего не указывается, но, тем не менее, они должны быть. В VBA, как правило, желательно заранее объявлять все переменные, которые будут использоваться в приложении. Если в диалоговом окне
Options (команда Tools→ Options) установить флажок Require Variable Declaration, то при создании модулей в начало модуля будет добавляться
строка Option Explicit, и в дальнейшем VBA будет требовать явного объявления всех переменных.
Если переменная используется в пределах одной процедуры, то для
ее объявления используется ключевое слово Dim. Такую переменную называют локальной и объявляют, как правило, в следующей строке после ключевого слова Sub и названия процедуры. Она доступна только в той процедуре, в которой объявлена. Локальные переменные в различных процедурах могут иметь одинаковые имена и существовать независимо друг от друга, так как значения этих переменных расположены в различных областях памяти. Если переменная используется в модуле из нескольких процедур и пользовательских форм (диалоговых окон), то для ее объявления используется ключевое слово Public. Такую переменную называют глобальной и объявляют перед ключевым словом Sub и названием главной процедуры, например
Public VidGrunta As Integer, Nagruzka As Single Sub Main ()
Dim Dlina, Shirina As Single, FormaPodosh As String Остальные операторы
End Sub
Если переменная объявлена как глобальная, то не нужно объявлять
переменную с таким же именем в процедуре с помощью ключевого слова
Dim.
Каждая переменная должна сопровождаться ключевым словом As и именем типа данных, например, переменной Dlina не будет определен тип данных именем Single, а будет определен тип данных Variant, принятый по умолчанию.
В приложениях для инженерных расчетов чаще всего используются следующие типы переменных:
- Integer – для хранения целых значений в диапазоне от -32768 до
32768;
- Long – для хранения больших целочисленных значений, выходящих
за пределы диапазона данных типа Integer;
- Single – для хранения значений с десятичными дробями;
- Double – для хранения значений с десятичными дробями с большей
точностью, чем обеспечивается в типе Single;
16
- Variant – универсальный тип, который предоставляет VBA
возможность автоматически определять тип переменной;
- String – для сохранения имен, например, фундамент, основание,
ленточный;
- Boolean – переменные этого типа принимают всего два значения:
True (Истина) или False (Ложь).
Любое приложение состоит из ввода данных, их обработки по
составленному коду и вывода результатов расчета.
Для вывода результатов обработки данных используется встроенная
функция MsgBox, которая может принимать один обязательный аргумент, указывающий сообщение, которое будет выводиться в диалоговом окне, и два не обязательных аргумента, например
MsgBox “Несущая способность основания равна “ & NesushSposob &
” кН”
MsgBox “Напряжение на глубине “ & z & ” м равно “ & Napryag & ”
кПа”
MsgBox “Осадка основания равна “ & Osadka & ” см”, “Суммарная
осадка”
MsgBox “Ширина подошвы фундамента равна “ & Shirina & ” м”,
vbInformation, “Размеры фундамента”
MsgBox “Напряжение на глубине “ & z & ” м с учетом влияния “ & _
“ соседнего фундамента составляет “ & Napryag & ” кПа”, vbInformation, “Напряжения”
В первом примере в окне сообщения выводится строка «Несущая
способность основания равна» и значение переменной NesushSposob в кН, т.е. строка сообщения состоит из трех строк: строки «Несущая способность основания равна», числовой переменной NesushSposob и строки «кН» - единицы измерения переменной. Во втором примере строка сообщения состоит из пяти строк: строки «Напряжение на глубине», числовой переменной z, строки «м равно», числовой переменной Napryag и строки «кПа». Заголовками окон сообщений будет Microsoft Excel. В третем примере второй аргумет содержит текст заголовка окна сообщения: «Суммарная осадка». В четвертом примере второй аргумент задается встроенной в VBA константой – vbInformation, которая отображает в окне сообщения пиктограмму со знаком i, а третий аргумент содержит текст заголовка: «Размеры фундамента». В пятом примере длинная строка сообщения разбивается на две строки, объединенные с помощью оператора конкатенации. Здесь добавляются пробелы до и после амперсанда, что является обязательным требованием в VBA.
17
Во всех примерах строка сообщения состоит из постоянной и переменной части строки. Для их объединения используется символ конкатенации, амперсанд (&), заключенный в пробелы.
Результаты обработки данных можно представлять в виде таблицы или в ином виде на отдельном листе электронной таблицы Excel.
Для ввода данных можно использовать как встроенную функцию InputBox, так и пользовательские формы.
Функция InputBox, как правило, используется в тех случаях, когда в приложении требутся вводить небольшое количество данных. Она может принимать одинь или два аргумента. Первый аргумент сообщает пользователю, что необходимо ввести в текстовое поле, который является обязательным. Второй аргумет – заголовок самого диалогового окна, который не обязательный. Если в функции InputBox не указывать второй аргумент, то будет использован заголовок Microsoft Excel. Кроме сообщения и заголовка данное диалоговое окно содержит кнопки ОК, Cancel(Отмена) и текстовое поле для ввода данных. В текстовое поле можно вводить как числовые, так и строковые данные, наример
Shirina = InputBox («Введите ширину подшвы», «Размеры фундамента»)
Davlenie = InputBox («Введите величину среднего давления на основание»)
VidGrunta = InputBox («Введите вид грунта основания», «Вид грунта»)
В первом и третем примерах заголовками диалоговых окон будут (Размеры фундамента) и (Вид грунта), а во втором примере – (Microsoft Excel). В текстовые поля первого и второго примеров вводятся числовые данные, например, 2.4 и 356, которые сохраняются соответственно в переменных Shirina и Davlenie. А в текстовое поле третего примера вводится строковое данное, например, связный, который также сохраняется в переменной VidGrunta.
Пользовательские формы являются основным способом ввода необходимых данных. Процесс создания пользовательской формы состоит из двух стадий. В первой стадии создается сама форма с необходимыми инструментами, а во второй стадии записывается код обработки событий, обеспечивающий правильную работу пользовательской формы.
Для создания пользовательской формы запустите редактор VBE и на панели инструментов Standart(Стандартная) выполните команду Insert→User Form (Вставка→Пользовательская форма). В левом верхнеем углу окна программы появится пустая пользовательская форма и панель элементов Toolbox с доступными элементами управления. Размеры
18
формы можно изменять обычным способом на необходимую величину. При подводе стрелки мыши к элементам управления появляются их названия, например, Label, TextBox, OptionButton, Frame, CommandButton. Каждый элемент управления обладает определенными функциональными возможностями, например:
Label – применяется для вывода описаний и сообщений; TextBox – для ввода числовых и строковых данных в текстовое поле; OptionButton – переключатели, используемые для выбора одного из
предлагаемых пользователю вариантов;
Frame – для группировки нескольких связанных друг с другом
переключателей или для обозначения типа данных;
CommandButton – командная кнопка, используемая для запуска или
остановки процедуры.
Добавление необходимых элементов управления на
пользовательскую форму осуществляется стандартным способом, а их расположение на форме выбирает пользователь по своему усмотрению.
Элементы управления являются объектами со своими конкретными
свойствами, значения которых представлены в правой колонке окна Properties редактора VBE. Названия самих свойств отображаются в левой колонке. Для того чтобы созданная форма выполняла требуемую задачу необходимо установить значения свойств всех элементов управления, используемых в данной форме.
Последовательность установки свойств элементов управления
рассмотрим на примере пользовательской формы (Пример Формы.xls), окончательный вариант которой представлен на рис. 5.
1. Для самой пользовательской формы. Как правило, название формы должен отражать его содержание.
Поэтому свойству Name в окне Properties устанавливаем имя IshodDannieForm вместо имени UserForm1, принятого по умолчанию (рис.
4). Свойство Name используется в ссылках на форму в коде VBA. Свойство Caption содержит название формы, отображаемое на экране. Поэтому значение UserForm1, принятое по умолчанию, изменяем на «Исходные данные необходимые для определения напряжений».
19
Рис. 4. Модель пользовательской формы.
2. Левая верхняя рамка (рис. 4). Она предназначена только для
группировки переключателей, обозначающих различные формы подошвы фундамента. Свойство Caption содержит название рамки, отображаемое на экране. Значение Frame1, принятое по умолчанию, изменяем на «форма подошвы фундамента».
3. Переключатели в левой верхней рамке. Каждая из четырех переключателей соответствует определенной форме подошвы фундамента, которую необходимо выбрать для дальнейшего расчета. Левый верхний переключатель соответствует прямоугольной форме подошвы. Значение OptionButton1 свойства Name изменяем на
PryamFund. Справа от переключателя расположен элемент управления Label, свойство Caption которого содержит название переключателя,
отображаемое на экране. Значение Label свойства Caption изменяем на «прямоугольная». Аналогично изменяем свойства Name и Caption для остальных трех переключателей, установив их в значения KvadrFund, LentFund, KrugFund, квадратная, ленточная и круглая.
4. Левая нижняя рамка (рис. 4). Она группирует текстовые поля, предназначенные для ввода размеров подошвы фундамента. Значение Frame свойства Caption, отображаемое на экране, изменяем на «размеры подошвы фундамента».
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]