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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    76,03 Кб
  • Опубликовано:
    2013-08-07
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

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

Государственное образовательное учреждение высшего профессионального образования

САМАРСКИЙ ГОСУДАРСТВЕННЫЙ

АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ

имени академика С.П. КОРОЛЕВА

Кафедра летательных аппаратов






ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе

по информатике

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










Самара 2010

ЗАДАНИЕ

Разработать программу, моделирующую движение сложного механизма.

1. Программу разрабатывать в среде Delphi 7 с учетом дополнительных требований для курсовых работ специальности 230301.

2.      Представить электронную версию программы.

.        Оформить пояснительную записку.

.        Программу и пояснительную записку разрабатывать в соответствии с требованиями и рекомендациями следующих методических указаний

·  Информатика: Метод. Указания и контрольные задания (курсовая работа) для студентов заочной формы обучения / Самар.гос.аэрокосм. ун-т; Сост. В.И.Куренков. Самара 1999. 23 с.

·        СТО СГАУ 02068410-004-2007 «Общие требования к оформлению учебных текстовых документов.» Самара, 2007.

·        «Построение, изложение и оформление программных документов» / Автор-составитель В.Д.Еленев, Куйбышев. авиац. ин-т. Куйбышев, 1987.

РЕФЕРАТ

Пояснительная записка 30 страниц, 7 рисунков, 3 источника.

ДВИЖЕНИЕ МЕХАНИЗМА, СКОРОСТЬ, УСКОРЕНИЕ, УРАВНЕНИЕ ДВИЖЕНИЯ СИСТЕМЫ ТЕЛ, МОДЕЛИРОВАНИЕ, УРАВНЕНИЕ ПРЯМОЙ

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

СОДЕРЖАНИЕ

Введение

. Математическая часть задачи

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

. Руководство пользователя

Заключение

Список использованных источников

Приложение А

Введение

 

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

алгоритм программное моделирование ускорение точка

1. Математическое описание

Основной целью программы является вычисление скоростей и ускорений всех подвижных. Вычисление происходит после каждого такта сдвига по координатам точек в предыдущий, настоящий и следующий момент времени.

Уравнение движения ведущего звена:


Уравнения движения точки C:


Уравнение движения точки D:


Условия корректности задания координат:

1.

BCкритическое вычисляется при крайнем значении координат точки B, исходя из положения точки C

2.

CEкритическое вычисляется при крайнем положении точки В, исходя из положения точки С


CEкритическое2 вычисляется при втором крайнем положении точки В.

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

Общий алгоритм работы программы представлен в виде блок-схемы на рисунке 2.

Рисунок  - Блок-схема программы

3. Руководство пользователя

Первое, что нужно сделать пользователю - это проверить задание длин соединений между элементами системы на корректность. Далее нажать на кнопку «запуск». Программа отображает правильное движение механизма, соответствуя законам физики. Длины соединений изменяются с помощью специальных полей, расположенных внизу формы.

Рисунок 3 - Окно программы


Зависимость v(t) и a(t)

Рисунок  - зависимость скорости и ускорения точки B от t


Рисунок  - зависимость скорости и ускорения точки C от t

Рисунок 10 - зависимость скорости и ускорения точки D от t

Заключение

При выполнении курсовой работы разработана математическая модель работы сложного механизма. Даная программа также рассчитывает скорости и ускорения точек B, C, D с помощью численного дифференцирования.

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

Список использованных источников

1. Фаронов, В.В. Delphi 7. Справочное пособие.  Санкт-Петербург "Питер" 2006.

. Архангельский, А.Я. Язык Pascal и основы программирования в Delphi. Учебное пособие. Москва «Бином» 2004


ПРИЛОЖЕНИЕ А

