All Courses
All Courses
Courses by Software
Courses by Semester
Courses by Domain
Tool-focused Courses
Machine learning
POPULAR COURSES
Success Stories
Final Independent Project: - Topic: - Multi-objective optimal design of cycloid speed reducer based on genetic algorithm. Platform used to Solve the problem: - Matlab Introduction: - Cycloid speed reducers have found wide applications in the automation field as industry robots, machine tools, automatic machinery and other…
MANAPRAGADA BHANU MURTHY
updated on 10 Apr 2022
Final Independent Project: -
Topic: -
Multi-objective optimal design of cycloid speed reducer based on genetic algorithm.
Platform used to Solve the problem: -
Matlab
Introduction: -
Cycloid speed reducers have found wide applications in the automation field as industry robots, machine tools, automatic machinery and other aspects owing to their excellent characteristics, e.g. high transmission accuracy, large reduction ratio, great load capacity, high efficiency, low backlash, long service life, high shock load capacity, etc.
Therefore, the research and development of the cycloid speed reducers have been investigated by many researchers, including operating principle, conditions for non-undercutting manufacturing, force analysis and efficiency, and development of new mechanisms.
Structure of Cycloid Drive: -
Fig. 1. The structure of cycloid drive (1. Input shaft, 2. Dual eccentric sleeves, 3. Pin gear housing, 4. Pivoted arm bearing, 5. Output shaft, 6. Pin, 7. Pin sleeve, 8. Pin wheel, 9. Cycloid gear, g. Cycloid gear, b. pinwheel, H. Carrier, W. Output part).
Problem Statement: -
The goal of the optimization is to simultaneously minimize volume and maximize efficiency.
The volume and the efficiency of the reducer are simultaneously taken as objective functions. The design variables including the short width coefficient, the diameter of the pin, the width of the cycloid gear, etc. are defined.
Formulating the Objective Functions: -
The efficiency η and the volume V of cycloid speed reducers are respectively viewed as objective functions for multi-objective optimization.
Where, efficiency η
Finally, Efficiency: -
Objective Function of Volume: -
Design Variables: -
The diameter of the pin wheel central circle (D_p),
The diameter of the pin wheel (d_rp),
The diameter of the pin (d_sw),
Short width coefficient (K_1),
The diameter of the pin central circle (D_w),
The diameter of the cycloid gear center hole (D),
The width of the cycloid gear (B).
Thus, the design parameter vector can be written as
Objective Functions: -
The two objective functions are
Initial values of Design variables: -
Design variable | Symbol | Unit | Interval | Initial value |
Diameter of the pin wheel central circle | D_p | mm | 140<=D_p<=155 | 144 |
Diameter of pin wheel | d_rp | mm | 7<=d_rp<=10.4 | 10 |
Width of cycloid gear | B | mm | 7<=B<=12 | 11 |
Diameter of cycloid gear center hole | D | mm | 50<=D<=55 | 53.5 |
Short width coefficient | K_1 | - | 0.65<=K_1<=0.9 | 0.6069 |
Diameter of pin central circle | D_w | mm | 88<=D_w<=104 | 90 |
Diameter of pin | d_sw | mm | 11<=d_sw<=14 | 12 |
Constraints: -
These constraints are inequality constraints and there is no equality constraint in the problem considered.
Methodology: -
Genetic algorithm: -
Five phases are considered in a genetic algorithm.
The process begins with a set of individuals which is called a Population.
The fitness function determines how fit an individual is (the ability of an individual to compete with other individuals). It gives a fitness score to each individual. The probability that an individual will be selected for reproduction is based on its fitness score.
The idea of selection phase is to select the fittest individuals and let them pass their genes to the next generation.
Crossover is the most significant phase in a genetic algorithm. For each pair of parents to be mated, a crossover point is chosen at random from within the genes.
In certain new offspring formed, some of their genes can be subjected to a mutation with a low random probability. Mutation occurs to maintain diversity within the population and prevent premature convergence.
Implementing the above problem (with no constraints) using Matlab: -
%% Function file for GA solver
function [x,fval,exitflag,output,population,score] = solver(nvars,lb,ub,PopulationSize_Data,MaxGenerations_Data,MaxStallGenerations_Data,FunctionTolerance_Data,ConstraintTolerance_Data)
% Algorithm
options = optimoptions('gamultiobj');
% Population size
options = optimoptions(options,'PopulationSize', PopulationSize_Data);
% Generations
options = optimoptions(options,'MaxGenerations', MaxGenerations_Data);
options = optimoptions(options,'MaxStallGenerations', MaxStallGenerations_Data);
% Tolerance
options = optimoptions(options,'FunctionTolerance', FunctionTolerance_Data);
options = optimoptions(options,'ConstraintTolerance', ConstraintTolerance_Data);
% Plotting
options = optimoptions(options,'PlotFcn',{@gaplotpareto});
% Crossover function
options = optimoptions(options,'CrossoverFcn', { @crossoverintermediate [] });
options = optimoptions(options,'Display', 'off');
[x,fval,exitflag,output,population,score] = gamultiobj(@efficiency,nvars,[],[],[],[],lb,ub,[],options);
%% Creating Objective function file
function output = efficiency(input)
%% Variables are assigned to inputs
x1 = input(1);
x2 = input(2);
x3 = input(3);
x4 = input(4);
x5 = input(5);
x6 = input(6);
x7 = input(7);
%% Objective function for Efficiency
F1 = (1- ((1-(x1-x2)*((4*0.01)/(x5*x1*43*pi)))/(1+(x1-x2)*((4*0.01)/(x5*x1*pi))))*((1-(4*0.6*x5*x7*x1)/(pi*x6*(x7+3))))*0.99*0.995^2);
%% Objective function for Volume
F2 = ((1/4)*pi*x3*(((x1-x5*(x1/44)-x2)^2)-((x7+3+x5*(x1/44))^2*43-x4^2))+x5*(x1/44)*43*x3);
%% output
output = [F1, F2];
clc
clear all
close all
%% Obtaining solution by giving inputs
% number of design variables
nvars = 7;
format short
% lower bounds
lb = [140,7,7,50,0.65,88,11];
% upper bounds
ub = [155,10.4,12,55,0.9,104,14];
% population size
PopulationSize_Data = 50;
% Generations
MaxGenerations_Data = 500;
MaxStallGenerations_Data = 500;
% tolerance
FunctionTolerance_Data = 0.001;
ConstraintTolerance_Data = 0.001;
%% solver
[x,fval,exitflag,output,population,score] = solver(nvars,lb,ub,PopulationSize_Data,MaxGenerations_Data, ...
MaxStallGenerations_Data,FunctionTolerance_Data,ConstraintTolerance_Data);
optimal_solution = x
optimal_objective_functions = fval
%% Plotiing
hold on
plot(fval(:,1),fval(:,2),'o')
xlabel('efficiency')
ylabel('volume')
Plot for Objective_1 (efficiency) vs Objective_2 (Volume).
Implementing the above problem with constraints using Matlab: -
%% Function file for GA solver
function [x,fval,exitflag,output,population,score] = solver(nvars,lb,ub,PopulationSize_Data,MaxGenerations_Data,MaxStallGenerations_Data,FunctionTolerance_Data,ConstraintTolerance_Data)
% Algorithm
options = optimoptions('gamultiobj');
% Population size
options = optimoptions(options,'PopulationSize', PopulationSize_Data);
% Generations
options = optimoptions(options,'MaxGenerations', MaxGenerations_Data);
options = optimoptions(options,'MaxStallGenerations', MaxStallGenerations_Data);
% Tolerance
options = optimoptions(options,'FunctionTolerance', FunctionTolerance_Data);
options = optimoptions(options,'ConstraintTolerance', ConstraintTolerance_Data);
% Plotting
options = optimoptions(options,'PlotFcn',{@gaplotpareto});
% Crossover function
options = optimoptions(options,'CrossoverFcn', { @crossoverintermediate [] });
options = optimoptions(options,'Display', 'off');
[x,fval,exitflag,output,population,score] = gamultiobj(@efficiency,nvars,[],[],[],[],lb,ub,@Cycloid_const,options);
%% Creating Objective function file
function output = efficiency(input)
%% Variables are assigned to inputs
x1 = input(1);
x2 = input(2);
x3 = input(3);
x4 = input(4);
x5 = input(5);
x6 = input(6);
x7 = input(7);
%% Objective function for Efficiency
F1 = (1- ((1-(x1-x2)*((4*0.01)/(x5*x1*43*pi)))/(1+(x1-x2)*((4*0.01)/(x5*x1*pi))))*((1-(4*0.6*x5*x7*x1)/(pi*x6*(x7+3))))*0.99*0.995^2);
%% Objective function for Volume
F2 = ((1/4)*pi*x3*(((x1-x5*(x1/44)-x2)^2)-((x7+3+x5*(x1/44))^2*43-x4^2))+x5*(x1/44)*43*x3);
%% output
output = [F1, F2];
%% Function file for non linear Constraints
function [C, Ceq] = Cycloid_const(input)
%% Design Variables input
x1 = input(1);
x2 = input(2);
x3 = input(3);
x4 = input(4);
x5 = input(5);
x6 = input(6);
x7 = input(7);
%% Inserting Constraints in C
C = [(x2/2)-(x1/2)*(((1-x5)^2)/(44*x5+1)); 0.65-x5; x5-0.9; 1.6-(x1/x2)*sin(pi/44); (x1/x2)*sin(pi/44)-1;
0.418*sqrt((2.1*10^5*4.4*6300)/(x3*x5*43*x1*0.8))-1000; ((1.41*4.4*9550*0.75*20)/(x5*x1*1440*x2^2))-150;
300*sqrt((x5*6300*x1)/(43*x6*x3*((x7/2)+1.5)^2*44+0.5*x5*x1*(((x7/2)+1.5))))-580;
((4.4*1.4*6300*(1.5*x3+0.75))/(0.1*32*x6*x7^3))-200; 165-x1; x1-180; 0.06*x1-x6+x4+(x7+2*1.5+((x5*x1)/44)+0.15);
0.03*x1-x6*sin(pi/32)+(x7+2*1.5+((x5*x1)/44)+0.15); 0.05*x1-x3; x3-0.1*x1; 5000-(10^6/(60*1474))*(64900/49452)^(10/3)];
Ceq = [];
end
clc
clear all
close all
%% Obtaining solution by giving inputs
% number of design variables
nvars = 7;
format short
% lower bounds
lb = [140,7,7,50,0.65,88,11];
% upper bounds
ub = [155,10.4,12,55,0.9,104,14];
% population size
PopulationSize_Data = 50;
% Generations
MaxGenerations_Data = 500;
MaxStallGenerations_Data = 500;
% tolerance
FunctionTolerance_Data = 0.001;
ConstraintTolerance_Data = 0.001;
%% solver
[x,fval,exitflag,output,population,score] = solver(nvars,lb,ub,PopulationSize_Data,MaxGenerations_Data, ...
MaxStallGenerations_Data,FunctionTolerance_Data,ConstraintTolerance_Data);
optimal_solution = x
optimal_objective_functions = fval
%% Plotiing
hold on
plot(fval(:,1),fval(:,2),'o')
xlabel('efficiency')
ylabel('volume')
Plot for Efficiency vs Volume (with constraints): -
Conclusion: -
References: -
[1] J.H. Shin, S.M. Kwon, On the lobe profile design in a cycloid reducer using instant velocity center [J], Mech. Mach. Theory 41 (5) (2006) 596–616.
[2] Y.W. Hwang, C.F. Hsieh, Geometric design using hypotrochoid and non-undercutting conditions for an internal cycloidal gear [J], ASME J. Mech. Des. 129 (4) (2007) 413–420.
[3] W.S. Wang, Z.H. Fong, Undercutting and contact characteristics of longitudinal cycloidal spur gears generated by the dual face-hobbing method [J], Mech. Mach. Theory 46 (4) (2011) 399–411.
[4] S. Li, Design and strength analysis methods of the trochoidal gear reducers [J], Mech. Mach. Theory 81 (10) (2014) 140–154.
[5] W.S. Lin, Y.P. Shih, J.J. Lee, Design of a two-stage cycloidal gear reducer with tooth modifications [J], Mech. Mach. Theory 79 (9) (2014) 184–197.
[6] M. Blagojevic, N. Marjanovic, Z. Djordjevic, et al., A new design of a two-stage cycloidal speed reducer [J], ASME J. Mech. Des. 133 (8) (2011) 11–17.
[7] D.F. Thompson, S. Gupta, A. Shukla, Tradeoff analysis in minimum volume design of multi-stage spur gear reduction units [J], Mech. Mach. Theory 35 (5) (2000) 609–627.
Google Drive link for PPT, m-files.
https://drive.google.com/drive/folders/1Fw5FddWR6yfO78-G-E1Bo-kyGxBfE4R-?usp=sharing
Leave a comment
Thanks for choosing to leave a comment. Please keep in mind that all the comments are moderated as per our comment policy, and your email will not be published for privacy reasons. Please leave a personal & meaningful conversation.
Other comments...
Project 1 - Parsing NASA thermodynamic data
Aim: - Write a Matlab program that extracts 14 co-efficient and to calculate the entropy, enthalpy, and specific heats for all the species in the given NASA Thermodynamic data file data. Also, to calculate the molecular weight of each species. File Parsing: - Parsing, which is the process of identifying…
03 May 2022 06:52 PM IST
FINAL INDEPENDENT PROJECT
Final Independent Project: - Topic: - Multi-objective optimal design of cycloid speed reducer based on genetic algorithm. Platform used to Solve the problem: - Matlab Introduction: - Cycloid speed reducers have found wide applications in the automation field as industry robots, machine tools, automatic machinery and other…
10 Apr 2022 10:32 AM IST
Project 2 - Rankine cycle Simulator
Aim: To create a Rankine Cycle simulator using Matlab. Objective: To calculate the state points of the Rankine cycle. To plot the T-S, H-S Diagrams of Rankine cycle. Theory: The Rankine cycle is an idealized thermodynamic cycle describing the process by which certain heat engines, such as steam turbines…
03 Apr 2022 07:27 PM IST
Week 4.1 - Genetic Algorithm
Genetic Algorithm: - A genetic algorithm is a search heuristic that is inspired by Charles Darwin’s theory of natural evolution. This algorithm reflects the process of natural selection where the fittest individuals are selected for reproduction in order to produce offspring of the next generation. …
23 Jan 2022 07:40 AM IST
Related Courses
0 Hours of Content
Skill-Lync offers industry relevant advanced engineering courses for engineering students by partnering with industry experts.
© 2025 Skill-Lync Inc. All Rights Reserved.