OpenRocket center of Mass

The Rocketry Forum

Help Support The Rocketry Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

itb7

New Member
Joined
Mar 8, 2020
Messages
1
Reaction score
0
Hello everybody,
I'm pretty new here, and looking for some advice on using OpenRocket to run a sim of a custom motor.
I'm not certain how OpenRocket is supposed to do this, but I'd like to control the center of gravity for the motor, which will change for the first couple seconds of flight as the propellant burns. My first thought was to write an equation to describe the motor's mass over time, but it would have to be a piecewise function to work during the coast phase as well. I've added a simple mass component, but when I type the equation into the 'mass' box, it just disappears after closing the component window. What I'm looking for is if anyone else has encountered this issue, or has ideas for a solution.
Thanks very much!
 
I'm not certain how OpenRocket is supposed to do this, but I'd like to control the center of gravity for the motor, which will change for the first couple seconds of flight as the propellant burns. My first thought was to write an equation to describe the motor's mass over time, but it would have to be a piecewise function to work during the coast phase as well.

Completely unnecessary complexity.
CG (center of gravity) matters primary for the initial rocket stability off the pad. At that point, you want to have CG to be ahead of CP (center of pressure) by 1+ calibers (airframe diameters).
As the motor burns, the CG moves forward, increasing stability. By how much, exactly, is not all that material.

https://www.grc.nasa.gov/www/k-12/rocket/rktstab.html
HTH,
a

P.S.: There is such a thing as over-stable rocket that can become over-sensitive to cross winds during coasting phase, but based on the nature of the question you are asking, we don't need to go into that.
 
Unless I am misunderstanding what you want, OpenRocket already has this feature built in. Just make a .eng file for you motor and run a sim. Then choose the "Plot / export" button, and from the presets choose "Stability vs time". That will produce a plot showing 'dynamic' stability, although ideally you would be able to plot a variety of angles of attack as well. During flight, both the CG and the CP move, so stability changes over time. The location of the CP moves rearward during flight, but the CG of course moves forward, so for most rockets it balances out. One big thing you'll notice is that the margin of stability shifts far more for longer, skinner rockets than for shorter, fat rockets.

The first chart is of a Mongoose 54mm on a L935, the stability margin changes by 4 calibers during flight, the second one is of a LOC Bullet, the margin changes by only 1 caliber during flight.


Tony

See this thread for info on custom motor files:
https://www.rocketryforum.com/threads/openrocket-12-03-motor-data-editing.38002/

LOC Bullet on an I540:
Bullet.png

54mm Mongoose on an L935:
Mongoose.png
 
Last edited:
The OP did not ask how to make a rocket stable nor snarky comments on the necessity of his question. He asked how to move the CG of a custom motor as it burns. Yes, this is a real thing, and it was an important consideration in the days of hybrid motors, or when you want moment of inertia information.

I don't think OpenRocket can do it without some user subroutine plugins, which are not easy. As dhbarr mentioned, the RockSim .rse engine format has a field for motor CG over time.
 
Last edited:
The OP did not ask how to make a rocket stable nor your 2 cents on the necessity of his question. He asked how to move the CG of a custom motor as it burns. Yes, this is a real thing, and it was an important consideration in the days of hybrid motors, or when you want moment of inertia information.

I don't think OpenRocket can do it without some user subroutine plugins, which are not easy. As dhbarr mentioned, the RockSim .rse engine format has a field for motor CG over time.
Hmm, how are the graphs produced by OpenRocket (linked above) not what the OP wanted? It is clearly showing the shift in CG due to the motor burn. I assume it's just using linear consumption of the propellant, which might not be completely accurate, but close enough. (The green line is not completely linear but pretty close.) The .eng file includes the propellant and motor weight, so it has the information needed. The graph shows the CG of the Mongoose moving from 50" behind the nosecone to just over 42" during the motor burn, and then it is static after that. For the Bullet, the CG moves from 27.75" to just under 26".

What am I missing here regarding the OPs request?


Tony
 
Last edited:
Hmm, how is the graph produced by OpenRocket not what the OP wanted? It is clearly showing the shift in CG due to the motor burn. I assume it's just using linear consumption of the propellant, which might not be completely accurate, but close enough. (The green line is not completely linear but pretty close.) The .eng file includes the propellant and motor weight, so it has the information needed. The graph shows the CG of the Mongoose moving from 50" behind the nosecone to just over 42" during the motor burn, and then it is static after that. For the Bullet, the CG moves from 27.75" to just under 26".

What am I missing here regarding the OPs request?


Tony
CG of the motor itself through the burn -- OR assumes the motor CG stays put and only modifies the overall CG
 
CG of the motor itself through the burn -- OR assumes the motor CG stays put and only modifies the overall CG
Unless the OP is using something other than a solid propellant motor, what is the functional difference? As the motor burns propellent, the CG of the rocket shifts forward as the propellant is burned. Typically the propellent burns along the entire length of the motor in a very nearly linear fashion. I suppose if it is a 'dual-thrust' motor with a mix of fast and slow burning grains it could vary, as of course would an end-burner, but those are unique cases.

