Курсовая работа (т): Моделирование работы плоского механизма

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Моделирование работы плоского механизма

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Южно-Уральский государственный университет»

Факультет «Приборостроительный»

Кафедра «Информационно-измерительная техника»







ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ

по дисциплине «Информатика»

МОДЕЛИРОВАНИЕ РАБОТЫ ПЛОСКОГО МЕХАНИЗМА


Автор проекта

студент группы

Я.С. Загоскин




Челябинск 2014

Аннотация

Загоскин Я.С. Моделирование работы плоского механизма. Пояснительная записка к курсовой работе. - Челябинск: ЮУрГУ, ПС-136, 26с., 3 ил., 1 табл., библиогр. список - 1 наим.

Цель курсовой работы: создание оболочки моделирования работы кривошипно-шатунного механизма.

Задачи курсовой работы:

·    описание параметров механизма;

·        исследование кинематики механизма;

·        представление схемы и анимации движения механизма;

·        построение графика движения основных точек механизма;

·        представление таблицы с результатами расчетов.

Для решения поставленных задач была рассмотрена, изучена и подробно описана схема работы кривошипно-шатунного механизма, приведенная в задании, и его математическая модель.

Курсовая работа выполнена с помощью методов объектно-ориентированного программирования в среде Microsoft Visual Studio 2013 C++.

Оглавление

Аннотация

Оглавление

Введение

1. Математическая модель механизма

1.1 Кинематика точки B

1.2 Кинематика точек C и M

2. Алгоритм программы

3. Код программы

4. Результаты расчетов

Заключение

Библиографический список

Введение

Цель курсовой работы - создание программы, моделирующей движение кривошипно-шатунного механизма.

Согласно заданию в работе необходимо представить: параметры механизма; схему, анимацию движения механизма; график движения основных точек механизма; таблицу результатов.

Для достижения поставленной цели необходимо решить следующие задачи:

·    проанализировать схему данного механизма и исходные данные;

·        составить математическую модель механизма;

·        создать проект оболочки моделирования механизма в среде Microsoft Visual Studio 2013 C++.

Представленная в техническом задании схема механизма позволяет выделить основные его части:

·    шарнир цилиндрический A, неподвижный, закрепленный;

·        кривошип AB;

·        шарнир цилиндрический B;

·        шатун BC;

·        шарнир цилиндрический C;

·        кривошип CD;

·        шарнир цилиндрически D, неподвижный, закрепленный.

Из-за того, что все звенья механизма связаны между собой цилиндрическими шарнирами, механизм совершает движение только в плоскости - XoY.

Из условия задания видно, что кривошип AB имеет положительную угловую скорость, поэтому он вращается против часовой стрелки.

1. Математическая модель механизма

Для построения математической модели кривошипно-шатунного механизма необходимо и достаточно изучить движение его основных трех точек: B, C и M.

Исходными данными для исследования кинематики точек являются: координаты точек A и D, длины кривошипов AB и CD и шатуна BC, длина отрезка BM, угловая скорость кривошипа AB.

1.1 Кинематика точки B


Из рисунка 1:

Рисунок 1 - Схема механизма


Из ∆ABH:

Таким образом, мы имеем:


1.2 Кинематика точек C и M


Для исследования кинематики точек C и M определим коэффициенты:


Используя рассчитанные коэффициенты, определим координаты точки C:


Координаты точки M:


Также была поставлена задача о скорости движения точки M.

Проекция скорости точки на ось-это производная по времени от соответствующей координаты:


Таким образом, получаем следующие зависимости:


2. Алгоритм программы

Приведем алгоритм программы:

1)  Создаем оконное приложение. В подпрограммы #pragma once -описываем элементы оконного приложения: Label, Timer, TextBox, PictureBox, Button, DataGridView. Приводим их к нужному нам виду, заносим в них исходные значения и т.д.

2)      В подпрограмме #pragma endregion объявляем все переменные и классы, используемые в требующихся функциях.

)        Описываем функцию void Calculation1(), в которую записывается математическая модель кривошипно-шатунного механизма;

)        Описываем функцию void Animation1(), которая реализует анимацию движения механизма.

)        Добавляем обработчик событий private: System::Void button1_Click, который при нажатии на кнопку «Старт» включает секундомер и активирует функцию ToFile1();

6)      private: System::Voidbutton2_Click - обработчик событий, который при нажатии на кнопку «Стоп» останавливает секундомер;

