There are lots of programs, including many commercial programs, that will predict the maximum altitude of a model rocket. There are some inexpensive altimeters out there also that can give altitude results when placed inside your model during flight. Are they trustworthy? I wasn't sure so I had an idea to see if I could come up with a LB program that would predict accurately (within 5%) the height of a model rocket. Of course this program is more involved than the others presented on this page so I needed some help. I got a great deal of help from Mr. John Fisher who lives in Merry Old England. I had the ideas of what I wanted to do and he developed the code that would get me there. I give all credit to him.
I knew published data was available for model rocket thrust curves. I was not sure how accurate this data was as I was concerned that companies that make the motors might tend to exaggerate the numbers. I began a series of tests using an analog to digital interface and a force probe to measure force and time data and integrated these curves to obtain impulse data for various rocket motors. I have to say that the published data is very close to my measurements. The first bit of code presented here represents a rocket flight simulation for an Estes A-8 rocket motor pushing a 37 gram rocket. This includes a parachute deployment and subsequent terminal velocity to ground.
'EstesA8.bas'This program uses the thrust data to draw a position/time, velocity/time, and acceleration/time'graph for a rocket of mass 37 grams and an A-8 Estes engine.nomainwinUpperLeftX=10UpperLeftY=10WindowWidth=1100WindowHeight=700graphicbox#w.g,10,10,1010,610textbox#w.t,10,620,610,30open"Rocket vertical flight simulation"forwindowas#w
#w,"trapclose [quit]"#w.g,"size 2 ; goto 5 505 ; down ; goto 950 505"
RocketBodyMass =0.030' fixed mass of rocket body
RocketFuelMass =0.0033' 3.3 gram of fuel
EngineCasingMass =0.0164' 17gram casing & nozzle.
burntime = .7 ' burn lasts for this time
burnrate = RocketFuelMass / burntime ' assume linear reaction rate
Area =0.0004' cross sectional area of rocket
Gravity =9.81' acceleration of gravity
AirDensity =1.2' density of air
DragCoefficient =0.75' allows for the streamlined shape
y =0' initial vertical height
vy =0' initial vertical displacement
time =0' initial time
deltat =0.001' time interval between updates
acceleration =0
hasTakenOff =0global RocketBodyMass, RocketFuelMass, EngineCasingMass, burntime, burnrate
global Area, Gravity, DragCoefficient, y, vy, time, deltat , Gravity, AirDensity
[here]
force =thrust( time)- Gravity * mass( time)- drag( time)if hasTakenOff <>0then acceleration =force / mass( time)else acceleration =0if thrust( time)>( mass( time)*Gravity)then hasTakenOff =1
vy = vy + acceleration *deltat
#w.g,"color green ; set "; 5+600*time /10; " "; 505-500*vy /250
y = y + vy *deltat
time = time + deltat
#w.t," Time = "; using("##.###", time); " force = "; using("##.###", force);_
" acceleration = "; using("#####.##", acceleration); " velocity = "; using("###.##", vy);_
" and height = "; using("#######.##", y)#w.g,"color black ; set "; 5+600*time /10; " "; 505-500*y /120scanif y <500and y >-.1 thengoto[here]wait' _____________________________________________________________________function thrust( tt)
th =0if tt <=.7 then th =-0.0229*tt +2.362if tt <=0.395then th =-10.9*tt +6.662if tt <=0.27then th =-151.3*tt +44.54if tt <=0.225then th =53.49*tt -2.049if tt <0.035then th =0.0' if tt <=1.6 then th =3'if tt <=0.3 then th=10 -80 *( tt -0.2)' if tt <=0.2 then th =50 *tt#w.g,"color red ; set "; 5+600*time /10; " "; 505-500*th /50
thrust =th
endfunction' _____________________________________________________________________function mass( tt)selectcase tt
case tt <=1.6' it burns 0.0035kg in 0.7s.
m =RocketBodyMass +EngineCasingMass + RocketFuelMass - tt *burnrate
caseelse
m =RocketBodyMass +EngineCasingMass
endselect
mass =m
endfunction'____________________________________________________________________________function drag( tt)if vy >0then drag =0.5*AirDensity*vy^2*DragCoefficient *Area else drag =-0.5*AirDensity *vy^2*DragCoefficient *Area
if tt >6then drag =-0.5*AirDensity *vy^2*DragCoefficient *0.05endfunction[quit]close#w
end
There are lots of programs, including many commercial programs, that will predict the maximum altitude of a model rocket. There are some inexpensive altimeters out there also that can give altitude results when placed inside your model during flight. Are they trustworthy? I wasn't sure so I had an idea to see if I could come up with a LB program that would predict accurately (within 5%) the height of a model rocket. Of course this program is more involved than the others presented on this page so I needed some help. I got a great deal of help from Mr. John Fisher who lives in Merry Old England. I had the ideas of what I wanted to do and he developed the code that would get me there. I give all credit to him.
I knew published data was available for model rocket thrust curves. I was not sure how accurate this data was as I was concerned that companies that make the motors might tend to exaggerate the numbers. I began a series of tests using an analog to digital interface and a force probe to measure force and time data and integrated these curves to obtain impulse data for various rocket motors. I have to say that the published data is very close to my measurements. The first bit of code presented here represents a rocket flight simulation for an Estes A-8 rocket motor pushing a 37 gram rocket. This includes a parachute deployment and subsequent terminal velocity to ground.