# Denitrification Control in a Recirculating Aquaculture System—A Simulation Study

^{*}

Previous Article in Journal

Previous Article in Special Issue

Previous Article in Special Issue

Systems, Estimation, Control and Optimization (SECO), University of Mons, 31, Boulevard Dolez, 7000 Mons, Belgium

Author to whom correspondence should be addressed.

Received: 4 September 2020
/
Revised: 8 October 2020
/
Accepted: 9 October 2020
/
Published: 17 October 2020

(This article belongs to the Special Issue Wastewater Treatment Processes)

The recirculating aquaculture system (RAS) is a land-based water treatment technology, which allows for farming aquatic organisms, such as fish, by reusing the water in the production (often less than 5%). This technology is based on the use of filters, either mechanical or biological, and can, in principle, be used for any species grown in aquaculture. Due to the low recirculation rate, ammonia accumulates in the system and must be converted into nitrate using nitrification reactors. Although less toxic for fish, nitrate can also be further reduced into nitrogen gas by the use of denitrification biofilters which may create several issues, such as incomplete denitrification, resulting in toxic substances, such as nitrite and nitric oxide, or a waste of carbon source in excess. Control of the added quantity of carbon source in the denitrification biofilter is then mandatory to keep nitrate/nitrite concentrations under toxic levels for fish and in accordance with local effluent regulations, and to reduce costs related to wasted organic carbon sources. This study therefore investigates the application of different control methodologies to a denitrification reactor in a RAS. To this end, a numerical simulator is built to predict the RAS behavior and to allow for the comparison of different control approaches, in the presence of changes in the operating conditions, such as fish density and biofilter removal efficiency. First, a classical proportional-integral-derivative (PID) controller was designed, based on an SIMC tuning method depending on the amount of ammonia excreted by fish. Then, linearizing and cascade controllers were considered as possible alternatives.

Recirculating Aquaculture Systems (RAS) have been increasingly used due to the growth of the aquaculture industry [1]. They can be defined as systems where less than 10% of the total water volume is replaced per day and respond to the need of more intensive practices, growing environmental constraints on water consumption and effluent quality, as well as the possibility to supply fish in places where it would be otherwise difficult [2,3]. The main drawback of these systems is the accumulation of some toxic compounds, such as ammonia, when there is no proper treatment. Ammonia can be introduced into the system by fish excretion, 60–70% of the nitrogen consumption by fish being excreted as ammonia through the gills, or the degradation of uneaten feed [4]. The nitrogen removal process reduces the ammonia level using microorganisms that transform it into nitrate (nitrification). The latter, although much less toxic for fish, also accumulates in the system and needs to be removed to avoid system sustainability and environmental issues. Thus, another unit is often considered in order to convert nitrate into nitrogen gas (denitrification). The use of anaerobic denitrification to remove nitrate is not yet widely applied to commercial RAS due to its level of efficiency, its complexity and cost [5]. The complexity of RAS, created by its intrinsic closed-loop and the interactions between water treatment and fish grow-out, implies to build dynamic models to analyze the process behavior and to optimize it (configuration, size, fish, feed, flows etc) with respect to cost, robustness and water quality [6]. Indeed, manual control of denitrifying biofilters may easily lead to an unstable process performance and high cost [7]. Nitrite, which is toxic for fish, can accumulate in transient phases [8]. It is an intermediate compound in the denitrification process, a set of four reactions converting nitrate $N{O}_{3}^{-}$ to nitrogen ${N}_{2}$. Particularly, the lack of carbon source for complete denitrification could make this problem more severe. The absence of nitrite/nitrate/oxygen, however, if large quantities of organic matter exist, causes the production of sulfides (such as hydrogen sulfide) which are also extremely toxic [9]. Although nitrate control has been addressed many times regarding municipal wastewater treatment, its application in the context of RAS is not widespread [7,10,11,12]. A multivariable PID control, manipulating recirculation flowrates and aeration to control nitrate levels is proposed in [12] while an online control strategy/algorithm optimizing a denitrification biofilter through carbon dosage and backwash is shown in [7]. In [10], a simple feedback control strategy by methanol addition is used to minimize nitrite production and [11] proposes an output-feedback control scheme for a wastewater treatment biofilters in order to regulate nitrate and nitrite concentrations.

In this study, a global assessment of nitrate control using acetic acid (pH is considered regulated and constant) as manipulated variable is first achieved and two different control methodologies are considered: a classical PID control whose parameters are estimated by a SIMC tuning method [13], and a simple model-based linearizing control. PID control is widely used in process industries [14], and have been extensively used to control WWTPs. Unfortunately, PID controllers may present robustness limitations when applied to nonlinear systems with modeling uncertainties as well as measurement noise. They might indeed require tuning each time the operating conditions significantly vary. Linear controllers, on the other hand, take advantage of the availability of accurate nonlinear models often based on reaction networks and mass balances. However, as bioprocess models generally present uncertain kinetic structures, adaptive and/or robust solutions are required [15,16,17,18]. Taking advantage of both controller structures, a cascade of PI and linearizing control (accounting for possible model inaccuracies) is further proposed and compared with an adaptive linearizing strategy. The controller performances are tested with regard to typical industrial plant variations: changes in fish density, biofilter nitrate conversion efficiency, effluent guidelines regarding nitrate and water/acid pump malfunction in the denitrification reactor.

The industrial-scale RAS under consideration was composed of fish tanks, a physical filtration system and two biofilters (one for nitrification and another for denitrification). The reactor sizes and flowrates are presented in Figure 1.

The fish were reared in the tanks from where water flowed into a physical filtration system in order to remove particles. This water flow was then bypassed by a denitrification system where a carbon source, acetic acid, was injected. The nitrification filter was composed of 6 compartments, each one filled with fixed plastic support. Oxygen was added to the nitrification filter up to its saturation point and fresh water could also have been introduced in the system at a rate ${F}_{fresh}$.

In the following analyses, the RAS system is assumed to operate at a specific setpoint and model-based control strategies are designed to allow the user to choose specific operating conditions (i.e., to keep the current setpoint in steady-state or to chose another setpoint) and the closed-loop system to compensate possible disturbances. Regarding the simulated industrial plant, the nominal steady-state corresponds to a $6.4$ L/h acetic acid flow rate ($\overline{{F}_{Acid}}$) added to keep a constant nitrate concentration in the denitrification biofilter of 26.6 gN/m^{3}. Water leaves the fish basins (and enters the denitrification biofilter) with oxygen, ammonium and nitrate concentrations of, respectively, 6.8 gCOD/m^{3}, 0.5 gN/m^{3} and 98 gN/m^{3}.

