*Posted by Rick Kossik*

GoldSim allows you to compute and display average outputs of
any variable you are simulating. For
example, if you were using a daily timestep, you could compute monthly or
annual values using a feature in GoldSim called

**. These are defined in the Simulation Settings.***reporting periods*
In some cases, however, you may want to compute a different
kind of average – a

**. For example, at any point in the simulation, you might want to reference the average value of a variable over the previous 10 days. GoldSim provides an easy way to do this.***moving average*Why would you want to compute a moving average? As an example, consider a case where you are simulating a system that constantly adjusts (reacts to) one variable (e.g., a pumping rate from a pond) based on the value of some other varialble (a flow rate into the pond). If the flow rate was highly variable, you probably would not want to adjust the pumping rate based on the current (instantanteous value) of the flow rate (as the pumping rate would then also vary widely), but instead on the average value of that flow rate over some previous period (which will smooth the variations in the flow rate).

Mathematically, a moving average of X over some averaging
time ATime is simply computed as follows:

That is, it is a time integral. GoldSim Stock elements
(Reservoirs and Integrators) solve time integrals. Integrators are simplified
versions of Reservoirs (although as we shall see, they provide some specialized
features that Reservoirs do not). In
particular, Integrators provide the (optional) ability to compute a moving
average.

An Integrator element looks lime this:

As you can see, the Integrator is a simplified version of
the Reservoir:

- Both require an
**Initial Value**. - The Integrator combines the Reservoir’s Addition
Rate and Withdrawal Rate into a single
**Rate of Change**. - The Integrator does not have a Lower Bound or an Upper Bound.

We can use one of the Integrator’s advanced capabilities to
compute a moving average.

We can access these capabilities by pressing the

**More**button:
As can be seen, the Integrator provides the ability to
compute up to three moving averages.

In the example below, we are averaging a stochastic signal
(a streamflow), and computing a 30 day moving average and a 1 year moving
average:

This adds two secondary outputs the the Integrator
(Average.Month and Average.Year).

In this case, if we run the model and plot the results (the
original signal and the two moving averages), it looks like this:

As can be seen, the moving average smooths the variations in
the flow rate, and because it is backward-looking, shifts the peaks to the
right (i.e., delays them).

## No comments:

## Post a Comment

Note: Only a member of this blog may post a comment.