Performance evaluation of model detection filters

  • mdspec Computation of the weak structure matrix.
  • mdsspec Computation of the strong structure matrix.
  • mdperf Computation of the distance-matching performace.
  • mdmatch Computation of the distance-matching performace to a component model.
  • mdgap Computation of the noise gaps.
FaultDetectionTools.mdspecFunction
 S = mdspec(sysR::MDFilterIF; cdinp = false, atol, atol1 = atol, atol2 = atol, rtol = 0)

Compute the weak binary structure matrix S of a collection of model detection filters using the model detection filter internal form object sysR::MDFilterIF.

For an M × N array of filters sysR, S is an M × N binary array determined as follows. Let the (i,j)-th component filter sysR.sys[i,j] have the input-output form

 rij = Ruij(λ)*u + Rdij(λ)*dj + Rwij(λ)*wj + Rvij(λ)*vj ,

with the Laplace- or Z-transformed residual output rij, control inputs u, disturbance inputs dj, noise inputs wj, and auxiliary inputs vj, and with Ruij(λ), Rdij(λ), Rwij(λ) and Rvij(λ), the corresponding transfer function matrices. Then, S[i,j] = 1 if Ruij(λ) is nonzero for cdinp = false (default), or if [Ruij(λs) Rdij(λs)] is nonzero for cdinp = true. Otherwise, S[i,j] = 0.

If (Arij-λErij,Brij,Crij,Drij) is the descriptor realization of sysR.sys[i,j], then the keyword arguments atol1, atol2, and rtol, specify, respectively, the absolute tolerance for the nonzero elements of matrices Arij, Brij, Crij, Drij, the absolute tolerance for the nonzero elements of Erij, and the relative tolerance for the nonzero elements of Arij, Brij, Crij, Drij and Eirj. The default relative tolerance is nij*ϵ, where ϵ is the working machine epsilon and nij is the order of the system matrix of sysR.sys[i,j]. The keyword argument atol can be used to simultaneously set atol1 = atol and atol2 = atol.

FaultDetectionTools.mdsspecFunction
 S = mdsspec(sysR::MDFilterIF, freq; cdinp = false, MDGainTol = 0.01, 
             atol, atol1 = atol, atol2 = atol, rtol = 0, fast = true)

Compute, for a given set of real frequencies freq, the strong binary structure matrix S of a collection of model detection filters using the model detection filter internal form object sysR::MDFilterIF.

freq must contain a real frequency value or a vector of nf real frequencies which characterize the classes of persistent control and disturbance signals (default: freq = 0, i.e., characterizing constant signals) and defines the set Ω of complex frequencies which characterize the classes of persistent signals as follows: if f is a real frequency in freq, then the corresponding complex frequency λ in Ω is λ := im*f, for a continuous-time system, or λ := exp(im*f*abs(Ts)), for a discrete-time system with sampling-time Ts.

For an M × N array of filters sysR, S is an M × N binary array determined as follows. Let the (i,j)-th component filter sysR.sys[i,j] have the input-output form

 rij = Ruij(λ)*u + Rdij(λ)*dj + Rwij(λ)*wj + Rvij(λ)*vj ,

with the Laplace- or Z-transformed residual output rij, control inputs u, disturbance inputs dj, noise inputs wj, and auxiliary inputs vj, and with Ruij(λ), Rdij(λ), Rwij(λ) and Rvij(λ), the corresponding transfer function matrices. Then, S[i,j] = 1 if Ruij(λs) is nonzero for any λs ∈ Ω and cdinp = false (default), or if [Ruij(λs) Rdij(λs)] is nonzero for any λs ∈ Ω and cdinp = true. Otherwise, S[i,j] = 0.

MDGainTol = tol specifies an absolute threshold tol for the nonzero magnitudes of the frequency response gains (default: tol = 0.01).

The computation of minimal realizations of individual input-output channels relies on pencil manipulation algorithms, which employ rank determinations based on either the use of rank revealing QR-decomposition with column pivoting, if fast = true (default) or the more reliable SVD-decompositions if fast = false.

