Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектир. мех.РЭС. Пособие 2012.doc
Скачиваний:
43
Добавлен:
31.05.2015
Размер:
11.58 Mб
Скачать

10. Программы расчета

К программам расчета относятся текстовые программы: Zub.pas, hard.pas и fric.pas. Программы составлены для версии языка Turbo pascal 7.0 и работают с любым персональным компьютером класса Pentium с обьемом оперативной памяти 256 мегабайт. В программе Zub.pas создается экран и программа ожидает одно из восьми возможных событий главного меню:

“1. Внешний вид механизма.

2. Расчет геометрии механизма.

3. Прочностной расчет передачи.

4. Расчет КПД механизма.

5. Силовой расчет механизма.

6. Расчет вала на прочность.

7.Сведения об авторах

8. Выход из программы.”

При вводе внешнего вида дается краткое описание геометрии, а затем при расчете выбирается тип передачи: 1 – прямозубая, 2 – косозубая, 3 – червячная. Вводится шаг, определяется модуль и выбирается стандартный модуль, вводится число колес и зубьев и автоматически рассчитывается геометрия передачи. В программе Zub.pas демонстрируется также основные приемы расчета прочности, силового расчета, коэффициент полезного действия различных зубчатых передач с использованием входных файлов: mechan.dat, mechan1.dat, mechan2.dat, mechan3.dat задающих стандартные значения модуля, коэффициента формы YF (mechan.dat) в зависимости от числа зубьев (mechan1.dat) и значение стандартного межосевого расстояния (mechan3.dat). работа программы заключается в воде определенных стандартных параметров, необходимых для расчета геометрии, силовых характеристик, динамических параметров и прочности зацеплений на контактные напряжения и изгиб. Выполнение любого из возможных 8 событий начинается с нажатия заданной цифры и клавиши “Enter”, переводящей экран к активному режиму, а при нажатии цифры 8 обеспечивается выход из программы. Программа Zub.pas требует наличия файлов qraph.tpu и eqavqa.bgi, находящихся в библиотеке Turbo pascal 7.0 /10-12/.

Программа hard.pas и fric.pas производит расчет геометрии фрикционных передач с жесткой и гибкой связями , их силовой расчет и расчет зацеплений на прочность. Основной пункт главного “меню” включает:

“1. Расчет кинематики.

2. Силовой расчет.

3. Расчет зацеплений на прочность.

4. Выход из программы.”

Нажатием соответствующей клавиши (номера), обеспечивается ввод в соответствующий пункт расчета, а при нажатии клавиши “4” – выход из программы.

Листинг программы Zub.pas

(Программа рсчета зубчатых механизмов)

program zub;

uses graph,crt;

var

gd,gm:integer;

key:char;

procedure box(x1,y1,x2,y2,color:integer);

begin

setfillstyle(1,color);

bar(x1,y1,x2,y2);

setlinestyle(0,1,3);

moveto(x1+7,y1+5);

lineto(x1+7,y2-5);

lineto(x2-7,y2-5);

lineto(x2-7,y1+5);

lineto(x1+7,y1+5);

end;

procedure title;

begin

setbkcolor(black); setcolor(red);

settextjustify(1,1); settextstyle(1,0,5);

outtextxy(310,100,'РАСЧЕТ');

setcolor(green);

outtextxy(310,150,'ЗУБЧАТОЙ');

outtextxy(310,200,'ПЕРЕДАЧИ');

repeat until keypressed; key:=readkey;

clearviewport;

end;

procedure point_1;

const

pi=3.1416;

var

flag:boolean; arccoords:arccoordstype;

i,j,st_ang,end_ang,

x1,x2,y1,y2,x0,y0,l,c:integer;

d,z,ang_0,s1_ang,s1_s_ang,s2_s_ang,x_center:array [1..2] of integer;

t,s1,s1_s,s2_s,d1,d2:array [1..2] of real;

ang: array [1..20,1..2] of integer;

begin

d[1]:=200; z[1]:=20; z[2]:=10;

{Вычисление дополнительных параметров}

d[2]:=trunc(d[1]*z[2]/z[1]);

for i:=1 to 2 do begin

t[i]:=d[i]*pi/z[i];

d1[i]:=d[i]+0.6*t[i];

d2[i]:=d[i]-0.4*t[i];

s1[i]:=0.5*t[i];

s1_ang[i]:=trunc(180/z[i]);

end;

clearviewport;

l:=trunc(d1[1]+d2[2]+2) div 2;

x_center[1]:=trunc(320+l/2);

x_center[2]:=x_center[1]-l;

ang_0[1]:=180-trunc(s1_ang[1]/2);

ang_0[2]:=270-s1_ang[1];

setbkcolor(black); setcolor(green);

for i:=0 to 1 do begin

setactivepage(i); setcolor(white); setbkcolor(black);

end;

for i:=1 to 2 do begin

s1_s[i]:=0.6*s1[i];

s1_s_ang[i]:=trunc(360*s1_s[i]/(d1[i]*pi));

s2_s[i]:=0.6*s1[i];

s2_s_ang[i]:=trunc(360*s2_s[i]/(d2[i]*pi));

end;

repeat

for j:=0 to 1 do begin

if j=0 then

begin

setactivepage(0);

setvisualpage(1);

end

else

begin

setactivepage(1);

setvisualpage(0);

end;

cleardevice; setcolor(white);

settextjustify(1,1);

outtextxy(330,30,'Геометрия зубчатой передачи');

setcolor(white);

for c:=1 to 2 do begin

flag:=false;

for i:=1 to z[c] do

begin

{Окружность выступов}

st_ang:=trunc(ang_0[c]+(s1_ang[c]-s1_s_ang[c]) div 2);

