Using Excel to make things easier

Tech questions that don't fit above forums

Moderator: Team

Post Reply
User avatar
Dave Koehler
Vendor
Posts: 7206
Joined: Mon Oct 04, 2004 11:19 pm
Location: Urbana, IL USA
Contact:

Using Excel to make things easier

Post by Dave Koehler »

Working on what could be called an antique. Machining to correct the following not possible in this case.

I have .005 spread in crank stroke.
I have .003 spread in rod CtoC
I have .004 spread in piston pin height.

To get half way even cylinder pressure I am currently matching and averaging things out the old fashioned way, by hand and calculator. IE: short rod with long piston, yada yada.

It occurs to me to wonder if this could be done in Excel or VB.
3 columns, stroke, CtoC, pin height. It would sort through all the first three colums and finds the closest match in total length. Results would show for instance, rod 1 with piston 3 on journal 5.

Anyone done this, know how to do this, show me how to do it?
Thanks
Dave Koehler - Koehler Injection
Enderle Fuel Injection - Nitrous Charger - Balancing - Nitrous Master software
http://www.koehlerinjection.com
"Never let a race car know that you are in a hurry."
David Redszus
Guru
Guru
Posts: 9633
Joined: Tue Nov 27, 2007 9:27 am
Location: Chicago
Contact:

Post by David Redszus »

What you are suggesting not only can be done, but should be done. It's not very hard to do.
While you are at it, you might as well add a column for rod weights, pin weight, piston weight, chamber cc, crank index, etc. And of course, cam lobe, valve spring, and valve train variations.
By mixing and matching components on paper, you could put together a very nice blueprinted engine with a minimum amount of machine shop work.
We've done this for 25 years; it takes time but it works.
Engineguy
Member
Member
Posts: 195
Joined: Mon Nov 21, 2005 12:26 am
Location: Indiana
Contact:

Post by Engineguy »

Just take advantage of computer speed to use brute force... try a lot of random combos. You could add other factors as David noted.



Psuedo-code (Basicish)

'Declare and Initialize Variables

'(boolean arrays)

bool array rod_avail[4]
rod_avail[1] = true
rod_avail[2] = true
rod_avail[3] = true
rod_avail[4] = true

bool_array piston_avail[4]
piston_avail[1] = true
piston_avail[2] = true
piston_avail[3] = true
piston_avail[4] = true

'(integers)

rodnum=0
pistonnum=0

int array rod[4]
rod [1]= 0
rod [2]= 0
rod [3]= 0
rod [4]= 0

int array piston[4]
piston[1] = 0
piston[2] = 0
piston[3] = 0
piston[4] = 0

int array best_rod[4]
best_rod [1]= 0
best_rod [2]= 0
best_rod [3]= 0
best_rod [4]= 0

int array best_piston[4]
best_piston[1] = 0
best_piston[2] = 0
best_piston[3] = 0
best_piston[4] = 0


'(single precision)

single array stroke[4]
stroke[1] = 2.9999
stroke[2] = 2.9997
stroke[3] = 2.9995
stroke[4] = 3.0001

single array rod_len[4]
rod_len[1] = 5.6999
rod_len[2] = 5.6994
rod_len[3] = 5.6995
rod_len[4] = 5.7000

single array piston_ht[4]
piston_ht[1] = 1.4999
piston_ht[2] = 1.4998
piston_ht[3] = 1.4991
piston_ht[4] = 1.4995

ht=0.0
max_total_ht = 0.0
min_total_ht = 1000.0
range=0.0
best_range=1000.0

===================================

'main

for aa=1 to 9999

max_total_ht = 0.0
min_total_ht = 1000.0
range=0.0


for cyl=1 to 4

rod[cyl]=0
do
rodnum = random_int(1 to 4)
if rod_avail[rodnum]=true then
rod[cyl]=rodnum
rod_avail[rodnum]=false 'mark it used
endif
until rod[cyl]>0

piston[cyl]=0
do
pistonnum = random_int(1 to 4)
if piston_avail[pistonnum]=true then
piston[cyl]=pistonnum
piston_avail[pistonnum]=false 'mark it used
endif
until piston[cyl]>0

ht=stroke[cyl]+rod_len[rod[cyl]]+piston_ht[piston[cyl]]
if ht > max_total_ht then max_total_ht = ht
if ht < min_total_ht then min_total_ht = ht

next cyl


range=max_total_ht - min_total_ht

