Posted Thu, 23 Apr 2015 08:12:17 GMT by Gabriel
Hi,

a colleague and I are working on a project involving aeration strategies and SRT control strategies for an activated sludge plant. Our model setup involves two 5 basin activated sludge plants with a secondary clarifiers set up in parallell, with a common influent, but separate effluents and return flows. We are trying to maintain a steady SRT by regulating the waste flowrate using a PI controller. The PI controller gets an in-signal from a calculator block (the signal passes through a data treatment block), which calculates SRT. We have verified that the calculator block functions correctly by comparing the outsignal y_SRT with a calculator variable that calculates SRT.

We are experiencing a few different problems that (to varying degrees) have an impact on the accuracy of our model. It might be worth noting that we're interested in observing variations over the day - and that we're therefore using 2 hour average concentrations in our input files rather than daily averages - some of the issues we're seeing might not be noticeable on longer timescales.

1. Our first issue is that the controller doesn't use the steady state values, or the specified start value u0 as the initial output signal (rather than starting at u0, the controller starts at either u = umax or u = umin at t=0) during dynamic simulations - this causes disturbances in the simulation and requires the simulation to be run longer. Is there a way to "force" the PI regulator to start at a specific value?

2. The second issue - which might be related to the first - is that when simulating two parallell lines of activated sludge units, which has the same influent separated by a splitter, the ASU in the second line will be empty from the start whereas the ASU in the first line will be full - this also causes disturbances in the beginning of a simulation. I have the same question here - is there a way to manipulate the model to start at a specific value rather than at 0?

The third problem only occurs in projects created on one of our two computers. That is to say - if SRT control is implemented in the model on my computer it will not function correctly. If SRT control is implemented in the model on my colleague's computer, it will function. If I run a project where SRT has been implemented on one of two ASU lines that has been created on my colleague's computer the SRT control will work - but if I add SRT control to the second line in that project file - using the exact same settings as for the first line - then only the SRT control for the first line will function. This is the problem I'm experiencing with SRT control:

3. During a steady state run the PI controller does not regulate correctly - regardless of starting conditions, controller settings or even choice of controller (I have tried using both PI and PID controllers) the u-signal will always reach a steady state value of either u_max or u_min and ignore the setpoint value. When a dynamic simulation is run the PI controller appears to be working correctly, but since the steady state simulation gives inaccurate starting conditions throughout the model the dynamic simulation is severely affected - a dynamic simulation will need to be run for at least 10 days before the steady state simulation is no longer affecting the results.

I have included two pictures to illustrate the problem. Line 2 uses measured values to determine the waste flowrate. The line has a steady state SRT of roughly 1.87 days, which should mean that the steady state levels of the two lines should be approximately the same (since y_S for the PI regulator in the SRT control is set to 1.87). u should typically be somewhere in the range of 150-200 (m3/d) in order to meet this SRT, but as mentioned before the outsignal will be either u_min or u_max (86.4 or 432 m3/d) which then gives a "steady state" SRT of 3.8 or 0.8 d respectively.

I've built and rebuilt the SRT control system (controllers, connections, sensors, calculator) from scratch multiple times, and have checked every model numerous times to ensure that there is a perfect match between the two lines, so I'm reasonably sure the problem isn't caused by a typing error. I have several other PI regulators in the model that control the aeration, and none of these controllers have the same issues with steady state simulations.
Posted Thu, 23 Apr 2015 10:46:35 GMT by Enrico Remigi WEST Product Owner
There are many interesting aspects in your post - will try to address them all.

[u]On SRT regulation by PI controller[/u]
How exactly do you realize this? Can you share the WEST layout, or briefly explain how?
In case you are controlling the sludge wastage, please remember that the standard PI model defines the "error" as the difference between the set-point and the actual measured value, i.e.
[code]e = (y_S - y_M)[/code]
and the "calculated action" has the [b]same sign of the error[/b]:
[code]u = u0 + K_P * (e + (1 / T_I) * integ(e))[/code]
This means that if the calculated SRT (y_M) is smaller than the set-point, the action (sludge wastage) will be progressively increasing - which is clearly the opposite of the desired behaviour.
So: you need to set a [b]negative K_P[/b]; or, create a variant of the standard PI model in MSL rather.

[u]Q1: PI's initial state[/u]
[quote].. the controller doesn't use the steady state values, or the specified start value u0 as the initial output signal .. [/quote]
[list]
[li]What do you mean by "steady-state values"? The controller receives its (dynamic) input from the calculator[/li]
[li]"[b]u0[/b]" is not the initial output signal (at t=0) but the [b]no-error signal[/b], i.e. the signal when e = 0, or y_S = y_M[/li]
[/list]
[quote]Is there a way to "force" the PI regulator to start at a specific value?[/quote]
[list]
[li]No, unless you modify the MSL and set a certain output for a given time[/li]
[/list]

[u]Q2: two parallel lines with same initial state[/u]
The only possibility why one line starts from empty (I guess you mean: no or very little biomass) is that it has not been properly initialized through a steady-state simulation. Perhaps, you have added the second line at a later stage, once the first one had already been initialized?
Anyway, you can get the second line to start from the exact same initial conditions as the first one, by storing the initial states of the first one ([b]Store Parameter Lib [/b] from the Model Explorer pane: you can restrict this to only the initial values of the derived states for the 1st tank) and loading them in the second one (Load Param Lib)

[u]Q3: different behaviour on different machines[/u]
This is really weird. I cannot believe (that is: "it should not happen") that with the same exact settings, the same exact model give two completely different outputs.
If the problems persists, please send the entire project folder (in your Public documents) to mikebydhi@dhigroup.com

[u]Q4: controller does not move from lower or upper bounds[/u]
This can only be due to the settings of the model: for PI, the value of KP; for PID (this is even trickier), KP and TD.

You must be signed in to post in this forum.