If (Arij-λErij,Brij,Crij,Drij) is the descriptor realization of sysR.sys[i,j], then the keyword arguments atol1, atol2, and rtol, specify, respectively, the absolute tolerance for the nonzero elements of matrices Arij, Brij, Crij, Drij, the absolute tolerance for the nonzero elements of Erij, and the relative tolerance for the nonzero elements of Arij, Brij, Crij, Drij and Eirj. The default relative tolerance is nij*ϵ, where ϵ is the working machine epsilon and nij is the order of the system sysR.sys[i,j]. The keyword argument atol can be used to simultaneously set atol1 = atol and atol2 = atol.

FaultDetectionTools.mdperfFunction
 mdperf(sysR::MDFilterIF; MDfreq, cdinp = false, rtolinf = 0.00001, 
        offset, atol, atol1 = atol, atol2 = atol, rtol = 0, fast = true) -> (mdgain, fpeak)

Compute the distance-mapping performance of a collection of model detection filters using the model detection filter internal form object sysR::MDFilterIF. For an M × N array of filters sysR, the M × N arrays of model detection performance gains mdgain and the corresponding peak frequencies fpeak are determined as follows. Let the (i,j)-th component filter sysR.sys[i,j] have the input-output form

 rij = Ruij(λ)*u + Rdij(λ)*dj + Rwij(λ)*wj + Rvij(λ)*vj ,

with the Laplace- or Z-transformed residual output rij, control inputs u, disturbance inputs dj, noise inputs wj, and auxiliary inputs vj, and with Ruij(λ), Rdij(λ), Rwij(λ) and Rvij(λ), the corresponding transfer function matrices. Then, the (i,j)-th performance gain is evaluated as mdgain[i,j] = ||Ruij(λ)||∞ if cdinp = false (default) or mdgain[i,j] = ||[Ruij(λ) Rdij(λ)]||∞ if cdinp = true and fpeak[i,j] contains the corresponding peak frequency.

If MDfreq = ω, where ω is a given vector of real frequency values, then each gain mdgain[i,j] represents the maximum of 2-norm pointwise gains evaluated for all frequencies in ω and fpeak[i,j] is the corresponding peak frequency.

The stability boundary offset, β, to be used to assess the finite poles which belong to the boundary of the stability domain can be specified via the keyword parameter offset = β. Accordingly, for a continuous-time system, these are the finite poles having real parts within the interval [-β,β], while for a discrete-time system, these are the finite pole having moduli within the interval [1-β,1+β]. The default value used for β is sqrt(ϵ), where ϵ is the working machine precision.

Pencil reduction algorithms are employed to compute the H∞-norms. These algorithms perform rank decisions based on rank revealing QR-decompositions with column pivoting if fast = true (default) or the more reliable SVD-decompositions if fast = false.

If (Arij-λErij,Brij,Crij,Drij) is the descriptor realization of sysR.sys[i,j], then the keyword arguments atol1, atol2, and rtol, specify, respectively, the absolute tolerance for the nonzero elements of matrices Arij, Brij, Crij, Drij, the absolute tolerance for the nonzero elements of Erij, and the relative tolerance for the nonzero elements of Arij, Brij, Crij, Drij and Eirj. The default relative tolerance is nij*ϵ, where ϵ is the working machine epsilon and nij is the order of the system sysR.sys[i,j]. The keyword argument atol can be used to simultaneously set atol1 = atol and atol2 = atol.

The keyword argument rtolinf = tol specifies the relative accuracy tol to be used to compute the infinity norms. The default value used is tol = 0.00001.

FaultDetectionTools.mdmatchFunction
mdmatch(sysQ::MDFilter, sysc::MDModel; MDfreq, minimal = false, rtolinf, offset, atol, atol1 = atol, atol2 = atol, rtol, fast = true) -> (mdgain,fpeak,mind)

Compute the distance-mapping performance vector mdgain achieved using the model detection filter object sysQ::MDFilter applied to a component model sysc::MDModel, the corresponding vector of peak frequencies fpeak, and the index mind of the component of mdgain for which the minimum gain value is achieved.

