Программа расчета механизма качающегося конвейера



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; Мы поможем в написании вашей работы!

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






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