Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Удобство рассмотренного аналитического метода кинематического анализа состоит в простоте составления функции положения. Для ее дифференцирования целесообразно применение ПЭВМ. Численное дифференцирование аналитически заданной функции Y(x) заключается в замене Y(x) интерполяционным полиномом Р(х), производные dnP(x) / dxn dnY(x) / dxn которого можно найти аналитически с помощью соответствующих выражений [2]:
dY(x) / dx = (-Y2 + 8Y1 - 8Y-1 + Y-2) / 12h;
d2Y(x) / dx2 = (-Y2 + 16Y1 - 30Y0 + 16Y-1 - Y-2) / 12h2,
где h – шаг дифференцирования;
Y-2, Y-1, Y0, Y1 и Y2 – значения функции Y(x) при соответствующей величине х;
x0 – исходное значение х;
х-2 = x0 - 2h;
x-1 = x0 - h;
x1 = x0 + h;
x2 = x0 + 2h.
Для решения задач кинематического анализа плоских четырехзвенных механизмов, в состав которых входят структурные группы различных видов, могут быть составлены программы на простом в обращении языке Турбо-Бейсик в соответствии со схемой алгоритма, представленной на рис. 2.27. В блок-схеме используются следующие условные обозначения:
N – количество рассматриваемых положений механизма;
X(I) – значение угла поворота входного звена в соответствующем положении механизма;
h – шаг дифференцирования;
F1 – первая производная функции Y(x);
F2 – вторая производная функции Y(x).
Эти же программы расчета кинематических характеристик могут быть использованы для исследования кинематики многозвенных механизмов 2-го класса, кинематические цепи которых состоят из четырехзвенных замкнутых контуров. Данный алгоритм справедлив и для составления программ расчета при анализе пространственных рычажных механизмов.
В качестве примера представлена программа расчета кинематических характеристик кривошипно-ползунного механизма (рис. 2.28).
Рис. 2.28. Схема кривошипно-ползунного механизма
print "кинематический анализ кривошипно-ползунного механизма"
print "введите размеры в метрах кривошипа l1, шатуна l2 и смещения e"
input l1,l2,e
print "введите расстояние до центра масс шатуна ls2"
input ls2
print "введите величину шага дифференцирования h"
input h
dim a(20)
print "введите количество положений механизма n (n<=20)"
input n
for j=1 to n
print "введите значение угла поворота кривошипа, соответствующее положению j. "
print " Начало отсчета - горизонтальное положение кривошипа справа."
print " Положительное направление отсчета - против часовой стрелки."
input a(j)
next j
lprint tab(5);"l1=";using "#.###";l1;
lprint tab(20);"l2=";using "#.###";l2;
lprint tab(35);"e=";using "##.###";e
lprint tab(5);"ls2=";using "#.###";ls2
lprint "=============================================
lprint tab(2);"F0";tab(13);"X";tab(23);"d1X";tab(33);"d2X";
lprint "=============================================
for j=1 to n
i=a(j)
x=3.14125*i/180
x=x
gosub 15:f=y:f2=-30*y
x=x-2*h
gosub 15:f1=y:f2=f2-y
x=x+h
gosub 15:f1=f1-8*y:f2=f2+16*y
x=x+2*h
gosub 15:f1=f1+8*y:f2=f2+16*y
x=x+h
gosub 15:f1=f1-y:f2=f2-y
x=x-2*h
f1=f1/(12*h)
f2=f2/(12*h*h)
lprint tab(0);i;
lprint tab(9);using"####.###";f;
lprint tab(19);using"####.###";f1;
lprint tab(30);using"####.###";f2
lprint "-------------------------------------------------------------------"
next j
lprint "============================================="
lprint tab(2);"F0";tab(13);"F1";tab(23);"d1F1";tab(33);"d2F1"
lprint "============================================="
for j=1 to n
i=a(j)
if i<=180 then 10
if i>180 then 20
10 x=3.14125*i/180
x=x
gosub 30:gosub 35:gosub 45:gosub 50
x=x-2*h
gosub 30:gosub 35:gosub 45:gosub 60
x=x+h
gosub 30:gosub 35:gosub 45:gosub 70
x=x+2*h
gosub 30:gosub 35:gosub 45:gosub 80
x=x+h
gosub 30:gosub 35:gosub 45:gosub 90
x=x-2*h
gosub 100:gosub 110:goto 25
20 x=3.14125*i/180
x=x
gosub 30:gosub 40:gosub 45:gosub 50
x=x-2*h
gosub 30:gosub 40:gosub 45:gosub 60
x=x+h
gosub 30:gosub 40:gosub 45:gosub 70
x=x+2*h
gosub 30:gosub 40:gosub 45:gosub 80
x=x+h
gosub 30:gosub 40:gosub 45:gosub 90
x=x-2*h
gosub 100:gosub 110
25 next j
lprint "==============================================
lprint tab(2);"F0";tab(9);"XS2";tab(16);"d1XS2";tab(26);"d2XS2";
lprint tab(36);"YS2";tab(43);"d1YS2";tab(53);"d2YS2";
lprint tab(64);"VS2";tab(72);"AS2"
lprint "==============================================
for j=1 to n
i=a(j)
if i<=180 then 11
if i>180 then 21
11 x=3.14125*i/180
x=x
gosub 30:gosub 35:gosub 45:gosub 50
x=x-2*h
gosub 30:gosub 35:gosub 45:gosub 60
x=x+h
gosub 30:gosub 35:gosub 45:gosub 70
x=x+2*h
gosub 30:gosub 35:gosub 45:gosub 80
x=x+h
gosub 30:gosub 35:gosub 45:gosub 90
x=x-2*h
gosub 100:gosub 120:goto 26
21 x=3.14125*i/180
x=x
gosub 30:gosub 40:gosub 45:gosub 50
x=x-2*h
gosub 30:gosub 40:gosub 45:gosub 60
x=x+h
gosub 30:gosub 40:gosub 45:gosub 70
x=x+2*h
gosub 30:gosub 40:gosub 45:gosub 80
x=x+h
gosub 30:gosub 40:gosub 45:gosub 90
x=x-2*h
gosub 100:gosub 120
26 next j
end
15 y=l1*cos(x)+sqr((l2^2)-(e-l1*sin(x))^2)
return
30 a=sqr((l2^2)-(e-l1*sin(x))^2)/l2
b=sqr(1-a*a)/a
yr011=atn(b)
return
35 yr11=6.2825-yr011
return
40 yr11=6.2825+yr011
return
45 yr1=yr11-x
y1=180*yr1/3.14125
y2=l1*cos(x)+ls2*cos(yr11)
y3=l1*sin(x)+ls2*sin(yr11)
return
50 ff=yr1: ff2=-30*yr1:
fxs=y2: fxs2=-30*y2:
fys=y3: fys2=-30*y3
return
60 ff1=yr1: ff2=ff2-yr1:
fxs1=y2: fxs2=fxs2-y2:
fys1=y3: fys2=fys2-y3
return
70 ff1=ff1-8*yr1: ff2=ff2+16*yr1:
fxs1=fxs1-8*y2: fxs2=fxs2+16*y2:
fys1=fys1-8*y3: fys2=fys2+16*y3
return
80 ff1=ff1+8*yr1: ff2=ff2+16*yr1:
fxs1=fxs1+8*y2: fxs2=fxs2+16*y2:
fys1=fys1+8*y3: fys2=fys2+16*y3
return
90 ff1=ff1-yr1: ff2=ff2-yr1:
fxs1=fxs1-y2: fxs2=fxs2-y2:
fys1=fys1-y3: fys2=fys2-y3
return
100 ff1=ff1/(12*h)
fxs1=fxs1/(12*h)
fys1=fys1/(12*h)
ff2=ff2/(12*h*h)
fxs2=fxs2/(12*h*h)
fys2=fys2/(12*h*h)
ffg=180*ff/3.14125
vs2=sqr(fxs1*fxs1+fys1*fys1)
as2=sqr(fxs2*fxs2+fys2*fys2)
return
110 lprint tab(0);i;
lprint tab(9);using"####.###";ff;
lprint tab(19);using"####.###";ff1;
lprint tab(30);using"####.###";ff2;
lprint "-------------------------------------------------------------------
return
120 lprint tab(0);i;
lprint tab(5);using"####.###";fxs;
lprint tab(14);using"####.###";fxs1;
lprint tab(23);using"####.###";fxs2;
lprint tab(32);using"####.###";fys;
lprint tab(41);using"####.###";fys1;
lprint tab(50);using"####.###";fys2;
lprint tab(59);using"####.###";vs2;
Примем размеры звеньев: l 1 = 0,02 м, l 2 = 0,70 м, e = 0. Количество рассматриваемых положений механизма n = 5. Изменение угла поворота входного звена от 0о до 40о через 10о. Шаг дифференцирования h = 0,1. Результаты расчетов представлены в таблице ___.
В таблице используются следующие условные обозначения:
X – перемещение точки С, м;
d 1 X – аналог скорости точки С;
d 2 X – аналог ускорения точки С;
F 1 – угол поворота j1, рад.;
d 1 F 1 – аналог угловой скорости поворота звена 2 в кинематической паре В;
d 2 F 1 – аналог углового ускорения поворота звена 2 в кинематической паре В;
XS 2 – проекция перемещения точки S 2 на ось X;
d 1 XS 2 – аналог скорости изменения проекция перемещения точки S 2 на ось X;
d 2 XS 2 – аналог ускорения изменения проекция перемещения точки S 2 на ось X;
YS 2 – проекция перемещения точки S 2 на ось Y;
d 1 YS 2 – аналог скорости изменения проекция перемещения точки S 2 на ось Y;
d 2 YS 2 – аналог ускорения изменения проекция перемещения точки S 2 на ось Y;
VS 2 – величина аналога скорости точки S 2;
AS 2 – величина аналога ускорения точки S 2.
Таблица 1.2
Дата публикования: 2014-11-02; Прочитано: 429 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!