Программа для моделирования механизма чушколомателя по схеме



На рис . 9.5

Program Mech_3_class;                         

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

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

Const fioa0g=40.0;                             {Начальное значение ОК             }

     h=0;        

     Lnapr=50;

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

Var lc, q, j                                          : Real;

      i,k,r                                             : Integer;

      xo, yo, xb, yb, xd, yd, xe, ye,

      xc, yc, xn, yn, xa, ya                   : Real;

      loa, lab, lbc, ldc, Lbe                   : Real;

      ALFAEBCg                                : Real;

      fing, fibcg, Fiabg, fidcg, fioag, fibeg : Real;

 

Procedure Mech (Fiabg : Real);     { Процедура для расчета фиктивного }

Var l : Real;                                   { механизма                                       }

Begin

j:=1;

Kr (Xa, Ya, Lab, Fiabg, q, Xb, Yb);

l:=0;

as2 (xb, yb, xn, yn, fing, l, lbe, h, lcc, j, q, fibeg);

Poi (xb, yb, fibeg, lbe, 0, q, 2, Xe, Ye);

Poi (xb, yb, fibeg, lbc, -alfaEBCg, q, 2, Xc, yc);

zveno(xb, yb, fibeg, Lbe, q);

zveno(xb, yb, fibeg-AlfaEBCg, Lbc, q);

zveno_(xc, yc, xd, yd, q);

zveno_(xe, ye, xc, yc, q);

Opora (xo, yo, 10, q, 1);

Opora (xd, yd, 10, q, 1);

End; {Procedure}

 

Function CF (X : Real) : Real;            {Вычисление целевой функции     }

Begin

Mech (X);                                         {Расчет фиктивного механизма }

CF:=Sqrt(Sqr(xd-xc)+Sqr(yd-yc))-ldc;

End; { Function }

 

Begin                                                  {Начало основной программы    }

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

masg:=0.5;                                        {Масштаб отрисовки                 }

xo:=0;     yo:=0;                          {Задание параметров механизма }

xn:=0;     yn:=50;

xd:=100; yd:=0;

loa:=20;

Lab:=70;

Lbe:=100;

Lbc:=70;

ldc:=65;

alfaEBCg:=60;

fing:=0;

 

{Цикл для определения ПФ0 элементов механизма }

For i:=1 to 49 do Begin                        

fioag:=fioa0g+DFi*(i-1);             {Определяю следующее значение ОК }

 

q:=0;                                           {Механизм не отображать           }

kr (xo, yo, loa, fioag, q, xa, ya); {Определение ПФ0 первичного мех-ма    }

FiABg:=Find(CF);                      {Поиск значения через цел. функцию }

 

q:=1;                                           {Механизм отображать                }

ClearDevice;                               {Очистка экрана                             }

kr (xo, yo, loa, fioag, q, xa, ya); {Определение ПФ0 первичного мех-ма    }

Mech (Fiabg);                              {Нарисовать фиктивный механизм }

 

ReadKey;

End; { For }

End. { Program }                              { Конец программы                           }

 


Приложение E

Функция для определения оптимального значения варьируемого

Параметра

Function Find (CF : CF_Type): Real;

Const KolPoints = 1000;

XF = 100;

Xl = 290;

Var X1, X2, X3, Dx_,

Y1, Y2, Y3 : Real;

Begin

DX_:=Abs(XF-XL)/KolPoints;

X1:=XF;

Y1:=CF(X1);

X2:=X1;

Y2:=Y1;

Repeat

X1:=X2;

Y1:=Y2;

X2:=X1+DX_;

Y2:=CF(X2);

Until (Y1*Y2<0) or (X2>XL);

if CF(X1)*CF(X2)>0 Then Begin

Find:=0;

Exit;

End;

Repeat

  X3:=(X1+X2)/2;

  Y1:=CF(X1);

  Y2:=CF(X2);

  Y3:=CF(X3);

if (Y1*Y3)>0 Then X1:=X3 Else X2:=X3;

Until (Abs(Y3)<0.001);

Find:=X3;

End;


Приложение Ж

Программа для моделирования механизма чушколомателя по схеме

На рис . 9.6

Program Mech_3_class;

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

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

Const fioa0g=40.0;                             {Начальное значение ОК             }

      h=0;

      Lnapr=50;

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

Var lc, q, j                                          : Real;

   i, k, r                                           : Integer;

   xo, yo, xb, yb, xd, yd, xe, ye,

   xc, yc, xn, yn, xa, ya                  : Real;

   loa, lab, lbc, ldc, Lbe                   : Real;

   ALFAEBCg                                : Real;

   fing, fibcg, Fiabg, fidcg, fioag     : Real;

 

Procedure Mech (Fiabg : Real);       {Процедура для расчета фиктивного    }

Var l: Real;                                         { механизма                                  }

Begin

Kr (Xa, Ya, Lab, Fiabg, q, Xb, Yb);

As1 (xb, yb, xd, yd, lbc, ldc, -1, q, fibcg, fidcg);

