MatlabTCT Documentation


MatlabTTCT Documentation


allevents

creates one-state DES selfloop with all the events of DES

  • Input: DES1 (automaton)
  • Output: DES2 (automaton)
  • Code:
create('DES1', Q, delta, Qm);
allevents('DES2','DES1');

complement

creates of the marked language complementary to the marked language of DES

  • Input: DES1 (automaton), events (AUXILIARY-EVENTS)
  • Output: DES2 (automaton)
  • Code:
create('DES1', Q, delta, Qm);
complement('DES2','DES1',events);

condat

returns control data DAT for the supervisor DES2 of the controlles system DES1 (a .DAT file)

  • Input: DES1 (automaton), DES2 (automaton)
  • Output: DAT1
  • Code:
create('DES1', Q, delta, Qm);
create('DES2', Q2, delta2, Qm2);
condat('DAT1','DES1','DES2');

create

creates an automaton model of DES (a .DES file)

  • Input: Q (number of states), Qm (marker states), delta (state transitions)
  • Output: MYDES (automaton)
  • Code:
Q = 5; %number of states; sequentially numbered: 0 (initial state),1,...,4
Qm = [0,1]; %marker states
delta = [0,11,1; 1,10,0; 1,12,2; 2,14,3; 2,13,0; 0,15,4]; %transition triples (exit state, event, enter state)
create('MYDES', Q, delta, Qm); %create automaton MYDES.DES

displaydes

Convert a DES file to a GIF file and display it

  • Input: MYDES (automaton)
  • Output: MYDES.GIF (image)
  • Code:
create('MYDES', Q, delta, Qm);
figure(1);
displaydes('MYDES');

displaytxt

display TXT file

  • Input: MYDES
  • Output:
  • Code:
create('MYDES', Q, delta, Qm);
printdes('MYDES');
displaytxt('MYDES');

exlocalize

  • Input: SUPDES, PLANTDES, [Single event] or [Eventlist], MODE(Select the algorithm for computing, please use 1), IS_SINGLE(typt of event list. [Single event]=0 / [Event ist]=1) ;
  • Output: Local Controller LOCDES;
  • Code:
exlocalize('LOCDES', [Single event]/[Eventlist], 'PLANTDES', 'SUPDES', 1, 0/1)

force

modify a DES by the insertion of a new timeout event

  • Input: DES1 (automaton), events1 (FORCIBLE EVENTS), events2 (PREEMPTIBLE EVENTS), events3 (TIMEOUT EVENT)
  • Output: DES2 (automaton)
  • Code:
create('DES1', Q, delta, Qm);
force('DES2','DES1',events1,events2,events3);

getevent

  • Input: DES
  • Output: EVENTLIST
  • Code:
trans(EVENTLIST, 'DES');

isomorph

tests whether DES1 and DES2 are identical up to renumbering of states

  • Input: DES1 (automaton), DES2 (automaton)
  • Output: boolean (true or false)
  • Code:
create('DES1', Q, delta, Qm);
create('DES2', Q, delta, Qm);
isomorph('DES1','DES2');

localize

is the set of localizations of SUPER to the k independent components

  • Input: PLANTDES, PLANTDES1(component in PLANT),...,PLANTDESk(component in PLANT), SUPDES;
  • Output:Local Controllers LOCDES1,...,LOCDESk;
  • Code:
localize({'LOCDES1',...,'LOCDESk'}, 'PLANTDES', {'PLANTDES1',...,'PLANTDESk'}, 'SUPDES');

meet

creates a reachable cartesian product DES

  • Input: DES1 (automaton), DES2 (automaton), ... ,DESk (automaton)
  • Output: DES (automaton)
  • Code:
create('DES1', Q, delta, Qm);
create('DES2', Q, delta, Qm);
meet('DES','DES1','DES2',...,'DESk');

minstate

creates a minimal-state DES that generates the same closed and marked language as DES1

  • Input: DES1 (automaton)
  • Output: DES2 (automaton)
  • Code:
create('DES1', Q, delta, Qm);
minstate('DES2','DES1');

mutex

is formed by excluding the state pair from the product of DES1 and DES2

  • Input: DES1 (automaton), DES2 (automaton), pair_state(EXCLUDED STATE PAIRS)
  • Output: DES3 (automaton)
  • Code:
create('DES1', Q, delta, Qm);
create('DES2', Q, delta, Qm);
pair_state = [1,1;1,2]; %EXCLUDED-STATE-PAIRS
mutex('DES3','DES1','DES2',pair_state);

