Программа для моделирования механизма чушколомателя по схеме
На рис . 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!