- •А.В. Алёшкин
- •Топологическая матрица
- •Матрица индексов
- •Измененные с троки матрицы жесткости при наложении граничных условий
- •4. Формирование матриц жесткости и масс в глобальной системе координат для рамы
- •Координатная матрица узлов рамы
- •Топологическая матрица элементов рамы
- •Матрица индексов перемещений узлов рамы
- •6. Задания для выполнения лабораторных работ
- •6.1 Исследование вращения твердого тела вокруг неподвижной оси
- •6.2Исследование равновесия твердого тела
- •6.3 Расчет плоской фермы методом конечных элементов
- •Вариант 2
- •6.5 Расчет плоского потенциального течения жидкости методом конечных элементов
- •Литература
6. Задания для выполнения лабораторных работ
С целью приобретения практических навыков решения прикладных задач на компьютере предлагается ряд расчетных заданий по программированию математической модели механической системы. Первые задания являются подготовительными, они посвящены исследованию движения тела с одной степенью свободы (6.1) и определению условий равновесия статически определимой системы сил (6.2).
Последующие задания, в которых используются освоенные по первым двум работам приемы, отражается применение метода конечных элементов к исследованию плоской фермы (6.3), плоской рамы (6.4) и плоского течения потенциальной жидкости (6.5).
По каждому заданию на основе текста программ в ПРИЛОЖЕНИЯХ 1,2,3,4,5 студенту необходимо создать собственный проект в среде программирования Visualstudio, в имени пространства имен, которого указать свою фамилию. Все обработчики событий, связанные с элементами управления создаются через конструктор среды разработки, так чтобы заголовки методов появились во всех служебных файлах проекта. Внутренние части методов (обработчиков событий) можно скопировать из программ, представленных в приложениях.
Исходные данные для расчетов определяется вариантом задания. Рекомендуется запустить программу с исходными данными рассмотренных примеров, а затем уже решить свои варианты заданий.
6.1 Исследование вращения твердого тела вокруг неподвижной оси
К твердому телу, которое вращается вокруг неподвижной оси z(Рис. 6.1) приложен вращающий моменти момент сил сопротивления.
Рис. 6.1 Исследование вращательного движения твердого тела.
Тело имеет момент инерции относительно оси вращения и в начальный момент времениугловая скорость равна нулю. После начала движения в момент временипроисходит отключение двигателя и прекращение действия моментаТребуется определить законы изменения угловой скорости и построить графики на промежуткеи отдо момента остановки:. Кроме того необходимо построить график зависимости угловой скоростиот времени отдо моментапри отсутствии момента сил сопротивления. Три графика представить в отчете вместе с табулированными значениями: времени, момента внешних сил относительно оси вращения и угловой скорости тела.
Таблица 6.1
Варианты заданий
№ варианта | ||||
1 |
50 |
2 | ||
2 |
50 |
4 | ||
3 |
50 |
5 | ||
4 |
50 |
10 | ||
5 |
150 |
10 | ||
6 |
150 |
4 | ||
7 |
150 |
4 | ||
8 |
100 |
4 | ||
9 |
50 |
10 | ||
10 |
50 |
5 | ||
11 |
100 |
2 | ||
12 |
50 |
5 |
Содержание отчета
1. Постановка задачи для конкретного варианта.
2. Текст клиентского кода программы.
3. Результаты выполнения программы, где зафиксирована нижняя часть таблицы с расчетными характеристиками.
Для составления дифференциального уравнения движения необходимо воспользоваться теоремой об изменении кинетического момента механической системы в проекции на ось вращения.
Пример выполнения задания и методические указания
Дано:
Решение:
По теореме об изменении кинетического момента в проекции на ось z, запишем
(6.1)
где - кинетический момент тела в проекции на ось вращения.
Для получения первой зависимости угловой скорости от времени, когда действуют два момента, умножим левую и правую части выражения (6.1) на и проинтегрируем на промежутке.
Подставляя значения моментов сил и, внеся момент инерции под знак интеграла, получим
(6.2)
Найти значение определенного интеграла означает вычисление площади под интегральной кривой. В методе трапеций определяют шаг интегрирования и в точках деления вычисляют значения (i=0,…,N) площадь фигуры вычисляют по выражению:
Рис. 6.2. Метод трапеций
В программе вычислении интеграла (6.2) реализуется накоплением конечной суммы Iny, которое происходит в цикле с добавлением площади очередной трапеции с высотой равной шагуh1 и основаниями Y[i],Y[i-1] (ПРИЛОЖЕНИЕ 4):
for(i=1;i<n+1;i++)
{
Iny[i] = Iny[i - 1] + (Y[i] + Y[i - 1]) / 2 * h1;
}
где Y[i] , Y[i - 1] – элементы массива в котом хранятся значения подынтегрального выражения. Все промежуточные значения угловой скорости на каждом шаге заносим в таблицу результаов вычисления по выражению:
(6.3)
Таблица полученных значений интеграла с переменным верхним пределом служит основой для построения первого графика – разгона тела до угловой скорости . Это конечное значениеявляется начальным условием для второго участка движения, когда тело замедляет вращение под действием только момента:
(6.4)
(6.5)
По графику и таблице находим время до остановки тела . Уточняем диапазон построения для второго графика и пересчитываем значения интеграла (6.5) на промежутке. Третий график строим для случая отсутствия сопротивления:
(6.6)
(6.7)
на промежутке .
Для вычисления трех разных случаев движения используем одну процедуру вычисления интеграла, с тремя исходными функциями, которые по выбору пользователем радио-кнопки вызываются в эту процедуру как параметр-функция. Реализуя данный подход, используем класс языка C#, называемый делегатом. Выражение функции зависит в программе от выбора пользователем одного из вариантов радио-кнопки. Поэтому функция передается в процедуру вычисления интеграла с помощью делегата.
Делегат исполняет роль процедурного типа, когда процедура или функция используется как параметр в другой процедуре. При создании делегата указывается имя метода и набор параметров соответствующих типов.
Объявление делегата:
[модификаторы] delegate<тип><имя>(<параметры>);
где [модификаторы] – модификаторы доступа к делегату ( как правило public),
<имя> - уникальный идентификатор,
<тип> - тип возвращаемого результата,
<параметры> - формальные параметры вызова.
Например:
public delegate Double y(Double x1, Double x2);
Описание экземпляра делегата:
y fx;
Создание экземпляра и инициализация функцией fx1(x1) с помощью умалчиваемого конструктора:
fx = new y(fx1);
Обращение к процедуре с параметром функцией fx (экземпляром делегата):
Integral(a, b, h, fx);
Причем в заголовке процедуры при ее описании используется делегат y:
void Integral(double a1, double b1, double h1, y f)
{
...
Y[i] = f(T[i],Iny[i-1]);
...
}
Функции которые передаются в процедуру Integralпосредством экземпляра делегата fx имеют такую же сигнатуру, что и делегат, например для выражения (6.3):
double fx1(Double x1, Double x2)
{
if (x2 < 300)
{
return 600 - 15 * x1-2*x1*x1;
}
else
{
return 300-30*x1-2*x1*x1;
}
Делегат представляет собой разновидность класса: будучи типом он определяет сигнатуру функции. Любая функция, соответствующая этой сигнатуре может использоваться в качестве параметра конструктора класса-делегата при создании экземпляра-делегата: fx = new y(fx1);.
Элементы управления и экранная форма программы представлены на рис. 6.3.
Рис. 6.3. Элементы управления в конструкторе проекта.
Текст клиентского кода программы вычисления определённого интеграла с переменным верхним пределом, которая предоставляет пользователю выбор подынтегрального выражения приведен в ПРИЛОЖЕНИИ 4.
Результаты выполнения программы представлены на Рис. 6.4, 6.5, 6.6:
Рис. 6.4. Закон изменения угловой скорости на промежутке .
Рис. 6.5. Закон изменения угловой скорости отдо момента остановки.
Рис. 6.6 Зависимость угловой скорости от времени отдо моментапри отсутствии момента сил сопротивления.