Steering Accuracy Analysis of Cam Mechanism in Complex Trajectory Based on Return Error of Gear Transmission
Abstract
1. Introduction
2. Mathematical Modeling and Kinematic Analysis of the Steering Accuracy of the Car
2.1. Three-Dimensional Model of the Carbon-Free Car
2.2. Analysis of Transmission Error of Gears
2.2.1. Calculation of Maximum Normal Backlash
2.2.2. The Calculation Model of Return Error of Gear Transmission
2.3. Modeling of Car Trajectory
2.4. Car Steering State
2.5. The Theoretical Model of Cam Profile
2.6. The Theoretical Model of Car Trajectory
3. The Numerical Calculation Results of the Return Error of Gear Transmissions of Each Transmission Mechanism of the Car
3.1. The Calculation Result of the Return Error of the Gear Transmission of the Three-Stage Gear Set Transmission
3.2. Numerical Analysis of Car Trajectory
3.3. The Influence of the Return Error of Gear Transmission of the Gear Set Transmission on Cam Steering Accuracy
4. Optimization and Numerical Calculation of Cam Trajectory with Consideration of Return Error of Gear Transmission
4.1. Optimization Measures
4.1.1. Adjust the Transmission Ratio of the Gear Transmission
4.1.2. Optimizing the Cam Profile
4.1.3. Comprehensive Optimization
4.2. The Optimized Trajectory of the Car
5. Physical Production Test
6. Conclusions
- (1)
- The analysis of car motion facilitated the derivation of design and trajectory calculation concepts for the cam, and the construction of a mathematical model for gear return error of gear transmission, considering factors such as center distance and tooth thickness deviation. This foundation supports subsequent calculation and optimization efforts.
- (2)
- The comprehensive return error of gear transmission exhibits a negative correlation with the rear transmission ratio, while the deflection error induced by the return error of gear transmission shows a positive correlation with the peak and valley values of the push stroke. Consequently, a method to increase the rear transmission ratio and optimize the cam profile curve is proposed, aiming to diminish the impact of the return error of gear transmission on the steering accuracy of the car. The optimization results show that the deflection errors are reduced by 24.74% and 27.15%, respectively. Furthermore, comprehensive optimization resulted in a 45.31% reduction in cumulative deflection error.
- (3)
- The trajectory was calculated using MATLAB 2023b, which incorporated the return error of the gear transmission both before and after optimization. This analysis helped quantify the impact of the return error of gear transmission on the car’s trajectory, thereby corroborating the theoretical soundness of the optimization method. The validity of these findings was further confirmed through the construction and testing of a physical prototype. This study provides critical insights for the design, manufacturing, and trajectory calibration of equipment with complex motion paths. Beyond this, the proposed optimization method offers technical support for achieving precise motion control in broader applications requiring complex trajectories, such as in advanced machining and robotic guidance within automated production lines, thereby paving the way for its adoption in these fields.
Author Contributions
Funding
Data Availability Statement
Acknowledgments
Conflicts of Interest
Nomenclature
| symbol | Meaning |
| N, n | Number of discretization points for trajectory and experimental data |
| a,,,, | Base, the steering, the curvature, the follower, the drive wheel radius, and the pitch circle radius of the driven gear |
| / | Cam stroke before and after optimization |
| / | Stroke range of the jumping points before and after optimization |
| / | Cam stroke of the reversal point before and after optimization |
| , | Theoretical and actual cam offset |
| Car length and the thickness of the cam | |
| Offset of the driving wheel and the driven wheel | |
| Change in the direction of the vehicle body and the angle with respect to the x-axis during the cam rotation, as well as the base helix angle, set at 0° | |
| Changes in the front wheel steering and the cam angle | |
| Linear velocity of the active wheel of the carriage/deviation | |
| Backlash of the third-level gears | |
| Minimum working center distance of the gear pair and the upper deviation of the center distance limit tolerance | |
| Compensation amount to adjust for the decrease in gear backlash resulting from gear machining and installation errors | |
| , | Base pitch deviations of the gear |
| , | Total helix deviations of the gear |
| , | Parallelism deviations of the gear pair axes |
| , | End face angle and normal pressure angle of the gear, respectively, with values set at 0° and 20° |
| Bearing span and the tooth width | |
| Normal module of the gear | |
| Positive deviation, negative deviation, and tolerance of tooth thickness | |
| Radial runout and cutting tolerance | |
| and | Comprehensive radial errors of the gear |
| Maximum and minimum normal backlash | |
| Circumferential backlash and the normal backlash | |
| B, | Return error of gear transmissions of each level of gears, and the return error of gear transmissions before and after comprehensive optimization |
| , | Total gear ratio and camshaft transmission ratio |
| Transmission torque borne by the driven gear and the resisting load torque | |
| Cam angles before and after the jump and the flip | |
| Angle error of jump/reverse/cumulative deflection before optimization, after adjusting the transmission ratio, after optimizing the cam profile, and after comprehensive optimization | |
| σ,,u,μ | Parameters in the normal distribution, including standard deviation, mean, normal distribution critical value, and mathematical expectation |
Appendix A
|
MATLAB code discussed in Section 4: clc,clf,clear %Basic Car’ Parameters L=166.65; a1=37; a2=201.6; a=25.1; %Cam Offset base=70; %Base Circle Radius ml=a1+0.5*a2-20; %Sensor Offset Distance th=2.5; %Rocker Arm Diameter tu=2.7; %Cam Thickness CDB=48; %Transmission Ratio i=3603; %Insertion Points u=1; v=9; p_feel=1; %Plot Site Information figure(1) fig.Position=[50,200,800,800]; D=u*[7450+250,950+50];rectangle('Position',[D(1)-50,D(2)-50,100,100],'curvature',[1,1],'FaceColor','red'); hold on,axis equal D=u*[5950,500];rectangle('Position',[D(1)-50,D(2)-50,100,100],'curvature',[1,1],'FaceColor','red'); D=u*[4200,250];rectangle('Position',[D(1)-50,D(2)-50,100,100],'curvature',[1,1],'FaceColor','red'); D=u*[3300,600];rectangle('Position',[D(1)-50,D(2)-50,100,100],'curvature',[1,1],'FaceColor','red');% D=u*[3150,1600];rectangle('Position',[D(1)-50,D(2)-50,100,100],'curvature',[1,1],'FaceColor','red'); D=u*[2720,2700];rectangle('Position',[D(1)-50,D(2)-50,100,100],'curvature',[1,1],'FaceColor','red'); D=u*[600,2950];rectangle('Position',[D(1)-50,D(2)-50,100,100],'curvature',[1,1],'FaceColor','red'); D=u*[700,4300];rectangle('Position',[D(1)-50,D(2)-50,100,100],'curvature',[1,1],'FaceColor','red'); D=u*[1700,6000];rectangle('Position',[D(1)-50,D(2)-50,100,100],'curvature',[1,1],'FaceColor','red'); D=u*[2300,7000];rectangle('Position',[D(1)-50,D(2)-50,100,100],'curvature',[1,1],'FaceColor','red'); D=u*[4000,7510];rectangle('Position',[D(1)-50,D(2)-50,100,100],'curvature',[1,1],'FaceColor','red'); D=u*[6703.79,7200];rectangle('Position',[D(1)-50,D(2)-50,100,100],'curvature',[1,1],'FaceColor','red'); D=[4000,4000];rectangle('Position',[D(1)-4000,D(2)-4000,8000,8000],'curvature',[0,0]); x00=[7450+250,5950,4200+30,3300+80,3150-30,2800-190,600+200,700,1700-30,2300+50,4000,6703.79]; y00=[950+50,500,250,600+20,1600,2700-180,2950+80,4300+50,6000,7000-80,7500+10,7200]; p=[x00;y00] %Fit Trajectory Using Cubic Spline Curve x=linspace(300,3750,12); cs=csape(x,p,[1,2]); yy=ppval(cs,linspace(x(1),x(end),i)); plot(yy(1,:),yy(2,:),'G','LineWidth',1); title('Trajectory Planning Diagram'); xlabel('X/mm'); ylabel('Y/mm'); hold on x0=yy(1,:);y0=yy(2,:); %Offset to Obtain Drive Wheel Trajectory dx0=diff(x0);dy0=diff(y0); y01=dy0./dx0; x0(end)=[];y0(end)=[]; char_x1=get_char(dx0);char_y1=get_char(dy0); k_y=char_y1.*abs(y01./sqrt(1+y01.^2));k_x=char_x1.*abs(1./sqrt(1+y01.^2)); pos_x1=x0-p_feel.*k_y*ml;pos_y1=y0+p_feel.*k_x*ml; posx_car=pos_x1-k_x*L;posy_car=pos_y1-k_y*L; posx_carl=x0-k_y*ml;posy_carl=y0+k_x*ml; X=posx_carl;Y=posy_carl;%Drive Wheel on the Left plot(X,Y,'K','LineWidth',1); %Calculate Cam Profile from Drive Wheel Trajectory dx=diff(X);dy=diff(Y); xx=diff(dx);yy=diff(dy); xx(end+1)=xx(end);yy(end+1)=yy(end); rho=abs(((dx.^2+dy.^2).^(3/2))./(dx.*yy-xx.*dy));%Calculate Radius of Curvature [A,b]=findpeaks(rho); c=find(A<10^4); b(c)=[]; b=[0,b]; b(2)=[]; acell = cell(size(b,2),1); char_peaks=[]; for o=1:size(b,2)-1 acell{o} = (-1)^o*ones(1,b(o+1)-b(o)); char_peaks=[char_peaks,acell{o}]; end acell_end=(-1)^(size(b,2))*ones(1,(i-2)-size(char_peaks,2)); char_peaks=[char_peaks,acell_end]; %%%%%%% rho=-char_peaks.*rho; delta_d=((a.*L)./(rho-a1)); %Cam Lift Calculation % delta_d=((a.*L)./(rho+a2)); %Drive Wheel on the Right figure(3) fig.Position=[100,200,2500,800]; [f,fi]=findpeaks(delta_d); %Find the Peak Value of the Stroke fan_delta_d=10-delta_d; [Down,di]=findpeaks(fan_delta_d); %Find the Valley Value of the Stroke n3=size(delta_d,2); z3=linspace(0,360,n3); di(1)=[]; plot(z3,delta_d,z3(fi),delta_d(fi),'go',z3(di),delta_d(di),'ro','LineWidth',1) title('Cam Stroke Diagram'); xlabel('Rotation Angle/°'); ylabel('Stroke/mm'); d=delta_d+base; ds=sqrt(dx.^2+dy.^2); dts=sqrt(dx0.^2+dy0.^2); ts=sum(dts); s=cumsum(ds); %Segmented Cumulative Sum total_s=sum(ds) %Cumulative Sum theta=2*pi*s./total_s; d(:,end)=d(:,1); theta(:,end)=theta(:,1); angle01=theta./2./pi.*360; t_delta_d=[delta_d(fi),delta_d(di)]; figure(2) p=0.5.*th; %Follower Radius for i=1:size(d,2) if delta_d(i)>=0 db(i)=d(i)-(p*sqrt(a^2+delta_d(i)^2)/a); else db(i)=delta_d(i).*(a+tu)./a+base-(p*sqrt((a+tu)^2+(delta_d(i).*(a+tu)./a)^2)/(a+tu)); end i=i+1; end polarplot(theta,d,theta,db,'R','LineWidth',0.75) %Plot Theoretical Cam Profile And Plot Actual Cam Profile title('Cam Design Drawing'); % gtext('Blue Line - Theoretical Cam'); % gtext('Red Line - Actual Cam'); hold off %%%%%%% x=db.*cos(theta);x=x'; y=db.*sin(theta);y=y'; %Transpose Row Vector to Column Vector zeros=x.*0; coord=[x,y,zeros]; % writematrix(coord,'D:\Program Files\Polyspace\R2021a\bin\xyz.txt') %%%%%%%%%%%%%%%%%Calculate Pressure Angle aa=(diff(delta_d)./diff(theta)); bb=delta_d+0.5*db; bb(end)=[]; Yalijiao=atand(aa./(bb)); [B,m]=findpeaks(Yalijiao); Yalijiao(m)=[]; % [D,min]=findpeaks(Yalijiao,'minpeakheight',-10); % t=find(Yalijiao>45); Yalijiao=-Yalijiao; [d,m1]=findpeaks(Yalijiao); %Minimum Value of Pressure Angle Yalijiao(m1)=[]; Yalijiao=-Yalijiao; % figure(4) % % subplot(2,1,1) % % n1=size(Yalijiao,2); % % z1=linspace(0,360,n1); % % % plot(z1,Yalijiao) % % plot(z1,Yalijiao) % % title('Cam Pressure Angle Diagram'); % % xlabel('Rotation Angle/°'); % % ylabel('Pressure Angle/°'); % %%%%%Follower Swing Angle % subplot(2,1,1) % fai=atand(delta_d./a); % n2=size(fai,2); % z2=linspace(1,n2,n2); % plot(z2,fai) % title('Front Wheel Steering Angle Diagram'); % xlabel('θ/°'); % ylabel('Steering Angle/°'); % hold on % subplot(2,1,2) % sum_fai=cumsum(fai); % n3=size(sum_fai,2); % z3=linspace(1,n3,n3); % plot(z3,sum_fai) % % [F,s_fai]=thsum_fai(fai,fi(1),12); % hold off %%%%%%Trajectory Simulation figure(5) xl=abs((X(72)-X(1)).\(Y(72)-Y(1))); %Calculate Slope Q=atand(xl); %Initial Heading Angle real_angle=atan(xl)*180/pi; angle=pi-atan(xl); direction0=angle; delta_direction=ds./rho; direction=direction0+cumsum(delta_direction); delta_realX=ds.*cos(direction); delta_realY=-ds.*sin(direction); realX0=X(1);realY0=Y(1); realX=realX0+cumsum(delta_realX); realY=realY0+cumsum(delta_realY); realX=[realX0,realX];realY=[realY0,realY]; plot(realX,realY,'K','LineWidth',1) % plot(realX,realY,'K',realX(fi),realY(fi),'*',realX(di),realY(di),'*','LineWidth',1) % plot(realX,realY,'G',X,Y,'R') title('Trajectory Simulation Plot'); xlabel('X/mm'); ylabel('Y/mm'); hold on %%%%%%%%Derive Tangent Equation at a Point and Plot % %%%Jump Point % x001=realX(fi(3)+v+1); % y001=realY(fi(3)+v+1); % plot(x001,y001,'*','LineWidth',1) % hold on % f=diff(realY)./diff(realX); % m1=f(fi(3)+v+1); % y=m1*realX-m1*x001+y001; % plot(realX,y,'g') % hold on % x003=realX(fi(2)+v+1); % y003=realY(fi(2)+v+1); % plot(x003,y003,'*','LineWidth',1) % hold on % f=diff(realY)./diff(realX); % m3=f(fi(2)+v+1); % y=m3*realX-m3*x003+y003; % plot(realX,y,'g') % hold on % x005=realX(fi(1)+v+1); % y005=realY(fi(1)+v+1); % plot(x005,y005,'*','LineWidth',1) % hold on % f=diff(realY)./diff(realX); % m5=f(fi(1)+v+1); % y=m5*realX-m5*x005+y005; % plot(realX,y,'g') % hold on % xlim([-1000 8000]) % ylim([0 8000]) %%%%Reverse Point x007=realX(di(2)+1); y007=realY(di(2)+1); plot(x007,y007,'*','LineWidth',1) hold on f=diff(realY)./diff(realX); m7=f(di(2)+1); y=m7*realX-m7*x007+y007; plot(realX,y,'g') hold on x009=realX(di(1)+1); y009=realY(di(1)+1); plot(x009,y009,'*','LineWidth',1) hold on f=diff(realY)./diff(realX); m9=f(di(1)+1); y=m9*realX-m9*x009+y009; plot(realX,y,'g') xlim([-1000 8000]) ylim([0 8000]) s_direction=0; Ai=[]; n5=size(fi,2); for n=1:n5 for i=1:9 Ai=[Ai,delta_direction(fi(n)+i)]; s_direction=s_direction+delta_direction(fi(n)+i); end end Ai=180.*Ai./pi; ai=reshape(Ai,9,3); ss=sum(ai,1); ss_direction=0; Bi=[]; n5=size(di,2); for n=1:n5 for i=1:9 Bi=[Bi,delta_direction(di(n)+i)]; s_direction=ss_direction+delta_direction(di(n)+i); end end Bi=180.*Bi./pi; bi=reshape(Bi,9,2); SS=sum(bi,1); dx=diff(realX);dy=diff(realY); y1=dy./dx; k=abs(y1); char_dx=get_char(dx);char_dy=get_char(dy); k_y=char_dy.*abs(k./sqrt(1+k.^2)); %sinɑ,ɑ is the Vehicle Yaw Angle k_x=char_dx.*abs(1./sqrt(1+k.^2)); %cosɑ realX(end)=[];realY(end)=[]; posx_car=realX+k_y*ml;posy_car=realY-k_x*ml; posx_carr=realX+k_y*(a1+a2);posy_carr=realY-k_x*(a1+a2); % plot(posx_car,posy_car,'K',posx_carr,posy_carr,'G','LineWidth',1) posx_car=realX+k_y*ml;posy_car=realY-k_x*ml; posx_carl=realX+k_y*(a1+a2);posy_carr=realY-k_x*(a1+a2); % %%%%%%%%%%%%%Point Removal Operation % % delta_d(fi(3)+12)=[];%%% % % delta_d(fi(3)+11)=[];%%% % % delta_d(fi(3)+10)=[];%%% % delta_d(fi(3)+9)=[];%%% % delta_d(fi(3)+8)=[];%%% % delta_d(fi(3)+7)=[];%%% % delta_d(fi(3)+6)=[];%%% % delta_d(fi(3)+5)=[];%%% % delta_d(fi(3)+4)=[];%%% % delta_d(fi(3)+3)=[];%%% % delta_d(fi(3)+2)=[];%%% % delta_d(fi(3)+1)=[];%%% % % % delta_d(fi(2)+12)=[];%%% % % delta_d(fi(2)+11)=[];%%% % % delta_d(fi(2)+10)=[];%%% % delta_d(fi(2)+9)=[];%%% % delta_d(fi(2)+8)=[];%%% % delta_d(fi(2)+7)=[];%%% % delta_d(fi(2)+6)=[];%%% % delta_d(fi(2)+5)=[];%%% % delta_d(fi(2)+4)=[];%%% % delta_d(fi(2)+3)=[];%%% % delta_d(fi(2)+2)=[];%%% % delta_d(fi(2)+1)=[];%%% % % % % delta_d(fi(1)+12)=[];%%% % % delta_d(fi(1)+11)=[];%%% % % delta_d(fi(1)+10)=[];%%% % delta_d(fi(1)+9)=[];%%% % delta_d(fi(1)+8)=[];%%% % delta_d(fi(1)+7)=[];%%% % delta_d(fi(1)+6)=[];%%% % delta_d(fi(1)+5)=[];%%% % delta_d(fi(1)+4)=[];%%% % delta_d(fi(1)+3)=[];%%% % delta_d(fi(1)+2)=[];%%% % delta_d(fi(1)+1)=[];%%% % % d=delta_d+base; % % % ds(fi(3)+12)=[];%%% % % ds(fi(3)+11)=[];%%% % % ds(fi(3)+10)=[];%%% % ds(fi(3)+9)=[];%%% % ds(fi(3)+8)=[];%%% % ds(fi(3)+7)=[];%%% % ds(fi(3)+6)=[];%%% % ds(fi(3)+5)=[];%%% % ds(fi(3)+4)=[];%%% % ds(fi(3)+3)=[];%%% % ds(fi(3)+2)=[];%%% % ds(fi(3)+1)=[];%%% % % % ds(fi(2)+12)=[];%%% % % ds(fi(2)+11)=[];%%% % % ds(fi(2)+10)=[];%%% % ds(fi(2)+9)=[];%%% % ds(fi(2)+8)=[];%%% % ds(fi(2)+7)=[];%%% % ds(fi(2)+6)=[];%%% % ds(fi(2)+5)=[];%%% % ds(fi(2)+4)=[];%%% % ds(fi(2)+3)=[];%%% % ds(fi(2)+2)=[];%%% % ds(fi(2)+1)=[];%%% % % % ds(fi(1)+12)=[];%%% % % ds(fi(1)+11)=[];%%% % % ds(fi(1)+10)=[];%%% % ds(fi(1)+9)=[];%%% % ds(fi(1)+8)=[];%%% % ds(fi(1)+7)=[];%%% % ds(fi(1)+6)=[];%%% % ds(fi(1)+5)=[];%%% % ds(fi(1)+4)=[];%%% % ds(fi(1)+3)=[];%%% % ds(fi(1)+2)=[];%%% % ds(fi(1)+1)=[];%%% % % s=cumsum(ds); % % total_s=sum(ds) % % theta=2*pi*s./total_s; % d(:,end)=d(:,1); % theta(:,end)=theta(:,1); % angle01=theta./2./pi.*360; % % % %%%%%%%%%%%%%Trajectory Simulation after Point Removal % % rho(fi(3)+12)=[];%%% % % rho(fi(3)+11)=[];%%% % % rho(fi(3)+10)=[];%%% % rho(fi(3)+9)=[];%%% % rho(fi(3)+8)=[];%%% % rho(fi(3)+7)=[];%%% % rho(fi(3)+6)=[];%%% % rho(fi(3)+5)=[];%%% % rho(fi(3)+4)=[];%%% % rho(fi(3)+3)=[];%%% % rho(fi(3)+2)=[];%%% % rho(fi(3)+1)=[];%%% % % % rho(fi(2)+12)=[];%%% % % rho(fi(2)+11)=[];%%% % % rho(fi(2)+10)=[];%%% % rho(fi(2)+9)=[];%%% % rho(fi(2)+8)=[];%%% % rho(fi(2)+7)=[];%%% % rho(fi(2)+6)=[];%%% % rho(fi(2)+5)=[];%%% % rho(fi(2)+4)=[];%%% % rho(fi(2)+3)=[];%%% % rho(fi(2)+2)=[];%%% % rho(fi(2)+1)=[];%%% % % % rho(fi(1)+12)=[];%%% % % rho(fi(1)+11)=[];%%% % % rho(fi(1)+10)=[];%%% % rho(fi(1)+9)=[];%%% % rho(fi(1)+8)=[];%%% % rho(fi(1)+7)=[];%%% % rho(fi(1)+6)=[];%%% % rho(fi(1)+5)=[];%%% % rho(fi(1)+4)=[];%%% % rho(fi(1)+3)=[];%%% % rho(fi(1)+2)=[];%%% % rho(fi(1)+1)=[];%%% % % delta_direction00=ds./rho; % direction00=direction0+cumsum(delta_direction00); % delta_realX00=ds.*cos(direction00); % delta_realY00=-ds.*sin(direction00); % realX0=X(1);realY0=Y(1); % realX=realX0+cumsum(delta_realX00); % realY=realY0+cumsum(delta_realY00); % realX1=[realX0,realX];realY1=[realY0,realY]; % % plot(realX1,realY1,'--',realX1(fi(2)-v),realY1(fi(2)-v),'*',realX1(fi(3)-2*v),realY1(fi(3)-2*v),'*','LineWidth',1) % plot(realX1,realY1,'--','LineWidth',1) % % x002=realX1(fi(3)-2*v+1); % y002=realY1(fi(3)-2*v+1); % plot(x002,y002,'*','LineWidth',1) % hold on % f=diff(realY1)./diff(realX1); % m2=f(fi(3)-2*v+1); % y=m2*realX1-m2*x002+y002; % fai2=180*(atan(m2)-atan(m1))/pi % plot(realX1,y,'g') % hold on % x004=realX1(fi(2)-v+1); % y004=realY1(fi(2)-v+1); % plot(x004,y004,'*','LineWidth',1) % hold on % f=diff(realY1)./diff(realX1); % m4=f(fi(2)-v+1); % y=m4*realX1-m4*x004+y004; % fai4=180*(atan(m4)-atan(m3))/pi % plot(realX1,y,'g') % hold on % x006=realX1(fi(1)+1); % y006=realY1(fi(1)+1); % plot(x006,y006,'*','LineWidth',1) % hold on % f=diff(realY1)./diff(realX1); % m6=f(fi(1)+1); % y=m6*realX1-m6*x006+y006; % fai6=180*(atan(m6)-atan(m5))/pi % plot(realX1,y,'g') % hold off %%%%%%%%%%%%Repeated Pathing Simulation % delta_d2=double_down(delta_d,di(2),1);%%% % delta_d1=double_down(delta_d2,di(2),1);%%% % delta_d=double_down(delta_d1,di(2),1);%%%delta_d2=double_down(delta_d,di,1);%%% delta_d2=double_down(delta_d,di(2),1);%%% delta_d1=double_down(delta_d2,di(2),1);%%% delta_d=double_down(delta_d1,di(2),1);%%%delta_d2=double_down(delta_d,di,1);%%% delta_d2=double_down(delta_d,di(2),1);%%% delta_d1=double_down(delta_d2,di(2),1);%%% delta_d=double_down(delta_d1,di(2),1);%%%delta_d2=double_down(delta_d,di,1);%%% delta_d2=double_down(delta_d,di(2),1);%%% delta_d1=double_down(delta_d2,di(2),1);%%% delta_d=double_down(delta_d1,di(2),1);%%%delta_d2=double_down(delta_d,di,1);%%% % delta_d2=double_down(delta_d,di(1),1);%%% % delta_d1=double_down(delta_d2,di(1),1);%%% % delta_d=double_down(delta_d1,di(1),1);%%%delta_d2=double_down(delta_d,di,1);%%% delta_d2=double_down(delta_d,di(1),1);%%% delta_d1=double_down(delta_d2,di(1),1);%%% delta_d=double_down(delta_d1,di(1),1);%%%delta_d2=double_down(delta_d,di,1);%%% delta_d2=double_down(delta_d,di(1),1);%%% delta_d1=double_down(delta_d2,di(1),1);%%% delta_d=double_down(delta_d1,di(1),1);%%%delta_d2=double_down(delta_d,di,1);%%% delta_d2=double_down(delta_d,di(1),1);%%% delta_d1=double_down(delta_d2,di(1),1);%%% delta_d=double_down(delta_d1,di(1),1);%%%delta_d2=double_down(delta_d,di,1);%%% d4=delta_d+base; % ds2=double_down(ds,di(2),1);%%% % ds1=double_down(ds2,di(2),1);%%% % ds=double_down(ds1,di(2),1);%%% ds2=double_down(ds,di(2),1);%%% ds1=double_down(ds2,di(2),1);%%% ds=double_down(ds1,di(2),1);%%% ds2=double_down(ds,di(2),1);%%% ds1=double_down(ds2,di(2),1);%%% ds=double_down(ds1,di(2),1);%%% ds2=double_down(ds,di(2),1);%%% ds1=double_down(ds2,di(2),1);%%% ds=double_down(ds1,di(2),1);%%% % ds2=double_down(ds,di(1),1);%%% % ds1=double_down(ds2,di(1),1);%%% % ds=double_down(ds1,di(1),1);%%% ds2=double_down(ds,di(1),1);%%% ds1=double_down(ds2,di(1),1);%%% ds=double_down(ds1,di(1),1);%%% ds2=double_down(ds,di(1),1);%%% ds1=double_down(ds2,di(1),1);%%% ds=double_down(ds1,di(1),1);%%% ds2=double_down(ds,di(1),1);%%% ds1=double_down(ds2,di(1),1);%%% ds=double_down(ds1,di(1),1);%%% s4=cumsum(ds); % total_s=sum(ds) % theta4=2*pi*s4./total_s; d4(:,end)=d(:,1); theta4(:,end)=theta(:,1); % rho2=double_down(rho,di(2),1);%%% % rho1=double_down(rho2,di(2),1);%%% % rho=double_down(rho1,di(2),1);%%% rho2=double_down(rho,di(2),1);%%% rho1=double_down(rho2,di(2),1);%%% rho=double_down(rho1,di(2),1);%%% rho2=double_down(rho,di(2),1);%%% rho1=double_down(rho2,di(2),1);%%% rho=double_down(rho1,di(2),1);%%% rho2=double_down(rho,di(1),1);%%% rho1=double_down(rho2,di(1),1);%%% rho=double_down(rho1,di(1),1);%%% % rho2=double_down(rho,di(1),1);%%% % rho1=double_down(rho2,di(1),1);%%% % rho=double_down(rho1,di(1),1);%%% rho2=double_down(rho,di(1),1);%%% rho1=double_down(rho2,di(1),1);%%% rho=double_down(rho1,di(1),1);%%% rho2=double_down(rho,di(1),1);%%% rho1=double_down(rho2,di(1),1);%%% rho=double_down(rho1,di(1),1);%%% rho2=double_down(rho,di(1),1);%%% rho1=double_down(rho2,di(1),1);%%% rho=double_down(rho1,di(1),1);%%% delta_direction4=ds./rho;%%%%%%%%% direction4=direction0+cumsum(delta_direction4); delta_realX4=ds.*cos(direction4); delta_realY4=-ds.*sin(direction4); realX0=X(1);realY0=Y(1); realX4=realX0+cumsum(delta_realX4); realY4=realY0+cumsum(delta_realY4); realX4=[realX0,realX4];realY4=[realY0,realY4]; % plot(realX4,realY4,'G',realX4(fi),realY4(fi),'*',realX4(di),realY4(di),'*','LineWidth',1) plot(realX4,realY4,'--','LineWidth',1) x008=realX4(di(2)+2*v+1); y008=realY4(di(2)+2*v+1); plot(x008,y008,'*','LineWidth',1) hold on f=diff(realY4)./diff(realX4); m8=f(di(2)+2*v+1); y=m8*realX4-m8*x008+y008; fai8=180*(atan(m8)-atan(m7))/pi plot(realX4,y,'k') hold on x010=realX4(di(1)+v+1); y010=realY4(di(1)+v+1); plot(x010,y010,'*','LineWidth',1) hold on f=diff(realY4)./diff(realX4); m10=f(di(1)+v+1); y=m10*realX4-m10*x010+y010; fai10=180*(atan(m10)-atan(m9))/pi plot(realX4,y,'r') hold off figure(6) subplot(2,1,1) delta_direction=180.*delta_direction./pi; n6=size(delta_direction,2); z6=linspace(0,360,n6); y0=0; plot(z6,delta_direction,'k','LineWidth',1) hold off |
References
- Cheng, Z.; Yang, J.; Sun, J.; Zhao, L. Trajectory Planning of Unmanned Aerial Vehicles in Complex Environments Based on Intelligent Algorithm. Drones 2025, 9, 468. [Google Scholar] [CrossRef] [Scilit]
- Han, Z.; Tian, M.; Gongye, Z.; Xue, D.; Xing, J.; Wang, Q.; Gao, Y.; Wang, J.; Xu, C.; Gao, F. Hierarchically depicting vehicle trajectory with stability in complex environments. Sci. Robot. 2025, 10, 4551. [Google Scholar] [CrossRef] [Scilit]
- Gong, L.; Li, L.; Zhang, L.; Zhang, B.; Zheng, D.; Li, N. Pseudo-random and dynamic selective trajectories generation for mid-spatial frequency error rapid convergence. Precis. Eng. 2025, 97, 572–594. [Google Scholar] [CrossRef] [Scilit]
- Liu, L.; Sun, M.; Zhao, E.; Zhu, K. Three-Dimensional Dynamic Trajectory Planning for Autonomous Underwater Robots Under the PPO-IIFDS Framework. J. Mar. Sci. Eng. 2025, 13, 445. [Google Scholar] [CrossRef] [Scilit]
- Chen, G.; Yuan, S.; Zhang, Z.; Liang, X. Multi-UAV collaborative trajectory planning for non-cooperative target tracking in complex environment. Proc. Inst. Mech. Eng. Part G J. Aerosp. Eng. 2025, 239, 1423–1439. [Google Scholar] [CrossRef] [Scilit]
- Bi, G.; Lu, L.; Zhang, L.; Fan, C.; Sun, L. High-precision trajectory calibration for robot surface machining by meta-heuristic search algorithm from local error in machining area. Int. J. Adv. Manuf. Technol. 2025, 138, 2281–2295. [Google Scholar] [CrossRef] [Scilit]
- Ma, X.; Wang, X.; Zhang, H.; Li, H. The teaching application of the backward design method in Chinese national undergraduate engineering training integration ability competition: Take the double 8 carbon-free car as an example. Appl. Sci. 2023, 13, 8829. [Google Scholar] [CrossRef] [Scilit]
- Wang, H.; Shang, L.; Tang, D.; Li, Z. Research themes, evolution trends, and future challenges in China’s carbon emission studies. Sustainability 2024, 16, 2080. [Google Scholar] [CrossRef] [Scilit]
- He, R.H.; Xiao, J.C.; Du, K.Q.; Yue, J.H.; Lan, M.H. Structural Design and Analysis of S-Ring Carbon-Free Cars. J. Mach. Des. 2023, 40, 48–54. [Google Scholar]
- Chen, Y.N.; Hsu, K.L. Necessary and Sufficient Design Conditions for Overconstrained Cam Mechanisms With Flat-Faced and Roller Follower. J. Mech. Robot. 2025, 17, 075002. [Google Scholar] [CrossRef] [Scilit]
- Català, P.; Veciana, J.M.; Jordi, L. Energy loss comparison between kinematically equivalent mechanisms: Slider-crank and eccentric cam. Mech. Based Des. Struct. Mach. 2024, 52, 9435–9457. [Google Scholar] [CrossRef] [Scilit]
- Merticaru, E.; Merticaru, V.; Nagîț, G.; Mihalache, A.M.; Tăbăcaru, L.L.; Rîpanu, M.I. Analytical, numerical and experimental analysis of a positive displacement cam mechanism—A case study. Machines 2023, 11, 770. [Google Scholar] [CrossRef] [Scilit]
- Iriarte, X.; Bacaicoa, J.; Plaza, A.; Aginaga, J. A unified analytical disk cam profile generation methodology using the Instantaneous Center of Rotation for educational purpose. Mech. Mach. Theory 2024, 196, 105625. [Google Scholar] [CrossRef] [Scilit]
- Zhou, C.; Hu, B.; Chen, S.; Ma, L. Design and analysis of high-speed cam mechanism using Fourier series. Mech. Mach. Theory 2016, 104, 118–129. [Google Scholar] [CrossRef] [Scilit]
- Pozo-Palacios, J.; Fulbright, N.J.; Voth, J.A.; Van de Ven, J.D. Comparison of forward and inverse cam generation methods for the design of cam-linkage mechanisms. Mech. Mach. Theory 2023, 190, 105465. [Google Scholar] [CrossRef] [Scilit]
- Lan, W.; Fan, S.; Fan, S. Analysis of structural design defects in parallel overloading mechanisms with cam transmission mechanism. Appl. Math. Model. 2022, 107, 717–739. [Google Scholar] [CrossRef] [Scilit]
- Yang, Y.; Xie, R.; Wang, J.; Tao, S. Design of a novel coaxial cam-linkage indexing mechanism. Mech. Mach. Theory 2022, 169, 104681. [Google Scholar] [CrossRef] [Scilit]
- Zheng, X.; Zhao, H.; Zhang, S.; Liu, D.; Wang, B. Design Method of Cam Steering Mechanism Based on Path Fitting. Processes 2024, 12, 1037. [Google Scholar] [CrossRef] [Scilit]
- Wang, C.; Peng, W. Optimization design for reliability of the oscillating follower disk cam mechanism based on improved hunter-prey optimization algorithm. IEEE Access 2024, 12, 182532–182546. [Google Scholar] [CrossRef] [Scilit]
- Zhu, G.; Wang, Y.; Zhu, G.-N.; Weng, M.; Liu, J.; Zhou, J.; Lu, B. Parameter optimization of large-size high-speed cam-linkage mechanism for kinematic performance. Actuators 2022, 12, 2. [Google Scholar] [CrossRef] [Scilit]
- Kang, Y.-H.; Huang, H.-C.; Yang, B.-Y. Optimal design and dynamic analysis of a spring-actuated cam-linkage mechanism in a vacuum circuit breaker. Machines 2023, 11, 150. [Google Scholar] [CrossRef] [Scilit]
- Li, M.; Liang, R.; Zhang, Y.; Peng, C.; Mu, D.; Wan, Z. On-line measurement method of transmission backlash based on angular velocity and double-end angular position information. Meas. Control 2021, 54, 65–72. [Google Scholar] [CrossRef] [Scilit]
- Wang, J.; Wu, Z.; Wang, H.; Ding, J.; Yi, C. Analysis of influence of thermal tooth backlash on nonlinear dynamic characteristics of planetary gear system. Nonlinear Dyn. 2025, 113, 289–311. [Google Scholar] [CrossRef] [Scilit]
- Tian, G.; Gao, Z.; Liu, P.; Bian, Y. Dynamic modeling and stability analysis for a spur gear system considering gear backlash and bearing clearance. Machines 2022, 10, 439. [Google Scholar] [CrossRef] [Scilit]
- Zenn, W.; Herold, S.; Melz, T. Estimation of the backlash size on rack-and-pinion drives of machine tools using supervised learning classification methods. Int. J. Adv. Manuf. Technol. 2025, 137, 5279–5292. [Google Scholar] [CrossRef] [Scilit]
- Reddy, P.; Shahbakhti, M.; Ravichandran, M.; Doering, J. Real-time estimation of backlash size in automotive drivetrains. IEEE/ASME Trans. Mechatron. 2022, 27, 3362–3372. [Google Scholar] [CrossRef] [Scilit]
- Ma, X.-T.; Zhang, H.; Zhang, H.; Wang, X.F.; Zhu, Z. Research on reverse design method of S-ring carbon-free car. Machinery 2022, 49, 23–28. [Google Scholar]
- Fang, L.; Wu, Y.; Mou, Z.; Guo, Y. Reverse calculation analysis and design of cam of carbon free car with “8” trajectory. J. Mach. Des. 2023, 40, 106–111. [Google Scholar]
- Sun, Q.; Cui, Y.; Li, P.; Zhang, Z.; Li, W. Design of “8” potential energy driven vehicle based on MATLAB calculation. Sci. Technol. Innov. 2022, 25, 167–170. [Google Scholar]
- Song, C.; Wang, S.; Li, X.; Zhu, C.; Yang, Y. Influences of circular runout errors and processing parameters for slotting on the accuracy of harmonic reducer. J. Adv. Mech. Des. Syst. Manuf. 2022, 16, JAMDSM0003. [Google Scholar] [CrossRef] [Scilit]
- Wang, H.; Zhang, X.; Fang, K.; Qiu, Y.; Zhang, Z. Return error simulation analysis and experimental study for RV reducer with ADAMS. J. Adv. Mech. Des. Syst. Manuf. 2024, 18, JAMDSM0023. [Google Scholar] [CrossRef] [Scilit]
- Wen, B. Mechanical Design Handbook; Machinery Industry Press: Beijing, China, 2018. [Google Scholar]
- Zhang, L.; Fan, Y. Analysis on Influence of Gear Backlash on Gear Transmission Accuracy. Mach. Tool Hydraul. 2017, 45, 114–116. [Google Scholar]
- Li, J. Trajectory and structural design of carbon free car based on B-spline curve. J. Mach. Des. 2023, 40, 114–118. [Google Scholar]
- Li, J. Universal design method of carbon-free car based on 3D motion calculation. J. Mach. Des. 2022, 38, 46–48+52. [Google Scholar]
- Yu, J.; Huang, K.; Luo, H.; Wu, Y.; Long, X. Manipulate optimal high-order motion parameters to construct high-speed cam curve with optimized dynamic performance. Appl. Math. Comput. 2020, 371, 124953. [Google Scholar] [CrossRef] [Scilit]
- Zhang, K.; Xiu, F.; Zhang, Y.; Su, L.; Yang, X. Design of double 8-shaped trajectory carbon-free car based on cam mechanism. J. Mach. Des. 2020, 37, 24–28. [Google Scholar] [CrossRef]
- Gong, G. Probability Theory and Mathematical Statistics; Tsinghua University Press Co., Ltd.: Beijing, China, 2006. [Google Scholar]























