[Master Index] [Index for .]

wheellu

(./wheellu.m)


Help text

%%%
 Script file to generate the descripiton of a bicycle wheel.
%
 Rim lies in the xy plane. axle is on the z axis.

Cross-Reference Information

This calls

Listing of ./wheellu.m

%%%%
% Script file to generate the descripiton of a bicycle wheel.
%%
% Rim lies in the xy plane. axle is on the z axis.

dof = 6;    % Frame model
r_rim = 13.5;        % Radius of the rim. (inches)
r_hub = 1;        % radius of the spoke holes on the hub
spokes = 32;    % Is this obvious or what?
flange_spacing = 3;    %How far apart are the flanges
flange_offset = 1;    % how far the rim is offset from the center of the flanges
n_cross = 3;        %how many crosses do the spokes have.


% nodes = [x,y,z;x,y,z;...]

theta = ((1:spokes)*2*pi/spokes)';
d_theta = 2*pi/spokes;

rim_nodes = [r_rim*sin(theta),r_rim*cos(theta),zeros(spokes,1)];

%Sets up which flange goes where, and shoves it into a vector that will be the z position
% of the node assotiated with the specific spoke.

left_flange = flange_offset + flange_spacing/2;
right_flange = flange_offset - flange_spacing/2;

flanges = left_flange*ones(spokes,1);
flanges(2:2:spokes) = right_flange*ones(spokes/2,1);

%does the rotation for the crosses, one half the spokes rotate n*d_theta cw, and the other 
% half go the other way. N is the number of crosses.

ccw_shift = [1:4:spokes,2:4:spokes];    %sets up which nodes rotate which way
cw_shift = [3:4:spokes,4:4:spokes];

theta_hub = theta;                        
theta_hub(ccw_shift) = theta_hub(ccw_shift)-2*n_cross*d_theta;
theta_hub(cw_shift) = theta_hub(cw_shift)+2*n_cross*d_theta;
hub_nodes = [r_hub*sin(theta_hub),r_hub*cos(theta_hub),flanges];

nodes = [rim_nodes;hub_nodes];
[num_nodes,nc] = size(nodes);
active_nodes = [1:spokes];

%members = [:,member] where member == [pi,pj,a,e,beta,iss,itt,j,g]

arim = .126;      %% in^2   These values are for a Mavic MA40, numbers    
erim = 11000000 ; %psi        from Eric Topp
Iss_r = .0032;    %% in^4
Itt_r = .0108; %% in^4
beta = pi/2;        %% Direction of bending about the "strong" axis,
            %% here towards center of the wheel
j_r = .0140;  %% in^4
g_r = 4000000;%

%rim members

rim_members = [[1:spokes]',[2:spokes,1]',arim*ones(spokes,1),...
                erim*ones(spokes,1),beta*ones(spokes,1),...
                Iss_r*ones(spokes,1),Itt_r*ones(spokes,1),...
                j_r*ones(spokes,1),g_r*ones(spokes,1)];


spoke_members = zeros(spokes,9);

a_spoke = .0049;  %% for 2mm dia spoke (approx)
e_spoke = 29000000;

spoke_members(:,1) = spokes + (1:spokes)';
spoke_members(:,2) = (1:spokes)';
spoke_members(:,3) = a_spoke*ones(spokes,1);
spoke_members(:,4) = e_spoke*ones(spokes,1);

members = [rim_members;spoke_members];

%loads = [node, fx,fy,fz,mx,my,mz;...
loads = [spokes,0,1,0,0,0,0];  %% This load is at x = 0, y = r_rim.  

[displacements] = solve_truss_lu(nodes,members,active_nodes,loads,dof);
plot_truss(nodes,members,displacements); 
member_forces  = forces(nodes,members,displacements);
























Produced by mat2html on Wed Jul 10 14:55:44 US/Pacific 1996
Cross-Directory links are: OFF