natobs

returns a natural projection DES2 of DES1, with (allevents) image representation DES3

  • Input: DES1, EVENTLIST
  • Output: DES2, DES3
  • Code:
natobs('DES2','DES3', 'DES1', EVENTLIST);

nonconflict

tests whether DES1, DES2 are nonconflicting

  • Input: DES1 (automaton), DES2 (automaton)
  • Output: boolean (true or false)
  • Code:
nonconflict((true or false), 'DES1','DES2');

observable

  • Input: DES1, DES2, MODE(Test for observability[1] or strong observability[2]), EVENTLIST(list of event labels erased)
  • Output: boolean (true or false)
  • Code:
observable((true or false), 'DES1', 'DES2', MODE, EVENTLIST);

printdat

Convert a DAT file to a TXT file

  • Input: MYDAT
  • Output: MYDAT.TXT
  • Code:
printdat('MYDAT');

printdes

Convert a DES file to a TXT file

  • Input: MYDES
  • Output: MYDES.TXT
  • Code:
printdes('MYDES');

project

generates projected, closed and marked languages of DES

  • Input: DES1, EVENTLIST(list of event labels erased)
  • Output: DES2
  • Code:
project('DES2', 'DES1', EVENTLIST)

recode

  • Input: DES1
  • Output: DES2
  • Code:
recode('DES2', 'DES1')

relabel

generates the relabeled closed mand marked behaviors of DES

  • Input: DES1, EVENTLIST [OLD-NEW EVENT LABEL PAIRS]
  • Output: DES2
  • Code:
Relabel('DES2', 'DES1', EVENLIST)

selfloop

add specific loop transitions to automaton

  • Input: G, EVENTLIST
  • Output: SG
  • Code:
selfloop('SG', 'G', EVENTLIST)

supcon

generate trims for the supremal controllable sublanguage of the marked legal language generated by DES2 for plant DES1

  • Input: SPEC(automaton; the marked legal language), PLANT(automaton; the synthesis of all components.)
  • Output: SUPDES(automaton; the supervisor)
  • Code:
create('PLANT', Q, delta, Qm); % create PLANT automaton
create('E', Q, delta, Qm); % create SPECIFICATION automaton
allevents('ALL', 'PLANT');
sync('SPEC', 'E', 'ALL');
supcon('SUPDES', 'PLANT', 'SPEC');

supconrobs

Generate trims for the supremal controllable and relatively observable sublanguage of the marked legal language generated by DES2 for plant DES1

  • Input: G, K, IMAGE
  • Output: SUPCRO
  • Code:
supconrobs('SUPCRO', 'G', 'K', IMAGE)

supnorm

is a trim DES which represents the supremal sublanguage of the legal language represented by DES2, that is normal with respect to the marked behavior of the plant generator DES1

  • Input:G, K, IMAGE
  • Output: SUPN
  • Code:
supnorm('SUPN', 'G', 'K', IMAGE)

supqc

  • Input: G, IMAGE
  • Output: SUPQC
  • Code:
supqc('SUPQC', 'G', IMAGE)

supreduce

is a reduced supervisor for plant DES1 which is control-equivalent to DES2

  • Input: G, SUP, CONDAT
  • Output: SIM
  • Code:
supreduce('SIM', 'G', 'SUP', CONDAT)

suprobs

is a trim DES which represents the supremal relatively observable sublanguage of the language represented by DES2, with respect to the plant DES1

  • Input: G, K, IMAGE
  • Output: SUPRO
  • Code:
suprobs('SUPRO', 'G', 'K', IMAGE)

supscop

is a trim DES which represents the supremal normal solution to the Supervisory Control and Observation Problem (SCOP), corresponding to the plant DES1, legal language DES2, and specified natural projection

  • Input: G, K, IMAGE
  • Output: SUPCN
  • Code:
supscop('supcn', 'G', 'K', IMAGE)

sync

is the (reachable) synchronous product of DES1,DES2,...,DESk. DES need not be coreachable

  • Input: DES1 (automaton), DES2 (automaton), ... ,DESk (automaton)
  • Output: DES (automaton)
  • Code:
create('DES1', Q, delta, Qm);
create('DES2', Q, delta, Qm);
sync('DES','DES1','DES2',...,'DESk');

trim

is the trim (reachable and coreachable) substructure of DES1

  • Input: G
  • Output: TG
  • Code:
trim('TG', 'G')

Tallevents