unit Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, Math, Menus, ComCtrls, Spin;= record,y:integer;;= class(TForm): TImage;: TTimer;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TMainMenu;: TMenuItem;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TTrackBar;: TTrackBar;: TPanel;: TLabel;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TButton;: TMenuItem;: TMenuItem;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TSpinEdit;: TLabel;N1Click(Sender: TObject);Timer1Timer(Sender: TObject);FormActivate(Sender: TObject);MoveB;MoveAB;MoveBC;MoveCD;MoveDE;DrawC;Reset;Dif(f1,f2:integer; var fp:real);DifDif(f1,f2,f3:integer; var fpp:real);Count(c,e:pnt; var d:pnt);DrawD(c,e:Pnt);TrackBar1Change(Sender: TObject);TrackBar2Change(Sender: TObject);L1Change(Sender: TObject);L3Change(Sender: TObject);L5Change(Sender: TObject);L2Change(Sender: TObject);L7Change(Sender: TObject);L4Change(Sender: TObject);DxChange(Sender: TObject);L6Change(Sender: TObject);ExChange(Sender: TObject);EyChange(Sender: TObject);Button1Click(Sender: TObject);Check(var ErrMsg:byte);ShowErr(ErrMsg:byte);Redraw;N2Click(Sender: TObject);N3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;,dy,bc,ab,cd,de: integer;,dt,h:real;,B,C,D,E,b_old,b_next,c_old,c_next: Pnt;:byte;Unit2;

{$R *.dfm}TForm1.N1Click(Sender: TObject);N1.Caption='Запуск' then begin.Caption:='Остановка';.Enabled:=false;.Enabled:=false;begin.Caption:='Запуск';.Enabled:=true;.Enabled:=true;.Canvas.Pen.Color:=ClWhite;;.Canvas.Pen.Color:=ClBlack;;;.Enabled:=Timer1.Enabled xor true;;TForm1.N2Click(Sender: TObject);.Close;;TForm1.N3Click(Sender: TObject);.ShowModal;;TForm1.MoveB;fp:real;.Canvas.Pen.Color:=ClWhite;.Canvas.Ellipse(b.x-10,b.y-10,b.x+10,b.y+10);.Canvas.Pen.Color:=clBlack;_old.x:=a.x+round(ab*cos(t-dt));

b_old.y:=a.y-round(ab*sin(t-dt)); //Сохранение точки со старыми координатами.x:=a.x+round(ab*cos(t)); //параметрическое задание ф-ции окружности

b.y:=a.y-round(ab*sin(t));_next.x:=a.x+round(ab*cos(t+dt));_next.y:=a.y-round(ab*sin(t+dt));(b_next.x,b_old.x,fp);.Caption:='Скорость точки B по Х = '+floattostr(fp);(b_next.y,b_old.y,fp);.Caption:='Скорость точки B по Y = '+floattostr(-fp);(b_next.x,b.x,b_old.x,fp);.Caption:='Ускорение точки B по Х = '+floattostr(fp);(b_next.y,b.y,b_old.y,fp);.Caption:='Ускорение точки B по Y = '+floattostr(-fp);.Canvas.Ellipse(b.x-10,b.y-10,b.x+10,b.y+10);;TForm1.MoveAB;.Canvas.MoveTo(a.x,a.y);.Canvas.LineTo(b.x,b.y);;TForm1.MoveBC;.Canvas.MoveTo(c.x,c.y);.Canvas.LineTo(b.x,b.y);;TForm1.MoveCD;.Canvas.MoveTo(c.x,c.y);.Canvas.LineTo(d.x,d.y);;TForm1.MoveDE;.Canvas.MoveTo(e.x,e.y);.Canvas.LineTo(d.x,d.y);;TForm1.Redraw;.Canvas.Ellipse(a.x-10,a.y-10,a.x+10,a.y+10);.Canvas.Rectangle(a.x-10,a.y+5,a.x+10,a.y+10);.Canvas.Ellipse(b.x-10,b.y-10,b.x+10,b.y+10);.Canvas.Rectangle(c.x-20,c.y-10,c.x+20,c.y+10);.Canvas.Ellipse(c.x-10,c.y-10,c.x+10,c.y+10);.Canvas.MoveTo(10,c.y+9);.Canvas.LineTo(img.Width-10,c.y+9);.Canvas.Ellipse(e.x-10,e.y-10,e.x+10,e.y+10);.Canvas.Ellipse(d.x-10,d.y-10,d.x+10,d.y+10);;;;;;TForm1.L1Change(Sender: TObject);.Enabled:=false;;TForm1.L3Change(Sender: TObject);.Enabled:=false;;TForm1.Check(var ErrMsg: Byte);bb,temp_ac,temp_bc,ac,ce:integer;,temp_alpha,alpha:real;_temp,b_temp,d_temp:pnt;:=0;:=round(sqrt(sqr(b.x-a.x)+sqr(b.y-a.y)));:=round(sqrt(sqr(b.x-c.x)+sqr(b.y-c.y)));:=round(sqrt(sqr(d.x-c.x)+sqr(d.y-c.y)));:=round(sqrt(sqr(d.x-e.x)+sqr(d.y-e.y)));_ac:=bc-ab;_temp.y:=c.y;_alpha:=(c.y-a.y)/temp_ac;(temp_alpha>=-1) and (temp_alpha<=1) then begin:=arccos(temp_alpha);_temp.x:=round(temp_ac*sin(alpha))+a.x;:=(a.y-c.y)/(a.x-c.x);:=round(a.y-k*a.x);_temp.x:=a.x-round(ab*sin(alpha));_temp.y:=a.y-round(ab*cos(alpha));:=round(sqrt(sqr(c_temp.x-a.x)+sqr(c_temp.y-a.y)));_bc:=round(sqrt(sqr(b_temp.x-c_temp.x)+sqr(b_temp.y-c_temp.y)));temp_bc>bc then ErrMsg:=1;:=round(sqrt(sqr(c_temp.x-e.x)+sqr(c_temp.y-e.y)));de+cd<=ce then ErrMsg:=2;(a.y+ab>=c.y-10) or (a.x-ab<=10) then ErrMsg:=3;_temp.x:=a.x+round(sqrt(sqr(ab+bc)-sqr(c.y-a.y)));