Each block of the industrial RAS is described by the following models whose components and nomenclature are related to the Activated Sludge Models (ASM) from [19].

- Fish Tanks:The fish excretion rate is considered with assumed constant fish size and population. It can be translated into ASM variables using the waste matrix reported in [6]. The fish respiration is calculated based on the values reported in [20,21] (see Table 1).The Fish basins are modeled as perfectly mixed tank reactors where no biological reaction occurs, applying mass balances as in:$$\frac{d\xi}{dt}=-D({\xi}_{inlet}-\xi )+\frac{{\vartheta}_{waste}}{V}$$
^{3}and body weight of 8.5 kg. These rates can also be translated into ASM variables using the waste matrix reported in [6] while the fish respiration is calculated based on the values reported in [20,21] (see Table 1). The fish basin may therefore be modeled by the replication of the generic Equation (1) for each waste component of Table 1. - Physical particle filter:90% of the particulate components in the inlet are filtered, leading to:$${X}_{k,outlet}=0.1{X}_{k,inlet}$$
- Denitrification filter:The denitrification filter consists of a moving bed perfectly-mixed tank reactor. Solubles that exist in the reactor bulk (index b) dissolve into the biofilm (index c) where the main part of the biological reactions occurs. The same ASM model, which is applied for nitrification, is used with the exception that ammonia is not considered as substrate for heterotrophic growth ($\frac{{S}_{NH}}{({K}_{NHH}+{S}_{NH})}$ is not considered in ${\rho}_{1}$, ${\rho}_{2}$ and ${\rho}_{3}$). Acetic acid is added to this bioreactor (4) as a carbon source for denitrification, which can therefore be modeled as:$$\frac{d{S}_{i,b}}{dt}=D({S}_{i,inlet}-{S}_{i,b})+\frac{{\dot{m}}_{i,Added}}{{V}_{b}}-\frac{{k}_{diff}({S}_{i,b}-{S}_{i,c})}{{V}_{b}}+{\varphi}_{{S}_{i,b}}$$$${\dot{m}}_{SS,Added}={F}_{Acid}\phi $$$$\begin{array}{c}\hfill \frac{d{X}_{k,b}}{dt}=D({X}_{k,inlet}-{X}_{k,b})+\frac{{K}_{d}}{{V}_{b}}{X}_{k,c}+{\varphi}_{{X}_{k,b}}\end{array}$$$$\begin{array}{cc}\hfill \frac{d{S}_{i,c}}{dt}& =\frac{{k}_{diff}}{{V}_{bf}}({S}_{i,b}-{S}_{i,c})+{\varphi}_{{S}_{i,c}}\hfill \end{array}$$$$\begin{array}{cc}\hfill \frac{d{X}_{k,c}}{dt}& =-\frac{{K}_{d}}{{V}_{bf}}{X}_{k,c}+{\varphi}_{{X}_{k,c}}\hfill \end{array}$$$${\varphi}_{\xi}=\sum _{w=1}^{11}{\upsilon}_{\xi ,w}\times {\rho}_{w}$$
- Nitrification filter:The nitrification filter is hydraulically modeled assuming six sequential perfectly mixed tank reactors filled with solid media. Biologically, a modified ASM1 model with the inclusion of two-step nitrification/denitrification is used (provided in Tables S1 and S2, in Supplementary Materials). This model has been validated using the data from the COST Simulation Benchmark in [22]. It has to be noticed that oxygen is also added to this bioreactor. Particles present in the inlet remain in the outlet. However, the particles already existing in each compartment ($rs$) do not move to others. The resulting mass balances lead to:$$\frac{d{S}_{i,rs}}{dt}=\frac{F}{{V}_{b}}({S}_{i,rs-1}-{S}_{i,rs})+\frac{{\dot{m}}_{O2,Added}}{{V}_{b}}\pm {\varphi}_{{S}_{i,rs}}\frac{{V}_{biofilm}}{{V}_{b}}$$$$\frac{d{X}_{k,rs}}{dt}={\varphi}_{{X}_{k,rs}}$$$${\dot{m}}_{O2,Added}={k}_{La}({S}_{O,sat}-{S}_{O})$$$${S}_{i,rs-1}={S}_{i,inlet}\phantom{\rule{0.222222em}{0ex}}\phantom{\rule{0.222222em}{0ex}}\phantom{\rule{0.222222em}{0ex}},at\phantom{\rule{0.222222em}{0ex}}\phantom{\rule{0.222222em}{0ex}}\phantom{\rule{0.222222em}{0ex}}rs=1$$
^{3}/h, ${V}_{b}$ is the empty volume of the reactor in m^{3}, ${\varphi}_{{S}_{i,rs}}$ and ${\varphi}_{{X}_{k,rs}}$ are the consumption/production rates of solubles i and particulates k, calculated from (8), F is the volumetric flowrate in m^{3}/h, $\dot{m}$ is the mass flowrate in g/h, ${K}_{d}$ is the detachment coefficient in h^{−1}·m^{3}and ${k}_{La}$ is the oxygen mass transfer coefficient in h^{−1}.

A first hydraulic study of the plant is achieved in order to assess the RAS inherent dynamics. To this end, a simulation of the concentration variation of an inert soluble component in the denitrification reactor following a production rate unitary step increase (in gCOD/(m^{3}·h)) is shown in Figure 2 where, obviously, the plant takes up to 4000 h to reach the new steady state. Indeed, the step response can be approximated using a first order transfer function ${G}_{1}$ with time constant ${\tau}_{C}=744$ h—i.e., $5{\tau}_{C}\approx 4000$ h. As already mentioned, the plant is a semi closed system with 1% of regenerated water flowrate. This small inlet of water, along with the high considered volume, causes the very slow drift towards the new steady-state. This preliminary numerical analysis aims at demonstrating that the current RAS is very delicate to control due to the recirculating loop dynamics. In the upcoming sections, dedicated to control design, these slow dynamics are taken into account using adapted controller settings.

