RE: [Flightgear-devel] YASim turbo/supercharger issues

2005-06-13 Thread Vivian Meazza
Some time ago I wrote:
 
 Andy Ross:
 
   If you do mean this equation then I can certainly live with that. If
   not, I'll need to put my thinking cap on ... I've updated the
   graphical representation here:
 
  Remind me again which one of these is the real engine data, and what
  the source is?  The only line on this graph that has the dropoff seems
  to be the polynomial you posted.  The others (including the linear
  one) all have better agreement, qualitatively.  We can play with other
  forms too, like c((x+1)^e - 1) (for some e  1, and with a c that makes
  the
  slope through the origin ~ 1).
 
 
 The real data is series 1, but only up to rpm-normalised = 1. For values
 above 1, it's just a continuation by eye of the data.
 
 (See http://www.turbotechnics.com/supercharger/expo.htm Note that max
 power
 is at 6500 rpm, and that the supercharger output is nearly flat at 7000
 rpm.)
 
 I selected
 
 y = -0.25x^3 + 0.15x^2 + 1.11x
 
 because that had the best fit between 0 and ~ 1.2, which was the region in
 which I was most interested. This was based on the working assumption that
 an engine develops rated power at more or less the full supercharger
 output.
 At the moment, the equation gives a reasonable match to the known
 performance. All the other curves are possibilities; that's why they are
 there :-).
 
 I discarded the linear option because of the lack of tail-off, and the
 other
 polynomial as a poor fit in the operating region. On further
 consideration,
 perhaps the 'ln' solution doesn't tail off quickly enough, although it's a
 very good fit indeed up to ~1.1.
 
 So far as I can see supercharger design and matching it to an engine is as
 much art as science, and there are many different options. I'm reasonably
 convinced that the supercharger output should tail off quite sharply after
 max power, otherwise an engine would just go on developing more and more
 power at higher and higher rpm until it broke or the supercharger did!. In
 practice this doesn't happen because the cross section of the inlet is
 carefully chosen.
 
 I'm sure that you can come up with some more alternatives. Let's try them
 and see if we like them.
 

We seem to have got stuck on this one. I haven't pursued it because the
Hurricane model wasn't ready. A beta version is now ready. It, along with
the Spitfire and P51D need the attached modification to YASim.

The diff provides a supercharger output which varies with engine rpm. It
assumes that the normalized supercharger output is ~ 1 when the engine is at
the nominated peak-power rpm (normalised). A 'power' equation of the form
((A*(B^x))*(x^C)  has been derived empirically from some representative
supercharger data. This provides near-linear output over the normal
operating range, with fall-off in the over-speed situation. It proves an
excellent match to published contemporary figures for the Merlin XX in the
Hurricane II, and should also do so for other Merlin variants. It allows the
engine to over-speed to 2.5 times the nominated peak-power rpm, and will not
break beyond this (although the engine/supercharger probably would in real
life!). Unlikely, but allows an unexpected YASim configuration.

It also provides an additional control - Boost Control Cutout - which
overrides the Boost Control (or wastgate in Yasim). The Spitfire, Hurricane
and P51D all had this for use in combat.

Finally, the diff corrects a minor bug in the output to the property tree
and provides a Boost Gauge input.

The beta version of the Hurricane IIB is available here:

ftp://abbeytheatre.dyndns.org/fgfs/Hurricane/

There is a tarball (hurricane.tgz) or you can grab all the files
individually.

The diff is also available there. You WILL need to apply this to run the
Hurricane, but so far as I can tell, no other YASim model is adversely
affected.

Some pictures are here:

http://myweb.tiscali.co.uk/vmeazza/FlightGear/HurricaneIIb-3.jpg
http://myweb.tiscali.co.uk/vmeazza/FlightGear/HurricaneIIb-4.jpg
http://myweb.tiscali.co.uk/vmeazza/FlightGear/HurricaneIIb-5.jpg
http://myweb.tiscali.co.uk/vmeazza/FlightGear/HurricaneIIb-6.jpg


There remains some more eye-candy to do: nav lights, beam approach marker
lamps, realistic rad and oil temperature readings etc. In the meantime I
would be grateful for any comments, not least that it all downloads and
installs correctly! If you do decide to give it a go you'll probably need
this:

http://home.clara.net/wolverine/BOB/misc/Spit_Hurri_Manuals.zip


Regards

Vivian


yasim.diff
Description: Binary data
___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d

RE: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-23 Thread Vivian Meazza
Andy Ross wrote

 
 Drew wrote:
  IMHO, it's best to use interpolation tables rather than equations if
  you're trying to curve fit empirical data.
 
 Not in this context.  The data here isn't being used to model a
 specific engine, but to provide sane parameters for all
 (super/turbochared) engines.  The performance and code size advantages
 of an equation here are significant.
 

At the moment we are looking at gear driven centrifugal compressors.
Although I haven't researched it in any detail, the output of turbo-driven
centrifugal compressors do not have a direct relationship with rpm (turbo
lag), and the situation is complicated by the wastegate which operates on
the turbo rather than the compressor. I suspect that this is another black
art! Gear driven is easy in comparison. When someone comes up with a turbo
we may have to have separate models.

Regards,

Vivian



___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


Re: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-23 Thread Arnt Karlsen
On Sat, 23 Apr 2005 10:15:31 +0100, Vivian wrote in message 
[EMAIL PROTECTED]:

 Andy Ross wrote
 
  
  Drew wrote:
   IMHO, it's best to use interpolation tables rather than equations
   if you're trying to curve fit empirical data.
  
  Not in this context.  The data here isn't being used to model a
  specific engine, but to provide sane parameters for all
  (super/turbochared) engines.  The performance and code size
  advantages of an equation here are significant.
  
 
 At the moment we are looking at gear driven centrifugal compressors.
 Although I haven't researched it in any detail, the output of
 turbo-driven centrifugal compressors do not have a direct relationship
 with rpm (turbo lag), and the situation is complicated by the
 wastegate which operates on the turbo rather than the compressor. I
 suspect that this is another black art! Gear driven is easy in
 comparison. When someone comes up with a turbo we may have to have
 separate models.

..if your supercharger code takes shaft input (shaft speed, torque or
power), then it can be re-used in the turbocharger's compressor code.

..the turbocharger's compressor or turbo-compound engine's crankshaft
then only needs a turbine derivering shaft outnput (shaft speed, torque
or power) to the compressor or gear box.

-- 
..med vennlig hilsen = with Kind Regards from Arnt... ;o)
...with a number of polar bear hunters in his ancestry...
  Scenarios always come in sets of three: 
  best case, worst case, and just in case.



