Программа расчета механизма качающегося конвейера
Program Mechan1_1;
Uses Crt, Graph, MPF;
Const m=48; {Количество положений }
{механизма для расчета }
Var Xo, Yo, Xc, Yc, Xn, Yn, {Описание переменных }
FIoa0g, dFi, dFir, lc, q, jk, Mas, j1, j2, l,
Loa, Lab, Lcb, Lcd, Lde, lcc, Las2, Lcs3, Lds4 : Real;
i, ori, k, r, driver, mode : Integer;
strvar : String;
FIoag,
Fiabg, Fiabr, Fiab_1, Fiab_2,
Ficbg, Ficbr, Ficb_1, Ficb_2,
Fideg, Fider, Fide_1, Fide_2,
Xs2, Xs2_1, Xs2_2, Ys2, Ys2_1, Ys2_2,
Xs3, Xs3_1, Xs3_2, Ys3, Ys3_1, Ys3_2,
Xs4, Xs4_1, Xs4_2, Ys4, Ys4_1, Ys4_2,
Xa, Ya, Xa_1, Ya_1, Xa_2, Ya_2,
Xd, Yd, Xd_1, Yd_1, Xd_2, Yd_2,
Xb, Yb, Xb_1, Yb_1, Xb_2, Yb_2,
Xe, Ye, Xe_1, Ye_1, Xe_2, Ye_2 : Massiv;
Begin
Driver:=Detect; {Инициализация графики }
InitGraph (Driver, Mode, '');
SetBKColor(7);
Mas:=2.5; { Масштаб отрисовки }
Xc:=110-700; {Определение координат }
Yc:=68; {точек и длин звеньев }
Lab:=192;
Lcb:=220;
Lcs3:=Lcd/2;
Las2:=Lab/2;
Lcd:=300;
Lde:=Lcd*4;
Lds4:=Lde/2;
Xn:=0; Yn:=0;
Xo:=-700; Yo:=0; { Координаты кривошипа }
Loa:=60; {длина кривошипа }
|
|
FIoa0g:=97.05; {Начальное значение ОК }
dFi:=360/m; {Приращения ОК в град. }
dFir:=2*pi/m; {Приращения ОК в рад. }
{вращения кривошипа }
{Определение передаточных функций}
For i:=1 To m+1 Do Begin
ClearDevice ; { Очистка экрана }
jk :=1; {Направление вращения }
{кривошипа (-1/1) }
FIoag[i]:=FIoa0g+dFi*(i-1)*jk; {Расчет текущего угла }
Str (Fioag[i]:8:4, StrVar); {Вывод на экран }
OutTextXY (20, 40, StrVar); {значения ОК }
Str (i:2, StrVar); {Вывод на экран номера }
OutTextXY (20, 20, StrVar); {положения }
q:=1;
SetColor(15);
|
|
Kriv (Xo, Yo, Loa, FIoag[i], q, jk, Mas, {Первичный механизм }
Xa[i], Ya[i], Xa_1[i], Ya_1[i], Xa_2[i], Ya_2[i]);
lc:=75;
Ori:=1;
Opora (Xo, Yo, lc, Mas, q, Ori); { Опора кривошипа }
Ori:=3;
Opora (Xc, Yc, lc, Mas, q, Ori); { Опора коромысла }
{Расчет 1-ой присоединенной группы}
j1:=-1;
Assur1 (Xa[i], Ya[i], Xa_1[i], Ya_1[i], Xa_2[i], Ya_2[i],
Xc, Yc, 0, 0, 0, 0,
Lab, Lcb, j1, q, Mas,
FIabg[i], FIcbg[i], FIab_1[i], FIcb_1[i],FIab_2[i],FIcb_2[i]);
{Определяем ПФ точки S 2 }
Point(Xa[i], Ya[i], Xa_1[i], Ya_1[i], Xa_2[i], Ya_2[i],
FIabg[i], FIab_1[i], FIab_2[i], Las2, 0, q, Mas, r,
Xs2[i], Ys2[i], Xs2_1[i], Ys2_1[i], Xs2_2[i], Ys2_2[i]);
{Определяем ПФ точки B }
Point(Xc, Yc, 0, 0, 0, 0, FIcbg[i], FIcb_1[i], FIcb_2[i], Lcb, 0, q, Mas, r,
Xb[i], Yb[i], Xb_1[i], Yb_1[i], Xb_2[i], Yb_2[i]);
r:=2;
{Определяем ПФ точки D}
Point(Xc, Yc, 0, 0, 0, 0, FIcbg[i], FIcb_1[i], FIcb_2[i], Lcd, 0, q, Mas, r,
Xd[i], Yd[i], Xd_1[i], Yd_1[i], Xd_2[i], Yd_2[i]);
Zveno(Xc, Yc, FIcbg[i], lcd, q, Mas);
{Определяем ПФ точки S 3 }
Point (Xc, Yc, 0, 0, 0, 0, FIcbg[i], FIcb_1[i], FIcb_2[i], Lcs3, 0, q, Mas, r,
Xs3[i], Ys3[i], Xs3_1[i], Ys3_1[i], Xs3_2[i], Ys3_2[i]);
{Расчет 2-ой присоединенной группы}
l:=500;
lcc:=50;
j2:=1;
Assur2 (Xd[i], Yd[i], Xd_1[i], Yd_1[i], Xd_2[i], Yd_2[i],
Xn, Yn, 0, 0, 0, 0,
0, 0, 0, l, Lde, 0, lcc, j2, q, Mas,
FIdeg[i], FIde_1[i], FIde_2[i]);
{Определяем ПФ точки Е }
Point (Xd[i], Yd[i], Xd_1[i], Yd_1[i], Xd_2[i], Yd_2[i],
|
|
FIdeg[i], FIde_1[i], FIde_2[i],
Lde, 0, q, Mas, r,
Xe[i], Ye[i], Xe_1[i], Ye_1[i], Xe_2[i], Ye_2[i]);
{Определяем ПФ точки S 4 }
Point (Xd[i], Yd[i], Xd_1[i], Yd_1[i], Xd_2[i], Yd_2[i],
FIdeg[i], FIde_1[i], FIde_2[i],
Lds4, 0, q, Mas, r,
Xs4[i], Ys4[i], Xs4_1[i], Ys4_1[i], Xs4_2[i], Ys4_2[i]);
Fiabr[i]:=Fiabg[i]/180*pi; { Перевод градусов }
Ficbr[i]:=Ficbg[i]/180*pi; { в радианы }
Fider[i]:=Fideg[i]/180*pi;
if Ficbr[i]<0 Then Ficbr[i]:=Ficbr[i]+2*pi;
k:=i;
Track (k, q, Mas, Xs2, Ys2); { Показать траектории }
Track (k, q, Mas, Xs4, Ys4); { точек }
ReadKey;
End; { For }
ClearDevice; { Очистка экрана }
CloseGraph; {Переход в текстовый
режим }
{Тестирование ПФ1 и ПФ2 и вывод на экран графиков ПФ0, ПФ1, ПФ2 }
TestPF (m, Xa, Xa_1, Xa_2, ’Xa’);
Grafik(m+1, Fioag, Xa, Xa_1, Xa_2, ’Xa’, ’Xa_1’, ’Xa_2’);
TestPF (m, Ya, Ya_1, Ya_2, ’Ya’);
Grafik(m+1, Fioag, Ya, Ya_1, Ya_2, ’Ya’, ’Ya_1’, ’Ya_2’);
TestPF (m, Fiabr, Fiab_1, Fiab_2, ’Fiab’);
Grafik(m+1, Fioag, Fiabg, Fiab_1, Fiab_2, ’Fiabr’, ’Fiab_1’, ’Fiab_2’);
TestPF (m, Ficbr, Ficb_1, Ficb_2, ’Ficb’);
|
|
Grafik(m+1, Fioag, Ficbr, Ficb_1, Ficb_2, ’Ficbr’, ’Ficb_1’, ’Ficb_2’);
TestPF (m, Xb, Xb_1, Xb_2, ’Xb’);
Grafik(m+1, Fioag, Xb, Xb_1, Xb_2, ’Xb’, ’Xb_1’, ’Xb_2’);
TestPF (m, Yb, Yb_1, Yb_2, ’Yb’);
Grafik(m+1, Fioag, Yb, Yb_1, Yb_2, ’Yb’, ’Yb_1’, ’Yb_2’);
TestPF (m, Xs2, Xs2_1, Xs2_2, ’Xs2’);
Grafik(m+1, Fioag, Xs2, Xs2_1, Xs2_2, ’Xs2’, ’Xs2_1’, ’Xs2_2’);
TestPF (m, Ys2, Ys2_1, Ys2_2, ’Ys2’);
Grafik(m+1, Fioag, Ys2, Ys2_1, Ys2_2, ’Ys2’, ’Ys2_1’, ’Ys2_2’);
TestPF (m, Xs3, Xs3_1, Xs3_2, ’Xs3’);
Grafik(m+1, Fioag, Xs3, Xs3_1, Xs3_2, ’Xs3’, ’Xs3_1’, ’Xs3_2’);
TestPF (m, Ys3, Ys3_1, Ys3_2, ’Ys3’);
Grafik(m+1, Fioag, Ys3, Ys3_1, Ys3_2, ’Ys3’, ’Ys3_1’, ’Ys3_2’);
TestPF (m, Xd, Xd_1, Xd_2, ’Xd’);
Grafik(m+1, Fioag, Xd, Xd_1, Xd_2, ’Xd’, ’Xd_1’, ’Xd_2’);
TestPF (m, Yd, Yd_1, Yd_2, ’Yd’);
Grafik(m+1, Fioag, Yd, Yd_1, Yd_2, ’Yd’, ’Yd_1’, ’Yd_2’);
TestPF (m, Fider, Fide_1, Fide_2, ’Fide’);
Grafik(m+1, Fioag, Fideg, Fide_1, Fide_2, ’Fider’, ’Fide_1’, ’Fide_2’);
TestPF (m, Xs4, Xs4_1, Xs4_2, ’Xs4’);
Grafik(m+1, Fioag, Xs4, Xs4_1, Xs4_2, ’Xs4’, ’Xs4_1’, ’Xs4_2’);
TestPF (m, Ys4, Ys4_1, Ys4_2, ’Ys4’);
Grafik(m+1, Fioag, Ys4, Ys4_1, Ys4_2, ’Ys4’, ’Ys4_1’, ’Ys4_2’);
TestPF (m, Xe, Xe_1, Xe_2, ’Xe’);
Grafik(m+1, Fioag, Xe, Xe_1, Xe_2, ’Xe’, ’Xe_1’, ’Xe_2’);
End. {Program} { Конец программы }
Приложение Г
Программа расчета кулисно-рычажного параболографа Инвардса
Program Mechan10;
Uses Crt, Graph, MPF;
Const m=48; {Количество положений }
{механизма для расчета }
Var Xa0, Ya0, Fing, X10, dX1, lcc, Xc, Yc, {Описание переменных }
Lab, Lcb, l, Lad, Lcd, q, Mas : Real;
i, jp, j1, ori, j2, k, Driver : Integer;
StrVar : String;
X1,
Fiabg, Fiabr, Fiab_1, Fiab_2,
Ficbg, Ficbr, Ficb_1, Ficb_2,
Fiadg, Fiadr, Fiad_1, Fiad_2,
Ficdg, Ficdr, Ficd_1, Ficd_2,
Fibdg, Fibdr, Fibd_1, Fibd_2,
Xa, Ya, Xa_1, Ya_1, Xa_2, Ya_2,
Xb, Yb, Xb_1, Yb_1, Xb_2, Yb_2,
Xd, Yd, Xd_1, Yd_1, Xd_2, Yd_2,
Xk, Yk, Xk_1, Yk_1, Xk_2, Yk_2 : Massiv ;
Begin
Driver:=Detect; {Инициализация графики }
Initgraph (Driver, Mode,'');
SetBKcolor(7);
Lab:=300; {Определение координат }
Lcb:=300; {и длин звеньев }
Lad:=300;
Lcd:=300;
Xa0:=0; Ya0:=-150; {Начальное значение ОК }
Xc:=200; Yc:=100;
FIng:=90.0; {Угол направляющей }
X1[1]:=0;
dX1:=10 ;
{Определение передаточных функций}
For i:=1 To m+1 Do Begin
ClearDevice ; {Очистка графического экрана}
Str (i:2, StrVar); {Вывод на экран номера }
OutTextXY (20, 20, StrVar); {положения }
Str (X1[i]:8:4, StrVar); {Вывод на экран }
OutTextXY (20, 40, StrVar); {значения ОК }
q:=1;
Mas:=2; {Масштаб изображения }
lcc:=50;
jp:=1;
SetColor(5);
Polsun (Xa0, Ya0, Fing, X1[i], lcc, q, Mas, jp, { Первичный механизм }
Xa[i], Ya[i], Xa_1[i], Ya_1[i], Xa_2[i], Ya_2[i]);
{Расчет 1-й присоединенной группы}
j1:=1;
Assur1 (Xa[i], Ya[i], Xa_1[i], Ya_1[i], Xa_2[i], Ya_2[i],
Xc,Yc, 0, 0, 0, 0, Lab, Lcb, j1, q, Mas, FIabg[i],
FIcbg[i], FIab_1[i], FIcb_1[i], FIab_2[i], FIcb_2[i]);
{Расчет 2-й присоединенной группы}
j2:=-1;
Assur1 (Xa[i], Ya[i], Xa_1[i], Ya_1[i], Xa_2[i], Ya_2[i],
Xc, Yc, 0, 0, 0, 0, Lad, Lcd, j2, q, Mas, FIadg[i], FIcdg[i], FIad_1[i],
FIcd_1[i], FIad_2[i], FIcd_2[i]);
{Определяем ПФ точки B }
Point (Xa[i], Ya[i], Xa_1[i], Ya_1[i], Xa_2[i], Ya_2[i],
FIabg[i], FIab_1[i], FIab_2[i], Lab, 0, q, Mas, 10,
Xb[i], Yb[i], Xb_1[i], Yb_1[i], Xb_2[i], Yb_2[i]);
{Определяем ПФ точки D }
Point (Xa[i], Ya[i], Xa_1[i], Ya_1[i], Xa_2[i], Ya_2[i],
FIadg[i], FIad_1[i], FIad_2[i], Lad, 0, q, Mas, 10,
Xd[i], Yd[i], Xd_1[i], Yd_1[i], Xd_2[i], Yd_2[i]);
{Расчет 3-й присоединенной группы}
Assur3 (Xd[i], Yd[i], Xd_1[i], Yd_1[i], Xd_2[i], Yd_2[i],
Xb[i], Yb[i], Xb_1[i], Yb_1[i], Xb_2[i], Yb_2[i],
0, 0, Mas, lcc, q,
FIbdg[i], FIbd_1[i], FIbd_2[i]);
{Расчет 4-й присоединенной группы}
Assur4 (Xa[i], Ya[i], Xa_1[i], Ya_1[i], Xa_2[i], Ya_2[i], 0, 0, 0, 0,
Xb[i], Yb[i], Xb_1[i], Yb_1[i], Xb_2[i], Yb_2[i],
FIbdg[i], FIbd_1[i], FIbd_2[i], 0, Mas, lcc, q,
Xk[i], Yk[i], Xk_1[i], Yk_1[i], Xk_2[i], Yk_2[i]);
l:=20;
Ori:=2;
Opora (Xc, Yc, l, Mas, q, Ori); { Опора коромысла }
SetColor (Blue); {Показать траекторию точки }
k:=i;
Track (k, q, Mas, Xk, Yk);
X1[i+1]:=X1[i]+jp*dX1; {Расчет текущего }
{значения ОК }
ReadKey;
End; { For }
CloseGraph; {Переход в текстовый режим}
{Тестирование ПФ1 и ПФ2 и вывод на экран графиков ПФ0, ПФ1, ПФ2 }
TestUniv (m, dX1, Xa, Xa_1, Xa_2, ’Xa’);
Grafik (m+1, X1, Xa, Xa_1, Xa_2, ’Xa’, ’Xa_1’, ’Xa_2’);
TestUniv (m, dX1, Ya, Ya_1, Ya_2, ’Ya’);
Grafik (m+1, X1, Ya, Ya_1, Ya_2, ’Ya’, ’Ya_1’, ’Ya_2’);
TestUniv (m, dX1, Xk, Xk_1, Xk_2, ’Xk’);
Grafik (m+1, X1, Xk, Xk_1, Xk_2, ’Xk’, ’Xk_1’, ’Xk_2’);
TestUniv (m, dX1, Yk, Yk_1, Yk_2, ’Yk’);
Grafik (m+1, X1, Yk, Yk_1, Yk_2, ’Yk’, ’Yk_1’, ’Yk_2’);
End. {Program} { Конец программы }
Приложение Д
Дата добавления: 2018-10-26; просмотров: 240; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!