About
User Reference
C++ API
luafaudes
Developer
Links
libFAUDES online
libFAUDES

Sections

libFAUDES User Reference

The user reference provides libFAUDES documentation on faudes-types and faudes-functions relevant to users of libFAUDES based applicatione like e.g. luafaudes or DESTool. The user reference is complemented by the comprehensive and more technical C++ API documentation.

A good starting point for a first reading is the section CoreFaudes, which documents general purpose functions on generators, e.g. regular expressions. The remaining sections loosely correspond to libFAUDES plug-ins, which provide specialised faudes-types and faudes-functions to address specific approaches to the design or analysis of discrete event systems.

Sections present in this copy of libFAUDES are: CoordinationControl, CoreFaudes, Diagnosis, HioSys, IoSystem, Multitasking, Observer, Simulator, Synthesis (see also navigation on the left).

Types

Faudes-typed objects are characterised by their configuration data, which can be read from or written to a file. The corresponding file formats are based on sequences of tokens that form nested sections to hold sets or lists of strings or integers. For example, the alphabet Sigma = {alpha, beta, gamma} is represented as

<Alphabet> "alpha" "beta" "gamma" </Alphabet>

Faudes-types available in this copy of libFAUDES are:

AlphabetBasic alphabet with controllability attributes.
BooleanElemtary type to hold a boolean value true or false.
ColorSetSet of colors for marking the state of a colored generator
ComediDeviceAccess digital IO hardware within the comedi framework.
DeviceContainerMerge individual IO devices.
DeviceExecutorSimulation of synchronized timed automata, incl. physical events and time.
DiagnoserGenerator with state estimate attribute for event-diagnosis.
EventRelabelMapMap from indices to sets of indexes for re-labeling events.
EventSetBasic alphabet.
EventSetVectorVector of alphabets
FailureTypeMapSpecification of Failure Types
GeneratorBasic generator model G=(Sigma,Q,delta,Qo,Qm).
GeneratorVectorVector of generators
HioConstraintGenerator with I/O-constraint state and event attributes.
HioControllerGenerator with I/O-controller state and event attributes.
HioEnvironmentGenerator with I/O-environment state and event attributes.
HioPlantGenerator with I/O-plant state and event attributes.
IntegerElemtary type to hold a 32bit signed integer value.
IntegerVectorVector of integers
IoSystemGenerator with I/O system state and event attributes.
LoggingExecutorSimulation of synchronized timed automata, incl logging.
MtcSystemGenarator model woth colored markings.
ParallelExecutorBasic simulation of synchronized timed automata.
ProposingExecutorSimulation of synchronized timed automata, incl. stochastic execution.
SignalDeviceAbstract interface for signal based event detection and execution.
SimplenetDeviceNetwork based communication of events.
SpiDeviceSynchronize process image via serial interface.
StringElemtary type to hold an ASCII encoded string
SystemGenerator model G=(Sigma,Q,delta,Qo,Qm) with controllability attributes.
SystemVectorVector of systems
WagoDeviceAccess digital IO hardware by Wago Kbus interface.

Functions

Faudes-functions implement operations to be performed on faudes-typed parameters. Each faudes-function has one or more signatures to specify supported parameter types. For example, the function for the parallel composition of two generators has the following signature:

Signature:

Parallel(+In+ Generator G1, +In+ Generator G2, +Out+ Generator GRes)
Parallel(+In+ GeneratorVector GVec, +Out+ Generator GRes)

A parameter that remains constant during the execution of a function is referred to as an argument, indicated by +In+. A parameter, that does not affect the outcome of the function, but that does change its value during execution, is referred to as a result, indicated by +Out+. Other parameters are flagged +InOut+.

Faudes-functions available in this copy of libFAUDES are:

