{"id":815,"date":"2017-10-30T09:46:29","date_gmt":"2017-10-30T11:46:29","guid":{"rendered":"http:\/\/www.galirows.com.br\/meublog\/?p=815"},"modified":"2018-12-10T09:21:26","modified_gmt":"2018-12-10T11:21:26","slug":"tutorial-supervisory-control-architecture-for-discrete-event-systems","status":"publish","type":"post","link":"http:\/\/www.galirows.com.br\/meublog\/blog\/tutorial-supervisory-control-architecture-for-discrete-event-systems\/","title":{"rendered":"Tutorial sobre o trabalho: supervisory control architecture for discrete-event systems"},"content":{"rendered":"<p>O objetivo de tutorial \u00e9 explicar o artigo de [1] com um passo-a-passo mais detalhado com a solu\u00e7\u00e3o apresentada no trabalho.<\/p>\n<p>O sistema modelado \u00e9 <em>automatic guided vehicles<\/em> (AGV) que atende a uma c\u00e9lula de manufatura. O sistema \u00e9 origin\u00e1rio de [2, Sec. 4.7] e seus modelos s\u00e3o apresentados no trabalho.<\/p>\n<p><a href=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-816\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng1-213x300.png\" alt=\"\" width=\"213\" height=\"300\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng1-213x300.png 213w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng1-107x150.png 107w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng1.png 281w\" sizes=\"auto, (max-width: 213px) 100vw, 213px\" \/><\/a><\/p>\n<p>O sistema foi simplificado em [3], que utilizou a abordagem de <em>control flow decomposition<\/em> para tal. A figura abaixo mostra a simplifica\u00e7\u00e3o realizada pelo <em>control flow decomposition<\/em>, que eliminou as especifica\u00e7\u00f5es de controle Z1&#8230;Z4. A simplifica\u00e7\u00e3o tamb\u00e9m levou a divis\u00e3o do WS1 nas especifica\u00e7\u00f5es W13 e W14. Isso porque o sistema ser\u00e1 dividido em dois subsistemas (caminho da esquerda e caminho da direta).<\/p>\n<p>Ao contr\u00e1rio do que aconteceu com WS1, o IPS1 e IPS2 foram juntados em uma especifica\u00e7\u00e3o \u00fanica IPS (ver mais adiante no modelo das especifica\u00e7\u00f5es).<\/p>\n<p><a href=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-817\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng2-300x152.png\" alt=\"\" width=\"300\" height=\"152\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng2-300x152.png 300w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng2-150x76.png 150w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng2-768x388.png 768w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng2.png 966w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong>Plantas<\/strong><\/p>\n<p>As plantas d os 5 AGVs s\u00e3o mostradas a seguir.<\/p>\n\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-1 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 33%;\n\t\t\t}\n\t\t\t#gallery-1 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-1' class='gallery galleryid-815 gallery-columns-3 gallery-size-thumbnail'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.galirows.com.br\/meublog\/blog\/tutorial-supervisory-control-architecture-for-discrete-event-systems\/feng_a1\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"123\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A1-150x123.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-1-821\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A1-150x123.png 150w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A1.png 235w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-821'>\n\t\t\t\tA1\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.galirows.com.br\/meublog\/blog\/tutorial-supervisory-control-architecture-for-discrete-event-systems\/feng_a2\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"121\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A2-150x121.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-1-822\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A2-150x121.png 150w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A2-300x242.png 300w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A2.png 351w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-822'>\n\t\t\t\tA2\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.galirows.com.br\/meublog\/blog\/tutorial-supervisory-control-architecture-for-discrete-event-systems\/feng_a3\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"128\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A3-150x128.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-1-818\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A3-150x128.png 150w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A3.png 237w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-818'>\n\t\t\t\tA3\n\t\t\t\t<\/dd><\/dl><br style=\"clear: both\" \/><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon portrait'>\n\t\t\t\t<a href='http:\/\/www.galirows.com.br\/meublog\/blog\/tutorial-supervisory-control-architecture-for-discrete-event-systems\/feng_a4\/'><img loading=\"lazy\" decoding=\"async\" width=\"136\" height=\"150\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A4-136x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-1-819\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A4-136x150.png 136w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A4.png 259w\" sizes=\"auto, (max-width: 136px) 100vw, 136px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-819'>\n\t\t\t\tA4\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.galirows.com.br\/meublog\/blog\/tutorial-supervisory-control-architecture-for-discrete-event-systems\/feng_a5\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"132\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A5-150x132.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-1-820\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A5-150x132.png 150w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_A5.png 247w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-1-820'>\n\t\t\t\tA5\n\t\t\t\t<\/dd><\/dl>\n\t\t\t<br style='clear: both' \/>\n\t\t<\/div>\n\n<p><strong>Especifica\u00e7\u00f5es<\/strong><\/p>\n<p>Diferente das especifica\u00e7\u00f5es em [2], o trabalho de [1] somente marca os estados iniciais das especifica\u00e7\u00f5es. Os modelos s\u00e3o mostrados abaixo.<\/p>\n\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-2 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-2 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 33%;\n\t\t\t}\n\t\t\t#gallery-2 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-2 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-2' class='gallery galleryid-815 gallery-columns-3 gallery-size-thumbnail'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.galirows.com.br\/meublog\/blog\/tutorial-supervisory-control-architecture-for-discrete-event-systems\/feng_ws13\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"88\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_WS13-150x88.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-2-824\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_WS13-150x88.png 150w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_WS13.png 236w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-2-824'>\n\t\t\t\tWS13\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.galirows.com.br\/meublog\/blog\/tutorial-supervisory-control-architecture-for-discrete-event-systems\/feng_ws14\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"83\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_WS14-150x83.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-2-825\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_WS14-150x83.png 150w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_WS14.png 229w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-2-825'>\n\t\t\t\tWS14\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.galirows.com.br\/meublog\/blog\/tutorial-supervisory-control-architecture-for-discrete-event-systems\/feng_ws2\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"74\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_WS2-150x74.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-2-826\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_WS2-150x74.png 150w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_WS2.png 235w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-2-826'>\n\t\t\t\tSW2\n\t\t\t\t<\/dd><\/dl><br style=\"clear: both\" \/><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.galirows.com.br\/meublog\/blog\/tutorial-supervisory-control-architecture-for-discrete-event-systems\/feng_ws3\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"72\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_WS3-150x72.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-2-827\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_WS3-150x72.png 150w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_WS3.png 249w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-2-827'>\n\t\t\t\tWS3\n\t\t\t\t<\/dd><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='http:\/\/www.galirows.com.br\/meublog\/blog\/tutorial-supervisory-control-architecture-for-discrete-event-systems\/feng_ips\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"49\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_IPS-150x49.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-2-823\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_IPS-150x49.png 150w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_IPS-300x98.png 300w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_IPS.png 355w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>\n\t\t\t<\/dt>\n\t\t\t\t<dd class='wp-caption-text gallery-caption' id='gallery-2-823'>\n\t\t\t\tIPS\n\t\t\t\t<\/dd><\/dl>\n\t\t\t<br style='clear: both' \/>\n\t\t<\/div>\n\n<p><strong>Redu\u00e7\u00e3o dos supervisores<\/strong><\/p>\n<p>O trabalho prop\u00f5e a gera\u00e7\u00e3o dos supervisores reduzidos para cada uma das especifica\u00e7\u00f5es. O trabalho usa esses supervisores reduzidos para criar o controlador dos dois subsistemas, conforme:<\/p>\n<p style=\"padding-left: 30px;\">Sub1 = A1 || A3 || A5 || WR2 || WR13 (140)<\/p>\n<p style=\"padding-left: 30px;\">Sub2 = A2 || A4 || A5 || WR3 || WR14 (330)<\/p>\n<p>Sendo, WR<em>i<\/em> os supervisores reduzidos para cada WS<em>i<\/em>.<\/p>\n<p>Eu optei por fazer os SupC para gerar os supervisores. O resultado \u00e9 o mesmo mas com menor processamento. Fiz isso tamb\u00e9m porque utilizando a ferramenta DESTool, n\u00e3o foi poss\u00edvel gerar todos os supervisores reduzidos devido a complexidade envolvida em alguns.<\/p>\n<p style=\"padding-left: 30px;\">Sub1 = SupC(A1 || A3 || A5, WR2 || WR13)<\/p>\n<p style=\"padding-left: 30px;\">Sub2 = SupC(A2 || A4 || A5, WR3 || WR14)<\/p>\n<p>O resultado \u00e9 o Sub1 com 140 estados e o Sub2 com 330 estados.<\/p>\n<p>Veja que a especifica\u00e7\u00e3o IPS n\u00e3o est\u00e1 presente nem em Sub1 nem em Sub2. Essa especifica\u00e7\u00e3o associa os dois subsistemas e foi gerado um controlador somente para ela. Inicialmente \u00e9 gerado um controlador com as plantas A1 e A2 que s\u00e3o associadas a especifica\u00e7\u00e3o e depois esse supervisor \u00e9 reduzido.<\/p>\n<p style=\"padding-left: 30px;\">IPR = reduce( SupC(A1 || A2, IPS) )<\/p>\n<p>O resultado \u00e9 o aut\u00f4mato IPR mostrado abaixo.<\/p>\n<p><a href=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_IPR.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-828\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_IPR.png\" alt=\"\" width=\"249\" height=\"137\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_IPR.png 249w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_IPR-150x83.png 150w\" sizes=\"auto, (max-width: 249px) 100vw, 249px\" \/><\/a><\/p>\n<p>Se for avaliado o conflito entre Sub1 e Sub2 ele n\u00e3o existe. O conflito aparece quando o supervisor IPR \u00e9 adicionado. O trabalho ent\u00e3o explora a inclus\u00e3o de um outro supervisor que deve atuar juntamente com os outros 3, sendo esse novo supervisor o respons\u00e1vel por resolver o conflito, atuando como um coordenador.<\/p>\n<p><strong>Gerando o resolvedor do conflito<\/strong><\/p>\n<p>\u00c9 preciso inicialmente identificar todos os eventos compartilhados entre os subsistemas. A interse\u00e7\u00e3o dos eventos de Sub1 e Sub2 mostra que os eventos de A5 est\u00e3o presentes ({50, 51, 52, 53}). Tamb\u00e9m s\u00e3o adicionados os eventos de IPS ({11, 13, 21, 23}) que \u00e9 o controle que gera o conflito.<\/p>\n<p>Com esse conjunto de eventos ({11, 13, 21, 23, 50, 51, 52, 53}) \u00e9 feito a proje\u00e7\u00e3o de Sub1 e Sub2 e que geram Int1 e Int2, respectivamente. Dessa opera\u00e7\u00e3o ser\u00e3o gerados dois aut\u00f4matos com 30 estados cada.<\/p>\n<p>No DESTool, \u00e9 preciso marcar a op\u00e7\u00e3o \u201cminimal realisation\u201d no momento da proje\u00e7\u00e3o. Essa op\u00e7\u00e3o ir\u00e1 fazer a proje\u00e7\u00e3o e tamb\u00e9m a minimiza\u00e7\u00e3o do aut\u00f4mato.<\/p>\n<p>Os passos realizados apenas diminuem os supervisores e ainda n\u00e3o resolvem o conflito o que pode ser visto testando o bloqueio da composi\u00e7\u00e3o s\u00edncrona dos supervisores (essa composi\u00e7\u00e3o gera um aut\u00f4mato com 171 estados).<\/p>\n<p style=\"padding-left: 30px;\">IntIP = Int1 || Int2 || IPR<\/p>\n<p>O pr\u00f3ximo passo consiste em calcular um novo supervisor a partir do IntIP. Esse novo supervisor utiliza uma especifica\u00e7\u00e3o chamada \u201cAll\u201d que consiste de um \u00fanico estado com todos os eventos de IntIP em selfloop. Esse novo supervisor, chamado CS, elimina os bloqueios existentes em IntIP.<\/p>\n<p><a href=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_all.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-829\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_all.png\" alt=\"\" width=\"122\" height=\"177\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_all.png 122w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_all-103x150.png 103w\" sizes=\"auto, (max-width: 122px) 100vw, 122px\" \/><\/a><\/p>\n<p>O supervisor CS possui 165 estados, mas pode tamb\u00e9m ser reduzido para simplifica-lo. Esse supervisor \u00e9 o coordenador e resolve o conflito entre os demais supervisores. O aut\u00f4mato do coordenador \u00e9 chamado de CR. Infelizmente o DESTool n\u00e3o consegue gerar o supervisor reduzido ent\u00e3o \u00e9 preciso utilizar o TCT no c\u00e1lculo. O artigo apresenta como CR o aut\u00f4mato abaixo.<\/p>\n<p><a href=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_CR.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-830\" src=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_CR-300x282.png\" alt=\"\" width=\"300\" height=\"282\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_CR-300x282.png 300w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_CR-150x141.png 150w, http:\/\/www.galirows.com.br\/meublog\/wp-content\/uploads\/2017\/10\/Feng_CR.png 513w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Quando eu fiz o processo obtive o aut\u00f4mato com uma pequena diferen\u00e7a: o meu aut\u00f4mato CR n\u00e3o possui o evento 51, mas esse evento n\u00e3o faz diferen\u00e7a no resultado final.<\/p>\n<p>Para testar que n\u00e3o existe mais conflito no sistema utilizando esse coordenador \u00e9 preciso fazer a composi\u00e7\u00e3o s\u00edncrona entre os subsistemas e o coordenador e verificar que n\u00e3o existe conflito.<\/p>\n<p>Teste = Int1 || Int2 || IPR || CR<\/p>\n<p>O resultado \u00e9 um aut\u00f4mato com 165 estados e n\u00e3o exist\u00eancia de bloqueio no aut\u00f4mato, mostrando que o coordenador resolve o conflito.<\/p>\n<p style=\"text-align: right;\">Tenha acesso aos modelos no software DESTool atrav\u00e9s da minha postagem <a href=\"http:\/\/www.galirows.com.br\/meublog\/blog\/aplicacao-em-outro-exemplo-do-trabalho-intitulado-supervisory-control-architecture-for-discrete-event-systems\/\">dispon\u00edvel aqui<\/a>.<\/p>\n<p><strong>Refer\u00eancias<\/strong><\/p>\n<p><em>[1] Feng, L., &amp; Wonham, W. M. (2008). Supervisory control architecture for discrete-event systems.\u00a0IEEE Transactions on Automatic Control,\u00a053(6), 1449-1461.<\/em><\/p>\n<p><em>[2] W. M. Wonham, \u201cSupervisory control of discrete-event systems,\u201d Dept. Electr. Comput. Eng., Univ. Toronto, Toronto, ON, Canada, 2001\u20132007 [Online]. Available: http:\/\/www.control.toronto.edu\/DES, updates posted annually<\/em><\/p>\n<p><em>[3] L. Feng and W. M. Wonham, \u201cComputationally efficient supervisor design: Abstraction and modularity,\u201d in Proc. 8th Int. Workshop Discrete-Event Syst., S. Lafortune, F. Lin, and D. Tilbury, Eds., Ann Arbor, MI, Jul. 2006, pp. 3\u20138<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O objetivo de tutorial \u00e9 explicar o artigo de [1] com um passo-a-passo mais detalhado com a solu\u00e7\u00e3o apresentada no trabalho. O sistema modelado \u00e9 automatic guided vehicles (AGV) que atende a uma c\u00e9lula de manufatura. O sistema \u00e9 origin\u00e1rio de [2, Sec. 4.7] e seus modelos s\u00e3o apresentados no trabalho. O sistema foi simplificado [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":833,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[34],"tags":[],"class_list":["post-815","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sistemas-a-eventos-discretos"],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/comments?post=815"}],"version-history":[{"count":4,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/815\/revisions"}],"predecessor-version":[{"id":890,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/815\/revisions\/890"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/media\/833"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/media?parent=815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/categories?post=815"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/tags?post=815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}