7)      private: System::Voidtimer1_Tick - обработчик событий, который активирует функцииCalculation1(), Animation1(), Graphic(), Table();

)        voidAnimation1() - функция, которая реализует анимацию движения механизма;

9)      voidGraphic() - функция, которая отвечает за построение графиков движения основных точек механизма;

10) private: System::VoidForm1_Load - обработчик событий, который при запуске программы активирует инструменты прорисовки анимации и графиков движения точек механизма;

11) voidVelocity() - функция, вычисляющая скорость точки M;

12)    voidTable() - функция, заполняющая таблицу (элемент DataGridView) искомыми данными;

13)    voidToFile1() - функция записи результатов в отдельный файл формата .txt

3. Код программы


#pragma onceKursovaya {namespace System;namespace System::ComponentModel;namespace System::Collections;namespace System::Windows::Forms;namespace System::Data;namespace System::Drawing;

/// <summary>

/// Сводка для Form1

///

/// Внимание! При изменении имени этого класса необходимо также изменить

/// свойство имени файла ресурсов ("ResourceFileName") для средства компиляции управляемого ресурса,

/// связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае,

/// конструкторы не смогут правильно работать с локализованными

/// ресурсами, сопоставленными данной форме.

/// </summary>ref class Form1 : public System::Windows::Forms::Form

{:(void)

{();

//

//TODO: добавьтекодконструктора

//

}:

/// <summary>

/// Освободить все используемые ресурсы.

/// </summary>

~Form1()

{(components)

{components;

}

}: : System::Windows::Forms::PictureBox^ pictureBox1;: : System::Windows::Forms::Timer^ timer6;: System::Windows::Forms::PictureBox^ pictureBox2;: System::Windows::Forms::DataGridView^ dataGridView1;: System::Windows::Forms::Label^ label105;: System::Windows::Forms::Label^ label88;: System::Windows::Forms::Label^ label89;: System::Windows::Forms::TextBox^ textBox41;: System::Windows::Forms::Label^ label90;: System::Windows::Forms::Label^ label91;: System::Windows::Forms::TextBox^ textBox42;: System::Windows::Forms::Button^ button11;: System::Windows::Forms::Label^ label92;: System::Windows::Forms::Label^ label93;: System::Windows::Forms::Label^ label94;: System::Windows::Forms::Label^ label95;: System::Windows::Forms::Label^ label96;: System::Windows::Forms::Label^ label97;: System::Windows::Forms::Label^ label98;: System::Windows::Forms::Label^ label99;: System::Windows::Forms::Label^ label100;: System::Windows::Forms::Label^ label101;: System::Windows::Forms::Label^ label102;: System::Windows::Forms::Label^ label103;: System::Windows::Forms::Label^ label104;: System::Windows::Forms::TextBox^ textBox43;: System::Windows::Forms::TextBox^ textBox44;: System::Windows::Forms::TextBox^ textBox45;: System::Windows::Forms::TextBox^ textBox46;: System::Windows::Forms::TextBox^ textBox47;: System::Windows::Forms::TextBox^ textBox48;: System::Windows::Forms::Button^ button12;: System::Windows::Forms::TextBox^ textBox1;: System::Windows::Forms::Label^ label1;: System::Windows::Forms::Label^ label2;: : : : System::ComponentModel::IContainer^ components;

private:

/// <summary>

/// Требуется переменная конструктора.

/// </summary>

#pragma region Windows Form Designer generated code

/// <summary>

/// Обязательный метод для поддержки конструктора - не изменяйте

/// содержимое данного метода при помощи редактора кода.

{>components = (gcnew System::ComponentModel::Container());>pictureBox1 = (gcnew System::Windows::Forms::PictureBox());>timer6 = (gcnew System::Windows::Forms::Timer(this->components));>pictureBox2 = (gcnew System::Windows::Forms::PictureBox());>dataGridView1 = (gcnew System::Windows::Forms::DataGridView());>label105 = (gcnew System::Windows::Forms::Label());>label88 = (gcnew System::Windows::Forms::Label());>label89 = (gcnew System::Windows::Forms::Label());>textBox41 = (gcnew System::Windows::Forms::TextBox());>label90 = (gcnew System::Windows::Forms::Label());>label91 = (gcnew System::Windows::Forms::Label());>textBox42 = (gcnew System::Windows::Forms::TextBox());>button11 = (gcnew System::Windows::Forms::Button());>label92 = (gcnew System::Windows::Forms::Label());>label93 = (gcnew System::Windows::Forms::Label());>label94 = (gcnew System::Windows::Forms::Label());>label95 = (gcnew System::Windows::Forms::Label());>label96 = (gcnew System::Windows::Forms::Label());>label97 = (gcnew System::Windows::Forms::Label());>label98 = (gcnew System::Windows::Forms::Label());>label99 = (gcnew System::Windows::Forms::Label());>label100 = (gcnew System::Windows::Forms::Label());>label101 = (gcnew System::Windows::Forms::Label());>label102 = (gcnew System::Windows::Forms::Label());>label103 = (gcnew System::Windows::Forms::Label());>label104 = (gcnew System::Windows::Forms::Label());>textBox43 = (gcnew System::Windows::Forms::TextBox());>textBox44 = (gcnew System::Windows::Forms::TextBox());>textBox45 = (gcnew System::Windows::Forms::TextBox());>textBox46 = (gcnew System::Windows::Forms::TextBox());>textBox47 = (gcnew System::Windows::Forms::TextBox());>textBox48 = (gcnew System::Windows::Forms::TextBox());>button12 = (gcnew System::Windows::Forms::Button());>textBox1 = (gcnew System::Windows::Forms::TextBox());>label1 = (gcnew System::Windows::Forms::Label());>label2 = (gcnew System::Windows::Forms::Label());

(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox1))->BeginInit();

(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox2))->BeginInit();

