Skip to main content
Log in

State Observer for DES Under Partial Observation with Time Petri Nets

  • Published:
Discrete Event Dynamic Systems Aims and scope Submit manuscript

Abstract

This paper deals with a state observation approach for Discrete Event Systems with a known behavior. The system behavior is modeled using a Time Petri Net model. The proposed approach exploits temporal constraints to assess the system state and therefore detect and determine faults given partial observability of events. The goal here is to track the system state and to identify the event scenarios which occur on the system. Our approach uses the class graph of the Time Petri Net which models the complete system behavior to develop a state observer which is a base to perform online fault detection and diagnosing.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

Explore related subjects

Discover the latest articles and news from researchers in related subjects, suggested using machine learning.

Notes

  1. Many properties of TPN are proved only with intervals in ℚ

References

  • Berthomieu B, Diaz M (1991) Modeling and verification of time dependent systems using Petri nets. IEEE Trans Software Eng 17:259–273

    Article  MathSciNet  Google Scholar 

  • Berthomieu B, Ribet PO, Vernadat F (2004) The tool TINA–construction of abstract state spaces for petri nets and time petri nets. Int J Prod Res 42:2741–2756

    Article  MATH  Google Scholar 

  • Boel RK, Jiroveanu G (2004) Distributed contextual diagnosis for very large systems. In 17th workshop on discrete event systems (WODES’04). Reims, France

  • Chatain T, Jard C (2005) Time supervision of concurrent systems using symbolic unfolding of time Petri nets. In: International conference on formal modeling and analysis of time systems. Uppsala, Sweden

  • Diaz M (2001) Les réseaux de Petri, modèles fondamentaux, Hermès

  • Ghazel M, Bigand M, Toguyéni AKA (2005) Exploitation des contraintes temporelles pour le suivi temps-réel des SEDs. Journal Européen des Systèmes Automatisés (JESA) 39:143–158

    Article  Google Scholar 

  • Ghazel M, Toguyéni A, Bigand M (2006) A semi-formal approach to build the functional graph of an automated production system for supervision purposes. In: Internation journal of computer integrated manufacturing (IJCIM), vol 19. Taylor & Francis, London, pp 234–247

    Google Scholar 

  • Lafortune S, Sampath M (2000) Discrete event systems approach to failure diagnosis: theory and applications. In: 11th international workshop on principles of diagnosis

  • Merlin P (1974) A study of the recoverability of computer system. PhD thesis, University of California

  • Pandalai DN, Holloway LE (2000) Template languages for fault monitoring of discrete event processes. IEEE Trans Automat Contr 45:868–882, May

    Article  MATH  MathSciNet  Google Scholar 

  • Pradin B, Valette R (2001) Accessibilité de marquage et logique linéaire dans un réseau de Petri t-temporel, Journ’ees Formalisation des Activités Concurrentes, FAC’2000, CERT-IRIT-LAAS, Toulouse 18–19 mai , pp 123–134

  • Sampath R, Sinnamohideen K, Lafortune S, Teneketzis D (1996) Failure diagnosis using discrete event models. IEEE Trans Control Syst Technol 4:105–124

    Article  Google Scholar 

  • Toguyéni A, Craye E, Gentina JC (1997) Time and reasoning for on-line diagnosis of failures in flexible manufacturing systems. In: Proceedings of the 15th IMACS world congress on scientific computation, modeling, and applied mathematics, vol. 6. Berlin, Germany, pp 709–714

  • Tripakis S (2002) Fault diagnosis for timed automata. In: Formal techniques in real time and fault tolerant systems, LNCS2469, Springer, New York

    Google Scholar 

  • Ushio T, Onishi I, Okuda K (1998) Fault detection based on Petri net models with faulty behaviors. In: Proceeding of IEEE international conference on systems, man, and cybernetics, pp 113–118

  • Zad SH, Kwong RH, Wonham WM (1999) Fault diagnosis in timed discrete-event systems. In: 38th conference on decision & control. Phoenix, Arizona, USA, pp. 1756–1761

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mohamed Ghazel.

Appendices

Appendix 1 Illustration of the enumerative method

We will illustrate the utilization of the enumerative method in the accessibility analysis through the example shown in Fig. 7.

Fig. 7
figure 7

Illustrative example

