Программа для определения ПФ механизма с кулисной парой
{$F+}
Program Primer2;
Uses Crt, Graph, MPF, Tm1m; {Перечень используемых модулей }
Type ArraySqVar=Array[1..10,1..10] of Real;
ArrayVar=Array[1..10] of Real;
Const fioa0g=15.0; {Начальный угол кривошипа }
h=0; {Длина поводка }
Lnapr=50; {Длина направляющей для ползунов }
Var A1 : ArraySqVar;
B1,B2,X,X1 : ArrayVar;
Var lc, Lcc, q, j, alfaCg, Fibdr, alfabr, koef, DFir, Fikg : Real;
i, k, r, n : Integer;
mFiabg, zz, OK, Ficdg, Fibcg, mFibdg,
Xb, Yb, Xb_1, Yb_1, Xb_2,Yb_2,
Xc, Yc, Xc_1,f, Xc_2,
Xa, Ya, Xa_1, Ya_1, Xa_2, Ya_2,
Pogr, K1, K2 : Massiv;
{Описание используемых процедур }
{$i Gauss.pas}
Procedure Mech (Fiabg : Real); { Варьируемый параметр механизма }
Var l : Real;
Begin
j:=1;
Kr (xo, yo, loa, fioag, q, xa[i], ya[i]); { Первичный механизм }
Kr (Xa[i], Ya[i], Lab, Fiabg, q, Xb[i], Yb[i]); { Фиктивный механизм }
l:=0;
Lcc:=30; { Первая присоединенная группа }
As2 (xb[i], yb[i], xn, yn, fing, lnapr, lbc, h, lcc, j, q, fibcg[i]);
Poi (xb[i], yb[i], fibcg[i], lbc, 0, q, 2, Xc[i], Yc[i]);
Fibdg:=Fibcg[i]-alfabg;
Fibdr:=Fibdg/180*pi;
Zveno (xb[i], yb[i], fibcg[i], Lbc, q);
Zveno (xb[i], yb[i], fibdg, Lbc, q);
Lc:=20;
As3(Xd, Yd, Xb[i], Yb[i], 0, 0, Lcc, q, Fikg);
End; { Procedure }
Function CF (X : Real) : Real;
Begin
q:=0;
Mech (X);
CF:=Yb[i]-Yd-(Xb[i]-Xd)*sin(Fibdr)/cos(Fibdr); { Целевая функция }
End; { Function }
Begin
InitG; {Инициализация графического экрана }
|
|
masg:=1.0; { Масштаб c хемы }
{ Параметры механизма }
Xo:=0; Yo:=0;
Xn:=0; Yn:=50; { Координаты точки N }
Xd:=100; Yd:=0; { Координаты точки E }
Loa:=20; { Длина звена OA }
Lab:=170
Lbc:=200
ldc:=65;
alfaBg:=40;
alfabr:=alfabg/180*pi;
alfaCg:=130;
fing:=0;
DFi:=7.5;
DFir:=DFi/180*pi;
For i:=1 To m Do Begin
if ch=#27 Then Break;
fioag:=fioa0g+DFi*(i-1); { Расчет текущего угла }
FiAbg:=Find(CF);
q:=1;
ClearDevice;
Mech (Fiabg);
mFiabg[i]:=Fiabg;
Ok[i]:=Fioag;
kr (Xo, Yo, Loa, Fioag, q, Xa[i], Ya[i]);
Xa_1[i]:=-Loa*sin(Fioag/180*pi);
Ya_1[i]:=Loa*cos(Fioag/180*pi);
Xa_2[i]:=-Loa*cos(Fioag/180*pi);
Ya_2[i]:=-Loa*sin(Fioag/180*pi);
zz[i]:=0;
Koef:=sin(alfabr)/cos(alfabr);
k1[i]:=(Yd-Yb[i])/(Xd-Xb[i])*(1+(Yc[i]-Yb[i])/(Xc[i]-Xb[i])*
koef);
k2[i]:=(Yc[i]-Yb[i])/(Xc[i]-Xb[i])-koef;
f[i]:=Xa_1[i]*(Xb[i]-Xa[i])+Ya_1[i]*(Yb[i]-Ya[i]);
ReadKey;
End; { For }
Cleardevice;
Closegraph;
Grafik (m, Ok, K1, K2, zz, 'K1', 'K2','');
Grafik (m, Ok, mFiabg, mFibdg, mFibeg, 'Fiabg', 'Fibdg', 'Fibeg');
Grafik (m, Ok, Xa, Xa_1, Xa_2, 'Xa', 'Xa_1', 'Xa_2');
TestUniv (m, dFir, Xa, Xa_1, Xa_2, 'Xa');
TestPF (m, mXa, mXa_1, mXa_2, 'Xa');
n:=3;
For k:=1 To n Do
For r:=1 to n Do A1[k,r]:=0;
For i:=1 To m+1 Do Begin
A1[1,1]:=-((Xc[i]-Xb[i])+koef*(Yc[i]-Yb[i])+koef*(Yd-Yb[i])-(Xd-Xb[i]));
|
|
A1[1,2]:=(Yd-Yb[i])+koef*(Xd-Xb[i]);
A1[1,3]:=-((Yd-Yb[i])-(Yc[i]-Yb[i])+koef*(Xc[i]-Xb[i])+koef*(Xd-Xb[i]));
A1[2,1]:=Yb[i]-Ya[i];
A1[2,3]:=Xb[i]-Xa[i];
A1[3,1]:=Yb[i]-Yc[i];
A1[3,2]:=-(Xb[i]-Xc[i]);
A1[3,3]:=(Xb[i]-Xc[i]);
B1[1]:=0;
B1[2]:=Xa_1[i]*(Xb[i]-Xa[i])+Ya_1[i]*(Yb[i]-Ya[i]);
B1[3]:=0;
Gauss(N,A1,B1,X); { Расчет методом Гаусса }
Xb_1[i]:=X[3]; Yb_1[i]:=X[1]; Xc_1[i]:=X[2];
End; { For }
CloseGraph;
For i:=1 To m+1 Do Begin
A1[1,1]:=-((Xc[i]-Xb[i])+koef*(Yc[i]-Yb[i])+koef*(Yd-Yb[i])-(Xd-Xb[i]));
A1[1,2]:=(Yd-Yb[i])+koef*(Xd-Xb[i]);
A1[1,3]:=-((Yd-Yb[i])-(Yc[i]-Yb[i])+koef*(Xc[i]-Xb[i])+koef*(Xd-Xb[i]));
A1[2,1]:=Yb[i]-Ya[i];
A1[2,3]:=Xb[i]-Xa[i];
A1[3,1]:=Yb[i]-Yc[i];
A1[3,2]:=-(Xb[i]-Xc[i]);
A1[3,3]:=(Xb[i]-Xc[i]);
B2[1]:=Yb_1[i]*(Xc_1[i]-Xb_1[i]-2*koef*Yb_1[i]+Xb_1[i])+
Xc_1[i]*(Yb_1[i]+koef*Xb_1[i])+Xb_1[i]*koef*(Xc_1[i]-2*Xb_1[i]);
B2[2]:=-Yb_1[i]*(Yb_1[i]-Ya_1[i])-Xb_1[i]*(Xb_1[i]-Xa_1[i])+
Xa_2[i]*(Xb[i]-Xa[i])+Xa_1[i]*(Xb_1[i]-Xa_1[i])+
Ya_2[i]*(Yb[i]-Ya[i])+Ya_1[i]*(Yb_1[i]-Ya_1[i]);
B2[3]:=-Yb_1[i]*Yb_1[i]+Xc_1[i]*(Xb_1[i]-Xc_1[i])-Xb_1[i]*(Xb_1[i]-Xc_1[i]);
Gauss (N, A1, B2, X); { Расчет методом Гаусса }
Xb_2[i]:=X[3]; Yb_2[i]:=X[1]; Xc_2[i]:=X[2];
End; { For }
TestUniv (m, dFir, Xa, Xa_1, Xa_2, 'Xa');
TestUniv (m, dFir, Xc, Xc_1, Xc_2, 'Xc');
TestUniv (m, dFir, Xb, Xb_1, Xb_2, 'Xb');
Grafik (m, Ok, Xc, Xc_1, Yc, 'Xc', 'Xc_1', 'Yc');
Grafik (m, Ok, Xb, Xb_1, zz, 'Xb', 'Xb_1','');
End. { Program }
Приложение Н
Программа для определения ПФ механизма,
Представленного на рис. 13.3
{$F+}
Program Primer3;
|
|
Uses Crt, Graph, MPF, Tm1m;
Const fioa0g=82.0; {Начальный угол кривошипа }
h=0; { Длина поводка }
Lnapr=50; { Длина направляющей для ползунов }
Var lc, q, j, Lck, Lcf, Lgk, Lhf, Ficfg, Fickg, Figkg,
Xk, Yk, Xh, Yh, Xg, Yg, Fihfg : Real;
i, k, r : Integer;
Ok, Ugol, T, mFihfg : Massiv;
{Описание используемых процедур}
{$i Grafik.pas}
Procedure Mech (Fiabg : Real); { Варьируемый параметр механизма }
Var l : Real;
Begin
j:=1;
Kr (Xo, Yo, Loa, Fioag, q, Xa, Ya); { Первичный механизм }
{ Фиктивный механизм }
Kr (Xa, Ya, Lab, Fiabg, q, Xb, Yb);
l:=0;
{ Первая присоединенная группа}
As1 (Xb, Yb, Xe, Ye, Lbd, Led, L, q, Fibdg, Fiedg);
Poi (Xb, Yb, Fibdg, Lbc, 40, q, 2, Xc, Yc);
Poi (Xb, Yb, Fibdg, Lbd, 0, q, 2, Xd, Yd);
As1 (Xc, Yc, Xg, Yg, Lck, Lgk, L, q, Fickg, Figkg);
Poi (Xc, Yc, Fickg, Lcf, 40, q, 2, Xf, Yf);
Poi (Xc, Yc, Fickg, Lck, 0, q, 2, Xk, Yk);
R:=Round(Lhf/Masg);
Poi (Xh, Yh, 0, 0, 0, q, r, Xh, Yh);
Zveno (Xb, Yb, Fibdg, Lbd, q);
Zveno (Xb, Yb, Fibdg+40, Lbc, q);
Zveno_ (Xc, Yc, Xd, Yd, q);
Zveno (Xc, Yc, Fickg, Lck, q);
Zveno (Xc, Yc, Fickg+40, Lcf, q);
Zveno_ (Xk, Yk, Xf, Yf, q);
Zveno_ (Xh, Yh, Xf, Yf, q);
Opora (Xo, Yo, 10, q, 1);
Opora (Xe, Ye, 10, q, 1);
Opora (Xg, Yg, 10, q, 1);
Opora (Xh, Yh, 10, q, 1);
End; { Procedure }
Function CF (X : Real) : Real;
Begin
q:=0;
Mech (X);
CF:=Sqrt(Sqr(xh-xf)+Sqr(yh-yf))-lhf; { Целевая функция }
End; { Function }
Begin
InitG; {Инициализация графического экрана }
|
|
Masg:=0.5; { Масштаб схемы }
{ Параметры механизма }
Xo:=0; Yo:=0; { Координаты точки О }
Xe:=40; Ye:=-20;
Xg:=80; Yg:=-35;
Xh:=115; Yh:=-15{-30};
loa:=5; { Длина звена OA }
Lab:=45; { Длина звена AB }
Lbd:=30; { Длина звена BE }
Lbc:=45; { Длина звена BC }
led:=32; { Длина звена ED }
Lck:=30;
Lgk:=30;
Lcf:=45;
Lhf:=15;
For i:=1 to m Do Begin
Fioag:=Fioa0g+DFi*(i-1); { Расчет текущего угла }
FiAbg:=Find(CF);
Kr (Xa, Ya, Lab, Fiabg, q, Xb, Yb);
As1 (Xb, Yb, Xe, Ye, Lbd, Led, L, q, Fibdg, Fiedg);
Poi (Xb, Yb, Fibdg, Lbc, 40, q, 2, Xc, Yc);
As1 (Xc, Yc, Xh, Yh, Lcf, Lhf, L, q, Ficfg, Fihfg);
OK[i]:=Fioag;
Ugol[i]:=Fiabg;
mFihfg[i]:=Fihfg;
q:=1;
ClearDevice;
Mech (Fiabg);
ReadKey;
End; { For }
Grafik(m, Ok, Ugol, mFihfg, Ugol, 'Fiabg', 'Fihfg', '');
End. { Program }
Приложение П
Дата добавления: 2018-10-26; просмотров: 157; Мы поможем в написании вашей работы! |

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