Математическое обозначение
|
Идентификатор
|
Описание
|
Jo
|
I0
|
Момент инерции
|
MД
|
Md
|
Движущий момент
|
MС
|
Mc
|
Момент сопротивления
|
Mо
|
M0
|
Начальный момент
|
С
|
c
|
Коэффициент
|
N
|
n
|
Количество участков
|
ω
|
w
|
Угловая скорость
|
ω1
|
W[1]
|
Начальное значение скорости
|
ωср
|
ws
|
Среднее значение скорости
|
t
|
t
|
Время
|
t1
|
t[1]
|
Начальное значение времени
|
ε
|
E
|
Ускорение
|
ε1
|
E[1]
|
Начальное ускорение
|
φ
|
f
|
Угол
|
φр
|
fp
|
Угол разгона
|
φ1
|
f[1]
|
Начальное значение угла поворота
|
Δφр
|
fpd
|
Элементарные участки при разгоне
|
φТ
|
ft
|
Угол торможения
|
ΔφТ
|
dft
|
Элементарные участки при торможении
|
Тр
|
Tp
|
Быстродействие на участке разгона
|
ТT
|
Tt
|
I
|
i
|
Счетчик
|
Int
|
int
|
Интеграл
|
. Текст программы в средах Delphi
и MathCad
var
Form1:
TForm1;
// переменные объявленые глобально
Jo: double;: double;: double;: double;: integer;: double;
//----------------: array[1..100] of double; //угол поворота: array[1..100] of double; // угловая
скорость
wcp: double; // средняя скорость на отрезке
t: array[1..100] of double; // время: array[1..100] of
double; // ускорение: double; // значение интеграла
Tn: double; // быстродействие
dfi: double; // шаг угла
fit: double; // полный угол торможения
function M(fi:real):real;:=0.4;:=
Mo+Exp(fi*ln(c))+sqrt(fi);;TForm1.Button1Click(Sender: TObject);i: integer;:
double;.Clear;.Lines.Add('Разгон');
// считывание переменныъ из едитов
Jo:= StrToFloat(Edit1.Text);
Mo:= StrToFloat(Edit2.Text);:= StrToFloat(Edit3.Text);:=
StrToFloat(Edit5.Text);:= 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[i]:= fi[i-1] + dfi;:=
(M(fi[i])-Mc+M(fi[i-1])-Mc)/2*dfi;[i]:= sqrt(2/Jo*(Jo*sqr(w[i-1])/2+int));:=
(w[i]+w[i-1])/2;[i]:= t[i-1]+dfi/wcp;[i]:= (w[i]-w[i-1])/(t[i]-t[i-1]);;:=
Jo*sqr(w[N+1])/(2*Mc);[N+1]:= -Mc/Jo;:= fit/N;i:=1 to N
do.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));:=
t[N+1];.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[i]:= fi[i-1]+dfi;:=
2/Jo*(Jo*sqr(w[i-1])/2-Mc*dfi);tmp<0 then tmp:=0;[i]:= sqrt(tmp);:=
(w[i]+w[i-1])/2;[i]:= t[i-1]+(fi[i]-fi[i-1])/wcp;[i]:= (w[i]-w[i-1])/(t[i]-t[i-1]);;i:=N+1
to 2*N+1 do.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));:=
t[2*N+1]-t[N+1];.Lines.Add('Tт='+FloatToStrF(Tn,ffFixed,5,2));.Enabled:=
true;;TForm1.Button3Click(Sender: TObject);i: integer;.BottomAxis.Minimum:=
-0.1;.BottomAxis.Maximum:= fi[2*N+1]+0.1;.LeftAxis.Minimum:=
e[2*N+1]-0.1;.LeftAxis.Maximum:= e[1] + 0.1;i:=1 to 2*N+1
do.AddXY(fi[i],w[i],'',clTeeColor);.AddXY(fi[i],e[i],'',clTeeColor);.AddXY(fi[i],t[i],'',clTeeColor);;
MathCad
6. Распечатка результатов
Рисунок 6.1 - MathCad
Рисунок 6.2 - Delphi
7. Графическое представление результатов
Рисунок 7.1 - Графическое отображение результатов в среде MathCad
Рисунок 7.2 - Результаты Delphi
8. Анализ результатов. Выводы
В ходе выполнения расчетов получили общие графики времени ускорения,
скорости в обеих средах (рис. 8.1). Проанализировав их видим, что графики
совпадает, что говорит о том, что и в среде Delphi, и в среде MathCad все неизвестные были найдены верно.
Рисунок 8.1 - Результаты Delphi
Разгон=1 ф=0,00 w=0,00 e=5,30 t=0,00=2 ф=0,02 w=0,52 e=5,33 t=0,10=3 ф=0,05 w=0,73 e=5,38 t=0,14=4 ф=0,07 w=0,90 e=5,40 t=0,17=5 ф=0,10 w=1,04 e=5,41 t=0,19=6 ф=0,12 w=1,16 e=5,42 t=0,22=7 ф=0,15 w=1,27 e=5,43 t=0,24=8 ф=0,17 w=1,37 e=5,43 t=0,26=9 ф=0,20 w=1,47 e=5,44 t=0,27=10 ф=0,22 w=1,56 e=5,44 t=0,29=11 ф=0,25 w=1,64 e=5,45 t=0,31=12 ф=0,27 w=1,73 e=5,45
t=0,32=T[N+1]=0,33
фт=0,43=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=15 ф=0,37 w=1,65 e=-3,80 t=0,38=16 ф=0,41 w=1,56 e=-3,80 t=0,40=17 ф=0,44 w=1,47 e=-3,80 t=0,42=18 ф=0,48 w=1,38 e=-3,80 t=0,45=19 ф=0,51 w=1,27 e=-3,80 t=0,47=20 ф=0,55 w=1,16 e=-3,80 t=0,50=21 ф=0,59 w=1,04 e=-3,80 t=0,53=22 ф=0,62 w=0,90 e=-3,80 t=0,57=23 ф=0,66 w=0,74 e=-3,80 t=0,62=24 ф=0,69 w=0,52 e=-3,80 t=0,67=25 ф=0,73 w=0,00 e=-3,80 t=0,81
Tт=0,47
Рисунок 8.2
Заключение
В ходе выполнения курсовой работы разработали программу для
определения параметров вращательного движения вала. Также определили эти
параметры с помощью программного средства Mathcad. Были построены графики
зависимости угла поворота от времени, ускорения и скорости.
В результате проделанной работы видно, что результаты расчета
соответствуют исследуемому процессу:
· скорость вращения вала в конце участка торможения
равно нулю;
· ускорение при разгоне имеет положительное
значение, так как вал совершает ускоренное движение;
· ускорение при торможении имеет
отрицательное значение, так как вал совершает замедленное движение;
· в точке перехода от ускоренного движения к
замедленному значение скорости максимально;
· функция времени является монотонно
возрастающей.
Список используемой литературы
1. Культин Н.Б. Основы программирования в Delphi 7. -
СПб.: БХВ .- Петербург, 2011 г.
. Макаров Е.Г. Инженерные расчеты в MathCad. Учебный
курс. - СПб.: Питер, 2003 г.
. Марков, Е.П. Программирование в Delphi / П.Г.
Дарахвелидае, Е.П. Марков. - СПб.: БХВ-Петербург, 2009 г. - 784 с: ил.
. Наранович О.И., Скобля С.Г. Информатика:
методические указания и задания к лабораторным работам для студентов 2-го курса
дневной формы обучения специальностей 40 01 02, 36 01
03, 36 01 01. Часть 3. - Барановичи: БарГУ, 2005.
5. Плис А.И., Сливина Н.А. Mathcad математический
практикум. - Москва: Москва “Финансы и статистика”, 2013 г.
. Фаронов, В.В. Программирование на языке высокого
уровня: Учебник для ВУЗов / В.В. Фаронов - СПб.: Питер, 2009 г. - 640 с.
Приложение
Unit1;, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs,Math,Chart,
XPMan;= class(TForm): TEdit;: TEdit;: TEdit;: TEdit;: TLabel;: TLabel;:
TLabel;: TLabel;: TMemo;: TButton;: TButton;: TLabel;: TEdit;: TButton;:
TChart;: TLineSeries;: TLineSeries;: TLineSeries;:
TXPManifest;Button2Click(Sender: TObject);Button1Click(Sender:
TObject);Button3Click(Sender: TObject);
{ Private declarations }
{ Public declarations };: TForm1;
// переменные объявленые глобально
Jo: double;
Mo: double;: double;: double;: integer;: double;
//----------------: array[1..100] of double; //угол поворота: array[1..100] of double; // угловая
скорость
wcp: double; // средняя скорость на отрезке
t: array[1..100] of double; // время: array[1..100] of
double; // ускорение: double; // значение интеграла
Tn: double; // быстродействие
dfi: double; // шаг угла
fit: double; // полный угол торможения
implementation
{$R *.dfm}M(fi:real):real;:=0.4;:=
Mo+Exp(fi*ln(c))+sqrt(fi);;TForm1.Button2Click(Sender:
TObject);.Terminate;;TForm1.Button1Click(Sender: TObject);i: integer;:
double;.Clear;.Lines.Add('Разгон');
// считывание переменныъ из едитов
Jo:= StrToFloat(Edit1.Text);
Mo:= StrToFloat(Edit2.Text);:= StrToFloat(Edit3.Text);:=
StrToFloat(Edit5.Text);:= 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[i]:= fi[i-1] + dfi;:=
(M(fi[i])-Mc+M(fi[i-1])-Mc)/2*dfi;[i]:= sqrt(2/Jo*(Jo*sqr(w[i-1])/2+int));:=
(w[i]+w[i-1])/2;[i]:= t[i-1]+dfi/wcp;[i]:= (w[i]-w[i-1])/(t[i]-t[i-1]);;:=
Jo*sqr(w[N+1])/(2*Mc);[N+1]:= -Mc/Jo;:= fit/N;i:=1 to N
do.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));:=
t[N+1];.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[i]:= fi[i-1]+dfi;:=
2/Jo*(Jo*sqr(w[i-1])/2-Mc*dfi);tmp<0 then tmp:=0;[i]:= sqrt(tmp);:=
(w[i]+w[i-1])/2;[i]:= t[i-1]+(fi[i]-fi[i-1])/wcp;[i]:= (w[i]-w[i-1])/(t[i]-t[i-1]);;i:=N+1
to 2*N+1 do.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));:=
t[2*N+1]-t[N+1];.Lines.Add('Tт='+FloatToStrF(Tn,ffFixed,5,2));.Enabled:=
true;;TForm1.Button3Click(Sender: TObject);i: integer;.BottomAxis.Minimum:=
-0.1;.BottomAxis.Maximum:= fi[2*N+1]+0.1;.LeftAxis.Minimum:=
e[2*N+1]-0.1;.LeftAxis.Maximum:= e[1] + 0.1;i:=1 to 2*N+1
do.AddXY(fi[i],w[i],'',clTeeColor);.AddXY(fi[i],e[i],'',clTeeColor);.AddXY(fi[i],t[i],'',clTeeColor);.