Hydrokinetic engine power curve.

  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord

GreenZombie

New Member
Jul 29, 2019
2,402
-1
0
The Rotarycraft Hydrokinetic Engine outputs 16384 Nm at 32 rad/s given a 64meter drop.
Has anyone empirically observed yet how this scales for other heights? i.e. is the dropoff linear as the height decreases, or exponential or what? I have a ~55m drop (from sea level (at 64) to a setup at about level 10 (just above bedrock) thats yielding ~10,000Nm at 25rad/s so even the individual components seem to be dropping off super linear.
 

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
It is quadratic, according to the following formulae:
9d2aed33a9d967c21e0dd592e7364c1f.png


a is 9.8, of course, though I may interface with GalacticCraft if possible.
 
Last edited:

NegaNote

New Member
Jul 29, 2019
127
0
1
Reika, can I just say that I love you? You really respond to problems and questions well, in fact you do so a lot better than a lot of other mod devs I know. Also engineering ftw.

Also I really wish you would make some sort of magic mod sometime...
 

GreenZombie

New Member
Jul 29, 2019
2,402
-1
0
If I decode that correctly (and convert to the characters I know how to type)
a = acceleration due to gravity. 9.8m/s^2
A = the surface area of a paddle? 1m^2
r = effective radius at which the force of the falling water is acting on the paddle from its axle (.5m)
p = 1000 (?)
h = the height of the drop (in meters)
solve for t & w (torque and radial velocity).
 

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
If I decode that correctly (and convert to the characters I know how to type)
a = acceleration due to gravity. 9.8m/s^2
A = the surface area of a paddle? 1m^2
r = effective radius at which the force of the falling water is acting on the paddle from its axle (.5m)
p = 1000 (?)
h = the height of the drop (in meters)
solve for t & w (torque and radial velocity).
p is actually rho - density.
 

GreenZombie

New Member
Jul 29, 2019
2,402
-1
0
So, if I plug 64m into t in a spreadsheet, I get
=1000*(POWER(SQRT(2*9.8*64),2))*0.5
which yields 627200
which is then converted to a neat power of two (16384) using some constant factor?
Or have I flubbed the equation somehow?
 

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
So, if I plug 64m into t in a spreadsheet, I get
=1000*(POWER(SQRT(2*9.8*64),2))*0.5
which yields 627200
which is then converted to a neat power of two (16384) using some constant factor?
Or have I flubbed the equation somehow?
You probably did something wrong:
Code:
private float getHydroFactor(World world, int x, int y, int z, boolean isTorque) {
int[] pos = this.getWaterColumnPos();
double dy = (ReikaWorldHelper.findWaterSurface(world, pos[0], y, pos[1])-y)-0.5;
double v = Math.sqrt(2*ReikaPhysicsHelper.g*dy);
double mdot = ReikaEngLibrary.rhowater*v;
double P = 0.25*mdot*dy;
if (P >= type.getPower())
return 1;
return (float)(P/type.getPower());
}
That returns a float from 0 to 1, which is then multiplied by the torque and speed base values.
 

GreenZombie

New Member
Jul 29, 2019
2,402
-1
0
I am having a lot of trouble reconciling that function with the prior equations.

If τ and ω from the original equations were torque and raidal velocity respectively, and P in "getHydroFactor" is the total power surely P should be calculated as

double P = (ReikaEngLibrary.rhowater * v * v * 0.5) * (v / 0.5);

I'm being stupid today :(
 

YX33A

New Member
Jul 29, 2019
3,764
1
0
I cannot really think magically.
Which is a shame since you're so smart(in my opinion). You could make a magic mod that could put AM2 and TC1-4 to shame, if you had the mindset to think magically.

You could try writing a magic system like a writer does to harden their Sci-fi with a Minovsky Particle. Specific limits that shape what it can and can not do. A True "Functional Magic" instead of "A Wizard Did It"(look those up on TV Tropes if you are confused).
 

Eyamaz

New Member
Jul 29, 2019
2,373
0
0
If you actually go into the "science of the occult" you would find many correlations with chemestry, resonant harmonics, and basic elecrical principles. Mind you, this isn't the "flash bang" wizardry of most fantasy novels.
Certain things had to be made of certain substances due to conductance or resonance, and the lack of the same, to be able to be used in magical formula.

No Reika, I don't think it would be too hard for you to do a magic mod. A little thinking outside the box, but not too hard for you.
 
  • Like
Reactions: NegaNote

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
I do like Reika's mods. But no. He couldn't outclass the existing magic mods.
People said the same about RotaryCraft and tech mods, and while they are taking a long time to gain traction - it was a full 9 months after release before I got my first modpack request, and 6 months before I got a spotlight from anyone - many people seem to have that opinion. :)
 

Siro

New Member
Jul 29, 2019
638
0
0
You probably did something wrong:
Code:
private float getHydroFactor(World world, int x, int y, int z, boolean isTorque) {
int[] pos = this.getWaterColumnPos();
double dy = (ReikaWorldHelper.findWaterSurface(world, pos[0], y, pos[1])-y)-0.5;
double v = Math.sqrt(2*ReikaPhysicsHelper.g*dy);
double mdot = ReikaEngLibrary.rhowater*v;
double P = 0.25*mdot*dy;
if (P >= type.getPower())
return 1;
return (float)(P/type.getPower());
}
That returns a float from 0 to 1, which is then multiplied by the torque and speed base values.

Is the hydro factor calculated only when the generator is placed?
 

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
Have you considered moving to a pre-generated(or runtime/init generated) lookup table for math functions you're performing 20 times a second?
I doubt that would be faster, considering it would have to cache every possible value. For this, it is conceivable. For other things (like shaft failure), I would need to cache every possible value from zero to 2.147 billion.