This section aims at first designing a classical PID controller to regulate the nitrate level in the denitrification reactor. From the corresponding model of differential Equations (3) and (4), acetic acid is obviously the sole manipulated variable and the following control law is proposed:
where $\overline{{F}_{Acid}}$ represents the initial acetic acid flowrate ensuring the industrial plant nominal steady-state ($\overline{{F}_{Acid}}=6.4$ L/h), $e\left(t\right)$ represents the measurement error, ${K}_{C}$ is the proportional gain, ${\tau}_{I}$ and ${\tau}_{D}$, respectively, are the integral and derivative time constants, ${S}_{NO3}^{*}$ is the desired nitrate concentration setpoint and ${S}_{NO3}\left(t\right)$ is the measured nitrate concentration. Expression (13) therefore aims at compensating any deviation from the chosen nominal steady-state trajectory which is assumed to be a priori knowledge from heuristics. Although (13) only presents three parameters, finding optimal settings without resorting to a systematic procedure may be complex. One way to design the gains is to first focus on the Proportional-Integral (PI) (i.e., ${\tau}_{D}=0$) part in order to set a satisfactory steady-state response (no steady-state error) and then consider the derivative part to improve the transient response [13,23].

$$\begin{array}{cc}\hfill {F}_{Acid}\left(t\right)& =\overline{{F}_{Acid}}+{K}_{C}\left[e\left(t\right)+\frac{1}{{\tau}_{I}}{\int}_{0}^{t}e\left({t}^{*}\right)d{t}^{*}+{\tau}_{D}\frac{de\left(t\right)}{dt}\right]\hfill \end{array}$$

$$\begin{array}{cc}\hfill e\left(t\right)& ={S}_{NO3}^{*}-{S}_{NO3}\left(t\right)\hfill \end{array}$$

In this study, the SIMC design method, as presented in [13], is chosen since it involves the transfer function of the system which can be easily computed considering a specific operating point and the corresponding step response, for instance, using the MATLAB model identification toolbox.

As shown in Figure 3, a one pole model already provides a very good approximation, and reads:

$$\begin{array}{cc}\hfill G\left(s\right)& =\frac{k{e}^{-\theta s}}{{\tau}_{1}s+1}=\frac{-32}{8.9\times {10}^{2}s+1}\hfill \end{array}$$

The numerator of (15) shows that the system presents a steady-state gain ($G\left(0\right)$) equal to $-32$ and no delay ($\theta =0$) while the denominator provides the system time constant (${\tau}_{1}$) which, as expected, is particularly large (890 h). Such slow systems, according to [13], may be approximated by a simple integrator:
using the ratio between the gain $G\left(0\right)$ and the time constant ${\tau}_{1}$, denominated ${k}^{\prime}$, to determine PI-settings in a much shorter time frame (see Figure 4). ${k}^{\prime}$ is therefore calculated as follows:
where $\Delta y$ represents the variation in nitrate concentration during $\Delta t$ hours, for a variation in acid flowrate $\Delta u$.

$$\frac{k{e}^{-\theta s}}{{\tau}_{1}s+1}\approx \frac{{k}^{\prime}{e}^{-\theta s}}{s}$$

$${k}^{\prime}=\frac{\Delta y}{\Delta t\Delta u}=\frac{22.09-25.59}{(240-24)(6.762-6.44)}=-0.05$$

The SIMC method then proposes, for a general first-order process with delay, the PID tuning rules presented in Table 2, where ${\tau}_{C}$ represents the time constant of the desired first-order response of the system. The second row shows how this method is applied to the considered industrial-scale plant.

Considering y, the current nitrate concentration in the denitrification filter, ${y}_{S}$ the desired setpoint, and $\theta $ the time delay, Equation (18) shows the relation between these variables and ${\tau}_{C}$:

$$\begin{array}{c}\hfill {\left(\frac{Y\left(s\right)}{{Y}_{s}\left(s\right)}\right)}_{desired}=\frac{1}{{\tau}_{C}s+1}{e}^{-\theta s}\end{array}$$

The rate at which nitrate is produced/consumed in the system depends on either the quantity of ammonia released by fish (and consequent quantity converted into nitrate) or the amount of nitrate the denitrification biofilter is able to convert into nitrogen (gas). Regarding nitrate consumption, an increase in available carbon source induces biomass growth and nitrate consumption increases (assuming that the biofilter size is properly designed). However, nitrate production is entirely driven by the quantity of ammonia produced in the system. ${\tau}_{C}$ is then limited by the “maximum” production rate of nitrate and can be estimated using the quantity of ammonia produced by the fish. This can be further explained by Equation (18), considering $\theta =0$, represented in Figure 5. It has to be noticed that ${\tau}_{C}$ should always be greater than ${\frac{d\left(\frac{y}{ys}\right)}{dt}}_{max}$, that is, ${\tau}_{C}\ge {\tau}_{C,min}$ as shown in Figure 5, depending on the amount of ammonia excreted by fish.

The controller parameter calculation conditions, related to the case-study, are presented in Table 3. All the ammonia introduced in the system is considered as completely converted into nitrate.

As shown in Figure 6, where setpoint changes of +15/−15 gN/m^{3} are simulated, an anti-windup configuration (using Equation (19)) is recommended to avoid detrimental effects due to input saturation and the control law reads:
with ${e}_{aw}$ being the anti-windup term calculated by the following equation:
${e}_{aw}$ is only greater than 0 when the controller output is greater than the allowed maximum value (${F}_{acid,max}=200$ L/h) or lower than its minimum value (${F}_{acid,min}=0$ L/h). When this happens, the control action is limited and ${e}_{aw}$ is calculated accordingly (${K}_{aw}$ is the anti-windup gain). Figure 6 shows the effect of the anti-windup when a ${K}_{aw}$ value of −1 is used. When the nitrate setpoint is increased, the controller decreases the acid flowrate accordingly. However, nitrate concentration will continue to increase due to the ammonia conversion reaction which causes the integral term of the PI controller to go on increasing. When the nitrate concentration finally reaches the desired setpoint, the accumulated integral action entails overshoot. ${K}_{aw}$ values chosen between −0.1 and −10 are sufficient to solve the issue. Nevertheless, using a high ${K}_{aw}$ value tends to slow down setpoint tracking. A ${K}_{aw}$ value of $-1$ is ideally chosen and used in future simulations.

