- •А.В. Алёшкин
- •Топологическая матрица
- •Матрица индексов
- •Измененные с троки матрицы жесткости при наложении граничных условий
- •4. Формирование матриц жесткости и масс в глобальной системе координат для рамы
- •Координатная матрица узлов рамы
- •Топологическая матрица элементов рамы
- •Матрица индексов перемещений узлов рамы
- •6.1 Исследование вращения твердого тела вокруг неподвижной оси
- •6. Задания для выполнения лабораторных работ
- •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 Зависимость
угловой скорости
от времени от
до момента
при отсутствии момента сил сопротивления
.




























