[EMAIL PROTECTED]
To: Foxboro DCS Mail List [EMAIL PROTECTED]
cc:(bcc: Kirk D Carver/Beaumont/Mobil-Notes)
Subject: RE: Rolling average
Neat and sweet.
Regards,
Alex Johnson
The Foxboro Company
10707 Haddington
Houston, TX 77043
713.722.2859 (v)
713.722.2700 (sb)
713.932.0222 (f)
[EMAIL
Talking about rolling average, I use a AIN block with filter option.
That just works a gem.
Anyone ever thought about 0-360deg wind vane damping?
See the problem around North? 1,360,1,360. would average 180 wouldn't it?
Here is what I did.
In a CALC block split out the SIN and COS and output
Alex suggests averaging 8 buckets from the DEADTIME block and this is very
practical. Some other suggestions are:
First DTOPT is set to 0 (DEADTIME block) so that the input is averaged over
the duration of bucket transfers (the so called rolling average feature).
If the DEADTIME block period is
Steve,
Try the following in a CALC block:
RI01 = valve position
RO01 = approx. one hour average valve position
Block Period = whatever
M01 = filter time = block period / 1 Time Constant
If time average is 1 hour (approx. 4 time constants) then 1 time
constant = 15 minutes or 900 seconds.
So, Steve.
What did you decide to do.
Regards,
Alex Johnson
The Foxboro Company
10707 Haddington
Houston, TX 77043
713.722.2859 (v)
713.722.2700 (sb)
713.932.0222 (f)
[EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
-Original Message-
From: Steve Rigby [SMTP:[EMAIL
:
[EMAIL PROTECTED]
[EMAIL PROTECTED]
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]] On Behalf Of Johnson,Alex
Sent: Thursday, September 07, 2000 3:25 PM
To: Foxboro DCS Mail List
Subject:RE: Rolling average
So, Steve.
What did you decide to do
Here's a way to do it using a TIMER and an IND block. You could do without
the timer and just use the WAIT for the period but then you might run into
problems if your CP goes into overrun.
This is set for a flow but will work on anything..
I would use an independent sequence block. Run the block once per minute,
dump the current value of the point to be averaged into a real array indexed
by the minute in the current hour, sum up the values in the array, divide by
60 and you have a rolling hourly average. This will automatically
This may be overly simplistic, but what about using a filter in an AIN block
or an LLAG block? A low pass filter really isn't mathematically the same as
a rolling average, but for a lot of the applications where the process
engineers thought they needed a rolling average, we've found that it's
My personal favorite is:
1) Build a DTIME block and set the duration to the time period of
interest * 1.2.
2) Take the 8 most recent bucket outputs of the DTIME block to the
inputs of a SSEL block
3) Set the SSEL block to average its inputs.
This approach is kind of cool
10 matches
Mail list logo