Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Передаточные функции.rtf
Скачиваний:
4
Добавлен:
08.08.2019
Размер:
11.08 Mб
Скачать

Приложение г Программа расчета кулисно-рычажного параболографа Инвардса

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} {Конец программы }