Você está na página 1de 4

FRANKLIN MEER GARCIA ACEVEDO

TRABALHO - MODEL.CONTR.SIST.DINAM.A EVENT.DISCRETOS


LISTA 7

// MAQUINA 1
// CRIACAO DOS ESTADOS DA MAQUINA 1
State M11 = new State("S11", Marking.Marked);
State M12 = new State("S12", Marking.Unmarked);

// CRIACAO DOS EVENTOS


Event a1 = new Event("a1", Controllability.Controllable);
Event b1 = new Event("b1", Controllability.Uncontrollable);

// CRIACAO DOS EVENTOS


var M1 = new DeterministicFiniteAutomaton(new[]
{
new Transition(M11,a1,M12),
new Transition(M12,b1,M11)

}, M11, "M1");

// MAQUINA 2
// CRIACAO DOS ESTADOS DA MAQUINA 2
State M21 = new State("M11", Marking.Marked);
State M22 = new State("M22", Marking.Unmarked);

// CRIACAO DOS EVENTOS


Event a2 = new Event("a2", Controllability.Controllable);
Event b2 = new Event("b2", Controllability.Uncontrollable);

// CRIACAO DOS EVENTOS


var M2 = new DeterministicFiniteAutomaton(new[]
{
new Transition(M21,a2,M22),
new Transition(M22,b2,M21)

}, M21, "M2");

// MAQUINA 3
// CRIACAO DOS ESTADOS DA MAQUINA 3
State M31 = new State("S31", Marking.Marked);
State M32 = new State("S32", Marking.Unmarked);

// CRIACAO DOS EVENTOS


Event a3 = new Event("a3", Controllability.Controllable);
Event b3 = new Event("b3", Controllability.Uncontrollable);

// CRIACAO DOS EVENTOS


var M3 = new DeterministicFiniteAutomaton(new[]
{
new Transition(M31,a3,M32),
new Transition(M32,b3,M31)

}, M31, "M3");

/////// ESPECIFICACOES OU RESTRICAO 1.... BUFFER///////////////


// CRIACAO DOS ESTADOS
State B11 = new State("B11", Marking.Marked);
State B12 = new State("B12", Marking.Unmarked);
State B13 = new State("B13", Marking.Unmarked);
//CRIACAO DAS TRASICOES
var B1 = new DeterministicFiniteAutomaton(new[]
{
new Transition(B11,b1,B12),
new Transition(B11,b2,B12),
new Transition(B12,b1,B13),
new Transition(B12,b2,B13),
new Transition(B13,a3,B12),
new Transition(B12,a3,B11)

}, B11, "B1");

// COMPOSICAO PLANTA
var PLANTA = DeterministicFiniteAutomaton.ParallelComposition(M1,
M2,M3);

// linguagem k
var K = DeterministicFiniteAutomaton.ParallelComposition(M1, M2, M3, B1); //
k=G||B1 Comportamento legal ou desejado da planta

// controle monolitico
var S = DeterministicFiniteAutomaton.MonolithicSupervisor(
new[] { PLANTA },
new[] { B1 },
true
);

M1.simplifyName(); // PARA SIMPLIFICAR OS NOMES DAS FIGURAS


M1.showAutomaton();

M1.drawSVGFigure("M1",true);
M1.showAutomaton();

M2.simplifyName(); // PARA SIMPLIFICAR OS NOMES DAS FIGURAS


M2.showAutomaton();

M3.simplifyName(); // PARA SIMPLIFICAR OS NOMES DAS FIGURAS


M3.showAutomaton();

B1.simplifyName(); // PARA SIMPLIFICAR OS NOMES DAS FIGURAS


B1.showAutomaton();

PLANTA.simplifyName(); // PARA SIMPLIFICAR OS NOMES DAS FIGURAS


PLANTA.showAutomaton();

K.simplifyName(); // PARA SIMPLIFICAR OS NOMES DAS FIGURAS


K.showAutomaton();

S.simplifyName(); // PARA SIMPLIFICAR OS NOMES DAS FIGURAS


S.showAutomaton();
}
}
}
M1

M2

M3

B1
K

Você também pode gostar