Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка МКЭ.docx
Скачиваний:
100
Добавлен:
02.06.2015
Размер:
2.55 Mб
Скачать

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 Зависимость угловой скорости от времени отдо моментапри отсутствии момента сил сопротивления.