Poi (xb, yb, fibcg, lbc, 0, q, 2, Xc, Yc);

Poi (xb, yb, fibcg, lbe, alfaEBCg, q, 2, Xe, ye);

zveno(xb, yb, fibcg+alfaEBCg, Lbe, q);

zveno(xn, yn, 0, 300, q);

zveno_(xe, ye, xc, yc, q);

Opora (xo, yo, 10, q, 1);

Opora (xd, yd, 10, q, 1);

End; { Procedure }

 

Function CF (X : Real) : Real;            {Вычисление целевой функции }

Begin

Mech (X);                                         {Расчет фиктивного механизма }

CF:=yn-ye;                                           

End; { Function }

 

Begin                                                  {Начало основной программы }

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

Masg:=0.5;                                       {Масштаб отрисовки             }

                                                         {Задание параметров механизма   }

fing:=0;

Xo:=0;     Yo:=0;

Xn:=0;     Yn:=50;

Xd:=100; Yd:=0;

loa:=20;

Lab:=70;

Lbe:=100;

Lbc:=70;

ldc:=65;

alfaEBCg:=60;

{Цикл определения ПФ0 элементов механизма}

For i:=1 to 49 do Begin

fioag:=fioa0g+DFi*(i-1);           {Определяю следующее значение OK }

 

q:=0;                                         {Механизм не отображать             }

Kr (Xo, Yo, Loa, Fioag, q, Xa, Ya);                                                          {Расчет ПФ0 первичного мех-ма              }

FiAbg:=Find(CF);                     {Поиск значения через цел. функцию }

 

q:=1;                                         {Механизм отображать                  }

ClearDevice;                              {Очистка экрана                               }

Kr (Xo, Yo, Loa, Fioag, q, Xa, Ya);                                                          {Расчет ПФ0 первичного мех-ма              }

Mech (Fiabg);                            {Нарисовать фиктивный механизм }

 

ReadKey;

End;

End. {Program}                                                     { Конец программы   }

 


Приложение И

Программа для моделирования механизма чушколомателя по схеме

На рис. 9.5 (фиктивное начальное звено - ползун)

 

Program Mech_3_class;

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

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

Const fioa0g=40.0;                        {Начальное значение ОК             }

      h=0;

      Lnapr=50;

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

Var lc, q, j                                          : Real;

   i, k, r                                           : Integer;

   xo, yo, xb, yb, xd, yd, xe, ye,

   xc, yc, xn, yn, xa, ya                   : Real;

   loa, lab, lbc, ldc, Lbe                   : Real;

   ALFAEBCg                                : Real;

   fing, fibcg, Fiabg, fidcg, fioag, fibeg : Real;

 

Procedure Mech (Xe : Real);         {Процедура для расчета фиктивного }

Var l : Real;                                   { механизма                                        }

Begin

kr (xo, yo, loa, fioag, q, xa, ya);

As1 (xa, ya, xe, yn, lab, lbe, 1, q, fiabg, fibeg);

Poi (xa, ya, fiabg, lab, 0, q, 2, Xb, Yb);

Poi (xb, yb, fibeg, lbc, 180-AlfaEBCg, q, 2, Xc, yc);

zveno(xn, yn, 0, 300, q);

zveno_(xe, yn, xc, yc, q);

zveno_(xb, yb, xc, yc, q);

zveno_(xd, yd, xc, yc, q);

Opora (xo, yo, 10, q, 1);

Opora (xd, yd, 10, q, 1);

End; { Procedure }

 

Function CF (X : Real) : Real;            { Вычисление целевой функции    }

Begin

Mech (X);                                         {Расчет фиктивного механизма }

CF:=Sqrt(Sqr(xd-xc)+Sqr(yd-yc))-ldc;

End; { Function }

 

Begin                                                  {Начало основной программы    }

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

masg:=0.5;                                        {Масштаб отрисовки                 }

xo:=0;     yo:=0;                          {Задание параметров механизма }

xn:=0;     yn:=50;

xd:=100; yd:=0;

loa:=20;

Lab:=70;

Lbe:=100;

Lbc:=70;

ldc:=65;

alfaEBCg:=60;

fing:=0;

 

{Цикл для определения ПФ0 элементов механизма }

For i:=1 to 49 do Begin                        

fioag:=fioa0g+DFi*(i-1);             {Определяю следующее значение ОК}

 

q:=0;                                        {Механизм не отображать на экране}

kr (xo, yo, loa, fioag, q, xa, ya); {Расчет ПФ0 первичного мех-ма}

Xe:=Find(CF);                            {Поиск значения через цел. функцию}

 

q:=1;                                           {Механизм отображать на экране}

ClearDevice;                               { Очистка экрана }

Kr (Xo, Yo, Loa, Fioag, q, Xa, Ya); { Расчет ПФ 0 первичного мех - ма }

Mech (Xe);                                  {Нарисовать фиктивный механизм}

 

ReadKey;

End; { For }

End. { Program }                                                     { Конец программы }

 


Приложение К


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

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






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