(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->dataGridView1))->BeginInit();>SuspendLayout();

//

// pictureBox1

// >pictureBox1->BackColor = System::Drawing::SystemColors::Window;>pictureBox1->Location = System::Drawing::Point(511, 12);>pictureBox1->Name = L"pictureBox1";>pictureBox1->Size = System::Drawing::Size(588, 354);>pictureBox1->SizeMode = System::Windows::Forms::PictureBoxSizeMode::Zoom;>pictureBox1->TabIndex = 1;>pictureBox1->TabStop = false;

//

// timer6

// >timer6->Interval = 50;>timer6->Tick += gcnew System::EventHandler(this, &Form1::timer6_Tick);

//

// pictureBox2

// >pictureBox2->BackColor = System::Drawing::SystemColors::Window;>pictureBox2->Location = System::Drawing::Point(511, 391);>pictureBox2->Name = L"pictureBox2";>pictureBox2->Size = System::Drawing::Size(588, 354);>pictureBox2->TabIndex = 2;>pictureBox2->TabStop = false;

//

// dataGridView1

// >dataGridView1->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize;>dataGridView1->Location = System::Drawing::Point(12, 391);>dataGridView1->Name = L"dataGridView1";>dataGridView1->Size = System::Drawing::Size(480, 354);>dataGridView1->TabIndex = 3;

//

// label105

// >label105->AutoSize = true;>label105->Font = (gcnew System::Drawing::Font(L"Symbol", 8.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,_cast<System::Byte>(2)));>label105->Location = System::Drawing::Point(38, 255);>label105->Name = L"label105";>label105->Size = System::Drawing::Size(14, 13);>label105->TabIndex = 197;>label105->Text = L"a";

//

// label88

// >label88->AutoSize = true;>label88->Location = System::Drawing::Point(229, 256);>label88->Name = L"label88";>label88->Size = System::Drawing::Size(36, 13);>label88->TabIndex = 193;>label88->Text = L", град";

//

// label89

// >label89->AutoSize = true;>label89->Location = System::Drawing::Point(9, 255);>label89->Name = L"label89";>label89->Size = System::Drawing::Size(32, 13);>label89->TabIndex = 192;>label89->Text = L"Угол";

//

// textBox41

// >textBox41->Location = System::Drawing::Point(135, 248);>textBox41->Margin = System::Windows::Forms::Padding(3, 10, 3, 3);>textBox41->Name = L"textBox41";>textBox41->Size = System::Drawing::Size(80, 20);>textBox41->TabIndex = 191;>textBox41->Text = L"-20";

//

// label90

// >label90->AutoSize = true;>label90->Location = System::Drawing::Point(229, 223);>label90->Name = L"label90";>label90->Size = System::Drawing::Size(27, 13);>label90->TabIndex = 190;>label90->Text = L", см";

//

// label91