AccessibleDelete non-accessible states and transitions.
AlphabetDifferenceDifference of two alphabets.
AlphabetEqualityTests whether two alphabets match.
AlphabetExtractExtract alphabet from generator.
AlphabetInclusionTests whether an alphabet includes another alphabet.
AlphabetIntersectionIntersection over alphabets.
AlphabetLanguageGenerator with Lm(G)=Sigma.
AlphabetUnionUnion over Alphabets
AutomatonConvert generator to formal automaton.
CoaccessibleDelete non-coaccessible states and transitions.
CompleteDelete states that evolve into a terminal state.
DecentralizedDiagnoserComputes decentralized diagnosers for multiple local sites.
DecentralizedModularDiagnoserComputes decentralized diagnosers for systems that consist of multiple components.
DeterministicPowerset construction to enforce determinism.
EmptyLanguageSet generator to mark empty language.
EmptyStringLanguageGenerator with Lm(G)={epsilon}.
EventDiagnoserComputes event-diagnoser w.r.t. failure types.
FullLanguageGenerator with Lm(G)=Sigma*.
HioFreeInputEnforces free input for I/O dynamics by adding error behaviour.
HioShuffleShuffle-composition of two HioPlant systems.
HioSynthBasic I/O controller synthesis procedure, without parameter check.
HioSynthHierarchicalI/O-Controller synthesis, hierarchical version.
HioSynthMonolithicI/O-Controller synthesis, monolithic version.
InsertRelabeledEventsApply relabeling map to specified generator.
IntegerSumSum of integer arguments.
InvProjectInverse projection of marked and generated language.
IoFreeInputInserts transitions to obtain a free input.
IoSynthesisController synthesis for I/O systems.
IoSynthesisNBController synthesis for I/O systems (marked languages).
IsAccessibleTests a generator for accessibility.
IsCoDiagnosableTests for co-diagnosability w.r.t. local observations.
IsCoaccessibleTests a generator for coaccessibility.
IsCompleteTest completeness of a generator.
IsConditionalClosedTests for conditional closedness.
IsConditionalControllableTests for conditional controllability.
IsConditionalDecomposableTests for conditional decomposability.
IsControllableTests the controllablity condition.
IsDeterministicTest for determinsim.
IsEmptyLanguageTest Generator G for empty marked language Lm(G).
IsEventDiagnosableTests for event-diagnosability w.r.t. failure types.
IsHioConstraintFormTest for dynamics compatible with the formal definition of I/O constraints.
IsHioControllerFormTest for dynamics compatible the formal definition of I/O controllers.
IsHioEnvironmentFormTest for dynamics compatible the formal definition of the I/O environments.
IsHioPlantFormTest for dynamics compatible with the formal definition of I/O plants.
IsIndicatorEventDiagnosableTests for event-diagnosability w.r.t. failure types incl. indicator events.
IsInputLocallyFreeTest for the input to be locally free.
IsInputOmegaFreeTest for the input to be free in the behavioral sense.
IsIoSystemTest for basic I/O properties.
IsLanguageDiagnosableTests for language-diagnosability w.r.t. a specification language.
IsLocallyControlConsistentVerification of local control consistency (LCC).
IsLoopPreservingObserverTests if a given projection is a loop-preserving observer.
IsModularDiagnosableTests for modular diagnosability w.r.t. local specifications for each subsystem.
IsMsaObserverVerification of the msa-observer property.
IsMtcObserverVerification of the observer property.
IsMutuallyControllableTest mutual controllability of two generators
IsNaturalObserverVerification of the natural observer property.
IsNonblockingTest a generator/ two languages for being nonblocking.
IsNormalTests normality condition.
IsOmegaClosedTests a language for being omega-closed.
IsOmegaControllableTests controllablity condition.
IsOmegaTrimTests a generator for omega trimness.
IsOutputControlConsistentVerification of output control consistency (OCC).
IsPrefixClosedTests a language for being prefix-closed.
IsRelativelyMarkedTest for relative marking.
IsRelativelyOmegaClosedTest for relative omega-closedness.
IsRelativelyPrefixClosedTest for relative prefix-closedness.
IsStronglyCoaccessibleTests a colored generator for strong coaccessibility.
IsStronglyTrimTests a colored generator for strong trimness.
IsTrimTests a generator for trimness.
KleeneClosureCompute Kleene closure for given language.
LanguageComplementComputes the complement of a language.
LanguageConcatenateConcatenates two languages.
LanguageDiagnoserComputes event-diagnoser w.r.t. failure types.
LanguageDifferenceComputes the difference of two languages.
LanguageDisjointTests whether two languages are disjoint.
LanguageEqualityTests whether two languages are equal.
LanguageInclusionTests whether a languages includes another language.
LanguageIntersectionComputes the intersection of languages.
LanguageUnionComputes the union of languages.
LocalObservationConsistencyTests for local observation consistency.
LoopPreservingObserverCompute a loop-preserving observer from a given initial alphabet.
MarkAllStatesMark all states in generator.
ModularDiagnoserCompute diagnoser for subsystems with local specifications.
MsaObserverMarked string accepting (MSA) observer computation by alphabet extension.
MsaObserverLccMarked string accepting (MSA) observer computation with local control consistency (LCC) condition by alphabet extension.
MtcDeterministicPowerset construction to enforce determinism incl. colored markings.
MtcInvProjectInverse projection of colored languages.
MtcNaturalObserverCopmute a colored natural observer by extending a given high-level alphabet.
MtcParallelParallel composition of two colored genertors.
MtcProjectNatural projection of colored languages.
MtcProjectNonDetNatural projection of colored languages, non deterministic version.
MtcStateMinState spsce minimisation w.r.t. colored languages
MtcSupConComputes the supremal controllable sublanguage.
MtcSupConNBSupremal controllable sublanguage with colored marking nonblocking condition.
NaturalObserverExtensionNatural observer computation by alphabet extension.
NaturalObserverLccNatural observer computation with local control consistency (LCC) condition by alphabet extension.
NaturalObserverRelabelingNatural observer computation with event relabeling.
OmegaClosureCompute omega closure for given language.
OmegaParallelParallel composition with relaxed acceptance condition.
OmegaSupConNBSynthesis for omega-languages (experimental!).
OmegaTrimDelete states to achieve omega-trimness.
OptimalColorSetCompute an optimal subset of the colors that should be removed.
ParallelComputes the parallel composition of two or more generators.
PrefixClosureCompute prefix closure for given language.
ProductComputes the product composition of two genertors.
ProjectNatural projection of marked and generated language.
SelfLoopSelf loop with specified alphabet.
StateMinStateset minimization.
StronglyCoaccessibleDelete non-stronly-coaccessible states and transitions.
StronglyTrimDelete non-strongly-coaccessible and non-accessible states and transitions.
SupConComputes the supremal controllable sublanguage.
SupConCompleteComputes the supremal controllable and complete sublanguage.
SupConCompleteNBComputes the supremal controllable and complete sublanguage.
SupConNBComputes the supremal controllable sublanguage.
SupConNormComputes the supremal controllable and normal sublanguage.
SupConNormNBComputes the supremal controllable and normal sublanguage.
SupNormComputes the supremal normal sublanguage.
SupNormClosedComputes the supremal normal and closed sublanguage.
SupReduceCompute a reduced supervisor.
TrimDelete non-coaccessible and non-accessible states and transitions.
UniqueInitEnforce unique initial state.
ccTrimA bit more efficient trim operation based on graph algorithms.

