Boundary conditions for different areas of phi
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Dave K.
am 29 Jun. 2020
Kommentiert: Dave K.
am 29 Jun. 2020
Dear Forum,
This is my first post, I hope I'm not doing anything wrong. I am not a native English speaker, but I hope to translate the mathematical expressions well.
I want to define a function for a cam gear. I have already defined the cam mechanism linearly, now I want to define the actual function using a sinoid. That means, I set up the laws of motion in general. I have done that (f0,f1,f2,f1f2). Now I would like to determine the special parameters and for this I define the motion function and its derivatives (F0,F1,F2,F1F2) again with boundary conditions. For example, for phi between 0° and 10° the motion function of the path should be -1.
I wanted to try it the way you can see below. But no matter what I do, the error remains. I need your help.
N_Vert = 25.4/11; %11 needles for 25.4mm = 2.31mm
% define Positions
s_hubweg = N_Vert*[0;-1;-1;0;0;1;1;2;2;1;1;0;0];
winkel = [0;10;22.5;32.5;45;55;90;100;112.5;122.5;135;145;180];
% create the laws of movement
z = linspace(0,1,180);
f0 = 0.5*(1-cos(pi*z)); %added for the forum: f0=f
f1 = (pi/2)*sin(pi*z); %added for the forum: f1=f'
f2 = (pi^2/2)*cos(pi*z); %added for the forum: f2=f''
f1f2 = f1.*f2; %added for the forum: f1f2=f'*f''
% nominal parameters for cam gear
C_vn = 1.57;
C_an = 4.93;
C_Mdynn = 3.88;
% Übertragungsfunktion F von phi
phi = linspace(0,360,360);
% define Function for areas of phi
% function of the way
F0(phi>=0 & phi<10) = flip(f0-1);
F0(phi>=10 & phi<22.5) = -1;
F0(phi>=22.5 & phi<32.5) = f0-1;
% ... and more
% function of speed
F1(phi>=0 & phi<10) = -f1;
F1(phi>=10 & phi<22.5) = 0;
F1(phi>=22.5 & phi<32.5) = f1;
% ... and more
% function of acceleration
F2(phi>=0 & phi<10) = -f2;
F2(phi>=10 & phi<22.5) = 0;
F2(phi>=22.5 & phi<32.5) = f2;
% ... and more
% function of momentum
F1F2(phi>=0 & phi<10) = -f1f2;
F1F2(phi>=10 & phi<22.5) = 0;
F1F2(phi>=22.5 & phi<32.5) = f1f2;
% ... and more
% adjust amplitudes
F0 = F0*N_Vert;
F1 = F1*N_Vert;
F2 = F2*N_Vert;
F1F2 = F1F2*N_Vert.^2;
My error starts to appear with this line:
F0(phi>=0 & phi<10) = flip(f0-1);
And continues with all similar lines.
I hope I've given you all the relevant information about the code so that you can understand my problem.
Can you tell me, how to setup such a process correctly in MATLAB?
I would be very grateful for an answer! Thanks a lot!
0 Kommentare
Akzeptierte Antwort
Alan Stevens
am 29 Jun. 2020
Bearbeitet: Alan Stevens
am 29 Jun. 2020
Firstly, phi is size 1x360, whereas f0 is of size 1x180, but, more importantly perhaps, phi>=0 & phi<10 means you want elements that are both less than and greater than zero!. I suspect you meant phi>=0 | phi<10 (or, rather than and). The result of phi>=0 & phi<10 is to return a vector of zeros, and MATLAB indexing starts at 1 not 0.
7 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Bartlett finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!