// Count(c_temp,e,d_temp);

// if (d_temp.x>img.Width) or (d_temp.y>c.y) then ErrMsg:=4;:=round(sqrt(sqr(c_temp.x-e.x)+sqr(c_temp.y-e.y)));de+cd<=ce then ErrMsg:=5;:=1;;TForm1.ShowErr(ErrMsg: Byte);s:string; ErrMsg of

: s:='Ошибка задания координат точек A, B, C. Необходимо уменьшить отрезок AB, либо увеличить BC.';

: s:='Ошибка задания координат точек C, D, E. Необходимо увеличить отрезки CD и DE.';

: s:='Ошибка задания координат точки A и B. Слишком большой радиус вращения или слишком маленькое расстояние до краев области моделирования.';

: s:='Ошибка задания координат точек A, B, С или E. Точка D выходит за границы области моделирования в процессе движения системы.';

: s:='Ошибка задания координат точек. Отрезок ВС слишком большой.';

end;(s,mtError,[mbOk],0);;TForm1.Button1Click(Sender: TObject);alpha:real;.Canvas.Pen.Color:=clWhite;;.y:=c.y-L5.Value;.x:=a.x+L1.Value;.y:=a.y-L6.Value;:=L2.Value;:=arccos((L6.Value+L5.Value)/bc);.x:=b.x+round(bc*sin(alpha));:=l3.Value;:=L4.Value;.x:=c.x+L7.Value;.y:=c.y-L8.Value;(c,e,d);.Canvas.Pen.Color:=clBlack;;(ErrMsg);ErrMsg<>0 then ShowErr(ErrMsg) else begin.Enabled:=true;;;TForm1.L5Change(Sender: TObject);.Enabled:=false;;TForm1.L2Change(Sender: TObject);.Enabled:=false;;TForm1.Count(c,e:pnt; var d:pnt);CE,CF,DF:integer;,alpha,g:real;:=round(sqrt(sqr(c.x-e.x)+sqr(c.y-e.y)));:=arcsin((e.x-c.x)/CE);:=arccos((sqr(ce)+sqr(cd)-sqr(de))/(2*ce*cd));:=pi/2-beta-alpha;:=round(CD*cos(g));:=round(CD*sin(g));.x:=c.x+CF;.y:=c.y-DF;;TForm1.L7Change(Sender: TObject);.Enabled:=false;;TForm1.L4Change(Sender: TObject);.Enabled:=false;;TForm1.DrawD(c,e:Pnt);d_old,d_next:pnt;:real;.Canvas.Pen.Color:=clWhite;.Canvas.Ellipse(d.x-10,d.y-10,d.x+10,d.y+10);(c_old,e,d_old);(c,e,d);(c_next,e,d_next);(d_next.x,d_old.x,fp);

Label4.Caption:='Скорость точки D по Х = '+floattostr(fp);