___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


RE: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-23 Thread Vivian Meazza
Arnt Karlsen wrote:

 
  Andy Ross wrote
 
  
   Drew wrote:
IMHO, it's best to use interpolation tables rather than equations
if you're trying to curve fit empirical data.
  
   Not in this context.  The data here isn't being used to model a
   specific engine, but to provide sane parameters for all
   (super/turbochared) engines.  The performance and code size
   advantages of an equation here are significant.
  
 
  At the moment we are looking at gear driven centrifugal compressors.
  Although I haven't researched it in any detail, the output of
  turbo-driven centrifugal compressors do not have a direct relationship
  with rpm (turbo lag), and the situation is complicated by the
  wastegate which operates on the turbo rather than the compressor. I
  suspect that this is another black art! Gear driven is easy in
  comparison. When someone comes up with a turbo we may have to have
  separate models.
 
 ..if your supercharger code takes shaft input (shaft speed, torque or
 power), then it can be re-used in the turbocharger's compressor code.

It doesn't because a gear driven compressor has a fixed relationship to
engine rpm, and I deal with 2 speed superchargers separately, but you are
right: a centrifugal compressor neither knows nor cares if it is gear- or
turbo-driven.

 ..the turbocharger's compressor or turbo-compound engine's crankshaft
 then only needs a turbine derivering shaft outnput (shaft speed, torque
 or power) to the compressor or gear box.
 

Now, if we knew what the turbo rpm was for a given engine rpm, and I think
we need throttle opening ... any guidance welcome. Otherwise ... it's going
to have to be magic mushrooms.

Regards,

Vivian



___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


Re: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-23 Thread Arnt Karlsen
On Sat, 23 Apr 2005 20:02:48 +0100, Vivian wrote in message 
[EMAIL PROTECTED]:

 Arnt Karlsen wrote:
 
  
   Andy Ross wrote
  
   
Drew wrote:
 IMHO, it's best to use interpolation tables rather than
 equations if you're trying to curve fit empirical data.
   
