Программа для определения ПФ кулисно-рычажного



Гиперболографа Вяткина

 

{$F+}

Program Primer4;

 

Uses Crt, Graph, MPF, Tm1m;      {Перечень используемых модулей   }

{ Описание типов }

Type ArraySqVar=Array[1..10,1..10] of Real;

        ArrayVar=Array[1..10] of Real;

{Описание констант }

Const   fioa0g= 55.5;                 {Начальный угол кривошипа           }

            h=0;                               {Длина поводка                                }

            Lnapr=50;                      {Длина направляющей для ползунов }

{Описание переменных }

Var A1                 : ArraySqVar;

      B1, B2, X, X1 : ArrayVar;

      Driver, Mode : Integer;

      lc, q, j, alfaCg, DFir, fimg, ldiag, loc, Xm,

      lac, LBD, z, fFibdg,

      R1, R2, R3, R4, R5, R6, R7, R8, R9, R10 : Real;

      i, k, r, n : Integer;

      zz,OK,

      Xb, Yb, Xb_1, Yb_1, Xb_2, Yb_2,

      Xe, Ye, Xe_1, Ye_1, Xe_2, Ye_2,

      Xa, Ya, Xa_1, Ya_1, Xa_2, Ya_2,

      Xd, Yd, Xd_1, Yd_1, Xd_2, Yd_2,

      Xk, Yk, Xk_1, Yk_1, Xk_2, Yk_2,

      fiocg, fiacg, fioc_1, fiac_1, fioc_2, fiac_2, Fiocr,

      Fioar, Fibdg, Fideg, Fiacr : Massiv;

 

{Описание используемых процедур}

{$i Gauss.pas}

 

Procedure Mech (fFibdg : Real);     { Варьируемый параметр механизма }

Var l : Real;

Begin

j:=1;

{ Фиктивный механизм }

Lbd:=80;

Kr (Xb[i], Yb[i], Lbd, fFibdg, q, Xd[i], Yd[i]);

l:=0;

lde:=lbd;

If fiOAg>90 Then j:=-1;

As2 (Xd[i], Yd[i], Xo, Yo, Fioag, L, Lde, h, Ldiag, J, q, Fideg[i]);

Poi (Xd[i], Yd[i], Fideg[i], Lde, 0, q, 2, Xe[i], Ye[i]);

End; {Procedure }

 

Function CF (X : Real) : Real;

Begin

q:=0;

Mech (X);

CF:=Sin((Fiocg[i]-fideg[i])/180*Pi);

End; { Function }

 

Begin

InitG;                                            {Инициализация графического экрана    }

SetBkColor(7);

Masg:=0.8;                                    { Масштаб схемы                            }

{ Параметры механизма }

Xo:=0; Yo:=30;

loa:=200;

DFi:=1;

DFir:=DFi/180*pi;

For i:=1 to m+1 do Begin

if ch=#27 Then Break;

q:=1;

Fioag:=fioa0g+DFi*(i-1);          { Расчет текущего угла                  }

Fioar[i]:=Fioag/180*pi;

Kriv (Xo, Yo, loa,Fioag, q, 1, Masg, xa[i],ya[i], xa_1[i], ya_1[i], xa_2[i], ya_2[i]);

Fimg:=30;

ldiag:=20;

Xn:=-150; Xm:=Xn;

 

Assur4 (Xo, Yo, 0, 0, 0, 0, Fioag, 1, 0, 0,

          Xn, 0, 0, 0, 0, 0, Fimg, 0, 0, 0,

          Masg, ldiag, q, Xa[i], Ya[i], Xa_1[i], Ya_1[i], Xa_2[i], Ya_2[i]);

 

Assur4 (Xo, Yo, 0, 0, 0, 0, Fioag, 1, 0, 0,

          Xm, 0, 0, 0, 0, 0, -fimg, 0, 0, 0,

          Masg, Ldiag, q, Xb[i], Yb[i], Xb_1[i], Yb_1[i], Xb_2[i], Yb_2[i]);

 

loc:=80;

lac:=loc;

 

Assur1 (Xo, Yo, 0, 0, 0, 0,

          Xa[i], Ya[i], Xa_1[i], Ya_1[i], Xa_2[i], Ya_2[i],

loc, lac, -1, q, Masg,

Fiocg[i], Fiacg[i], Fioc_1[i], Fiac_1[i], Fioc_2[i], fiac_2[i]);

 

  Fiacr[i]:=Fiacg[i]/180*pi;

  Fiocr[i]:=Fiocg[i]/180*pi;

 

  Fibdg:=Find(CF);

  q:=1;

 