Dif(d_next.y,d_old.y,fp);.Caption:='Скорость точки D по Y = '+floattostr(-fp);(d_next.x,d.x,d_old.x,fp);

Label9.Caption:='Ускорение точки D по Х = '+floattostr(fp);

DifDif(d_next.y,d.y,d_old.y,fp);.Caption:='Ускорение точки D по Y = '+floattostr(-fp);.Canvas.Pen.Color:=clBlack;.Canvas.Ellipse(d.x-10,d.y-10,d.x+10,d.y+10);;TForm1.DxChange(Sender: TObject);.Enabled:=false;;TForm1.L6Change(Sender: TObject);.Enabled:=false;;TForm1.ExChange(Sender: TObject);.Enabled:=false;;TForm1.EyChange(Sender: TObject);.Enabled:=false;;TForm1.Timer1Timer(Sender: TObject);:=t+dt;t=2*pi then t:=0;

img.Canvas.Pen.Color:=clWhite; //изменение цвета кисти на белый; //удаление отрезков со старыми координатами;;;; //Сдвиг ведущей точки B; //Сдвиг точки С(c,e); //Вычисление точки D.Canvas.Pen.Color:=clBlack; //Изменение цвет кисти на черный.Canvas.Ellipse(a.x-10,a.y-10,a.x+10,a.y+10);

img.Canvas.Rectangle(a.x-10,a.y+5,a.x+10,a.y+10);.Canvas.MoveTo(10,c.y+9);.Canvas.LineTo(img.Width-10,c.y+9);.Canvas.Ellipse(e.x-10,e.y-10,e.x+10,e.y+10);

MoveAB; //Прорисовка отрезков с новыми координатами

MoveBC;;;;TForm1.TrackBar1Change(Sender: TObject);.Interval:=TrackBar1.Position*10;;TForm1.TrackBar2Change(Sender: TObject);:=TrackBar2.Position/100;;TForm1.DrawC;fp:real;.Canvas.Pen.Color:=clWhite;.Canvas.Rectangle(c.x-20,c.y-10,c.x+20,c.y+10);.Canvas.Ellipse(c.x-10,c.y-10,c.x+10,c.y+10);_old.x:=b_old.x+round(sqrt(sqr(bc)-sqr(c.y-b_old.y)));.x:=b.x+round(sqrt(sqr(bc)-sqr(c.y-b.y)));_next.x:=b_next.x+round(sqrt(sqr(bc)-sqr(c.y-b_next.y)));_old.y:=c.y;_next.y:=c.y;(c_next.x,c_old.x,fp);.Caption:='Скорость точки С = '+floattostr(fp);(c_next.x,c.x,c_old.x,fp);.Caption:='Ускорение точки C = '+floattostr(fp);.Canvas.Pen.Color:=clBlack;.Canvas.Rectangle(c.x-20,c.y-10,c.x+20,c.y+10);.Canvas.Ellipse(c.x-10,c.y-10,c.x+10,c.y+10);;TForm1.Dif(f1,f2:integer; var fp:real);:=(f1-f2)/2*h;;TForm1.DifDif(f1: Integer; f2: Integer; f3: Integer; var fpp: Real);:=(f1-2*f2+f3)/sqr(h);;TForm1.FormActivate(Sender: TObject);;;TForm1.Reset;:=1;:=0.01;:=Timer1.Interval/100;.x:=280; b.y:=120;.x:=200; a.y:=200;.x:=500; c.y:=330;.x:=650; d.y:=270;.x:=530; e.y:=100;

// Ax.Value:=a.x;

// Ay.Value:=a.y;

// Bx.Value:=b.x;

// By.Value:=b.y;

// Cx.Value:=c.x;

// Cy.Value:=c.y;

// Dx.Value:=d.x;

// Dy.Value:=d.y;

// Ex.Value:=e.x;

// ab:=round(sqrt(sqr(b.x-a.x)+sqr(b.y-a.y)));:=round(sqrt(sqr(b.x-c.x)+sqr(b.y-c.y)));:=round(sqrt(sqr(d.x-c.x)+sqr(d.y-c.y)));:=round(sqrt(sqr(d.x-e.x)+sqr(d.y-e.y)));

// CD:=220;

// DE:=150;:=100;

// Redraw;

Похожие работы на - Моделирование работы сложного механизма

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!