- •Министерство образования республики беларусь учреждение образования «барановичский государственный университет»
- •Оглавление
- •Введение
- •Постановка задачи
- •Математическая модель задачи.
- •Алгоритм решения задачи
- •Текст программы в средах Delphi и MathCad
- •Распечатка результатов
- •Графическое представление результатов
- •Анализ результатов
- •Заключение
- •Список используемой литературы
-
Распечатка результатов
Рисунок 7.1 - MathCad
Рисунок 7.2 - Delphi
-
Графическое представление результатов
Рисунок 8.1 – Графическое отображение результатов в среде MathCad
Рисунок 8.2 – Результаты Delphi
-
Анализ результатов
В ходе выполнения расчетов получили общие графики времени ускорения , скорости в обеих средах (рис 9.1). Проанализировав их видим, что графики совпадает, что говорит о том, что и в среде Delphi, и в среде MathCad все неизвестные были найдены верно.
Рисунок 9.1 – Результаты Delphi
Разгон
i=1 ф=0,00 w=0,00 e=5,30 t=0,00
i=2 ф=0,02 w=0,52 e=5,33 t=0,10
i=3 ф=0,05 w=0,73 e=5,38 t=0,14
i=4 ф=0,07 w=0,90 e=5,40 t=0,17
i=5 ф=0,10 w=1,04 e=5,41 t=0,19
i=6 ф=0,12 w=1,16 e=5,42 t=0,22
i=7 ф=0,15 w=1,27 e=5,43 t=0,24
i=8 ф=0,17 w=1,37 e=5,43 t=0,26
i=9 ф=0,20 w=1,47 e=5,44 t=0,27
i=10 ф=0,22 w=1,56 e=5,44 t=0,29
i=11 ф=0,25 w=1,64 e=5,45 t=0,31
i=12 ф=0,27 w=1,73 e=5,45 t=0,32
Tp=T[N+1]=0,33
Торможение
фт=0,43
i=13 ф=0,30 w=1,80 e=-3,80 t=0,33
i=14 ф=0,34 w=1,73 e=-3,80 t=0,35
i=15 ф=0,37 w=1,65 e=-3,80 t=0,38
i=16 ф=0,41 w=1,56 e=-3,80 t=0,40
i=17 ф=0,44 w=1,47 e=-3,80 t=0,42
i=18 ф=0,48 w=1,38 e=-3,80 t=0,45
i=19 ф=0,51 w=1,27 e=-3,80 t=0,47
i=20 ф=0,55 w=1,16 e=-3,80 t=0,50
i=21 ф=0,59 w=1,04 e=-3,80 t=0,53
i=22 ф=0,62 w=0,90 e=-3,80 t=0,57
i=23 ф=0,66 w=0,74 e=-3,80 t=0,62
i=24 ф=0,69 w=0,52 e=-3,80 t=0,67
i=25 ф=0,73 w=0,00 e=-3,80 t=0,81
Tт=0,47
Заключение
В ходе выполнения курсовой работы разработали программу для определения параметров вращательного движения вала. Также определили эти параметры с помощью программного средства Mathcad. Были построены графики зависимости угла поворота от времени, ускорения и скорости.
В результате проделанной работы видно, что результаты расчета соответствуют исследуемому процессу:
-
скорость вращения вала в конце участка торможения равно нулю;
-
ускорение при разгоне имеет положительное значение, так как вал совершает ускоренное движение;
-
ускорение при торможении имеет отрицательное значение, так как вал совершает замедленное движение;
-
в точке перехода от ускоренного движения к замедленному значение скорости максимально;
функция времени является монотонно возрастающей.
Список используемой литературы
-
Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ.-
Петербург, 2003 г.
-
Макаров Е.Г. Инженерные расчеты в MathCad. Учебный курс. – СПб.:
Питер, 2003 г.
-
Марков, Е.П. Программирование в Delphi 7 / П.Г. Дарахвелидае, Е.П.Марков— СПб.: БХВ-Петербург, 2003 г. — 784 с: ил.
-
Наранович О.И., Скобля С.Г. Информатика: методические указания и
задания к лабораторным работам для студентов 2-го курса
дневной формы обучения специальностей 40 01 02, 36 01 03, 36 01 01. Часть 3. –Барановичи: БарГУ, 2005.
-
Плис А.И.Сливина Н.А. Mathcad математический практикум. –
Москва: Москва “Финансы и статистика”, 2003 г.
-
Фаронов, В.В. Программирование на языке высокого уровня:
Учебник для ВУЗов / В.В. Фаронов – СПб. : Питер, 2006 г. – 640 с.: ил.
ПРИЛОЖЕНИЕ
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs,Math,Chart, XPMan;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit5: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Label6: TLabel;
Edit6: TEdit;
Button3: TButton;
Chart1: TChart;
Series1: TLineSeries;
Series2: TLineSeries;
Series3: TLineSeries;
XPManifest1: TXPManifest;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
// переменные объявленые глобально
Jo: double;
Mo: double;
Mc: double;
fip: double;
N: integer;
c: double;
//----------------
fi: array[1..100] of double; //угол поворота
w: array[1..100] of double; // угловая скорость
wcp: double; // средняя скорость на отрезке
t: array[1..100] of double; // время
e: array[1..100] of double; // ускорение
int: double; // значение интеграла
Tn: double; // быстродействие
dfi: double; // шаг угла
fit: double; // полный угол торможения
implementation
{$R *.dfm}
function M(fi:real):real;
begin
c:=0.4;
M := Mo+Exp(fi*ln(c))+sqrt(fi);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Application.Terminate;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
tmp: double;
begin
Memo1.Clear;
Memo1.Lines.Add('Разгон');
// считывание переменныъ из едитов
Jo := StrToFloat(Edit1.Text);
Mo := StrToFloat(Edit2.Text);
Mc := StrToFloat(Edit3.Text);
fip := StrToFloat(Edit5.Text);
N := StrToInt(Edit6.Text);
// расчет шага
dfi := fip/N;
// первое положение
fi[1] := 0;
w[1] := 0;
t[1] := 0;
e[1] := (M(fi[1])- Mc)/Jo;
// положения со 2 и до N+1
for i:=2 to N+1 do
begin
fi[i] := fi[i-1] + dfi;
int := (M(fi[i])-Mc+M(fi[i-1])-Mc)/2*dfi;
w[i] := sqrt(2/Jo*(Jo*sqr(w[i-1])/2+int));
wcp := (w[i]+w[i-1])/2;
t[i] := t[i-1]+dfi/wcp;
e[i] := (w[i]-w[i-1])/(t[i]-t[i-1]);
end;
fit := Jo*sqr(w[N+1])/(2*Mc);
e[N+1] := -Mc/Jo;
dfi := fit/N;
for i:=1 to N do
Memo1.Lines.Add('i='+IntToStr(i)+' ф='+FloatToStrF(fi[i],ffFixed,5,2)
+' w='+FloatToStrF(w[i],ffFixed,5,2)+' e='+FloatToStrF(e[i],ffFixed,5,2)
+' t='+FloatToStrF(t[i],ffFixed,5,2));
Tn := t[N+1];
Memo1.Lines.Add('Tp=T[N+1]='+FloatToStrF(Tn,ffFixed,5,2));
// торможение
Memo1.Lines.Add('Торможение');
Memo1.Lines.Add('фт='+FloatToStrF(fit,ffFixed,5,2));
// шаги торможения с N+2 до 2N+1
for i:=N+2 to 2*N+1 do
begin
fi[i] := fi[i-1]+dfi;
tmp := 2/Jo*(Jo*sqr(w[i-1])/2-Mc*dfi);
if tmp<0 then tmp:=0;
w[i] := sqrt(tmp);
wcp := (w[i]+w[i-1])/2;
t[i] := t[i-1]+(fi[i]-fi[i-1])/wcp;
e[i] := (w[i]-w[i-1])/(t[i]-t[i-1]);
end;
for i:=N+1 to 2*N+1 do
Memo1.Lines.Add('i='+IntToStr(i)+' ф='+FloatToStrF(fi[i],ffFixed,5,2)
+' w='+FloatToStrF(w[i],ffFixed,5,2)+' e='+FloatToStrF(e[i],ffFixed,5,2)
+' t='+FloatToStrF(t[i],ffFixed,5,2));
Tn := t[2*N+1]-t[N+1];
Memo1.Lines.Add('Tт='+FloatToStrF(Tn,ffFixed,5,2));
Button3.Enabled := true;
end;
procedure TForm1.Button3Click(Sender: TObject);
var i: integer;
begin
Chart1.BottomAxis.Minimum := -0.1;
Chart1.BottomAxis.Maximum := fi[2*N+1]+0.1;
Chart1.LeftAxis.Minimum := e[2*N+1]-0.1;
Chart1.LeftAxis.Maximum := e[1] + 0.1;
for i:=1 to 2*N+1 do
begin
Series1.AddXY(fi[i],w[i],'',clTeeColor);
Series2.AddXY(fi[i],e[i],'',clTeeColor);
Series3.AddXY(fi[i],t[i],'',clTeeColor);
end;
end;
end.