$$\begin{array}{cc}\hfill {F}_{Acid}\left(t\right)& =\overline{{F}_{Acid}}+{K}_{C}\left[e\left(t\right)+\frac{1}{{\tau}_{I}}{\int}_{0}^{t}(e\left({t}^{*}\right)-{e}_{aw})d{t}^{*}\right]\hfill \\ \hfill e\left(t\right)& ={S}_{NO3}^{*}-{S}_{NO3}\left(t\right)\hfill \end{array}$$

$$\begin{array}{c}\hfill {e}_{aw}=\left\{\begin{array}{cc}{K}_{aw}({F}_{acid,t}-{F}_{acid,max})\hfill & if\phantom{\rule{0.222222em}{0ex}}\phantom{\rule{0.222222em}{0ex}}\phantom{\rule{0.222222em}{0ex}}{F}_{acid,t}>{F}_{acid,max}\hfill \\ {K}_{aw}({F}_{acid,t}-{F}_{acid,min})\hfill & if\phantom{\rule{0.222222em}{0ex}}\phantom{\rule{0.222222em}{0ex}}\phantom{\rule{0.222222em}{0ex}}{F}_{acid,t}<{F}_{acid,min}\hfill \\ 0\hfill & {F}_{acid,min}<{F}_{acid,t}<{F}_{acid,max}\hfill \end{array}\right.\end{array}$$

The design of the derivative gain is achieved following the analysis of the controller response to setpoint changes. Comparative results using different derivative gain values (driven by the choice of ${\tau}_{D}$) can be found in Figure 7. The input calculated by the PID therefore reads:
where the derivative term is approximated by a continuous high-pass filter using $\eta $ as intermediate variable. Including the derivative action leads to the new results of Figure 7, where oscillations are attenuated and the tracking is improved. A ${\tau}_{D}$ value of 1 provides the most satisfactory result and is therefore selected.

$$\begin{array}{cc}\hfill {F}_{Acid}& =\overline{{F}_{Acid}}+{K}_{C}\left[e\left(t\right)+\frac{1}{{\tau}_{I}}{\int}_{0}^{t}(e\left({t}^{*}\right)-{e}_{aw})d{t}^{*}+{\tau}_{D}(e\left(t\right)-\eta )\right]\hfill \end{array}$$

$$\begin{array}{cc}\hfill \dot{\eta}& =(e\left(t\right)-\eta ){\tau}_{D}\hfill \end{array}$$

The resulting PID performance is assessed in Figure 8 where, following several setpoint changes and step disturbances in waste production (${\vartheta}_{{S}_{NH}}$), robust and fast tracking is achieved. Values of $-11.6$ L·m^{3}/(g·h), 6.9 h, 1 h and $-1$ are, respectively, used for ${K}_{C}$, ${\tau}_{I}$,${\tau}_{D}$ and ${K}_{aw}$. Robustness analysis with respect to other operating condition disturbances is also presented in Figure 9. Variations in the available biomass concentration ${X}_{BH}$ and the bypass flowrate ${F}_{denitri}$ are identified as severe system disturbances. A sudden increase in biomass decay rate (${b}_{H}$ term in Table S2 is increased 3 fold, from $2.6\times {10}^{2}$ to $7.8\times {10}^{-2}$ h^{−1}) is therefore simulated and indeed causes response oscillations, as shown in Figure 9, while step variations on the bypass flowrate are compensated very fast.

For the exact same perturbation in the biomass decay rate as in the previous test, the situation gets worse when adding measurement noise, as shown in Figure 10, where a Gaussian noise with zero mean and $10\%$ relative standard deviation is added to the measured variable (${S}_{NO3}$). A sampling time of $0.01$ h is also used to match the probe measurement sampling process. The controller obviously faces tracking problems, sometimes reaching unacceptable nitrate concentration values even when trying to retune the controller proportional gain (Figure 10 shows the results for two values of the gain). To avoid this undesired effect, two solutions could be considered—they are, (a) low-pass filtering of the output signal or (b) replacing the PID by a PI, which is, in essence, less sensitive to measurement noise.

A linearizing control strategy, as illustrated in Figure 11, may also be proposed as an alternative solution.

The control law is established based on a simplified ASM1 model [19] (in order to limit the quantity of measured variables) and the following assumptions:

- Only the denitrification reactor is considered;
- This reactor only contains heterotrophic bacteria;
- Since the oxygen concentration is low, no nitrification can occur;
- Biomass is retained in the tank $({X}_{BH,out}=0)$;
- Only three other components besides biomass are considered: oxygen (${S}_{O}$), easily biodegradable organic matter (${S}_{S}$) and nitrate (${S}_{NO3}$);
- Only two reactions are assumed to occur:
- Aerobic growth of heterotrophs:$${S}_{S}+{S}_{O}\to {X}_{BH};$$
- Anoxic growth of heterotrophs on nitrate:$${S}_{S}+{S}_{NO3}\to {X}_{BH};$$

- Acid is added as a carbon source and $\phi $ represents the conversion of acid flowrate (${F}_{acid}$, $L/h$) into easily biodegradable carbon source flowrate ($gCOD/h)$).

Applying mass balances to (23) and (24), the following simplified differential equation system is obtained:
where ${\varphi}_{SS}$ and ${\varphi}_{NO3}$ are the easily biodegradable organic matter and nitrate reaction rates given by:
where ${\upsilon}_{SS,aerob}$, ${\upsilon}_{SS,anox}$ and ${\upsilon}_{NO3}$ are stoichiometric coefficients depending on biomass yield ${Y}_{H}$ as in:
and ${\rho}_{1}$ and ${\rho}_{2}$ are the aerobic and anoxic growth rates of heterotrophs:

$$\begin{array}{cc}\hfill \frac{d{S}_{S}}{dt}& =\frac{{F}_{Denitri}}{{V}_{Denitri}}{S}_{S,in}-\frac{({F}_{Denitri}+{F}_{acid})}{{V}_{Denitri}}{S}_{S}+{\varphi}_{SS}+\frac{{F}_{acid}\phi}{{V}_{Denitri}}\hfill \end{array}$$

$$\begin{array}{cc}\hfill \frac{d{S}_{NO3}}{dt}& =\frac{{F}_{Denitri}}{{V}_{Denitri}}{S}_{NO3,in}-\frac{({F}_{Denitri}+{F}_{acid})}{{V}_{Denitri}}{S}_{NO3}+{\varphi}_{NO3}\hfill \end{array}$$