Literature

The following list of references is assembled from the plug-ins available in this copy of libFAUDES. It is meant to acknowledge research contributions relevant to the implemented algorithms and may serve as a starting point for a deeper literature review.

[2011CD] J. Komenda, T. Masopust, J.H. van Schuppen: On Nonblockingness and Conditional Decomposability, manuscript.

[B1] J.C. Willems: Paradigms and Puzzles in the theory of dynamical systems, IEEE Transactions on Automatic Control, vol. 36, issue 3, pp. 258--294, 1991.

[B2] T. Moor, J. Raisch: Supvervisory control of hybrid systems within a behavioural framework, Special issue on hybrid systems, System and Control Letters, vol. 38:3, pp. 157-166, 1999.

[B3] T. Moor, K. Schmidt, Th. Wittmann: Abstraction-based control for not necessarily closed behaviours, Preprints of the 18th IFAC World Congress, pp. 6988-6993, 2011.

[C1] W.M. Wonham: Supervisory Control of Discrete-Event Systems, available at University of Toronto, 2009 (revised).

[C2] C.G. Cassandras, S. Lafortune: Introduction to Discrete Event Systems, 2007 (2nd ed).

[C3] E. Hopcroft, J.D. Ullman: Introduction to Automata Theory, Languages, and Computation, 1979.

