Numirecal integration for a vector

조회 수: 1 (최근 30일)
nezir elali
nezir elali 2019년 9월 1일
댓글: nezir elali 2019년 9월 7일
Hi everybody,
I am designing non-circular gears using MATLAB. I have designed several types. My last step is to generate the general case which starts from the speed ratio variation. I have this equation (in the photo attached).
I have the speed ratio as a vector and also I have the input angle. I need to calculate the second gear output angle. I think that I need to integrate the vector to get my goal, but how??????????
I need help in this. please.
% this program is for calculating the NCG (non-circular gear) with no approximation
clear, clc
disp('This program generates NCG depending on the imported speed ratio form Excel file')
disp('and entered center distance')
Ratio=xlsread('speed_ratio.xlsx','A:A');
Ratio=Ratio';
Center_dis=input('Enter the center distance value in mm, Center_distance= '); % use 89.305
m=input('enter the module you want to use in mm, m= '); % use 3
phi=input('enter the standard pressure angle in degrees, phi= '); % use 20
disp('*')
disp('*')
disp('The solution depends on the main equation of NCG design and geanaration')
disp('*')
disp('*')
% the input angle is equal parts since the driving gear angular velocity is
% constant, so depending on the number of the speed ratio elements, we
% can divide the one rotation (2*pi) to the same number of elements
Input_ang=0:0.0001*pi:2*pi;
% plot the speed ratio variations
figure(1)
% plot the center
plot(0,0,'or','LineWidth',5)
hold on
plot(Input_ang,Ratio,'LineWidth',3)
title('The speed ratio variations of the NC-gearset')
xlabel('input angle')
ylabel('W_2/ W_1')
axis equal
grid on
% generating the first centrode with its evolute, base curve, tip and root curve.
R_c1=(Center_dis.*Ratio)./(1+Ratio);
X_c1=R_c1.*cos(Input_ang);
Y_c1=R_c1.*sin(Input_ang);
% plot it with clear zero point
figure(2)
% plot the center
plot(0,0,'or','LineWidth',5)
hold on
plot(X_c1,Y_c1,'k')
title('The first centrode')
xlabel('X')
ylabel('Y')
axis equal
grid on
% generating the second centrode with its evolute, base curve, tip and root curve.
R_c2=Center_dis-R_c1;
% here I need to calcualte the second gear rotating angle but how???????? need help.
  댓글 수: 2
darova
darova 2019년 9월 1일
Use diff() or gradient() to differentiate a vector
nezir elali
nezir elali 2019년 9월 3일
Dear Darova,
I used diff and gradient function previously,
I am looking for integrating a vector with the same way like diff.
anyway thanks for answering

댓글을 달려면 로그인하십시오.

답변 (1개)

Steven Lord
Steven Lord 2019년 9월 3일
See the trapz or cumtrapz functions.
  댓글 수: 1
nezir elali
nezir elali 2019년 9월 7일
Thanks for answering Steven,
I tried to use cumtrapz but I don't know if I used it ok or not.
I tried to do something else.
I tried to make integration for the vector like accumlative but stil I have a problem since the Output_ang is more than 2*pi I mean th last element in the output_ang must be 2*pi not more at all.
any ideas??????????!!!!!!!!!!!!!!
% this program is for calculating the NCG (non-circular gear) with no approximation
clear, clc
disp('This program generates NCG depending on the imported speed ratio form Excel file')
disp('and entered center distance')
Ratio=xlsread('speed_ratio.xlsx','A:A');
Ratio=Ratio';
Center_dis=input('Enter the center distance value in mm, Center_distance= '); % use 89.305
m=input('enter the module you want to use in mm, m= '); % use 3
phi=input('enter the standard pressure angle in degrees, phi= '); % use 20
disp('*')
disp('*')
disp('The solution depends on the main equation of NCG design and geanaration')
disp('*')
disp('*')
% the input angle is equal parts since the driving gear angular velocity is
% constant, so depending on the number of the speed ration elements, we
% can divide the one rotation (2*pi) to the same number of elements
Input_ang=0:0.0001*pi:2*pi;
% plot the speed ratio variations
figure(1)
% plot the center
plot(0,0,'or','LineWidth',5)
hold on
plot(Input_ang,Ratio,'LineWidth',3)
title('The speed ratio variations of the NC-gearset')
xlabel('input angle')
ylabel('W_2/ W_1')
axis equal
grid on
% generating the first centrode with its evolute, base curve, tip and root curve.
R_c1=(Center_dis)./(1+Ratio);
X_c1=R_c1.*cos(Input_ang);
Y_c1=R_c1.*sin(Input_ang);
% plot it with clear zero point
figure(2)
% plot the center
plot(0,0,'or','LineWidth',5)
hold on
plot(X_c1,Y_c1,'k')
title('The first centrode')
xlabel('X')
ylabel('Y')
axis equal
grid on
% generating the second centrode with its evolute, base curve, tip and root curve.
% R_c2=Center_dis-R_c1; % first choice
R_c2=(Center_dis.*Ratio)./(1+Ratio); % second choice
% finding the rotating angle of the second gear
Output_ang=zeros(1,length(Ratio));
for i=2:length(Ratio) % first choice to integrate the vector methodolgy to integrate like cumtrapz
Output_ang(i)=0.0001*pi.*(1./Ratio(i))+Output_ang(i-1);
end
% this method from the net as second choice to integrate the vector
% func=0.0001*pi./Ratio;
% output_angle=cumtrapz(func); it is not correct
Output_ang=pi-Output_ang;
X_c2=R_c2.*cos(Output_ang);
Y_c2=R_c2.*sin(Output_ang);
% plot it with clear zero point
figure(3)
% plot the center
plot(0,0,'or','LineWidth',5)
hold on
plot(X_c2,Y_c2,'k')
title('The second centrode')
xlabel('X')
ylabel('Y')
axis equal
grid on

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Numerical Integration and Differentiation에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by