$$\begin{array}{cc}\hfill {\varphi}_{SS}& ={\upsilon}_{SS,aerob}{\rho}_{1}+{\upsilon}_{SS,anox}{\rho}_{2}\hfill \end{array}$$

$$\begin{array}{cc}\hfill {\varphi}_{NO3}& ={\upsilon}_{NO3}{\rho}_{2}\hfill \end{array}$$

$$\begin{array}{cc}\hfill {\upsilon}_{SS,aerob}& ={\upsilon}_{SS,anox}={\upsilon}_{SS}=-\frac{1}{{Y}_{H}}\hfill \end{array}$$

$$\begin{array}{cc}\hfill {\upsilon}_{NO3}& =-\frac{1-{Y}_{H}}{2.86{Y}_{H}}\hfill \end{array}$$

$$\begin{array}{cc}\hfill {\rho}_{1}& ={\mu}_{H}\frac{{S}_{O}}{{S}_{O}+{K}_{OH}}\frac{{S}_{S}}{{S}_{S}+{K}_{S}}{X}_{BH}\hfill \end{array}$$

$$\begin{array}{cc}\hfill {\rho}_{2}& ={\eta}_{g}{\mu}_{H}\frac{{S}_{S}}{{S}_{S}+{K}_{S}}\frac{{K}_{OH}}{{S}_{O}+{K}_{OH}}\frac{{S}_{NO3}}{{S}_{NO3}+{K}_{NO}}{X}_{BH}\hfill \end{array}$$

Considering a first-order linear reference as in (33):
where ${S}_{NO3}^{*}$ is the desired nitrate concentration setpoint. Replacing Equation (33) in Equation (26):

$$\frac{d{S}_{NO3}}{dt}={\lambda}_{lin}({S}_{NO3}^{*}-{S}_{NO3})$$

$${\rho}_{2}=\frac{2.86{Y}_{H}}{1-{Y}_{H}}\left[\frac{{F}_{Denitri}}{{V}_{Denitri}}({S}_{NO3,in}-{S}_{NO3})-\frac{{F}_{acid}}{{V}_{Denitri}}{S}_{NO3}-{\lambda}_{lin}({S}_{NO3}^{*}-{S}_{NO3})\right]$$

In steady-state, ${S}_{S}$ variation tends to zero:
and injecting (34) into (25), assuming (35), yields:

$$\frac{d{S}_{S}}{dt}\approx 0$$

$$\begin{array}{cc}\hfill \phantom{\rule{1.em}{0ex}}& \frac{{F}_{acid}}{{V}_{Denitri}}{S}_{S}-\frac{{F}_{acid}}{{V}_{Denitri}}\phi =\hfill \\ \hfill \phantom{\rule{1.em}{0ex}}& \frac{{F}_{Denitri}}{{V}_{Denitri}}({S}_{S,in}-{S}_{S})-\frac{1}{{Y}_{H}}{\rho}_{1}-\frac{2.86}{1-{Y}_{H}}\left[\frac{{F}_{Denitri}}{{V}_{Denitri}}({S}_{NO3,in}-{S}_{NO3})\right.\hfill \\ \hfill \phantom{\rule{1.em}{0ex}}& \left.-\frac{{F}_{acid}}{{V}_{Denitri}}{S}_{NO3}-{\lambda}_{lin}({S}_{NO3}^{*}-{S}_{NO3})\right]\hfill \end{array}$$

$$\begin{array}{cc}\hfill \iff {F}_{acid}\left[\frac{{S}_{S}-\frac{2.86}{1-{Y}_{H}}{S}_{NO3}-\phi}{{V}_{Denitri}}\right]& =\frac{{F}_{Denitri}}{{V}_{Denitri}}\left[{S}_{S,in}-{S}_{S}-\frac{2.86}{1-{Y}_{H}}({S}_{NO3,in}-{S}_{NO3})\right]\hfill \\ \hfill \phantom{\rule{1.em}{0ex}}& -\frac{1}{{Y}_{H}}{\rho}_{1}+\frac{2.86}{1-{Y}_{H}}{\lambda}_{lin}({S}_{NO3}^{*}-{S}_{NO3})\hfill \end{array}$$

$$\begin{array}{c}\hfill \iff {F}_{acid}=\frac{\frac{{F}_{Denitri}}{{V}_{Denitri}}\left[{S}_{S,in}-{S}_{S}-\frac{2.86}{1-{Y}_{H}}({S}_{NO3,in}-{S}_{NO3})\right]}{\frac{{S}_{S}-\frac{2.86}{1-{Y}_{H}}{S}_{NO3}-\phi}{{V}_{Denitri}}}\\ \hfill \frac{-\frac{1}{{Y}_{H}}{\rho}_{1}+\frac{2.86}{1-{Y}_{H}}{\lambda}_{lin}({S}_{NO3}^{*}-{S}_{NO3})}{\frac{{S}_{S}-\frac{2.86}{1-{Y}_{H}}{S}_{NO3}-\phi}{{V}_{Denitri}}}\end{array}$$

As previously mentioned, an anti-windup term should be added to cancel input saturation effects:

$$\begin{array}{cc}\hfill {F}_{acid}& =\frac{{F}_{Denitri}({S}_{NO3,in}-{S}_{NO3}+\frac{1}{2.86}{S}_{O,in})-\frac{1}{{Y}_{H}}{\rho}_{1}+{\lambda}_{lin}({S}_{NO3}^{*}-{S}_{NO3})}{\frac{1-{Y}_{H}}{2.86}\phi +{S}_{NO3}}-\hfill \\ \hfill \phantom{\rule{1.em}{0ex}}& \frac{{\lambda}_{lin,I}\phantom{\rule{-0.166667em}{0ex}}\int \phantom{\rule{-0.166667em}{0ex}}({S}_{NO3}^{*}-{S}_{NO3}+{e}_{aw,lin})}{\frac{1-{Y}_{H}}{2.86}\phi +{S}_{NO3}}\hfill \end{array}$$