Not in this context.  The data here isn't being used to model a
specific engine, but to provide sane parameters for all
(super/turbochared) engines.  The performance and code size
advantages of an equation here are significant.
  
   At the moment we are looking at gear driven centrifugal
   compressors. Although I haven't researched it in any detail, the
   output of turbo-driven centrifugal compressors do not have a
   direct relationship with rpm (turbo lag), and the situation is
   complicated by the wastegate which operates on the turbo rather
   than the compressor. I suspect that this is another black art!
   Gear driven is easy in comparison. When someone comes up with a
   turbo we may have to have separate models.
  
  ..if your supercharger code takes shaft input (shaft speed, torque
  or power), then it can be re-used in the turbocharger's compressor
  code.
 
 It doesn't because a gear driven compressor has a fixed relationship
 to engine rpm, and I deal with 2 speed superchargers separately, but
 you are right: a centrifugal compressor neither knows nor cares if it
 is gear- or turbo-driven.
 
  ..the turbocharger's compressor or turbo-compound engine's
  crankshaft then only needs a turbine derivering shaft outnput (shaft
  speed, torque or power) to the compressor or gear box.
  
 
 Now, if we knew what the turbo rpm was for a given engine rpm, 

.._not_ gonna happen.  Turbo rpm will always, always, always be a
function of the exhaust gas pressures piped in and out, and, the
turbines own shaft loads, temperature, mass, and time.  

..just think of any water wheel, or power turbine, to do the power
turbine code part of the turbo.  Then you can saw the gear box off the
supercharger shaft and weld that stub onto the power turbine to make
a turbocharger.  ;o)

 and I think we need throttle opening ... any guidance welcome.

..just like in the supercharger code.  Now, keep in mind, the power
turbine _only_ sees exhaust gas pressures and temperatures piped 
in and out and its own mass and inertia, time and the shaft and
bearing and lube film loads.

..the compressor on the _other_ end of that turbo shaft, will see the
_same_ as the supercharger, except for the power turbine replacing
the gear box.

..exhaust gas pressures and temperatures vary, think pulses, spikes,
waste gates and even exhaust throttles, if you wanna model a new 
fancy way of blowing up a model engine in that spectacular way 
I read about in some model magazine some 20 years back.  ;o)

-- 
..med vennlig hilsen = with Kind Regards from Arnt... ;o)
...with a number of polar bear hunters in his ancestry...
  Scenarios always come in sets of three: 
  best case, worst case, and just in case.


___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


RE: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-23 Thread Vivian Meazza


 -Original Message-
 From: [EMAIL PROTECTED] [mailto:flightgear-devel-
 [EMAIL PROTECTED] On Behalf Of Arnt Karlsen
 Sent: 23 April 2005 22:02
 To: FlightGear developers discussions
 Subject: Re: [Flightgear-devel] YASim turbo/supercharger issues
 
 On Sat, 23 Apr 2005 20:02:48 +0100, Vivian wrote in message
 [EMAIL PROTECTED]:
 
  Arnt Karlsen wrote:
 
  
Andy Ross wrote
   

 Drew wrote:
  IMHO, it's best to use interpolation tables rather than
  equations if you're trying to curve fit empirical data.

 Not in this context.  The data here isn't being used to model a
 specific engine, but to provide sane parameters for all
 (super/turbochared) engines.  The performance and code size
 advantages of an equation here are significant.
   
At the moment we are looking at gear driven centrifugal
compressors. Although I haven't researched it in any detail, the
output of turbo-driven centrifugal compressors do not have a
direct relationship with rpm (turbo lag), and the situation is
complicated by the wastegate which operates on the turbo rather
than the compressor. I suspect that this is another black art!
Gear driven is easy in comparison. When someone comes up with a
turbo we may have to have separate models.
  
   ..if your supercharger code takes shaft input (shaft speed, torque
   or power), then it can be re-used in the turbocharger's compressor
   code.
 
  It doesn't because a gear driven compressor has a fixed relationship
  to engine rpm, and I deal with 2 speed superchargers separately, but
  you are right: a centrifugal compressor neither knows nor cares if it
  is gear- or turbo-driven.
 
   ..the turbocharger's compressor or turbo-compound engine's
   crankshaft then only needs a turbine derivering shaft outnput (shaft
   speed, torque or power) to the compressor or gear box.
  
 
  Now, if we knew what the turbo rpm was for a given engine rpm,
 
 .._not_ gonna happen.  Turbo rpm will always, always, always be a
 function of the exhaust gas pressures piped in and out, and, the
 turbines own shaft loads, temperature, mass, and time.
 
 ..just think of any water wheel, or power turbine, to do the power
 turbine code part of the turbo.  Then you can saw the gear box off the
 supercharger shaft and weld that stub onto the power turbine to make
 a turbocharger.  ;o)
 
  and I think we need throttle opening ... any guidance welcome.
 
 ..just like in the supercharger code.  Now, keep in mind, the power
 turbine _only_ sees exhaust gas pressures and temperatures piped
 in and out and its own mass and inertia, time and the shaft and
 bearing and lube film loads.
 
 ..the compressor on the _other_ end of that turbo shaft, will see the
 _same_ as the supercharger, except for the power turbine replacing
 the gear box.
 
 ..exhaust gas pressures and temperatures vary, think pulses, spikes,
 waste gates and even exhaust throttles, if you wanna model a new
 fancy way of blowing up a model engine in that spectacular way
 I read about in some model magazine some 20 years back.  ;o)