end_ang:=trunc(ang_0[c]+s1_ang[c]-(s1_ang[c]-s1_s_ang[c]) div 2);

arc(x_center[c],trunc(getmaxy/2),st_ang,end_ang,trunc(d1[c]/2));

ang_0[c]:=trunc(ang_0[c]+s1_ang[c]);

getarccoords(arccoords);

if flag=true then

begin

x2:=arccoords.xstart;

y2:=arccoords.ystart;

line(x1,y1,x2,y2);

end

else

begin

x0:=arccoords.xstart;

y0:=arccoords.ystart;

end;

x1:=arccoords.xend;

y1:=arccoords.yend;

{Окружность впадин}

st_ang:=trunc(ang_0[c]+(s1_ang[c]-s2_s_ang[c]) div 2);

end_ang:=trunc(ang_0[c]+s1_ang[c]-(s1_ang[c]-s2_s_ang[c]) div 2);

arc(x_center[c],trunc(getmaxy/2),st_ang,end_ang,trunc(d2[c]/2));

ang_0[c]:=trunc(ang_0[c]+s1_ang[c]);

getarccoords(arccoords);

x2:=arccoords.xstart;

y2:=arccoords.ystart;

line(x1,y1,x2,y2);

x1:=arccoords.xend;

y1:=arccoords.yend;

flag:=true;

end;

x1:=arccoords.xend;

y1:=arccoords.yend;

line(x1,y1,x0,y0);

circle(x_center[c],trunc(getmaxy/2),trunc(d[c]/8));

setfillstyle(1,blue);

if ang_0[c]>360 then ang_0[c]:=ang_0[c]-360;

ang_0[c]:=ang_0[c]+1;

if c=2 then ang_0[2]:=ang_0[2]-1-trunc(z[1]/z[2]);

end;

end;

until keypressed;

key:=readkey; setactivepage(0);

setcolor(yellow);

circle(x_center[1],trunc(getmaxy/2),

trunc(d1[1]/2));

circle(x_center[2],trunc(getmaxy/2),

trunc(d1[2]/2));

outtextxy(180,50,'Это-окружность выступов');

repeat until keypressed;

key:=readkey; setcolor(green);

circle(x_center[1],trunc(getmaxy/2),

trunc(d2[1]/2));

circle(x_center[2],trunc(getmaxy/2),

trunc(d2[2]/2));

outtextxy(165,70,'Это-окружность впадин');

repeat until keypressed;

key:=readkey;

setcolor(CYAN);

circle(x_center[1],trunc(getmaxy/2),

trunc(d[1]/2));

circle(x_center[2],trunc(getmaxy/2), trunc(d[2]/2));

outtextxy(135,90,'А это-делительная');

outtextxy(230,110,'окружность');

repeat until keypressed;

key:=readkey;

settextjustify(0,2); setcolor(magenta);

outtextxy(15,270,'Окружности впадин и выступов очерчивают нижнюю');