| Parameter | Initial Value | Parameter | Initial Value |
|---|---|---|---|
| N | 3000 | a [mm] | 70 |
| L [mm] | 167 | e [mm] | 25 |
| A1 [mm] | 37 | C [mm] | 3 |
| A2 [mm] | 201 | rt [mm] | 2.5 |
| Transmission Grade | First Stage | Second Stage | Third Stage |
|---|---|---|---|
| Transmission ratio | 5 | 3 | 3 |
| Center distance [mm] | 45 | 40 | 40 |
| Modulus [mm] | 0.5 | 0.5 | 0.5 |
| Bearing span [mm] | 80 | 80 | 80 |
| Tooth width [mm] | 5 | 5 | 5 |
| Number of gear teeth | 150/30 | 120/40 | 120/40 |
| Normal pressure angle [°] | 20 | ||
| End face angle [°] | 0 | ||
| Modulus mn [mm] | 0.5 | ||
| [µm] | [µm] | [µm] | [µm] | [°] | |
|---|---|---|---|---|---|
| First stage | 14.195 | 302.324 | 39.309 | 355.828 | 0.544 |
| Second stage | 14.195 | 300.550 | 39.309 | 354.054 | 0.676 |
| Third stage | 14.195 | 300.550 | 39.309 | 354.054 | 0.676 |
| Return Error of Gear Transmission | Code | [mm] | Code | [°] | [°] |
|---|---|---|---|---|---|
| Jump zone | 5.848 | 2.721 | 17.154 | ||
| 9.425 | 6.695 | ||||
| 3.683 | 2.151 | ||||
| Reverse zone | −9.065 | 4.879 | |||
| −0.917 | 0.709 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2025 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Su, L.; Zhou, Y.; Li, A.; Yao, R.; Yuan, L. Steering Accuracy Analysis of Cam Mechanism in Complex Trajectory Based on Return Error of Gear Transmission. Machines 2025, 13, 1075. https://doi.org/10.3390/machines13121075
Su L, Zhou Y, Li A, Yao R, Yuan L. Steering Accuracy Analysis of Cam Mechanism in Complex Trajectory Based on Return Error of Gear Transmission. Machines. 2025; 13(12):1075. https://doi.org/10.3390/machines13121075
Chicago/Turabian StyleSu, Liang, Youhang Zhou, Anfeng Li, Rihao Yao, and Luling Yuan. 2025. "Steering Accuracy Analysis of Cam Mechanism in Complex Trajectory Based on Return Error of Gear Transmission" Machines 13, no. 12: 1075. https://doi.org/10.3390/machines13121075
APA StyleSu, L., Zhou, Y., Li, A., Yao, R., & Yuan, L. (2025). Steering Accuracy Analysis of Cam Mechanism in Complex Trajectory Based on Return Error of Gear Transmission. Machines, 13(12), 1075. https://doi.org/10.3390/machines13121075

