clear all close all clc %Eingabewerte m_n=5;%Normalmodul [mm] a_0=20;%Normaleingriffswinkel [°] b_0=-22.5;%Schrägverzahnungswinkel [°] z=12;%Zähnezahl [1] h_m=1.0;%Zahnhöhenverhältnis [1] c_m=0.25;%Zahnkopfspielverhältnis [1] r_m=0.38;%Eckenverundungsverhältnis [1] v_m=0.5578641633919119;%Profilverschiebungsverhältnis [1] k_m=0;%Kopfkürzungsverhältnis [1] i=200;%Anzahl Stützpunkte Evolvente [1] j=200;%Anzahl Stützpunkte Trochoide [1] %Umrechnungen a_n=deg2rad(a_0);%Normaleingriffswinkel [rad] b=deg2rad(b_0);%Schrägverzahnungswinkel [rad] %Berechnungen c=c_m*m_n;%Zahnkopfspiel [mm] r=r_m*m_n;%Eckenverrundung [mm] v=v_m*m_n;%Profilverschiebung [mm] k=k_m*m_n;%Kopfkürzung [mm] h_0=h_m*m_n;%halbe Zahnhöhe (ohne Zahnkopfspiel, ohne Kopfkürzung) [mm] h_f=h_0+c;%Zahnfußhöhe (mit Zahnkopfspiel) [mm] h_k=h_0-k;%Zahnkopfhöhe (mit Kopfkürzung) [mm] h=h_k+h_f;%Zahnhöhe (mit Kopfkürzung, mit Zahnkopfspiel) [mm] m_s=m_n/cos(b);%Stirnmodul [mm] a_s=atan(tan(a_n)/cos(b));%Stirneingriffswinkel [rad] r_0=m_s*z/2;%Teilkreisradius [mm] r_g=r_0*cos(a_s);%Grundkreisradius [mm] r_f=r_0-h_f+v;%Fußkreisradius [mm] r_k=r_0+h_k+v;%Kopfkreisradius [mm] r_b=r_0-h_0+v;%Fußkreisradius (ohne Zahnkopfspiel) [mm] r_u=r_0+h_0+v;%Kopfkreisradius (ohne Kopfkürzung) [mm] r_s=r*(1-sin(a_n))/(1-sin(a_s));%Stirneckenverrundung [mm] %Grenzwerte c_m_max=(1-sin(a_n))*(pi/4-tan(a_n)*h_m)/cos(a_n);%maximales Zahnkopfspielverhältnis [1] r_m_max=c_m/(1-sin(a_n));%maximales Eckenverrundungsverhältnis [1] %Funktion Evolvente s=linspace(r_g,r_k,i);%Laufvariable Radius Evolvente [mm] x_e=s.*cos(tan(acos(r_g./s))-acos(r_g./s));%X-Koordinate Evolvente [mm] y_e=s.*sin(tan(acos(r_g./s))-acos(r_g./s));%Y-Koordinate Evolvente [mm] %Drehung Evolvente p=-pi/(z*2)-tan(acos(r_g/r_0))+acos(r_g/r_0)-v*tan(a_s)/r_0;%Drehwinkel Evolvente [rad] x_e_r=x_e*cos(p)-y_e*sin(p);%X-Koordinate Evolvente gedreht [mm] y_e_r=x_e*sin(p)+y_e*cos(p);%Y-Koordinate Evolvente gedreht [mm] %Spiegelung Evolvente x_e_m=x_e_r;%X-Koordinate Evolvente gespiegelt [mm] y_e_m=-y_e_r;%Y-Koordinate Evolvente gespiegelt [mm] %Zahndicke d_r=r_k;%radiale Position für Zahndickenbestimmung [mm] d=2*d_r*((pi+4*v_m*tan(a_n))/(2*z)+tan(a_s)-a_s-tan(acos(r_g/d_r))+acos(r_g/d_r));%Zahndicke [mm] d_m=d/m_s;%Zahndickenverhältnis [1] %Funktion Trochoide r_x=-h_f+r_s+v;%X-Koordinate Mittelpunkt Eckenverrundung [mm] r_y=pi*m_s/4-tan(a_s).*(h_f-r_s+sin(a_s)*r_s)-cos(a_s)*r_s;%Y-Koordinate Mittelpunkt Eckenverrundung [mm] u=linspace(-r_y/r_0,pi/(sqrt(z)*2),j);%Laufvariable Winkel Trochoide [rad] x_t=(r_0+r_x).*cos(u)+(r_0.*u+r_y).*sin(u)+r_s*sin(atan(r_x./(r_0.*u+r_y))+u);%X-Koordinate Trochoide [mm] y_t=-(r_0+r_x).*sin(u)+(r_0.*u+r_y).*cos(u)+r_s*cos(atan(r_x./(r_0.*u+r_y))+u);%Y-Koordinate Trochoide [mm] %Drehung Trochoide q=-pi/z;%Drehwinkel Trochoide [rad] x_t_r=x_t*cos(q)-y_t*sin(q);%X-Koordinate Trochoide gedreht [mm] y_t_r=x_t*sin(q)+y_t*cos(q);%Y-Koordinate Trochoide gedreht [mm] %Spiegelung Trochoide x_t_m=x_t_r;%X-Koordinate Trochoide gespiegelt [mm] y_t_m=-y_t_r;%Y-Koordinate Trochoide gespiegelt [mm] %Darstellung figure(1) hold on plot(x_e_r,y_e_r,'k-');%Evolvente (-) plot(x_e_m,y_e_m,'k-');%Evolvente (+) plot(x_t_r,y_t_r,'b-');%Trochoide (-) plot(x_t_m,y_t_m,'b-');%Trochoide (+) grid axis equal axis ([r_f-2.5*m_s,r_k+2.5*m_s,-2.5*m_s,+2.5*m_s]) xlabel('X-Achse') ylabel('Y-Achse') %Hilfslinien n=10000;%Anzahl Stützpunkte Hilfslinien polar(linspace(pi/z,pi/z,n),linspace(r_f-m_s/2,r_k+m_s/2,n),'r-.');%Zahnteilung (+) polar(linspace(-pi/z,-pi/z,n),linspace(r_f-m_s/2,r_k+m_s/2,n),'r-.');%Zahnteilung (-) polar(linspace(-1.25*pi/z,1.25*pi/z,n),linspace(r_0,r_0,n),'r-.');%Teilkreis polar(linspace(-0.75*pi/z,0.75*pi/z,n),linspace(r_g,r_g,n),'k-.');%Grundkreis polar(linspace(-0.5*pi/z,0.5*pi/z,n),linspace(r_k,r_k,n),'k-');%Kopfkreis polar(linspace(0.75*pi/z,1.25*pi/z,n),linspace(r_f,r_f,n),'b-');%Fußkreis (+) polar(linspace(-0.75*pi/z,-1.25*pi/z,n),linspace(r_f,r_f,n),'b-');%Fußkreis (-) polar(linspace(-0.85*pi/z,0.85*pi/z,n),linspace(r_b,r_b,n),'g--');%Fußkreis ohne Zahnkopfspiel polar(linspace(-0.25*pi/z,0.25*pi/z,n),linspace(r_u,r_u,n),'g--');%Kopfkreis ohne Kopfkürzung %Dateiausgabe B={"StartLoft";"StartCurve"}; M={"EndCurve";"StartCurve"}; S={"EndCurve";"EndLoft";"End"}; E=[x_e_m;y_e_m;zeros(1,i)]; T=[x_t_m;y_t_m;zeros(1,j)]; P=[r_k,0,0;r_0,0,0;r_f,0,0;0,abs(b_0),0;0,z,0]; G(1:2,1)=B; G(3:j+2,1:3)=num2cell(T'); G(3+j:4+j,1)=M; G(5+j:4+j+i,1:3)=num2cell(E'); G(5+j+i:6+j+i,1)=M; G(7+j+i:11+j+i,1:3)=num2cell(P); G(12+j+i:14+j+i,1)=S; if b>0 b_dir=[num2str(abs(b_0),4),'R']; elseif b<0 b_dir=[num2str(abs(b_0),4),'L']; else b_dir=['N']; endif pkg load io file=['Stirnrad',' ',num2str(m_n),'_',num2str(a_0),'_',b_dir,'_',num2str(z),'_',num2str(v_m,4),'.xlsx']; sheet=['Stirnrad',' ',num2str(m_n),'_',num2str(a_0),'_',b_dir,'_',num2str(z),'_',num2str(v_m,4)]; xlswrite(file,G,sheet);