// >label91->AutoSize = true;>label91->Location = System::Drawing::Point(9, 223);>label91->Name = L"label91";>label91->Size = System::Drawing::Size(83, 13);>label91->TabIndex = 189;>label91->Text = L"Координата xD";

//

// textBox42

// >textBox42->Location = System::Drawing::Point(135, 215);>textBox42->Margin = System::Windows::Forms::Padding(3, 10, 3, 3);>textBox42->Name = L"textBox42";>textBox42->Size = System::Drawing::Size(80, 20);>textBox42->TabIndex = 188;>textBox42->Text = L"2";

//

// button11

// >button11->Location = System::Drawing::Point(312, 103);>button11->Name = L"button11";>button11->Size = System::Drawing::Size(115, 33);>button11->TabIndex = 187;>button11->Text = L"Стоп";>button11->UseVisualStyleBackColor = true;>button11->Click += gcnew System::EventHandler(this, &Form1::button11_Click);

//

// label92

// >label92->AutoSize = true;>label92->Location = System::Drawing::Point(229, 189);>label92->Name = L"label92";>label92->Size = System::Drawing::Size(30, 13);>label92->TabIndex = 186;>label92->Text = L", 1/с";

//

// label93

// >label93->AutoSize = true;>label93->Location = System::Drawing::Point(229, 156);>label93->Name = L"label93";>label93->Size = System::Drawing::Size(27, 13);>label93->TabIndex = 185;>label93->Text = L", см";

//

// label94

// >label94->AutoSize = true;>label94->Location = System::Drawing::Point(229, 123);>label94->Name = L"label94";>label94->Size = System::Drawing::Size(27, 13);>label94->TabIndex = 184;>label94->Text = L", см";

//

// label95

// >label95->AutoSize = true;>label95->Location = System::Drawing::Point(229, 90);>label95->Name = L"label95";>label95->Size = System::Drawing::Size(27, 13);>label95->TabIndex = 183;>label95->Text = L", см";

//

// label96

// >label96->AutoSize = true;>label96->Location = System::Drawing::Point(229, 57);>label96->Name = L"label96";>label96->Size = System::Drawing::Size(27, 13);>label96->TabIndex = 182;>label96->Text = L", см";

//

// label97

// >label97->AutoSize = true;>label97->Location = System::Drawing::Point(229, 21);>label97->Name = L"label97";>label97->Size = System::Drawing::Size(27, 13);>label97->TabIndex = 181;>label97->Text = L", см";

//

// label98

// >label98->AutoSize = true;>label98->Font = (gcnew System::Drawing::Font(L"Symbol", 8.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,_cast<System::Byte>(2)));>label98->Location = System::Drawing::Point(106, 190);>label98->Name = L"label98";>label98->Size = System::Drawing::Size(15, 13);>label98->TabIndex = 180;>label98->Text = L"w";

//

// label99

// >label99->AutoSize = true;>label99->Location = System::Drawing::Point(9, 189);>label99->Name = L"label99";>label99->Size = System::Drawing::Size(100, 13);>label99->TabIndex = 179;>label99->Text = L"Угловая скорость";

//

// label100

// >label100->AutoSize = true;>label100->Location = System::Drawing::Point(9, 156);>label100->Name = L"label100";>label100->Size = System::Drawing::Size(82, 13);>label100->TabIndex = 178;>label100->Text = L"Координата yA";

//

// label101

// >label101->AutoSize = true;>label101->Location = System::Drawing::Point(9, 123);>label101->Name = L"label101";>label101->Size = System::Drawing::Size(82, 13);>label101->TabIndex = 177;>label101->Text = L"Координата xA";

// label102

// >label102->AutoSize = true;>label102->Location = System::Drawing::Point(9, 90);>label102->Name = L"label102";>label102->Size = System::Drawing::Size(59, 13);>label102->TabIndex = 176;>label102->Text = L"Длина BM";

//

// label103

// >label103->AutoSize = true;>label103->Location = System::Drawing::Point(9, 57);>label103->Name = L"label103";>label103->Size = System::Drawing::Size(57, 13);>label103->TabIndex = 175;>label103->Text = L"Длина BC";

//

// label104

// >label104->AutoSize = true;>label104->Location = System::Drawing::Point(9, 24);>label104->Name = L"label104";>label104->Size = System::Drawing::Size(57, 13);>label104->TabIndex = 174;>label104->Text = L"Длина AB";

Источник: https://www.bibliofond.ru/detail.aspx?id=864812