outtextxy(15,290,'и верхнюю границы зуба.

Делительная окружность');

outtextxy(15,310,'разделяет зуб на две части - головку и ножку. Очевидно,');

outtextxy(15,330,'что высота зуба равна сумме высот ножки и головки.');

repeat until keypressed;

key:=readkey;

clearviewport;

end;

procedure point_2;

label 4;

var

p,d,m,h,aw,b1,ha,hf,ha1,c,pci,i,u,re,rm,me,dl1,dl2,

de1,de2,he,dae1,dae2,b,q,d1,da1,df1,d2,da2,df2,hf1,

dn,kn,b2,ham:real;

z,z1,z2,n,n1,rec,otv1:integer;

a,da,df:array[1..18] of real;

w:array[1..17] of real;

procedure pryam;

begin clrscr;

write('Введите шаг[мм] зубчатого колеса - ');

readln(p);

m:=p/pi; clrscr;

writeln('ряд 1: 0.1; 0.12; 0.15; 0.2; 0.25; 0.3; 0.4; 0.5;');

writeln(' 0.6; 0.8 ; 1.0 ; 1.25; 1.5; 2.0; 2.5; 3.0;');

writeln(' 4.0; 5.0');writeln;

writeln('ряд 2: 0.14; 0.18; 0.22; 0.28; 0.35; 0.45; 0.55; 0.7;');

writeln(' 0.9 ; 1.125; 1.375; 1.75; 2.25; 2.75; 3.5; 4.5;');

writeln(' 5.5; 6.0');writeln;

writeln('Вычесленное значение модуля m[мм]= ',m:5:3);writeln;

writeln('Выберете стандартный модуль ');

write('используя ряд 1 или ряд 2 -');

readln(m);writeln;

ha1:=1; c:=0.25;

write('Введите число зубчатых колес - ');

readln(n);

n1:=1; i:=1.0; clrscr;

repeat

write('Введите число зубьев ',n1,'-го колеса-');

readln(z);

d:=m*z;

a[n1]:=d;

writeln('Делительный диаметр ',n1,'-го колеса d[мм] = ',d:5:2);

writeln;

if n1>1 then i:=i*a[n1]/a[n1-1]*(-1);

n1:=n1+1;

until n1>n;

writeln('Для продолжения нажмите любую клавишу');

repeat until keypressed;clrscr;

writeln('Значение передаточного отношения i=',i:6:3);

if i<0 then u:=i*(-1) else u:=i;

ha:=ha1*m;

hf:=(ha1+c)*m;

h:=ha+hf;

writeln('Высота зуба h[мм] = ',h:5:2);

n1:=1;

repeat

da[n1]:=a[n1]+2*ha1*m;

writeln('Значение диаметра вершины зубьев',n1,'-го колеса da[мм] = ',da[n1]:5:2);

df[n1]:=a[n1]-2*(ha1+c)*m;

writeln('Значение диаметра впадин df[мм] = ',df[n1]:5:2);

n1:=n1+1;

until n1>n;

n1:=1;

repeat

aw:=0.5*(a[n1]+a[n1+1]);

write('Значение межосевого расстояния',n1,'-й зубчатой пары ');

writeln('aw[мм]=',aw:6:2);

n1:=n1+1;

until n1=n;

writeln('Определение ширины зубчатого венца--');

writeln('! Выбор коффициента pciba !');

writeln('--------------------------------------------------');

writeln('! 0.01-0.1 ! Кинематические и легконагруженные передачи !');

writeln('--------------------------------------------------');

writeln('! 0.1-0.25 ! Легко и средненагруженные передачи !');

writeln('--------------------------------------------------');

writeln('! 0.25-0.40 ! Зубчатые педачи при повышенной жесткости валов !');

writeln('--------------------------------------------------');

write('Выберите значение коэффициента pciba= ');

readln(pci);

b1:=aw*pci;

writeln('Ширина венца зубчатого колеса b[мм]=',b1:5:2);

end;

procedure kosoz;

begin

write('Введите шаг[мм] зубчатого колеса - ');

readln(p);

write('Введите число зубьев 1-го колеса-');

readln(z1);

write('Введите число зубьев 2-го колеса-');

readln(z2);

clrscr;

me:=p/pi;

re:=0.5*me*sqrt(sqr(z1)+sqr(z2));

writeln('Значение внешнего конусного расстояния re[мм] = ',re:7:4);

writeln;

b:=0.3*re;

rm:=re-0.5*b;

writeln('Значение среднего конусного расстояния rm[мм] = ',rm:7:4);

writeln;

dl1:=arctan(z1/z2);

dl2:=pi/2-dl1;

writeln('Углы делительных конусов:');

writeln(' dl1[рад] = ',dl1:7:4);

writeln(' dl2[рад] = ',dl2:7:4);writeln;

de1:=me*z1;

de2:=me*z2;

writeln('Внешний делительный диаметр :');

writeln(' de1[мм] = ',de1:7:4);

writeln(' de2[мм] = ',de2:7:4);

writeln;

ha1:=1;

ha:=ha1*me;

dae1:=de1+2*ha*cos(dl1);

dae2:=de2+2*ha*cos(dl2);

writeln('Внешний диаметр вершин :');

writeln(' dae1[мм] = ',dae1:7:4);

writeln(' dae2[мм] = ',dae2:7:4);

writeln;

c:=0.2;

he:=(2*ha1+c)*me;

writeln('Внешняя высота зуба he[мм] = ',he:7:4);writeln;

b:=sqrt(re*re-sqr(de1/2));

writeln('Расчетное расстояние b[мм] = ',b:7:4);writeln;

u:=z2/z1;

writeln('Передаточное число в конической передаче u = ',u:7:4);

end;

procedure cherv;

begin

clrscr;

write('Введите шаг[мм] = ');

readln(p);clrscr;

m:=p/pi;

writeln('Значение модуля зацепления в осевом сечении червяка m =',m:6:3);

writeln('ряд 1: 0.10; 0.125; 0.16; 0.2; 0.25; 0.315; 0.4; 0.5;');

writeln(' 0.63; 0.8 ; 1.0 ; 1.25; 1.6; 2.0; 2.5; 3.15;');

writeln(' 4.0; 5.0');writeln;

writeln('ряд 2: 0.12; 0.15; 0.3; 0.6;1.5;3.0;3.5;4.0;5.0;');writeln;

writeln('Вычесленное значение модуля m[мм]= ',m:5:3);writeln;

writeln('Выберете стандартный модуль ');

write('используя ряд 1 или ряд 2 -');

readln(m);

write('Введите число зубьев колеса =');

readln(z2);

write('Введите число витков червяка =');

readln(z1);

writeln(' Табл.1 ');

writeln('------------------------------------------------------');

writeln('! m ! q ! z1 !');

writeln('------------------------------------------------------');

writeln('! 1.0 ! 16 ! 1 !');

writeln('! ! 20 ! 1;2;4 !');

writeln('------------------------------------------------------');

writeln('! 1.25 ! 12.5;16;20 ! 1;2;4 !');

writeln('------------------------------------------------------');

writeln('! 1.6 ! 10;12.5;16;20 ! 1;2;4 !');

writeln('------------------------------------------------------');

writeln('! 2.0;2.5;3.15 ! 8;10;12.5;16 ! 1;2;4 !');

writeln('! ! 20 ! !');

writeln('------------------------------------------------------');

writeln('Выберете коэффициенты диаметра червяка q из табл.1');

writeln('в соответствии с модулем m и z1 ');

write('q = ');

readln(q);clrscr;

ha1:=1.0; c:=0.2;

hf1:=ha1+c;

d1:=m*q;

da1:=d1+2*ha1*m;

df1:=d1-2*(ha1+c)*m;

writeln('Значение делительного диаметра червяка d1[мм] = ',d1:8:3);

writeln('Значение диаметра вершин червяка da1[мм] = ',da1:8:3);

writeln('Значение диаметра впадин червяка df1[мм] = ',df1:8:3);

writeln;

if (z1=1)or(z1=2) then b1:=(11+0.06*z2)*m

else b1:=(12.5+0.09*z2)*m;

writeln('Значение длины нарезанной части червяка b1[мм] = ',b1:8:3);

writeln('Угол обхвата червяка колесом 2*delta=70...120');

writeln('Угол зацепления aw=20');writeln;

d2:=m*z2;

da2:=m*(z2+2);

df2:=m*(z2-2.4);

if z1=1 then kn:=2*m;

if z1=2 then kn:=1.5*m

else kn:=m;

dn:=da2+kn;

writeln('Значение делительного диаметра колеса d2[мм] = ',d2:8:3);

writeln('Значение диаметра вершин колеса da2[мм] = ',da2:8:3);

writeln('Значение диаметра впадин колеса df2[мм] = ',df2:8:3);

writeln('Значение начального диаметра колеса dn[мм] = ',dn:8:3);

b2:=0.75*da1;

writeln('Ширина венца зубчатого колеса b[мм]=',b2:5:2);

ham:=arctan(m*z1/d1);

writeln('Значение делительного угла подъема винтовой линии gamma[рад] = ',ham:5:3);

aw:=0.5*m*(z2+q);

writeln('Значение межосевого расстояния aw = ',aw:8:3);

i:=z2/z1;

writeln('Значение передаточного отношения i=',i:6:3);

end;

begin

closegraph;

4: clrscr;

writeln('Выберете тип передачи (1-прямозубая;2-косозубая;3-червячная)');

read(rec);

case rec of

1:pryam;

2:kosoz;

3:cherv;

end;

writeln('Для продолжения нажмите любую клавишу');

repeat until keypressed;clrscr;

writeln('Желаете ли продолжить работу с программой ? [1=да/2=нет]');

read(otv1);

if otv1=1 then goto 4;

initgraph(gd,gm,'c:\tp\bgi');

exit

end;

procedure point_3;

label 1;

var

i,z1,z2,x,z:integer;

g,c,s,d,u,t,e1,e2,f,f1,x1,amod2,amod3,zs,kfs,kfl,yf,signfs,

signfa,signf0,sf,b1,b2,sh,sh1,aw,signh,yf1,yf2,s1,s2,sn,

l,kb1,kb2,ep,sg,a1,a,amod,amod1:real;

ff:text;

w:array[1..35] of real;

w1:array[1..11] of real;

q,kb,nh,siga,sign,sigb,sig:array[1..2] of real;

procedure delw;

var i:integer;

begin

for i:=1 to 35 do w[i]:=0;

end;

begin

closegraph;

1: clrscr; textbackground(1); clrscr;

write('Введите тип материала колеса (1-сталь;2-бронза;3-латунь) ');

readln(x);

write('Введите коэффициент динамической нагрузки g = ');

readln(g);

write('Введите коэффициент динамичности внешней нагрузки c = ');

readln(c);

write('Введите коэффициент неравномерности нагрузки по длине зуба s = ');

readln(s);

write('Введите коэффициент длины зуба pciba = ');

readln(d);

write('Введите передаточное число u = ');

readln(u);

write('Введите крутящий момент на шестерне t = ');

readln(t);

write('Введите модуль упругости материала шестерни e1 = ');

readln(e1);

write('Введите модуль упругости материала колеса e2 = ');

readln(e2);

writeln('Введите число оборотов зубчатых колес q1,q2 ');

readln(q[1]);

readln(q[2]);

write('Введите срок службы зацепления l = ');

readln(l);

write('Введите значение твердости шестерни kb1 = ');

readln(kb[1]);

write('Введите значение твердости колеса kb2 = ');

readln(kb[2]);

write('Введите допускаемый коэффициент безопасности sh = ');

readln(sh);

write('Введите допускаемый коэффициент безопасности для изгиба sh1 = ');

readln(sh1);

for i:=1 to 2 do begin

nh[i]:=60*l*q[i];

sigb[i]:=(2*kb[i]+70)/sh;

if x=1 then x1:=2 else x1:=1.2;

siga[i]:=x1*sigb[i];

f:=0.0012*sqr(sqr(kb[i]))/nh[i];

if x=1 then f1:=1/6;

if (x=2) or (x=3) then f1:=1/8;

sign[i]:=sigb[i]*exp(f1*ln(f));

sig[i]:=sign[i];

if siga[i]<sign[i] then sig[i]:=siga[i];

if sigb[i]>sign[i] then sig[i]:=sigb[i];

end;

sg:=sig[1];

if sig[2]<sig[1] then sg:=sig[2];

ep:=2.0*e1*e2/(e1+e2);

f1:=(t*g*c*s*ep)/(sqr(sg)*d*u);

a1:=0.82*(u+1.0)*exp((1/3)*ln(f1));

assign(ff,'mechan3.dat');

reset(ff);

i:=1;

while not eoln(ff) do begin

read(ff,w[i]);

i:=i+1;

end;

close(ff);

i:=1;

repeat

i:=i+1;

aw:=w[i];

until w[i]>=a1;delw;

sf:=1.75;kfs:=1;kfl:=1;

if kb[1]>kb[2] then signf0:=1.8*kb[2] else signf0:=1.8*kb[1];

signfa:=(signf0/sf)*kfs*kfl;

b2:=d*aw;b1:=1.12*b2;

amod2:=6.8*t*(u+1)/(u*a1*b1*signfa);

assign(ff,'mechan.dat');

reset(ff);

i:=1;

while not eoln(ff) do

begin

read(ff,w[i]);

i:=i+1;

end;

close(ff);

i:=0;

repeat

i:=i+1;

amod:=w[i];

until w[i]>=trunc(amod2*10)/10;delw;

writeln;

zs:=2*aw/amod;

z1:=trunc(zs/(u+1));

z2:=trunc(zs-z1); signh:=310/(aw*u)*sqrt(t*1.2*(u+1)*

sqr(u+1)/b2);

writeln('siga1[МПа] = ',siga[1]:6:1);

writeln('siga2[МПа] = ',siga[2]:6:1);

writeln('sigb1[МПа] = ',sigb[1]:6:1);

writeln('sigb2[МПа] = ',sigb[2]:6:1);

writeln('signfa[МПа] = ',signfa:6:1);

writeln('Стандартное значение модуля

amod = ',amod:5:3);

writeln('Приблеженное межосевое расстояние a1 = ',a1:8:4);

writeln('Точное межосевое расстояние a = ',aw:8:4);

writeln('Расчетное контактное напряжение signh = ',signh:6:1);

assign(ff,'mechan1.dat');

reset(ff);

i:=1;

while not eoln(ff) do

begin

read(ff,w[i]);

i:=i+1;

end;

close(ff);

assign(ff,'mechan2.dat');

reset(ff);

i:=1;

while not eoln(ff) do

begin

read(ff,w1[i]);

i:=i+1;

end;

close(ff);

i:=0;

repeat

i:=i+1;if i<>11 then begin

if z1=w[i] then yf1:=w1[i];

if z2=w[i] then yf2:=w1[i];end;

if (z1>w[i])and(z1<w[i+1])and(i<=10) then yf1:=(w1[i]+w1[i+1])/2;

if (z2>w[i])and(z2<w[i+1])and(i<=10) then yf2:=(w1[i]+w1[i+1])/2;

if z1>100 then yf1:=3.6;

if z2>100 then yf2:=3.6;

until i>10;

s1:=1.8*kb[1]/1.75/yf1;

s2:=1.8*kb[2]/1.75/yf2;

sn:=s1;

yf:=yf2;

if s1>s2 then begin sn:=s2;yf:=yf1;end;

if z1>z2 then z:=z2 else z:=z1;

signfs:=yf*(2*t/(amod*z)/(b2*amod))*1.4;

writeln('Прочность зубьев на изгиб signf2[МПа] = ' ,signfs:6:1);textbackground(black);

repeat until keypressed;

initgraph(gm,gd,'c:\tp\bgi');

end;

procedure point_4_1;

var f_n,f_tr,z1,z2,n:real;

begin

closegraph;

clrscr;

writeln('Введите нормальную нагрузку в зацеплении зубчатых колес Fn[H]=');

gotoxy(63,1);

read(f_n);

writeln('Введите коэффициент трения скольжения в зацеплении fтр=');

gotoxy(56,2);

read(f_tr);

writeln('Введите число зубьев первого колеса z1=');

gotoxy(40,3);

readln(z1);

writeln('Введите число зубьев второго колеса z2=');

gotoxy(40,4);

readln(z2);writeln;

writeln('Надо подумать...');

delay(20);

writeln;

n:=1-(f_n+3)*f_tr*3.14*(1/z1+1/z2)/(f_n+0.18);

writeln('КПД механизма равен ',n);

repeat until keypressed;

initgraph(gd,gm,'c:\tp\bgi');

end;

procedure point_4_2;

var b,ro,n:real;

begin

closegraph;clrscr;

writeln('Введите угол наклона зубьев ведомого колеса бета2=');

gotoxy(51,1);

read(b);

b:=b*3.14/180;

writeln('Введите приведенный угол трения в зацеплении ro=');

gotoxy(50,2);

read(ro);

ro:=ro*3.14/180;

writeln;

n:=0.95*sin(b)*cos(b+ro)/(cos(b)*sin(b+ro));

writeln('КПД механизма равен ',n);

repeat until keypressed;

initgraph(gd,gm,'c:\tp\bgi');

end;

procedure point_4_3;

var z,d,m,ro,tangent,ang,n:real;

begin

closegraph;

clrscr;

writeln('Введите число витков червяка z=');

gotoxy(32,1);

read(z);

writeln('Введите диаметр червяка d=');

gotoxy(28,2);

read(d);

writeln('Введите модуль передачи m=');

gotoxy(28,3);

read(m);

writeln('Введите приведенный угол трения в зацеплении ro=');

gotoxy(49,4);

read(ro);

ro:=ro*3.14/180;

tangent:=z*m/d;

ang:=arctan(tangent);

n:=0.95*tangent*cos(ang+ro)/sin(ang+ro);

writeln('КПД механизма равен ',n);

repeat until keypressed;

initgraph(gd,gm,'c:\tp\bgi');

end;

procedure point_4;

label 1;

begin

1:clearviewport;

settextjustify(1,1);

setbkcolor(darkgray);

setcolor(white);

box(163,28,470,75,magenta);

settextstyle(1,0,1);

outtextxy(320,50,'Выбор типа передачи');

box(180,140,460,230,cyan);

settextjustify(0,1);

outtextxy(200,160,'1. Прямозубая');

outtextxy(200,180,'2. Косозубая');

outtextxy(200,200,'3. Червячная');

repeat until keypressed;

key:=readkey;

case key of

'1':point_4_1;

'2':point_4_2;

'3':point_4_3;

else goto 1;

end;

clearviewport;

end;

procedure point_5_1;

var t,d,a,ft,fr,fn:real;

begin

closegraph;

clrscr;

writeln('Введите крутящий момент T=');

gotoxy(28,1);

read(t);

writeln('Введите диаметр колеса d=');

gotoxy(27,2);

read(d);

writeln('Введите угол альфа-дубль-в=');

gotoxy(29,3);

read(a);

a:=a*3.14/180;

ft:=2*t/d;

fr:=ft*sin(a)/cos(a);

fn:=ft/cos(a);

writeln('Ft=',ft);

writeln('Fr=',fr);

writeln('Fn=',fn);

repeat until keypressed;

initgraph(gd,gm,'c:\tp\bgi');

end;

procedure point_5_2;

var t,d,g,a,fi,ft1,ft2,fn,fr:real;

begin

closegraph;

clrscr;

writeln('Введите крутящий момент Т2=');

gotoxy(28,1);

read(t);

writeln('Введите диаметр d2=');

gotoxy(20,2);

read(d);

writeln('Введите делительный угол подъема винтовой линии гамма=');

gotoxy(55,3);

read(g);

g:=g*3.14/180;

writeln('Введите угол альфа-дубль-в=');

gotoxy(28,4);

read(a);

a:=a*3.14/180;

writeln('Введите угол трения =');

gotoxy(22,5);

read(fi);

fi:=fi*3.14/180;

ft2:=2*t/d;

fr:=ft2*sin(a)/cos(a);

ft1:=ft2*sin(g+fi)/cos(g+fi);

fn:=ft2/(cos(g)*cos(a));

writeln;

writeln('Ft1=',ft1);

writeln('Fr=',fr);

writeln('Ft2=',ft2);

writeln('Fn=',fn);

repeat until keypressed;

initgraph(gd,gm,'c:\tp\bgi');

end;

procedure point_5;

label 1;

begin

1:clearviewport;

settextjustify(1,1);

setbkcolor(darkgray);

setcolor(white);

box(163,28,470,75,magenta);

settextstyle(1,0,1);

outtextxy(320,50,'Выбор типа передачи');

box(180,140,460,210,cyan);

settextjustify(0,1);

outtextxy(200,160,'1. Прямозубая');

outtextxy(200,180,'2. Червячная');

repeat until keypressed;

key:=readkey;

case key of

'1':point_5_1;

'2':point_5_2;

else goto 1;

end;

clearviewport;

end;

procedure point_6;

var

d,Mp,sigma_i,Fx,sigma_s,t,tau,sigma:real;

begin

closegraph;

textbackground(blue);

clrscr;

writeln('Введите диаметр сечения d[мм]=');

gotoxy(31,1);

read(d);

writeln('Введите расчетный изгибающий момент Мр[Н*мм]=');

gotoxy(46,2);

read(Mp);

sigma_i:=Mp/(0.1*d*d*d);

writeln('Введите силу, вызывающую сжатие или растяжение Fx[H]=');

gotoxy(54,3);

read(Fx);

sigma_s:=Fx*4/(3.1415*d*d);

writeln('Введите крутящий момент Tх[Н*мм]=');

gotoxy(34,4);

read(t);

tau:=t/(0.2*d*d*d);

sigma:=sqrt((sigma_i+sigma_s)*(sigma_i+sigma_s)+3*tau*tau);

writeln;

writeln('Приведенное напряжение СИГМАпр=',sigma);

repeat until keypressed;

initgraph(gd,gm,'c:\tp\bgi');

end;

procedure point_7;

begin

setbkcolor(black); clearviewport;

settextjustify(1,1); setcolor(cyan);

outtextxy(320,50,'Программу разработал:');

outtextxy(320,180,'доцент кафедры РЭУС');

outtextxy(320,200,'Андреев Игорь Викторович');

repeat until keypressed;

key:=readkey;

clearviewport;

end;

procedure main_menu;

label 1,2;

begin

2:settextjustify(1,1);

setbkcolor(darkgray); setcolor(white);

box(163,28,470,75,magenta); settextstyle(1,0,1);

outtextxy(320,50,'Расчет зубчатой передачи');

box(120,120,520,300,cyan);

settextjustify(0,1);

outtextxy(140,140,'1. Внешний вид механизма');

outtextxy(140,160,'2. Расчет геометрии механизма');

outtextxy(140,180,'3. Прочностной расчет механизма');

outtextxy(140,200,'4. Расчет КПД механизма');

outtextxy(140,220,'5. Силовой расчет механизма');

outtextxy(140,240,'6. Расчет вала на прочность');

outtextxy(140,260,'7. Сведения об авторах');

outtextxy(140,280,'8. Выход из программы');

repeat until keypressed;

key:=readkey;

case key of

'1':point_1;

'2':point_2;

'3':point_3;

'4':point_4;

'5':point_5;

'6':point_6;

'7':point_7;

'8':goto 1;

end;

goto 2;

1: end;

begin

gd:=vga;

gm:=vgamed;

initgraph(gd,gm,'c:\tp\bgi');

title;

main_menu;

closegraph;

end.

Листинг программы Hard.pas

{Программа расчета фрикционной передачи с жесткой связью}

program Hard;

uses crt;

label 1,2;

var

key,key1 : char;

FD1,FD2,FE,FI12 : real;

GUp,GHp,GN1,GP1,Gh,GT1,GT2 : real;

HR1,HR2,HE1,HE2,HM1,HM2,HF,HB,HSigmaDop,HSigma, HRpr,HEpr : real;

begin

Textcolor(White);

Textbackground(Blue);

1:Clrscr;

writeln('Расчет механизма жесткой передачи');

writeln(' Выберите пункт меню:');

writeln;

writeln('1 - расчет кинематики;');

writeln('2 - силовой расчет;');

writeln('3 - расчет зацепления на прочность');

writeln('4 - выход из программы.');

Key:=readkey;

case key of

'1':begin

writeln('Кинематика:');

write('Введите диаметр первого шкива D1: ');

readln(FD1);

write('Введите диаметр второго шкива D2: ');

readln(FD2);

write('Введите коэффициент E: ');

readln(FE);

FI12:=FD2*FE/FD1;

writeln('Передаточное отношение I12 =', FI12:8:2);

end;

'2':begin

writeln('Силовой:');

write('Двигатель с редуктором? (1-да, 2-нет)');

readln(key1);

if key1='1' then begin

write('Введите передаточное число редуктора Up: ');

readln(GUp);

write('Введите КПД редуктора: ');

readln(GHp);

end;

write('Введите число оборотов двигателя n1: ');

readln(GN1);

write('Введите мощность двигателя P1: ');

readln(GP1);

write('Введите КПД передачи: ');

readln(GH);

write('Введите передаточное отношение I12: ');

readln(FI12);

if key1='1' then GT1:=((9550*GP1)/(GN1*GUp))*GHp

else GT1:=9550*GP1/GN1;

GT2:=GT1*FI12*GH;

writeln('Крутящий момент на ведущем валу:',GT1:8:2);

writeln('Крутящий момент на ведомом валу:',GT2:8:2);

end;

'3':begin

writeln('Прочность:');

writeln('Введите радиусы кривизны в точках контакта: ');

write(' R1: ');

readln(HR1);

write(' R2: ');

readln(HR2);

writeln('Введите модули упругости дисков:');

write(' E1: ');

readln(HE1);

write(' E2: ');

readln(HE2);

writeln('Введите коэфф. Пуассона материалов дисков:');

write(' M1: ');

readln(HM1);

write(' M2: ');

readln(HM2);

write('Введите силу притяжения дисков: ');

readln(HF);

write('Введите ширину площадки контакта: ');

readln(HB);

write('Введите допустимое контактное напряжение: ');

readln(HSigmaDop);

HRpr:=HR1*HR2/(HR1+HR2);

HEpr:=2*HE1*HE2/(HE1*(1-HM2*HM2)+HE2*(1-HM1*HM1));

HSigma:=sqrt((1/(2*pi))*(HF/HB)*(HEpr/HRpr));

writeln('Контактное напряжение: ',HSigma:8:2);

If HSigma > HSigmaDop then

writeln('Расчет не верен, так как контактное ',

'напряжение больше допустимого');

end;

'4':begin

write('Действительно желаете закончить работу?');

writeln(' (1-Да; 2-Нет)');

Key:=readkey;

If Key='1' then goto 2 else goto 1;

end;

else goto 1;

end;

write('Расчет закончен. Для продолжения ',

'нажмите Enter');readln;

goto 1;

2:writeln('Работа программы закончена.');

end.

Листинг программы Fric.pas

{Программа расчета механизма фрикционной передачи с гибкой сввязью}

program Fric;

uses crt;

label 1,2;

var

key : char;

FD1,FD2,FC,FU,Fa,FLp,Falfa : real;

GF0,GF1,GF2,GFb,GF,GFT,GUs : real;

HE,HD,HT1,HS,HSigma0,HSigmaM : real;

begin

Textcolor(White);

Textbackground(Blue);

1:Clrscr;

writeln('Расчет механизма фрикционной передачи');

writeln(' Выберите пункт меню:');

writeln; writeln('1 - расчет геометрии;');

writeln('2 - силовой расчет;');

writeln('3 - расчет зацепления на прочность');

writeln('4 - выход из программы.');

Key:=readkey;

case key of

'1':begin

writeln('Геометрия:');

write('Введите диаметр первого шкива D1: ');

readln(FD1);

write('Введите передаточное число U: ');

readln(FU);

write('Введите коэффициент C: ');

readln(FC);

FD2:=FD1*FU;

writeln('Диаметр второго шкива D2=', FD2:8:2);

Fa:=FD2*FC;

FLp:=2*Fa+0.5*pi*(FD1+FD2)+

0.25*(FD2-FD1)*(FD2-FD1)/Fa;

Falfa:=180-57*((FD2-FD1)/Fa);

writeln('Длина ремня Lp=',FLp:8:2);

writeln('Угол охвата ведущего шкива Alfa1=', Falfa:8:2);

end;

'2':begin

writeln('Силовой:');

write('Введите напряжение предварительного ',

'натяжения Sigma0: ');

readln(HSigma0);

write('Введите площадь сечения гибкой связи S: ');

readln(HS);

write('Введите крутящий момент T1: ');

readln(HT1);

write('Введите диаметр первого шкива D1: ');

readln(FD1);

write('Введите угол охвата ведущего шкива Alfa1: ');

readln(Falfa);

write('Введите коэффициент трения скольжения f: ');

readln(GF);

GF0:=HSigma0*HS;

GF1:=GF0+HT1/FD1;

GF2:=GF0-HT1/FD1;

GFb:=2*GF0*sin(Falfa/2);

writeln('Начальная сила натяжения F0=',GF0:8:2);

writeln('Сила по дуге охвата 1-го шкива F1=',GF1:8:2);

writeln('Сила по дуге охвата 2-го шкива F2=',GF2:8:2);

writeln('Сила нагрузки валов Fв=',GFb:8:2);

GFT:=GF1-GF2;

GUs:=(GFt/2)*((exp(GF*Falfa)+1)/(exp(GF*Falfa)-1));

If GF0 < GUs then

writeln('Расчет неверен, так как не выполняется ',

'предельное соотношение между силами F1 и F2');

end;

'3':begin

writeln('Прочность:');

write('Введите модуль упругости ремня E: ');

readln(HE);

write('Введите толщину ремня Delta: ');

readln(HD);

write('Введите диаметр первого шкива D1: ');

readln(FD1);

write('Введите крутящий момент T1: ');

readln(HT1);

write('Введите площадь сечения гибкой связи S: ');

readln(HS);

write('Введите напряжение предварительного ',

'натяжения Sigma0: ');

readln(HSigma0);

HSigmaM:=HSigma0+(2*HT1)/(FD1*HS)*0.5+

HE*HD/FD1;

writeln('Наибольшее напряжение в сечении ремня ',

'при набегании его на малый шкив: ',HSigmaM:8:2);

end;

'4':begin

write('Действительно желаете закончить работу?');

writeln(' (1-Да; 2-Нет)');

Key:=readkey;

If Key='1' then goto 2 else goto 1;

end;

else goto 1;

end;

write('Расчет закончен. Для продолжения ',

'нажмите Enter');readln;goto 1;

2:writeln('Работа программы закончена.');

end.

ЗАКЛЮЧЕНИЕ

Приведенные методы и программы расчета зубчатых и фрикционных передач позволяет оценить правильность выбора геометрии таких механизмов, их силовых характеристик, определить прочность передач на контактные напряжения и изгиб.

При этом в учебном пособии основное внимание уделялось проектированию передач задающих в основном вращательный характер движения ведомого звена, наряду с особенностями проектирования и других отдельных звеньев. Представленные механизмы получили наибольшее применение в приводах современных антенн, в видеозаписывающей и звуковоспроизводяшей аппаратуре, приводах CD-ROM персональных компьютеров и приводах принтеров матричного типа.

Знание геометрии и динамических характеристик таких механизмов позволяют конструктору-технологу РЭС выбрать более рациональную схему управления РЭС и приобрести навыки по проектированию различного рода механизмов, а определение прочностных и динамических характеристик позволяет осуществить правильный выбор материалов передач и понять основные конструктивные особенности проектирования отдельных звеньев.

Изучение учебного пособия: дает студентам также получения навыков по расчету и конструированию типовых механизмов РЭС, общих методов анализа и синтеза механических устройств, используемых в радиотехнических системах и оформлению конструкторской документации в виде деталировочных и сборочных чертежей.

Настоящее учебное пособие не претендует на всю полноту охвата и анализа существующих механизмов РЭС, оно лишь рассматривает наиболее часто применяемые и технологичные

механизмы РЭС.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

  1. Андреев А.И. Прикладная механика/ А.И. Андреев, И.В. Андреев. Воронеж, ВГТУ, 2008. 180 с.

  2. Иосилевич Г. Б. Прикладная механика / Г. Б. Иосилевич, Г. Б. Строганов, Г. Б. Маслов. М.: Высш. шк., 1989. 351 с.

  3. Красковский Е. Н. Расчет и конструирование механизмов приборов и вычислительных систем / Е. Н. Красковский, Ю. А. Дружинин, Е. А. Филатова. М.: Высш. шк., 1991. 480 с.

  4. Федоренко В. А.Справочник по машиностроительному черчению / В. А. Федоренко, А. И. Шошин. - Л.: Машиностроение, 1981. 410 с.

  5. Андреев И. В. Расчет и проектирование механизмов радиоэлектронных средств: учеб. пособие / И. В. Андреев. Воронеж: ВГТУ, 2001. 109 с.

  6. Курсовое проектирование механизмов РЭС / под ред. Г. И. Рощина. М.: Высш. шк., 1991. 246 с.

  7. Разработка и оформление конструкторской документации РЭА / под ред. Э. Т. Романычевой. М.: Радио и связь, 1989. 440 с.

  8. Фролов М. И. Техническая механика / М. И. Фролов. -М.: Высш. шк., 1990. - 352 с.

  9. Вопилкин Е. А. Расчет и конструирование точных механизмов систем и приборов / Е. А. Вопилкин. М.: Высш. шк., 1981. 320 с.

  10. Фаронов В. В. Turbo pascal 7.0. Практика программирования / В. В. Фаронов. М.: Нолидж, 1997. 432 с.

  11. Turbo Паскаль 7.0.- Киев: Торгово-издательское бюро BHV, 1996. 448 с.

  12. Культин Н. Б. Программирование в Turbo pascal 7.0 и Delphi / Н. Б. Культин. СПб.: БХВ, 2000. 416 с.

ОГЛАВЛЕНИЕ

Введение 3

1. Структура механизмов 4

2. Основные виды механизмов 16

3. Кинематический расчет механизмов 21

4. Расчет геометрии передачи и ее деталей 30

4.1. Фрикционные передачи 30

4.2. Геометрия цилиндрической зубчатой передачи 38

4.3. Конические зубчатые передачи 41

4.4. Геометрия червячной передачи 43

4.5. Передача винт-гайка 45

4.6. Механизмы прерывистого движения 46

5. Силовой расчет механизмов 54

6. Расчет зацеплений на прочность 63

6.1. Прочностные расчеты фрикционных передач и мальтийских механизмов 63

6.2. Износостойкость механизма винт-гайка 65

6.3. Расчет на прочность цилиндрических и конических зубчатых передач 66

6.4. Расчет на прочность червячных передач 73

7. Расчет на прочность валов и осей механизмов 78

8. Выбор конструкционных материалов 81

9. Основы конструирования механизмов и отдельных деталей передач 88

9.1. Конструирование зубчатых колес 88

9.2. Проектирование червяков и червячных колес 92

9.3. Конструирование деталей фрикционных передач 94

9.4. Конструкции валов и осей 96

9.5. Типовые конструкции корпусных деталей 97

10. Программы расчета 110

Заключение 141

Библиографический список 142

Учебное издание

Андреев Александр Игоревич

Андреев Игорь Викторович

ПРОЕКТИРОВАНИЕ МЕХАНИЗМОВ

РАДИОЭЛЕКТРОННЫХ СРЕДСТВ

В авторской редакции

Компьютерный набор И.В. Андреева

Подписано в печать 30.10.2012.

Формат 6084/16. Бумага для множительных аппаратов.

Усл. печ. л. 11,2. Уч.-изд. л. 10,9. Тираж экз.

Заказ №

ФГБОУВПО "Воронежский государственный технический университет"