C
Chris Carlen
Guest
Greetings:
My problem is to control 4 internal combustion engine valves
electronically. When I first heard about the problem, I was told up to
20kHz response would be needed. This led me to considerations of a
whopping 200-400ksps per each of four channels needed to accomplish this
using a DSP. Now I think the situation is an order of magnitude better.
Here are my first-order estimates of the closed-loop BW needed:
First we have to get some idea of the upper frequency content of the
valve movement profile. For an exhaust valve, let's say it is a smooth
Gaussian looking curve, and it is open for 1/4 of the 720 degree engine
cycle, or 180 degrees. Furthermore let's say that the "rise-degrees"
are about 60 degrees or pi/3 radians.
For an engine at 3000RPM, that's 50Hz.
Then crank angular frequency w = 2 pi (50Hz) = 100 pi rad/s.
Risetime tr of valve based on 60 "rise-degrees" is
tr = (pi/3)(s/(100 pi rad)) = 3.3ms
Upper frequency component of a waveform with 3.3ms risetime is:
f_valve = 0.35 / (3.3 ms) = 106Hz
Notice that the valve actuation frequency content is higher than the
crank rotation frequency. This is expected.
Now let's say we are willing to tolerate up to 2 crank degrees of
tracking error at 3000RPM. Things get a little tricky since this is
crank angle degrees, which we need to convert into degrees of phase
shift relative to the frequency content of the valve actuation, which we
know is about 140Hz. Thus the phase shift at 140Hz of the closed loop
transfer function must be about:
(2 crank degrees)(106Hz/50Hz) = 4.24 degrees
Assuming that the closed-loop transfer function looks like a single pole
near the cutoff frequency, what cutoff frequency (which will be the
closed-loop system BW) is needed to give this amount of phase shift?
The phase shift vs. frequency parameterized for cutoff frequency is:
arctan(f/fc) = 4.24, where f = 106Hz.
Thus, fc = 1400Hz is my estimate of the closed-loop bandwidth needed to
control the valves to within 2 crank degrees at an engine speed of
3000RPM. This is almost an order of magnitude slower than what I
originally was told.
I know this is a crude approximation, but that is all it is intended as,
in order to assist in choosing DSP and A/D&D/A hardware to implement the
controller. Next question is sampling rate needed.
Since this is closed-loop BW, I am not sure how it relates to open-loop
BW, which is what I need for determining sampling rate. Some crude
algebraic attempts to see the relation between open-loop unity gain
point and closed-loop BW or cutoff frequency suggests they are the same.
In that case I'd want about 20x oversampling or more (20x still injects
18 degrees of extra phase into the open-loop transfer function which is
about the most I'd want), so I'm looking for at least:
20 x 1400Hz = 28ksps per each of four channels.
Not terribly difficult.
--
_____________________
Christopher R. Carlen
crobc@earthlink.net
Suse 8.1 Linux 2.4.19
My problem is to control 4 internal combustion engine valves
electronically. When I first heard about the problem, I was told up to
20kHz response would be needed. This led me to considerations of a
whopping 200-400ksps per each of four channels needed to accomplish this
using a DSP. Now I think the situation is an order of magnitude better.
Here are my first-order estimates of the closed-loop BW needed:
First we have to get some idea of the upper frequency content of the
valve movement profile. For an exhaust valve, let's say it is a smooth
Gaussian looking curve, and it is open for 1/4 of the 720 degree engine
cycle, or 180 degrees. Furthermore let's say that the "rise-degrees"
are about 60 degrees or pi/3 radians.
For an engine at 3000RPM, that's 50Hz.
Then crank angular frequency w = 2 pi (50Hz) = 100 pi rad/s.
Risetime tr of valve based on 60 "rise-degrees" is
tr = (pi/3)(s/(100 pi rad)) = 3.3ms
Upper frequency component of a waveform with 3.3ms risetime is:
f_valve = 0.35 / (3.3 ms) = 106Hz
Notice that the valve actuation frequency content is higher than the
crank rotation frequency. This is expected.
Now let's say we are willing to tolerate up to 2 crank degrees of
tracking error at 3000RPM. Things get a little tricky since this is
crank angle degrees, which we need to convert into degrees of phase
shift relative to the frequency content of the valve actuation, which we
know is about 140Hz. Thus the phase shift at 140Hz of the closed loop
transfer function must be about:
(2 crank degrees)(106Hz/50Hz) = 4.24 degrees
Assuming that the closed-loop transfer function looks like a single pole
near the cutoff frequency, what cutoff frequency (which will be the
closed-loop system BW) is needed to give this amount of phase shift?
The phase shift vs. frequency parameterized for cutoff frequency is:
arctan(f/fc) = 4.24, where f = 106Hz.
Thus, fc = 1400Hz is my estimate of the closed-loop bandwidth needed to
control the valves to within 2 crank degrees at an engine speed of
3000RPM. This is almost an order of magnitude slower than what I
originally was told.
I know this is a crude approximation, but that is all it is intended as,
in order to assist in choosing DSP and A/D&D/A hardware to implement the
controller. Next question is sampling rate needed.
Since this is closed-loop BW, I am not sure how it relates to open-loop
BW, which is what I need for determining sampling rate. Some crude
algebraic attempts to see the relation between open-loop unity gain
point and closed-loop BW or cutoff frequency suggests they are the same.
In that case I'd want about 20x oversampling or more (20x still injects
18 degrees of extra phase into the open-loop transfer function which is
about the most I'd want), so I'm looking for at least:
20 x 1400Hz = 28ksps per each of four channels.
Not terribly difficult.
--
_____________________
Christopher R. Carlen
crobc@earthlink.net
Suse 8.1 Linux 2.4.19