• Nenhum resultado encontrado

4.4 Implementac¸˜ao

4.4.1 Ferramenta Utilizada – CheckMate

A ferramenta CheckMate ´e implementada no MATLAB, utilizando a interface gr´afica Simulink. O CheckMate ´e composto por trˆes blocos principais: switched continuous system block, polyhedral threshold block e finite state machine block, que podem ser observados na Figura 4.19. Estes trˆes blo- cos s˜ao utilizados juntamente com os blocos padr˜oes do Simulink para construir modelos de sistemas h´ıbridos que podem ser simulados e verificados [Chutinan e Krogh, 2003].

O switched continuous system block (SCSB) define um sistema dinˆamico cont´ınuo cujas dinˆami- cas dependem de uma entrada de valor discreto. Um SCSB possui uma entrada discreta u e uma sa´ıda x, que ´e um vetor de estado cont´ınuo para as dinˆamicas do bloco. A dinˆamica cont´ınua ´e selecionada

Figura 4.19: Blocos dispon´ıveis no CheckMate

pelo valor u de acordo com ˙x= fu(x). A entrada discreta u no SCSB s´o pode vir da m´aquina de estado

finito. Os tipos de equac¸ ˜oes diferenciais ordin´arias que podem ser especificados para cada valor discreto da entrada u s˜ao: n˜ao-linear, onde ˙x= f (x) para uma func¸˜ao n˜ao-linear cont´ınua arbitr´aria

f ; linear, onde ˙x= Ax + b para uma matriz constante A e um vetor b; e constante, onde ˙x = c para um vetor constante c. Para cada caso o CheckMate utiliza um procedimento de aproximac¸˜ao flow-pipe, que ´e otimizado para o tipo especificado de dinˆamica, sendo que a representac¸ ˜ao flow-pipe ´e exata no caso de dinˆamicas constantes.

O Polyhedral Threshold Block (PTHB) define um poliedro convexo parametrizado por um par matrix-vetor(C, d). A entrada ´e um vetor estado cont´ınuo x e a sa´ıda ´e um sinal booleano indicando se x est´a ou n˜ao dentro do poliedro convexo definido por Cx≤ d. A entrada deve ser constru´ıda `a partir das sa´ıdas dos SCSBs.

O bloco finite-state machine block (FSMB) ´e implementado pelo Stateflow com as seguintes restric¸ ˜oes:

• cada entrada evento deve ser uma func¸˜ao l´ogica das sa´ıdas dos PTHBs;

• cada dado de entrada deve ser uma func¸˜ao l´ogica das sa´ıdas dos PTHBs ou FSMB;

• somente s˜ao permitidos sinais de sa´ıda com valor discreto;

• o diagrama Stateflow n˜ao deve conter hierarquias e cada estado deve atribuir um valor ´unico para o dado de sa´ıda na ac¸˜ao de entrada. Nenhuma outra ac¸˜ao ´e permitida em qualquer estado ou transic¸˜ao rotulada.

Al´em dos blocos desenvolvidos especificamente para o CheckMate existem os blocos-padr˜ao do Simulink. Para simulac¸˜ao qualquer bloco pode ser utilizado, entretanto para verificac¸˜ao, al´em dos blocos espec´ıficos, podem ser utilizados apenas os operadores l´ogicos e sinais MUX/DEMUX.

O procedimento de verificac¸˜ao do CheckMate ´e baseado na teoria geral de autˆomato h´ıbrido com semˆantica de sistemas de transic¸˜ao. Para aplicar esta teoria o CheckMate converte modelos Simulink-Stateflow em uma classe de autˆomatos h´ıbridos chamada polyhedral-invariant hybrid au- tomata (PIHA). O PIHA difere de um autˆomato h´ıbrido geral nos seguintes aspectos:

1. N˜ao existe nenhum mapeamento de reset associado `as transic¸ ˜oes discretas, o que significa que n˜ao existem descontinuidades nas trajet´orias no estado cont´ınuo.

2. Os invariantes s˜ao definidos por inequac¸ ˜oes lineares.

3. As guardas s˜ao faces dos invariantes, o que significa que uma transic¸˜ao no espac¸o discreto ocorre imediatamente quando a trajet´oria no estado cont´ınuo atinge uma guarda.

Assim como os sistemas h´ıbridos em geral, o sistema de transic¸˜ao do PIHA tem um espac¸o de estados infinito. Para aplicar t´ecnicas do padr˜ao model checking uma aproximac¸˜ao conservativa de es- tado finito ´e constru´ıda, resultando no chamado sistema de transic¸˜ao quociente aproximativo (AQTS). Se a verificac¸˜ao ´e inconclusiva, o AQTS pode ser refinado e o procedimento de verificac¸˜ao pode ser executado novamente [Chutinan e Krogh, 2001]. O principal obst´aculo em relac¸˜ao `a realizac¸˜ao do AQTS para o sistema h´ıbrido ´e a falta de m´etodos efetivos para computar os flow-pipes, ou seja, o conjunto de trajet´orias cont´ınuas partindo de um conjunto de estados iniciais. Em Chutinan e Krogh [1998] ´e proposto um procedimento para computar aproximac¸ ˜oes poliedrais conservativas para flow- pipes de sistemas dinˆamicos cont´ınuos.

O procedimento de verificac¸˜ao no CheckMate inicia com a convers˜ao do modelo Simulink em um PIHA equivalente. A an´alise do PIHA ´e limitada pela regi˜ao poliedral definida pelo usu´ario chamada regi˜ao de an´alise do espac¸o de estados cont´ınuo. Um AQTS de estado finito ´e constru´ıdo para verificar propriedades nas trajet´orias de estado do PIHA. Os estados discretos no AQTS s˜ao definidos por uma partic¸˜ao inicial da superf´ıcie de chaveamento (isto ´e, os limites dos poliedros definidos nos threshold blocks), constru´ıdos de acordo com os parˆametros especificados pelo usu´ario. Transic¸ ˜oes entre estados no AQTS s˜ao computados usando aproximac¸˜ao por flow-pipes. O AQTS ´e ent˜ao verificado novamente para uma dada especificac¸˜ao usando alguma t´ecnica do padr˜ao model checking para sistemas de transic¸˜ao de estados finitos.

O CheckMate permite modelar especificac¸ ˜oes escritas em l´ogica ACTL. F ´ormulas ACTL consis- tem de operadores temporais e quantificadores de caminho. Se a verificac¸˜ao falha devido `a discreti- zac¸˜ao grosseira do AQTS, a partic¸˜ao para o AQTS ´e refinada. O processo pode ser repetido at´e que o AQTS satisfac¸a a especificac¸˜ao ou que o usu´ario termine a verificac¸˜ao.