- •Донбасская государственная машиностроительная академия
- •Владимиров э.А., Шоленинов в.Е.
- •Передаточные функции плоских рычажных механизмов
- •Методические указания
- •Краматорск 2004
- •Рецензенты:
- •Содержание
- •Введение
- •1 Структурный анализ механизма
- •Формула строения механизма:
- •2 Передаточные функции начальных звеньев
- •Kriv (Xо, Yо, Lоа, Fiоаg, q, jk, Mas : Real; {входные параметры}
- •Var Xa, Ya, Xa_1, Ya_1, Xa_2, Ya_2 : Real), {возвращаемые параметры}
- •3 Передаточные функции произвольной точки звена
- •4 Структура исходной программы для расчета передаточных функций элементов механизма
- •4 Структура исходной программы для расчета передаточных функций элементов механизма.1 Начальное звено – кривошип
- •4 Структура исходной программы для расчета передаточных функций элементов механизма.2 Начальное звено – ползун
- •5 Контроль передаточных функций элементов механизма .1 Графический метод контроля пф0
- •5.2 Контроль пф0 с использованием AutoCad
- •5.3 Методика количественного контроля пф1 и пф2
- •6 Алгоритмы определения пф структурных групп
- •6 Алгоритмы определения пф структурных групп.1 Группа первого вида
- •6 Алгоритмы определения пф структурных групп.2 Группа второго вида
- •6 Алгоритмы определения пф структурных групп.3 Группа третьего вида
- •На рис. 6.3 представлена схема группы третьего вида.
- •Следует определить пф оси кулисы: , , .
- •После повторного дифференцирования полученных выражений находим угловые пф2:
- •6.4 Группа четвертого вида
- •Аналитически координаты точки k можно определить следующим образом. Уравнения осей направляющих:
- •6.5 Группа пятого вида
- •7 Процедуры для определения пф структурных групп
- •8 Структура программы для расчета пф рычажных механизмов второго класса
- •9 Методика определения пф0 структурных групп выше второго класса
- •10 Структура программы для моделирования механизма 3-го класса
- •11 Определение пф1 и пф2 элементов механизмов выше второго класса
- •12 Структура программы для определения пф механизма чушколомателя
- •13 Алгоритмы и программы для определения пф механизмов выше второго класса
- •Список рекомендованной литературы
- •Приложение а Исходный файл расчета механизма (начальное звено - кривошип)
- •Приложение б Исходный файл расчета механизма (начальное звено - ползун)
- •Приложение в Программа расчета механизма качающегося конвейера
- •Приложение г Программа расчета кулисно-рычажного параболографа Инвардса
- •Приложение д Программа для моделирования механизма чушколомателя по схеме
- •Приложение e Функция для определения оптимального значения варьируемого параметра
- •Приложение ж Программа для моделирования механизма чушколомателя по схеме
- •Приложение и Программа для моделирования механизма чушколомателя по схеме на рис. .5 (фиктивное начальное звено - ползун)
- •Приложение к Программа для моделирования механизма чушколомателя
- •Приложение л Программа для определения пф механизма, представленного на рис. 13.1
- •Приложение м Программа для определения пф механизма с кулисной парой
- •Приложение н Программа для определения пф механизма, представленного на рис. 13.3
- •Приложение п Программа для определения пф кулисно-рычажного гиперболографа Вяткина
Приложение л Программа для определения пф механизма, представленного на рис. 13.1
{$F+}
Program Primer1;
Uses Crt, Graph, MPF, tm1m; {Перечень используемых модулей }
Const fioa0g=180.0; { Начальное значение ПФ0 }
h=0; { Длина поводка }
Lnapr=50; { Длина направляющей для ползунов }
Type ArraySqVar=Array[1..10, 1..10] of Real;
ArrayVar=Array[1..10] of Real;
Var A1 : ArraySqVar;
B1, B2, X, X1 : ArrayVar;
lc, q, j, alfaag, Ldk,
alfadg, Xk, Yk, Lfk : Real;
i, k, r, n : Integer;
Fidcg, mFiabg, OK, zz,
mXa, mYa, mXb, mYb,
mXf, mYf, mXc, mYc,
mXk, mYk, Xa_1, Ya_1,
Xa_2, Ya_2, Xb_1, Yb_1, Xf_1, Yf_1, Xc_1, Yc_1,
Xk_1, Yk_1, Xb_2, Yb_2, Xf_2, Yf_2, Xc_2, Yc_2,
Xk_2, Yk_2, Fiabr, Fiab_1, Fiab_2 : Massiv;
{Описание используемых процедур}
{$i Gauss.pas}
Procedure Mech (Fiabg : Real); { Варьируемый параметр механизма }
Var l : Real;
Begin
Kr (Xo, Yo, Loa, Fioag, q, Xa, Ya); { Первичный механизм }
Kr (Xa, Ya, Lab, Fiabg, q, Xb, Yb); { Первичный механизм }
l:=0; { фиктивного механизма }
{ Первая присоединенная группа}
As1 (Xb, Yb, Xd, Yd, Lbc, Ldc, L, q, Fibcg, Fidcg[i]);
Poi (Xa, Ya, Fiabg, Laf, Alfaag, q, 5, Xf, Yf);
Poi (Xd, Yd, Fidcg[i], Ldk, Alfadg, q, 5, Xk, Yk);
Poi (Xd, Yd, Fidcg[i], Ldc, 0, q, 5, Xc, Yc);
Zveno_(Xb, Yb, Xf, Yf, q);
Zveno_(Xf, Yf, Xk, Yk, q);
Zveno_(Xd, Yd, Xk, Yk, q);
Zveno_(Xc, Yc, Xk, Yk, q);
Zveno_(Xa, Ya, Xf, Yf, q);
Opora (Xo, Yo, 10, q, 1);
Opora (Xd, Yd, 10, q, 1);
OK[i]:=Fioag;
mFiabg[i]:=Fiabg-180;
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);
mXa[i]:=Xa; mYa[i]:=Ya;
mXb[i]:=Xb; mYb[i]:=Yb;
mXf[i]:=Xf; mYf[i]:=Yf;
mXc[i]:=Xc; mYc[i]:=Yc;
mXk[i]:=Xk; mYk[i]:=Yk;
End; { Procedure }
Function CF (X : Real) : Real;
Begin
q:=0; { Механизм выводить на экран
не надо }
Mech (X);
CF:=sqrt(sqr(Xf-Xk)+sqr(Yf-Yk))-Lfk; { Целевая функция }
End; { Function }
Begin
InitG; {Инициализация графического экрана }
Masg:=0.6 ; {Масштабный коэффициент }
{Параметры механизма }
Xo:=0; Yo:=100; {Координаты точки О }
Xd:=15; Yd:=-18; {Координаты точки D }
Loa:=30; {Длина звена oa }
Lab:=80; {Длина звена ab }
Lbc:=100; {Длина звена bc }
ldc:=60; {Длина звена dc }
alfaBg:=112.5;
Laf:=133;
alfaag:=33.75;
Ldk:=60;
alfadg:=75;
Lfk:=60;
For i:=1 to 49 do Begin
fioag:=fioa0g+dFi*(i-1); {Расчет текущего угла }
OK[i]:=Fioag;
FiAbg:=Find(CF);
q:=1;
ClearDevice;
Mech (Fiabg);
ReadKey;
End; { Конец цикла }
n:=8;
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]:=mXb[i]-mXa[i]; A1[1,2]:=mYb[i]-mYa[i];
A1[2,1]:=mXb[i]-mXf[i]; A1[2,2]:=mYb[i]-mYf[i];
A1[2,3]:=mXf[i]-mXb[i]; A1[2,4]:=mYf[i]-mYb[i];
A1[3,3]:=mXf[i]-mXa[i]; A1[3,4]:=mYf[i]-mYa[i];
A1[4,1]:=mXb[i]-mXc[i]; A1[4,2]:=mYb[i]-mYc[i];
A1[4,5]:=mXc[i]-mXb[i]; A1[4,6]:=mYc[i]-mYb[i];
A1[5,3]:=mXf[i]-mXk[i]; A1[5,4]:=mYf[i]-mYk[i];
A1[5,7]:=mXk[i]-mXf[i]; A1[5,8]:=mYk[i]-mYf[i];
A1[6,5]:=mXc[i]-Xd; A1[6,6]:=mYc[i]-Yd;
A1[7,7]:=mXk[i]-Xd; A1[7,8]:=mYk[i]-Yd;
A1[8,5]:=mXc[i]-mXk[i]; A1[8,6]:=mYc[i]-mYk[i];
A1[8,7]:=mXk[i]-mXc[i]; A1[8,8]:=mYk[i]-mYc[i];
B1[1]:=(mXb[i]-mXa[i])*Xa_1[i]+(mYb[i]-mYa[i])*Ya_1[i];
B1[2]:=0;
B1[3]:=(mXf[i]-mXa[i])*Xa_1[i]+(mYf[i]-mYa[i])*Ya_1[i];
B1[4]:=0;
B1[5]:=0;
B1[6]:=0;
B1[7]:=0;
B1[8]:=0;
Gauss(N,A1,B1,X); {Расчет методом Гаусса }
Xb_1[i]:=X[1]; Yb_1[i]:=X[2];
Xf_1[i]:=X[3]; Yf_1[i]:=X[4];
Xc_1[i]:=X[5]; Yc_1[i]:=X[6];
Xk_1[i]:=X[7]; Yk_1[i]:=X[8];
End; { For }
For i:=1 to m+1 Do Begin
A1[1,1]:=mXb[i]-mXa[i]; A1[1,2]:=mYb[i]-mYa[i];
A1[2,1]:=mXb[i]-mXf[i]; A1[2,2]:=mYb[i]-mYf[i];
A1[2,3]:=mXf[i]-mXb[i]; A1[2,4]:=mYf[i]-mYb[i];
A1[3,3]:=mXf[i]-mXa[i]; A1[3,4]:=mYf[i]-mYa[i];
A1[4,1]:=mXb[i]-mXc[i]; A1[4,2]:=mYb[i]-mYc[i];
A1[4,5]:=mXc[i]-mXb[i]; A1[4,6]:=mYc[i]-mYb[i];
A1[5,3]:=mXf[i]-mXk[i]; A1[5,4]:=mYf[i]-mYk[i];
A1[5,7]:=mXk[i]-mXf[i]; A1[5,8]:=mYk[i]-mYf[i];
A1[6,5]:=mXc[i]-Xd; A1[6,6]:=mYc[i]-Yd;
A1[7,7]:=mXk[i]-Xd; A1[7,8]:=mYk[i]-Yd;
A1[8,5]:=mXc[i]-mXk[i]; A1[8,6]:=mYc[i]-mYk[i];
A1[8,7]:=mXk[i]-mXc[i]; A1[8,8]:=mYk[i]-mYc[i];
B1[1]:=Xa_2[i]*(mXb[i]-mXa[i])+Xa_1[i]*(Xb_1[i]-Xa_1[i])+
Ya_2[i]*(mYb[i]-mYa[i])+Ya_1[i]*(Yb_1[i]-Ya_1[i])-
Xb_1[i]*(Xb_1[i]-Xa_1[i])-Yb_1[i]*(Yb_1[i]-Ya_1[i]);
B1[2]:=-Xb_1[i]*(Xb_1[i]-Xf_1[i])-Yb_1[i]*(Yb_1[i]-Yf_1[i])-
Xf_1[i]*(Xf_1[i]-Xb_1[i])-Yf_1[i]*(Yf_1[i]-Yb_1[i]);
B1[3]:=Xa_2[i]*(mXf[i]-mXa[i])+Xa_1[i]*(Xf_1[i]-Xa_1[i])+
Ya_2[i]*(mYf[i]-mYa[i])+Ya_1[i]*(Yf_1[i]-Ya_1[i])-
Xf_1[i]*(Xf_1[i]-Xa_1[i])-Yf_1[i]*(Yf_1[i]-Ya_1[i]);
B1[4]:=-Xb_1[i]*(Xb_1[i]-Xc_1[i])-Yb_1[i]*(Yb_1[i]-Yc_1[i])-
Xc_1[i]*(Xc_1[i]-Xb_1[i])-Yc_1[i]*(Yc_1[i]-Yb_1[i]);
B1[5]:=-Xf_1[i]*(Xf_1[i]-Xk_1[i])-Yf_1[i]*(Yf_1[i]-Yk_1[i])-
Xk_1[i]*(Xk_1[i]-Xf_1[i])-Yk_1[i]*(Yk_1[i]-Yf_1[i]);
B1[6]:=-Xc_1[i]*Xc_1[i]-Yc_1[i]*Yc_1[i];
B1[7]:=-Xk_1[i]*Xk_1[i]-Yk_1[i]*Yk_1[i];
B1[8]:=-Xc_1[i]*(Xc_1[i]-Xk_1[i])-Yc_1[i]*(Yc_1[i]-Yk_1[i])-
Xk_1[i]*(Xk_1[i]-Xc_1[i])-Yk_1[i]*(Yk_1[i]-Yc_1[i]);
Gauss(N,A1,B1,X); {Расчет методом Гаусса }
Xb_2[i]:=X[1]; Yb_2[i]:=X[2];
Xf_2[i]:=X[3]; Yf_2[i]:=X[4];
Xc_2[i]:=X[5]; Yc_2[i]:=X[6];
Xk_2[i]:=X[7]; Yk_2[i]:=X[8];
End; {For}
Closegraph;
For i:=1 to m+1 do Begin
Fiabr[i]:=arctan((mYb[i]-mYa[i])/(mXb[i]-mXa[i]));
Fiab_1[i]:=-(Yb_1[i]-Ya_1[i])/Lab/cos(Fiabr[i]);
Fiab_2[i]:=(-Yb_2[i]+Ya_2[i]+Lab*sin(Fiabr[i])*sqr(Fiab_1[i]))/Lab/cos(Fiabr[i]);
End; {For}
Grafik (m, OK, Fiabr, Fiab_1, Fiab_2, 'Fiabr', 'Fiab_1', 'Fiab_2');
Testpf (48, Fiabr, Fiab_1, Fiab_2, 'Fiab');
Grafik(m, OK, mFiabg, Fidcg, zz, 'Fiabg', 'Fidcg', '');
Grafik(m, OK, mXa, Xa_1, Xa_2, 'Xa', 'Xa_1', 'Xa_2');
TestPF(48, mXa, Xa_1, Xa_2, 'Xa');
TestPF(48, mXb, Xb_1, Xb_2, 'Xb');
Grafik(m, OK, mXb, Xb_1, Xb_2, 'Xb', 'Xb_1', 'Xb_2');
TestPF(48, mYb, Yb_1, Yb_2, 'Yb');
TestPF(48, mXf, Xf_1, Xf_2, 'Xf');
TestPF(48, mYf, Yf_1, Yf_2, 'Yf');
TestPF(48, mXc, Xc_1, Xc_2, 'Xc');
TestPF(48, mYc, Yc_1, Yc_2, 'Yc');
TestPF(48, mXk, Xk_1, Xk_2, 'Xk');
TestPF(48, mYk, Yk_1, Yk_2, 'Yk');
Grafik(m, OK, mYb, Yb_1, Yb_2, 'Yb', 'Yb_1', 'Yb_2');
Grafik(m, OK, mXf, Xf_1, Xf_2, 'Xf', 'Xf_1', 'Xf_2');
Grafik(m, OK, mXf, Xf_1, Xf_2, 'Xf', 'Xf_1', 'Xf_2');
Grafik(m, OK, mYf, Yf_1, Yf_2, 'Yf', 'Yf_1', 'Yf_2');
Grafik(m, OK, mXc, Xc_1, Xc_2, 'Xc', 'Xc_1', 'Xc_2');
Grafik(m, OK, mYc, Yc_1, Yc_2, 'Yc', 'Yc_1', 'Yc_2');
Grafik(m, OK, mXk, Xk_1, Xk_2, 'Xk', 'Xk_1', 'Xk_2');
Grafik(m, OK, mYk, Yk_1, Yk_2, 'Yk', 'Yk_1', 'Yk_2');
End. { Program }