Mech (fFibdg);

Fibdg[i]:=fFibdg;

Zveno (Xo, Yo, Fiocg[i]+180, 100, q);

Zveno (Xe[i], Ye[i], Fideg[i]+90, 100, q);

As5 (Xe[i], Ye[i], 0, Xo, Yo, Fiocg[i], 90, Ldiag, q, Xk[i], Yk[i]);

Ok[i]:=Fioag;

k:=i;

q:=1;

Track (k, q, Masg, Xk, Yk);

ReadKey;

ClearDevice;

End; { For }

 

CloseGraph;

TestUniv (m+1, dFir, Xa, Xa_1, Xa_2, 'Xa');

Grafik (m, Ok, Xa, Xa_1, Xa_2, 'Xa', 'Xa_1', 'Xa_2');

TestUniv (m+1, dFir, Ya, Ya_1, Ya_2, 'Ya');

Grafik (m, Ok, Ya, Ya_1, Ya_2, 'Ya', 'Ya_1', 'Ya_2');

TestUniv (m+1, dFir, Xb, Xb_1, Xb_2, 'Xb');

Grafik (m, Ok, Xb, Xb_1, Xb_2, 'Xb', 'Xb_1', 'Xb_2');

TestUniv (m+1, dFir, Yb, Yb_1, Yb_2, 'Yb');

Grafik (m, Ok, Yb, Yb_1, Yb_2, 'Yb', 'Yb_1', 'Yb_2');

TestUniv (m+1, dFir, Fiocr, Fioc_1, Fioc_2, 'Fioc');

Grafik (m, Ok, Fiocr, Fioc_1, Fioc_2, 'Fiocr', 'Fioc_1', 'Fioc_2');

TestUniv (m+1, dFir, Fiacr, Fiac_1, Fiac_2, 'Fiac');

Grafik (m, Ok, Fiacr, Fiac_1, Fiac_2, 'Fiacr', 'Fiac_1', 'Fiac_2');

 

n:=6;

For k:=1 To n Do

For r:=1 To n Do A1[k,r]:=0;

 

For i:=1 to m Do Begin

 

A1[1,1]:=Xd[i]-Xb[i]; A1[1,2]:=Yd[i]-Yb[i];

A1[2,1]:=Xd[i]-Xe[i];  A1[2,2]:=Yd[i]-Ye[i];

A1[2,3]:=Xe[i]-Xd[i];  A1[2,4]:=Ye[i]-Yd[i];

A1[3,1]:=sin(Fiocr[i])/cos(Fiocr[i]); A1[3,2]:=-1;

A1[3,3]:=-A1[3,1];      A1[3,4]:=1;

A1[4,3]:=1;                 A1[4,4]:=-cos(Fioar[i])/sin(Fioar[i]);

A1[5,3]:=1;                 A1[5,4]:=A1[3,1];

A1[5,5]:=-1;                A1[5,6]:=-A1[3,1];

A1[6,5]:=A1[3,1];       A1[6,6]:=-1;

 

B1[1]:=Xb_1[i]*(Xd[i]-Xb[i])+Yb_1[i]*(Yd[i]-Yb[i]);

B1[2]:=0;

B1[3]:=Fioc_1[i]*(Xe[i]-Xd[i])/sqr(cos(Fiocr[i]));

B1[4]:=Xb_1[i]-Yb_1[i]*cos(Fioar[i])/sin(Fioar[i])-

            (Ye[i]-Yb[i])/sqr(sin(Fioar[i]));

B1[5]:=(Yk[i]-Ye[i])*Fioc_1[i]/sqr(cos(Fiocr[i]));

B1[6]:=-(Xk[i]-Xo)*Fioc_1[i]/sqr(cos(Fiocr[i]));

 

Gauss (N, A1, B1, X);                  { Расчет методом Гаусса               }

 

Xd_1[i]:=X[1];   Yd_1[i]:=X[2];

Xe_1[i]:=X[3];    Ye_1[i]:=X[4];

Xk_1[i]:=X[5];   Yk_1[i]:=X[6];

End; { For }

 

n:=6;

For k:=1 To n Do

For r:=1 To n Do A1[k,r]:=0;

 

For i:=1 to m Do Begin

A1[1,1]:=Xd[i]-Xb[i];  A1[1,2]:=Yd[i]-Yb[i];

A1[2,1]:=Xd[i]-Xe[i];   A1[2,2]:=Yd[i]-Ye[i];

A1[2,3]:=Xe[i]-Xd[i];   A1[2,4]:=Ye[i]-Yd[i];