I would be very interested in any real-world examples of motors that have substantially different CGs before and during burning, as well as after. And in hearing more from the OP what kind of motor he is using.


Tony
 
Last edited:
Unless the OP is using something other than a solid propellant motor, what is the functional difference? As the motor burns propellent, the CG of the rocket shifts forward as the propellant is burned. Typically the propellent burns along the entire length of the motor in a very nearly linear fashion. I suppose if it is a 'dual-thrust' motor with a mix of fast and slow burning grains it could vary, as of course would an end-burner, but those are unique cases.

I would be very interested in any real-world examples of motors that have substantially different CGs before and during burning, as well as after. And in hearing more from the OP what kind of motor he is using.
Every hybrid ever made, for one.
 
Every hybrid ever made, for one.
Hence my point “unless the OP is using something other than a solid propellant motor”. Already accounted for that option. That’s why I wanted to hear from the OP about his motor, he’s the only who can shed more light on his goals.


Tony
 
It's pretty straightforward. You need to create a custom motor in .rse file format (unlike .eng files, .rse can include the motor's CG at every point along the thrust curve). The best documentation I've found for the format is at https://wiki.openrocket.info/RSE_File#:~:text=Also called "RockSim XML format,the new RockSim XML format . From within OR, it's possible to set a directory for custom motors; of course you need to put the .rse file in that directory. There doesn't appear to be any support for CG changes during the coast phase; you could model that by simply having an absurdly low thrust for that time.

I am curious as to what you're doing that requires modeling motor CG changes, though!
 
Last edited:
There are valid reasons to want to know the CG shift on all motors, including composite. Most of my flights go supersonic. I use RASAero II to assess the shift in CG during the flight to verify 2 calibers of stability by the time I hit about M0.9. Sometimes I am less than 2 calibers at launch and plan on the shift.
 
Others said this, but for clarity: Unless you are using an end-burner, a hybrid, or a weird mix of grain geometry, the default OR behavior already does exactly what you want.
 
Every hybrid ever made, for one.
Every end burner ever made, for two. (Cg moves forward during burn.)
Or a core burner with unsecured grains (Cg moves rearward during burn.)
Could be important if your rocket is mostly propellant.
 
It's pretty straightforward. You need to create a custom motor in .rse file format (unlike .eng files, .rse can include the motor's CG at every point along the thrust curve). The best documentation I've found for the format is at https://wiki.openrocket.info/RSE_File#:~:text=Also called "RockSim XML format,the new RockSim XML format . From within OR, it's possible to set a directory for custom motors; of course you need to put the .rse file in that directory. There doesn't appear to be any support for CG changes during the coast phase; you could model that by simply having an absurdly low thrust for that time.

I am curious as to what you're doing that requires modeling motor CG changes, though!

Yes, but does OR actually read and calculate with the motor CG data found in the .rse file? Or, does it just ignore it? I could run a simple test in OR and find out, but I am lazy.
 
Hi Joe, I´m with a student currently working on a hybrid engine. We want to implement the changes of the engine CG through the custom .rse file. Openrocket seems to ignore the CG positions given in the rse file. Do you have an idea how we can change that? Cheers
 
We simulated with different cg posiitions in the .rse filebut there was no change in the cglocation over time plot. It seems as if OR is only calculating on the basis of the Launch mass and empty mass. Do we have to modify the values of cgDiv, cgFix, cgStep in the rse file?
 
Last edited:
We simulated with different cg posiitions in the .rse filebut there was no change in the cglocation over time plot. It seems as if OR is only calculating on the basis of the Launch mass and empty mass. Do we have to modify the values of cgDiv, cgFix, cgStep in the rse file?
Did you try with, for instance, a commercial hybrid .rse?
 
Forgive me if I’m off base. I think Rocksim does or will change the CG in flight. Tim may have said something that I’m remembering. I’m not sure if OR does yet.

 
Hi, I haven't found a commercial hybrid .rse with varying cg values. The ones on thrustcurve.org all have a constant cg position
Yikes, you are correct -- I quickly reviewed all of the top-100-total-impulse hybrids, and not a single .rse contained a shifting CG.

I had assumed ( mea culpa ) that at least one manufacturer would have at least interpolated between the full and empty CG's.
 
I just created a bogus motor (I took a Contrail O6300 and modified it by setting CG points -- see attached. I named it an O5000 to make it easy to find). I then created an equally bogus rocket consisting of just a default body tube, configured my bogus motor as the motor for my bogus rocket, simulated it, and saw the CG move as I'd expect.
flight.png
It's weird -- the file as in the OR database gives a CG location at each data point, but also sets auto-calc-cg="1". I had to set auto-calc-cg="0" to get it to pay attention to the cg values I gave it.
 

Attachments

  • bogus.ork
    1.1 KB · Views: 10
  • Contrail_O5000.rse
    1.1 KB · Views: 10
Forgive me if I’m off base. I think Rocksim does or will change the CG in flight. Tim may have said something that I’m remembering. I’m not sure if OR does yet.


Rocksim does change the CG in flight. You can see the change by selecting CG in the program's Plotting/Graphing feature. You can also select Mass.
 
Back
Top