if range < best_range then
best_rod [1]= rod [1]
best_rod [2]= rod [2]
best_rod [3]= rod [3]
best_rod [4]= rod [4]
best_piston[1] = piston[1]
best_piston[2] = piston[2]
best_piston[3] = piston[3]
best_piston[4] = piston[4]
endif

'reset avails
rod_avail[1] = true
rod_avail[2] = true
rod_avail[3] = true
rod_avail[4] = true
piston_avail[1] = true
piston_avail[2] = true
piston_avail[3] = true
piston_avail[4] = true

next aa

'final report
print "Cylinder 1 uses Rod ", best_rod[1], " and Piston ", best_piston[1]
print "Cylinder 2 uses Rod ", best_rod[2], " and Piston ", best_piston[2]
print "Cylinder 3 uses Rod ", best_rod[3], " and Piston ", best_piston[3]
print "Cylinder 4 uses Rod ", best_rod[4], " and Piston ", best_piston[4]
[size=150][url]http://www.SportsCarDesigner.com[/url] [color=deeppink].... You [u]want[/u] to design your own car... so go ahead.[/color][b] Sports Car Designer [/b][color=deeppink] is the answer.[/color][/size]
What else can you do with that gift card you got?
User avatar
Dave Koehler
Vendor
Posts: 7206
Joined: Mon Oct 04, 2004 11:19 pm
Location: Urbana, IL USA
Contact:

Post by Dave Koehler »

Oh my! I obviously have some stuff to learn in how to make that VB happy.
Thanks....I think. :lol:
Dave Koehler - Koehler Injection
Enderle Fuel Injection - Nitrous Charger - Balancing - Nitrous Master software
http://www.koehlerinjection.com
"Never let a race car know that you are in a hurry."
Procision-Auto
Guru
Guru
Posts: 1528
Joined: Tue May 02, 2006 8:11 pm
Location: Kitchener, ONT., Canada
Contact:

Post by Procision-Auto »

Dave Koehler wrote:Oh my! I obviously have some stuff to learn in how to make that VB happy.
Thanks....I think. :lol:
Me too!

If you want to send the finished product to me, I can add pretty colours
and borders as my contribution :lol:
blykins
Guru
Guru
Posts: 2130
Joined: Mon Aug 27, 2007 9:59 pm
Location: Louisville, KY

Post by blykins »

If you all need some help, I do some VB'ing on the side. It would be my donation to the industry. :lol:
User avatar
af2
Guru
Guru
Posts: 7014
Joined: Sun Jan 28, 2007 4:42 pm
Location: Grass Valley, CA :Northern Foothills

Post by af2 »

Procision-Auto wrote:
Dave Koehler wrote:Oh my! I obviously have some stuff to learn in how to make that VB happy.
Thanks....I think. :lol:
Me too!

If you want to send the finished product to me, I can add pretty colours
and borders as my contribution :lol:
No way! :lol: :lol: :lol:
GURU is only a name.
Adam
User avatar
Dave Koehler
Vendor
Posts: 7206
Joined: Mon Oct 04, 2004 11:19 pm
Location: Urbana, IL USA
Contact:

Post by Dave Koehler »

Thanks guys,
I may be in touch. Be careful what you wish for. :lol:
Dave Koehler - Koehler Injection
Enderle Fuel Injection - Nitrous Charger - Balancing - Nitrous Master software
http://www.koehlerinjection.com
"Never let a race car know that you are in a hurry."
David Redszus
Guru
Guru
Posts: 9633
Joined: Tue Nov 27, 2007 9:27 am
Location: Chicago
Contact:

Post by David Redszus »

Over the years I have found that keeping accurate notes regarding specific engine builds has been very beneficial. With the arrival of Excel I have built detailed blueprint specifications for each engine. It works like this.

First get all the dimensions and tolerances that are available for the engine of your choice. Factory shop manuals contain very useful, detailed information.

Build a spreadsheet containing the dimensions and tolerances for each engine component, including specs for each oversize that might be used.

Let the spreadsheet do most of the math. For example, enter the bore dimension (at several axis and vertical positions) and piston dimension (ring land and skirt, pin and thrust axis), and have Excel calculate the piston to bore clearances at each axis and height location.

The same can be done for bearing/journal dimensions and clearances.

When complete, you have a detailed record of that engine build. When the engine needs to be refreshed, you can compare the dimensions of used parts to their original dimensions to determine areas of excessive wear.
Without the actual numbers, we are only guessing.
Post Reply