Or TFD - I'll think about it later (much later :-).


Regards,

Vivian



___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


Re: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-22 Thread Frederic Bouvier
Selon Andy Ross [EMAIL PROTECTED]:

   (-0.25 * math::pow(rpm_norm,3)) + (-0.15 * math::pow(rpm_norm,2))
+ (1.11 * rpm_norm);

 Whereas this one is just really obviously a polynomial, and I
 understand polynomials, they're simple and not scary at all:

rpm_norm * (1.11 - rpm_norm * (0.15 * rpm_norm + 0.25))


or is it :
rpm_norm * (1.11 - rpm_norm * (0.15 + rpm_norm * 0.25))
?

-Fred

___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


Re: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-22 Thread Roy Vegard Ovesen
On Friday 22 April 2005 01:46, Norman Vine wrote:
 Andy Ross writes:
  Vivian Meazza wrote:
   I used the power form because it is easier to read, but if the other
   form produces a performance advantage, then of course we must use
   it.
 
  It's actually not so much about performance, really.  Readability can
  mean different things.  The problem is that when I see a trancendental
  function in code, I immediately start thinking that it much be some
  complicated formula typed in from a book, as these things don't occur
  in typical programmer's brains all that often.  Basically, even though
  in isolation it's easier to read pow(foo, 3) than foo*foo*foo,
  when you look at the whole expression, your original one is
  complicated to me:
 
(-0.25 * math::pow(rpm_norm,3)) + (-0.15 * math::pow(rpm_norm,2))
 + (1.11 * rpm_norm);
 
  Whereas this one is just really obviously a polynomial, and I
  understand polynomials, they're simple and not scary at all:
 
 rpm_norm * (1.11 - rpm_norm * (0.15 * rpm_norm + 0.25))
 
  I'll work up a version of the new one with the sign bug fixed, and try
  to get that checked in tonight.

 Hmmm.

 I find it all to easy to make silly mistakes with nested parentheticals
 and usually avoid them unless absolutely needed

The silly mistake was that 0.15 and 0.25 got swapped. This is what it should 
have read:
 rpm_norm * (1.11 - rpm_norm * (0.25 * rpm_norm + 0.15))

-- 
Roy Vegard Ovesen

___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


RE: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-22 Thread Vivian Meazza
Andy Ross wrote:

 Vivian Meazza wrote:
  I used the power form because it is easier to read, but if the other
  form produces a performance advantage, then of course we must use
  it.
 
 It's actually not so much about performance, really.  Readability can
 mean different things.  The problem is that when I see a trancendental
 function in code, I immediately start thinking that it much be some
 complicated formula typed in from a book, as these things don't occur
 in typical programmer's brains all that often.  Basically, even though
 in isolation it's easier to read pow(foo, 3) than foo*foo*foo,
 when you look at the whole expression, your original one is
 complicated to me:
 
   (-0.25 * math::pow(rpm_norm,3)) + (-0.15 * math::pow(rpm_norm,2))
+ (1.11 * rpm_norm);
 
 Whereas this one is just really obviously a polynomial, and I
 understand polynomials, they're simple and not scary at all:
 
rpm_norm * (1.11 - rpm_norm * (0.15 * rpm_norm + 0.25))
 
 I'll work up a version of the new one with the sign bug fixed, and try
 to get that checked in tonight.
 

Personally, I do find nested forms of programming scary, too easy to make
mistakes. To reiterate, the correct equation is:

y = -0.25x^3 + 0.15x^2 + 1.11x

or 

y = ((-0.25x + 0.15)x + 1.11)x

Thinking about the over-speed situation overnight, the Merlin was allowed to
go to 3600 rpm for brief periods, and even then damage to the engine was
possible. This is a normalised value of 1.2. The K Series will go to 9000
(don't try this on yours - it requires special valve lifters and crankshaft)
or 1.28 normalised. The curve shown here:

http://myweb.tiscali.co.uk/vmeazza/FlightGear/supercharge.pdf

fits those numbers very nicely.

I think we're there now with a nice model for a geared supercharger. I'm
less happy with the rather crude model of the throttle, and will do some
more work in due course.

Thanks to everyone who has contributed to the maths and programming issues

Regards,

Vivian



  




___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


Re: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-22 Thread Andy Ross
Vivian Meazza wrote:
 y = -0.25x3 + 0.15x2 + 1.11x

 Thinking about the over-speed situation overnight, the Merlin was
 allowed to go to 3600 rpm for brief periods, and even then damage to
 the engine was possible. This is a normalised value of 1.2. The K
 Series will go to 9000 (don't try this on yours - it requires special
 valve lifters and crankshaft) or 1.28 normalised. The curve shown
 here:

Yes, but remember that the normalization RPM isn't guaranteed to be
a maximum speed.  It might be for your merlin configuration, but I can
guarantee you (seriously: 100% certainty) that if we include a model
that goes wacky in some regime, someone will come up with a
configuration to tickle the bug.  This has happened again and again,
often with your aircraft. :)

