Finite State Machine (FSM) usando Stateflow-MATLAB Prof. Juan Mauricio Villanueva jmauricio@cear.ufpb.br www.cear.ufpb.br/juan 1
FSM Uma FSM é um modelo que descreve o comportamento de um número finito de estados, a transição entre estes estados e ações Estado: representa um modo de operação de una maquina, por exemplo, uma maquina de ar-condicionado com quatro estados off, low, medium e high. O estado on é omitido devido a que quando esta em on deve estar em um dos três estados: low, medium e high. 2
FSM Ação: descreve a atividade que deve ser realizada Entry action: se realiza quando se esta no estado Exit action: se realiza quando se finaliza o estado Transition action: se realiza durante uma transição Estado Finito: pode ser representada como um diagrama de estados ou uma tabla de transição de estados. 3
FSM Tabela de transição de estados para uma FSM Uma condição é uma expressão Boolean que pode ser verdadeira (1) ou falsa (0). 4
FSM Evento: É uma ação que pode disparar (trigger) uma variedade de atividades. Por exemplo: Um switch pode levar à transição de uma ocorrência entre o estado médio e alto. O event-driven-systems permite a transição de um modo de operação a outro em resposta a eventos e condições. 5
FSM usando Stateflow Procedimento para criar um modelo no simulink com stateflow 6
Exemplo: Se deseja usar dois ventiladores para climatizar um ambiente, com as seguintes condições: Deve existir um Switch para ligar/desligar o sistema composto pelos dois ventiladores Inicio do processo em t0 =0 seg Ligar o sistema aos t1 =10 seg Desligar o sistema aos t2 =290 seg Fim do processo em t3 =300 seg Operação do ventilador 1: Se temperatura<120, então desligado Se temperatura>=120, então ligado Operação do ventilador 2: Se temperatura<150, então desligado Se temperatura>=150, então ligado 7
Exemplo: Se deseja usar dois ventiladores para climatizar um ambiente, com as seguintes condições: Variáveis: temp = temperatura SWITCH = interruptor CLOCK = relógio do sistema Airflow = indicador que representa se os ventiladores estão funcionando 8
PASSO 1 9
Passo 1: Definir a interface para Abrir MATLAB Simulink Executar o Simulink de Matlab simulink 10
Passo 1: Definir a interface para Simulink Se cria um novo modelo 11
Passo 1: Definir a interface para Simulink Escrever no command de MATLAN o comando stateflow 12
PASSO 2 13
Passo 2: Definir os estados para a Modelagem Modos de Operação Temperatura <120 120=<Temperatura<150 150=<Temperatura Definição dos Estados: PowerOn e PowerOff 14
Construir o modelo em Simulink (3) constantes (1) Multiport Switch (1) Chart (1) Signal Builder (1) Mux (2) scope 15
PASSO 3 16
Passo 3: Definir as ações dos estados e as variáveis Abrir o Chart 17
Passo 3: Definir as ações dos estados e as variáveis Definir a Variável de Entrada no chart Ventiladores Ir ao Menu Add > Data -> Input From Simulink.. Em GENERAL, Name= temp Em VALUE ATTRIBUTES, dar check em WATCH IN DEBUGGER 18
Passo 3: Definir as ações dos estados e as variáveis Definir a Variável de Saída no chart Ventiladores Ir ao Menú Add > Data -> Output to Simulink.. No GENERAL, Name= airflow No VALUE ATTRIBUTES, dar check em WATCH IN DEBUGGER 19
PASSO 4 20
Passo 4: Definir as transições entre os estados Os estados realizam ações em diferentes fases de seu ciclo de execução, desde o instante que entram na fase de atividade. As 3 ações dos estados são: 21
Passo 4: Definir as transições entre os estados As setas unidirecionais representam as transições de um estado a outro e especifica a direção do fluxo A seta com um ponto, representa um estado Exclusive OR, e não pode ser ativado ou executado em um mesmo instante. 22
Dar duplo click no Chart ventiladores Usar o menu de opções para construir o diagrama de estados 23
24
Passo 4: Definir as transições entre os estados Observações: No estado PowerOn, dar click direito e Decomposition= Parallel (AND) Esta opção, permite a execução simultânea dos sub-estados FAN1 e FAN2 25
Passo 4: Definir as transições entre os estados Estados OR, os estados não podem ser ativados ao mesmo tempo, portanto se devem usar transições Estados AND, os estados são executados concorrentemente e não se necessitam transições. Se requere colocar as transições de estados de PowerOff para PowerOn e vice-versa. 26
PASSO 5 27
Passo 5: Selecionar o método para Trigger Dar duplo click em Signal Builder Configurar o Signal 1 AXES->Change Time Range: Min time=0, Max time=300 Name: SWITCH Selecionar a borda de subida, T=10 Selecionar a borda de descida, T= 290 Configurar o Signal 2 Ir ao menu SIGNAL->New->Square Name: CLOCK 28
29
Passo 5: Selecionar o método para Trigger Adicionar os eventos para as transições: Configurar o evento SWITCH Ir ao Menu ADD -> EVENT-> INPUT FROM SIMULINK Name = SWITCH Trigger = EITHER 30
Passo 5: Selecionar o método para Trigger Adicionar os eventos para as transições: Configurar o evento CLOCK Ir ao Menu ADD -> EVENT-> INPUT FROM SIMULINK Name = CLOCK Trigger = EITHER 31
Passo 5: Selecionar o método para Trigger Observar o Trigger no chart Ventiladores TRIGGER (either) Borda de subida e Borda de descida 32
PASSO 6 33
Passo 6: Simulação do Stateflow Antes de iniciar as simulações verificar se existe uma transição por default em cada nível de jerarquia do stateflow que contem um estado OR Para configurar os parâmetros de simulação, dar duplo click no chart Ventiladores. Ir ao menu de SIMULATION->CONFIGURATION PARAMETERS 34
Passo 6: Simulação do Stateflow Ir ao SOLVER 35
Passo 6: Simulação do Stateflow Ir ao menu TOOLS->OPEN SIMULATION TARGET 36
Passo 6: Simulação do Stateflow Configurar o SIMULATION TARGET: 37
Passo 6: Simulação do Stateflow Ir ao menu TOOLS->DEBUG Breakpoints Delay (sec) 38
Passo 6: Simulação do Stateflow Para observar o comportamento do stateflow em movimento, se utiliza o breakpoints no modo Debugger para deter a simulação durante as atividades de execução. 39
Passo 6: Simulação do Stateflow Iniciar a simulação Simulação 40