$$\begin{array}{c}\hfill {e}_{aw,lin}=\left\{\begin{array}{cc}{K}_{aw,lin}({F}_{acid}-{F}_{acid,max})\hfill & if\phantom{\rule{0.222222em}{0ex}}\phantom{\rule{0.222222em}{0ex}}\phantom{\rule{0.222222em}{0ex}}{F}_{acid}>{F}_{acid,max}\hfill \\ {K}_{aw,lin}({F}_{acid}-{F}_{acid,min})\hfill & if\phantom{\rule{0.222222em}{0ex}}\phantom{\rule{0.222222em}{0ex}}\phantom{\rule{0.222222em}{0ex}}{F}_{acid}<{F}_{acid,min}\hfill \\ 0\hfill & {F}_{acid,min}<{F}_{acid}<{F}_{acid,max}\hfill \end{array}\right.\end{array}$$

As shown in Figure 12, the linearizing controller provides good performances even in the presence of measurement noise with zero mean and $10\%$ relative standard deviation, and biomass concentration decrease. However, in an attempt to decrease the undesired oscillations, two additional strategies, which aim at being more robust to model uncertainties, are proposed in the following section, one combining both control structures in cascade and another estimating the biomass unknown dynamics.

The cascade control methodology takes advantage of linearizing control to impose a first-order closed-loop dynamic in the inner loop, and a PI controller is used in the outer loop (see Figure 13). This cascade structure provides robustification, for instance, to model uncertainties, as follows:
where

$$\begin{array}{cc}\hfill {F}_{acid}& =\frac{{F}_{Denitri}({S}_{NO3,in}-{S}_{NO3}+\frac{1}{2.86}{S}_{O,in})-\frac{1}{{Y}_{H}}{\rho}_{Lin}+{\lambda}_{lin}({S}_{NO3}^{*}-{S}_{NO3})}{\frac{1-{Y}_{H}}{2.86}\phi +{S}_{NO3}}\hfill \end{array}$$

$$\begin{array}{cc}\hfill {\rho}_{1}& ={\mu}_{H}\frac{{S}_{O,b}}{{S}_{O}+{K}_{OH}}\frac{{S}_{S}}{{S}_{S}+{K}_{S}}{X}_{BH}\hfill \end{array}$$

$$\begin{array}{cc}\hfill {S}_{NO3}^{*}\left(t\right)& =\overline{{S}_{NO3}^{*}}+{K}_{C,cascade}\left[e\left(t\right)+\frac{1}{{\tau}_{I,cascade}}{\int}_{0}^{t}e\left({t}^{*}\right)d{t}^{*}\right]\hfill \end{array}$$

$$\begin{array}{cc}\hfill e\left(t\right)& ={S}_{NO3}^{*}\left(t\right)-{S}_{NO3}\left(t\right)\hfill \end{array}$$

Lumping the kinetic uncertainties into one single parameter $\widehat{\theta}$, Equation (38) can be re-written:
with
where $\tilde{\theta}$ represents parameter mismatch $\tilde{\theta}=\theta -\widehat{\theta}$. An adaptive scheme, as described in [16,24], can be designed to develop an asymptotically stable control law, considering the following positive Lyapunov candidate function:
and its time derivative:
where ${\tilde{S}}_{NO3}={S}_{NO3}^{*}-{S}_{NO3}$, $\tilde{\theta}=\theta -\widehat{\theta}$ and $\gamma $ is a striclty positive parameter. All the terms in ${\rho}_{Lin}$ are assumed to be slowly varying so that $\frac{d\theta}{dt}=0$ and we get:

$${F}_{acid}=\frac{{F}_{Denitri}({S}_{NO3,in}-{S}_{NO3}+\frac{1}{2.86}{S}_{O,in})+\widehat{\theta}+{\lambda}_{lin}({S}_{NO3}^{*}-{S}_{NO3})}{\frac{1-{Y}_{H}}{2.86}\phi +{S}_{NO3}}$$

$$\begin{array}{cc}\hfill \theta & =-\frac{1}{{Y}_{H}}{\rho}_{1}\hfill \end{array}$$

$$\begin{array}{cc}\hfill \tilde{\theta}& =\theta -\widehat{\theta}\hfill \end{array}$$

$${V}_{L}\left(t\right)=\frac{1}{2}\left({\tilde{S}}_{NO3}^{2}+\frac{{\tilde{\theta}}^{2}}{\gamma}\right)$$

$$\dot{{V}_{L}}=\frac{d{\tilde{S}}_{NO3}}{dt}{\tilde{S}}_{NO3}+\tilde{\theta}\frac{d\tilde{\theta}}{dt}\frac{1}{\gamma}$$

$$\frac{d\tilde{\theta}}{dt}=-\frac{d\widehat{\theta}}{dt}$$

Considering possible parameter mismatch, the error dynamics may be written:

$$\frac{d{\tilde{S}}_{NO3}}{dt}=-\lambda {\tilde{S}}_{NO3}-\tilde{\theta}$$

Replacing Equations (50) and (51) in (49), we obtain:

$$\dot{{V}_{L}}=-\lambda {\tilde{S}}_{NO3}^{2}-\tilde{\theta}{\tilde{S}}_{NO3}-\tilde{\theta}\frac{d\widehat{\theta}}{dt}\frac{1}{\gamma}$$

Considering Lyapunov stability theory, $\dot{{V}_{L}}$ should be negative and since the first term of (52) is, as long as the second and third terms cancel each other, the stability of the closed-loop is verified, as in:

$$\begin{array}{c}\hfill -\tilde{\theta}{\tilde{S}}_{NO3}-\tilde{\theta}\frac{d\widehat{\theta}}{dt}\frac{1}{\gamma}=0\end{array}$$

$$\begin{array}{c}\hfill \frac{d\widehat{\theta}}{dt}=-{\tilde{S}}_{NO3}\gamma \end{array}$$

The adaptive control law reads:
$${F}_{acid}=\frac{{F}_{Denitri}({S}_{NO3,in}-{S}_{NO3}+\frac{1}{2.86}{S}_{O,in})+\widehat{\theta}+{\lambda}_{lin}({S}_{NO3}^{*}-{S}_{NO3})}{\frac{1-{Y}_{H}}{2.86}\phi +{S}_{NO3}}$$
with

$$\frac{d\widehat{\theta}}{dt}=-{\tilde{S}}_{NO3}\gamma $$

It should be noticed that the adaptive linearizing controller is equivalent to (38) where an integral action is added.

Simulation results aim at assessing the controller performance following an increase in biomass (death rate) considering measurement white noise with zero mean and $10\%$ standard deviation on all measured variables (${S}_{NO3}$, ${S}_{S}$, ${S}_{O}$ and ${X}_{BH}$), as shown in Figure 12. A sampling time of $0.01$ h is used to simulate the corresponding probe behavior. Regarding the linearizing controller, the parameters 0.5 h^{−1}, 6 L/h^{2} m^{3} and $-10$ are, respectively, used for ${\lambda}_{lin}$, ${\lambda}_{lin,I}$ and ${K}_{aw,lin}$. The PI used in cascade is parameterized with ${K}_{C,cascade}=0.001$ and ${\tau}_{I,cascade}=0.5$ h (keeping ${\lambda}_{lin}=0.5$ h^{−1}) and the adaptive controller uses $\gamma =5$ (keeping ${\lambda}_{lin}=0.5$ h^{−1}). All the controllers perform reasonably well when noise is added and both the adaptive and cascade controllers are capable of attenuating the previously described oscillations.

In addition, comparative results between the linearizing controller with the cascade and the adaptive controller for several system disturbances are shown in Figure 14, Figure 15, Figure 16 and Figure 17.

It is noticeable from Figure 9 (left) and Figure 12 that all controllers oscillate following a perturbation in the biomass concentration. This is related to the operating point of the RAS and, by setting a new higher nitrate setpoint, it is possible to obtain a smoother response, as shown in Figure 18.

In this study, a control study of a recirculation aquaculture system is undertaken. Different control methodologies are tested in simulations for an industrial scale system. Both PID and linearizing controllers are capable of keeping the system stable when used with an anti-windup action. The PID controller gains can be calculated based on fish waste production (ammonia). The addition of a derivative action leads to a noticeable decrease in controller output oscillations. Nonetheless, the PID presents robustness issues when considering measurement noise. The linearizing controller is, however, able to overcome this problem and can also be further improved by adding an adaptive law to face possible model uncertainties. A cascade control strategy (combining PI and linearizing controllers) may also improve the control robustness to model uncertainties, compromising the tracking performance. The system has an operational region around which all the considered feedback strategies present oscillating responses. Operational conditions should then be changed to accommodate this phenomenon. The controllers show good robustness with respect to disturbances, such as the increase in ammonia production due to variations in the fish population. The control strategies discussed in this article are versatile and could be applied to other RAS configurations at different scales. Future perspectives could include the analysis of nitrite accumulation and the possibility to limit its concentration.

The following are available online at https://www.mdpi.com/2227-9717/8/10/1306/s1, Table S1: Stoichiometry for carbon oxidation, nitrification, and denitrification; Table S2: Process kinetics for carbon oxidation, nitrication, and denitrication.

Conceptualization: A.V.W.; methodology: L.D.; computer implementation: P.A.; numerical study: P.A. and L.D.; writing—original draft preparation: P.A. and L.D.; writing—review and editing: A.V.W.; supervision: L.D. and A.V.W. All authors have read and agreed to the published version of the manuscript.

The authors gratefully acknowledge the support of the WAGRALIM project NUTRIVERT funded by the Walloon Region.

The authors declare no conflict of interest.

- FAO. The State of World Fisheries and Aquaculture 2018: Meeting the Sustainable Development Goals; Food and Agriculture Organization of the United Nations: Rome, Italy, 2018; ISBN 9789251305621. [Google Scholar]
- Ruiz, P.; Vidal, J.M.; Sepúlveda, D.; Torres, C.; Villouta, G.; Carrasco, C.; Aguilera, F.; Ruiz-Tagle, N.; Urrutia, H. Overview and future perspectives of nitrifying bacteria on biofilters for recirculating aquaculture systems. Rev. Aquac.
**2019**, 12, 1478–1494. [Google Scholar] [CrossRef] - Bregnballe, J. A Guide to Recirculation Aquaculture: An Introduction to the New Environmentally Friendly and Highly Productive Closed Fish Farming Systems; Food and Agriculture Organization of the United Nations: Copenhagen, Denmark, 2015. [Google Scholar]
- Gutierrez-Wing, M.T.; Malone, R.F. Biological filters in aquaculture: Trends and research directions for freshwater and marine applications. Aquac. Eng.
**2006**, 34, 163–171. [Google Scholar] [CrossRef] - Pungrasmi, W.; Phinitthanaphak, P.; Powtongsook, S. Nitrogen removal from a recirculating aquaculture system using a pumice bottom substrate nitrification-denitrification tank. Ecol. Eng.
**2016**, 95, 357–363. [Google Scholar] [CrossRef] - Wik, T.E.; Lindén, B.T.; Wramner, P.I. Integrated dynamic aquaculture and wastewater treatment modelling for recirculating aquaculture systems. Aquaculture
**2009**, 287, 361–370. [Google Scholar] [CrossRef] - Liu, X.; Wang, H.; Yang, Q.; Li, J.; Zhang, Y.; Peng, Y. Online control of biofilm and reducing carbon dosage in denitrifying biofilter: Pilot and full-scale application. Front. Environ. Sci. Eng.
**2017**, 11, 4. [Google Scholar] [CrossRef] - Du, R.; Peng, Y.; Cao, S.; Li, B.; Wang, S.; Niu, M. Mechanisms and microbial structure of partial denitrification with high nitrite accumulation. Appl. Microbiol. Biotechnol.
**2015**, 4, 2011–2021. [Google Scholar] - Lee, P.G.; Lea, R.N.; Dohmann, E.; Prebilsky, W.; Turk, P.E.; Ying, H.; Whitson, J.L. Denitrification in aquaculture systems: An example of a fuzzy logic control problem. Aquac. Eng.
**2000**, 23, 37–59. [Google Scholar] [CrossRef] - Join, C.; Bernier, J.; Mottelet, S.; Fliess, M.; Rechdaoui-Guérin, S.; Azimi, S.; Rocher, V. A simple and efficient feedback control strategy for wastewater denitrification. IFAC-PapersOnLine
**2017**, 50, 7657–7662. [Google Scholar] [CrossRef] - Zúñiga, I.T.; Queinnec, I.; Vande Wouwer, A. Observer-based output feedback linearizing control strategy for a nitrification–denitrification biofilter. Chem. Eng. J.
**2012**, 191, 243–255. [Google Scholar] [CrossRef] - Wahab, N.A.; Katebi, R.; Balderud, J. Multivariable PID control design for activated sludge process with nitrification and denitrification. Biochem. Eng. J.
**2009**, 45, 239–248. [Google Scholar] [CrossRef] - Skogestad, S.; Grimholt, C. The SIMC method for smooth PID controller tuning. In PID Control in the Third Millennium; Springer: London, UK, 2012; pp. 147–175. [Google Scholar]
- Seborg, D.E. Process Dynamics and Control, 2nd ed.; John Wiley & Sons, Inc.: Hoboken, NJ, USA, 2003. [Google Scholar]
- Dochain, D. Bioprocess Control; John Wiley & Sons, Ltd.: Hoboken, NJ, USA, 2008. [Google Scholar]
- Dewasme, L.; Coutinho, D.; Vande Wouwer, A. Adaptive and Robust Linearizing Control Strategies for Fed-Batch Cultures of Microorganisms Exhibiting Overflow Metabolism. In Informatics in Control, Automation and Robotics; Cetto, J.A., Ferrier, J.L., Filipe, J., Eds.; Springer Berlin Heidelberg: Berlin/Heidelberg, Germany, 2011; pp. 283–305. [Google Scholar]
- Tebbani, S.; Lopes, F.; Celis, G.B. Nonlinear control of continuous cultures of Porphyridium purpureum in a photobioreactor. Chem. Eng. Sci.
**2015**, 123, 207–219. [Google Scholar] [CrossRef] - Aguilar-López, R. Input-Output Linearizing-type controller design with application to continuous bioreactor. Comptes Rendus de l’Académie Bulgare des Sciences: Sciences Mathématiques et Naturelles
**2016**, 70. [Google Scholar] - Henze, M.; Gujer, W.; Mino, T.; van Loosdrecht, M. Activated Sludge Models ASM1, ASM2, ASM2D and ASM3 (Scientific & Technical Reports, No. 9); IWA Publishing: London, UK, 2000. [Google Scholar]
- Thomas, S.L.; Piedrahita, R.H. Oxygen consumption rates of white sturgeon under commercial culture conditions. Aquac. Eng.
**1997**, 16, 227–237. [Google Scholar] [CrossRef] - Szczepkowski, M.; Szczepkowska, B.; Kolman, R. Comparison of oxygen consumption and ammonia excretion by siberian sturgeon (acipenser baeri drandt) and its hybrid with green sturgeon (acipenser medirostris ayres). Arch. Ryb. Pol.
**2000**, 8, 205–211. [Google Scholar] - Copp, J.B. The COST Simulation Benchmark: Description and Simulator Manual. COST Action 624 and COST Action 682; Office for Official Publications od the European Union: Luxembourg, 2002. [Google Scholar]
- Phillips, C.L.; Harbor, R.D. Feedback Control Systems, 4th ed.; Prentice-Hall, Inc.: Upper Saddle River, NJ, USA, 2000. [Google Scholar]
- Bastin, G.; Dochain, D. On-line estimation and adaptive control of bioreactors. Anal. Chim. Acta
**1991**, 243, 324. [Google Scholar] [CrossRef]

Corresponding | Description | ${\mathit{\vartheta}}_{\mathbf{waste}}$ | Units |
---|---|---|---|

component $\xi $ | |||

${S}_{I}$ | Inert soluble organic material | 994 | gCOD/h |

${S}_{S}$ | Readily biodegradable organic material | 0 | gCOD/h |

${X}_{I}$ | Inert particulate organic material | 994 | gCOD/h |

${X}_{S}$ | Slowly biodegradable substrate | $1.2\times {10}^{4}$ | gCOD/h |

${X}_{BH}$ | Active heterotrophic biomass | 0 | gCOD/h |

${X}_{NS}$ | Active ammonia oxidizing bacteria | 0 | gCOD/h |

${X}_{NB}$ | Active nitrite oxidizing bacteria | 0 | gCOD/h |

${X}_{P}$ | Part. products from biomass decay | $4.0\times {10}^{3}$ | gCOD/h |

${S}_{0}$ | Dissolved oxygen | $-6.1\times {10}^{3}$^{a} | gCOD/h |

${S}_{NO3}$ | Nitrate nitrogen | 0 | gN/h |

${S}_{NH}$ | Ammonium and ammonia nitrogen | 1.5$\times {10}^{3}$ | gN/h |

${S}_{ND}$ | Soluble biodegradable organic nitrogen | 355 | gN/h |

${X}_{ND}$ | Particulate biodegradable organic nitrogen | 355 | gN/h |

${S}_{Alk}$ | Alkalinity (as HCO_{3}^{−} equivalents) | 0 | gCOD/h |

${S}_{CO2}$ | Dissolved carbon dioxide | 8.4$\times {10}^{3}$ | gCO_{2}/h |

${S}_{P}$ | Phosphorus | 497 | gP/h |

${S}_{NO2}$ | Nitrite concentration | 0 | gN/h |

Process | $\mathit{G}\left(\mathit{s}\right)$ | ${\mathit{K}}_{\mathit{C}}$ | ${\mathit{\tau}}_{\mathit{I}}$ | ${\mathit{\tau}}_{\mathit{D}}$ | |
---|---|---|---|---|---|

SIMC PID settings | First-order | ${k}^{\prime}\frac{{e}^{-\theta s}}{s}$ | $\frac{1}{{k}^{\prime}}\frac{1}{{\tau}_{C}+\theta}$ | $min\left\{4({\tau}_{C}+\theta )\right\}$ | - |

Industrial-scale plant model | First-order | ${k}^{\prime}=-0.05$${\tau}_{1}=8.9\times {10}^{2}$$\theta =0$ | $\frac{1}{0.05}\frac{1}{{\tau}_{C}}$ | $min\left\{4{\tau}_{C}\right\}$ | - |

Parameter | Value | Parameter | Value |
---|---|---|---|

${r}_{N{H}_{4}}$ | $1.5\times {10}^{3}$ gNH_{4}−N/h | ${\tau}_{C}$ | $\frac{0.63}{0.36}=1.8$ h |

${V}_{case-study}$ | $4.2\times {10}^{3}$ m^{3} | ${K}_{C,max}$ | $-\frac{1}{0.05}\frac{1}{1.8}=-11$ L·m^{3}/(h·gNO_{3}−N) |

${r}_{NO{3}_{increase}}$ | 0.36 gNO_{3}−N/h/m^{3} | ${\tau}_{I}$ | $min\{0.3,4{\tau}_{C}\}=min\{8.9\times {10}^{2},7.2\}=7.2$ h |

Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |

© 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).