## this is not a function file (-*- octave -*-) ## Dirk Bonne 1; ## the basic flevo parameters ## - all distances are in mm ## - angels are in radians global flevo; ## radius of the front wheel (26'') ## 315 for 26'' (Hutchinson Top Slick Basic 26 x 1,2 oder Continental Sportcontact 26x1,3) ## 235 for 20'' (Monte Carlo) flevo.rf = 315; #flevo.rf = 235; ## height of the seat flevo.seatz = 300; #flevo.rf; ## distance from the contact point of the backwheel to the contact ## point of the front wheel when steering strait flevo.lwb = 1300; ## how much the wheel axe is moved from the steering axis in Y direction flevo.ldf = 0; ## the angel of the steering axis against Y direction flevo.aa = 70 * pi / 180; ## angel of steering around vector vs where 0 is when steering strait flevo.ab = 0; ## tilting angel of the back part around the Y axis in relation to Z axis flevo.aj = 0; ## calculated by flevo_calc values) defines the position of ## the front wheel with the formula: transf + rotf*[0; rf*cos(t); ## rf*sin(t)] flevo.transf = [0;0;0]; flevo.rotf = eye(3); ## how to calculate the back part of the bicycle. Any point of the ## bicylce in the back part corresponds to transb + rotb*[x,y,z] where ## x,y,z is mesured from the contact point of the back wheel flevo.transb = [0;0;0]; flevo.rotb = eye(3); flevo_base; flevo_calc; function plot_change_height_vs_trail global flevo; grid on; ntrail = 50; trail_space = linspace(-300, 100, ntrail); naa = 6; aa_space = [30*pi/180; 45*pi/190; 55*pi/180; 70*pi/180; 80*pi/180; 90*pi/180]; ##linspace(30*pi/180, 90*pi/180, naa); ## angle at which the wheel is turned: flevo.ab = 20 * pi/180; ## I set the y position of the seatheight intesects with the steering angle. gset title "seat height vs trail for different pivot angles (turning angle is 20degrees)"; gset xlabel "trail (mm)"; gset ylabel "seat height (mm)"; for i = 1:naa flevo.aa = aa_space(i); for j = 1:ntrail ## printf("RUN FOR TRAIL=%f\n", trail_space(j)); flevo_set_trail(trail_space(j)); flevo_calc(); ## rotation around the back wheel axis seat = [0; flevo.lwb - flevo.ldf - (flevo.seatz - flevo.rf) / tan(flevo.aa); flevo.seatz]; height(j) = flevo_bpoint(seat)(3); endfor; key = sprintf("-;angle=%.0f degrees;", flevo.aa*180/pi); plot(trail_space, height, key); hold on; endfor; hold off; endfunction; function plot_change_height_vs_aa global flevo; grid on; ntrail = 5; trail_space = linspace(-300, 100, ntrail); naa = 100; aa_space = linspace(30, 90, naa); ## angle at which the wheel is turned: flevo.ab = 20 * pi/180; ## I set the y position of the seatheight intesects with the steering angle. gset title "seat height vs pivot angle for some trails (turning angle is 20degrees)"; gset xlabel "pivot angle (degrees)"; gset ylabel "seat height (mm)"; for j = 1:ntrail for i = 1:naa flevo.aa = (pi/180) * aa_space(i); ## printf("RUN FOR TRAIL=%f\n", trail_space(j)); flevo_set_trail(trail_space(j)); flevo_calc(); ## rotation around the back wheel axis seat = [0; flevo.lwb - flevo.ldf - (flevo.seatz - flevo.rf) / tan(flevo.aa); flevo.seatz]; height(i) = flevo_bpoint(seat)(3); endfor; key = sprintf("-;trail=%.0f;", trail_space(j)); plot(aa_space, height, key); hold on; endfor; hold off; endfunction; function plot_change_height_vs_ab global flevo; grid on; ntrail = 5; trail_space = linspace(-300, 100, ntrail); nab = 100; ab_space = linspace(0, 90, nab); ## angle at which the wheel is turned: flevo.aa = 55 * pi/180; ## I set the y position of the seatheight intesects with the steering angle. gset title "seat height vs turning angle for some trails (pivot angle is 55degrees)"; gset xlabel "turning angle (degrees)"; gset ylabel "seat height (mm)"; for j = 1:ntrail for i = 1:nab flevo.ab = (pi/180) * ab_space(i); ## printf("RUN FOR TRAIL=%f\n", trail_space(j)); flevo_set_trail(trail_space(j)); flevo_calc(); ## rotation around the back wheel axis seat = [0; flevo.lwb - flevo.ldf - (flevo.seatz - flevo.rf) / tan(flevo.aa); flevo.seatz]; height(i) = flevo_bpoint(seat)(3); endfor; key = sprintf("-;trail=%.0f;", trail_space(j)); plot(ab_space, height, key); hold on; endfor; hold off; endfunction; #gset output "height_vs_trail.png"; #grid on; #plot_change_height_vs_trail; # gset terminal png; # gset output "height_vs_aa.png";