If the i-th filter sysQ.sys[i] has the transfer function matrix Qi(λ) and the component model sysc::MDModel has the partitioned transfer function matrix G(λ) = [Gu(λ) Gd(λ) Gw(λ) Gv(λ)] in accordance with the partitioned system inputs as controls, disturbances, noise and auxiliary inputs, respectively, then the distance-mapping performance of the i-th filter applied to the given component model is computed as mdgain[i] = || Ri(λ) ||∞, where Ri(λ) is the corresponding internal form

 Ri(λ) = Qi(λ) * | Gu(λ)  Gd(λ) Gw(λ) Gv(λ) | .
                 |  I     0     0     0     |

Minimal descriptor realizations are computed for Ri(λ) if minimal = true and a (possibly) non-minimal realization is determined if minimal = false (default).

The computation of minimal realizations of individual input-output channels relies on pencil manipulation algorithms, which employ rank determinations based on either the use of rank revealing QR-decomposition with column pivoting, if fast = true (default) or the more reliable SVD-decompositions if fast = false.

If (Ari-λEri,Bri,Cri,Dri) is the full order descriptor realization of Ri(λ), then the keyword arguments atol1, atol2, and rtol, specify, respectively, the absolute tolerance for the nonzero elements of matrices Ari, Bri, Cri, Dri, the absolute tolerance for the nonzero elements of Eri, and the relative tolerance for the nonzero elements of Ari, Bri, Cri, Dri and Eir. The default relative tolerance is ni*ϵ, where ϵ is the working machine epsilon and ni is the order of the realitation of Ri(λ). The keyword argument atol can be used to simultaneously set atol1 = atol and atol2 = atol.

FaultDetectionTools.mdgapFunction
 mdgap(sysR::MDFilterIF; MDfreq, cdinp = false, rtolinf = 0.00001, 
        offset, atol, atol1 = atol, atol2 = atol, rtol = 0, fast = true) -> (gap, β, γ)

Compute the noise gaps performance of a collection of model detection filters using the model detection filter internal form object sysR::MDFilterIF. For an M × N array of filters sysR, let the (i,j)-th component filter sysR.sys[i,j] have the input-output form

 rij = Ruij(λ)*u + Rdij(λ)*dj + Rwij(λ)*wj + Rvij(λ)*vj ,

with the Laplace- or Z-transformed residual output rij, control inputs u, disturbance inputs dj, noise inputs wj, and auxiliary inputs vj, and with Ruij(λ), Rdij(λ), Rwij(λ) and Rvij(λ), the corresponding transfer function matrices. Then, gap, β and γ are M-dimensional vectors, such that the i-th noise gap is evaluated as gap[i] = β[i]/γ[i], where β[i] = min(||Rij(λ)||∞ for i $\neq$ j) and γ[i] = ||Rwii(λ)||∞. Rij(λ) is defined as Rij(λ) = Ruij(λ) if cdinp = false (default) or Rij(λ) = [Ruij(λ) Rdij(λ)] if cdinp = true.

If MDfreq = ω, where ω is a given vector of real frequency values, then each gain β[i] represents the minimum of the maximum of 2-norm pointwise gains evaluated for all frequencies in ω.

The stability boundary offset, β, to be used to assess the finite poles which belong to the boundary of the stability domain can be specified via the keyword parameter offset = β. Accordingly, for a continuous-time system, these are the finite poles having real parts within the interval [-β,β], while for a discrete-time system, these are the finite pole having moduli within the interval [1-β,1+β]. The default value used for β is sqrt(ϵ), where ϵ is the working machine precision.

Pencil reduction algorithms are employed to compute the H∞-norms. These algorithms perform rank decisions based on rank revealing QR-decompositions with column pivoting if fast = true (default) or the more reliable SVD-decompositions if fast = false.

If (Arij-λErij,Brij,Crij,Drij) is the descriptor realization of sysR.sys[i,j], then the keyword arguments atol1, atol2, and rtol, specify, respectively, the absolute tolerance for the nonzero elements of matrices Arij, Brij, Crij, Drij, the absolute tolerance for the nonzero elements of Erij, and the relative tolerance for the nonzero elements of Arij, Brij, Crij, Drij and Eirj. The default relative tolerance is nij*ϵ, where ϵ is the working machine epsilon and nij is the order of the system sysR.sys[i,j]. The keyword argument atol can be used to simultaneously set atol1 = atol and atol2 = atol.

The keyword argument rtolinf = tol specifies the relative accuracy tol to be used to compute the infinity norms. The default value used is tol = 0.00001.