# Fluid Net Models: From Behavioral Properties to Structural Objects
## 3 Bifurcations: Operation Mode Properties
### A Transformation for the Bifurcation Analysis  
Unfortunately, as mentioned before, varying the production throughput of machines may lead to paradoxical throughput behaviors of the system, in which the increment of speed of machines or system resources leads to the decrease of the system throughput or abrupt changes of it, even leading to deadlocks. This can be explained using bifurcations. A _bifurcation_ of an equilibrium marking takes place when a change of the system parameters produces a change of the qualitative behavior of the equilibrium marking (see references [14,18] for technical details). For instance, due to the variation of a firing rate (a parameter of the dynamic matrices of a TCPN system), the equilibrium marking can pass from stable to unstable. This can be verified using the eigenvalues of the dynamic matrices \(\mathbf{C}\mathbf{\Lambda}\mathbf{\Pi}_{C}\) and observing their relocation from the left half complex plane to the right half complex plane. The conservation marking laws imposed by the P-flows fix some eigenvalues to zero, making them independent from firing rate variations. Thus, the equilibrium marking bifurcation analysis may be performed on a reduced matrix, where the zero eigenvalues are not considered. This can be easily done by using the following _similarity_ transformation [14]:  
\[\mathbf{T}= \begin{bmatrix}\mathbf{T}_{1}\\ \mathbf{B}_{y}\mathbf{{}^{T}}\end{bmatrix} , \tag{7}\]where \(\mathbf{B}_{y}\) is a matrix composed of a basis of the P-flows and \(\mathbf{T}_{1}\) is an adequate matrix, such that \(\mathbf{T}\) is invertible, and \(\mathbf{T}^{-1}= \begin{bmatrix}\mathbf{z}_{1}&\mathbf{z}_{y}\end{bmatrix} \). Hence, the coordinate change is \(\bar{\mathbf{m}}=\mathbf{T}\mathbf{m}\) and the marking derivative in the new coordinates is:  
\[\hat{\mathbf{m}}=\mathbf{T}\mathbf{C}\mathbf{\Lambda}\mathbf{\Pi}_{k}\mathbf{T}^{-1}\bar{\mathbf{m}},\]  
and can be decomposed as:  
\[ \begin{bmatrix}\hat{\mathbf{m}}_{1}\\ \hat{\mathbf{m}}_{y}\end{bmatrix} = \begin{bmatrix}\mathbf{T}_{1}\mathbf{C}\mathbf{\Lambda}\mathbf{ \Pi}_{k}\mathbf{z}_{1}&\mathbf{T}_{1}\mathbf{C}\mathbf{\Lambda}\mathbf{\Pi}_{k}\mathbf{z}_{y}\\ \mathbf{0}&\mathbf{0}\end{bmatrix}\begin{bmatrix}\bar{\mathbf{m}}_{1}\\ \bar{\mathbf{m}}_{y}\end{bmatrix} . \tag{8}\]  
According to this transformation, the eigenvalues of \(\mathbf{T}_{1}\mathbf{C}\mathbf{\Lambda}\mathbf{\Pi}_{k}\mathbf{z}_{1}\) are those of \(\mathbf{C}\mathbf{\Lambda}\mathbf{\Pi}_{k}\) not associated with the P-flows. Now, this _reduced system_\(\mathbf{T}_{1}\mathbf{C}\mathbf{\Lambda}\mathbf{\Pi}_{k}\mathbf{z}_{1}\) is used to study if a loss of hyperbolicity occurs by varying the firing rates \(\lambda\). The following definition provides a formal statement of these concepts. **Definition 5** ([14]). : _An equilibrium marking, \(\mathbf{m}_{\mathbf{c}}\in\mathcal{R}_{\mathcal{C}}\), is said to be hyperbolic if none of the eigenvalues of the dynamic matrix \(\mathbf{C}\mathbf{\Lambda}\mathbf{\Pi}_{\mathcal{C}}\) lie on the imaginary axis. The equilibrium marking bifurcates when, due to varying a parameter \(\mathbf{\Lambda}[t_{j}]=\lambda_{j}\), it loses hyperbolicity._  
Varying the firing rates of transitions, it is possible to change the eigenvalues of \(\mathbf{T}_{1}\mathbf{C}\mathbf{\Lambda}\mathbf{\Pi}_{k}\mathbf{z}_{1}\). If the system loss hyperbolicity, a change in the qualitative behavior of the system occurs. For instance, if the marking of a TCPN system is evolving in a region in which all the eigenvalues of the dynamic matrix (different from the associated with P-semiflows) have a negative real part, the marking will reach zero if it evolves in the same region, reaching a deadlock in the system. A slight variation of the firing rates can change this behavior, so that one of the eigenvalues relies on the imaginary axis. The marking evolving in such region cannot reach zero, thus the equilibrium throughput of the system will be different from zero.