源程序如下:
mn=6 %齿轮模数
z1=45 %齿轮齿数
alfa_fendu=20*pi/180 %分度圆上的压力角
ha_c=1.4 %齿顶高系数
c_c=0.25 %顶隙系数
ha=ha_c.*mn %齿顶高
hf=(ha_c+c_c).*mn %齿根高
d=mn.*z1 %分度圆直径
db=d.*cos(alfa_fendu) %基圆直径
da=d+2.*ha %齿顶圆直径
df=d-2.*hf %齿根圆直径
rb=db/2 %基圆半径
alfa_a=acos(db/da) %齿顶圆压力角(角度表示)
B=62;%齿宽
Beta=19.*pi/180 %分度圆螺旋角
p=(d/2).*cot(Beta)%节距
H=2.*pi.*p %螺旋面导程
r1=d/2;%齿轮1分度圆半径
z2=29;%齿轮2齿数
a=210;%中心距
E=a;%中心距
r2=a-r1;%齿轮2节圆半径
i21=z1/z2;%传动比
w1=1;%齿轮1旋转角速度
w2=i21*w1;%在后面的计算推导中已经考虑了正负号
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
disp('===================渐开线基圆===========================')
theta_any=0:pi/20:2.*pi; %角度范围
x0=rb.*sin(theta_any); %基圆x坐标
y0=rb.*cos(theta_any); %基圆y坐标
plot(x0,y0,'k-') %绘制圆
hold on
alfa=0:pi/50:alfa_a;
u=tan(alfa);
x1=rb.*sin(u)-rb.*cos(u).*u;
y1=rb.*cos(u)+rb.*sin(u).*u;
plot(x1,y1,'b');%绘制第一条渐开线
hold on
disp('===================单个渐开线===========================')
for i=1:50
fai_1=(((2*pi/z1)/19)*(i-1)-((2*pi/z1)/49)*(i-1));%对fai_1角进行初值的选择
fai_2=i21.*fai_1;
for j=1:20
alfa=(0+((alfa_a)/19)*(j-1));%压力角从0增加到齿顶压力角
%alfa=0:pi/50:alfa_a;
u=tan(alfa);
Q=u.*rb.*a.*i21.*cos(u-fai_1)-u.*rb^2-u.*rb^2.*i21%啮合方程
if Q==0
x2=cos(fai_1+fai_2).*(rb*sin(u)-rb.*cos(u).*u)-sin(fai_1+fai_2).*(rb.*cos(u)+rb.*sin(u).*u);
y2=sin(fai_1+fai_2).*(rb*sin(u)-rb.*cos(u).*u)+cos(fai_1+fai_2).*(rb.*cos(u)+rb.*sin(u).*u);
plot(x2,y2,'s');
hold on
%+++++++++++++++++++++++++++++++啮合线方程++++++++++++++++++++++++++++++++++
x=cos(fai_1).*(rb.*sin(u)-rb.*cos(u).*u)-sin(fai_1).*(rb.*cos(u)+rb.*sin(u).*u);
y=sin(fai_1).*(rb.*sin(u)-rb.*cos(u).*u)+cos(fai_1).*(rb.*cos(u)+rb.*sin(u).*u);
plot(x,y,'d');
hold on
end
end
end
%end |