The initial class c 0 of this system is characterized by the marking M 0 = (1,0,0,1,0) and by a firing domain which is the resolution of the following linear system: \(\left\{ \begin{array}{l} 2\leq \tau_1\leq 5\\ 2\leq \tau_3\leq 3\\ 0\leq \tau_4\leq 3\\ \end{array} \right.\)

If t 1 fires from c 0 (between 2 and 3 \(\text{tu}\), t 1 cannot fire the first between 3 and 5 \(\text{tu}\), because at the date 3, the maximum bound of the firing interval of t 3 is reached, it is the case too for t 4), the system state reaches the class c 1 characterized by a marking M 1 = (0,1,0,1,0) and by the following linear system: \(\left\{ \begin{array}{l} 0\leq \tau_2\leq 3\\ 0\leq \tau_4\leq 1\\ \end{array} \right.\)

Similarly, t 2 can fire from c 1 between 0 and 1 \(\text{tu}\). It would lead the system state to the class c 2 characterized by a marking M 2 = (0,0,1,1,0), and by the firing domain which is the solution of the following linear system: \(\left\{ \begin{array}{l} 0\leq \tau_4\leq 1\\ \end{array} \right.\) Here we did not represent all of the reachable classes.

Appendix 2 Sequence duration

The technique evoked above consists in applying an algorithm similar to the one presented in Section 3.2.2 for each transition t i in the sequence s. However, instead of removing the variable τ i corresponding to the fired transition t i in the 3rd step of this algorithm, this variable will just be replaced by a new variable θ i . Replacing the τ i variable by the θ i one is the trick which will allow us to keep a trace of the history of all previous fired transitions. Thus θ i becomes a parameter in the linear system of the class obtained after the firing of t i and possibly of the following classes reached as a result of the realization of s.

Hence, the linear system corresponding to the firing domain of the last obtained class will contain as many parameters θ i as transitions in the considered sequence s. Any solution \(\underline{\theta}=(\theta_1,\dots, \theta_n)\) of this linear system represents a sequence of possible relative times for a DFS whose support is s.

Furthermore, the complete duration (or length) of s can be calculated by adding all values θ i of the solution \(\underline{\theta}\) found. In fact, it consists in adding up all relative times θ i . The bounding of the complete duration is made by searching a lower and an upper limit to all sums ∑  i θ i of all solutions \(\underline {\theta}\) of the linear system resulting from the application of the algorithm.

Let us note that this technique provides exactly the same result acquired if one applies the linear logic technique proposed by Pradin and Valette (2001).

Thanks to the technique discussed above, the checking of temporal properties, like temporal framing of the firing sequence durations, or establishing the time interval during which the system has a given marking, becomes possible. In this way, our estimator can be enriched with additional information.

An illustration of this technique is discussed below. The first chosen example (Fig. 8) is simple. Let us try to calculate the duration of t 1.t 2 sequence.

Fig. 8
figure 8

Sequence duration 1

In the initial state, the system state can be represented by c 0 class characterized by:

  • the marking M 0 = (1,0,0,0)

  • the firing domain solution of the following linear system: \(\left\{ \begin{array}{l} 2\leq \tau_1\leq 5\\ \end{array} \right.\)

Firing of t 1 from c 0 (between 2 and 5 \(\text{tu}\)) leads the system state to the class c 1 characterized by:

  • the marking M 1 = (0,1,0,0)

  • the following linear system: \(\left\{ \begin{array}{l} 2\leq \theta_1\leq 5\\ 0\leq \tau_2\leq 3\\ \end{array} \right.\)

Let us note that the variable τ 1 is abandoned, but this variable is replaced by variable θ 1 in the first line of the new linear system.

Similarly, firing of t 2 from c 1 between 0 and 3 \(\text{tu}\) leads the system state to the class c 2 characterized by:

  • the marking M 2 = (0,0,1,0)

  • a firing domain relating to the following linear system: \(\left\{ \begin{array}{l} 2\leq \theta_1\leq 5\\ 0\leq \theta_2\leq 3\\ 0\leq \tau_3\leq 3\\ \end{array} \right.\)

Here, one just replaced τ i variables with θ i ones (in this case τ 2 by θ 2), and a new variable τ 3 corresponding to the enabling of t 3 appears. Also it can be noted that at the end of sequence t 1.t 2, there are as many variables θ i as transitions in this sequence.

The resolution of the linear system of c 2 gives us the following bounds of sequence t 1.t 2 duration: 2 ≤ θ 1 + θ 2 ≤ 8

In fact, it is identical to sum the minimal limits of the static firing intervals of t 1 and t 2 on the left and the maximal limits on the right. That can be explained by the fact that there is no parallelism in this first example. Let us introduce now a more complex example (Fig. 9) that generalizes the way to calculate the temporal window of a sequence. In this example, the TPN structure is the same as in Fig. 8, but with a new initial marking. The initial state can be represented by c 0 class characterized by:

  • the marking M 0 = (1,0,1,0)

  • the firing domain resolution of the following linear system: \(\left\{ \begin{array}{l} 2\leq \tau_1\leq 5\\ 0\leq \tau_3\leq 3\\ \end{array} \right.\)

Firing of t 1 from c 0 between 2 and 3 \(\text{tu}\) (because when \(\text{tu}\) 3 is reached, t 3 must inevitably fire) leads the system state to the c 1 class characterized by:

  • the marking M 1 = (0,1,1,0)

  • the linear system: \(\left\{ \begin{array}{l} 2\leq \theta_1\leq 3\\ 0\leq \tau_2\leq 3\\ 2\leq \theta_1+\tau_3\leq 3\\ \end{array} \right.\)

Fig. 9
figure 9

Sequence duration 2

In the same way, firing of t 2 from c 1 between 0 and 1 \(\text{tu}\) leads the system state to class c 2 characterized by:

  • the marking M 2 = (0,0,2,0)

  • the linear system below: \(\left\{ \begin{array}{l} 2\leq \theta_1\leq 3\\ 0\leq \theta_2\leq 1\\ 0\leq \theta_1+\theta_2+\tau_3\leq 3\\ \end{array} \right.\)

The resolution of the above linear system gives the following framing of the sequence t 1.t 2: 2 ≤ θ 1 + θ 2 ≤ 3

One can see clearly here that the endpoints of the sequence duration do not correspond to the respective sums of the firing interval limits of t 1 and t 2.

Appendix 3 Estimator structure making algorithm

The algorithm discussed below allows us to get the skeleton of our estimator. In this first algorithm, N denotes the current node under development, and NODES_TO_BE_TREATED the set of nodes which remain to be processed (search of the list of successor nodes). In addition, TREATED_NODES is the set of nodes which were already treated.

The set of nodes of the estimator is obtained by following the steps below:

  1. (1)

    /* initialization */

    {

    •    NODES_TO_BE_TREATED and TREATED_NODES are initially empty.

    •    create the initial node N 0 which contains \(\{c_0\}\cup\mathcal{UR}(c_0)\), add N 0 to NODES_TO_BE_TREATED.

    }

  2. (2)

    /* recursive search of successor nodes */

    while there are some nodes to be treated (NODES_TO_BE_TREATED ≠ ∅)

    {

    1. (a)

      •    pick a node N from NODES_TO_BE_TREATED.

      •    add N to TREATED_NODES.

    2. (b)

      compute the set \(T_{N-\text{obs}-\text{next}}\) of transitions in \(T_\text o\) which can fire from a given class in N.

    3. (c)

      compute the set \(E_{N-\text{obs}-\text{next}}\) of observable events which can occur from a state class in N (\(E_{N-\text{obs}-\text{next}}=evt(T_{N-\text{obs}-\text{next}})\)).

      /* \(T_{N-\text{obs}-\text{next}}\) and \(E_{N-\text{obs}-\text{next}}\) are two sets in the mathematical sense of the term. That means an element does not repeat */

    4. (d)

      /* determination of the reached node by the occurrence of an event e i in \(E_{N-\text{obs}-\text{next}}\) from N */

      for each event e i in \(E_{N-\text{obs}-\text{next}}\):

      {

      1. (i)

        compute the set S i of all classes c j reached from a class in N, after the occurrence of e i (the firing of a transition corresponding to e i ), as well as the classes reached after an unobservable sequence from a class in S i (\(\mathcal{UR}(S_i)\)).

      2. (ii)

        if there is no node N i with \(S_i\cup \mathcal{UR}(S_i)\) as set off classes,

            •    create a new node N i with \(S_i\cup \mathcal{UR}(S_i)\) as set off classes,

            •    add N i to NODES_TO_BE_TREATED.

      3. (iii)

        /* N i becomes a successor node to N */

        add (N i ,e i ) to NEXT(N).

      }

    }

Appendix 4 The complete Estimator building algorithm

  1. (1)

    {

    •    NODES_TO_BE_TREATED \(\longleftarrow \emptyset\) and TREATED_NODES \(\longleftarrow \emptyset\)

    •    create a node N 0

    •    \(\text{SEC}(N_0)\) \(\longleftarrow \{c_0\}\) and \(\text{SSC}(N_0)\) \(\longleftarrow\) \(\mathcal{UR}\)(c 0)

    }

  2. (2)

    add N 0 to NODES_TO_BE_TREATED

  3. (3)

    while (NODES_TO_BE_TREATED ≠ ∅)

    {

    1. (a)

      •    \(N\longleftarrow\) pick a node from NODES_TO_BE_TREATED

      •    NEXT(N) \(\longleftarrow\ \emptyset\)

      •    add N to TREATED_NODES

    2. (b)

      compute \(T_{N-\text{obs}-\text{next}}\) and \(E_{N-\text{obs}-\text{next}}=evt(T_{N-\text{obs}-\text{next}})\)

    3. (c)

      repeat for each class c i  ∈ \(\text{SEC}(N)\):

      •    determine the set \(\text{SCS}^{c_i}\) as well as the attributes (duration interval and destination class) of each sequence in \(\text{SCS}^{c_i}\)

      •    add the elements of \(\text{SCS}^{c_i}\) to the candidate sequences table of c i while ordering them in the increasing order of the maximum bounds of the duration intervals

    4. (d)

      repeat for each event \(e_k \in E_{N-\text{obs}-\text{next}}\):

      {

      1. (i)

        compute:

        \(\text{SEC}_k\)= {f(c i ,s.t j ); c i  ∈ \(\text{SEC}(N)\), \(t_j\in tr(e_k)\cap T_{N-\text{obs}-\text{next}}\) and \(s\in T_\text{uo}^*\cup\epsilon\) such that s.t j  ∈ \(\text{SCS}^{c_i}\)}

      2. (ii)

        /* if the set SEC k does not correspond to any set of entry classes of an already established node, create a new node with SEC k as set of entry classes, or else add the node with SEC k as set of entry classes to set of successor nodes of N */

                ∙ repeat for all N i  ∈ NODES_TO_BE_TREATED ∪ TREATED_NODES:

                   if \(\text{SEC}(N_i)\) = \(\text{SEC}_k\), then:

                           − N k N i

                           − goto 3d.iii

                ∙ create a new node N k

                ∙ \(\text{SEC}(N_k) \longleftarrow \text{SEC}_k\), \(\text{SSC}(N_k)\) \(\longleftarrow\) \(\mathcal{UR}(\text{SEC}_k)\)

      3. (iii)

        add (N k ,e k ) to NEXT(N)

      4. (iv)

        repeat for each entry class c l  ∈ \(\text{SEC}(N_k)\):

                        ∙ repeat for each transition t j  ∈ tr(e k ) ∩ \(T_{N-\text{obs}-\text{next}}\):

                                − add in the table of previous sequences of c l all the sequences of \(\text{SCS}_{N}^{t_j}\) which have c l as destination class.

                                   With each of these sequences, associate its respective attributes (duration interval and origin class)

      5. (v)

        if \(N_k\not\in\) TREATED_NODES ∪ NODES_TO_BE_TREATED, then:

                        ∙ add N k to NODES_TO_BE_TREATED.

    }

    }

Appendix 5 Proof of the proposition

Proposition 1

At any given time, the Estimator node containing the system state can be determined with certainty.

Proof

In order to prove this result, we will proceed by induction. The idea is that we split the follow-up duration in intervals ]θ i ,θ i + 1] where θ 0 = 0 and ∀ i > 0, θ i is the occurrence time of the \(i^\text{th}\) observable event, which will be denoted e i for simplicity. The sampling of the follow-up duration in intervals makes possible using a proof by induction while reasoning on each of these intervals.□

Initialization:

  • At t = 0, the system state is in the c 0 class of the initial node N 0.

  • in ]θ 0 = 0,θ 1[: no (observable) event was detected yet. Thus, the scenarios which could occur in this interval are of the form \(\sigma\in\Sigma_\text{uo}\cup \epsilon\). In the TPN model, this corresponds to the firing of the transition sequence \(s=tr(\sigma)\in T_\text{uo}^*\cup\epsilon\). Consequently, the system state reached one of the classes of the set:

    $$ \begin{array}{ll} E_0&=\{f(c_0,s)\neq\emptyset,s\in T_\text{uo}^*\cup\epsilon\}\\ &= \{f(c_0,\epsilon)\}\cup\{f(c_0,s)\neq\emptyset,s\in T_\text{uo}^*\}\\ &= \{c_0\}\cup\mathcal{UR}(c_0)\\ &= \text{SEC}(N_0)\cup\mathcal{UR}(\text{SEC}(N_0))\\ &= \text{SEC}(N_0)\cup \text{SSC}(N_0)\end{array}$$

    It is about the set of classes of N 0 \(\Longrightarrow\) The system state is then in the node N 0 (can be represented by one of the classes of N 0) during this period.

  • At t = θ 1: i.e when e 1 occurs:

    We can affirm that the scenario which occurred since θ 0 = 0 is of the form σ.e where \(\sigma\in\Sigma_\text{uo}^*\cup\epsilon\). Thus, the system state is in one of classes of:

    $$ \begin{array}{ll} E_1&=\{f(c_0,s.t),s\in T_\text{uo}^*\cup\epsilon,t\in tr(e_1) \textrm{ such that }f(c_0,s.t)\neq\emptyset\}\\ &= \{f(c_i,s.t),c_i\in \text{SEC}(N_0), t\in tr(e_1)\cap T_{N_0-\text{obs}-\text{suiv}}, s\in T_\text{uo}^*\cup\epsilon\\ &{\kern13pt}\textrm{ such that }\ s.t\in \text{ESC}^c\}\\ &= \text{SEC}(f_N(N_0,e_1)) \end{array} $$

    Then, the system state is in one of the entry classes of the node successor of N 0 by the arc labeled with e 1.

Recurrence relation:

Suppose that the property is satisfied until the \(n^\text{th}\) order, that is we are able to determine exactly in what node the system state is during the interval ]θ 0 = 0,θ n ], and let us prove that we can determine the node in which the system state is, at each instant of ]θ n ,θ n + 1]. For this, let us denote N n as the node reached following the occurrence of e n , i.e at θ n .

  • during ]θ n ,θ n + 1[: no observable event occurred. Thus, the set of scenarios which could occur are of the form \(\sigma\in\Sigma_\text{uo}\cup \epsilon\). In the TPN model, this corresponds to the firing of the sequence transition \(s=tr(\sigma)\in T_\text{uo}^*\cup\epsilon\). then, the system state reached one of the classes of the set:

    $$ \begin{array}{ll} E_n&=\big\{f(c_i,s)\neq\emptyset, c_i\in \text{SEC}(N_n),s\in T_\text{uo}^*\cup\epsilon\big\}\\[2pt] &= \big\{f(c_i,\epsilon),c_i\in \text{SEC}(N_n)\big\}\cup\big\{f(c_i,s)\neq\emptyset, c_i\in \text{SEC}(N_n),s\in T_\text{uo}^*\big\}\\[2pt] &= \big\{c_i\in \text{SEC}(N_n)\big\}\cup\mathcal{UR}\{c_i\in \text{SEC}(N_n)\big\}\\[2pt] &= \text{SEC}(N_n)\cup\mathcal{UR}(\text{SEC}(N_n))\\[2pt] &= \text{SEC}(N_n)\cup \text{SSC}(N_n)\end{array}$$

    It is about the set of classes of N n \(\Longrightarrow\) Hence, the system state is in the node N n (in one of the classes of N n ) during this period

  • At t = θ n + 1: i.e when e n + 1 occurs:

    We can affirm that the scenario which occurred since θ n is of the form σ.e n + 1 where \(\sigma\in\Sigma_\text{uo}^*\cup\epsilon\). Thus, the system state is in one of the classes of:

    $$ \begin{array}{ll} E_{n+1}&=\big\{f(c_i,s.t),c_i\in \text{SEC}(N_n), s\in T_\text{uo}^*\cup\epsilon,t\in tr(e_{n+1})\textrm{ such that }f(c_i,s.t) \neq\emptyset\big\}\\[3pt] &= \big\{f(c_i,s.t),c_i\in \text{SEC}(N_n), t\in tr(e_{n+1}) \cap T_{N_n-\text{obs}-\text{suiv}}, s\in T_\text{uo}^*\cup\epsilon\\[3pt] &{\kern12pt} \textrm{ such that }\ s.t\in \text{ESC}^{c_i}\big\}\\[3pt] &= \text{SEC}(f_N(N_n,e_{n+1}))\end{array}$$

    Then at θ n + 1, the system state reaches one of the entry classes of the node successor of N n by the arc labeled with e n + 1.

Conclusion. At each moment of the follow-up process, the algorithm determines with certainty the estimator node which the system state is in.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ghazel, M., Toguyéni, A. & Yim, P. State Observer for DES Under Partial Observation with Time Petri Nets. Discrete Event Dyn Syst 19, 137–165 (2009). https://doi.org/10.1007/s10626-009-0060-0

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10626-009-0060-0

Keywords

Profiles

  1. Mohamed Ghazel