> The system works basically by modelling all the cylinders individually as the
> pistons move up and down (connecting rod length effects this too, but I can't
> hear a difference). The exhaust valve opens and the gases are forced out.
> What you're actually hearing is the cylinder pressure, not the exhaust tip
> pressure as you should. I think this is probably why it sounds a little
> synthetic. For most of the loop the curve is much like a sine wave, but you
> get a wobble in the waveform when the valve opens.
Nice... Exactly how are modelling the pressure? Template curves or
thermodynamics? I am modelling cycle to cycle variations in combustion
using inspirations from SAE 2002-01-0371. Here the pressure is modelled
using one "compression curve", due to piston compression, and one
"expansion curve", due to combustion.
p_c(CAD) = p_ivc (V_ivc / V(CAD))^k_c, where k_c is the polytropic
coefficient for the compression.
p_e(CAD) = p_3 (V_3 / V(CAD))^k_e, where k_e is the polytropic
coefficient for the expansion.
"3" is the point of highest pressure and lowest volume in the Otto cycle.
^ 3
| **
| * **
log10(p) | * ** 4
| 2** **
| ** *
| ***
| 1
+------------------>
log10(V)
The total (approximate) pressure curve is then generated using a
"pressure ratio function" of your own choice. It is common to use
the Wiebe function, but I have been using an ordinary sigmoid:
f(x) = 1/(1+exp(k1*(CAD-k2)),
(for simplicity).
The design variables are p_ivc, p_3, k1 and k2. By adding noise to
k1 and k2 it is possible to simulate cycle to cycle variations.
k1 will simulate influence on the combustion rate and k2 variations
in ignition delay.
The total pressure becomes (an interpolation between p_c and p_e)):
p(CAD) = f(CAD) * p_e(CAD) + (1 - f(CAD)) * p_c(CAD).
:)
How about filtering the pressure? Why not apply a digital filter to the
pressure and try to play around with some filter parameters to obtain
nice sounds? I don't know, but phasing effects may give a more
convincing sound maybe? Try playing around with some discretised
analog filters, like Butterworth and such and see what you might come
up with. I would recommend you to make prototypes in e.g. Scilab or
Octave, which both are free high-level languages for scientific
computing. It makes testing much easier!
--
/S
/* http://www.s2.chalmers.se/~last */
(remove "nospam" from email to reply)