Portfolio for Jordan Rhoads 
Biography 
 
I am a BYU mechanical engineering candidate. I have experience in 
CAD software, computer programing, fluid dynamics, compliant 
mechanisms and machining. I am currently involved in research for 
creating super­hydrophobic surfaces.   
 
Specialties:  
Computer Programing (html, Matlab and C++) 
CAD and analysis (NX, Inventor and ANSYS) 
Quality Systems Analysis  
Compliant Mechanisms 
Wind tunnel experience 
Machining Experience 
 
Project Overview 
Our project was to optimize refrigerated train cars to be more fuel efficient for Union Pacific. Any 
modifications developed were required to provide a ROI (return on investment) of 2­3 years.  
Project Planning and Scheduling 
 
Our Team: ​ We exchanged emails and had a conference with to our sponsor, Wayne, from 
Union Pacific to find out what results he expected from our team. From this information, we 
created a requirement matrix, a list of milestones, a budget, and a project contract.  
 
Me:​ I was the team leader for the semester. I gave assignments to team members and verified 
their deliverables. I organized and led team meetings. I also created burndown charts tracking 
our effort and tasks as a team. I reported the results to Jake, our team coach. These burndown 
charts can be found in figure A.1 in appendix A. I also managed the team calendar and making 
sure all team activities were scheduled and that all team members were informed of the 
activities.  
 
Idea Generation 
 
Our Team:​ We generated 25­30 ideas to improve the fuel cost of the reefer. We down selected 
and scheduled to test and develop five of those ideas.  
 
Me:​ I scheduled, organized and led the brainstorming and down­selecting sessions. I led the 
team to deciding on five designs to test. These designs were: a smooth roof, a smooth bottom, 
sideskirts, wheel diverters, fairings, and a dome over the refrigerator.  
 
 
Prototyping 
 
Our Team:​ Physical models were produced for wind tunnel testing.  
 
Me:​ As mentioned before, I was in charge of scheduling and planning. I helped keep the team on 
schedule making and testing the prototypes.  
 
Decision Matrices 
 
Our Team:​ We produced a requirements matrix for our project contract. We narrowed our 
concept ideas to five. We made decisions on how to make prototypes, how to calibrate the wind 
tunnel equipment and how to calculate the drag coefficients and fuel savings. 
 
Me:​ I assigned a person to be in charge of creating the matrix and I verified her work. Our drag 
coefficients were not acceptable so I had to check all of the calculations and data for errors. 
Upon discovery of these errors, decisions had to be made. Our coach and I made a decision to 
calibrate all three load cells separately since the load cells varied with the data they produced. I 
made the decision to use the width of the train for calculating the Reynolds number. I also 
decided to use the frontal surface area for calculating the drag coefficient after studying previous 
reports and researching the formula. As team leader, I've had to make many judgement calls 
and had to prioritize the team's tasks on a day­to­day basis. 
 
Engineering Modeling 
 
Our Team:​ We ran the CAD prototypes in the CFD program on the computer to produce a drag 
coefficient for each prototype. We also ran the physical prototypes in the wind tunnel and in 
Labview and MATLAB we calculated the drag coefficients of each prototype. We compared the 
drag coefficients to the baseline model and made an estimate on the fuel savings of each 
prototype.  
 
Me: ​I programmed the MATLAB code to calibrate the load cell and pressure transducer in the 
wind tunnel. I also programmed the MATLAB code for calculating the drag coefficient, Reynolds 
number, and uncertainties for each test. In programming these codes, I had to learn new 
techniques in MATLAB and learn to debug my code. These MATLAB codes can be found in 
Figure A.2 in the Appendix. I also made plans and rough estimates on how to calculate the ROI.  
 
FMEA 
 
Our Team: ​We created an FMEA chart analyzing the risks of us not fulfilling the grading criteria. 
The chart is found in Appendix A.3. 
 
Me:​ I helped lead the team meeting where we made the chart. I gave input on what values to put 
for the FMEA.  
 
Engineering Reporting and Presentation 
 
Our Team:​ We put together a project report and presentation. 
 
Me:​ I wrote the product status portion of the report. I also wrote my portion in the Performance 
Verification and Validation section.  
 
 
 
 
 
 
 
 
 
   
Appendix A: 
Figure A.1​: Task and Effort Burndowns for the semester. This shows the distribution of the 
completion of tasks and effort over time compared to an ideal distribution. 
 
 
 
 
 
 
 
 
 
Figure A.2​: MATLAB code for pressure transducer and load cell calibrations and the full analysis of 
drag coefficient and reynolds number. 
 
Pressure Calibration: 
%Master script for calibrating Pressure 
%Jordan Rhoads 2013‐12‐04 
clc 
clear all 
 
%static directory input 
dir_to_import = 'matlab'; 
 
[Voltage,Pressure,Vstd] = PCal_ProcessDir(dir_to_import); 
 
