- •Донбасская государственная машиностроительная академия
- •Владимиров э.А., Шоленинов в.Е.
- •Передаточные функции плоских рычажных механизмов
- •Методические указания
- •Краматорск 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
- •Приложение п Программа для определения пф кулисно-рычажного гиперболографа Вяткина
Приложение м Программа для определения пф механизма с кулисной парой
{$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 }