[D1] M. Sampath, R. Sengupta, S. Lafortune, K. Sinnamohideen, and D. Teneketzis : Diagnosability of discrete-event systems , IEEE Transactions on Automatic Control, 40(9):1555-1575 , Sep. 1995 .

[D2] S. Jiang, Z. Huang, V. Chandra, and R. Kumar : A polynomial algorithm for testing diagnosability of discrete-event systems , IEEE Transactions on Automatic Control, 46(8):1318-1321, Aug. 2001 .

[D3] W. Qui and and R. Kumar : Decentralized failure diagnosis of discrete event systems , IEEE Transactions on Systems, men and cybernetics. Part A: Systems and Humans, 36(2):384-395 , Mar. 2006 .

[D4] C. Zhou, R. Kumar, R. Sreenivas : Decentralized modular diagnosis of concurrent discrete event systems , International Workshop on Discrete Event Systems pp. 388-393 , May 2008 .

[D5] T.-S. Yoo, H. E. Garcia : Diagnosis of behaviors of interest in partially observed discrete-event systems , System & Control Letters, 57(12):1023-1029 , Dec. 2008 .

[D6] O. Contant, S. Lafortune and D. Teneketzis : Diagnosability of Discrete Event Systems with Modular Structure , Discrete Event Dynamic Systems, 16(1):9-37 , Jan. 2006 .

[H1] S. Perk, T. Moor and K. Schmidt: Hierarchical Discrete Event Systems with Inputs and Outputs, Proceedings. 8th International Workshop on Discrete Event Systems (WODES06) , 2006.

[H2] S. Perk, T. Moor and K. Schmidt: Controller Synthesis for an I/O-Based Hierarchical System Architecture, Proceedings. 9th International Workshop on Discrete Event Systems (WODES08), 2008.

[H3] J.C. Willems: Paradigms and puzzles in the theory of dynamic systems, IEEE Transactions on Automatic Control, vol. 36, issue 3, pp. 258--294, 1991.

[H4] T. Moor, J. Raisch and J.M. Davoren: Admissibility criteria for a hierarchical design of hybrid control systems, Proceedings. IFAC Conference on the Analysis and Design of Hybrid Systems (ADHS03), 2003.

[H5] T. Jéron, H. Marchand, V. Rusu and V. Tschaen: Ensuring the conformance of reactive discrete-event systems using supervisory control, Proceedings. 42nd IEEE Conference on Decision and Control (CDC03), 2003.

[M1] M.H. de Queiroz, J.E.R. Cury, and W.M. Wonham: Multitasking supervisory control of discreteevent systems, Discrete Event Dynamic Systems, vol. 15, no. 4, pp. 375-395 , 2005.

[M2] M.H. de Queiroz and J.E.R. Cury: Modular Multi-tasking Supervisory Control of Composite Discrete Event Systems, IFAC World Congress , 2005.

[M3] K. Schmidt, M..H. de Queiroz and J.E.R.  Cury: Hierarchical and Decentralized Multitasking Control of Discrete Event Systems, Conference on Decision and Control, 2007.

[M4] K. Schmidt and J.E.R. Cury: Redundant Tasks in Multitasking Control of Discrete Event Systems, Workshop on Dependable Control of Discrete Event Systems,. Italy, 2009.

[O1] K.C. Wong and W.M. Wonham: On the computation of observers in discrete event systems, Discrete Event Dynamic Systems, vol. 14, no. 1, pp. 55-107, 2004.

[O2] K. Schmidt and C. Breindl: On maximal permissiveness of hierarchical and modular supervisory control approaches for Discrete Event Systems, available at Workshop on Discrete Event Systems, Goeteborg, Sweden, 2008.

[O3] K. Schmidt, Th. Moor, S. Perk: Nonblocking hierarchical control of decentralized discrete event systems, available at IEEE Transactions on Automatic Control, 53(10):2252-2265, 2008.

[O4] Th. Moor, K. Schmidt, S. Perk: Applied Supervisory Control for a Flexible Manufacturing System, available at Workshop on Discrete Event Systems, 2010.

[O5] K. Schmidt, Ch. Breindl: Maximally Permissive Hierarchical Control of Decentralized Discrete Event Systems, available at IEEE Transactions on Automatic Control,56(5), 2011.

[O6] L. Feng and W. Wonham: On the computation of natural observers in discrete-event systems, available at Discrete Event Dynamic Systems: Theory and Applications, 20(1):63-102, 2010.

[S1] P.J. Ramadge and W.M. Wonham: The Control of discrete event systems, Proceedings of the IEEE, vol 77, issue 1, pp. 81-98, 1989.

[S2] R.D. Brandt, V. Garg, R. Kumar, F. Lin, S.I. Marcus, W.M. Wonham: Formulas for Calculating Supremal Controllable and Normal Sublanguages, System & Control Letters, vol 15, no 2, pp. 111-117, 1990.

[S3] P.J. Ramadge: Some tractable supervisory control problems for discrete-event systems modeled by Buchi automata, IEEE Transactions on Automatic Control, vol 34, no 1, pp. 10-19, 1989.

[S4] R. Kumar, V. Garg, S.I. Marcus: On supervisory control of sequential behaviors, IEEE Transactions on Automatic Control, vol 37, no 12, pp. 1978-1985, 1992.

[S5] J.G. Thistle, W.M. Wonham: Supervision of Infinite Behavior of Discrete-Event Systems, SIAM Journal on Control and Optimization, vol 32, no, 4, pp. 1098 - 1113, 1994.

[S6] R. Su, W.M. Wonham: Supervisor Reduction for Discrete-Event Systems, Discrete Event Dynamic Systems, vol. 14, no. 1, 2004.

[S7] T.-S. Yoo, S. Lafortune, F. Lin: A Uniform Approach for Computing Supremal Sublanguages Arising in Supervisory Control Theory, Technical Report, Department of EECS, University of Michigan, 2002.

[S8] T.-S. Yoo, S. Lafortune: Solvability of Centralized Supervisory Control Under Partial Observation, Discrete Event Dynamic Systems, vol. 16, 2006.

[SCL2011] J. Komenda, T. Masopust, J.H. van Schuppen: Synthesis of controllable and normal sublanguages for discrete-event systems using a coordinator, Systems & Control Letters, 60(7), 492-502, 2011.

[WODES2010] J. Komenda, T. Masopust, J.H. van Schuppen: Synthesis of safe sublanguages satisfying global specification using coordination scheme for discrete-event systems, Workshop on Discrete Event Systems, 436-441, Berlin, Germany, 2010.

libFAUDES 2.20s --- 2011.10.12 --- with "synthesis-observer-observability-diagnosis-hiosys-iosystem-multitasking-coordinationcontrol-timed-simulator-iodevice-luabindings"