How about this one instead:

   ln(rpm_norm - 1) * (1 / ln(2))

It seems to qualitatively match the curve you posted (is there a
primary source for that curve?) without the nasty dropoff.  You can
see how it works, it just translates/scales a logarithm curve to pass
through the origin and (1,1).

Let me know.

Andy

___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


RE: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-22 Thread Vivian Meazza
Andy Ross:

  If you do mean this equation then I can certainly live with that. If
  not, I'll need to put my thinking cap on ... I've updated the
  graphical representation here:
 
 Remind me again which one of these is the real engine data, and what
 the source is?  The only line on this graph that has the dropoff seems
 to be the polynomial you posted.  The others (including the linear
 one) all have better agreement, qualitatively.  We can play with other
 forms too, like c((x+1)^e - 1) (for some e  1, and with a c that makes
 the
 slope through the origin ~ 1).
 

The real data is series 1, but only up to rpm-normalised = 1. For values
above 1, it's just a continuation by eye of the data. 

(See http://www.turbotechnics.com/supercharger/expo.htm Note that max power
is at 6500 rpm, and that the supercharger output is nearly flat at 7000
rpm.)

I selected 

y = -0.25x^3 + 0.15x^2 + 1.11x

because that had the best fit between 0 and ~ 1.2, which was the region in
which I was most interested. This was based on the working assumption that
an engine develops rated power at more or less the full supercharger output.
At the moment, the equation gives a reasonable match to the known
performance. All the other curves are possibilities; that's why they are
there :-). 

I discarded the linear option because of the lack of tail-off, and the other
polynomial as a poor fit in the operating region. On further consideration,
perhaps the 'ln' solution doesn't tail off quickly enough, although it's a
very good fit indeed up to ~1.1.  

So far as I can see supercharger design and matching it to an engine is as
much art as science, and there are many different options. I'm reasonably
convinced that the supercharger output should tail off quite sharply after
max power, otherwise an engine would just go on developing more and more
power at higher and higher rpm until it broke or the supercharger did!. In
practice this doesn't happen because the cross section of the inlet is
carefully chosen. 

I'm sure that you can come up with some more alternatives. Let's try them
and see if we like them. 

Regards,

Vivian



___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


Re: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-22 Thread Andy Ross
Drew wrote:
 IMHO, it's best to use interpolation tables rather than equations if
 you're trying to curve fit empirical data.

Not in this context.  The data here isn't being used to model a
specific engine, but to provide sane parameters for all
(super/turbochared) engines.  The performance and code size advantages
of an equation here are significant.

 Does FlightGear have a format and utilities for table lookups?
 Perhaps it's worth developing some if they don't already exist (I'd
 be willing to contribute).

Probably several.  YASim has one for doing interpolation of standard
atmosphere parameters, and I'm sure there's a similar engine in the
JSBSim code, which depends on tables extensively in its configuration.

Andy

___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


RE: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-22 Thread Vivian Meazza
Andy Ross wrote:

 -Original Message-
 From: [EMAIL PROTECTED] [mailto:flightgear-devel-
 [EMAIL PROTECTED] On Behalf Of 
 Sent: 22 April 2005 15:19
 To: FlightGear developers discussions
 Subject: Re: [Flightgear-devel] YASim turbo/supercharger issues
 
 Vivian Meazza wrote:
  y = -0.25x3 + 0.15x2 + 1.11x
 
  Thinking about the over-speed situation overnight, the Merlin was
  allowed to go to 3600 rpm for brief periods, and even then damage to
  the engine was possible. This is a normalised value of 1.2. The K
  Series will go to 9000 (don't try this on yours - it requires special
  valve lifters and crankshaft) or 1.28 normalised. The curve shown
  here:
 
 Yes, but remember that the normalization RPM isn't guaranteed to be
 a maximum speed.  It might be for your merlin configuration, but I can
 guarantee you (seriously: 100% certainty) that if we include a model
 that goes wacky in some regime, someone will come up with a
 configuration to tickle the bug.  This has happened again and again,
 often with your aircraft. :)

