## 3 Results
### On-Line Software Sensor for Growth and Protein Synthesis Rates  
We implemented an on-line software sensor based on second-order super-twisting sliding mode observers from [PERSON] et al. (2016) to estimate the specific growth rate \(\mu\) and the protein synthesis rate \(\Pi\) expressed by the gene circuit. The only assumption required is for the culture to follow the dynamic mass balance in the bioreactor:  
\[ \begin{split}\dot{N}&=(\mu-D)N\\ \dot{p}&=\Pi-(\mu-D)p\end{split}  \tag{4}\]  
where \(N\) is the biomass expressed as number of particles (recall for one particle of _E. coli_ is approximately equal to one cell), \(p\left(\text{MEFL}\cdot\text{Particle}^{-1}\right)\) is the amount of synthesized protein per cell, \(D\) is the dilution rate, \(\mu\left(\text{min}^{-1}\right)\) is the specific growth rate of the bioreactor, and \(\Pi\left(\text{MEFL}\cdot\text{Particle}^{-1}\cdot\text{min}^{-1}\right)\) is the synthesis rate. The software sensor consists of a joint observer structure including two hierarchically coupled estimation subsystems: the first estimates \(\mu\) using the measured number of particles, while the second subsystem estimates \(\Pi\) using fluorescence measurements (in \(\text{MEFL}\cdot\text{Particle}^{-1}\)) and \(\mu\) provided by the first subsystems. Each estimation subsystem is implemented as a second-order super-twisting observer. This coupled configuration allows the system to reconstruct both unmeasured states (\(\mu\), \(\Pi\)) on-line and ensures finite-time convergence of the sensor. The complete software sensor is formulated as a single dynamical system composed of four state variables: \((z_{1},z_{2})\), which estimates \(\mu\), and \((z_{3},z_{4})\), which estimates \(\Pi\). The sensor was defined in the following system of equations:  
\[\left\{ \begin{array}{ll}\dot{z}_{1}=&\left(-\frac{D}{N}+\rho_{1}z_{2}+2\rho_ {1}\beta_{1}|\sigma_{1}|^{\frac{1}{2}}\text{sign}(\sigma_{1})\right)z_{1}\\ \dot{z}_{2}=&\alpha_{1}\text{sign}(\sigma_{1})\\ \dot{z}_{3}=&\left(\rho_{2}z_{4}+2\rho_{2}\beta_{2}|\sigma_{2}|^{\frac{1}{2}} \text{sign}(\sigma_{2})\right)-(z_{2}-D)z_{3}\\ \dot{z}_{4}=&\alpha_{2}\text{sign}(\sigma_{2})\\ \sigma_{1}=&\rho_{1}^{-1}\ln\left(\frac{x}{z_{1}}\right)\\ \sigma_{2}=&\frac{v-w}{w+\epsilon}\\ \dot{\mu}=&\rho_{1}z_{2}\\ \dot{\Pi}=&\rho_{2}z_{4}\end{array} \right. \tag{5}\]  
where \(z_{1}\) denotes the estimated number of particles, \(z_{2}\) is the unscaled estimation of the growth rate \(\mu\), \(z_{3}\) represents the estimated MEFL per particle count, \(z_{4}\) is the unscaled protein synthesis rate \(\Pi\), \(\epsilon\) is a regularization term (avoid division by zero), \(\sigma_{1}\) represents the sliding surfaces used to estimate \(\mu\), \(\sigma_{2}\) represents the sliding surfaces used to estimate \(\Pi\), \(v\) is the dynamic scaling of \(\rho\), \(w\) is the dynamic scaling of \(z_{3}\), and \(\dot{\mu}\) and \(\dot{\Pi}\) correspond to the estimated growth rate and protein synthesis rate, respectively. Notice that Equations (4) and (5) retain the dilution rate term \(D\) for the sake of generality. However, in batch mode, \(D=0\). Therefore, the equations will be simplified accordingly during the analysis in batch operation. Given that MEFL per particle unit has a high order of magnitude, \(\rho\) and \(z_{3}\) were scaled by the dynamic scaling factor \(\xi_{t}\) as shown in  
\[\left\{ \begin{array}{ll}v=&\frac{p}{\xi_{t}+\epsilon}\\ w=&\frac{z_{3}}{\xi_{t}+\epsilon}.\end{array} \right. \tag{6}\]The factor \(\xi_{t}\) was computed using a mathematical model based on an Exponential Moving Average (EMA) recursive digital filter:  
\[\xi_{t}=(1-\lambda)\xi_{t-1}+\lambda\psi \tag{7}\]  
with  
\[\psi=\max(\mid p\mid,\mid z_{3}\mid) \tag{8}\]  
where \(\psi\) is the new input value (in MEFL - Particle\({}^{-1}\)), \(\xi_{t-1}\) is the previous scaling factor value, and \(\lambda\in[0,1]\) is a smoothing factor that controls the influence of the new input on the updated value.