Vba_расчеты
.pdfПрограммный код для расчета указанных характеристик имеет вид:
Mx = 0: My = 0 |
' Вычисление координат центра масс: |
For j = 1 To K |
|
Mx = Mx + (Xs(i- 1) - Xs(i)) * (Ys(i - 1) ^ 2 + Ys(i - 1) * Ys(i) + Ys(i) ^ 2) / 6 My = My + (Ys(i - 1) - Ys(i)) * (Xs(i - 1) ^ 2 + Xs(i - 1) * Xs(i) + Xs(i) ^ 2) / 6
Next i |
|
|
Ycm= Mx / S: Cells(2, 12) = Ycm |
' |
запись Ycm в ячейку K2 |
Xcm = -My / S: Cells(2, 11) = Xcm |
' |
запись Ycm в ячейку L2 |
Jx = 0: Jy = 0 |
' Вычисление главных моментов инерции: |
|
For i = 1 To K |
|
|
Jx = Jx + Abs((Ys(j) ^ 2 + Ys(i - 1) ^ 2) * (Ys(i) + Ys(i - 1)) * (Xs(i) - Xs(i - 1))) /12 Jy = Jy + Abs((Xs(j) ^ 2 + Xs(j - 1) ^ 2) * (Xs(j) + Xs(j - 1)) * (Ys(j) - Ys(j - 1))) /12
Next i |
|
|
Jсx = Jx - S * Xzt ^ 2: Cells(2, 13) = Jсx |
' |
запись Jcx в ячейку M2 |
Jсy = Jy - S * Yzt ^ 2: Cells(2, 14) = Jсy |
' |
запись Jcy в ячейку N2 |
End Sub |
|
|
После получения в ячейках J2:N2 параметров сечения (см. рис. 3.8)
|
J |
K |
L |
M |
N |
|
|
|
|
|
|
1 |
S= |
Xcm= |
Ycm= |
Jcx= |
Jcy= |
|
|
|
|
|
|
2 |
229,4382 |
8,873324 |
8,873324 |
18637,51 |
18637,51 |
|
|
|
|
|
|
Рис. 3.8.
можно показать на диаграмме точку-центр масс. Для этого следует, выделив через контекстное меню легенду, выбрать данные, добавить имя (Ycm, Xcm) и адреса ячеек K2, L2 с координатами и нажать OK, а затем, выделив только имя легенды (Ycm, Xcm), изменить тип диаграммы на точечная с маркерами – на диаграмме должна отобразиться в виде маркера точка – центр «масс».
51
Пример 3.5. Профиль храповика (см. рис. 3.9) задан координатами (см. далее) опорных точек. Построить по ним профиль, приняв tg 0.1 1; вычислить площадь контура храповика и координаты центра тяжести сечения.
Для решения |
данного примера разместим ис- |
|
ходные данные |
так, чтобы точки, по которым |
|
строится плавная сплайн-кривая, находились на |
|
|
краю области данных, например, начинали дан- |
Рис. 3.9 |
ные, как показано на рис. 3.10. В ячейках D2:E2 запишем составляющие вектора касательной, показывающего направление кривой в еѐ начальной точке. В концевой точке профиля (в ячейках D6:E6) зададим вектор касательной как при построении четверти окружности. А коэф-
фициенты сплайн-кривой профиля будем вычислять по точкам в ячей- |
|||||||||||||||
ках A2:B6 и этим векторам - для чего необходимо задать в программе |
|||||||||||||||
Kod=−11. В остальном, операторы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
вычисления координат профиля не |
|
|
|
|
A |
|
B |
|
|
C |
|
|
D |
|
E |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
x |
|
y |
|
|
t |
|
|
px |
|
py |
|
отличаются от записанных в про- |
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
цедуре предыдущего примера. |
|
2 |
|
0 |
|
|
9 |
|
|
|
-1 |
-0,1 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Xs, Ys – координаты точек сплайна |
|
3 |
|
-4 |
|
|
4 |
|
|
|
|
|
|
|
|
также размещаются в ячейках диа- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
0 |
|
|
0 |
|
|
|
|
|
|
|
||
пазона G2:H32 (над ними в G1:H1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
4 |
|
|
4 |
|
|
|
|
|
|
|
||
можно указать имена массивов Xs, |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
0 |
|
|
8 |
|
|
|
-1,172 |
0 |
||||
Ys). Но кривая профиля не замкну- |
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
та. Чтобы еѐ замкнуть, введѐм |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
7 |
|
0 |
|
|
9 |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
вслед за последней строкой рас- |
|
|
|
|
|
|
Рис. 3.10. |
|
|
||||||
считанных точек строку со значе- |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ниями 0 и 9 – координатами начальной точки (вместо этого можно было, жертвуя именами массивов, записать 0 и 8 в ячейки G1:H1). Теперь, с учѐтом последней точки, можно представить контур на точечной диаграмме, соединив его точки прямыми линиями, и вычислить площадь внутри полученного замкнутого многоугольника (контура) по формуле S 0.5 iK1 xi 1 yi xi yi 1 , где K – номер конечной точки, совпадаю-
52
щей с начальной (i=0 – нулевой) точкой. Для данного случая K=M+1, и площадь вычисляется как в предыдущем примере:
S = 0 |
' Вычисление площади круга: |
|
For i = 1 To M |
|
|
S = S + Xs(i - 1) * Ys(i) - Xs(i) * Ys(i - 1) |
|
|
Next i |
|
|
S = 0.5 * Abs(S): |
Cells(2, 10) = S |
' Запись значение площади а ячейку J2 |
Расчѐт проводился при M=30. VBA-код и результаты расчѐта см. в файле Пример_3_5.xlsm папки Examples, упомянутой в приложении.
3.5.Задачи
1.Профиль штампованной детали («стаканчика») показан на рис. 3.11. Изобразить профиль на диаграмме и
записать |
вычисленную |
Рис. 3.11. |
|
величину |
объѐма |
||
|
«стаканчика» в ячейку листа Excel.
2. |
Размеры L, H, R, d профиля, изображѐнного |
|
|
на рис. 3.12, заданны в ячейках диапазона A2:D2. |
|
||
Изобразить на диаграмме профиль заданных раз- |
|
||
меров и записать в ячейку E2 величину площади |
|
||
профиля. |
|
||
3. |
Размеры L, H, R, d профиля, изображѐнного |
|
|
на рис. 3.13, заданны в ячейках диапазона A2:D2. |
Рис. 3.12. |
||
Изобразить на диаграмме профиль заданных раз- |
|||
|
|||
меров и записать в ячейку E2 величину площади |
|
||
профиля. |
|
||
4. |
Размеры L, H, R, d сечения зуба рейки, изо- |
|
|
бражѐнного на рис. 3.14, заданны в ячейках диапа- |
|
||
зона A2:D2. Изобразить на диаграмме сечение зуба |
|
53 |
Рис. 3.13. |
|
заданных размеров и записать в ячейку E2 величину площади сечения зуба рейки.
Рис. 3.14 |
Рис. 3.15. |
Рис. 3.16. |
5.Размеры h и b профиля, изображѐнного на рис. 3.15, заданны в ячейках диапазона A2:B2. Изобразить на диаграмме профиль заданных размеров и записать в ячейку E2 величину площади профиля.
6.Размеры r, R и h профиля сечения кулачка, изображѐнного на рис. 3.16, заданны в ячейках диапазона A2:C2. Изобразить на диаграмме сечение профиля заданных размеров, вычислить и записать в ячейку D2 величину площади сечения профиля кулачка.
7.Цилиндрическая часть матрицы
штампа (см. рис. 3.17) имеет высоту H и диаметр D. Координаты криволинейной части профиля матрицы заданы в таблице 3.1. Изобразить на точечной диаграмме контур мат-
рицы, вычислить объѐм матрицы, а также площадь поверхности, задан-
ной криволинейной частью профиля. |
|
|
Таблица 3.1 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
-200 |
-183 |
-127 |
-48 |
0 |
|
48 |
127 |
183 |
200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y |
|
0 |
63 |
110 |
132 |
133 |
|
132 |
110 |
63 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
8. |
|
Цилиндрическая часть пуансона (см. |
|
|
|
|
рис. 3.18) имеет высоту H. координаты |
|
профиля нецилиндрической части заданы |
|
в таблице 3.1. Представить на точечной |
|
диаграмме контур пуансона и вычислить |
|
его объѐм, а также площадь поверхности |
|
нецилиндрической части. |
Рис. 3.18. |
|
|
54 |
|
9. Изобразить на точечной диаграмме контур детали, показанной на рис. 3.19; вычислить площадь фигуры, ограниченной контуром, и координаты центра тяжести фигуры. Указание. Представить контур сплайн-кривой, разбив сплайн-кривую на большое число отрезков.
R 50
150
60°
R 50 100
R 50
R 50
10. Контур сечения лопатки турбины (см. рис. 3.20) задан координатами точек (см. таблицу 3.2). Приблизить кривую контура параметрическим сплайном. Изобразить контур на диаграмме и записать вычисленную величину площади сечения и координаты центра тяжести сечения в ячейки листа Excel.
Рис. 3.20.
Рис. 3.19.
|
Таблица 3.2 |
|
|
|
|
x |
|
y |
|
|
|
236 |
|
27 |
|
|
|
157 |
|
54 |
|
|
|
90 |
|
95 |
|
|
|
56 |
|
142 |
|
|
|
50 |
|
196 |
|
|
|
69 |
|
233 |
|
|
|
90 |
|
245 |
|
|
|
105 |
|
228 |
|
|
|
109 |
|
194 |
|
|
|
121 |
|
149 |
|
|
|
149 |
|
106 |
|
|
|
190 |
|
66 |
|
|
|
241 |
|
37 |
|
|
|
55
4. Приложение. Состав вспомогательных программных средств.
Вспомогательные программные средства, из числа описанных выше, могут непосредственно использоваться при решении в Excel задач. Для этого их надо предварительно поместить, например, в папку C:\Program Files\VBA_Excel (как это сделано в лабораториях университета) и затем подключать при решении задач.
Состав программных средств:
1.IOmas.bas – модуль с процедурами ввод-вывод массивов, описанными в разделе 1.1.
2.GaussMethod.bas – модуль с макросами для изучения метода Гаусса, разобранными в разделе 1.2.
3.Math.bas – модуль с декларациями библиотечных процедур (метода Гаусса и сплайн-интерполяции) и функцией xCdGauss, определѐнной пользователем для решения СЛАУ (описанной в разделе 1.3).
4.Math32.dll – dll-библиотека с кодами процедур метода Гаусса и сплайн-интерполяции).
5.Maxmin.bas – модуль с функциями Max, Min, Fmt (формат, в которой положительные числа выводятся с пробелом в позиции знака).
6.Examples – папка с примерами, приведѐнными в пособии.
Модули подключаются для использования командами реактора VBA:
File, Import File… .
Процедуры библиотеки Math32.dll подключаются по ссылкам в модуле Math.bas на папку с названной библиотекой.
56
Рекомендуемая литература
1.Слепцова Л. Д. Программирование на VBA в Microsoft Office 2010
– М.: Диалектика, 2010, -431с.
2.Лобанов А.С., Туманова М.Б. Решение задач на языке Visual Basic for Applications: учебное пособие. –М.; МГТУ «МАМИ», 2009., -
90с.
3.Антомони В.И., Архипов В.Н., Любин А.Н., Тихомиров В.Н. Программирование на VBA а Microsoft Office: сборник лабораторных работ. –М.; МГТУ «МАМИ», 2011., -152с.
4.Калядин В.И., Макаров А.И. Основы работы на персональном компьютере. Использование программных средств при проектировании автомобильных конструкций. –М.; МГТУ «МАМИ»,
2010., -85с.
57
СОДЕРЖАНИЕ |
|
Введение ..................................................................................................... |
3 |
1. Действия с массивами в Excel и в VBA......................................... |
3 |
1.1. Процедуры ввода-вывода массивов .............................................. |
3 |
1.2. Изучение в Excel метода Гаусса .................................................... |
9 |
1.3. Применение в Excel процедуры метода Гаусса ......................... |
16 |
1.4. Задачи ............................................................................................. |
22 |
1.5. Решение переопределѐнной системы n линейных уравнений |
|
с m неизвестными (n > m)........................................................... |
25 |
1.6. Задачи .............................................................................................. |
28 |
2. Решение в Excel нелинейного уравнения .................................... |
31 |
2.1. Встроенные и дополнительные средства решения ................... |
31 |
2.2. Задачи .............................................................................................. |
33 |
3. Представление данных в виде графиков и диаграмм .............. |
36 |
3.1. Построение графиков ................................................................... |
36 |
3.2. Изображение плоских параметрических кривых ...................... |
37 |
3.3. Задачи ............................................................................................. |
39 |
3.4. Использование сплайн-функций и сплайн-кривых................... |
42 |
3.5. Задачи ............................................................................................. |
53 |
4. Приложение. Состав вспомогательных программных средств ..... |
56 |
Рекомендуемая литература ................................................................. |
57 |
58
Учебное издание
Калядин Вячеслав Иванович
Решение задач в Excel на VBA.
Применение программных средств в проектировании автомобильных конструкций.
Под редакцией авторов
Оригинал-макет подготовлен редакционно-издательским отделом МГТУ «МАМИ»
По тематическому плану внутривузовских изданий учебной литературы на 2011 г.
Подписано в печать 21.12.11 Формат 90x60 1/16 Бумага 80 г/м2 Гарнитура «Таймс». Ризография. Уч. печ. л. 3,5 .
Тираж 100 экз. Заказ № 233-11
МГТУ «МАМИ» 107023, г. Москва, Б.Семѐновская ул. 38
59