%plot Pressure vs Voltages 
jfiles = dir('*.csv'); 
jsize = size(jfiles,1); 
p = polyfit(Voltage,Pressure,1);   % p returns 2 coefficients fitting r = m_1 * x + b_2 
r = p(1) .* Voltage + p(2); 
m1 = p(1) 
b1 = p(2) 
R=corrcoef(Voltage,Pressure); 
R2 = (R(1,2))^2 
%plot both the points in y and the curve fit in r 
plot(Voltage, Pressure, 'x') 
hold on 
plot(Voltage, r, '‐') 
hold off 
xlabel('Pressure') 
ylabel('Voltages') 
title('Pressure vs Voltages') 
 
%Calculate Uncertainty 
Vacc = .0025;  %accuracy of pressure transducer 
Uncertainty_4 = Vacc*Voltage + Vstd  %Uncertainty of Pressure Transducer 
 
 
%PCal_ProcessDir.m 
%Inputs directory name and calls process file on each file that matches the 
%pattern 
 
function [Voltage,Pressure,Vstd] = PCal_ProcessDir(dirname) 
%folder_name = uigetdir  %lets you choose file for directory 
jfiles = dir('*.csv'); 
jsize = size(jfiles,1); 
Voltage = zeros(jsize,1); 
Pressure = zeros(jsize,1); 
Vstd = zeros(jsize,1); 
   for i=1:jsize 
   [Voltage(i),Pressure(i),Vstd(i)] = PCal_ProcessFile(jfiles(i).name); 
   end 
end 
 
%PCal_ProcessFile.m 
%Inputs file name and calucates Cd and Re with uncertainties 
 
function [Voltage,Pressure,Vstd] = PCal_ProcessFile(filename) 
%read txt file 
myfile = importdata(filename); 
%Import Voltage data 
V = myfile(:,1);  %Voltage for test 
Pressure = myfile(1,3)*249.174;  %Pressure Converted to Pa 
%Calculate mean and std of voltages 
Voltage = mean(V(1:10000,1));   
Vstd = std(V(1:10000,1)); 
end 
 
Load Cell Calibration: 
%Master script for calibrating Load Cell 
%Jordan Rhoads 2013‐12‐04 
clc 
clear all 
 
%static directory input 
dir_to_import = 'matlab'; 
 
[Voltage1,Voltage2,Voltage3,Mass,Vstd1,Vstd2,Vstd3] = LCal_ProcessDir(dir_to_import); 
 
%plot Pressure vs Voltages 
jfiles = dir('*.csv'); 
jsize = size(jfiles,1); 
%m and b for Voltage 1 
p1 = polyfit(Voltage1,Mass,1);   % p returns 2 coefficients fitting r = m_1 * x + b_2 
r1 = p1(1) .* Voltage1 + p1(2); 
m1 = p1(1) 
b1 = p1(2) 
R1=corrcoef(Mass,Voltage1); 
R2_1 = (R1(1,2))^2 
 
%m and b for Voltage 2 
p2 = polyfit(Voltage2,Mass,1);   % p2 returns 2 coefficients fitting r = m_1 * x + b_2 
r2 = p2(1) .* Voltage2 + p2(2); 
m2 = p2(1) 
b2 = p2(2) 
R2=corrcoef(Mass,Voltage2); 
R2_2 = (R2(1,2))^2 
 
%m and b for Voltage 3 
p3 = polyfit(Voltage3,Mass,1);   % p3 returns 2 coefficients fitting r = m_1 * x + b_2 
r3 = p3(1) .* Voltage3 + p3(2); 
m3 = p3(1) 
b3 = p3(2) 
R3=corrcoef(Mass,Voltage3); 
R2_3 = (R3(1,2))^2 
 
%Calculate Uncertainty 
Vacc = 4.0801;  %accuracy of Load Cell 
Uncertainty_1 = Vacc + Vstd1 
Uncertainty_2 = Vacc + Vstd2 
Uncertainty_3 = Vacc + Vstd3 
 
%LCal_ProcessDir.m 
%Inputs directory name and calls process file on each file that matches the pattern 
 
function [Voltage1,Voltage2,Voltage3,Mass,Vstd1,Vstd2,Vstd3] = LCal_ProcessDir(dirname) 
jfiles = dir('*.csv'); 
jsize = size(jfiles,1); 
Voltage1 = zeros(jsize,1); 
Voltage2 = zeros(jsize,1); 
Voltage3 = zeros(jsize,1); 
Mass = zeros(jsize,1); 
Vstd1 = zeros(jsize,1); 
Vstd2 = zeros(jsize,1); 
Vstd3 = zeros(jsize,1); 
   for i=1:jsize 
   [Voltage1(i),Voltage2(i),Voltage3(i),Mass(i),Vstd1(i),Vstd2(i),Vstd3(i)] = 
LCal_ProcessFile(jfiles(i).name); 
   end 
end 
 
%LCal_ProcessFile.m 
%Inputs file name and calucates Cd and Re with uncertainties 
 
function [Voltage1,Voltage2,Voltage3,Mass,Vstd1,Vstd2,Vstd3] = LCal_ProcessFile(filename) 
%read file 
myfile = importdata(filename); 
   