A1[3,1]:=Sin(Fiocr[i])/Cos(Fiocr[i]); A1[3,2]:=-1;

A1[3,3]:=-A1[3,1];       A1[3,4]:=1;

A1[4,3]:=1;                  A1[4,4]:=-cos(Fioar[i])/sin(Fioar[i]);

A1[5,3]:=1;                  A1[5,4]:=A1[3,1];

A1[5,5]:=-1;                 A1[5,6]:=-A1[3,1];

A1[6,5]:=A1[3,1];        A1[6,6]:=-1;

 

R1:=sqr(cos(Fiocr[i]));

R2:=sqr(R1);

R3:=sin(2*Fiocr[i]);

R4:=Fioc_2[i];

R5:=Fioc_1[i];

R6:=sqr(R5);

R7:=cos(Fioar[i])/sin(Fioar[i]);

R8:=sqr(sin(Fioar[i]));

R9:=sqr(R8);

R10:=sin(2*Fioar[i]);

 

B2[1]:=Xb_2[i]*(Xd[i]-Xb[i])+Yb_2[i]*(Yd[i]-Yb[i])-sqr(Xd_1[i]-Xb_1[i])-

    sqr(Yd_1[i]-Yb_1[i]);

B2[2]:=-sqr(Xd_1[i]-Xe_1[i])-sqr(Yd_1[i]-Ye_1[i]);

B2[3]:=R4*(Xe[i]-Xd[i])/R1+2*R5*(Xe_1[i]-Xd_1[i])/R1+

           (Xe[i]-Xd[i])*R3*R6/R2;

B2[4]:=Xb_2[i]-Yb_2[i]*R7+2*(Yb_1[i]-Ye_1[i])/R8+(Ye[i]-Yb[i])*R10/R9;

B2[5]:=(Yk_1[i]-Ye_1[i])*R5/R1*2+(Yk[i]-Ye[i])*(R4*R1+R6*R3)/R2;

B2[6]:=-2*Xk_1[i]*R5/R1-(Xk[i]-Xo)*(R4*R1+R6*R3)/R2;

 

Gauss (N, A1, B2, X);                { Расчет методом Гаусса               }

 

Xd_2[i]:=X[1];   Yd_2[i]:=X[2];

Xe_2[i]:=X[3];    Ye_2[i]:=X[4];

Xk_2[i]:=X[5];   Yk_2[i]:=X[6];

 

End; {For}

 

TestUniv (m+1, dFir, Xd, Xd_1, Xd_2, 'Xd');

Grafik (m, Ok, Xd, Xd_1, Xd_2, 'Xd', 'Xd_1', 'Xd_2');

TestUniv (m+1, dFir, Yd, Yd_1, Yd_2, 'Yd');

Grafik (m, Ok, Yd, Yd_1, Yd_2, 'Yd', 'Yd_1', 'Yd_2');

TestUniv (m+1, dFir, Xe, Xe_1, Xe_2, 'Xe');

Grafik (m, Ok, Xe, Xe_1, Xe_2, 'Xe', 'Xe_1', 'Xe_2');

TestUniv (m+1, dFir, Ye, Ye_1, Ye_2, 'Ye');

Grafik (m, Ok, Ye, Ye_1, Ye_2, 'Ye', 'Ye_1', 'Ye_2');

TestUniv (m+1, dFir, Xk, Xk_1, Xk_2, 'Xk');

Grafik (m, Ok, Xk, Xk_1, Xk_2, 'Xk', 'Xk_1', 'Xk_2');

TestUniv (m+1, dFir, Yk, Yk_1, Yk_2, 'Yk');

Grafik (m, Ok, Yk, Yk_1, Yk_2, 'Yk', 'Yk_1', 'Yk_2');

 

End. { Program }


Владимиров Эдуард Александрович,

Шоленинов Владислав Евгеньевич

ПЕРЕДАТОЧНЫЕ ФУНКЦИИ ПЛОСКИХ

РЫЧАЖНЫХ МЕХАНИЗМОВ

 

 

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к изучению дисциплин

"Теория механизмов и машин",

"Прикладная механика",

"Расчет и моделирование механических систем"

 

Редактор                               Дудченко Елена Александровна

 

Подп. в печ. _________                                                     Формат 60´84/16

Ризограф. печать                   Усл. печ. л.                     Уч.-изд. л.        

Тираж 50  экз.                    Зак.№

________________________________________________________________

ДГМА. 84313, Краматорск, ул. Шкадинова, 72


Дата добавления: 2018-10-26; просмотров: 177; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!