⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gear_referencemark.m

📁 用于分析螺旋锥齿轮接触分析的MATLAB源码
💻 M
📖 第 1 页 / 共 2 页
字号:
                                                   %程序功能:利用局部综合法求取航空狐齿锥齿轮副小轮加工参数
                                                   %开发时间:2008年09月01日
                                                   %开 发 者:刘光磊 樊红卫 谷霁红
clear all %清屏
tic; %对程序的运行时间开始计时,与最后的toc语句对应

global Z_1  Z_2  m_t  beta_m0  bigsigma0  cosi_k  cosi_t  f0  c  K  theta_f20 alphi_c20 %定义基本输入参数为全局变量,减少参数传递时间
%输入变量的说明:
               %1.Z_1         小轮齿数
               %2.Z_2         大轮齿数
               %3.m_t         端面模数
               %4.beta_m0     节锥母线中点处的螺旋角
               %5.bigsigema0  两轮轴线的夹角
               %6.cosi_k      工作齿高系数
               %7.cosi_t      全齿高系数
               %8.f0          齿高系数
               %9.c           顶隙系数
               %10.K          刀盘直径系数
               %11.theta_f20  大轮齿根角
               %12.alphi_c20  大轮刀具的名义齿形角
                   
                   
syms u_g  theta_g  phi_cr2     %定义符号变量,简化计算

load input_gear_blankdata_fhw.txt %对输入变量赋值

%*************************************************1.计算右旋大轮的轮坯几何参数***************************************************%

Z_1=input_gear_blankdata_fhw(1);     
Z_2=input_gear_blankdata_fhw(2);
m_t=input_gear_blankdata_fhw(3);
beta_m0=input_gear_blankdata_fhw(4);
beta_m=beta_m0*pi/180;
bigsigma0=input_gear_blankdata_fhw(5);
bigsigma=bigsigma0*pi/180;
cosi_k=input_gear_blankdata_fhw(6);
cosi_t=input_gear_blankdata_fhw(7);
f0=input_gear_blankdata_fhw(8);
c=input_gear_blankdata_fhw(9);
K=input_gear_blankdata_fhw(10);
theta_f20=input_gear_blankdata_fhw(11);
theta_f2=theta_f20*pi/180;
fid=fopen('D:\1.齿轮研究\4.项目\2.编程\gear\result_GearBlank.txt','W'); %先创建一个存储大轮齿坯计算结果的文本文件
h_k=cosi_k*m_t; %工作齿高
h_t=cosi_t*m_t; %全齿高
d_2=Z_2*m_t; %大轮的分度圆直径
biggama_1=atan(Z_1/Z_2); %小轮的节锥角
biggama_2=bigsigma-biggama_1; %大轮的节锥角
cosi_h=0.39*(1-(Z_1*cos(biggama_2))/(Z_2*cos(biggama_1)));%轮齿法面内齿高方向的变位系数(大轮取为负,小轮取为正)
L_e=d_2/(2*sin(biggama_2));%外锥距
b=min(10*m_t,0.3*L_e); %齿宽
A_m=L_e-0.5*b; %中点锥距
smallgama_2=biggama_2-((h_t-((0.5*h_k)-(cosi_h*m_t)))/L_e); %大轮的根锥角(机床根角、大轮安装角)
D_c2=sqrt((2*(K^2)*(L_e^2))-(A_m^2)*(2-(sin(beta_m))^2))+A_m*sin(beta_m); %大轮加工刀盘的名义直径                         
h_f2=(f0+c+cosi_h)*m_t;%大轮齿根高
Z_R2=(L_e-h_f2/tan(theta_f2))*(sin(biggama_2)/tan(biggama_2-theta_f2)-cos(biggama_2)); %大轮节锥顶点到根锥顶点的距离
array_1=[h_k;h_t;d_2;biggama_1;biggama_2;cosi_h;L_e;b;A_m;smallgama_2;D_c2;h_f2;Z_R2]; %创建一个存放输出参数的列数组
fprintf(fid, '%12.8f\n',array_1); %将计算结果存放到已创建好的文本文件中(小数点后保留8位,输出数据的总宽度不超过12位)
fclose(fid) %关闭存储文件

%*************************************************************结   束********************************************************%

%*************************************************2.由大轮加工刀具的内刀刃切削锥面产成大轮的凸面********************************%

%1.u_g,theta_g:大轮切削锥面的曲面坐标
%2.R_c2:刀尖半径
%3.alphi_c2:刀具齿形角
%4.phi_cr2:摇台转角
%5.r_c2_jxdw:径向刀位
%6.q_2:角向刀位
%7.smallgama_2:大轮的机床安装角(根锥角)
%8.X_B2:大轮垂直轮位
%9.phi_2:被加工大轮转角phi_2=phi_cr2/m_cg
%10.m_cg:加工大轮的切削滚比

D_c2=sqrt((2*(K^2)*(L_e^2))-(A_m^2)*(2-(sin(beta_m))^2))+A_m*sin(beta_m); %大轮加工刀盘的名义直径 
R_c2=0.5*D_c2-0.5*W_2;%内刀刀尖半径
alphi_c2=alphi_c20*pi/180;%大轮刀具的名义齿形角(单位:弧度)
alphi_c2_incutter=alphi_c2+10*No;%大轮刀具的实际齿形角