creates one-state TDS selfloop with all the events of TDS

  • Input: TDS1 (automaton)
  • Output: TDS2 (automaton)
  • Code:
Tallevents('TDS2','TDS1');

Tcomp

  • Input: MYADS1; MYADS2
  • Output: ADS3 (ATG)
  • Code:
Tcreate_ATG('MYADS1', Q, delta, Qm, TimeBound, Forcible);
Tcreate_ATG('MYADS2', Q, delta, Qm, TimeBound, Forcible);
Tcomp('ADS3', 'MYADS1', 'MYADS2')

Tcondat

returns control data DAT for the supervisor TDS2 of the controlles system TDS1 (a .DAT file)

  • Input:TDS1 (automaton), TDS2 (automaton)
  • Output: DAT1
  • Code:
Tcondat('DAT1','TDS1','TDS2');

Tcreate_ATG

creates an automaton model of ATG (a .ADS file)

  • Input: Q (number of states), Qm (marker states), delta (state transitions), TimeBound (time bound for each event), Forcible (forcible event list).
  • Output: MYADS (ATG)
  • Code:
Q = 5; %number of states; sequentially numbered: 0 (initial state),1,...,4
Qm = [0,1]; %marker states
delta = [0,11,1; 1,10,0; 1,12,2; 2,14,3; 2,13,0; 0,15,4]; %transition triples (exit state, event, enter state)
TimeBound = [10,0,1; 11,0,1000; 12,0,1; 13,0,1000; 14,0,1; 15,0,1]; %time bound for each event [event label, lower bonud, upper bound].
Forcible = [11,13]%forcible event list.
Tcreate_ATG('MYADS', Q, delta, Qm, TimeBound, Forcible); %create automaton MYADS.ADS

Tcreate_TTG

creates an automaton model of TTG (a .TDS file)

  • Input: Q (number of states), Qm (marker states), delta (state transitions), Forcible (forcible event list).
  • Output: MYTDS (TTG)
  • Code:
Q = 5; %number of states; sequentially numbered: 0 (initial state),1,...,4
Qm = [0,1]; %marker states
delta = [0,11,1; 1,10,0; 1,12,2; 2,14,3; 2,13,0; 0,15,4]; %transition triples (exit state, event, enter state)
Forcible = [11,13]%forcible event list.
Tcreate_TTG('MYTDS', Q, delta, Qm, Forcible); %create automaton MYTDS.TDS

Tisomorph

tests whether TDS1 and TDS2 are identical up to renumbering of states

  • Input: TDS1 (automaton), TDS2 (automaton)
  • Output: boolean (true or false)
  • Code:
Tisomorph('TDS1','TDS2');

Tmeet

creates a reachable cartesian product TDS

  • Input: TDS1 (automaton), TDS2 (automaton), ... ,TDSk (automaton)
  • Output: TDS (automaton)
  • Code:
Tmeet('TDS','TDS1','TDS2',...,'TDSk');

Tminstate

creates a minimal-state TDS that generates the same closed and marked language as TDS1

  • Input: TDS1 (automaton)
  • Output: TDS2 (automaton)
  • Code:
Tminstate('TDS2','TDS1');

Tnatobs

returns a natural projection TDS2 of TDS1, with (allevents) image representation TDS3

  • Input: TDS1, EVENTLIST
  • Output: TDS2, TDS3
  • Code:
Tnatobs('TDS2','TDS3', 'TDS1', EVENTLIST);

Tnonconflict

tests whether TDS1, TDS2 are nonconflicting

  • Input: TDS1 (automaton), TDS2 (automaton)
  • Output: boolean (true or false)
  • Code:
Tnonconflict((true or false), 'TDS1','TDS2');

Tproject

generates projected, closed and marked languages of TDS

  • Input: TDS1, EVENTLIST(list of event labels erased)
  • Output: TDS2
  • Code:
Tproject('TDS2', 'TDS1', EVENTLIST)

Tsupcon

generate trims for the supremal controllable sublanguage of the marked legal language generated by TDS2 for plant TDS1

  • Input: SPEC(automaton; the marked legal language), PLANT(automaton; the synthesis of all components.)
  • Output: SUPTDS(automaton; the supervisor)
  • Code:
Tsupcon('SUPTDS', 'PLANT', 'SPEC');

Tsupreduce

is a reduced supervisor for plant TDS1 which is control-equivalent to TDS2

  • Input: G, SUP, CONDAT
  • Output: SIMSUP
  • Code:
Tsupreduce('SIMSUP', 'G', 'SUP', CONDAT)