That's right, blame me for finding some bugs/features :-), but OK, good
point. 

 
 How about this one instead:
 
ln(rpm_norm - 1) * (1 / ln(2))
 
 It seems to qualitatively match the curve you posted (is there a
 primary source for that curve?) without the nasty dropoff.  

Nope. I did a best fit to good data up to max power, and that was the
outcome. However, it seemed to me to encapsulate the idea of compressor
stall.

 You can
 see how it works, it just translates/scales a logarithm curve to pass
 through the origin and (1,1).

That got me going. Are you trying to calculate the natural log of a negative
number (rpm_norm - 1)? Isn't that a complex number? Did you mean:

ln(rpm_norm + 1) * (1 / ln(2))
   ^^^
And we can't do 0 rpm can we?

If you do mean this equation then I can certainly live with that. If not,
I'll need to put my thinking cap on ... I've updated the graphical
representation here:

http://myweb.tiscali.co.uk/vmeazza/FlightGear/supercharge.pdf

Let's go with that for now. Meanwhile, I've just done the boost control
cutout. Trivial, I'll let you have the diff once you've done this one.

Thanks again

Vivian




___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


Re: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-22 Thread Drew
 The real data is series 1, but only up to rpm-normalised = 1. For values
 above 1, it's just a continuation by eye of the data.
 
 (See http://www.turbotechnics.com/supercharger/expo.htm Note that max power
 is at 6500 rpm, and that the supercharger output is nearly flat at 7000
 rpm.)
 
 I selected
 
 y = -0.25x^3 + 0.15x^2 + 1.11x
 
 because that had the best fit between 0 and ~ 1.2, which was the region in
 which I was most interested. This was based on the working assumption that
 an engine develops rated power at more or less the full supercharger output.
 At the moment, the equation gives a reasonable match to the known
 performance. All the other curves are possibilities; that's why they are
 there :-).
 
 I discarded the linear option because of the lack of tail-off, and the other
 polynomial as a poor fit in the operating region. On further consideration,
 perhaps the 'ln' solution doesn't tail off quickly enough, although it's a
 very good fit indeed up to ~1.1.
 
 So far as I can see supercharger design and matching it to an engine is as
 much art as science, and there are many different options. I'm reasonably
 convinced that the supercharger output should tail off quite sharply after
 max power, otherwise an engine would just go on developing more and more
 power at higher and higher rpm until it broke or the supercharger did!. In
 practice this doesn't happen because the cross section of the inlet is
 carefully chosen.
 
 I'm sure that you can come up with some more alternatives. Let's try them
 and see if we like them.
 
 Regards,
 
 Vivian

IMHO, it's best to use interpolation tables rather than equations if
you're trying to curve fit empirical data.  Equations are great for
modeling physical principles (e.g.  F=ma), but for something like
this, if you use a table, you can adjust the values to your heart's
content without having to worry about how one adjustment affects other
entries, or how it behaves outside the domain of interest.

Does FlightGear have a format and utilities for table lookups? 
Perhaps it's worth developing some if they don't already exist (I'd be
willing to contribute).

Drew

___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


Re: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-22 Thread Drew
 Yeah, that's something that could be a project in itself. There are a few 
 ways to do
 tables that I know of. JSBSim does gridded tables up to three independent 
 variables. I'd
 like to extend that to ungridded tables of n dimensions. Maybe there's an 
 algorithm
 around somewhere for that. I know where to look for at least one.

It's nice to be able to have backout routines for interpolation
tables, as well, which can be extremely helpful in initialization
code.  For tables up to 3d with fixed independent indices (is this
what you meant by 'grid', or did you mean fixed intervals?), this is
pretty straightforward.  Creating backout utilities for larger
dimensions and varying indices can be difficult.

Also, if you've got more than 3 inputs to a lookup table, you've
probably not done enough data reduction, and you're asking for
headaches when tuning the model.  Usually, you can uncouple the
dependencies enough to avoid such a mess, using multiple, smaller
tables

Drew

___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


RE: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-22 Thread Jon Berndt
 Probably several.  YASim has one for doing interpolation of standard
 atmosphere parameters, and I'm sure there's a similar engine in the
 JSBSim code, which depends on tables extensively in its configuration.

Yeah, that's something that could be a project in itself. There are a few ways 
to do
tables that I know of. JSBSim does gridded tables up to three independent 
variables. I'd
like to extend that to ungridded tables of n dimensions. Maybe there's an 
algorithm
around somewhere for that. I know where to look for at least one.