R_c2=0.5*D_c2-0.5*W_2;%内刀刀尖半径
r_c2=[(R_c2-u_g*sin(alphi_c2))*cos(theta_g);(R_c2-u_g*sin(alphi_c2))*sin(theta_g);-u_g*cos(alphi_c2)];%大轮刀具坐标系S_c2中大轮刀具内刀刃切削锥面方程
N_c2=cross(diff(r_c2,'theta_g'),diff(r_c2,'u_g'));%切削锥面的法矢量
n_c2=N_c2/abs(N_c2);%大轮切削锥面的单位法矢量
phi_2=phi_cr2/m_cg;%大轮切削滚比恒定时
M_cr2c2=[1 0 0 r_c2_jxdw*cos(q_2);0 1 0 r_c2_jxdw*sin(q_2);0 0 1 0;0 0 0 1];%对径矢从S_c2到S_cr2
M_m2cr2=[cos(phi_cr2) sin(phi_cr2) 0 0;-sin(phi_cr2) cos(phi_cr2) 0 0;0 0 1 0;0 0 0 1];%对径矢从S_cr2到S_m2
M_am2=[cos(smallgama_2) 0 sin(smallgama_2) -X_B2*sin(smallgama_2);0 1 0 0;-sin(smallgama_2) 0 cos(smallgama_2) -X_B2*cos(smallgama_2);0 0 0 1];%对径矢从S_m2到S_a
M_2a=[1 0 0 0;0 cos(phi_2) -sin(phi_2) 0;0 sin(phi_2) cos(phi_2) 0;0 0 0 1];%对径矢从S_a到S_2
r_c2_yipie=[(R_c2-u_g*sin(alphi_c2))*cos(theta_g);(R_c2-u_g*sin(alphi_c2))*sin(theta_g);-u_g*cos(alphi_c2);1];%为了利用矩阵乘法做变换对r_c2的变形
r_2(u_g,theta_g,phi_cr2)=M_2a*M_am2*M_m2cr2*M_cr2c2*r_c2_yipie;%坐标系S_2中大轮凸面方程
M_cr2c2_yipie=[1 0 0;0 1 0;0 0 1];%对自由矢量从S_c2到S_cr2
M_m2cr2_yipie=[cos(phi_cr2) sin(phi_cr2) 0;-sin(phi_cr2) cos(phi_cr2) 0;0 0 1];%对自由矢量从S_cr2到S_m2
n_m2=M_m2cr2_yipie*M_cr2c2_yipie*n_c2;%固定坐标系S_m2中大轮切削锥面的单位法矢量
w_2_m2=[-cos(smallgama_2);0;-sin(smallgama_2)];%固定坐标系S_m2中大轮的旋转角速度
w_cr2_m2=[0;0;-m_cg];%固定坐标系S_m2中摇台的旋转角速度
r_m2=M_m2cr2*M_cr2c2*r_c2_yipie;%固定坐标系S_m2中大轮切削锥面上某一点的位置
R_m2=[0;0;X_B2];%S_m2和S_2坐标原点之间的距离
v_cg_m2=cross((w_cr2_m2-w_2_m2),r_m2)-cross(R_m2,w_2_m2);%固定坐标系S_m2中被加工大轮和产形轮之间的相对角速度

%******************************************************************结   束************************************************************%

%**********************************************************3.计算右旋大轮凸面加工参数**************************************************%

fid=fopen('D:\1.齿轮研究\4.项目\2.编程\pinion\result_GearMachiningParameter.txt','W'); %事先创建一个存储大轮加工参数的文本文件
[h_k,h_t,d_2,biggama_1,biggama_2,cosi_h,L_e,b,A_m,smallgama_2,D_c2,h_f2,Z_R2]=Gear_BlankGeometryParameters() %调用轮坯计算子函数
global Z_1  Z_2  m_t  beta_m0  bigsigma0  cosi_k  cosi_t  f0  c  K  theta_f20 %声明全局变量
beta_m=beta_m0*pi/180; %将角度的单位从度转化到弧度

H_c2=A_m-0.5*D_c2*sin(beta_m); %大轮的水平刀位
V_c2=0.5*D_c2*cos(beta_m); %大轮的垂直刀位
r_c2=sqrt(H_c2^2+V_c2^2); %大轮的径向刀位
q_2=asin(V_c2/r_c2); %大轮的角向刀位
X_B2=Z_R2*sin(smallgama_2); %大轮的床位
m_cg=sin(biggama_2)/cos(biggama_2-smallgama_2); %大轮的切削滚比
% 这里:加工大轮时,垂直轮位和轴向轮位均为零。

array_2=[H_c2;V_c2;r_c2;q_2;X_B2;m_cg]; %创建一个存放输出参数的列数组
fprintf(fid, '%12.8f\n',array_2); %将计算结果存到已创建好的文本文件中(小数点后保留8位,输出数据的总宽度不超过12位)
fclose(fid) %关掉存储文件 

%******************************************************************结   束************************************************************%

%***************************************4.选择大轮齿面参考点M,并求出固定坐标系中参考点处的矢径和法矢**************************************%
                                                            
function F=ReferenceMark(variable)
variable=[theta_g phi_cr2];
[derta_x derta_y]=input();
X_M=(A_m+derta_x)*cos(biggama_2)-derta_y*sin(biggama_2);
R_M=(A_m+derta_x)*sin(biggama_2)-derta_y*cos(biggama_2);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -