| |
libFAUDES
Sections
Functions
|
Normal SublanguageFunctions related to the notion of normality.
Given two languages L and K over a common alphabet Sigma,
The definition addresses the situation were K is the closed-loop behaviour for a plant which is modelled by L and some supervisor that only observs events from Sigma0, Sigma0 ⊇ Sigma_c. The projection P0(K) can be interpreted to model a supervisor with intended closed-loop behaviour K, while Pinv0(P0(K)) represents the effect the supervisor actually takes on the plant. ExampleConsider the very-simple machine example and assume that all events but beta_1 are reported to the supervisor, i.e. Sigma_o={alpha_1, alpha_2, beta_2}. When in the case of restricted observation all controllable events are observable anyway, it is nearby to define a supervisor S0 on the alphabet Sigma0. A first candidate is the natural projection of the intended closed-loop behaviour L(S0) = P0(Closure(L(S))). The supervisor S0, however, will in adition to the events from Sigma0 at any time enable all unobservable events, i.e. beta_1. Thus, the actual closed-loop behaviour under restricted observation is given by Pinv0(L(S0)) cap L(G). If Closure(S) happened to be normal, the intended closed-loop behaviour would be achieved. However, in our example Closure(S) is not normal w.r.t L(G) and Sigma0:
Note that the candidate closed-loop at state 2 allows machine M2 to pick up a workpiece from the buffer which at that state is empty. This clearly violates the specification. When considering the same scenario but with Sigma_o={alpha_1, beta_1, alpha_2}, i.e. beta_2 is the only unobservable event, in fact Closure(S) turns out to be normal and we have Pinv0(L(S0)) ∩ L(G) = Closure(S). SupNormComputes the supremal normal and closed sublanguage.
Signature:
SupNorm(+In+ Generator L, +In+ EventSet AObs, +In+ Generator K, +Out+ Generator GRes) Detailed description:
SupNorm calculates the supremal sublanguage
of the closed language K (prefix closure of the language
marked by the specified argument K or GCand)
that is normal w.r.t. the closed language L
(prefix closure of the language marked by argument L or GPlant)
and the set of observable events. The letter may be given explicitely
or is extracted from the plant generator.
The function implements the Lin-Brandt-Formula from [S2]:
Parameter Conditions: Parameters have to be deterministic, result is deterministic. The resulting generator will be equipped with marking that is consistent to the plant, i.e. Lm(GRes) = L(GRes) ∩ Lm(GPlant). IsNormalTests normality condition.
Signature:
IsNormal(+In+ Generator L, +In+ EventSet AObs, +In+ Generator K, +Out+ Boolean BRes) Detailed description: Tests whether a language K (marked by argument K or GCand) is normal w.r.t. the language L (marked by argument L or GPlant) and the set of observable events. The latter may be given explicitely or is extracted from the plant generator. The implementation performs the test by evaluating the defining equation of normality. This, perhaps, is slightly inefficient. Parameter Conditions: Arguments are required to be deterministic. |
libFAUDES 2.14g --- 2009-12-3 --- plugins "example synthesis observer diagnosis hiosys multitasking timed simulator iodevice luabindings"