Specifying the table data can be sort of confusing in a configuration file, but 
I have a
way around that, I think. I just need some time. Something that there's always 
too little
of.

Like right now ... I'm being paged to come and make dinner.

:-(

Jon


___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


RE: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-22 Thread Jon Berndt
 It's nice to be able to have backout routines for interpolation
 tables, as well, which can be extremely helpful in initialization
 code.  For tables up to 3d with fixed independent indices (is this
 what you meant by 'grid', or did you mean fixed intervals?), this is
 pretty straightforward.  Creating backout utilities for larger
 dimensions and varying indices can be difficult.

By gridded I mean that the table is uniform. For instance, for 3D tables there 
are say,
ten rows and four columns, and the row breakpoints are the same for each 
column, and vice
versa. And, the row and column breakpoints are the same for each of the third 
axis
breakpoints, too.

You can have tables where each row of independent data may have different column
breakpoints, and the row and column breakpoints (defining a 2D table) could be 
different
for each additional 2D table.

Available data doesn't necessarily fall into neat buckets.


 Also, if you've got more than 3 inputs to a lookup table, you've
 probably not done enough data reduction, and you're asking for
 headaches when tuning the model.  Usually, you can uncouple the
 dependencies enough to avoid such a mess, using multiple, smaller
 tables

 Drew

A 3D table is nothing. Some sims I am aware of use 6 dimensional tables or more.

The trick is to use recursion where possible. I've been toying with the idea 
where each
dependent data point in a 2D table is itself another table. That would make 
the problem
manageable. Yet, the toughest part of that may well be data entry and 
formatting - unless
one has - as we (JSBSim) do: a tool (DATCOM+) that writes your aerodynamic 
tables for you.
:-)

Jon
--
Project Coordinator
JSBSim Flight Dynamics Model
http://www.jsbsim.org




___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