%Import Voltage data 
V1 = myfile(:,1);  %Voltage for test 
V2 = myfile(:,2); 
V3 = myfile(:,3); 
Mass = myfile(1,4)*9.80665/1000; %Mass converted from g to kg 
%Calculate absolute value of mean and Standard Deviation of voltages 
Voltage1 = mean(V1(1:10000,1));   
Voltage2 = mean(V2(1:10000,1)); 
Voltage3 = mean(V3(1:10000,1)); 
Vstd1 = std(V1(1:10000,1)); 
Vstd2 = std(V2(1:10000,1)); 
Vstd3 = std(V3(1:10000,1)); 
end 
 
Full Analysis: 
%Master script for running Aerodynasty code 
%Jordan Rhoads 2013‐12‐04 
clc 
clear all 
 
%static directory input 
dir_to_import = 'matlab'; 
 
[Vdc1,Vdc2,Vdc3,Vdc4,T,speed] = ProcessDir(dir_to_import); 
 
%conversions 
ftm = 0.3048;  %ft to meters 
 
%from Pressure Calibration 
m4 =62121;  %characteristic slope for pressure 
b4 =47.439;  %characteristic bias for pressure 
%from Load Cell Calibration 
m1 = 4.4403e+03;  %characteristic slope for 1st Load Cell 
b1 = 38.7560;  %characteristic bias for 1st Load Cell 
m2 = 2.9372e+03;  %characteristic slope for 2nd Load Cell 
b2 = ‐33.0182;  %characteristic bias for 2nd Load Cell 
m3 = 4.4071e+03;  %characteristic slope for 3rd Load Cell 
b3 = 21.0659;  %characteristic bias for 3rd Load Cell 
 
%constants 
rair = 286.9;  %constant for air (J/kg*K) 
mu = 1.836e‐5;  %viscosity @ 750m above sea level (kg/m*s)   
Vt = 3.2;  %ave v of typical train (m/s) 
Pb = (1814/144)*6894.75729;    %Absolute Pressure of Wind Tunnel (Pa) 
Pt = 92633.6;  %Absolute Pressure of Train (Pa) 
l = (4.08875/12)*ftm;  %Width of Model Train (m) 
A = .01444463;  %surface area of front of train (m^2) 
 
%calculate 
Dm = m1.*Vdc1+b1+m2.*Vdc2+b2+m3.*Vdc3+b3; %Drag of model 
dp = (m4.*Vdc4+b4);                  %pressure difference (Pa) 
rho = rair.*T/Pb;  %density of air (kg/m^3) 
V = sqrt(2.*dp./rho);  %calculated velocity (m/s) 
Re = V*l.*rho/mu  %Reynolds Number 
Cd = Dm./(.5*rho.*(V.^2)*A)       %Drag Coeff 
 
%plot Cd vs Velocity 
jfiles = dir('*.csv'); 
jsize = size(jfiles,1); 
scatter(V,Cd) 
xlabel('Velocity (m/s)') 
ylabel('Cd') 
title('Cd vs Velocity') 
 
%ProcessDir.m 
%Inputs directory name and calls process file on each file that matches the pattern 
 
function [Vdc1,Vdc2,Vdc3,Vdc4,T,speed] = ProcessDir(dirname) 
%dirname = uigetdir(dirname); 
%dir(fullfile(dirname,'filename*.x*')) 
%create empty matrices 
jfiles = dir('*.csv'); 
jsize = size(jfiles,1); 
Vdc1 = zeros(jsize,1); 
Vdc2 = zeros(jsize,1); 
Vdc3 = zeros(jsize,1); 
Vdc4 = zeros(jsize,1); 
T = zeros(jsize,1); 
speed = zeros(jsize,1); 
%for loop to fill empty matrices 
   for i=1:jsize 
   [Vdc1(i),Vdc2(i),Vdc3(i),Vdc4(i),T(i),speed(i)] = ProcessFile(jfiles(i).name); 
   end 
end 
 
%ProcessFile.m 
%Inputs file name and calucates the mean voltages and temperature 
 
function [Vdc1,Vdc2,Vdc3,Vdc4,T,speed] = ProcessFile(filename) 
%read csv file 
   myfile = importdata(filename); 
   
%Import Voltage data 
V1 = myfile(:,2);  %Voltage for Drag 1 
V2 = myfile(:,3);  %Voltage for Drag 2 
V3 = myfile(:,4);  %Voltage for Drag 3 
V4 = myfile(:,5);  %Voltage Pressure 
temp = myfile(:,1);  %Temperature 
speed = myfile(1,7);  %speed setting 
%Calculate mean of voltages and Temperature 
Vdc1 = mean(V1); 
Vdc2 = mean(V2); 
Vdc3 = mean(V3); 
Vdc4 = mean(V4); 
T = mean(temp); 
end 
 
Figure A.3​: Team FMEA 
 

BYU Capstone Portfolio