RE: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-21 Thread Vivian Meazza
Andy Ross wrote:

 Vivian Meazza wrote:
  The attached diff models the output of a gear-driven
  supercharger
 
 I just now got a chance to sit down and puzzle this out.  I see where
 it's going: instead of ignoring the RPM contribution to boost, it adds
 an extra factor that reduces the boost at lower RPMs.  It works by
 normalizing the rpm value to the range [0:1] (expressing it as a
 fraction of the engine's solution RPM) and then applies this as an
 extra factor on top of the turbo-mul value from the configuration
 file:
 -0.25*rpm^3 - 0.15*rpm^2 + 1.11*rpm


Right - this approach seemed to me to be consistent with the existing code.

 Now, one mild criticism of the code here is the use of the pow()
 function to compute integer powers.  Just in case you don't know the
 trick, you can express that equation in a C expression as something
 like:
 
rpm * (1.11 - rpm * (0.15 * rpm + 0.25))
 
 But that's more or less irrelevant.  

I used the power form because it is easier to read, but if the other form
produces a performance advantage, then of course we must use it. 

 My real confusion is that while
 this function reaches its maximum at a normalized RPM of slightly more
 than 1.0 (sounds about right), it maximum value is only about 0.7 or
 so.  This will have the effect of reducing turbo-mul by about 30% from
 pre-existing aircraft configurations.  Is that the intent?  Or should
 the function be re-scaled to equal 1.0 at maximum boost?

I've made a typing error here. The equation should be:

  -0.25*rpm^3 + 0.15*rpm^2 + 1.11*rpm

This does have a max value of 1.01 at the normalised rpm value of 1. Now I'm
concerned that it all worked so well before. I'm going to have to test all
over again. 

 The other issue is that this function drops off really fast in
 overspeed situations.  I'd intuitively expect some drop-off in MP at
 high RPMs (compressor stall) before reaching a constant asymptote, but
 this thing plunges like a rock, crossing zero (negative MP?) at about
 1.8. Remember that the normalization RPM isn't always guaranteed to be
 the maximum engine speed, so this regime might actually be close to
 what you can do in the cockpit in a fast dive, for example.

I think that this is a very valid point, and I agree. I have no good
evidence for how the curve should drop, except that at some point the
compressor goes supersonic, and surges. I have an alternative curve which is
more asymptotic in shape, but doesn't fit quite so well at low rpm. Problem
is that the controller holds the rpm rock solid at 3000 rpm, whatever I do.
Interestingly, this was also claimed for the controller in real life. Here's
what I'm trying to do

http://myweb.tiscali.co.uk/vmeazza/FlightGear/supercharge.pdf


Hang on, I'll have to find out why it all worked so well with an error. It
will take me till after the weekend to retest it all. I'll test the second
curve as well and try to reach a conclusion as to which is better.

Thanks for all this, I'll get back to you soonest

Regards,

Vivian
 






___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


Re: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-21 Thread Andy Ross
Vivian Meazza wrote:
 I used the power form because it is easier to read, but if the other
 form produces a performance advantage, then of course we must use
 it.

It's actually not so much about performance, really.  Readability can
mean different things.  The problem is that when I see a trancendental
function in code, I immediately start thinking that it much be some
complicated formula typed in from a book, as these things don't occur
in typical programmer's brains all that often.  Basically, even though
in isolation it's easier to read pow(foo, 3) than foo*foo*foo,
when you look at the whole expression, your original one is
complicated to me:

  (-0.25 * math::pow(rpm_norm,3)) + (-0.15 * math::pow(rpm_norm,2))
   + (1.11 * rpm_norm);

Whereas this one is just really obviously a polynomial, and I
understand polynomials, they're simple and not scary at all:

   rpm_norm * (1.11 - rpm_norm * (0.15 * rpm_norm + 0.25))

I'll work up a version of the new one with the sign bug fixed, and try
to get that checked in tonight.

Andy

___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


RE: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-21 Thread Norman Vine
Andy Ross writes:
 
 Vivian Meazza wrote:
  I used the power form because it is easier to read, but if the other
  form produces a performance advantage, then of course we must use
  it.
 
 It's actually not so much about performance, really.  Readability can
 mean different things.  The problem is that when I see a trancendental
 function in code, I immediately start thinking that it much be some
 complicated formula typed in from a book, as these things don't occur
 in typical programmer's brains all that often.  Basically, even though
 in isolation it's easier to read pow(foo, 3) than foo*foo*foo,
 when you look at the whole expression, your original one is
 complicated to me:
 
   (-0.25 * math::pow(rpm_norm,3)) + (-0.15 * math::pow(rpm_norm,2))
+ (1.11 * rpm_norm);
 
 Whereas this one is just really obviously a polynomial, and I
 understand polynomials, they're simple and not scary at all:
 
rpm_norm * (1.11 - rpm_norm * (0.15 * rpm_norm + 0.25))
 
 I'll work up a version of the new one with the sign bug fixed, and try
 to get that checked in tonight.

Hmmm.

I find it all to easy to make silly mistakes with nested parentheticals
and usually avoid them unless absolutely needed


Python 2.4 (#1, Dec  4 2004, 20:10:33) 
[GCC 3.3.3 (cygwin special)] on cygwin
Type help, copyright, credits or license for more information.
 import math
 rpm_norm = 100
 a = (-0.25 * math.pow(rpm_norm,3)) + (-0.15 * math.pow(rpm_norm,2)) + (1.11 
 * rpm_norm)
 b = rpm_norm * (1.11 - rpm_norm * (0.15 * rpm_norm + 0.25))
 a == b
False
 a
-251389.0
 b
-152389.0
 rpm_norm_2 = rpm_norm*rpm_norm
 rpm_norm_3 = rpm_norm * rpm_norm_2
 c = (-0.25*rpm_norm_3) + (-0.15*rpm_norm_2) + (1.11*rpm_norm)
 a == c
True
 



___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d


Re: [Flightgear-devel] YASim turbo/supercharger issues

2005-04-21 Thread Arnt Karlsen
On Thu, 21 Apr 2005 19:46:10 -0400, Norman wrote in message 
[EMAIL PROTECTED]:

 Andy Ross writes:
  Whereas this one is just really obviously a polynomial, and I
  understand polynomials, they're simple and not scary at all:
  
 rpm_norm * (1.11 - rpm_norm * (0.15 * rpm_norm + 0.25))
  
  I'll work up a version of the new one with the sign bug fixed, and
  try to get that checked in tonight.
 
 Hmmm.
 
 I find it all to easy to make silly mistakes with nested
 parentheticals and usually avoid them unless absolutely needed

..guys, 'apt-get install mathomatic', then try the above equation in it:
Each equation must have one, and only one, equals sign (=).
Absolute value notation (|x|) and +/- are understood.
1- rpm_norm * (1.11 - rpm_norm * (0.15 * rpm_norm + 0.25)) = 0

  111  3*rpm_norm   1
#1: rpm_norm*(--- - (rpm_norm*(-- + -))) = 0
  100  20   4

1-

..above is mathomatic output, it can do more fun:
http://packages.qa.debian.org/m/mathomatic.html
-- 
..med vennlig hilsen = with Kind Regards from Arnt... ;o)
...with a number of polar bear hunters in his ancestry...
  Scenarios always come in sets of three: 
  best case, worst case, and just in case.



___
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d